diff --git a/bench/abseil-cpp/optimized/cord_rep_btree.cc.ll b/bench/abseil-cpp/optimized/cord_rep_btree.cc.ll index 9ea35093b25..87a1f4ae127 100644 --- a/bench/abseil-cpp/optimized/cord_rep_btree.cc.ll +++ b/bench/abseil-cpp/optimized/cord_rep_btree.cc.ll @@ -979,56 +979,63 @@ do.body.i.i: ; preds = %do.cond.i.i, %do.bo %indvars.iv.next.i.i = add nsw i64 %indvars.iv.i.i, -1 %arrayidx.i.i35 = getelementptr inbounds %"struct.absl::cord_internal::(anonymous namespace)::StackOperations", ptr %ops, i64 0, i32 1, i64 %indvars.iv.next.i.i %24 = load ptr, ptr %arrayidx.i.i35, align 8 + %25 = load i32, ptr %ops, align 8 + %26 = sext i32 %25 to i64 + %cmp2.i.i = icmp sle i64 %indvars.iv.i.i, %26 switch i32 %result.sroa.7.0.i.i, label %do.cond.i.i [ - i32 0, label %sw.bb13.i.i + i32 2, label %sw.bb.i.i i32 1, label %sw.bb4.i.i + i32 0, label %sw.bb13.i.i ] +sw.bb.i.i: ; preds = %do.body.i.i + %call.i.i = tail call { ptr, i32 } @_ZN4absl13cord_internal12CordRepBtree7AddEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm(ptr noundef nonnull align 8 dereferenceable(64) %24, i1 noundef zeroext %cmp2.i.i, ptr noundef %result.sroa.0.0.i.i, i64 noundef %sub) + %27 = extractvalue { ptr, i32 } %call.i.i, 0 + %28 = extractvalue { ptr, i32 } %call.i.i, 1 + br label %do.cond.i.i + sw.bb4.i.i: ; preds = %do.body.i.i - %25 = load i32, ptr %ops, align 8 - %26 = sext i32 %25 to i64 - %cmp2.i.i.not = icmp sgt i64 %indvars.iv.i.i, %26 %arrayidx.i.i.i.i.i36 = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %24, i64 0, i32 3, i64 1 - %27 = load i8, ptr %arrayidx.i.i.i.i.i36, align 1 - %conv.i.i.i.i.i37 = zext i8 %27 to i64 - br i1 %cmp2.i.i.not, label %if.else.i.i.i, label %if.then.i.i.i + %29 = load i8, ptr %arrayidx.i.i.i.i.i36, align 1 + %conv.i.i.i.i.i37 = zext i8 %29 to i64 + br i1 %cmp2.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %sw.bb4.i.i %arrayidx.i.i.i38 = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %24, i64 0, i32 1, i64 %conv.i.i.i.i.i37 - %28 = load ptr, ptr %arrayidx.i.i.i38, align 8 - %refcount.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %28, i64 0, i32 1 - %29 = atomicrmw sub ptr %refcount.i.i.i.i, i32 2 acq_rel, align 4 - %cmp.i.not.i.i.i.i = icmp eq i32 %29, 2 + %30 = load ptr, ptr %arrayidx.i.i.i38, align 8 + %refcount.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %30, i64 0, i32 1 + %31 = atomicrmw sub ptr %refcount.i.i.i.i, i32 2 acq_rel, align 4 + %cmp.i.not.i.i.i.i = icmp eq i32 %31, 2 br i1 %cmp.i.not.i.i.i.i, label %if.then.i.i.i.i, label %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i if.then.i.i.i.i: ; preds = %if.then.i.i.i - tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef %28) + tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef %30) br label %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i if.else.i.i.i: ; preds = %sw.bb4.i.i %arrayidx.i1.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %24, i64 0, i32 3, i64 2 - %30 = load i8, ptr %arrayidx.i1.i.i.i.i, align 1 - %conv.i2.i.i.i.i = zext i8 %30 to i64 - %31 = load i64, ptr %24, align 8 + %32 = load i8, ptr %arrayidx.i1.i.i.i.i, align 1 + %conv.i2.i.i.i.i = zext i8 %32 to i64 + %33 = load i64, ptr %24, align 8 %call.i.i.i.i = tail call noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #20 %refcount.i.i.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %call.i.i.i.i, i64 0, i32 1 store i32 2, ptr %refcount.i.i.i.i.i.i, align 4 - store i64 %31, ptr %call.i.i.i.i, align 8 + store i64 %33, ptr %call.i.i.i.i, align 8 %tag.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %call.i.i.i.i, i64 0, i32 2 %tag2.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %24, i64 0, i32 2 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(52) %tag.i.i.i.i, ptr noundef nonnull align 4 dereferenceable(52) %tag2.i.i.i.i, i64 52, i1 false) %edges_.i.i.i.i = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %24, i64 0, i32 1 - %32 = getelementptr ptr, ptr %edges_.i.i.i.i, i64 %conv.i.i.i.i.i37 + %34 = getelementptr ptr, ptr %edges_.i.i.i.i, i64 %conv.i.i.i.i.i37 %add.ptr.i9.i.i.i = getelementptr inbounds ptr, ptr %edges_.i.i.i.i, i64 %conv.i2.i.i.i.i - %__begin3.012.i.i.i = getelementptr inbounds ptr, ptr %32, i64 1 + %__begin3.012.i.i.i = getelementptr inbounds ptr, ptr %34, i64 1 %cmp.not13.i.i.i = icmp eq ptr %__begin3.012.i.i.i, %add.ptr.i9.i.i.i br i1 %cmp.not13.i.i.i, label %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i, label %for.body.i.i.i for.body.i.i.i: ; preds = %if.else.i.i.i, %for.body.i.i.i %__begin3.014.i.i.i = phi ptr [ %__begin3.0.i.i.i, %for.body.i.i.i ], [ %__begin3.012.i.i.i, %if.else.i.i.i ] - %33 = load ptr, ptr %__begin3.014.i.i.i, align 8, !nonnull !8, !noundef !8 - %refcount.i10.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %33, i64 0, i32 1 - %34 = atomicrmw add ptr %refcount.i10.i.i.i, i32 2 monotonic, align 4 + %35 = load ptr, ptr %__begin3.014.i.i.i, align 8, !nonnull !8, !noundef !8 + %refcount.i10.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %35, i64 0, i32 1 + %36 = atomicrmw add ptr %refcount.i10.i.i.i, i32 2 monotonic, align 4 %__begin3.0.i.i.i = getelementptr inbounds ptr, ptr %__begin3.014.i.i.i, i64 1 %cmp.not.i.i.i = icmp eq ptr %__begin3.0.i.i.i, %add.ptr.i9.i.i.i br i1 %cmp.not.i.i.i, label %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i, label %for.body.i.i.i @@ -1038,18 +1045,18 @@ _ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEb %retval.sroa.5.0.i.i.i = phi i32 [ 0, %if.then.i.i.i ], [ 0, %if.then.i.i.i.i ], [ 1, %if.else.i.i.i ], [ 1, %for.body.i.i.i ] %arrayidx16.i.i.i = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %retval.sroa.0.0.i.i.i, i64 0, i32 1, i64 %conv.i.i.i.i.i37 store ptr %result.sroa.0.0.i.i, ptr %arrayidx16.i.i.i, align 8 - %35 = load i64, ptr %retval.sroa.0.0.i.i.i, align 8 - %add19.i.i.i = add i64 %35, %sub + %37 = load i64, ptr %retval.sroa.0.0.i.i.i, align 8 + %add19.i.i.i = add i64 %37, %sub store i64 %add19.i.i.i, ptr %retval.sroa.0.0.i.i.i, align 8 store ptr %retval.sroa.0.0.i.i.i, ptr %arrayidx.i.i35, align 8 br label %do.cond.i.i sw.bb13.i.i: ; preds = %do.body.i.i - %36 = trunc i64 %indvars.iv.i.i to i32 - %37 = load i64, ptr %24, align 8 - %add.i.i = add i64 %37, %sub + %38 = trunc i64 %indvars.iv.i.i to i32 + %39 = load i64, ptr %24, align 8 + %add.i.i = add i64 %39, %sub store i64 %add.i.i, ptr %24, align 8 - %cmp1520.i.i = icmp sgt i32 %36, 1 + %cmp1520.i.i = icmp sgt i32 %38, 1 br i1 %cmp1520.i.i, label %while.body.i.i, label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE9PropagateEPS3_imNS3_8OpResultE.exit while.body.i.i: ; preds = %sw.bb13.i.i, %while.body.i.i @@ -1057,17 +1064,17 @@ while.body.i.i: ; preds = %sw.bb13.i.i, %while %indvars.iv.next31.i.i = add nsw i64 %indvars.iv30.i.i, -1 %idxprom18.i.i = and i64 %indvars.iv.next31.i.i, 4294967295 %arrayidx19.i.i = getelementptr inbounds %"struct.absl::cord_internal::(anonymous namespace)::StackOperations", ptr %ops, i64 0, i32 1, i64 %idxprom18.i.i - %38 = load ptr, ptr %arrayidx19.i.i, align 8 - %39 = load i64, ptr %38, align 8 - %add21.i.i = add i64 %39, %sub - store i64 %add21.i.i, ptr %38, align 8 - %40 = trunc i64 %indvars.iv30.i.i to i32 - %cmp15.i.i = icmp sgt i32 %40, 1 + %40 = load ptr, ptr %arrayidx19.i.i, align 8 + %41 = load i64, ptr %40, align 8 + %add21.i.i = add i64 %41, %sub + store i64 %add21.i.i, ptr %40, align 8 + %42 = trunc i64 %indvars.iv30.i.i to i32 + %cmp15.i.i = icmp sgt i32 %42, 1 br i1 %cmp15.i.i, label %while.body.i.i, label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE9PropagateEPS3_imNS3_8OpResultE.exit, !llvm.loop !18 -do.cond.i.i: ; preds = %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i, %do.body.i.i - %result.sroa.0.1.i.i = phi ptr [ %result.sroa.0.0.i.i, %do.body.i.i ], [ %retval.sroa.0.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ] - %result.sroa.7.1.i.i = phi i32 [ %result.sroa.7.0.i.i, %do.body.i.i ], [ %retval.sroa.5.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ] +do.cond.i.i: ; preds = %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i, %sw.bb.i.i, %do.body.i.i + %result.sroa.0.1.i.i = phi ptr [ %result.sroa.0.0.i.i, %do.body.i.i ], [ %retval.sroa.0.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ], [ %27, %sw.bb.i.i ] + %result.sroa.7.1.i.i = phi i32 [ %result.sroa.7.0.i.i, %do.body.i.i ], [ %retval.sroa.5.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE0EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ], [ %28, %sw.bb.i.i ] %cmp22.i.i = icmp sgt i64 %indvars.iv.i.i, 1 %indvars.iv.next28.i.i = add nsw i64 %indvars.iv27.i.i, -1 br i1 %cmp22.i.i, label %do.body.i.i, label %if.end.i.i, !llvm.loop !19 @@ -1079,7 +1086,7 @@ if.end.i.i: ; preds = %do.cond.i.i, %if.en br label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE9PropagateEPS3_imNS3_8OpResultE.exit _ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE9PropagateEPS3_imNS3_8OpResultE.exit: ; preds = %while.body.i.i, %sw.bb13.i.i, %if.end.i.i - %retval.0.i.i = phi ptr [ %call23.i.i, %if.end.i.i ], [ %24, %sw.bb13.i.i ], [ %38, %while.body.i.i ] + %retval.0.i.i = phi ptr [ %call23.i.i, %if.end.i.i ], [ %24, %sw.bb13.i.i ], [ %40, %while.body.i.i ] %add23 = add nuw nsw i32 %conv.i, 1 store i32 %add23, ptr %ops, align 8 br label %if.end24 @@ -1089,8 +1096,8 @@ if.end24: ; preds = %_ZN4absl13cord_inte %data.sroa.0.0 = phi i64 [ %17, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE9PropagateEPS3_imNS3_8OpResultE.exit ], [ %data.coerce0, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE10BuildStackEPS3_i.exit ] %tree.addr.0 = phi ptr [ %retval.0.i.i, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE9PropagateEPS3_imNS3_8OpResultE.exit ], [ %tree, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE10BuildStackEPS3_i.exit ] %call2869 = tail call noundef ptr @_ZN4absl13cord_internal12CordRepBtree7NewLeafILNS1_8EdgeTypeE0EEEPS1_St17basic_string_viewIcSt11char_traitsIcEEm(i64 %data.sroa.0.0, ptr %data.sroa.11.0, i64 noundef %extra) - %41 = load i64, ptr %call2869, align 8 - %cmp3270 = icmp eq i64 %41, %data.sroa.0.0 + %43 = load i64, ptr %call2869, align 8 + %cmp3270 = icmp eq i64 %43, %data.sroa.0.0 br i1 %cmp3270, label %if.then33, label %if.end38 if.then33: ; preds = %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit, %if.end24 @@ -1102,48 +1109,48 @@ if.then33: ; preds = %_ZN4absl13cord_inte br label %return if.end38: ; preds = %if.end24, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit - %42 = phi i64 [ %47, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit ], [ %41, %if.end24 ] + %44 = phi i64 [ %49, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit ], [ %43, %if.end24 ] %call2874 = phi ptr [ %call28, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit ], [ %call2869, %if.end24 ] %tree.addr.173 = phi ptr [ %call47, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit ], [ %tree.addr.0, %if.end24 ] %depth.072 = phi i32 [ %conv.i41, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit ], [ %conv.i, %if.end24 ] %data.sroa.0.171 = phi i64 [ %.sroa.speculated.i.i, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit ], [ %data.sroa.0.0, %if.end24 ] - %sub.i39 = sub i64 %data.sroa.0.171, %42 + %sub.i39 = sub i64 %data.sroa.0.171, %44 %.sroa.speculated.i.i = tail call i64 @llvm.umin.i64(i64 %data.sroa.0.171, i64 %sub.i39) - %call47 = call fastcc noundef ptr @_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE6UnwindILb0EEEPS3_S7_imNS3_8OpResultE(ptr noundef nonnull align 8 dereferenceable(104) %ops, ptr noundef %tree.addr.173, i32 noundef %depth.072, i64 noundef %42, ptr nonnull %call2874, i32 2) + %call47 = call fastcc noundef ptr @_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE6UnwindILb0EEEPS3_S7_imNS3_8OpResultE(ptr noundef nonnull align 8 dereferenceable(104) %ops, ptr noundef %tree.addr.173, i32 noundef %depth.072, i64 noundef %44, ptr nonnull %call2874, i32 2) %storage.i40 = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %call47, i64 0, i32 3 - %43 = load i8, ptr %storage.i40, align 1 - %conv.i41 = zext i8 %43 to i32 - %cmp4.i.not = icmp eq i8 %43, 0 + %45 = load i8, ptr %storage.i40, align 1 + %conv.i41 = zext i8 %45 to i32 + %cmp4.i.not = icmp eq i8 %45, 0 br i1 %cmp4.i.not, label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit, label %while.body.preheader.i while.body.preheader.i: ; preds = %if.end38 - %wide.trip.count.i43 = zext i8 %43 to i64 + %wide.trip.count.i43 = zext i8 %45 to i64 br label %while.body.i44 while.body.i44: ; preds = %while.body.i44, %while.body.preheader.i %indvars.iv.i45 = phi i64 [ 0, %while.body.preheader.i ], [ %indvars.iv.next.i46, %while.body.i44 ] - %tree.addr.05.i = phi ptr [ %call47, %while.body.preheader.i ], [ %45, %while.body.i44 ] + %tree.addr.05.i = phi ptr [ %call47, %while.body.preheader.i ], [ %47, %while.body.i44 ] %indvars.iv.next.i46 = add nuw nsw i64 %indvars.iv.i45, 1 %arrayidx.i47 = getelementptr inbounds %"struct.absl::cord_internal::(anonymous namespace)::StackOperations", ptr %ops, i64 0, i32 1, i64 %indvars.iv.i45 store ptr %tree.addr.05.i, ptr %arrayidx.i47, align 8 %arrayidx.i.i.i48 = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %tree.addr.05.i, i64 0, i32 3, i64 1 - %44 = load i8, ptr %arrayidx.i.i.i48, align 1 - %conv.i.i.i49 = zext i8 %44 to i64 + %46 = load i8, ptr %arrayidx.i.i.i48, align 1 + %conv.i.i.i49 = zext i8 %46 to i64 %arrayidx.i.i50 = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %tree.addr.05.i, i64 0, i32 1, i64 %conv.i.i.i49 - %45 = load ptr, ptr %arrayidx.i.i50, align 8 + %47 = load ptr, ptr %arrayidx.i.i50, align 8 %exitcond.not.i51 = icmp eq i64 %indvars.iv.next.i46, %wide.trip.count.i43 br i1 %exitcond.not.i51, label %while.end.loopexit.i52, label %while.body.i44, !llvm.loop !20 while.end.loopexit.i52: ; preds = %while.body.i44 - %46 = add nuw nsw i32 %conv.i41, 1 + %48 = add nuw nsw i32 %conv.i41, 1 br label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit _ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE0EE15BuildOwnedStackEPS3_i.exit: ; preds = %if.end38, %while.end.loopexit.i52 - %depth.0.lcssa.i = phi i32 [ 1, %if.end38 ], [ %46, %while.end.loopexit.i52 ] + %depth.0.lcssa.i = phi i32 [ 1, %if.end38 ], [ %48, %while.end.loopexit.i52 ] store i32 %depth.0.lcssa.i, ptr %ops, align 8 %call28 = tail call noundef ptr @_ZN4absl13cord_internal12CordRepBtree7NewLeafILNS1_8EdgeTypeE0EEEPS1_St17basic_string_viewIcSt11char_traitsIcEEm(i64 %.sroa.speculated.i.i, ptr %data.sroa.11.0, i64 noundef %extra) - %47 = load i64, ptr %call28, align 8 - %cmp32 = icmp eq i64 %47, %.sroa.speculated.i.i + %49 = load i64, ptr %call28, align 8 + %cmp32 = icmp eq i64 %49, %.sroa.speculated.i.i br i1 %cmp32, label %if.then33, label %if.end38, !llvm.loop !21 return: ; preds = %entry, %if.then33, %if.then12 @@ -1500,45 +1507,52 @@ do.body.i.i: ; preds = %do.cond.i.i, %do.bo %indvars.iv.next.i.i = add nsw i64 %indvars.iv.i.i, -1 %arrayidx.i.i35 = getelementptr inbounds %"struct.absl::cord_internal::(anonymous namespace)::StackOperations.0", ptr %ops, i64 0, i32 1, i64 %indvars.iv.next.i.i %24 = load ptr, ptr %arrayidx.i.i35, align 8 + %25 = load i32, ptr %ops, align 8 + %26 = sext i32 %25 to i64 + %cmp2.i.i = icmp sle i64 %indvars.iv.i.i, %26 switch i32 %result.sroa.7.0.i.i, label %do.cond.i.i [ - i32 0, label %sw.bb13.i.i + i32 2, label %sw.bb.i.i i32 1, label %sw.bb4.i.i + i32 0, label %sw.bb13.i.i ] +sw.bb.i.i: ; preds = %do.body.i.i + %call.i.i = tail call { ptr, i32 } @_ZN4absl13cord_internal12CordRepBtree7AddEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm(ptr noundef nonnull align 8 dereferenceable(64) %24, i1 noundef zeroext %cmp2.i.i, ptr noundef %result.sroa.0.0.i.i, i64 noundef %sub) + %27 = extractvalue { ptr, i32 } %call.i.i, 0 + %28 = extractvalue { ptr, i32 } %call.i.i, 1 + br label %do.cond.i.i + sw.bb4.i.i: ; preds = %do.body.i.i - %25 = load i32, ptr %ops, align 8 - %26 = sext i32 %25 to i64 - %cmp2.i.i.not = icmp sgt i64 %indvars.iv.i.i, %26 %arrayidx.i1.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %24, i64 0, i32 3, i64 2 - %27 = load i8, ptr %arrayidx.i1.i.i.i.i, align 1 - %conv.i2.i.i.i.i = zext i8 %27 to i64 + %29 = load i8, ptr %arrayidx.i1.i.i.i.i, align 1 + %conv.i2.i.i.i.i = zext i8 %29 to i64 %sub.i.i.i.i.i = add nsw i64 %conv.i2.i.i.i.i, -1 - br i1 %cmp2.i.i.not, label %if.else.i.i.i, label %if.then.i.i.i + br i1 %cmp2.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %sw.bb4.i.i %arrayidx.i.i.i = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %24, i64 0, i32 1, i64 %sub.i.i.i.i.i - %28 = load ptr, ptr %arrayidx.i.i.i, align 8 - %refcount.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %28, i64 0, i32 1 - %29 = atomicrmw sub ptr %refcount.i.i.i.i, i32 2 acq_rel, align 4 - %cmp.i.not.i.i.i.i = icmp eq i32 %29, 2 + %30 = load ptr, ptr %arrayidx.i.i.i, align 8 + %refcount.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %30, i64 0, i32 1 + %31 = atomicrmw sub ptr %refcount.i.i.i.i, i32 2 acq_rel, align 4 + %cmp.i.not.i.i.i.i = icmp eq i32 %31, 2 br i1 %cmp.i.not.i.i.i.i, label %if.then.i.i.i.i, label %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i if.then.i.i.i.i: ; preds = %if.then.i.i.i - tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef %28) + tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef %30) br label %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i if.else.i.i.i: ; preds = %sw.bb4.i.i %arrayidx.i.i.i.i.i36 = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %24, i64 0, i32 3, i64 1 - %30 = load i8, ptr %arrayidx.i.i.i.i.i36, align 1 - %31 = load i64, ptr %24, align 8 + %32 = load i8, ptr %arrayidx.i.i.i.i.i36, align 1 + %33 = load i64, ptr %24, align 8 %call.i.i.i.i = tail call noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #20 %refcount.i.i.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %call.i.i.i.i, i64 0, i32 1 store i32 2, ptr %refcount.i.i.i.i.i.i, align 4 - store i64 %31, ptr %call.i.i.i.i, align 8 + store i64 %33, ptr %call.i.i.i.i, align 8 %tag.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %call.i.i.i.i, i64 0, i32 2 %tag2.i.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %24, i64 0, i32 2 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(52) %tag.i.i.i.i, ptr noundef nonnull align 4 dereferenceable(52) %tag2.i.i.i.i, i64 52, i1 false) - %conv.i.i.i.i37 = zext i8 %30 to i64 + %conv.i.i.i.i37 = zext i8 %32 to i64 %edges_.i.i.i.i = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %24, i64 0, i32 1 %add.ptr.i9.i.i.i = getelementptr inbounds ptr, ptr %edges_.i.i.i.i, i64 %sub.i.i.i.i.i %cmp.not12.i.i.i = icmp eq i64 %sub.i.i.i.i.i, %conv.i.i.i.i37 @@ -1550,9 +1564,9 @@ for.body.preheader.i.i.i: ; preds = %if.else.i.i.i for.body.i.i.i: ; preds = %for.body.i.i.i, %for.body.preheader.i.i.i %__begin3.013.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %for.body.i.i.i ], [ %add.ptr.i.i.i.i, %for.body.preheader.i.i.i ] - %32 = load ptr, ptr %__begin3.013.i.i.i, align 8, !nonnull !8, !noundef !8 - %refcount.i10.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %32, i64 0, i32 1 - %33 = atomicrmw add ptr %refcount.i10.i.i.i, i32 2 monotonic, align 4 + %34 = load ptr, ptr %__begin3.013.i.i.i, align 8, !nonnull !8, !noundef !8 + %refcount.i10.i.i.i = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %34, i64 0, i32 1 + %35 = atomicrmw add ptr %refcount.i10.i.i.i, i32 2 monotonic, align 4 %incdec.ptr.i.i.i = getelementptr inbounds ptr, ptr %__begin3.013.i.i.i, i64 1 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr.i9.i.i.i br i1 %cmp.not.i.i.i, label %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i, label %for.body.i.i.i @@ -1562,18 +1576,18 @@ _ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEb %retval.sroa.5.0.i.i.i = phi i32 [ 0, %if.then.i.i.i ], [ 0, %if.then.i.i.i.i ], [ 1, %if.else.i.i.i ], [ 1, %for.body.i.i.i ] %arrayidx16.i.i.i = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %retval.sroa.0.0.i.i.i, i64 0, i32 1, i64 %sub.i.i.i.i.i store ptr %result.sroa.0.0.i.i, ptr %arrayidx16.i.i.i, align 8 - %34 = load i64, ptr %retval.sroa.0.0.i.i.i, align 8 - %add19.i.i.i = add i64 %34, %sub + %36 = load i64, ptr %retval.sroa.0.0.i.i.i, align 8 + %add19.i.i.i = add i64 %36, %sub store i64 %add19.i.i.i, ptr %retval.sroa.0.0.i.i.i, align 8 store ptr %retval.sroa.0.0.i.i.i, ptr %arrayidx.i.i35, align 8 br label %do.cond.i.i sw.bb13.i.i: ; preds = %do.body.i.i - %35 = trunc i64 %indvars.iv.i.i to i32 - %36 = load i64, ptr %24, align 8 - %add.i.i = add i64 %36, %sub + %37 = trunc i64 %indvars.iv.i.i to i32 + %38 = load i64, ptr %24, align 8 + %add.i.i = add i64 %38, %sub store i64 %add.i.i, ptr %24, align 8 - %cmp1520.i.i = icmp sgt i32 %35, 1 + %cmp1520.i.i = icmp sgt i32 %37, 1 br i1 %cmp1520.i.i, label %while.body.i.i, label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE9PropagateEPS3_imNS3_8OpResultE.exit while.body.i.i: ; preds = %sw.bb13.i.i, %while.body.i.i @@ -1581,17 +1595,17 @@ while.body.i.i: ; preds = %sw.bb13.i.i, %while %indvars.iv.next31.i.i = add nsw i64 %indvars.iv30.i.i, -1 %idxprom18.i.i = and i64 %indvars.iv.next31.i.i, 4294967295 %arrayidx19.i.i = getelementptr inbounds %"struct.absl::cord_internal::(anonymous namespace)::StackOperations.0", ptr %ops, i64 0, i32 1, i64 %idxprom18.i.i - %37 = load ptr, ptr %arrayidx19.i.i, align 8 - %38 = load i64, ptr %37, align 8 - %add21.i.i = add i64 %38, %sub - store i64 %add21.i.i, ptr %37, align 8 - %39 = trunc i64 %indvars.iv30.i.i to i32 - %cmp15.i.i = icmp sgt i32 %39, 1 + %39 = load ptr, ptr %arrayidx19.i.i, align 8 + %40 = load i64, ptr %39, align 8 + %add21.i.i = add i64 %40, %sub + store i64 %add21.i.i, ptr %39, align 8 + %41 = trunc i64 %indvars.iv30.i.i to i32 + %cmp15.i.i = icmp sgt i32 %41, 1 br i1 %cmp15.i.i, label %while.body.i.i, label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE9PropagateEPS3_imNS3_8OpResultE.exit, !llvm.loop !24 -do.cond.i.i: ; preds = %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i, %do.body.i.i - %result.sroa.0.1.i.i = phi ptr [ %result.sroa.0.0.i.i, %do.body.i.i ], [ %retval.sroa.0.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ] - %result.sroa.7.1.i.i = phi i32 [ %result.sroa.7.0.i.i, %do.body.i.i ], [ %retval.sroa.5.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ] +do.cond.i.i: ; preds = %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i, %sw.bb.i.i, %do.body.i.i + %result.sroa.0.1.i.i = phi ptr [ %result.sroa.0.0.i.i, %do.body.i.i ], [ %retval.sroa.0.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ], [ %27, %sw.bb.i.i ] + %result.sroa.7.1.i.i = phi i32 [ %result.sroa.7.0.i.i, %do.body.i.i ], [ %retval.sroa.5.0.i.i.i, %_ZN4absl13cord_internal12CordRepBtree7SetEdgeILNS1_8EdgeTypeE1EEENS1_8OpResultEbPNS0_7CordRepEm.exit.i.i ], [ %28, %sw.bb.i.i ] %cmp22.i.i = icmp sgt i64 %indvars.iv.i.i, 1 %indvars.iv.next28.i.i = add nsw i64 %indvars.iv27.i.i, -1 br i1 %cmp22.i.i, label %do.body.i.i, label %if.end.i.i, !llvm.loop !25 @@ -1603,7 +1617,7 @@ if.end.i.i: ; preds = %do.cond.i.i, %if.en br label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE9PropagateEPS3_imNS3_8OpResultE.exit _ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE9PropagateEPS3_imNS3_8OpResultE.exit: ; preds = %while.body.i.i, %sw.bb13.i.i, %if.end.i.i - %retval.0.i.i = phi ptr [ %call23.i.i, %if.end.i.i ], [ %24, %sw.bb13.i.i ], [ %37, %while.body.i.i ] + %retval.0.i.i = phi ptr [ %call23.i.i, %if.end.i.i ], [ %24, %sw.bb13.i.i ], [ %39, %while.body.i.i ] %add23 = add nuw nsw i32 %conv.i, 1 store i32 %add23, ptr %ops, align 8 br label %if.end24 @@ -1613,8 +1627,8 @@ if.end24: ; preds = %_ZN4absl13cord_inte %data.sroa.0.0 = phi i64 [ %17, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE9PropagateEPS3_imNS3_8OpResultE.exit ], [ %data.coerce0, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE10BuildStackEPS3_i.exit ] %tree.addr.0 = phi ptr [ %retval.0.i.i, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE9PropagateEPS3_imNS3_8OpResultE.exit ], [ %tree, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE10BuildStackEPS3_i.exit ] %call2874 = tail call noundef ptr @_ZN4absl13cord_internal12CordRepBtree7NewLeafILNS1_8EdgeTypeE1EEEPS1_St17basic_string_viewIcSt11char_traitsIcEEm(i64 %data.sroa.0.0, ptr %data.sroa.11.0, i64 noundef %extra) - %40 = load i64, ptr %call2874, align 8 - %cmp3275 = icmp eq i64 %40, %data.sroa.0.0 + %42 = load i64, ptr %call2874, align 8 + %cmp3275 = icmp eq i64 %42, %data.sroa.0.0 br i1 %cmp3275, label %if.then33, label %if.end38 if.then33: ; preds = %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit, %if.end24 @@ -1626,58 +1640,58 @@ if.then33: ; preds = %_ZN4absl13cord_inte br label %return if.end38: ; preds = %if.end24, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit - %41 = phi i64 [ %46, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit ], [ %40, %if.end24 ] + %43 = phi i64 [ %48, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit ], [ %42, %if.end24 ] %call2880 = phi ptr [ %call28, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit ], [ %call2874, %if.end24 ] %tree.addr.179 = phi ptr [ %call47, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit ], [ %tree.addr.0, %if.end24 ] %depth.078 = phi i32 [ %conv.i40, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit ], [ %conv.i, %if.end24 ] %data.sroa.0.177 = phi i64 [ %sub.i.i, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit ], [ %data.sroa.0.0, %if.end24 ] %data.sroa.11.176 = phi ptr [ %add.ptr.i.i, %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit ], [ %data.sroa.11.0, %if.end24 ] - %cmp.i.i.i = icmp ult i64 %data.sroa.0.177, %41 + %cmp.i.i.i = icmp ult i64 %data.sroa.0.177, %43 br i1 %cmp.i.i.i, label %if.then.i.i.i38, label %_ZN4absl13cord_internal12_GLOBAL__N_17ConsumeILNS0_12CordRepBtree8EdgeTypeE1EEESt17basic_string_viewIcSt11char_traitsIcEES8_m.exit if.then.i.i.i38: ; preds = %if.end38 - tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.39, i64 noundef %41, i64 noundef %data.sroa.0.177) #22 + tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.39, i64 noundef %43, i64 noundef %data.sroa.0.177) #22 unreachable _ZN4absl13cord_internal12_GLOBAL__N_17ConsumeILNS0_12CordRepBtree8EdgeTypeE1EEESt17basic_string_viewIcSt11char_traitsIcEES8_m.exit: ; preds = %if.end38 - %sub.i.i = sub i64 %data.sroa.0.177, %41 - %add.ptr.i.i = getelementptr inbounds i8, ptr %data.sroa.11.176, i64 %41 - %call47 = call fastcc noundef ptr @_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE6UnwindILb0EEEPS3_S7_imNS3_8OpResultE(ptr noundef nonnull align 8 dereferenceable(104) %ops, ptr noundef %tree.addr.179, i32 noundef %depth.078, i64 noundef %41, ptr nonnull %call2880, i32 2) + %sub.i.i = sub i64 %data.sroa.0.177, %43 + %add.ptr.i.i = getelementptr inbounds i8, ptr %data.sroa.11.176, i64 %43 + %call47 = call fastcc noundef ptr @_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE6UnwindILb0EEEPS3_S7_imNS3_8OpResultE(ptr noundef nonnull align 8 dereferenceable(104) %ops, ptr noundef %tree.addr.179, i32 noundef %depth.078, i64 noundef %43, ptr nonnull %call2880, i32 2) %storage.i39 = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %call47, i64 0, i32 3 - %42 = load i8, ptr %storage.i39, align 1 - %conv.i40 = zext i8 %42 to i32 - %cmp4.i.not = icmp eq i8 %42, 0 + %44 = load i8, ptr %storage.i39, align 1 + %conv.i40 = zext i8 %44 to i32 + %cmp4.i.not = icmp eq i8 %44, 0 br i1 %cmp4.i.not, label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit, label %while.body.preheader.i while.body.preheader.i: ; preds = %_ZN4absl13cord_internal12_GLOBAL__N_17ConsumeILNS0_12CordRepBtree8EdgeTypeE1EEESt17basic_string_viewIcSt11char_traitsIcEES8_m.exit - %wide.trip.count.i42 = zext i8 %42 to i64 + %wide.trip.count.i42 = zext i8 %44 to i64 br label %while.body.i43 while.body.i43: ; preds = %while.body.i43, %while.body.preheader.i %indvars.iv.i44 = phi i64 [ 0, %while.body.preheader.i ], [ %indvars.iv.next.i45, %while.body.i43 ] - %tree.addr.05.i = phi ptr [ %call47, %while.body.preheader.i ], [ %44, %while.body.i43 ] + %tree.addr.05.i = phi ptr [ %call47, %while.body.preheader.i ], [ %46, %while.body.i43 ] %indvars.iv.next.i45 = add nuw nsw i64 %indvars.iv.i44, 1 %arrayidx.i46 = getelementptr inbounds %"struct.absl::cord_internal::(anonymous namespace)::StackOperations.0", ptr %ops, i64 0, i32 1, i64 %indvars.iv.i44 store ptr %tree.addr.05.i, ptr %arrayidx.i46, align 8 %arrayidx.i1.i.i47 = getelementptr inbounds %"struct.absl::cord_internal::CordRep", ptr %tree.addr.05.i, i64 0, i32 3, i64 2 - %43 = load i8, ptr %arrayidx.i1.i.i47, align 1 - %conv.i2.i.i48 = zext i8 %43 to i64 + %45 = load i8, ptr %arrayidx.i1.i.i47, align 1 + %conv.i2.i.i48 = zext i8 %45 to i64 %sub.i.i.i49 = add nsw i64 %conv.i2.i.i48, -1 %arrayidx.i.i50 = getelementptr inbounds %"class.absl::cord_internal::CordRepBtree", ptr %tree.addr.05.i, i64 0, i32 1, i64 %sub.i.i.i49 - %44 = load ptr, ptr %arrayidx.i.i50, align 8 + %46 = load ptr, ptr %arrayidx.i.i50, align 8 %exitcond.not.i51 = icmp eq i64 %indvars.iv.next.i45, %wide.trip.count.i42 br i1 %exitcond.not.i51, label %while.end.loopexit.i52, label %while.body.i43, !llvm.loop !26 while.end.loopexit.i52: ; preds = %while.body.i43 - %45 = add nuw nsw i32 %conv.i40, 1 + %47 = add nuw nsw i32 %conv.i40, 1 br label %_ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit _ZN4absl13cord_internal12_GLOBAL__N_115StackOperationsILNS0_12CordRepBtree8EdgeTypeE1EE15BuildOwnedStackEPS3_i.exit: ; preds = %_ZN4absl13cord_internal12_GLOBAL__N_17ConsumeILNS0_12CordRepBtree8EdgeTypeE1EEESt17basic_string_viewIcSt11char_traitsIcEES8_m.exit, %while.end.loopexit.i52 - %depth.0.lcssa.i = phi i32 [ 1, %_ZN4absl13cord_internal12_GLOBAL__N_17ConsumeILNS0_12CordRepBtree8EdgeTypeE1EEESt17basic_string_viewIcSt11char_traitsIcEES8_m.exit ], [ %45, %while.end.loopexit.i52 ] + %depth.0.lcssa.i = phi i32 [ 1, %_ZN4absl13cord_internal12_GLOBAL__N_17ConsumeILNS0_12CordRepBtree8EdgeTypeE1EEESt17basic_string_viewIcSt11char_traitsIcEES8_m.exit ], [ %47, %while.end.loopexit.i52 ] store i32 %depth.0.lcssa.i, ptr %ops, align 8 %call28 = tail call noundef ptr @_ZN4absl13cord_internal12CordRepBtree7NewLeafILNS1_8EdgeTypeE1EEEPS1_St17basic_string_viewIcSt11char_traitsIcEEm(i64 %sub.i.i, ptr %add.ptr.i.i, i64 noundef %extra) - %46 = load i64, ptr %call28, align 8 - %cmp32 = icmp eq i64 %46, %sub.i.i + %48 = load i64, ptr %call28, align 8 + %cmp32 = icmp eq i64 %48, %sub.i.i br i1 %cmp32, label %if.then33, label %if.end38, !llvm.loop !27 return: ; preds = %entry, %if.then33, %if.then12 @@ -5715,7 +5729,7 @@ _ZNK4absl13cord_internal12CordRepBtree4DataEm.exit: ; preds = %cond.true.i.i, %c ret i8 %13 } -; Function Attrs: mustprogress nofree nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local { ptr, i64 } @_ZN4absl13cord_internal12CordRepBtree19GetAppendBufferSlowEm(ptr nocapture noundef nonnull align 8 dereferenceable(64) %this, i64 noundef %size) local_unnamed_addr #8 align 2 { entry: %stack = alloca [12 x ptr], align 16 @@ -7362,7 +7376,7 @@ attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #5 = { mustprogress nofree norecurse nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { mustprogress nofree nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #8 = { mustprogress nofree norecurse nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #10 = { mustprogress nounwind uwtable "frame-pointer"="all" "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 #11 = { nobuiltin allocsize(0) "frame-pointer"="all" "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" } diff --git a/bench/abseil-cpp/optimized/graphcycles_test.cc.ll b/bench/abseil-cpp/optimized/graphcycles_test.cc.ll index 3a333a1b5ab..f9cbbace6e0 100644 --- a/bench/abseil-cpp/optimized/graphcycles_test.cc.ll +++ b/bench/abseil-cpp/optimized/graphcycles_test.cc.ll @@ -321,7 +321,6 @@ $_ZN7testing8internal12TypeIdHelperIN4absl24synchronization_internal15GraphCycle @.str.27 = private unnamed_addr constant [14 x i8] c"id[nodes[to]]\00", align 1 @.str.28 = private unnamed_addr constant [17 x i8] c"path[path_len-1]\00", align 1 @.str.29 = private unnamed_addr constant [41 x i8] c"graph_cycles.HasEdge(path[i-1], path[i])\00", align 1 -@.str.30 = private unnamed_addr constant [4 x i8] c"op \00", align 1 @.str.31 = private unnamed_addr constant [5 x i8] c"node\00", align 1 @.str.32 = private unnamed_addr constant [9 x i8] c"new_node\00", align 1 @.str.33 = private unnamed_addr constant [13 x i8] c"nodes.size()\00", align 1 @@ -648,7 +647,6 @@ entry: %ref.tmp568 = alloca %"class.testing::Message", align 8 %ref.tmp570 = alloca %"class.testing::internal::AssertHelper", align 8 %ref.tmp571 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp599 = alloca %"class.absl::log_internal::LogMessageFatal", align 8 %new_node620 = alloca i32, align 4 %new_gnode622 = alloca %"struct.absl::synchronization_internal::GraphId", align 8 %gtest_ar629 = alloca %"class.testing::AssertionResult", align 8 @@ -900,7 +898,7 @@ lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.lo cleanup br label %ehcleanup805 -lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i1040.invoke, %cond.false.i1141, %cond.false.i902, %sw.default, %invoke.cont3, %invoke.cont +lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i1040.invoke, %cond.false.i1141, %cond.false.i902, %invoke.cont3, %invoke.cont %lpad.loopexit.split-lp1238 = landingpad { ptr, i32 } cleanup br label %ehcleanup805 @@ -1061,7 +1059,7 @@ while.cond.if.end.loopexit_crit_edge.i.i.i: ; preds = %call4.i.i.i.noexc invoke.cont46: ; preds = %while.cond.if.end.loopexit_crit_edge.i.i.i, %call.i.i.i.noexc %__ret.0.i.i = phi i32 [ %extract.t10.i.i.i, %call.i.i.i.noexc ], [ %extract.t14.le.i.i.i, %while.cond.if.end.loopexit_crit_edge.i.i.i ] - switch i32 %__ret.0.i.i, label %sw.default [ + switch i32 %__ret.0.i.i, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb120 i32 2, label %sw.bb187 @@ -1705,16 +1703,16 @@ call.i.i.i.i.noexc361: ; preds = %if.then.i.i.i338 %mul.i.i.i.i342 = mul nuw i128 %conv.i.i.i.i340, %conv1.i.i.i.i341 %conv2.i.i.i.i343 = trunc i128 %mul.i.i.i.i342 to i64 %cmp.i.i.i.i344 = icmp ugt i64 %add.i.i.i339, %conv2.i.i.i.i343 - %extract1517 = lshr i128 %mul.i.i.i.i342, 64 - %extract.t1518 = trunc i128 %extract1517 to i32 + %extract1482 = lshr i128 %mul.i.i.i.i342, 64 + %extract.t1483 = trunc i128 %extract1482 to i32 br i1 %cmp.i.i.i.i344, label %if.then.i.i.i.i348, label %if.then.i.i.i375 if.then.i.i.i.i348: ; preds = %call.i.i.i.i.noexc361 %sub.i.i.i.i349 = xor i64 %conv.i.i.i336, -1 %rem.i.i.i.i350 = urem i64 %sub.i.i.i.i349, %add.i.i.i339 %cmp315.i.i.i.i351 = icmp ugt i64 %rem.i.i.i.i350, %conv2.i.i.i.i343 - %extract1515 = lshr i128 %mul.i.i.i.i342, 64 - %extract.t1516 = trunc i128 %extract1515 to i32 + %extract1480 = lshr i128 %mul.i.i.i.i342, 64 + %extract.t1481 = trunc i128 %extract1480 to i32 br i1 %cmp315.i.i.i.i351, label %while.body.i.i.i.i352, label %if.then.i.i.i375 while.body.i.i.i.i352: ; preds = %if.then.i.i.i.i348, %call4.i.i.i.i.noexc363 @@ -1733,12 +1731,12 @@ if.else15.i.i.i360: ; preds = %if.then190 to label %if.else15.i.i.i397 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont192: ; preds = %call4.i.i.i.i.noexc363 - %extract1513 = lshr i128 %mul7.i.i.i.i354, 64 - %extract.t1514 = trunc i128 %extract1513 to i32 + %extract1478 = lshr i128 %mul7.i.i.i.i354, 64 + %extract.t1479 = trunc i128 %extract1478 to i32 br label %if.then.i.i.i375 if.then.i.i.i375: ; preds = %call.i.i.i.i.noexc361, %if.then.i.i.i.i348, %invoke.cont192 - %extract13.le.i.i.i.i358.sink.in.off64 = phi i32 [ %extract.t1514, %invoke.cont192 ], [ %extract.t1516, %if.then.i.i.i.i348 ], [ %extract.t1518, %call.i.i.i.i.noexc361 ] + %extract13.le.i.i.i.i358.sink.in.off64 = phi i32 [ %extract.t1479, %invoke.cont192 ], [ %extract.t1481, %if.then.i.i.i.i348 ], [ %extract.t1483, %call.i.i.i.i.noexc361 ] %call.i.i.i.i399 = invoke noundef i64 @_ZNSt23mersenne_twister_engineImLm64ELm312ELm156ELm31ELm13043109905998158313ELm29ELm6148914691236517205ELm17ELm8202884508482404352ELm37ELm18444473444759240704ELm43ELm6364136223846793005EEclEv(ptr noundef nonnull align 8 dereferenceable(2504) %rng) to label %call.i.i.i.i.noexc398 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit @@ -2404,16 +2402,16 @@ call.i.i.i.i.noexc622: ; preds = %if.then.i.i.i599 %mul.i.i.i.i603 = mul nuw i128 %conv.i.i.i.i601, %conv1.i.i.i.i602 %conv2.i.i.i.i604 = trunc i128 %mul.i.i.i.i603 to i64 %cmp.i.i.i.i605 = icmp ugt i64 %add.i.i.i600, %conv2.i.i.i.i604 - %extract1511 = lshr i128 %mul.i.i.i.i603, 64 - %extract.t1512 = trunc i128 %extract1511 to i32 + %extract1476 = lshr i128 %mul.i.i.i.i603, 64 + %extract.t1477 = trunc i128 %extract1476 to i32 br i1 %cmp.i.i.i.i605, label %if.then.i.i.i.i609, label %if.then.i.i.i636 if.then.i.i.i.i609: ; preds = %call.i.i.i.i.noexc622 %sub.i.i.i.i610 = xor i64 %conv.i.i.i597, -1 %rem.i.i.i.i611 = urem i64 %sub.i.i.i.i610, %add.i.i.i600 %cmp315.i.i.i.i612 = icmp ugt i64 %rem.i.i.i.i611, %conv2.i.i.i.i604 - %extract1509 = lshr i128 %mul.i.i.i.i603, 64 - %extract.t1510 = trunc i128 %extract1509 to i32 + %extract1474 = lshr i128 %mul.i.i.i.i603, 64 + %extract.t1475 = trunc i128 %extract1474 to i32 br i1 %cmp315.i.i.i.i612, label %while.body.i.i.i.i613, label %if.then.i.i.i636 while.body.i.i.i.i613: ; preds = %if.then.i.i.i.i609, %call4.i.i.i.i.noexc624 @@ -2437,7 +2435,7 @@ invoke.cont366: ; preds = %call4.i.i.i.i.noexc br label %if.then.i.i.i636 if.then.i.i.i636: ; preds = %call.i.i.i.i.noexc622, %if.then.i.i.i.i609, %invoke.cont366 - %extract13.le.i.i.i.i619.sink.in.off64 = phi i32 [ %extract.t, %invoke.cont366 ], [ %extract.t1510, %if.then.i.i.i.i609 ], [ %extract.t1512, %call.i.i.i.i.noexc622 ] + %extract13.le.i.i.i.i619.sink.in.off64 = phi i32 [ %extract.t, %invoke.cont366 ], [ %extract.t1475, %if.then.i.i.i.i609 ], [ %extract.t1477, %call.i.i.i.i.noexc622 ] %call.i.i.i.i660 = invoke noundef i64 @_ZNSt23mersenne_twister_engineImLm64ELm312ELm156ELm31ELm13043109905998158313ELm29ELm6148914691236517205ELm17ELm8202884508482404352ELm37ELm18444473444759240704ELm43ELm6364136223846793005EEclEv(ptr noundef nonnull align 8 dereferenceable(2504) %rng) to label %call.i.i.i.i.noexc659 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit @@ -3358,26 +3356,7 @@ _ZN4absl24synchronization_internalL15CheckInvariantsERKNS0_11GraphCyclesE.exit: call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp1.i) br label %invoke.cont610 -sw.default: ; preds = %invoke.cont46 - invoke void @_ZN4absl12log_internal15LogMessageFatalC1EPKci(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp599, ptr noundef nonnull @.str.3, i32 noundef 311) #26 - to label %invoke.cont600 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont600: ; preds = %sw.default - invoke void @_ZN4absl12log_internal10LogMessage19CopyToEncodedBufferILNS1_10StringTypeE0EEEvSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp599, i64 3, ptr nonnull @.str.30) - to label %invoke.cont604 unwind label %lpad601 - -invoke.cont604: ; preds = %invoke.cont600 - %call607 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12log_internal10LogMessagelsEi(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp599, i32 noundef %__ret.0.i.i) - to label %invoke.cont606 unwind label %lpad601 - -invoke.cont606: ; preds = %invoke.cont604 - call void @_ZN4absl12log_internal15LogMessageFatalD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp599) #27 - unreachable - -lpad601: ; preds = %invoke.cont600, %invoke.cont604 - %265 = landingpad { ptr, i32 } - cleanup - call void @_ZN4absl12log_internal15LogMessageFatalD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp599) #27 +default.unreachable: ; preds = %invoke.cont46 unreachable sw.epilog.critedge: ; preds = %invoke.cont234 @@ -3399,13 +3378,13 @@ invoke.cont610: ; preds = %if.end185, %while.c for.body.i.i.i.i: ; preds = %call11.i.i.i.i.noexc, %invoke.cont610 %__k.013.i.i.i.i = phi i64 [ %spec.select.i.i.i.i, %invoke.cont610 ], [ %dec.i.i.i.i, %call11.i.i.i.i.noexc ] %__tmp.012.i.i.i.i = phi double [ 1.000000e+00, %invoke.cont610 ], [ %conv16.i.i.i.i, %call11.i.i.i.i.noexc ] - %__sum.011.i.i.i.i = phi double [ 0.000000e+00, %invoke.cont610 ], [ %266, %call11.i.i.i.i.noexc ] + %__sum.011.i.i.i.i = phi double [ 0.000000e+00, %invoke.cont610 ], [ %265, %call11.i.i.i.i.noexc ] %call11.i.i.i.i911 = invoke noundef i64 @_ZNSt23mersenne_twister_engineImLm64ELm312ELm156ELm31ELm13043109905998158313ELm29ELm6148914691236517205ELm17ELm8202884508482404352ELm37ELm18444473444759240704ELm43ELm6364136223846793005EEclEv(ptr noundef nonnull align 8 dereferenceable(2504) %rng) to label %call11.i.i.i.i.noexc unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call11.i.i.i.i.noexc: ; preds = %for.body.i.i.i.i %conv14.i.i.i.i = uitofp i64 %call11.i.i.i.i911 to double - %266 = call double @llvm.fmuladd.f64(double %conv14.i.i.i.i, double %__tmp.012.i.i.i.i, double %__sum.011.i.i.i.i) + %265 = call double @llvm.fmuladd.f64(double %conv14.i.i.i.i, double %__tmp.012.i.i.i.i, double %__sum.011.i.i.i.i) %conv15.i.i.i.i = fpext double %__tmp.012.i.i.i.i to x86_fp80 %mul.i.i.i.i907 = fmul x86_fp80 %conv15.i.i.i.i, 0xK403F8000000000000000 %conv16.i.i.i.i = fptrunc x86_fp80 %mul.i.i.i.i907 to double @@ -3414,7 +3393,7 @@ call11.i.i.i.i.noexc: ; preds = %for.body.i.i.i.i br i1 %cmp.not.i.i.i.i908, label %for.end.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !41 for.end.i.i.i.i: ; preds = %call11.i.i.i.i.noexc - %div17.i.i.i.i = fdiv double %266, %conv16.i.i.i.i + %div17.i.i.i.i = fdiv double %265, %conv16.i.i.i.i %cmp18.i.i.i.i = fcmp ult double %div17.i.i.i.i, 1.000000e+00 br i1 %cmp18.i.i.i.i, label %invoke.cont611, label %if.then.i.i.i.i909 @@ -3438,27 +3417,27 @@ invoke.cont614: ; preds = %if.then613 for.cond617.preheader: ; preds = %invoke.cont614 %nodes.promoted = load ptr, ptr %nodes, align 8 %_M_finish.i.promoted = load ptr, ptr %_M_finish.i, align 8 - %267 = sext i32 %next_node.1 to i64 + %266 = sext i32 %next_node.1 to i64 br label %for.body619 for.cond730.preheader: ; preds = %for.inc726 - %268 = trunc i64 %indvars.iv.next1438 to i32 + %267 = trunc i64 %indvars.iv.next1438 to i32 store ptr %cond.i10.i.i10291328, ptr %nodes, align 8 store ptr %incdec.ptr.i10131337, ptr %_M_finish.i, align 8 %sub.ptr.rhs.cast.i1047 = ptrtoint ptr %cond.i10.i.i10291328 to i64 br label %for.body732 for.body619: ; preds = %for.cond617.preheader, %for.inc726 - %indvars.iv1437 = phi i64 [ %267, %for.cond617.preheader ], [ %indvars.iv.next1438, %for.inc726 ] + %indvars.iv1437 = phi i64 [ %266, %for.cond617.preheader ], [ %indvars.iv.next1438, %for.inc726 ] %i616.01351 = phi i32 [ 0, %for.cond617.preheader ], [ %inc727, %for.inc726 ] %cond.i10.i.i102913291350 = phi ptr [ %nodes.promoted, %for.cond617.preheader ], [ %cond.i10.i.i10291328, %for.inc726 ] %incdec.ptr.i101313361349 = phi ptr [ %_M_finish.i.promoted, %for.cond617.preheader ], [ %incdec.ptr.i10131337, %for.inc726 ] %indvars.iv.next1438 = add nsw i64 %indvars.iv1437, 1 - %269 = trunc i64 %indvars.iv1437 to i32 - store i32 %269, ptr %new_node620, align 4 + %268 = trunc i64 %indvars.iv1437 to i32 + store i32 %268, ptr %new_node620, align 4 %add.i912 = add nsw i64 %indvars.iv1437, 17 - %270 = inttoptr i64 %add.i912 to ptr - %call627 = invoke i64 @_ZN4absl24synchronization_internal11GraphCycles5GetIdEPv(ptr noundef nonnull align 8 dereferenceable(8) %graph_cycles, ptr noundef %270) + %269 = inttoptr i64 %add.i912 to ptr + %call627 = invoke i64 @_ZN4absl24synchronization_internal11GraphCycles5GetIdEPv(ptr noundef nonnull align 8 dereferenceable(8) %graph_cycles, ptr noundef %269) to label %invoke.cont626 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont626: ; preds = %for.body619 @@ -3476,13 +3455,13 @@ if.else.i915: ; preds = %invoke.cont626 to label %invoke.cont634 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont634: ; preds = %if.then.i914, %if.else.i915 - %271 = load i8, ptr %gtest_ar629, align 8 - %272 = and i8 %271, 1 - %tobool.i919.not = icmp eq i8 %272, 0 + %270 = load i8, ptr %gtest_ar629, align 8 + %271 = and i8 %270, 1 + %tobool.i919.not = icmp eq i8 %271, 0 br i1 %tobool.i919.not, label %if.else639, label %cleanup.cont654.critedge lpad635: ; preds = %if.else639 - %273 = landingpad { ptr, i32 } + %272 = landingpad { ptr, i32 } cleanup br label %ehcleanup655 @@ -3493,12 +3472,12 @@ if.else639: ; preds = %invoke.cont634 to label %invoke.cont641 unwind label %lpad635 invoke.cont641: ; preds = %if.else639 - %274 = load ptr, ptr %message_.i940, align 8 - %cmp.i.i.not.i.i921 = icmp eq ptr %274, null + %273 = load ptr, ptr %message_.i940, align 8 + %cmp.i.i.not.i.i921 = icmp eq ptr %273, null br i1 %cmp.i.i.not.i.i921, label %invoke.cont644, label %cond.true.i.i922 cond.true.i.i922: ; preds = %invoke.cont641 - %call4.i.i923 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %274) #23 + %call4.i.i923 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %273) #23 br label %invoke.cont644 invoke.cont644: ; preds = %cond.true.i.i922, %invoke.cont641 @@ -3512,26 +3491,26 @@ invoke.cont646: ; preds = %invoke.cont644 invoke.cont648: ; preds = %invoke.cont646 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp642) #23 - %275 = load ptr, ptr %ref.tmp640, align 8 - %cmp.not.i.i926 = icmp eq ptr %275, null + %274 = load ptr, ptr %ref.tmp640, align 8 + %cmp.not.i.i926 = icmp eq ptr %274, null br i1 %cmp.not.i.i926, label %_ZN7testing7MessageD2Ev.exit930, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i927 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i927: ; preds = %invoke.cont648 - %vtable.i.i.i928 = load ptr, ptr %275, align 8 + %vtable.i.i.i928 = load ptr, ptr %274, align 8 %vfn.i.i.i929 = getelementptr inbounds ptr, ptr %vtable.i.i.i928, i64 1 - %276 = load ptr, ptr %vfn.i.i.i929, align 8 - call void %276(ptr noundef nonnull align 8 dereferenceable(128) %275) #23 + %275 = load ptr, ptr %vfn.i.i.i929, align 8 + call void %275(ptr noundef nonnull align 8 dereferenceable(128) %274) #23 br label %_ZN7testing7MessageD2Ev.exit930 _ZN7testing7MessageD2Ev.exit930: ; preds = %invoke.cont648, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i927 store ptr null, ptr %ref.tmp640, align 8 - %277 = load ptr, ptr %message_.i940, align 8 - %cmp.not.i.i932 = icmp eq ptr %277, null + %276 = load ptr, ptr %message_.i940, align 8 + %cmp.not.i.i932 = icmp eq ptr %276, null br i1 %cmp.not.i.i932, label %_ZN7testing15AssertionResultD2Ev.exit934, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i933 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i933: ; preds = %_ZN7testing7MessageD2Ev.exit930 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #23 - call void @_ZdlPv(ptr noundef nonnull %277) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #23 + call void @_ZdlPv(ptr noundef nonnull %276) #24 br label %_ZN7testing15AssertionResultD2Ev.exit934 _ZN7testing15AssertionResultD2Ev.exit934: ; preds = %_ZN7testing7MessageD2Ev.exit930, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i933 @@ -3539,27 +3518,27 @@ _ZN7testing15AssertionResultD2Ev.exit934: ; preds = %_ZN7testing7Message br label %cleanup804 lpad643: ; preds = %invoke.cont644 - %278 = landingpad { ptr, i32 } + %277 = landingpad { ptr, i32 } cleanup br label %ehcleanup650 lpad647: ; preds = %invoke.cont646 - %279 = landingpad { ptr, i32 } + %278 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp642) #23 br label %ehcleanup650 ehcleanup650: ; preds = %lpad647, %lpad643 - %.pn115 = phi { ptr, i32 } [ %279, %lpad647 ], [ %278, %lpad643 ] - %280 = load ptr, ptr %ref.tmp640, align 8 - %cmp.not.i.i935 = icmp eq ptr %280, null + %.pn115 = phi { ptr, i32 } [ %278, %lpad647 ], [ %277, %lpad643 ] + %279 = load ptr, ptr %ref.tmp640, align 8 + %cmp.not.i.i935 = icmp eq ptr %279, null br i1 %cmp.not.i.i935, label %_ZN7testing7MessageD2Ev.exit939, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i936 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i936: ; preds = %ehcleanup650 - %vtable.i.i.i937 = load ptr, ptr %280, align 8 + %vtable.i.i.i937 = load ptr, ptr %279, align 8 %vfn.i.i.i938 = getelementptr inbounds ptr, ptr %vtable.i.i.i937, i64 1 - %281 = load ptr, ptr %vfn.i.i.i938, align 8 - call void %281(ptr noundef nonnull align 8 dereferenceable(128) %280) #23 + %280 = load ptr, ptr %vfn.i.i.i938, align 8 + call void %280(ptr noundef nonnull align 8 dereferenceable(128) %279) #23 br label %_ZN7testing7MessageD2Ev.exit939 _ZN7testing7MessageD2Ev.exit939: ; preds = %ehcleanup650, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i936 @@ -3567,13 +3546,13 @@ _ZN7testing7MessageD2Ev.exit939: ; preds = %ehcleanup650, %_ZNK br label %ehcleanup655 cleanup.cont654.critedge: ; preds = %invoke.cont634 - %282 = load ptr, ptr %message_.i940, align 8 - %cmp.not.i.i941 = icmp eq ptr %282, null + %281 = load ptr, ptr %message_.i940, align 8 + %cmp.not.i.i941 = icmp eq ptr %281, null br i1 %cmp.not.i.i941, label %cleanup.cont654, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i942 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i942: ; preds = %cleanup.cont654.critedge - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #23 - call void @_ZdlPv(ptr noundef nonnull %282) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #23 + call void @_ZdlPv(ptr noundef nonnull %281) #24 br label %cleanup.cont654 cleanup.cont654: ; preds = %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i942, %cleanup.cont654.critedge @@ -3582,20 +3561,20 @@ cleanup.cont654: ; preds = %_ZNKSt14default_del to label %invoke.cont656 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont656: ; preds = %cleanup.cont654 - %283 = load i64, ptr %new_gnode622, align 8 - store i64 %283, ptr %call657, align 8 - %284 = load i32, ptr %new_node620, align 4 - %conv660 = sext i32 %284 to i64 + %282 = load i64, ptr %new_gnode622, align 8 + store i64 %282, ptr %call657, align 8 + %283 = load i32, ptr %new_node620, align 4 + %conv660 = sext i32 %283 to i64 %add.i944 = add nsw i64 %conv660, 17 - %285 = inttoptr i64 %add.i944 to ptr - store ptr %285, ptr %ref.tmp659, align 8 - %call667 = invoke noundef ptr @_ZN4absl24synchronization_internal11GraphCycles3PtrENS0_7GraphIdE(ptr noundef nonnull align 8 dereferenceable(8) %graph_cycles, i64 %283) + %284 = inttoptr i64 %add.i944 to ptr + store ptr %284, ptr %ref.tmp659, align 8 + %call667 = invoke noundef ptr @_ZN4absl24synchronization_internal11GraphCycles3PtrENS0_7GraphIdE(ptr noundef nonnull align 8 dereferenceable(8) %graph_cycles, i64 %282) to label %invoke.cont666 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont666: ; preds = %invoke.cont656 store ptr %call667, ptr %ref.tmp663, align 8 - %286 = load ptr, ptr %ref.tmp659, align 8, !noalias !42 - %cmp.i.i945 = icmp eq ptr %286, %call667 + %285 = load ptr, ptr %ref.tmp659, align 8, !noalias !42 + %cmp.i.i945 = icmp eq ptr %285, %call667 br i1 %cmp.i.i945, label %if.then.i.i947, label %if.end.i.i946 if.then.i.i947: ; preds = %invoke.cont666 @@ -3607,18 +3586,18 @@ if.end.i.i946: ; preds = %invoke.cont666 to label %invoke.cont668 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont668: ; preds = %if.then.i.i947, %if.end.i.i946 - %287 = load i8, ptr %gtest_ar658, align 8 - %288 = and i8 %287, 1 - %tobool.i951.not = icmp eq i8 %288, 0 + %286 = load i8, ptr %gtest_ar658, align 8 + %287 = and i8 %286, 1 + %tobool.i951.not = icmp eq i8 %287, 0 br i1 %tobool.i951.not, label %if.else673, label %cleanup.cont688.critedge ehcleanup655: ; preds = %_ZN7testing7MessageD2Ev.exit939, %lpad635 - %.pn115.pn = phi { ptr, i32 } [ %.pn115, %_ZN7testing7MessageD2Ev.exit939 ], [ %273, %lpad635 ] + %.pn115.pn = phi { ptr, i32 } [ %.pn115, %_ZN7testing7MessageD2Ev.exit939 ], [ %272, %lpad635 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %gtest_ar629) #23 br label %ehcleanup805 lpad669: ; preds = %if.else673 - %289 = landingpad { ptr, i32 } + %288 = landingpad { ptr, i32 } cleanup br label %ehcleanup689 @@ -3629,12 +3608,12 @@ if.else673: ; preds = %invoke.cont668 to label %invoke.cont675 unwind label %lpad669 invoke.cont675: ; preds = %if.else673 - %290 = load ptr, ptr %message_.i972, align 8 - %cmp.i.i.not.i.i953 = icmp eq ptr %290, null + %289 = load ptr, ptr %message_.i972, align 8 + %cmp.i.i.not.i.i953 = icmp eq ptr %289, null br i1 %cmp.i.i.not.i.i953, label %invoke.cont678, label %cond.true.i.i954 cond.true.i.i954: ; preds = %invoke.cont675 - %call4.i.i955 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %290) #23 + %call4.i.i955 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %289) #23 br label %invoke.cont678 invoke.cont678: ; preds = %cond.true.i.i954, %invoke.cont675 @@ -3648,26 +3627,26 @@ invoke.cont680: ; preds = %invoke.cont678 invoke.cont682: ; preds = %invoke.cont680 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp676) #23 - %291 = load ptr, ptr %ref.tmp674, align 8 - %cmp.not.i.i958 = icmp eq ptr %291, null + %290 = load ptr, ptr %ref.tmp674, align 8 + %cmp.not.i.i958 = icmp eq ptr %290, null br i1 %cmp.not.i.i958, label %_ZN7testing7MessageD2Ev.exit962, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i959 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i959: ; preds = %invoke.cont682 - %vtable.i.i.i960 = load ptr, ptr %291, align 8 + %vtable.i.i.i960 = load ptr, ptr %290, align 8 %vfn.i.i.i961 = getelementptr inbounds ptr, ptr %vtable.i.i.i960, i64 1 - %292 = load ptr, ptr %vfn.i.i.i961, align 8 - call void %292(ptr noundef nonnull align 8 dereferenceable(128) %291) #23 + %291 = load ptr, ptr %vfn.i.i.i961, align 8 + call void %291(ptr noundef nonnull align 8 dereferenceable(128) %290) #23 br label %_ZN7testing7MessageD2Ev.exit962 _ZN7testing7MessageD2Ev.exit962: ; preds = %invoke.cont682, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i959 store ptr null, ptr %ref.tmp674, align 8 - %293 = load ptr, ptr %message_.i972, align 8 - %cmp.not.i.i964 = icmp eq ptr %293, null + %292 = load ptr, ptr %message_.i972, align 8 + %cmp.not.i.i964 = icmp eq ptr %292, null br i1 %cmp.not.i.i964, label %_ZN7testing15AssertionResultD2Ev.exit966, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i965 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i965: ; preds = %_ZN7testing7MessageD2Ev.exit962 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #23 - call void @_ZdlPv(ptr noundef nonnull %293) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #23 + call void @_ZdlPv(ptr noundef nonnull %292) #24 br label %_ZN7testing15AssertionResultD2Ev.exit966 _ZN7testing15AssertionResultD2Ev.exit966: ; preds = %_ZN7testing7MessageD2Ev.exit962, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i965 @@ -3675,27 +3654,27 @@ _ZN7testing15AssertionResultD2Ev.exit966: ; preds = %_ZN7testing7Message br label %cleanup804 lpad677: ; preds = %invoke.cont678 - %294 = landingpad { ptr, i32 } + %293 = landingpad { ptr, i32 } cleanup br label %ehcleanup684 lpad681: ; preds = %invoke.cont680 - %295 = landingpad { ptr, i32 } + %294 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp676) #23 br label %ehcleanup684 ehcleanup684: ; preds = %lpad681, %lpad677 - %.pn118 = phi { ptr, i32 } [ %295, %lpad681 ], [ %294, %lpad677 ] - %296 = load ptr, ptr %ref.tmp674, align 8 - %cmp.not.i.i967 = icmp eq ptr %296, null + %.pn118 = phi { ptr, i32 } [ %294, %lpad681 ], [ %293, %lpad677 ] + %295 = load ptr, ptr %ref.tmp674, align 8 + %cmp.not.i.i967 = icmp eq ptr %295, null br i1 %cmp.not.i.i967, label %_ZN7testing7MessageD2Ev.exit971, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i968 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i968: ; preds = %ehcleanup684 - %vtable.i.i.i969 = load ptr, ptr %296, align 8 + %vtable.i.i.i969 = load ptr, ptr %295, align 8 %vfn.i.i.i970 = getelementptr inbounds ptr, ptr %vtable.i.i.i969, i64 1 - %297 = load ptr, ptr %vfn.i.i.i970, align 8 - call void %297(ptr noundef nonnull align 8 dereferenceable(128) %296) #23 + %296 = load ptr, ptr %vfn.i.i.i970, align 8 + call void %296(ptr noundef nonnull align 8 dereferenceable(128) %295) #23 br label %_ZN7testing7MessageD2Ev.exit971 _ZN7testing7MessageD2Ev.exit971: ; preds = %ehcleanup684, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i968 @@ -3703,13 +3682,13 @@ _ZN7testing7MessageD2Ev.exit971: ; preds = %ehcleanup684, %_ZNK br label %ehcleanup689 cleanup.cont688.critedge: ; preds = %invoke.cont668 - %298 = load ptr, ptr %message_.i972, align 8 - %cmp.not.i.i973 = icmp eq ptr %298, null + %297 = load ptr, ptr %message_.i972, align 8 + %cmp.not.i.i973 = icmp eq ptr %297, null br i1 %cmp.not.i.i973, label %cleanup.cont688, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i974 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i974: ; preds = %cleanup.cont688.critedge - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #23 - call void @_ZdlPv(ptr noundef nonnull %298) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #23 + call void @_ZdlPv(ptr noundef nonnull %297) #24 br label %cleanup.cont688 cleanup.cont688: ; preds = %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i974, %cleanup.cont688.critedge @@ -3719,9 +3698,9 @@ cleanup.cont688: ; preds = %_ZNKSt14default_del for.body696: ; preds = %cleanup.cont688, %for.inc722 %__begin5.sroa.0.01327 = phi ptr [ %incdec.ptr.i1008, %for.inc722 ], [ %cond.i10.i.i102913291350, %cleanup.cont688 ] - %299 = load i32, ptr %__begin5.sroa.0.01327, align 4, !noalias !47 - %300 = load i32, ptr %new_node620, align 4, !noalias !47 - %cmp.not.i978 = icmp eq i32 %299, %300 + %298 = load i32, ptr %__begin5.sroa.0.01327, align 4, !noalias !47 + %299 = load i32, ptr %new_node620, align 4, !noalias !47 + %cmp.not.i978 = icmp eq i32 %298, %299 br i1 %cmp.not.i978, label %if.else.i980, label %if.then.i979 if.then.i979: ; preds = %for.body696 @@ -3733,18 +3712,18 @@ if.else.i980: ; preds = %for.body696 to label %invoke.cont700 unwind label %lpad2.loopexit.split-lp.loopexit invoke.cont700: ; preds = %if.then.i979, %if.else.i980 - %301 = load i8, ptr %gtest_ar699, align 8 - %302 = and i8 %301, 1 - %tobool.i983.not = icmp eq i8 %302, 0 + %300 = load i8, ptr %gtest_ar699, align 8 + %301 = and i8 %300, 1 + %tobool.i983.not = icmp eq i8 %301, 0 br i1 %tobool.i983.not, label %if.else705, label %for.inc722.critedge ehcleanup689: ; preds = %_ZN7testing7MessageD2Ev.exit971, %lpad669 - %.pn118.pn = phi { ptr, i32 } [ %.pn118, %_ZN7testing7MessageD2Ev.exit971 ], [ %289, %lpad669 ] + %.pn118.pn = phi { ptr, i32 } [ %.pn118, %_ZN7testing7MessageD2Ev.exit971 ], [ %288, %lpad669 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %gtest_ar658) #23 br label %ehcleanup805 lpad701: ; preds = %if.else705 - %303 = landingpad { ptr, i32 } + %302 = landingpad { ptr, i32 } cleanup br label %ehcleanup721 @@ -3755,12 +3734,12 @@ if.else705: ; preds = %invoke.cont700 to label %invoke.cont707 unwind label %lpad701 invoke.cont707: ; preds = %if.else705 - %304 = load ptr, ptr %message_.i1004, align 8 - %cmp.i.i.not.i.i985 = icmp eq ptr %304, null + %303 = load ptr, ptr %message_.i1004, align 8 + %cmp.i.i.not.i.i985 = icmp eq ptr %303, null br i1 %cmp.i.i.not.i.i985, label %invoke.cont710, label %cond.true.i.i986 cond.true.i.i986: ; preds = %invoke.cont707 - %call4.i.i987 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %304) #23 + %call4.i.i987 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %303) #23 br label %invoke.cont710 invoke.cont710: ; preds = %cond.true.i.i986, %invoke.cont707 @@ -3774,26 +3753,26 @@ invoke.cont712: ; preds = %invoke.cont710 invoke.cont714: ; preds = %invoke.cont712 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp708) #23 - %305 = load ptr, ptr %ref.tmp706, align 8 - %cmp.not.i.i990 = icmp eq ptr %305, null + %304 = load ptr, ptr %ref.tmp706, align 8 + %cmp.not.i.i990 = icmp eq ptr %304, null br i1 %cmp.not.i.i990, label %_ZN7testing7MessageD2Ev.exit994, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i991 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i991: ; preds = %invoke.cont714 - %vtable.i.i.i992 = load ptr, ptr %305, align 8 + %vtable.i.i.i992 = load ptr, ptr %304, align 8 %vfn.i.i.i993 = getelementptr inbounds ptr, ptr %vtable.i.i.i992, i64 1 - %306 = load ptr, ptr %vfn.i.i.i993, align 8 - call void %306(ptr noundef nonnull align 8 dereferenceable(128) %305) #23 + %305 = load ptr, ptr %vfn.i.i.i993, align 8 + call void %305(ptr noundef nonnull align 8 dereferenceable(128) %304) #23 br label %_ZN7testing7MessageD2Ev.exit994 _ZN7testing7MessageD2Ev.exit994: ; preds = %invoke.cont714, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i991 store ptr null, ptr %ref.tmp706, align 8 - %307 = load ptr, ptr %message_.i1004, align 8 - %cmp.not.i.i996 = icmp eq ptr %307, null + %306 = load ptr, ptr %message_.i1004, align 8 + %cmp.not.i.i996 = icmp eq ptr %306, null br i1 %cmp.not.i.i996, label %_ZN7testing15AssertionResultD2Ev.exit998, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i997 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i997: ; preds = %_ZN7testing7MessageD2Ev.exit994 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #23 - call void @_ZdlPv(ptr noundef nonnull %307) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #23 + call void @_ZdlPv(ptr noundef nonnull %306) #24 br label %_ZN7testing15AssertionResultD2Ev.exit998 _ZN7testing15AssertionResultD2Ev.exit998: ; preds = %_ZN7testing7MessageD2Ev.exit994, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i997 @@ -3801,27 +3780,27 @@ _ZN7testing15AssertionResultD2Ev.exit998: ; preds = %_ZN7testing7Message br label %cleanup804 lpad709: ; preds = %invoke.cont710 - %308 = landingpad { ptr, i32 } + %307 = landingpad { ptr, i32 } cleanup br label %ehcleanup716 lpad713: ; preds = %invoke.cont712 - %309 = landingpad { ptr, i32 } + %308 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp708) #23 br label %ehcleanup716 ehcleanup716: ; preds = %lpad713, %lpad709 - %.pn121 = phi { ptr, i32 } [ %309, %lpad713 ], [ %308, %lpad709 ] - %310 = load ptr, ptr %ref.tmp706, align 8 - %cmp.not.i.i999 = icmp eq ptr %310, null + %.pn121 = phi { ptr, i32 } [ %308, %lpad713 ], [ %307, %lpad709 ] + %309 = load ptr, ptr %ref.tmp706, align 8 + %cmp.not.i.i999 = icmp eq ptr %309, null br i1 %cmp.not.i.i999, label %_ZN7testing7MessageD2Ev.exit1003, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1000 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1000: ; preds = %ehcleanup716 - %vtable.i.i.i1001 = load ptr, ptr %310, align 8 + %vtable.i.i.i1001 = load ptr, ptr %309, align 8 %vfn.i.i.i1002 = getelementptr inbounds ptr, ptr %vtable.i.i.i1001, i64 1 - %311 = load ptr, ptr %vfn.i.i.i1002, align 8 - call void %311(ptr noundef nonnull align 8 dereferenceable(128) %310) #23 + %310 = load ptr, ptr %vfn.i.i.i1002, align 8 + call void %310(ptr noundef nonnull align 8 dereferenceable(128) %309) #23 br label %_ZN7testing7MessageD2Ev.exit1003 _ZN7testing7MessageD2Ev.exit1003: ; preds = %ehcleanup716, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1000 @@ -3829,13 +3808,13 @@ _ZN7testing7MessageD2Ev.exit1003: ; preds = %ehcleanup716, %_ZNK br label %ehcleanup721 for.inc722.critedge: ; preds = %invoke.cont700 - %312 = load ptr, ptr %message_.i1004, align 8 - %cmp.not.i.i1005 = icmp eq ptr %312, null + %311 = load ptr, ptr %message_.i1004, align 8 + %cmp.not.i.i1005 = icmp eq ptr %311, null br i1 %cmp.not.i.i1005, label %for.inc722, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1006 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1006: ; preds = %for.inc722.critedge - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #23 - call void @_ZdlPv(ptr noundef nonnull %312) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #23 + call void @_ZdlPv(ptr noundef nonnull %311) #24 br label %for.inc722 for.inc722: ; preds = %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1006, %for.inc722.critedge @@ -3845,18 +3824,18 @@ for.inc722: ; preds = %_ZNKSt14default_del br i1 %cmp.i977.not, label %for.end724, label %for.body696 ehcleanup721: ; preds = %_ZN7testing7MessageD2Ev.exit1003, %lpad701 - %.pn121.pn = phi { ptr, i32 } [ %.pn121, %_ZN7testing7MessageD2Ev.exit1003 ], [ %303, %lpad701 ] + %.pn121.pn = phi { ptr, i32 } [ %.pn121, %_ZN7testing7MessageD2Ev.exit1003 ], [ %302, %lpad701 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %gtest_ar699) #23 br label %ehcleanup805 for.end724: ; preds = %for.inc722, %cleanup.cont688 - %313 = load ptr, ptr %_M_end_of_storage.i, align 8 - %cmp.not.i1011 = icmp eq ptr %incdec.ptr.i101313361349, %313 + %312 = load ptr, ptr %_M_end_of_storage.i, align 8 + %cmp.not.i1011 = icmp eq ptr %incdec.ptr.i101313361349, %312 br i1 %cmp.not.i1011, label %if.else.i1014, label %if.then.i1012 if.then.i1012: ; preds = %for.end724 - %314 = load i32, ptr %new_node620, align 4 - store i32 %314, ptr %incdec.ptr.i101313361349, align 4 + %313 = load i32, ptr %new_node620, align 4 + store i32 %313, ptr %incdec.ptr.i101313361349, align 4 br label %for.inc726 if.else.i1014: ; preds = %for.end724 @@ -3880,10 +3859,10 @@ if.then.i.i.i1040.cont: ; preds = %if.then.i.i.i1040.i _ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i1019: ; preds = %if.else.i1014 %sub.ptr.div.i.i.i.i1020 = ashr exact i64 %sub.ptr.sub.i.i.i.i1017, 2 %.sroa.speculated.i.i.i1021 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i1020, i64 1) - %add.i.i.i1022 = add i64 %.sroa.speculated.i.i.i1021, %sub.ptr.div.i.i.i.i1020 + %add.i.i.i1022 = add nsw i64 %.sroa.speculated.i.i.i1021, %sub.ptr.div.i.i.i.i1020 %cmp7.i.i.i1023 = icmp ult i64 %add.i.i.i1022, %sub.ptr.div.i.i.i.i1020 - %315 = call i64 @llvm.umin.i64(i64 %add.i.i.i1022, i64 2305843009213693951) - %cond.i.i.i1024 = select i1 %cmp7.i.i.i1023, i64 2305843009213693951, i64 %315 + %314 = call i64 @llvm.umin.i64(i64 %add.i.i.i1022, i64 2305843009213693951) + %cond.i.i.i1024 = select i1 %cmp7.i.i.i1023, i64 2305843009213693951, i64 %314 %cmp.not.i.i.i1025 = icmp eq i64 %cond.i.i.i1024, 0 br i1 %cmp.not.i.i.i1025, label %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i1028, label %cond.true.i.i.i1026 @@ -3895,8 +3874,8 @@ cond.true.i.i.i1026: ; preds = %_ZNKSt6vectorIiSaIi _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i1028: ; preds = %cond.true.i.i.i1026, %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i1019 %cond.i10.i.i1029 = phi ptr [ null, %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i1019 ], [ %call5.i.i.i.i.i1043, %cond.true.i.i.i1026 ] %add.ptr.i.i1030 = getelementptr inbounds i32, ptr %cond.i10.i.i1029, i64 %sub.ptr.div.i.i.i.i1020 - %316 = load i32, ptr %new_node620, align 4 - store i32 %316, ptr %add.ptr.i.i1030, align 4 + %315 = load i32, ptr %new_node620, align 4 + store i32 %315, ptr %add.ptr.i.i1030, align 4 %cmp.i.i.i.i.i1031 = icmp sgt i64 %sub.ptr.sub.i.i.i.i1017, 0 br i1 %cmp.i.i.i.i.i1031, label %if.then.i.i.i.i.i1039, label %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit17.i.i1032 @@ -3946,13 +3925,13 @@ if.else.i1052: ; preds = %for.body732 to label %invoke.cont737 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont737: ; preds = %if.then.i1053, %if.else.i1052 - %317 = load i8, ptr %gtest_ar733, align 8 - %318 = and i8 %317, 1 - %tobool.i1056.not = icmp eq i8 %318, 0 + %316 = load i8, ptr %gtest_ar733, align 8 + %317 = and i8 %316, 1 + %tobool.i1056.not = icmp eq i8 %317, 0 br i1 %tobool.i1056.not, label %if.else742, label %cleanup.cont757.critedge lpad738: ; preds = %if.else742 - %319 = landingpad { ptr, i32 } + %318 = landingpad { ptr, i32 } cleanup br label %ehcleanup758 @@ -3962,12 +3941,12 @@ if.else742: ; preds = %invoke.cont737 to label %invoke.cont744 unwind label %lpad738 invoke.cont744: ; preds = %if.else742 - %320 = load ptr, ptr %message_.i1077, align 8 - %cmp.i.i.not.i.i1058 = icmp eq ptr %320, null + %319 = load ptr, ptr %message_.i1077, align 8 + %cmp.i.i.not.i.i1058 = icmp eq ptr %319, null br i1 %cmp.i.i.not.i.i1058, label %invoke.cont747, label %cond.true.i.i1059 cond.true.i.i1059: ; preds = %invoke.cont744 - %call4.i.i1060 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %320) #23 + %call4.i.i1060 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %319) #23 br label %invoke.cont747 invoke.cont747: ; preds = %cond.true.i.i1059, %invoke.cont744 @@ -3981,26 +3960,26 @@ invoke.cont749: ; preds = %invoke.cont747 invoke.cont751: ; preds = %invoke.cont749 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp745) #23 - %321 = load ptr, ptr %ref.tmp743, align 8 - %cmp.not.i.i1063 = icmp eq ptr %321, null + %320 = load ptr, ptr %ref.tmp743, align 8 + %cmp.not.i.i1063 = icmp eq ptr %320, null br i1 %cmp.not.i.i1063, label %_ZN7testing7MessageD2Ev.exit1067, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1064 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1064: ; preds = %invoke.cont751 - %vtable.i.i.i1065 = load ptr, ptr %321, align 8 + %vtable.i.i.i1065 = load ptr, ptr %320, align 8 %vfn.i.i.i1066 = getelementptr inbounds ptr, ptr %vtable.i.i.i1065, i64 1 - %322 = load ptr, ptr %vfn.i.i.i1066, align 8 - call void %322(ptr noundef nonnull align 8 dereferenceable(128) %321) #23 + %321 = load ptr, ptr %vfn.i.i.i1066, align 8 + call void %321(ptr noundef nonnull align 8 dereferenceable(128) %320) #23 br label %_ZN7testing7MessageD2Ev.exit1067 _ZN7testing7MessageD2Ev.exit1067: ; preds = %invoke.cont751, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1064 store ptr null, ptr %ref.tmp743, align 8 - %323 = load ptr, ptr %message_.i1077, align 8 - %cmp.not.i.i1069 = icmp eq ptr %323, null + %322 = load ptr, ptr %message_.i1077, align 8 + %cmp.not.i.i1069 = icmp eq ptr %322, null br i1 %cmp.not.i.i1069, label %_ZN7testing15AssertionResultD2Ev.exit1071, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1070 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1070: ; preds = %_ZN7testing7MessageD2Ev.exit1067 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #23 - call void @_ZdlPv(ptr noundef nonnull %323) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #23 + call void @_ZdlPv(ptr noundef nonnull %322) #24 br label %_ZN7testing15AssertionResultD2Ev.exit1071 _ZN7testing15AssertionResultD2Ev.exit1071: ; preds = %_ZN7testing7MessageD2Ev.exit1067, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1070 @@ -4008,27 +3987,27 @@ _ZN7testing15AssertionResultD2Ev.exit1071: ; preds = %_ZN7testing7Message br label %cleanup804 lpad746: ; preds = %invoke.cont747 - %324 = landingpad { ptr, i32 } + %323 = landingpad { ptr, i32 } cleanup br label %ehcleanup753 lpad750: ; preds = %invoke.cont749 - %325 = landingpad { ptr, i32 } + %324 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp745) #23 br label %ehcleanup753 ehcleanup753: ; preds = %lpad750, %lpad746 - %.pn112 = phi { ptr, i32 } [ %325, %lpad750 ], [ %324, %lpad746 ] - %326 = load ptr, ptr %ref.tmp743, align 8 - %cmp.not.i.i1072 = icmp eq ptr %326, null + %.pn112 = phi { ptr, i32 } [ %324, %lpad750 ], [ %323, %lpad746 ] + %325 = load ptr, ptr %ref.tmp743, align 8 + %cmp.not.i.i1072 = icmp eq ptr %325, null br i1 %cmp.not.i.i1072, label %_ZN7testing7MessageD2Ev.exit1076, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1073 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1073: ; preds = %ehcleanup753 - %vtable.i.i.i1074 = load ptr, ptr %326, align 8 + %vtable.i.i.i1074 = load ptr, ptr %325, align 8 %vfn.i.i.i1075 = getelementptr inbounds ptr, ptr %vtable.i.i.i1074, i64 1 - %327 = load ptr, ptr %vfn.i.i.i1075, align 8 - call void %327(ptr noundef nonnull align 8 dereferenceable(128) %326) #23 + %326 = load ptr, ptr %vfn.i.i.i1075, align 8 + call void %326(ptr noundef nonnull align 8 dereferenceable(128) %325) #23 br label %_ZN7testing7MessageD2Ev.exit1076 _ZN7testing7MessageD2Ev.exit1076: ; preds = %ehcleanup753, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1073 @@ -4036,13 +4015,13 @@ _ZN7testing7MessageD2Ev.exit1076: ; preds = %ehcleanup753, %_ZNK br label %ehcleanup758 cleanup.cont757.critedge: ; preds = %invoke.cont737 - %328 = load ptr, ptr %message_.i1077, align 8 - %cmp.not.i.i1078 = icmp eq ptr %328, null + %327 = load ptr, ptr %message_.i1077, align 8 + %cmp.not.i.i1078 = icmp eq ptr %327, null br i1 %cmp.not.i.i1078, label %cleanup.cont757, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1079 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1079: ; preds = %cleanup.cont757.critedge - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #23 - call void @_ZdlPv(ptr noundef nonnull %328) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #23 + call void @_ZdlPv(ptr noundef nonnull %327) #24 br label %cleanup.cont757 cleanup.cont757: ; preds = %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i1079, %cleanup.cont757.critedge @@ -4099,16 +4078,16 @@ invoke.cont760: ; preds = %while.cond.if.end.l %sext1203 = shl i64 %__ret.0.i.i.i1097, 32 %conv763 = ashr exact i64 %sext1203, 32 %add.ptr.i1118 = getelementptr inbounds i32, ptr %cond.i10.i.i10291328, i64 %conv763 - %329 = load i32, ptr %add.ptr.i1118, align 4 - store i32 %329, ptr %node762, align 4 + %328 = load i32, ptr %add.ptr.i1118, align 4 + store i32 %328, ptr %node762, align 4 %add.ptr.i.i1120 = getelementptr inbounds i32, ptr %add.ptr.i.i112013611368, i64 -1 - %330 = load i32, ptr %add.ptr.i.i1120, align 4 - store i32 %330, ptr %add.ptr.i1118, align 4 - %331 = load i32, ptr %node762, align 4 - %conv768 = sext i32 %331 to i64 + %329 = load i32, ptr %add.ptr.i.i1120, align 4 + store i32 %329, ptr %add.ptr.i1118, align 4 + %330 = load i32, ptr %node762, align 4 + %conv768 = sext i32 %330 to i64 %add.i1124 = add nsw i64 %conv768, 17 - %332 = inttoptr i64 %add.i1124 to ptr - invoke void @_ZN4absl24synchronization_internal11GraphCycles10RemoveNodeEPv(ptr noundef nonnull align 8 dereferenceable(8) %graph_cycles, ptr noundef %332) + %331 = inttoptr i64 %add.i1124 to ptr + invoke void @_ZN4absl24synchronization_internal11GraphCycles10RemoveNodeEPv(ptr noundef nonnull align 8 dereferenceable(8) %graph_cycles, ptr noundef %331) to label %invoke.cont771 unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont771: ; preds = %invoke.cont760 @@ -4116,43 +4095,43 @@ invoke.cont771: ; preds = %invoke.cont760 to label %while.cond774.preheader unwind label %lpad2.loopexit.split-lp.loopexit.split-lp.loopexit while.cond774.preheader: ; preds = %invoke.cont771 - %333 = load ptr, ptr %_M_finish.i442, align 8 - %334 = load ptr, ptr %edges, align 8 - %cmp777.not1357 = icmp eq ptr %333, %334 + %332 = load ptr, ptr %_M_finish.i442, align 8 + %333 = load ptr, ptr %edges, align 8 + %cmp777.not1357 = icmp eq ptr %332, %333 br i1 %cmp777.not1357, label %for.inc796, label %while.body778.lr.ph while.body778.lr.ph: ; preds = %while.cond774.preheader - %335 = load i32, ptr %node762, align 4 + %334 = load i32, ptr %node762, align 4 br label %while.body778 while.body778: ; preds = %while.body778.lr.ph, %if.end794 - %336 = phi ptr [ %334, %while.body778.lr.ph ], [ %342, %if.end794 ] - %337 = phi ptr [ %333, %while.body778.lr.ph ], [ %343, %if.end794 ] + %335 = phi ptr [ %333, %while.body778.lr.ph ], [ %341, %if.end794 ] + %336 = phi ptr [ %332, %while.body778.lr.ph ], [ %342, %if.end794 ] %conv7751359 = phi i64 [ 0, %while.body778.lr.ph ], [ %conv775, %if.end794 ] %j.01358 = phi i32 [ 0, %while.body778.lr.ph ], [ %j.1, %if.end794 ] - %add.ptr.i1133 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %336, i64 %conv7751359 - %338 = load i32, ptr %add.ptr.i1133, align 4 - %cmp782 = icmp eq i32 %338, %335 + %add.ptr.i1133 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %335, i64 %conv7751359 + %337 = load i32, ptr %add.ptr.i1133, align 4 + %cmp782 = icmp eq i32 %337, %334 br i1 %cmp782, label %if.then788, label %lor.lhs.false783 lor.lhs.false783: ; preds = %while.body778 - %to786 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %336, i64 %conv7751359, i32 1 - %339 = load i32, ptr %to786, align 4 - %cmp787 = icmp eq i32 %339, %335 + %to786 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %335, i64 %conv7751359, i32 1 + %338 = load i32, ptr %to786, align 4 + %cmp787 = icmp eq i32 %338, %334 br i1 %cmp787, label %if.then788, label %if.else792 if.then788: ; preds = %lor.lhs.false783, %while.body778 - %add.ptr.i.i1136 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %337, i64 -1 - %340 = load i64, ptr %add.ptr.i.i1136, align 4 - store i64 %340, ptr %add.ptr.i1133, align 4 - %341 = load ptr, ptr %_M_finish.i442, align 8 - %incdec.ptr.i1139 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %341, i64 -1 + %add.ptr.i.i1136 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %336, i64 -1 + %339 = load i64, ptr %add.ptr.i.i1136, align 4 + store i64 %339, ptr %add.ptr.i1133, align 4 + %340 = load ptr, ptr %_M_finish.i442, align 8 + %incdec.ptr.i1139 = getelementptr inbounds %"struct.absl::synchronization_internal::Edge", ptr %340, i64 -1 store ptr %incdec.ptr.i1139, ptr %_M_finish.i442, align 8 %.pre1440 = load ptr, ptr %edges, align 8 br label %if.end794 ehcleanup758: ; preds = %_ZN7testing7MessageD2Ev.exit1076, %lpad738 - %.pn112.pn = phi { ptr, i32 } [ %.pn112, %_ZN7testing7MessageD2Ev.exit1076 ], [ %319, %lpad738 ] + %.pn112.pn = phi { ptr, i32 } [ %.pn112, %_ZN7testing7MessageD2Ev.exit1076 ], [ %318, %lpad738 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %gtest_ar733) #23 br label %ehcleanup805 @@ -4161,12 +4140,12 @@ if.else792: ; preds = %lor.lhs.false783 br label %if.end794 if.end794: ; preds = %if.else792, %if.then788 - %342 = phi ptr [ %.pre1440, %if.then788 ], [ %336, %if.else792 ] - %343 = phi ptr [ %incdec.ptr.i1139, %if.then788 ], [ %337, %if.else792 ] + %341 = phi ptr [ %.pre1440, %if.then788 ], [ %335, %if.else792 ] + %342 = phi ptr [ %incdec.ptr.i1139, %if.then788 ], [ %336, %if.else792 ] %j.1 = phi i32 [ %j.01358, %if.then788 ], [ %inc793, %if.else792 ] %conv775 = sext i32 %j.1 to i64 - %sub.ptr.lhs.cast.i1129 = ptrtoint ptr %343 to i64 - %sub.ptr.rhs.cast.i1130 = ptrtoint ptr %342 to i64 + %sub.ptr.lhs.cast.i1129 = ptrtoint ptr %342 to i64 + %sub.ptr.rhs.cast.i1130 = ptrtoint ptr %341 to i64 %sub.ptr.sub.i1131 = sub i64 %sub.ptr.lhs.cast.i1129, %sub.ptr.rhs.cast.i1130 %sub.ptr.div.i1132 = ashr exact i64 %sub.ptr.sub.i1131, 3 %cmp777.not = icmp eq i64 %sub.ptr.div.i1132, %conv775 @@ -4199,7 +4178,7 @@ cleanup.action.i1143: ; preds = %.noexc1146 unreachable lpad.i1142: ; preds = %.noexc1146 - %344 = landingpad { ptr, i32 } + %343 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12log_internal15LogMessageFatalD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp1.i1140) #27 unreachable @@ -4209,75 +4188,75 @@ _ZN4absl24synchronization_internalL15CheckInvariantsERKNS0_11GraphCyclesE.exit11 br label %for.inc801 for.inc801: ; preds = %_ZN4absl24synchronization_internalL15CheckInvariantsERKNS0_11GraphCyclesE.exit1147, %invoke.cont611 - %next_node.3 = phi i32 [ %268, %_ZN4absl24synchronization_internalL15CheckInvariantsERKNS0_11GraphCyclesE.exit1147 ], [ %next_node.1, %invoke.cont611 ] + %next_node.3 = phi i32 [ %267, %_ZN4absl24synchronization_internalL15CheckInvariantsERKNS0_11GraphCyclesE.exit1147 ], [ %next_node.1, %invoke.cont611 ] %inc802 = add nuw nsw i32 %iter.01370, 1 %cmp.not = icmp eq i32 %inc802, 100000 br i1 %cmp.not, label %cleanup804, label %for.body, !llvm.loop !53 cleanup804.critedge.sink.split: ; preds = %_ZN7testing7MessageD2Ev.exit885, %_ZN7testing7MessageD2Ev.exit865, %_ZN7testing7MessageD2Ev.exit833, %_ZN7testing7MessageD2Ev.exit802, %_ZN7testing7MessageD2Ev.exit772, %_ZN7testing7MessageD2Ev.exit741 - %.sink1508 = phi ptr [ %181, %_ZN7testing7MessageD2Ev.exit741 ], [ %197, %_ZN7testing7MessageD2Ev.exit772 ], [ %210, %_ZN7testing7MessageD2Ev.exit802 ], [ %225, %_ZN7testing7MessageD2Ev.exit833 ], [ %240, %_ZN7testing7MessageD2Ev.exit865 ], [ %251, %_ZN7testing7MessageD2Ev.exit885 ] + %.sink1473 = phi ptr [ %181, %_ZN7testing7MessageD2Ev.exit741 ], [ %197, %_ZN7testing7MessageD2Ev.exit772 ], [ %210, %_ZN7testing7MessageD2Ev.exit802 ], [ %225, %_ZN7testing7MessageD2Ev.exit833 ], [ %240, %_ZN7testing7MessageD2Ev.exit865 ], [ %251, %_ZN7testing7MessageD2Ev.exit885 ] %message_.i879.sink.ph = phi ptr [ %message_.i751, %_ZN7testing7MessageD2Ev.exit741 ], [ %message_.i782, %_ZN7testing7MessageD2Ev.exit772 ], [ %message_.i812, %_ZN7testing7MessageD2Ev.exit802 ], [ %message_.i843, %_ZN7testing7MessageD2Ev.exit833 ], [ %message_.i875, %_ZN7testing7MessageD2Ev.exit865 ], [ %message_.i879, %_ZN7testing7MessageD2Ev.exit885 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1508) #23 - call void @_ZdlPv(ptr noundef nonnull %.sink1508) #24 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1473) #23 + call void @_ZdlPv(ptr noundef nonnull %.sink1473) #24 br label %cleanup804.critedge cleanup804.critedge: ; preds = %cleanup804.critedge.sink.split, %_ZN7testing7MessageD2Ev.exit885, %_ZN7testing7MessageD2Ev.exit865, %_ZN7testing7MessageD2Ev.exit833, %_ZN7testing7MessageD2Ev.exit802, %_ZN7testing7MessageD2Ev.exit772, %_ZN7testing7MessageD2Ev.exit741 %message_.i879.sink = phi ptr [ %message_.i751, %_ZN7testing7MessageD2Ev.exit741 ], [ %message_.i782, %_ZN7testing7MessageD2Ev.exit772 ], [ %message_.i812, %_ZN7testing7MessageD2Ev.exit802 ], [ %message_.i843, %_ZN7testing7MessageD2Ev.exit833 ], [ %message_.i875, %_ZN7testing7MessageD2Ev.exit865 ], [ %message_.i879, %_ZN7testing7MessageD2Ev.exit885 ], [ %message_.i879.sink.ph, %cleanup804.critedge.sink.split ] store ptr null, ptr %message_.i879.sink, align 8 - %345 = load ptr, ptr %_M_before_begin.i.i670, align 8 - %tobool.not3.i.i.i.i1149 = icmp eq ptr %345, null + %344 = load ptr, ptr %_M_before_begin.i.i670, align 8 + %tobool.not3.i.i.i.i1149 = icmp eq ptr %344, null br i1 %tobool.not3.i.i.i.i1149, label %_ZNSt10_HashtableIiiSaIiENSt8__detail9_IdentityESt8equal_toIiESt4hashIiENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE5clearEv.exit.i.i1153, label %while.body.i.i.i.i1150 while.body.i.i.i.i1150: ; preds = %cleanup804.critedge, %while.body.i.i.i.i1150 - %__n.addr.04.i.i.i.i1151 = phi ptr [ %346, %while.body.i.i.i.i1150 ], [ %345, %cleanup804.critedge ] - %346 = load ptr, ptr %__n.addr.04.i.i.i.i1151, align 8 + %__n.addr.04.i.i.i.i1151 = phi ptr [ %345, %while.body.i.i.i.i1150 ], [ %344, %cleanup804.critedge ] + %345 = load ptr, ptr %__n.addr.04.i.i.i.i1151, align 8 call void @_ZdlPv(ptr noundef nonnull %__n.addr.04.i.i.i.i1151) #24 - %tobool.not.i.i.i.i1152 = icmp eq ptr %346, null + %tobool.not.i.i.i.i1152 = icmp eq ptr %345, null br i1 %tobool.not.i.i.i.i1152, label %_ZNSt10_HashtableIiiSaIiENSt8__detail9_IdentityESt8equal_toIiESt4hashIiENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE5clearEv.exit.i.i1153, label %while.body.i.i.i.i1150, !llvm.loop !40 _ZNSt10_HashtableIiiSaIiENSt8__detail9_IdentityESt8equal_toIiESt4hashIiENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE5clearEv.exit.i.i1153: ; preds = %while.body.i.i.i.i1150, %cleanup804.critedge - %347 = load ptr, ptr %seen385, align 8 - %348 = load i64, ptr %_M_bucket_count.i.i669, align 8 - %mul.i.i.i1155 = shl i64 %348, 3 - call void @llvm.memset.p0.i64(ptr align 8 %347, i8 0, i64 %mul.i.i.i1155, i1 false) + %346 = load ptr, ptr %seen385, align 8 + %347 = load i64, ptr %_M_bucket_count.i.i669, align 8 + %mul.i.i.i1155 = shl i64 %347, 3 + call void @llvm.memset.p0.i64(ptr align 8 %346, i8 0, i64 %mul.i.i.i1155, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %_M_before_begin.i.i670, i8 0, i64 16, i1 false) - %349 = load ptr, ptr %seen385, align 8 - %cmp.i.i.i.i.i1157 = icmp eq ptr %_M_single_bucket.i.i668, %349 + %348 = load ptr, ptr %seen385, align 8 + %cmp.i.i.i.i.i1157 = icmp eq ptr %_M_single_bucket.i.i668, %348 br i1 %cmp.i.i.i.i.i1157, label %cleanup804, label %if.end.i.i.i.i1158 if.end.i.i.i.i1158: ; preds = %_ZNSt10_HashtableIiiSaIiENSt8__detail9_IdentityESt8equal_toIiESt4hashIiENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE5clearEv.exit.i.i1153 - call void @_ZdlPv(ptr noundef %349) #24 + call void @_ZdlPv(ptr noundef %348) #24 br label %cleanup804 cleanup804: ; preds = %for.inc801, %if.end.i.i.i.i1158, %_ZNSt10_HashtableIiiSaIiENSt8__detail9_IdentityESt8equal_toIiESt4hashIiENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE5clearEv.exit.i.i1153, %_ZN7testing15AssertionResultD2Ev.exit1071, %_ZN7testing15AssertionResultD2Ev.exit998, %_ZN7testing15AssertionResultD2Ev.exit966, %_ZN7testing15AssertionResultD2Ev.exit934, %_ZN7testing15AssertionResultD2Ev.exit577, %_ZN7testing15AssertionResultD2Ev.exit523, %_ZN7testing7MessageD2Ev.exit436, %_ZN7testing15AssertionResultD2Ev.exit303, %_ZN7testing15AssertionResultD2Ev.exit220, %_ZN7testing15AssertionResultD2Ev.exit188, %_ZN7testing15AssertionResultD2Ev.exit call void @_ZN4absl24synchronization_internal11GraphCyclesD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %graph_cycles) #23 - %350 = load ptr, ptr %_M_parent.i.i.i.i.i, align 8 - invoke void @_ZNSt8_Rb_treeIiSt4pairIKiN4absl24synchronization_internal7GraphIdEESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %id, ptr noundef %350) + %349 = load ptr, ptr %_M_parent.i.i.i.i.i, align 8 + invoke void @_ZNSt8_Rb_treeIiSt4pairIKiN4absl24synchronization_internal7GraphIdEESt10_Select1stIS5_ESt4lessIiESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E(ptr noundef nonnull align 8 dereferenceable(48) %id, ptr noundef %349) to label %_ZNSt3mapIiN4absl24synchronization_internal7GraphIdESt4lessIiESaISt4pairIKiS2_EEED2Ev.exit unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %cleanup804 - %351 = landingpad { ptr, i32 } + %350 = landingpad { ptr, i32 } catch ptr null - %352 = extractvalue { ptr, i32 } %351, 0 - call void @__clang_call_terminate(ptr %352) #27 + %351 = extractvalue { ptr, i32 } %350, 0 + call void @__clang_call_terminate(ptr %351) #27 unreachable _ZNSt3mapIiN4absl24synchronization_internal7GraphIdESt4lessIiESaISt4pairIKiS2_EEED2Ev.exit: ; preds = %cleanup804 - %353 = load ptr, ptr %edges, align 8 - %tobool.not.i.i.i1161 = icmp eq ptr %353, null + %352 = load ptr, ptr %edges, align 8 + %tobool.not.i.i.i1161 = icmp eq ptr %352, null br i1 %tobool.not.i.i.i1161, label %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit, label %if.then.i.i.i1162 if.then.i.i.i1162: ; preds = %_ZNSt3mapIiN4absl24synchronization_internal7GraphIdESt4lessIiESaISt4pairIKiS2_EEED2Ev.exit - call void @_ZdlPv(ptr noundef nonnull %353) #24 + call void @_ZdlPv(ptr noundef nonnull %352) #24 br label %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit _ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit: ; preds = %_ZNSt3mapIiN4absl24synchronization_internal7GraphIdESt4lessIiESaISt4pairIKiS2_EEED2Ev.exit, %if.then.i.i.i1162 - %354 = load ptr, ptr %nodes, align 8 - %tobool.not.i.i.i1163 = icmp eq ptr %354, null + %353 = load ptr, ptr %nodes, align 8 + %tobool.not.i.i.i1163 = icmp eq ptr %353, null br i1 %tobool.not.i.i.i1163, label %_ZNSt6vectorIiSaIiEED2Ev.exit, label %if.then.i.i.i1164 if.then.i.i.i1164: ; preds = %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit - call void @_ZdlPv(ptr noundef nonnull %354) #24 + call void @_ZdlPv(ptr noundef nonnull %353) #24 br label %_ZNSt6vectorIiSaIiEED2Ev.exit _ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit, %if.then.i.i.i1164 @@ -4291,21 +4270,21 @@ ehcleanup805: ; preds = %lpad2.loopexit, %lp ehcleanup807: ; preds = %ehcleanup805, %lpad %.pn124.pn.pn.pn = phi { ptr, i32 } [ %.pn124.pn.pn, %ehcleanup805 ], [ %12, %lpad ] call void @_ZNSt3mapIiN4absl24synchronization_internal7GraphIdESt4lessIiESaISt4pairIKiS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %id) #23 - %355 = load ptr, ptr %edges, align 8 - %tobool.not.i.i.i1165 = icmp eq ptr %355, null + %354 = load ptr, ptr %edges, align 8 + %tobool.not.i.i.i1165 = icmp eq ptr %354, null br i1 %tobool.not.i.i.i1165, label %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit1167, label %if.then.i.i.i1166 if.then.i.i.i1166: ; preds = %ehcleanup807 - call void @_ZdlPv(ptr noundef nonnull %355) #24 + call void @_ZdlPv(ptr noundef nonnull %354) #24 br label %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit1167 _ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit1167: ; preds = %ehcleanup807, %if.then.i.i.i1166 - %356 = load ptr, ptr %nodes, align 8 - %tobool.not.i.i.i1168 = icmp eq ptr %356, null + %355 = load ptr, ptr %nodes, align 8 + %tobool.not.i.i.i1168 = icmp eq ptr %355, null br i1 %tobool.not.i.i.i1168, label %_ZNSt6vectorIiSaIiEED2Ev.exit1170, label %if.then.i.i.i1169 if.then.i.i.i1169: ; preds = %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit1167 - call void @_ZdlPv(ptr noundef nonnull %356) #24 + call void @_ZdlPv(ptr noundef nonnull %355) #24 br label %_ZNSt6vectorIiSaIiEED2Ev.exit1170 _ZNSt6vectorIiSaIiEED2Ev.exit1170: ; preds = %_ZNSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EED2Ev.exit1167, %if.then.i.i.i1169 @@ -5044,7 +5023,7 @@ if.then.i.i: ; preds = %if.else _ZNKSt6vectorIN4absl24synchronization_internal4EdgeESaIS2_EE12_M_check_lenEmPKc.exit.i: ; preds = %if.else %sub.ptr.div.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i, 3 %.sroa.speculated.i.i = tail call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i, i64 1) - %add.i.i = add i64 %.sroa.speculated.i.i, %sub.ptr.div.i.i.i + %add.i.i = add nsw i64 %.sroa.speculated.i.i, %sub.ptr.div.i.i.i %cmp7.i.i = icmp ult i64 %add.i.i, %sub.ptr.div.i.i.i %5 = tail call i64 @llvm.umin.i64(i64 %add.i.i, i64 1152921504606846975) %cond.i.i = select i1 %cmp7.i.i, i64 1152921504606846975, i64 %5 diff --git a/bench/assimp/optimized/3DSExporter.cpp.ll b/bench/assimp/optimized/3DSExporter.cpp.ll index ed7a764dd81..164f0612360 100644 --- a/bench/assimp/optimized/3DSExporter.cpp.ll +++ b/bench/assimp/optimized/3DSExporter.cpp.ll @@ -3040,8 +3040,8 @@ entry: %_M_left.i.i = getelementptr inbounds %"class.Assimp::Discreet3DSExporter", ptr %this, i64 0, i32 3, i32 0, i32 0, i32 1, i32 0, i32 2 %0 = load ptr, ptr %_M_left.i.i, align 8 %add.ptr.i.i = getelementptr inbounds %"class.Assimp::Discreet3DSExporter", ptr %this, i64 0, i32 3, i32 0, i32 0, i32 1 - %cmp.i.not1302 = icmp eq ptr %0, %add.ptr.i.i - br i1 %cmp.i.not1302, label %for.end151, label %for.body.lr.ph + %cmp.i.not1321 = icmp eq ptr %0, %add.ptr.i.i + br i1 %cmp.i.not1321, label %for.end151, label %for.body.lr.ph for.body.lr.ph: ; preds = %entry %trafos = getelementptr inbounds %"class.Assimp::Discreet3DSExporter", ptr %this, i64 0, i32 2 @@ -3057,11 +3057,11 @@ for.body.lr.ph: ; preds = %entry %chunk_start_pos.i253 = getelementptr inbounds %"class.Assimp::(anonymous namespace)::ChunkWriter", ptr %curChunk63, i64 0, i32 1 br label %for.body -for.body: ; preds = %for.body.lr.ph, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit502 - %it.sroa.0.01303 = phi ptr [ %0, %for.body.lr.ph ], [ %call.i, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit502 ] - %_M_storage.i.i = getelementptr inbounds %"struct.std::_Rb_tree_node.32", ptr %it.sroa.0.01303, i64 0, i32 1 +for.body: ; preds = %for.body.lr.ph, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit503 + %it.sroa.0.01322 = phi ptr [ %0, %for.body.lr.ph ], [ %call.i, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit503 ] + %_M_storage.i.i = getelementptr inbounds %"struct.std::_Rb_tree_node.32", ptr %it.sroa.0.01322, i64 0, i32 1 %1 = load ptr, ptr %_M_storage.i.i, align 8 - %second = getelementptr inbounds %"struct.std::_Rb_tree_node.32", ptr %it.sroa.0.01303, i64 0, i32 1, i32 0, i64 8 + %second = getelementptr inbounds %"struct.std::_Rb_tree_node.32", ptr %it.sroa.0.01322, i64 0, i32 1, i32 0, i64 8 %2 = load i32, ptr %second, align 8 %3 = load ptr, ptr %this, align 8 %mMeshes = getelementptr inbounds %struct.aiScene, ptr %3, i64 0, i32 3 @@ -3303,8 +3303,8 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit: ; preds = %invoke.cont19, %.no %add9.i.i = add i64 %46, 2 store i64 %add9.i.i, ptr %cursor.i.i, align 8 %47 = load i32, ptr %mNumVertices, align 4 - %cmp1289.not = icmp eq i32 %47, 0 - br i1 %cmp1289.not, label %for.end, label %for.body25.lr.ph + %cmp1308.not = icmp eq i32 %47, 0 + br i1 %cmp1308.not, label %for.end, label %for.body25.lr.ph for.body25.lr.ph: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit %mVertices = getelementptr inbounds %struct.aiMesh, ptr %5, i64 0, i32 3 @@ -3326,11 +3326,11 @@ for.body25: ; preds = %for.body25.lr.ph, % br i1 %cmp.not.i.i106, label %invoke.cont29, label %if.then.i.i107 if.then.i.i107: ; preds = %for.body25 - %cmp.i547 = icmp ult i64 %sub.ptr.sub.i.i.i105, %add.i.i100 - br i1 %cmp.i547, label %if.then.i548, label %.noexc112 + %cmp.i548 = icmp ult i64 %sub.ptr.sub.i.i.i105, %add.i.i100 + br i1 %cmp.i548, label %if.then.i549, label %.noexc112 -if.then.i548: ; preds = %if.then.i.i107 - %sub.i549 = sub i64 %add.i.i100, %sub.ptr.sub.i.i.i105 +if.then.i549: ; preds = %if.then.i.i107 + %sub.i550 = sub i64 %add.i.i100, %sub.ptr.sub.i.i.i105 %53 = load ptr, ptr %_M_end_of_storage.i.i, align 8 %sub.ptr.lhs.cast.i8.i = ptrtoint ptr %53 to i64 %sub.ptr.sub.i9.i = sub i64 %sub.ptr.lhs.cast.i8.i, %sub.ptr.lhs.cast.i.i.i103 @@ -3339,18 +3339,18 @@ if.then.i548: ; preds = %if.then.i.i107 %sub.i.i = xor i64 %sub.ptr.sub.i.i.i105, 9223372036854775807 %cmp6.i.i = icmp ule i64 %sub.ptr.sub.i9.i, %sub.i.i call void @llvm.assume(i1 %cmp6.i.i) - %cmp8.not.i.i = icmp ult i64 %sub.ptr.sub.i9.i, %sub.i549 + %cmp8.not.i.i = icmp ult i64 %sub.ptr.sub.i9.i, %sub.i550 br i1 %cmp8.not.i.i, label %if.else.i.i, label %if.then.i.i.i.i.i -if.then.i.i.i.i.i: ; preds = %if.then.i548 +if.then.i.i.i.i.i: ; preds = %if.then.i549 store i8 0, ptr %51, align 1 %incdec.ptr.i.i.i.i.i = getelementptr inbounds i8, ptr %51, i64 1 - %sub.i.i.i.i.i = add i64 %sub.i549, -1 + %sub.i.i.i.i.i = add i64 %sub.i550, -1 %cmp.i.i.i.i.i.i.i = icmp eq i64 %sub.i.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i.i.i, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i, label %if.then.i.i.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i - %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %51, i64 %sub.i549 + %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %51, i64 %sub.i550 call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i, i8 0, i64 %sub.i.i.i.i.i, i1 false) br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i @@ -3360,26 +3360,26 @@ _ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i: ; preds = %if. %.pre1.i.i109.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc112 -if.else.i.i: ; preds = %if.then.i548 - %cmp.i.i.i = icmp ult i64 %sub.i.i, %sub.i549 - br i1 %cmp.i.i.i, label %if.then.i.i.i654.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i +if.else.i.i: ; preds = %if.then.i549 + %cmp.i.i.i = icmp ult i64 %sub.i.i, %sub.i550 + br i1 %cmp.i.i.i, label %if.then.i.i.i655.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i _ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i.i - %.sroa.speculated.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i105, i64 %sub.i549) - %add.i.i.i550 = add nuw i64 %.sroa.speculated.i.i.i, %sub.ptr.sub.i.i.i105 - %54 = call i64 @llvm.umin.i64(i64 %add.i.i.i550, i64 9223372036854775807) - %call5.i.i.i.i.i554 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %54) #16 + %.sroa.speculated.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i105, i64 %sub.i550) + %add.i.i.i551 = add nuw i64 %.sroa.speculated.i.i.i, %sub.ptr.sub.i.i.i105 + %54 = call i64 @llvm.umin.i64(i64 %add.i.i.i551, i64 9223372036854775807) + %call5.i.i.i.i.i555 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %54) #16 to label %call5.i.i.i.i.i.noexc unwind label %lpad21.loopexit call5.i.i.i.i.i.noexc: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i - %add.ptr.i.i551 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i554, i64 %sub.ptr.sub.i.i.i105 - store i8 0, ptr %add.ptr.i.i551, align 1 - %sub.i.i.i23.i.i = add nsw i64 %sub.i549, -1 + %add.ptr.i.i552 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i555, i64 %sub.ptr.sub.i.i.i105 + store i8 0, ptr %add.ptr.i.i552, align 1 + %sub.i.i.i23.i.i = add nsw i64 %sub.i550, -1 %cmp.i.i.i.i.i24.i.i = icmp eq i64 %sub.i.i.i23.i.i, 0 br i1 %cmp.i.i.i.i.i24.i.i, label %try.cont.i.i, label %if.then.i.i.i.i.i.i.i25.i.i if.then.i.i.i.i.i.i.i25.i.i: ; preds = %call5.i.i.i.i.i.noexc - %incdec.ptr.i.i.i22.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i551, i64 1 + %incdec.ptr.i.i.i22.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i552, i64 1 call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i, i8 0, i64 %sub.i.i.i23.i.i, i1 false) br label %try.cont.i.i @@ -3388,7 +3388,7 @@ try.cont.i.i: ; preds = %if.then.i.i.i.i.i.i br i1 %cmp.i.i.i.not.i.i, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i, label %if.then.i.i.i30.i.i if.then.i.i.i30.i.i: ; preds = %try.cont.i.i - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i554, ptr align 1 %52, i64 %sub.ptr.sub.i.i.i105, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i555, ptr align 1 %52, i64 %sub.ptr.sub.i.i.i105, i1 false) br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i _ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i: ; preds = %if.then.i.i.i30.i.i, %try.cont.i.i @@ -3400,15 +3400,15 @@ if.then.i32.i.i: ; preds = %_ZNSt6vectorIhSaIhE br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i _ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i: ; preds = %if.then.i32.i.i, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i - store ptr %call5.i.i.i.i.i554, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i554, i64 %add.i.i100 + store ptr %call5.i.i.i.i.i555, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i555, i64 %add.i.i100 store ptr %add.ptr36.i.i, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i554, i64 %54 + %add.ptr39.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i555, i64 %54 store ptr %add.ptr39.i.i, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc112 .noexc112: ; preds = %if.then.i.i107, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i - %.pre1.i.i109 = phi ptr [ %call5.i.i.i.i.i554, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i ], [ %.pre1.i.i109.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i ], [ %52, %if.then.i.i107 ] + %.pre1.i.i109 = phi ptr [ %call5.i.i.i.i.i555, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i ], [ %.pre1.i.i109.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i ], [ %52, %if.then.i.i107 ] %.pre.i.i108 = load i64, ptr %cursor.i.i, align 8 br label %invoke.cont29 @@ -3432,89 +3432,89 @@ invoke.cont29: ; preds = %.noexc112, %for.bod br i1 %cmp.not.i.i120, label %invoke.cont31, label %if.then.i.i121 if.then.i.i121: ; preds = %invoke.cont29 - %cmp.i559 = icmp ult i64 %sub.ptr.sub.i.i.i119, %add.i.i114 - br i1 %cmp.i559, label %if.then.i566, label %.noexc126 + %cmp.i560 = icmp ult i64 %sub.ptr.sub.i.i.i119, %add.i.i114 + br i1 %cmp.i560, label %if.then.i567, label %.noexc126 -if.then.i566: ; preds = %if.then.i.i121 - %sub.i567 = sub i64 %add.i.i114, %sub.ptr.sub.i.i.i119 +if.then.i567: ; preds = %if.then.i.i121 + %sub.i568 = sub i64 %add.i.i114, %sub.ptr.sub.i.i.i119 %61 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i569 = ptrtoint ptr %61 to i64 - %sub.ptr.sub.i9.i570 = sub i64 %sub.ptr.lhs.cast.i8.i569, %sub.ptr.lhs.cast.i.i.i117 - %cmp4.i.i571 = icmp sgt i64 %sub.ptr.sub.i.i.i119, -1 - call void @llvm.assume(i1 %cmp4.i.i571) - %sub.i.i572 = xor i64 %sub.ptr.sub.i.i.i119, 9223372036854775807 - %cmp6.i.i573 = icmp ule i64 %sub.ptr.sub.i9.i570, %sub.i.i572 - call void @llvm.assume(i1 %cmp6.i.i573) - %cmp8.not.i.i574 = icmp ult i64 %sub.ptr.sub.i9.i570, %sub.i567 - br i1 %cmp8.not.i.i574, label %if.else.i.i583, label %if.then.i.i.i.i.i575 - -if.then.i.i.i.i.i575: ; preds = %if.then.i566 + %sub.ptr.lhs.cast.i8.i570 = ptrtoint ptr %61 to i64 + %sub.ptr.sub.i9.i571 = sub i64 %sub.ptr.lhs.cast.i8.i570, %sub.ptr.lhs.cast.i.i.i117 + %cmp4.i.i572 = icmp sgt i64 %sub.ptr.sub.i.i.i119, -1 + call void @llvm.assume(i1 %cmp4.i.i572) + %sub.i.i573 = xor i64 %sub.ptr.sub.i.i.i119, 9223372036854775807 + %cmp6.i.i574 = icmp ule i64 %sub.ptr.sub.i9.i571, %sub.i.i573 + call void @llvm.assume(i1 %cmp6.i.i574) + %cmp8.not.i.i575 = icmp ult i64 %sub.ptr.sub.i9.i571, %sub.i568 + br i1 %cmp8.not.i.i575, label %if.else.i.i584, label %if.then.i.i.i.i.i576 + +if.then.i.i.i.i.i576: ; preds = %if.then.i567 store i8 0, ptr %59, align 1 - %incdec.ptr.i.i.i.i.i576 = getelementptr inbounds i8, ptr %59, i64 1 - %sub.i.i.i.i.i577 = add i64 %sub.i567, -1 - %cmp.i.i.i.i.i.i.i578 = icmp eq i64 %sub.i.i.i.i.i577, 0 - br i1 %cmp.i.i.i.i.i.i.i578, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i581, label %if.then.i.i.i.i.i.i.i.i.i579 - -if.then.i.i.i.i.i.i.i.i.i579: ; preds = %if.then.i.i.i.i.i575 - %add.ptr.i.i.i.i.i.i.i580 = getelementptr inbounds i8, ptr %59, i64 %sub.i567 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i576, i8 0, i64 %sub.i.i.i.i.i577, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i581 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i581: ; preds = %if.then.i.i.i.i.i.i.i.i.i579, %if.then.i.i.i.i.i575 - %__first.addr.0.i.i.i.i.i582 = phi ptr [ %incdec.ptr.i.i.i.i.i576, %if.then.i.i.i.i.i575 ], [ %add.ptr.i.i.i.i.i.i.i580, %if.then.i.i.i.i.i.i.i.i.i579 ] - store ptr %__first.addr.0.i.i.i.i.i582, ptr %_M_finish.i.i.i.i, align 8 + %incdec.ptr.i.i.i.i.i577 = getelementptr inbounds i8, ptr %59, i64 1 + %sub.i.i.i.i.i578 = add i64 %sub.i568, -1 + %cmp.i.i.i.i.i.i.i579 = icmp eq i64 %sub.i.i.i.i.i578, 0 + br i1 %cmp.i.i.i.i.i.i.i579, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i582, label %if.then.i.i.i.i.i.i.i.i.i580 + +if.then.i.i.i.i.i.i.i.i.i580: ; preds = %if.then.i.i.i.i.i576 + %add.ptr.i.i.i.i.i.i.i581 = getelementptr inbounds i8, ptr %59, i64 %sub.i568 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i577, i8 0, i64 %sub.i.i.i.i.i578, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i582 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i582: ; preds = %if.then.i.i.i.i.i.i.i.i.i580, %if.then.i.i.i.i.i576 + %__first.addr.0.i.i.i.i.i583 = phi ptr [ %incdec.ptr.i.i.i.i.i577, %if.then.i.i.i.i.i576 ], [ %add.ptr.i.i.i.i.i.i.i581, %if.then.i.i.i.i.i.i.i.i.i580 ] + store ptr %__first.addr.0.i.i.i.i.i583, ptr %_M_finish.i.i.i.i, align 8 %.pre1.i.i123.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc126 -if.else.i.i583: ; preds = %if.then.i566 - %cmp.i.i.i584 = icmp ult i64 %sub.i.i572, %sub.i567 - br i1 %cmp.i.i.i584, label %if.then.i.i.i654.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i585 - -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i585: ; preds = %if.else.i.i583 - %.sroa.speculated.i.i.i586 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i119, i64 %sub.i567) - %add.i.i.i587 = add nuw i64 %.sroa.speculated.i.i.i586, %sub.ptr.sub.i.i.i119 - %62 = call i64 @llvm.umin.i64(i64 %add.i.i.i587, i64 9223372036854775807) - %call5.i.i.i.i.i605 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %62) #16 - to label %call5.i.i.i.i.i.noexc604 unwind label %lpad21.loopexit - -call5.i.i.i.i.i.noexc604: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i585 - %add.ptr.i.i588 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i605, i64 %sub.ptr.sub.i.i.i119 - store i8 0, ptr %add.ptr.i.i588, align 1 - %sub.i.i.i23.i.i589 = add nsw i64 %sub.i567, -1 - %cmp.i.i.i.i.i24.i.i590 = icmp eq i64 %sub.i.i.i23.i.i589, 0 - br i1 %cmp.i.i.i.i.i24.i.i590, label %try.cont.i.i593, label %if.then.i.i.i.i.i.i.i25.i.i591 - -if.then.i.i.i.i.i.i.i25.i.i591: ; preds = %call5.i.i.i.i.i.noexc604 - %incdec.ptr.i.i.i22.i.i592 = getelementptr inbounds i8, ptr %add.ptr.i.i588, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i592, i8 0, i64 %sub.i.i.i23.i.i589, i1 false) - br label %try.cont.i.i593 - -try.cont.i.i593: ; preds = %if.then.i.i.i.i.i.i.i25.i.i591, %call5.i.i.i.i.i.noexc604 - %cmp.i.i.i.not.i.i594 = icmp eq ptr %59, %60 - br i1 %cmp.i.i.i.not.i.i594, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i596, label %if.then.i.i.i30.i.i595 - -if.then.i.i.i30.i.i595: ; preds = %try.cont.i.i593 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i605, ptr align 1 %60, i64 %sub.ptr.sub.i.i.i119, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i596 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i596: ; preds = %if.then.i.i.i30.i.i595, %try.cont.i.i593 - %tobool.not.i31.i.i597 = icmp eq ptr %60, null - br i1 %tobool.not.i31.i.i597, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i599, label %if.then.i32.i.i598 - -if.then.i32.i.i598: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i596 +if.else.i.i584: ; preds = %if.then.i567 + %cmp.i.i.i585 = icmp ult i64 %sub.i.i573, %sub.i568 + br i1 %cmp.i.i.i585, label %if.then.i.i.i655.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i586 + +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i586: ; preds = %if.else.i.i584 + %.sroa.speculated.i.i.i587 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i119, i64 %sub.i568) + %add.i.i.i588 = add nuw i64 %.sroa.speculated.i.i.i587, %sub.ptr.sub.i.i.i119 + %62 = call i64 @llvm.umin.i64(i64 %add.i.i.i588, i64 9223372036854775807) + %call5.i.i.i.i.i606 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %62) #16 + to label %call5.i.i.i.i.i.noexc605 unwind label %lpad21.loopexit + +call5.i.i.i.i.i.noexc605: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i586 + %add.ptr.i.i589 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i606, i64 %sub.ptr.sub.i.i.i119 + store i8 0, ptr %add.ptr.i.i589, align 1 + %sub.i.i.i23.i.i590 = add nsw i64 %sub.i568, -1 + %cmp.i.i.i.i.i24.i.i591 = icmp eq i64 %sub.i.i.i23.i.i590, 0 + br i1 %cmp.i.i.i.i.i24.i.i591, label %try.cont.i.i594, label %if.then.i.i.i.i.i.i.i25.i.i592 + +if.then.i.i.i.i.i.i.i25.i.i592: ; preds = %call5.i.i.i.i.i.noexc605 + %incdec.ptr.i.i.i22.i.i593 = getelementptr inbounds i8, ptr %add.ptr.i.i589, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i593, i8 0, i64 %sub.i.i.i23.i.i590, i1 false) + br label %try.cont.i.i594 + +try.cont.i.i594: ; preds = %if.then.i.i.i.i.i.i.i25.i.i592, %call5.i.i.i.i.i.noexc605 + %cmp.i.i.i.not.i.i595 = icmp eq ptr %59, %60 + br i1 %cmp.i.i.i.not.i.i595, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i597, label %if.then.i.i.i30.i.i596 + +if.then.i.i.i30.i.i596: ; preds = %try.cont.i.i594 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i606, ptr align 1 %60, i64 %sub.ptr.sub.i.i.i119, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i597 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i597: ; preds = %if.then.i.i.i30.i.i596, %try.cont.i.i594 + %tobool.not.i31.i.i598 = icmp eq ptr %60, null + br i1 %tobool.not.i31.i.i598, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i600, label %if.then.i32.i.i599 + +if.then.i32.i.i599: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i597 call void @_ZdlPv(ptr noundef nonnull %60) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i599 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i599: ; preds = %if.then.i32.i.i598, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i596 - store ptr %call5.i.i.i.i.i605, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i600 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i605, i64 %add.i.i114 - store ptr %add.ptr36.i.i600, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i601 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i605, i64 %62 - store ptr %add.ptr39.i.i601, ptr %_M_end_of_storage.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i600 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i600: ; preds = %if.then.i32.i.i599, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i597 + store ptr %call5.i.i.i.i.i606, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i601 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i606, i64 %add.i.i114 + store ptr %add.ptr36.i.i601, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i602 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i606, i64 %62 + store ptr %add.ptr39.i.i602, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc126 -.noexc126: ; preds = %if.then.i.i121, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i599, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i581 - %.pre1.i.i123 = phi ptr [ %call5.i.i.i.i.i605, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i599 ], [ %.pre1.i.i123.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i581 ], [ %60, %if.then.i.i121 ] +.noexc126: ; preds = %if.then.i.i121, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i600, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i582 + %.pre1.i.i123 = phi ptr [ %call5.i.i.i.i.i606, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i600 ], [ %.pre1.i.i123.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i582 ], [ %60, %if.then.i.i121 ] %.pre.i.i122 = load i64, ptr %cursor.i.i, align 8 br label %invoke.cont31 @@ -3538,96 +3538,96 @@ invoke.cont31: ; preds = %.noexc126, %invoke. br i1 %cmp.not.i.i135, label %for.inc, label %if.then.i.i136 if.then.i.i136: ; preds = %invoke.cont31 - %cmp.i611 = icmp ult i64 %sub.ptr.sub.i.i.i134, %add.i.i129 - br i1 %cmp.i611, label %if.then.i618, label %.noexc141 + %cmp.i612 = icmp ult i64 %sub.ptr.sub.i.i.i134, %add.i.i129 + br i1 %cmp.i612, label %if.then.i619, label %.noexc141 -if.then.i618: ; preds = %if.then.i.i136 - %sub.i619 = sub i64 %add.i.i129, %sub.ptr.sub.i.i.i134 +if.then.i619: ; preds = %if.then.i.i136 + %sub.i620 = sub i64 %add.i.i129, %sub.ptr.sub.i.i.i134 %69 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i621 = ptrtoint ptr %69 to i64 - %sub.ptr.sub.i9.i622 = sub i64 %sub.ptr.lhs.cast.i8.i621, %sub.ptr.lhs.cast.i.i.i132 - %cmp4.i.i623 = icmp sgt i64 %sub.ptr.sub.i.i.i134, -1 - call void @llvm.assume(i1 %cmp4.i.i623) - %sub.i.i624 = xor i64 %sub.ptr.sub.i.i.i134, 9223372036854775807 - %cmp6.i.i625 = icmp ule i64 %sub.ptr.sub.i9.i622, %sub.i.i624 - call void @llvm.assume(i1 %cmp6.i.i625) - %cmp8.not.i.i626 = icmp ult i64 %sub.ptr.sub.i9.i622, %sub.i619 - br i1 %cmp8.not.i.i626, label %if.else.i.i635, label %if.then.i.i.i.i.i627 - -if.then.i.i.i.i.i627: ; preds = %if.then.i618 + %sub.ptr.lhs.cast.i8.i622 = ptrtoint ptr %69 to i64 + %sub.ptr.sub.i9.i623 = sub i64 %sub.ptr.lhs.cast.i8.i622, %sub.ptr.lhs.cast.i.i.i132 + %cmp4.i.i624 = icmp sgt i64 %sub.ptr.sub.i.i.i134, -1 + call void @llvm.assume(i1 %cmp4.i.i624) + %sub.i.i625 = xor i64 %sub.ptr.sub.i.i.i134, 9223372036854775807 + %cmp6.i.i626 = icmp ule i64 %sub.ptr.sub.i9.i623, %sub.i.i625 + call void @llvm.assume(i1 %cmp6.i.i626) + %cmp8.not.i.i627 = icmp ult i64 %sub.ptr.sub.i9.i623, %sub.i620 + br i1 %cmp8.not.i.i627, label %if.else.i.i636, label %if.then.i.i.i.i.i628 + +if.then.i.i.i.i.i628: ; preds = %if.then.i619 store i8 0, ptr %67, align 1 - %incdec.ptr.i.i.i.i.i628 = getelementptr inbounds i8, ptr %67, i64 1 - %sub.i.i.i.i.i629 = add i64 %sub.i619, -1 - %cmp.i.i.i.i.i.i.i630 = icmp eq i64 %sub.i.i.i.i.i629, 0 - br i1 %cmp.i.i.i.i.i.i.i630, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i633, label %if.then.i.i.i.i.i.i.i.i.i631 - -if.then.i.i.i.i.i.i.i.i.i631: ; preds = %if.then.i.i.i.i.i627 - %add.ptr.i.i.i.i.i.i.i632 = getelementptr inbounds i8, ptr %67, i64 %sub.i619 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i628, i8 0, i64 %sub.i.i.i.i.i629, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i633 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i633: ; preds = %if.then.i.i.i.i.i.i.i.i.i631, %if.then.i.i.i.i.i627 - %__first.addr.0.i.i.i.i.i634 = phi ptr [ %incdec.ptr.i.i.i.i.i628, %if.then.i.i.i.i.i627 ], [ %add.ptr.i.i.i.i.i.i.i632, %if.then.i.i.i.i.i.i.i.i.i631 ] - store ptr %__first.addr.0.i.i.i.i.i634, ptr %_M_finish.i.i.i.i, align 8 + %incdec.ptr.i.i.i.i.i629 = getelementptr inbounds i8, ptr %67, i64 1 + %sub.i.i.i.i.i630 = add i64 %sub.i620, -1 + %cmp.i.i.i.i.i.i.i631 = icmp eq i64 %sub.i.i.i.i.i630, 0 + br i1 %cmp.i.i.i.i.i.i.i631, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i634, label %if.then.i.i.i.i.i.i.i.i.i632 + +if.then.i.i.i.i.i.i.i.i.i632: ; preds = %if.then.i.i.i.i.i628 + %add.ptr.i.i.i.i.i.i.i633 = getelementptr inbounds i8, ptr %67, i64 %sub.i620 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i629, i8 0, i64 %sub.i.i.i.i.i630, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i634 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i634: ; preds = %if.then.i.i.i.i.i.i.i.i.i632, %if.then.i.i.i.i.i628 + %__first.addr.0.i.i.i.i.i635 = phi ptr [ %incdec.ptr.i.i.i.i.i629, %if.then.i.i.i.i.i628 ], [ %add.ptr.i.i.i.i.i.i.i633, %if.then.i.i.i.i.i.i.i.i.i632 ] + store ptr %__first.addr.0.i.i.i.i.i635, ptr %_M_finish.i.i.i.i, align 8 %.pre1.i.i138.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc141 -if.else.i.i635: ; preds = %if.then.i618 - %cmp.i.i.i636 = icmp ult i64 %sub.i.i624, %sub.i619 - br i1 %cmp.i.i.i636, label %if.then.i.i.i654.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i637 +if.else.i.i636: ; preds = %if.then.i619 + %cmp.i.i.i637 = icmp ult i64 %sub.i.i625, %sub.i620 + br i1 %cmp.i.i.i637, label %if.then.i.i.i655.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i638 -if.then.i.i.i654.invoke: ; preds = %if.else.i.i635, %if.else.i.i583, %if.else.i.i +if.then.i.i.i655.invoke: ; preds = %if.else.i.i636, %if.else.i.i584, %if.else.i.i invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.12) #18 - to label %if.then.i.i.i654.cont unwind label %lpad21.loopexit.split-lp.loopexit.split-lp + to label %if.then.i.i.i655.cont unwind label %lpad21.loopexit.split-lp.loopexit.split-lp -if.then.i.i.i654.cont: ; preds = %if.then.i.i.i654.invoke +if.then.i.i.i655.cont: ; preds = %if.then.i.i.i655.invoke unreachable -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i637: ; preds = %if.else.i.i635 - %.sroa.speculated.i.i.i638 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i134, i64 %sub.i619) - %add.i.i.i639 = add nuw i64 %.sroa.speculated.i.i.i638, %sub.ptr.sub.i.i.i134 - %70 = call i64 @llvm.umin.i64(i64 %add.i.i.i639, i64 9223372036854775807) - %call5.i.i.i.i.i657 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %70) #16 - to label %call5.i.i.i.i.i.noexc656 unwind label %lpad21.loopexit - -call5.i.i.i.i.i.noexc656: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i637 - %add.ptr.i.i640 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i657, i64 %sub.ptr.sub.i.i.i134 - store i8 0, ptr %add.ptr.i.i640, align 1 - %sub.i.i.i23.i.i641 = add nsw i64 %sub.i619, -1 - %cmp.i.i.i.i.i24.i.i642 = icmp eq i64 %sub.i.i.i23.i.i641, 0 - br i1 %cmp.i.i.i.i.i24.i.i642, label %try.cont.i.i645, label %if.then.i.i.i.i.i.i.i25.i.i643 - -if.then.i.i.i.i.i.i.i25.i.i643: ; preds = %call5.i.i.i.i.i.noexc656 - %incdec.ptr.i.i.i22.i.i644 = getelementptr inbounds i8, ptr %add.ptr.i.i640, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i644, i8 0, i64 %sub.i.i.i23.i.i641, i1 false) - br label %try.cont.i.i645 - -try.cont.i.i645: ; preds = %if.then.i.i.i.i.i.i.i25.i.i643, %call5.i.i.i.i.i.noexc656 - %cmp.i.i.i.not.i.i646 = icmp eq ptr %67, %68 - br i1 %cmp.i.i.i.not.i.i646, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i648, label %if.then.i.i.i30.i.i647 - -if.then.i.i.i30.i.i647: ; preds = %try.cont.i.i645 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i657, ptr align 1 %68, i64 %sub.ptr.sub.i.i.i134, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i648 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i648: ; preds = %if.then.i.i.i30.i.i647, %try.cont.i.i645 - %tobool.not.i31.i.i649 = icmp eq ptr %68, null - br i1 %tobool.not.i31.i.i649, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i651, label %if.then.i32.i.i650 - -if.then.i32.i.i650: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i648 +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i638: ; preds = %if.else.i.i636 + %.sroa.speculated.i.i.i639 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i134, i64 %sub.i620) + %add.i.i.i640 = add nuw i64 %.sroa.speculated.i.i.i639, %sub.ptr.sub.i.i.i134 + %70 = call i64 @llvm.umin.i64(i64 %add.i.i.i640, i64 9223372036854775807) + %call5.i.i.i.i.i658 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %70) #16 + to label %call5.i.i.i.i.i.noexc657 unwind label %lpad21.loopexit + +call5.i.i.i.i.i.noexc657: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i638 + %add.ptr.i.i641 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i658, i64 %sub.ptr.sub.i.i.i134 + store i8 0, ptr %add.ptr.i.i641, align 1 + %sub.i.i.i23.i.i642 = add nsw i64 %sub.i620, -1 + %cmp.i.i.i.i.i24.i.i643 = icmp eq i64 %sub.i.i.i23.i.i642, 0 + br i1 %cmp.i.i.i.i.i24.i.i643, label %try.cont.i.i646, label %if.then.i.i.i.i.i.i.i25.i.i644 + +if.then.i.i.i.i.i.i.i25.i.i644: ; preds = %call5.i.i.i.i.i.noexc657 + %incdec.ptr.i.i.i22.i.i645 = getelementptr inbounds i8, ptr %add.ptr.i.i641, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i645, i8 0, i64 %sub.i.i.i23.i.i642, i1 false) + br label %try.cont.i.i646 + +try.cont.i.i646: ; preds = %if.then.i.i.i.i.i.i.i25.i.i644, %call5.i.i.i.i.i.noexc657 + %cmp.i.i.i.not.i.i647 = icmp eq ptr %67, %68 + br i1 %cmp.i.i.i.not.i.i647, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i649, label %if.then.i.i.i30.i.i648 + +if.then.i.i.i30.i.i648: ; preds = %try.cont.i.i646 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i658, ptr align 1 %68, i64 %sub.ptr.sub.i.i.i134, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i649 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i649: ; preds = %if.then.i.i.i30.i.i648, %try.cont.i.i646 + %tobool.not.i31.i.i650 = icmp eq ptr %68, null + br i1 %tobool.not.i31.i.i650, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i652, label %if.then.i32.i.i651 + +if.then.i32.i.i651: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i649 call void @_ZdlPv(ptr noundef nonnull %68) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i651 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i651: ; preds = %if.then.i32.i.i650, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i648 - store ptr %call5.i.i.i.i.i657, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i652 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i657, i64 %add.i.i129 - store ptr %add.ptr36.i.i652, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i653 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i657, i64 %70 - store ptr %add.ptr39.i.i653, ptr %_M_end_of_storage.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i652 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i652: ; preds = %if.then.i32.i.i651, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i649 + store ptr %call5.i.i.i.i.i658, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i653 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i658, i64 %add.i.i129 + store ptr %add.ptr36.i.i653, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i654 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i658, i64 %70 + store ptr %add.ptr39.i.i654, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc141 -.noexc141: ; preds = %if.then.i.i136, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i651, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i633 - %.pre1.i.i138 = phi ptr [ %call5.i.i.i.i.i657, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i651 ], [ %.pre1.i.i138.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i633 ], [ %68, %if.then.i.i136 ] +.noexc141: ; preds = %if.then.i.i136, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i652, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i634 + %.pre1.i.i138 = phi ptr [ %call5.i.i.i.i.i658, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i652 ], [ %.pre1.i.i138.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i634 ], [ %68, %if.then.i.i136 ] %.pre.i.i137 = load i64, ptr %cursor.i.i, align 8 br label %for.inc @@ -3660,23 +3660,23 @@ lpad18: ; preds = %if.then.i.i12.i366, cleanup br label %ehcleanup -lpad21.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i, %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i585, %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i637 - %lpad.loopexit1003 = landingpad { ptr, i32 } +lpad21.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i, %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i586, %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i638 + %lpad.loopexit1004 = landingpad { ptr, i32 } cleanup br label %lpad21 lpad21.loopexit.split-lp.loopexit: ; preds = %if.then.i.i - %lpad.loopexit1006 = landingpad { ptr, i32 } + %lpad.loopexit1007 = landingpad { ptr, i32 } cleanup br label %lpad21 -lpad21.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i654.invoke - %lpad.loopexit.split-lp1007 = landingpad { ptr, i32 } +lpad21.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i655.invoke + %lpad.loopexit.split-lp1008 = landingpad { ptr, i32 } cleanup br label %lpad21 lpad21: ; preds = %lpad21.loopexit.split-lp.loopexit, %lpad21.loopexit.split-lp.loopexit.split-lp, %lpad21.loopexit - %lpad.phi1005 = phi { ptr, i32 } [ %lpad.loopexit1003, %lpad21.loopexit ], [ %lpad.loopexit1006, %lpad21.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp1007, %lpad21.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi1006 = phi { ptr, i32 } [ %lpad.loopexit1004, %lpad21.loopexit ], [ %lpad.loopexit1007, %lpad21.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp1008, %lpad21.loopexit.split-lp.loopexit.split-lp ] call fastcc void @_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %curChunk) #17 br label %ehcleanup @@ -3808,14 +3808,14 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit199: ; preds = %invoke.cont38, %. %add9.i.i197 = add i64 %104, 2 store i64 %add9.i.i197, ptr %cursor.i.i, align 8 %105 = load i32, ptr %mNumVertices, align 4 - %cmp481291.not = icmp eq i32 %105, 0 - br i1 %cmp481291.not, label %for.end62, label %for.body49 + %cmp481310.not = icmp eq i32 %105, 0 + br i1 %cmp481310.not, label %for.end62, label %for.body49 for.body49: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit199, %for.inc60 %106 = phi i64 [ %add9.i.i227, %for.inc60 ], [ %add9.i.i197, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit199 ] - %indvars.iv1448 = phi i64 [ %indvars.iv.next1449, %for.inc60 ], [ 0, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit199 ] + %indvars.iv1479 = phi i64 [ %indvars.iv.next1480, %for.inc60 ], [ 0, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit199 ] %107 = load ptr, ptr %arrayidx.i, align 8 - %arrayidx53 = getelementptr inbounds %class.aiVector3t, ptr %107, i64 %indvars.iv1448 + %arrayidx53 = getelementptr inbounds %class.aiVector3t, ptr %107, i64 %indvars.iv1479 %108 = load float, ptr %arrayidx53, align 4 %add.i.i201 = add i64 %106, 4 %109 = load ptr, ptr %_M_finish.i.i.i.i, align 8 @@ -3827,89 +3827,89 @@ for.body49: ; preds = %_ZN6Assimp12StreamW br i1 %cmp.not.i.i207, label %invoke.cont56, label %if.then.i.i208 if.then.i.i208: ; preds = %for.body49 - %cmp.i663 = icmp ult i64 %sub.ptr.sub.i.i.i206, %add.i.i201 - br i1 %cmp.i663, label %if.then.i670, label %.noexc213 + %cmp.i664 = icmp ult i64 %sub.ptr.sub.i.i.i206, %add.i.i201 + br i1 %cmp.i664, label %if.then.i671, label %.noexc213 -if.then.i670: ; preds = %if.then.i.i208 - %sub.i671 = sub i64 %add.i.i201, %sub.ptr.sub.i.i.i206 +if.then.i671: ; preds = %if.then.i.i208 + %sub.i672 = sub i64 %add.i.i201, %sub.ptr.sub.i.i.i206 %111 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i673 = ptrtoint ptr %111 to i64 - %sub.ptr.sub.i9.i674 = sub i64 %sub.ptr.lhs.cast.i8.i673, %sub.ptr.lhs.cast.i.i.i204 - %cmp4.i.i675 = icmp sgt i64 %sub.ptr.sub.i.i.i206, -1 - call void @llvm.assume(i1 %cmp4.i.i675) - %sub.i.i676 = xor i64 %sub.ptr.sub.i.i.i206, 9223372036854775807 - %cmp6.i.i677 = icmp ule i64 %sub.ptr.sub.i9.i674, %sub.i.i676 - call void @llvm.assume(i1 %cmp6.i.i677) - %cmp8.not.i.i678 = icmp ult i64 %sub.ptr.sub.i9.i674, %sub.i671 - br i1 %cmp8.not.i.i678, label %if.else.i.i687, label %if.then.i.i.i.i.i679 - -if.then.i.i.i.i.i679: ; preds = %if.then.i670 + %sub.ptr.lhs.cast.i8.i674 = ptrtoint ptr %111 to i64 + %sub.ptr.sub.i9.i675 = sub i64 %sub.ptr.lhs.cast.i8.i674, %sub.ptr.lhs.cast.i.i.i204 + %cmp4.i.i676 = icmp sgt i64 %sub.ptr.sub.i.i.i206, -1 + call void @llvm.assume(i1 %cmp4.i.i676) + %sub.i.i677 = xor i64 %sub.ptr.sub.i.i.i206, 9223372036854775807 + %cmp6.i.i678 = icmp ule i64 %sub.ptr.sub.i9.i675, %sub.i.i677 + call void @llvm.assume(i1 %cmp6.i.i678) + %cmp8.not.i.i679 = icmp ult i64 %sub.ptr.sub.i9.i675, %sub.i672 + br i1 %cmp8.not.i.i679, label %if.else.i.i688, label %if.then.i.i.i.i.i680 + +if.then.i.i.i.i.i680: ; preds = %if.then.i671 store i8 0, ptr %109, align 1 - %incdec.ptr.i.i.i.i.i680 = getelementptr inbounds i8, ptr %109, i64 1 - %sub.i.i.i.i.i681 = add i64 %sub.i671, -1 - %cmp.i.i.i.i.i.i.i682 = icmp eq i64 %sub.i.i.i.i.i681, 0 - br i1 %cmp.i.i.i.i.i.i.i682, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i685, label %if.then.i.i.i.i.i.i.i.i.i683 - -if.then.i.i.i.i.i.i.i.i.i683: ; preds = %if.then.i.i.i.i.i679 - %add.ptr.i.i.i.i.i.i.i684 = getelementptr inbounds i8, ptr %109, i64 %sub.i671 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i680, i8 0, i64 %sub.i.i.i.i.i681, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i685 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i685: ; preds = %if.then.i.i.i.i.i.i.i.i.i683, %if.then.i.i.i.i.i679 - %__first.addr.0.i.i.i.i.i686 = phi ptr [ %incdec.ptr.i.i.i.i.i680, %if.then.i.i.i.i.i679 ], [ %add.ptr.i.i.i.i.i.i.i684, %if.then.i.i.i.i.i.i.i.i.i683 ] - store ptr %__first.addr.0.i.i.i.i.i686, ptr %_M_finish.i.i.i.i, align 8 + %incdec.ptr.i.i.i.i.i681 = getelementptr inbounds i8, ptr %109, i64 1 + %sub.i.i.i.i.i682 = add i64 %sub.i672, -1 + %cmp.i.i.i.i.i.i.i683 = icmp eq i64 %sub.i.i.i.i.i682, 0 + br i1 %cmp.i.i.i.i.i.i.i683, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i686, label %if.then.i.i.i.i.i.i.i.i.i684 + +if.then.i.i.i.i.i.i.i.i.i684: ; preds = %if.then.i.i.i.i.i680 + %add.ptr.i.i.i.i.i.i.i685 = getelementptr inbounds i8, ptr %109, i64 %sub.i672 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i681, i8 0, i64 %sub.i.i.i.i.i682, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i686 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i686: ; preds = %if.then.i.i.i.i.i.i.i.i.i684, %if.then.i.i.i.i.i680 + %__first.addr.0.i.i.i.i.i687 = phi ptr [ %incdec.ptr.i.i.i.i.i681, %if.then.i.i.i.i.i680 ], [ %add.ptr.i.i.i.i.i.i.i685, %if.then.i.i.i.i.i.i.i.i.i684 ] + store ptr %__first.addr.0.i.i.i.i.i687, ptr %_M_finish.i.i.i.i, align 8 %.pre1.i.i210.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc213 -if.else.i.i687: ; preds = %if.then.i670 - %cmp.i.i.i688 = icmp ult i64 %sub.i.i676, %sub.i671 - br i1 %cmp.i.i.i688, label %if.then.i.i.i758.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i689 - -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i689: ; preds = %if.else.i.i687 - %.sroa.speculated.i.i.i690 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i206, i64 %sub.i671) - %add.i.i.i691 = add nuw i64 %.sroa.speculated.i.i.i690, %sub.ptr.sub.i.i.i206 - %112 = call i64 @llvm.umin.i64(i64 %add.i.i.i691, i64 9223372036854775807) - %call5.i.i.i.i.i709 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %112) #16 - to label %call5.i.i.i.i.i.noexc708 unwind label %lpad43.loopexit - -call5.i.i.i.i.i.noexc708: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i689 - %add.ptr.i.i692 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i709, i64 %sub.ptr.sub.i.i.i206 - store i8 0, ptr %add.ptr.i.i692, align 1 - %sub.i.i.i23.i.i693 = add nsw i64 %sub.i671, -1 - %cmp.i.i.i.i.i24.i.i694 = icmp eq i64 %sub.i.i.i23.i.i693, 0 - br i1 %cmp.i.i.i.i.i24.i.i694, label %try.cont.i.i697, label %if.then.i.i.i.i.i.i.i25.i.i695 - -if.then.i.i.i.i.i.i.i25.i.i695: ; preds = %call5.i.i.i.i.i.noexc708 - %incdec.ptr.i.i.i22.i.i696 = getelementptr inbounds i8, ptr %add.ptr.i.i692, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i696, i8 0, i64 %sub.i.i.i23.i.i693, i1 false) - br label %try.cont.i.i697 - -try.cont.i.i697: ; preds = %if.then.i.i.i.i.i.i.i25.i.i695, %call5.i.i.i.i.i.noexc708 - %cmp.i.i.i.not.i.i698 = icmp eq ptr %109, %110 - br i1 %cmp.i.i.i.not.i.i698, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i700, label %if.then.i.i.i30.i.i699 - -if.then.i.i.i30.i.i699: ; preds = %try.cont.i.i697 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i709, ptr align 1 %110, i64 %sub.ptr.sub.i.i.i206, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i700 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i700: ; preds = %if.then.i.i.i30.i.i699, %try.cont.i.i697 - %tobool.not.i31.i.i701 = icmp eq ptr %110, null - br i1 %tobool.not.i31.i.i701, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i703, label %if.then.i32.i.i702 - -if.then.i32.i.i702: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i700 +if.else.i.i688: ; preds = %if.then.i671 + %cmp.i.i.i689 = icmp ult i64 %sub.i.i677, %sub.i672 + br i1 %cmp.i.i.i689, label %if.then.i.i.i759.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i690 + +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i690: ; preds = %if.else.i.i688 + %.sroa.speculated.i.i.i691 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i206, i64 %sub.i672) + %add.i.i.i692 = add nuw i64 %.sroa.speculated.i.i.i691, %sub.ptr.sub.i.i.i206 + %112 = call i64 @llvm.umin.i64(i64 %add.i.i.i692, i64 9223372036854775807) + %call5.i.i.i.i.i710 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %112) #16 + to label %call5.i.i.i.i.i.noexc709 unwind label %lpad43.loopexit + +call5.i.i.i.i.i.noexc709: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i690 + %add.ptr.i.i693 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i710, i64 %sub.ptr.sub.i.i.i206 + store i8 0, ptr %add.ptr.i.i693, align 1 + %sub.i.i.i23.i.i694 = add nsw i64 %sub.i672, -1 + %cmp.i.i.i.i.i24.i.i695 = icmp eq i64 %sub.i.i.i23.i.i694, 0 + br i1 %cmp.i.i.i.i.i24.i.i695, label %try.cont.i.i698, label %if.then.i.i.i.i.i.i.i25.i.i696 + +if.then.i.i.i.i.i.i.i25.i.i696: ; preds = %call5.i.i.i.i.i.noexc709 + %incdec.ptr.i.i.i22.i.i697 = getelementptr inbounds i8, ptr %add.ptr.i.i693, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i697, i8 0, i64 %sub.i.i.i23.i.i694, i1 false) + br label %try.cont.i.i698 + +try.cont.i.i698: ; preds = %if.then.i.i.i.i.i.i.i25.i.i696, %call5.i.i.i.i.i.noexc709 + %cmp.i.i.i.not.i.i699 = icmp eq ptr %109, %110 + br i1 %cmp.i.i.i.not.i.i699, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i701, label %if.then.i.i.i30.i.i700 + +if.then.i.i.i30.i.i700: ; preds = %try.cont.i.i698 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i710, ptr align 1 %110, i64 %sub.ptr.sub.i.i.i206, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i701 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i701: ; preds = %if.then.i.i.i30.i.i700, %try.cont.i.i698 + %tobool.not.i31.i.i702 = icmp eq ptr %110, null + br i1 %tobool.not.i31.i.i702, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i704, label %if.then.i32.i.i703 + +if.then.i32.i.i703: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i701 call void @_ZdlPv(ptr noundef nonnull %110) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i703 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i703: ; preds = %if.then.i32.i.i702, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i700 - store ptr %call5.i.i.i.i.i709, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i704 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i709, i64 %add.i.i201 - store ptr %add.ptr36.i.i704, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i705 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i709, i64 %112 - store ptr %add.ptr39.i.i705, ptr %_M_end_of_storage.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i704 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i704: ; preds = %if.then.i32.i.i703, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i701 + store ptr %call5.i.i.i.i.i710, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i705 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i710, i64 %add.i.i201 + store ptr %add.ptr36.i.i705, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i706 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i710, i64 %112 + store ptr %add.ptr39.i.i706, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc213 -.noexc213: ; preds = %if.then.i.i208, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i703, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i685 - %.pre1.i.i210 = phi ptr [ %call5.i.i.i.i.i709, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i703 ], [ %.pre1.i.i210.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i685 ], [ %110, %if.then.i.i208 ] +.noexc213: ; preds = %if.then.i.i208, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i704, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i686 + %.pre1.i.i210 = phi ptr [ %call5.i.i.i.i.i710, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i704 ], [ %.pre1.i.i210.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i686 ], [ %110, %if.then.i.i208 ] %.pre.i.i209 = load i64, ptr %cursor.i.i, align 8 br label %invoke.cont56 @@ -3921,7 +3921,7 @@ invoke.cont56: ; preds = %.noexc213, %for.bod %115 = load i64, ptr %cursor.i.i, align 8 %add9.i.i212 = add i64 %115, 4 store i64 %add9.i.i212, ptr %cursor.i.i, align 8 - %y58 = getelementptr inbounds %class.aiVector3t, ptr %107, i64 %indvars.iv1448, i32 1 + %y58 = getelementptr inbounds %class.aiVector3t, ptr %107, i64 %indvars.iv1479, i32 1 %116 = load float, ptr %y58, align 4 %add.i.i216 = add i64 %115, 8 %117 = load ptr, ptr %_M_finish.i.i.i.i, align 8 @@ -3933,96 +3933,96 @@ invoke.cont56: ; preds = %.noexc213, %for.bod br i1 %cmp.not.i.i222, label %for.inc60, label %if.then.i.i223 if.then.i.i223: ; preds = %invoke.cont56 - %cmp.i715 = icmp ult i64 %sub.ptr.sub.i.i.i221, %add.i.i216 - br i1 %cmp.i715, label %if.then.i722, label %.noexc228 + %cmp.i716 = icmp ult i64 %sub.ptr.sub.i.i.i221, %add.i.i216 + br i1 %cmp.i716, label %if.then.i723, label %.noexc228 -if.then.i722: ; preds = %if.then.i.i223 - %sub.i723 = sub i64 %add.i.i216, %sub.ptr.sub.i.i.i221 +if.then.i723: ; preds = %if.then.i.i223 + %sub.i724 = sub i64 %add.i.i216, %sub.ptr.sub.i.i.i221 %119 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i725 = ptrtoint ptr %119 to i64 - %sub.ptr.sub.i9.i726 = sub i64 %sub.ptr.lhs.cast.i8.i725, %sub.ptr.lhs.cast.i.i.i219 - %cmp4.i.i727 = icmp sgt i64 %sub.ptr.sub.i.i.i221, -1 - call void @llvm.assume(i1 %cmp4.i.i727) - %sub.i.i728 = xor i64 %sub.ptr.sub.i.i.i221, 9223372036854775807 - %cmp6.i.i729 = icmp ule i64 %sub.ptr.sub.i9.i726, %sub.i.i728 - call void @llvm.assume(i1 %cmp6.i.i729) - %cmp8.not.i.i730 = icmp ult i64 %sub.ptr.sub.i9.i726, %sub.i723 - br i1 %cmp8.not.i.i730, label %if.else.i.i739, label %if.then.i.i.i.i.i731 - -if.then.i.i.i.i.i731: ; preds = %if.then.i722 + %sub.ptr.lhs.cast.i8.i726 = ptrtoint ptr %119 to i64 + %sub.ptr.sub.i9.i727 = sub i64 %sub.ptr.lhs.cast.i8.i726, %sub.ptr.lhs.cast.i.i.i219 + %cmp4.i.i728 = icmp sgt i64 %sub.ptr.sub.i.i.i221, -1 + call void @llvm.assume(i1 %cmp4.i.i728) + %sub.i.i729 = xor i64 %sub.ptr.sub.i.i.i221, 9223372036854775807 + %cmp6.i.i730 = icmp ule i64 %sub.ptr.sub.i9.i727, %sub.i.i729 + call void @llvm.assume(i1 %cmp6.i.i730) + %cmp8.not.i.i731 = icmp ult i64 %sub.ptr.sub.i9.i727, %sub.i724 + br i1 %cmp8.not.i.i731, label %if.else.i.i740, label %if.then.i.i.i.i.i732 + +if.then.i.i.i.i.i732: ; preds = %if.then.i723 store i8 0, ptr %117, align 1 - %incdec.ptr.i.i.i.i.i732 = getelementptr inbounds i8, ptr %117, i64 1 - %sub.i.i.i.i.i733 = add i64 %sub.i723, -1 - %cmp.i.i.i.i.i.i.i734 = icmp eq i64 %sub.i.i.i.i.i733, 0 - br i1 %cmp.i.i.i.i.i.i.i734, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i737, label %if.then.i.i.i.i.i.i.i.i.i735 - -if.then.i.i.i.i.i.i.i.i.i735: ; preds = %if.then.i.i.i.i.i731 - %add.ptr.i.i.i.i.i.i.i736 = getelementptr inbounds i8, ptr %117, i64 %sub.i723 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i732, i8 0, i64 %sub.i.i.i.i.i733, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i737 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i737: ; preds = %if.then.i.i.i.i.i.i.i.i.i735, %if.then.i.i.i.i.i731 - %__first.addr.0.i.i.i.i.i738 = phi ptr [ %incdec.ptr.i.i.i.i.i732, %if.then.i.i.i.i.i731 ], [ %add.ptr.i.i.i.i.i.i.i736, %if.then.i.i.i.i.i.i.i.i.i735 ] - store ptr %__first.addr.0.i.i.i.i.i738, ptr %_M_finish.i.i.i.i, align 8 + %incdec.ptr.i.i.i.i.i733 = getelementptr inbounds i8, ptr %117, i64 1 + %sub.i.i.i.i.i734 = add i64 %sub.i724, -1 + %cmp.i.i.i.i.i.i.i735 = icmp eq i64 %sub.i.i.i.i.i734, 0 + br i1 %cmp.i.i.i.i.i.i.i735, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i738, label %if.then.i.i.i.i.i.i.i.i.i736 + +if.then.i.i.i.i.i.i.i.i.i736: ; preds = %if.then.i.i.i.i.i732 + %add.ptr.i.i.i.i.i.i.i737 = getelementptr inbounds i8, ptr %117, i64 %sub.i724 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i733, i8 0, i64 %sub.i.i.i.i.i734, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i738 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i738: ; preds = %if.then.i.i.i.i.i.i.i.i.i736, %if.then.i.i.i.i.i732 + %__first.addr.0.i.i.i.i.i739 = phi ptr [ %incdec.ptr.i.i.i.i.i733, %if.then.i.i.i.i.i732 ], [ %add.ptr.i.i.i.i.i.i.i737, %if.then.i.i.i.i.i.i.i.i.i736 ] + store ptr %__first.addr.0.i.i.i.i.i739, ptr %_M_finish.i.i.i.i, align 8 %.pre1.i.i225.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc228 -if.else.i.i739: ; preds = %if.then.i722 - %cmp.i.i.i740 = icmp ult i64 %sub.i.i728, %sub.i723 - br i1 %cmp.i.i.i740, label %if.then.i.i.i758.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i741 +if.else.i.i740: ; preds = %if.then.i723 + %cmp.i.i.i741 = icmp ult i64 %sub.i.i729, %sub.i724 + br i1 %cmp.i.i.i741, label %if.then.i.i.i759.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i742 -if.then.i.i.i758.invoke: ; preds = %if.else.i.i739, %if.else.i.i687 +if.then.i.i.i759.invoke: ; preds = %if.else.i.i740, %if.else.i.i688 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.12) #18 - to label %if.then.i.i.i758.cont unwind label %lpad43.loopexit.split-lp.loopexit.split-lp + to label %if.then.i.i.i759.cont unwind label %lpad43.loopexit.split-lp.loopexit.split-lp -if.then.i.i.i758.cont: ; preds = %if.then.i.i.i758.invoke +if.then.i.i.i759.cont: ; preds = %if.then.i.i.i759.invoke unreachable -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i741: ; preds = %if.else.i.i739 - %.sroa.speculated.i.i.i742 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i221, i64 %sub.i723) - %add.i.i.i743 = add nuw i64 %.sroa.speculated.i.i.i742, %sub.ptr.sub.i.i.i221 - %120 = call i64 @llvm.umin.i64(i64 %add.i.i.i743, i64 9223372036854775807) - %call5.i.i.i.i.i761 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %120) #16 - to label %call5.i.i.i.i.i.noexc760 unwind label %lpad43.loopexit - -call5.i.i.i.i.i.noexc760: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i741 - %add.ptr.i.i744 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i761, i64 %sub.ptr.sub.i.i.i221 - store i8 0, ptr %add.ptr.i.i744, align 1 - %sub.i.i.i23.i.i745 = add nsw i64 %sub.i723, -1 - %cmp.i.i.i.i.i24.i.i746 = icmp eq i64 %sub.i.i.i23.i.i745, 0 - br i1 %cmp.i.i.i.i.i24.i.i746, label %try.cont.i.i749, label %if.then.i.i.i.i.i.i.i25.i.i747 - -if.then.i.i.i.i.i.i.i25.i.i747: ; preds = %call5.i.i.i.i.i.noexc760 - %incdec.ptr.i.i.i22.i.i748 = getelementptr inbounds i8, ptr %add.ptr.i.i744, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i748, i8 0, i64 %sub.i.i.i23.i.i745, i1 false) - br label %try.cont.i.i749 - -try.cont.i.i749: ; preds = %if.then.i.i.i.i.i.i.i25.i.i747, %call5.i.i.i.i.i.noexc760 - %cmp.i.i.i.not.i.i750 = icmp eq ptr %117, %118 - br i1 %cmp.i.i.i.not.i.i750, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i752, label %if.then.i.i.i30.i.i751 - -if.then.i.i.i30.i.i751: ; preds = %try.cont.i.i749 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i761, ptr align 1 %118, i64 %sub.ptr.sub.i.i.i221, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i752 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i752: ; preds = %if.then.i.i.i30.i.i751, %try.cont.i.i749 - %tobool.not.i31.i.i753 = icmp eq ptr %118, null - br i1 %tobool.not.i31.i.i753, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i755, label %if.then.i32.i.i754 - -if.then.i32.i.i754: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i752 +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i742: ; preds = %if.else.i.i740 + %.sroa.speculated.i.i.i743 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i221, i64 %sub.i724) + %add.i.i.i744 = add nuw i64 %.sroa.speculated.i.i.i743, %sub.ptr.sub.i.i.i221 + %120 = call i64 @llvm.umin.i64(i64 %add.i.i.i744, i64 9223372036854775807) + %call5.i.i.i.i.i762 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %120) #16 + to label %call5.i.i.i.i.i.noexc761 unwind label %lpad43.loopexit + +call5.i.i.i.i.i.noexc761: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i742 + %add.ptr.i.i745 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i762, i64 %sub.ptr.sub.i.i.i221 + store i8 0, ptr %add.ptr.i.i745, align 1 + %sub.i.i.i23.i.i746 = add nsw i64 %sub.i724, -1 + %cmp.i.i.i.i.i24.i.i747 = icmp eq i64 %sub.i.i.i23.i.i746, 0 + br i1 %cmp.i.i.i.i.i24.i.i747, label %try.cont.i.i750, label %if.then.i.i.i.i.i.i.i25.i.i748 + +if.then.i.i.i.i.i.i.i25.i.i748: ; preds = %call5.i.i.i.i.i.noexc761 + %incdec.ptr.i.i.i22.i.i749 = getelementptr inbounds i8, ptr %add.ptr.i.i745, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i749, i8 0, i64 %sub.i.i.i23.i.i746, i1 false) + br label %try.cont.i.i750 + +try.cont.i.i750: ; preds = %if.then.i.i.i.i.i.i.i25.i.i748, %call5.i.i.i.i.i.noexc761 + %cmp.i.i.i.not.i.i751 = icmp eq ptr %117, %118 + br i1 %cmp.i.i.i.not.i.i751, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i753, label %if.then.i.i.i30.i.i752 + +if.then.i.i.i30.i.i752: ; preds = %try.cont.i.i750 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i762, ptr align 1 %118, i64 %sub.ptr.sub.i.i.i221, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i753 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i753: ; preds = %if.then.i.i.i30.i.i752, %try.cont.i.i750 + %tobool.not.i31.i.i754 = icmp eq ptr %118, null + br i1 %tobool.not.i31.i.i754, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i756, label %if.then.i32.i.i755 + +if.then.i32.i.i755: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i753 call void @_ZdlPv(ptr noundef nonnull %118) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i755 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i755: ; preds = %if.then.i32.i.i754, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i752 - store ptr %call5.i.i.i.i.i761, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i756 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i761, i64 %add.i.i216 - store ptr %add.ptr36.i.i756, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i757 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i761, i64 %120 - store ptr %add.ptr39.i.i757, ptr %_M_end_of_storage.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i756 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i756: ; preds = %if.then.i32.i.i755, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i753 + store ptr %call5.i.i.i.i.i762, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i757 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i762, i64 %add.i.i216 + store ptr %add.ptr36.i.i757, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i758 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i762, i64 %120 + store ptr %add.ptr39.i.i758, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc228 -.noexc228: ; preds = %if.then.i.i223, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i755, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i737 - %.pre1.i.i225 = phi ptr [ %call5.i.i.i.i.i761, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i755 ], [ %.pre1.i.i225.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i737 ], [ %118, %if.then.i.i223 ] +.noexc228: ; preds = %if.then.i.i223, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i756, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i738 + %.pre1.i.i225 = phi ptr [ %call5.i.i.i.i.i762, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i756 ], [ %.pre1.i.i225.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i738 ], [ %118, %if.then.i.i223 ] %.pre.i.i224 = load i64, ptr %cursor.i.i, align 8 br label %for.inc60 @@ -4034,29 +4034,29 @@ for.inc60: ; preds = %.noexc228, %invoke. %123 = load i64, ptr %cursor.i.i, align 8 %add9.i.i227 = add i64 %123, 4 store i64 %add9.i.i227, ptr %cursor.i.i, align 8 - %indvars.iv.next1449 = add nuw nsw i64 %indvars.iv1448, 1 + %indvars.iv.next1480 = add nuw nsw i64 %indvars.iv1479, 1 %124 = load i32, ptr %mNumVertices, align 4 %125 = zext i32 %124 to i64 - %cmp48 = icmp ult i64 %indvars.iv.next1449, %125 + %cmp48 = icmp ult i64 %indvars.iv.next1480, %125 br i1 %cmp48, label %for.body49, label %for.end62, !llvm.loop !15 -lpad43.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i689, %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i741 - %lpad.loopexit1000 = landingpad { ptr, i32 } +lpad43.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i690, %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i742 + %lpad.loopexit1001 = landingpad { ptr, i32 } cleanup br label %lpad43 lpad43.loopexit.split-lp.loopexit: ; preds = %if.then.i.i193 - %lpad.loopexit1009 = landingpad { ptr, i32 } + %lpad.loopexit1010 = landingpad { ptr, i32 } cleanup br label %lpad43 -lpad43.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i758.invoke - %lpad.loopexit.split-lp1010 = landingpad { ptr, i32 } +lpad43.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i759.invoke + %lpad.loopexit.split-lp1011 = landingpad { ptr, i32 } cleanup br label %lpad43 lpad43: ; preds = %lpad43.loopexit.split-lp.loopexit, %lpad43.loopexit.split-lp.loopexit.split-lp, %lpad43.loopexit - %lpad.phi1002 = phi { ptr, i32 } [ %lpad.loopexit1000, %lpad43.loopexit ], [ %lpad.loopexit1009, %lpad43.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp1010, %lpad43.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi1003 = phi { ptr, i32 } [ %lpad.loopexit1001, %lpad43.loopexit ], [ %lpad.loopexit1010, %lpad43.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp1011, %lpad43.loopexit.split-lp.loopexit.split-lp ] call fastcc void @_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %curChunk36) #17 br label %ehcleanup @@ -4156,8 +4156,8 @@ _ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit279: store i64 %add9.i.i16.i276, ptr %cursor.i.i, align 8 %mNumFaces = getelementptr inbounds %struct.aiMesh, ptr %5, i64 0, i32 2 %144 = load i32, ptr %mNumFaces, align 8 - %cmp691293.not = icmp eq i32 %144, 0 - br i1 %cmp691293.not, label %for.end79, label %for.body70.lr.ph + %cmp691312.not = icmp eq i32 %144, 0 + br i1 %cmp691312.not, label %for.end79, label %for.body70.lr.ph for.body70.lr.ph: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit279 %mFaces = getelementptr inbounds %struct.aiMesh, ptr %5, i64 0, i32 10 @@ -4166,15 +4166,15 @@ for.body70.lr.ph: ; preds = %_ZN6Assimp12_GLOBAL br label %for.body70 for.body70: ; preds = %for.body70.lr.ph, %for.body70 - %indvars.iv1451 = phi i64 [ 0, %for.body70.lr.ph ], [ %indvars.iv.next1452, %for.body70 ] - %count66.01294 = phi i16 [ 0, %for.body70.lr.ph ], [ %spec.select, %for.body70 ] - %arrayidx72 = getelementptr inbounds %struct.aiFace, ptr %145, i64 %indvars.iv1451 + %indvars.iv1482 = phi i64 [ 0, %for.body70.lr.ph ], [ %indvars.iv.next1483, %for.body70 ] + %count66.01313 = phi i16 [ 0, %for.body70.lr.ph ], [ %spec.select, %for.body70 ] + %arrayidx72 = getelementptr inbounds %struct.aiFace, ptr %145, i64 %indvars.iv1482 %146 = load i32, ptr %arrayidx72, align 8 %cmp73 = icmp ugt i32 %146, 2 %inc76 = zext i1 %cmp73 to i16 - %spec.select = add i16 %count66.01294, %inc76 - %indvars.iv.next1452 = add nuw nsw i64 %indvars.iv1451, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next1452, %wide.trip.count + %spec.select = add i16 %count66.01313, %inc76 + %indvars.iv.next1483 = add nuw nsw i64 %indvars.iv1482, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next1483, %wide.trip.count br i1 %exitcond.not, label %for.end79, label %for.body70, !llvm.loop !16 for.end79: ; preds = %for.body70, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit279 @@ -4206,8 +4206,8 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit294: ; preds = %for.end79, %.noex %add9.i.i292 = add i64 %151, 2 store i64 %add9.i.i292, ptr %cursor.i.i, align 8 %152 = load i32, ptr %mNumFaces, align 8 - %cmp861297.not = icmp eq i32 %152, 0 - br i1 %cmp861297.not, label %for.end111, label %for.body87.lr.ph + %cmp861316.not = icmp eq i32 %152, 0 + br i1 %cmp861316.not, label %for.end111, label %for.body87.lr.ph for.body87.lr.ph: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit294 %mFaces89 = getelementptr inbounds %struct.aiMesh, ptr %5, i64 0, i32 10 @@ -4216,47 +4216,47 @@ for.body87.lr.ph: ; preds = %_ZN6Assimp12StreamW for.body87: ; preds = %for.body87.lr.ph, %for.inc109 %153 = phi i32 [ %152, %for.body87.lr.ph ], [ %174, %for.inc109 ] %154 = phi i64 [ %add9.i.i292, %for.body87.lr.ph ], [ %175, %for.inc109 ] - %indvars.iv1457 = phi i64 [ 0, %for.body87.lr.ph ], [ %indvars.iv.next1458, %for.inc109 ] + %indvars.iv1488 = phi i64 [ 0, %for.body87.lr.ph ], [ %indvars.iv.next1489, %for.inc109 ] %155 = load ptr, ptr %mFaces89, align 8 - %arrayidx91 = getelementptr inbounds %struct.aiFace, ptr %155, i64 %indvars.iv1457 + %arrayidx91 = getelementptr inbounds %struct.aiFace, ptr %155, i64 %indvars.iv1488 %156 = load i32, ptr %arrayidx91, align 8 %cmp93 = icmp ult i32 %156, 3 br i1 %cmp93, label %for.inc109, label %for.cond96.preheader for.cond96.preheader: ; preds = %for.body87 - %mIndices = getelementptr inbounds %struct.aiFace, ptr %155, i64 %indvars.iv1457, i32 1 + %mIndices = getelementptr inbounds %struct.aiFace, ptr %155, i64 %indvars.iv1488, i32 1 br label %for.body98 -lpad81.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i793 - %lpad.loopexit992 = landingpad { ptr, i32 } +lpad81.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i794 + %lpad.loopexit993 = landingpad { ptr, i32 } cleanup br label %lpad81 -lpad81.loopexit.split-lp.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i845 - %lpad.loopexit998 = landingpad { ptr, i32 } +lpad81.loopexit.split-lp.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i846 + %lpad.loopexit999 = landingpad { ptr, i32 } cleanup br label %lpad81 lpad81.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.end111, %if.then.i.i288 - %lpad.loopexit1012 = landingpad { ptr, i32 } + %lpad.loopexit1013 = landingpad { ptr, i32 } cleanup br label %lpad81 -lpad81.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i810.invoke - %lpad.loopexit.split-lp1013 = landingpad { ptr, i32 } +lpad81.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i811.invoke + %lpad.loopexit.split-lp1014 = landingpad { ptr, i32 } cleanup br label %lpad81 lpad81: ; preds = %lpad81.loopexit.split-lp.loopexit, %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad81.loopexit - %lpad.phi994 = phi { ptr, i32 } [ %lpad.loopexit992, %lpad81.loopexit ], [ %lpad.loopexit998, %lpad81.loopexit.split-lp.loopexit ], [ %lpad.loopexit1012, %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp1013, %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi995 = phi { ptr, i32 } [ %lpad.loopexit993, %lpad81.loopexit ], [ %lpad.loopexit999, %lpad81.loopexit.split-lp.loopexit ], [ %lpad.loopexit1013, %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp1014, %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call fastcc void @_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %curChunk63) #17 br label %ehcleanup for.body98: ; preds = %for.cond96.preheader, %for.inc104 %157 = phi i64 [ %154, %for.cond96.preheader ], [ %add9.i.i307, %for.inc104 ] - %indvars.iv1453 = phi i64 [ 0, %for.cond96.preheader ], [ %indvars.iv.next1454, %for.inc104 ] + %indvars.iv1484 = phi i64 [ 0, %for.cond96.preheader ], [ %indvars.iv.next1485, %for.inc104 ] %158 = load ptr, ptr %mIndices, align 8 - %arrayidx101 = getelementptr inbounds i32, ptr %158, i64 %indvars.iv1453 + %arrayidx101 = getelementptr inbounds i32, ptr %158, i64 %indvars.iv1484 %159 = load i32, ptr %arrayidx101, align 4 %conv102 = trunc i32 %159 to i16 %add.i.i296 = add i64 %157, 2 @@ -4269,96 +4269,96 @@ for.body98: ; preds = %for.cond96.preheade br i1 %cmp.not.i.i302, label %for.inc104, label %if.then.i.i303 if.then.i.i303: ; preds = %for.body98 - %cmp.i767 = icmp ult i64 %sub.ptr.sub.i.i.i301, %add.i.i296 - br i1 %cmp.i767, label %if.then.i774, label %.noexc308 + %cmp.i768 = icmp ult i64 %sub.ptr.sub.i.i.i301, %add.i.i296 + br i1 %cmp.i768, label %if.then.i775, label %.noexc308 -if.then.i774: ; preds = %if.then.i.i303 - %sub.i775 = sub i64 %add.i.i296, %sub.ptr.sub.i.i.i301 +if.then.i775: ; preds = %if.then.i.i303 + %sub.i776 = sub i64 %add.i.i296, %sub.ptr.sub.i.i.i301 %162 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i777 = ptrtoint ptr %162 to i64 - %sub.ptr.sub.i9.i778 = sub i64 %sub.ptr.lhs.cast.i8.i777, %sub.ptr.lhs.cast.i.i.i299 - %cmp4.i.i779 = icmp sgt i64 %sub.ptr.sub.i.i.i301, -1 - call void @llvm.assume(i1 %cmp4.i.i779) - %sub.i.i780 = xor i64 %sub.ptr.sub.i.i.i301, 9223372036854775807 - %cmp6.i.i781 = icmp ule i64 %sub.ptr.sub.i9.i778, %sub.i.i780 - call void @llvm.assume(i1 %cmp6.i.i781) - %cmp8.not.i.i782 = icmp ult i64 %sub.ptr.sub.i9.i778, %sub.i775 - br i1 %cmp8.not.i.i782, label %if.else.i.i791, label %if.then.i.i.i.i.i783 - -if.then.i.i.i.i.i783: ; preds = %if.then.i774 + %sub.ptr.lhs.cast.i8.i778 = ptrtoint ptr %162 to i64 + %sub.ptr.sub.i9.i779 = sub i64 %sub.ptr.lhs.cast.i8.i778, %sub.ptr.lhs.cast.i.i.i299 + %cmp4.i.i780 = icmp sgt i64 %sub.ptr.sub.i.i.i301, -1 + call void @llvm.assume(i1 %cmp4.i.i780) + %sub.i.i781 = xor i64 %sub.ptr.sub.i.i.i301, 9223372036854775807 + %cmp6.i.i782 = icmp ule i64 %sub.ptr.sub.i9.i779, %sub.i.i781 + call void @llvm.assume(i1 %cmp6.i.i782) + %cmp8.not.i.i783 = icmp ult i64 %sub.ptr.sub.i9.i779, %sub.i776 + br i1 %cmp8.not.i.i783, label %if.else.i.i792, label %if.then.i.i.i.i.i784 + +if.then.i.i.i.i.i784: ; preds = %if.then.i775 store i8 0, ptr %160, align 1 - %incdec.ptr.i.i.i.i.i784 = getelementptr inbounds i8, ptr %160, i64 1 - %sub.i.i.i.i.i785 = add i64 %sub.i775, -1 - %cmp.i.i.i.i.i.i.i786 = icmp eq i64 %sub.i.i.i.i.i785, 0 - br i1 %cmp.i.i.i.i.i.i.i786, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i789, label %if.then.i.i.i.i.i.i.i.i.i787 - -if.then.i.i.i.i.i.i.i.i.i787: ; preds = %if.then.i.i.i.i.i783 - %add.ptr.i.i.i.i.i.i.i788 = getelementptr inbounds i8, ptr %160, i64 %sub.i775 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i784, i8 0, i64 %sub.i.i.i.i.i785, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i789 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i789: ; preds = %if.then.i.i.i.i.i.i.i.i.i787, %if.then.i.i.i.i.i783 - %__first.addr.0.i.i.i.i.i790 = phi ptr [ %incdec.ptr.i.i.i.i.i784, %if.then.i.i.i.i.i783 ], [ %add.ptr.i.i.i.i.i.i.i788, %if.then.i.i.i.i.i.i.i.i.i787 ] - store ptr %__first.addr.0.i.i.i.i.i790, ptr %_M_finish.i.i.i.i, align 8 + %incdec.ptr.i.i.i.i.i785 = getelementptr inbounds i8, ptr %160, i64 1 + %sub.i.i.i.i.i786 = add i64 %sub.i776, -1 + %cmp.i.i.i.i.i.i.i787 = icmp eq i64 %sub.i.i.i.i.i786, 0 + br i1 %cmp.i.i.i.i.i.i.i787, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i790, label %if.then.i.i.i.i.i.i.i.i.i788 + +if.then.i.i.i.i.i.i.i.i.i788: ; preds = %if.then.i.i.i.i.i784 + %add.ptr.i.i.i.i.i.i.i789 = getelementptr inbounds i8, ptr %160, i64 %sub.i776 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i785, i8 0, i64 %sub.i.i.i.i.i786, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i790 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i790: ; preds = %if.then.i.i.i.i.i.i.i.i.i788, %if.then.i.i.i.i.i784 + %__first.addr.0.i.i.i.i.i791 = phi ptr [ %incdec.ptr.i.i.i.i.i785, %if.then.i.i.i.i.i784 ], [ %add.ptr.i.i.i.i.i.i.i789, %if.then.i.i.i.i.i.i.i.i.i788 ] + store ptr %__first.addr.0.i.i.i.i.i791, ptr %_M_finish.i.i.i.i, align 8 %.pre1.i.i305.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc308 -if.else.i.i791: ; preds = %if.then.i774 - %cmp.i.i.i792 = icmp ult i64 %sub.i.i780, %sub.i775 - br i1 %cmp.i.i.i792, label %if.then.i.i.i810.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i793 +if.else.i.i792: ; preds = %if.then.i775 + %cmp.i.i.i793 = icmp ult i64 %sub.i.i781, %sub.i776 + br i1 %cmp.i.i.i793, label %if.then.i.i.i811.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i794 -if.then.i.i.i810.invoke: ; preds = %if.else.i.i843, %if.else.i.i791 +if.then.i.i.i811.invoke: ; preds = %if.else.i.i844, %if.else.i.i792 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.12) #18 - to label %if.then.i.i.i810.cont unwind label %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %if.then.i.i.i811.cont unwind label %lpad81.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -if.then.i.i.i810.cont: ; preds = %if.then.i.i.i810.invoke +if.then.i.i.i811.cont: ; preds = %if.then.i.i.i811.invoke unreachable -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i793: ; preds = %if.else.i.i791 - %.sroa.speculated.i.i.i794 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i301, i64 %sub.i775) - %add.i.i.i795 = add nuw i64 %.sroa.speculated.i.i.i794, %sub.ptr.sub.i.i.i301 - %163 = call i64 @llvm.umin.i64(i64 %add.i.i.i795, i64 9223372036854775807) - %call5.i.i.i.i.i813 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %163) #16 - to label %call5.i.i.i.i.i.noexc812 unwind label %lpad81.loopexit - -call5.i.i.i.i.i.noexc812: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i793 - %add.ptr.i.i796 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i813, i64 %sub.ptr.sub.i.i.i301 - store i8 0, ptr %add.ptr.i.i796, align 1 - %sub.i.i.i23.i.i797 = add nsw i64 %sub.i775, -1 - %cmp.i.i.i.i.i24.i.i798 = icmp eq i64 %sub.i.i.i23.i.i797, 0 - br i1 %cmp.i.i.i.i.i24.i.i798, label %try.cont.i.i801, label %if.then.i.i.i.i.i.i.i25.i.i799 - -if.then.i.i.i.i.i.i.i25.i.i799: ; preds = %call5.i.i.i.i.i.noexc812 - %incdec.ptr.i.i.i22.i.i800 = getelementptr inbounds i8, ptr %add.ptr.i.i796, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i800, i8 0, i64 %sub.i.i.i23.i.i797, i1 false) - br label %try.cont.i.i801 - -try.cont.i.i801: ; preds = %if.then.i.i.i.i.i.i.i25.i.i799, %call5.i.i.i.i.i.noexc812 - %cmp.i.i.i.not.i.i802 = icmp eq ptr %160, %161 - br i1 %cmp.i.i.i.not.i.i802, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i804, label %if.then.i.i.i30.i.i803 - -if.then.i.i.i30.i.i803: ; preds = %try.cont.i.i801 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i813, ptr align 1 %161, i64 %sub.ptr.sub.i.i.i301, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i804 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i804: ; preds = %if.then.i.i.i30.i.i803, %try.cont.i.i801 - %tobool.not.i31.i.i805 = icmp eq ptr %161, null - br i1 %tobool.not.i31.i.i805, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i807, label %if.then.i32.i.i806 - -if.then.i32.i.i806: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i804 +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i794: ; preds = %if.else.i.i792 + %.sroa.speculated.i.i.i795 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i301, i64 %sub.i776) + %add.i.i.i796 = add nuw i64 %.sroa.speculated.i.i.i795, %sub.ptr.sub.i.i.i301 + %163 = call i64 @llvm.umin.i64(i64 %add.i.i.i796, i64 9223372036854775807) + %call5.i.i.i.i.i814 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %163) #16 + to label %call5.i.i.i.i.i.noexc813 unwind label %lpad81.loopexit + +call5.i.i.i.i.i.noexc813: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i794 + %add.ptr.i.i797 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i814, i64 %sub.ptr.sub.i.i.i301 + store i8 0, ptr %add.ptr.i.i797, align 1 + %sub.i.i.i23.i.i798 = add nsw i64 %sub.i776, -1 + %cmp.i.i.i.i.i24.i.i799 = icmp eq i64 %sub.i.i.i23.i.i798, 0 + br i1 %cmp.i.i.i.i.i24.i.i799, label %try.cont.i.i802, label %if.then.i.i.i.i.i.i.i25.i.i800 + +if.then.i.i.i.i.i.i.i25.i.i800: ; preds = %call5.i.i.i.i.i.noexc813 + %incdec.ptr.i.i.i22.i.i801 = getelementptr inbounds i8, ptr %add.ptr.i.i797, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i801, i8 0, i64 %sub.i.i.i23.i.i798, i1 false) + br label %try.cont.i.i802 + +try.cont.i.i802: ; preds = %if.then.i.i.i.i.i.i.i25.i.i800, %call5.i.i.i.i.i.noexc813 + %cmp.i.i.i.not.i.i803 = icmp eq ptr %160, %161 + br i1 %cmp.i.i.i.not.i.i803, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i805, label %if.then.i.i.i30.i.i804 + +if.then.i.i.i30.i.i804: ; preds = %try.cont.i.i802 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i814, ptr align 1 %161, i64 %sub.ptr.sub.i.i.i301, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i805 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i805: ; preds = %if.then.i.i.i30.i.i804, %try.cont.i.i802 + %tobool.not.i31.i.i806 = icmp eq ptr %161, null + br i1 %tobool.not.i31.i.i806, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i808, label %if.then.i32.i.i807 + +if.then.i32.i.i807: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i805 call void @_ZdlPv(ptr noundef nonnull %161) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i807 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i807: ; preds = %if.then.i32.i.i806, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i804 - store ptr %call5.i.i.i.i.i813, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i808 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i813, i64 %add.i.i296 - store ptr %add.ptr36.i.i808, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i809 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i813, i64 %163 - store ptr %add.ptr39.i.i809, ptr %_M_end_of_storage.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i808 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i808: ; preds = %if.then.i32.i.i807, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i805 + store ptr %call5.i.i.i.i.i814, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i809 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i814, i64 %add.i.i296 + store ptr %add.ptr36.i.i809, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i810 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i814, i64 %163 + store ptr %add.ptr39.i.i810, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc308 -.noexc308: ; preds = %if.then.i.i303, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i807, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i789 - %.pre1.i.i305 = phi ptr [ %call5.i.i.i.i.i813, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i807 ], [ %.pre1.i.i305.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i789 ], [ %161, %if.then.i.i303 ] +.noexc308: ; preds = %if.then.i.i303, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i808, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i790 + %.pre1.i.i305 = phi ptr [ %call5.i.i.i.i.i814, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i808 ], [ %.pre1.i.i305.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i790 ], [ %161, %if.then.i.i303 ] %.pre.i.i304 = load i64, ptr %cursor.i.i, align 8 br label %for.inc104 @@ -4370,9 +4370,9 @@ for.inc104: ; preds = %.noexc308, %for.bod %166 = load i64, ptr %cursor.i.i, align 8 %add9.i.i307 = add i64 %166, 2 store i64 %add9.i.i307, ptr %cursor.i.i, align 8 - %indvars.iv.next1454 = add nuw nsw i64 %indvars.iv1453, 1 - %exitcond1456.not = icmp eq i64 %indvars.iv.next1454, 3 - br i1 %exitcond1456.not, label %for.end106, label %for.body98, !llvm.loop !17 + %indvars.iv.next1485 = add nuw nsw i64 %indvars.iv1484, 1 + %exitcond1487.not = icmp eq i64 %indvars.iv.next1485, 3 + br i1 %exitcond1487.not, label %for.end106, label %for.body98, !llvm.loop !17 for.end106: ; preds = %for.inc104 %add.i.i310 = add i64 %166, 4 @@ -4385,89 +4385,89 @@ for.end106: ; preds = %for.inc104 br i1 %cmp.not.i.i316, label %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI2Es.exit323, label %if.then.i.i317 if.then.i.i317: ; preds = %for.end106 - %cmp.i819 = icmp ult i64 %sub.ptr.sub.i.i.i315, %add.i.i310 - br i1 %cmp.i819, label %if.then.i826, label %.noexc322 + %cmp.i820 = icmp ult i64 %sub.ptr.sub.i.i.i315, %add.i.i310 + br i1 %cmp.i820, label %if.then.i827, label %.noexc322 -if.then.i826: ; preds = %if.then.i.i317 - %sub.i827 = sub i64 %add.i.i310, %sub.ptr.sub.i.i.i315 +if.then.i827: ; preds = %if.then.i.i317 + %sub.i828 = sub i64 %add.i.i310, %sub.ptr.sub.i.i.i315 %169 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i829 = ptrtoint ptr %169 to i64 - %sub.ptr.sub.i9.i830 = sub i64 %sub.ptr.lhs.cast.i8.i829, %sub.ptr.lhs.cast.i.i.i313 - %cmp4.i.i831 = icmp sgt i64 %sub.ptr.sub.i.i.i315, -1 - call void @llvm.assume(i1 %cmp4.i.i831) - %sub.i.i832 = xor i64 %sub.ptr.sub.i.i.i315, 9223372036854775807 - %cmp6.i.i833 = icmp ule i64 %sub.ptr.sub.i9.i830, %sub.i.i832 - call void @llvm.assume(i1 %cmp6.i.i833) - %cmp8.not.i.i834 = icmp ult i64 %sub.ptr.sub.i9.i830, %sub.i827 - br i1 %cmp8.not.i.i834, label %if.else.i.i843, label %if.then.i.i.i.i.i835 - -if.then.i.i.i.i.i835: ; preds = %if.then.i826 + %sub.ptr.lhs.cast.i8.i830 = ptrtoint ptr %169 to i64 + %sub.ptr.sub.i9.i831 = sub i64 %sub.ptr.lhs.cast.i8.i830, %sub.ptr.lhs.cast.i.i.i313 + %cmp4.i.i832 = icmp sgt i64 %sub.ptr.sub.i.i.i315, -1 + call void @llvm.assume(i1 %cmp4.i.i832) + %sub.i.i833 = xor i64 %sub.ptr.sub.i.i.i315, 9223372036854775807 + %cmp6.i.i834 = icmp ule i64 %sub.ptr.sub.i9.i831, %sub.i.i833 + call void @llvm.assume(i1 %cmp6.i.i834) + %cmp8.not.i.i835 = icmp ult i64 %sub.ptr.sub.i9.i831, %sub.i828 + br i1 %cmp8.not.i.i835, label %if.else.i.i844, label %if.then.i.i.i.i.i836 + +if.then.i.i.i.i.i836: ; preds = %if.then.i827 store i8 0, ptr %167, align 1 - %incdec.ptr.i.i.i.i.i836 = getelementptr inbounds i8, ptr %167, i64 1 - %sub.i.i.i.i.i837 = add i64 %sub.i827, -1 - %cmp.i.i.i.i.i.i.i838 = icmp eq i64 %sub.i.i.i.i.i837, 0 - br i1 %cmp.i.i.i.i.i.i.i838, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i841, label %if.then.i.i.i.i.i.i.i.i.i839 - -if.then.i.i.i.i.i.i.i.i.i839: ; preds = %if.then.i.i.i.i.i835 - %add.ptr.i.i.i.i.i.i.i840 = getelementptr inbounds i8, ptr %167, i64 %sub.i827 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i836, i8 0, i64 %sub.i.i.i.i.i837, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i841 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i841: ; preds = %if.then.i.i.i.i.i.i.i.i.i839, %if.then.i.i.i.i.i835 - %__first.addr.0.i.i.i.i.i842 = phi ptr [ %incdec.ptr.i.i.i.i.i836, %if.then.i.i.i.i.i835 ], [ %add.ptr.i.i.i.i.i.i.i840, %if.then.i.i.i.i.i.i.i.i.i839 ] - store ptr %__first.addr.0.i.i.i.i.i842, ptr %_M_finish.i.i.i.i, align 8 + %incdec.ptr.i.i.i.i.i837 = getelementptr inbounds i8, ptr %167, i64 1 + %sub.i.i.i.i.i838 = add i64 %sub.i828, -1 + %cmp.i.i.i.i.i.i.i839 = icmp eq i64 %sub.i.i.i.i.i838, 0 + br i1 %cmp.i.i.i.i.i.i.i839, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i842, label %if.then.i.i.i.i.i.i.i.i.i840 + +if.then.i.i.i.i.i.i.i.i.i840: ; preds = %if.then.i.i.i.i.i836 + %add.ptr.i.i.i.i.i.i.i841 = getelementptr inbounds i8, ptr %167, i64 %sub.i828 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i837, i8 0, i64 %sub.i.i.i.i.i838, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i842 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i842: ; preds = %if.then.i.i.i.i.i.i.i.i.i840, %if.then.i.i.i.i.i836 + %__first.addr.0.i.i.i.i.i843 = phi ptr [ %incdec.ptr.i.i.i.i.i837, %if.then.i.i.i.i.i836 ], [ %add.ptr.i.i.i.i.i.i.i841, %if.then.i.i.i.i.i.i.i.i.i840 ] + store ptr %__first.addr.0.i.i.i.i.i843, ptr %_M_finish.i.i.i.i, align 8 %.pre1.i.i319.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc322 -if.else.i.i843: ; preds = %if.then.i826 - %cmp.i.i.i844 = icmp ult i64 %sub.i.i832, %sub.i827 - br i1 %cmp.i.i.i844, label %if.then.i.i.i810.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i845 - -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i845: ; preds = %if.else.i.i843 - %.sroa.speculated.i.i.i846 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i315, i64 %sub.i827) - %add.i.i.i847 = add nuw i64 %.sroa.speculated.i.i.i846, %sub.ptr.sub.i.i.i315 - %170 = call i64 @llvm.umin.i64(i64 %add.i.i.i847, i64 9223372036854775807) - %call5.i.i.i.i.i865 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %170) #16 - to label %call5.i.i.i.i.i.noexc864 unwind label %lpad81.loopexit.split-lp.loopexit - -call5.i.i.i.i.i.noexc864: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i845 - %add.ptr.i.i848 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i865, i64 %sub.ptr.sub.i.i.i315 - store i8 0, ptr %add.ptr.i.i848, align 1 - %sub.i.i.i23.i.i849 = add nsw i64 %sub.i827, -1 - %cmp.i.i.i.i.i24.i.i850 = icmp eq i64 %sub.i.i.i23.i.i849, 0 - br i1 %cmp.i.i.i.i.i24.i.i850, label %try.cont.i.i853, label %if.then.i.i.i.i.i.i.i25.i.i851 - -if.then.i.i.i.i.i.i.i25.i.i851: ; preds = %call5.i.i.i.i.i.noexc864 - %incdec.ptr.i.i.i22.i.i852 = getelementptr inbounds i8, ptr %add.ptr.i.i848, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i852, i8 0, i64 %sub.i.i.i23.i.i849, i1 false) - br label %try.cont.i.i853 - -try.cont.i.i853: ; preds = %if.then.i.i.i.i.i.i.i25.i.i851, %call5.i.i.i.i.i.noexc864 - %cmp.i.i.i.not.i.i854 = icmp eq ptr %167, %168 - br i1 %cmp.i.i.i.not.i.i854, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i856, label %if.then.i.i.i30.i.i855 - -if.then.i.i.i30.i.i855: ; preds = %try.cont.i.i853 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i865, ptr align 1 %168, i64 %sub.ptr.sub.i.i.i315, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i856 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i856: ; preds = %if.then.i.i.i30.i.i855, %try.cont.i.i853 - %tobool.not.i31.i.i857 = icmp eq ptr %168, null - br i1 %tobool.not.i31.i.i857, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i859, label %if.then.i32.i.i858 - -if.then.i32.i.i858: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i856 +if.else.i.i844: ; preds = %if.then.i827 + %cmp.i.i.i845 = icmp ult i64 %sub.i.i833, %sub.i828 + br i1 %cmp.i.i.i845, label %if.then.i.i.i811.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i846 + +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i846: ; preds = %if.else.i.i844 + %.sroa.speculated.i.i.i847 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i315, i64 %sub.i828) + %add.i.i.i848 = add nuw i64 %.sroa.speculated.i.i.i847, %sub.ptr.sub.i.i.i315 + %170 = call i64 @llvm.umin.i64(i64 %add.i.i.i848, i64 9223372036854775807) + %call5.i.i.i.i.i866 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %170) #16 + to label %call5.i.i.i.i.i.noexc865 unwind label %lpad81.loopexit.split-lp.loopexit + +call5.i.i.i.i.i.noexc865: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i846 + %add.ptr.i.i849 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i866, i64 %sub.ptr.sub.i.i.i315 + store i8 0, ptr %add.ptr.i.i849, align 1 + %sub.i.i.i23.i.i850 = add nsw i64 %sub.i828, -1 + %cmp.i.i.i.i.i24.i.i851 = icmp eq i64 %sub.i.i.i23.i.i850, 0 + br i1 %cmp.i.i.i.i.i24.i.i851, label %try.cont.i.i854, label %if.then.i.i.i.i.i.i.i25.i.i852 + +if.then.i.i.i.i.i.i.i25.i.i852: ; preds = %call5.i.i.i.i.i.noexc865 + %incdec.ptr.i.i.i22.i.i853 = getelementptr inbounds i8, ptr %add.ptr.i.i849, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i853, i8 0, i64 %sub.i.i.i23.i.i850, i1 false) + br label %try.cont.i.i854 + +try.cont.i.i854: ; preds = %if.then.i.i.i.i.i.i.i25.i.i852, %call5.i.i.i.i.i.noexc865 + %cmp.i.i.i.not.i.i855 = icmp eq ptr %167, %168 + br i1 %cmp.i.i.i.not.i.i855, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i857, label %if.then.i.i.i30.i.i856 + +if.then.i.i.i30.i.i856: ; preds = %try.cont.i.i854 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i866, ptr align 1 %168, i64 %sub.ptr.sub.i.i.i315, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i857 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i857: ; preds = %if.then.i.i.i30.i.i856, %try.cont.i.i854 + %tobool.not.i31.i.i858 = icmp eq ptr %168, null + br i1 %tobool.not.i31.i.i858, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i860, label %if.then.i32.i.i859 + +if.then.i32.i.i859: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i857 call void @_ZdlPv(ptr noundef nonnull %168) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i859 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i859: ; preds = %if.then.i32.i.i858, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i856 - store ptr %call5.i.i.i.i.i865, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i860 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i865, i64 %add.i.i310 - store ptr %add.ptr36.i.i860, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i861 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i865, i64 %170 - store ptr %add.ptr39.i.i861, ptr %_M_end_of_storage.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i860 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i860: ; preds = %if.then.i32.i.i859, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i857 + store ptr %call5.i.i.i.i.i866, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i861 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i866, i64 %add.i.i310 + store ptr %add.ptr36.i.i861, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i862 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i866, i64 %170 + store ptr %add.ptr39.i.i862, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc322 -.noexc322: ; preds = %if.then.i.i317, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i859, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i841 - %.pre1.i.i319 = phi ptr [ %call5.i.i.i.i.i865, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i859 ], [ %.pre1.i.i319.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i841 ], [ %168, %if.then.i.i317 ] +.noexc322: ; preds = %if.then.i.i317, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i860, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i842 + %.pre1.i.i319 = phi ptr [ %call5.i.i.i.i.i866, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i860 ], [ %.pre1.i.i319.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i842 ], [ %168, %if.then.i.i317 ] %.pre.i.i318 = load i64, ptr %cursor.i.i, align 8 br label %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI2Es.exit323 @@ -4485,9 +4485,9 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutI2Es.exit323: ; preds = %for.end106, %.noe for.inc109: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI2Es.exit323, %for.body87 %174 = phi i32 [ %.pre, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI2Es.exit323 ], [ %153, %for.body87 ] %175 = phi i64 [ %add9.i.i321, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI2Es.exit323 ], [ %154, %for.body87 ] - %indvars.iv.next1458 = add nuw nsw i64 %indvars.iv1457, 1 + %indvars.iv.next1489 = add nuw nsw i64 %indvars.iv1488, 1 %176 = zext i32 %174 to i64 - %cmp86 = icmp ult i64 %indvars.iv.next1458, %176 + %cmp86 = icmp ult i64 %indvars.iv.next1489, %176 br i1 %cmp86, label %for.body87, label %for.end111, !llvm.loop !18 for.end111: ; preds = %for.inc109, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU2Et.exit294 @@ -4582,23 +4582,24 @@ _ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit373: %193 = load i64, ptr %cursor.i.i, align 8 %add9.i.i16.i370 = add i64 %193, 4 store i64 %add9.i.i16.i370, ptr %cursor.i.i, align 8 + %d1.i = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %__i.sroa.0.0.i, i64 0, i32 1, i32 0, i64 56 %c1.i = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %__i.sroa.0.0.i, i64 0, i32 1, i32 0, i64 40 %b1.i = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %__i.sroa.0.0.i, i64 0, i32 1, i32 0, i64 24 - %d1.i = getelementptr inbounds %"struct.std::_Rb_tree_node", ptr %__i.sroa.0.0.i, i64 0, i32 1, i32 0, i64 56 br label %for.cond119.preheader for.cond119.preheader: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit373, %for.inc132 %194 = phi i64 [ %add9.i.i16.i370, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit373 ], [ %add9.i.i387, %for.inc132 ] - %r.01300 = phi i32 [ 0, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit373 ], [ %inc133, %for.inc132 ] + %r.01319 = phi i32 [ 0, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterC2ERNS_12StreamWriterILb0ELb0EEEt.exit373 ], [ %inc133, %for.inc132 ] br label %for.body121 for.body121: ; preds = %for.cond119.preheader, %for.inc129 %195 = phi i64 [ %194, %for.cond119.preheader ], [ %add9.i.i387, %for.inc129 ] - %indvars.iv1460 = phi i64 [ 0, %for.cond119.preheader ], [ %indvars.iv.next1461, %for.inc129 ] - switch i32 %r.01300, label %_ZNK12aiMatrix4x4tIfEixEj.exit [ - i32 3, label %sw.bb4.i + %indvars.iv1491 = phi i64 [ 0, %for.cond119.preheader ], [ %indvars.iv.next1492, %for.inc129 ] + switch i32 %r.01319, label %default.unreachable.i [ + i32 0, label %_ZNK12aiMatrix4x4tIfEixEj.exit i32 1, label %sw.bb2.i i32 2, label %sw.bb3.i + i32 3, label %sw.bb4.i ] sw.bb2.i: ; preds = %for.body121 @@ -4610,9 +4611,12 @@ sw.bb3.i: ; preds = %for.body121 sw.bb4.i: ; preds = %for.body121 br label %_ZNK12aiMatrix4x4tIfEixEj.exit +default.unreachable.i: ; preds = %for.body121 + unreachable + _ZNK12aiMatrix4x4tIfEixEj.exit: ; preds = %for.body121, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i %retval.0.i = phi ptr [ %d1.i, %sw.bb4.i ], [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %second.i, %for.body121 ] - %arrayidx127 = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv1460 + %arrayidx127 = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv1491 %196 = load float, ptr %arrayidx127, align 4 %add.i.i376 = add i64 %195, 4 %197 = load ptr, ptr %_M_finish.i.i.i.i, align 8 @@ -4624,89 +4628,89 @@ _ZNK12aiMatrix4x4tIfEixEj.exit: ; preds = %for.body121, %sw.bb br i1 %cmp.not.i.i382, label %for.inc129, label %if.then.i.i383 if.then.i.i383: ; preds = %_ZNK12aiMatrix4x4tIfEixEj.exit - %cmp.i871 = icmp ult i64 %sub.ptr.sub.i.i.i381, %add.i.i376 - br i1 %cmp.i871, label %if.then.i878, label %.noexc388 + %cmp.i872 = icmp ult i64 %sub.ptr.sub.i.i.i381, %add.i.i376 + br i1 %cmp.i872, label %if.then.i879, label %.noexc388 -if.then.i878: ; preds = %if.then.i.i383 - %sub.i879 = sub i64 %add.i.i376, %sub.ptr.sub.i.i.i381 +if.then.i879: ; preds = %if.then.i.i383 + %sub.i880 = sub i64 %add.i.i376, %sub.ptr.sub.i.i.i381 %199 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i881 = ptrtoint ptr %199 to i64 - %sub.ptr.sub.i9.i882 = sub i64 %sub.ptr.lhs.cast.i8.i881, %sub.ptr.lhs.cast.i.i.i379 - %cmp4.i.i883 = icmp sgt i64 %sub.ptr.sub.i.i.i381, -1 - call void @llvm.assume(i1 %cmp4.i.i883) - %sub.i.i884 = xor i64 %sub.ptr.sub.i.i.i381, 9223372036854775807 - %cmp6.i.i885 = icmp ule i64 %sub.ptr.sub.i9.i882, %sub.i.i884 - call void @llvm.assume(i1 %cmp6.i.i885) - %cmp8.not.i.i886 = icmp ult i64 %sub.ptr.sub.i9.i882, %sub.i879 - br i1 %cmp8.not.i.i886, label %if.else.i.i895, label %if.then.i.i.i.i.i887 - -if.then.i.i.i.i.i887: ; preds = %if.then.i878 + %sub.ptr.lhs.cast.i8.i882 = ptrtoint ptr %199 to i64 + %sub.ptr.sub.i9.i883 = sub i64 %sub.ptr.lhs.cast.i8.i882, %sub.ptr.lhs.cast.i.i.i379 + %cmp4.i.i884 = icmp sgt i64 %sub.ptr.sub.i.i.i381, -1 + call void @llvm.assume(i1 %cmp4.i.i884) + %sub.i.i885 = xor i64 %sub.ptr.sub.i.i.i381, 9223372036854775807 + %cmp6.i.i886 = icmp ule i64 %sub.ptr.sub.i9.i883, %sub.i.i885 + call void @llvm.assume(i1 %cmp6.i.i886) + %cmp8.not.i.i887 = icmp ult i64 %sub.ptr.sub.i9.i883, %sub.i880 + br i1 %cmp8.not.i.i887, label %if.else.i.i896, label %if.then.i.i.i.i.i888 + +if.then.i.i.i.i.i888: ; preds = %if.then.i879 store i8 0, ptr %197, align 1 - %incdec.ptr.i.i.i.i.i888 = getelementptr inbounds i8, ptr %197, i64 1 - %sub.i.i.i.i.i889 = add i64 %sub.i879, -1 - %cmp.i.i.i.i.i.i.i890 = icmp eq i64 %sub.i.i.i.i.i889, 0 - br i1 %cmp.i.i.i.i.i.i.i890, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i893, label %if.then.i.i.i.i.i.i.i.i.i891 - -if.then.i.i.i.i.i.i.i.i.i891: ; preds = %if.then.i.i.i.i.i887 - %add.ptr.i.i.i.i.i.i.i892 = getelementptr inbounds i8, ptr %197, i64 %sub.i879 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i888, i8 0, i64 %sub.i.i.i.i.i889, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i893 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i893: ; preds = %if.then.i.i.i.i.i.i.i.i.i891, %if.then.i.i.i.i.i887 - %__first.addr.0.i.i.i.i.i894 = phi ptr [ %incdec.ptr.i.i.i.i.i888, %if.then.i.i.i.i.i887 ], [ %add.ptr.i.i.i.i.i.i.i892, %if.then.i.i.i.i.i.i.i.i.i891 ] - store ptr %__first.addr.0.i.i.i.i.i894, ptr %_M_finish.i.i.i.i, align 8 + %incdec.ptr.i.i.i.i.i889 = getelementptr inbounds i8, ptr %197, i64 1 + %sub.i.i.i.i.i890 = add i64 %sub.i880, -1 + %cmp.i.i.i.i.i.i.i891 = icmp eq i64 %sub.i.i.i.i.i890, 0 + br i1 %cmp.i.i.i.i.i.i.i891, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i894, label %if.then.i.i.i.i.i.i.i.i.i892 + +if.then.i.i.i.i.i.i.i.i.i892: ; preds = %if.then.i.i.i.i.i888 + %add.ptr.i.i.i.i.i.i.i893 = getelementptr inbounds i8, ptr %197, i64 %sub.i880 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i889, i8 0, i64 %sub.i.i.i.i.i890, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i894 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i894: ; preds = %if.then.i.i.i.i.i.i.i.i.i892, %if.then.i.i.i.i.i888 + %__first.addr.0.i.i.i.i.i895 = phi ptr [ %incdec.ptr.i.i.i.i.i889, %if.then.i.i.i.i.i888 ], [ %add.ptr.i.i.i.i.i.i.i893, %if.then.i.i.i.i.i.i.i.i.i892 ] + store ptr %__first.addr.0.i.i.i.i.i895, ptr %_M_finish.i.i.i.i, align 8 %.pre1.i.i385.pre = load ptr, ptr %buffer.i.i.i, align 8 br label %.noexc388 -if.else.i.i895: ; preds = %if.then.i878 - %cmp.i.i.i896 = icmp ult i64 %sub.i.i884, %sub.i879 - br i1 %cmp.i.i.i896, label %if.then.i.i.i966.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i897 - -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i897: ; preds = %if.else.i.i895 - %.sroa.speculated.i.i.i898 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i381, i64 %sub.i879) - %add.i.i.i899 = add nuw i64 %.sroa.speculated.i.i.i898, %sub.ptr.sub.i.i.i381 - %200 = call i64 @llvm.umin.i64(i64 %add.i.i.i899, i64 9223372036854775807) - %call5.i.i.i.i.i917 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %200) #16 - to label %call5.i.i.i.i.i.noexc916 unwind label %lpad123.loopexit - -call5.i.i.i.i.i.noexc916: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i897 - %add.ptr.i.i900 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i917, i64 %sub.ptr.sub.i.i.i381 - store i8 0, ptr %add.ptr.i.i900, align 1 - %sub.i.i.i23.i.i901 = add nsw i64 %sub.i879, -1 - %cmp.i.i.i.i.i24.i.i902 = icmp eq i64 %sub.i.i.i23.i.i901, 0 - br i1 %cmp.i.i.i.i.i24.i.i902, label %try.cont.i.i905, label %if.then.i.i.i.i.i.i.i25.i.i903 - -if.then.i.i.i.i.i.i.i25.i.i903: ; preds = %call5.i.i.i.i.i.noexc916 - %incdec.ptr.i.i.i22.i.i904 = getelementptr inbounds i8, ptr %add.ptr.i.i900, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i904, i8 0, i64 %sub.i.i.i23.i.i901, i1 false) - br label %try.cont.i.i905 - -try.cont.i.i905: ; preds = %if.then.i.i.i.i.i.i.i25.i.i903, %call5.i.i.i.i.i.noexc916 - %cmp.i.i.i.not.i.i906 = icmp eq ptr %197, %198 - br i1 %cmp.i.i.i.not.i.i906, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i908, label %if.then.i.i.i30.i.i907 - -if.then.i.i.i30.i.i907: ; preds = %try.cont.i.i905 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i917, ptr align 1 %198, i64 %sub.ptr.sub.i.i.i381, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i908 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i908: ; preds = %if.then.i.i.i30.i.i907, %try.cont.i.i905 - %tobool.not.i31.i.i909 = icmp eq ptr %198, null - br i1 %tobool.not.i31.i.i909, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i911, label %if.then.i32.i.i910 - -if.then.i32.i.i910: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i908 +if.else.i.i896: ; preds = %if.then.i879 + %cmp.i.i.i897 = icmp ult i64 %sub.i.i885, %sub.i880 + br i1 %cmp.i.i.i897, label %if.then.i.i.i967.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i898 + +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i898: ; preds = %if.else.i.i896 + %.sroa.speculated.i.i.i899 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i381, i64 %sub.i880) + %add.i.i.i900 = add nuw i64 %.sroa.speculated.i.i.i899, %sub.ptr.sub.i.i.i381 + %200 = call i64 @llvm.umin.i64(i64 %add.i.i.i900, i64 9223372036854775807) + %call5.i.i.i.i.i918 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %200) #16 + to label %call5.i.i.i.i.i.noexc917 unwind label %lpad123.loopexit + +call5.i.i.i.i.i.noexc917: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i898 + %add.ptr.i.i901 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i918, i64 %sub.ptr.sub.i.i.i381 + store i8 0, ptr %add.ptr.i.i901, align 1 + %sub.i.i.i23.i.i902 = add nsw i64 %sub.i880, -1 + %cmp.i.i.i.i.i24.i.i903 = icmp eq i64 %sub.i.i.i23.i.i902, 0 + br i1 %cmp.i.i.i.i.i24.i.i903, label %try.cont.i.i906, label %if.then.i.i.i.i.i.i.i25.i.i904 + +if.then.i.i.i.i.i.i.i25.i.i904: ; preds = %call5.i.i.i.i.i.noexc917 + %incdec.ptr.i.i.i22.i.i905 = getelementptr inbounds i8, ptr %add.ptr.i.i901, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i905, i8 0, i64 %sub.i.i.i23.i.i902, i1 false) + br label %try.cont.i.i906 + +try.cont.i.i906: ; preds = %if.then.i.i.i.i.i.i.i25.i.i904, %call5.i.i.i.i.i.noexc917 + %cmp.i.i.i.not.i.i907 = icmp eq ptr %197, %198 + br i1 %cmp.i.i.i.not.i.i907, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i909, label %if.then.i.i.i30.i.i908 + +if.then.i.i.i30.i.i908: ; preds = %try.cont.i.i906 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i918, ptr align 1 %198, i64 %sub.ptr.sub.i.i.i381, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i909 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i909: ; preds = %if.then.i.i.i30.i.i908, %try.cont.i.i906 + %tobool.not.i31.i.i910 = icmp eq ptr %198, null + br i1 %tobool.not.i31.i.i910, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i912, label %if.then.i32.i.i911 + +if.then.i32.i.i911: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i909 call void @_ZdlPv(ptr noundef nonnull %198) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i911 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i911: ; preds = %if.then.i32.i.i910, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i908 - store ptr %call5.i.i.i.i.i917, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i912 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i917, i64 %add.i.i376 - store ptr %add.ptr36.i.i912, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i913 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i917, i64 %200 - store ptr %add.ptr39.i.i913, ptr %_M_end_of_storage.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i912 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i912: ; preds = %if.then.i32.i.i911, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i909 + store ptr %call5.i.i.i.i.i918, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i913 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i918, i64 %add.i.i376 + store ptr %add.ptr36.i.i913, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i914 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i918, i64 %200 + store ptr %add.ptr39.i.i914, ptr %_M_end_of_storage.i.i, align 8 br label %.noexc388 -.noexc388: ; preds = %if.then.i.i383, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i911, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i893 - %.pre1.i.i385 = phi ptr [ %call5.i.i.i.i.i917, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i911 ], [ %.pre1.i.i385.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i893 ], [ %198, %if.then.i.i383 ] +.noexc388: ; preds = %if.then.i.i383, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i912, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i894 + %.pre1.i.i385 = phi ptr [ %call5.i.i.i.i.i918, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i912 ], [ %.pre1.i.i385.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i894 ], [ %198, %if.then.i.i383 ] %.pre.i.i384 = load i64, ptr %cursor.i.i, align 8 br label %for.inc129 @@ -4718,36 +4722,36 @@ for.inc129: ; preds = %.noexc388, %_ZNK12a %203 = load i64, ptr %cursor.i.i, align 8 %add9.i.i387 = add i64 %203, 4 store i64 %add9.i.i387, ptr %cursor.i.i, align 8 - %indvars.iv.next1461 = add nuw nsw i64 %indvars.iv1460, 1 - %exitcond1463.not = icmp eq i64 %indvars.iv.next1461, 3 - br i1 %exitcond1463.not, label %for.inc132, label %for.body121, !llvm.loop !19 + %indvars.iv.next1492 = add nuw nsw i64 %indvars.iv1491, 1 + %exitcond1494.not = icmp eq i64 %indvars.iv.next1492, 3 + br i1 %exitcond1494.not, label %for.inc132, label %for.body121, !llvm.loop !19 -lpad123.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i897 +lpad123.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i898 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %lpad123 -lpad123.loopexit.split-lp.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i949 - %lpad.loopexit995 = landingpad { ptr, i32 } +lpad123.loopexit.split-lp.loopexit: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i950 + %lpad.loopexit996 = landingpad { ptr, i32 } cleanup br label %lpad123 -lpad123.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i966.invoke - %lpad.loopexit.split-lp996 = landingpad { ptr, i32 } +lpad123.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i967.invoke + %lpad.loopexit.split-lp997 = landingpad { ptr, i32 } cleanup - %.pre1475 = load i64, ptr %cursor.i.i, align 8 - %.pre1476 = load ptr, ptr %_M_finish.i.i.i.i, align 8 - %.pre1477 = load ptr, ptr %buffer.i.i.i, align 8 - %.pre1478 = ptrtoint ptr %.pre1476 to i64 - %.pre1479 = ptrtoint ptr %.pre1477 to i64 - %.pre1480 = sub i64 %.pre1478, %.pre1479 + %.pre1506 = load i64, ptr %cursor.i.i, align 8 + %.pre1507 = load ptr, ptr %_M_finish.i.i.i.i, align 8 + %.pre1508 = load ptr, ptr %buffer.i.i.i, align 8 + %.pre1509 = ptrtoint ptr %.pre1507 to i64 + %.pre1510 = ptrtoint ptr %.pre1508 to i64 + %.pre1511 = sub i64 %.pre1509, %.pre1510 br label %lpad123 lpad123: ; preds = %lpad123.loopexit.split-lp.loopexit, %lpad123.loopexit.split-lp.loopexit.split-lp, %lpad123.loopexit - %sub.ptr.sub.i.i.i.i399.pre-phi = phi i64 [ %sub.ptr.sub.i.i.i428, %lpad123.loopexit.split-lp.loopexit ], [ %.pre1480, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %sub.ptr.sub.i.i.i381, %lpad123.loopexit ] - %204 = phi ptr [ %213, %lpad123.loopexit.split-lp.loopexit ], [ %.pre1477, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %198, %lpad123.loopexit ] - %205 = phi i64 [ %210, %lpad123.loopexit.split-lp.loopexit ], [ %.pre1475, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %195, %lpad123.loopexit ] - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit995, %lpad123.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp996, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit, %lpad123.loopexit ] + %sub.ptr.sub.i.i.i.i399.pre-phi = phi i64 [ %sub.ptr.sub.i.i.i429, %lpad123.loopexit.split-lp.loopexit ], [ %.pre1511, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %sub.ptr.sub.i.i.i381, %lpad123.loopexit ] + %204 = phi ptr [ %213, %lpad123.loopexit.split-lp.loopexit ], [ %.pre1508, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %198, %lpad123.loopexit ] + %205 = phi i64 [ %210, %lpad123.loopexit.split-lp.loopexit ], [ %.pre1506, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %195, %lpad123.loopexit ] + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit996, %lpad123.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp997, %lpad123.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit, %lpad123.loopexit ] store i64 %add.i.i.i348, ptr %cursor.i.i, align 8 %add.i.i.i394 = add i64 %177, 6 %cmp.not.i.i.i400 = icmp ult i64 %add.i.i.i394, %sub.ptr.sub.i.i.i.i399.pre-phi @@ -4780,292 +4784,296 @@ _ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit411: ; preds = %lpad123, %.noexc.i br label %ehcleanup for.inc132: ; preds = %for.inc129 - %inc133 = add nuw nsw i32 %r.01300, 1 - %exitcond1464.not = icmp eq i32 %inc133, 3 - br i1 %exitcond1464.not, label %if.end.i413, label %for.cond119.preheader, !llvm.loop !20 + %inc133 = add nuw nsw i32 %r.01319, 1 + %exitcond1495.not = icmp eq i32 %inc133, 3 + br i1 %exitcond1495.not, label %if.end.i413, label %for.cond119.preheader, !llvm.loop !20 if.end.i413: ; preds = %for.inc132, %for.inc144 - %210 = phi i64 [ %add9.i.i434, %for.inc144 ], [ %add9.i.i387, %for.inc132 ] - %r135.01301 = phi i32 [ %inc145, %for.inc144 ], [ 0, %for.inc132 ] - switch i32 %r135.01301, label %_ZNK12aiMatrix4x4tIfEixEj.exit421 [ - i32 2, label %sw.bb3.i414 - i32 1, label %sw.bb2.i417 + %210 = phi i64 [ %add9.i.i435, %for.inc144 ], [ %add9.i.i387, %for.inc132 ] + %r135.01320 = phi i32 [ %inc145, %for.inc144 ], [ 0, %for.inc132 ] + switch i32 %r135.01320, label %default.unreachable.i421 [ + i32 0, label %_ZNK12aiMatrix4x4tIfEixEj.exit422 + i32 1, label %sw.bb2.i419 + i32 2, label %sw.bb3.i417 ] -sw.bb2.i417: ; preds = %if.end.i413 - br label %_ZNK12aiMatrix4x4tIfEixEj.exit421 +sw.bb2.i419: ; preds = %if.end.i413 + br label %_ZNK12aiMatrix4x4tIfEixEj.exit422 -sw.bb3.i414: ; preds = %if.end.i413 - br label %_ZNK12aiMatrix4x4tIfEixEj.exit421 +sw.bb3.i417: ; preds = %if.end.i413 + br label %_ZNK12aiMatrix4x4tIfEixEj.exit422 + +default.unreachable.i421: ; preds = %if.end.i413 + unreachable -_ZNK12aiMatrix4x4tIfEixEj.exit421: ; preds = %if.end.i413, %sw.bb2.i417, %sw.bb3.i414 - %retval.0.i416 = phi ptr [ %c1.i, %sw.bb3.i414 ], [ %b1.i, %sw.bb2.i417 ], [ %second.i, %if.end.i413 ] +_ZNK12aiMatrix4x4tIfEixEj.exit422: ; preds = %if.end.i413, %sw.bb2.i419, %sw.bb3.i417 + %retval.0.i416 = phi ptr [ %c1.i, %sw.bb3.i417 ], [ %b1.i, %sw.bb2.i419 ], [ %second.i, %if.end.i413 ] %arrayidx142 = getelementptr inbounds float, ptr %retval.0.i416, i64 3 %211 = load float, ptr %arrayidx142, align 4 - %add.i.i423 = add i64 %210, 4 + %add.i.i424 = add i64 %210, 4 %212 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %213 = load ptr, ptr %buffer.i.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i426 = ptrtoint ptr %212 to i64 - %sub.ptr.rhs.cast.i.i.i427 = ptrtoint ptr %213 to i64 - %sub.ptr.sub.i.i.i428 = sub i64 %sub.ptr.lhs.cast.i.i.i426, %sub.ptr.rhs.cast.i.i.i427 - %cmp.not.i.i429 = icmp ult i64 %add.i.i423, %sub.ptr.sub.i.i.i428 - br i1 %cmp.not.i.i429, label %for.inc144, label %if.then.i.i430 - -if.then.i.i430: ; preds = %_ZNK12aiMatrix4x4tIfEixEj.exit421 - %cmp.i923 = icmp ult i64 %sub.ptr.sub.i.i.i428, %add.i.i423 - br i1 %cmp.i923, label %if.then.i930, label %.noexc435 - -if.then.i930: ; preds = %if.then.i.i430 - %sub.i931 = sub i64 %add.i.i423, %sub.ptr.sub.i.i.i428 + %sub.ptr.lhs.cast.i.i.i427 = ptrtoint ptr %212 to i64 + %sub.ptr.rhs.cast.i.i.i428 = ptrtoint ptr %213 to i64 + %sub.ptr.sub.i.i.i429 = sub i64 %sub.ptr.lhs.cast.i.i.i427, %sub.ptr.rhs.cast.i.i.i428 + %cmp.not.i.i430 = icmp ult i64 %add.i.i424, %sub.ptr.sub.i.i.i429 + br i1 %cmp.not.i.i430, label %for.inc144, label %if.then.i.i431 + +if.then.i.i431: ; preds = %_ZNK12aiMatrix4x4tIfEixEj.exit422 + %cmp.i924 = icmp ult i64 %sub.ptr.sub.i.i.i429, %add.i.i424 + br i1 %cmp.i924, label %if.then.i931, label %.noexc436 + +if.then.i931: ; preds = %if.then.i.i431 + %sub.i932 = sub i64 %add.i.i424, %sub.ptr.sub.i.i.i429 %214 = load ptr, ptr %_M_end_of_storage.i.i, align 8 - %sub.ptr.lhs.cast.i8.i933 = ptrtoint ptr %214 to i64 - %sub.ptr.sub.i9.i934 = sub i64 %sub.ptr.lhs.cast.i8.i933, %sub.ptr.lhs.cast.i.i.i426 - %cmp4.i.i935 = icmp sgt i64 %sub.ptr.sub.i.i.i428, -1 - call void @llvm.assume(i1 %cmp4.i.i935) - %sub.i.i936 = xor i64 %sub.ptr.sub.i.i.i428, 9223372036854775807 - %cmp6.i.i937 = icmp ule i64 %sub.ptr.sub.i9.i934, %sub.i.i936 - call void @llvm.assume(i1 %cmp6.i.i937) - %cmp8.not.i.i938 = icmp ult i64 %sub.ptr.sub.i9.i934, %sub.i931 - br i1 %cmp8.not.i.i938, label %if.else.i.i947, label %if.then.i.i.i.i.i939 - -if.then.i.i.i.i.i939: ; preds = %if.then.i930 + %sub.ptr.lhs.cast.i8.i934 = ptrtoint ptr %214 to i64 + %sub.ptr.sub.i9.i935 = sub i64 %sub.ptr.lhs.cast.i8.i934, %sub.ptr.lhs.cast.i.i.i427 + %cmp4.i.i936 = icmp sgt i64 %sub.ptr.sub.i.i.i429, -1 + call void @llvm.assume(i1 %cmp4.i.i936) + %sub.i.i937 = xor i64 %sub.ptr.sub.i.i.i429, 9223372036854775807 + %cmp6.i.i938 = icmp ule i64 %sub.ptr.sub.i9.i935, %sub.i.i937 + call void @llvm.assume(i1 %cmp6.i.i938) + %cmp8.not.i.i939 = icmp ult i64 %sub.ptr.sub.i9.i935, %sub.i932 + br i1 %cmp8.not.i.i939, label %if.else.i.i948, label %if.then.i.i.i.i.i940 + +if.then.i.i.i.i.i940: ; preds = %if.then.i931 store i8 0, ptr %212, align 1 - %incdec.ptr.i.i.i.i.i940 = getelementptr inbounds i8, ptr %212, i64 1 - %sub.i.i.i.i.i941 = add i64 %sub.i931, -1 - %cmp.i.i.i.i.i.i.i942 = icmp eq i64 %sub.i.i.i.i.i941, 0 - br i1 %cmp.i.i.i.i.i.i.i942, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i945, label %if.then.i.i.i.i.i.i.i.i.i943 - -if.then.i.i.i.i.i.i.i.i.i943: ; preds = %if.then.i.i.i.i.i939 - %add.ptr.i.i.i.i.i.i.i944 = getelementptr inbounds i8, ptr %212, i64 %sub.i931 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i940, i8 0, i64 %sub.i.i.i.i.i941, i1 false) - br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i945 - -_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i945: ; preds = %if.then.i.i.i.i.i.i.i.i.i943, %if.then.i.i.i.i.i939 - %__first.addr.0.i.i.i.i.i946 = phi ptr [ %incdec.ptr.i.i.i.i.i940, %if.then.i.i.i.i.i939 ], [ %add.ptr.i.i.i.i.i.i.i944, %if.then.i.i.i.i.i.i.i.i.i943 ] - store ptr %__first.addr.0.i.i.i.i.i946, ptr %_M_finish.i.i.i.i, align 8 - %.pre1.i.i432.pre = load ptr, ptr %buffer.i.i.i, align 8 - br label %.noexc435 - -if.else.i.i947: ; preds = %if.then.i930 - %cmp.i.i.i948 = icmp ult i64 %sub.i.i936, %sub.i931 - br i1 %cmp.i.i.i948, label %if.then.i.i.i966.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i949 - -if.then.i.i.i966.invoke: ; preds = %if.else.i.i947, %if.else.i.i895 + %incdec.ptr.i.i.i.i.i941 = getelementptr inbounds i8, ptr %212, i64 1 + %sub.i.i.i.i.i942 = add i64 %sub.i932, -1 + %cmp.i.i.i.i.i.i.i943 = icmp eq i64 %sub.i.i.i.i.i942, 0 + br i1 %cmp.i.i.i.i.i.i.i943, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i946, label %if.then.i.i.i.i.i.i.i.i.i944 + +if.then.i.i.i.i.i.i.i.i.i944: ; preds = %if.then.i.i.i.i.i940 + %add.ptr.i.i.i.i.i.i.i945 = getelementptr inbounds i8, ptr %212, i64 %sub.i932 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i.i941, i8 0, i64 %sub.i.i.i.i.i942, i1 false) + br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i946 + +_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i946: ; preds = %if.then.i.i.i.i.i.i.i.i.i944, %if.then.i.i.i.i.i940 + %__first.addr.0.i.i.i.i.i947 = phi ptr [ %incdec.ptr.i.i.i.i.i941, %if.then.i.i.i.i.i940 ], [ %add.ptr.i.i.i.i.i.i.i945, %if.then.i.i.i.i.i.i.i.i.i944 ] + store ptr %__first.addr.0.i.i.i.i.i947, ptr %_M_finish.i.i.i.i, align 8 + %.pre1.i.i433.pre = load ptr, ptr %buffer.i.i.i, align 8 + br label %.noexc436 + +if.else.i.i948: ; preds = %if.then.i931 + %cmp.i.i.i949 = icmp ult i64 %sub.i.i937, %sub.i932 + br i1 %cmp.i.i.i949, label %if.then.i.i.i967.invoke, label %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i950 + +if.then.i.i.i967.invoke: ; preds = %if.else.i.i948, %if.else.i.i896 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.12) #18 - to label %if.then.i.i.i966.cont unwind label %lpad123.loopexit.split-lp.loopexit.split-lp + to label %if.then.i.i.i967.cont unwind label %lpad123.loopexit.split-lp.loopexit.split-lp -if.then.i.i.i966.cont: ; preds = %if.then.i.i.i966.invoke +if.then.i.i.i967.cont: ; preds = %if.then.i.i.i967.invoke unreachable -_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i949: ; preds = %if.else.i.i947 - %.sroa.speculated.i.i.i950 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i428, i64 %sub.i931) - %add.i.i.i951 = add nuw i64 %.sroa.speculated.i.i.i950, %sub.ptr.sub.i.i.i428 - %215 = call i64 @llvm.umin.i64(i64 %add.i.i.i951, i64 9223372036854775807) - %call5.i.i.i.i.i969 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %215) #16 - to label %call5.i.i.i.i.i.noexc968 unwind label %lpad123.loopexit.split-lp.loopexit - -call5.i.i.i.i.i.noexc968: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i949 - %add.ptr.i.i952 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i969, i64 %sub.ptr.sub.i.i.i428 - store i8 0, ptr %add.ptr.i.i952, align 1 - %sub.i.i.i23.i.i953 = add nsw i64 %sub.i931, -1 - %cmp.i.i.i.i.i24.i.i954 = icmp eq i64 %sub.i.i.i23.i.i953, 0 - br i1 %cmp.i.i.i.i.i24.i.i954, label %try.cont.i.i957, label %if.then.i.i.i.i.i.i.i25.i.i955 - -if.then.i.i.i.i.i.i.i25.i.i955: ; preds = %call5.i.i.i.i.i.noexc968 - %incdec.ptr.i.i.i22.i.i956 = getelementptr inbounds i8, ptr %add.ptr.i.i952, i64 1 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i956, i8 0, i64 %sub.i.i.i23.i.i953, i1 false) - br label %try.cont.i.i957 - -try.cont.i.i957: ; preds = %if.then.i.i.i.i.i.i.i25.i.i955, %call5.i.i.i.i.i.noexc968 - %cmp.i.i.i.not.i.i958 = icmp eq ptr %212, %213 - br i1 %cmp.i.i.i.not.i.i958, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i960, label %if.then.i.i.i30.i.i959 - -if.then.i.i.i30.i.i959: ; preds = %try.cont.i.i957 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i969, ptr align 1 %213, i64 %sub.ptr.sub.i.i.i428, i1 false) - br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i960 - -_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i960: ; preds = %if.then.i.i.i30.i.i959, %try.cont.i.i957 - %tobool.not.i31.i.i961 = icmp eq ptr %213, null - br i1 %tobool.not.i31.i.i961, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i963, label %if.then.i32.i.i962 - -if.then.i32.i.i962: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i960 +_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i950: ; preds = %if.else.i.i948 + %.sroa.speculated.i.i.i951 = call i64 @llvm.umax.i64(i64 %sub.ptr.sub.i.i.i429, i64 %sub.i932) + %add.i.i.i952 = add nuw i64 %.sroa.speculated.i.i.i951, %sub.ptr.sub.i.i.i429 + %215 = call i64 @llvm.umin.i64(i64 %add.i.i.i952, i64 9223372036854775807) + %call5.i.i.i.i.i970 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %215) #16 + to label %call5.i.i.i.i.i.noexc969 unwind label %lpad123.loopexit.split-lp.loopexit + +call5.i.i.i.i.i.noexc969: ; preds = %_ZNKSt6vectorIhSaIhEE12_M_check_lenEmPKc.exit.i.i950 + %add.ptr.i.i953 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i970, i64 %sub.ptr.sub.i.i.i429 + store i8 0, ptr %add.ptr.i.i953, align 1 + %sub.i.i.i23.i.i954 = add nsw i64 %sub.i932, -1 + %cmp.i.i.i.i.i24.i.i955 = icmp eq i64 %sub.i.i.i23.i.i954, 0 + br i1 %cmp.i.i.i.i.i24.i.i955, label %try.cont.i.i958, label %if.then.i.i.i.i.i.i.i25.i.i956 + +if.then.i.i.i.i.i.i.i25.i.i956: ; preds = %call5.i.i.i.i.i.noexc969 + %incdec.ptr.i.i.i22.i.i957 = getelementptr inbounds i8, ptr %add.ptr.i.i953, i64 1 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i22.i.i957, i8 0, i64 %sub.i.i.i23.i.i954, i1 false) + br label %try.cont.i.i958 + +try.cont.i.i958: ; preds = %if.then.i.i.i.i.i.i.i25.i.i956, %call5.i.i.i.i.i.noexc969 + %cmp.i.i.i.not.i.i959 = icmp eq ptr %212, %213 + br i1 %cmp.i.i.i.not.i.i959, label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i961, label %if.then.i.i.i30.i.i960 + +if.then.i.i.i30.i.i960: ; preds = %try.cont.i.i958 + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i970, ptr align 1 %213, i64 %sub.ptr.sub.i.i.i429, i1 false) + br label %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i961 + +_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i961: ; preds = %if.then.i.i.i30.i.i960, %try.cont.i.i958 + %tobool.not.i31.i.i962 = icmp eq ptr %213, null + br i1 %tobool.not.i31.i.i962, label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i964, label %if.then.i32.i.i963 + +if.then.i32.i.i963: ; preds = %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i961 call void @_ZdlPv(ptr noundef nonnull %213) #20 - br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i963 - -_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i963: ; preds = %if.then.i32.i.i962, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i960 - store ptr %call5.i.i.i.i.i969, ptr %buffer.i.i.i, align 8 - %add.ptr36.i.i964 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i969, i64 %add.i.i423 - store ptr %add.ptr36.i.i964, ptr %_M_finish.i.i.i.i, align 8 - %add.ptr39.i.i965 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i969, i64 %215 - store ptr %add.ptr39.i.i965, ptr %_M_end_of_storage.i.i, align 8 - br label %.noexc435 - -.noexc435: ; preds = %if.then.i.i430, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i963, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i945 - %.pre1.i.i432 = phi ptr [ %call5.i.i.i.i.i969, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i963 ], [ %.pre1.i.i432.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i945 ], [ %213, %if.then.i.i430 ] - %.pre.i.i431 = load i64, ptr %cursor.i.i, align 8 + br label %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i964 + +_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i964: ; preds = %if.then.i32.i.i963, %_ZNSt6vectorIhSaIhEE11_S_relocateEPhS2_S2_RS0_.exit.i.i961 + store ptr %call5.i.i.i.i.i970, ptr %buffer.i.i.i, align 8 + %add.ptr36.i.i965 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i970, i64 %add.i.i424 + store ptr %add.ptr36.i.i965, ptr %_M_finish.i.i.i.i, align 8 + %add.ptr39.i.i966 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i970, i64 %215 + store ptr %add.ptr39.i.i966, ptr %_M_end_of_storage.i.i, align 8 + br label %.noexc436 + +.noexc436: ; preds = %if.then.i.i431, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i964, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i946 + %.pre1.i.i433 = phi ptr [ %call5.i.i.i.i.i970, %_ZNSt12_Vector_baseIhSaIhEE13_M_deallocateEPhm.exit33.i.i964 ], [ %.pre1.i.i433.pre, %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i.i946 ], [ %213, %if.then.i.i431 ] + %.pre.i.i432 = load i64, ptr %cursor.i.i, align 8 br label %for.inc144 -for.inc144: ; preds = %.noexc435, %_ZNK12aiMatrix4x4tIfEixEj.exit421 - %216 = phi ptr [ %.pre1.i.i432, %.noexc435 ], [ %213, %_ZNK12aiMatrix4x4tIfEixEj.exit421 ] - %217 = phi i64 [ %.pre.i.i431, %.noexc435 ], [ %210, %_ZNK12aiMatrix4x4tIfEixEj.exit421 ] - %add.ptr.i.i.i433 = getelementptr inbounds i8, ptr %216, i64 %217 - store float %211, ptr %add.ptr.i.i.i433, align 1 +for.inc144: ; preds = %.noexc436, %_ZNK12aiMatrix4x4tIfEixEj.exit422 + %216 = phi ptr [ %.pre1.i.i433, %.noexc436 ], [ %213, %_ZNK12aiMatrix4x4tIfEixEj.exit422 ] + %217 = phi i64 [ %.pre.i.i432, %.noexc436 ], [ %210, %_ZNK12aiMatrix4x4tIfEixEj.exit422 ] + %add.ptr.i.i.i434 = getelementptr inbounds i8, ptr %216, i64 %217 + store float %211, ptr %add.ptr.i.i.i434, align 1 %218 = load i64, ptr %cursor.i.i, align 8 - %add9.i.i434 = add i64 %218, 4 - store i64 %add9.i.i434, ptr %cursor.i.i, align 8 - %inc145 = add nuw nsw i32 %r135.01301, 1 - %exitcond1465.not = icmp eq i32 %inc145, 3 - br i1 %exitcond1465.not, label %for.end146, label %if.end.i413, !llvm.loop !21 + %add9.i.i435 = add i64 %218, 4 + store i64 %add9.i.i435, ptr %cursor.i.i, align 8 + %inc145 = add nuw nsw i32 %r135.01320, 1 + %exitcond1496.not = icmp eq i32 %inc145, 3 + br i1 %exitcond1496.not, label %for.end146, label %if.end.i413, !llvm.loop !21 for.end146: ; preds = %for.inc144 store i64 %add.i.i.i348, ptr %cursor.i.i, align 8 - %add.i.i.i441 = add i64 %177, 6 + %add.i.i.i442 = add i64 %177, 6 %219 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %220 = load ptr, ptr %buffer.i.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i.i444 = ptrtoint ptr %219 to i64 - %sub.ptr.rhs.cast.i.i.i.i445 = ptrtoint ptr %220 to i64 - %sub.ptr.sub.i.i.i.i446 = sub i64 %sub.ptr.lhs.cast.i.i.i.i444, %sub.ptr.rhs.cast.i.i.i.i445 - %cmp.not.i.i.i447 = icmp ult i64 %add.i.i.i441, %sub.ptr.sub.i.i.i.i446 - br i1 %cmp.not.i.i.i447, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit458, label %if.then.i.i.i448 - -if.then.i.i.i448: ; preds = %for.end146 - invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i441) - to label %.noexc.i450 unwind label %terminate.lpad.i449 - -.noexc.i450: ; preds = %if.then.i.i.i448 - %.pre.i.i.i451 = load i64, ptr %cursor.i.i, align 8 - %.pre1.i.i.i452 = load ptr, ptr %buffer.i.i.i, align 8 - br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit458 - -terminate.lpad.i449: ; preds = %if.then.i.i.i448 + %sub.ptr.lhs.cast.i.i.i.i445 = ptrtoint ptr %219 to i64 + %sub.ptr.rhs.cast.i.i.i.i446 = ptrtoint ptr %220 to i64 + %sub.ptr.sub.i.i.i.i447 = sub i64 %sub.ptr.lhs.cast.i.i.i.i445, %sub.ptr.rhs.cast.i.i.i.i446 + %cmp.not.i.i.i448 = icmp ult i64 %add.i.i.i442, %sub.ptr.sub.i.i.i.i447 + br i1 %cmp.not.i.i.i448, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit459, label %if.then.i.i.i449 + +if.then.i.i.i449: ; preds = %for.end146 + invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i442) + to label %.noexc.i451 unwind label %terminate.lpad.i450 + +.noexc.i451: ; preds = %if.then.i.i.i449 + %.pre.i.i.i452 = load i64, ptr %cursor.i.i, align 8 + %.pre1.i.i.i453 = load ptr, ptr %buffer.i.i.i, align 8 + br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit459 + +terminate.lpad.i450: ; preds = %if.then.i.i.i449 %221 = landingpad { ptr, i32 } catch ptr null %222 = extractvalue { ptr, i32 } %221, 0 call void @__clang_call_terminate(ptr %222) #19 unreachable -_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit458: ; preds = %for.end146, %.noexc.i450 - %223 = phi ptr [ %.pre1.i.i.i452, %.noexc.i450 ], [ %220, %for.end146 ] - %224 = phi i64 [ %.pre.i.i.i451, %.noexc.i450 ], [ %add.i.i.i348, %for.end146 ] - %sub.i453 = sub i64 %add9.i.i434, %177 - %conv.i454 = trunc i64 %sub.i453 to i32 - %add.ptr.i.i.i.i455 = getelementptr inbounds i8, ptr %223, i64 %224 - store i32 %conv.i454, ptr %add.ptr.i.i.i.i455, align 1 +_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit459: ; preds = %for.end146, %.noexc.i451 + %223 = phi ptr [ %.pre1.i.i.i453, %.noexc.i451 ], [ %220, %for.end146 ] + %224 = phi i64 [ %.pre.i.i.i452, %.noexc.i451 ], [ %add.i.i.i348, %for.end146 ] + %sub.i454 = sub i64 %add9.i.i435, %177 + %conv.i455 = trunc i64 %sub.i454 to i32 + %add.ptr.i.i.i.i456 = getelementptr inbounds i8, ptr %223, i64 %224 + store i32 %conv.i455, ptr %add.ptr.i.i.i.i456, align 1 store i64 %add.i.i.i44, ptr %cursor.i.i, align 8 - %add.i.i.i463 = add i64 %20, 6 + %add.i.i.i464 = add i64 %20, 6 %225 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %226 = load ptr, ptr %buffer.i.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i.i466 = ptrtoint ptr %225 to i64 - %sub.ptr.rhs.cast.i.i.i.i467 = ptrtoint ptr %226 to i64 - %sub.ptr.sub.i.i.i.i468 = sub i64 %sub.ptr.lhs.cast.i.i.i.i466, %sub.ptr.rhs.cast.i.i.i.i467 - %cmp.not.i.i.i469 = icmp ult i64 %add.i.i.i463, %sub.ptr.sub.i.i.i.i468 - br i1 %cmp.not.i.i.i469, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit480, label %if.then.i.i.i470 - -if.then.i.i.i470: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit458 - invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i463) - to label %.noexc.i472 unwind label %terminate.lpad.i471 - -.noexc.i472: ; preds = %if.then.i.i.i470 - %.pre.i.i.i473 = load i64, ptr %cursor.i.i, align 8 - %.pre1.i.i.i474 = load ptr, ptr %buffer.i.i.i, align 8 - br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit480 - -terminate.lpad.i471: ; preds = %if.then.i.i.i470 + %sub.ptr.lhs.cast.i.i.i.i467 = ptrtoint ptr %225 to i64 + %sub.ptr.rhs.cast.i.i.i.i468 = ptrtoint ptr %226 to i64 + %sub.ptr.sub.i.i.i.i469 = sub i64 %sub.ptr.lhs.cast.i.i.i.i467, %sub.ptr.rhs.cast.i.i.i.i468 + %cmp.not.i.i.i470 = icmp ult i64 %add.i.i.i464, %sub.ptr.sub.i.i.i.i469 + br i1 %cmp.not.i.i.i470, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit481, label %if.then.i.i.i471 + +if.then.i.i.i471: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit459 + invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i464) + to label %.noexc.i473 unwind label %terminate.lpad.i472 + +.noexc.i473: ; preds = %if.then.i.i.i471 + %.pre.i.i.i474 = load i64, ptr %cursor.i.i, align 8 + %.pre1.i.i.i475 = load ptr, ptr %buffer.i.i.i, align 8 + br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit481 + +terminate.lpad.i472: ; preds = %if.then.i.i.i471 %227 = landingpad { ptr, i32 } catch ptr null %228 = extractvalue { ptr, i32 } %227, 0 call void @__clang_call_terminate(ptr %228) #19 unreachable -_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit480: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit458, %.noexc.i472 - %229 = phi ptr [ %.pre1.i.i.i474, %.noexc.i472 ], [ %226, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit458 ] - %230 = phi i64 [ %.pre.i.i.i473, %.noexc.i472 ], [ %add.i.i.i44, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit458 ] - %sub.i475 = sub i64 %add9.i.i434, %20 - %conv.i476 = trunc i64 %sub.i475 to i32 - %add.ptr.i.i.i.i477 = getelementptr inbounds i8, ptr %229, i64 %230 - store i32 %conv.i476, ptr %add.ptr.i.i.i.i477, align 1 - store i64 %add9.i.i434, ptr %cursor.i.i, align 8 +_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit481: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit459, %.noexc.i473 + %229 = phi ptr [ %.pre1.i.i.i475, %.noexc.i473 ], [ %226, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit459 ] + %230 = phi i64 [ %.pre.i.i.i474, %.noexc.i473 ], [ %add.i.i.i44, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit459 ] + %sub.i476 = sub i64 %add9.i.i435, %20 + %conv.i477 = trunc i64 %sub.i476 to i32 + %add.ptr.i.i.i.i478 = getelementptr inbounds i8, ptr %229, i64 %230 + store i32 %conv.i477, ptr %add.ptr.i.i.i.i478, align 1 + store i64 %add9.i.i435, ptr %cursor.i.i, align 8 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp12) #17 %231 = load i64, ptr %cursor.i.i, align 8 store i64 %add.i.i.i, ptr %cursor.i.i, align 8 - %add.i.i.i485 = add i64 %9, 6 + %add.i.i.i486 = add i64 %9, 6 %232 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %233 = load ptr, ptr %buffer.i.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i.i488 = ptrtoint ptr %232 to i64 - %sub.ptr.rhs.cast.i.i.i.i489 = ptrtoint ptr %233 to i64 - %sub.ptr.sub.i.i.i.i490 = sub i64 %sub.ptr.lhs.cast.i.i.i.i488, %sub.ptr.rhs.cast.i.i.i.i489 - %cmp.not.i.i.i491 = icmp ult i64 %add.i.i.i485, %sub.ptr.sub.i.i.i.i490 - br i1 %cmp.not.i.i.i491, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit502, label %if.then.i.i.i492 - -if.then.i.i.i492: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit480 - invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i485) - to label %.noexc.i494 unwind label %terminate.lpad.i493 - -.noexc.i494: ; preds = %if.then.i.i.i492 - %.pre.i.i.i495 = load i64, ptr %cursor.i.i, align 8 - %.pre1.i.i.i496 = load ptr, ptr %buffer.i.i.i, align 8 - br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit502 - -terminate.lpad.i493: ; preds = %if.then.i.i.i492 + %sub.ptr.lhs.cast.i.i.i.i489 = ptrtoint ptr %232 to i64 + %sub.ptr.rhs.cast.i.i.i.i490 = ptrtoint ptr %233 to i64 + %sub.ptr.sub.i.i.i.i491 = sub i64 %sub.ptr.lhs.cast.i.i.i.i489, %sub.ptr.rhs.cast.i.i.i.i490 + %cmp.not.i.i.i492 = icmp ult i64 %add.i.i.i486, %sub.ptr.sub.i.i.i.i491 + br i1 %cmp.not.i.i.i492, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit503, label %if.then.i.i.i493 + +if.then.i.i.i493: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit481 + invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i486) + to label %.noexc.i495 unwind label %terminate.lpad.i494 + +.noexc.i495: ; preds = %if.then.i.i.i493 + %.pre.i.i.i496 = load i64, ptr %cursor.i.i, align 8 + %.pre1.i.i.i497 = load ptr, ptr %buffer.i.i.i, align 8 + br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit503 + +terminate.lpad.i494: ; preds = %if.then.i.i.i493 %234 = landingpad { ptr, i32 } catch ptr null %235 = extractvalue { ptr, i32 } %234, 0 call void @__clang_call_terminate(ptr %235) #19 unreachable -_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit502: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit480, %.noexc.i494 - %236 = phi ptr [ %.pre1.i.i.i496, %.noexc.i494 ], [ %233, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit480 ] - %237 = phi i64 [ %.pre.i.i.i495, %.noexc.i494 ], [ %add.i.i.i, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit480 ] - %sub.i497 = sub i64 %231, %9 - %conv.i498 = trunc i64 %sub.i497 to i32 - %add.ptr.i.i.i.i499 = getelementptr inbounds i8, ptr %236, i64 %237 - store i32 %conv.i498, ptr %add.ptr.i.i.i.i499, align 1 +_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit503: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit481, %.noexc.i495 + %236 = phi ptr [ %.pre1.i.i.i497, %.noexc.i495 ], [ %233, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit481 ] + %237 = phi i64 [ %.pre.i.i.i496, %.noexc.i495 ], [ %add.i.i.i, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit481 ] + %sub.i498 = sub i64 %231, %9 + %conv.i499 = trunc i64 %sub.i498 to i32 + %add.ptr.i.i.i.i500 = getelementptr inbounds i8, ptr %236, i64 %237 + store i32 %conv.i499, ptr %add.ptr.i.i.i.i500, align 1 store i64 %231, ptr %cursor.i.i, align 8 - %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %it.sroa.0.01303) #21 + %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %it.sroa.0.01322) #21 %cmp.i.not = icmp eq ptr %call.i, %add.ptr.i.i br i1 %cmp.i.not, label %for.end151, label %for.body, !llvm.loop !22 ehcleanup: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit411, %lpad81, %lpad43, %lpad21, %lpad18 - %.pn = phi { ptr, i32 } [ %lpad.phi1005, %lpad21 ], [ %lpad.phi1002, %lpad43 ], [ %lpad.phi994, %lpad81 ], [ %lpad.phi, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit411 ], [ %78, %lpad18 ] + %.pn = phi { ptr, i32 } [ %lpad.phi1006, %lpad21 ], [ %lpad.phi1003, %lpad43 ], [ %lpad.phi995, %lpad81 ], [ %lpad.phi, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit411 ], [ %78, %lpad18 ] %238 = load i64, ptr %cursor.i.i, align 8 store i64 %add.i.i.i44, ptr %cursor.i.i, align 8 - %add.i.i.i507 = add i64 %20, 6 + %add.i.i.i508 = add i64 %20, 6 %239 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %240 = load ptr, ptr %buffer.i.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i.i510 = ptrtoint ptr %239 to i64 - %sub.ptr.rhs.cast.i.i.i.i511 = ptrtoint ptr %240 to i64 - %sub.ptr.sub.i.i.i.i512 = sub i64 %sub.ptr.lhs.cast.i.i.i.i510, %sub.ptr.rhs.cast.i.i.i.i511 - %cmp.not.i.i.i513 = icmp ult i64 %add.i.i.i507, %sub.ptr.sub.i.i.i.i512 - br i1 %cmp.not.i.i.i513, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit524, label %if.then.i.i.i514 - -if.then.i.i.i514: ; preds = %ehcleanup - invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i507) - to label %.noexc.i516 unwind label %terminate.lpad.i515 - -.noexc.i516: ; preds = %if.then.i.i.i514 - %.pre.i.i.i517 = load i64, ptr %cursor.i.i, align 8 - %.pre1.i.i.i518 = load ptr, ptr %buffer.i.i.i, align 8 - br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit524 - -terminate.lpad.i515: ; preds = %if.then.i.i.i514 + %sub.ptr.lhs.cast.i.i.i.i511 = ptrtoint ptr %239 to i64 + %sub.ptr.rhs.cast.i.i.i.i512 = ptrtoint ptr %240 to i64 + %sub.ptr.sub.i.i.i.i513 = sub i64 %sub.ptr.lhs.cast.i.i.i.i511, %sub.ptr.rhs.cast.i.i.i.i512 + %cmp.not.i.i.i514 = icmp ult i64 %add.i.i.i508, %sub.ptr.sub.i.i.i.i513 + br i1 %cmp.not.i.i.i514, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit525, label %if.then.i.i.i515 + +if.then.i.i.i515: ; preds = %ehcleanup + invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i508) + to label %.noexc.i517 unwind label %terminate.lpad.i516 + +.noexc.i517: ; preds = %if.then.i.i.i515 + %.pre.i.i.i518 = load i64, ptr %cursor.i.i, align 8 + %.pre1.i.i.i519 = load ptr, ptr %buffer.i.i.i, align 8 + br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit525 + +terminate.lpad.i516: ; preds = %if.then.i.i.i515 %241 = landingpad { ptr, i32 } catch ptr null %242 = extractvalue { ptr, i32 } %241, 0 call void @__clang_call_terminate(ptr %242) #19 unreachable -_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit524: ; preds = %ehcleanup, %.noexc.i516 - %243 = phi ptr [ %.pre1.i.i.i518, %.noexc.i516 ], [ %240, %ehcleanup ] - %244 = phi i64 [ %.pre.i.i.i517, %.noexc.i516 ], [ %add.i.i.i44, %ehcleanup ] - %sub.i519 = sub i64 %238, %20 - %conv.i520 = trunc i64 %sub.i519 to i32 - %add.ptr.i.i.i.i521 = getelementptr inbounds i8, ptr %243, i64 %244 - store i32 %conv.i520, ptr %add.ptr.i.i.i.i521, align 1 +_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit525: ; preds = %ehcleanup, %.noexc.i517 + %243 = phi ptr [ %.pre1.i.i.i519, %.noexc.i517 ], [ %240, %ehcleanup ] + %244 = phi i64 [ %.pre.i.i.i518, %.noexc.i517 ], [ %add.i.i.i44, %ehcleanup ] + %sub.i520 = sub i64 %238, %20 + %conv.i521 = trunc i64 %sub.i520 to i32 + %add.ptr.i.i.i.i522 = getelementptr inbounds i8, ptr %243, i64 %244 + store i32 %conv.i521, ptr %add.ptr.i.i.i.i522, align 1 store i64 %238, ptr %cursor.i.i, align 8 br label %ehcleanup147 -ehcleanup147: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit524, %lpad13 - %.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit524 ], [ %77, %lpad13 ] +ehcleanup147: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit525, %lpad13 + %.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit525 ], [ %77, %lpad13 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp12) #17 br label %ehcleanup148 @@ -5073,42 +5081,42 @@ ehcleanup148: ; preds = %ehcleanup147, %lpad %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %ehcleanup147 ], [ %76, %lpad ] %245 = load i64, ptr %cursor.i.i, align 8 store i64 %add.i.i.i, ptr %cursor.i.i, align 8 - %add.i.i.i529 = add i64 %9, 6 + %add.i.i.i530 = add i64 %9, 6 %246 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %247 = load ptr, ptr %buffer.i.i.i, align 8 - %sub.ptr.lhs.cast.i.i.i.i532 = ptrtoint ptr %246 to i64 - %sub.ptr.rhs.cast.i.i.i.i533 = ptrtoint ptr %247 to i64 - %sub.ptr.sub.i.i.i.i534 = sub i64 %sub.ptr.lhs.cast.i.i.i.i532, %sub.ptr.rhs.cast.i.i.i.i533 - %cmp.not.i.i.i535 = icmp ult i64 %add.i.i.i529, %sub.ptr.sub.i.i.i.i534 - br i1 %cmp.not.i.i.i535, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit546, label %if.then.i.i.i536 - -if.then.i.i.i536: ; preds = %ehcleanup148 - invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i529) - to label %.noexc.i538 unwind label %terminate.lpad.i537 - -.noexc.i538: ; preds = %if.then.i.i.i536 - %.pre.i.i.i539 = load i64, ptr %cursor.i.i, align 8 - %.pre1.i.i.i540 = load ptr, ptr %buffer.i.i.i, align 8 - br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit546 - -terminate.lpad.i537: ; preds = %if.then.i.i.i536 + %sub.ptr.lhs.cast.i.i.i.i533 = ptrtoint ptr %246 to i64 + %sub.ptr.rhs.cast.i.i.i.i534 = ptrtoint ptr %247 to i64 + %sub.ptr.sub.i.i.i.i535 = sub i64 %sub.ptr.lhs.cast.i.i.i.i533, %sub.ptr.rhs.cast.i.i.i.i534 + %cmp.not.i.i.i536 = icmp ult i64 %add.i.i.i530, %sub.ptr.sub.i.i.i.i535 + br i1 %cmp.not.i.i.i536, label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit547, label %if.then.i.i.i537 + +if.then.i.i.i537: ; preds = %ehcleanup148 + invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %buffer.i.i.i, i64 noundef %add.i.i.i530) + to label %.noexc.i539 unwind label %terminate.lpad.i538 + +.noexc.i539: ; preds = %if.then.i.i.i537 + %.pre.i.i.i540 = load i64, ptr %cursor.i.i, align 8 + %.pre1.i.i.i541 = load ptr, ptr %buffer.i.i.i, align 8 + br label %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit547 + +terminate.lpad.i538: ; preds = %if.then.i.i.i537 %248 = landingpad { ptr, i32 } catch ptr null %249 = extractvalue { ptr, i32 } %248, 0 call void @__clang_call_terminate(ptr %249) #19 unreachable -_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit546: ; preds = %ehcleanup148, %.noexc.i538 - %250 = phi ptr [ %.pre1.i.i.i540, %.noexc.i538 ], [ %247, %ehcleanup148 ] - %251 = phi i64 [ %.pre.i.i.i539, %.noexc.i538 ], [ %add.i.i.i, %ehcleanup148 ] - %sub.i541 = sub i64 %245, %9 - %conv.i542 = trunc i64 %sub.i541 to i32 - %add.ptr.i.i.i.i543 = getelementptr inbounds i8, ptr %250, i64 %251 - store i32 %conv.i542, ptr %add.ptr.i.i.i.i543, align 1 +_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit547: ; preds = %ehcleanup148, %.noexc.i539 + %250 = phi ptr [ %.pre1.i.i.i541, %.noexc.i539 ], [ %247, %ehcleanup148 ] + %251 = phi i64 [ %.pre.i.i.i540, %.noexc.i539 ], [ %add.i.i.i, %ehcleanup148 ] + %sub.i542 = sub i64 %245, %9 + %conv.i543 = trunc i64 %sub.i542 to i32 + %add.ptr.i.i.i.i544 = getelementptr inbounds i8, ptr %250, i64 %251 + store i32 %conv.i543, ptr %add.ptr.i.i.i.i544, align 1 store i64 %245, ptr %cursor.i.i, align 8 resume { ptr, i32 } %.pn.pn.pn -for.end151: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit502, %entry +for.end151: ; preds = %_ZN6Assimp12_GLOBAL__N_111ChunkWriterD2Ev.exit503, %entry ret void } diff --git a/bench/assimp/optimized/AssbinFileWriter.cpp.ll b/bench/assimp/optimized/AssbinFileWriter.cpp.ll index f3106422f53..9d5bb666a58 100644 --- a/bench/assimp/optimized/AssbinFileWriter.cpp.ll +++ b/bench/assimp/optimized/AssbinFileWriter.cpp.ll @@ -1357,122 +1357,126 @@ entry: %mMetaData = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 7 %0 = load ptr, ptr %mMetaData, align 8 %cmp.not = icmp eq ptr %0, null - br i1 %cmp.not, label %if.then.i158, label %cond.true + br i1 %cmp.not, label %if.then.i155, label %cond.true cond.true: ; preds = %entry %1 = load i32, ptr %0, align 8 - br label %if.then.i158 + br label %if.then.i155 -if.then.i158: ; preds = %cond.true, %entry +if.then.i155: ; preds = %cond.true, %entry %cond = phi i32 [ %1, %cond.true ], [ 0, %entry ] %2 = load i32, ptr %node, align 4 - %cursor.i154 = getelementptr inbounds %"class.Assimp::AssbinChunkWriter", ptr %chunk, i64 0, i32 5 - %call4.i.i159 = invoke noalias noundef nonnull dereferenceable(4096) ptr @_Znam(i64 noundef 4096) #17 + %cursor.i151 = getelementptr inbounds %"class.Assimp::AssbinChunkWriter", ptr %chunk, i64 0, i32 5 + %call4.i.i156 = invoke noalias noundef nonnull dereferenceable(4096) ptr @_Znam(i64 noundef 4096) #17 to label %call.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -call.i.noexc: ; preds = %if.then.i158 - store ptr %call4.i.i159, ptr %buffer.i, align 8 +call.i.noexc: ; preds = %if.then.i155 + store ptr %call4.i.i156, ptr %buffer.i, align 8 store i64 4096, ptr %cur_size.i, align 8 - store i32 %2, ptr %call4.i.i159, align 1 - store i64 4, ptr %cursor.i154, align 8 + store i32 %2, ptr %call4.i.i156, align 1 + store i64 4, ptr %cursor.i151, align 8 %conv.i = zext i32 %2 to i64 %data.i = getelementptr inbounds %struct.aiString, ptr %node, i64 0, i32 1 %cmp.i = icmp ugt i32 %2, 4092 - br i1 %cmp.i, label %if.then.i172, label %invoke.cont + br i1 %cmp.i, label %if.then.i169, label %invoke.cont -if.then.i172: ; preds = %call.i.noexc +if.then.i169: ; preds = %call.i.noexc %3 = tail call i64 @llvm.umax.i64(i64 %conv.i, i64 6140) %4 = add nuw nsw i64 %3, 4 - %call4.i.i173 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %4) #17 + %call4.i.i170 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %4) #17 to label %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i: ; preds = %if.then.i172 - store ptr %call4.i.i173, ptr %buffer.i, align 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i173, ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i159, i64 4096, i1 false) - tail call void @_ZdaPv(ptr noundef nonnull %call4.i.i159) #18 +_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i: ; preds = %if.then.i169 + store ptr %call4.i.i170, ptr %buffer.i, align 8 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i170, ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i156, i64 4096, i1 false) + tail call void @_ZdaPv(ptr noundef nonnull %call4.i.i156) #18 store i64 %4, ptr %cur_size.i, align 8 br label %invoke.cont invoke.cont: ; preds = %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i, %call.i.noexc - %5 = phi ptr [ %call4.i.i173, %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i ], [ %call4.i.i159, %call.i.noexc ] + %5 = phi ptr [ %call4.i.i170, %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i ], [ %call4.i.i156, %call.i.noexc ] %add.ptr.i = getelementptr inbounds i8, ptr %5, i64 4 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i, ptr nonnull align 1 %data.i, i64 %conv.i, i1 false) %add6.i = add nuw nsw i64 %conv.i, 4 - store i64 %add6.i, ptr %cursor.i154, align 8 + store i64 %add6.i, ptr %cursor.i151, align 8 %mTransformation = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 1 + %d1.i.i = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 1, i32 12 %c1.i.i = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 1, i32 8 %b1.i.i = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 1, i32 4 - %d1.i.i = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 1, i32 12 br label %for.cond1.preheader.i for.cond1.preheader.i: ; preds = %for.inc5.i, %invoke.cont - %i.030.i = phi i32 [ 0, %invoke.cont ], [ %inc6.i, %for.inc5.i ] - switch i32 %i.030.i, label %if.end.i.i [ - i32 3, label %if.end.i.us.i + %i.042.i = phi i32 [ 0, %invoke.cont ], [ %inc6.i, %for.inc5.i ] + switch i32 %i.042.i, label %default.unreachable.i.i [ + i32 0, label %if.end.i.us.i i32 1, label %if.end.i.us7.i i32 2, label %if.end.i.us19.i + i32 3, label %if.end.i.us31.i ] if.end.i.us.i: ; preds = %for.cond1.preheader.i, %call.i.us.i.noexc - %indvars.iv39.i = phi i64 [ %indvars.iv.next40.i, %call.i.us.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.us.i = getelementptr inbounds float, ptr %d1.i.i, i64 %indvars.iv39.i + %indvars.iv55.i = phi i64 [ %indvars.iv.next56.i, %call.i.us.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us.i = getelementptr inbounds float, ptr %mTransformation, i64 %indvars.iv55.i %vtable.i.us.i = load ptr, ptr %chunk, align 8 %vfn.i.us.i = getelementptr inbounds ptr, ptr %vtable.i.us.i, i64 3 %6 = load ptr, ptr %vfn.i.us.i, align 8 %call.i.us.i30 = invoke noundef i64 %6(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us.i, i64 noundef 4, i64 noundef 1) - to label %call.i.us.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + to label %call.i.us.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call.i.us.i.noexc: ; preds = %if.end.i.us.i - %indvars.iv.next40.i = add nuw nsw i64 %indvars.iv39.i, 1 - %exitcond42.not.i = icmp eq i64 %indvars.iv.next40.i, 4 - br i1 %exitcond42.not.i, label %for.inc5.i, label %if.end.i.us.i, !llvm.loop !11 + %indvars.iv.next56.i = add nuw nsw i64 %indvars.iv55.i, 1 + %exitcond58.not.i = icmp eq i64 %indvars.iv.next56.i, 4 + br i1 %exitcond58.not.i, label %for.inc5.i, label %if.end.i.us.i, !llvm.loop !11 if.end.i.us7.i: ; preds = %for.cond1.preheader.i, %call.i.us15.i.noexc - %indvars.iv35.i = phi i64 [ %indvars.iv.next36.i, %call.i.us15.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.us12.i = getelementptr inbounds float, ptr %b1.i.i, i64 %indvars.iv35.i + %indvars.iv51.i = phi i64 [ %indvars.iv.next52.i, %call.i.us15.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us12.i = getelementptr inbounds float, ptr %b1.i.i, i64 %indvars.iv51.i %vtable.i.us13.i = load ptr, ptr %chunk, align 8 %vfn.i.us14.i = getelementptr inbounds ptr, ptr %vtable.i.us13.i, i64 3 %7 = load ptr, ptr %vfn.i.us14.i, align 8 %call.i.us15.i31 = invoke noundef i64 %7(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us12.i, i64 noundef 4, i64 noundef 1) - to label %call.i.us15.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + to label %call.i.us15.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call.i.us15.i.noexc: ; preds = %if.end.i.us7.i - %indvars.iv.next36.i = add nuw nsw i64 %indvars.iv35.i, 1 - %exitcond38.not.i = icmp eq i64 %indvars.iv.next36.i, 4 - br i1 %exitcond38.not.i, label %for.inc5.i, label %if.end.i.us7.i, !llvm.loop !11 + %indvars.iv.next52.i = add nuw nsw i64 %indvars.iv51.i, 1 + %exitcond54.not.i = icmp eq i64 %indvars.iv.next52.i, 4 + br i1 %exitcond54.not.i, label %for.inc5.i, label %if.end.i.us7.i, !llvm.loop !11 if.end.i.us19.i: ; preds = %for.cond1.preheader.i, %call.i.us27.i.noexc - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %call.i.us27.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.us24.i = getelementptr inbounds float, ptr %c1.i.i, i64 %indvars.iv.i + %indvars.iv47.i = phi i64 [ %indvars.iv.next48.i, %call.i.us27.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us24.i = getelementptr inbounds float, ptr %c1.i.i, i64 %indvars.iv47.i %vtable.i.us25.i = load ptr, ptr %chunk, align 8 %vfn.i.us26.i = getelementptr inbounds ptr, ptr %vtable.i.us25.i, i64 3 %8 = load ptr, ptr %vfn.i.us26.i, align 8 %call.i.us27.i32 = invoke noundef i64 %8(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us24.i, i64 noundef 4, i64 noundef 1) - to label %call.i.us27.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + to label %call.i.us27.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call.i.us27.i.noexc: ; preds = %if.end.i.us19.i + %indvars.iv.next48.i = add nuw nsw i64 %indvars.iv47.i, 1 + %exitcond50.not.i = icmp eq i64 %indvars.iv.next48.i, 4 + br i1 %exitcond50.not.i, label %for.inc5.i, label %if.end.i.us19.i, !llvm.loop !11 + +if.end.i.us31.i: ; preds = %for.cond1.preheader.i, %call.i.us39.i.noexc + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %call.i.us39.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us36.i = getelementptr inbounds float, ptr %d1.i.i, i64 %indvars.iv.i + %vtable.i.us37.i = load ptr, ptr %chunk, align 8 + %vfn.i.us38.i = getelementptr inbounds ptr, ptr %vtable.i.us37.i, i64 3 + %9 = load ptr, ptr %vfn.i.us38.i, align 8 + %call.i.us39.i33 = invoke noundef i64 %9(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us36.i, i64 noundef 4, i64 noundef 1) + to label %call.i.us39.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + +call.i.us39.i.noexc: ; preds = %if.end.i.us31.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, 4 - br i1 %exitcond.not.i, label %for.inc5.i, label %if.end.i.us19.i, !llvm.loop !11 - -if.end.i.i: ; preds = %for.cond1.preheader.i, %call.i.i.noexc - %indvars.iv43.i = phi i64 [ %indvars.iv.next44.i, %call.i.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.i = getelementptr inbounds float, ptr %mTransformation, i64 %indvars.iv43.i - %vtable.i.i = load ptr, ptr %chunk, align 8 - %vfn.i.i = getelementptr inbounds ptr, ptr %vtable.i.i, i64 3 - %9 = load ptr, ptr %vfn.i.i, align 8 - %call.i.i33 = invoke noundef i64 %9(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.i, i64 noundef 4, i64 noundef 1) - to label %call.i.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + br i1 %exitcond.not.i, label %for.inc5.i, label %if.end.i.us31.i, !llvm.loop !11 -call.i.i.noexc: ; preds = %if.end.i.i - %indvars.iv.next44.i = add nuw nsw i64 %indvars.iv43.i, 1 - %exitcond46.not.i = icmp eq i64 %indvars.iv.next44.i, 4 - br i1 %exitcond46.not.i, label %for.inc5.i, label %if.end.i.i, !llvm.loop !11 +default.unreachable.i.i: ; preds = %for.cond1.preheader.i + unreachable -for.inc5.i: ; preds = %call.i.us27.i.noexc, %call.i.us15.i.noexc, %call.i.us.i.noexc, %call.i.i.noexc - %inc6.i = add nuw nsw i32 %i.030.i, 1 - %exitcond47.not.i = icmp eq i32 %inc6.i, 4 - br i1 %exitcond47.not.i, label %invoke.cont3, label %for.cond1.preheader.i, !llvm.loop !12 +for.inc5.i: ; preds = %call.i.us39.i.noexc, %call.i.us27.i.noexc, %call.i.us15.i.noexc, %call.i.us.i.noexc + %inc6.i = add nuw nsw i32 %i.042.i, 1 + %exitcond59.not.i = icmp eq i32 %inc6.i, 4 + br i1 %exitcond59.not.i, label %invoke.cont3, label %for.cond1.preheader.i, !llvm.loop !12 invoke.cont3: ; preds = %for.inc5.i %mNumChildren = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 3 @@ -1510,8 +1514,8 @@ invoke.cont7: ; preds = %invoke.cont5 _ZN6Assimp5WriteIjEEmPNS_8IOStreamERKT_.exit49: ; preds = %invoke.cont7 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %t.i44) %15 = load i32, ptr %mNumMeshes, align 8 - %cmp12135.not = icmp eq i32 %15, 0 - br i1 %cmp12135.not, label %for.cond16.preheader, label %for.body.lr.ph + %cmp12132.not = icmp eq i32 %15, 0 + br i1 %cmp12132.not, label %for.cond16.preheader, label %for.body.lr.ph for.body.lr.ph: ; preds = %_ZN6Assimp5WriteIjEEmPNS_8IOStreamERKT_.exit49 %mMeshes = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 6 @@ -1519,8 +1523,8 @@ for.body.lr.ph: ; preds = %_ZN6Assimp5WriteIjE for.cond16.preheader: ; preds = %for.inc, %_ZN6Assimp5WriteIjEEmPNS_8IOStreamERKT_.exit49 %16 = load i32, ptr %mNumChildren, align 8 - %cmp18137.not = icmp eq i32 %16, 0 - br i1 %cmp18137.not, label %for.cond27.preheader, label %for.body19.lr.ph + %cmp18134.not = icmp eq i32 %16, 0 + br i1 %cmp18134.not, label %for.cond27.preheader, label %for.body19.lr.ph for.body19.lr.ph: ; preds = %for.cond16.preheader %mChildren = getelementptr inbounds %struct.aiNode, ptr %node, i64 0, i32 4 @@ -1547,85 +1551,85 @@ for.inc: ; preds = %for.body %cmp12 = icmp ult i64 %indvars.iv.next, %21 br i1 %cmp12, label %for.body, label %for.cond16.preheader, !llvm.loop !13 -lpad.loopexit: ; preds = %sw.bb.invoke, %for.body29, %call.i.noexc63, %invoke.cont40, %sw.bb58, %sw.bb61, %call.i.i.noexc104 - %lpad.loopexit112 = landingpad { ptr, i32 } +lpad.loopexit: ; preds = %sw.bb.invoke, %for.body29, %call.i.noexc63, %invoke.cont40, %sw.bb58, %sw.bb61, %call.i.i.noexc + %lpad.loopexit109 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp.loopexit: ; preds = %for.body19 - %lpad.loopexit114 = landingpad { ptr, i32 } + %lpad.loopexit111 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body - %lpad.loopexit117 = landingpad { ptr, i32 } + %lpad.loopexit114 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.i - %lpad.loopexit120 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us.i + %lpad.loopexit117 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us.i - %lpad.loopexit123 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us7.i + %lpad.loopexit120 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us7.i - %lpad.loopexit127 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us19.i + %lpad.loopexit124 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us19.i - %lpad.loopexit131 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us31.i + %lpad.loopexit128 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i172, %if.then.i158, %invoke.cont3, %invoke.cont5, %invoke.cont7 - %lpad.loopexit.split-lp132 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i169, %if.then.i155, %invoke.cont3, %invoke.cont5, %invoke.cont7 + %lpad.loopexit.split-lp129 = landingpad { ptr, i32 } cleanup br label %lpad lpad: ; preds = %lpad.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit112, %lpad.loopexit ], [ %lpad.loopexit114, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit117, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit120, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit123, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit127, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit131, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp132, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit109, %lpad.loopexit ], [ %lpad.loopexit111, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit114, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit117, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit120, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit124, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit128, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp129, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call void @_ZN6Assimp17AssbinChunkWriterD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %chunk) #15 resume { ptr, i32 } %lpad.phi for.cond27.preheader: ; preds = %for.inc23, %for.cond16.preheader - %cmp28139.not = icmp eq i32 %cond, 0 - br i1 %cmp28139.not, label %for.end66, label %for.body29.preheader + %cmp28136.not = icmp eq i32 %cond, 0 + br i1 %cmp28136.not, label %for.end66, label %for.body29.preheader for.body29.preheader: ; preds = %for.cond27.preheader %wide.trip.count = zext i32 %cond to i64 br label %for.body29 for.body19: ; preds = %for.body19.lr.ph, %for.inc23 - %indvars.iv145 = phi i64 [ 0, %for.body19.lr.ph ], [ %indvars.iv.next146, %for.inc23 ] + %indvars.iv142 = phi i64 [ 0, %for.body19.lr.ph ], [ %indvars.iv.next143, %for.inc23 ] %22 = load ptr, ptr %mChildren, align 8 - %arrayidx21 = getelementptr inbounds ptr, ptr %22, i64 %indvars.iv145 + %arrayidx21 = getelementptr inbounds ptr, ptr %22, i64 %indvars.iv142 %23 = load ptr, ptr %arrayidx21, align 8 invoke void @_ZN6Assimp16AssbinFileWriter15WriteBinaryNodeEPNS_8IOStreamEPK6aiNode(ptr noundef nonnull align 1 dereferenceable(2) %this, ptr noundef nonnull %chunk, ptr noundef %23) to label %for.inc23 unwind label %lpad.loopexit.split-lp.loopexit for.inc23: ; preds = %for.body19 - %indvars.iv.next146 = add nuw nsw i64 %indvars.iv145, 1 + %indvars.iv.next143 = add nuw nsw i64 %indvars.iv142, 1 %24 = load i32, ptr %mNumChildren, align 8 %25 = zext i32 %24 to i64 - %cmp18 = icmp ult i64 %indvars.iv.next146, %25 + %cmp18 = icmp ult i64 %indvars.iv.next143, %25 br i1 %cmp18, label %for.body19, label %for.cond27.preheader, !llvm.loop !14 for.body29: ; preds = %for.body29.preheader, %for.inc64 - %indvars.iv148 = phi i64 [ 0, %for.body29.preheader ], [ %indvars.iv.next149, %for.inc64 ] + %indvars.iv145 = phi i64 [ 0, %for.body29.preheader ], [ %indvars.iv.next146, %for.inc64 ] %26 = load ptr, ptr %mMetaData, align 8 %mKeys = getelementptr inbounds %struct.aiMetadata, ptr %26, i64 0, i32 1 %27 = load ptr, ptr %mKeys, align 8 - %arrayidx32 = getelementptr inbounds %struct.aiString, ptr %27, i64 %indvars.iv148 + %arrayidx32 = getelementptr inbounds %struct.aiString, ptr %27, i64 %indvars.iv145 %mValues = getelementptr inbounds %struct.aiMetadata, ptr %26, i64 0, i32 2 %28 = load ptr, ptr %mValues, align 8 - %arrayidx35 = getelementptr inbounds %struct.aiMetadataEntry, ptr %28, i64 %indvars.iv148 + %arrayidx35 = getelementptr inbounds %struct.aiMetadataEntry, ptr %28, i64 %indvars.iv145 %29 = load i32, ptr %arrayidx35, align 8 - %mData = getelementptr inbounds %struct.aiMetadataEntry, ptr %28, i64 %indvars.iv148, i32 1 + %mData = getelementptr inbounds %struct.aiMetadataEntry, ptr %28, i64 %indvars.iv145, i32 1 %30 = load ptr, ptr %mData, align 8 %31 = load i32, ptr %arrayidx32, align 4 %vtable.i57 = load ptr, ptr %chunk, align 8 @@ -1636,7 +1640,7 @@ for.body29: ; preds = %for.body29.preheade call.i.noexc63: ; preds = %for.body29 %conv.i56 = zext i32 %31 to i64 - %data.i59 = getelementptr inbounds %struct.aiString, ptr %27, i64 %indvars.iv148, i32 1 + %data.i59 = getelementptr inbounds %struct.aiString, ptr %27, i64 %indvars.iv145, i32 1 %vtable1.i60 = load ptr, ptr %chunk, align 8 %vfn2.i61 = getelementptr inbounds ptr, ptr %vtable1.i60, i64 3 %33 = load ptr, ptr %vfn2.i61, align 8 @@ -1698,27 +1702,27 @@ call.i.noexc98: ; preds = %sw.bb58 br label %sw.bb.invoke sw.bb61: ; preds = %invoke.cont42 - %vtable.i.i102 = load ptr, ptr %chunk, align 8 - %vfn.i.i103 = getelementptr inbounds ptr, ptr %vtable.i.i102, i64 3 - %41 = load ptr, ptr %vfn.i.i103, align 8 - %call.i.i105 = invoke noundef i64 %41(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %30, i64 noundef 4, i64 noundef 1) - to label %call.i.i.noexc104 unwind label %lpad.loopexit + %vtable.i.i = load ptr, ptr %chunk, align 8 + %vfn.i.i = getelementptr inbounds ptr, ptr %vtable.i.i, i64 3 + %41 = load ptr, ptr %vfn.i.i, align 8 + %call.i.i102 = invoke noundef i64 %41(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %30, i64 noundef 4, i64 noundef 1) + to label %call.i.i.noexc unwind label %lpad.loopexit -call.i.i.noexc104: ; preds = %sw.bb61 +call.i.i.noexc: ; preds = %sw.bb61 %y.i = getelementptr inbounds %class.aiVector3t, ptr %30, i64 0, i32 1 %vtable.i7.i = load ptr, ptr %chunk, align 8 %vfn.i8.i = getelementptr inbounds ptr, ptr %vtable.i7.i, i64 3 %42 = load ptr, ptr %vfn.i8.i, align 8 - %call.i9.i106 = invoke noundef i64 %42(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %y.i, i64 noundef 4, i64 noundef 1) + %call.i9.i103 = invoke noundef i64 %42(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %y.i, i64 noundef 4, i64 noundef 1) to label %call.i9.i.noexc unwind label %lpad.loopexit -call.i9.i.noexc: ; preds = %call.i.i.noexc104 +call.i9.i.noexc: ; preds = %call.i.i.noexc %z.i = getelementptr inbounds %class.aiVector3t, ptr %30, i64 0, i32 2 br label %sw.bb.invoke for.inc64: ; preds = %sw.bb.invoke, %invoke.cont42 - %indvars.iv.next149 = add nuw nsw i64 %indvars.iv148, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next149, %wide.trip.count + %indvars.iv.next146 = add nuw nsw i64 %indvars.iv145, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next146, %wide.trip.count br i1 %exitcond.not, label %for.end66, label %for.body29, !llvm.loop !15 for.end66: ; preds = %for.inc64, %for.cond27.preheader @@ -1728,9 +1732,9 @@ for.end66: ; preds = %for.inc64, %for.con br i1 %tobool.not.i, label %if.end.i, label %if.then.i if.then.i: ; preds = %for.end66 - %vtable.i108 = load ptr, ptr %43, align 8 - %vfn.i109 = getelementptr inbounds ptr, ptr %vtable.i108, i64 3 - %44 = load ptr, ptr %vfn.i109, align 8 + %vtable.i105 = load ptr, ptr %43, align 8 + %vfn.i106 = getelementptr inbounds ptr, ptr %vtable.i105, i64 3 + %44 = load ptr, ptr %vfn.i106, align 8 %call.i = invoke noundef i64 %44(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull %magic2.i, i64 noundef 4, i64 noundef 1) to label %invoke.cont.i unwind label %terminate.lpad.i @@ -1739,13 +1743,13 @@ invoke.cont.i: ; preds = %if.then.i %vtable4.i = load ptr, ptr %45, align 8 %vfn5.i = getelementptr inbounds ptr, ptr %vtable4.i, i64 3 %46 = load ptr, ptr %vfn5.i, align 8 - %call7.i = invoke noundef i64 %46(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull %cursor.i154, i64 noundef 4, i64 noundef 1) + %call7.i = invoke noundef i64 %46(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull %cursor.i151, i64 noundef 4, i64 noundef 1) to label %invoke.cont6.i unwind label %terminate.lpad.i invoke.cont6.i: ; preds = %invoke.cont.i %47 = load ptr, ptr %container3.i, align 8 %48 = load ptr, ptr %buffer.i, align 8 - %49 = load i64, ptr %cursor.i154, align 8 + %49 = load i64, ptr %cursor.i151, align 8 %vtable10.i = load ptr, ptr %47, align 8 %vfn11.i = getelementptr inbounds ptr, ptr %vtable10.i, i64 3 %50 = load ptr, ptr %vfn11.i, align 8 @@ -3765,7 +3769,7 @@ _ZN6Assimp11ArrayBoundsI9aiColor4tIfEEEvPKT_jRS3_S6_.exit: ; preds = %_ZN6Assimp ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZN6Assimp16AssbinFileWriter15WriteBinaryBoneEPNS_8IOStreamEPK6aiBone(ptr noundef nonnull align 1 dereferenceable(2) %this, ptr noundef %container, ptr noundef %b) local_unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { -if.then.i68: +if.then.i67: %t.i.i.i21 = alloca i32, align 4 %t.i.i4.i = alloca i32, align 4 %t.i.i.i = alloca i32, align 4 @@ -3784,141 +3788,145 @@ if.then.i68: call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %cur_size.i, i8 0, i64 16, i1 false) store i64 4096, ptr %initial4.i, align 8 %0 = load i32, ptr %b, align 4 - %cursor.i64 = getelementptr inbounds %"class.Assimp::AssbinChunkWriter", ptr %chunk, i64 0, i32 5 - %call4.i.i69 = invoke noalias noundef nonnull dereferenceable(4096) ptr @_Znam(i64 noundef 4096) #17 + %cursor.i63 = getelementptr inbounds %"class.Assimp::AssbinChunkWriter", ptr %chunk, i64 0, i32 5 + %call4.i.i68 = invoke noalias noundef nonnull dereferenceable(4096) ptr @_Znam(i64 noundef 4096) #17 to label %call.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -call.i.noexc: ; preds = %if.then.i68 - store ptr %call4.i.i69, ptr %buffer.i, align 8 +call.i.noexc: ; preds = %if.then.i67 + store ptr %call4.i.i68, ptr %buffer.i, align 8 store i64 4096, ptr %cur_size.i, align 8 - store i32 %0, ptr %call4.i.i69, align 1 - store i64 4, ptr %cursor.i64, align 8 + store i32 %0, ptr %call4.i.i68, align 1 + store i64 4, ptr %cursor.i63, align 8 %conv.i = zext i32 %0 to i64 %data.i = getelementptr inbounds %struct.aiString, ptr %b, i64 0, i32 1 %cmp.i = icmp ugt i32 %0, 4092 - br i1 %cmp.i, label %if.then.i85, label %invoke.cont + br i1 %cmp.i, label %if.then.i84, label %invoke.cont -if.then.i85: ; preds = %call.i.noexc +if.then.i84: ; preds = %call.i.noexc %1 = tail call i64 @llvm.umax.i64(i64 %conv.i, i64 6140) %2 = add nuw nsw i64 %1, 4 - %call4.i.i86 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %2) #17 + %call4.i.i85 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %2) #17 to label %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i: ; preds = %if.then.i85 - store ptr %call4.i.i86, ptr %buffer.i, align 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i86, ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i69, i64 4096, i1 false) - tail call void @_ZdaPv(ptr noundef nonnull %call4.i.i69) #18 +_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i: ; preds = %if.then.i84 + store ptr %call4.i.i85, ptr %buffer.i, align 8 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i85, ptr noundef nonnull align 1 dereferenceable(4096) %call4.i.i68, i64 4096, i1 false) + tail call void @_ZdaPv(ptr noundef nonnull %call4.i.i68) #18 store i64 %2, ptr %cur_size.i, align 8 br label %invoke.cont invoke.cont: ; preds = %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i, %call.i.noexc %3 = phi i64 [ %2, %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i ], [ 4096, %call.i.noexc ] - %4 = phi ptr [ %call4.i.i86, %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i ], [ %call4.i.i69, %call.i.noexc ] + %4 = phi ptr [ %call4.i.i85, %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i ], [ %call4.i.i68, %call.i.noexc ] %add.ptr.i = getelementptr inbounds i8, ptr %4, i64 4 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i, ptr nonnull align 1 %data.i, i64 %conv.i, i1 false) %add6.i = add nuw nsw i64 %conv.i, 4 - store i64 %add6.i, ptr %cursor.i64, align 8 + store i64 %add6.i, ptr %cursor.i63, align 8 %mNumWeights = getelementptr inbounds %struct.aiBone, ptr %b, i64 0, i32 1 %5 = load i32, ptr %mNumWeights, align 4 %add.i = add nuw nsw i64 %conv.i, 8 - %cmp.i100 = icmp ugt i64 %add.i, %3 - br i1 %cmp.i100, label %if.then.i105, label %invoke.cont2 + %cmp.i99 = icmp ugt i64 %add.i, %3 + br i1 %cmp.i99, label %if.then.i104, label %invoke.cont2 -if.then.i105: ; preds = %invoke.cont +if.then.i104: ; preds = %invoke.cont %shr.i.i = lshr i64 %3, 1 %add.i.i = add nuw nsw i64 %shr.i.i, %3 %6 = tail call i64 @llvm.umax.i64(i64 %add.i.i, i64 %add.i) - %call4.i.i107 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %6) #17 - to label %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i106 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + %call4.i.i106 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %6) #17 + to label %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i105 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i106: ; preds = %if.then.i105 - store ptr %call4.i.i107, ptr %buffer.i, align 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %call4.i.i107, ptr noundef nonnull align 1 dereferenceable(1) %4, i64 %3, i1 false) +_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i105: ; preds = %if.then.i104 + store ptr %call4.i.i106, ptr %buffer.i, align 8 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %call4.i.i106, ptr noundef nonnull align 1 dereferenceable(1) %4, i64 %3, i1 false) tail call void @_ZdaPv(ptr noundef nonnull %4) #18 store i64 %6, ptr %cur_size.i, align 8 br label %invoke.cont2 -invoke.cont2: ; preds = %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i106, %invoke.cont - %7 = phi ptr [ %call4.i.i107, %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i106 ], [ %4, %invoke.cont ] - %add.ptr.i103 = getelementptr inbounds i8, ptr %7, i64 %add6.i - store i32 %5, ptr %add.ptr.i103, align 1 - %8 = load i64, ptr %cursor.i64, align 8 - %add6.i104 = add i64 %8, 4 - store i64 %add6.i104, ptr %cursor.i64, align 8 +invoke.cont2: ; preds = %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i105, %invoke.cont + %7 = phi ptr [ %call4.i.i106, %_ZN6Assimp17AssbinChunkWriter4GrowEm.exit.i105 ], [ %4, %invoke.cont ] + %add.ptr.i102 = getelementptr inbounds i8, ptr %7, i64 %add6.i + store i32 %5, ptr %add.ptr.i102, align 1 + %8 = load i64, ptr %cursor.i63, align 8 + %add6.i103 = add i64 %8, 4 + store i64 %add6.i103, ptr %cursor.i63, align 8 %mOffsetMatrix = getelementptr inbounds %struct.aiBone, ptr %b, i64 0, i32 5 + %d1.i.i = getelementptr inbounds %struct.aiBone, ptr %b, i64 0, i32 5, i32 12 %c1.i.i = getelementptr inbounds %struct.aiBone, ptr %b, i64 0, i32 5, i32 8 %b1.i.i = getelementptr inbounds %struct.aiBone, ptr %b, i64 0, i32 5, i32 4 - %d1.i.i = getelementptr inbounds %struct.aiBone, ptr %b, i64 0, i32 5, i32 12 br label %for.cond1.preheader.i for.cond1.preheader.i: ; preds = %for.inc5.i, %invoke.cont2 - %i.030.i = phi i32 [ 0, %invoke.cont2 ], [ %inc6.i, %for.inc5.i ] - switch i32 %i.030.i, label %if.end.i.i [ - i32 3, label %if.end.i.us.i + %i.042.i = phi i32 [ 0, %invoke.cont2 ], [ %inc6.i, %for.inc5.i ] + switch i32 %i.042.i, label %default.unreachable.i.i [ + i32 0, label %if.end.i.us.i i32 1, label %if.end.i.us7.i i32 2, label %if.end.i.us19.i + i32 3, label %if.end.i.us31.i ] if.end.i.us.i: ; preds = %for.cond1.preheader.i, %call.i.us.i.noexc - %indvars.iv39.i = phi i64 [ %indvars.iv.next40.i, %call.i.us.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.us.i = getelementptr inbounds float, ptr %d1.i.i, i64 %indvars.iv39.i + %indvars.iv55.i = phi i64 [ %indvars.iv.next56.i, %call.i.us.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us.i = getelementptr inbounds float, ptr %mOffsetMatrix, i64 %indvars.iv55.i %vtable.i.us.i = load ptr, ptr %chunk, align 8 %vfn.i.us.i = getelementptr inbounds ptr, ptr %vtable.i.us.i, i64 3 %9 = load ptr, ptr %vfn.i.us.i, align 8 %call.i.us.i13 = invoke noundef i64 %9(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us.i, i64 noundef 4, i64 noundef 1) - to label %call.i.us.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit + to label %call.i.us.i.noexc unwind label %lpad.loopexit.split-lp.loopexit call.i.us.i.noexc: ; preds = %if.end.i.us.i - %indvars.iv.next40.i = add nuw nsw i64 %indvars.iv39.i, 1 - %exitcond42.not.i = icmp eq i64 %indvars.iv.next40.i, 4 - br i1 %exitcond42.not.i, label %for.inc5.i, label %if.end.i.us.i, !llvm.loop !11 + %indvars.iv.next56.i = add nuw nsw i64 %indvars.iv55.i, 1 + %exitcond58.not.i = icmp eq i64 %indvars.iv.next56.i, 4 + br i1 %exitcond58.not.i, label %for.inc5.i, label %if.end.i.us.i, !llvm.loop !11 if.end.i.us7.i: ; preds = %for.cond1.preheader.i, %call.i.us15.i.noexc - %indvars.iv35.i = phi i64 [ %indvars.iv.next36.i, %call.i.us15.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.us12.i = getelementptr inbounds float, ptr %b1.i.i, i64 %indvars.iv35.i + %indvars.iv51.i = phi i64 [ %indvars.iv.next52.i, %call.i.us15.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us12.i = getelementptr inbounds float, ptr %b1.i.i, i64 %indvars.iv51.i %vtable.i.us13.i = load ptr, ptr %chunk, align 8 %vfn.i.us14.i = getelementptr inbounds ptr, ptr %vtable.i.us13.i, i64 3 %10 = load ptr, ptr %vfn.i.us14.i, align 8 %call.i.us15.i14 = invoke noundef i64 %10(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us12.i, i64 noundef 4, i64 noundef 1) - to label %call.i.us15.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + to label %call.i.us15.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit call.i.us15.i.noexc: ; preds = %if.end.i.us7.i - %indvars.iv.next36.i = add nuw nsw i64 %indvars.iv35.i, 1 - %exitcond38.not.i = icmp eq i64 %indvars.iv.next36.i, 4 - br i1 %exitcond38.not.i, label %for.inc5.i, label %if.end.i.us7.i, !llvm.loop !11 + %indvars.iv.next52.i = add nuw nsw i64 %indvars.iv51.i, 1 + %exitcond54.not.i = icmp eq i64 %indvars.iv.next52.i, 4 + br i1 %exitcond54.not.i, label %for.inc5.i, label %if.end.i.us7.i, !llvm.loop !11 if.end.i.us19.i: ; preds = %for.cond1.preheader.i, %call.i.us27.i.noexc - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %call.i.us27.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.us24.i = getelementptr inbounds float, ptr %c1.i.i, i64 %indvars.iv.i + %indvars.iv47.i = phi i64 [ %indvars.iv.next48.i, %call.i.us27.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us24.i = getelementptr inbounds float, ptr %c1.i.i, i64 %indvars.iv47.i %vtable.i.us25.i = load ptr, ptr %chunk, align 8 %vfn.i.us26.i = getelementptr inbounds ptr, ptr %vtable.i.us25.i, i64 3 %11 = load ptr, ptr %vfn.i.us26.i, align 8 %call.i.us27.i15 = invoke noundef i64 %11(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us24.i, i64 noundef 4, i64 noundef 1) - to label %call.i.us27.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + to label %call.i.us27.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call.i.us27.i.noexc: ; preds = %if.end.i.us19.i + %indvars.iv.next48.i = add nuw nsw i64 %indvars.iv47.i, 1 + %exitcond50.not.i = icmp eq i64 %indvars.iv.next48.i, 4 + br i1 %exitcond50.not.i, label %for.inc5.i, label %if.end.i.us19.i, !llvm.loop !11 + +if.end.i.us31.i: ; preds = %for.cond1.preheader.i, %call.i.us39.i.noexc + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %call.i.us39.i.noexc ], [ 0, %for.cond1.preheader.i ] + %arrayidx.us36.i = getelementptr inbounds float, ptr %d1.i.i, i64 %indvars.iv.i + %vtable.i.us37.i = load ptr, ptr %chunk, align 8 + %vfn.i.us38.i = getelementptr inbounds ptr, ptr %vtable.i.us37.i, i64 3 + %12 = load ptr, ptr %vfn.i.us38.i, align 8 + %call.i.us39.i16 = invoke noundef i64 %12(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.us36.i, i64 noundef 4, i64 noundef 1) + to label %call.i.us39.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit + +call.i.us39.i.noexc: ; preds = %if.end.i.us31.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, 4 - br i1 %exitcond.not.i, label %for.inc5.i, label %if.end.i.us19.i, !llvm.loop !11 + br i1 %exitcond.not.i, label %for.inc5.i, label %if.end.i.us31.i, !llvm.loop !11 -if.end.i.i: ; preds = %for.cond1.preheader.i, %call.i.i.noexc - %indvars.iv43.i = phi i64 [ %indvars.iv.next44.i, %call.i.i.noexc ], [ 0, %for.cond1.preheader.i ] - %arrayidx.i = getelementptr inbounds float, ptr %mOffsetMatrix, i64 %indvars.iv43.i - %vtable.i.i = load ptr, ptr %chunk, align 8 - %vfn.i.i = getelementptr inbounds ptr, ptr %vtable.i.i, i64 3 - %12 = load ptr, ptr %vfn.i.i, align 8 - %call.i.i16 = invoke noundef i64 %12(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %arrayidx.i, i64 noundef 4, i64 noundef 1) - to label %call.i.i.noexc unwind label %lpad.loopexit.split-lp.loopexit - -call.i.i.noexc: ; preds = %if.end.i.i - %indvars.iv.next44.i = add nuw nsw i64 %indvars.iv43.i, 1 - %exitcond46.not.i = icmp eq i64 %indvars.iv.next44.i, 4 - br i1 %exitcond46.not.i, label %for.inc5.i, label %if.end.i.i, !llvm.loop !11 +default.unreachable.i.i: ; preds = %for.cond1.preheader.i + unreachable -for.inc5.i: ; preds = %call.i.us27.i.noexc, %call.i.us15.i.noexc, %call.i.us.i.noexc, %call.i.i.noexc - %inc6.i = add nuw nsw i32 %i.030.i, 1 - %exitcond47.not.i = icmp eq i32 %inc6.i, 4 - br i1 %exitcond47.not.i, label %invoke.cont4, label %for.cond1.preheader.i, !llvm.loop !12 +for.inc5.i: ; preds = %call.i.us39.i.noexc, %call.i.us27.i.noexc, %call.i.us15.i.noexc, %call.i.us.i.noexc + %inc6.i = add nuw nsw i32 %i.042.i, 1 + %exitcond59.not.i = icmp eq i32 %inc6.i, 4 + br i1 %exitcond59.not.i, label %invoke.cont4, label %for.cond1.preheader.i, !llvm.loop !12 invoke.cont4: ; preds = %for.inc5.i %13 = load i8, ptr %this, align 1 @@ -4021,38 +4029,38 @@ _ZN6Assimp11WriteBoundsI14aiVertexWeightEEmPNS_8IOStreamEPKT_j.exit: ; preds = % call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %maxc.i) br label %if.end -lpad.loopexit: ; preds = %for.body.i, %call.i.i.i.noexc31 - %lpad.loopexit38 = landingpad { ptr, i32 } +lpad.loopexit: ; preds = %for.body.i, %call.i.i.i.noexc30 + %lpad.loopexit37 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit: ; preds = %if.end.i.i - %lpad.loopexit40 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit: ; preds = %if.end.i.us.i + %lpad.loopexit39 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us.i - %lpad.loopexit43 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us7.i + %lpad.loopexit42 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us7.i - %lpad.loopexit47 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us19.i + %lpad.loopexit46 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us19.i - %lpad.loopexit51 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.us31.i + %lpad.loopexit50 = landingpad { ptr, i32 } cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i105, %if.then.i85, %if.then.i68, %_ZN6Assimp11ArrayBoundsI14aiVertexWeightEEvPKT_jRS2_S5_.exit.i, %call.i.i.i.noexc, %call.i5.i.i.noexc, %call.i.i7.i.noexc - %lpad.loopexit.split-lp52 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i104, %if.then.i84, %if.then.i67, %_ZN6Assimp11ArrayBoundsI14aiVertexWeightEEvPKT_jRS2_S5_.exit.i, %call.i.i.i.noexc, %call.i5.i.i.noexc, %call.i.i7.i.noexc + %lpad.loopexit.split-lp51 = landingpad { ptr, i32 } cleanup br label %lpad lpad: ; preds = %lpad.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit38, %lpad.loopexit ], [ %lpad.loopexit40, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit43, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit47, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit51, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp52, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit37, %lpad.loopexit ], [ %lpad.loopexit39, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit42, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit46, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit50, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp51, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call void @_ZN6Assimp17AssbinChunkWriterD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %chunk) #15 resume { ptr, i32 } %lpad.phi @@ -4064,42 +4072,42 @@ for.body.preheader.i: ; preds = %if.else %wide.trip.count.i = zext i32 %16 to i64 br label %for.body.i -for.body.i: ; preds = %call.i5.i.i.noexc33, %for.body.preheader.i - %indvars.iv.i22 = phi i64 [ 0, %for.body.preheader.i ], [ %indvars.iv.next.i29, %call.i5.i.i.noexc33 ] - %arrayidx.i23 = getelementptr inbounds %struct.aiVertexWeight, ptr %15, i64 %indvars.iv.i22 +for.body.i: ; preds = %call.i5.i.i.noexc32, %for.body.preheader.i + %indvars.iv.i22 = phi i64 [ 0, %for.body.preheader.i ], [ %indvars.iv.next.i28, %call.i5.i.i.noexc32 ] + %arrayidx.i = getelementptr inbounds %struct.aiVertexWeight, ptr %15, i64 %indvars.iv.i22 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %t.i.i.i21) - %33 = load i32, ptr %arrayidx.i23, align 4 + %33 = load i32, ptr %arrayidx.i, align 4 store i32 %33, ptr %t.i.i.i21, align 4 - %vtable.i.i.i24 = load ptr, ptr %chunk, align 8 - %vfn.i.i.i25 = getelementptr inbounds ptr, ptr %vtable.i.i.i24, i64 3 - %34 = load ptr, ptr %vfn.i.i.i25, align 8 - %call.i.i.i32 = invoke noundef i64 %34(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %t.i.i.i21, i64 noundef 4, i64 noundef 1) - to label %call.i.i.i.noexc31 unwind label %lpad.loopexit + %vtable.i.i.i23 = load ptr, ptr %chunk, align 8 + %vfn.i.i.i24 = getelementptr inbounds ptr, ptr %vtable.i.i.i23, i64 3 + %34 = load ptr, ptr %vfn.i.i.i24, align 8 + %call.i.i.i31 = invoke noundef i64 %34(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %t.i.i.i21, i64 noundef 4, i64 noundef 1) + to label %call.i.i.i.noexc30 unwind label %lpad.loopexit -call.i.i.i.noexc31: ; preds = %for.body.i +call.i.i.i.noexc30: ; preds = %for.body.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %t.i.i.i21) - %mWeight.i.i26 = getelementptr inbounds %struct.aiVertexWeight, ptr %15, i64 %indvars.iv.i22, i32 1 - %vtable.i3.i.i27 = load ptr, ptr %chunk, align 8 - %vfn.i4.i.i28 = getelementptr inbounds ptr, ptr %vtable.i3.i.i27, i64 3 - %35 = load ptr, ptr %vfn.i4.i.i28, align 8 - %call.i5.i.i34 = invoke noundef i64 %35(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %mWeight.i.i26, i64 noundef 4, i64 noundef 1) - to label %call.i5.i.i.noexc33 unwind label %lpad.loopexit - -call.i5.i.i.noexc33: ; preds = %call.i.i.i.noexc31 - %indvars.iv.next.i29 = add nuw nsw i64 %indvars.iv.i22, 1 - %exitcond.not.i30 = icmp eq i64 %indvars.iv.next.i29, %wide.trip.count.i - br i1 %exitcond.not.i30, label %if.end, label %for.body.i, !llvm.loop !33 - -if.end: ; preds = %call.i5.i.i.noexc33, %if.else, %_ZN6Assimp11WriteBoundsI14aiVertexWeightEEmPNS_8IOStreamEPKT_j.exit + %mWeight.i.i25 = getelementptr inbounds %struct.aiVertexWeight, ptr %15, i64 %indvars.iv.i22, i32 1 + %vtable.i3.i.i26 = load ptr, ptr %chunk, align 8 + %vfn.i4.i.i27 = getelementptr inbounds ptr, ptr %vtable.i3.i.i26, i64 3 + %35 = load ptr, ptr %vfn.i4.i.i27, align 8 + %call.i5.i.i33 = invoke noundef i64 %35(ptr noundef nonnull align 8 dereferenceable(8) %chunk, ptr noundef nonnull %mWeight.i.i25, i64 noundef 4, i64 noundef 1) + to label %call.i5.i.i.noexc32 unwind label %lpad.loopexit + +call.i5.i.i.noexc32: ; preds = %call.i.i.i.noexc30 + %indvars.iv.next.i28 = add nuw nsw i64 %indvars.iv.i22, 1 + %exitcond.not.i29 = icmp eq i64 %indvars.iv.next.i28, %wide.trip.count.i + br i1 %exitcond.not.i29, label %if.end, label %for.body.i, !llvm.loop !33 + +if.end: ; preds = %call.i5.i.i.noexc32, %if.else, %_ZN6Assimp11WriteBoundsI14aiVertexWeightEEmPNS_8IOStreamEPKT_j.exit store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN6Assimp17AssbinChunkWriterE, i64 0, inrange i32 0, i64 2), ptr %chunk, align 8 %36 = load ptr, ptr %container3.i, align 8 %tobool.not.i = icmp eq ptr %36, null br i1 %tobool.not.i, label %if.end.i, label %if.then.i if.then.i: ; preds = %if.end - %vtable.i35 = load ptr, ptr %36, align 8 - %vfn.i36 = getelementptr inbounds ptr, ptr %vtable.i35, i64 3 - %37 = load ptr, ptr %vfn.i36, align 8 + %vtable.i34 = load ptr, ptr %36, align 8 + %vfn.i35 = getelementptr inbounds ptr, ptr %vtable.i34, i64 3 + %37 = load ptr, ptr %vfn.i35, align 8 %call.i = invoke noundef i64 %37(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull %magic2.i, i64 noundef 4, i64 noundef 1) to label %invoke.cont.i unwind label %terminate.lpad.i @@ -4108,13 +4116,13 @@ invoke.cont.i: ; preds = %if.then.i %vtable4.i = load ptr, ptr %38, align 8 %vfn5.i = getelementptr inbounds ptr, ptr %vtable4.i, i64 3 %39 = load ptr, ptr %vfn5.i, align 8 - %call7.i = invoke noundef i64 %39(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull %cursor.i64, i64 noundef 4, i64 noundef 1) + %call7.i = invoke noundef i64 %39(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull %cursor.i63, i64 noundef 4, i64 noundef 1) to label %invoke.cont6.i unwind label %terminate.lpad.i invoke.cont6.i: ; preds = %invoke.cont.i %40 = load ptr, ptr %container3.i, align 8 %41 = load ptr, ptr %buffer.i, align 8 - %42 = load i64, ptr %cursor.i64, align 8 + %42 = load i64, ptr %cursor.i63, align 8 %vtable10.i = load ptr, ptr %40, align 8 %vfn11.i = getelementptr inbounds ptr, ptr %vtable10.i, i64 3 %43 = load ptr, ptr %vfn11.i, align 8 diff --git a/bench/assimp/optimized/AssbinLoader.cpp.ll b/bench/assimp/optimized/AssbinLoader.cpp.ll index 02a2a52dd27..286bbd727f3 100644 --- a/bench/assimp/optimized/AssbinLoader.cpp.ll +++ b/bench/assimp/optimized/AssbinLoader.cpp.ll @@ -705,87 +705,26 @@ entry: %d4.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %agg.result, i64 0, i32 15 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %c4.i, i8 0, i64 16, i1 false) store float 1.000000e+00, ptr %d4.i, align 4 + %d1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %agg.result, i64 0, i32 12 %c1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %agg.result, i64 0, i32 8 %b1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %agg.result, i64 0, i32 4 - %d1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %agg.result, i64 0, i32 12 br label %for.cond1.preheader for.cond1.preheader: ; preds = %entry, %for.inc5 - %i.034 = phi i32 [ 0, %entry ], [ %inc6, %for.inc5 ] - switch i32 %i.034, label %for.body3 [ - i32 3, label %for.body3.us - i32 1, label %for.body3.us7 - i32 2, label %for.body3.us21 - ] - -for.body3.us: ; preds = %for.cond1.preheader, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us - %indvars.iv46 = phi i64 [ %indvars.iv.next47, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us ], [ 0, %for.cond1.preheader ] - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %t.i) - %vtable.i.us = load ptr, ptr %stream, align 8 - %vfn.i.us = getelementptr inbounds ptr, ptr %vtable.i.us, i64 2 - %0 = load ptr, ptr %vfn.i.us, align 8 - %call.i.us = call noundef i64 %0(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %t.i, i64 noundef 4, i64 noundef 1) - %cmp.not.i.us = icmp eq i64 %call.i.us, 1 - br i1 %cmp.not.i.us, label %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us, label %if.then.i - -_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us: ; preds = %for.body3.us - %1 = load float, ptr %t.i, align 4 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %t.i) - %arrayidx.us = getelementptr inbounds float, ptr %d1.i, i64 %indvars.iv46 - store float %1, ptr %arrayidx.us, align 4 - %indvars.iv.next47 = add nuw nsw i64 %indvars.iv46, 1 - %exitcond49.not = icmp eq i64 %indvars.iv.next47, 4 - br i1 %exitcond49.not, label %for.inc5, label %for.body3.us, !llvm.loop !4 - -for.body3.us7: ; preds = %for.cond1.preheader, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us13 - %indvars.iv42 = phi i64 [ %indvars.iv.next43, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us13 ], [ 0, %for.cond1.preheader ] - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %t.i) - %vtable.i.us9 = load ptr, ptr %stream, align 8 - %vfn.i.us10 = getelementptr inbounds ptr, ptr %vtable.i.us9, i64 2 - %2 = load ptr, ptr %vfn.i.us10, align 8 - %call.i.us11 = call noundef i64 %2(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %t.i, i64 noundef 4, i64 noundef 1) - %cmp.not.i.us12 = icmp eq i64 %call.i.us11, 1 - br i1 %cmp.not.i.us12, label %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us13, label %if.then.i - -_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us13: ; preds = %for.body3.us7 - %3 = load float, ptr %t.i, align 4 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %t.i) - %arrayidx.us17 = getelementptr inbounds float, ptr %b1.i, i64 %indvars.iv42 - store float %3, ptr %arrayidx.us17, align 4 - %indvars.iv.next43 = add nuw nsw i64 %indvars.iv42, 1 - %exitcond45.not = icmp eq i64 %indvars.iv.next43, 4 - br i1 %exitcond45.not, label %for.inc5, label %for.body3.us7, !llvm.loop !4 - -for.body3.us21: ; preds = %for.cond1.preheader, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us27 - %indvars.iv = phi i64 [ %indvars.iv.next, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us27 ], [ 0, %for.cond1.preheader ] - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %t.i) - %vtable.i.us23 = load ptr, ptr %stream, align 8 - %vfn.i.us24 = getelementptr inbounds ptr, ptr %vtable.i.us23, i64 2 - %4 = load ptr, ptr %vfn.i.us24, align 8 - %call.i.us25 = call noundef i64 %4(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %t.i, i64 noundef 4, i64 noundef 1) - %cmp.not.i.us26 = icmp eq i64 %call.i.us25, 1 - br i1 %cmp.not.i.us26, label %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us27, label %if.then.i - -_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us27: ; preds = %for.body3.us21 - %5 = load float, ptr %t.i, align 4 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %t.i) - %arrayidx.us31 = getelementptr inbounds float, ptr %c1.i, i64 %indvars.iv - store float %5, ptr %arrayidx.us31, align 4 - %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, 4 - br i1 %exitcond.not, label %for.inc5, label %for.body3.us21, !llvm.loop !4 + %i.06 = phi i32 [ 0, %entry ], [ %inc6, %for.inc5 ] + br label %for.body3 -for.body3: ; preds = %for.cond1.preheader, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit - %indvars.iv50 = phi i64 [ %indvars.iv.next51, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit ], [ 0, %for.cond1.preheader ] +for.body3: ; preds = %for.cond1.preheader, %_ZN12aiMatrix4x4tIfEixEj.exit + %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %_ZN12aiMatrix4x4tIfEixEj.exit ] call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %t.i) %vtable.i = load ptr, ptr %stream, align 8 %vfn.i = getelementptr inbounds ptr, ptr %vtable.i, i64 2 - %6 = load ptr, ptr %vfn.i, align 8 - %call.i = call noundef i64 %6(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %t.i, i64 noundef 4, i64 noundef 1) + %0 = load ptr, ptr %vfn.i, align 8 + %call.i = call noundef i64 %0(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %t.i, i64 noundef 4, i64 noundef 1) %cmp.not.i = icmp eq i64 %call.i, 1 br i1 %cmp.not.i, label %_Z4ReadIfET_PN6Assimp8IOStreamE.exit, label %if.then.i -if.then.i: ; preds = %for.body3.us21, %for.body3.us7, %for.body3.us, %for.body3 +if.then.i: ; preds = %for.body3 %exception.i = call ptr @__cxa_allocate_exception(i64 16) #15 invoke void @_ZN17DeadlyImportErrorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception.i, ptr noundef nonnull @.str.13) to label %invoke.cont.i unwind label %lpad.i @@ -795,24 +734,45 @@ invoke.cont.i: ; preds = %if.then.i unreachable lpad.i: ; preds = %if.then.i - %7 = landingpad { ptr, i32 } + %1 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i) #15 - resume { ptr, i32 } %7 + resume { ptr, i32 } %1 _Z4ReadIfET_PN6Assimp8IOStreamE.exit: ; preds = %for.body3 - %8 = load float, ptr %t.i, align 4 + %2 = load float, ptr %t.i, align 4 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %t.i) - %arrayidx = getelementptr inbounds float, ptr %agg.result, i64 %indvars.iv50 - store float %8, ptr %arrayidx, align 4 - %indvars.iv.next51 = add nuw nsw i64 %indvars.iv50, 1 - %exitcond53.not = icmp eq i64 %indvars.iv.next51, 4 - br i1 %exitcond53.not, label %for.inc5, label %for.body3, !llvm.loop !4 + switch i32 %i.06, label %default.unreachable.i [ + i32 0, label %_ZN12aiMatrix4x4tIfEixEj.exit + i32 1, label %sw.bb2.i + i32 2, label %sw.bb3.i + i32 3, label %sw.bb4.i + ] + +sw.bb2.i: ; preds = %_Z4ReadIfET_PN6Assimp8IOStreamE.exit + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +sw.bb3.i: ; preds = %_Z4ReadIfET_PN6Assimp8IOStreamE.exit + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +sw.bb4.i: ; preds = %_Z4ReadIfET_PN6Assimp8IOStreamE.exit + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +default.unreachable.i: ; preds = %_Z4ReadIfET_PN6Assimp8IOStreamE.exit + unreachable + +_ZN12aiMatrix4x4tIfEixEj.exit: ; preds = %_Z4ReadIfET_PN6Assimp8IOStreamE.exit, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i + %retval.0.i = phi ptr [ %d1.i, %sw.bb4.i ], [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %agg.result, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit ] + %arrayidx = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv + store float %2, ptr %arrayidx, align 4 + %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next, 4 + br i1 %exitcond.not, label %for.inc5, label %for.body3, !llvm.loop !4 -for.inc5: ; preds = %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us27, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us13, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit.us, %_Z4ReadIfET_PN6Assimp8IOStreamE.exit - %inc6 = add nuw nsw i32 %i.034, 1 - %exitcond54.not = icmp eq i32 %inc6, 4 - br i1 %exitcond54.not, label %for.end7, label %for.cond1.preheader, !llvm.loop !6 +for.inc5: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit + %inc6 = add nuw nsw i32 %i.06, 1 + %exitcond8.not = icmp eq i32 %inc6, 4 + br i1 %exitcond8.not, label %for.end7, label %for.cond1.preheader, !llvm.loop !6 for.end7: ; preds = %for.inc5 ret void @@ -2309,7 +2269,7 @@ arrayctor.cont.thread: ; preds = %if.else new.ctorloop: ; preds = %if.else %29 = add nsw i64 %27, -12 %30 = urem i64 %29, 12 - %31 = sub nsw i64 %29, %30 + %31 = sub nuw nsw i64 %29, %30 %32 = add nsw i64 %31, 12 call void @llvm.memset.p0.i64(ptr nonnull align 4 %call14, i8 0, i64 %32, i1 false) %mVertices15 = getelementptr inbounds %struct.aiMesh, ptr %mesh, i64 0, i32 3 @@ -2364,7 +2324,7 @@ arrayctor.cont38.thread: ; preds = %if.else27 new.ctorloop32: ; preds = %if.else27 %38 = add nsw i64 %36, -12 %39 = urem i64 %38, 12 - %40 = sub nsw i64 %38, %39 + %40 = sub nuw nsw i64 %38, %39 %41 = add nsw i64 %40, 12 call void @llvm.memset.p0.i64(ptr nonnull align 4 %call30, i8 0, i64 %41, i1 false) %mNormals39 = getelementptr inbounds %struct.aiMesh, ptr %mesh, i64 0, i32 4 @@ -2427,7 +2387,7 @@ _Z9ReadArrayI10aiVector3tIfEEvPN6Assimp8IOStreamEPT_j.exit224.thread: ; preds = new.ctorloop57: ; preds = %if.else52 %49 = add nsw i64 %45, -12 %50 = urem i64 %49, 12 - %51 = sub nsw i64 %49, %50 + %51 = sub nuw nsw i64 %49, %50 %52 = add nsw i64 %51, 12 call void @llvm.memset.p0.i64(ptr nonnull align 4 %call55, i8 0, i64 %52, i1 false) %mTangents64 = getelementptr inbounds %struct.aiMesh, ptr %mesh, i64 0, i32 5 @@ -2464,7 +2424,7 @@ arrayctor.cont77.thread: ; preds = %_Z9ReadArrayI10aiVe new.ctorloop71: ; preds = %_Z9ReadArrayI10aiVector3tIfEEvPN6Assimp8IOStreamEPT_j.exit224 %54 = add nsw i64 %53, -12 %55 = urem i64 %54, 12 - %56 = sub nsw i64 %54, %55 + %56 = sub nuw nsw i64 %54, %55 %57 = add nsw i64 %56, 12 call void @llvm.memset.p0.i64(ptr nonnull align 4 %call69, i8 0, i64 %57, i1 false) %mBitangents78 = getelementptr inbounds %struct.aiMesh, ptr %mesh, i64 0, i32 6 @@ -2613,7 +2573,7 @@ arrayctor.cont141.thread: ; preds = %if.else130 new.ctorloop135: ; preds = %if.else130 %75 = add nsw i64 %73, -12 %76 = urem i64 %75, 12 - %77 = sub nsw i64 %75, %76 + %77 = sub nuw nsw i64 %75, %76 %78 = add nsw i64 %77, 12 call void @llvm.memset.p0.i64(ptr nonnull align 4 %call133, i8 0, i64 %78, i1 false) %arrayidx144 = getelementptr inbounds %struct.aiMesh, ptr %mesh, i64 0, i32 8, i64 %indvars.iv340 diff --git a/bench/assimp/optimized/BlenderLoader.cpp.ll b/bench/assimp/optimized/BlenderLoader.cpp.ll index 35f0dc1878f..a1b05b097d7 100644 --- a/bench/assimp/optimized/BlenderLoader.cpp.ll +++ b/bench/assimp/optimized/BlenderLoader.cpp.ll @@ -6836,7 +6836,7 @@ if.then.i.i.i.cont: ; preds = %if.then.i.i.i.invok _ZNKSt6vectorIP7aiLightSaIS1_EE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i76 %sub.ptr.div.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i, 3 %.sroa.speculated.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i, i64 1) - %add.i.i.i = add i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i + %add.i.i.i = add nsw i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i %cmp7.i.i.i = icmp ult i64 %add.i.i.i, %sub.ptr.div.i.i.i.i %28 = call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 1152921504606846975) %cond.i.i.i = select i1 %cmp7.i.i.i, i64 1152921504606846975, i64 %28 @@ -6959,7 +6959,7 @@ if.else.i91: ; preds = %if.then87 _ZNKSt6vectorIP8aiCameraSaIS1_EE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i91 %sub.ptr.div.i.i.i.i96 = ashr exact i64 %sub.ptr.sub.i.i.i.i94, 3 %.sroa.speculated.i.i.i97 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i96, i64 1) - %add.i.i.i98 = add i64 %.sroa.speculated.i.i.i97, %sub.ptr.div.i.i.i.i96 + %add.i.i.i98 = add nsw i64 %.sroa.speculated.i.i.i97, %sub.ptr.div.i.i.i.i96 %cmp7.i.i.i99 = icmp ult i64 %add.i.i.i98, %sub.ptr.div.i.i.i.i96 %38 = call i64 @llvm.umin.i64(i64 %add.i.i.i98, i64 1152921504606846975) %cond.i.i.i100 = select i1 %cmp7.i.i.i99, i64 1152921504606846975, i64 %38 @@ -7151,9 +7151,9 @@ _ZN6Assimp15BlenderImporter22NotSupportedObjectTypeEPKNS_7Blender6ObjectEPKc.exi if.end104: ; preds = %for.body57, %invoke.cont50, %_ZNSt6vectorIP8aiCameraSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i, %if.then.i89, %_ZNSt6vectorIP7aiLightSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i, %if.then.i74, %_ZN6Assimp15BlenderImporter22NotSupportedObjectTypeEPKNS_7Blender6ObjectEPKc.exit170, %_ZN6Assimp15BlenderImporter22NotSupportedObjectTypeEPKNS_7Blender6ObjectEPKc.exit160, %_ZN6Assimp15BlenderImporter22NotSupportedObjectTypeEPKNS_7Blender6ObjectEPKc.exit150, %_ZN6Assimp15BlenderImporter22NotSupportedObjectTypeEPKNS_7Blender6ObjectEPKc.exit140, %_ZN6Assimp15BlenderImporter22NotSupportedObjectTypeEPKNS_7Blender6ObjectEPKc.exit130, %_ZN6Assimp15BlenderImporter22NotSupportedObjectTypeEPKNS_7Blender6ObjectEPKc.exit, %invoke.cont37, %if.then25, %invoke.cont22 %mTransformation = getelementptr inbounds %struct.aiNode, ptr %call16, i64 0, i32 1 + %d1.i = getelementptr inbounds %struct.aiNode, ptr %call16, i64 0, i32 1, i32 12 %c1.i = getelementptr inbounds %struct.aiNode, ptr %call16, i64 0, i32 1, i32 8 %b1.i = getelementptr inbounds %struct.aiNode, ptr %call16, i64 0, i32 1, i32 4 - %d1.i = getelementptr inbounds %struct.aiNode, ptr %call16, i64 0, i32 1, i32 12 br label %for.cond108.preheader for.cond108.preheader: ; preds = %if.end104, %for.inc123 @@ -7165,10 +7165,11 @@ if.end.i: ; preds = %for.cond108.prehead %arrayidx114 = getelementptr inbounds %"struct.Assimp::Blender::Object", ptr %obj, i64 0, i32 3, i64 %indvars.iv318, i64 %indvars.iv315 %39 = load float, ptr %arrayidx114, align 4 %40 = trunc i64 %indvars.iv315 to i32 - switch i32 %40, label %_ZN12aiMatrix4x4tIfEixEj.exit [ - i32 3, label %sw.bb4.i + switch i32 %40, label %default.unreachable.i [ + i32 0, label %_ZN12aiMatrix4x4tIfEixEj.exit i32 1, label %sw.bb2.i i32 2, label %sw.bb3.i + i32 3, label %sw.bb4.i ] sw.bb2.i: ; preds = %if.end.i @@ -7180,6 +7181,9 @@ sw.bb3.i: ; preds = %if.end.i sw.bb4.i: ; preds = %if.end.i br label %_ZN12aiMatrix4x4tIfEixEj.exit +default.unreachable.i: ; preds = %if.end.i + unreachable + _ZN12aiMatrix4x4tIfEixEj.exit: ; preds = %if.end.i, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i %retval.0.i = phi ptr [ %d1.i, %sw.bb4.i ], [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %mTransformation, %if.end.i ] %arrayidx119 = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv318 @@ -7879,7 +7883,7 @@ if.then.i.i.i: ; preds = %if.else.i _ZNKSt6vectorIP10aiMaterialSaIS1_EE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i %sub.ptr.div.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i, 3 %.sroa.speculated.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i, i64 1) - %add.i.i.i = add i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i + %add.i.i.i = add nsw i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i %cmp7.i.i.i = icmp ult i64 %add.i.i.i, %sub.ptr.div.i.i.i.i %17 = call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 1152921504606846975) %cond.i.i.i = select i1 %cmp7.i.i.i, i64 1152921504606846975, i64 %17 @@ -8667,7 +8671,7 @@ if.then.i.i.i.i: ; preds = %if.else.i.i _ZNKSt6vectorIP9aiTextureSaIS1_EE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %if.else.i.i %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i, 3 %.sroa.speculated.i.i.i.i = tail call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i.i, i64 1) - %add.i.i.i.i = add i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i + %add.i.i.i.i = add nsw i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i %cmp7.i.i.i.i = icmp ult i64 %add.i.i.i.i, %sub.ptr.div.i.i.i.i.i %9 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i.i, i64 1152921504606846975) %cond.i.i.i.i = select i1 %cmp7.i.i.i.i, i64 1152921504606846975, i64 %9 @@ -10242,7 +10246,7 @@ if.then.i.i.i.i: ; preds = %if.else.i.i _ZNKSt6vectorIP6aiMeshSaIS1_EE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %if.else.i.i %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i, 3 %.sroa.speculated.i.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i.i, i64 1) - %add.i.i.i.i = add i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i + %add.i.i.i.i = add nsw i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i %cmp7.i.i.i.i = icmp ult i64 %add.i.i.i.i, %sub.ptr.div.i.i.i.i.i %46 = call i64 @llvm.umin.i64(i64 %add.i.i.i.i, i64 1152921504606846975) %cond.i.i.i.i = select i1 %cmp7.i.i.i.i, i64 1152921504606846975, i64 %46 @@ -17757,7 +17761,7 @@ if.then.i: ; preds = %entry _ZNKSt6vectorIN6Assimp7Blender13FileBlockHeadESaIS2_EE12_M_check_lenEmPKc.exit: ; preds = %entry %sub.ptr.div.i.i = sdiv exact i64 %sub.ptr.sub.i.i, 72 %.sroa.speculated.i = tail call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i, i64 1) - %add.i = add i64 %.sroa.speculated.i, %sub.ptr.div.i.i + %add.i = add nsw i64 %.sroa.speculated.i, %sub.ptr.div.i.i %cmp7.i = icmp ult i64 %add.i, %sub.ptr.div.i.i %2 = tail call i64 @llvm.umin.i64(i64 %add.i, i64 128102389400760775) %cond.i = select i1 %cmp7.i, i64 128102389400760775, i64 %2 @@ -18335,7 +18339,7 @@ land.lhs.true: ; preds = %while.end br i1 %cmp20, label %if.then21, label %if.end35 if.then21: ; preds = %land.lhs.true - %add22 = shl i64 %__holeIndex.addr.0.lcssa, 1 + %add22 = shl nsw i64 %__holeIndex.addr.0.lcssa, 1 %sub25 = or disjoint i64 %add22, 1 %add.ptr.i20 = getelementptr inbounds %"struct.Assimp::Blender::FileBlockHead", ptr %__first.coerce, i64 %sub25 %add.ptr.i21 = getelementptr inbounds %"struct.Assimp::Blender::FileBlockHead", ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa diff --git a/bench/assimp/optimized/COBLoader.cpp.ll b/bench/assimp/optimized/COBLoader.cpp.ll index 7508b1b45f4..dac4fe000f0 100644 --- a/bench/assimp/optimized/COBLoader.cpp.ll +++ b/bench/assimp/optimized/COBLoader.cpp.ll @@ -8436,13 +8436,13 @@ land.rhs.i23: ; preds = %if.else for.cond18.preheader: ; preds = %land.rhs.i23 %transform = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6 + %d1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 12 %c1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 8 %b1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 4 - %d1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 12 br label %land.rhs land.rhs: ; preds = %for.cond18.preheader, %for.inc30 - %y.092 = phi i32 [ 0, %for.cond18.preheader ], [ %inc31, %for.inc30 ] + %y.058 = phi i32 [ 0, %for.cond18.preheader ], [ %inc31, %for.inc30 ] %call19 = call noundef nonnull align 8 dereferenceable(51) ptr @_ZN6Assimp12LineSplitterppEv(ptr noundef nonnull align 8 dereferenceable(51) %splitter) %mStream.i30 = getelementptr inbounds %"class.Assimp::LineSplitter", ptr %call19, i64 0, i32 2 %6 = load ptr, ptr %mStream.i30, align 8 @@ -8459,108 +8459,17 @@ land.rhs: ; preds = %for.cond18.preheade for.body21: ; preds = %land.rhs %call23 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %mCur.i) #22 - switch i32 %y.092, label %while.cond.i.i.preheader [ - i32 3, label %while.cond.i.i.preheader.us - i32 1, label %while.cond.i.i.preheader.us59 - i32 2, label %while.cond.i.i.preheader.us76 - ] - -while.cond.i.i.preheader.us: ; preds = %for.body21, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us - %indvars.iv102 = phi i64 [ %indvars.iv.next103, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us ], [ 0, %for.body21 ] - %s.056.us = phi ptr [ %call.i40.us, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us ], [ %call23, %for.body21 ] - br label %while.cond.i.i.us - -while.cond.i.i.us: ; preds = %while.body.i.i.us, %while.cond.i.i.preheader.us - %in.addr.0.i.i.us = phi ptr [ %incdec.ptr.i.i39.us, %while.body.i.i.us ], [ %s.056.us, %while.cond.i.i.preheader.us ] - %9 = load i8, ptr %in.addr.0.i.i.us, align 1 - switch i8 %9, label %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us [ - i8 32, label %while.body.i.i.us - i8 9, label %while.body.i.i.us - ] - -while.body.i.i.us: ; preds = %while.cond.i.i.us, %while.cond.i.i.us - %incdec.ptr.i.i39.us = getelementptr inbounds i8, ptr %in.addr.0.i.i.us, i64 1 - br label %while.cond.i.i.us, !llvm.loop !40 - -_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us: ; preds = %while.cond.i.i.us - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %ret.i) - store float 0.000000e+00, ptr %ret.i, align 4 - %call.i40.us = call noundef ptr @_ZN6Assimp17fast_atoreal_moveIf17DeadlyImportErrorEEPKcS3_RT_b(ptr noundef nonnull %in.addr.0.i.i.us, ptr noundef nonnull align 4 dereferenceable(4) %ret.i, i1 noundef zeroext true) - %10 = load float, ptr %ret.i, align 4 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %ret.i) - %arrayidx.us = getelementptr inbounds float, ptr %d1.i, i64 %indvars.iv102 - store float %10, ptr %arrayidx.us, align 4 - %indvars.iv.next103 = add nuw nsw i64 %indvars.iv102, 1 - %exitcond105.not = icmp eq i64 %indvars.iv.next103, 4 - br i1 %exitcond105.not, label %for.inc30, label %while.cond.i.i.preheader.us, !llvm.loop !74 - -while.cond.i.i.preheader.us59: ; preds = %for.body21, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us66 - %indvars.iv98 = phi i64 [ %indvars.iv.next99, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us66 ], [ 0, %for.body21 ] - %s.056.us61 = phi ptr [ %call.i40.us68, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us66 ], [ %call23, %for.body21 ] - br label %while.cond.i.i.us62 - -while.cond.i.i.us62: ; preds = %while.body.i.i.us64, %while.cond.i.i.preheader.us59 - %in.addr.0.i.i.us63 = phi ptr [ %incdec.ptr.i.i39.us65, %while.body.i.i.us64 ], [ %s.056.us61, %while.cond.i.i.preheader.us59 ] - %11 = load i8, ptr %in.addr.0.i.i.us63, align 1 - switch i8 %11, label %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us66 [ - i8 32, label %while.body.i.i.us64 - i8 9, label %while.body.i.i.us64 - ] + br label %while.cond.i.i.preheader -while.body.i.i.us64: ; preds = %while.cond.i.i.us62, %while.cond.i.i.us62 - %incdec.ptr.i.i39.us65 = getelementptr inbounds i8, ptr %in.addr.0.i.i.us63, i64 1 - br label %while.cond.i.i.us62, !llvm.loop !40 - -_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us66: ; preds = %while.cond.i.i.us62 - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %ret.i) - store float 0.000000e+00, ptr %ret.i, align 4 - %call.i40.us68 = call noundef ptr @_ZN6Assimp17fast_atoreal_moveIf17DeadlyImportErrorEEPKcS3_RT_b(ptr noundef nonnull %in.addr.0.i.i.us63, ptr noundef nonnull align 4 dereferenceable(4) %ret.i, i1 noundef zeroext true) - %12 = load float, ptr %ret.i, align 4 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %ret.i) - %arrayidx.us72 = getelementptr inbounds float, ptr %b1.i, i64 %indvars.iv98 - store float %12, ptr %arrayidx.us72, align 4 - %indvars.iv.next99 = add nuw nsw i64 %indvars.iv98, 1 - %exitcond101.not = icmp eq i64 %indvars.iv.next99, 4 - br i1 %exitcond101.not, label %for.inc30, label %while.cond.i.i.preheader.us59, !llvm.loop !74 - -while.cond.i.i.preheader.us76: ; preds = %for.body21, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us83 - %indvars.iv = phi i64 [ %indvars.iv.next, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us83 ], [ 0, %for.body21 ] - %s.056.us78 = phi ptr [ %call.i40.us85, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us83 ], [ %call23, %for.body21 ] - br label %while.cond.i.i.us79 - -while.cond.i.i.us79: ; preds = %while.body.i.i.us81, %while.cond.i.i.preheader.us76 - %in.addr.0.i.i.us80 = phi ptr [ %incdec.ptr.i.i39.us82, %while.body.i.i.us81 ], [ %s.056.us78, %while.cond.i.i.preheader.us76 ] - %13 = load i8, ptr %in.addr.0.i.i.us80, align 1 - switch i8 %13, label %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us83 [ - i8 32, label %while.body.i.i.us81 - i8 9, label %while.body.i.i.us81 - ] - -while.body.i.i.us81: ; preds = %while.cond.i.i.us79, %while.cond.i.i.us79 - %incdec.ptr.i.i39.us82 = getelementptr inbounds i8, ptr %in.addr.0.i.i.us80, i64 1 - br label %while.cond.i.i.us79, !llvm.loop !40 - -_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us83: ; preds = %while.cond.i.i.us79 - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %ret.i) - store float 0.000000e+00, ptr %ret.i, align 4 - %call.i40.us85 = call noundef ptr @_ZN6Assimp17fast_atoreal_moveIf17DeadlyImportErrorEEPKcS3_RT_b(ptr noundef nonnull %in.addr.0.i.i.us80, ptr noundef nonnull align 4 dereferenceable(4) %ret.i, i1 noundef zeroext true) - %14 = load float, ptr %ret.i, align 4 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %ret.i) - %arrayidx.us89 = getelementptr inbounds float, ptr %c1.i, i64 %indvars.iv - store float %14, ptr %arrayidx.us89, align 4 - %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, 4 - br i1 %exitcond.not, label %for.inc30, label %while.cond.i.i.preheader.us76, !llvm.loop !74 - -while.cond.i.i.preheader: ; preds = %for.body21, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit - %indvars.iv106 = phi i64 [ %indvars.iv.next107, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit ], [ 0, %for.body21 ] - %s.056 = phi ptr [ %call.i40, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit ], [ %call23, %for.body21 ] +while.cond.i.i.preheader: ; preds = %for.body21, %_ZN12aiMatrix4x4tIfEixEj.exit + %indvars.iv = phi i64 [ 0, %for.body21 ], [ %indvars.iv.next, %_ZN12aiMatrix4x4tIfEixEj.exit ] + %s.056 = phi ptr [ %call23, %for.body21 ], [ %call.i40, %_ZN12aiMatrix4x4tIfEixEj.exit ] br label %while.cond.i.i while.cond.i.i: ; preds = %while.cond.i.i.preheader, %while.body.i.i %in.addr.0.i.i = phi ptr [ %incdec.ptr.i.i39, %while.body.i.i ], [ %s.056, %while.cond.i.i.preheader ] - %15 = load i8, ptr %in.addr.0.i.i, align 1 - switch i8 %15, label %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit [ + %9 = load i8, ptr %in.addr.0.i.i, align 1 + switch i8 %9, label %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit [ i8 32, label %while.body.i.i i8 9, label %while.body.i.i ] @@ -8573,28 +8482,49 @@ _ZN6Assimp10SkipSpacesIcEEbPPKT_.exit: ; preds = %while.cond.i.i call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %ret.i) store float 0.000000e+00, ptr %ret.i, align 4 %call.i40 = call noundef ptr @_ZN6Assimp17fast_atoreal_moveIf17DeadlyImportErrorEEPKcS3_RT_b(ptr noundef nonnull %in.addr.0.i.i, ptr noundef nonnull align 4 dereferenceable(4) %ret.i, i1 noundef zeroext true) - %16 = load float, ptr %ret.i, align 4 + %10 = load float, ptr %ret.i, align 4 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %ret.i) - %arrayidx = getelementptr inbounds float, ptr %transform, i64 %indvars.iv106 - store float %16, ptr %arrayidx, align 4 - %indvars.iv.next107 = add nuw nsw i64 %indvars.iv106, 1 - %exitcond109.not = icmp eq i64 %indvars.iv.next107, 4 - br i1 %exitcond109.not, label %for.inc30, label %while.cond.i.i.preheader, !llvm.loop !74 + switch i32 %y.058, label %default.unreachable.i [ + i32 0, label %_ZN12aiMatrix4x4tIfEixEj.exit + i32 1, label %sw.bb2.i + i32 2, label %sw.bb3.i + i32 3, label %sw.bb4.i + ] + +sw.bb2.i: ; preds = %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +sw.bb3.i: ; preds = %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +sw.bb4.i: ; preds = %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +default.unreachable.i: ; preds = %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit + unreachable + +_ZN12aiMatrix4x4tIfEixEj.exit: ; preds = %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i + %retval.0.i = phi ptr [ %d1.i, %sw.bb4.i ], [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %transform, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit ] + %arrayidx = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv + store float %10, ptr %arrayidx, align 4 + %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next, 4 + br i1 %exitcond.not, label %for.inc30, label %while.cond.i.i.preheader, !llvm.loop !74 -for.inc30: ; preds = %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us83, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us66, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit.us, %_ZN6Assimp10SkipSpacesIcEEbPPKT_.exit - %inc31 = add nuw nsw i32 %y.092, 1 - %exitcond110.not = icmp eq i32 %inc31, 4 - br i1 %exitcond110.not, label %for.end36, label %land.rhs, !llvm.loop !75 +for.inc30: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit + %inc31 = add nuw nsw i32 %y.058, 1 + %exitcond61.not = icmp eq i32 %inc31, 4 + br i1 %exitcond61.not, label %for.end36, label %land.rhs, !llvm.loop !75 for.inc34: ; preds = %for.inc.i, %if.else, %land.rhs.i23, %invoke.cont %call35 = call noundef nonnull align 8 dereferenceable(51) ptr @_ZN6Assimp12LineSplitterppEv(ptr noundef nonnull align 8 dereferenceable(51) %splitter) - %17 = load ptr, ptr %mStream.i, align 8 - %mEnd.i.i = getelementptr inbounds %"class.Assimp::StreamReader", ptr %17, i64 0, i32 3 - %18 = load ptr, ptr %mEnd.i.i, align 8 - %mCurrent.i.i = getelementptr inbounds %"class.Assimp::StreamReader", ptr %17, i64 0, i32 2 - %19 = load ptr, ptr %mCurrent.i.i, align 8 - %sub.ptr.lhs.cast.i.i = ptrtoint ptr %18 to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %19 to i64 + %11 = load ptr, ptr %mStream.i, align 8 + %mEnd.i.i = getelementptr inbounds %"class.Assimp::StreamReader", ptr %11, i64 0, i32 3 + %12 = load ptr, ptr %mEnd.i.i, align 8 + %mCurrent.i.i = getelementptr inbounds %"class.Assimp::StreamReader", ptr %11, i64 0, i32 2 + %13 = load ptr, ptr %mCurrent.i.i, align 8 + %sub.ptr.lhs.cast.i.i = ptrtoint ptr %12 to i64 + %sub.ptr.rhs.cast.i.i = ptrtoint ptr %13 to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %conv2.i.i = and i64 %sub.ptr.sub.i.i, 4294967295 %cmp.i.not = icmp eq i64 %conv2.i.i, 0 @@ -9981,7 +9911,7 @@ invoke.cont.i.i: ; preds = %if.then.i.i unreachable common.resume: ; preds = %lpad, %lpad.i.i23, %lpad.i16, %lpad.i, %lpad.i.i - %common.resume.op = phi { ptr, i32 } [ %3, %lpad.i.i ], [ %5, %lpad.i ], [ %8, %lpad.i16 ], [ %20, %lpad.i.i23 ], [ %22, %lpad ] + %common.resume.op = phi { ptr, i32 } [ %3, %lpad.i.i ], [ %5, %lpad.i ], [ %8, %lpad.i16 ], [ %23, %lpad.i.i23 ], [ %24, %lpad ] resume { ptr, i32 } %common.resume.op lpad.i.i: ; preds = %if.then.i.i @@ -10059,21 +9989,22 @@ _ZN6Assimp12StreamReaderILb0ELb0EE6IncPtrEl.exit: ; preds = %invoke.cont8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %ref.tmp11.sroa.6.0.transform.sroa_idx, i8 0, i64 16, i1 false) %ref.tmp11.sroa.7.0.transform.sroa_idx = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 15 store float 1.000000e+00, ptr %ref.tmp11.sroa.7.0.transform.sroa_idx, align 4 + %d1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 12 %c1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 8 %b1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 4 - %d1.i = getelementptr inbounds %"struct.Assimp::COB::Node", ptr %msh, i64 0, i32 6, i32 12 br label %for.cond12.preheader for.cond12.preheader: ; preds = %_ZN6Assimp12StreamReaderILb0ELb0EE6IncPtrEl.exit, %for.inc18 - %y.051 = phi i32 [ 0, %_ZN6Assimp12StreamReaderILb0ELb0EE6IncPtrEl.exit ], [ %inc19, %for.inc18 ] - switch i32 %y.051, label %for.body14 [ - i32 3, label %for.body14.us + %y.063 = phi i32 [ 0, %_ZN6Assimp12StreamReaderILb0ELb0EE6IncPtrEl.exit ], [ %inc19, %for.inc18 ] + switch i32 %y.063, label %for.body14 [ + i32 0, label %for.body14.us i32 1, label %for.body14.us28 i32 2, label %for.body14.us40 + i32 3, label %for.body14.us52 ] for.body14.us: ; preds = %for.cond12.preheader, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us - %indvars.iv63 = phi i64 [ %indvars.iv.next64, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us ], [ 0, %for.cond12.preheader ] + %indvars.iv79 = phi i64 [ %indvars.iv.next80, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us ], [ 0, %for.cond12.preheader ] %9 = load ptr, ptr %mCurrent.i.i, align 8 %add.ptr.i.i18.us = getelementptr inbounds i8, ptr %9, i64 4 %10 = load ptr, ptr %mLimit.i.i, align 8 @@ -10083,14 +10014,14 @@ for.body14.us: ; preds = %for.cond12.preheade _ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us: ; preds = %for.body14.us %11 = load float, ptr %9, align 1 store ptr %add.ptr.i.i18.us, ptr %mCurrent.i.i, align 8 - %arrayidx.us = getelementptr inbounds float, ptr %d1.i, i64 %indvars.iv63 + %arrayidx.us = getelementptr inbounds float, ptr %transform, i64 %indvars.iv79 store float %11, ptr %arrayidx.us, align 4 - %indvars.iv.next64 = add nuw nsw i64 %indvars.iv63, 1 - %exitcond66.not = icmp eq i64 %indvars.iv.next64, 4 - br i1 %exitcond66.not, label %for.inc18, label %for.body14.us, !llvm.loop !92 + %indvars.iv.next80 = add nuw nsw i64 %indvars.iv79, 1 + %exitcond82.not = icmp eq i64 %indvars.iv.next80, 4 + br i1 %exitcond82.not, label %for.inc18, label %for.body14.us, !llvm.loop !92 for.body14.us28: ; preds = %for.cond12.preheader, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us32 - %indvars.iv59 = phi i64 [ %indvars.iv.next60, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us32 ], [ 0, %for.cond12.preheader ] + %indvars.iv75 = phi i64 [ %indvars.iv.next76, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us32 ], [ 0, %for.cond12.preheader ] %12 = load ptr, ptr %mCurrent.i.i, align 8 %add.ptr.i.i18.us30 = getelementptr inbounds i8, ptr %12, i64 4 %13 = load ptr, ptr %mLimit.i.i, align 8 @@ -10100,14 +10031,14 @@ for.body14.us28: ; preds = %for.cond12.preheade _ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us32: ; preds = %for.body14.us28 %14 = load float, ptr %12, align 1 store ptr %add.ptr.i.i18.us30, ptr %mCurrent.i.i, align 8 - %arrayidx.us36 = getelementptr inbounds float, ptr %b1.i, i64 %indvars.iv59 + %arrayidx.us36 = getelementptr inbounds float, ptr %b1.i, i64 %indvars.iv75 store float %14, ptr %arrayidx.us36, align 4 - %indvars.iv.next60 = add nuw nsw i64 %indvars.iv59, 1 - %exitcond62.not = icmp eq i64 %indvars.iv.next60, 4 - br i1 %exitcond62.not, label %for.inc18, label %for.body14.us28, !llvm.loop !92 + %indvars.iv.next76 = add nuw nsw i64 %indvars.iv75, 1 + %exitcond78.not = icmp eq i64 %indvars.iv.next76, 4 + br i1 %exitcond78.not, label %for.inc18, label %for.body14.us28, !llvm.loop !92 for.body14.us40: ; preds = %for.cond12.preheader, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us44 - %indvars.iv = phi i64 [ %indvars.iv.next, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us44 ], [ 0, %for.cond12.preheader ] + %indvars.iv71 = phi i64 [ %indvars.iv.next72, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us44 ], [ 0, %for.cond12.preheader ] %15 = load ptr, ptr %mCurrent.i.i, align 8 %add.ptr.i.i18.us42 = getelementptr inbounds i8, ptr %15, i64 4 %16 = load ptr, ptr %mLimit.i.i, align 8 @@ -10117,21 +10048,38 @@ for.body14.us40: ; preds = %for.cond12.preheade _ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us44: ; preds = %for.body14.us40 %17 = load float, ptr %15, align 1 store ptr %add.ptr.i.i18.us42, ptr %mCurrent.i.i, align 8 - %arrayidx.us48 = getelementptr inbounds float, ptr %c1.i, i64 %indvars.iv + %arrayidx.us48 = getelementptr inbounds float, ptr %c1.i, i64 %indvars.iv71 store float %17, ptr %arrayidx.us48, align 4 - %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, 4 - br i1 %exitcond.not, label %for.inc18, label %for.body14.us40, !llvm.loop !92 + %indvars.iv.next72 = add nuw nsw i64 %indvars.iv71, 1 + %exitcond74.not = icmp eq i64 %indvars.iv.next72, 4 + br i1 %exitcond74.not, label %for.inc18, label %for.body14.us40, !llvm.loop !92 -for.body14: ; preds = %for.cond12.preheader, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit - %indvars.iv67 = phi i64 [ %indvars.iv.next68, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit ], [ 0, %for.cond12.preheader ] +for.body14.us52: ; preds = %for.cond12.preheader, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us56 + %indvars.iv = phi i64 [ %indvars.iv.next, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us56 ], [ 0, %for.cond12.preheader ] %18 = load ptr, ptr %mCurrent.i.i, align 8 - %add.ptr.i.i18 = getelementptr inbounds i8, ptr %18, i64 4 + %add.ptr.i.i18.us54 = getelementptr inbounds i8, ptr %18, i64 4 %19 = load ptr, ptr %mLimit.i.i, align 8 - %cmp.i.i20 = icmp ugt ptr %add.ptr.i.i18, %19 - br i1 %cmp.i.i20, label %if.then.i.i21, label %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit + %cmp.i.i20.us55 = icmp ugt ptr %add.ptr.i.i18.us54, %19 + br i1 %cmp.i.i20.us55, label %if.then.i.i21, label %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us56 + +_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us56: ; preds = %for.body14.us52 + %20 = load float, ptr %18, align 1 + store ptr %add.ptr.i.i18.us54, ptr %mCurrent.i.i, align 8 + %arrayidx.us60 = getelementptr inbounds float, ptr %d1.i, i64 %indvars.iv + store float %20, ptr %arrayidx.us60, align 4 + %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next, 4 + br i1 %exitcond.not, label %for.inc18, label %for.body14.us52, !llvm.loop !92 -if.then.i.i21: ; preds = %for.body14.us40, %for.body14.us28, %for.body14.us, %for.body14 +for.body14: ; preds = %for.cond12.preheader + %21 = load ptr, ptr %mCurrent.i.i, align 8 + %add.ptr.i.i18 = getelementptr inbounds i8, ptr %21, i64 4 + %22 = load ptr, ptr %mLimit.i.i, align 8 + %cmp.i.i20 = icmp ugt ptr %add.ptr.i.i18, %22 + call void @llvm.assume(i1 %cmp.i.i20) + br label %if.then.i.i21 + +if.then.i.i21: ; preds = %for.body14.us52, %for.body14.us40, %for.body14.us28, %for.body14.us, %for.body14 %exception.i.i22 = call ptr @__cxa_allocate_exception(i64 16) #22 invoke void @_ZN17DeadlyImportErrorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception.i.i22, ptr noundef nonnull @.str.105) to label %invoke.cont.i.i24 unwind label %lpad.i.i23 @@ -10141,30 +10089,21 @@ invoke.cont.i.i24: ; preds = %if.then.i.i21 unreachable lpad.i.i23: ; preds = %if.then.i.i21 - %20 = landingpad { ptr, i32 } + %23 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i22) #22 br label %common.resume -_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit: ; preds = %for.body14 - %21 = load float, ptr %18, align 1 - store ptr %add.ptr.i.i18, ptr %mCurrent.i.i, align 8 - %arrayidx = getelementptr inbounds float, ptr %transform, i64 %indvars.iv67 - store float %21, ptr %arrayidx, align 4 - %indvars.iv.next68 = add nuw nsw i64 %indvars.iv67, 1 - %exitcond70.not = icmp eq i64 %indvars.iv.next68, 4 - br i1 %exitcond70.not, label %for.inc18, label %for.body14, !llvm.loop !92 - lpad: ; preds = %invoke.cont6, %invoke.cont, %_ZN6Assimp9Formatter15basic_formatterIcSt11char_traitsIcESaIcEEC2INSt7__cxx1112basic_stringIcS3_S4_EEEERKT_.exit - %22 = landingpad { ptr, i32 } + %24 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %ref.tmp2) #22 br label %common.resume -for.inc18: ; preds = %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us44, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us32, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit - %inc19 = add nuw nsw i32 %y.051, 1 - %exitcond71.not = icmp eq i32 %inc19, 3 - br i1 %exitcond71.not, label %for.end20, label %for.cond12.preheader, !llvm.loop !93 +for.inc18: ; preds = %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us56, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us44, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us32, %_ZN6Assimp12StreamReaderILb0ELb0EE5GetF4Ev.exit.us + %inc19 = add nuw nsw i32 %y.063, 1 + %exitcond83.not = icmp eq i32 %inc19, 3 + br i1 %exitcond83.not, label %for.end20, label %for.cond12.preheader, !llvm.loop !93 for.end20: ; preds = %for.inc18 ret void diff --git a/bench/assimp/optimized/ColladaExporter.cpp.ll b/bench/assimp/optimized/ColladaExporter.cpp.ll index 81fc88e9d1d..0da71561e35 100644 --- a/bench/assimp/optimized/ColladaExporter.cpp.ll +++ b/bench/assimp/optimized/ColladaExporter.cpp.ll @@ -9430,17 +9430,17 @@ invoke.cont180: ; preds = %invoke.cont177 for.cond.preheader: ; preds = %invoke.cont180 %7 = load i32, ptr %mNumBones, align 8 - %cmp185478.not = icmp eq i32 %7, 0 - br i1 %cmp185478.not, label %for.end, label %for.body.lr.ph + %cmp185483.not = icmp eq i32 %7, 0 + br i1 %cmp185483.not, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %for.cond.preheader %mBones = getelementptr inbounds %struct.aiMesh, ptr %2, i64 0, i32 12 br label %for.body for.body: ; preds = %for.body.lr.ph, %invoke.cont193 - %i.0479 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %invoke.cont193 ] + %i.0484 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %invoke.cont193 ] %8 = load ptr, ptr %mBones, align 8 - %arrayidx188 = getelementptr inbounds ptr, ptr %8, i64 %i.0479 + %arrayidx188 = getelementptr inbounds ptr, ptr %8, i64 %i.0484 %9 = load ptr, ptr %arrayidx188, align 8 %10 = load ptr, ptr %mScene, align 8, !noalias !29 %mRootNode.i = getelementptr inbounds %struct.aiScene, ptr %10, i64 0, i32 1 @@ -9467,7 +9467,7 @@ invoke.cont191: ; preds = %invoke.cont189 invoke.cont193: ; preds = %invoke.cont191 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #22 - %inc = add nuw nsw i64 %i.0479, 1 + %inc = add nuw nsw i64 %i.0484, 1 %12 = load i32, ptr %mNumBones, align 8 %conv = zext i32 %12 to i64 %cmp185 = icmp ult i64 %inc, %conv @@ -9479,12 +9479,12 @@ lpad: ; preds = %if.end br label %ehcleanup657 lpad5.loopexit: ; preds = %if.end.i - %lpad.loopexit449 = landingpad { ptr, i32 } + %lpad.loopexit448 = landingpad { ptr, i32 } cleanup br label %ehcleanup656 lpad5.loopexit.split-lp: ; preds = %invoke.cont, %invoke.cont6, %invoke.cont7, %invoke.cont9, %invoke.cont11, %invoke.cont15, %invoke.cont17, %invoke.cont19, %invoke.cont23, %invoke.cont27, %invoke.cont29, %invoke.cont31, %invoke.cont33, %invoke.cont38, %invoke.cont42, %invoke.cont44, %invoke.cont49, %invoke.cont53, %invoke.cont55, %invoke.cont57, %invoke.cont59, %invoke.cont61, %invoke.cont63, %invoke.cont65, %invoke.cont67, %invoke.cont70, %invoke.cont75, %invoke.cont77, %invoke.cont79, %invoke.cont81, %invoke.cont83, %invoke.cont85, %invoke.cont87, %invoke.cont89, %invoke.cont92, %invoke.cont97, %invoke.cont99, %invoke.cont101, %invoke.cont103, %invoke.cont105, %invoke.cont107, %invoke.cont109, %invoke.cont111, %invoke.cont114, %invoke.cont119, %invoke.cont121, %invoke.cont123, %invoke.cont125, %invoke.cont127, %invoke.cont129, %invoke.cont131, %invoke.cont133, %invoke.cont138, %invoke.cont142, %invoke.cont144, %invoke.cont147, %invoke.cont152, %invoke.cont154, %invoke.cont156, %invoke.cont158, %invoke.cont160, %invoke.cont162, %invoke.cont167, %invoke.cont171, %invoke.cont173, %invoke.cont175, %invoke.cont177, %invoke.cont180, %for.end, %invoke.cont197, %invoke.cont200, %invoke.cont205, %invoke.cont207, %invoke.cont212, %invoke.cont216, %invoke.cont218, %invoke.cont220, %invoke.cont222, %invoke.cont225, %invoke.cont227, %invoke.cont229, %invoke.cont231, %invoke.cont236, %invoke.cont240, %invoke.cont242, %invoke.cont247, %invoke.cont251, %invoke.cont253, %invoke.cont258, %invoke.cont262, %invoke.cont264, %invoke.cont269, %invoke.cont273, %invoke.cont275, %invoke.cont21, %invoke.cont36, %invoke.cont47, %invoke.cont136, %invoke.cont165, %invoke.cont210, %invoke.cont234, %invoke.cont245, %invoke.cont256, %invoke.cont267 - %lpad.loopexit.split-lp450 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp449 = landingpad { ptr, i32 } cleanup br label %ehcleanup656 @@ -9644,8 +9644,8 @@ _ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i: ; preds = %_ZNSt12_Vector _ZNSt6vectorIfSaIfEE7reserveEm.exit: ; preds = %invoke.cont278, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i %bind_poses.sroa.26.0 = phi ptr [ %add.ptr21.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i ], [ null, %invoke.cont278 ] %bind_poses.sroa.12.0 = phi ptr [ %call5.i.i.i.i115, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i ], [ null, %invoke.cont278 ] - %cmp287484.not = icmp eq i32 %16, 0 - br i1 %cmp287484.not, label %for.end314, label %for.cond289.preheader.lr.ph + %cmp287489.not = icmp eq i32 %16, 0 + br i1 %cmp287489.not, label %for.end314, label %for.cond289.preheader.lr.ph for.cond289.preheader.lr.ph: ; preds = %_ZNSt6vectorIfSaIfEE7reserveEm.exit %mBones294 = getelementptr inbounds %struct.aiMesh, ptr %2, i64 0, i32 12 @@ -9653,56 +9653,60 @@ for.cond289.preheader.lr.ph: ; preds = %_ZNSt6vectorIfSaIfE for.cond289.preheader: ; preds = %for.cond289.preheader.lr.ph, %for.inc312 %indvars.iv = phi i64 [ 0, %for.cond289.preheader.lr.ph ], [ %indvars.iv.next, %for.inc312 ] - %bind_poses.sroa.0.1487 = phi ptr [ %bind_poses.sroa.12.0, %for.cond289.preheader.lr.ph ], [ %bind_poses.sroa.0.3, %for.inc312 ] - %bind_poses.sroa.12.1486 = phi ptr [ %bind_poses.sroa.12.0, %for.cond289.preheader.lr.ph ], [ %bind_poses.sroa.12.3, %for.inc312 ] - %bind_poses.sroa.26.1485 = phi ptr [ %bind_poses.sroa.26.0, %for.cond289.preheader.lr.ph ], [ %bind_poses.sroa.26.3, %for.inc312 ] + %bind_poses.sroa.0.1492 = phi ptr [ %bind_poses.sroa.12.0, %for.cond289.preheader.lr.ph ], [ %bind_poses.sroa.0.3, %for.inc312 ] + %bind_poses.sroa.12.1491 = phi ptr [ %bind_poses.sroa.12.0, %for.cond289.preheader.lr.ph ], [ %bind_poses.sroa.12.3, %for.inc312 ] + %bind_poses.sroa.26.1490 = phi ptr [ %bind_poses.sroa.26.0, %for.cond289.preheader.lr.ph ], [ %bind_poses.sroa.26.3, %for.inc312 ] br label %if.end.i117 if.end.i117: ; preds = %for.cond289.preheader, %invoke.cont306 - %j.0483 = phi i32 [ 0, %for.cond289.preheader ], [ %inc310, %invoke.cont306 ] - %bind_poses.sroa.0.2482 = phi ptr [ %bind_poses.sroa.0.1487, %for.cond289.preheader ], [ %bind_poses.sroa.0.3, %invoke.cont306 ] - %bind_poses.sroa.12.2481 = phi ptr [ %bind_poses.sroa.12.1486, %for.cond289.preheader ], [ %bind_poses.sroa.12.3, %invoke.cont306 ] - %bind_poses.sroa.26.2480 = phi ptr [ %bind_poses.sroa.26.1485, %for.cond289.preheader ], [ %bind_poses.sroa.26.3, %invoke.cont306 ] + %j.0488 = phi i32 [ 0, %for.cond289.preheader ], [ %inc310, %invoke.cont306 ] + %bind_poses.sroa.0.2487 = phi ptr [ %bind_poses.sroa.0.1492, %for.cond289.preheader ], [ %bind_poses.sroa.0.3, %invoke.cont306 ] + %bind_poses.sroa.12.2486 = phi ptr [ %bind_poses.sroa.12.1491, %for.cond289.preheader ], [ %bind_poses.sroa.12.3, %invoke.cont306 ] + %bind_poses.sroa.26.2485 = phi ptr [ %bind_poses.sroa.26.1490, %for.cond289.preheader ], [ %bind_poses.sroa.26.3, %invoke.cont306 ] %17 = load ptr, ptr %mBones294, align 8 %arrayidx295 = getelementptr inbounds ptr, ptr %17, i64 %indvars.iv %18 = load ptr, ptr %arrayidx295, align 8 %mOffsetMatrix = getelementptr inbounds %struct.aiBone, ptr %18, i64 0, i32 5 - switch i32 %j.0483, label %if.then.i341 [ - i32 3, label %if.end.i119.thread - i32 1, label %if.end.i119.thread430 - i32 2, label %if.end.i119.thread433 + switch i32 %j.0488, label %default.unreachable.i [ + i32 0, label %if.then.i342 + i32 1, label %sw.bb2.i125 + i32 2, label %sw.bb3.i123 + i32 3, label %sw.bb4.i120 ] -if.end.i119.thread430: ; preds = %if.end.i117 +default.unreachable.i: ; preds = %if.end.i117 + unreachable + +sw.bb2.i125: ; preds = %if.end.i117 %b1.i = getelementptr inbounds %struct.aiBone, ptr %18, i64 0, i32 5, i32 4 - br label %if.then.i341 + br label %if.then.i342 -if.end.i119.thread433: ; preds = %if.end.i117 +sw.bb3.i123: ; preds = %if.end.i117 %c1.i = getelementptr inbounds %struct.aiBone, ptr %18, i64 0, i32 5, i32 8 - br label %if.then.i341 + br label %if.then.i342 -if.end.i119.thread: ; preds = %if.end.i117 +sw.bb4.i120: ; preds = %if.end.i117 %d1.i = getelementptr inbounds %struct.aiBone, ptr %18, i64 0, i32 5, i32 12 - br label %if.then.i341 - -if.then.i341: ; preds = %if.end.i119.thread, %if.end.i119.thread433, %if.end.i119.thread430, %if.end.i117 - %retval.0.i429 = phi ptr [ %d1.i, %if.end.i119.thread ], [ %c1.i, %if.end.i119.thread433 ], [ %b1.i, %if.end.i119.thread430 ], [ %mOffsetMatrix, %if.end.i117 ] - %sub.ptr.lhs.cast.i.i128 = ptrtoint ptr %bind_poses.sroa.12.2481 to i64 - %sub.ptr.rhs.cast.i.i129 = ptrtoint ptr %bind_poses.sroa.0.2482 to i64 - %sub.ptr.sub.i.i130 = sub i64 %sub.ptr.lhs.cast.i.i128, %sub.ptr.rhs.cast.i.i129 - %add.ptr.i.i = getelementptr inbounds i8, ptr %bind_poses.sroa.0.2482, i64 %sub.ptr.sub.i.i130 - %sub.ptr.lhs.cast.i344 = ptrtoint ptr %bind_poses.sroa.26.2480 to i64 - %sub.ptr.sub.i346 = sub i64 %sub.ptr.lhs.cast.i344, %sub.ptr.lhs.cast.i.i128 - %cmp3.not.i = icmp ult i64 %sub.ptr.sub.i346, 16 + br label %if.then.i342 + +if.then.i342: ; preds = %sw.bb4.i120, %sw.bb3.i123, %sw.bb2.i125, %if.end.i117 + %retval.0.i428 = phi ptr [ %d1.i, %sw.bb4.i120 ], [ %c1.i, %sw.bb3.i123 ], [ %b1.i, %sw.bb2.i125 ], [ %mOffsetMatrix, %if.end.i117 ] + %sub.ptr.lhs.cast.i.i129 = ptrtoint ptr %bind_poses.sroa.12.2486 to i64 + %sub.ptr.rhs.cast.i.i130 = ptrtoint ptr %bind_poses.sroa.0.2487 to i64 + %sub.ptr.sub.i.i131 = sub i64 %sub.ptr.lhs.cast.i.i129, %sub.ptr.rhs.cast.i.i130 + %add.ptr.i.i = getelementptr inbounds i8, ptr %bind_poses.sroa.0.2487, i64 %sub.ptr.sub.i.i131 + %sub.ptr.lhs.cast.i345 = ptrtoint ptr %bind_poses.sroa.26.2485 to i64 + %sub.ptr.sub.i347 = sub i64 %sub.ptr.lhs.cast.i345, %sub.ptr.lhs.cast.i.i129 + %cmp3.not.i = icmp ult i64 %sub.ptr.sub.i347, 16 br i1 %cmp3.not.i, label %if.else50.i, label %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i -_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i: ; preds = %if.then.i341 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %bind_poses.sroa.12.2481, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i429, i64 16, i1 false) - %add.ptr36.i = getelementptr inbounds float, ptr %bind_poses.sroa.12.2481, i64 4 +_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i: ; preds = %if.then.i342 + call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %bind_poses.sroa.12.2486, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i428, i64 16, i1 false) + %add.ptr36.i = getelementptr inbounds float, ptr %bind_poses.sroa.12.2486, i64 4 br label %invoke.cont306 -if.else50.i: ; preds = %if.then.i341 - %19 = and i64 %sub.ptr.sub.i.i130, -16 +if.else50.i: ; preds = %if.then.i342 + %19 = and i64 %sub.ptr.sub.i.i131, -16 %cmp.i.i = icmp eq i64 %19, 9223372036854775792 br i1 %cmp.i.i, label %if.then.i.i361, label %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i @@ -9714,7 +9718,7 @@ if.then.i.i361: ; preds = %if.else50.i unreachable _ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i: ; preds = %if.else50.i - %sub.ptr.div.i.i58.i = ashr exact i64 %sub.ptr.sub.i.i130, 2 + %sub.ptr.div.i.i58.i = ashr exact i64 %sub.ptr.sub.i.i131, 2 %.sroa.speculated.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i58.i, i64 4) %add.i.i = add nsw i64 %.sroa.speculated.i.i, %sub.ptr.div.i.i58.i %cmp7.i.i = icmp ult i64 %add.i.i, %sub.ptr.div.i.i58.i @@ -9731,19 +9735,19 @@ cond.true.i.i: ; preds = %_ZNKSt6vectorIfSaIf _ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i358: ; preds = %cond.true.i.i, %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i %cond.i59.i = phi ptr [ null, %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i ], [ %call5.i.i.i.i364, %cond.true.i.i ] %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i.i60.i = ptrtoint ptr %add.ptr.i.i to i64 - %tobool.not.i.i.i.i.i.i.i.i.i63.i = icmp eq ptr %bind_poses.sroa.12.2481, %bind_poses.sroa.0.2482 + %tobool.not.i.i.i.i.i.i.i.i.i63.i = icmp eq ptr %bind_poses.sroa.12.2486, %bind_poses.sroa.0.2487 br i1 %tobool.not.i.i.i.i.i.i.i.i.i63.i, label %invoke.cont61.i, label %if.then.i.i.i.i.i.i.i.i.i64.i if.then.i.i.i.i.i.i.i.i.i64.i: ; preds = %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i358 - call void @llvm.memmove.p0.p0.i64(ptr align 4 %cond.i59.i, ptr align 4 %bind_poses.sroa.0.2482, i64 %sub.ptr.sub.i.i130, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr align 4 %cond.i59.i, ptr align 4 %bind_poses.sroa.0.2487, i64 %sub.ptr.sub.i.i131, i1 false) br label %invoke.cont61.i invoke.cont61.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i64.i, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i358 - %add.ptr.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds i8, ptr %cond.i59.i, i64 %sub.ptr.sub.i.i130 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %add.ptr.i.i.i.i.i.i.i.i.i65.i, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i429, i64 16, i1 false) + %add.ptr.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds i8, ptr %cond.i59.i, i64 %sub.ptr.sub.i.i131 + call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %add.ptr.i.i.i.i.i.i.i.i.i65.i, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i428, i64 16, i1 false) %add.ptr.i.i.i.i.i.i.i.i71.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i.i.i.i.i.i65.i, i64 16 - %sub.ptr.sub.i.i.i.i.i.i.i.i.i75.i = sub i64 %sub.ptr.lhs.cast.i.i128, %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i.i60.i - %tobool.not.i.i.i.i.i.i.i.i.i76.i = icmp eq ptr %bind_poses.sroa.12.2481, %add.ptr.i.i + %sub.ptr.sub.i.i.i.i.i.i.i.i.i75.i = sub i64 %sub.ptr.lhs.cast.i.i129, %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i.i60.i + %tobool.not.i.i.i.i.i.i.i.i.i76.i = icmp eq ptr %bind_poses.sroa.12.2486, %add.ptr.i.i br i1 %tobool.not.i.i.i.i.i.i.i.i.i76.i, label %invoke.cont65.i, label %if.then.i.i.i.i.i.i.i.i.i77.i if.then.i.i.i.i.i.i.i.i.i77.i: ; preds = %invoke.cont61.i @@ -9752,11 +9756,11 @@ if.then.i.i.i.i.i.i.i.i.i77.i: ; preds = %invoke.cont61.i invoke.cont65.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i77.i, %invoke.cont61.i %add.ptr.i.i.i.i.i.i.i.i.i78.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i.i.i.i.i71.i, i64 %sub.ptr.sub.i.i.i.i.i.i.i.i.i75.i - %tobool.not.i.i359 = icmp eq ptr %bind_poses.sroa.0.2482, null + %tobool.not.i.i359 = icmp eq ptr %bind_poses.sroa.0.2487, null br i1 %tobool.not.i.i359, label %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360, label %if.then.i80.i if.then.i80.i: ; preds = %invoke.cont65.i - call void @_ZdlPv(ptr noundef nonnull %bind_poses.sroa.0.2482) #23 + call void @_ZdlPv(ptr noundef nonnull %bind_poses.sroa.0.2487) #23 br label %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360 _ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360: ; preds = %if.then.i80.i, %invoke.cont65.i @@ -9764,21 +9768,21 @@ _ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360: ; preds = %if.then.i80 br label %invoke.cont306 invoke.cont306: ; preds = %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360 - %bind_poses.sroa.26.3 = phi ptr [ %add.ptr83.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360 ], [ %bind_poses.sroa.26.2480, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] + %bind_poses.sroa.26.3 = phi ptr [ %add.ptr83.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360 ], [ %bind_poses.sroa.26.2485, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] %bind_poses.sroa.12.3 = phi ptr [ %add.ptr.i.i.i.i.i.i.i.i.i78.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360 ], [ %add.ptr36.i, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] - %bind_poses.sroa.0.3 = phi ptr [ %cond.i59.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360 ], [ %bind_poses.sroa.0.2482, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] - %inc310 = add nuw nsw i32 %j.0483, 1 + %bind_poses.sroa.0.3 = phi ptr [ %cond.i59.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i360 ], [ %bind_poses.sroa.0.2487, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] + %inc310 = add nuw nsw i32 %j.0488, 1 %exitcond.not = icmp eq i32 %inc310, 4 br i1 %exitcond.not, label %for.inc312, label %if.end.i117, !llvm.loop !33 lpad282.loopexit: ; preds = %cond.true.i.i - %lpad.loopexit446 = landingpad { ptr, i32 } + %lpad.loopexit445 = landingpad { ptr, i32 } cleanup br label %ehcleanup655 lpad282.loopexit.split-lp: ; preds = %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i, %for.end314, %if.then.i.i361 - %bind_poses.sroa.0.4.ph = phi ptr [ null, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i ], [ %bind_poses.sroa.0.1.lcssa, %for.end314 ], [ %bind_poses.sroa.0.2482, %if.then.i.i361 ] - %lpad.loopexit.split-lp447 = landingpad { ptr, i32 } + %bind_poses.sroa.0.4.ph = phi ptr [ null, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i ], [ %bind_poses.sroa.0.1.lcssa, %for.end314 ], [ %bind_poses.sroa.0.2487, %if.then.i.i361 ] + %lpad.loopexit.split-lp446 = landingpad { ptr, i32 } cleanup br label %ehcleanup655 @@ -9793,19 +9797,19 @@ for.end314: ; preds = %for.inc312, %_ZNSt6 %bind_poses.sroa.12.1.lcssa = phi ptr [ %bind_poses.sroa.12.0, %_ZNSt6vectorIfSaIfEE7reserveEm.exit ], [ %bind_poses.sroa.12.3, %for.inc312 ] %bind_poses.sroa.0.1.lcssa = phi ptr [ %bind_poses.sroa.12.0, %_ZNSt6vectorIfSaIfEE7reserveEm.exit ], [ %bind_poses.sroa.0.3, %for.inc312 ] invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp315, ptr noundef nonnull align 8 dereferenceable(32) %idstr) - to label %.noexc133 unwind label %lpad282.loopexit.split-lp + to label %.noexc134 unwind label %lpad282.loopexit.split-lp -.noexc133: ; preds = %for.end314 - %call.i132 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp315, ptr noundef nonnull @.str.216) +.noexc134: ; preds = %for.end314 + %call.i133 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp315, ptr noundef nonnull @.str.216) to label %invoke.cont316 unwind label %lpad.i -lpad.i: ; preds = %.noexc133 +lpad.i: ; preds = %.noexc134 %23 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp315) #22 br label %ehcleanup655 -invoke.cont316: ; preds = %.noexc133 +invoke.cont316: ; preds = %.noexc134 %sub.ptr.lhs.cast.i = ptrtoint ptr %bind_poses.sroa.12.1.lcssa to i64 %sub.ptr.rhs.cast.i = ptrtoint ptr %bind_poses.sroa.0.1.lcssa to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i @@ -9820,25 +9824,25 @@ invoke.cont320: ; preds = %invoke.cont316 %25 = load i32, ptr %mNumBones, align 8 %mul323 = mul i32 %25, %24 %conv324 = zext i32 %mul323 to i64 - %cmp3.i143.not = icmp eq i32 %mul323, 0 - br i1 %cmp3.i143.not, label %_ZNSt6vectorIfSaIfEE7reserveEm.exit159, label %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i144 + %cmp3.i144.not = icmp eq i32 %mul323, 0 + br i1 %cmp3.i144.not, label %_ZNSt6vectorIfSaIfEE7reserveEm.exit160, label %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i145 -_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i144: ; preds = %invoke.cont320 - %mul.i.i.i.i148 = shl nuw nsw i64 %conv324, 2 - %call5.i.i.i.i158 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i148) #27 - to label %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i153 unwind label %lpad325.loopexit.split-lp +_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i145: ; preds = %invoke.cont320 + %mul.i.i.i.i149 = shl nuw nsw i64 %conv324, 2 + %call5.i.i.i.i159 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i149) #27 + to label %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i154 unwind label %lpad325.loopexit.split-lp -_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i153: ; preds = %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i144 - %add.ptr21.i155 = getelementptr inbounds float, ptr %call5.i.i.i.i158, i64 %conv324 - br label %_ZNSt6vectorIfSaIfEE7reserveEm.exit159 +_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i154: ; preds = %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i145 + %add.ptr21.i156 = getelementptr inbounds float, ptr %call5.i.i.i.i159, i64 %conv324 + br label %_ZNSt6vectorIfSaIfEE7reserveEm.exit160 -_ZNSt6vectorIfSaIfEE7reserveEm.exit159: ; preds = %invoke.cont320, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i153 - %skin_weights.sroa.0.0 = phi ptr [ %call5.i.i.i.i158, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i153 ], [ null, %invoke.cont320 ] - %skin_weights.sroa.19.0 = phi ptr [ %add.ptr21.i155, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i153 ], [ null, %invoke.cont320 ] - %cmp331502.not = icmp eq i32 %25, 0 - br i1 %cmp331502.not, label %for.end349, label %for.cond334.preheader.lr.ph +_ZNSt6vectorIfSaIfEE7reserveEm.exit160: ; preds = %invoke.cont320, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i154 + %skin_weights.sroa.0.0 = phi ptr [ %call5.i.i.i.i159, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i154 ], [ null, %invoke.cont320 ] + %skin_weights.sroa.19.0 = phi ptr [ %add.ptr21.i156, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i154 ], [ null, %invoke.cont320 ] + %cmp331507.not = icmp eq i32 %25, 0 + br i1 %cmp331507.not, label %for.end349, label %for.cond334.preheader.lr.ph -for.cond334.preheader.lr.ph: ; preds = %_ZNSt6vectorIfSaIfEE7reserveEm.exit159 +for.cond334.preheader.lr.ph: ; preds = %_ZNSt6vectorIfSaIfEE7reserveEm.exit160 %mBones335 = getelementptr inbounds %struct.aiMesh, ptr %2, i64 0, i32 12 %.pre = load ptr, ptr %mBones335, align 8 br label %for.cond334.preheader @@ -9846,46 +9850,46 @@ for.cond334.preheader.lr.ph: ; preds = %_ZNSt6vectorIfSaIfE for.cond334.preheader: ; preds = %for.cond334.preheader.lr.ph, %for.inc347 %26 = phi i32 [ %25, %for.cond334.preheader.lr.ph ], [ %39, %for.inc347 ] %27 = phi ptr [ %.pre, %for.cond334.preheader.lr.ph ], [ %40, %for.inc347 ] - %i327.0506 = phi i64 [ 0, %for.cond334.preheader.lr.ph ], [ %inc348, %for.inc347 ] - %skin_weights.sroa.19.1505 = phi ptr [ %skin_weights.sroa.19.0, %for.cond334.preheader.lr.ph ], [ %skin_weights.sroa.19.2.lcssa, %for.inc347 ] - %skin_weights.sroa.10.1504 = phi ptr [ %skin_weights.sroa.0.0, %for.cond334.preheader.lr.ph ], [ %skin_weights.sroa.10.2.lcssa, %for.inc347 ] - %skin_weights.sroa.0.1503 = phi ptr [ %skin_weights.sroa.0.0, %for.cond334.preheader.lr.ph ], [ %skin_weights.sroa.0.2.lcssa, %for.inc347 ] - %arrayidx336490 = getelementptr inbounds ptr, ptr %27, i64 %i327.0506 - %28 = load ptr, ptr %arrayidx336490, align 8 - %mNumWeights491 = getelementptr inbounds %struct.aiBone, ptr %28, i64 0, i32 1 - %29 = load i32, ptr %mNumWeights491, align 4 - %cmp338493.not = icmp eq i32 %29, 0 - br i1 %cmp338493.not, label %for.inc347, label %for.body339 + %i327.0511 = phi i64 [ 0, %for.cond334.preheader.lr.ph ], [ %inc348, %for.inc347 ] + %skin_weights.sroa.19.1510 = phi ptr [ %skin_weights.sroa.19.0, %for.cond334.preheader.lr.ph ], [ %skin_weights.sroa.19.2.lcssa, %for.inc347 ] + %skin_weights.sroa.10.1509 = phi ptr [ %skin_weights.sroa.0.0, %for.cond334.preheader.lr.ph ], [ %skin_weights.sroa.10.2.lcssa, %for.inc347 ] + %skin_weights.sroa.0.1508 = phi ptr [ %skin_weights.sroa.0.0, %for.cond334.preheader.lr.ph ], [ %skin_weights.sroa.0.2.lcssa, %for.inc347 ] + %arrayidx336495 = getelementptr inbounds ptr, ptr %27, i64 %i327.0511 + %28 = load ptr, ptr %arrayidx336495, align 8 + %mNumWeights496 = getelementptr inbounds %struct.aiBone, ptr %28, i64 0, i32 1 + %29 = load i32, ptr %mNumWeights496, align 4 + %cmp338498.not = icmp eq i32 %29, 0 + br i1 %cmp338498.not, label %for.inc347, label %for.body339 for.body339: ; preds = %for.cond334.preheader, %for.inc344 %30 = phi ptr [ %36, %for.inc344 ], [ %28, %for.cond334.preheader ] - %j333.0497 = phi i64 [ %inc345, %for.inc344 ], [ 0, %for.cond334.preheader ] - %skin_weights.sroa.19.2496 = phi ptr [ %skin_weights.sroa.19.3, %for.inc344 ], [ %skin_weights.sroa.19.1505, %for.cond334.preheader ] - %skin_weights.sroa.10.2495 = phi ptr [ %skin_weights.sroa.10.3, %for.inc344 ], [ %skin_weights.sroa.10.1504, %for.cond334.preheader ] - %skin_weights.sroa.0.2494 = phi ptr [ %skin_weights.sroa.0.3, %for.inc344 ], [ %skin_weights.sroa.0.1503, %for.cond334.preheader ] + %j333.0502 = phi i64 [ %inc345, %for.inc344 ], [ 0, %for.cond334.preheader ] + %skin_weights.sroa.19.2501 = phi ptr [ %skin_weights.sroa.19.3, %for.inc344 ], [ %skin_weights.sroa.19.1510, %for.cond334.preheader ] + %skin_weights.sroa.10.2500 = phi ptr [ %skin_weights.sroa.10.3, %for.inc344 ], [ %skin_weights.sroa.10.1509, %for.cond334.preheader ] + %skin_weights.sroa.0.2499 = phi ptr [ %skin_weights.sroa.0.3, %for.inc344 ], [ %skin_weights.sroa.0.1508, %for.cond334.preheader ] %mWeights = getelementptr inbounds %struct.aiBone, ptr %30, i64 0, i32 4 %31 = load ptr, ptr %mWeights, align 8 - %mWeight = getelementptr inbounds %struct.aiVertexWeight, ptr %31, i64 %j333.0497, i32 1 - %cmp.not.i = icmp eq ptr %skin_weights.sroa.10.2495, %skin_weights.sroa.19.2496 - br i1 %cmp.not.i, label %if.else.i, label %if.then.i161 + %mWeight = getelementptr inbounds %struct.aiVertexWeight, ptr %31, i64 %j333.0502, i32 1 + %cmp.not.i = icmp eq ptr %skin_weights.sroa.10.2500, %skin_weights.sroa.19.2501 + br i1 %cmp.not.i, label %if.else.i, label %if.then.i162 -if.then.i161: ; preds = %for.body339 +if.then.i162: ; preds = %for.body339 %32 = load float, ptr %mWeight, align 4 - store float %32, ptr %skin_weights.sroa.10.2495, align 4 + store float %32, ptr %skin_weights.sroa.10.2500, align 4 br label %for.inc344 if.else.i: ; preds = %for.body339 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %skin_weights.sroa.19.2496 to i64 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %skin_weights.sroa.0.2494 to i64 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %skin_weights.sroa.19.2501 to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %skin_weights.sroa.0.2499 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i %cmp.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i, 9223372036854775804 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i if.then.i.i.i: ; preds = %if.else.i invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.351) #24 - to label %.noexc164 unwind label %lpad325.loopexit.split-lp + to label %.noexc165 unwind label %lpad325.loopexit.split-lp -.noexc164: ; preds = %if.then.i.i.i +.noexc165: ; preds = %if.then.i.i.i unreachable _ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i @@ -9900,42 +9904,42 @@ _ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i cond.true.i.i.i: ; preds = %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i %mul.i.i.i.i.i = shl nuw nsw i64 %cond.i.i.i, 2 - %call5.i.i.i.i.i165 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i) #27 + %call5.i.i.i.i.i166 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i) #27 to label %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i unwind label %lpad325.loopexit _ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i: ; preds = %cond.true.i.i.i, %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i - %cond.i10.i.i = phi ptr [ null, %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i ], [ %call5.i.i.i.i.i165, %cond.true.i.i.i ] - %add.ptr.i.i163 = getelementptr inbounds float, ptr %cond.i10.i.i, i64 %sub.ptr.div.i.i.i.i + %cond.i10.i.i = phi ptr [ null, %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i ], [ %call5.i.i.i.i.i166, %cond.true.i.i.i ] + %add.ptr.i.i164 = getelementptr inbounds float, ptr %cond.i10.i.i, i64 %sub.ptr.div.i.i.i.i %34 = load float, ptr %mWeight, align 4 - store float %34, ptr %add.ptr.i.i163, align 4 + store float %34, ptr %add.ptr.i.i164, align 4 %cmp.i.i.i.i.i = icmp sgt i64 %sub.ptr.sub.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i.i, label %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i if.then.i.i.i.i.i: ; preds = %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %cond.i10.i.i, ptr align 4 %skin_weights.sroa.0.2494, i64 %sub.ptr.sub.i.i.i.i, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %cond.i10.i.i, ptr align 4 %skin_weights.sroa.0.2499, i64 %sub.ptr.sub.i.i.i.i, i1 false) br label %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i _ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i: ; preds = %if.then.i.i.i.i.i, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i %add.ptr.i.i.i.i.i = getelementptr inbounds i8, ptr %cond.i10.i.i, i64 %sub.ptr.sub.i.i.i.i - %tobool.not.i.i.i = icmp eq ptr %skin_weights.sroa.0.2494, null + %tobool.not.i.i.i = icmp eq ptr %skin_weights.sroa.0.2499, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i, label %if.then.i18.i.i if.then.i18.i.i: ; preds = %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i - call void @_ZdlPv(ptr noundef nonnull %skin_weights.sroa.0.2494) #23 + call void @_ZdlPv(ptr noundef nonnull %skin_weights.sroa.0.2499) #23 br label %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i _ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i: ; preds = %if.then.i18.i.i, %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i %add.ptr19.i.i = getelementptr inbounds float, ptr %cond.i10.i.i, i64 %cond.i.i.i br label %for.inc344 -for.inc344: ; preds = %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i, %if.then.i161 - %skin_weights.sroa.0.3 = phi ptr [ %cond.i10.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i ], [ %skin_weights.sroa.0.2494, %if.then.i161 ] - %add.ptr.i.i.i.i.i.pn = phi ptr [ %add.ptr.i.i.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i ], [ %skin_weights.sroa.10.2495, %if.then.i161 ] - %skin_weights.sroa.19.3 = phi ptr [ %add.ptr19.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i ], [ %skin_weights.sroa.19.2496, %if.then.i161 ] +for.inc344: ; preds = %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i, %if.then.i162 + %skin_weights.sroa.0.3 = phi ptr [ %cond.i10.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i ], [ %skin_weights.sroa.0.2499, %if.then.i162 ] + %add.ptr.i.i.i.i.i.pn = phi ptr [ %add.ptr.i.i.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i ], [ %skin_weights.sroa.10.2500, %if.then.i162 ] + %skin_weights.sroa.19.3 = phi ptr [ %add.ptr19.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJRKfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i ], [ %skin_weights.sroa.19.2501, %if.then.i162 ] %skin_weights.sroa.10.3 = getelementptr inbounds float, ptr %add.ptr.i.i.i.i.i.pn, i64 1 - %inc345 = add nuw nsw i64 %j333.0497, 1 + %inc345 = add nuw nsw i64 %j333.0502, 1 %35 = load ptr, ptr %mBones335, align 8 - %arrayidx336 = getelementptr inbounds ptr, ptr %35, i64 %i327.0506 + %arrayidx336 = getelementptr inbounds ptr, ptr %35, i64 %i327.0511 %36 = load ptr, ptr %arrayidx336, align 8 %mNumWeights = getelementptr inbounds %struct.aiBone, ptr %36, i64 0, i32 1 %37 = load i32, ptr %mNumWeights, align 4 @@ -9950,53 +9954,53 @@ lpad319: ; preds = %invoke.cont316 br label %ehcleanup655 lpad325.loopexit: ; preds = %cond.true.i.i.i - %lpad.loopexit443 = landingpad { ptr, i32 } + %lpad.loopexit442 = landingpad { ptr, i32 } cleanup br label %ehcleanup654 -lpad325.loopexit.split-lp: ; preds = %invoke.cont355, %invoke.cont359, %invoke.cont361, %invoke.cont366, %invoke.cont370, %invoke.cont372, %invoke.cont374, %invoke.cont376, %invoke.cont379, %invoke.cont384, %invoke.cont386, %invoke.cont388, %invoke.cont390, %invoke.cont395, %invoke.cont399, %invoke.cont401, %invoke.cont404, %invoke.cont409, %invoke.cont411, %invoke.cont414, %invoke.cont416, %invoke.cont421, %invoke.cont425, %invoke.cont427, %invoke.cont429, %invoke.cont431, %invoke.cont434, %invoke.cont439, %invoke.cont441, %invoke.cont443, %invoke.cont445, %invoke.cont448, %invoke.cont453, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i144, %if.then.i.i.i, %for.end349, %invoke.cont364, %invoke.cont393, %invoke.cont419 - %skin_weights.sroa.0.4.ph = phi ptr [ null, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i144 ], [ %skin_weights.sroa.0.1.lcssa, %for.end349 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont355 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont359 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont361 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont364 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont366 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont370 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont372 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont374 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont376 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont379 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont384 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont386 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont388 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont390 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont393 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont395 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont399 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont401 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont404 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont409 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont411 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont414 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont416 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont419 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont421 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont425 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont427 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont429 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont431 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont434 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont439 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont441 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont443 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont445 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont448 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont453 ], [ %skin_weights.sroa.0.2494, %if.then.i.i.i ] - %lpad.loopexit.split-lp444 = landingpad { ptr, i32 } +lpad325.loopexit.split-lp: ; preds = %invoke.cont355, %invoke.cont359, %invoke.cont361, %invoke.cont366, %invoke.cont370, %invoke.cont372, %invoke.cont374, %invoke.cont376, %invoke.cont379, %invoke.cont384, %invoke.cont386, %invoke.cont388, %invoke.cont390, %invoke.cont395, %invoke.cont399, %invoke.cont401, %invoke.cont404, %invoke.cont409, %invoke.cont411, %invoke.cont414, %invoke.cont416, %invoke.cont421, %invoke.cont425, %invoke.cont427, %invoke.cont429, %invoke.cont431, %invoke.cont434, %invoke.cont439, %invoke.cont441, %invoke.cont443, %invoke.cont445, %invoke.cont448, %invoke.cont453, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i145, %if.then.i.i.i, %for.end349, %invoke.cont364, %invoke.cont393, %invoke.cont419 + %skin_weights.sroa.0.4.ph = phi ptr [ null, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i145 ], [ %skin_weights.sroa.0.1.lcssa, %for.end349 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont355 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont359 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont361 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont364 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont366 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont370 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont372 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont374 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont376 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont379 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont384 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont386 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont388 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont390 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont393 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont395 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont399 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont401 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont404 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont409 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont411 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont414 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont416 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont419 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont421 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont425 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont427 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont429 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont431 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont434 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont439 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont441 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont443 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont445 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont448 ], [ %skin_weights.sroa.0.1.lcssa, %invoke.cont453 ], [ %skin_weights.sroa.0.2499, %if.then.i.i.i ] + %lpad.loopexit.split-lp443 = landingpad { ptr, i32 } cleanup br label %ehcleanup654 for.inc347.loopexit: ; preds = %for.inc344 - %.pre563 = load i32, ptr %mNumBones, align 8 + %.pre569 = load i32, ptr %mNumBones, align 8 br label %for.inc347 for.inc347: ; preds = %for.inc347.loopexit, %for.cond334.preheader - %39 = phi i32 [ %26, %for.cond334.preheader ], [ %.pre563, %for.inc347.loopexit ] + %39 = phi i32 [ %26, %for.cond334.preheader ], [ %.pre569, %for.inc347.loopexit ] %40 = phi ptr [ %27, %for.cond334.preheader ], [ %35, %for.inc347.loopexit ] - %skin_weights.sroa.0.2.lcssa = phi ptr [ %skin_weights.sroa.0.1503, %for.cond334.preheader ], [ %skin_weights.sroa.0.3, %for.inc347.loopexit ] - %skin_weights.sroa.10.2.lcssa = phi ptr [ %skin_weights.sroa.10.1504, %for.cond334.preheader ], [ %skin_weights.sroa.10.3, %for.inc347.loopexit ] - %skin_weights.sroa.19.2.lcssa = phi ptr [ %skin_weights.sroa.19.1505, %for.cond334.preheader ], [ %skin_weights.sroa.19.3, %for.inc347.loopexit ] - %inc348 = add nuw nsw i64 %i327.0506, 1 + %skin_weights.sroa.0.2.lcssa = phi ptr [ %skin_weights.sroa.0.1508, %for.cond334.preheader ], [ %skin_weights.sroa.0.3, %for.inc347.loopexit ] + %skin_weights.sroa.10.2.lcssa = phi ptr [ %skin_weights.sroa.10.1509, %for.cond334.preheader ], [ %skin_weights.sroa.10.3, %for.inc347.loopexit ] + %skin_weights.sroa.19.2.lcssa = phi ptr [ %skin_weights.sroa.19.1510, %for.cond334.preheader ], [ %skin_weights.sroa.19.3, %for.inc347.loopexit ] + %inc348 = add nuw nsw i64 %i327.0511, 1 %conv330 = zext i32 %39 to i64 %cmp331 = icmp ult i64 %inc348, %conv330 br i1 %cmp331, label %for.cond334.preheader, label %for.end349, !llvm.loop !36 -for.end349: ; preds = %for.inc347, %_ZNSt6vectorIfSaIfEE7reserveEm.exit159 - %skin_weights.sroa.0.1.lcssa = phi ptr [ %skin_weights.sroa.0.0, %_ZNSt6vectorIfSaIfEE7reserveEm.exit159 ], [ %skin_weights.sroa.0.2.lcssa, %for.inc347 ] - %skin_weights.sroa.10.1.lcssa = phi ptr [ %skin_weights.sroa.0.0, %_ZNSt6vectorIfSaIfEE7reserveEm.exit159 ], [ %skin_weights.sroa.10.2.lcssa, %for.inc347 ] +for.end349: ; preds = %for.inc347, %_ZNSt6vectorIfSaIfEE7reserveEm.exit160 + %skin_weights.sroa.0.1.lcssa = phi ptr [ %skin_weights.sroa.0.0, %_ZNSt6vectorIfSaIfEE7reserveEm.exit160 ], [ %skin_weights.sroa.0.2.lcssa, %for.inc347 ] + %skin_weights.sroa.10.1.lcssa = phi ptr [ %skin_weights.sroa.0.0, %_ZNSt6vectorIfSaIfEE7reserveEm.exit160 ], [ %skin_weights.sroa.10.2.lcssa, %for.inc347 ] invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp350, ptr noundef nonnull align 8 dereferenceable(32) %idstr) - to label %.noexc168 unwind label %lpad325.loopexit.split-lp + to label %.noexc169 unwind label %lpad325.loopexit.split-lp -.noexc168: ; preds = %for.end349 - %call.i166 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp350, ptr noundef nonnull @.str.217) - to label %invoke.cont351 unwind label %lpad.i167 +.noexc169: ; preds = %for.end349 + %call.i167 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp350, ptr noundef nonnull @.str.217) + to label %invoke.cont351 unwind label %lpad.i168 -lpad.i167: ; preds = %.noexc168 +lpad.i168: ; preds = %.noexc169 %41 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp350) #22 br label %ehcleanup654 -invoke.cont351: ; preds = %.noexc168 - %sub.ptr.lhs.cast.i172 = ptrtoint ptr %skin_weights.sroa.10.1.lcssa to i64 - %sub.ptr.rhs.cast.i173 = ptrtoint ptr %skin_weights.sroa.0.1.lcssa to i64 - %sub.ptr.sub.i174 = sub i64 %sub.ptr.lhs.cast.i172, %sub.ptr.rhs.cast.i173 - %sub.ptr.div.i175 = ashr exact i64 %sub.ptr.sub.i174, 2 - invoke void @_ZN6Assimp15ColladaExporter15WriteFloatArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13FloatDataTypeEPKfm(ptr noundef nonnull align 8 dereferenceable(1248) %this, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp350, i32 noundef 5, ptr noundef %skin_weights.sroa.0.1.lcssa, i64 noundef %sub.ptr.div.i175) +invoke.cont351: ; preds = %.noexc169 + %sub.ptr.lhs.cast.i173 = ptrtoint ptr %skin_weights.sroa.10.1.lcssa to i64 + %sub.ptr.rhs.cast.i174 = ptrtoint ptr %skin_weights.sroa.0.1.lcssa to i64 + %sub.ptr.sub.i175 = sub i64 %sub.ptr.lhs.cast.i173, %sub.ptr.rhs.cast.i174 + %sub.ptr.div.i176 = ashr exact i64 %sub.ptr.sub.i175, 2 + invoke void @_ZN6Assimp15ColladaExporter15WriteFloatArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13FloatDataTypeEPKfm(ptr noundef nonnull align 8 dereferenceable(1248) %this, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp350, i32 noundef 5, ptr noundef %skin_weights.sroa.0.1.lcssa, i64 noundef %sub.ptr.div.i176) to label %invoke.cont355 unwind label %lpad354 invoke.cont355: ; preds = %invoke.cont351 @@ -10013,7 +10017,7 @@ invoke.cont361: ; preds = %invoke.cont359 to label %invoke.cont364 unwind label %lpad325.loopexit.split-lp invoke.cont364: ; preds = %invoke.cont361 - %call.i181182 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) + %call.i182183 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) to label %invoke.cont366 unwind label %lpad325.loopexit.split-lp invoke.cont366: ; preds = %invoke.cont364 @@ -10057,9 +10061,9 @@ invoke.cont390: ; preds = %invoke.cont388 to label %invoke.cont393 unwind label %lpad325.loopexit.split-lp invoke.cont393: ; preds = %invoke.cont390 - %call.i185 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i186 = add i64 %call.i185, -2 - %call3.i187 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i186, i64 noundef -1) + %call.i186 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i187 = add i64 %call.i186, -2 + %call3.i188 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i187, i64 noundef -1) to label %invoke.cont395 unwind label %lpad325.loopexit.split-lp invoke.cont395: ; preds = %invoke.cont393 @@ -10096,7 +10100,7 @@ invoke.cont416: ; preds = %invoke.cont414 to label %invoke.cont419 unwind label %lpad325.loopexit.split-lp invoke.cont419: ; preds = %invoke.cont416 - %call.i190191 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) + %call.i191192 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) to label %invoke.cont421 unwind label %lpad325.loopexit.split-lp invoke.cont421: ; preds = %invoke.cont419 @@ -10155,38 +10159,38 @@ invoke.cont455: ; preds = %invoke.cont453 if.end.i.i.i.i.i.i.i: ; preds = %invoke.cont455 %mul.i.i.i.i.i.i = shl nuw nsw i64 %conv458, 2 - %call5.i.i.i.i2.i.i193 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i.i) #27 + %call5.i.i.i.i2.i.i194 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i.i) #27 to label %call5.i.i.i.i2.i.i.noexc unwind label %lpad461 call5.i.i.i.i2.i.i.noexc: ; preds = %if.end.i.i.i.i.i.i.i - call void @llvm.memset.p0.i64(ptr nonnull align 4 %call5.i.i.i.i2.i.i193, i8 0, i64 %mul.i.i.i.i.i.i, i1 false) - %add.ptr.i.i.i = getelementptr inbounds i32, ptr %call5.i.i.i.i2.i.i193, i64 %conv458 + call void @llvm.memset.p0.i64(ptr nonnull align 4 %call5.i.i.i.i2.i.i194, i8 0, i64 %mul.i.i.i.i.i.i, i1 false) + %add.ptr.i.i.i = getelementptr inbounds i32, ptr %call5.i.i.i.i2.i.i194, i64 %conv458 br label %invoke.cont462 invoke.cont462: ; preds = %call5.i.i.i.i2.i.i.noexc, %invoke.cont455 - %num_influences.sroa.0.0 = phi ptr [ null, %invoke.cont455 ], [ %call5.i.i.i.i2.i.i193, %call5.i.i.i.i2.i.i.noexc ] + %num_influences.sroa.0.0 = phi ptr [ null, %invoke.cont455 ], [ %call5.i.i.i.i2.i.i194, %call5.i.i.i.i2.i.i.noexc ] %retval.0.i.i.i.i.i.i.i = phi ptr [ null, %invoke.cont455 ], [ %add.ptr.i.i.i, %call5.i.i.i.i2.i.i.noexc ] %44 = load i32, ptr %mNumBones, align 8 - %cmp467515.not = icmp eq i32 %44, 0 - br i1 %cmp467515.not, label %for.cond491.preheader, label %for.cond470.preheader.lr.ph + %cmp467520.not = icmp eq i32 %44, 0 + br i1 %cmp467520.not, label %for.cond491.preheader, label %for.cond470.preheader.lr.ph for.cond470.preheader.lr.ph: ; preds = %invoke.cont462 %mBones471 = getelementptr inbounds %struct.aiMesh, ptr %2, i64 0, i32 12 - %.pre564 = load ptr, ptr %mBones471, align 8 + %.pre570 = load ptr, ptr %mBones471, align 8 %conv466 = zext i32 %44 to i64 br label %for.cond470.preheader for.cond470.preheader: ; preds = %for.cond470.preheader.lr.ph, %for.inc487 - %i463.0516 = phi i64 [ 0, %for.cond470.preheader.lr.ph ], [ %inc488, %for.inc487 ] - %arrayidx472509 = getelementptr inbounds ptr, ptr %.pre564, i64 %i463.0516 - %45 = load ptr, ptr %arrayidx472509, align 8 - %mNumWeights473510 = getelementptr inbounds %struct.aiBone, ptr %45, i64 0, i32 1 - %46 = load i32, ptr %mNumWeights473510, align 4 - %cmp475512.not = icmp eq i32 %46, 0 - br i1 %cmp475512.not, label %for.inc487, label %for.body476.preheader + %i463.0521 = phi i64 [ 0, %for.cond470.preheader.lr.ph ], [ %inc488, %for.inc487 ] + %arrayidx472514 = getelementptr inbounds ptr, ptr %.pre570, i64 %i463.0521 + %45 = load ptr, ptr %arrayidx472514, align 8 + %mNumWeights473515 = getelementptr inbounds %struct.aiBone, ptr %45, i64 0, i32 1 + %46 = load i32, ptr %mNumWeights473515, align 4 + %cmp475517.not = icmp eq i32 %46, 0 + br i1 %cmp475517.not, label %for.inc487, label %for.body476.preheader for.body476.preheader: ; preds = %for.cond470.preheader - %arrayidx472 = getelementptr inbounds ptr, ptr %.pre564, i64 %i463.0516 + %arrayidx472 = getelementptr inbounds ptr, ptr %.pre570, i64 %i463.0521 br label %for.body476 for.cond491.preheader: ; preds = %for.inc487, %invoke.cont462 @@ -10194,17 +10198,17 @@ for.cond491.preheader: ; preds = %for.inc487, %invoke for.body476: ; preds = %for.body476.preheader, %for.body476 %47 = phi ptr [ %51, %for.body476 ], [ %45, %for.body476.preheader ] - %j469.0513 = phi i64 [ %inc485, %for.body476 ], [ 0, %for.body476.preheader ] + %j469.0518 = phi i64 [ %inc485, %for.body476 ], [ 0, %for.body476.preheader ] %mWeights479 = getelementptr inbounds %struct.aiBone, ptr %47, i64 0, i32 4 %48 = load ptr, ptr %mWeights479, align 8 - %arrayidx480 = getelementptr inbounds %struct.aiVertexWeight, ptr %48, i64 %j469.0513 + %arrayidx480 = getelementptr inbounds %struct.aiVertexWeight, ptr %48, i64 %j469.0518 %49 = load i32, ptr %arrayidx480, align 4 %conv481 = zext i32 %49 to i64 - %add.ptr.i194 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %conv481 - %50 = load i32, ptr %add.ptr.i194, align 4 + %add.ptr.i195 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %conv481 + %50 = load i32, ptr %add.ptr.i195, align 4 %inc483 = add i32 %50, 1 - store i32 %inc483, ptr %add.ptr.i194, align 4 - %inc485 = add nuw nsw i64 %j469.0513, 1 + store i32 %inc483, ptr %add.ptr.i195, align 4 + %inc485 = add nuw nsw i64 %j469.0518, 1 %51 = load ptr, ptr %arrayidx472, align 8 %mNumWeights473 = getelementptr inbounds %struct.aiBone, ptr %51, i64 0, i32 1 %52 = load i32, ptr %mNumWeights473, align 4 @@ -10224,14 +10228,14 @@ lpad461: ; preds = %if.end.i.i.i.i.i.i. br label %ehcleanup654 for.inc487: ; preds = %for.body476, %for.cond470.preheader - %inc488 = add nuw nsw i64 %i463.0516, 1 + %inc488 = add nuw nsw i64 %i463.0521, 1 %cmp467 = icmp ult i64 %inc488, %conv466 br i1 %cmp467, label %for.cond470.preheader, label %for.cond491.preheader, !llvm.loop !38 for.body495: ; preds = %for.cond491.preheader, %for.inc504 - %i490.0519 = phi i64 [ %inc505, %for.inc504 ], [ 0, %for.cond491.preheader ] - %add.ptr.i195 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %i490.0519 - %55 = load i32, ptr %add.ptr.i195, align 4 + %i490.0524 = phi i64 [ %inc505, %for.inc504 ], [ 0, %for.cond491.preheader ] + %add.ptr.i196 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %i490.0524 + %55 = load i32, ptr %add.ptr.i196, align 4 %call501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, i32 noundef %55) to label %invoke.cont500 unwind label %ehcleanup653.thread @@ -10240,19 +10244,19 @@ invoke.cont500: ; preds = %for.body495 to label %for.inc504 unwind label %ehcleanup653.thread for.inc504: ; preds = %invoke.cont500 - %inc505 = add nuw nsw i64 %i490.0519, 1 + %inc505 = add nuw nsw i64 %i490.0524, 1 %56 = load i32, ptr %mNumVertices, align 4 %conv493 = zext i32 %56 to i64 %cmp494 = icmp ult i64 %inc505, %conv493 br i1 %cmp494, label %for.body495, label %for.end506, !llvm.loop !39 ehcleanup653.thread: ; preds = %invoke.cont500, %for.body495 - %lpad.loopexit440 = landingpad { ptr, i32 } + %lpad.loopexit439 = landingpad { ptr, i32 } cleanup - br label %if.then.i.i.i332 + br label %if.then.i.i.i333 lpad499.loopexit.split-lp: ; preds = %for.end506, %invoke.cont509, %invoke.cont512, %invoke.cont517 - %lpad.loopexit.split-lp441 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp440 = landingpad { ptr, i32 } cleanup br label %ehcleanup653 @@ -10273,118 +10277,118 @@ invoke.cont517: ; preds = %invoke.cont512 to label %invoke.cont519 unwind label %lpad499.loopexit.split-lp invoke.cont519: ; preds = %invoke.cont517 - %sub.ptr.lhs.cast.i197 = ptrtoint ptr %retval.0.i.i.i.i.i.i.i to i64 - %sub.ptr.rhs.cast.i198 = ptrtoint ptr %num_influences.sroa.0.0 to i64 - %sub.ptr.sub.i199 = sub i64 %sub.ptr.lhs.cast.i197, %sub.ptr.rhs.cast.i198 - %sub.ptr.div.i200 = ashr exact i64 %sub.ptr.sub.i199, 2 - %cmp.i201 = icmp ugt i64 %sub.ptr.div.i200, 2305843009213693951 - br i1 %cmp.i201, label %if.then.i218, label %if.end.i202 - -if.then.i218: ; preds = %invoke.cont519 + %sub.ptr.lhs.cast.i198 = ptrtoint ptr %retval.0.i.i.i.i.i.i.i to i64 + %sub.ptr.rhs.cast.i199 = ptrtoint ptr %num_influences.sroa.0.0 to i64 + %sub.ptr.sub.i200 = sub i64 %sub.ptr.lhs.cast.i198, %sub.ptr.rhs.cast.i199 + %sub.ptr.div.i201 = ashr exact i64 %sub.ptr.sub.i200, 2 + %cmp.i202 = icmp ugt i64 %sub.ptr.div.i201, 2305843009213693951 + br i1 %cmp.i202, label %if.then.i219, label %if.end.i203 + +if.then.i219: ; preds = %invoke.cont519 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.358) #24 - to label %.noexc219 unwind label %lpad522.loopexit.split-lp + to label %.noexc220 unwind label %lpad522.loopexit.split-lp -.noexc219: ; preds = %if.then.i218 +.noexc220: ; preds = %if.then.i219 unreachable -if.end.i202: ; preds = %invoke.cont519 - %cmp3.i208.not = icmp eq ptr %retval.0.i.i.i.i.i.i.i, %num_influences.sroa.0.0 - br i1 %cmp3.i208.not, label %invoke.cont539, label %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i +if.end.i203: ; preds = %invoke.cont519 + %cmp3.i209.not = icmp eq ptr %retval.0.i.i.i.i.i.i.i, %num_influences.sroa.0.0 + br i1 %cmp3.i209.not, label %invoke.cont539, label %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i -_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i: ; preds = %if.end.i202 - %call5.i.i.i.i221 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i199) #27 +_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i: ; preds = %if.end.i203 + %call5.i.i.i.i222 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i200) #27 to label %for.body528.preheader unwind label %lpad522.loopexit.split-lp for.body528.preheader: ; preds = %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i - %add.ptr21.i216 = getelementptr inbounds i8, ptr %call5.i.i.i.i221, i64 %sub.ptr.sub.i199 - %umax = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i200, i64 1) + %add.ptr21.i217 = getelementptr inbounds i8, ptr %call5.i.i.i.i222, i64 %sub.ptr.sub.i200 + %umax = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i201, i64 1) br label %for.body528 for.body528: ; preds = %for.body528.preheader, %invoke.cont529 - %i524.0525 = phi i64 [ %inc532, %invoke.cont529 ], [ 0, %for.body528.preheader ] - %accum_influences.sroa.19.1524 = phi ptr [ %accum_influences.sroa.19.2, %invoke.cont529 ], [ %add.ptr21.i216, %for.body528.preheader ] - %accum_influences.sroa.11.1523 = phi ptr [ %accum_influences.sroa.11.2, %invoke.cont529 ], [ %call5.i.i.i.i221, %for.body528.preheader ] - %accum_influences.sroa.0.1522 = phi ptr [ %accum_influences.sroa.0.2, %invoke.cont529 ], [ %call5.i.i.i.i221, %for.body528.preheader ] - %joint_weight_indices_length.0521 = phi i32 [ %add, %invoke.cont529 ], [ 0, %for.body528.preheader ] - %cmp.not.i229 = icmp eq ptr %accum_influences.sroa.11.1523, %accum_influences.sroa.19.1524 - br i1 %cmp.not.i229, label %if.else.i233, label %if.then.i230 - -if.then.i230: ; preds = %for.body528 - store i32 %joint_weight_indices_length.0521, ptr %accum_influences.sroa.11.1523, align 4 + %i524.0530 = phi i64 [ %inc532, %invoke.cont529 ], [ 0, %for.body528.preheader ] + %accum_influences.sroa.19.1529 = phi ptr [ %accum_influences.sroa.19.2, %invoke.cont529 ], [ %add.ptr21.i217, %for.body528.preheader ] + %accum_influences.sroa.11.1528 = phi ptr [ %accum_influences.sroa.11.2, %invoke.cont529 ], [ %call5.i.i.i.i222, %for.body528.preheader ] + %accum_influences.sroa.0.1527 = phi ptr [ %accum_influences.sroa.0.2, %invoke.cont529 ], [ %call5.i.i.i.i222, %for.body528.preheader ] + %joint_weight_indices_length.0526 = phi i32 [ %add, %invoke.cont529 ], [ 0, %for.body528.preheader ] + %cmp.not.i230 = icmp eq ptr %accum_influences.sroa.11.1528, %accum_influences.sroa.19.1529 + br i1 %cmp.not.i230, label %if.else.i234, label %if.then.i231 + +if.then.i231: ; preds = %for.body528 + store i32 %joint_weight_indices_length.0526, ptr %accum_influences.sroa.11.1528, align 4 br label %invoke.cont529 -if.else.i233: ; preds = %for.body528 - %sub.ptr.lhs.cast.i.i.i.i234 = ptrtoint ptr %accum_influences.sroa.19.1524 to i64 - %sub.ptr.rhs.cast.i.i.i.i235 = ptrtoint ptr %accum_influences.sroa.0.1522 to i64 - %sub.ptr.sub.i.i.i.i236 = sub i64 %sub.ptr.lhs.cast.i.i.i.i234, %sub.ptr.rhs.cast.i.i.i.i235 - %cmp.i.i.i237 = icmp eq i64 %sub.ptr.sub.i.i.i.i236, 9223372036854775804 - br i1 %cmp.i.i.i237, label %if.then.i.i.i255, label %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i +if.else.i234: ; preds = %for.body528 + %sub.ptr.lhs.cast.i.i.i.i235 = ptrtoint ptr %accum_influences.sroa.19.1529 to i64 + %sub.ptr.rhs.cast.i.i.i.i236 = ptrtoint ptr %accum_influences.sroa.0.1527 to i64 + %sub.ptr.sub.i.i.i.i237 = sub i64 %sub.ptr.lhs.cast.i.i.i.i235, %sub.ptr.rhs.cast.i.i.i.i236 + %cmp.i.i.i238 = icmp eq i64 %sub.ptr.sub.i.i.i.i237, 9223372036854775804 + br i1 %cmp.i.i.i238, label %if.then.i.i.i256, label %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i -if.then.i.i.i255: ; preds = %if.else.i233 +if.then.i.i.i256: ; preds = %if.else.i234 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.351) #24 - to label %.noexc256 unwind label %lpad522.loopexit.split-lp + to label %.noexc257 unwind label %lpad522.loopexit.split-lp -.noexc256: ; preds = %if.then.i.i.i255 +.noexc257: ; preds = %if.then.i.i.i256 unreachable -_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i233 - %sub.ptr.div.i.i.i.i238 = ashr exact i64 %sub.ptr.sub.i.i.i.i236, 2 - %.sroa.speculated.i.i.i239 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i238, i64 1) - %add.i.i.i240 = add nsw i64 %.sroa.speculated.i.i.i239, %sub.ptr.div.i.i.i.i238 - %cmp7.i.i.i241 = icmp ult i64 %add.i.i.i240, %sub.ptr.div.i.i.i.i238 - %57 = call i64 @llvm.umin.i64(i64 %add.i.i.i240, i64 2305843009213693951) - %cond.i.i.i242 = select i1 %cmp7.i.i.i241, i64 2305843009213693951, i64 %57 - %cmp.not.i.i.i243 = icmp eq i64 %cond.i.i.i242, 0 - br i1 %cmp.not.i.i.i243, label %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i, label %cond.true.i.i.i244 - -cond.true.i.i.i244: ; preds = %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i - %mul.i.i.i.i.i245 = shl nuw nsw i64 %cond.i.i.i242, 2 - %call5.i.i.i.i.i258 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i245) #27 +_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i234 + %sub.ptr.div.i.i.i.i239 = ashr exact i64 %sub.ptr.sub.i.i.i.i237, 2 + %.sroa.speculated.i.i.i240 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i239, i64 1) + %add.i.i.i241 = add nsw i64 %.sroa.speculated.i.i.i240, %sub.ptr.div.i.i.i.i239 + %cmp7.i.i.i242 = icmp ult i64 %add.i.i.i241, %sub.ptr.div.i.i.i.i239 + %57 = call i64 @llvm.umin.i64(i64 %add.i.i.i241, i64 2305843009213693951) + %cond.i.i.i243 = select i1 %cmp7.i.i.i242, i64 2305843009213693951, i64 %57 + %cmp.not.i.i.i244 = icmp eq i64 %cond.i.i.i243, 0 + br i1 %cmp.not.i.i.i244, label %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i, label %cond.true.i.i.i245 + +cond.true.i.i.i245: ; preds = %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i + %mul.i.i.i.i.i246 = shl nuw nsw i64 %cond.i.i.i243, 2 + %call5.i.i.i.i.i259 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i246) #27 to label %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i unwind label %lpad522.loopexit -_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i: ; preds = %cond.true.i.i.i244, %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i - %cond.i10.i.i246 = phi ptr [ null, %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i ], [ %call5.i.i.i.i.i258, %cond.true.i.i.i244 ] - %add.ptr.i.i247 = getelementptr inbounds i32, ptr %cond.i10.i.i246, i64 %sub.ptr.div.i.i.i.i238 - store i32 %joint_weight_indices_length.0521, ptr %add.ptr.i.i247, align 4 - %cmp.i.i.i.i.i248 = icmp sgt i64 %sub.ptr.sub.i.i.i.i236, 0 - br i1 %cmp.i.i.i.i.i248, label %if.then.i.i.i.i.i254, label %_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i +_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i: ; preds = %cond.true.i.i.i245, %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i + %cond.i10.i.i247 = phi ptr [ null, %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i ], [ %call5.i.i.i.i.i259, %cond.true.i.i.i245 ] + %add.ptr.i.i248 = getelementptr inbounds i32, ptr %cond.i10.i.i247, i64 %sub.ptr.div.i.i.i.i239 + store i32 %joint_weight_indices_length.0526, ptr %add.ptr.i.i248, align 4 + %cmp.i.i.i.i.i249 = icmp sgt i64 %sub.ptr.sub.i.i.i.i237, 0 + br i1 %cmp.i.i.i.i.i249, label %if.then.i.i.i.i.i255, label %_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i -if.then.i.i.i.i.i254: ; preds = %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %cond.i10.i.i246, ptr align 4 %accum_influences.sroa.0.1522, i64 %sub.ptr.sub.i.i.i.i236, i1 false) +if.then.i.i.i.i.i255: ; preds = %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %cond.i10.i.i247, ptr align 4 %accum_influences.sroa.0.1527, i64 %sub.ptr.sub.i.i.i.i237, i1 false) br label %_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i -_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i: ; preds = %if.then.i.i.i.i.i254, %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i - %add.ptr.i.i.i.i.i249 = getelementptr inbounds i8, ptr %cond.i10.i.i246, i64 %sub.ptr.sub.i.i.i.i236 - %tobool.not.i.i.i251 = icmp eq ptr %accum_influences.sroa.0.1522, null - br i1 %tobool.not.i.i.i251, label %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i, label %if.then.i18.i.i252 +_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i: ; preds = %if.then.i.i.i.i.i255, %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i.i + %add.ptr.i.i.i.i.i250 = getelementptr inbounds i8, ptr %cond.i10.i.i247, i64 %sub.ptr.sub.i.i.i.i237 + %tobool.not.i.i.i252 = icmp eq ptr %accum_influences.sroa.0.1527, null + br i1 %tobool.not.i.i.i252, label %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i, label %if.then.i18.i.i253 -if.then.i18.i.i252: ; preds = %_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i - call void @_ZdlPv(ptr noundef nonnull %accum_influences.sroa.0.1522) #23 +if.then.i18.i.i253: ; preds = %_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i + call void @_ZdlPv(ptr noundef nonnull %accum_influences.sroa.0.1527) #23 br label %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i -_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i: ; preds = %if.then.i18.i.i252, %_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i - %add.ptr19.i.i253 = getelementptr inbounds i32, ptr %cond.i10.i.i246, i64 %cond.i.i.i242 +_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i: ; preds = %if.then.i18.i.i253, %_ZNSt6vectorIjSaIjEE11_S_relocateEPjS2_S2_RS0_.exit17.i.i + %add.ptr19.i.i254 = getelementptr inbounds i32, ptr %cond.i10.i.i247, i64 %cond.i.i.i243 br label %invoke.cont529 -invoke.cont529: ; preds = %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i, %if.then.i230 - %accum_influences.sroa.0.2 = phi ptr [ %cond.i10.i.i246, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %accum_influences.sroa.0.1522, %if.then.i230 ] - %add.ptr.i.i.i.i.i249.pn = phi ptr [ %add.ptr.i.i.i.i.i249, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %accum_influences.sroa.11.1523, %if.then.i230 ] - %accum_influences.sroa.19.2 = phi ptr [ %add.ptr19.i.i253, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %accum_influences.sroa.19.1524, %if.then.i230 ] - %accum_influences.sroa.11.2 = getelementptr inbounds i32, ptr %add.ptr.i.i.i.i.i249.pn, i64 1 - %add.ptr.i259 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %i524.0525 - %58 = load i32, ptr %add.ptr.i259, align 4 - %add = add i32 %58, %joint_weight_indices_length.0521 - %inc532 = add nuw i64 %i524.0525, 1 - %exitcond550.not = icmp eq i64 %inc532, %umax - br i1 %exitcond550.not, label %for.end533, label %for.body528, !llvm.loop !40 - -lpad522.loopexit: ; preds = %cond.true.i.i.i244 +invoke.cont529: ; preds = %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i, %if.then.i231 + %accum_influences.sroa.0.2 = phi ptr [ %cond.i10.i.i247, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %accum_influences.sroa.0.1527, %if.then.i231 ] + %add.ptr.i.i.i.i.i250.pn = phi ptr [ %add.ptr.i.i.i.i.i250, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %accum_influences.sroa.11.1528, %if.then.i231 ] + %accum_influences.sroa.19.2 = phi ptr [ %add.ptr19.i.i254, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %accum_influences.sroa.19.1529, %if.then.i231 ] + %accum_influences.sroa.11.2 = getelementptr inbounds i32, ptr %add.ptr.i.i.i.i.i250.pn, i64 1 + %add.ptr.i260 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %i524.0530 + %58 = load i32, ptr %add.ptr.i260, align 4 + %add = add i32 %58, %joint_weight_indices_length.0526 + %inc532 = add nuw i64 %i524.0530, 1 + %exitcond556.not = icmp eq i64 %inc532, %umax + br i1 %exitcond556.not, label %for.end533, label %for.body528, !llvm.loop !40 + +lpad522.loopexit: ; preds = %cond.true.i.i.i245 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %ehcleanup -lpad522.loopexit.split-lp: ; preds = %if.then.i218, %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i, %if.then.i.i.i255 - %accum_influences.sroa.0.3.ph = phi ptr [ null, %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i ], [ %accum_influences.sroa.0.1522, %if.then.i.i.i255 ], [ null, %if.then.i218 ] +lpad522.loopexit.split-lp: ; preds = %if.then.i219, %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i, %if.then.i.i.i256 + %accum_influences.sroa.0.3.ph = phi ptr [ null, %_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEm.exit.i ], [ %accum_influences.sroa.0.1527, %if.then.i.i.i256 ], [ null, %if.then.i219 ] %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -10392,133 +10396,133 @@ lpad522.loopexit.split-lp: ; preds = %if.then.i218, %_ZNS for.end533: ; preds = %invoke.cont529 %mul534 = shl i32 %add, 1 %conv535 = zext i32 %mul534 to i64 - %cmp.not.i.i.i.i260 = icmp eq i32 %mul534, 0 - br i1 %cmp.not.i.i.i.i260, label %invoke.cont539, label %if.end.i.i.i.i.i.i.i261 + %cmp.not.i.i.i.i261 = icmp eq i32 %mul534, 0 + br i1 %cmp.not.i.i.i.i261, label %invoke.cont539, label %if.end.i.i.i.i.i.i.i262 -if.end.i.i.i.i.i.i.i261: ; preds = %for.end533 - %mul.i.i.i.i.i.i262 = shl nuw nsw i64 %conv535, 2 - %call5.i.i.i.i2.i.i274 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i.i262) #27 - to label %call5.i.i.i.i2.i.i.noexc273 unwind label %lpad538 +if.end.i.i.i.i.i.i.i262: ; preds = %for.end533 + %mul.i.i.i.i.i.i263 = shl nuw nsw i64 %conv535, 2 + %call5.i.i.i.i2.i.i275 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i.i263) #27 + to label %call5.i.i.i.i2.i.i.noexc274 unwind label %lpad538 -call5.i.i.i.i2.i.i.noexc273: ; preds = %if.end.i.i.i.i.i.i.i261 - call void @llvm.memset.p0.i64(ptr nonnull align 4 %call5.i.i.i.i2.i.i274, i8 -1, i64 %mul.i.i.i.i.i.i262, i1 false) - %add.ptr.i.i.i264 = getelementptr inbounds i32, ptr %call5.i.i.i.i2.i.i274, i64 %conv535 +call5.i.i.i.i2.i.i.noexc274: ; preds = %if.end.i.i.i.i.i.i.i262 + call void @llvm.memset.p0.i64(ptr nonnull align 4 %call5.i.i.i.i2.i.i275, i8 -1, i64 %mul.i.i.i.i.i.i263, i1 false) + %add.ptr.i.i.i265 = getelementptr inbounds i32, ptr %call5.i.i.i.i2.i.i275, i64 %conv535 br label %invoke.cont539 -invoke.cont539: ; preds = %if.end.i202, %call5.i.i.i.i2.i.i.noexc273, %for.end533 - %accum_influences.sroa.0.1.lcssa573 = phi ptr [ %accum_influences.sroa.0.2, %for.end533 ], [ %accum_influences.sroa.0.2, %call5.i.i.i.i2.i.i.noexc273 ], [ null, %if.end.i202 ] - %joint_weight_indices.sroa.0.0 = phi ptr [ null, %for.end533 ], [ %call5.i.i.i.i2.i.i274, %call5.i.i.i.i2.i.i.noexc273 ], [ null, %if.end.i202 ] - %retval.0.i.i.i.i.i.i.i271 = phi ptr [ null, %for.end533 ], [ %add.ptr.i.i.i264, %call5.i.i.i.i2.i.i.noexc273 ], [ null, %if.end.i202 ] +invoke.cont539: ; preds = %if.end.i203, %call5.i.i.i.i2.i.i.noexc274, %for.end533 + %accum_influences.sroa.0.1.lcssa579 = phi ptr [ %accum_influences.sroa.0.2, %for.end533 ], [ %accum_influences.sroa.0.2, %call5.i.i.i.i2.i.i.noexc274 ], [ null, %if.end.i203 ] + %joint_weight_indices.sroa.0.0 = phi ptr [ null, %for.end533 ], [ %call5.i.i.i.i2.i.i275, %call5.i.i.i.i2.i.i.noexc274 ], [ null, %if.end.i203 ] + %retval.0.i.i.i.i.i.i.i272 = phi ptr [ null, %for.end533 ], [ %add.ptr.i.i.i265, %call5.i.i.i.i2.i.i.noexc274 ], [ null, %if.end.i203 ] %59 = load i32, ptr %mNumBones, align 8 - %cmp543536.not = icmp eq i32 %59, 0 - br i1 %cmp543536.not, label %for.cond598.preheader, label %for.cond546.preheader.lr.ph + %cmp543541.not = icmp eq i32 %59, 0 + br i1 %cmp543541.not, label %for.cond598.preheader, label %for.cond546.preheader.lr.ph for.cond546.preheader.lr.ph: ; preds = %invoke.cont539 %mBones547 = getelementptr inbounds %struct.aiMesh, ptr %2, i64 0, i32 12 - %.pre565 = load ptr, ptr %mBones547, align 8 + %.pre571 = load ptr, ptr %mBones547, align 8 %60 = zext i32 %59 to i64 br label %for.cond546.preheader for.cond546.preheader: ; preds = %for.cond546.preheader.lr.ph, %for.inc594 - %indvars.iv558 = phi i64 [ 0, %for.cond546.preheader.lr.ph ], [ %indvars.iv.next559, %for.inc594 ] - %weight_index.0537 = phi i32 [ 0, %for.cond546.preheader.lr.ph ], [ %weight_index.1.lcssa, %for.inc594 ] - %arrayidx549530 = getelementptr inbounds ptr, ptr %.pre565, i64 %indvars.iv558 - %61 = load ptr, ptr %arrayidx549530, align 8 - %mNumWeights550531 = getelementptr inbounds %struct.aiBone, ptr %61, i64 0, i32 1 - %62 = load i32, ptr %mNumWeights550531, align 4 - %cmp551532.not = icmp eq i32 %62, 0 - br i1 %cmp551532.not, label %for.inc594, label %for.body552.preheader + %indvars.iv564 = phi i64 [ 0, %for.cond546.preheader.lr.ph ], [ %indvars.iv.next565, %for.inc594 ] + %weight_index.0542 = phi i32 [ 0, %for.cond546.preheader.lr.ph ], [ %weight_index.1.lcssa, %for.inc594 ] + %arrayidx549535 = getelementptr inbounds ptr, ptr %.pre571, i64 %indvars.iv564 + %61 = load ptr, ptr %arrayidx549535, align 8 + %mNumWeights550536 = getelementptr inbounds %struct.aiBone, ptr %61, i64 0, i32 1 + %62 = load i32, ptr %mNumWeights550536, align 4 + %cmp551537.not = icmp eq i32 %62, 0 + br i1 %cmp551537.not, label %for.inc594, label %for.body552.preheader for.body552.preheader: ; preds = %for.cond546.preheader - %63 = trunc i64 %indvars.iv558 to i32 - %arrayidx549 = getelementptr inbounds ptr, ptr %.pre565, i64 %indvars.iv558 + %63 = trunc i64 %indvars.iv564 to i32 + %arrayidx549 = getelementptr inbounds ptr, ptr %.pre571, i64 %indvars.iv564 br label %for.body552 for.cond598.preheader: ; preds = %for.inc594, %invoke.cont539 - %cmp600539.not = icmp eq ptr %retval.0.i.i.i.i.i.i.i271, %joint_weight_indices.sroa.0.0 - br i1 %cmp600539.not, label %_ZNSt6vectorIiSaIiEE5clearEv.exit, label %for.body601.preheader + %cmp600544.not = icmp eq ptr %retval.0.i.i.i.i.i.i.i272, %joint_weight_indices.sroa.0.0 + br i1 %cmp600544.not, label %_ZNSt6vectorIiSaIiEE5clearEv.exit, label %for.body601.preheader for.body601.preheader: ; preds = %for.cond598.preheader - %sub.ptr.lhs.cast.i283 = ptrtoint ptr %retval.0.i.i.i.i.i.i.i271 to i64 - %sub.ptr.rhs.cast.i284 = ptrtoint ptr %joint_weight_indices.sroa.0.0 to i64 - %sub.ptr.sub.i285 = sub i64 %sub.ptr.lhs.cast.i283, %sub.ptr.rhs.cast.i284 - %sub.ptr.div.i286 = ashr exact i64 %sub.ptr.sub.i285, 2 - %umax561 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i286, i64 1) + %sub.ptr.lhs.cast.i284 = ptrtoint ptr %retval.0.i.i.i.i.i.i.i272 to i64 + %sub.ptr.rhs.cast.i285 = ptrtoint ptr %joint_weight_indices.sroa.0.0 to i64 + %sub.ptr.sub.i286 = sub i64 %sub.ptr.lhs.cast.i284, %sub.ptr.rhs.cast.i285 + %sub.ptr.div.i287 = ashr exact i64 %sub.ptr.sub.i286, 2 + %umax567 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i287, i64 1) br label %for.body601 for.body552: ; preds = %for.body552.preheader, %for.end589 - %indvars.iv555 = phi i64 [ 0, %for.body552.preheader ], [ %indvars.iv.next556, %for.end589 ] + %indvars.iv561 = phi i64 [ 0, %for.body552.preheader ], [ %indvars.iv.next562, %for.end589 ] %64 = phi ptr [ %61, %for.body552.preheader ], [ %73, %for.end589 ] - %weight_index.1533 = phi i32 [ %weight_index.0537, %for.body552.preheader ], [ %inc590, %for.end589 ] + %weight_index.1538 = phi i32 [ %weight_index.0542, %for.body552.preheader ], [ %inc590, %for.end589 ] %mWeights556 = getelementptr inbounds %struct.aiBone, ptr %64, i64 0, i32 4 %65 = load ptr, ptr %mWeights556, align 8 - %arrayidx558 = getelementptr inbounds %struct.aiVertexWeight, ptr %65, i64 %indvars.iv555 + %arrayidx558 = getelementptr inbounds %struct.aiVertexWeight, ptr %65, i64 %indvars.iv561 %66 = load i32, ptr %arrayidx558, align 4 %conv561 = zext i32 %66 to i64 - %add.ptr.i275 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %conv561 - %67 = load i32, ptr %add.ptr.i275, align 4 - %cmp563528.not = icmp eq i32 %67, 0 - br i1 %cmp563528.not, label %for.end589, label %for.body564.lr.ph + %add.ptr.i276 = getelementptr inbounds i32, ptr %num_influences.sroa.0.0, i64 %conv561 + %67 = load i32, ptr %add.ptr.i276, align 4 + %cmp563533.not = icmp eq i32 %67, 0 + br i1 %cmp563533.not, label %for.end589, label %for.body564.lr.ph for.body564.lr.ph: ; preds = %for.body552 - %add.ptr.i276 = getelementptr inbounds i32, ptr %accum_influences.sroa.0.1.lcssa573, i64 %conv561 - %68 = load i32, ptr %add.ptr.i276, align 4 + %add.ptr.i277 = getelementptr inbounds i32, ptr %accum_influences.sroa.0.1.lcssa579, i64 %conv561 + %68 = load i32, ptr %add.ptr.i277, align 4 %wide.trip.count = zext i32 %67 to i64 br label %for.body564 for.body564: ; preds = %for.body564.lr.ph, %for.inc587 - %indvars.iv551 = phi i64 [ 0, %for.body564.lr.ph ], [ %indvars.iv.next552, %for.inc587 ] - %69 = trunc i64 %indvars.iv551 to i32 + %indvars.iv557 = phi i64 [ 0, %for.body564.lr.ph ], [ %indvars.iv.next558, %for.inc587 ] + %69 = trunc i64 %indvars.iv557 to i32 %add567 = add i32 %68, %69 %mul568 = shl i32 %add567, 1 %conv569 = zext i32 %mul568 to i64 - %add.ptr.i277 = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %conv569 - %70 = load i32, ptr %add.ptr.i277, align 4 + %add.ptr.i278 = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %conv569 + %70 = load i32, ptr %add.ptr.i278, align 4 %cmp571 = icmp eq i32 %70, -1 br i1 %cmp571, label %if.then572, label %for.inc587 if.then572: ; preds = %for.body564 - %add.ptr.i277.le = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %conv569 - store i32 %63, ptr %add.ptr.i277.le, align 4 - %71 = load i32, ptr %add.ptr.i276, align 4 + %add.ptr.i278.le = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %conv569 + store i32 %63, ptr %add.ptr.i278.le, align 4 + %71 = load i32, ptr %add.ptr.i277, align 4 %add581 = add i32 %71, %69 %mul582 = shl i32 %add581, 1 %add583 = or disjoint i32 %mul582, 1 %conv584 = zext i32 %add583 to i64 - %add.ptr.i281 = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %conv584 - store i32 %weight_index.1533, ptr %add.ptr.i281, align 4 + %add.ptr.i282 = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %conv584 + store i32 %weight_index.1538, ptr %add.ptr.i282, align 4 br label %for.end589 -lpad538: ; preds = %if.end.i.i.i.i.i.i.i261 +lpad538: ; preds = %if.end.i.i.i.i.i.i.i262 %72 = landingpad { ptr, i32 } cleanup br label %ehcleanup for.inc587: ; preds = %for.body564 - %indvars.iv.next552 = add nuw nsw i64 %indvars.iv551, 1 - %exitcond554.not = icmp eq i64 %indvars.iv.next552, %wide.trip.count - br i1 %exitcond554.not, label %for.end589, label %for.body564, !llvm.loop !41 + %indvars.iv.next558 = add nuw nsw i64 %indvars.iv557, 1 + %exitcond560.not = icmp eq i64 %indvars.iv.next558, %wide.trip.count + br i1 %exitcond560.not, label %for.end589, label %for.body564, !llvm.loop !41 for.end589: ; preds = %for.inc587, %for.body552, %if.then572 - %inc590 = add i32 %weight_index.1533, 1 - %indvars.iv.next556 = add nuw nsw i64 %indvars.iv555, 1 + %inc590 = add i32 %weight_index.1538, 1 + %indvars.iv.next562 = add nuw nsw i64 %indvars.iv561, 1 %73 = load ptr, ptr %arrayidx549, align 8 %mNumWeights550 = getelementptr inbounds %struct.aiBone, ptr %73, i64 0, i32 1 %74 = load i32, ptr %mNumWeights550, align 4 %75 = zext i32 %74 to i64 - %cmp551 = icmp ult i64 %indvars.iv.next556, %75 + %cmp551 = icmp ult i64 %indvars.iv.next562, %75 br i1 %cmp551, label %for.body552, label %for.inc594, !llvm.loop !42 for.inc594: ; preds = %for.end589, %for.cond546.preheader - %weight_index.1.lcssa = phi i32 [ %weight_index.0537, %for.cond546.preheader ], [ %inc590, %for.end589 ] - %indvars.iv.next559 = add nuw nsw i64 %indvars.iv558, 1 - %cmp543 = icmp ult i64 %indvars.iv.next559, %60 + %weight_index.1.lcssa = phi i32 [ %weight_index.0542, %for.cond546.preheader ], [ %inc590, %for.end589 ] + %indvars.iv.next565 = add nuw nsw i64 %indvars.iv564, 1 + %cmp543 = icmp ult i64 %indvars.iv.next565, %60 br i1 %cmp543, label %for.cond546.preheader, label %for.cond598.preheader, !llvm.loop !43 for.body601: ; preds = %for.body601.preheader, %for.inc610 - %i597.0540 = phi i64 [ %inc611, %for.inc610 ], [ 0, %for.body601.preheader ] - %add.ptr.i287 = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %i597.0540 - %76 = load i32, ptr %add.ptr.i287, align 4 + %i597.0545 = phi i64 [ %inc611, %for.inc610 ], [ 0, %for.body601.preheader ] + %add.ptr.i288 = getelementptr inbounds i32, ptr %joint_weight_indices.sroa.0.0, i64 %i597.0545 + %76 = load i32, ptr %add.ptr.i288, align 4 %call607 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, i32 noundef %76) to label %invoke.cont606 unwind label %lpad605.thread @@ -10527,23 +10531,23 @@ invoke.cont606: ; preds = %for.body601 to label %for.inc610 unwind label %lpad605.thread for.inc610: ; preds = %invoke.cont606 - %inc611 = add nuw i64 %i597.0540, 1 - %exitcond562.not = icmp eq i64 %inc611, %umax561 - br i1 %exitcond562.not, label %_ZNSt6vectorIiSaIiEE5clearEv.exit, label %for.body601, !llvm.loop !44 + %inc611 = add nuw i64 %i597.0545, 1 + %exitcond568.not = icmp eq i64 %inc611, %umax567 + br i1 %exitcond568.not, label %_ZNSt6vectorIiSaIiEE5clearEv.exit, label %for.body601, !llvm.loop !44 lpad605.thread: ; preds = %invoke.cont606, %for.body601 %lpad.thr_comm = landingpad { ptr, i32 } cleanup - br label %if.then.i.i.i289 + br label %if.then.i.i.i290 lpad605: ; preds = %invoke.cont640, %invoke.cont629, %invoke.cont618, %invoke.cont648, %invoke.cont646, %invoke.cont642, %invoke.cont637, %invoke.cont635, %invoke.cont631, %invoke.cont626, %invoke.cont624, %invoke.cont620, %invoke.cont615, %_ZNSt6vectorIiSaIiEE5clearEv.exit %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup - %tobool.not.i.i.i288 = icmp eq ptr %joint_weight_indices.sroa.0.0, null - br i1 %tobool.not.i.i.i288, label %ehcleanup, label %if.then.i.i.i289 + %tobool.not.i.i.i289 = icmp eq ptr %joint_weight_indices.sroa.0.0, null + br i1 %tobool.not.i.i.i289, label %ehcleanup, label %if.then.i.i.i290 -if.then.i.i.i289: ; preds = %lpad605.thread, %lpad605 - %lpad.phi438 = phi { ptr, i32 } [ %lpad.thr_comm, %lpad605.thread ], [ %lpad.thr_comm.split-lp, %lpad605 ] +if.then.i.i.i290: ; preds = %lpad605.thread, %lpad605 + %lpad.phi437 = phi { ptr, i32 } [ %lpad.thr_comm, %lpad605.thread ], [ %lpad.thr_comm.split-lp, %lpad605 ] call void @_ZdlPv(ptr noundef nonnull %joint_weight_indices.sroa.0.0) #23 br label %ehcleanup @@ -10556,9 +10560,9 @@ invoke.cont615: ; preds = %_ZNSt6vectorIiSaIiE to label %invoke.cont618 unwind label %lpad605 invoke.cont618: ; preds = %invoke.cont615 - %call.i301 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i302 = add i64 %call.i301, -2 - %call3.i303 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i302, i64 noundef -1) + %call.i302 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i303 = add i64 %call.i302, -2 + %call3.i304 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i303, i64 noundef -1) to label %invoke.cont620 unwind label %lpad605 invoke.cont620: ; preds = %invoke.cont618 @@ -10574,9 +10578,9 @@ invoke.cont626: ; preds = %invoke.cont624 to label %invoke.cont629 unwind label %lpad605 invoke.cont629: ; preds = %invoke.cont626 - %call.i306 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i307 = add i64 %call.i306, -2 - %call3.i308 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i307, i64 noundef -1) + %call.i307 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i308 = add i64 %call.i307, -2 + %call3.i309 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i308, i64 noundef -1) to label %invoke.cont631 unwind label %lpad605 invoke.cont631: ; preds = %invoke.cont629 @@ -10592,9 +10596,9 @@ invoke.cont637: ; preds = %invoke.cont635 to label %invoke.cont640 unwind label %lpad605 invoke.cont640: ; preds = %invoke.cont637 - %call.i311 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i312 = add i64 %call.i311, -2 - %call3.i313 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i312, i64 noundef -1) + %call.i312 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i313 = add i64 %call.i312, -2 + %call3.i314 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i313, i64 noundef -1) to label %invoke.cont642 unwind label %lpad605 invoke.cont642: ; preds = %invoke.cont640 @@ -10610,95 +10614,95 @@ invoke.cont648: ; preds = %invoke.cont646 to label %invoke.cont651 unwind label %lpad605 invoke.cont651: ; preds = %invoke.cont648 - %tobool.not.i.i.i315 = icmp eq ptr %joint_weight_indices.sroa.0.0, null - br i1 %tobool.not.i.i.i315, label %_ZNSt6vectorIiSaIiEED2Ev.exit317, label %if.then.i.i.i316 + %tobool.not.i.i.i316 = icmp eq ptr %joint_weight_indices.sroa.0.0, null + br i1 %tobool.not.i.i.i316, label %_ZNSt6vectorIiSaIiEED2Ev.exit318, label %if.then.i.i.i317 -if.then.i.i.i316: ; preds = %invoke.cont651 +if.then.i.i.i317: ; preds = %invoke.cont651 call void @_ZdlPv(ptr noundef nonnull %joint_weight_indices.sroa.0.0) #23 - br label %_ZNSt6vectorIiSaIiEED2Ev.exit317 + br label %_ZNSt6vectorIiSaIiEED2Ev.exit318 -_ZNSt6vectorIiSaIiEED2Ev.exit317: ; preds = %invoke.cont651, %if.then.i.i.i316 - %tobool.not.i.i.i318 = icmp eq ptr %accum_influences.sroa.0.1.lcssa573, null - br i1 %tobool.not.i.i.i318, label %_ZNSt6vectorIjSaIjEED2Ev.exit, label %if.then.i.i.i319 +_ZNSt6vectorIiSaIiEED2Ev.exit318: ; preds = %invoke.cont651, %if.then.i.i.i317 + %tobool.not.i.i.i319 = icmp eq ptr %accum_influences.sroa.0.1.lcssa579, null + br i1 %tobool.not.i.i.i319, label %_ZNSt6vectorIjSaIjEED2Ev.exit, label %if.then.i.i.i320 -if.then.i.i.i319: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit317 - call void @_ZdlPv(ptr noundef nonnull %accum_influences.sroa.0.1.lcssa573) #23 +if.then.i.i.i320: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit318 + call void @_ZdlPv(ptr noundef nonnull %accum_influences.sroa.0.1.lcssa579) #23 br label %_ZNSt6vectorIjSaIjEED2Ev.exit -_ZNSt6vectorIjSaIjEED2Ev.exit: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit317, %if.then.i.i.i319 - %tobool.not.i.i.i320 = icmp eq ptr %num_influences.sroa.0.0, null - br i1 %tobool.not.i.i.i320, label %_ZNSt6vectorIjSaIjEED2Ev.exit322, label %if.then.i.i.i321 +_ZNSt6vectorIjSaIjEED2Ev.exit: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit318, %if.then.i.i.i320 + %tobool.not.i.i.i321 = icmp eq ptr %num_influences.sroa.0.0, null + br i1 %tobool.not.i.i.i321, label %_ZNSt6vectorIjSaIjEED2Ev.exit323, label %if.then.i.i.i322 -if.then.i.i.i321: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit +if.then.i.i.i322: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit call void @_ZdlPv(ptr noundef nonnull %num_influences.sroa.0.0) #23 - br label %_ZNSt6vectorIjSaIjEED2Ev.exit322 + br label %_ZNSt6vectorIjSaIjEED2Ev.exit323 -_ZNSt6vectorIjSaIjEED2Ev.exit322: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit, %if.then.i.i.i321 - %tobool.not.i.i.i323 = icmp eq ptr %skin_weights.sroa.0.1.lcssa, null - br i1 %tobool.not.i.i.i323, label %_ZNSt6vectorIfSaIfEED2Ev.exit, label %if.then.i.i.i324 +_ZNSt6vectorIjSaIjEED2Ev.exit323: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit, %if.then.i.i.i322 + %tobool.not.i.i.i324 = icmp eq ptr %skin_weights.sroa.0.1.lcssa, null + br i1 %tobool.not.i.i.i324, label %_ZNSt6vectorIfSaIfEED2Ev.exit, label %if.then.i.i.i325 -if.then.i.i.i324: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit322 +if.then.i.i.i325: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit323 call void @_ZdlPv(ptr noundef nonnull %skin_weights.sroa.0.1.lcssa) #23 br label %_ZNSt6vectorIfSaIfEED2Ev.exit -_ZNSt6vectorIfSaIfEED2Ev.exit: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit322, %if.then.i.i.i324 - %tobool.not.i.i.i325 = icmp eq ptr %bind_poses.sroa.0.1.lcssa, null - br i1 %tobool.not.i.i.i325, label %_ZNSt6vectorIfSaIfEED2Ev.exit327, label %if.then.i.i.i326 +_ZNSt6vectorIfSaIfEED2Ev.exit: ; preds = %_ZNSt6vectorIjSaIjEED2Ev.exit323, %if.then.i.i.i325 + %tobool.not.i.i.i326 = icmp eq ptr %bind_poses.sroa.0.1.lcssa, null + br i1 %tobool.not.i.i.i326, label %_ZNSt6vectorIfSaIfEED2Ev.exit328, label %if.then.i.i.i327 -if.then.i.i.i326: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit +if.then.i.i.i327: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit call void @_ZdlPv(ptr noundef nonnull %bind_poses.sroa.0.1.lcssa) #23 - br label %_ZNSt6vectorIfSaIfEED2Ev.exit327 + br label %_ZNSt6vectorIfSaIfEED2Ev.exit328 -_ZNSt6vectorIfSaIfEED2Ev.exit327: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit, %if.then.i.i.i326 +_ZNSt6vectorIfSaIfEED2Ev.exit328: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit, %if.then.i.i.i327 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %namestr) #22 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %idstr) #22 br label %return -return: ; preds = %entry, %lor.lhs.false, %lor.lhs.false3, %_ZNSt6vectorIfSaIfEED2Ev.exit327 +return: ; preds = %entry, %lor.lhs.false, %lor.lhs.false3, %_ZNSt6vectorIfSaIfEED2Ev.exit328 ret void -ehcleanup: ; preds = %lpad522.loopexit, %lpad522.loopexit.split-lp, %if.then.i.i.i289, %lpad605, %lpad538 - %accum_influences.sroa.0.4 = phi ptr [ %accum_influences.sroa.0.2, %lpad538 ], [ %accum_influences.sroa.0.1.lcssa573, %lpad605 ], [ %accum_influences.sroa.0.1.lcssa573, %if.then.i.i.i289 ], [ %accum_influences.sroa.0.1522, %lpad522.loopexit ], [ %accum_influences.sroa.0.3.ph, %lpad522.loopexit.split-lp ] - %.pn = phi { ptr, i32 } [ %72, %lpad538 ], [ %lpad.thr_comm.split-lp, %lpad605 ], [ %lpad.phi438, %if.then.i.i.i289 ], [ %lpad.loopexit, %lpad522.loopexit ], [ %lpad.loopexit.split-lp, %lpad522.loopexit.split-lp ] - %tobool.not.i.i.i328 = icmp eq ptr %accum_influences.sroa.0.4, null - br i1 %tobool.not.i.i.i328, label %ehcleanup653, label %if.then.i.i.i329 +ehcleanup: ; preds = %lpad522.loopexit, %lpad522.loopexit.split-lp, %if.then.i.i.i290, %lpad605, %lpad538 + %accum_influences.sroa.0.4 = phi ptr [ %accum_influences.sroa.0.2, %lpad538 ], [ %accum_influences.sroa.0.1.lcssa579, %lpad605 ], [ %accum_influences.sroa.0.1.lcssa579, %if.then.i.i.i290 ], [ %accum_influences.sroa.0.1527, %lpad522.loopexit ], [ %accum_influences.sroa.0.3.ph, %lpad522.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %72, %lpad538 ], [ %lpad.thr_comm.split-lp, %lpad605 ], [ %lpad.phi437, %if.then.i.i.i290 ], [ %lpad.loopexit, %lpad522.loopexit ], [ %lpad.loopexit.split-lp, %lpad522.loopexit.split-lp ] + %tobool.not.i.i.i329 = icmp eq ptr %accum_influences.sroa.0.4, null + br i1 %tobool.not.i.i.i329, label %ehcleanup653, label %if.then.i.i.i330 -if.then.i.i.i329: ; preds = %ehcleanup +if.then.i.i.i330: ; preds = %ehcleanup call void @_ZdlPv(ptr noundef nonnull %accum_influences.sroa.0.4) #23 br label %ehcleanup653 -ehcleanup653: ; preds = %lpad499.loopexit.split-lp, %if.then.i.i.i329, %ehcleanup - %.pn68 = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %.pn, %if.then.i.i.i329 ], [ %lpad.loopexit.split-lp441, %lpad499.loopexit.split-lp ] - %tobool.not.i.i.i331 = icmp eq ptr %num_influences.sroa.0.0, null - br i1 %tobool.not.i.i.i331, label %ehcleanup654, label %if.then.i.i.i332 +ehcleanup653: ; preds = %lpad499.loopexit.split-lp, %if.then.i.i.i330, %ehcleanup + %.pn68 = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %.pn, %if.then.i.i.i330 ], [ %lpad.loopexit.split-lp440, %lpad499.loopexit.split-lp ] + %tobool.not.i.i.i332 = icmp eq ptr %num_influences.sroa.0.0, null + br i1 %tobool.not.i.i.i332, label %ehcleanup654, label %if.then.i.i.i333 -if.then.i.i.i332: ; preds = %ehcleanup653.thread, %ehcleanup653 - %.pn68577 = phi { ptr, i32 } [ %lpad.loopexit440, %ehcleanup653.thread ], [ %.pn68, %ehcleanup653 ] +if.then.i.i.i333: ; preds = %ehcleanup653.thread, %ehcleanup653 + %.pn68583 = phi { ptr, i32 } [ %lpad.loopexit439, %ehcleanup653.thread ], [ %.pn68, %ehcleanup653 ] call void @_ZdlPv(ptr noundef nonnull %num_influences.sroa.0.0) #23 br label %ehcleanup654 -ehcleanup654: ; preds = %lpad325.loopexit, %lpad325.loopexit.split-lp, %if.then.i.i.i332, %ehcleanup653, %lpad.i167, %lpad461, %lpad354 - %skin_weights.sroa.0.6 = phi ptr [ %skin_weights.sroa.0.1.lcssa, %lpad461 ], [ %skin_weights.sroa.0.1.lcssa, %lpad354 ], [ %skin_weights.sroa.0.1.lcssa, %lpad.i167 ], [ %skin_weights.sroa.0.1.lcssa, %ehcleanup653 ], [ %skin_weights.sroa.0.1.lcssa, %if.then.i.i.i332 ], [ %skin_weights.sroa.0.2494, %lpad325.loopexit ], [ %skin_weights.sroa.0.4.ph, %lpad325.loopexit.split-lp ] - %.pn70 = phi { ptr, i32 } [ %54, %lpad461 ], [ %53, %lpad354 ], [ %41, %lpad.i167 ], [ %.pn68, %ehcleanup653 ], [ %.pn68577, %if.then.i.i.i332 ], [ %lpad.loopexit443, %lpad325.loopexit ], [ %lpad.loopexit.split-lp444, %lpad325.loopexit.split-lp ] - %tobool.not.i.i.i334 = icmp eq ptr %skin_weights.sroa.0.6, null - br i1 %tobool.not.i.i.i334, label %ehcleanup655, label %if.then.i.i.i335 +ehcleanup654: ; preds = %lpad325.loopexit, %lpad325.loopexit.split-lp, %if.then.i.i.i333, %ehcleanup653, %lpad.i168, %lpad461, %lpad354 + %skin_weights.sroa.0.6 = phi ptr [ %skin_weights.sroa.0.1.lcssa, %lpad461 ], [ %skin_weights.sroa.0.1.lcssa, %lpad354 ], [ %skin_weights.sroa.0.1.lcssa, %lpad.i168 ], [ %skin_weights.sroa.0.1.lcssa, %ehcleanup653 ], [ %skin_weights.sroa.0.1.lcssa, %if.then.i.i.i333 ], [ %skin_weights.sroa.0.2499, %lpad325.loopexit ], [ %skin_weights.sroa.0.4.ph, %lpad325.loopexit.split-lp ] + %.pn70 = phi { ptr, i32 } [ %54, %lpad461 ], [ %53, %lpad354 ], [ %41, %lpad.i168 ], [ %.pn68, %ehcleanup653 ], [ %.pn68583, %if.then.i.i.i333 ], [ %lpad.loopexit442, %lpad325.loopexit ], [ %lpad.loopexit.split-lp443, %lpad325.loopexit.split-lp ] + %tobool.not.i.i.i335 = icmp eq ptr %skin_weights.sroa.0.6, null + br i1 %tobool.not.i.i.i335, label %ehcleanup655, label %if.then.i.i.i336 -if.then.i.i.i335: ; preds = %ehcleanup654 +if.then.i.i.i336: ; preds = %ehcleanup654 call void @_ZdlPv(ptr noundef nonnull %skin_weights.sroa.0.6) #23 br label %ehcleanup655 -ehcleanup655: ; preds = %lpad282.loopexit, %lpad282.loopexit.split-lp, %if.then.i.i.i335, %ehcleanup654, %lpad.i, %lpad319 - %bind_poses.sroa.0.6 = phi ptr [ %bind_poses.sroa.0.1.lcssa, %lpad319 ], [ %bind_poses.sroa.0.1.lcssa, %lpad.i ], [ %bind_poses.sroa.0.1.lcssa, %ehcleanup654 ], [ %bind_poses.sroa.0.1.lcssa, %if.then.i.i.i335 ], [ %bind_poses.sroa.0.2482, %lpad282.loopexit ], [ %bind_poses.sroa.0.4.ph, %lpad282.loopexit.split-lp ] - %.pn72 = phi { ptr, i32 } [ %38, %lpad319 ], [ %23, %lpad.i ], [ %.pn70, %ehcleanup654 ], [ %.pn70, %if.then.i.i.i335 ], [ %lpad.loopexit446, %lpad282.loopexit ], [ %lpad.loopexit.split-lp447, %lpad282.loopexit.split-lp ] - %tobool.not.i.i.i337 = icmp eq ptr %bind_poses.sroa.0.6, null - br i1 %tobool.not.i.i.i337, label %ehcleanup656, label %if.then.i.i.i338 +ehcleanup655: ; preds = %lpad282.loopexit, %lpad282.loopexit.split-lp, %if.then.i.i.i336, %ehcleanup654, %lpad.i, %lpad319 + %bind_poses.sroa.0.6 = phi ptr [ %bind_poses.sroa.0.1.lcssa, %lpad319 ], [ %bind_poses.sroa.0.1.lcssa, %lpad.i ], [ %bind_poses.sroa.0.1.lcssa, %ehcleanup654 ], [ %bind_poses.sroa.0.1.lcssa, %if.then.i.i.i336 ], [ %bind_poses.sroa.0.2487, %lpad282.loopexit ], [ %bind_poses.sroa.0.4.ph, %lpad282.loopexit.split-lp ] + %.pn72 = phi { ptr, i32 } [ %38, %lpad319 ], [ %23, %lpad.i ], [ %.pn70, %ehcleanup654 ], [ %.pn70, %if.then.i.i.i336 ], [ %lpad.loopexit445, %lpad282.loopexit ], [ %lpad.loopexit.split-lp446, %lpad282.loopexit.split-lp ] + %tobool.not.i.i.i338 = icmp eq ptr %bind_poses.sroa.0.6, null + br i1 %tobool.not.i.i.i338, label %ehcleanup656, label %if.then.i.i.i339 -if.then.i.i.i338: ; preds = %ehcleanup655 +if.then.i.i.i339: ; preds = %ehcleanup655 call void @_ZdlPv(ptr noundef nonnull %bind_poses.sroa.0.6) #23 br label %ehcleanup656 -ehcleanup656: ; preds = %lpad5.loopexit, %lpad5.loopexit.split-lp, %if.then.i.i.i338, %ehcleanup655, %lpad190 - %.pn74 = phi { ptr, i32 } [ %14, %lpad190 ], [ %.pn72, %ehcleanup655 ], [ %.pn72, %if.then.i.i.i338 ], [ %lpad.loopexit449, %lpad5.loopexit ], [ %lpad.loopexit.split-lp450, %lpad5.loopexit.split-lp ] +ehcleanup656: ; preds = %lpad5.loopexit, %lpad5.loopexit.split-lp, %if.then.i.i.i339, %ehcleanup655, %lpad190 + %.pn74 = phi { ptr, i32 } [ %14, %lpad190 ], [ %.pn72, %ehcleanup655 ], [ %.pn72, %if.then.i.i.i339 ], [ %lpad.loopexit448, %lpad5.loopexit ], [ %lpad.loopexit.split-lp449, %lpad5.loopexit.split-lp ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %namestr) #22 br label %ehcleanup657 @@ -14361,8 +14365,8 @@ invoke.cont20: ; preds = %invoke.cont18 invoke.cont24: ; preds = %invoke.cont20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr) #22 %6 = load i32, ptr %mNumChannels, align 8 - %cmp26608.not = icmp eq i32 %6, 0 - br i1 %cmp26608.not, label %for.end537, label %for.body.lr.ph + %cmp26617.not = icmp eq i32 %6, 0 + br i1 %cmp26617.not, label %for.end537, label %for.body.lr.ph for.body.lr.ph: ; preds = %invoke.cont24 %mChannels = getelementptr inbounds %struct.aiAnimation, ptr %2, i64 0, i32 4 @@ -14376,22 +14380,22 @@ for.body.lr.ph: ; preds = %invoke.cont24 %ref.tmp114.sroa.24.0.mat.sroa_idx = getelementptr inbounds i8, ptr %mat, i64 44 %ref.tmp114.sroa.26.0.mat.sroa_idx = getelementptr inbounds i8, ptr %mat, i64 48 %ref.tmp114.sroa.32.0.mat.sroa_idx = getelementptr inbounds i8, ptr %mat, i64 60 - %_M_finish.i182 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %names, i64 0, i32 1 + %_M_finish.i183 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %names, i64 0, i32 1 %_M_end_of_storage.i = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %names, i64 0, i32 2 br label %for.body for.cond326.preheader: ; preds = %for.inc322 - %cmp329620.not = icmp eq i32 %208, 0 - br i1 %cmp329620.not, label %for.end537, label %for.body330.lr.ph + %cmp329629.not = icmp eq i32 %208, 0 + br i1 %cmp329629.not, label %for.end537, label %for.body330.lr.ph for.body330.lr.ph: ; preds = %for.cond326.preheader %mChannels332 = getelementptr inbounds %struct.aiAnimation, ptr %2, i64 0, i32 4 br label %for.body330 for.body: ; preds = %for.body.lr.ph, %for.inc322 - %a.0618 = phi i64 [ 0, %for.body.lr.ph ], [ %inc323, %for.inc322 ] + %a.0627 = phi i64 [ 0, %for.body.lr.ph ], [ %inc323, %for.inc322 ] %7 = load ptr, ptr %mChannels, align 8 - %arrayidx27 = getelementptr inbounds ptr, ptr %7, i64 %a.0618 + %arrayidx27 = getelementptr inbounds ptr, ptr %7, i64 %a.0627 %8 = load ptr, ptr %arrayidx27, align 8 %mNumPositionKeys = getelementptr inbounds %struct.aiNodeAnim, ptr %8, i64 0, i32 1 %9 = load i32, ptr %mNumPositionKeys, align 4 @@ -14485,32 +14489,32 @@ invoke.cont41: ; preds = %invoke.cont39 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp36) #22 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp37) #22 %19 = load i32, ptr %mNumPositionKeys, align 4 - %cmp48575.not = icmp eq i32 %19, 0 - br i1 %cmp48575.not, label %for.end, label %for.body49.lr.ph + %cmp48584.not = icmp eq i32 %19, 0 + br i1 %cmp48584.not, label %for.end, label %for.body49.lr.ph for.body49.lr.ph: ; preds = %invoke.cont41 %mPositionKeys = getelementptr inbounds %struct.aiNodeAnim, ptr %8, i64 0, i32 2 br label %for.body49 for.body49: ; preds = %for.body49.lr.ph, %for.inc - %i.0579 = phi i64 [ 0, %for.body49.lr.ph ], [ %inc, %for.inc ] - %frames.sroa.0.1578 = phi ptr [ null, %for.body49.lr.ph ], [ %frames.sroa.0.2, %for.inc ] - %frames.sroa.8.1577 = phi ptr [ null, %for.body49.lr.ph ], [ %frames.sroa.8.2, %for.inc ] - %frames.sroa.15.1576 = phi ptr [ null, %for.body49.lr.ph ], [ %frames.sroa.15.2, %for.inc ] + %i.0588 = phi i64 [ 0, %for.body49.lr.ph ], [ %inc, %for.inc ] + %frames.sroa.0.1587 = phi ptr [ null, %for.body49.lr.ph ], [ %frames.sroa.0.2, %for.inc ] + %frames.sroa.8.1586 = phi ptr [ null, %for.body49.lr.ph ], [ %frames.sroa.8.2, %for.inc ] + %frames.sroa.15.1585 = phi ptr [ null, %for.body49.lr.ph ], [ %frames.sroa.15.2, %for.inc ] %20 = load ptr, ptr %mPositionKeys, align 8 - %arrayidx51 = getelementptr inbounds %struct.aiVectorKey, ptr %20, i64 %i.0579 + %arrayidx51 = getelementptr inbounds %struct.aiVectorKey, ptr %20, i64 %i.0588 %21 = load double, ptr %arrayidx51, align 8 %conv52 = fptrunc double %21 to float - %cmp.not.i.i = icmp eq ptr %frames.sroa.8.1577, %frames.sroa.15.1576 + %cmp.not.i.i = icmp eq ptr %frames.sroa.8.1586, %frames.sroa.15.1585 br i1 %cmp.not.i.i, label %if.else.i.i, label %if.then.i.i if.then.i.i: ; preds = %for.body49 - store float %conv52, ptr %frames.sroa.8.1577, align 4 + store float %conv52, ptr %frames.sroa.8.1586, align 4 br label %for.inc if.else.i.i: ; preds = %for.body49 - %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %frames.sroa.8.1577 to i64 - %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %frames.sroa.0.1578 to i64 + %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %frames.sroa.8.1586 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %frames.sroa.0.1587 to i64 %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i %cmp.i.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775804 br i1 %cmp.i.i.i.i, label %if.then.i.i.i.i, label %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i.i.i @@ -14545,16 +14549,16 @@ _ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i.i: ; preds = %cond.true.i.i. br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i.i if.then.i.i.i.i.i.i: ; preds = %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i.i - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %cond.i10.i.i.i, ptr align 4 %frames.sroa.0.1578, i64 %sub.ptr.sub.i.i.i.i.i, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %cond.i10.i.i.i, ptr align 4 %frames.sroa.0.1587, i64 %sub.ptr.sub.i.i.i.i.i, i1 false) br label %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i.i _ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i.i: ; preds = %if.then.i.i.i.i.i.i, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i.i %add.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %cond.i10.i.i.i, i64 %sub.ptr.sub.i.i.i.i.i - %tobool.not.i.i.i.i = icmp eq ptr %frames.sroa.0.1578, null + %tobool.not.i.i.i.i = icmp eq ptr %frames.sroa.0.1587, null br i1 %tobool.not.i.i.i.i, label %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i, label %if.then.i18.i.i.i if.then.i18.i.i.i: ; preds = %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i.i - call void @_ZdlPv(ptr noundef nonnull %frames.sroa.0.1578) #23 + call void @_ZdlPv(ptr noundef nonnull %frames.sroa.0.1587) #23 br label %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i _ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i: ; preds = %if.then.i18.i.i.i, %_ZNSt6vectorIfSaIfEE11_S_relocateEPfS2_S2_RS0_.exit17.i.i.i @@ -14562,11 +14566,11 @@ _ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS br label %for.inc for.inc: ; preds = %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i, %if.then.i.i - %frames.sroa.15.2 = phi ptr [ %add.ptr19.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i ], [ %frames.sroa.15.1576, %if.then.i.i ] - %add.ptr.i.i.i.i.i.i.pn = phi ptr [ %add.ptr.i.i.i.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i ], [ %frames.sroa.8.1577, %if.then.i.i ] - %frames.sroa.0.2 = phi ptr [ %cond.i10.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i ], [ %frames.sroa.0.1578, %if.then.i.i ] + %frames.sroa.15.2 = phi ptr [ %add.ptr19.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i ], [ %frames.sroa.15.1585, %if.then.i.i ] + %add.ptr.i.i.i.i.i.i.pn = phi ptr [ %add.ptr.i.i.i.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i ], [ %frames.sroa.8.1586, %if.then.i.i ] + %frames.sroa.0.2 = phi ptr [ %cond.i10.i.i.i, %_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT_.exit.i.i ], [ %frames.sroa.0.1587, %if.then.i.i ] %frames.sroa.8.2 = getelementptr inbounds float, ptr %add.ptr.i.i.i.i.i.i.pn, i64 1 - %inc = add nuw nsw i64 %i.0579, 1 + %inc = add nuw nsw i64 %i.0588, 1 %23 = load i32, ptr %mNumPositionKeys, align 4 %conv47 = zext i32 %23 to i64 %cmp48 = icmp ult i64 %inc, %conv47 @@ -14578,12 +14582,12 @@ lpad33.loopexit: ; preds = %for.body481, %invok br label %ehcleanup549 lpad33.loopexit.split-lp.loopexit: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit105, %if.end32 - %lpad.loopexit505 = landingpad { ptr, i32 } + %lpad.loopexit504 = landingpad { ptr, i32 } cleanup br label %ehcleanup549 lpad33.loopexit.split-lp.loopexit.split-lp: ; preds = %for.end537, %invoke.cont544, %invoke.cont542, %invoke.cont538 - %lpad.loopexit.split-lp506 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp505 = landingpad { ptr, i32 } cleanup br label %ehcleanup549 @@ -14604,12 +14608,12 @@ ehcleanup44: ; preds = %lpad38, %lpad.i, %l br label %ehcleanup549 lpad53.loopexit: ; preds = %cond.true.i.i.i.i - %lpad.loopexit502 = landingpad { ptr, i32 } + %lpad.loopexit501 = landingpad { ptr, i32 } cleanup br label %lpad53 lpad53.loopexit.split-lp.loopexit: ; preds = %for.end - %lpad.loopexit508 = landingpad { ptr, i32 } + %lpad.loopexit507 = landingpad { ptr, i32 } cleanup br label %lpad53 @@ -14619,13 +14623,13 @@ lpad53.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i.i br label %lpad53 lpad53: ; preds = %lpad53.loopexit.split-lp.loopexit, %lpad53.loopexit.split-lp.loopexit.split-lp, %lpad53.loopexit - %frames.sroa.0.1515 = phi ptr [ %frames.sroa.0.1578, %lpad53.loopexit ], [ %frames.sroa.0.1.lcssa, %lpad53.loopexit.split-lp.loopexit ], [ %frames.sroa.0.1578, %lpad53.loopexit.split-lp.loopexit.split-lp ] - %lpad.phi504 = phi { ptr, i32 } [ %lpad.loopexit502, %lpad53.loopexit ], [ %lpad.loopexit508, %lpad53.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad53.loopexit.split-lp.loopexit.split-lp ] - %tobool.not.i.i.i = icmp eq ptr %frames.sroa.0.1515, null + %frames.sroa.0.1514 = phi ptr [ %frames.sroa.0.1587, %lpad53.loopexit ], [ %frames.sroa.0.1.lcssa, %lpad53.loopexit.split-lp.loopexit ], [ %frames.sroa.0.1587, %lpad53.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi503 = phi { ptr, i32 } [ %lpad.loopexit501, %lpad53.loopexit ], [ %lpad.loopexit507, %lpad53.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad53.loopexit.split-lp.loopexit.split-lp ] + %tobool.not.i.i.i = icmp eq ptr %frames.sroa.0.1514, null br i1 %tobool.not.i.i.i, label %ehcleanup549, label %if.then.i.i.i if.then.i.i.i: ; preds = %lpad53 - call void @_ZdlPv(ptr noundef nonnull %frames.sroa.0.1515) #23 + call void @_ZdlPv(ptr noundef nonnull %frames.sroa.0.1514) #23 br label %ehcleanup549 for.end: ; preds = %for.inc, %invoke.cont41 @@ -14702,8 +14706,8 @@ _ZNSt6vectorIfSaIfEE7reserveEm.exit: ; preds = %invoke.cont69, %_ZN %29 = phi i32 [ %.pre, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i ], [ %27, %invoke.cont69 ] %keyframes.sroa.23.1 = phi ptr [ %add.ptr21.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i ], [ null, %invoke.cont69 ] %keyframes.sroa.11.1 = phi ptr [ %call5.i.i.i.i119, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i ], [ null, %invoke.cont69 ] - %cmp81587.not = icmp eq i32 %29, 0 - br i1 %cmp81587.not, label %for.end136, label %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph + %cmp81596.not = icmp eq i32 %29, 0 + br i1 %cmp81596.not, label %for.end136, label %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph _ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph: ; preds = %_ZNSt6vectorIfSaIfEE7reserveEm.exit %mScalingKeys = getelementptr inbounds %struct.aiNodeAnim, ptr %8, i64 0, i32 6 @@ -14712,19 +14716,19 @@ _ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph: ; preds = %_ZNSt6vectorIfSaIfE br label %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 _ZNK12aiMatrix4x4tIfEmlERKS0_.exit152: ; preds = %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph, %for.inc134 - %i77.0591 = phi i64 [ 0, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %inc135, %for.inc134 ] - %keyframes.sroa.0.2590 = phi ptr [ %keyframes.sroa.11.1, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %keyframes.sroa.0.4, %for.inc134 ] - %keyframes.sroa.11.2589 = phi ptr [ %keyframes.sroa.11.1, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %keyframes.sroa.11.4, %for.inc134 ] - %keyframes.sroa.23.2588 = phi ptr [ %keyframes.sroa.23.1, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %keyframes.sroa.23.4, %for.inc134 ] + %i77.0600 = phi i64 [ 0, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %inc135, %for.inc134 ] + %keyframes.sroa.0.2599 = phi ptr [ %keyframes.sroa.11.1, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %keyframes.sroa.0.4, %for.inc134 ] + %keyframes.sroa.11.2598 = phi ptr [ %keyframes.sroa.11.1, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %keyframes.sroa.11.4, %for.inc134 ] + %keyframes.sroa.23.2597 = phi ptr [ %keyframes.sroa.23.1, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152.lr.ph ], [ %keyframes.sroa.23.4, %for.inc134 ] %30 = load ptr, ptr %mScalingKeys, align 8 - %mValue = getelementptr inbounds %struct.aiVectorKey, ptr %30, i64 %i77.0591, i32 1 + %mValue = getelementptr inbounds %struct.aiVectorKey, ptr %30, i64 %i77.0600, i32 1 %Scaling.sroa.0.0.copyload = load float, ptr %mValue, align 8 %Scaling.sroa.2.0.mValue.sroa_idx = getelementptr inbounds i8, ptr %mValue, i64 4 %Scaling.sroa.2.0.copyload = load float, ptr %Scaling.sroa.2.0.mValue.sroa_idx, align 4 %Scaling.sroa.3.0.mValue.sroa_idx = getelementptr inbounds i8, ptr %mValue, i64 8 %Scaling.sroa.3.0.copyload = load float, ptr %Scaling.sroa.3.0.mValue.sroa_idx, align 8 %31 = load ptr, ptr %mRotationKeys, align 8 - %mValue94 = getelementptr inbounds %struct.aiQuatKey, ptr %31, i64 %i77.0591, i32 1 + %mValue94 = getelementptr inbounds %struct.aiQuatKey, ptr %31, i64 %i77.0600, i32 1 %RotationQ.sroa.0.0.copyload = load float, ptr %mValue94, align 8 %RotationQ.sroa.2.0.mValue94.sroa_idx = getelementptr inbounds i8, ptr %mValue94, i64 4 %RotationQ.sroa.2.0.copyload = load float, ptr %RotationQ.sroa.2.0.mValue94.sroa_idx, align 4 @@ -14758,7 +14762,7 @@ _ZNK12aiMatrix4x4tIfEmlERKS0_.exit152: ; preds = %_ZNK12aiMatrix4x4tI %mul57.i = fmul float %RotationQ.sroa.3.0.copyload, %RotationQ.sroa.3.0.copyload %43 = call float @llvm.fmuladd.f32(float %RotationQ.sroa.2.0.copyload, float %RotationQ.sroa.2.0.copyload, float %mul57.i) %44 = load ptr, ptr %mPositionKeys99, align 8 - %mValue101 = getelementptr inbounds %struct.aiVectorKey, ptr %44, i64 %i77.0591, i32 1 + %mValue101 = getelementptr inbounds %struct.aiVectorKey, ptr %44, i64 %i77.0600, i32 1 %Translation.sroa.0.0.copyload = load float, ptr %mValue101, align 8 %Translation.sroa.2.0.mValue101.sroa_idx = getelementptr inbounds i8, ptr %mValue101, i64 4 %Translation.sroa.2.0.copyload = load float, ptr %Translation.sroa.2.0.mValue101.sroa_idx, align 4 @@ -14779,8 +14783,8 @@ _ZNK12aiMatrix4x4tIfEmlERKS0_.exit152: ; preds = %_ZNK12aiMatrix4x4tI %56 = fadd float %54, %55 %57 = call float @llvm.fmuladd.f32(float %mul51.i, float 0.000000e+00, float %56) %58 = call float @llvm.fmuladd.f32(float %Translation.sroa.0.0.copyload, float 0.000000e+00, float %57) - %mul13.i350 = fmul float %mul36.i, 0.000000e+00 - %59 = fadd float %mul14.i, %mul13.i350 + %mul13.i351 = fmul float %mul36.i, 0.000000e+00 + %59 = fadd float %mul14.i, %mul13.i351 %60 = fadd float %Translation.sroa.0.0.copyload, 0.000000e+00 %61 = call float @llvm.fmuladd.f32(float %33, float 0.000000e+00, float %mul21.i) %62 = call float @llvm.fmuladd.f32(float %mul44.i, float 0.000000e+00, float %61) @@ -14799,7 +14803,7 @@ _ZNK12aiMatrix4x4tIfEmlERKS0_.exit152: ; preds = %_ZNK12aiMatrix4x4tI %75 = call float @llvm.fmuladd.f32(float %Translation.sroa.3.0.copyload, float 0.000000e+00, float %74) %76 = insertelement <2 x float> poison, float %43, i64 0 %77 = insertelement <2 x float> %76, float %mul14.i, i64 1 - %78 = insertelement <2 x float> , float %mul13.i350, i64 1 + %78 = insertelement <2 x float> , float %mul13.i351, i64 1 %79 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %77, <2 x float> , <2 x float> %78) %80 = extractelement <2 x float> %79, i64 0 %81 = call float @llvm.fmuladd.f32(float %80, float 0.000000e+00, float %59) @@ -14904,43 +14908,47 @@ _ZNK12aiMatrix4x4tIfEmlERKS0_.exit152: ; preds = %_ZNK12aiMatrix4x4tI br label %if.end.i if.end.i: ; preds = %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152, %invoke.cont128 - %j.0585 = phi i32 [ 0, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %inc132, %invoke.cont128 ] - %keyframes.sroa.0.3584 = phi ptr [ %keyframes.sroa.0.2590, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %keyframes.sroa.0.4, %invoke.cont128 ] - %keyframes.sroa.11.3583 = phi ptr [ %keyframes.sroa.11.2589, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %keyframes.sroa.11.4, %invoke.cont128 ] - %keyframes.sroa.23.3582 = phi ptr [ %keyframes.sroa.23.2588, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %keyframes.sroa.23.4, %invoke.cont128 ] - switch i32 %j.0585, label %if.end.i158 [ - i32 3, label %if.end.i158.thread - i32 1, label %_ZN12aiMatrix4x4tIfEixEj.exit166 - i32 2, label %if.end.i158.thread491 + %j.0594 = phi i32 [ 0, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %inc132, %invoke.cont128 ] + %keyframes.sroa.0.3593 = phi ptr [ %keyframes.sroa.0.2599, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %keyframes.sroa.0.4, %invoke.cont128 ] + %keyframes.sroa.11.3592 = phi ptr [ %keyframes.sroa.11.2598, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %keyframes.sroa.11.4, %invoke.cont128 ] + %keyframes.sroa.23.3591 = phi ptr [ %keyframes.sroa.23.2597, %_ZNK12aiMatrix4x4tIfEmlERKS0_.exit152 ], [ %keyframes.sroa.23.4, %invoke.cont128 ] + switch i32 %j.0594, label %default.unreachable.i [ + i32 0, label %if.end.i158.thread + i32 1, label %_ZN12aiMatrix4x4tIfEixEj.exit167 + i32 2, label %sw.bb3.i162 + i32 3, label %sw.bb4.i159 ] -if.end.i158.thread491: ; preds = %if.end.i - br label %_ZN12aiMatrix4x4tIfEixEj.exit166 - if.end.i158.thread: ; preds = %if.end.i - br label %_ZN12aiMatrix4x4tIfEixEj.exit166 - -if.end.i158: ; preds = %if.end.i - br label %_ZN12aiMatrix4x4tIfEixEj.exit166 - -_ZN12aiMatrix4x4tIfEixEj.exit166: ; preds = %if.end.i158, %if.end.i, %if.end.i158.thread, %if.end.i158.thread491 - %retval.0.i487 = phi ptr [ %mat, %if.end.i158 ], [ %ref.tmp114.sroa.18.0.mat.sroa_idx, %if.end.i158.thread491 ], [ %ref.tmp114.sroa.26.0.mat.sroa_idx, %if.end.i158.thread ], [ %ref.tmp114.sroa.10.0.mat.sroa_idx, %if.end.i ] - %sub.ptr.lhs.cast.i.i167 = ptrtoint ptr %keyframes.sroa.11.3583 to i64 - %sub.ptr.rhs.cast.i.i168 = ptrtoint ptr %keyframes.sroa.0.3584 to i64 - %sub.ptr.sub.i.i169 = sub i64 %sub.ptr.lhs.cast.i.i167, %sub.ptr.rhs.cast.i.i168 - %add.ptr.i.i = getelementptr inbounds i8, ptr %keyframes.sroa.0.3584, i64 %sub.ptr.sub.i.i169 - %sub.ptr.lhs.cast.i407 = ptrtoint ptr %keyframes.sroa.23.3582 to i64 - %sub.ptr.sub.i409 = sub i64 %sub.ptr.lhs.cast.i407, %sub.ptr.lhs.cast.i.i167 - %cmp3.not.i = icmp ult i64 %sub.ptr.sub.i409, 16 + br label %_ZN12aiMatrix4x4tIfEixEj.exit167 + +default.unreachable.i: ; preds = %if.end.i + unreachable + +sw.bb3.i162: ; preds = %if.end.i + br label %_ZN12aiMatrix4x4tIfEixEj.exit167 + +sw.bb4.i159: ; preds = %if.end.i + br label %_ZN12aiMatrix4x4tIfEixEj.exit167 + +_ZN12aiMatrix4x4tIfEixEj.exit167: ; preds = %if.end.i, %if.end.i158.thread, %sw.bb3.i162, %sw.bb4.i159 + %retval.0.i486 = phi ptr [ %ref.tmp114.sroa.26.0.mat.sroa_idx, %sw.bb4.i159 ], [ %ref.tmp114.sroa.18.0.mat.sroa_idx, %sw.bb3.i162 ], [ %mat, %if.end.i158.thread ], [ %ref.tmp114.sroa.10.0.mat.sroa_idx, %if.end.i ] + %sub.ptr.lhs.cast.i.i168 = ptrtoint ptr %keyframes.sroa.11.3592 to i64 + %sub.ptr.rhs.cast.i.i169 = ptrtoint ptr %keyframes.sroa.0.3593 to i64 + %sub.ptr.sub.i.i170 = sub i64 %sub.ptr.lhs.cast.i.i168, %sub.ptr.rhs.cast.i.i169 + %add.ptr.i.i = getelementptr inbounds i8, ptr %keyframes.sroa.0.3593, i64 %sub.ptr.sub.i.i170 + %sub.ptr.lhs.cast.i408 = ptrtoint ptr %keyframes.sroa.23.3591 to i64 + %sub.ptr.sub.i410 = sub i64 %sub.ptr.lhs.cast.i408, %sub.ptr.lhs.cast.i.i168 + %cmp3.not.i = icmp ult i64 %sub.ptr.sub.i410, 16 br i1 %cmp3.not.i, label %if.else50.i, label %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i -_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit166 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %keyframes.sroa.11.3583, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i487, i64 16, i1 false) - %add.ptr36.i = getelementptr inbounds float, ptr %keyframes.sroa.11.3583, i64 4 +_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit167 + call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %keyframes.sroa.11.3592, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i486, i64 16, i1 false) + %add.ptr36.i = getelementptr inbounds float, ptr %keyframes.sroa.11.3592, i64 4 br label %invoke.cont128 -if.else50.i: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit166 - %170 = and i64 %sub.ptr.sub.i.i169, -16 +if.else50.i: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit167 + %170 = and i64 %sub.ptr.sub.i.i170, -16 %cmp.i.i = icmp eq i64 %170, 9223372036854775792 br i1 %cmp.i.i, label %if.then.i.i428, label %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i @@ -14952,7 +14960,7 @@ if.then.i.i428: ; preds = %if.else50.i unreachable _ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i: ; preds = %if.else50.i - %sub.ptr.div.i.i58.i = ashr exact i64 %sub.ptr.sub.i.i169, 2 + %sub.ptr.div.i.i58.i = ashr exact i64 %sub.ptr.sub.i.i170, 2 %.sroa.speculated.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i58.i, i64 4) %add.i.i = add nsw i64 %.sroa.speculated.i.i, %sub.ptr.div.i.i58.i %cmp7.i.i = icmp ult i64 %add.i.i, %sub.ptr.div.i.i58.i @@ -14969,19 +14977,19 @@ cond.true.i.i: ; preds = %_ZNKSt6vectorIfSaIf _ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i425: ; preds = %cond.true.i.i, %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i %cond.i59.i = phi ptr [ null, %_ZNKSt6vectorIfSaIfEE12_M_check_lenEmPKc.exit.i ], [ %call5.i.i.i.i431, %cond.true.i.i ] %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i.i60.i = ptrtoint ptr %add.ptr.i.i to i64 - %tobool.not.i.i.i.i.i.i.i.i.i63.i = icmp eq ptr %keyframes.sroa.11.3583, %keyframes.sroa.0.3584 + %tobool.not.i.i.i.i.i.i.i.i.i63.i = icmp eq ptr %keyframes.sroa.11.3592, %keyframes.sroa.0.3593 br i1 %tobool.not.i.i.i.i.i.i.i.i.i63.i, label %invoke.cont61.i, label %if.then.i.i.i.i.i.i.i.i.i64.i if.then.i.i.i.i.i.i.i.i.i64.i: ; preds = %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i425 - call void @llvm.memmove.p0.p0.i64(ptr align 4 %cond.i59.i, ptr align 4 %keyframes.sroa.0.3584, i64 %sub.ptr.sub.i.i169, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr align 4 %cond.i59.i, ptr align 4 %keyframes.sroa.0.3593, i64 %sub.ptr.sub.i.i170, i1 false) br label %invoke.cont61.i invoke.cont61.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i64.i, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i425 - %add.ptr.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds i8, ptr %cond.i59.i, i64 %sub.ptr.sub.i.i169 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %add.ptr.i.i.i.i.i.i.i.i.i65.i, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i487, i64 16, i1 false) + %add.ptr.i.i.i.i.i.i.i.i.i65.i = getelementptr inbounds i8, ptr %cond.i59.i, i64 %sub.ptr.sub.i.i170 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %add.ptr.i.i.i.i.i.i.i.i.i65.i, ptr noundef nonnull align 4 dereferenceable(16) %retval.0.i486, i64 16, i1 false) %add.ptr.i.i.i.i.i.i.i.i71.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i.i.i.i.i.i65.i, i64 16 - %sub.ptr.sub.i.i.i.i.i.i.i.i.i75.i = sub i64 %sub.ptr.lhs.cast.i.i167, %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i.i60.i - %tobool.not.i.i.i.i.i.i.i.i.i76.i = icmp eq ptr %keyframes.sroa.11.3583, %add.ptr.i.i + %sub.ptr.sub.i.i.i.i.i.i.i.i.i75.i = sub i64 %sub.ptr.lhs.cast.i.i168, %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i.i60.i + %tobool.not.i.i.i.i.i.i.i.i.i76.i = icmp eq ptr %keyframes.sroa.11.3592, %add.ptr.i.i br i1 %tobool.not.i.i.i.i.i.i.i.i.i76.i, label %invoke.cont65.i, label %if.then.i.i.i.i.i.i.i.i.i77.i if.then.i.i.i.i.i.i.i.i.i77.i: ; preds = %invoke.cont61.i @@ -14990,11 +14998,11 @@ if.then.i.i.i.i.i.i.i.i.i77.i: ; preds = %invoke.cont61.i invoke.cont65.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i77.i, %invoke.cont61.i %add.ptr.i.i.i.i.i.i.i.i.i78.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i.i.i.i.i71.i, i64 %sub.ptr.sub.i.i.i.i.i.i.i.i.i75.i - %tobool.not.i.i426 = icmp eq ptr %keyframes.sroa.0.3584, null + %tobool.not.i.i426 = icmp eq ptr %keyframes.sroa.0.3593, null br i1 %tobool.not.i.i426, label %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427, label %if.then.i80.i if.then.i80.i: ; preds = %invoke.cont65.i - call void @_ZdlPv(ptr noundef nonnull %keyframes.sroa.0.3584) #23 + call void @_ZdlPv(ptr noundef nonnull %keyframes.sroa.0.3593) #23 br label %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427 _ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427: ; preds = %if.then.i80.i, %invoke.cont65.i @@ -15002,10 +15010,10 @@ _ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427: ; preds = %if.then.i80 br label %invoke.cont128 invoke.cont128: ; preds = %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427 - %keyframes.sroa.23.4 = phi ptr [ %add.ptr83.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427 ], [ %keyframes.sroa.23.3582, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] + %keyframes.sroa.23.4 = phi ptr [ %add.ptr83.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427 ], [ %keyframes.sroa.23.3591, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] %keyframes.sroa.11.4 = phi ptr [ %add.ptr.i.i.i.i.i.i.i.i.i78.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427 ], [ %add.ptr36.i, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] - %keyframes.sroa.0.4 = phi ptr [ %cond.i59.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427 ], [ %keyframes.sroa.0.3584, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] - %inc132 = add nuw nsw i32 %j.0585, 1 + %keyframes.sroa.0.4 = phi ptr [ %cond.i59.i, %_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfm.exit.i427 ], [ %keyframes.sroa.0.3593, %_ZSt22__uninitialized_copy_aIPfS0_fET0_T_S2_S1_RSaIT1_E.exit.i ] + %inc132 = add nuw nsw i32 %j.0594, 1 %exitcond.not = icmp eq i32 %inc132, 4 br i1 %exitcond.not, label %for.inc134, label %if.end.i, !llvm.loop !93 @@ -15026,32 +15034,32 @@ ehcleanup72: ; preds = %lpad66, %lpad.i108, br label %ehcleanup549 lpad75.loopexit: ; preds = %cond.true.i.i - %lpad.loopexit496 = landingpad { ptr, i32 } + %lpad.loopexit495 = landingpad { ptr, i32 } cleanup br label %lpad75 lpad75.loopexit.split-lp.loopexit: ; preds = %for.end136 - %lpad.loopexit510 = landingpad { ptr, i32 } + %lpad.loopexit509 = landingpad { ptr, i32 } cleanup br label %lpad75 lpad75.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i428 - %lpad.loopexit.split-lp511 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp510 = landingpad { ptr, i32 } cleanup br label %lpad75 lpad75: ; preds = %lpad75.loopexit.split-lp.loopexit, %lpad75.loopexit.split-lp.loopexit.split-lp, %lpad75.loopexit - %keyframes.sroa.0.5 = phi ptr [ %keyframes.sroa.0.3584, %lpad75.loopexit ], [ %keyframes.sroa.0.2.lcssa, %lpad75.loopexit.split-lp.loopexit ], [ %keyframes.sroa.0.3584, %lpad75.loopexit.split-lp.loopexit.split-lp ] - %lpad.phi498 = phi { ptr, i32 } [ %lpad.loopexit496, %lpad75.loopexit ], [ %lpad.loopexit510, %lpad75.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp511, %lpad75.loopexit.split-lp.loopexit.split-lp ] - %tobool.not.i.i.i171 = icmp eq ptr %keyframes.sroa.0.5, null - br i1 %tobool.not.i.i.i171, label %ehcleanup549, label %if.then.i.i.i172 + %keyframes.sroa.0.5 = phi ptr [ %keyframes.sroa.0.3593, %lpad75.loopexit ], [ %keyframes.sroa.0.2.lcssa, %lpad75.loopexit.split-lp.loopexit ], [ %keyframes.sroa.0.3593, %lpad75.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi497 = phi { ptr, i32 } [ %lpad.loopexit495, %lpad75.loopexit ], [ %lpad.loopexit509, %lpad75.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp510, %lpad75.loopexit.split-lp.loopexit.split-lp ] + %tobool.not.i.i.i172 = icmp eq ptr %keyframes.sroa.0.5, null + br i1 %tobool.not.i.i.i172, label %ehcleanup549, label %if.then.i.i.i173 -if.then.i.i.i172: ; preds = %lpad75 +if.then.i.i.i173: ; preds = %lpad75 call void @_ZdlPv(ptr noundef nonnull %keyframes.sroa.0.5) #23 br label %ehcleanup549 for.inc134: ; preds = %invoke.cont128 - %inc135 = add nuw nsw i64 %i77.0591, 1 + %inc135 = add nuw nsw i64 %i77.0600, 1 %174 = load i32, ptr %mNumPositionKeys, align 4 %conv80 = zext i32 %174 to i64 %cmp81 = icmp ult i64 %inc135, %conv80 @@ -15060,35 +15068,35 @@ for.inc134: ; preds = %invoke.cont128 for.end136: ; preds = %for.inc134, %_ZNSt6vectorIfSaIfEE7reserveEm.exit %keyframes.sroa.11.2.lcssa = phi ptr [ %keyframes.sroa.11.1, %_ZNSt6vectorIfSaIfEE7reserveEm.exit ], [ %keyframes.sroa.11.4, %for.inc134 ] %keyframes.sroa.0.2.lcssa = phi ptr [ %keyframes.sroa.11.1, %_ZNSt6vectorIfSaIfEE7reserveEm.exit ], [ %keyframes.sroa.0.4, %for.inc134 ] - %sub.ptr.lhs.cast.i175 = ptrtoint ptr %keyframes.sroa.11.2.lcssa to i64 - %sub.ptr.rhs.cast.i176 = ptrtoint ptr %keyframes.sroa.0.2.lcssa to i64 - %sub.ptr.sub.i177 = sub i64 %sub.ptr.lhs.cast.i175, %sub.ptr.rhs.cast.i176 - %sub.ptr.div.i178 = ashr exact i64 %sub.ptr.sub.i177, 2 - %div82 = lshr i64 %sub.ptr.div.i178, 4 + %sub.ptr.lhs.cast.i176 = ptrtoint ptr %keyframes.sroa.11.2.lcssa to i64 + %sub.ptr.rhs.cast.i177 = ptrtoint ptr %keyframes.sroa.0.2.lcssa to i64 + %sub.ptr.sub.i178 = sub i64 %sub.ptr.lhs.cast.i176, %sub.ptr.rhs.cast.i177 + %sub.ptr.div.i179 = ashr exact i64 %sub.ptr.sub.i178, 2 + %div82 = lshr i64 %sub.ptr.div.i179, 4 invoke void @_ZN6Assimp15ColladaExporter15WriteFloatArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_13FloatDataTypeEPKfm(ptr noundef nonnull align 8 dereferenceable(1248) %this, ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr, i32 noundef 4, ptr noundef %keyframes.sroa.0.2.lcssa, i64 noundef %div82) to label %invoke.cont139 unwind label %lpad75.loopexit.split-lp.loopexit invoke.cont139: ; preds = %for.end136 - %tobool.not.i.i.i179 = icmp eq ptr %keyframes.sroa.0.2.lcssa, null - br i1 %tobool.not.i.i.i179, label %_ZNSt6vectorIfSaIfEED2Ev.exit181, label %if.then.i.i.i180 + %tobool.not.i.i.i180 = icmp eq ptr %keyframes.sroa.0.2.lcssa, null + br i1 %tobool.not.i.i.i180, label %_ZNSt6vectorIfSaIfEED2Ev.exit182, label %if.then.i.i.i181 -if.then.i.i.i180: ; preds = %invoke.cont139 +if.then.i.i.i181: ; preds = %invoke.cont139 call void @_ZdlPv(ptr noundef nonnull %keyframes.sroa.0.2.lcssa) #23 - br label %_ZNSt6vectorIfSaIfEED2Ev.exit181 + br label %_ZNSt6vectorIfSaIfEED2Ev.exit182 -_ZNSt6vectorIfSaIfEED2Ev.exit181: ; preds = %invoke.cont139, %if.then.i.i.i180 +_ZNSt6vectorIfSaIfEED2Ev.exit182: ; preds = %invoke.cont139, %if.then.i.i.i181 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %names, i8 0, i64 24, i1 false) %175 = load i32, ptr %mNumPositionKeys, align 4 - %cmp145599.not = icmp eq i32 %175, 0 - br i1 %cmp145599.not, label %for.end166, label %for.body146.lr.ph + %cmp145608.not = icmp eq i32 %175, 0 + br i1 %cmp145608.not, label %for.end166, label %for.body146.lr.ph -for.body146.lr.ph: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit181 +for.body146.lr.ph: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit182 %mPreState = getelementptr inbounds %struct.aiNodeAnim, ptr %8, i64 0, i32 7 %mPostState = getelementptr inbounds %struct.aiNodeAnim, ptr %8, i64 0, i32 8 br label %for.body146 for.body146: ; preds = %for.body146.lr.ph, %for.inc164 - %i141.0600 = phi i64 [ 0, %for.body146.lr.ph ], [ %inc165, %for.inc164 ] + %i141.0609 = phi i64 [ 0, %for.body146.lr.ph ], [ %inc165, %for.inc164 ] %176 = load i32, ptr %mPreState, align 8 switch i32 %176, label %if.else [ i32 0, label %if.then154 @@ -15097,7 +15105,7 @@ for.body146: ; preds = %for.body146.lr.ph, ] if.then154: ; preds = %for.body146, %for.body146, %for.body146 - %177 = load ptr, ptr %_M_finish.i182, align 8 + %177 = load ptr, ptr %_M_finish.i183, align 8 %178 = load ptr, ptr %_M_end_of_storage.i, align 8 %cmp.not.i = icmp eq ptr %177, %178 br i1 %cmp.not.i, label %if.else.i, label %if.then.i @@ -15133,7 +15141,7 @@ invoke.cont.i443: ; preds = %if.end.i441 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i, ptr noundef nonnull @.str.297, ptr noundef nonnull getelementptr inbounds ([7 x i8], ptr @.str.297, i64 0, i64 6)) #22 store ptr null, ptr %__guard.i, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %177, i64 noundef 6) - to label %.noexc185 unwind label %lpad.i442 + to label %.noexc186 unwind label %lpad.i442 lpad.i442: ; preds = %invoke.cont.i443, %if.end.i441 %181 = landingpad { ptr, i32 } @@ -15152,7 +15160,7 @@ lpad.body.i: ; preds = %lpad.i432, %lpad.i4 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #22 br label %ehcleanup321 -.noexc185: ; preds = %invoke.cont.i443 +.noexc186: ; preds = %invoke.cont.i443 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #22 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp.i) @@ -15162,7 +15170,7 @@ if.else.i: ; preds = %if.then154 invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRA7_KcEEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %names, ptr %177, ptr noundef nonnull align 1 dereferenceable(7) @.str.297) to label %for.inc164 unwind label %lpad155 -lpad155: ; preds = %if.else.i194, %if.then.i190, %if.else.i +lpad155: ; preds = %if.else.i195, %if.then.i191, %if.else.i %183 = landingpad { ptr, i32 } cleanup br label %ehcleanup321 @@ -15173,57 +15181,57 @@ if.else: ; preds = %for.body146 br i1 %cmp158, label %if.then159, label %for.inc164 if.then159: ; preds = %if.else - %185 = load ptr, ptr %_M_finish.i182, align 8 + %185 = load ptr, ptr %_M_finish.i183, align 8 %186 = load ptr, ptr %_M_end_of_storage.i, align 8 - %cmp.not.i189 = icmp eq ptr %185, %186 - br i1 %cmp.not.i189, label %if.else.i194, label %if.then.i190 + %cmp.not.i190 = icmp eq ptr %185, %186 + br i1 %cmp.not.i190, label %if.else.i195, label %if.then.i191 -if.then.i190: ; preds = %if.then159 +if.then.i191: ; preds = %if.then159 invoke void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9constructIS5_JRA5_KcEEEvPT_DpOT0_(ptr noundef nonnull align 1 dereferenceable(1) %names, ptr noundef %185, ptr noundef nonnull align 1 dereferenceable(5) @.str.298) to label %for.inc164.sink.split unwind label %lpad155 -if.else.i194: ; preds = %if.then159 +if.else.i195: ; preds = %if.then159 invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRA5_KcEEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %names, ptr %185, ptr noundef nonnull align 1 dereferenceable(5) @.str.298) to label %for.inc164 unwind label %lpad155 -for.inc164.sink.split: ; preds = %if.then.i190, %.noexc185 - %187 = load ptr, ptr %_M_finish.i182, align 8 - %incdec.ptr.i191 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %187, i64 1 - store ptr %incdec.ptr.i191, ptr %_M_finish.i182, align 8 +for.inc164.sink.split: ; preds = %if.then.i191, %.noexc186 + %187 = load ptr, ptr %_M_finish.i183, align 8 + %incdec.ptr.i192 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %187, i64 1 + store ptr %incdec.ptr.i192, ptr %_M_finish.i183, align 8 br label %for.inc164 -for.inc164: ; preds = %for.inc164.sink.split, %if.else.i194, %if.else.i, %if.else - %inc165 = add nuw nsw i64 %i141.0600, 1 +for.inc164: ; preds = %for.inc164.sink.split, %if.else.i195, %if.else.i, %if.else + %inc165 = add nuw nsw i64 %i141.0609, 1 %188 = load i32, ptr %mNumPositionKeys, align 4 %conv144 = zext i32 %188 to i64 %cmp145 = icmp ult i64 %inc165, %conv144 br i1 %cmp145, label %for.body146, label %for.end166, !llvm.loop !95 -for.end166: ; preds = %for.inc164, %_ZNSt6vectorIfSaIfEED2Ev.exit181 +for.end166: ; preds = %for.inc164, %_ZNSt6vectorIfSaIfEED2Ev.exit182 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp171) #22 - %call.i203 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170) - to label %call.i.noexc202 unwind label %lpad172 + %call.i204 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170) + to label %call.i.noexc203 unwind label %lpad172 -call.i.noexc202: ; preds = %for.end166 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp170, ptr noundef %call.i203, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp171) - to label %.noexc204 unwind label %lpad172 +call.i.noexc203: ; preds = %for.end166 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp170, ptr noundef %call.i204, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp171) + to label %.noexc205 unwind label %lpad172 -.noexc204: ; preds = %call.i.noexc202 +.noexc205: ; preds = %call.i.noexc203 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170, ptr noundef nonnull @.str.299, ptr noundef nonnull getelementptr inbounds ([22 x i8], ptr @.str.299, i64 0, i64 21)) - to label %invoke.cont173 unwind label %lpad.i201 + to label %invoke.cont173 unwind label %lpad.i202 -lpad.i201: ; preds = %.noexc204 +lpad.i202: ; preds = %.noexc205 %189 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp170) #22 br label %ehcleanup177 -invoke.cont173: ; preds = %.noexc204 - %call.i208 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170, i64 noundef 0, ptr noundef nonnull %data) +invoke.cont173: ; preds = %.noexc205 + %call.i209 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170, i64 noundef 0, ptr noundef nonnull %data) to label %invoke.cont175 unwind label %lpad174 invoke.cont175: ; preds = %invoke.cont173 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr2, ptr noundef nonnull align 8 dereferenceable(32) %call.i208) #22 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr2, ptr noundef nonnull align 8 dereferenceable(32) %call.i209) #22 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170) #22 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp171) #22 invoke fastcc void @_ZN6AssimpL11XMLIDEncodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias nonnull align 8 %ref.tmp178, ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr2) @@ -15231,19 +15239,19 @@ invoke.cont175: ; preds = %invoke.cont173 invoke.cont180: ; preds = %invoke.cont175 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %arrayId, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp178) - to label %.noexc210 unwind label %lpad181 + to label %.noexc211 unwind label %lpad181 -.noexc210: ; preds = %invoke.cont180 +.noexc211: ; preds = %invoke.cont180 %call.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %arrayId, ptr noundef nonnull @.str.270) - to label %invoke.cont182 unwind label %lpad.i209 + to label %invoke.cont182 unwind label %lpad.i210 -lpad.i209: ; preds = %.noexc210 +lpad.i210: ; preds = %.noexc211 %190 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %arrayId) #22 br label %lpad181.body -invoke.cont182: ; preds = %.noexc210 +invoke.cont182: ; preds = %.noexc211 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp178) #22 %call189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, ptr noundef nonnull align 8 dereferenceable(32) %startstr) to label %invoke.cont188 unwind label %lpad187.loopexit.split-lp @@ -15270,7 +15278,7 @@ invoke.cont197: ; preds = %invoke.cont195 invoke.cont200: ; preds = %invoke.cont197 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp192) #22 - %call.i213214 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) + %call.i214215 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) to label %invoke.cont203 unwind label %lpad187.loopexit.split-lp invoke.cont203: ; preds = %invoke.cont200 @@ -15290,13 +15298,13 @@ invoke.cont211: ; preds = %invoke.cont209 to label %invoke.cont213 unwind label %lpad187.loopexit.split-lp invoke.cont213: ; preds = %invoke.cont211 - %191 = load ptr, ptr %_M_finish.i182, align 8 + %191 = load ptr, ptr %_M_finish.i183, align 8 %192 = load ptr, ptr %names, align 8 - %sub.ptr.lhs.cast.i217 = ptrtoint ptr %191 to i64 - %sub.ptr.rhs.cast.i218 = ptrtoint ptr %192 to i64 - %sub.ptr.sub.i219 = sub i64 %sub.ptr.lhs.cast.i217, %sub.ptr.rhs.cast.i218 - %sub.ptr.div.i220 = ashr exact i64 %sub.ptr.sub.i219, 5 - %call217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %call214, i64 noundef %sub.ptr.div.i220) + %sub.ptr.lhs.cast.i218 = ptrtoint ptr %191 to i64 + %sub.ptr.rhs.cast.i219 = ptrtoint ptr %192 to i64 + %sub.ptr.sub.i220 = sub i64 %sub.ptr.lhs.cast.i218, %sub.ptr.rhs.cast.i219 + %sub.ptr.div.i221 = ashr exact i64 %sub.ptr.sub.i220, 5 + %call217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %call214, i64 noundef %sub.ptr.div.i221) to label %invoke.cont216 unwind label %lpad187.loopexit.split-lp invoke.cont216: ; preds = %invoke.cont213 @@ -15304,16 +15312,16 @@ invoke.cont216: ; preds = %invoke.cont213 to label %for.cond220.preheader unwind label %lpad187.loopexit.split-lp for.cond220.preheader: ; preds = %invoke.cont216 - %193 = load ptr, ptr %_M_finish.i182, align 8 + %193 = load ptr, ptr %_M_finish.i183, align 8 %194 = load ptr, ptr %names, align 8 - %cmp222605.not = icmp eq ptr %193, %194 - br i1 %cmp222605.not, label %for.end233, label %for.body223 + %cmp222614.not = icmp eq ptr %193, %194 + br i1 %cmp222614.not, label %for.end233, label %for.body223 for.body223: ; preds = %for.cond220.preheader, %for.inc231 %195 = phi ptr [ %197, %for.inc231 ], [ %194, %for.cond220.preheader ] - %aa.0606 = phi i64 [ %inc232, %for.inc231 ], [ 0, %for.cond220.preheader ] - %add.ptr.i226 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %195, i64 %aa.0606 - %call228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i226) + %aa.0615 = phi i64 [ %inc232, %for.inc231 ], [ 0, %for.cond220.preheader ] + %add.ptr.i227 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %195, i64 %aa.0615 + %call228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i227) to label %invoke.cont227 unwind label %lpad187.loopexit invoke.cont227: ; preds = %for.body223 @@ -15321,17 +15329,17 @@ invoke.cont227: ; preds = %for.body223 to label %for.inc231 unwind label %lpad187.loopexit for.inc231: ; preds = %invoke.cont227 - %inc232 = add nuw i64 %aa.0606, 1 - %196 = load ptr, ptr %_M_finish.i182, align 8 + %inc232 = add nuw i64 %aa.0615, 1 + %196 = load ptr, ptr %_M_finish.i183, align 8 %197 = load ptr, ptr %names, align 8 - %sub.ptr.lhs.cast.i222 = ptrtoint ptr %196 to i64 - %sub.ptr.rhs.cast.i223 = ptrtoint ptr %197 to i64 - %sub.ptr.sub.i224 = sub i64 %sub.ptr.lhs.cast.i222, %sub.ptr.rhs.cast.i223 - %sub.ptr.div.i225 = ashr exact i64 %sub.ptr.sub.i224, 5 - %cmp222 = icmp ult i64 %inc232, %sub.ptr.div.i225 + %sub.ptr.lhs.cast.i223 = ptrtoint ptr %196 to i64 + %sub.ptr.rhs.cast.i224 = ptrtoint ptr %197 to i64 + %sub.ptr.sub.i225 = sub i64 %sub.ptr.lhs.cast.i223, %sub.ptr.rhs.cast.i224 + %sub.ptr.div.i226 = ashr exact i64 %sub.ptr.sub.i225, 5 + %cmp222 = icmp ult i64 %inc232, %sub.ptr.div.i226 br i1 %cmp222, label %for.body223, label %for.end233, !llvm.loop !96 -lpad172: ; preds = %call.i.noexc202, %for.end166 +lpad172: ; preds = %call.i.noexc203, %for.end166 %198 = landingpad { ptr, i32 } cleanup br label %ehcleanup177 @@ -15342,8 +15350,8 @@ lpad174: ; preds = %invoke.cont173 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170) #22 br label %ehcleanup177 -ehcleanup177: ; preds = %lpad172, %lpad.i201, %lpad174 - %.pn83 = phi { ptr, i32 } [ %199, %lpad174 ], [ %198, %lpad172 ], [ %189, %lpad.i201 ] +ehcleanup177: ; preds = %lpad172, %lpad.i202, %lpad174 + %.pn83 = phi { ptr, i32 } [ %199, %lpad174 ], [ %198, %lpad172 ], [ %189, %lpad.i202 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp171) #22 br label %ehcleanup321 @@ -15357,18 +15365,18 @@ lpad181: ; preds = %invoke.cont180 cleanup br label %lpad181.body -lpad181.body: ; preds = %lpad.i209, %lpad181 - %eh.lpad-body211 = phi { ptr, i32 } [ %201, %lpad181 ], [ %190, %lpad.i209 ] +lpad181.body: ; preds = %lpad.i210, %lpad181 + %eh.lpad-body212 = phi { ptr, i32 } [ %201, %lpad181 ], [ %190, %lpad.i210 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp178) #22 br label %ehcleanup320 lpad187.loopexit: ; preds = %for.body223, %invoke.cont227 - %lpad.loopexit499 = landingpad { ptr, i32 } + %lpad.loopexit498 = landingpad { ptr, i32 } cleanup br label %ehcleanup319 lpad187.loopexit.split-lp: ; preds = %invoke.cont182, %invoke.cont188, %invoke.cont190, %invoke.cont203, %invoke.cont207, %invoke.cont209, %invoke.cont211, %invoke.cont213, %invoke.cont216, %for.end233, %invoke.cont236, %invoke.cont239, %invoke.cont244, %invoke.cont246, %invoke.cont251, %invoke.cont255, %invoke.cont257, %invoke.cont259, %invoke.cont261, %invoke.cont264, %invoke.cont266, %invoke.cont268, %invoke.cont270, %invoke.cont275, %invoke.cont279, %invoke.cont281, %invoke.cont286, %invoke.cont290, %invoke.cont292, %invoke.cont297, %invoke.cont301, %invoke.cont303, %invoke.cont308, %invoke.cont312, %invoke.cont314, %invoke.cont200, %invoke.cont249, %invoke.cont273, %invoke.cont284, %invoke.cont295, %invoke.cont306 - %lpad.loopexit.split-lp500 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp499 = landingpad { ptr, i32 } cleanup br label %ehcleanup319 @@ -15399,7 +15407,7 @@ invoke.cont246: ; preds = %invoke.cont244 to label %invoke.cont249 unwind label %lpad187.loopexit.split-lp invoke.cont249: ; preds = %invoke.cont246 - %call.i228229 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) + %call.i229230 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) to label %invoke.cont251 unwind label %lpad187.loopexit.split-lp invoke.cont251: ; preds = %invoke.cont249 @@ -15419,13 +15427,13 @@ invoke.cont259: ; preds = %invoke.cont257 to label %invoke.cont261 unwind label %lpad187.loopexit.split-lp invoke.cont261: ; preds = %invoke.cont259 - %203 = load ptr, ptr %_M_finish.i182, align 8 + %203 = load ptr, ptr %_M_finish.i183, align 8 %204 = load ptr, ptr %names, align 8 - %sub.ptr.lhs.cast.i232 = ptrtoint ptr %203 to i64 - %sub.ptr.rhs.cast.i233 = ptrtoint ptr %204 to i64 - %sub.ptr.sub.i234 = sub i64 %sub.ptr.lhs.cast.i232, %sub.ptr.rhs.cast.i233 - %sub.ptr.div.i235 = ashr exact i64 %sub.ptr.sub.i234, 5 - %call265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %call262, i64 noundef %sub.ptr.div.i235) + %sub.ptr.lhs.cast.i233 = ptrtoint ptr %203 to i64 + %sub.ptr.rhs.cast.i234 = ptrtoint ptr %204 to i64 + %sub.ptr.sub.i235 = sub i64 %sub.ptr.lhs.cast.i233, %sub.ptr.rhs.cast.i234 + %sub.ptr.div.i236 = ashr exact i64 %sub.ptr.sub.i235, 5 + %call265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %call262, i64 noundef %sub.ptr.div.i236) to label %invoke.cont264 unwind label %lpad187.loopexit.split-lp invoke.cont264: ; preds = %invoke.cont261 @@ -15445,7 +15453,7 @@ invoke.cont270: ; preds = %invoke.cont268 to label %invoke.cont273 unwind label %lpad187.loopexit.split-lp invoke.cont273: ; preds = %invoke.cont270 - %call.i237238 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) + %call.i238239 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) to label %invoke.cont275 unwind label %lpad187.loopexit.split-lp invoke.cont275: ; preds = %invoke.cont273 @@ -15461,9 +15469,9 @@ invoke.cont281: ; preds = %invoke.cont279 to label %invoke.cont284 unwind label %lpad187.loopexit.split-lp invoke.cont284: ; preds = %invoke.cont281 - %call.i241 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i = add i64 %call.i241, -2 - %call3.i242 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i, i64 noundef -1) + %call.i242 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i = add i64 %call.i242, -2 + %call3.i243 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i, i64 noundef -1) to label %invoke.cont286 unwind label %lpad187.loopexit.split-lp invoke.cont286: ; preds = %invoke.cont284 @@ -15479,9 +15487,9 @@ invoke.cont292: ; preds = %invoke.cont290 to label %invoke.cont295 unwind label %lpad187.loopexit.split-lp invoke.cont295: ; preds = %invoke.cont292 - %call.i244 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i245 = add i64 %call.i244, -2 - %call3.i246 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i245, i64 noundef -1) + %call.i245 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i246 = add i64 %call.i245, -2 + %call3.i247 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i246, i64 noundef -1) to label %invoke.cont297 unwind label %lpad187.loopexit.split-lp invoke.cont297: ; preds = %invoke.cont295 @@ -15497,9 +15505,9 @@ invoke.cont303: ; preds = %invoke.cont301 to label %invoke.cont306 unwind label %lpad187.loopexit.split-lp invoke.cont306: ; preds = %invoke.cont303 - %call.i249 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i250 = add i64 %call.i249, -2 - %call3.i251 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i250, i64 noundef -1) + %call.i250 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i251 = add i64 %call.i250, -2 + %call3.i252 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i251, i64 noundef -1) to label %invoke.cont308 unwind label %lpad187.loopexit.split-lp invoke.cont308: ; preds = %invoke.cont306 @@ -15518,7 +15526,7 @@ invoke.cont317: ; preds = %invoke.cont314 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %arrayId) #22 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr2) #22 %205 = load ptr, ptr %names, align 8 - %206 = load ptr, ptr %_M_finish.i182, align 8 + %206 = load ptr, ptr %_M_finish.i183, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %205, %206 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i @@ -15526,8 +15534,8 @@ for.body.i.i.i.i: ; preds = %invoke.cont317, %fo %__first.addr.04.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i, %for.body.i.i.i.i ], [ %205, %invoke.cont317 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %__first.addr.04.i.i.i.i) #22 %incdec.ptr.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %__first.addr.04.i.i.i.i, i64 1 - %cmp.not.i.i.i.i254 = icmp eq ptr %incdec.ptr.i.i.i.i, %206 - br i1 %cmp.not.i.i.i.i254, label %invoke.contthread-pre-split.i, label %for.body.i.i.i.i, !llvm.loop !4 + %cmp.not.i.i.i.i255 = icmp eq ptr %incdec.ptr.i.i.i.i, %206 + br i1 %cmp.not.i.i.i.i255, label %invoke.contthread-pre-split.i, label %for.body.i.i.i.i, !llvm.loop !4 invoke.contthread-pre-split.i: ; preds = %for.body.i.i.i.i %.pr.i = load ptr, ptr %names, align 8 @@ -15535,27 +15543,27 @@ invoke.contthread-pre-split.i: ; preds = %for.body.i.i.i.i invoke.cont.i: ; preds = %invoke.contthread-pre-split.i, %invoke.cont317 %207 = phi ptr [ %.pr.i, %invoke.contthread-pre-split.i ], [ %205, %invoke.cont317 ] - %tobool.not.i.i.i255 = icmp eq ptr %207, null - br i1 %tobool.not.i.i.i255, label %for.inc322, label %if.then.i.i.i256 + %tobool.not.i.i.i256 = icmp eq ptr %207, null + br i1 %tobool.not.i.i.i256, label %for.inc322, label %if.then.i.i.i257 -if.then.i.i.i256: ; preds = %invoke.cont.i +if.then.i.i.i257: ; preds = %invoke.cont.i call void @_ZdlPv(ptr noundef nonnull %207) #23 br label %for.inc322 -for.inc322: ; preds = %if.then.i.i.i256, %invoke.cont.i, %for.body, %lor.lhs.false - %inc323 = add nuw nsw i64 %a.0618, 1 +for.inc322: ; preds = %if.then.i.i.i257, %invoke.cont.i, %for.body, %lor.lhs.false + %inc323 = add nuw nsw i64 %a.0627, 1 %208 = load i32, ptr %mNumChannels, align 8 %conv = zext i32 %208 to i64 %cmp26 = icmp ult i64 %inc323, %conv br i1 %cmp26, label %for.body, label %for.cond326.preheader, !llvm.loop !97 ehcleanup319: ; preds = %lpad187.loopexit, %lpad187.loopexit.split-lp, %lpad194 - %.pn85 = phi { ptr, i32 } [ %202, %lpad194 ], [ %lpad.loopexit499, %lpad187.loopexit ], [ %lpad.loopexit.split-lp500, %lpad187.loopexit.split-lp ] + %.pn85 = phi { ptr, i32 } [ %202, %lpad194 ], [ %lpad.loopexit498, %lpad187.loopexit ], [ %lpad.loopexit.split-lp499, %lpad187.loopexit.split-lp ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %arrayId) #22 br label %ehcleanup320 ehcleanup320: ; preds = %ehcleanup319, %lpad181.body, %lpad179 - %.pn85.pn = phi { ptr, i32 } [ %.pn85, %ehcleanup319 ], [ %eh.lpad-body211, %lpad181.body ], [ %200, %lpad179 ] + %.pn85.pn = phi { ptr, i32 } [ %.pn85, %ehcleanup319 ], [ %eh.lpad-body212, %lpad181.body ], [ %200, %lpad179 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr2) #22 br label %ehcleanup321 @@ -15565,43 +15573,43 @@ ehcleanup321: ; preds = %lpad155, %lpad.body br label %ehcleanup549 for.cond477.preheader: ; preds = %invoke.cont470 - %cmp480623.not = icmp eq i32 %215, 0 - br i1 %cmp480623.not, label %for.end537, label %for.body481.lr.ph + %cmp480632.not = icmp eq i32 %215, 0 + br i1 %cmp480632.not, label %for.end537, label %for.body481.lr.ph for.body481.lr.ph: ; preds = %for.cond477.preheader %mChannels483 = getelementptr inbounds %struct.aiAnimation, ptr %2, i64 0, i32 4 br label %for.body481 for.body330: ; preds = %for.body330.lr.ph, %invoke.cont470 - %a325.0621 = phi i64 [ 0, %for.body330.lr.ph ], [ %inc474, %invoke.cont470 ] + %a325.0630 = phi i64 [ 0, %for.body330.lr.ph ], [ %inc474, %invoke.cont470 ] %209 = load ptr, ptr %mChannels332, align 8 - %arrayidx333 = getelementptr inbounds ptr, ptr %209, i64 %a325.0621 + %arrayidx333 = getelementptr inbounds ptr, ptr %209, i64 %a325.0630 %210 = load ptr, ptr %arrayidx333, align 8 %data335 = getelementptr inbounds %struct.aiString, ptr %210, i64 0, i32 1 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp338) #22 - %call.i257262 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp337) - to label %call.i257.noexc unwind label %lpad339 + %call.i258263 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp337) + to label %call.i258.noexc unwind label %lpad339 -call.i257.noexc: ; preds = %for.body330 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp337, ptr noundef %call.i257262, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp338) - to label %.noexc263 unwind label %lpad339 +call.i258.noexc: ; preds = %for.body330 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp337, ptr noundef %call.i258263, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp338) + to label %.noexc264 unwind label %lpad339 -.noexc263: ; preds = %call.i257.noexc +.noexc264: ; preds = %call.i258.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp337, ptr noundef nonnull @.str.301, ptr noundef nonnull getelementptr inbounds ([16 x i8], ptr @.str.301, i64 0, i64 15)) - to label %invoke.cont340 unwind label %lpad.i261 + to label %invoke.cont340 unwind label %lpad.i262 -lpad.i261: ; preds = %.noexc263 +lpad.i262: ; preds = %.noexc264 %211 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp337) #22 br label %ehcleanup344 -invoke.cont340: ; preds = %.noexc263 - %call.i266267 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp337, i64 noundef 0, ptr noundef nonnull %data335) +invoke.cont340: ; preds = %.noexc264 + %call.i267268 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp337, i64 noundef 0, ptr noundef nonnull %data335) to label %invoke.cont342 unwind label %lpad341 invoke.cont342: ; preds = %invoke.cont340 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %node_idstr, ptr noundef nonnull align 8 dereferenceable(32) %call.i266267) #22 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %node_idstr, ptr noundef nonnull align 8 dereferenceable(32) %call.i267268) #22 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp337) #22 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp338) #22 %call350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, ptr noundef nonnull align 8 dereferenceable(32) %startstr) @@ -15629,7 +15637,7 @@ invoke.cont358: ; preds = %invoke.cont356 invoke.cont361: ; preds = %invoke.cont358 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp353) #22 - %call.i270271 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) + %call.i271272 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %startstr, ptr noundef nonnull @.str.349) to label %invoke.cont364 unwind label %lpad348 invoke.cont364: ; preds = %invoke.cont361 @@ -15642,29 +15650,29 @@ invoke.cont368: ; preds = %invoke.cont364 invoke.cont370: ; preds = %invoke.cont368 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp378) #22 - %call.i273278 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp377) - to label %call.i273.noexc unwind label %lpad379 + %call.i274279 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp377) + to label %call.i274.noexc unwind label %lpad379 -call.i273.noexc: ; preds = %invoke.cont370 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp377, ptr noundef %call.i273278, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp378) - to label %.noexc279 unwind label %lpad379 +call.i274.noexc: ; preds = %invoke.cont370 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp377, ptr noundef %call.i274279, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp378) + to label %.noexc280 unwind label %lpad379 -.noexc279: ; preds = %call.i273.noexc +.noexc280: ; preds = %call.i274.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp377, ptr noundef nonnull @.str.295, ptr noundef nonnull getelementptr inbounds ([14 x i8], ptr @.str.295, i64 0, i64 13)) - to label %invoke.cont380 unwind label %lpad.i277 + to label %invoke.cont380 unwind label %lpad.i278 -lpad.i277: ; preds = %.noexc279 +lpad.i278: ; preds = %.noexc280 %212 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp377) #22 br label %ehcleanup396 -invoke.cont380: ; preds = %.noexc279 - %call.i282283 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp377, i64 noundef 0, ptr noundef nonnull %data335) +invoke.cont380: ; preds = %.noexc280 + %call.i283284 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp377, i64 noundef 0, ptr noundef nonnull %data335) to label %invoke.cont382 unwind label %lpad381 invoke.cont382: ; preds = %invoke.cont380 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp373, ptr noundef nonnull align 8 dereferenceable(32) %call.i282283) #22 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp373, ptr noundef nonnull align 8 dereferenceable(32) %call.i283284) #22 invoke fastcc void @_ZN6AssimpL11XMLIDEncodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias nonnull align 8 %ref.tmp372, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp373) to label %invoke.cont384 unwind label %lpad383 @@ -15694,29 +15702,29 @@ invoke.cont400: ; preds = %invoke.cont391 invoke.cont402: ; preds = %invoke.cont400 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp410) #22 - %call.i285290 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp409) - to label %call.i285.noexc unwind label %lpad411 + %call.i286291 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp409) + to label %call.i286.noexc unwind label %lpad411 -call.i285.noexc: ; preds = %invoke.cont402 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp409, ptr noundef %call.i285290, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp410) - to label %.noexc291 unwind label %lpad411 +call.i286.noexc: ; preds = %invoke.cont402 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp409, ptr noundef %call.i286291, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp410) + to label %.noexc292 unwind label %lpad411 -.noexc291: ; preds = %call.i285.noexc +.noexc292: ; preds = %call.i286.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp409, ptr noundef nonnull @.str.296, ptr noundef nonnull getelementptr inbounds ([15 x i8], ptr @.str.296, i64 0, i64 14)) - to label %invoke.cont412 unwind label %lpad.i289 + to label %invoke.cont412 unwind label %lpad.i290 -lpad.i289: ; preds = %.noexc291 +lpad.i290: ; preds = %.noexc292 %213 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp409) #22 br label %ehcleanup428 -invoke.cont412: ; preds = %.noexc291 - %call.i294295 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp409, i64 noundef 0, ptr noundef nonnull %data335) +invoke.cont412: ; preds = %.noexc292 + %call.i295296 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp409, i64 noundef 0, ptr noundef nonnull %data335) to label %invoke.cont414 unwind label %lpad413 invoke.cont414: ; preds = %invoke.cont412 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp405, ptr noundef nonnull align 8 dereferenceable(32) %call.i294295) #22 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp405, ptr noundef nonnull align 8 dereferenceable(32) %call.i295296) #22 invoke fastcc void @_ZN6AssimpL11XMLIDEncodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias nonnull align 8 %ref.tmp404, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp405) to label %invoke.cont416 unwind label %lpad415 @@ -15746,29 +15754,29 @@ invoke.cont432: ; preds = %invoke.cont423 invoke.cont434: ; preds = %invoke.cont432 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp442) #22 - %call.i297302 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp441) - to label %call.i297.noexc unwind label %lpad443 + %call.i298303 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp441) + to label %call.i298.noexc unwind label %lpad443 -call.i297.noexc: ; preds = %invoke.cont434 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp441, ptr noundef %call.i297302, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp442) - to label %.noexc303 unwind label %lpad443 +call.i298.noexc: ; preds = %invoke.cont434 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp441, ptr noundef %call.i298303, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp442) + to label %.noexc304 unwind label %lpad443 -.noexc303: ; preds = %call.i297.noexc +.noexc304: ; preds = %call.i298.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp441, ptr noundef nonnull @.str.299, ptr noundef nonnull getelementptr inbounds ([22 x i8], ptr @.str.299, i64 0, i64 21)) - to label %invoke.cont444 unwind label %lpad.i301 + to label %invoke.cont444 unwind label %lpad.i302 -lpad.i301: ; preds = %.noexc303 +lpad.i302: ; preds = %.noexc304 %214 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp441) #22 br label %ehcleanup460 -invoke.cont444: ; preds = %.noexc303 - %call.i306307 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp441, i64 noundef 0, ptr noundef nonnull %data335) +invoke.cont444: ; preds = %.noexc304 + %call.i307308 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp441, i64 noundef 0, ptr noundef nonnull %data335) to label %invoke.cont446 unwind label %lpad445 invoke.cont446: ; preds = %invoke.cont444 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp437, ptr noundef nonnull align 8 dereferenceable(32) %call.i306307) #22 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp437, ptr noundef nonnull align 8 dereferenceable(32) %call.i307308) #22 invoke fastcc void @_ZN6AssimpL11XMLIDEncodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias nonnull align 8 %ref.tmp436, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp437) to label %invoke.cont448 unwind label %lpad447 @@ -15789,9 +15797,9 @@ invoke.cont455: ; preds = %invoke.cont452 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp437) #22 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp441) #22 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp442) #22 - %call.i310 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i311 = add i64 %call.i310, -2 - %call3.i312 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i311, i64 noundef -1) + %call.i311 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i312 = add i64 %call.i311, -2 + %call3.i313 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i312, i64 noundef -1) to label %invoke.cont461 unwind label %lpad348 invoke.cont461: ; preds = %invoke.cont455 @@ -15808,13 +15816,13 @@ invoke.cont467: ; preds = %invoke.cont465 invoke.cont470: ; preds = %invoke.cont467 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %node_idstr) #22 - %inc474 = add nuw nsw i64 %a325.0621, 1 + %inc474 = add nuw nsw i64 %a325.0630, 1 %215 = load i32, ptr %mNumChannels, align 8 %conv328 = zext i32 %215 to i64 %cmp329 = icmp ult i64 %inc474, %conv328 br i1 %cmp329, label %for.body330, label %for.cond477.preheader, !llvm.loop !98 -lpad339: ; preds = %call.i257.noexc, %for.body330 +lpad339: ; preds = %call.i258.noexc, %for.body330 %216 = landingpad { ptr, i32 } cleanup br label %ehcleanup344 @@ -15825,8 +15833,8 @@ lpad341: ; preds = %invoke.cont340 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp337) #22 br label %ehcleanup344 -ehcleanup344: ; preds = %lpad339, %lpad.i261, %lpad341 - %.pn62 = phi { ptr, i32 } [ %217, %lpad341 ], [ %216, %lpad339 ], [ %211, %lpad.i261 ] +ehcleanup344: ; preds = %lpad339, %lpad.i262, %lpad341 + %.pn62 = phi { ptr, i32 } [ %217, %lpad341 ], [ %216, %lpad339 ], [ %211, %lpad.i262 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp338) #22 br label %ehcleanup549 @@ -15841,7 +15849,7 @@ lpad355: ; preds = %invoke.cont358, %in call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp353) #22 br label %ehcleanup472 -lpad379: ; preds = %call.i273.noexc, %invoke.cont370 +lpad379: ; preds = %call.i274.noexc, %invoke.cont370 %220 = landingpad { ptr, i32 } cleanup br label %ehcleanup396 @@ -15872,12 +15880,12 @@ ehcleanup395: ; preds = %ehcleanup394, %lpad call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp377) #22 br label %ehcleanup396 -ehcleanup396: ; preds = %lpad379, %lpad.i277, %ehcleanup395 - %.pn64.pn.pn = phi { ptr, i32 } [ %.pn64.pn, %ehcleanup395 ], [ %220, %lpad379 ], [ %212, %lpad.i277 ] +ehcleanup396: ; preds = %lpad379, %lpad.i278, %ehcleanup395 + %.pn64.pn.pn = phi { ptr, i32 } [ %.pn64.pn, %ehcleanup395 ], [ %220, %lpad379 ], [ %212, %lpad.i278 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp378) #22 br label %ehcleanup472 -lpad411: ; preds = %call.i285.noexc, %invoke.cont402 +lpad411: ; preds = %call.i286.noexc, %invoke.cont402 %224 = landingpad { ptr, i32 } cleanup br label %ehcleanup428 @@ -15908,12 +15916,12 @@ ehcleanup427: ; preds = %ehcleanup426, %lpad call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp409) #22 br label %ehcleanup428 -ehcleanup428: ; preds = %lpad411, %lpad.i289, %ehcleanup427 - %.pn68.pn.pn = phi { ptr, i32 } [ %.pn68.pn, %ehcleanup427 ], [ %224, %lpad411 ], [ %213, %lpad.i289 ] +ehcleanup428: ; preds = %lpad411, %lpad.i290, %ehcleanup427 + %.pn68.pn.pn = phi { ptr, i32 } [ %.pn68.pn, %ehcleanup427 ], [ %224, %lpad411 ], [ %213, %lpad.i290 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp410) #22 br label %ehcleanup472 -lpad443: ; preds = %call.i297.noexc, %invoke.cont434 +lpad443: ; preds = %call.i298.noexc, %invoke.cont434 %228 = landingpad { ptr, i32 } cleanup br label %ehcleanup460 @@ -15944,8 +15952,8 @@ ehcleanup459: ; preds = %ehcleanup458, %lpad call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp441) #22 br label %ehcleanup460 -ehcleanup460: ; preds = %lpad443, %lpad.i301, %ehcleanup459 - %.pn72.pn.pn = phi { ptr, i32 } [ %.pn72.pn, %ehcleanup459 ], [ %228, %lpad443 ], [ %214, %lpad.i301 ] +ehcleanup460: ; preds = %lpad443, %lpad.i302, %ehcleanup459 + %.pn72.pn.pn = phi { ptr, i32 } [ %.pn72.pn, %ehcleanup459 ], [ %228, %lpad443 ], [ %214, %lpad.i302 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp442) #22 br label %ehcleanup472 @@ -15955,9 +15963,9 @@ ehcleanup472: ; preds = %ehcleanup460, %ehcl br label %ehcleanup549 for.body481: ; preds = %for.body481.lr.ph, %invoke.cont526 - %a476.0624 = phi i64 [ 0, %for.body481.lr.ph ], [ %inc536, %invoke.cont526 ] + %a476.0633 = phi i64 [ 0, %for.body481.lr.ph ], [ %inc536, %invoke.cont526 ] %232 = load ptr, ptr %mChannels483, align 8 - %arrayidx484 = getelementptr inbounds ptr, ptr %232, i64 %a476.0624 + %arrayidx484 = getelementptr inbounds ptr, ptr %232, i64 %a476.0633 %233 = load ptr, ptr %arrayidx484, align 8 %call489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr, ptr noundef nonnull align 8 dereferenceable(32) %startstr) to label %invoke.cont488 unwind label %lpad33.loopexit @@ -15969,29 +15977,29 @@ invoke.cont488: ; preds = %for.body481 invoke.cont490: ; preds = %invoke.cont488 %data495 = getelementptr inbounds %struct.aiString, ptr %233, i64 0, i32 1 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp498) #22 - %call.i314319 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp497) - to label %call.i314.noexc unwind label %lpad499 + %call.i315320 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp497) + to label %call.i315.noexc unwind label %lpad499 -call.i314.noexc: ; preds = %invoke.cont490 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp497, ptr noundef %call.i314319, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp498) - to label %.noexc320 unwind label %lpad499 +call.i315.noexc: ; preds = %invoke.cont490 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp497, ptr noundef %call.i315320, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp498) + to label %.noexc321 unwind label %lpad499 -.noexc320: ; preds = %call.i314.noexc +.noexc321: ; preds = %call.i315.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp497, ptr noundef nonnull @.str.301, ptr noundef nonnull getelementptr inbounds ([16 x i8], ptr @.str.301, i64 0, i64 15)) - to label %invoke.cont500 unwind label %lpad.i318 + to label %invoke.cont500 unwind label %lpad.i319 -lpad.i318: ; preds = %.noexc320 +lpad.i319: ; preds = %.noexc321 %234 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp497) #22 br label %ehcleanup534 -invoke.cont500: ; preds = %.noexc320 - %call.i323324 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp497, i64 noundef 0, ptr noundef nonnull %data495) +invoke.cont500: ; preds = %.noexc321 + %call.i324325 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp497, i64 noundef 0, ptr noundef nonnull %data495) to label %invoke.cont502 unwind label %lpad501 invoke.cont502: ; preds = %invoke.cont500 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp493, ptr noundef nonnull align 8 dereferenceable(32) %call.i323324) #22 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp493, ptr noundef nonnull align 8 dereferenceable(32) %call.i324325) #22 invoke fastcc void @_ZN6AssimpL11XMLIDEncodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias nonnull align 8 %ref.tmp492, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp493) to label %invoke.cont504 unwind label %lpad503 @@ -16005,26 +16013,26 @@ invoke.cont506: ; preds = %invoke.cont504 invoke.cont508: ; preds = %invoke.cont506 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp515) #22 - %call.i326331 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp511) - to label %call.i326.noexc unwind label %lpad516 + %call.i327332 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp511) + to label %call.i327.noexc unwind label %lpad516 -call.i326.noexc: ; preds = %invoke.cont508 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp511, ptr noundef %call.i326331, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp515) - to label %.noexc332 unwind label %lpad516 +call.i327.noexc: ; preds = %invoke.cont508 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp511, ptr noundef %call.i327332, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp515) + to label %.noexc333 unwind label %lpad516 -.noexc332: ; preds = %call.i326.noexc - %call.i.i328 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %data495) #22 - %add.ptr.i329 = getelementptr inbounds i8, ptr %data495, i64 %call.i.i328 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp511, ptr noundef nonnull %data495, ptr noundef nonnull %add.ptr.i329) - to label %invoke.cont517 unwind label %lpad.i330 +.noexc333: ; preds = %call.i327.noexc + %call.i.i329 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %data495) #22 + %add.ptr.i330 = getelementptr inbounds i8, ptr %data495, i64 %call.i.i329 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp511, ptr noundef nonnull %data495, ptr noundef nonnull %add.ptr.i330) + to label %invoke.cont517 unwind label %lpad.i331 -lpad.i330: ; preds = %.noexc332 +lpad.i331: ; preds = %.noexc333 %235 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp511) #22 br label %ehcleanup530 -invoke.cont517: ; preds = %.noexc332 +invoke.cont517: ; preds = %.noexc333 invoke fastcc void @_ZN6AssimpL11XMLIDEncodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias nonnull align 8 %ref.tmp510, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp511) to label %invoke.cont519 unwind label %lpad518 @@ -16048,13 +16056,13 @@ invoke.cont526: ; preds = %invoke.cont523 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp493) #22 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp497) #22 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp498) #22 - %inc536 = add nuw nsw i64 %a476.0624, 1 + %inc536 = add nuw nsw i64 %a476.0633, 1 %236 = load i32, ptr %mNumChannels, align 8 %conv479 = zext i32 %236 to i64 %cmp480 = icmp ult i64 %inc536, %conv479 br i1 %cmp480, label %for.body481, label %for.end537, !llvm.loop !99 -lpad499: ; preds = %call.i314.noexc, %invoke.cont490 +lpad499: ; preds = %call.i315.noexc, %invoke.cont490 %237 = landingpad { ptr, i32 } cleanup br label %ehcleanup534 @@ -16074,7 +16082,7 @@ lpad505: ; preds = %invoke.cont506, %in cleanup br label %ehcleanup531 -lpad516: ; preds = %call.i326.noexc, %invoke.cont508 +lpad516: ; preds = %call.i327.noexc, %invoke.cont508 %241 = landingpad { ptr, i32 } cleanup br label %ehcleanup530 @@ -16095,8 +16103,8 @@ ehcleanup529: ; preds = %lpad520, %lpad518 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp511) #22 br label %ehcleanup530 -ehcleanup530: ; preds = %lpad516, %lpad.i330, %ehcleanup529 - %.pn55.pn = phi { ptr, i32 } [ %.pn55, %ehcleanup529 ], [ %241, %lpad516 ], [ %235, %lpad.i330 ] +ehcleanup530: ; preds = %lpad516, %lpad.i331, %ehcleanup529 + %.pn55.pn = phi { ptr, i32 } [ %.pn55, %ehcleanup529 ], [ %241, %lpad516 ], [ %235, %lpad.i331 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp515) #22 br label %ehcleanup531 @@ -16115,15 +16123,15 @@ ehcleanup533: ; preds = %ehcleanup532, %lpad call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp497) #22 br label %ehcleanup534 -ehcleanup534: ; preds = %lpad499, %lpad.i318, %ehcleanup533 - %.pn55.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn55.pn.pn.pn.pn, %ehcleanup533 ], [ %237, %lpad499 ], [ %234, %lpad.i318 ] +ehcleanup534: ; preds = %lpad499, %lpad.i319, %ehcleanup533 + %.pn55.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn55.pn.pn.pn.pn, %ehcleanup533 ], [ %237, %lpad499 ], [ %234, %lpad.i319 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp498) #22 br label %ehcleanup549 for.end537: ; preds = %invoke.cont526, %invoke.cont24, %for.cond326.preheader, %for.cond477.preheader - %call.i336 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 - %sub.i337 = add i64 %call.i336, -2 - %call3.i338 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i337, i64 noundef -1) + %call.i337 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %startstr) #22 + %sub.i338 = add i64 %call.i337, -2 + %call3.i339 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm(ptr noundef nonnull align 8 dereferenceable(32) %startstr, i64 noundef %sub.i338, i64 noundef -1) to label %invoke.cont538 unwind label %lpad33.loopexit.split-lp.loopexit.split-lp invoke.cont538: ; preds = %for.end537 @@ -16147,8 +16155,8 @@ invoke.cont547: ; preds = %invoke.cont544 return: ; preds = %land.lhs.true3, %invoke.cont547 ret void -ehcleanup549: ; preds = %lpad33.loopexit, %lpad33.loopexit.split-lp.loopexit.split-lp, %lpad33.loopexit.split-lp.loopexit, %if.then.i.i.i172, %lpad75, %lpad75.thread, %if.then.i.i.i, %lpad53, %ehcleanup534, %ehcleanup472, %ehcleanup344, %ehcleanup321, %ehcleanup72, %ehcleanup44 - %.pn90 = phi { ptr, i32 } [ %.pn88, %ehcleanup321 ], [ %.pn80, %ehcleanup72 ], [ %.pn78, %ehcleanup44 ], [ %.pn76, %ehcleanup472 ], [ %.pn62, %ehcleanup344 ], [ %.pn55.pn.pn.pn.pn.pn, %ehcleanup534 ], [ %lpad.phi504, %lpad53 ], [ %lpad.phi504, %if.then.i.i.i ], [ %28, %lpad75.thread ], [ %lpad.phi498, %lpad75 ], [ %lpad.phi498, %if.then.i.i.i172 ], [ %lpad.loopexit, %lpad33.loopexit ], [ %lpad.loopexit505, %lpad33.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp506, %lpad33.loopexit.split-lp.loopexit.split-lp ] +ehcleanup549: ; preds = %lpad33.loopexit, %lpad33.loopexit.split-lp.loopexit.split-lp, %lpad33.loopexit.split-lp.loopexit, %if.then.i.i.i173, %lpad75, %lpad75.thread, %if.then.i.i.i, %lpad53, %ehcleanup534, %ehcleanup472, %ehcleanup344, %ehcleanup321, %ehcleanup72, %ehcleanup44 + %.pn90 = phi { ptr, i32 } [ %.pn88, %ehcleanup321 ], [ %.pn80, %ehcleanup72 ], [ %.pn78, %ehcleanup44 ], [ %.pn76, %ehcleanup472 ], [ %.pn62, %ehcleanup344 ], [ %.pn55.pn.pn.pn.pn.pn, %ehcleanup534 ], [ %lpad.phi503, %lpad53 ], [ %lpad.phi503, %if.then.i.i.i ], [ %28, %lpad75.thread ], [ %lpad.phi497, %lpad75 ], [ %lpad.phi497, %if.then.i.i.i173 ], [ %lpad.loopexit, %lpad33.loopexit ], [ %lpad.loopexit504, %lpad33.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp505, %lpad33.loopexit.split-lp.loopexit.split-lp ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %cur_node_idstr) #22 br label %ehcleanup550 diff --git a/bench/assimp/optimized/FBXExportProperty.cpp.ll b/bench/assimp/optimized/FBXExportProperty.cpp.ll index 929732526b7..4bb8f4c516b 100644 --- a/bench/assimp/optimized/FBXExportProperty.cpp.ll +++ b/bench/assimp/optimized/FBXExportProperty.cpp.ll @@ -670,9 +670,9 @@ entry: %_M_finish.i.i7.i = getelementptr inbounds %"class.Assimp::FBX::FBXExportProperty", ptr %this, i64 0, i32 1, i32 0, i32 0, i32 0, i32 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(128) %call5.i.i.i.i1.i.i7, i8 0, i64 128, i1 false) store ptr %add.ptr.i.i.i, ptr %_M_finish.i.i7.i, align 8 + %d1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %vm, i64 0, i32 12 %c1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %vm, i64 0, i32 8 %b1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %vm, i64 0, i32 4 - %d1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %vm, i64 0, i32 12 br label %for.cond3.preheader for.cond3.preheader: ; preds = %entry, %for.inc11 @@ -684,10 +684,11 @@ for.cond3.preheader: ; preds = %entry, %for.inc11 if.end.i: ; preds = %for.cond3.preheader, %_ZNK12aiMatrix4x4tIfEixEj.exit %indvars.iv = phi i64 [ 0, %for.cond3.preheader ], [ %indvars.iv.next, %_ZNK12aiMatrix4x4tIfEixEj.exit ] %1 = trunc i64 %indvars.iv to i32 - switch i32 %1, label %_ZNK12aiMatrix4x4tIfEixEj.exit [ - i32 3, label %sw.bb4.i + switch i32 %1, label %default.unreachable.i [ + i32 0, label %_ZNK12aiMatrix4x4tIfEixEj.exit i32 1, label %sw.bb2.i i32 2, label %sw.bb3.i + i32 3, label %sw.bb4.i ] sw.bb2.i: ; preds = %if.end.i @@ -699,6 +700,9 @@ sw.bb3.i: ; preds = %if.end.i sw.bb4.i: ; preds = %if.end.i br label %_ZNK12aiMatrix4x4tIfEixEj.exit +default.unreachable.i: ; preds = %if.end.i + unreachable + _ZNK12aiMatrix4x4tIfEixEj.exit: ; preds = %if.end.i, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i %retval.0.i = phi ptr [ %d1.i, %sw.bb4.i ], [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %vm, %if.end.i ] %arrayidx = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv12 diff --git a/bench/assimp/optimized/MD3Loader.cpp.ll b/bench/assimp/optimized/MD3Loader.cpp.ll index d0959afd6ae..249b2577d13 100644 --- a/bench/assimp/optimized/MD3Loader.cpp.ll +++ b/bench/assimp/optimized/MD3Loader.cpp.ll @@ -4314,18 +4314,18 @@ invoke.cont: ; preds = %entry call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp6) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #17 %call10 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %filename) #17 - %call13371 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %filename) #17 - %cmp.i.not372 = icmp eq ptr %call10, %call13371 - br i1 %cmp.i.not372, label %for.end, label %for.body + %call13372 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %filename) #17 + %cmp.i.not373 = icmp eq ptr %call10, %call13372 + br i1 %cmp.i.not373, label %for.end, label %for.body for.body: ; preds = %invoke.cont, %for.body - %it.sroa.0.0373 = phi ptr [ %incdec.ptr.i, %for.body ], [ %call10, %invoke.cont ] - %0 = load i8, ptr %it.sroa.0.0373, align 1 + %it.sroa.0.0374 = phi ptr [ %incdec.ptr.i, %for.body ], [ %call10, %invoke.cont ] + %0 = load i8, ptr %it.sroa.0.0374, align 1 %conv = zext i8 %0 to i32 %call17 = call i32 @tolower(i32 noundef %conv) #19 %conv18 = trunc i32 %call17 to i8 - store i8 %conv18, ptr %it.sroa.0.0373, align 1 - %incdec.ptr.i = getelementptr inbounds i8, ptr %it.sroa.0.0373, i64 1 + store i8 %conv18, ptr %it.sroa.0.0374, align 1 + %incdec.ptr.i = getelementptr inbounds i8, ptr %it.sroa.0.0374, i64 1 %call13 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %filename) #17 %cmp.i.not = icmp eq ptr %incdec.ptr.i, %call13 br i1 %cmp.i.not, label %for.end, label %for.body, !llvm.loop !47 @@ -4581,7 +4581,7 @@ invoke.cont116: ; preds = %invoke.cont106 if.end121.thread: ; preds = %invoke.cont116 %31 = load ptr, ptr %pcHeader, align 8 - %NAME462 = getelementptr inbounds %"struct.Assimp::MD3::Header", ptr %31, i64 0, i32 2 + %NAME464 = getelementptr inbounds %"struct.Assimp::MD3::Header", ptr %31, i64 0, i32 2 br label %if.end163 if.then118: ; preds = %invoke.cont116 @@ -4640,21 +4640,21 @@ for.cond128.preheader: ; preds = %if.end121 br label %for.body134 for.body134: ; preds = %for.cond128.preheader, %for.inc160 - %dit.sroa.0.0377 = phi ptr [ %.pre, %for.cond128.preheader ], [ %38, %for.inc160 ] - %_M_storage.i.i = getelementptr inbounds %"struct.std::_List_node", ptr %dit.sroa.0.0377, i64 0, i32 1 + %dit.sroa.0.0378 = phi ptr [ %.pre, %for.cond128.preheader ], [ %38, %for.inc160 ] + %_M_storage.i.i = getelementptr inbounds %"struct.std::_List_node", ptr %dit.sroa.0.0378, i64 0, i32 1 %call136 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i) #17 invoke void @_ZNK6Assimp11MD3Importer11ConvertPathEPKcS2_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull align 8 poison, ptr noundef %call136, ptr noundef nonnull %NAME, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i) to label %invoke.cont139 unwind label %lpad119.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont139: ; preds = %for.body134 - %maps = getelementptr inbounds %"struct.std::_List_node", ptr %dit.sroa.0.0377, i64 0, i32 1, i32 0, i64 40 - %mit.sroa.0.0374 = load ptr, ptr %maps, align 8 - %cmp.i175.not375 = icmp eq ptr %mit.sroa.0.0374, %maps - br i1 %cmp.i175.not375, label %for.inc160, label %for.body150 + %maps = getelementptr inbounds %"struct.std::_List_node", ptr %dit.sroa.0.0378, i64 0, i32 1, i32 0, i64 40 + %mit.sroa.0.0375 = load ptr, ptr %maps, align 8 + %cmp.i175.not376 = icmp eq ptr %mit.sroa.0.0375, %maps + br i1 %cmp.i175.not376, label %for.inc160, label %for.body150 for.body150: ; preds = %invoke.cont139, %for.inc157 - %mit.sroa.0.0376 = phi ptr [ %mit.sroa.0.0, %for.inc157 ], [ %mit.sroa.0.0374, %invoke.cont139 ] - %_M_storage.i.i176 = getelementptr inbounds %"struct.std::_List_node.69", ptr %mit.sroa.0.0376, i64 0, i32 1 + %mit.sroa.0.0377 = phi ptr [ %mit.sroa.0.0, %for.inc157 ], [ %mit.sroa.0.0375, %invoke.cont139 ] + %_M_storage.i.i176 = getelementptr inbounds %"struct.std::_List_node.69", ptr %mit.sroa.0.0377, i64 0, i32 1 %call153 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i176) #17 %call.i178 = call noundef ptr @strrchr(ptr noundef nonnull dereferenceable(1) %NAME, i32 noundef 92) #19 %tobool.not.i = icmp eq ptr %call.i178, null @@ -4722,26 +4722,26 @@ if.end33.i: ; preds = %_ZN6Assimp15ASSIMP_ to label %for.inc157 unwind label %lpad119.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit for.inc157: ; preds = %if.then29.i.invoke, %if.end33.i - %mit.sroa.0.0 = load ptr, ptr %mit.sroa.0.0376, align 8 + %mit.sroa.0.0 = load ptr, ptr %mit.sroa.0.0377, align 8 %cmp.i175.not = icmp eq ptr %mit.sroa.0.0, %maps br i1 %cmp.i175.not, label %for.inc160, label %for.body150, !llvm.loop !48 for.inc160: ; preds = %for.inc157, %invoke.cont139 - %38 = load ptr, ptr %dit.sroa.0.0377, align 8 + %38 = load ptr, ptr %dit.sroa.0.0378, align 8 %cmp.i171.not = icmp eq ptr %38, %shaders br i1 %cmp.i171.not, label %if.end163.loopexit, label %for.body134, !llvm.loop !49 if.end163.loopexit: ; preds = %for.inc160 - %.pre461 = load ptr, ptr %pcHeader, align 8 + %.pre463 = load ptr, ptr %pcHeader, align 8 br label %if.end163 if.end163: ; preds = %if.end121.thread, %if.end163.loopexit, %if.end121 - %NAME464 = phi ptr [ %NAME, %if.end163.loopexit ], [ %NAME, %if.end121 ], [ %NAME462, %if.end121.thread ] - %39 = phi ptr [ %.pre461, %if.end163.loopexit ], [ %33, %if.end121 ], [ %31, %if.end121.thread ] + %NAME466 = phi ptr [ %NAME, %if.end163.loopexit ], [ %NAME, %if.end121 ], [ %NAME464, %if.end121.thread ] + %39 = phi ptr [ %.pre463, %if.end163.loopexit ], [ %33, %if.end121 ], [ %31, %if.end121.thread ] %NUM_SURFACES165 = getelementptr inbounds %"struct.Assimp::MD3::Header", ptr %39, i64 0, i32 6 %40 = load i32, ptr %NUM_SURFACES165, align 1 - %cmp166.not387398 = icmp eq i32 %40, 0 - br i1 %cmp166.not387398, label %while.end, label %while.body.lr.ph.lr.ph + %cmp166.not388399 = icmp eq i32 %40, 0 + br i1 %cmp166.not388399, label %while.end, label %while.body.lr.ph.lr.ph while.body.lr.ph.lr.ph: ; preds = %if.end163 %b.i = getelementptr inbounds %struct.aiColor3D, ptr %clr, i64 0, i32 2 @@ -4752,60 +4752,60 @@ while.body.lr.ph.lr.ph: ; preds = %if.end163 br label %while.body.lr.ph while.body.lr.ph: ; preds = %while.body.lr.ph.lr.ph, %for.end482 - %dec386401.in = phi i32 [ %40, %while.body.lr.ph.lr.ph ], [ %dec389, %for.end482 ] - %pcSurfaces.0.ph400 = phi ptr [ %add.ptr, %while.body.lr.ph.lr.ph ], [ %add.ptr485, %for.end482 ] - %iNumMaterials.0.ph399 = phi i32 [ 0, %while.body.lr.ph.lr.ph ], [ %inc346, %for.end482 ] + %dec387402.in = phi i32 [ %40, %while.body.lr.ph.lr.ph ], [ %dec390, %for.end482 ] + %pcSurfaces.0.ph401 = phi ptr [ %add.ptr, %while.body.lr.ph.lr.ph ], [ %add.ptr485, %for.end482 ] + %iNumMaterials.0.ph400 = phi i32 [ 0, %while.body.lr.ph.lr.ph ], [ %inc346, %for.end482 ] br label %while.body while.body: ; preds = %while.body.lr.ph, %if.then178 - %dec389.in = phi i32 [ %dec386401.in, %while.body.lr.ph ], [ %dec389, %if.then178 ] - %pcSurfaces.0388 = phi ptr [ %pcSurfaces.0.ph400, %while.body.lr.ph ], [ %add.ptr180, %if.then178 ] - %dec389 = add i32 %dec389.in, -1 - invoke void @_ZN6Assimp11MD3Importer28ValidateSurfaceHeaderOffsetsEPKNS_3MD37SurfaceE(ptr noundef nonnull align 8 dereferenceable(296) %this, ptr noundef %pcSurfaces.0388) + %dec390.in = phi i32 [ %dec387402.in, %while.body.lr.ph ], [ %dec390, %if.then178 ] + %pcSurfaces.0389 = phi ptr [ %pcSurfaces.0.ph401, %while.body.lr.ph ], [ %add.ptr180, %if.then178 ] + %dec390 = add i32 %dec390.in, -1 + invoke void @_ZN6Assimp11MD3Importer28ValidateSurfaceHeaderOffsetsEPKNS_3MD37SurfaceE(ptr noundef nonnull align 8 dereferenceable(296) %this, ptr noundef %pcSurfaces.0389) to label %invoke.cont167 unwind label %lpad119.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit invoke.cont167: ; preds = %while.body - %NUM_VERTICES = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 5 + %NUM_VERTICES = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 5 %41 = load i32, ptr %NUM_VERTICES, align 4 %cmp176 = icmp eq i32 %41, 0 br i1 %cmp176, label %if.then178, label %lor.lhs.false lor.lhs.false: ; preds = %invoke.cont167 - %NUM_TRIANGLES = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 6 + %NUM_TRIANGLES = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 6 %42 = load i32, ptr %NUM_TRIANGLES, align 4 %cmp177 = icmp eq i32 %42, 0 br i1 %cmp177, label %if.then178, label %if.end183 if.then178: ; preds = %lor.lhs.false, %invoke.cont167 - %OFS_END = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 11 + %OFS_END = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 11 %43 = load i32, ptr %OFS_END, align 4 %idx.ext179 = sext i32 %43 to i64 - %add.ptr180 = getelementptr inbounds i8, ptr %pcSurfaces.0388, i64 %idx.ext179 + %add.ptr180 = getelementptr inbounds i8, ptr %pcSurfaces.0389, i64 %idx.ext179 %44 = load i32, ptr %mNumMeshes, align 8 %dec182 = add i32 %44, -1 store i32 %dec182, ptr %mNumMeshes, align 8 - %cmp166.not = icmp eq i32 %dec389, 0 + %cmp166.not = icmp eq i32 %dec390, 0 br i1 %cmp166.not, label %while.end, label %while.body, !llvm.loop !50 if.end183: ; preds = %lor.lhs.false - %NUM_VERTICES.le = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 5 - %NUM_TRIANGLES.le = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 6 - %OFS_SHADERS = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 8 + %NUM_VERTICES.le = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 5 + %NUM_TRIANGLES.le = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 6 + %OFS_SHADERS = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 8 %45 = load i32, ptr %OFS_SHADERS, align 4 - %OFS_ST = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 9 + %OFS_ST = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 9 %46 = load i32, ptr %OFS_ST, align 4 - %OFS_TRIANGLES = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 7 + %OFS_TRIANGLES = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 7 %47 = load i32, ptr %OFS_TRIANGLES, align 4 - %OFS_XYZNORMAL = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 10 + %OFS_XYZNORMAL = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 10 %48 = load i32, ptr %OFS_XYZNORMAL, align 4 %idx.ext168.le = zext i32 %48 to i64 - %add.ptr169.le = getelementptr inbounds i8, ptr %pcSurfaces.0388, i64 %idx.ext168.le + %add.ptr169.le = getelementptr inbounds i8, ptr %pcSurfaces.0389, i64 %idx.ext168.le %idx.ext170.le = zext i32 %47 to i64 - %add.ptr171.le = getelementptr inbounds i8, ptr %pcSurfaces.0388, i64 %idx.ext170.le + %add.ptr171.le = getelementptr inbounds i8, ptr %pcSurfaces.0389, i64 %idx.ext170.le %idx.ext172.le = zext i32 %46 to i64 - %add.ptr173.le = getelementptr inbounds i8, ptr %pcSurfaces.0388, i64 %idx.ext172.le + %add.ptr173.le = getelementptr inbounds i8, ptr %pcSurfaces.0389, i64 %idx.ext172.le %idx.ext174.le = zext i32 %45 to i64 - %add.ptr175.le = getelementptr inbounds i8, ptr %pcSurfaces.0388, i64 %idx.ext174.le + %add.ptr175.le = getelementptr inbounds i8, ptr %pcSurfaces.0389, i64 %idx.ext174.le %call185 = invoke noalias noundef nonnull dereferenceable(1320) ptr @_Znwm(i64 noundef 1320) #18 to label %invoke.cont184 unwind label %lpad119.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp @@ -4826,7 +4826,7 @@ invoke.cont184: ; preds = %if.end183 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %mBones.i, i8 0, i64 17, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %mAnimMeshes.i, i8 0, i64 36, i1 false) %49 = load ptr, ptr %mMeshes, align 8 - %idxprom = zext i32 %dec389 to i64 + %idxprom = zext i32 %dec390 to i64 %arrayidx = getelementptr inbounds ptr, ptr %49, i64 %idxprom store ptr %call185, ptr %arrayidx, align 8 %50 = load ptr, ptr %mMeshes, align 8 @@ -4834,13 +4834,13 @@ invoke.cont184: ; preds = %if.end183 %51 = load ptr, ptr %arrayidx189, align 8 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_texture_name) #17 %52 = load ptr, ptr %skins, align 8 - %NAME197 = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 1 + %NAME197 = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__pred.i.i.i) store ptr %NAME197, ptr %__pred.i.i.i, align 8 %cmp.i.not2.i.i.i = icmp eq ptr %52, %skins - br i1 %cmp.i.not2.i.i.i, label %invoke.cont201.thread465, label %land.rhs.i.i.i + br i1 %cmp.i.not2.i.i.i, label %invoke.cont201.thread467, label %land.rhs.i.i.i -invoke.cont201.thread465: ; preds = %invoke.cont184 +invoke.cont201.thread467: ; preds = %invoke.cont184 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__pred.i.i.i) br label %land.lhs.true @@ -4896,8 +4896,8 @@ if.end224: ; preds = %invoke.cont217 %tobool225.not = icmp eq ptr %call214, null br i1 %tobool225.not, label %land.lhs.true, label %if.then232 -land.lhs.true: ; preds = %invoke.cont201.thread465, %invoke.cont201.thread, %invoke.cont201, %if.end224 - %NUM_SHADER = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 4 +land.lhs.true: ; preds = %invoke.cont201.thread467, %invoke.cont201.thread, %invoke.cont201, %if.end224 + %NUM_SHADER = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 4 %54 = load i32, ptr %NUM_SHADER, align 4 %tobool226.not = icmp eq i32 %54, 0 br i1 %tobool226.not, label %if.end230, label %if.then232 @@ -4915,7 +4915,7 @@ if.then232: ; preds = %if.end224, %land.lh br i1 %tobool234.not, label %if.else238, label %if.then235 if.then235: ; preds = %if.then232 - invoke void @_ZNK6Assimp11MD3Importer11ConvertPathEPKcS2_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull align 8 poison, ptr noundef nonnull %texture_name.1.ph, ptr noundef nonnull %NAME464, ptr noundef nonnull align 8 dereferenceable(32) %convertedPath) + invoke void @_ZNK6Assimp11MD3Importer11ConvertPathEPKcS2_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull align 8 poison, ptr noundef nonnull %texture_name.1.ph, ptr noundef nonnull %NAME466, ptr noundef nonnull align 8 dereferenceable(32) %convertedPath) to label %if.end242 unwind label %lpad236.loopexit.split-lp.loopexit lpad236.loopexit: ; preds = %for.body395 @@ -5161,12 +5161,12 @@ if.else340: ; preds = %invoke.cont322 if.end342: ; preds = %invoke.cont336, %if.else340 %66 = load ptr, ptr %mMaterials, align 8 - %idxprom344 = zext i32 %iNumMaterials.0.ph399 to i64 + %idxprom344 = zext i32 %iNumMaterials.0.ph400 to i64 %arrayidx345 = getelementptr inbounds ptr, ptr %66, i64 %idxprom344 store ptr %call287, ptr %arrayidx345, align 8 - %inc346 = add i32 %iNumMaterials.0.ph399, 1 + %inc346 = add i32 %iNumMaterials.0.ph400, 1 %mMaterialIndex = getelementptr inbounds %struct.aiMesh, ptr %51, i64 0, i32 13 - store i32 %iNumMaterials.0.ph399, ptr %mMaterialIndex, align 8 + store i32 %iNumMaterials.0.ph400, ptr %mMaterialIndex, align 8 store i32 4, ptr %51, align 8 %67 = load i32, ptr %NUM_TRIANGLES.le, align 4 %mul348 = mul i32 %67, 3 @@ -5269,38 +5269,38 @@ arrayctor.cont389: ; preds = %new.ctorloop383, %i %mNumUVComponents = getelementptr inbounds %struct.aiMesh, ptr %51, i64 0, i32 9 store i32 2, ptr %mNumUVComponents, align 8 %90 = load i32, ptr %NUM_TRIANGLES.le, align 4 - %cmp394393.not = icmp eq i32 %90, 0 - br i1 %cmp394393.not, label %for.end482, label %for.body395.lr.ph + %cmp394394.not = icmp eq i32 %90, 0 + br i1 %cmp394394.not, label %for.end482, label %for.body395.lr.ph for.body395.lr.ph: ; preds = %arrayctor.cont389 %cull = getelementptr inbounds %"struct.Assimp::Q3Shader::ShaderDataBlock", ptr %shader.1, i64 0, i32 1 br label %for.body395 for.body395: ; preds = %for.body395.lr.ph, %if.end479 - %indvars.iv444 = phi i64 [ 0, %for.body395.lr.ph ], [ %indvars.iv.next445, %if.end479 ] - %iCurrent.0395 = phi i32 [ 0, %for.body395.lr.ph ], [ %inc463, %if.end479 ] - %pcTriangles.0394 = phi ptr [ %add.ptr171.le, %for.body395.lr.ph ], [ %incdec.ptr, %if.end479 ] + %indvars.iv446 = phi i64 [ 0, %for.body395.lr.ph ], [ %indvars.iv.next447, %if.end479 ] + %iCurrent.0396 = phi i32 [ 0, %for.body395.lr.ph ], [ %inc463, %if.end479 ] + %pcTriangles.0395 = phi ptr [ %add.ptr171.le, %for.body395.lr.ph ], [ %incdec.ptr, %if.end479 ] %call397 = invoke noalias noundef nonnull dereferenceable(12) ptr @_Znam(i64 noundef 12) #18 to label %invoke.cont396 unwind label %lpad236.loopexit invoke.cont396: ; preds = %for.body395 %91 = load ptr, ptr %mFaces, align 8 - %mIndices = getelementptr inbounds %struct.aiFace, ptr %91, i64 %indvars.iv444, i32 1 + %mIndices = getelementptr inbounds %struct.aiFace, ptr %91, i64 %indvars.iv446, i32 1 store ptr %call397, ptr %mIndices, align 8 %92 = load ptr, ptr %mFaces, align 8 - %arrayidx403 = getelementptr inbounds %struct.aiFace, ptr %92, i64 %indvars.iv444 + %arrayidx403 = getelementptr inbounds %struct.aiFace, ptr %92, i64 %indvars.iv446 store i32 3, ptr %arrayidx403, align 8 br label %for.body406 for.body406: ; preds = %invoke.cont396, %invoke.cont446 %indvars.iv = phi i64 [ 0, %invoke.cont396 ], [ %indvars.iv.next, %invoke.cont446 ] - %iCurrent.1391 = phi i32 [ %iCurrent.0395, %invoke.cont396 ], [ %inc463, %invoke.cont446 ] + %iCurrent.1392 = phi i32 [ %iCurrent.0396, %invoke.cont396 ], [ %inc463, %invoke.cont446 ] %93 = load ptr, ptr %mFaces, align 8 - %mIndices410 = getelementptr inbounds %struct.aiFace, ptr %93, i64 %indvars.iv444, i32 1 + %mIndices410 = getelementptr inbounds %struct.aiFace, ptr %93, i64 %indvars.iv446, i32 1 %94 = load ptr, ptr %mIndices410, align 8 %arrayidx412 = getelementptr inbounds i32, ptr %94, i64 %indvars.iv - store i32 %iCurrent.1391, ptr %arrayidx412, align 4 - %arrayidx417 = getelementptr inbounds [3 x i32], ptr %pcTriangles.0394, i64 0, i64 %indvars.iv + store i32 %iCurrent.1392, ptr %arrayidx412, align 4 + %arrayidx417 = getelementptr inbounds [3 x i32], ptr %pcTriangles.0395, i64 0, i64 %indvars.iv %95 = load i32, ptr %arrayidx417, align 4 %96 = load i32, ptr %NUM_VERTICES.le, align 4 %cmp419.not = icmp ult i32 %95, %96 @@ -5322,7 +5322,7 @@ lpad422: ; preds = %if.then420 br label %ehcleanup486 invoke.cont446: ; preds = %for.body406 - %idxprom414 = zext i32 %iCurrent.1391 to i64 + %idxprom414 = zext i32 %iCurrent.1392 to i64 %98 = load ptr, ptr %mVertices, align 8 %arrayidx415 = getelementptr inbounds %class.aiVector3t, ptr %98, i64 %idxprom414 %idxprom426 = zext i32 %95 to i64 @@ -5378,7 +5378,7 @@ invoke.cont446: ; preds = %for.body406 %y460 = getelementptr inbounds %class.aiVector3t, ptr %107, i64 %idxprom414, i32 1 store float %sub, ptr %y460, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %inc463 = add i32 %iCurrent.1391, 1 + %inc463 = add i32 %iCurrent.1392, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 3 br i1 %exitcond.not, label %for.end464, label %for.body406, !llvm.loop !52 @@ -5392,7 +5392,7 @@ land.lhs.true466: ; preds = %for.end464 if.then468: ; preds = %land.lhs.true466, %for.end464 %109 = load ptr, ptr %mFaces, align 8 - %mIndices472 = getelementptr inbounds %struct.aiFace, ptr %109, i64 %indvars.iv444, i32 1 + %mIndices472 = getelementptr inbounds %struct.aiFace, ptr %109, i64 %indvars.iv446, i32 1 %110 = load ptr, ptr %mIndices472, align 8 %arrayidx478 = getelementptr inbounds i32, ptr %110, i64 1 %111 = load <2 x i32>, ptr %arrayidx478, align 4 @@ -5401,22 +5401,22 @@ if.then468: ; preds = %land.lhs.true466, % br label %if.end479 if.end479: ; preds = %if.then468, %land.lhs.true466 - %incdec.ptr = getelementptr inbounds %"struct.Assimp::MD3::Triangle", ptr %pcTriangles.0394, i64 1 - %indvars.iv.next445 = add nuw nsw i64 %indvars.iv444, 1 + %incdec.ptr = getelementptr inbounds %"struct.Assimp::MD3::Triangle", ptr %pcTriangles.0395, i64 1 + %indvars.iv.next447 = add nuw nsw i64 %indvars.iv446, 1 %113 = load i32, ptr %NUM_TRIANGLES.le, align 4 %114 = zext i32 %113 to i64 - %cmp394 = icmp ult i64 %indvars.iv.next445, %114 + %cmp394 = icmp ult i64 %indvars.iv.next447, %114 br i1 %cmp394, label %for.body395, label %for.end482, !llvm.loop !53 for.end482: ; preds = %if.end479, %arrayctor.cont389 - %OFS_END483 = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0388, i64 0, i32 11 + %OFS_END483 = getelementptr inbounds %"struct.Assimp::MD3::Surface", ptr %pcSurfaces.0389, i64 0, i32 11 %115 = load i32, ptr %OFS_END483, align 4 %idx.ext484 = sext i32 %115 to i64 - %add.ptr485 = getelementptr inbounds i8, ptr %pcSurfaces.0388, i64 %idx.ext484 + %add.ptr485 = getelementptr inbounds i8, ptr %pcSurfaces.0389, i64 %idx.ext484 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %convertedPath) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_texture_name) #17 - %cmp166.not387 = icmp eq i32 %dec389, 0 - br i1 %cmp166.not387, label %while.end, label %while.body.lr.ph, !llvm.loop !50 + %cmp166.not388 = icmp eq i32 %dec390, 0 + br i1 %cmp166.not388, label %while.end, label %while.body.lr.ph, !llvm.loop !50 ehcleanup486: ; preds = %lpad236.loopexit, %lpad236.loopexit.split-lp.loopexit.split-lp, %lpad236.loopexit.split-lp.loopexit, %lpad422, %ehcleanup321, %lpad288, %lpad264 %.pn155 = phi { ptr, i32 } [ %97, %lpad422 ], [ %.pn152.pn, %ehcleanup321 ], [ %62, %lpad288 ], [ %59, %lpad264 ], [ %lpad.loopexit327, %lpad236.loopexit ], [ %lpad.loopexit335, %lpad236.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp336, %lpad236.loopexit.split-lp.loopexit.split-lp ] @@ -5429,20 +5429,20 @@ ehcleanup487: ; preds = %lpad200.loopexit, % br label %ehcleanup628 while.end: ; preds = %for.end482, %if.then178, %if.end163 - %iNumMaterials.0.ph.lcssa370 = phi i32 [ 0, %if.end163 ], [ %iNumMaterials.0.ph399, %if.then178 ], [ %inc346, %for.end482 ] + %iNumMaterials.0.ph.lcssa371 = phi i32 [ 0, %if.end163 ], [ %iNumMaterials.0.ph400, %if.then178 ], [ %inc346, %for.end482 ] %call489 = invoke noundef zeroext i1 @_ZN6Assimp13DefaultLogger12isNullLoggerEv() to label %invoke.cont488 unwind label %lpad119.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont488: ; preds = %while.end - %it491.sroa.0.0403 = load ptr, ptr %skins, align 8 - %cmp.i243.not404 = icmp eq ptr %it491.sroa.0.0403, %skins - %or.cond = select i1 %call489, i1 true, i1 %cmp.i243.not404 + %it491.sroa.0.0404 = load ptr, ptr %skins, align 8 + %cmp.i243.not405 = icmp eq ptr %it491.sroa.0.0404, %skins + %or.cond = select i1 %call489, i1 true, i1 %cmp.i243.not405 br i1 %or.cond, label %if.end518, label %for.body503 for.body503: ; preds = %invoke.cont488, %for.inc515 - %it491.sroa.0.0405 = phi ptr [ %it491.sroa.0.0, %for.inc515 ], [ %it491.sroa.0.0403, %invoke.cont488 ] - %_M_storage.i.i244 = getelementptr inbounds %"struct.std::_List_node.71", ptr %it491.sroa.0.0405, i64 0, i32 1 - %resolved505 = getelementptr inbounds %"struct.std::_List_node.71", ptr %it491.sroa.0.0405, i64 0, i32 1, i32 0, i64 64 + %it491.sroa.0.0406 = phi ptr [ %it491.sroa.0.0, %for.inc515 ], [ %it491.sroa.0.0404, %invoke.cont488 ] + %_M_storage.i.i244 = getelementptr inbounds %"struct.std::_List_node.71", ptr %it491.sroa.0.0406, i64 0, i32 1 + %resolved505 = getelementptr inbounds %"struct.std::_List_node.71", ptr %it491.sroa.0.0406, i64 0, i32 1, i32 0, i64 64 %116 = load i8, ptr %resolved505, align 8 %117 = and i8 %116, 1 %tobool506.not = icmp eq i8 %117, 0 @@ -5453,12 +5453,12 @@ if.then507: ; preds = %for.body503 to label %invoke.cont508 unwind label %lpad119.loopexit.split-lp.loopexit invoke.cont508: ; preds = %if.then507 - %second512 = getelementptr inbounds %"struct.std::_List_node.71", ptr %it491.sroa.0.0405, i64 0, i32 1, i32 0, i64 32 + %second512 = getelementptr inbounds %"struct.std::_List_node.71", ptr %it491.sroa.0.0406, i64 0, i32 1, i32 0, i64 32 invoke void @_ZN6Assimp6Logger5errorIJRA27_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA13_S2_SC_EEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %call509, ptr noundef nonnull align 1 dereferenceable(27) @.str.100, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i244, ptr noundef nonnull align 1 dereferenceable(13) @.str.86, ptr noundef nonnull align 8 dereferenceable(32) %second512) to label %for.inc515 unwind label %lpad119.loopexit.split-lp.loopexit for.inc515: ; preds = %for.body503, %invoke.cont508 - %it491.sroa.0.0 = load ptr, ptr %it491.sroa.0.0405, align 8 + %it491.sroa.0.0 = load ptr, ptr %it491.sroa.0.0406, align 8 %cmp.i243.not = icmp eq ptr %it491.sroa.0.0, %skins br i1 %cmp.i243.not, label %if.end518, label %for.body503, !llvm.loop !54 @@ -5483,7 +5483,7 @@ lpad523: ; preds = %if.then521 br label %ehcleanup628 if.end526: ; preds = %if.end518 - store i32 %iNumMaterials.0.ph.lcssa370, ptr %mNumMaterials, align 8 + store i32 %iNumMaterials.0.ph.lcssa371, ptr %mNumMaterials, align 8 %call529 = invoke noalias noundef nonnull dereferenceable(1144) ptr @_Znwm(i64 noundef 1144) #18 to label %invoke.cont528 unwind label %lpad119.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -5551,14 +5551,14 @@ invoke.cont557: ; preds = %if.then550 %mChildren = getelementptr inbounds %struct.aiNode, ptr %131, i64 0, i32 4 store ptr %call558, ptr %mChildren, align 8 %132 = load ptr, ptr %pcHeader, align 8 - %NUM_TAGS563408 = getelementptr inbounds %"struct.Assimp::MD3::Header", ptr %132, i64 0, i32 5 - %133 = load i32, ptr %NUM_TAGS563408, align 1 - %cmp564409.not = icmp eq i32 %133, 0 - br i1 %cmp564409.not, label %if.end611, label %for.body565 + %NUM_TAGS563409 = getelementptr inbounds %"struct.Assimp::MD3::Header", ptr %132, i64 0, i32 5 + %133 = load i32, ptr %NUM_TAGS563409, align 1 + %cmp564410.not = icmp eq i32 %133, 0 + br i1 %cmp564410.not, label %if.end611, label %for.body565 for.body565: ; preds = %invoke.cont557, %for.inc607 - %indvars.iv455 = phi i64 [ %indvars.iv.next456, %for.inc607 ], [ 0, %invoke.cont557 ] - %pcTags.0410 = phi ptr [ %incdec.ptr609, %for.inc607 ], [ %add.ptr76, %invoke.cont557 ] + %indvars.iv457 = phi i64 [ %indvars.iv.next458, %for.inc607 ], [ 0, %invoke.cont557 ] + %pcTags.0411 = phi ptr [ %incdec.ptr609, %for.inc607 ], [ %add.ptr76, %invoke.cont557 ] %call567 = invoke noalias noundef nonnull dereferenceable(1144) ptr @_Znwm(i64 noundef 1144) #18 to label %invoke.cont566 unwind label %lpad119.loopexit @@ -5570,49 +5570,50 @@ invoke.cont569: ; preds = %invoke.cont566 %134 = load ptr, ptr %mRootNode, align 8 %mChildren572 = getelementptr inbounds %struct.aiNode, ptr %134, i64 0, i32 4 %135 = load ptr, ptr %mChildren572, align 8 - %arrayidx574 = getelementptr inbounds ptr, ptr %135, i64 %indvars.iv455 + %arrayidx574 = getelementptr inbounds ptr, ptr %135, i64 %indvars.iv457 store ptr %call567, ptr %arrayidx574, align 8 - %call.i256 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %pcTags.0410) #19 + %call.i256 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %pcTags.0411) #19 %conv.i257 = trunc i64 %call.i256 to i32 %spec.store.select.i258 = call i32 @llvm.smin.i32(i32 %conv.i257, i32 1023) store i32 %spec.store.select.i258, ptr %call567, align 4 %data.i259 = getelementptr inbounds %struct.aiString, ptr %call567, i64 0, i32 1 %conv2.i260 = sext i32 %spec.store.select.i258 to i64 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %data.i259, ptr align 1 %pcTags.0410, i64 %conv2.i260, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %data.i259, ptr align 1 %pcTags.0411, i64 %conv2.i260, i1 false) %arrayidx.i261 = getelementptr inbounds %struct.aiString, ptr %call567, i64 0, i32 1, i64 %conv2.i260 store i8 0, ptr %arrayidx.i261, align 1 %136 = load ptr, ptr %mRootNode, align 8 %mParent = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 2 store ptr %136, ptr %mParent, align 8 - %origin = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0410, i64 0, i32 1 + %origin = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0411, i64 0, i32 1 %137 = load float, ptr %origin, align 4 %mTransformation = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 1 %a4 = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 1, i32 3 store float %137, ptr %a4, align 4 - %y581 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0410, i64 0, i32 1, i32 1 + %y581 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0411, i64 0, i32 1, i32 1 %138 = load float, ptr %y581, align 4 %b4 = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 1, i32 7 store float %138, ptr %b4, align 4 - %z584 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0410, i64 0, i32 1, i32 2 + %z584 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0411, i64 0, i32 1, i32 2 %139 = load float, ptr %z584, align 4 %c4 = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 1, i32 11 store float %139, ptr %c4, align 4 - %b1.i = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 1, i32 4 %c1.i = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 1, i32 8 + %b1.i = getelementptr inbounds %struct.aiNode, ptr %call567, i64 0, i32 1, i32 4 br label %for.cond589.preheader for.cond589.preheader: ; preds = %invoke.cont569, %for.inc604 - %indvars.iv451 = phi i64 [ 0, %invoke.cont569 ], [ %indvars.iv.next452, %for.inc604 ] + %indvars.iv453 = phi i64 [ 0, %invoke.cont569 ], [ %indvars.iv.next454, %for.inc604 ] br label %if.end.i263 if.end.i263: ; preds = %for.cond589.preheader, %_ZN12aiMatrix4x4tIfEixEj.exit - %indvars.iv447 = phi i64 [ 0, %for.cond589.preheader ], [ %indvars.iv.next448, %_ZN12aiMatrix4x4tIfEixEj.exit ] - %arrayidx595 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0410, i64 0, i32 2, i64 %indvars.iv451, i64 %indvars.iv447 + %indvars.iv449 = phi i64 [ 0, %for.cond589.preheader ], [ %indvars.iv.next450, %_ZN12aiMatrix4x4tIfEixEj.exit ] + %arrayidx595 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0411, i64 0, i32 2, i64 %indvars.iv453, i64 %indvars.iv449 %140 = load float, ptr %arrayidx595, align 4 - %141 = trunc i64 %indvars.iv447 to i32 - switch i32 %141, label %_ZN12aiMatrix4x4tIfEixEj.exit [ - i32 2, label %sw.bb3.i + %141 = trunc i64 %indvars.iv449 to i32 + switch i32 %141, label %default.unreachable.i [ + i32 0, label %_ZN12aiMatrix4x4tIfEixEj.exit i32 1, label %sw.bb2.i + i32 2, label %sw.bb3.i ] sw.bb2.i: ; preds = %if.end.i263 @@ -5621,13 +5622,16 @@ sw.bb2.i: ; preds = %if.end.i263 sw.bb3.i: ; preds = %if.end.i263 br label %_ZN12aiMatrix4x4tIfEixEj.exit +default.unreachable.i: ; preds = %if.end.i263 + unreachable + _ZN12aiMatrix4x4tIfEixEj.exit: ; preds = %if.end.i263, %sw.bb2.i, %sw.bb3.i %retval.0.i = phi ptr [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %mTransformation, %if.end.i263 ] - %arrayidx600 = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv451 + %arrayidx600 = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv453 store float %140, ptr %arrayidx600, align 4 - %indvars.iv.next448 = add nuw nsw i64 %indvars.iv447, 1 - %exitcond450.not = icmp eq i64 %indvars.iv.next448, 3 - br i1 %exitcond450.not, label %for.inc604, label %if.end.i263, !llvm.loop !55 + %indvars.iv.next450 = add nuw nsw i64 %indvars.iv449, 1 + %exitcond452.not = icmp eq i64 %indvars.iv.next450, 3 + br i1 %exitcond452.not, label %for.inc604, label %if.end.i263, !llvm.loop !55 lpad532: ; preds = %call.i247.noexc, %invoke.cont528 %142 = landingpad { ptr, i32 } @@ -5653,37 +5657,37 @@ lpad568: ; preds = %invoke.cont566 br label %ehcleanup628 for.inc604: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit - %indvars.iv.next452 = add nuw nsw i64 %indvars.iv451, 1 - %exitcond454.not = icmp eq i64 %indvars.iv.next452, 3 - br i1 %exitcond454.not, label %for.inc607, label %for.cond589.preheader, !llvm.loop !56 + %indvars.iv.next454 = add nuw nsw i64 %indvars.iv453, 1 + %exitcond456.not = icmp eq i64 %indvars.iv.next454, 3 + br i1 %exitcond456.not, label %for.inc607, label %for.cond589.preheader, !llvm.loop !56 for.inc607: ; preds = %for.inc604 - %indvars.iv.next456 = add nuw nsw i64 %indvars.iv455, 1 - %incdec.ptr609 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0410, i64 1 + %indvars.iv.next458 = add nuw nsw i64 %indvars.iv457, 1 + %incdec.ptr609 = getelementptr inbounds %"struct.Assimp::MD3::Tag", ptr %pcTags.0411, i64 1 %145 = load ptr, ptr %pcHeader, align 8 %NUM_TAGS563 = getelementptr inbounds %"struct.Assimp::MD3::Header", ptr %145, i64 0, i32 5 %146 = load i32, ptr %NUM_TAGS563, align 1 %147 = zext i32 %146 to i64 - %cmp564 = icmp ult i64 %indvars.iv.next456, %147 + %cmp564 = icmp ult i64 %indvars.iv.next458, %147 br i1 %cmp564, label %for.body565, label %if.end611, !llvm.loop !57 if.end611: ; preds = %for.inc607, %invoke.cont557, %invoke.cont544 %148 = load i32, ptr %mNumMeshes, align 8 - %cmp615412.not = icmp eq i32 %148, 0 - br i1 %cmp615412.not, label %for.end623, label %for.body616 + %cmp615413.not = icmp eq i32 %148, 0 + br i1 %cmp615413.not, label %for.end623, label %for.body616 for.body616: ; preds = %if.end611, %for.body616 - %indvars.iv458 = phi i64 [ %indvars.iv.next459, %for.body616 ], [ 0, %if.end611 ] + %indvars.iv460 = phi i64 [ %indvars.iv.next461, %for.body616 ], [ 0, %if.end611 ] %149 = load ptr, ptr %mRootNode, align 8 %mMeshes618 = getelementptr inbounds %struct.aiNode, ptr %149, i64 0, i32 6 %150 = load ptr, ptr %mMeshes618, align 8 - %arrayidx620 = getelementptr inbounds i32, ptr %150, i64 %indvars.iv458 - %151 = trunc i64 %indvars.iv458 to i32 + %arrayidx620 = getelementptr inbounds i32, ptr %150, i64 %indvars.iv460 + %151 = trunc i64 %indvars.iv460 to i32 store i32 %151, ptr %arrayidx620, align 4 - %indvars.iv.next459 = add nuw nsw i64 %indvars.iv458, 1 + %indvars.iv.next461 = add nuw nsw i64 %indvars.iv460, 1 %152 = load i32, ptr %mNumMeshes, align 8 %153 = zext i32 %152 to i64 - %cmp615 = icmp ult i64 %indvars.iv.next459, %153 + %cmp615 = icmp ult i64 %indvars.iv.next461, %153 br i1 %cmp615, label %for.body616, label %for.end623, !llvm.loop !58 for.end623: ; preds = %for.body616, %if.end611 @@ -6517,7 +6521,7 @@ for.body: ; preds = %for.body.preheader, for.end: ; preds = %for.body, %if.end3 %hash.addr.0.lcssa = phi i32 [ %hash, %if.end3 ], [ %add21, %for.body ] %data.addr.0.lcssa = phi ptr [ %data, %if.end3 ], [ %add.ptr19, %for.body ] - switch i32 %and, label %for.end.unreachabledefault [ + switch i32 %and, label %default.unreachable [ i32 3, label %sw.bb i32 2, label %sw.bb37 i32 1, label %sw.bb49 @@ -6560,7 +6564,7 @@ sw.bb49: ; preds = %for.end %add55 = add i32 %shr54, %xor53 br label %sw.epilog -for.end.unreachabledefault: ; preds = %for.end +default.unreachable: ; preds = %for.end unreachable sw.epilog: ; preds = %for.end, %sw.bb49, %sw.bb37, %sw.bb diff --git a/bench/assimp/optimized/OpenGEXImporter.cpp.ll b/bench/assimp/optimized/OpenGEXImporter.cpp.ll index 3571dd0b127..0c1e3590a15 100644 --- a/bench/assimp/optimized/OpenGEXImporter.cpp.ll +++ b/bench/assimp/optimized/OpenGEXImporter.cpp.ll @@ -4140,7 +4140,7 @@ while.body.i: ; preds = %while.body.i, %whil br i1 %cmp1.not.i, label %_ZN6Assimp7OpenGEXL23countDataArrayListItemsEPN10ODDLParser13DataArrayListE.exit, label %while.body.i, !llvm.loop !36 _ZN6Assimp7OpenGEXL23countDataArrayListItemsEPN10ODDLParser13DataArrayListE.exit: ; preds = %while.body.i - switch i32 %retval.0.i.ph, label %cleanup [ + switch i32 %retval.0.i.ph, label %default.unreachable [ i32 1, label %if.then20 i32 2, label %if.then27 i32 3, label %if.then37 @@ -4434,7 +4434,10 @@ _ZN6Assimp7OpenGEXL11fillVector3EP10aiVector3tIfEPN10ODDLParser5ValueE.exit.i79: %exitcond.not.i85 = icmp eq i64 %inc.i84, %spec.select.i br i1 %exitcond.not.i85, label %cleanup, label %for.body.i70, !llvm.loop !37 -cleanup: ; preds = %_ZN6Assimp7OpenGEXL11fillVector3EP10aiVector3tIfEPN10ODDLParser5ValueE.exit.i79, %_ZN6Assimp7OpenGEXL11fillVector3EP10aiVector3tIfEPN10ODDLParser5ValueE.exit.i55, %call17.i.i.noexc, %_ZN6Assimp7OpenGEXL11fillVector3EP10aiVector3tIfEPN10ODDLParser5ValueE.exit.i, %arrayctor.cont57.thread, %invoke.cont39, %arrayctor.cont.thread, %invoke.cont21, %if.else8.i, %_ZN6Assimp7OpenGEXL23countDataArrayListItemsEPN10ODDLParser13DataArrayListE.exit, %invoke.cont12 +default.unreachable: ; preds = %_ZN6Assimp7OpenGEXL23countDataArrayListItemsEPN10ODDLParser13DataArrayListE.exit + unreachable + +cleanup: ; preds = %_ZN6Assimp7OpenGEXL11fillVector3EP10aiVector3tIfEPN10ODDLParser5ValueE.exit.i79, %_ZN6Assimp7OpenGEXL11fillVector3EP10aiVector3tIfEPN10ODDLParser5ValueE.exit.i55, %call17.i.i.noexc, %_ZN6Assimp7OpenGEXL11fillVector3EP10aiVector3tIfEPN10ODDLParser5ValueE.exit.i, %arrayctor.cont57.thread, %invoke.cont39, %arrayctor.cont.thread, %invoke.cont21, %if.else8.i, %invoke.cont12 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %propKey) #25 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %propName) #25 br label %if.end69 diff --git a/bench/assimp/optimized/Q3DLoader.cpp.ll b/bench/assimp/optimized/Q3DLoader.cpp.ll index 7bd4aefdaee..41a4c7e3bd6 100644 --- a/bench/assimp/optimized/Q3DLoader.cpp.ll +++ b/bench/assimp/optimized/Q3DLoader.cpp.ll @@ -759,7 +759,7 @@ lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.l br label %lpad95.body lpad95.body: ; preds = %lpad95.loopexit, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad95.loopexit.split-lp.loopexit, %lpad.i.i367, %lpad.i.i400, %lpad.i.i426, %eh.resume.i.i.i.i, %lpad.i.i494, %lpad.i.i568, %lpad.i.i594, %lpad.i.i668, %lpad.i.i705.body, %lpad.i737, %lpad.i.i772, %lpad.i.i796, %lpad.i.i820, %lpad.i.i844, %lpad.i.i868, %lpad.i.i892, %lpad.i.i916, %lpad.i.i940, %lpad.i.i964, %lpad.i988, %lpad.i1014, %lpad.i.i1039, %lpad.i1066, %lpad.i.i1090, %lpad.i1115, %lpad.i.i1146, %lpad.i.i1172, %lpad.i.i1196, %lpad.i1209, %lpad.i.i1184, %lpad.i.i1158, %lpad.i.i1134, %lpad.i.i1102, %lpad.i.i1078, %lpad.i.i1051, %lpad.i.i1027, %lpad.i.i1000, %lpad.i.i976, %lpad.i.i952, %lpad.i.i928, %lpad.i.i904, %lpad.i.i880, %lpad.i.i856, %lpad.i.i832, %lpad.i.i808, %lpad.i.i784, %lpad.i.i760, %lpad.i720, %lpad.i.i681, %lpad.i.i607, %lpad.i.i581, %lpad.i.i507, %lpad.i.i481.body, %lpad.i.i449, %lpad.i.i413, %lpad.i.i388, %lpad.i.i354 - %eh.lpad-body357 = phi { ptr, i32 } [ %58, %lpad.i.i354 ], [ %67, %lpad.i.i367 ], [ %81, %lpad.i.i388 ], [ %86, %lpad.i.i400 ], [ %91, %lpad.i.i413 ], [ %96, %lpad.i.i426 ], [ %112, %lpad.i.i449 ], [ %118, %eh.resume.i.i.i.i ], [ %eh.lpad-body1495, %lpad.i.i481.body ], [ %141, %lpad.i.i494 ], [ %146, %lpad.i.i507 ], [ %155, %lpad.i.i568 ], [ %160, %lpad.i.i581 ], [ %165, %lpad.i.i594 ], [ %170, %lpad.i.i607 ], [ %182, %lpad.i.i668 ], [ %187, %lpad.i.i681 ], [ %eh.lpad-body1501, %lpad.i.i705.body ], [ %214, %lpad.i720 ], [ %217, %lpad.i737 ], [ %238, %lpad.i.i760 ], [ %242, %lpad.i.i772 ], [ %245, %lpad.i.i784 ], [ %249, %lpad.i.i796 ], [ %253, %lpad.i.i808 ], [ %257, %lpad.i.i820 ], [ %261, %lpad.i.i832 ], [ %265, %lpad.i.i844 ], [ %269, %lpad.i.i856 ], [ %273, %lpad.i.i868 ], [ %277, %lpad.i.i880 ], [ %281, %lpad.i.i892 ], [ %285, %lpad.i.i904 ], [ %290, %lpad.i.i916 ], [ %292, %lpad.i.i928 ], [ %294, %lpad.i.i940 ], [ %300, %lpad.i.i952 ], [ %302, %lpad.i.i964 ], [ %304, %lpad.i.i976 ], [ %309, %lpad.i988 ], [ %324, %lpad.i.i1000 ], [ %329, %lpad.i1014 ], [ %330, %lpad.i.i1027 ], [ %332, %lpad.i.i1039 ], [ %334, %lpad.i.i1051 ], [ %336, %lpad.i1066 ], [ %337, %lpad.i.i1078 ], [ %339, %lpad.i.i1090 ], [ %341, %lpad.i.i1102 ], [ %343, %lpad.i1115 ], [ %346, %lpad.i.i1134 ], [ %348, %lpad.i.i1146 ], [ %350, %lpad.i.i1158 ], [ %352, %lpad.i.i1172 ], [ %354, %lpad.i.i1184 ], [ %357, %lpad.i.i1196 ], [ %359, %lpad.i1209 ], [ %lpad.loopexit, %lpad95.loopexit ], [ %lpad.loopexit1562, %lpad95.loopexit.split-lp.loopexit ], [ %lpad.loopexit1565, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1567, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1570, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1572, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1576, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1579, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1582, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %eh.lpad-body357 = phi { ptr, i32 } [ %58, %lpad.i.i354 ], [ %67, %lpad.i.i367 ], [ %81, %lpad.i.i388 ], [ %86, %lpad.i.i400 ], [ %91, %lpad.i.i413 ], [ %96, %lpad.i.i426 ], [ %112, %lpad.i.i449 ], [ %118, %eh.resume.i.i.i.i ], [ %eh.lpad-body1495, %lpad.i.i481.body ], [ %141, %lpad.i.i494 ], [ %146, %lpad.i.i507 ], [ %155, %lpad.i.i568 ], [ %160, %lpad.i.i581 ], [ %165, %lpad.i.i594 ], [ %170, %lpad.i.i607 ], [ %182, %lpad.i.i668 ], [ %187, %lpad.i.i681 ], [ %eh.lpad-body1501, %lpad.i.i705.body ], [ %214, %lpad.i720 ], [ %217, %lpad.i737 ], [ %238, %lpad.i.i760 ], [ %242, %lpad.i.i772 ], [ %245, %lpad.i.i784 ], [ %249, %lpad.i.i796 ], [ %253, %lpad.i.i808 ], [ %257, %lpad.i.i820 ], [ %261, %lpad.i.i832 ], [ %265, %lpad.i.i844 ], [ %269, %lpad.i.i856 ], [ %273, %lpad.i.i868 ], [ %277, %lpad.i.i880 ], [ %281, %lpad.i.i892 ], [ %285, %lpad.i.i904 ], [ %290, %lpad.i.i916 ], [ %292, %lpad.i.i928 ], [ %294, %lpad.i.i940 ], [ %300, %lpad.i.i952 ], [ %302, %lpad.i.i964 ], [ %304, %lpad.i.i976 ], [ %309, %lpad.i988 ], [ %312, %lpad.i.i1000 ], [ %317, %lpad.i1014 ], [ %318, %lpad.i.i1027 ], [ %320, %lpad.i.i1039 ], [ %322, %lpad.i.i1051 ], [ %324, %lpad.i1066 ], [ %325, %lpad.i.i1078 ], [ %327, %lpad.i.i1090 ], [ %329, %lpad.i.i1102 ], [ %331, %lpad.i1115 ], [ %334, %lpad.i.i1134 ], [ %336, %lpad.i.i1146 ], [ %338, %lpad.i.i1158 ], [ %340, %lpad.i.i1172 ], [ %342, %lpad.i.i1184 ], [ %345, %lpad.i.i1196 ], [ %347, %lpad.i1209 ], [ %lpad.loopexit, %lpad95.loopexit ], [ %lpad.loopexit1562, %lpad95.loopexit.split-lp.loopexit ], [ %lpad.loopexit1565, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1567, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1570, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1572, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1576, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1579, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit1582, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] %51 = extractvalue { ptr, i32 } %eh.lpad-body357, 0 %52 = extractvalue { ptr, i32 } %eh.lpad-body357, 1 br label %ehcleanup1034 @@ -773,7 +773,7 @@ lpad98: ; preds = %invoke.cont96 br label %ehcleanup1034 if.end106: ; preds = %if.end106.lr.ph, %sw.epilog - %56 = phi ptr [ %49, %if.end106.lr.ph ], [ %363, %sw.epilog ] + %56 = phi ptr [ %49, %if.end106.lr.ph ], [ %351, %sw.epilog ] %add.ptr.i.i349 = getelementptr inbounds i8, ptr %56, i64 1 %57 = load ptr, ptr %mLimit.i, align 8 %cmp.i.i351 = icmp ugt ptr %add.ptr.i.i349, %57 @@ -827,13 +827,13 @@ if.else.i: ; preds = %for.body if.else.i.invoke.cont111_crit_edge: ; preds = %if.else.i %.pre = load ptr, ptr %_M_finish.i, align 8 - %.pre2005 = load ptr, ptr %mCurrent.i, align 8 - %.pre2006 = load ptr, ptr %mLimit.i, align 8 + %.pre1961 = load ptr, ptr %mCurrent.i, align 8 + %.pre1962 = load ptr, ptr %mLimit.i, align 8 br label %invoke.cont111 invoke.cont111: ; preds = %if.else.i.invoke.cont111_crit_edge, %if.then.i358 - %64 = phi ptr [ %.pre2006, %if.else.i.invoke.cont111_crit_edge ], [ %60, %if.then.i358 ] - %65 = phi ptr [ %.pre2005, %if.else.i.invoke.cont111_crit_edge ], [ %61, %if.then.i358 ] + %64 = phi ptr [ %.pre1962, %if.else.i.invoke.cont111_crit_edge ], [ %60, %if.then.i358 ] + %65 = phi ptr [ %.pre1961, %if.else.i.invoke.cont111_crit_edge ], [ %61, %if.then.i358 ] %66 = phi ptr [ %.pre, %if.else.i.invoke.cont111_crit_edge ], [ %incdec.ptr.i, %if.then.i358 ] %add.ptr.i.i360 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %66, i64 -1 %add.ptr.i.i362 = getelementptr inbounds i8, ptr %65, i64 4 @@ -980,7 +980,7 @@ _ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit: ; preds = %_ZSt27__uninitial br label %for.body128 for.body128: ; preds = %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit, %invoke.cont137 - %indvars.iv1943 = phi i64 [ 0, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit ], [ %indvars.iv.next1944, %invoke.cont137 ] + %indvars.iv1911 = phi i64 [ 0, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit ], [ %indvars.iv.next1912, %invoke.cont137 ] %79 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i383 = getelementptr inbounds i8, ptr %79, i64 4 %80 = load ptr, ptr %mLimit.i, align 8 @@ -1002,7 +1002,7 @@ invoke.cont129: ; preds = %for.body128 %82 = load float, ptr %79, align 1 store ptr %add.ptr.i.i383, ptr %mCurrent.i, align 8 %83 = load ptr, ptr %add.ptr.i.i360, align 8 - %add.ptr.i393 = getelementptr inbounds %class.aiVector3t, ptr %83, i64 %indvars.iv1943 + %add.ptr.i393 = getelementptr inbounds %class.aiVector3t, ptr %83, i64 %indvars.iv1911 store float %82, ptr %add.ptr.i393, align 4 %84 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i395 = getelementptr inbounds i8, ptr %84, i64 4 @@ -1025,7 +1025,7 @@ invoke.cont133: ; preds = %invoke.cont129 %87 = load float, ptr %84, align 1 store ptr %add.ptr.i.i395, ptr %mCurrent.i, align 8 %88 = load ptr, ptr %add.ptr.i.i360, align 8 - %y = getelementptr inbounds %class.aiVector3t, ptr %88, i64 %indvars.iv1943, i32 1 + %y = getelementptr inbounds %class.aiVector3t, ptr %88, i64 %indvars.iv1911, i32 1 store float %87, ptr %y, align 4 %89 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i408 = getelementptr inbounds i8, ptr %89, i64 4 @@ -1048,11 +1048,11 @@ invoke.cont137: ; preds = %invoke.cont133 %92 = load float, ptr %89, align 1 store ptr %add.ptr.i.i408, ptr %mCurrent.i, align 8 %93 = load ptr, ptr %add.ptr.i.i360, align 8 - %z = getelementptr inbounds %class.aiVector3t, ptr %93, i64 %indvars.iv1943, i32 2 + %z = getelementptr inbounds %class.aiVector3t, ptr %93, i64 %indvars.iv1911, i32 2 store float %92, ptr %z, align 4 - %indvars.iv.next1944 = add nuw nsw i64 %indvars.iv1943, 1 - %exitcond1946.not = icmp eq i64 %indvars.iv.next1944, %wide.trip.count - br i1 %exitcond1946.not, label %for.end, label %for.body128, !llvm.loop !10 + %indvars.iv.next1912 = add nuw nsw i64 %indvars.iv1911, 1 + %exitcond1914.not = icmp eq i64 %indvars.iv.next1912, %wide.trip.count + br i1 %exitcond1914.not, label %for.end, label %for.body128, !llvm.loop !10 for.end: ; preds = %invoke.cont137 %94 = load ptr, ptr %mCurrent.i, align 8 @@ -1170,16 +1170,16 @@ _ZNSt12_Vector_baseIN6Assimp11Q3DImporter4FaceESaIS2_EE13_M_deallocateEPS2_m.exi _ZNSt6vectorIN6Assimp11Q3DImporter4FaceESaIS2_EE7reserveEm.exit: ; preds = %if.end149, %_ZNSt12_Vector_baseIN6Assimp11Q3DImporter4FaceESaIS2_EE13_M_deallocateEPS2_m.exit.i %_M_finish.i454 = getelementptr %"struct.Assimp::Q3DImporter::Mesh", ptr %66, i64 -1, i32 3, i32 0, i32 0, i32 0, i32 1 - %umax1947 = call i32 @llvm.umax.i32(i32 %97, i32 1) + %umax1915 = call i32 @llvm.umax.i32(i32 %97, i32 1) br label %for.body156 for.cond154: ; preds = %invoke.cont160 %inc171 = add nuw i32 %i153.01716, 1 - %exitcond1948.not = icmp eq i32 %inc171, %umax1947 - br i1 %exitcond1948.not, label %for.body176.preheader, label %for.body156, !llvm.loop !17 + %exitcond1916.not = icmp eq i32 %inc171, %umax1915 + br i1 %exitcond1916.not, label %for.body176.preheader, label %for.body156, !llvm.loop !17 for.body176.preheader: ; preds = %for.cond154 - %wide.trip.count1955 = zext i32 %umax1947 to i64 + %wide.trip.count1923 = zext i32 %umax1915 to i64 br label %for.body176 for.body156: ; preds = %_ZNSt6vectorIN6Assimp11Q3DImporter4FaceESaIS2_EE7reserveEm.exit, %for.cond154 @@ -1286,11 +1286,11 @@ if.else.i460: ; preds = %invoke.cont158 to label %if.else.i460.invoke.cont160_crit_edge unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit if.else.i460.invoke.cont160_crit_edge: ; preds = %if.else.i460 - %.pre2007 = load ptr, ptr %_M_finish.i454, align 8 + %.pre1963 = load ptr, ptr %_M_finish.i454, align 8 br label %invoke.cont160 invoke.cont160: ; preds = %if.else.i460.invoke.cont160_crit_edge, %_ZNSt16allocator_traitsISaIN6Assimp11Q3DImporter4FaceEEE9constructIS2_JsEEEvRS3_PT_DpOT0_.exit.i - %120 = phi ptr [ %.pre2007, %if.else.i460.invoke.cont160_crit_edge ], [ %incdec.ptr.i458, %_ZNSt16allocator_traitsISaIN6Assimp11Q3DImporter4FaceEEE9constructIS2_JsEEEvRS3_PT_DpOT0_.exit.i ] + %120 = phi ptr [ %.pre1963, %if.else.i460.invoke.cont160_crit_edge ], [ %incdec.ptr.i458, %_ZNSt16allocator_traitsISaIN6Assimp11Q3DImporter4FaceEEE9constructIS2_JsEEEvRS3_PT_DpOT0_.exit.i ] %add.ptr.i.i467 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %120, i64 -1 %121 = load ptr, ptr %add.ptr.i.i467, align 8 %_M_finish.i.i468 = getelementptr %"struct.Assimp::Q3DImporter::Face", ptr %120, i64 -1, i32 0, i32 0, i32 0, i32 0, i32 1 @@ -1312,9 +1312,9 @@ lpad166: ; preds = %if.then164 br label %ehcleanup1034 for.body176: ; preds = %for.body176.preheader, %for.inc193 - %indvars.iv1952 = phi i64 [ 0, %for.body176.preheader ], [ %indvars.iv.next1953, %for.inc193 ] + %indvars.iv1920 = phi i64 [ 0, %for.body176.preheader ], [ %indvars.iv.next1921, %for.inc193 ] %126 = load ptr, ptr %faces150, align 8 - %add.ptr.i470 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %126, i64 %indvars.iv1952 + %add.ptr.i470 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %126, i64 %indvars.iv1920 %_M_finish.i471 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %add.ptr.i470, i64 0, i32 1 %127 = load ptr, ptr %_M_finish.i471, align 8 %128 = load ptr, ptr %add.ptr.i470, align 8 @@ -1326,7 +1326,7 @@ for.body176: ; preds = %for.body176.prehead br i1 %cmp1831722.not, label %for.inc193, label %for.body184 for.body184: ; preds = %for.body176, %invoke.cont185 - %indvars.iv1949 = phi i64 [ %indvars.iv.next1950, %invoke.cont185 ], [ 0, %for.body176 ] + %indvars.iv1917 = phi i64 [ %indvars.iv.next1918, %invoke.cont185 ], [ 0, %for.body176 ] %130 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i476 = getelementptr inbounds i8, ptr %130, i64 4 %131 = load ptr, ptr %mLimit.i, align 8 @@ -1372,9 +1372,9 @@ invoke.cont185: ; preds = %for.body184 %134 = load i32, ptr %130, align 1 store ptr %add.ptr.i.i476, ptr %mCurrent.i, align 8 %135 = load ptr, ptr %add.ptr.i470, align 8 - %add.ptr.i487 = getelementptr inbounds i32, ptr %135, i64 %indvars.iv1949 + %add.ptr.i487 = getelementptr inbounds i32, ptr %135, i64 %indvars.iv1917 store i32 %134, ptr %add.ptr.i487, align 4 - %indvars.iv.next1950 = add nuw nsw i64 %indvars.iv1949, 1 + %indvars.iv.next1918 = add nuw nsw i64 %indvars.iv1917, 1 %136 = load ptr, ptr %_M_finish.i471, align 8 %137 = load ptr, ptr %add.ptr.i470, align 8 %sub.ptr.lhs.cast.i472 = ptrtoint ptr %136 to i64 @@ -1382,16 +1382,16 @@ invoke.cont185: ; preds = %for.body184 %sub.ptr.sub.i474 = sub i64 %sub.ptr.lhs.cast.i472, %sub.ptr.rhs.cast.i473 %sub.ptr.div.i = lshr exact i64 %sub.ptr.sub.i474, 2 %138 = and i64 %sub.ptr.div.i, 4294967295 - %cmp183 = icmp ult i64 %indvars.iv.next1950, %138 + %cmp183 = icmp ult i64 %indvars.iv.next1918, %138 br i1 %cmp183, label %for.body184, label %for.inc193, !llvm.loop !18 for.inc193: ; preds = %invoke.cont185, %for.body176 - %indvars.iv.next1953 = add nuw nsw i64 %indvars.iv1952, 1 - %exitcond1956.not = icmp eq i64 %indvars.iv.next1953, %wide.trip.count1955 - br i1 %exitcond1956.not, label %for.body199, label %for.body176, !llvm.loop !19 + %indvars.iv.next1921 = add nuw nsw i64 %indvars.iv1920, 1 + %exitcond1924.not = icmp eq i64 %indvars.iv.next1921, %wide.trip.count1923 + br i1 %exitcond1924.not, label %for.body199, label %for.body176, !llvm.loop !19 for.body199: ; preds = %for.inc193, %invoke.cont200 - %indvars.iv1957 = phi i64 [ %indvars.iv.next1958, %invoke.cont200 ], [ 0, %for.inc193 ] + %indvars.iv1925 = phi i64 [ %indvars.iv.next1926, %invoke.cont200 ], [ 0, %for.inc193 ] %139 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i489 = getelementptr inbounds i8, ptr %139, i64 4 %140 = load ptr, ptr %mLimit.i, align 8 @@ -1413,11 +1413,11 @@ invoke.cont200: ; preds = %for.body199 %142 = load i32, ptr %139, align 1 store ptr %add.ptr.i.i489, ptr %mCurrent.i, align 8 %143 = load ptr, ptr %faces150, align 8 - %mat = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %143, i64 %indvars.iv1957, i32 2 + %mat = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %143, i64 %indvars.iv1925, i32 2 store i32 %142, ptr %mat, align 8 - %indvars.iv.next1958 = add nuw nsw i64 %indvars.iv1957, 1 - %exitcond1961.not = icmp eq i64 %indvars.iv.next1958, %wide.trip.count1955 - br i1 %exitcond1961.not, label %for.end206, label %for.body199, !llvm.loop !20 + %indvars.iv.next1926 = add nuw nsw i64 %indvars.iv1925, 1 + %exitcond1929.not = icmp eq i64 %indvars.iv.next1926, %wide.trip.count1923 + br i1 %exitcond1929.not, label %for.end206, label %for.body199, !llvm.loop !20 for.end206: ; preds = %invoke.cont200 %144 = load ptr, ptr %mCurrent.i, align 8 @@ -1533,7 +1533,7 @@ _ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit561: ; preds = %_ZSt27__uninit br i1 %cmp2141726.not, label %for.end233, label %for.body215 for.body215: ; preds = %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit561, %invoke.cont226 - %indvars.iv1962 = phi i64 [ %indvars.iv.next1963, %invoke.cont226 ], [ 0, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit561 ] + %indvars.iv1930 = phi i64 [ %indvars.iv.next1931, %invoke.cont226 ], [ 0, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit561 ] %153 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i563 = getelementptr inbounds i8, ptr %153, i64 4 %154 = load ptr, ptr %mLimit.i, align 8 @@ -1555,7 +1555,7 @@ invoke.cont216: ; preds = %for.body215 %156 = load float, ptr %153, align 1 store ptr %add.ptr.i.i563, ptr %mCurrent.i, align 8 %157 = load ptr, ptr %normals209, align 8 - %add.ptr.i574 = getelementptr inbounds %class.aiVector3t, ptr %157, i64 %indvars.iv1962 + %add.ptr.i574 = getelementptr inbounds %class.aiVector3t, ptr %157, i64 %indvars.iv1930 store float %156, ptr %add.ptr.i574, align 4 %158 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i576 = getelementptr inbounds i8, ptr %158, i64 4 @@ -1578,7 +1578,7 @@ invoke.cont221: ; preds = %invoke.cont216 %161 = load float, ptr %158, align 1 store ptr %add.ptr.i.i576, ptr %mCurrent.i, align 8 %162 = load ptr, ptr %normals209, align 8 - %y225 = getelementptr inbounds %class.aiVector3t, ptr %162, i64 %indvars.iv1962, i32 1 + %y225 = getelementptr inbounds %class.aiVector3t, ptr %162, i64 %indvars.iv1930, i32 1 store float %161, ptr %y225, align 4 %163 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i589 = getelementptr inbounds i8, ptr %163, i64 4 @@ -1601,11 +1601,11 @@ invoke.cont226: ; preds = %invoke.cont221 %166 = load float, ptr %163, align 1 store ptr %add.ptr.i.i589, ptr %mCurrent.i, align 8 %167 = load ptr, ptr %normals209, align 8 - %z230 = getelementptr inbounds %class.aiVector3t, ptr %167, i64 %indvars.iv1962, i32 2 + %z230 = getelementptr inbounds %class.aiVector3t, ptr %167, i64 %indvars.iv1930, i32 2 store float %166, ptr %z230, align 4 - %indvars.iv.next1963 = add nuw nsw i64 %indvars.iv1962, 1 - %exitcond1966.not = icmp eq i64 %indvars.iv.next1963, %conv210 - br i1 %exitcond1966.not, label %for.end233, label %for.body215, !llvm.loop !25 + %indvars.iv.next1931 = add nuw nsw i64 %indvars.iv1930, 1 + %exitcond1934.not = icmp eq i64 %indvars.iv.next1931, %conv210 + br i1 %exitcond1934.not, label %for.end233, label %for.body215, !llvm.loop !25 for.end233: ; preds = %invoke.cont226, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit561 %168 = load ptr, ptr %mCurrent.i, align 8 @@ -1722,8 +1722,8 @@ invoke.cont.i.i624: ; preds = %if.then5.i621 br label %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit661 _ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit661: ; preds = %_ZSt27__uninitialized_default_n_aIP10aiVector3tIfEmS1_ET_S3_T0_RSaIT1_E.exit.i.i635, %_ZNSt12_Vector_baseI10aiVector3tIfESaIS1_EE13_M_deallocateEPS1_m.exit29.i.i654, %if.else.i619, %if.then5.i621, %invoke.cont.i.i624 - %umax1970 = call i32 @llvm.umax.i32(i32 %171, i32 1) - %wide.trip.count1971 = zext i32 %umax1970 to i64 + %umax1938 = call i32 @llvm.umax.i32(i32 %171, i32 1) + %wide.trip.count1939 = zext i32 %umax1938 to i64 br label %for.body246 for.cond261.preheader: ; preds = %invoke.cont252 @@ -1742,7 +1742,7 @@ for.body265.lr.ph: ; preds = %for.cond261.prehead br label %for.body265 for.body246: ; preds = %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit661, %invoke.cont252 - %indvars.iv1967 = phi i64 [ 0, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit661 ], [ %indvars.iv.next1968, %invoke.cont252 ] + %indvars.iv1935 = phi i64 [ 0, %_ZNSt6vectorI10aiVector3tIfESaIS1_EE6resizeEm.exit661 ], [ %indvars.iv.next1936, %invoke.cont252 ] %180 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i663 = getelementptr inbounds i8, ptr %180, i64 4 %181 = load ptr, ptr %mLimit.i, align 8 @@ -1764,7 +1764,7 @@ invoke.cont247: ; preds = %for.body246 %183 = load float, ptr %180, align 1 store ptr %add.ptr.i.i663, ptr %mCurrent.i, align 8 %184 = load ptr, ptr %uv240, align 8 - %add.ptr.i674 = getelementptr inbounds %class.aiVector3t, ptr %184, i64 %indvars.iv1967 + %add.ptr.i674 = getelementptr inbounds %class.aiVector3t, ptr %184, i64 %indvars.iv1935 store float %183, ptr %add.ptr.i674, align 4 %185 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i676 = getelementptr inbounds i8, ptr %185, i64 4 @@ -1787,17 +1787,17 @@ invoke.cont252: ; preds = %invoke.cont247 %188 = load float, ptr %185, align 1 store ptr %add.ptr.i.i676, ptr %mCurrent.i, align 8 %189 = load ptr, ptr %uv240, align 8 - %y256 = getelementptr inbounds %class.aiVector3t, ptr %189, i64 %indvars.iv1967, i32 1 + %y256 = getelementptr inbounds %class.aiVector3t, ptr %189, i64 %indvars.iv1935, i32 1 store float %188, ptr %y256, align 4 - %indvars.iv.next1968 = add nuw nsw i64 %indvars.iv1967, 1 - %exitcond1972.not = icmp eq i64 %indvars.iv.next1968, %wide.trip.count1971 - br i1 %exitcond1972.not, label %for.cond261.preheader, label %for.body246, !llvm.loop !30 + %indvars.iv.next1936 = add nuw nsw i64 %indvars.iv1935, 1 + %exitcond1940.not = icmp eq i64 %indvars.iv.next1936, %wide.trip.count1939 + br i1 %exitcond1940.not, label %for.cond261.preheader, label %for.body246, !llvm.loop !30 for.body265: ; preds = %for.body265.lr.ph, %for.inc299 %190 = phi ptr [ %178, %for.body265.lr.ph ], [ %209, %for.inc299 ] %191 = phi ptr [ %177, %for.body265.lr.ph ], [ %210, %for.inc299 ] - %indvars.iv1976 = phi i64 [ 0, %for.body265.lr.ph ], [ %indvars.iv.next1977, %for.inc299 ] - %add.ptr.i693 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %190, i64 %indvars.iv1976 + %indvars.iv1944 = phi i64 [ 0, %for.body265.lr.ph ], [ %indvars.iv.next1945, %for.inc299 ] + %add.ptr.i693 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %190, i64 %indvars.iv1944 %_M_finish.i694 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %add.ptr.i693, i64 0, i32 1 %192 = load ptr, ptr %_M_finish.i694, align 8 %193 = load ptr, ptr %add.ptr.i693, align 8 @@ -1809,11 +1809,11 @@ for.body265: ; preds = %for.body265.lr.ph, br i1 %cmp2741734.not, label %for.inc299, label %for.body275.lr.ph for.body275.lr.ph: ; preds = %for.body265 - %uvindices = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %190, i64 %indvars.iv1976, i32 1 + %uvindices = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %190, i64 %indvars.iv1944, i32 1 br label %for.body275 for.body275: ; preds = %for.body275.lr.ph, %for.inc296 - %indvars.iv1973 = phi i64 [ 0, %for.body275.lr.ph ], [ %indvars.iv.next1974, %for.inc296 ] + %indvars.iv1941 = phi i64 [ 0, %for.body275.lr.ph ], [ %indvars.iv.next1942, %for.inc296 ] %195 = load ptr, ptr %mCurrent.i, align 8 %add.ptr.i.i700 = getelementptr inbounds i8, ptr %195, i64 4 %196 = load ptr, ptr %mLimit.i, align 8 @@ -1859,13 +1859,13 @@ invoke.cont276: ; preds = %for.body275 %199 = load i32, ptr %195, align 1 store ptr %add.ptr.i.i700, ptr %mCurrent.i, align 8 %200 = load ptr, ptr %uvindices, align 8 - %add.ptr.i711 = getelementptr inbounds i32, ptr %200, i64 %indvars.iv1973 + %add.ptr.i711 = getelementptr inbounds i32, ptr %200, i64 %indvars.iv1941 store i32 %199, ptr %add.ptr.i711, align 4 - %201 = or i64 %indvars.iv1973, %indvars.iv1976 + %201 = or i64 %indvars.iv1941, %indvars.iv1944 %202 = and i64 %201, 4294967295 %or.cond1.not = icmp eq i64 %202, 0 %203 = load ptr, ptr %uvindices, align 8 - %add.ptr.i712 = getelementptr inbounds i32, ptr %203, i64 %indvars.iv1973 + %add.ptr.i712 = getelementptr inbounds i32, ptr %203, i64 %indvars.iv1941 %204 = load i32, ptr %add.ptr.i712, align 4 br i1 %or.cond1.not, label %for.inc296.sink.split, label %if.else @@ -1880,7 +1880,7 @@ for.inc296.sink.split: ; preds = %if.else, %invoke.co br label %for.inc296 for.inc296: ; preds = %for.inc296.sink.split, %if.else - %indvars.iv.next1974 = add nuw nsw i64 %indvars.iv1973, 1 + %indvars.iv.next1942 = add nuw nsw i64 %indvars.iv1941, 1 %206 = load ptr, ptr %_M_finish.i694, align 8 %207 = load ptr, ptr %add.ptr.i693, align 8 %sub.ptr.lhs.cast.i695 = ptrtoint ptr %206 to i64 @@ -1888,24 +1888,24 @@ for.inc296: ; preds = %for.inc296.sink.spl %sub.ptr.sub.i697 = sub i64 %sub.ptr.lhs.cast.i695, %sub.ptr.rhs.cast.i696 %sub.ptr.div.i698 = lshr exact i64 %sub.ptr.sub.i697, 2 %208 = and i64 %sub.ptr.div.i698, 4294967295 - %cmp274 = icmp ult i64 %indvars.iv.next1974, %208 + %cmp274 = icmp ult i64 %indvars.iv.next1942, %208 br i1 %cmp274, label %for.body275, label %for.inc299.loopexit, !llvm.loop !31 for.inc299.loopexit: ; preds = %for.inc296 - %.pre2008 = load ptr, ptr %_M_finish.i454, align 8 - %.pre2009 = load ptr, ptr %faces150, align 8 + %.pre1964 = load ptr, ptr %_M_finish.i454, align 8 + %.pre1965 = load ptr, ptr %faces150, align 8 br label %for.inc299 for.inc299: ; preds = %for.inc299.loopexit, %for.body265 - %209 = phi ptr [ %.pre2009, %for.inc299.loopexit ], [ %190, %for.body265 ] - %210 = phi ptr [ %.pre2008, %for.inc299.loopexit ], [ %191, %for.body265 ] - %indvars.iv.next1977 = add nuw nsw i64 %indvars.iv1976, 1 + %209 = phi ptr [ %.pre1965, %for.inc299.loopexit ], [ %190, %for.body265 ] + %210 = phi ptr [ %.pre1964, %for.inc299.loopexit ], [ %191, %for.body265 ] + %indvars.iv.next1945 = add nuw nsw i64 %indvars.iv1944, 1 %sub.ptr.lhs.cast.i689 = ptrtoint ptr %210 to i64 %sub.ptr.rhs.cast.i690 = ptrtoint ptr %209 to i64 %sub.ptr.sub.i691 = sub i64 %sub.ptr.lhs.cast.i689, %sub.ptr.rhs.cast.i690 %sub.ptr.div.i692 = sdiv exact i64 %sub.ptr.sub.i691, 56 %211 = and i64 %sub.ptr.div.i692, 4294967295 - %cmp264 = icmp ult i64 %indvars.iv.next1977, %211 + %cmp264 = icmp ult i64 %indvars.iv.next1945, %211 br i1 %cmp264, label %for.body265, label %if.end302, !llvm.loop !32 if.end302: ; preds = %for.inc299, %for.cond261.preheader, %invoke.cont234 @@ -1956,8 +1956,8 @@ lpad.i737: ; preds = %if.then.i735 for.inc314: ; preds = %if.then309, %invoke.cont303 %218 = phi ptr [ %add.ptr.i732, %if.then309 ], [ %add.ptr.i715, %invoke.cont303 ] %inc315 = add nuw i32 %quak.01744, 1 - %exitcond1979.not = icmp eq i32 %inc315, %26 - br i1 %exitcond1979.not, label %sw.epilog, label %for.body, !llvm.loop !33 + %exitcond1947.not = icmp eq i32 %inc315, %26 + br i1 %exitcond1947.not, label %sw.epilog, label %for.body, !llvm.loop !33 for.body321: ; preds = %for.cond319.preheader, %invoke.cont374 %i318.01714 = phi i32 [ %inc377, %invoke.cont374 ], [ 0, %for.cond319.preheader ] @@ -2394,7 +2394,7 @@ invoke.cont374: ; preds = %invoke.cont372 store i32 %286, ptr %texIdx, align 4 %inc377 = add nuw i32 %i318.01714, 1 %exitcond.not = icmp eq i32 %inc377, %28 - br i1 %exitcond.not, label %sw.epilog.loopexit1826, label %for.body321, !llvm.loop !35 + br i1 %exitcond.not, label %sw.epilog.loopexit1794, label %for.body321, !llvm.loop !35 sw.bb379: ; preds = %invoke.cont107 store i32 %31, ptr %mNumTextures, align 8 @@ -2620,111 +2620,74 @@ lpad.i988: ; preds = %if.then.i986 br label %lpad95.body for.cond454.preheader: ; preds = %sw.bb447, %for.inc467 - %i449.01777 = phi i32 [ %inc468, %for.inc467 ], [ 0, %sw.bb447 ] - switch i32 %i449.01777, label %for.body456 [ - i32 3, label %for.body456.us - i32 1, label %for.body456.us1752 - i32 2, label %for.body456.us1765 - ] + %i449.01751 = phi i32 [ %inc468, %for.inc467 ], [ 0, %sw.bb447 ] + br label %for.body456 -for.body456.us: ; preds = %for.cond454.preheader, %invoke.cont457.us - %indvars.iv1988 = phi i64 [ %indvars.iv.next1989, %invoke.cont457.us ], [ 0, %for.cond454.preheader ] +for.body456: ; preds = %for.cond454.preheader, %_ZN12aiMatrix4x4tIfEixEj.exit + %indvars.iv1948 = phi i64 [ 0, %for.cond454.preheader ], [ %indvars.iv.next1949, %_ZN12aiMatrix4x4tIfEixEj.exit ] %310 = load ptr, ptr %mCurrent.i, align 8 - %add.ptr.i.i995.us = getelementptr inbounds i8, ptr %310, i64 4 + %add.ptr.i.i995 = getelementptr inbounds i8, ptr %310, i64 4 %311 = load ptr, ptr %mLimit.i, align 8 - %cmp.i.i997.us = icmp ugt ptr %add.ptr.i.i995.us, %311 - br i1 %cmp.i.i997.us, label %if.then.i.i998, label %invoke.cont457.us - -invoke.cont457.us: ; preds = %for.body456.us - %312 = load float, ptr %310, align 1 - store ptr %add.ptr.i.i995.us, ptr %mCurrent.i, align 8 - %313 = load ptr, ptr %mRootNode, align 8 - %d1.i.us = getelementptr inbounds %struct.aiNode, ptr %313, i64 0, i32 1, i32 12 - %arrayidx463.us = getelementptr inbounds float, ptr %d1.i.us, i64 %indvars.iv1988 - store float %312, ptr %arrayidx463.us, align 4 - %indvars.iv.next1989 = add nuw nsw i64 %indvars.iv1988, 1 - %exitcond1991.not = icmp eq i64 %indvars.iv.next1989, 4 - br i1 %exitcond1991.not, label %for.inc467, label %for.body456.us, !llvm.loop !39 - -for.body456.us1752: ; preds = %for.cond454.preheader, %invoke.cont457.us1756 - %indvars.iv1984 = phi i64 [ %indvars.iv.next1985, %invoke.cont457.us1756 ], [ 0, %for.cond454.preheader ] - %314 = load ptr, ptr %mCurrent.i, align 8 - %add.ptr.i.i995.us1754 = getelementptr inbounds i8, ptr %314, i64 4 - %315 = load ptr, ptr %mLimit.i, align 8 - %cmp.i.i997.us1755 = icmp ugt ptr %add.ptr.i.i995.us1754, %315 - br i1 %cmp.i.i997.us1755, label %if.then.i.i998, label %invoke.cont457.us1756 - -invoke.cont457.us1756: ; preds = %for.body456.us1752 - %316 = load float, ptr %314, align 1 - store ptr %add.ptr.i.i995.us1754, ptr %mCurrent.i, align 8 - %317 = load ptr, ptr %mRootNode, align 8 - %b1.i.us = getelementptr inbounds %struct.aiNode, ptr %317, i64 0, i32 1, i32 4 - %arrayidx463.us1761 = getelementptr inbounds float, ptr %b1.i.us, i64 %indvars.iv1984 - store float %316, ptr %arrayidx463.us1761, align 4 - %indvars.iv.next1985 = add nuw nsw i64 %indvars.iv1984, 1 - %exitcond1987.not = icmp eq i64 %indvars.iv.next1985, 4 - br i1 %exitcond1987.not, label %for.inc467, label %for.body456.us1752, !llvm.loop !39 - -for.body456.us1765: ; preds = %for.cond454.preheader, %invoke.cont457.us1769 - %indvars.iv1980 = phi i64 [ %indvars.iv.next1981, %invoke.cont457.us1769 ], [ 0, %for.cond454.preheader ] - %318 = load ptr, ptr %mCurrent.i, align 8 - %add.ptr.i.i995.us1767 = getelementptr inbounds i8, ptr %318, i64 4 - %319 = load ptr, ptr %mLimit.i, align 8 - %cmp.i.i997.us1768 = icmp ugt ptr %add.ptr.i.i995.us1767, %319 - br i1 %cmp.i.i997.us1768, label %if.then.i.i998, label %invoke.cont457.us1769 - -invoke.cont457.us1769: ; preds = %for.body456.us1765 - %320 = load float, ptr %318, align 1 - store ptr %add.ptr.i.i995.us1767, ptr %mCurrent.i, align 8 - %321 = load ptr, ptr %mRootNode, align 8 - %c1.i.us = getelementptr inbounds %struct.aiNode, ptr %321, i64 0, i32 1, i32 8 - %arrayidx463.us1774 = getelementptr inbounds float, ptr %c1.i.us, i64 %indvars.iv1980 - store float %320, ptr %arrayidx463.us1774, align 4 - %indvars.iv.next1981 = add nuw nsw i64 %indvars.iv1980, 1 - %exitcond1983.not = icmp eq i64 %indvars.iv.next1981, 4 - br i1 %exitcond1983.not, label %for.inc467, label %for.body456.us1765, !llvm.loop !39 - -for.body456: ; preds = %for.cond454.preheader, %invoke.cont457 - %indvars.iv1992 = phi i64 [ %indvars.iv.next1993, %invoke.cont457 ], [ 0, %for.cond454.preheader ] - %322 = load ptr, ptr %mCurrent.i, align 8 - %add.ptr.i.i995 = getelementptr inbounds i8, ptr %322, i64 4 - %323 = load ptr, ptr %mLimit.i, align 8 - %cmp.i.i997 = icmp ugt ptr %add.ptr.i.i995, %323 + %cmp.i.i997 = icmp ugt ptr %add.ptr.i.i995, %311 br i1 %cmp.i.i997, label %if.then.i.i998, label %invoke.cont457 -if.then.i.i998: ; preds = %for.body456.us1765, %for.body456.us1752, %for.body456.us, %for.body456 +if.then.i.i998: ; preds = %for.body456 %exception.i.i999 = call ptr @__cxa_allocate_exception(i64 16) #19 invoke void @_ZN17DeadlyImportErrorC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception.i.i999, ptr noundef nonnull @.str.39) to label %invoke.cont120.invoke unwind label %lpad.i.i1000 lpad.i.i1000: ; preds = %if.then.i.i998 - %324 = landingpad { ptr, i32 } + %312 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i999) #19 br label %lpad95.body invoke.cont457: ; preds = %for.body456 - %325 = load float, ptr %322, align 1 + %313 = load float, ptr %310, align 1 store ptr %add.ptr.i.i995, ptr %mCurrent.i, align 8 - %326 = load ptr, ptr %mRootNode, align 8 - %mTransformation = getelementptr inbounds %struct.aiNode, ptr %326, i64 0, i32 1 - %arrayidx463 = getelementptr inbounds float, ptr %mTransformation, i64 %indvars.iv1992 - store float %325, ptr %arrayidx463, align 4 - %indvars.iv.next1993 = add nuw nsw i64 %indvars.iv1992, 1 - %exitcond1995.not = icmp eq i64 %indvars.iv.next1993, 4 - br i1 %exitcond1995.not, label %for.inc467, label %for.body456, !llvm.loop !39 - -for.inc467: ; preds = %invoke.cont457.us1769, %invoke.cont457.us1756, %invoke.cont457.us, %invoke.cont457 - %inc468 = add nuw nsw i32 %i449.01777, 1 - %exitcond1996.not = icmp eq i32 %inc468, 4 - br i1 %exitcond1996.not, label %for.end469, label %for.cond454.preheader, !llvm.loop !40 + %314 = load ptr, ptr %mRootNode, align 8 + %mTransformation = getelementptr inbounds %struct.aiNode, ptr %314, i64 0, i32 1 + switch i32 %i449.01751, label %default.unreachable.i [ + i32 0, label %_ZN12aiMatrix4x4tIfEixEj.exit + i32 1, label %sw.bb2.i + i32 2, label %sw.bb3.i + i32 3, label %sw.bb4.i + ] + +sw.bb2.i: ; preds = %invoke.cont457 + %b1.i = getelementptr inbounds %struct.aiNode, ptr %314, i64 0, i32 1, i32 4 + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +sw.bb3.i: ; preds = %invoke.cont457 + %c1.i = getelementptr inbounds %struct.aiNode, ptr %314, i64 0, i32 1, i32 8 + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +sw.bb4.i: ; preds = %invoke.cont457 + %d1.i = getelementptr inbounds %struct.aiNode, ptr %314, i64 0, i32 1, i32 12 + br label %_ZN12aiMatrix4x4tIfEixEj.exit + +default.unreachable.i: ; preds = %invoke.cont457 + unreachable + +_ZN12aiMatrix4x4tIfEixEj.exit: ; preds = %invoke.cont457, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i + %retval.0.i = phi ptr [ %d1.i, %sw.bb4.i ], [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %mTransformation, %invoke.cont457 ] + %arrayidx463 = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv1948 + store float %313, ptr %arrayidx463, align 4 + %indvars.iv.next1949 = add nuw nsw i64 %indvars.iv1948, 1 + %exitcond1951.not = icmp eq i64 %indvars.iv.next1949, 4 + br i1 %exitcond1951.not, label %for.inc467, label %for.body456, !llvm.loop !39 + +for.inc467: ; preds = %_ZN12aiMatrix4x4tIfEixEj.exit + %inc468 = add nuw nsw i32 %i449.01751, 1 + %exitcond1952.not = icmp eq i32 %inc468, 4 + br i1 %exitcond1952.not, label %for.end469, label %for.cond454.preheader, !llvm.loop !40 for.end469: ; preds = %for.inc467 - %327 = load ptr, ptr %mCurrent.i, align 8 - %add.ptr.i1008 = getelementptr inbounds i8, ptr %327, i64 16 + %315 = load ptr, ptr %mCurrent.i, align 8 + %add.ptr.i1008 = getelementptr inbounds i8, ptr %315, i64 16 store ptr %add.ptr.i1008, ptr %mCurrent.i, align 8 - %328 = load ptr, ptr %mLimit.i, align 8 - %cmp.i1010 = icmp ugt ptr %add.ptr.i1008, %328 + %316 = load ptr, ptr %mLimit.i, align 8 + %cmp.i1010 = icmp ugt ptr %add.ptr.i1008, %316 br i1 %cmp.i1010, label %if.then.i1012, label %invoke.cont470 if.then.i1012: ; preds = %for.end469 @@ -2733,7 +2696,7 @@ if.then.i1012: ; preds = %for.end469 to label %invoke.cont120.invoke unwind label %lpad.i1014 lpad.i1014: ; preds = %if.then.i1012 - %329 = landingpad { ptr, i32 } + %317 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i1013) #19 br label %lpad95.body @@ -2763,8 +2726,8 @@ invoke.cont473: ; preds = %invoke.cont471 %mAspect.i = getelementptr inbounds %struct.aiCamera, ptr %call474, i64 0, i32 7 store <2 x float> zeroinitializer, ptr %mAspect.i, align 4 store ptr %call474, ptr %call472, align 8 - %add.ptr.i.i1022 = getelementptr inbounds i8, ptr %327, i64 20 - %cmp.i.i1024 = icmp ugt ptr %add.ptr.i.i1022, %328 + %add.ptr.i.i1022 = getelementptr inbounds i8, ptr %315, i64 20 + %cmp.i.i1024 = icmp ugt ptr %add.ptr.i.i1022, %316 br i1 %cmp.i.i1024, label %if.then.i.i1025, label %invoke.cont477 if.then.i.i1025: ; preds = %invoke.cont473 @@ -2773,17 +2736,17 @@ if.then.i.i1025: ; preds = %invoke.cont473 to label %invoke.cont120.invoke unwind label %lpad.i.i1027 lpad.i.i1027: ; preds = %if.then.i.i1025 - %330 = landingpad { ptr, i32 } + %318 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1026) #19 br label %lpad95.body invoke.cont477: ; preds = %invoke.cont473 - %331 = load float, ptr %add.ptr.i1008, align 1 + %319 = load float, ptr %add.ptr.i1008, align 1 store ptr %add.ptr.i.i1022, ptr %mCurrent.i, align 8 - store float %331, ptr %mPosition.i, align 4 - %add.ptr.i.i1034 = getelementptr inbounds i8, ptr %327, i64 24 - %cmp.i.i1036 = icmp ugt ptr %add.ptr.i.i1034, %328 + store float %319, ptr %mPosition.i, align 4 + %add.ptr.i.i1034 = getelementptr inbounds i8, ptr %315, i64 24 + %cmp.i.i1036 = icmp ugt ptr %add.ptr.i.i1034, %316 br i1 %cmp.i.i1036, label %if.then.i.i1037, label %invoke.cont480 if.then.i.i1037: ; preds = %invoke.cont477 @@ -2792,18 +2755,18 @@ if.then.i.i1037: ; preds = %invoke.cont477 to label %invoke.cont120.invoke unwind label %lpad.i.i1039 lpad.i.i1039: ; preds = %if.then.i.i1037 - %332 = landingpad { ptr, i32 } + %320 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1038) #19 br label %lpad95.body invoke.cont480: ; preds = %invoke.cont477 - %333 = load float, ptr %add.ptr.i.i1022, align 1 + %321 = load float, ptr %add.ptr.i.i1022, align 1 store ptr %add.ptr.i.i1034, ptr %mCurrent.i, align 8 %y483 = getelementptr inbounds %struct.aiCamera, ptr %call474, i64 0, i32 1, i32 1 - store float %333, ptr %y483, align 4 - %add.ptr.i.i1046 = getelementptr inbounds i8, ptr %327, i64 28 - %cmp.i.i1048 = icmp ugt ptr %add.ptr.i.i1046, %328 + store float %321, ptr %y483, align 4 + %add.ptr.i.i1046 = getelementptr inbounds i8, ptr %315, i64 28 + %cmp.i.i1048 = icmp ugt ptr %add.ptr.i.i1046, %316 br i1 %cmp.i.i1048, label %if.then.i.i1049, label %invoke.cont484 if.then.i.i1049: ; preds = %invoke.cont480 @@ -2812,22 +2775,22 @@ if.then.i.i1049: ; preds = %invoke.cont480 to label %invoke.cont120.invoke unwind label %lpad.i.i1051 lpad.i.i1051: ; preds = %if.then.i.i1049 - %334 = landingpad { ptr, i32 } + %322 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1050) #19 br label %lpad95.body invoke.cont484: ; preds = %invoke.cont480 - %335 = load float, ptr %add.ptr.i.i1034, align 1 + %323 = load float, ptr %add.ptr.i.i1034, align 1 %z487 = getelementptr inbounds %struct.aiCamera, ptr %call474, i64 0, i32 1, i32 2 - store float %335, ptr %z487, align 4 + store float %323, ptr %z487, align 4 store i32 9, ptr %call474, align 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(9) %data.i.i1020, ptr noundef nonnull align 1 dereferenceable(9) @.str.15, i64 9, i1 false) %arrayidx.i = getelementptr inbounds %struct.aiString, ptr %call474, i64 0, i32 1, i64 9 store i8 0, ptr %arrayidx.i, align 1 - %add.ptr.i1060 = getelementptr inbounds i8, ptr %327, i64 40 + %add.ptr.i1060 = getelementptr inbounds i8, ptr %315, i64 40 store ptr %add.ptr.i1060, ptr %mCurrent.i, align 8 - %cmp.i1062 = icmp ugt ptr %add.ptr.i1060, %328 + %cmp.i1062 = icmp ugt ptr %add.ptr.i1060, %316 br i1 %cmp.i1062, label %if.then.i1064, label %invoke.cont489 if.then.i1064: ; preds = %invoke.cont484 @@ -2836,14 +2799,14 @@ if.then.i1064: ; preds = %invoke.cont484 to label %invoke.cont120.invoke unwind label %lpad.i1066 lpad.i1066: ; preds = %if.then.i1064 - %336 = landingpad { ptr, i32 } + %324 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i1065) #19 br label %lpad95.body invoke.cont489: ; preds = %invoke.cont484 - %add.ptr.i.i1073 = getelementptr inbounds i8, ptr %327, i64 44 - %cmp.i.i1075 = icmp ugt ptr %add.ptr.i.i1073, %328 + %add.ptr.i.i1073 = getelementptr inbounds i8, ptr %315, i64 44 + %cmp.i.i1075 = icmp ugt ptr %add.ptr.i.i1073, %316 br i1 %cmp.i.i1075, label %if.then.i.i1076, label %invoke.cont490 if.then.i.i1076: ; preds = %invoke.cont489 @@ -2852,16 +2815,16 @@ if.then.i.i1076: ; preds = %invoke.cont489 to label %invoke.cont120.invoke unwind label %lpad.i.i1078 lpad.i.i1078: ; preds = %if.then.i.i1076 - %337 = landingpad { ptr, i32 } + %325 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1077) #19 br label %lpad95.body invoke.cont490: ; preds = %invoke.cont489 - %338 = load float, ptr %add.ptr.i1060, align 1 + %326 = load float, ptr %add.ptr.i1060, align 1 store ptr %add.ptr.i.i1073, ptr %mCurrent.i, align 8 - %add.ptr.i.i1085 = getelementptr inbounds i8, ptr %327, i64 48 - %cmp.i.i1087 = icmp ugt ptr %add.ptr.i.i1085, %328 + %add.ptr.i.i1085 = getelementptr inbounds i8, ptr %315, i64 48 + %cmp.i.i1087 = icmp ugt ptr %add.ptr.i.i1085, %316 br i1 %cmp.i.i1087, label %if.then.i.i1088, label %invoke.cont493 if.then.i.i1088: ; preds = %invoke.cont490 @@ -2870,16 +2833,16 @@ if.then.i.i1088: ; preds = %invoke.cont490 to label %invoke.cont120.invoke unwind label %lpad.i.i1090 lpad.i.i1090: ; preds = %if.then.i.i1088 - %339 = landingpad { ptr, i32 } + %327 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1089) #19 br label %lpad95.body invoke.cont493: ; preds = %invoke.cont490 - %340 = load float, ptr %add.ptr.i.i1073, align 1 + %328 = load float, ptr %add.ptr.i.i1073, align 1 store ptr %add.ptr.i.i1085, ptr %mCurrent.i, align 8 - %add.ptr.i.i1097 = getelementptr inbounds i8, ptr %327, i64 52 - %cmp.i.i1099 = icmp ugt ptr %add.ptr.i.i1097, %328 + %add.ptr.i.i1097 = getelementptr inbounds i8, ptr %315, i64 52 + %cmp.i.i1099 = icmp ugt ptr %add.ptr.i.i1097, %316 br i1 %cmp.i.i1099, label %if.then.i.i1100, label %invoke.cont496 if.then.i.i1100: ; preds = %invoke.cont493 @@ -2888,16 +2851,16 @@ if.then.i.i1100: ; preds = %invoke.cont493 to label %invoke.cont120.invoke unwind label %lpad.i.i1102 lpad.i.i1102: ; preds = %if.then.i.i1100 - %341 = landingpad { ptr, i32 } + %329 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1101) #19 br label %lpad95.body invoke.cont496: ; preds = %invoke.cont493 - %342 = load float, ptr %add.ptr.i.i1085, align 1 - %add.ptr.i1109 = getelementptr inbounds i8, ptr %327, i64 81 + %330 = load float, ptr %add.ptr.i.i1085, align 1 + %add.ptr.i1109 = getelementptr inbounds i8, ptr %315, i64 81 store ptr %add.ptr.i1109, ptr %mCurrent.i, align 8 - %cmp.i1111 = icmp ugt ptr %add.ptr.i1109, %328 + %cmp.i1111 = icmp ugt ptr %add.ptr.i1109, %316 br i1 %cmp.i1111, label %if.then.i1113, label %invoke.cont499 if.then.i1113: ; preds = %invoke.cont496 @@ -2906,7 +2869,7 @@ if.then.i1113: ; preds = %invoke.cont496 to label %invoke.cont120.invoke unwind label %lpad.i1115 lpad.i1115: ; preds = %if.then.i1113 - %343 = landingpad { ptr, i32 } + %331 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i1114) #19 br label %lpad95.body @@ -2926,12 +2889,12 @@ invoke.cont500: ; preds = %invoke.cont499 invoke.cont502: ; preds = %invoke.cont500 %data.i.i1121 = getelementptr inbounds %struct.aiString, ptr %call503, i64 0, i32 1 %mType.i = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 1 - %344 = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 2 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(44) %344, i8 0, i64 36, i1 false) + %332 = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 2 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(44) %332, i8 0, i64 36, i1 false) %mAttenuationQuadratic.i = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 7 %mAngleInnerCone.i = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 11 - %345 = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(40) %345, i8 0, i64 36, i1 false) + %333 = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(40) %333, i8 0, i64 36, i1 false) store <4 x float> , ptr %mAngleInnerCone.i, align 4 store ptr %call503, ptr %call501, align 8 store i32 8, ptr %call503, align 4 @@ -2942,8 +2905,8 @@ invoke.cont502: ; preds = %invoke.cont500 %mAttenuationConstant = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 5 store <2 x float> , ptr %mAttenuationConstant, align 4 store float 0.000000e+00, ptr %mAttenuationQuadratic.i, align 4 - %add.ptr.i.i1129 = getelementptr inbounds i8, ptr %327, i64 85 - %cmp.i.i1131 = icmp ugt ptr %add.ptr.i.i1129, %328 + %add.ptr.i.i1129 = getelementptr inbounds i8, ptr %315, i64 85 + %cmp.i.i1131 = icmp ugt ptr %add.ptr.i.i1129, %316 br i1 %cmp.i.i1131, label %if.then.i.i1132, label %invoke.cont508 if.then.i.i1132: ; preds = %invoke.cont502 @@ -2952,18 +2915,18 @@ if.then.i.i1132: ; preds = %invoke.cont502 to label %invoke.cont120.invoke unwind label %lpad.i.i1134 lpad.i.i1134: ; preds = %if.then.i.i1132 - %346 = landingpad { ptr, i32 } + %334 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1133) #19 br label %lpad95.body invoke.cont508: ; preds = %invoke.cont502 - %347 = load float, ptr %add.ptr.i1109, align 1 + %335 = load float, ptr %add.ptr.i1109, align 1 store ptr %add.ptr.i.i1129, ptr %mCurrent.i, align 8 %mColorDiffuse = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 8 - store float %347, ptr %mColorDiffuse, align 4 - %add.ptr.i.i1141 = getelementptr inbounds i8, ptr %327, i64 89 - %cmp.i.i1143 = icmp ugt ptr %add.ptr.i.i1141, %328 + store float %335, ptr %mColorDiffuse, align 4 + %add.ptr.i.i1141 = getelementptr inbounds i8, ptr %315, i64 89 + %cmp.i.i1143 = icmp ugt ptr %add.ptr.i.i1141, %316 br i1 %cmp.i.i1143, label %if.then.i.i1144, label %invoke.cont511 if.then.i.i1144: ; preds = %invoke.cont508 @@ -2972,18 +2935,18 @@ if.then.i.i1144: ; preds = %invoke.cont508 to label %invoke.cont120.invoke unwind label %lpad.i.i1146 lpad.i.i1146: ; preds = %if.then.i.i1144 - %348 = landingpad { ptr, i32 } + %336 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1145) #19 br label %lpad95.body invoke.cont511: ; preds = %invoke.cont508 - %349 = load float, ptr %add.ptr.i.i1129, align 1 + %337 = load float, ptr %add.ptr.i.i1129, align 1 store ptr %add.ptr.i.i1141, ptr %mCurrent.i, align 8 %g514 = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 8, i32 1 - store float %349, ptr %g514, align 4 - %add.ptr.i.i1153 = getelementptr inbounds i8, ptr %327, i64 93 - %cmp.i.i1155 = icmp ugt ptr %add.ptr.i.i1153, %328 + store float %337, ptr %g514, align 4 + %add.ptr.i.i1153 = getelementptr inbounds i8, ptr %315, i64 93 + %cmp.i.i1155 = icmp ugt ptr %add.ptr.i.i1153, %316 br i1 %cmp.i.i1155, label %if.then.i.i1156, label %invoke.cont515 if.then.i.i1156: ; preds = %invoke.cont511 @@ -2992,24 +2955,24 @@ if.then.i.i1156: ; preds = %invoke.cont511 to label %invoke.cont120.invoke unwind label %lpad.i.i1158 lpad.i.i1158: ; preds = %if.then.i.i1156 - %350 = landingpad { ptr, i32 } + %338 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1157) #19 br label %lpad95.body invoke.cont515: ; preds = %invoke.cont511 - %351 = load float, ptr %add.ptr.i.i1141, align 1 + %339 = load float, ptr %add.ptr.i.i1141, align 1 store ptr %add.ptr.i.i1153, ptr %mCurrent.i, align 8 %b518 = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 8, i32 2 - store float %351, ptr %b518, align 4 + store float %339, ptr %b518, align 4 %mColorSpecular = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 9 - store float %347, ptr %mColorSpecular, align 4 + store float %335, ptr %mColorSpecular, align 4 %g3.i = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 9, i32 1 - store float %349, ptr %g3.i, align 4 + store float %337, ptr %g3.i, align 4 %b4.i = getelementptr inbounds %struct.aiLight, ptr %call503, i64 0, i32 9, i32 2 - store float %351, ptr %b4.i, align 4 - %add.ptr.i.i1167 = getelementptr inbounds i8, ptr %327, i64 97 - %cmp.i.i1169 = icmp ugt ptr %add.ptr.i.i1167, %328 + store float %339, ptr %b4.i, align 4 + %add.ptr.i.i1167 = getelementptr inbounds i8, ptr %315, i64 97 + %cmp.i.i1169 = icmp ugt ptr %add.ptr.i.i1167, %316 br i1 %cmp.i.i1169, label %if.then.i.i1170, label %invoke.cont522 if.then.i.i1170: ; preds = %invoke.cont515 @@ -3018,16 +2981,16 @@ if.then.i.i1170: ; preds = %invoke.cont515 to label %invoke.cont120.invoke unwind label %lpad.i.i1172 lpad.i.i1172: ; preds = %if.then.i.i1170 - %352 = landingpad { ptr, i32 } + %340 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1171) #19 br label %lpad95.body invoke.cont522: ; preds = %invoke.cont515 - %353 = load i32, ptr %add.ptr.i.i1153, align 1 + %341 = load i32, ptr %add.ptr.i.i1153, align 1 store ptr %add.ptr.i.i1167, ptr %mCurrent.i, align 8 - %add.ptr.i.i1179 = getelementptr inbounds i8, ptr %327, i64 101 - %cmp.i.i1181 = icmp ugt ptr %add.ptr.i.i1179, %328 + %add.ptr.i.i1179 = getelementptr inbounds i8, ptr %315, i64 101 + %cmp.i.i1181 = icmp ugt ptr %add.ptr.i.i1179, %316 br i1 %cmp.i.i1181, label %if.then.i.i1182, label %invoke.cont524 if.then.i.i1182: ; preds = %invoke.cont522 @@ -3036,20 +2999,20 @@ if.then.i.i1182: ; preds = %invoke.cont522 to label %invoke.cont120.invoke unwind label %lpad.i.i1184 lpad.i.i1184: ; preds = %if.then.i.i1182 - %354 = landingpad { ptr, i32 } + %342 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1183) #19 br label %lpad95.body invoke.cont524: ; preds = %invoke.cont522 - %355 = load i32, ptr %add.ptr.i.i1167, align 1 + %343 = load i32, ptr %add.ptr.i.i1167, align 1 store ptr %add.ptr.i.i1179, ptr %mCurrent.i, align 8 br label %while.cond527 while.cond527: ; preds = %invoke.cont528, %invoke.cont524 - %356 = phi ptr [ %add.ptr.i.i1191, %invoke.cont528 ], [ %add.ptr.i.i1179, %invoke.cont524 ] - %add.ptr.i.i1191 = getelementptr inbounds i8, ptr %356, i64 1 - %cmp.i.i1193 = icmp ugt ptr %add.ptr.i.i1191, %328 + %344 = phi ptr [ %add.ptr.i.i1191, %invoke.cont528 ], [ %add.ptr.i.i1179, %invoke.cont524 ] + %add.ptr.i.i1191 = getelementptr inbounds i8, ptr %344, i64 1 + %cmp.i.i1193 = icmp ugt ptr %add.ptr.i.i1191, %316 br i1 %cmp.i.i1193, label %if.then.i.i1194, label %invoke.cont528 if.then.i.i1194: ; preds = %while.cond527 @@ -3058,25 +3021,25 @@ if.then.i.i1194: ; preds = %while.cond527 to label %invoke.cont120.invoke unwind label %lpad.i.i1196 lpad.i.i1196: ; preds = %if.then.i.i1194 - %357 = landingpad { ptr, i32 } + %345 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i.i1195) #19 br label %lpad95.body invoke.cont528: ; preds = %while.cond527 - %358 = load i8, ptr %356, align 1 + %346 = load i8, ptr %344, align 1 store ptr %add.ptr.i.i1191, ptr %mCurrent.i, align 8 - %tobool530.not = icmp eq i8 %358, 0 + %tobool530.not = icmp eq i8 %346, 0 br i1 %tobool530.not, label %while.end532, label %while.cond527, !llvm.loop !41 while.end532: ; preds = %invoke.cont528 - %mul526 = mul i32 %353, 3 - %mul533 = mul i32 %mul526, %355 + %mul526 = mul i32 %341, 3 + %mul533 = mul i32 %mul526, %343 %add = add i32 %mul533, 20 %conv534 = zext i32 %add to i64 %add.ptr.i1203 = getelementptr inbounds i8, ptr %add.ptr.i.i1191, i64 %conv534 store ptr %add.ptr.i1203, ptr %mCurrent.i, align 8 - %cmp.i1205 = icmp ugt ptr %add.ptr.i1203, %328 + %cmp.i1205 = icmp ugt ptr %add.ptr.i1203, %316 br i1 %cmp.i1205, label %if.then.i1207, label %outer if.then.i1207: ; preds = %while.end532 @@ -3085,7 +3048,7 @@ if.then.i1207: ; preds = %while.end532 to label %invoke.cont120.invoke unwind label %lpad.i1209 lpad.i1209: ; preds = %if.then.i1207 - %359 = landingpad { ptr, i32 } + %347 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i1208) #19 br label %lpad95.body @@ -3096,35 +3059,35 @@ sw.default: ; preds = %invoke.cont107 to label %invoke.cont120.invoke unwind label %lpad537 lpad537: ; preds = %sw.default - %360 = landingpad { ptr, i32 } + %348 = landingpad { ptr, i32 } cleanup - %361 = extractvalue { ptr, i32 } %360, 0 - %362 = extractvalue { ptr, i32 } %360, 1 + %349 = extractvalue { ptr, i32 } %348, 0 + %350 = extractvalue { ptr, i32 } %348, 1 call void @__cxa_free_exception(ptr %exception536) #19 br label %ehcleanup1034 -sw.epilog.loopexit1826: ; preds = %invoke.cont374 - %.pre2010 = load ptr, ptr %mCurrent.i, align 8 +sw.epilog.loopexit1794: ; preds = %invoke.cont374 + %.pre1966 = load ptr, ptr %mCurrent.i, align 8 br label %sw.epilog -sw.epilog: ; preds = %for.inc444, %for.inc314, %sw.epilog.loopexit1826, %for.cond319.preheader, %for.cond.preheader, %sw.bb379 - %363 = phi ptr [ %.pre2010, %sw.epilog.loopexit1826 ], [ %add.ptr.i.i349, %for.cond319.preheader ], [ %add.ptr.i.i349, %for.cond.preheader ], [ %add.ptr.i.i349, %sw.bb379 ], [ %218, %for.inc314 ], [ %306, %for.inc444 ] - %364 = load ptr, ptr %mEnd.i, align 8 - %sub.ptr.lhs.cast.i344 = ptrtoint ptr %364 to i64 - %sub.ptr.rhs.cast.i345 = ptrtoint ptr %363 to i64 +sw.epilog: ; preds = %for.inc444, %for.inc314, %sw.epilog.loopexit1794, %for.cond319.preheader, %for.cond.preheader, %sw.bb379 + %351 = phi ptr [ %.pre1966, %sw.epilog.loopexit1794 ], [ %add.ptr.i.i349, %for.cond319.preheader ], [ %add.ptr.i.i349, %for.cond.preheader ], [ %add.ptr.i.i349, %sw.bb379 ], [ %218, %for.inc314 ], [ %306, %for.inc444 ] + %352 = load ptr, ptr %mEnd.i, align 8 + %sub.ptr.lhs.cast.i344 = ptrtoint ptr %352 to i64 + %sub.ptr.rhs.cast.i345 = ptrtoint ptr %351 to i64 %sub.ptr.sub.i346 = sub i64 %sub.ptr.lhs.cast.i344, %sub.ptr.rhs.cast.i345 %conv2.i347 = and i64 %sub.ptr.sub.i346, 4294967295 %cmp104 = icmp eq i64 %conv2.i347, 0 br i1 %cmp104, label %outer, label %if.end106, !llvm.loop !42 outer: ; preds = %sw.epilog, %invoke.cont99, %while.end532 - %fgColor.sroa.0.0 = phi float [ %338, %while.end532 ], [ 0x3FE3333340000000, %invoke.cont99 ], [ 0x3FE3333340000000, %sw.epilog ] - %fgColor.sroa.3.0 = phi float [ %340, %while.end532 ], [ 0x3FE3333340000000, %invoke.cont99 ], [ 0x3FE3333340000000, %sw.epilog ] - %fgColor.sroa.6.0 = phi float [ %342, %while.end532 ], [ 0x3FE3333340000000, %invoke.cont99 ], [ 0x3FE3333340000000, %sw.epilog ] - %365 = load ptr, ptr %meshes, align 8 + %fgColor.sroa.0.0 = phi float [ %326, %while.end532 ], [ 0x3FE3333340000000, %invoke.cont99 ], [ 0x3FE3333340000000, %sw.epilog ] + %fgColor.sroa.3.0 = phi float [ %328, %while.end532 ], [ 0x3FE3333340000000, %invoke.cont99 ], [ 0x3FE3333340000000, %sw.epilog ] + %fgColor.sroa.6.0 = phi float [ %330, %while.end532 ], [ 0x3FE3333340000000, %invoke.cont99 ], [ 0x3FE3333340000000, %sw.epilog ] + %353 = load ptr, ptr %meshes, align 8 %_M_finish.i.i1215 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %meshes, i64 0, i32 1 - %366 = load ptr, ptr %_M_finish.i.i1215, align 8 - %cmp.i.i1216 = icmp eq ptr %365, %366 + %354 = load ptr, ptr %_M_finish.i.i1215, align 8 + %cmp.i.i1216 = icmp eq ptr %353, %354 br i1 %cmp.i.i1216, label %if.then542, label %if.end547 if.then542: ; preds = %outer @@ -3133,18 +3096,18 @@ if.then542: ; preds = %outer to label %invoke.cont120.invoke unwind label %lpad544 lpad544: ; preds = %if.then542 - %367 = landingpad { ptr, i32 } + %355 = landingpad { ptr, i32 } cleanup - %368 = extractvalue { ptr, i32 } %367, 0 - %369 = extractvalue { ptr, i32 } %367, 1 + %356 = extractvalue { ptr, i32 } %355, 0 + %357 = extractvalue { ptr, i32 } %355, 1 call void @__cxa_free_exception(ptr %exception543) #19 br label %ehcleanup1034 if.end547: ; preds = %outer - %370 = load ptr, ptr %materials, align 8 + %358 = load ptr, ptr %materials, align 8 %_M_finish.i.i1217 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %materials, i64 0, i32 1 - %371 = load ptr, ptr %_M_finish.i.i1217, align 8 - %cmp.i.i1218 = icmp eq ptr %370, %371 + %359 = load ptr, ptr %_M_finish.i.i1217, align 8 + %cmp.i.i1218 = icmp eq ptr %358, %359 br i1 %cmp.i.i1218, label %if.then549, label %if.end559 if.then549: ; preds = %if.end547 @@ -3156,113 +3119,113 @@ invoke.cont550: ; preds = %if.then549 to label %invoke.cont552 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont552: ; preds = %invoke.cont550 - %372 = load ptr, ptr %_M_finish.i.i1217, align 8 + %360 = load ptr, ptr %_M_finish.i.i1217, align 8 %_M_end_of_storage.i1220 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %materials, i64 0, i32 2 - %373 = load ptr, ptr %_M_end_of_storage.i1220, align 8 - %cmp.not.i1221 = icmp eq ptr %372, %373 + %361 = load ptr, ptr %_M_end_of_storage.i1220, align 8 + %cmp.not.i1221 = icmp eq ptr %360, %361 br i1 %cmp.not.i1221, label %if.else.i1235, label %if.then.i1222 if.then.i1222: ; preds = %invoke.cont552 - store i32 0, ptr %372, align 4 - %data.i.i.i.i.i1223 = getelementptr inbounds %struct.aiString, ptr %372, i64 0, i32 1 + store i32 0, ptr %360, align 4 + %data.i.i.i.i.i1223 = getelementptr inbounds %struct.aiString, ptr %360, i64 0, i32 1 store i8 0, ptr %data.i.i.i.i.i1223, align 4 - %ambient.i.i.i.i1224 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %372, i64 0, i32 1 + %ambient.i.i.i.i1224 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %360, i64 0, i32 1 store <4 x float> , ptr %ambient.i.i.i.i1224, align 4 - %g.i1.i.i.i.i1228 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %372, i64 0, i32 2, i32 1 + %g.i1.i.i.i.i1228 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %360, i64 0, i32 2, i32 1 store <2 x float> , ptr %g.i1.i.i.i.i1228, align 4 - %specular.i.i.i.i1230 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %372, i64 0, i32 3 - %texIdx.i.i.i.i1231 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %372, i64 0, i32 5 + %specular.i.i.i.i1230 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %360, i64 0, i32 3 + %texIdx.i.i.i.i1231 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %360, i64 0, i32 5 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %specular.i.i.i.i1230, i8 0, i64 16, i1 false) store i32 -1, ptr %texIdx.i.i.i.i1231, align 4 - %374 = load ptr, ptr %_M_finish.i.i1217, align 8 - %incdec.ptr.i1232 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %374, i64 1 + %362 = load ptr, ptr %_M_finish.i.i1217, align 8 + %incdec.ptr.i1232 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %362, i64 1 store ptr %incdec.ptr.i1232, ptr %_M_finish.i.i1217, align 8 br label %invoke.cont553 if.else.i1235: ; preds = %invoke.cont552 - invoke void @_ZNSt6vectorIN6Assimp11Q3DImporter8MaterialESaIS2_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %materials, ptr %372) + invoke void @_ZNSt6vectorIN6Assimp11Q3DImporter8MaterialESaIS2_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %materials, ptr %360) to label %if.else.i1235.invoke.cont553_crit_edge unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp if.else.i1235.invoke.cont553_crit_edge: ; preds = %if.else.i1235 - %.pre2011 = load ptr, ptr %_M_finish.i.i1217, align 8 + %.pre1967 = load ptr, ptr %_M_finish.i.i1217, align 8 br label %invoke.cont553 invoke.cont553: ; preds = %if.else.i1235.invoke.cont553_crit_edge, %if.then.i1222 - %375 = phi ptr [ %.pre2011, %if.else.i1235.invoke.cont553_crit_edge ], [ %incdec.ptr.i1232, %if.then.i1222 ] - %diffuse556 = getelementptr %"struct.Assimp::Q3DImporter::Material", ptr %375, i64 -1, i32 2 + %363 = phi ptr [ %.pre1967, %if.else.i1235.invoke.cont553_crit_edge ], [ %incdec.ptr.i1232, %if.then.i1222 ] + %diffuse556 = getelementptr %"struct.Assimp::Q3DImporter::Material", ptr %363, i64 -1, i32 2 store float %fgColor.sroa.0.0, ptr %diffuse556, align 4 - %g3.i1242 = getelementptr %"struct.Assimp::Q3DImporter::Material", ptr %375, i64 -1, i32 2, i32 1 + %g3.i1242 = getelementptr %"struct.Assimp::Q3DImporter::Material", ptr %363, i64 -1, i32 2, i32 1 store float %fgColor.sroa.3.0, ptr %g3.i1242, align 4 - %b4.i1244 = getelementptr %"struct.Assimp::Q3DImporter::Material", ptr %375, i64 -1, i32 2, i32 2 + %b4.i1244 = getelementptr %"struct.Assimp::Q3DImporter::Material", ptr %363, i64 -1, i32 2, i32 2 store float %fgColor.sroa.6.0, ptr %b4.i1244, align 4 - %.pre2012 = load ptr, ptr %_M_finish.i.i1217, align 8 - %.pre2013 = load ptr, ptr %materials, align 8 + %.pre1968 = load ptr, ptr %_M_finish.i.i1217, align 8 + %.pre1969 = load ptr, ptr %materials, align 8 br label %if.end559 if.end559: ; preds = %invoke.cont553, %if.end547 - %376 = phi ptr [ %.pre2013, %invoke.cont553 ], [ %370, %if.end547 ] - %377 = phi ptr [ %.pre2012, %invoke.cont553 ], [ %371, %if.end547 ] - %sub.ptr.lhs.cast.i1246 = ptrtoint ptr %377 to i64 - %sub.ptr.rhs.cast.i1247 = ptrtoint ptr %376 to i64 + %364 = phi ptr [ %.pre1969, %invoke.cont553 ], [ %358, %if.end547 ] + %365 = phi ptr [ %.pre1968, %invoke.cont553 ], [ %359, %if.end547 ] + %sub.ptr.lhs.cast.i1246 = ptrtoint ptr %365 to i64 + %sub.ptr.rhs.cast.i1247 = ptrtoint ptr %364 to i64 %sub.ptr.sub.i1248 = sub i64 %sub.ptr.lhs.cast.i1246, %sub.ptr.rhs.cast.i1247 %sub.ptr.sub.i1248.fr = freeze i64 %sub.ptr.sub.i1248 %sub.ptr.div.i1249 = sdiv i64 %sub.ptr.sub.i1248.fr, 1072 - %378 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %sub.ptr.div.i1249, i64 24) - %379 = extractvalue { i64, i1 } %378, 1 - %380 = extractvalue { i64, i1 } %378, 0 - %381 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %380, i64 8) - %382 = extractvalue { i64, i1 } %381, 1 - %383 = or i1 %379, %382 - %384 = extractvalue { i64, i1 } %381, 0 - %385 = select i1 %383, i64 -1, i64 %384 - %call562 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %385) #23 + %366 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %sub.ptr.div.i1249, i64 24) + %367 = extractvalue { i64, i1 } %366, 1 + %368 = extractvalue { i64, i1 } %366, 0 + %369 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %368, i64 8) + %370 = extractvalue { i64, i1 } %369, 1 + %371 = or i1 %367, %370 + %372 = extractvalue { i64, i1 } %369, 0 + %373 = select i1 %371, i64 -1, i64 %372 + %call562 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %373) #23 to label %invoke.cont561 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont561: ; preds = %if.end559 store i64 %sub.ptr.div.i1249, ptr %call562, align 16 %.ptr = getelementptr i8, ptr %call562, i64 8 - %isempty = icmp eq ptr %377, %376 + %isempty = icmp eq ptr %365, %364 br i1 %isempty, label %arrayctor.cont, label %new.ctorloop new.ctorloop: ; preds = %invoke.cont561 - %386 = mul nsw i64 %sub.ptr.div.i1249, 24 - %387 = add nsw i64 %386, -24 - %388 = urem i64 %387, 24 - %389 = sub nuw nsw i64 %387, %388 - %390 = add nsw i64 %389, 24 - call void @llvm.memset.p0.i64(ptr align 8 %.ptr, i8 0, i64 %390, i1 false) + %374 = mul nsw i64 %sub.ptr.div.i1249, 24 + %375 = add nsw i64 %374, -24 + %376 = urem i64 %375, 24 + %377 = sub nuw nsw i64 %375, %376 + %378 = add nsw i64 %377, 24 + call void @llvm.memset.p0.i64(ptr align 8 %.ptr, i8 0, i64 %378, i1 false) br label %arrayctor.cont arrayctor.cont: ; preds = %new.ctorloop, %invoke.cont561 - %391 = load ptr, ptr %meshes, align 8 - %392 = load ptr, ptr %_M_finish.i.i1215, align 8 - %cmp.i1251.not1782 = icmp eq ptr %391, %392 - br i1 %cmp.i1251.not1782, label %for.end614, label %for.body569.lr.ph + %379 = load ptr, ptr %meshes, align 8 + %380 = load ptr, ptr %_M_finish.i.i1215, align 8 + %cmp.i1251.not1756 = icmp eq ptr %379, %380 + br i1 %cmp.i1251.not1756, label %for.end614, label %for.body569.lr.ph for.body569.lr.ph: ; preds = %arrayctor.cont %mNumMeshes = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 2 br label %for.body569 for.body569: ; preds = %for.body569.lr.ph, %for.inc611 - %p.01784 = phi i32 [ 0, %for.body569.lr.ph ], [ %inc613, %for.inc611 ] - %it.sroa.0.01783 = phi ptr [ %391, %for.body569.lr.ph ], [ %incdec.ptr.i1285, %for.inc611 ] - %faces571 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %it.sroa.0.01783, i64 0, i32 3 - %393 = load ptr, ptr %faces571, align 8 - %_M_finish.i1252 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %it.sroa.0.01783, i64 0, i32 3, i32 0, i32 0, i32 0, i32 1 - %394 = load ptr, ptr %_M_finish.i1252, align 8 - %cmp.i1253.not1779 = icmp eq ptr %393, %394 - br i1 %cmp.i1253.not1779, label %for.inc611, label %for.body580 + %p.01758 = phi i32 [ 0, %for.body569.lr.ph ], [ %inc613, %for.inc611 ] + %it.sroa.0.01757 = phi ptr [ %379, %for.body569.lr.ph ], [ %incdec.ptr.i1285, %for.inc611 ] + %faces571 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %it.sroa.0.01757, i64 0, i32 3 + %381 = load ptr, ptr %faces571, align 8 + %_M_finish.i1252 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %it.sroa.0.01757, i64 0, i32 3, i32 0, i32 0, i32 0, i32 1 + %382 = load ptr, ptr %_M_finish.i1252, align 8 + %cmp.i1253.not1753 = icmp eq ptr %381, %382 + br i1 %cmp.i1253.not1753, label %for.inc611, label %for.body580 for.body580: ; preds = %for.body569, %for.inc607 - %q.01781 = phi i32 [ %inc609, %for.inc607 ], [ 0, %for.body569 ] - %fit.sroa.0.01780 = phi ptr [ %incdec.ptr.i1284, %for.inc607 ], [ %393, %for.body569 ] - %mat582 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %fit.sroa.0.01780, i64 0, i32 2 - %395 = load i32, ptr %mat582, align 8 - %conv583 = zext i32 %395 to i64 - %396 = load ptr, ptr %_M_finish.i.i1217, align 8 - %397 = load ptr, ptr %materials, align 8 - %sub.ptr.lhs.cast.i1255 = ptrtoint ptr %396 to i64 - %sub.ptr.rhs.cast.i1256 = ptrtoint ptr %397 to i64 + %q.01755 = phi i32 [ %inc609, %for.inc607 ], [ 0, %for.body569 ] + %fit.sroa.0.01754 = phi ptr [ %incdec.ptr.i1284, %for.inc607 ], [ %381, %for.body569 ] + %mat582 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %fit.sroa.0.01754, i64 0, i32 2 + %383 = load i32, ptr %mat582, align 8 + %conv583 = zext i32 %383 to i64 + %384 = load ptr, ptr %_M_finish.i.i1217, align 8 + %385 = load ptr, ptr %materials, align 8 + %sub.ptr.lhs.cast.i1255 = ptrtoint ptr %384 to i64 + %sub.ptr.rhs.cast.i1256 = ptrtoint ptr %385 to i64 %sub.ptr.sub.i1257 = sub i64 %sub.ptr.lhs.cast.i1255, %sub.ptr.rhs.cast.i1256 %sub.ptr.div.i1258 = sdiv exact i64 %sub.ptr.sub.i1257, 1072 %cmp585.not = icmp ugt i64 %sub.ptr.div.i1258, %conv583 @@ -3281,48 +3244,48 @@ invoke.cont589: ; preds = %invoke.cont587 br label %if.end592 if.end592: ; preds = %invoke.cont589, %for.body580 - %398 = phi i32 [ 0, %invoke.cont589 ], [ %395, %for.body580 ] - %idxprom595 = zext i32 %398 to i64 + %386 = phi i32 [ 0, %invoke.cont589 ], [ %383, %for.body580 ] + %idxprom595 = zext i32 %386 to i64 %arrayidx596 = getelementptr inbounds %"class.std::vector.29", ptr %.ptr, i64 %idxprom595 - %399 = load ptr, ptr %arrayidx596, align 8 + %387 = load ptr, ptr %arrayidx596, align 8 %_M_finish.i.i1259 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %arrayidx596, i64 0, i32 1 - %400 = load ptr, ptr %_M_finish.i.i1259, align 8 - %cmp.i.i1260 = icmp eq ptr %399, %400 + %388 = load ptr, ptr %_M_finish.i.i1259, align 8 + %cmp.i.i1260 = icmp eq ptr %387, %388 br i1 %cmp.i.i1260, label %if.then598, label %if.end600 if.then598: ; preds = %if.end592 - %401 = load i32, ptr %mNumMeshes, align 8 - %inc599 = add i32 %401, 1 + %389 = load i32, ptr %mNumMeshes, align 8 + %inc599 = add i32 %389, 1 store i32 %inc599, ptr %mNumMeshes, align 8 - %.pre2014 = load i32, ptr %mat582, align 8 - %idxprom603.phi.trans.insert = zext i32 %.pre2014 to i64 + %.pre1970 = load i32, ptr %mat582, align 8 + %idxprom603.phi.trans.insert = zext i32 %.pre1970 to i64 %_M_finish.i1261.phi.trans.insert = getelementptr inbounds %"class.std::vector.29", ptr %.ptr, i64 %idxprom603.phi.trans.insert, i32 0, i32 0, i32 0, i32 1 - %.pre2015 = load ptr, ptr %_M_finish.i1261.phi.trans.insert, align 8 + %.pre1971 = load ptr, ptr %_M_finish.i1261.phi.trans.insert, align 8 br label %if.end600 if.end600: ; preds = %if.then598, %if.end592 %idxprom603.pre-phi = phi i64 [ %idxprom603.phi.trans.insert, %if.then598 ], [ %idxprom595, %if.end592 ] - %402 = phi ptr [ %.pre2015, %if.then598 ], [ %400, %if.end592 ] + %390 = phi ptr [ %.pre1971, %if.then598 ], [ %388, %if.end592 ] %arrayidx604 = getelementptr inbounds %"class.std::vector.29", ptr %.ptr, i64 %idxprom603.pre-phi %_M_finish.i1261 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %arrayidx604, i64 0, i32 1 %_M_end_of_storage.i1262 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %arrayidx604, i64 0, i32 2 - %403 = load ptr, ptr %_M_end_of_storage.i1262, align 8 - %cmp.not.i1263 = icmp eq ptr %402, %403 + %391 = load ptr, ptr %_M_end_of_storage.i1262, align 8 + %cmp.not.i1263 = icmp eq ptr %390, %391 br i1 %cmp.not.i1263, label %if.else.i1267, label %if.then.i1264 if.then.i1264: ; preds = %if.end600 - store i32 %p.01784, ptr %402, align 4 - %second.i.i.i.i = getelementptr inbounds %"struct.std::pair", ptr %402, i64 0, i32 1 - store i32 %q.01781, ptr %second.i.i.i.i, align 4 - %404 = load ptr, ptr %_M_finish.i1261, align 8 - %incdec.ptr.i1265 = getelementptr inbounds %"struct.std::pair", ptr %404, i64 1 + store i32 %p.01758, ptr %390, align 4 + %second.i.i.i.i = getelementptr inbounds %"struct.std::pair", ptr %390, i64 0, i32 1 + store i32 %q.01755, ptr %second.i.i.i.i, align 4 + %392 = load ptr, ptr %_M_finish.i1261, align 8 + %incdec.ptr.i1265 = getelementptr inbounds %"struct.std::pair", ptr %392, i64 1 store ptr %incdec.ptr.i1265, ptr %_M_finish.i1261, align 8 br label %for.inc607 if.else.i1267: ; preds = %if.end600 - %405 = load ptr, ptr %arrayidx604, align 8 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %402 to i64 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %405 to i64 + %393 = load ptr, ptr %arrayidx604, align 8 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %390 to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %393 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i %cmp.i.i.i1268 = icmp eq i64 %sub.ptr.sub.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i1268, label %if.then.i.i.i.invoke, label %_ZNKSt6vectorISt4pairIjjESaIS1_EE12_M_check_lenEmPKc.exit.i.i @@ -3332,8 +3295,8 @@ _ZNKSt6vectorISt4pairIjjESaIS1_EE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.els %.sroa.speculated.i.i.i1269 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i, i64 1) %add.i.i.i1270 = add nsw i64 %.sroa.speculated.i.i.i1269, %sub.ptr.div.i.i.i.i %cmp7.i.i.i = icmp ult i64 %add.i.i.i1270, %sub.ptr.div.i.i.i.i - %406 = call i64 @llvm.umin.i64(i64 %add.i.i.i1270, i64 1152921504606846975) - %cond.i.i.i = select i1 %cmp7.i.i.i, i64 1152921504606846975, i64 %406 + %394 = call i64 @llvm.umin.i64(i64 %add.i.i.i1270, i64 1152921504606846975) + %cond.i.i.i = select i1 %cmp7.i.i.i, i64 1152921504606846975, i64 %394 %cmp.not.i.i.i = icmp ne i64 %cond.i.i.i, 0 call void @llvm.assume(i1 %cmp.not.i.i.i) %mul.i.i.i.i.i1271 = shl nuw nsw i64 %cond.i.i.i, 3 @@ -3342,32 +3305,32 @@ _ZNKSt6vectorISt4pairIjjESaIS1_EE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.els call5.i.i.i.i.i.noexc1282: ; preds = %_ZNKSt6vectorISt4pairIjjESaIS1_EE12_M_check_lenEmPKc.exit.i.i %add.ptr.i.i1272 = getelementptr inbounds i8, ptr %call5.i.i.i.i.i1283, i64 %sub.ptr.sub.i.i.i.i - store i32 %p.01784, ptr %add.ptr.i.i1272, align 4 + store i32 %p.01758, ptr %add.ptr.i.i1272, align 4 %second.i.i.i.i.i = getelementptr inbounds %"struct.std::pair", ptr %call5.i.i.i.i.i1283, i64 %sub.ptr.div.i.i.i.i, i32 1 - store i32 %q.01781, ptr %second.i.i.i.i.i, align 4 - %cmp.not5.i.i.i.i.i1273 = icmp eq ptr %405, %402 + store i32 %q.01755, ptr %second.i.i.i.i.i, align 4 + %cmp.not5.i.i.i.i.i1273 = icmp eq ptr %393, %390 br i1 %cmp.not5.i.i.i.i.i1273, label %_ZNSt6vectorISt4pairIjjESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit26.i.i, label %for.body.i.i.i.i.i1274 for.body.i.i.i.i.i1274: ; preds = %call5.i.i.i.i.i.noexc1282, %for.body.i.i.i.i.i1274 %__cur.07.i.i.i.i.i1275 = phi ptr [ %incdec.ptr1.i.i.i.i.i1278, %for.body.i.i.i.i.i1274 ], [ %call5.i.i.i.i.i1283, %call5.i.i.i.i.i.noexc1282 ] - %__first.addr.06.i.i.i.i.i1276 = phi ptr [ %incdec.ptr.i.i.i.i.i1277, %for.body.i.i.i.i.i1274 ], [ %405, %call5.i.i.i.i.i.noexc1282 ] + %__first.addr.06.i.i.i.i.i1276 = phi ptr [ %incdec.ptr.i.i.i.i.i1277, %for.body.i.i.i.i.i1274 ], [ %393, %call5.i.i.i.i.i.noexc1282 ] call void @llvm.experimental.noalias.scope.decl(metadata !43) call void @llvm.experimental.noalias.scope.decl(metadata !46) - %407 = load i64, ptr %__first.addr.06.i.i.i.i.i1276, align 4, !alias.scope !46, !noalias !43 - store i64 %407, ptr %__cur.07.i.i.i.i.i1275, align 4, !alias.scope !43, !noalias !46 + %395 = load i64, ptr %__first.addr.06.i.i.i.i.i1276, align 4, !alias.scope !46, !noalias !43 + store i64 %395, ptr %__cur.07.i.i.i.i.i1275, align 4, !alias.scope !43, !noalias !46 %incdec.ptr.i.i.i.i.i1277 = getelementptr inbounds %"struct.std::pair", ptr %__first.addr.06.i.i.i.i.i1276, i64 1 %incdec.ptr1.i.i.i.i.i1278 = getelementptr inbounds %"struct.std::pair", ptr %__cur.07.i.i.i.i.i1275, i64 1 - %cmp.not.i.i.i.i.i1279 = icmp eq ptr %incdec.ptr.i.i.i.i.i1277, %402 + %cmp.not.i.i.i.i.i1279 = icmp eq ptr %incdec.ptr.i.i.i.i.i1277, %390 br i1 %cmp.not.i.i.i.i.i1279, label %_ZNSt6vectorISt4pairIjjESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit26.i.i, label %for.body.i.i.i.i.i1274, !llvm.loop !48 _ZNSt6vectorISt4pairIjjESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit26.i.i: ; preds = %for.body.i.i.i.i.i1274, %call5.i.i.i.i.i.noexc1282 %__cur.0.lcssa.i.i.i.i.i = phi ptr [ %call5.i.i.i.i.i1283, %call5.i.i.i.i.i.noexc1282 ], [ %incdec.ptr1.i.i.i.i.i1278, %for.body.i.i.i.i.i1274 ] %incdec.ptr.i.i = getelementptr %"struct.std::pair", ptr %__cur.0.lcssa.i.i.i.i.i, i64 1 - %tobool.not.i.i.i = icmp eq ptr %405, null + %tobool.not.i.i.i = icmp eq ptr %393, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorISt4pairIjjESaIS1_EE17_M_realloc_insertIJRjS5_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i, label %if.then.i27.i.i if.then.i27.i.i: ; preds = %_ZNSt6vectorISt4pairIjjESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit26.i.i - call void @_ZdlPv(ptr noundef nonnull %405) #20 + call void @_ZdlPv(ptr noundef nonnull %393) #20 br label %_ZNSt6vectorISt4pairIjjESaIS1_EE17_M_realloc_insertIJRjS5_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i _ZNSt6vectorISt4pairIjjESaIS1_EE17_M_realloc_insertIJRjS5_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i: ; preds = %if.then.i27.i.i, %_ZNSt6vectorISt4pairIjjESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit26.i.i @@ -3378,60 +3341,60 @@ _ZNSt6vectorISt4pairIjjESaIS1_EE17_M_realloc_insertIJRjS5_EEEvN9__gnu_cxx17__nor br label %for.inc607 for.inc607: ; preds = %_ZNSt6vectorISt4pairIjjESaIS1_EE17_M_realloc_insertIJRjS5_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i, %if.then.i1264 - %incdec.ptr.i1284 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %fit.sroa.0.01780, i64 1 - %inc609 = add i32 %q.01781, 1 - %cmp.i1253.not = icmp eq ptr %incdec.ptr.i1284, %394 + %incdec.ptr.i1284 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %fit.sroa.0.01754, i64 1 + %inc609 = add i32 %q.01755, 1 + %cmp.i1253.not = icmp eq ptr %incdec.ptr.i1284, %382 br i1 %cmp.i1253.not, label %for.inc611, label %for.body580, !llvm.loop !49 for.inc611: ; preds = %for.inc607, %for.body569 - %incdec.ptr.i1285 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %it.sroa.0.01783, i64 1 - %inc613 = add i32 %p.01784, 1 - %cmp.i1251.not = icmp eq ptr %incdec.ptr.i1285, %392 + %incdec.ptr.i1285 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %it.sroa.0.01757, i64 1 + %inc613 = add i32 %p.01758, 1 + %cmp.i1251.not = icmp eq ptr %incdec.ptr.i1285, %380 br i1 %cmp.i1251.not, label %for.end614, label %for.body569, !llvm.loop !50 for.end614: ; preds = %for.inc611, %arrayctor.cont %mNumMeshes615 = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 2 - %408 = load i32, ptr %mNumMeshes615, align 8 + %396 = load i32, ptr %mNumMeshes615, align 8 %mNumMaterials = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 4 - store i32 %408, ptr %mNumMaterials, align 8 - %conv617 = zext i32 %408 to i64 - %409 = shl nuw nsw i64 %conv617, 3 - %call619 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %409) #23 + store i32 %396, ptr %mNumMaterials, align 8 + %conv617 = zext i32 %396 to i64 + %397 = shl nuw nsw i64 %conv617, 3 + %call619 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %397) #23 to label %invoke.cont618 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont618: ; preds = %for.end614 %mMaterials = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 5 store ptr %call619, ptr %mMaterials, align 8 - %call623 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %409) #23 + %call623 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %397) #23 to label %invoke.cont622 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont622: ; preds = %invoke.cont618 %mMeshes = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 3 store ptr %call623, ptr %mMeshes, align 8 - %410 = load ptr, ptr %_M_finish.i.i1217, align 8 - %411 = load ptr, ptr %materials, align 8 - %sub.ptr.lhs.cast.i12871809 = ptrtoint ptr %410 to i64 - %sub.ptr.rhs.cast.i12881810 = ptrtoint ptr %411 to i64 - %sub.ptr.sub.i12891811 = sub i64 %sub.ptr.lhs.cast.i12871809, %sub.ptr.rhs.cast.i12881810 - %sub.ptr.div.i12901812 = sdiv exact i64 %sub.ptr.sub.i12891811, 1072 - %412 = and i64 %sub.ptr.div.i12901812, 4294967295 - %cmp6281814.not = icmp eq i64 %412, 0 - br i1 %cmp6281814.not, label %delete.notnull, label %for.body629.lr.ph + %398 = load ptr, ptr %_M_finish.i.i1217, align 8 + %399 = load ptr, ptr %materials, align 8 + %sub.ptr.lhs.cast.i12871783 = ptrtoint ptr %398 to i64 + %sub.ptr.rhs.cast.i12881784 = ptrtoint ptr %399 to i64 + %sub.ptr.sub.i12891785 = sub i64 %sub.ptr.lhs.cast.i12871783, %sub.ptr.rhs.cast.i12881784 + %sub.ptr.div.i12901786 = sdiv exact i64 %sub.ptr.sub.i12891785, 1072 + %400 = and i64 %sub.ptr.div.i12901786, 4294967295 + %cmp6281788.not = icmp eq i64 %400, 0 + br i1 %cmp6281788.not, label %delete.notnull, label %for.body629.lr.ph for.body629.lr.ph: ; preds = %invoke.cont622 %mNumTextures676 = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 8 br label %for.body629 for.body629: ; preds = %for.body629.lr.ph, %for.inc959 - %413 = phi ptr [ %411, %for.body629.lr.ph ], [ %524, %for.inc959 ] - %414 = phi ptr [ %410, %for.body629.lr.ph ], [ %525, %for.inc959 ] - %indvars.iv1999 = phi i64 [ 0, %for.body629.lr.ph ], [ %indvars.iv.next2000, %for.inc959 ] - %real.01817 = phi i32 [ 0, %for.body629.lr.ph ], [ %real.1, %for.inc959 ] - %arrayidx631 = getelementptr inbounds %"class.std::vector.29", ptr %.ptr, i64 %indvars.iv1999 - %415 = load ptr, ptr %arrayidx631, align 8 + %401 = phi ptr [ %399, %for.body629.lr.ph ], [ %512, %for.inc959 ] + %402 = phi ptr [ %398, %for.body629.lr.ph ], [ %513, %for.inc959 ] + %indvars.iv1955 = phi i64 [ 0, %for.body629.lr.ph ], [ %indvars.iv.next1956, %for.inc959 ] + %real.01791 = phi i32 [ 0, %for.body629.lr.ph ], [ %real.1, %for.inc959 ] + %arrayidx631 = getelementptr inbounds %"class.std::vector.29", ptr %.ptr, i64 %indvars.iv1955 + %403 = load ptr, ptr %arrayidx631, align 8 %_M_finish.i.i1291 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %arrayidx631, i64 0, i32 1 - %416 = load ptr, ptr %_M_finish.i.i1291, align 8 - %cmp.i.i1292 = icmp eq ptr %415, %416 + %404 = load ptr, ptr %_M_finish.i.i1291, align 8 + %cmp.i.i1292 = icmp eq ptr %403, %404 br i1 %cmp.i.i1292, label %for.inc959, label %if.end634 if.end634: ; preds = %for.body629 @@ -3454,9 +3417,9 @@ invoke.cont636: ; preds = %if.end634 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(204) %mVertices.i, i8 0, i64 204, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(17) %mBones.i, i8 0, i64 17, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %mAnimMeshes.i, i8 0, i64 36, i1 false) - %417 = load ptr, ptr %mMeshes, align 8 - %idxprom639 = zext i32 %real.01817 to i64 - %arrayidx640 = getelementptr inbounds ptr, ptr %417, i64 %idxprom639 + %405 = load ptr, ptr %mMeshes, align 8 + %idxprom639 = zext i32 %real.01791 to i64 + %arrayidx640 = getelementptr inbounds ptr, ptr %405, i64 %idxprom639 store ptr %call637, ptr %arrayidx640, align 8 %call643 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #23 to label %invoke.cont642 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit @@ -3466,29 +3429,29 @@ invoke.cont642: ; preds = %invoke.cont636 to label %invoke.cont645 unwind label %lpad644 invoke.cont645: ; preds = %invoke.cont642 - %418 = load ptr, ptr %mMaterials, align 8 - %arrayidx649 = getelementptr inbounds ptr, ptr %418, i64 %idxprom639 + %406 = load ptr, ptr %mMaterials, align 8 + %arrayidx649 = getelementptr inbounds ptr, ptr %406, i64 %idxprom639 store ptr %call643, ptr %arrayidx649, align 8 %mMaterialIndex = getelementptr inbounds %struct.aiMesh, ptr %call637, i64 0, i32 13 - store i32 %real.01817, ptr %mMaterialIndex, align 8 - %419 = load ptr, ptr %materials, align 8 - %add.ptr.i1293 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %419, i64 %indvars.iv1999 - %diffuse652 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %419, i64 %indvars.iv1999, i32 2 + store i32 %real.01791, ptr %mMaterialIndex, align 8 + %407 = load ptr, ptr %materials, align 8 + %add.ptr.i1293 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %407, i64 %indvars.iv1955 + %diffuse652 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %407, i64 %indvars.iv1955, i32 2 %call3.i1294 = invoke noundef i32 @_ZN10aiMaterial17AddBinaryPropertyEPKvjPKcjj18aiPropertyTypeInfo(ptr noundef nonnull align 8 dereferenceable(16) %call643, ptr noundef nonnull %diffuse652, i32 noundef 12, ptr noundef nonnull @.str.21, i32 noundef 0, i32 noundef 0, i32 noundef 1) to label %invoke.cont653 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont653: ; preds = %invoke.cont645 - %specular655 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %419, i64 %indvars.iv1999, i32 3 + %specular655 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %407, i64 %indvars.iv1955, i32 3 %call3.i1295 = invoke noundef i32 @_ZN10aiMaterial17AddBinaryPropertyEPKvjPKcjj18aiPropertyTypeInfo(ptr noundef nonnull align 8 dereferenceable(16) %call643, ptr noundef nonnull %specular655, i32 noundef 12, ptr noundef nonnull @.str.22, i32 noundef 0, i32 noundef 0, i32 noundef 1) to label %invoke.cont656 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont656: ; preds = %invoke.cont653 - %ambient658 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %419, i64 %indvars.iv1999, i32 1 + %ambient658 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %407, i64 %indvars.iv1955, i32 1 %call3.i1297 = invoke noundef i32 @_ZN10aiMaterial17AddBinaryPropertyEPKvjPKcjj18aiPropertyTypeInfo(ptr noundef nonnull align 8 dereferenceable(16) %call643, ptr noundef nonnull %ambient658, i32 noundef 12, ptr noundef nonnull @.str.23, i32 noundef 0, i32 noundef 0, i32 noundef 1) to label %invoke.cont659 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont659: ; preds = %invoke.cont656 - %transparency661 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %419, i64 %indvars.iv1999, i32 4 + %transparency661 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %407, i64 %indvars.iv1955, i32 4 store float 1.600000e+01, ptr %transparency661, align 4 %call.i12991300 = invoke noundef i32 @_ZN10aiMaterial17AddBinaryPropertyEPKvjPKcjj18aiPropertyTypeInfo(ptr noundef nonnull align 8 dereferenceable(16) %call643, ptr noundef nonnull %transparency661, i32 noundef 4, ptr noundef nonnull @.str.24, i32 noundef 0, i32 noundef 0, i32 noundef 1) to label %invoke.cont663 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit @@ -3499,8 +3462,8 @@ invoke.cont663: ; preds = %invoke.cont659 to label %invoke.cont665 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont665: ; preds = %invoke.cont663 - %420 = load i32, ptr %add.ptr.i1293, align 4 - %tobool669.not = icmp eq i32 %420, 0 + %408 = load i32, ptr %add.ptr.i1293, align 4 + %tobool669.not = icmp eq i32 %408, 0 br i1 %tobool669.not, label %if.end674, label %if.then670 if.then670: ; preds = %invoke.cont665 @@ -3508,19 +3471,19 @@ if.then670: ; preds = %invoke.cont665 to label %if.end674 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit lpad644: ; preds = %invoke.cont642 - %421 = landingpad { ptr, i32 } + %409 = landingpad { ptr, i32 } cleanup - %422 = extractvalue { ptr, i32 } %421, 0 - %423 = extractvalue { ptr, i32 } %421, 1 + %410 = extractvalue { ptr, i32 } %409, 0 + %411 = extractvalue { ptr, i32 } %409, 1 call void @_ZdlPv(ptr noundef nonnull %call643) #20 br label %ehcleanup1034 if.end674: ; preds = %if.then670, %invoke.cont665 - %texIdx675 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %419, i64 %indvars.iv1999, i32 5 - %424 = load i32, ptr %texIdx675, align 4 - %425 = load i32, ptr %mNumTextures676, align 8 - %cmp677 = icmp ult i32 %424, %425 - %cmp680 = icmp ult i32 %real.01817, %425 + %texIdx675 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Material", ptr %407, i64 %indvars.iv1955, i32 5 + %412 = load i32, ptr %texIdx675, align 4 + %413 = load i32, ptr %mNumTextures676, align 8 + %cmp677 = icmp ult i32 %412, %413 + %cmp680 = icmp ult i32 %real.01791, %413 %or.cond299 = select i1 %cmp677, i1 true, i1 %cmp680 br i1 %or.cond299, label %if.then681, label %if.end699 @@ -3528,9 +3491,9 @@ if.then681: ; preds = %if.end674 %data683 = getelementptr inbounds %struct.aiString, ptr %add.ptr.i1293, i64 0, i32 1 store i8 42, ptr %data683, align 4 %arrayidx687 = getelementptr inbounds %struct.aiString, ptr %add.ptr.i1293, i64 0, i32 1, i64 1 - %426 = load i32, ptr %mNumTextures676, align 8 - %cmp690 = icmp ult i32 %424, %426 - %.real.0 = select i1 %cmp690, i32 %424, i32 %real.01817 + %414 = load i32, ptr %mNumTextures676, align 8 + %cmp690 = icmp ult i32 %412, %414 + %.real.0 = select i1 %cmp690, i32 %412, i32 %real.01791 %cmp.i1303 = icmp slt i32 %.real.0, 0 br i1 %cmp.i1303, label %if.then.i1306, label %while.body.i.preheader @@ -3554,8 +3517,8 @@ while.body.i: ; preds = %while.body.i.prehea %number.addr.120.i = phi i32 [ %number.addr.2.i, %if.end15.i ], [ %number.addr.120.i.ph, %while.body.i.preheader ] %div.i = sdiv i32 %number.addr.120.i, %cur.022.i %sub11.i.recomposed = srem i32 %number.addr.120.i, %cur.022.i - %427 = and i8 %mustPrint.023.i, 1 - %tobool.i = icmp ne i8 %427, 0 + %415 = and i8 %mustPrint.023.i, 1 + %tobool.i = icmp ne i8 %415, 0 %cmp3.i1305 = icmp ne i32 %div.i, 0 %or.cond.i = select i1 %tobool.i, i1 true, i1 %cmp3.i1305 %cmp5.i = icmp eq i32 %cur.022.i, 1 @@ -3563,8 +3526,8 @@ while.body.i: ; preds = %while.body.i.prehea br i1 %or.cond1.i, label %if.then6.i, label %if.end15.i if.then6.i: ; preds = %while.body.i - %428 = trunc i32 %div.i to i8 - %conv8.i = add i8 %428, 48 + %416 = trunc i32 %div.i to i8 + %conv8.i = add i8 %416, 48 %incdec.ptr9.i = getelementptr inbounds i8, ptr %out.addr.124.i, i64 1 store i8 %conv8.i, ptr %out.addr.124.i, align 1 %inc10.i = add nuw nsw i32 %written.121.i, 1 @@ -3590,32 +3553,32 @@ _ZN6Assimp13ASSIMP_itoa10EPcji.exit: ; preds = %if.then6.i, %if.end to label %if.end699 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit if.end699: ; preds = %if.end674, %_ZN6Assimp13ASSIMP_itoa10EPcji.exit - %429 = load ptr, ptr %_M_finish.i.i1291, align 8 - %430 = load ptr, ptr %arrayidx631, align 8 - %sub.ptr.lhs.cast.i1310 = ptrtoint ptr %429 to i64 - %sub.ptr.rhs.cast.i1311 = ptrtoint ptr %430 to i64 + %417 = load ptr, ptr %_M_finish.i.i1291, align 8 + %418 = load ptr, ptr %arrayidx631, align 8 + %sub.ptr.lhs.cast.i1310 = ptrtoint ptr %417 to i64 + %sub.ptr.rhs.cast.i1311 = ptrtoint ptr %418 to i64 %sub.ptr.sub.i1312 = sub i64 %sub.ptr.lhs.cast.i1310, %sub.ptr.rhs.cast.i1311 %sub.ptr.div.i1313 = ashr exact i64 %sub.ptr.sub.i1312, 3 %conv703 = trunc i64 %sub.ptr.div.i1313 to i32 store i32 %conv703, ptr %mNumFaces.i, align 8 %conv706 = and i64 %sub.ptr.div.i1313, 4294967295 - %431 = shl nuw nsw i64 %conv706, 4 - %432 = or disjoint i64 %431, 8 - %call708 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %432) #23 + %419 = shl nuw nsw i64 %conv706, 4 + %420 = or disjoint i64 %419, 8 + %call708 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %420) #23 to label %invoke.cont707 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont707: ; preds = %if.end699 store i64 %conv706, ptr %call708, align 16 - %433 = getelementptr inbounds i8, ptr %call708, i64 8 + %421 = getelementptr inbounds i8, ptr %call708, i64 8 %isempty709 = icmp eq i64 %conv706, 0 br i1 %isempty709, label %arrayctor.cont716, label %new.ctorloop710 new.ctorloop710: ; preds = %invoke.cont707 - %arrayctor.end711 = getelementptr inbounds %struct.aiFace, ptr %433, i64 %conv706 + %arrayctor.end711 = getelementptr inbounds %struct.aiFace, ptr %421, i64 %conv706 br label %arrayctor.loop712 arrayctor.loop712: ; preds = %arrayctor.loop712, %new.ctorloop710 - %arrayctor.cur713 = phi ptr [ %433, %new.ctorloop710 ], [ %arrayctor.next714, %arrayctor.loop712 ] + %arrayctor.cur713 = phi ptr [ %421, %new.ctorloop710 ], [ %arrayctor.next714, %arrayctor.loop712 ] store i32 0, ptr %arrayctor.cur713, align 8 %mIndices.i = getelementptr inbounds %struct.aiFace, ptr %arrayctor.cur713, i64 0, i32 1 store ptr null, ptr %mIndices.i, align 8 @@ -3625,95 +3588,95 @@ arrayctor.loop712: ; preds = %arrayctor.loop712, arrayctor.cont716: ; preds = %arrayctor.loop712, %invoke.cont707 %mFaces = getelementptr inbounds %struct.aiMesh, ptr %call637, i64 0, i32 10 - store ptr %433, ptr %mFaces, align 8 - %cmp.i1315.not1785 = icmp eq ptr %430, %429 - %.pre2016 = load i32, ptr %mNumVertices.i, align 4 - br i1 %cmp.i1315.not1785, label %for.end745, label %for.body731.lr.ph + store ptr %421, ptr %mFaces, align 8 + %cmp.i1315.not1759 = icmp eq ptr %418, %417 + %.pre1972 = load i32, ptr %mNumVertices.i, align 4 + br i1 %cmp.i1315.not1759, label %for.end745, label %for.body731.lr.ph for.body731.lr.ph: ; preds = %arrayctor.cont716 - %434 = load ptr, ptr %meshes, align 8 + %422 = load ptr, ptr %meshes, align 8 br label %for.body731 for.body731: ; preds = %for.body731.lr.ph, %for.body731 - %435 = phi i32 [ %.pre2016, %for.body731.lr.ph ], [ %add742, %for.body731 ] - %it717.sroa.0.01786 = phi ptr [ %430, %for.body731.lr.ph ], [ %incdec.ptr.i1323, %for.body731 ] - %436 = load i32, ptr %it717.sroa.0.01786, align 4 - %conv733 = zext i32 %436 to i64 - %faces735 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %434, i64 %conv733, i32 3 - %second = getelementptr inbounds %"struct.std::pair", ptr %it717.sroa.0.01786, i64 0, i32 1 - %437 = load i32, ptr %second, align 4 - %conv737 = zext i32 %437 to i64 - %438 = load ptr, ptr %faces735, align 8 - %add.ptr.i1317 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %438, i64 %conv737 + %423 = phi i32 [ %.pre1972, %for.body731.lr.ph ], [ %add742, %for.body731 ] + %it717.sroa.0.01760 = phi ptr [ %418, %for.body731.lr.ph ], [ %incdec.ptr.i1323, %for.body731 ] + %424 = load i32, ptr %it717.sroa.0.01760, align 4 + %conv733 = zext i32 %424 to i64 + %faces735 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %422, i64 %conv733, i32 3 + %second = getelementptr inbounds %"struct.std::pair", ptr %it717.sroa.0.01760, i64 0, i32 1 + %425 = load i32, ptr %second, align 4 + %conv737 = zext i32 %425 to i64 + %426 = load ptr, ptr %faces735, align 8 + %add.ptr.i1317 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %426, i64 %conv737 %_M_finish.i1318 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %add.ptr.i1317, i64 0, i32 1 - %439 = load ptr, ptr %_M_finish.i1318, align 8 - %440 = load ptr, ptr %add.ptr.i1317, align 8 - %sub.ptr.lhs.cast.i1319 = ptrtoint ptr %439 to i64 - %sub.ptr.rhs.cast.i1320 = ptrtoint ptr %440 to i64 + %427 = load ptr, ptr %_M_finish.i1318, align 8 + %428 = load ptr, ptr %add.ptr.i1317, align 8 + %sub.ptr.lhs.cast.i1319 = ptrtoint ptr %427 to i64 + %sub.ptr.rhs.cast.i1320 = ptrtoint ptr %428 to i64 %sub.ptr.sub.i1321 = sub i64 %sub.ptr.lhs.cast.i1319, %sub.ptr.rhs.cast.i1320 %sub.ptr.div.i1322 = lshr exact i64 %sub.ptr.sub.i1321, 2 %conv741 = trunc i64 %sub.ptr.div.i1322 to i32 - %add742 = add i32 %435, %conv741 + %add742 = add i32 %423, %conv741 store i32 %add742, ptr %mNumVertices.i, align 4 - %incdec.ptr.i1323 = getelementptr inbounds %"struct.std::pair", ptr %it717.sroa.0.01786, i64 1 - %cmp.i1315.not = icmp eq ptr %incdec.ptr.i1323, %429 + %incdec.ptr.i1323 = getelementptr inbounds %"struct.std::pair", ptr %it717.sroa.0.01760, i64 1 + %cmp.i1315.not = icmp eq ptr %incdec.ptr.i1323, %417 br i1 %cmp.i1315.not, label %for.end745, label %for.body731, !llvm.loop !52 for.end745: ; preds = %for.body731, %arrayctor.cont716 - %441 = phi i32 [ %.pre2016, %arrayctor.cont716 ], [ %add742, %for.body731 ] - %conv748 = zext i32 %441 to i64 - %442 = mul nuw nsw i64 %conv748, 12 - %call750 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %442) #23 + %429 = phi i32 [ %.pre1972, %arrayctor.cont716 ], [ %add742, %for.body731 ] + %conv748 = zext i32 %429 to i64 + %430 = mul nuw nsw i64 %conv748, 12 + %call750 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %430) #23 to label %invoke.cont749 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont749: ; preds = %for.end745 - %isempty751 = icmp eq i32 %441, 0 + %isempty751 = icmp eq i32 %429, 0 br i1 %isempty751, label %arrayctor.cont758, label %new.ctorloop752 new.ctorloop752: ; preds = %invoke.cont749 - %443 = add nsw i64 %442, -12 - %444 = urem i64 %443, 12 - %445 = sub nuw nsw i64 %443, %444 - %446 = add nsw i64 %445, 12 - call void @llvm.memset.p0.i64(ptr nonnull align 4 %call750, i8 0, i64 %446, i1 false) + %431 = add nsw i64 %430, -12 + %432 = urem i64 %431, 12 + %433 = sub nuw nsw i64 %431, %432 + %434 = add nsw i64 %433, 12 + call void @llvm.memset.p0.i64(ptr nonnull align 4 %call750, i8 0, i64 %434, i1 false) br label %arrayctor.cont758 arrayctor.cont758: ; preds = %new.ctorloop752, %invoke.cont749 store ptr %call750, ptr %mVertices.i, align 8 - %call762 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %442) #23 + %call762 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %430) #23 to label %invoke.cont761 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont761: ; preds = %arrayctor.cont758 br i1 %isempty751, label %arrayctor.cont770, label %new.ctorloop764 new.ctorloop764: ; preds = %invoke.cont761 - %447 = add nsw i64 %442, -12 - %448 = urem i64 %447, 12 - %449 = sub nuw nsw i64 %447, %448 - %450 = add nsw i64 %449, 12 - call void @llvm.memset.p0.i64(ptr nonnull align 4 %call762, i8 0, i64 %450, i1 false) + %435 = add nsw i64 %430, -12 + %436 = urem i64 %435, 12 + %437 = sub nuw nsw i64 %435, %436 + %438 = add nsw i64 %437, 12 + call void @llvm.memset.p0.i64(ptr nonnull align 4 %call762, i8 0, i64 %438, i1 false) br label %arrayctor.cont770 arrayctor.cont770: ; preds = %new.ctorloop764, %invoke.cont761 %mNormals = getelementptr inbounds %struct.aiMesh, ptr %call637, i64 0, i32 4 store ptr %call762, ptr %mNormals, align 8 - %451 = load i32, ptr %mNumTextures676, align 8 - %cmp773 = icmp ult i32 %real.01817, %451 + %439 = load i32, ptr %mNumTextures676, align 8 + %cmp773 = icmp ult i32 %real.01791, %439 br i1 %cmp773, label %if.then774, label %if.end789 if.then774: ; preds = %arrayctor.cont770 - %call778 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %442) #23 + %call778 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %430) #23 to label %invoke.cont777 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont777: ; preds = %if.then774 br i1 %isempty751, label %arrayctor.cont786, label %new.ctorloop780 new.ctorloop780: ; preds = %invoke.cont777 - %452 = add nsw i64 %442, -12 - %453 = urem i64 %452, 12 - %454 = sub nuw nsw i64 %452, %453 - %455 = add nsw i64 %454, 12 - call void @llvm.memset.p0.i64(ptr nonnull align 4 %call778, i8 0, i64 %455, i1 false) + %440 = add nsw i64 %430, -12 + %441 = urem i64 %440, 12 + %442 = sub nuw nsw i64 %440, %441 + %443 = add nsw i64 %442, 12 + call void @llvm.memset.p0.i64(ptr nonnull align 4 %call778, i8 0, i64 %443, i1 false) br label %arrayctor.cont786 arrayctor.cont786: ; preds = %new.ctorloop780, %invoke.cont777 @@ -3725,71 +3688,71 @@ arrayctor.cont786: ; preds = %new.ctorloop780, %i if.end789: ; preds = %arrayctor.cont786, %arrayctor.cont770 %uv771.0 = phi ptr [ %call778, %arrayctor.cont786 ], [ null, %arrayctor.cont770 ] - br i1 %cmp.i1315.not1785, label %for.end957, label %for.body804 + br i1 %cmp.i1315.not1759, label %for.end957, label %for.body804 for.body804: ; preds = %if.end789, %for.inc954 - %cnt.01807 = phi i32 [ %cnt.1.lcssa, %for.inc954 ], [ 0, %if.end789 ] - %uv771.11806 = phi ptr [ %uv771.2.lcssa, %for.inc954 ], [ %uv771.0, %if.end789 ] - %norms.01805 = phi ptr [ %norms.1.lcssa, %for.inc954 ], [ %call762, %if.end789 ] - %verts746.01804 = phi ptr [ %verts746.1.lcssa, %for.inc954 ], [ %call750, %if.end789 ] - %faces704.01803 = phi ptr [ %incdec.ptr956, %for.inc954 ], [ %433, %if.end789 ] - %it790.sroa.0.01802 = phi ptr [ %incdec.ptr.i1413, %for.inc954 ], [ %430, %if.end789 ] - %456 = load i32, ptr %it790.sroa.0.01802, align 4 - %conv807 = zext i32 %456 to i64 - %457 = load ptr, ptr %meshes, align 8 - %add.ptr.i1330 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %457, i64 %conv807 - %faces809 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %457, i64 %conv807, i32 3 - %second811 = getelementptr inbounds %"struct.std::pair", ptr %it790.sroa.0.01802, i64 0, i32 1 - %458 = load i32, ptr %second811, align 4 - %conv812 = zext i32 %458 to i64 - %459 = load ptr, ptr %faces809, align 8 - %add.ptr.i1331 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %459, i64 %conv812 + %cnt.01781 = phi i32 [ %cnt.1.lcssa, %for.inc954 ], [ 0, %if.end789 ] + %uv771.11780 = phi ptr [ %uv771.2.lcssa, %for.inc954 ], [ %uv771.0, %if.end789 ] + %norms.01779 = phi ptr [ %norms.1.lcssa, %for.inc954 ], [ %call762, %if.end789 ] + %verts746.01778 = phi ptr [ %verts746.1.lcssa, %for.inc954 ], [ %call750, %if.end789 ] + %faces704.01777 = phi ptr [ %incdec.ptr956, %for.inc954 ], [ %421, %if.end789 ] + %it790.sroa.0.01776 = phi ptr [ %incdec.ptr.i1413, %for.inc954 ], [ %418, %if.end789 ] + %444 = load i32, ptr %it790.sroa.0.01776, align 4 + %conv807 = zext i32 %444 to i64 + %445 = load ptr, ptr %meshes, align 8 + %add.ptr.i1330 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %445, i64 %conv807 + %faces809 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %445, i64 %conv807, i32 3 + %second811 = getelementptr inbounds %"struct.std::pair", ptr %it790.sroa.0.01776, i64 0, i32 1 + %446 = load i32, ptr %second811, align 4 + %conv812 = zext i32 %446 to i64 + %447 = load ptr, ptr %faces809, align 8 + %add.ptr.i1331 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %447, i64 %conv812 %_M_finish.i1332 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %add.ptr.i1331, i64 0, i32 1 - %460 = load ptr, ptr %_M_finish.i1332, align 8 - %461 = load ptr, ptr %add.ptr.i1331, align 8 - %sub.ptr.lhs.cast.i1333 = ptrtoint ptr %460 to i64 - %sub.ptr.rhs.cast.i1334 = ptrtoint ptr %461 to i64 + %448 = load ptr, ptr %_M_finish.i1332, align 8 + %449 = load ptr, ptr %add.ptr.i1331, align 8 + %sub.ptr.lhs.cast.i1333 = ptrtoint ptr %448 to i64 + %sub.ptr.rhs.cast.i1334 = ptrtoint ptr %449 to i64 %sub.ptr.sub.i1335 = sub i64 %sub.ptr.lhs.cast.i1333, %sub.ptr.rhs.cast.i1334 %sub.ptr.div.i1336 = lshr exact i64 %sub.ptr.sub.i1335, 2 %conv816 = trunc i64 %sub.ptr.div.i1336 to i32 - store i32 %conv816, ptr %faces704.01803, align 8 - %462 = and i64 %sub.ptr.sub.i1335, 17179869180 - %call820 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %462) #23 + store i32 %conv816, ptr %faces704.01777, align 8 + %450 = and i64 %sub.ptr.sub.i1335, 17179869180 + %call820 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %450) #23 to label %invoke.cont819 unwind label %lpad95.loopexit.split-lp.loopexit invoke.cont819: ; preds = %for.body804 - %mIndices = getelementptr inbounds %struct.aiFace, ptr %faces704.01803, i64 0, i32 1 + %mIndices = getelementptr inbounds %struct.aiFace, ptr %faces704.01777, i64 0, i32 1 store ptr %call820, ptr %mIndices, align 8 - %cmp8231787.not = icmp eq i32 %conv816, 0 - br i1 %cmp8231787.not, label %for.inc954, label %for.body824.lr.ph + %cmp8231761.not = icmp eq i32 %conv816, 0 + br i1 %cmp8231761.not, label %for.inc954, label %for.body824.lr.ph for.body824.lr.ph: ; preds = %invoke.cont819 %_M_finish.i1340 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %add.ptr.i1330, i64 0, i32 1 - %normals850 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %457, i64 %conv807, i32 1 + %normals850 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %445, i64 %conv807, i32 1 %_M_finish.i1349 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %normals850, i64 0, i32 1 - %uv898 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %457, i64 %conv807, i32 2 + %uv898 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %445, i64 %conv807, i32 2 %_M_finish.i1387 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %uv898, i64 0, i32 1 - %prevUVIdx902 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %457, i64 %conv807, i32 4 - %uvindices918 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %459, i64 %conv812, i32 1 + %prevUVIdx902 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %445, i64 %conv807, i32 4 + %uvindices918 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Face", ptr %447, i64 %conv812, i32 1 br label %for.body824 for.body824: ; preds = %for.body824.lr.ph, %if.end944 - %indvars.iv1997 = phi i64 [ 0, %for.body824.lr.ph ], [ %indvars.iv.next1998, %if.end944 ] - %fnOK.01795 = phi i8 [ 0, %for.body824.lr.ph ], [ %fnOK.2, %if.end944 ] - %cnt.11794 = phi i32 [ %cnt.01807, %for.body824.lr.ph ], [ %inc950, %if.end944 ] - %uv771.21792 = phi ptr [ %uv771.11806, %for.body824.lr.ph ], [ %uv771.3, %if.end944 ] - %norms.11791 = phi ptr [ %norms.01805, %for.body824.lr.ph ], [ %incdec.ptr951, %if.end944 ] - %verts746.11790 = phi ptr [ %verts746.01804, %for.body824.lr.ph ], [ %incdec.ptr952, %if.end944 ] - %faceNormal.sroa.0.21789 = phi <2 x float> [ zeroinitializer, %for.body824.lr.ph ], [ %faceNormal.sroa.0.4, %if.end944 ] - %faceNormal.sroa.4.01788 = phi float [ 0.000000e+00, %for.body824.lr.ph ], [ %faceNormal.sroa.4.2, %if.end944 ] - %463 = load ptr, ptr %add.ptr.i1331, align 8 - %add.ptr.i1339 = getelementptr inbounds i32, ptr %463, i64 %indvars.iv1997 - %464 = load i32, ptr %add.ptr.i1339, align 4 - %conv828 = zext i32 %464 to i64 - %465 = load ptr, ptr %_M_finish.i1340, align 8 - %466 = load ptr, ptr %add.ptr.i1330, align 8 - %sub.ptr.lhs.cast.i1341 = ptrtoint ptr %465 to i64 - %sub.ptr.rhs.cast.i1342 = ptrtoint ptr %466 to i64 + %indvars.iv1953 = phi i64 [ 0, %for.body824.lr.ph ], [ %indvars.iv.next1954, %if.end944 ] + %fnOK.01769 = phi i8 [ 0, %for.body824.lr.ph ], [ %fnOK.2, %if.end944 ] + %cnt.11768 = phi i32 [ %cnt.01781, %for.body824.lr.ph ], [ %inc950, %if.end944 ] + %uv771.21766 = phi ptr [ %uv771.11780, %for.body824.lr.ph ], [ %uv771.3, %if.end944 ] + %norms.11765 = phi ptr [ %norms.01779, %for.body824.lr.ph ], [ %incdec.ptr951, %if.end944 ] + %verts746.11764 = phi ptr [ %verts746.01778, %for.body824.lr.ph ], [ %incdec.ptr952, %if.end944 ] + %faceNormal.sroa.0.21763 = phi <2 x float> [ zeroinitializer, %for.body824.lr.ph ], [ %faceNormal.sroa.0.4, %if.end944 ] + %faceNormal.sroa.4.01762 = phi float [ 0.000000e+00, %for.body824.lr.ph ], [ %faceNormal.sroa.4.2, %if.end944 ] + %451 = load ptr, ptr %add.ptr.i1331, align 8 + %add.ptr.i1339 = getelementptr inbounds i32, ptr %451, i64 %indvars.iv1953 + %452 = load i32, ptr %add.ptr.i1339, align 4 + %conv828 = zext i32 %452 to i64 + %453 = load ptr, ptr %_M_finish.i1340, align 8 + %454 = load ptr, ptr %add.ptr.i1330, align 8 + %sub.ptr.lhs.cast.i1341 = ptrtoint ptr %453 to i64 + %sub.ptr.rhs.cast.i1342 = ptrtoint ptr %454 to i64 %sub.ptr.sub.i1343 = sub i64 %sub.ptr.lhs.cast.i1341, %sub.ptr.rhs.cast.i1342 %sub.ptr.div.i1344 = sdiv exact i64 %sub.ptr.sub.i1343, 12 %cmp831.not = icmp ugt i64 %sub.ptr.div.i1344, %conv828 @@ -3804,164 +3767,164 @@ invoke.cont833: ; preds = %if.then832 to label %invoke.cont835 unwind label %lpad95.loopexit invoke.cont835: ; preds = %invoke.cont833 - %467 = load ptr, ptr %add.ptr.i1331, align 8 - %add.ptr.i1345 = getelementptr inbounds i32, ptr %467, i64 %indvars.iv1997 + %455 = load ptr, ptr %add.ptr.i1331, align 8 + %add.ptr.i1345 = getelementptr inbounds i32, ptr %455, i64 %indvars.iv1953 store i32 0, ptr %add.ptr.i1345, align 4 - %.pre2017 = load ptr, ptr %add.ptr.i1331, align 8 - %add.ptr.i1346.phi.trans.insert = getelementptr inbounds i32, ptr %.pre2017, i64 %indvars.iv1997 - %.pre2018 = load i32, ptr %add.ptr.i1346.phi.trans.insert, align 4 - %.pre2019 = load ptr, ptr %add.ptr.i1330, align 8 - %.pre2025 = zext i32 %.pre2018 to i64 + %.pre1973 = load ptr, ptr %add.ptr.i1331, align 8 + %add.ptr.i1346.phi.trans.insert = getelementptr inbounds i32, ptr %.pre1973, i64 %indvars.iv1953 + %.pre1974 = load i32, ptr %add.ptr.i1346.phi.trans.insert, align 4 + %.pre1975 = load ptr, ptr %add.ptr.i1330, align 8 + %.pre1981 = zext i32 %.pre1974 to i64 br label %if.end839 if.end839: ; preds = %invoke.cont835, %for.body824 - %conv844.pre-phi = phi i64 [ %.pre2025, %invoke.cont835 ], [ %conv828, %for.body824 ] - %468 = phi ptr [ %.pre2019, %invoke.cont835 ], [ %466, %for.body824 ] - %add.ptr.i1347 = getelementptr inbounds %class.aiVector3t, ptr %468, i64 %conv844.pre-phi - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %verts746.11790, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i1347, i64 12, i1 false) - %469 = load ptr, ptr %add.ptr.i1331, align 8 - %add.ptr.i1348 = getelementptr inbounds i32, ptr %469, i64 %indvars.iv1997 - %470 = load i32, ptr %add.ptr.i1348, align 4 - %conv849 = zext i32 %470 to i64 - %471 = load ptr, ptr %_M_finish.i1349, align 8 - %472 = load ptr, ptr %normals850, align 8 - %sub.ptr.lhs.cast.i1350 = ptrtoint ptr %471 to i64 - %sub.ptr.rhs.cast.i1351 = ptrtoint ptr %472 to i64 + %conv844.pre-phi = phi i64 [ %.pre1981, %invoke.cont835 ], [ %conv828, %for.body824 ] + %456 = phi ptr [ %.pre1975, %invoke.cont835 ], [ %454, %for.body824 ] + %add.ptr.i1347 = getelementptr inbounds %class.aiVector3t, ptr %456, i64 %conv844.pre-phi + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %verts746.11764, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i1347, i64 12, i1 false) + %457 = load ptr, ptr %add.ptr.i1331, align 8 + %add.ptr.i1348 = getelementptr inbounds i32, ptr %457, i64 %indvars.iv1953 + %458 = load i32, ptr %add.ptr.i1348, align 4 + %conv849 = zext i32 %458 to i64 + %459 = load ptr, ptr %_M_finish.i1349, align 8 + %460 = load ptr, ptr %normals850, align 8 + %sub.ptr.lhs.cast.i1350 = ptrtoint ptr %459 to i64 + %sub.ptr.rhs.cast.i1351 = ptrtoint ptr %460 to i64 %sub.ptr.sub.i1352 = sub i64 %sub.ptr.lhs.cast.i1350, %sub.ptr.rhs.cast.i1351 %sub.ptr.div.i1353 = sdiv exact i64 %sub.ptr.sub.i1352, 12 %cmp852.not = icmp ugt i64 %sub.ptr.div.i1353, %conv849 br i1 %cmp852.not, label %if.else888, label %land.lhs.true853 land.lhs.true853: ; preds = %if.end839 - %473 = load i32, ptr %faces704.01803, align 8 - %cmp855 = icmp ugt i32 %473, 2 + %461 = load i32, ptr %faces704.01777, align 8 + %cmp855 = icmp ugt i32 %461, 2 br i1 %cmp855, label %if.then856, label %if.else888 if.then856: ; preds = %land.lhs.true853 - %474 = and i8 %fnOK.01795, 1 - %tobool857.not = icmp eq i8 %474, 0 + %462 = and i8 %fnOK.01769, 1 + %tobool857.not = icmp eq i8 %462, 0 br i1 %tobool857.not, label %invoke.cont879, label %if.end887 invoke.cont879: ; preds = %if.then856 - %475 = load i32, ptr %469, align 4 - %conv862 = zext i32 %475 to i64 - %476 = load ptr, ptr %add.ptr.i1330, align 8 - %add.ptr.i1354 = getelementptr inbounds %class.aiVector3t, ptr %476, i64 %conv862 - %add.ptr.i1355 = getelementptr inbounds i32, ptr %469, i64 1 - %477 = load i32, ptr %add.ptr.i1355, align 4 - %conv867 = zext i32 %477 to i64 - %add.ptr.i1356 = getelementptr inbounds %class.aiVector3t, ptr %476, i64 %conv867 - %478 = load ptr, ptr %_M_finish.i1332, align 8 - %sub.ptr.lhs.cast.i1358 = ptrtoint ptr %478 to i64 - %sub.ptr.rhs.cast.i1359 = ptrtoint ptr %469 to i64 + %463 = load i32, ptr %457, align 4 + %conv862 = zext i32 %463 to i64 + %464 = load ptr, ptr %add.ptr.i1330, align 8 + %add.ptr.i1354 = getelementptr inbounds %class.aiVector3t, ptr %464, i64 %conv862 + %add.ptr.i1355 = getelementptr inbounds i32, ptr %457, i64 1 + %465 = load i32, ptr %add.ptr.i1355, align 4 + %conv867 = zext i32 %465 to i64 + %add.ptr.i1356 = getelementptr inbounds %class.aiVector3t, ptr %464, i64 %conv867 + %466 = load ptr, ptr %_M_finish.i1332, align 8 + %sub.ptr.lhs.cast.i1358 = ptrtoint ptr %466 to i64 + %sub.ptr.rhs.cast.i1359 = ptrtoint ptr %457 to i64 %sub.ptr.sub.i1360 = sub i64 %sub.ptr.lhs.cast.i1358, %sub.ptr.rhs.cast.i1359 %sub.ptr.div.i1361 = ashr exact i64 %sub.ptr.sub.i1360, 2 - %479 = getelementptr %class.aiVector3t, ptr %476, i64 %sub.ptr.div.i1361 - %add.ptr.i1362 = getelementptr %class.aiVector3t, ptr %479, i64 -1 - %480 = load float, ptr %add.ptr.i1356, align 4 - %481 = load float, ptr %add.ptr.i1354, align 4 - %sub.i1363 = fsub float %480, %481 - %y.i1364 = getelementptr inbounds %class.aiVector3t, ptr %476, i64 %conv867, i32 1 - %y2.i = getelementptr inbounds %class.aiVector3t, ptr %476, i64 %conv862, i32 1 - %482 = load <2 x float>, ptr %y.i1364, align 4 - %483 = load <2 x float>, ptr %y2.i, align 4 - %484 = fsub <2 x float> %482, %483 - %485 = load <2 x float>, ptr %add.ptr.i1362, align 4 - %486 = shufflevector <2 x float> %483, <2 x float> poison, <2 x i32> - %487 = insertelement <2 x float> %486, float %481, i64 0 - %488 = fsub <2 x float> %485, %487 - %z.i1370 = getelementptr %class.aiVector3t, ptr %479, i64 -1, i32 2 - %489 = load float, ptr %z.i1370, align 4 - %490 = extractelement <2 x float> %483, i64 1 - %sub5.i1372 = fsub float %489, %490 - %491 = fmul <2 x float> %488, %488 - %mul4.i.i.i = extractelement <2 x float> %491, i64 1 - %492 = extractelement <2 x float> %488, i64 0 - %493 = call float @llvm.fmuladd.f32(float %492, float %492, float %mul4.i.i.i) - %494 = call noundef float @llvm.fmuladd.f32(float %sub5.i1372, float %sub5.i1372, float %493) - %sqrt.i.i = call noundef float @llvm.sqrt.f32(float %494) + %467 = getelementptr %class.aiVector3t, ptr %464, i64 %sub.ptr.div.i1361 + %add.ptr.i1362 = getelementptr %class.aiVector3t, ptr %467, i64 -1 + %468 = load float, ptr %add.ptr.i1356, align 4 + %469 = load float, ptr %add.ptr.i1354, align 4 + %sub.i1363 = fsub float %468, %469 + %y.i1364 = getelementptr inbounds %class.aiVector3t, ptr %464, i64 %conv867, i32 1 + %y2.i = getelementptr inbounds %class.aiVector3t, ptr %464, i64 %conv862, i32 1 + %470 = load <2 x float>, ptr %y.i1364, align 4 + %471 = load <2 x float>, ptr %y2.i, align 4 + %472 = fsub <2 x float> %470, %471 + %473 = load <2 x float>, ptr %add.ptr.i1362, align 4 + %474 = shufflevector <2 x float> %471, <2 x float> poison, <2 x i32> + %475 = insertelement <2 x float> %474, float %469, i64 0 + %476 = fsub <2 x float> %473, %475 + %z.i1370 = getelementptr %class.aiVector3t, ptr %467, i64 -1, i32 2 + %477 = load float, ptr %z.i1370, align 4 + %478 = extractelement <2 x float> %471, i64 1 + %sub5.i1372 = fsub float %477, %478 + %479 = fmul <2 x float> %476, %476 + %mul4.i.i.i = extractelement <2 x float> %479, i64 1 + %480 = extractelement <2 x float> %476, i64 0 + %481 = call float @llvm.fmuladd.f32(float %480, float %480, float %mul4.i.i.i) + %482 = call noundef float @llvm.fmuladd.f32(float %sub5.i1372, float %sub5.i1372, float %481) + %sqrt.i.i = call noundef float @llvm.sqrt.f32(float %482) %cmp.i1377 = fcmp oeq float %sqrt.i.i, 0.000000e+00 %div.i.i = fdiv float 1.000000e+00, %sqrt.i.i - %495 = insertelement <2 x float> poison, float %div.i.i, i64 0 - %496 = shufflevector <2 x float> %495, <2 x float> poison, <2 x i32> zeroinitializer - %497 = fmul <2 x float> %488, %496 + %483 = insertelement <2 x float> poison, float %div.i.i, i64 0 + %484 = shufflevector <2 x float> %483, <2 x float> poison, <2 x i32> zeroinitializer + %485 = fmul <2 x float> %476, %484 %mul3.i.i = fmul float %sub5.i1372, %div.i.i %ref.tmp878.sroa.7.0 = select i1 %cmp.i1377, float %sub5.i1372, float %mul3.i.i - %ref.tmp878.sroa.0.0 = select i1 %cmp.i1377, <2 x float> %488, <2 x float> %497 + %ref.tmp878.sroa.0.0 = select i1 %cmp.i1377, <2 x float> %476, <2 x float> %485 %ref.tmp878.sroa.0.4.vec.extract1530 = extractelement <2 x float> %ref.tmp878.sroa.0.0, i64 1 - %498 = shufflevector <2 x float> %484, <2 x float> poison, <2 x i32> - %499 = insertelement <2 x float> %498, float %sub.i1363, i64 1 - %500 = fneg <2 x float> %499 + %486 = shufflevector <2 x float> %472, <2 x float> poison, <2 x i32> + %487 = insertelement <2 x float> %486, float %sub.i1363, i64 1 + %488 = fneg <2 x float> %487 %ref.tmp878.sroa.0.0.vec.extract1527 = extractelement <2 x float> %ref.tmp878.sroa.0.0, i64 0 - %501 = shufflevector <2 x float> %ref.tmp878.sroa.0.0, <2 x float> poison, <2 x i32> - %502 = insertelement <2 x float> %501, float %ref.tmp878.sroa.7.0, i64 1 - %503 = fmul <2 x float> %502, %500 - %504 = insertelement <2 x float> %501, float %ref.tmp878.sroa.7.0, i64 0 - %505 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %484, <2 x float> %504, <2 x float> %503) - %506 = extractelement <2 x float> %484, i64 0 - %507 = fneg float %506 - %neg14.i = fmul float %ref.tmp878.sroa.0.0.vec.extract1527, %507 - %508 = call float @llvm.fmuladd.f32(float %sub.i1363, float %ref.tmp878.sroa.0.4.vec.extract1530, float %neg14.i) + %489 = shufflevector <2 x float> %ref.tmp878.sroa.0.0, <2 x float> poison, <2 x i32> + %490 = insertelement <2 x float> %489, float %ref.tmp878.sroa.7.0, i64 1 + %491 = fmul <2 x float> %490, %488 + %492 = insertelement <2 x float> %489, float %ref.tmp878.sroa.7.0, i64 0 + %493 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %472, <2 x float> %492, <2 x float> %491) + %494 = extractelement <2 x float> %472, i64 0 + %495 = fneg float %494 + %neg14.i = fmul float %ref.tmp878.sroa.0.0.vec.extract1527, %495 + %496 = call float @llvm.fmuladd.f32(float %sub.i1363, float %ref.tmp878.sroa.0.4.vec.extract1530, float %neg14.i) br label %if.end887 if.end887: ; preds = %invoke.cont879, %if.then856 - %faceNormal.sroa.4.1 = phi float [ %508, %invoke.cont879 ], [ %faceNormal.sroa.4.01788, %if.then856 ] - %faceNormal.sroa.0.3 = phi <2 x float> [ %505, %invoke.cont879 ], [ %faceNormal.sroa.0.21789, %if.then856 ] - %fnOK.1 = phi i8 [ 1, %invoke.cont879 ], [ %fnOK.01795, %if.then856 ] - store <2 x float> %faceNormal.sroa.0.3, ptr %norms.11791, align 4 - %faceNormal.sroa.4.0.norms.1.sroa_idx = getelementptr inbounds i8, ptr %norms.11791, i64 8 + %faceNormal.sroa.4.1 = phi float [ %496, %invoke.cont879 ], [ %faceNormal.sroa.4.01762, %if.then856 ] + %faceNormal.sroa.0.3 = phi <2 x float> [ %493, %invoke.cont879 ], [ %faceNormal.sroa.0.21763, %if.then856 ] + %fnOK.1 = phi i8 [ 1, %invoke.cont879 ], [ %fnOK.01769, %if.then856 ] + store <2 x float> %faceNormal.sroa.0.3, ptr %norms.11765, align 4 + %faceNormal.sroa.4.0.norms.1.sroa_idx = getelementptr inbounds i8, ptr %norms.11765, i64 8 store float %faceNormal.sroa.4.1, ptr %faceNormal.sroa.4.0.norms.1.sroa_idx, align 4 br label %if.end895 if.else888: ; preds = %land.lhs.true853, %if.end839 - %add.ptr.i1386 = getelementptr inbounds %class.aiVector3t, ptr %472, i64 %conv849 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %norms.11791, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i1386, i64 12, i1 false) + %add.ptr.i1386 = getelementptr inbounds %class.aiVector3t, ptr %460, i64 %conv849 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %norms.11765, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i1386, i64 12, i1 false) br label %if.end895 if.end895: ; preds = %if.else888, %if.end887 - %faceNormal.sroa.4.2 = phi float [ %faceNormal.sroa.4.01788, %if.else888 ], [ %faceNormal.sroa.4.1, %if.end887 ] - %faceNormal.sroa.0.4 = phi <2 x float> [ %faceNormal.sroa.0.21789, %if.else888 ], [ %faceNormal.sroa.0.3, %if.end887 ] - %fnOK.2 = phi i8 [ %fnOK.01795, %if.else888 ], [ %fnOK.1, %if.end887 ] - %tobool896.not = icmp eq ptr %uv771.21792, null + %faceNormal.sroa.4.2 = phi float [ %faceNormal.sroa.4.01762, %if.else888 ], [ %faceNormal.sroa.4.1, %if.end887 ] + %faceNormal.sroa.0.4 = phi <2 x float> [ %faceNormal.sroa.0.21763, %if.else888 ], [ %faceNormal.sroa.0.3, %if.end887 ] + %fnOK.2 = phi i8 [ %fnOK.01769, %if.else888 ], [ %fnOK.1, %if.end887 ] + %tobool896.not = icmp eq ptr %uv771.21766, null br i1 %tobool896.not, label %if.end944, label %land.lhs.true897 land.lhs.true897: ; preds = %if.end895 - %509 = load ptr, ptr %_M_finish.i1387, align 8 - %510 = load ptr, ptr %uv898, align 8 - %sub.ptr.lhs.cast.i1388 = ptrtoint ptr %509 to i64 - %sub.ptr.rhs.cast.i1389 = ptrtoint ptr %510 to i64 + %497 = load ptr, ptr %_M_finish.i1387, align 8 + %498 = load ptr, ptr %uv898, align 8 + %sub.ptr.lhs.cast.i1388 = ptrtoint ptr %497 to i64 + %sub.ptr.rhs.cast.i1389 = ptrtoint ptr %498 to i64 %sub.ptr.sub.i1390 = sub i64 %sub.ptr.lhs.cast.i1388, %sub.ptr.rhs.cast.i1389 %sub.ptr.div.i1391 = sdiv exact i64 %sub.ptr.sub.i1390, 12 - %tobool900.not = icmp eq ptr %509, %510 + %tobool900.not = icmp eq ptr %497, %498 br i1 %tobool900.not, label %if.end944, label %if.then901 if.then901: ; preds = %land.lhs.true897 - %511 = load i32, ptr %prevUVIdx902, align 8 - %cmp903.not = icmp eq i32 %511, -1 + %499 = load i32, ptr %prevUVIdx902, align 8 + %cmp903.not = icmp eq i32 %499, -1 br i1 %cmp903.not, label %if.else917, label %land.lhs.true904 land.lhs.true904: ; preds = %if.then901 - %512 = load ptr, ptr %_M_finish.i1340, align 8 - %513 = load ptr, ptr %add.ptr.i1330, align 8 - %sub.ptr.lhs.cast.i1398 = ptrtoint ptr %512 to i64 - %sub.ptr.rhs.cast.i1399 = ptrtoint ptr %513 to i64 + %500 = load ptr, ptr %_M_finish.i1340, align 8 + %501 = load ptr, ptr %add.ptr.i1330, align 8 + %sub.ptr.lhs.cast.i1398 = ptrtoint ptr %500 to i64 + %sub.ptr.rhs.cast.i1399 = ptrtoint ptr %501 to i64 %sub.ptr.sub.i1400 = sub i64 %sub.ptr.lhs.cast.i1398, %sub.ptr.rhs.cast.i1399 %cmp909.not = icmp ult i64 %sub.ptr.sub.i1390, %sub.ptr.sub.i1400 br i1 %cmp909.not, label %if.else917, label %if.then910 if.then910: ; preds = %land.lhs.true904 - %514 = load ptr, ptr %add.ptr.i1331, align 8 - %add.ptr.i1402 = getelementptr inbounds i32, ptr %514, i64 %indvars.iv1997 - %515 = load i32, ptr %add.ptr.i1402, align 4 - %conv915 = zext i32 %515 to i64 - %add.ptr.i1403 = getelementptr inbounds %class.aiVector3t, ptr %510, i64 %conv915 + %502 = load ptr, ptr %add.ptr.i1331, align 8 + %add.ptr.i1402 = getelementptr inbounds i32, ptr %502, i64 %indvars.iv1953 + %503 = load i32, ptr %add.ptr.i1402, align 4 + %conv915 = zext i32 %503 to i64 + %add.ptr.i1403 = getelementptr inbounds %class.aiVector3t, ptr %498, i64 %conv915 br label %if.end939 if.else917: ; preds = %land.lhs.true904, %if.then901 - %516 = load ptr, ptr %uvindices918, align 8 - %add.ptr.i1404 = getelementptr inbounds i32, ptr %516, i64 %indvars.iv1997 - %517 = load i32, ptr %add.ptr.i1404, align 4 - %conv921 = zext i32 %517 to i64 + %504 = load ptr, ptr %uvindices918, align 8 + %add.ptr.i1404 = getelementptr inbounds i32, ptr %504, i64 %indvars.iv1953 + %505 = load i32, ptr %add.ptr.i1404, align 4 + %conv921 = zext i32 %505 to i64 %cmp924.not = icmp ugt i64 %sub.ptr.div.i1391, %conv921 br i1 %cmp924.not, label %if.end932, label %if.then925 @@ -3974,95 +3937,95 @@ invoke.cont926: ; preds = %if.then925 to label %invoke.cont928 unwind label %lpad95.loopexit invoke.cont928: ; preds = %invoke.cont926 - %518 = load ptr, ptr %uvindices918, align 8 - %add.ptr.i1410 = getelementptr inbounds i32, ptr %518, i64 %indvars.iv1997 + %506 = load ptr, ptr %uvindices918, align 8 + %add.ptr.i1410 = getelementptr inbounds i32, ptr %506, i64 %indvars.iv1953 store i32 0, ptr %add.ptr.i1410, align 4 - %.pre2020 = load ptr, ptr %uvindices918, align 8 - %add.ptr.i1411.phi.trans.insert = getelementptr inbounds i32, ptr %.pre2020, i64 %indvars.iv1997 - %.pre2021 = load i32, ptr %add.ptr.i1411.phi.trans.insert, align 4 - %.pre2022 = load ptr, ptr %uv898, align 8 - %.pre2026 = zext i32 %.pre2021 to i64 + %.pre1976 = load ptr, ptr %uvindices918, align 8 + %add.ptr.i1411.phi.trans.insert = getelementptr inbounds i32, ptr %.pre1976, i64 %indvars.iv1953 + %.pre1977 = load i32, ptr %add.ptr.i1411.phi.trans.insert, align 4 + %.pre1978 = load ptr, ptr %uv898, align 8 + %.pre1982 = zext i32 %.pre1977 to i64 br label %if.end932 if.end932: ; preds = %invoke.cont928, %if.else917 - %conv937.pre-phi = phi i64 [ %.pre2026, %invoke.cont928 ], [ %conv921, %if.else917 ] - %519 = phi ptr [ %.pre2022, %invoke.cont928 ], [ %510, %if.else917 ] - %add.ptr.i1412 = getelementptr inbounds %class.aiVector3t, ptr %519, i64 %conv937.pre-phi + %conv937.pre-phi = phi i64 [ %.pre1982, %invoke.cont928 ], [ %conv921, %if.else917 ] + %507 = phi ptr [ %.pre1978, %invoke.cont928 ], [ %498, %if.else917 ] + %add.ptr.i1412 = getelementptr inbounds %class.aiVector3t, ptr %507, i64 %conv937.pre-phi br label %if.end939 if.end939: ; preds = %if.end932, %if.then910 %add.ptr.i1412.sink = phi ptr [ %add.ptr.i1412, %if.end932 ], [ %add.ptr.i1403, %if.then910 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %uv771.21792, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i1412.sink, i64 12, i1 false) - %y940 = getelementptr inbounds %class.aiVector3t, ptr %uv771.21792, i64 0, i32 1 - %520 = load float, ptr %y940, align 4 - %sub941 = fsub float 1.000000e+00, %520 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %uv771.21766, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i1412.sink, i64 12, i1 false) + %y940 = getelementptr inbounds %class.aiVector3t, ptr %uv771.21766, i64 0, i32 1 + %508 = load float, ptr %y940, align 4 + %sub941 = fsub float 1.000000e+00, %508 store float %sub941, ptr %y940, align 4 - %incdec.ptr943 = getelementptr inbounds %class.aiVector3t, ptr %uv771.21792, i64 1 + %incdec.ptr943 = getelementptr inbounds %class.aiVector3t, ptr %uv771.21766, i64 1 br label %if.end944 if.end944: ; preds = %if.end939, %land.lhs.true897, %if.end895 - %uv771.3 = phi ptr [ %incdec.ptr943, %if.end939 ], [ %uv771.21792, %land.lhs.true897 ], [ null, %if.end895 ] - %521 = load ptr, ptr %mIndices, align 8 - %arrayidx947 = getelementptr inbounds i32, ptr %521, i64 %indvars.iv1997 - store i32 %cnt.11794, ptr %arrayidx947, align 4 - %indvars.iv.next1998 = add nuw nsw i64 %indvars.iv1997, 1 - %inc950 = add i32 %cnt.11794, 1 - %incdec.ptr951 = getelementptr inbounds %class.aiVector3t, ptr %norms.11791, i64 1 - %incdec.ptr952 = getelementptr inbounds %class.aiVector3t, ptr %verts746.11790, i64 1 - %522 = load i32, ptr %faces704.01803, align 8 - %523 = zext i32 %522 to i64 - %cmp823 = icmp ult i64 %indvars.iv.next1998, %523 + %uv771.3 = phi ptr [ %incdec.ptr943, %if.end939 ], [ %uv771.21766, %land.lhs.true897 ], [ null, %if.end895 ] + %509 = load ptr, ptr %mIndices, align 8 + %arrayidx947 = getelementptr inbounds i32, ptr %509, i64 %indvars.iv1953 + store i32 %cnt.11768, ptr %arrayidx947, align 4 + %indvars.iv.next1954 = add nuw nsw i64 %indvars.iv1953, 1 + %inc950 = add i32 %cnt.11768, 1 + %incdec.ptr951 = getelementptr inbounds %class.aiVector3t, ptr %norms.11765, i64 1 + %incdec.ptr952 = getelementptr inbounds %class.aiVector3t, ptr %verts746.11764, i64 1 + %510 = load i32, ptr %faces704.01777, align 8 + %511 = zext i32 %510 to i64 + %cmp823 = icmp ult i64 %indvars.iv.next1954, %511 br i1 %cmp823, label %for.body824, label %for.inc954, !llvm.loop !53 for.inc954: ; preds = %if.end944, %invoke.cont819 - %verts746.1.lcssa = phi ptr [ %verts746.01804, %invoke.cont819 ], [ %incdec.ptr952, %if.end944 ] - %norms.1.lcssa = phi ptr [ %norms.01805, %invoke.cont819 ], [ %incdec.ptr951, %if.end944 ] - %uv771.2.lcssa = phi ptr [ %uv771.11806, %invoke.cont819 ], [ %uv771.3, %if.end944 ] - %cnt.1.lcssa = phi i32 [ %cnt.01807, %invoke.cont819 ], [ %inc950, %if.end944 ] - %incdec.ptr.i1413 = getelementptr inbounds %"struct.std::pair", ptr %it790.sroa.0.01802, i64 1 - %incdec.ptr956 = getelementptr inbounds %struct.aiFace, ptr %faces704.01803, i64 1 - %cmp.i1329.not = icmp eq ptr %incdec.ptr.i1413, %429 + %verts746.1.lcssa = phi ptr [ %verts746.01778, %invoke.cont819 ], [ %incdec.ptr952, %if.end944 ] + %norms.1.lcssa = phi ptr [ %norms.01779, %invoke.cont819 ], [ %incdec.ptr951, %if.end944 ] + %uv771.2.lcssa = phi ptr [ %uv771.11780, %invoke.cont819 ], [ %uv771.3, %if.end944 ] + %cnt.1.lcssa = phi i32 [ %cnt.01781, %invoke.cont819 ], [ %inc950, %if.end944 ] + %incdec.ptr.i1413 = getelementptr inbounds %"struct.std::pair", ptr %it790.sroa.0.01776, i64 1 + %incdec.ptr956 = getelementptr inbounds %struct.aiFace, ptr %faces704.01777, i64 1 + %cmp.i1329.not = icmp eq ptr %incdec.ptr.i1413, %417 br i1 %cmp.i1329.not, label %for.end957, label %for.body804, !llvm.loop !54 for.end957: ; preds = %for.inc954, %if.end789 - %inc958 = add i32 %real.01817, 1 - %.pre2023 = load ptr, ptr %_M_finish.i.i1217, align 8 - %.pre2024 = load ptr, ptr %materials, align 8 + %inc958 = add i32 %real.01791, 1 + %.pre1979 = load ptr, ptr %_M_finish.i.i1217, align 8 + %.pre1980 = load ptr, ptr %materials, align 8 br label %for.inc959 for.inc959: ; preds = %for.body629, %for.end957 - %524 = phi ptr [ %413, %for.body629 ], [ %.pre2024, %for.end957 ] - %525 = phi ptr [ %414, %for.body629 ], [ %.pre2023, %for.end957 ] - %real.1 = phi i32 [ %real.01817, %for.body629 ], [ %inc958, %for.end957 ] - %indvars.iv.next2000 = add nuw nsw i64 %indvars.iv1999, 1 - %sub.ptr.lhs.cast.i1287 = ptrtoint ptr %525 to i64 - %sub.ptr.rhs.cast.i1288 = ptrtoint ptr %524 to i64 + %512 = phi ptr [ %401, %for.body629 ], [ %.pre1980, %for.end957 ] + %513 = phi ptr [ %402, %for.body629 ], [ %.pre1979, %for.end957 ] + %real.1 = phi i32 [ %real.01791, %for.body629 ], [ %inc958, %for.end957 ] + %indvars.iv.next1956 = add nuw nsw i64 %indvars.iv1955, 1 + %sub.ptr.lhs.cast.i1287 = ptrtoint ptr %513 to i64 + %sub.ptr.rhs.cast.i1288 = ptrtoint ptr %512 to i64 %sub.ptr.sub.i1289 = sub i64 %sub.ptr.lhs.cast.i1287, %sub.ptr.rhs.cast.i1288 %sub.ptr.div.i1290 = sdiv exact i64 %sub.ptr.sub.i1289, 1072 - %526 = and i64 %sub.ptr.div.i1290, 4294967295 - %cmp628 = icmp ult i64 %indvars.iv.next2000, %526 + %514 = and i64 %sub.ptr.div.i1290, 4294967295 + %cmp628 = icmp ult i64 %indvars.iv.next1956, %514 br i1 %cmp628, label %for.body629, label %delete.notnull, !llvm.loop !55 delete.notnull: ; preds = %for.inc959, %invoke.cont622 - %527 = load i64, ptr %call562, align 8 - %arraydestroy.isempty = icmp eq i64 %527, 0 + %515 = load i64, ptr %call562, align 8 + %arraydestroy.isempty = icmp eq i64 %515, 0 br i1 %arraydestroy.isempty, label %arraydestroy.done962, label %arraydestroy.body.preheader arraydestroy.body.preheader: ; preds = %delete.notnull - %delete.end.idx = mul nsw i64 %527, 24 - %528 = getelementptr i8, ptr %call562, i64 %delete.end.idx - %delete.end.ptr = getelementptr i8, ptr %528, i64 8 + %delete.end.idx = mul nsw i64 %515, 24 + %516 = getelementptr i8, ptr %call562, i64 %delete.end.idx + %delete.end.ptr = getelementptr i8, ptr %516, i64 8 br label %arraydestroy.body arraydestroy.body: ; preds = %arraydestroy.body.preheader, %_ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit %arraydestroy.elementPast = phi ptr [ %arraydestroy.element, %_ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit ], [ %delete.end.ptr, %arraydestroy.body.preheader ] %arraydestroy.element = getelementptr inbounds %"class.std::vector.29", ptr %arraydestroy.elementPast, i64 -1 - %529 = load ptr, ptr %arraydestroy.element, align 8 - %tobool.not.i.i.i1415 = icmp eq ptr %529, null + %517 = load ptr, ptr %arraydestroy.element, align 8 + %tobool.not.i.i.i1415 = icmp eq ptr %517, null br i1 %tobool.not.i.i.i1415, label %_ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit, label %if.then.i.i.i1416 if.then.i.i.i1416: ; preds = %arraydestroy.body - call void @_ZdlPv(ptr noundef nonnull %529) #20 + call void @_ZdlPv(ptr noundef nonnull %517) #20 br label %_ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit _ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit: ; preds = %arraydestroy.body, %if.then.i.i.i1416 @@ -4071,60 +4034,60 @@ _ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit: ; preds = %arraydestroy.body, arraydestroy.done962: ; preds = %_ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit, %delete.notnull call void @_ZdaPv(ptr noundef nonnull %call562) #20 - %530 = load i32, ptr %mNumMeshes615, align 8 - %531 = load ptr, ptr %mRootNode, align 8 - %mNumMeshes966 = getelementptr inbounds %struct.aiNode, ptr %531, i64 0, i32 5 - store i32 %530, ptr %mNumMeshes966, align 8 - %conv968 = zext i32 %530 to i64 - %532 = shl nuw nsw i64 %conv968, 2 - %call970 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %532) #23 + %518 = load i32, ptr %mNumMeshes615, align 8 + %519 = load ptr, ptr %mRootNode, align 8 + %mNumMeshes966 = getelementptr inbounds %struct.aiNode, ptr %519, i64 0, i32 5 + store i32 %518, ptr %mNumMeshes966, align 8 + %conv968 = zext i32 %518 to i64 + %520 = shl nuw nsw i64 %conv968, 2 + %call970 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %520) #23 to label %invoke.cont969 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont969: ; preds = %arraydestroy.done962 - %533 = load ptr, ptr %mRootNode, align 8 - %mMeshes972 = getelementptr inbounds %struct.aiNode, ptr %533, i64 0, i32 6 + %521 = load ptr, ptr %mRootNode, align 8 + %mMeshes972 = getelementptr inbounds %struct.aiNode, ptr %521, i64 0, i32 6 store ptr %call970, ptr %mMeshes972, align 8 - %534 = load i32, ptr %mNumMeshes615, align 8 - %cmp9761818.not = icmp eq i32 %534, 0 - br i1 %cmp9761818.not, label %for.end984, label %for.body977 + %522 = load i32, ptr %mNumMeshes615, align 8 + %cmp9761792.not = icmp eq i32 %522, 0 + br i1 %cmp9761792.not, label %for.end984, label %for.body977 for.body977: ; preds = %invoke.cont969, %for.body977 - %indvars.iv2002 = phi i64 [ %indvars.iv.next2003, %for.body977 ], [ 0, %invoke.cont969 ] - %535 = load ptr, ptr %mRootNode, align 8 - %mMeshes979 = getelementptr inbounds %struct.aiNode, ptr %535, i64 0, i32 6 - %536 = load ptr, ptr %mMeshes979, align 8 - %arrayidx981 = getelementptr inbounds i32, ptr %536, i64 %indvars.iv2002 - %537 = trunc i64 %indvars.iv2002 to i32 - store i32 %537, ptr %arrayidx981, align 4 - %indvars.iv.next2003 = add nuw nsw i64 %indvars.iv2002, 1 - %538 = load i32, ptr %mNumMeshes615, align 8 - %539 = zext i32 %538 to i64 - %cmp976 = icmp ult i64 %indvars.iv.next2003, %539 + %indvars.iv1958 = phi i64 [ %indvars.iv.next1959, %for.body977 ], [ 0, %invoke.cont969 ] + %523 = load ptr, ptr %mRootNode, align 8 + %mMeshes979 = getelementptr inbounds %struct.aiNode, ptr %523, i64 0, i32 6 + %524 = load ptr, ptr %mMeshes979, align 8 + %arrayidx981 = getelementptr inbounds i32, ptr %524, i64 %indvars.iv1958 + %525 = trunc i64 %indvars.iv1958 to i32 + store i32 %525, ptr %arrayidx981, align 4 + %indvars.iv.next1959 = add nuw nsw i64 %indvars.iv1958, 1 + %526 = load i32, ptr %mNumMeshes615, align 8 + %527 = zext i32 %526 to i64 + %cmp976 = icmp ult i64 %indvars.iv.next1959, %527 br i1 %cmp976, label %for.body977, label %for.end984, !llvm.loop !56 for.end984: ; preds = %for.body977, %invoke.cont969 %mNumLights985 = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 10 - %540 = load i32, ptr %mNumLights985, align 8 + %528 = load i32, ptr %mNumLights985, align 8 %mNumCameras986 = getelementptr inbounds %struct.aiScene, ptr %pScene, i64 0, i32 12 - %541 = load i32, ptr %mNumCameras986, align 8 - %add987 = add i32 %541, %540 - %542 = load ptr, ptr %mRootNode, align 8 - %mNumChildren = getelementptr inbounds %struct.aiNode, ptr %542, i64 0, i32 3 + %529 = load i32, ptr %mNumCameras986, align 8 + %add987 = add i32 %529, %528 + %530 = load ptr, ptr %mRootNode, align 8 + %mNumChildren = getelementptr inbounds %struct.aiNode, ptr %530, i64 0, i32 3 store i32 %add987, ptr %mNumChildren, align 8 - %543 = load ptr, ptr %mRootNode, align 8 - %mNumChildren990 = getelementptr inbounds %struct.aiNode, ptr %543, i64 0, i32 3 - %544 = load i32, ptr %mNumChildren990, align 8 - %tobool991.not = icmp eq i32 %544, 0 + %531 = load ptr, ptr %mRootNode, align 8 + %mNumChildren990 = getelementptr inbounds %struct.aiNode, ptr %531, i64 0, i32 3 + %532 = load i32, ptr %mNumChildren990, align 8 + %tobool991.not = icmp eq i32 %532, 0 br i1 %tobool991.not, label %if.end1033, label %if.then992 if.then992: ; preds = %for.end984 - %conv995 = zext i32 %544 to i64 - %545 = shl nuw nsw i64 %conv995, 3 - %call997 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %545) #23 + %conv995 = zext i32 %532 to i64 + %533 = shl nuw nsw i64 %conv995, 3 + %call997 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %533) #23 to label %invoke.cont996 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont996: ; preds = %if.then992 - %mChildren = getelementptr inbounds %struct.aiNode, ptr %543, i64 0, i32 4 + %mChildren = getelementptr inbounds %struct.aiNode, ptr %531, i64 0, i32 4 store ptr %call997, ptr %mChildren, align 8 %call1000 = invoke noalias noundef nonnull dereferenceable(1144) ptr @_Znwm(i64 noundef 1144) #23 to label %invoke.cont999 unwind label %lpad95.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -4134,19 +4097,19 @@ invoke.cont999: ; preds = %invoke.cont996 to label %invoke.cont1002 unwind label %lpad1001 invoke.cont1002: ; preds = %invoke.cont999 - %546 = load ptr, ptr %mRootNode, align 8 - %mChildren1005 = getelementptr inbounds %struct.aiNode, ptr %546, i64 0, i32 4 - %547 = load ptr, ptr %mChildren1005, align 8 - store ptr %call1000, ptr %547, align 8 - %548 = load ptr, ptr %mRootNode, align 8 + %534 = load ptr, ptr %mRootNode, align 8 + %mChildren1005 = getelementptr inbounds %struct.aiNode, ptr %534, i64 0, i32 4 + %535 = load ptr, ptr %mChildren1005, align 8 + store ptr %call1000, ptr %535, align 8 + %536 = load ptr, ptr %mRootNode, align 8 %mParent = getelementptr inbounds %struct.aiNode, ptr %call1000, i64 0, i32 2 - store ptr %548, ptr %mParent, align 8 + store ptr %536, ptr %mParent, align 8 store i32 8, ptr %call1000, align 4 %data.i1420 = getelementptr inbounds %struct.aiString, ptr %call1000, i64 0, i32 1 store i64 8388068007926313809, ptr %data.i1420, align 4 %arrayidx.i1422 = getelementptr inbounds %struct.aiString, ptr %call1000, i64 0, i32 1, i64 8 store i8 0, ptr %arrayidx.i1422, align 1 - %mTransformation1011 = getelementptr inbounds %struct.aiNode, ptr %548, i64 0, i32 1 + %mTransformation1011 = getelementptr inbounds %struct.aiNode, ptr %536, i64 0, i32 1 %mTransformation1012 = getelementptr inbounds %struct.aiNode, ptr %call1000, i64 0, i32 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %mTransformation1012, ptr noundef nonnull align 4 dereferenceable(64) %mTransformation1011, i64 64, i1 false) %call1015 = invoke noundef nonnull align 4 dereferenceable(64) ptr @_ZN12aiMatrix4x4tIfE7InverseEv(ptr noundef nonnull align 4 dereferenceable(64) %mTransformation1012) @@ -4161,54 +4124,54 @@ invoke.cont1016: ; preds = %invoke.cont1014 to label %invoke.cont1019 unwind label %lpad1018 invoke.cont1019: ; preds = %invoke.cont1016 - %549 = load ptr, ptr %mRootNode, align 8 - %mChildren1022 = getelementptr inbounds %struct.aiNode, ptr %549, i64 0, i32 4 - %550 = load ptr, ptr %mChildren1022, align 8 - %arrayidx1023 = getelementptr inbounds ptr, ptr %550, i64 1 + %537 = load ptr, ptr %mRootNode, align 8 + %mChildren1022 = getelementptr inbounds %struct.aiNode, ptr %537, i64 0, i32 4 + %538 = load ptr, ptr %mChildren1022, align 8 + %arrayidx1023 = getelementptr inbounds ptr, ptr %538, i64 1 store ptr %call1017, ptr %arrayidx1023, align 8 - %551 = load ptr, ptr %mRootNode, align 8 + %539 = load ptr, ptr %mRootNode, align 8 %mParent1025 = getelementptr inbounds %struct.aiNode, ptr %call1017, i64 0, i32 2 - store ptr %551, ptr %mParent1025, align 8 + store ptr %539, ptr %mParent1025, align 8 store i32 9, ptr %call1017, align 4 %data.i1426 = getelementptr inbounds %struct.aiString, ptr %call1017, i64 0, i32 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(9) %data.i1426, ptr noundef nonnull align 1 dereferenceable(9) @.str.15, i64 9, i1 false) %arrayidx.i1428 = getelementptr inbounds %struct.aiString, ptr %call1017, i64 0, i32 1, i64 9 store i8 0, ptr %arrayidx.i1428, align 1 - %mChildren1029 = getelementptr inbounds %struct.aiNode, ptr %551, i64 0, i32 4 - %552 = load ptr, ptr %mChildren1029, align 8 - %553 = load ptr, ptr %552, align 8 - %mTransformation1031 = getelementptr inbounds %struct.aiNode, ptr %553, i64 0, i32 1 + %mChildren1029 = getelementptr inbounds %struct.aiNode, ptr %539, i64 0, i32 4 + %540 = load ptr, ptr %mChildren1029, align 8 + %541 = load ptr, ptr %540, align 8 + %mTransformation1031 = getelementptr inbounds %struct.aiNode, ptr %541, i64 0, i32 1 %mTransformation1032 = getelementptr inbounds %struct.aiNode, ptr %call1017, i64 0, i32 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %mTransformation1032, ptr noundef nonnull align 4 dereferenceable(64) %mTransformation1031, i64 64, i1 false) br label %if.end1033 lpad1001: ; preds = %invoke.cont999 - %554 = landingpad { ptr, i32 } + %542 = landingpad { ptr, i32 } cleanup - %555 = extractvalue { ptr, i32 } %554, 0 - %556 = extractvalue { ptr, i32 } %554, 1 + %543 = extractvalue { ptr, i32 } %542, 0 + %544 = extractvalue { ptr, i32 } %542, 1 call void @_ZdlPv(ptr noundef nonnull %call1000) #20 br label %ehcleanup1034 lpad1018: ; preds = %invoke.cont1016 - %557 = landingpad { ptr, i32 } + %545 = landingpad { ptr, i32 } cleanup - %558 = extractvalue { ptr, i32 } %557, 0 - %559 = extractvalue { ptr, i32 } %557, 1 + %546 = extractvalue { ptr, i32 } %545, 0 + %547 = extractvalue { ptr, i32 } %545, 1 call void @_ZdlPv(ptr noundef nonnull %call1017) #20 br label %ehcleanup1034 if.end1033: ; preds = %invoke.cont1019, %for.end984 - %560 = load ptr, ptr %meshes, align 8 - %561 = load ptr, ptr %_M_finish.i.i1215, align 8 - %cmp.not3.i.i.i.i = icmp eq ptr %560, %561 + %548 = load ptr, ptr %meshes, align 8 + %549 = load ptr, ptr %_M_finish.i.i1215, align 8 + %cmp.not3.i.i.i.i = icmp eq ptr %548, %549 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i1433, label %for.body.i.i.i.i1430 for.body.i.i.i.i1430: ; preds = %if.end1033, %for.body.i.i.i.i1430 - %__first.addr.04.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i1431, %for.body.i.i.i.i1430 ], [ %560, %if.end1033 ] + %__first.addr.04.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i1431, %for.body.i.i.i.i1430 ], [ %548, %if.end1033 ] call void @_ZN6Assimp11Q3DImporter4MeshD2Ev(ptr noundef nonnull align 8 dereferenceable(100) %__first.addr.04.i.i.i.i) #19 %incdec.ptr.i.i.i.i1431 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %__first.addr.04.i.i.i.i, i64 1 - %cmp.not.i.i.i.i1432 = icmp eq ptr %incdec.ptr.i.i.i.i1431, %561 + %cmp.not.i.i.i.i1432 = icmp eq ptr %incdec.ptr.i.i.i.i1431, %549 br i1 %cmp.not.i.i.i.i1432, label %invoke.contthread-pre-split.i, label %for.body.i.i.i.i1430, !llvm.loop !57 invoke.contthread-pre-split.i: ; preds = %for.body.i.i.i.i1430 @@ -4216,124 +4179,124 @@ invoke.contthread-pre-split.i: ; preds = %for.body.i.i.i.i143 br label %invoke.cont.i1433 invoke.cont.i1433: ; preds = %invoke.contthread-pre-split.i, %if.end1033 - %562 = phi ptr [ %.pr.i, %invoke.contthread-pre-split.i ], [ %560, %if.end1033 ] - %tobool.not.i.i.i1434 = icmp eq ptr %562, null + %550 = phi ptr [ %.pr.i, %invoke.contthread-pre-split.i ], [ %548, %if.end1033 ] + %tobool.not.i.i.i1434 = icmp eq ptr %550, null br i1 %tobool.not.i.i.i1434, label %_ZNSt6vectorIN6Assimp11Q3DImporter4MeshESaIS2_EED2Ev.exit, label %if.then.i.i.i1435 if.then.i.i.i1435: ; preds = %invoke.cont.i1433 - call void @_ZdlPv(ptr noundef nonnull %562) #20 + call void @_ZdlPv(ptr noundef nonnull %550) #20 br label %_ZNSt6vectorIN6Assimp11Q3DImporter4MeshESaIS2_EED2Ev.exit _ZNSt6vectorIN6Assimp11Q3DImporter4MeshESaIS2_EED2Ev.exit: ; preds = %invoke.cont.i1433, %if.then.i.i.i1435 - %563 = load ptr, ptr %materials, align 8 - %tobool.not.i.i.i1437 = icmp eq ptr %563, null + %551 = load ptr, ptr %materials, align 8 + %tobool.not.i.i.i1437 = icmp eq ptr %551, null br i1 %tobool.not.i.i.i1437, label %_ZNSt6vectorIN6Assimp11Q3DImporter8MaterialESaIS2_EED2Ev.exit, label %if.then.i.i.i1438 if.then.i.i.i1438: ; preds = %_ZNSt6vectorIN6Assimp11Q3DImporter4MeshESaIS2_EED2Ev.exit - call void @_ZdlPv(ptr noundef nonnull %563) #20 + call void @_ZdlPv(ptr noundef nonnull %551) #20 br label %_ZNSt6vectorIN6Assimp11Q3DImporter8MaterialESaIS2_EED2Ev.exit _ZNSt6vectorIN6Assimp11Q3DImporter8MaterialESaIS2_EED2Ev.exit: ; preds = %_ZNSt6vectorIN6Assimp11Q3DImporter4MeshESaIS2_EED2Ev.exit, %if.then.i.i.i1438 %mBuffer.i = getelementptr inbounds %"class.Assimp::StreamReader", ptr %stream, i64 0, i32 1 - %564 = load ptr, ptr %mBuffer.i, align 8 - %isnull.i = icmp eq ptr %564, null + %552 = load ptr, ptr %mBuffer.i, align 8 + %isnull.i = icmp eq ptr %552, null br i1 %isnull.i, label %delete.end.i, label %delete.notnull.i delete.notnull.i: ; preds = %_ZNSt6vectorIN6Assimp11Q3DImporter8MaterialESaIS2_EED2Ev.exit - call void @_ZdaPv(ptr noundef nonnull %564) #20 + call void @_ZdaPv(ptr noundef nonnull %552) #20 br label %delete.end.i delete.end.i: ; preds = %delete.notnull.i, %_ZNSt6vectorIN6Assimp11Q3DImporter8MaterialESaIS2_EED2Ev.exit %_M_refcount.i.i.i = getelementptr inbounds %"class.std::__shared_ptr", ptr %stream, i64 0, i32 1 - %565 = load ptr, ptr %_M_refcount.i.i.i, align 8 - %cmp.not.i.i.i.i1439 = icmp eq ptr %565, null + %553 = load ptr, ptr %_M_refcount.i.i.i, align 8 + %cmp.not.i.i.i.i1439 = icmp eq ptr %553, null br i1 %cmp.not.i.i.i.i1439, label %_ZN6Assimp12StreamReaderILb0ELb0EED2Ev.exit, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %delete.end.i - %_M_use_count.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %565, i64 0, i32 1 - %566 = load atomic i64, ptr %_M_use_count.i.i.i.i.i acquire, align 8 - %cmp.i.i.i.i.i = icmp eq i64 %566, 4294967297 - %567 = trunc i64 %566 to i32 + %_M_use_count.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %553, i64 0, i32 1 + %554 = load atomic i64, ptr %_M_use_count.i.i.i.i.i acquire, align 8 + %cmp.i.i.i.i.i = icmp eq i64 %554, 4294967297 + %555 = trunc i64 %554 to i32 br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i.i, label %if.end.i.i.i.i.i if.then.i.i.i.i.i: ; preds = %if.then.i.i.i.i store i32 0, ptr %_M_use_count.i.i.i.i.i, align 8 - %_M_weak_count.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %565, i64 0, i32 2 + %_M_weak_count.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %553, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i.i, align 4 - %vtable.i.i.i.i.i = load ptr, ptr %565, align 8 + %vtable.i.i.i.i.i = load ptr, ptr %553, align 8 %vfn.i.i.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i, i64 2 - %568 = load ptr, ptr %vfn.i.i.i.i.i, align 8 - call void %568(ptr noundef nonnull align 8 dereferenceable(16) %565) #19 + %556 = load ptr, ptr %vfn.i.i.i.i.i, align 8 + call void %556(ptr noundef nonnull align 8 dereferenceable(16) %553) #19 br label %if.end8.sink.split.i.i.i.i.i if.end.i.i.i.i.i: ; preds = %if.then.i.i.i.i - %569 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i.i = icmp eq i8 %569, 0 + %557 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i.i = icmp eq i8 %557, 0 br i1 %tobool.i.not.i.i.i.i.i, label %if.else.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i - %add.i.i.i.i.i.i = add nsw i32 %567, -1 + %add.i.i.i.i.i.i = add nsw i32 %555, -1 store i32 %add.i.i.i.i.i.i, ptr %_M_use_count.i.i.i.i.i, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i - %570 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i, i32 -1 acq_rel, align 4 + %558 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %retval.i.0.i.i.i.i.i = phi i32 [ %567, %if.then.i.i.i.i.i.i ], [ %570, %if.else.i.i.i.i.i.i ] + %retval.i.0.i.i.i.i.i = phi i32 [ %555, %if.then.i.i.i.i.i.i ], [ %558, %if.else.i.i.i.i.i.i ] %cmp6.i.i.i.i.i = icmp eq i32 %retval.i.0.i.i.i.i.i, 1 br i1 %cmp6.i.i.i.i.i, label %if.then7.i.i.i.i.i, label %_ZN6Assimp12StreamReaderILb0ELb0EED2Ev.exit if.then7.i.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i - %vtable.i.i.i.i.i.i.i = load ptr, ptr %565, align 8 + %vtable.i.i.i.i.i.i.i = load ptr, ptr %553, align 8 %vfn.i.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i.i, i64 2 - %571 = load ptr, ptr %vfn.i.i.i.i.i.i.i, align 8 - call void %571(ptr noundef nonnull align 8 dereferenceable(16) %565) #19 - %_M_weak_count.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %565, i64 0, i32 2 - %572 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i.i.i.i = icmp eq i8 %572, 0 + %559 = load ptr, ptr %vfn.i.i.i.i.i.i.i, align 8 + call void %559(ptr noundef nonnull align 8 dereferenceable(16) %553) #19 + %_M_weak_count.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %553, i64 0, i32 2 + %560 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i.i.i.i = icmp eq i8 %560, 0 br i1 %tobool.i.not.i.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i: ; preds = %if.then7.i.i.i.i.i - %573 = load i32, ptr %_M_weak_count.i.i.i.i.i.i.i, align 4 - %add.i.i.i.i.i.i.i.i = add nsw i32 %573, -1 + %561 = load i32, ptr %_M_weak_count.i.i.i.i.i.i.i, align 4 + %add.i.i.i.i.i.i.i.i = add nsw i32 %561, -1 store i32 %add.i.i.i.i.i.i.i.i, ptr %_M_weak_count.i.i.i.i.i.i.i, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i if.else.i.i.i.i.i.i.i.i: ; preds = %if.then7.i.i.i.i.i - %574 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i.i, i32 -1 acq_rel, align 4 + %562 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i.i, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i - %retval.i.0.i.i.i.i.i.i.i = phi i32 [ %573, %if.then.i.i.i.i.i.i.i.i ], [ %574, %if.else.i.i.i.i.i.i.i.i ] + %retval.i.0.i.i.i.i.i.i.i = phi i32 [ %561, %if.then.i.i.i.i.i.i.i.i ], [ %562, %if.else.i.i.i.i.i.i.i.i ] %cmp.i.i.i.i.i.i.i = icmp eq i32 %retval.i.0.i.i.i.i.i.i.i, 1 br i1 %cmp.i.i.i.i.i.i.i, label %if.end8.sink.split.i.i.i.i.i, label %_ZN6Assimp12StreamReaderILb0ELb0EED2Ev.exit if.end8.sink.split.i.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i, %if.then.i.i.i.i.i - %vtable2.i.i.i.i.i.i.i = load ptr, ptr %565, align 8 + %vtable2.i.i.i.i.i.i.i = load ptr, ptr %553, align 8 %vfn3.i.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i.i, i64 3 - %575 = load ptr, ptr %vfn3.i.i.i.i.i.i.i, align 8 - call void %575(ptr noundef nonnull align 8 dereferenceable(16) %565) #19 + %563 = load ptr, ptr %vfn3.i.i.i.i.i.i.i, align 8 + call void %563(ptr noundef nonnull align 8 dereferenceable(16) %553) #19 br label %_ZN6Assimp12StreamReaderILb0ELb0EED2Ev.exit _ZN6Assimp12StreamReaderILb0ELb0EED2Ev.exit: ; preds = %delete.end.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i, %if.end8.sink.split.i.i.i.i.i ret void ehcleanup1034: ; preds = %ehcleanup92, %lpad1018, %lpad1001, %lpad644, %lpad544, %lpad537, %lpad416, %lpad166, %lpad146, %lpad119, %lpad98, %lpad95.body, %lpad77 - %ehselector.slot.5 = phi i32 [ %52, %lpad95.body ], [ %369, %lpad544 ], [ %423, %lpad644 ], [ %559, %lpad1018 ], [ %556, %lpad1001 ], [ %362, %lpad537 ], [ %298, %lpad416 ], [ %125, %lpad166 ], [ %100, %lpad146 ], [ %72, %lpad119 ], [ %55, %lpad98 ], [ %ehselector.slot.4, %ehcleanup92 ], [ %43, %lpad77 ] - %exn.slot.5 = phi ptr [ %51, %lpad95.body ], [ %368, %lpad544 ], [ %422, %lpad644 ], [ %558, %lpad1018 ], [ %555, %lpad1001 ], [ %361, %lpad537 ], [ %297, %lpad416 ], [ %124, %lpad166 ], [ %99, %lpad146 ], [ %71, %lpad119 ], [ %54, %lpad98 ], [ %exn.slot.4, %ehcleanup92 ], [ %42, %lpad77 ] - %576 = load ptr, ptr %meshes, align 8 + %ehselector.slot.5 = phi i32 [ %52, %lpad95.body ], [ %357, %lpad544 ], [ %411, %lpad644 ], [ %547, %lpad1018 ], [ %544, %lpad1001 ], [ %350, %lpad537 ], [ %298, %lpad416 ], [ %125, %lpad166 ], [ %100, %lpad146 ], [ %72, %lpad119 ], [ %55, %lpad98 ], [ %ehselector.slot.4, %ehcleanup92 ], [ %43, %lpad77 ] + %exn.slot.5 = phi ptr [ %51, %lpad95.body ], [ %356, %lpad544 ], [ %410, %lpad644 ], [ %546, %lpad1018 ], [ %543, %lpad1001 ], [ %349, %lpad537 ], [ %297, %lpad416 ], [ %124, %lpad166 ], [ %99, %lpad146 ], [ %71, %lpad119 ], [ %54, %lpad98 ], [ %exn.slot.4, %ehcleanup92 ], [ %42, %lpad77 ] + %564 = load ptr, ptr %meshes, align 8 %_M_finish.i1440 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %meshes, i64 0, i32 1 - %577 = load ptr, ptr %_M_finish.i1440, align 8 - %cmp.not3.i.i.i.i1441 = icmp eq ptr %576, %577 + %565 = load ptr, ptr %_M_finish.i1440, align 8 + %cmp.not3.i.i.i.i1441 = icmp eq ptr %564, %565 br i1 %cmp.not3.i.i.i.i1441, label %invoke.cont.i1448, label %for.body.i.i.i.i1442 for.body.i.i.i.i1442: ; preds = %ehcleanup1034, %for.body.i.i.i.i1442 - %__first.addr.04.i.i.i.i1443 = phi ptr [ %incdec.ptr.i.i.i.i1444, %for.body.i.i.i.i1442 ], [ %576, %ehcleanup1034 ] + %__first.addr.04.i.i.i.i1443 = phi ptr [ %incdec.ptr.i.i.i.i1444, %for.body.i.i.i.i1442 ], [ %564, %ehcleanup1034 ] call void @_ZN6Assimp11Q3DImporter4MeshD2Ev(ptr noundef nonnull align 8 dereferenceable(100) %__first.addr.04.i.i.i.i1443) #19 %incdec.ptr.i.i.i.i1444 = getelementptr inbounds %"struct.Assimp::Q3DImporter::Mesh", ptr %__first.addr.04.i.i.i.i1443, i64 1 - %cmp.not.i.i.i.i1445 = icmp eq ptr %incdec.ptr.i.i.i.i1444, %577 + %cmp.not.i.i.i.i1445 = icmp eq ptr %incdec.ptr.i.i.i.i1444, %565 br i1 %cmp.not.i.i.i.i1445, label %invoke.contthread-pre-split.i1446, label %for.body.i.i.i.i1442, !llvm.loop !57 invoke.contthread-pre-split.i1446: ; preds = %for.body.i.i.i.i1442 @@ -4341,109 +4304,109 @@ invoke.contthread-pre-split.i1446: ; preds = %for.body.i.i.i.i144 br label %invoke.cont.i1448 invoke.cont.i1448: ; preds = %invoke.contthread-pre-split.i1446, %ehcleanup1034 - %578 = phi ptr [ %.pr.i1447, %invoke.contthread-pre-split.i1446 ], [ %576, %ehcleanup1034 ] - %tobool.not.i.i.i1449 = icmp eq ptr %578, null + %566 = phi ptr [ %.pr.i1447, %invoke.contthread-pre-split.i1446 ], [ %564, %ehcleanup1034 ] + %tobool.not.i.i.i1449 = icmp eq ptr %566, null br i1 %tobool.not.i.i.i1449, label %ehcleanup1035, label %if.then.i.i.i1450 if.then.i.i.i1450: ; preds = %invoke.cont.i1448 - call void @_ZdlPv(ptr noundef nonnull %578) #20 + call void @_ZdlPv(ptr noundef nonnull %566) #20 br label %ehcleanup1035 ehcleanup1035: ; preds = %if.then.i.i.i1450, %invoke.cont.i1448, %ehcleanup74, %lpad64 %ehselector.slot.6 = phi i32 [ %ehselector.slot.3, %ehcleanup74 ], [ %36, %lpad64 ], [ %ehselector.slot.5, %invoke.cont.i1448 ], [ %ehselector.slot.5, %if.then.i.i.i1450 ] %exn.slot.6 = phi ptr [ %exn.slot.3, %ehcleanup74 ], [ %35, %lpad64 ], [ %exn.slot.5, %invoke.cont.i1448 ], [ %exn.slot.5, %if.then.i.i.i1450 ] - %579 = load ptr, ptr %materials, align 8 - %tobool.not.i.i.i1453 = icmp eq ptr %579, null + %567 = load ptr, ptr %materials, align 8 + %tobool.not.i.i.i1453 = icmp eq ptr %567, null br i1 %tobool.not.i.i.i1453, label %ehcleanup1036, label %if.then.i.i.i1454 if.then.i.i.i1454: ; preds = %ehcleanup1035 - call void @_ZdlPv(ptr noundef nonnull %579) #20 + call void @_ZdlPv(ptr noundef nonnull %567) #20 br label %ehcleanup1036 ehcleanup1036: ; preds = %if.then.i.i.i1454, %ehcleanup1035, %ehcleanup37, %cleanup.action, %ehcleanup50, %lpad13, %lpad8.body %ehselector.slot.7 = phi i32 [ %11, %lpad8.body ], [ %14, %lpad13 ], [ %ehselector.slot.11555, %cleanup.action ], [ %ehselector.slot.1, %ehcleanup37 ], [ %ehselector.slot.2, %ehcleanup50 ], [ %ehselector.slot.6, %ehcleanup1035 ], [ %ehselector.slot.6, %if.then.i.i.i1454 ] %exn.slot.7 = phi ptr [ %10, %lpad8.body ], [ %13, %lpad13 ], [ %exn.slot.11554, %cleanup.action ], [ %exn.slot.1, %ehcleanup37 ], [ %exn.slot.2, %ehcleanup50 ], [ %exn.slot.6, %ehcleanup1035 ], [ %exn.slot.6, %if.then.i.i.i1454 ] %mBuffer.i1456 = getelementptr inbounds %"class.Assimp::StreamReader", ptr %stream, i64 0, i32 1 - %580 = load ptr, ptr %mBuffer.i1456, align 8 - %isnull.i1457 = icmp eq ptr %580, null + %568 = load ptr, ptr %mBuffer.i1456, align 8 + %isnull.i1457 = icmp eq ptr %568, null br i1 %isnull.i1457, label %delete.end.i1459, label %delete.notnull.i1458 delete.notnull.i1458: ; preds = %ehcleanup1036 - call void @_ZdaPv(ptr noundef nonnull %580) #20 + call void @_ZdaPv(ptr noundef nonnull %568) #20 br label %delete.end.i1459 delete.end.i1459: ; preds = %delete.notnull.i1458, %ehcleanup1036 %_M_refcount.i.i.i1460 = getelementptr inbounds %"class.std::__shared_ptr", ptr %stream, i64 0, i32 1 - %581 = load ptr, ptr %_M_refcount.i.i.i1460, align 8 - %cmp.not.i.i.i.i1461 = icmp eq ptr %581, null + %569 = load ptr, ptr %_M_refcount.i.i.i1460, align 8 + %cmp.not.i.i.i.i1461 = icmp eq ptr %569, null br i1 %cmp.not.i.i.i.i1461, label %eh.resume, label %if.then.i.i.i.i1462 if.then.i.i.i.i1462: ; preds = %delete.end.i1459 - %_M_use_count.i.i.i.i.i1463 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %581, i64 0, i32 1 - %582 = load atomic i64, ptr %_M_use_count.i.i.i.i.i1463 acquire, align 8 - %cmp.i.i.i.i.i1464 = icmp eq i64 %582, 4294967297 - %583 = trunc i64 %582 to i32 + %_M_use_count.i.i.i.i.i1463 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %569, i64 0, i32 1 + %570 = load atomic i64, ptr %_M_use_count.i.i.i.i.i1463 acquire, align 8 + %cmp.i.i.i.i.i1464 = icmp eq i64 %570, 4294967297 + %571 = trunc i64 %570 to i32 br i1 %cmp.i.i.i.i.i1464, label %if.then.i.i.i.i.i1487, label %if.end.i.i.i.i.i1465 if.then.i.i.i.i.i1487: ; preds = %if.then.i.i.i.i1462 store i32 0, ptr %_M_use_count.i.i.i.i.i1463, align 8 - %_M_weak_count.i.i.i.i.i1488 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %581, i64 0, i32 2 + %_M_weak_count.i.i.i.i.i1488 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %569, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i.i1488, align 4 - %vtable.i.i.i.i.i1489 = load ptr, ptr %581, align 8 + %vtable.i.i.i.i.i1489 = load ptr, ptr %569, align 8 %vfn.i.i.i.i.i1490 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i1489, i64 2 - %584 = load ptr, ptr %vfn.i.i.i.i.i1490, align 8 - call void %584(ptr noundef nonnull align 8 dereferenceable(16) %581) #19 + %572 = load ptr, ptr %vfn.i.i.i.i.i1490, align 8 + call void %572(ptr noundef nonnull align 8 dereferenceable(16) %569) #19 br label %if.end8.sink.split.i.i.i.i.i1482 if.end.i.i.i.i.i1465: ; preds = %if.then.i.i.i.i1462 - %585 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i.i1466 = icmp eq i8 %585, 0 + %573 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i.i1466 = icmp eq i8 %573, 0 br i1 %tobool.i.not.i.i.i.i.i1466, label %if.else.i.i.i.i.i.i1486, label %if.then.i.i.i.i.i.i1467 if.then.i.i.i.i.i.i1467: ; preds = %if.end.i.i.i.i.i1465 - %add.i.i.i.i.i.i1468 = add nsw i32 %583, -1 + %add.i.i.i.i.i.i1468 = add nsw i32 %571, -1 store i32 %add.i.i.i.i.i.i1468, ptr %_M_use_count.i.i.i.i.i1463, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i1469 if.else.i.i.i.i.i.i1486: ; preds = %if.end.i.i.i.i.i1465 - %586 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i1463, i32 -1 acq_rel, align 4 + %574 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i1463, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i1469 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i1469: ; preds = %if.else.i.i.i.i.i.i1486, %if.then.i.i.i.i.i.i1467 - %retval.i.0.i.i.i.i.i1470 = phi i32 [ %583, %if.then.i.i.i.i.i.i1467 ], [ %586, %if.else.i.i.i.i.i.i1486 ] + %retval.i.0.i.i.i.i.i1470 = phi i32 [ %571, %if.then.i.i.i.i.i.i1467 ], [ %574, %if.else.i.i.i.i.i.i1486 ] %cmp6.i.i.i.i.i1471 = icmp eq i32 %retval.i.0.i.i.i.i.i1470, 1 br i1 %cmp6.i.i.i.i.i1471, label %if.then7.i.i.i.i.i1472, label %eh.resume if.then7.i.i.i.i.i1472: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i1469 - %vtable.i.i.i.i.i.i.i1473 = load ptr, ptr %581, align 8 + %vtable.i.i.i.i.i.i.i1473 = load ptr, ptr %569, align 8 %vfn.i.i.i.i.i.i.i1474 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i.i1473, i64 2 - %587 = load ptr, ptr %vfn.i.i.i.i.i.i.i1474, align 8 - call void %587(ptr noundef nonnull align 8 dereferenceable(16) %581) #19 - %_M_weak_count.i.i.i.i.i.i.i1475 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %581, i64 0, i32 2 - %588 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i.i.i.i1476 = icmp eq i8 %588, 0 + %575 = load ptr, ptr %vfn.i.i.i.i.i.i.i1474, align 8 + call void %575(ptr noundef nonnull align 8 dereferenceable(16) %569) #19 + %_M_weak_count.i.i.i.i.i.i.i1475 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %569, i64 0, i32 2 + %576 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i.i.i.i1476 = icmp eq i8 %576, 0 br i1 %tobool.i.not.i.i.i.i.i.i.i1476, label %if.else.i.i.i.i.i.i.i.i1485, label %if.then.i.i.i.i.i.i.i.i1477 if.then.i.i.i.i.i.i.i.i1477: ; preds = %if.then7.i.i.i.i.i1472 - %589 = load i32, ptr %_M_weak_count.i.i.i.i.i.i.i1475, align 4 - %add.i.i.i.i.i.i.i.i1478 = add nsw i32 %589, -1 + %577 = load i32, ptr %_M_weak_count.i.i.i.i.i.i.i1475, align 4 + %add.i.i.i.i.i.i.i.i1478 = add nsw i32 %577, -1 store i32 %add.i.i.i.i.i.i.i.i1478, ptr %_M_weak_count.i.i.i.i.i.i.i1475, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i1479 if.else.i.i.i.i.i.i.i.i1485: ; preds = %if.then7.i.i.i.i.i1472 - %590 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i.i1475, i32 -1 acq_rel, align 4 + %578 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i.i1475, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i1479 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i1479: ; preds = %if.else.i.i.i.i.i.i.i.i1485, %if.then.i.i.i.i.i.i.i.i1477 - %retval.i.0.i.i.i.i.i.i.i1480 = phi i32 [ %589, %if.then.i.i.i.i.i.i.i.i1477 ], [ %590, %if.else.i.i.i.i.i.i.i.i1485 ] + %retval.i.0.i.i.i.i.i.i.i1480 = phi i32 [ %577, %if.then.i.i.i.i.i.i.i.i1477 ], [ %578, %if.else.i.i.i.i.i.i.i.i1485 ] %cmp.i.i.i.i.i.i.i1481 = icmp eq i32 %retval.i.0.i.i.i.i.i.i.i1480, 1 br i1 %cmp.i.i.i.i.i.i.i1481, label %if.end8.sink.split.i.i.i.i.i1482, label %eh.resume if.end8.sink.split.i.i.i.i.i1482: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i1479, %if.then.i.i.i.i.i1487 - %vtable2.i.i.i.i.i.i.i1483 = load ptr, ptr %581, align 8 + %vtable2.i.i.i.i.i.i.i1483 = load ptr, ptr %569, align 8 %vfn3.i.i.i.i.i.i.i1484 = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i.i1483, i64 3 - %591 = load ptr, ptr %vfn3.i.i.i.i.i.i.i1484, align 8 - call void %591(ptr noundef nonnull align 8 dereferenceable(16) %581) #19 + %579 = load ptr, ptr %vfn3.i.i.i.i.i.i.i1484, align 8 + call void %579(ptr noundef nonnull align 8 dereferenceable(16) %569) #19 br label %eh.resume eh.resume: ; preds = %if.end8.sink.split.i.i.i.i.i1482, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i1479, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i1469, %delete.end.i1459, %lpad5, %ehcleanup @@ -4454,10 +4417,10 @@ eh.resume: ; preds = %if.end8.sink.split. resume { ptr, i32 } %lpad.val1039 terminate.lpad: ; preds = %ehcleanup92, %ehcleanup74 - %592 = landingpad { ptr, i32 } + %580 = landingpad { ptr, i32 } catch ptr null - %593 = extractvalue { ptr, i32 } %592, 0 - call void @__clang_call_terminate(ptr %593) #24 + %581 = extractvalue { ptr, i32 } %580, 0 + call void @__clang_call_terminate(ptr %581) #24 unreachable unreachable: ; preds = %invoke.cont90, %invoke.cont72, %invoke.cont35 diff --git a/bench/assimp/optimized/glTFExporter.cpp.ll b/bench/assimp/optimized/glTFExporter.cpp.ll index 97f0aa5dac4..dbb9c895608 100644 --- a/bench/assimp/optimized/glTFExporter.cpp.ll +++ b/bench/assimp/optimized/glTFExporter.cpp.ll @@ -5703,10 +5703,10 @@ entry: store i32 0, ptr %1, align 8 %mScene = getelementptr inbounds %"class.Assimp::glTFExporter", ptr %this, i64 0, i32 2 %2 = load ptr, ptr %mScene, align 8 - %mNumAnimations140 = getelementptr inbounds %struct.aiScene, ptr %2, i64 0, i32 6 - %3 = load i32, ptr %mNumAnimations140, align 8 - %cmp141.not = icmp eq i32 %3, 0 - br i1 %cmp141.not, label %for.end102, label %for.body.lr.ph + %mNumAnimations138 = getelementptr inbounds %struct.aiScene, ptr %2, i64 0, i32 6 + %3 = load i32, ptr %mNumAnimations138, align 8 + %cmp139.not = icmp eq i32 %3, 0 + br i1 %cmp139.not, label %for.end102, label %for.body.lr.ph for.body.lr.ph: ; preds = %entry %4 = getelementptr inbounds { ptr, i32 }, ptr %animRef, i64 0, i32 1 @@ -5719,11 +5719,11 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.end98 - %indvars.iv154 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next155, %for.end98 ] + %indvars.iv152 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next153, %for.end98 ] %5 = phi ptr [ %2, %for.body.lr.ph ], [ %55, %for.end98 ] %mAnimations = getelementptr inbounds %struct.aiScene, ptr %5, i64 0, i32 7 %6 = load ptr, ptr %mAnimations, align 8 - %arrayidx = getelementptr inbounds ptr, ptr %6, i64 %indvars.iv154 + %arrayidx = getelementptr inbounds ptr, ptr %6, i64 %indvars.iv152 %7 = load ptr, ptr %arrayidx, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #25 %call.i23 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %nameAnim) @@ -5777,8 +5777,8 @@ lpad8.loopexit.split-lp: ; preds = %if.then if.end: ; preds = %if.then, %invoke.cont %mNumChannels = getelementptr inbounds %struct.aiAnimation, ptr %7, i64 0, i32 3 %11 = load i32, ptr %mNumChannels, align 8 - %cmp14138.not = icmp eq i32 %11, 0 - br i1 %cmp14138.not, label %for.end98, label %for.body15.lr.ph + %cmp14136.not = icmp eq i32 %11, 0 + br i1 %cmp14136.not, label %for.end98, label %for.body15.lr.ph for.body15.lr.ph: ; preds = %if.end %mChannels = getelementptr inbounds %struct.aiAnimation, ptr %7, i64 0, i32 4 @@ -5883,9 +5883,9 @@ for.cond38.preheader: ; preds = %invoke.cont33 br label %for.body40 for.body40: ; preds = %for.cond38.preheader, %cleanup - %j.0137 = phi i32 [ 0, %for.cond38.preheader ], [ %inc, %cleanup ] + %j.0135 = phi i32 [ 0, %for.cond38.preheader ], [ %inc, %cleanup ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %channelType) #25 - switch i32 %j.0137, label %cleanup [ + switch i32 %j.0135, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb44 i32 2, label %sw.bb47 @@ -5929,6 +5929,9 @@ sw.bb47: ; preds = %for.body40 %call49 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %channelType, ptr noundef nonnull @.str.39) to label %sw.epilog unwind label %lpad41 +default.unreachable: ; preds = %for.body40 + unreachable + sw.epilog: ; preds = %sw.bb47, %sw.bb44, %sw.bb %channelSize.0.in = phi ptr [ %mNumRotationKeys, %sw.bb ], [ %mNumScalingKeys, %sw.bb44 ], [ %mNumPositionKeys, %sw.bb47 ] %channelSize.0 = load i32, ptr %channelSize.0.in, align 4 @@ -6134,9 +6137,9 @@ invoke.cont91: ; preds = %_ZNSt16allocator_tr call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %tmpAnimChannel) #25 br label %cleanup -cleanup: ; preds = %for.body40, %sw.epilog, %invoke.cont91 +cleanup: ; preds = %sw.epilog, %invoke.cont91 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %channelType) #25 - %inc = add nuw nsw i32 %j.0137, 1 + %inc = add nuw nsw i32 %j.0135, 1 %exitcond.not = icmp eq i32 %inc, 3 br i1 %exitcond.not, label %for.end, label %for.body40, !llvm.loop !68 @@ -6187,12 +6190,12 @@ ehcleanup95: ; preds = %ehcleanup94, %lpad2 for.end98: ; preds = %for.end, %if.end call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %nameAnim) #25 - %indvars.iv.next155 = add nuw nsw i64 %indvars.iv154, 1 + %indvars.iv.next153 = add nuw nsw i64 %indvars.iv152, 1 %55 = load ptr, ptr %mScene, align 8 %mNumAnimations = getelementptr inbounds %struct.aiScene, ptr %55, i64 0, i32 6 %56 = load i32, ptr %mNumAnimations, align 8 %57 = zext i32 %56 to i64 - %cmp = icmp ult i64 %indvars.iv.next155, %57 + %cmp = icmp ult i64 %indvars.iv.next153, %57 br i1 %cmp, label %for.body, label %for.end102, !llvm.loop !70 ehcleanup99: ; preds = %lpad8.loopexit, %lpad8.loopexit.split-lp, %lpad.i24, %ehcleanup95, %ehcleanup diff --git a/bench/assimp/optimized/json_exporter.cpp.ll b/bench/assimp/optimized/json_exporter.cpp.ll index ccaa10efb17..d9402e6d97a 100644 --- a/bench/assimp/optimized/json_exporter.cpp.ll +++ b/bench/assimp/optimized/json_exporter.cpp.ll @@ -9557,10 +9557,10 @@ entry: %call9.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %call8.i, ptr noundef nonnull align 8 dereferenceable(32) %newline.i) %indent.i1.i = getelementptr inbounds %"class.Assimp::JSONWriter", ptr %out, i64 0, i32 1 %call.i2.i = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %indent.i1.i, i8 noundef signext 9) - %flags.i.i = getelementptr inbounds %"class.Assimp::JSONWriter", ptr %out, i64 0, i32 6 + %d1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %ai, i64 0, i32 12 %c1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %ai, i64 0, i32 8 %b1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %ai, i64 0, i32 4 - %d1.i = getelementptr inbounds %class.aiMatrix4x4t, ptr %ai, i64 0, i32 12 + %flags.i.i = getelementptr inbounds %"class.Assimp::JSONWriter", ptr %out, i64 0, i32 6 %space.i.i = getelementptr inbounds %"class.Assimp::JSONWriter", ptr %out, i64 0, i32 3 %buff.i = getelementptr inbounds %"class.Assimp::JSONWriter", ptr %out, i64 0, i32 4 br label %for.cond1.preheader @@ -9571,10 +9571,11 @@ for.cond1.preheader: ; preds = %entry, %for.inc4 if.end.i: ; preds = %for.cond1.preheader, %_ZN6Assimp10JSONWriter7ElementIfEEvRKT_.exit %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %_ZN6Assimp10JSONWriter7ElementIfEEvRKT_.exit ] - switch i32 %x.021, label %_ZNK12aiMatrix4x4tIfEixEj.exit [ - i32 3, label %sw.bb4.i + switch i32 %x.021, label %default.unreachable.i [ + i32 0, label %_ZNK12aiMatrix4x4tIfEixEj.exit i32 1, label %sw.bb2.i i32 2, label %sw.bb3.i + i32 3, label %sw.bb4.i ] sw.bb2.i: ; preds = %if.end.i @@ -9586,6 +9587,9 @@ sw.bb3.i: ; preds = %if.end.i sw.bb4.i: ; preds = %if.end.i br label %_ZNK12aiMatrix4x4tIfEixEj.exit +default.unreachable.i: ; preds = %if.end.i + unreachable + _ZNK12aiMatrix4x4tIfEixEj.exit: ; preds = %if.end.i, %sw.bb2.i, %sw.bb3.i, %sw.bb4.i %retval.0.i = phi ptr [ %d1.i, %sw.bb4.i ], [ %c1.i, %sw.bb3.i ], [ %b1.i, %sw.bb2.i ], [ %ai, %if.end.i ] %arrayidx = getelementptr inbounds float, ptr %retval.0.i, i64 %indvars.iv diff --git a/bench/bullet3/optimized/btDantzigLCP.ll b/bench/bullet3/optimized/btDantzigLCP.ll index e03e5af6e62..8db7acca26d 100644 --- a/bench/bullet3/optimized/btDantzigLCP.ll +++ b/bench/bullet3/optimized/btDantzigLCP.ll @@ -19,7 +19,7 @@ target triple = "x86_64-unknown-linux-gnu" @_ZN5btLCPC1EiiiPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_PbPiS2_S2_PS0_ = dso_local unnamed_addr alias void (ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr), ptr @_ZN5btLCPC2EiiiPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_PbPiS2_S2_PS0_ -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_Z12btFactorLDLTPfS_ii(ptr noundef %A, ptr nocapture noundef %d, i32 noundef %n, i32 noundef %nskip1) local_unnamed_addr #0 { entry: %cmp = icmp slt i32 %n, 1 @@ -532,7 +532,7 @@ sw.epilog: ; preds = %for.end153, %entry, ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare float @llvm.fmuladd.f32(float, float, float) #1 -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_Z9btSolveL1PKfPfii(ptr noundef readonly %L, ptr nocapture noundef %B, i32 noundef %n, i32 noundef %lskip1) local_unnamed_addr #0 { entry: %cmp.not415 = icmp slt i32 %n, 4 @@ -1048,7 +1048,7 @@ for.end312: ; preds = %for.end307, %for.co ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_Z10btSolveL1TPKfPfii(ptr nocapture noundef readonly %L, ptr nocapture noundef %B, i32 noundef %n, i32 noundef %lskip1) local_unnamed_addr #0 { entry: %sub = add nsw i32 %n, -1 @@ -1327,7 +1327,7 @@ for.end: ; preds = %for.body, %entry ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_Z11btSolveLDLTPKfS0_Pfii(ptr noundef %L, ptr nocapture noundef readonly %d, ptr nocapture noundef %b, i32 noundef %n, i32 noundef %nskip) local_unnamed_addr #0 { entry: tail call void @_Z9btSolveL1PKfPfii(ptr noundef %L, ptr noundef %b, i32 noundef %n, i32 noundef %nskip) @@ -1355,7 +1355,7 @@ _Z13btVectorScalePfPKfi.exit: ; preds = %for.body.i, %entry ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_ZN5btLCPC2EiiiPfS0_S0_S0_S0_S0_S0_S0_S0_S0_S0_PbPiS2_S2_PS0_(ptr nocapture noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %_n, i32 noundef %_nskip, i32 noundef %_nub, ptr noundef %_Adata, ptr noundef %_x, ptr noundef %_b, ptr noundef %_w, ptr noundef %_lo, ptr noundef %_hi, ptr noundef %l, ptr noundef %_d, ptr noundef %_Dell, ptr noundef %_ell, ptr noundef %_tmp, ptr noundef %_state, ptr noundef %_findex, ptr noundef %p, ptr noundef %c, ptr noundef %Arows) unnamed_addr #0 align 2 { entry: store i32 %_n, ptr %this, align 8 @@ -1631,7 +1631,7 @@ if.end130: ; preds = %for.inc128, %if.the } ; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @_ZL13btSwapProblemPPfS_S_S_S_S_PiPbS1_iiiii(ptr nocapture noundef %A, ptr nocapture noundef %x, ptr nocapture noundef %b, ptr nocapture noundef %w, ptr nocapture noundef %lo, ptr nocapture noundef %hi, ptr nocapture noundef %p, ptr nocapture noundef %state, ptr noundef %findex, i32 noundef %n, i32 noundef %i1, i32 noundef %i2, i32 noundef %do_fast_row_swaps) unnamed_addr #3 { +define internal fastcc void @_ZL13btSwapProblemPPfS_S_S_S_S_PiPbS1_iiiii(ptr nocapture noundef %A, ptr nocapture noundef %x, ptr nocapture noundef %b, ptr nocapture noundef %w, ptr nocapture noundef %lo, ptr nocapture noundef %hi, ptr nocapture noundef %p, ptr nocapture noundef %state, ptr noundef %findex, i32 noundef %n, i32 noundef %i1, i32 noundef %i2, i32 noundef %do_fast_row_swaps) unnamed_addr #0 { entry: %cmp = icmp eq i32 %i1, %i2 br i1 %cmp, label %if.end69, label %if.end @@ -1793,9 +1793,9 @@ if.end69: ; preds = %entry, %if.then60, } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4 +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_ZN5btLCP15transfer_i_to_CEi(ptr nocapture noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %i) local_unnamed_addr #0 align 2 { entry: %m_nC = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 3 @@ -1941,7 +1941,7 @@ if.end: ; preds = %if.else, %_Z10btLar ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_ZN5btLCP22transfer_i_from_N_to_CEi(ptr nocapture noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %i) local_unnamed_addr #0 align 2 { entry: %m_nC = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 3 @@ -2171,7 +2171,7 @@ if.end: ; preds = %if.else, %_Z10btLar ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_Z14btRemoveRowColPfiii(ptr nocapture noundef %A, i32 noundef %n, i32 noundef %nskip, i32 noundef %r) local_unnamed_addr #0 { entry: %sub = add nsw i32 %n, -1 @@ -2241,10 +2241,10 @@ for.end48: ; preds = %for.body40, %entry } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #4 +declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #3 ; Function Attrs: mustprogress uwtable -define dso_local void @_Z11btLDLTAddTLPfS_PKfiiR20btAlignedObjectArrayIfE(ptr nocapture noundef %L, ptr nocapture noundef %d, ptr nocapture noundef readonly %a, i32 noundef %n, i32 noundef %nskip, ptr nocapture noundef nonnull align 8 dereferenceable(25) %scratch) local_unnamed_addr #5 { +define dso_local void @_Z11btLDLTAddTLPfS_PKfiiR20btAlignedObjectArrayIfE(ptr nocapture noundef %L, ptr nocapture noundef %d, ptr nocapture noundef readonly %a, i32 noundef %n, i32 noundef %nskip, ptr nocapture noundef nonnull align 8 dereferenceable(25) %scratch) local_unnamed_addr #4 { entry: %cmp = icmp slt i32 %n, 2 br i1 %cmp, label %for.end113, label %if.end @@ -2470,7 +2470,7 @@ for.end113: ; preds = %for.cond52.loopexit } ; Function Attrs: mustprogress uwtable -define dso_local void @_Z12btLDLTRemovePPfPKiS_S_iiiiR20btAlignedObjectArrayIfE(ptr nocapture noundef readonly %A, ptr nocapture noundef readonly %p, ptr nocapture noundef %L, ptr nocapture noundef %d, i32 %n1, i32 noundef %n2, i32 noundef %r, i32 noundef %nskip, ptr nocapture noundef nonnull align 8 dereferenceable(25) %scratch) local_unnamed_addr #5 { +define dso_local void @_Z12btLDLTRemovePPfPKiS_S_iiiiR20btAlignedObjectArrayIfE(ptr nocapture noundef readonly %A, ptr nocapture noundef readonly %p, ptr nocapture noundef %L, ptr nocapture noundef %d, i32 %n1, i32 noundef %n2, i32 noundef %r, i32 noundef %nskip, ptr nocapture noundef nonnull align 8 dereferenceable(25) %scratch) local_unnamed_addr #4 { entry: %sub = add nsw i32 %n2, -1 %cmp = icmp eq i32 %sub, %r @@ -2817,7 +2817,7 @@ if.end102: ; preds = %if.end90, %entry, % } ; Function Attrs: mustprogress uwtable -define dso_local void @_ZN5btLCP22transfer_i_from_C_to_NEiR20btAlignedObjectArrayIfE(ptr nocapture noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %i, ptr nocapture noundef nonnull align 8 dereferenceable(25) %scratch) local_unnamed_addr #5 align 2 { +define dso_local void @_ZN5btLCP22transfer_i_from_C_to_NEiR20btAlignedObjectArrayIfE(ptr nocapture noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %i, ptr nocapture noundef nonnull align 8 dereferenceable(25) %scratch) local_unnamed_addr #4 align 2 { entry: %m_C = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 19 %0 = load ptr, ptr %m_C, align 8 @@ -2931,8 +2931,8 @@ for.end35: ; preds = %for.inc33, %entry, ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable -define dso_local void @_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef writeonly %p, ptr nocapture noundef readonly %q) local_unnamed_addr #6 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable +define dso_local void @_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef writeonly %p, ptr nocapture noundef readonly %q) local_unnamed_addr #5 align 2 { entry: %m_nC = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 3 %0 = load i32, ptr %m_nC, align 4 @@ -3063,7 +3063,7 @@ for.end: ; preds = %for.body.us8, %whil } ; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable -define dso_local void @_ZN5btLCP17pN_plusequals_ANiEPfii(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef %p, i32 noundef %i, i32 noundef %sign) local_unnamed_addr #7 align 2 { +define dso_local void @_ZN5btLCP17pN_plusequals_ANiEPfii(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef %p, i32 noundef %i, i32 noundef %sign) local_unnamed_addr #5 align 2 { entry: %m_nC = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 3 %0 = load i32, ptr %m_nC, align 4 @@ -3123,8 +3123,8 @@ if.end: ; preds = %for.body14, %for.bo ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable -define dso_local void @_ZN5btLCP24pC_plusequals_s_times_qCEPffS0_(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef %p, float noundef %s, ptr nocapture noundef readonly %q) local_unnamed_addr #8 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable +define dso_local void @_ZN5btLCP24pC_plusequals_s_times_qCEPffS0_(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef %p, float noundef %s, ptr nocapture noundef readonly %q) local_unnamed_addr #2 align 2 { entry: %m_nC = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 3 %0 = load i32, ptr %m_nC, align 4 @@ -3151,8 +3151,8 @@ for.end: ; preds = %for.body, %entry ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable -define dso_local void @_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef %p, float noundef %s, ptr nocapture noundef readonly %q) local_unnamed_addr #8 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable +define dso_local void @_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef %p, float noundef %s, ptr nocapture noundef readonly %q) local_unnamed_addr #2 align 2 { entry: %m_nC = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 3 %0 = load i32, ptr %m_nC, align 4 @@ -3184,7 +3184,7 @@ for.end: ; preds = %for.body, %entry ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_ZN5btLCP6solve1EPfiii(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this, ptr nocapture noundef writeonly %a, i32 noundef %i, i32 noundef %dir, i32 noundef %only_transfer) local_unnamed_addr #0 align 2 { entry: %m_nC = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 3 @@ -3374,7 +3374,7 @@ if.end99: ; preds = %for.body88, %for.bo ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable define dso_local void @_ZN5btLCP9unpermuteEv(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %this) local_unnamed_addr #0 align 2 { entry: %m_tmp = getelementptr inbounds %struct.btLCP, ptr %this, i64 0, i32 15 @@ -3452,7 +3452,7 @@ for.end32: ; preds = %for.body23, %for.en } ; Function Attrs: mustprogress uwtable -define dso_local noundef zeroext i1 @_Z17btSolveDantzigLCPiPfS_S_S_iS_S_PiR22btDantzigScratchMemory(i32 noundef %n, ptr noundef %A, ptr noundef %x, ptr noundef %b, ptr noundef %outer_w, i32 noundef %nub, ptr noundef %lo, ptr noundef %hi, ptr noundef %findex, ptr noundef nonnull align 8 dereferenceable(352) %scratchMem) local_unnamed_addr #5 { +define dso_local noundef zeroext i1 @_Z17btSolveDantzigLCPiPfS_S_S_iS_S_PiR22btDantzigScratchMemory(i32 noundef %n, ptr noundef %A, ptr noundef %x, ptr noundef %b, ptr noundef %outer_w, i32 noundef %nub, ptr noundef %lo, ptr noundef %hi, ptr noundef %findex, ptr noundef nonnull align 8 dereferenceable(352) %scratchMem) local_unnamed_addr #4 { entry: %lcp = alloca %struct.btLCP, align 8 store i8 0, ptr @s_error, align 1 @@ -4632,7 +4632,7 @@ for.end.i: ; preds = %for.body.i, %if.the br i1 %cmp928.i, label %for.body10.preheader.i, label %for.end.i.for.body29.preheader.i_crit_edge for.end.i.for.body29.preheader.i_crit_edge: ; preds = %for.end.i - %.pre1000 = zext nneg i32 %129 to i64 + %.pre1003 = zext nneg i32 %129 to i64 br label %for.body29.preheader.i for.body10.preheader.i: ; preds = %for.end.i @@ -4654,7 +4654,7 @@ for.body10.i: ; preds = %for.body10.i, %for. br i1 %exitcond44.not.i, label %for.body29.preheader.i, label %for.body10.i, !llvm.loop !62 for.body29.preheader.i: ; preds = %for.body10.i, %for.end.i.for.body29.preheader.i_crit_edge - %wide.trip.count48.i.pre-phi = phi i64 [ %.pre1000, %for.end.i.for.body29.preheader.i_crit_edge ], [ %wide.trip.count43.i, %for.body10.i ] + %wide.trip.count48.i.pre-phi = phi i64 [ %.pre1003, %for.end.i.for.body29.preheader.i_crit_edge ], [ %wide.trip.count43.i, %for.body10.i ] %167 = load ptr, ptr %m_L.i, align 8 %168 = load i32, ptr %m_nskip.i, align 4 tail call void @_Z9btSolveL1PKfPfii(ptr noundef %167, ptr noundef %159, i32 noundef %129, i32 noundef %168) @@ -4681,33 +4681,33 @@ _ZN5btLCP6solve1EPfiii.exit: ; preds = %for.body29.i, %if.t br label %if.end322 for.cond108: ; preds = %for.cond108.preheader, %sw.epilog - %174 = load float, ptr %arrayidx78, align 4 - %cmp111 = fcmp ole float %174, 0.000000e+00 + %174 = phi i32 [ %141, %for.cond108.preheader ], [ %.pre1000, %sw.epilog ] + %175 = phi i32 [ %129, %for.cond108.preheader ], [ %.pre999, %sw.epilog ] + %176 = phi float [ %sub, %for.cond108.preheader ], [ %.pre, %sw.epilog ] + %cmp111 = fcmp ole float %176, 0.000000e+00 %. = select i1 %cmp111, float 1.000000e+00, float -1.000000e+00 %.253 = select i1 %cmp111, i32 1, i32 -1 - %175 = load ptr, ptr %m_data.i718, align 8 - call void @_ZN5btLCP6solve1EPfiii(ptr noundef nonnull align 8 dereferenceable(144) %lcp, ptr noundef nonnull %175, i32 noundef %158, i32 noundef %.253, i32 noundef 0) - %176 = load ptr, ptr %m_data.i651, align 8 %177 = load ptr, ptr %m_data.i718, align 8 - %178 = load i32, ptr %m_nC.i, align 4 - %idx.ext.i722 = sext i32 %178 to i64 - %add.ptr.i723 = getelementptr float, ptr %176, i64 %idx.ext.i722 - %179 = load i32, ptr %m_nN.i, align 8 - %cmp6.i = icmp sgt i32 %179, 0 + call void @_ZN5btLCP6solve1EPfiii(ptr noundef nonnull align 8 dereferenceable(144) %lcp, ptr noundef nonnull %177, i32 noundef %158, i32 noundef %.253, i32 noundef 0) + %178 = load ptr, ptr %m_data.i651, align 8 + %179 = load ptr, ptr %m_data.i718, align 8 + %idx.ext.i722 = sext i32 %175 to i64 + %add.ptr.i723 = getelementptr float, ptr %178, i64 %idx.ext.i722 + %cmp6.i = icmp sgt i32 %174, 0 br i1 %cmp6.i, label %for.body.lr.ph.i, label %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread for.body.lr.ph.i: ; preds = %for.cond108 - %n.addr.017.i.i727 = add i32 %178, -2 - %cmp18.i.i728 = icmp sgt i32 %178, 1 + %n.addr.017.i.i727 = add i32 %175, -2 + %cmp18.i.i728 = icmp sgt i32 %175, 1 br i1 %cmp18.i.i728, label %for.body.lr.ph.split.us.i, label %for.body.lr.ph.split.i for.body.lr.ph.split.us.i: ; preds = %for.body.lr.ph.i - %180 = add nsw i32 %178, -4 + %180 = add nsw i32 %175, -4 %181 = and i32 %n.addr.017.i.i727, -2 %182 = sub nsw i32 %180, %181 %183 = icmp eq i32 %182, -1 - %184 = zext nneg i32 %178 to i64 - %wide.trip.count36.i = zext nneg i32 %179 to i64 + %184 = zext nneg i32 %175 to i64 + %wide.trip.count36.i = zext nneg i32 %174 to i64 %185 = load ptr, ptr %m_A.i, align 8 %invariant.gep951 = getelementptr ptr, ptr %185, i64 %184 br i1 %183, label %for.body.us.us.i, label %for.body.us.i @@ -4722,7 +4722,7 @@ while.body.i.us.us.i: ; preds = %while.body.i.us.us. %n.addr.022.i.us.us.i = phi i32 [ %n.addr.0.i.us.us.i, %while.body.i.us.us.i ], [ %n.addr.017.i.i727, %for.body.us.us.i ] %sum.021.i.us.us.i = phi float [ %add5.i.us.us.i, %while.body.i.us.us.i ], [ 0.000000e+00, %for.body.us.us.i ] %a.addr.020.i.us.us.i = phi ptr [ %add.ptr.i.us.us.i, %while.body.i.us.us.i ], [ %186, %for.body.us.us.i ] - %b.addr.019.i.us.us.i = phi ptr [ %add.ptr6.i.us.us.i, %while.body.i.us.us.i ], [ %177, %for.body.us.us.i ] + %b.addr.019.i.us.us.i = phi ptr [ %add.ptr6.i.us.us.i, %while.body.i.us.us.i ], [ %179, %for.body.us.us.i ] %187 = load float, ptr %a.addr.020.i.us.us.i, align 4 %188 = load float, ptr %b.addr.019.i.us.us.i, align 4 %mul.i.us.us.i = fmul float %187, %188 @@ -4759,7 +4759,7 @@ while.body.i.us.i: ; preds = %while.body.i.us.i, %n.addr.022.i.us.i = phi i32 [ %n.addr.0.i.us.i, %while.body.i.us.i ], [ %n.addr.017.i.i727, %for.body.us.i ] %sum.021.i.us.i = phi float [ %add5.i.us.i, %while.body.i.us.i ], [ 0.000000e+00, %for.body.us.i ] %a.addr.020.i.us.i = phi ptr [ %add.ptr.i.us.i, %while.body.i.us.i ], [ %194, %for.body.us.i ] - %b.addr.019.i.us.i = phi ptr [ %add.ptr6.i.us.i, %while.body.i.us.i ], [ %177, %for.body.us.i ] + %b.addr.019.i.us.i = phi ptr [ %add.ptr6.i.us.i, %while.body.i.us.i ], [ %179, %for.body.us.i ] %195 = load float, ptr %a.addr.020.i.us.i, align 4 %196 = load float, ptr %b.addr.019.i.us.i, align 4 %mul.i.us.i = fmul float %195, %196 @@ -4785,7 +4785,7 @@ while.end.loopexit.i.us.i: ; preds = %while.body.i.us.i for.body.lr.ph.split.i: ; preds = %for.body.lr.ph.i %199 = icmp eq i32 %n.addr.017.i.i727, -1 - %wide.trip.count.i729 = zext nneg i32 %179 to i64 + %wide.trip.count.i729 = zext nneg i32 %174 to i64 br i1 %199, label %for.body.us8.i.preheader, label %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 for.body.us8.i.preheader: ; preds = %for.body.lr.ph.split.i @@ -4798,7 +4798,7 @@ for.body.us8.i: ; preds = %for.body.us8.i.preh %gep = getelementptr ptr, ptr %invariant.gep, i64 %indvars.iv.i731 %201 = load ptr, ptr %gep, align 8 %202 = load float, ptr %201, align 4 - %203 = load float, ptr %177, align 4 + %203 = load float, ptr %179, align 4 %204 = tail call float @llvm.fmuladd.f32(float %202, float %203, float 0.000000e+00) %arrayidx3.us17.i = getelementptr inbounds float, ptr %add.ptr.i723, i64 %indvars.iv.i731 store float %204, ptr %arrayidx3.us17.i, align 4 @@ -4811,7 +4811,7 @@ _ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit: ; preds = %for.body.us8.i, %wh %206 = load ptr, ptr %m_data.i651, align 8 %arrayidx.i738 = getelementptr inbounds ptr, ptr %205, i64 %indvars.iv981 %207 = load ptr, ptr %arrayidx.i738, align 8 - %.pre1001 = zext nneg i32 %179 to i64 + %.pre1004 = zext nneg i32 %174 to i64 br i1 %cmp111, label %for.body.preheader.i750, label %for.body14.preheader.i _ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897: ; preds = %for.body.lr.ph.split.i @@ -4826,11 +4826,11 @@ _ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897: ; preds = %for.body.lr.p _ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread: ; preds = %for.cond108 %212 = load ptr, ptr %m_A.i, align 8 %arrayidx.i738884 = getelementptr inbounds ptr, ptr %212, i64 %indvars.iv981 - %.pre999 = add i32 %178, -2 + %.pre1002 = add i32 %175, -2 br label %_ZN5btLCP17pN_plusequals_ANiEPfii.exit for.body.preheader.i750: ; preds = %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 - %wide.trip.count20.i.pre-phi = phi i64 [ %wide.trip.count.i729, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %.pre1001, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] + %wide.trip.count20.i.pre-phi = phi i64 [ %wide.trip.count.i729, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %.pre1004, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] %arrayidx.i738889907 = phi ptr [ %arrayidx.i738898, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %arrayidx.i738, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] %.pn = phi ptr [ %211, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %207, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] %.pn931 = phi ptr [ %209, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %206, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] @@ -4851,7 +4851,7 @@ for.body.i751: ; preds = %for.body.i751, %for br i1 %exitcond21.not.i, label %_ZN5btLCP17pN_plusequals_ANiEPfii.exit, label %for.body.i751, !llvm.loop !57 for.body14.preheader.i: ; preds = %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 - %wide.trip.count.i744.pre-phi = phi i64 [ %wide.trip.count.i729, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %.pre1001, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] + %wide.trip.count.i744.pre-phi = phi i64 [ %wide.trip.count.i729, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %.pre1004, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] %arrayidx.i738888913 = phi ptr [ %arrayidx.i738898, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %arrayidx.i738, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] %215 = phi ptr [ %211, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %207, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] %216 = phi ptr [ %209, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread897 ], [ %206, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit ] @@ -4872,11 +4872,11 @@ for.body14.i: ; preds = %for.body14.i, %for. br i1 %exitcond.not.i748, label %_ZN5btLCP17pN_plusequals_ANiEPfii.exit, label %for.body14.i, !llvm.loop !58 _ZN5btLCP17pN_plusequals_ANiEPfii.exit: ; preds = %for.body14.i, %for.body.i751, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread - %n.addr.017.i.i758.pre-phi = phi i32 [ %.pre999, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread ], [ %n.addr.017.i.i727, %for.body.i751 ], [ %n.addr.017.i.i727, %for.body14.i ] + %n.addr.017.i.i758.pre-phi = phi i32 [ %.pre1002, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread ], [ %n.addr.017.i.i727, %for.body.i751 ], [ %n.addr.017.i.i727, %for.body14.i ] %arrayidx.i738887 = phi ptr [ %arrayidx.i738884, %_ZN5btLCP22pN_equals_ANC_times_qCEPfS0_.exit.thread ], [ %arrayidx.i738889907, %for.body.i751 ], [ %arrayidx.i738888913, %for.body14.i ] %221 = load ptr, ptr %m_data.i718, align 8 %222 = load ptr, ptr %arrayidx.i738887, align 8 - %cmp18.i.i759 = icmp sgt i32 %178, 1 + %cmp18.i.i759 = icmp sgt i32 %175, 1 br i1 %cmp18.i.i759, label %while.body.i.i767, label %while.end.i.i760 while.body.i.i767: ; preds = %_ZN5btLCP17pN_plusequals_ANiEPfii.exit, %while.body.i.i767 @@ -4902,7 +4902,7 @@ while.body.i.i767: ; preds = %_ZN5btLCP17pN_pluse while.end.loopexit.i.i782: ; preds = %while.body.i.i767 %227 = and i32 %n.addr.017.i.i758.pre-phi, -2 - %228 = add nsw i32 %178, -4 + %228 = add nsw i32 %175, -4 %229 = sub i32 %228, %227 br label %while.end.i.i760 @@ -4972,14 +4972,14 @@ if.end168: ; preds = %if.else151, %if.the for.body173.lr.ph: ; preds = %if.end168 %244 = load ptr, ptr %m_data.i652, align 8 - %wide.trip.count990 = zext nneg i32 %179 to i64 + %wide.trip.count990 = zext nneg i32 %174 to i64 br label %for.body173 for.cond210.preheader: ; preds = %for.inc205, %if.end168 %s.1.lcssa = phi float [ %s.0, %if.end168 ], [ %s.2, %for.inc205 ] %si.0.lcssa = phi i32 [ 0, %if.end168 ], [ %si.1, %for.inc205 ] %cmd.1.lcssa = phi i32 [ %cmd.0, %if.end168 ], [ %cmd.2, %for.inc205 ] - %cmp211960 = icmp slt i32 %112, %178 + %cmp211960 = icmp slt i32 %112, %175 br i1 %cmp211960, label %for.body212.lr.ph, label %for.end259 for.body212.lr.ph: ; preds = %for.cond210.preheader @@ -5118,11 +5118,11 @@ _Z9btSetZeroIfEvPT_i.exit824: ; preds = %for.end259 if.end269: ; preds = %for.end259 %263 = load ptr, ptr %m_data.i718, align 8 - %cmp4.i = icmp sgt i32 %178, 0 + %cmp4.i = icmp sgt i32 %175, 0 br i1 %cmp4.i, label %for.body.preheader.i828, label %_ZN5btLCP24pC_plusequals_s_times_qCEPffS0_.exit for.body.preheader.i828: ; preds = %if.end269 - %wide.trip.count.i829 = zext nneg i32 %178 to i64 + %wide.trip.count.i829 = zext nneg i32 %175 to i64 br label %for.body.i830 for.body.i830: ; preds = %for.body.i830, %for.body.preheader.i828 @@ -5147,7 +5147,7 @@ _ZN5btLCP24pC_plusequals_s_times_qCEPffS0_.exit: ; preds = %for.body.i830, %if. br i1 %cmp6.i, label %for.body.preheader.i843, label %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit for.body.preheader.i843: ; preds = %_ZN5btLCP24pC_plusequals_s_times_qCEPffS0_.exit - %wide.trip.count.i844 = zext nneg i32 %179 to i64 + %wide.trip.count.i844 = zext nneg i32 %174 to i64 br label %for.body.i845 for.body.i845: ; preds = %for.body.i845, %for.body.preheader.i843 @@ -5163,17 +5163,17 @@ for.body.i845: ; preds = %for.body.i845, %for br i1 %exitcond.not.i849, label %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit.loopexit, label %for.body.i845, !llvm.loop !60 _ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit.loopexit: ; preds = %for.body.i845 - %.pre = load ptr, ptr %m_data.i651, align 8 + %.pre1001 = load ptr, ptr %m_data.i651, align 8 br label %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit _ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit: ; preds = %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit.loopexit, %_ZN5btLCP24pC_plusequals_s_times_qCEPffS0_.exit - %273 = phi ptr [ %.pre, %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit.loopexit ], [ %269, %_ZN5btLCP24pC_plusequals_s_times_qCEPffS0_.exit ] + %273 = phi ptr [ %.pre1001, %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit.loopexit ], [ %269, %_ZN5btLCP24pC_plusequals_s_times_qCEPffS0_.exit ] %arrayidx.i852 = getelementptr inbounds float, ptr %273, i64 %indvars.iv981 %274 = load float, ptr %arrayidx.i852, align 4 %275 = load float, ptr %arrayidx78, align 4 %276 = tail call float @llvm.fmuladd.f32(float %s.3.lcssa, float %274, float %275) store float %276, ptr %arrayidx78, align 4 - switch i32 %cmd.3.lcssa, label %sw.epilog [ + switch i32 %cmd.3.lcssa, label %default.unreachable1006 [ i32 1, label %sw.bb i32 2, label %sw.bb284 i32 3, label %sw.bb291 @@ -5193,7 +5193,7 @@ sw.bb284: ; preds = %_ZN5btLCP24pN_pluse %278 = load ptr, ptr %m_data.i652, align 8 %arrayidx.i855 = getelementptr inbounds i8, ptr %278, i64 %indvars.iv981 store i8 0, ptr %arrayidx.i855, align 1 - %inc.i857 = add nsw i32 %179, 1 + %inc.i857 = add nsw i32 %174, 1 store i32 %inc.i857, ptr %m_nN.i, align 8 br label %if.end322 @@ -5203,7 +5203,7 @@ sw.bb291: ; preds = %_ZN5btLCP24pN_pluse %280 = load ptr, ptr %m_data.i652, align 8 %arrayidx.i860 = getelementptr inbounds i8, ptr %280, i64 %indvars.iv981 store i8 1, ptr %arrayidx.i860, align 1 - %inc.i862 = add nsw i32 %179, 1 + %inc.i862 = add nsw i32 %174, 1 store i32 %inc.i862, ptr %m_nN.i, align 8 br label %if.end322 @@ -5238,19 +5238,24 @@ sw.bb308: ; preds = %_ZN5btLCP24pN_pluse call void @_ZN5btLCP22transfer_i_from_C_to_NEiR20btAlignedObjectArrayIfE(ptr noundef nonnull align 8 dereferenceable(144) %lcp, i32 noundef %si.2.lcssa, ptr noundef nonnull align 8 dereferenceable(25) %scratchMem) br label %sw.epilog -sw.epilog: ; preds = %sw.bb308, %sw.bb301, %sw.bb298, %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit - %cmp316 = icmp slt i32 %cmd.3.lcssa, 4 - br i1 %cmp316, label %if.end322, label %for.cond108, !llvm.loop !79 +default.unreachable1006: ; preds = %_ZN5btLCP24pN_plusequals_s_times_qNEPffS0_.exit + unreachable + +sw.epilog: ; preds = %sw.bb308, %sw.bb301, %sw.bb298 + %.pre = load float, ptr %arrayidx78, align 4 + %.pre999 = load i32, ptr %m_nC.i, align 4 + %.pre1000 = load i32, ptr %m_nN.i, align 8 + br label %for.cond108, !llvm.loop !79 -if.end322: ; preds = %sw.epilog, %sw.bb, %sw.bb284, %sw.bb291, %if.then97, %_Z9btSetZeroIfEvPT_i.exit824, %_ZN5btLCP6solve1EPfiii.exit, %if.then86 +if.end322: ; preds = %sw.bb, %sw.bb284, %sw.bb291, %if.then97, %_Z9btSetZeroIfEvPT_i.exit824, %_ZN5btLCP6solve1EPfiii.exit, %if.then86 %285 = load i8, ptr @s_error, align 1 %286 = and i8 %285, 1 %tobool323.not = icmp ne i8 %286, 0 %indvars.iv.next982 = add nsw i64 %indvars.iv981, 1 %lftr.wideiv = trunc i64 %indvars.iv.next982 to i32 %exitcond998.not = icmp eq i32 %lftr.wideiv, %n - %or.cond1015 = select i1 %tobool323.not, i1 true, i1 %exitcond998.not - br i1 %or.cond1015, label %for.end328, label %for.body, !llvm.loop !80 + %or.cond1019 = select i1 %tobool323.not, i1 true, i1 %exitcond998.not + br i1 %or.cond1019, label %for.end328, label %for.body, !llvm.loop !80 for.end328: ; preds = %if.end322, %_ZN20btAlignedObjectArrayIbE6resizeEiRKb.exit %m_tmp.i = getelementptr inbounds %struct.btLCP, ptr %lcp, i64 0, i32 15 @@ -5318,31 +5323,28 @@ return: ; preds = %for.body23.i, %for. ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare float @llvm.fabs.f32(float) #1 -declare noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef, i32 noundef) local_unnamed_addr #9 +declare noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef, i32 noundef) local_unnamed_addr #6 -declare void @_Z21btAlignedFreeInternalPv(ptr noundef) local_unnamed_addr #9 +declare void @_Z21btAlignedFreeInternalPv(ptr noundef) local_unnamed_addr #6 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smax.i32(i32, i32) #11 +declare i32 @llvm.smax.i32(i32, i32) #8 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #11 +declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #8 -attributes #0 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #0 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 speculatable willreturn memory(none) } attributes #2 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "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 norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #5 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #4 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/cpython/optimized/_hashopenssl.ll b/bench/cpython/optimized/_hashopenssl.ll index e159e2b3665..96f648e531e 100644 --- a/bench/cpython/optimized/_hashopenssl.ll +++ b/bench/cpython/optimized/_hashopenssl.ll @@ -366,7 +366,7 @@ declare void @HMAC_CTX_free(ptr noundef) local_unnamed_addr #1 declare void @PyObject_Free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal ptr @_hashlib_HMAC_update(ptr noundef %self, ptr noundef %args, i64 noundef %nargs, ptr noundef %kwnames) #0 { +define internal noundef ptr @_hashlib_HMAC_update(ptr noundef %self, ptr noundef %args, i64 noundef %nargs, ptr noundef %kwnames) #0 { entry: %argsbuf = alloca [1 x ptr], align 8 %cmp = icmp eq ptr %kwnames, null @@ -546,7 +546,7 @@ _hashlib_HMAC_copy_impl.exit: ; preds = %if.then.i, %if.then declare ptr @_PyArg_UnpackKeywords(ptr noundef, i64 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @_hmac_update(ptr noundef %self, ptr noundef %obj) unnamed_addr #0 { +define internal fastcc noundef i32 @_hmac_update(ptr noundef %self, ptr noundef %obj) unnamed_addr #0 { entry: %view = alloca %struct.Py_buffer, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %view, i8 0, i64 80, i1 false) @@ -759,7 +759,7 @@ declare ptr @ERR_reason_error_string(i64 noundef) local_unnamed_addr #1 declare ptr @PyErr_Format(ptr noundef, ptr noundef, ...) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @_hmac_digest(ptr noundef %self, ptr noundef %buf, i32 noundef %len) unnamed_addr #0 { +define internal fastcc noundef i32 @_hmac_digest(ptr noundef %self, ptr noundef %buf, i32 noundef %len) unnamed_addr #0 { entry: %len.addr = alloca i32, align 4 store i32 %len, ptr %len.addr, align 4 @@ -1031,7 +1031,7 @@ return: ; preds = %if.then41, %if.then } ; Function Attrs: nounwind uwtable -define internal i32 @hashlib_clear(ptr noundef %m) #0 { +define internal noundef i32 @hashlib_clear(ptr noundef %m) #0 { entry: %call.i = tail call ptr @PyModule_GetState(ptr noundef %m) #9 %0 = load ptr, ptr %call.i, align 8 @@ -3137,21 +3137,17 @@ entry: %0 = load ptr, ptr %hashtable, align 8 %call2 = tail call ptr @_Py_hashtable_get(ptr noundef %0, ptr noundef %name) #9 %cmp.not = icmp eq ptr %call2, null + %switch18 = icmp eq i32 %py_ht, 1 br i1 %cmp.not, label %if.else, label %if.then if.then: ; preds = %entry - switch i32 %py_ht, label %if.then27 [ - i32 0, label %sw.bb - i32 2, label %sw.bb - i32 3, label %sw.bb - i32 1, label %sw.bb8 - ] - -sw.bb: ; preds = %if.then, %if.then, %if.then + br i1 %switch18, label %sw.bb8, label %sw.bb + +sw.bb: ; preds = %if.then %evp = getelementptr inbounds %struct.py_hashentry_t, ptr %call2, i64 0, i32 5 %1 = load ptr, ptr %evp, align 8 %cmp3 = icmp eq ptr %1, null - br i1 %cmp3, label %if.then4, label %if.end25.thread21 + br i1 %cmp3, label %if.then4, label %if.end25.thread25 if.then4: ; preds = %sw.bb %ossl_name = getelementptr inbounds %struct.py_hashentry_t, ptr %call2, i64 0, i32 2 @@ -3164,7 +3160,7 @@ sw.bb8: ; preds = %if.then %evp_nosecurity = getelementptr inbounds %struct.py_hashentry_t, ptr %call2, i64 0, i32 6 %3 = load ptr, ptr %evp_nosecurity, align 8 %cmp9 = icmp eq ptr %3, null - br i1 %cmp9, label %if.then10, label %if.end25.thread21 + br i1 %cmp9, label %if.then10, label %if.end25.thread25 if.then10: ; preds = %sw.bb8 %ossl_name11 = getelementptr inbounds %struct.py_hashentry_t, ptr %call2, i64 0, i32 2 @@ -3174,24 +3170,19 @@ if.then10: ; preds = %sw.bb8 br label %sw.epilog sw.epilog: ; preds = %if.then10, %if.then4 - %digest.0 = phi ptr [ %call5, %if.then4 ], [ %call12, %if.then10 ] + %digest.0 = phi ptr [ %call12, %if.then10 ], [ %call5, %if.then4 ] %cmp16.not = icmp eq ptr %digest.0, null - br i1 %cmp16.not, label %if.then27, label %if.end25.thread21 + br i1 %cmp16.not, label %if.then27, label %if.end25.thread25 -if.end25.thread21: ; preds = %sw.bb8, %sw.bb, %sw.epilog - %digest.027 = phi ptr [ %digest.0, %sw.epilog ], [ %3, %sw.bb8 ], [ %1, %sw.bb ] - %call18 = tail call i32 @EVP_MD_up_ref(ptr noundef nonnull %digest.027) #9 +if.end25.thread25: ; preds = %sw.epilog, %sw.bb8, %sw.bb + %digest.022 = phi ptr [ %digest.0, %sw.epilog ], [ %1, %sw.bb ], [ %3, %sw.bb8 ] + %call18 = tail call i32 @EVP_MD_up_ref(ptr noundef nonnull %digest.022) #9 br label %return if.else: ; preds = %entry - switch i32 %py_ht, label %if.then27 [ - i32 0, label %sw.bb20 - i32 2, label %sw.bb20 - i32 3, label %sw.bb20 - i32 1, label %sw.bb22 - ] - -sw.bb20: ; preds = %if.else, %if.else, %if.else + br i1 %switch18, label %sw.bb22, label %sw.bb20 + +sw.bb20: ; preds = %if.else %call21 = tail call ptr @EVP_MD_fetch(ptr noundef null, ptr noundef %name, ptr noundef null) #9 br label %if.end25 @@ -3204,14 +3195,14 @@ if.end25: ; preds = %sw.bb20, %sw.bb22 %cmp26 = icmp eq ptr %digest.1, null br i1 %cmp26, label %if.then27, label %return -if.then27: ; preds = %if.then, %if.else, %sw.epilog, %if.end25 +if.then27: ; preds = %sw.epilog, %if.end25 %unsupported_digestmod_error = getelementptr inbounds %struct._hashlibstate, ptr %call.i, i64 0, i32 4 %5 = load ptr, ptr %unsupported_digestmod_error, align 8 tail call void (ptr, ptr, ...) @_setException(ptr noundef %5, ptr noundef nonnull @.str.79, ptr noundef %name) br label %return -return: ; preds = %if.end25.thread21, %if.end25, %if.then27 - %retval.0 = phi ptr [ null, %if.then27 ], [ %digest.1, %if.end25 ], [ %digest.027, %if.end25.thread21 ] +return: ; preds = %if.end25.thread25, %if.end25, %if.then27 + %retval.0 = phi ptr [ null, %if.then27 ], [ %digest.1, %if.end25 ], [ %digest.022, %if.end25.thread25 ] ret ptr %retval.0 } @@ -3450,7 +3441,7 @@ declare ptr @PyUnicode_AsUTF8(ptr noundef) local_unnamed_addr #1 declare i32 @HMAC_Init_ex(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal i32 @hashlib_init_hashtable(ptr noundef %module) #0 { +define internal noundef i32 @hashlib_init_hashtable(ptr noundef %module) #0 { entry: %call.i = tail call ptr @PyModule_GetState(ptr noundef %module) #9 %call.i2 = tail call ptr @_Py_hashtable_new_full(ptr noundef nonnull @py_hashentry_t_hash_name, ptr noundef nonnull @py_hashentry_t_compare_name, ptr noundef null, ptr noundef nonnull @py_hashentry_t_destroy_value, ptr noundef null) #9 @@ -3938,7 +3929,7 @@ declare void @EVP_MD_CTX_free(ptr noundef) local_unnamed_addr #1 declare ptr @EVP_MD_CTX_md(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal ptr @EVP_update(ptr noundef %self, ptr noundef %obj) #0 { +define internal noundef ptr @EVP_update(ptr noundef %self, ptr noundef %obj) #0 { entry: %view = alloca %struct.Py_buffer, align 8 %0 = getelementptr i8, ptr %obj, i64 8 diff --git a/bench/cpython/optimized/arraymodule.ll b/bench/cpython/optimized/arraymodule.ll index 989cead661a..b7aaba07a1a 100644 --- a/bench/cpython/optimized/arraymodule.ll +++ b/bench/cpython/optimized/arraymodule.ll @@ -765,7 +765,7 @@ if.then54: ; preds = %if.end50 br label %return if.end55: ; preds = %if.end50 - switch i32 %mformat_code, label %sw.default [ + switch i32 %mformat_code, label %default.unreachable [ i32 14, label %sw.bb i32 15, label %sw.bb i32 16, label %sw.bb78 @@ -994,9 +994,8 @@ if.end185: ; preds = %for.body174 %cmp172 = icmp slt i64 %inc187, %div140 br i1 %cmp172, label %for.body174, label %sw.epilog, !llvm.loop !10 -sw.default: ; preds = %if.end55 - %call190 = tail call i32 @PyErr_BadArgument() #11 - br label %return +default.unreachable: ; preds = %if.end55 + unreachable sw.epilog: ; preds = %if.end185, %if.end106, %if.end75, %for.cond171.preheader, %for.cond94.preheader, %for.cond65.preheader, %sw.bb121, %sw.bb110 %converted_items.0 = phi ptr [ %call128, %sw.bb121 ], [ %call116, %sw.bb110 ], [ %call60, %for.cond65.preheader ], [ %call89, %for.cond94.preheader ], [ %call166, %for.cond171.preheader ], [ %call60, %if.end75 ], [ %call89, %if.end106 ], [ %call166, %if.end185 ] @@ -1018,8 +1017,8 @@ if.then1.i: ; preds = %if.end.i call void @_Py_Dealloc(ptr noundef nonnull %converted_items.0) #11 br label %return -return: ; preds = %return.sink.split.i, %if.end.i.i, %_Py_NewRef.exit.i, %if.end.i16.i, %if.then5.i, %if.then47, %if.end.i, %if.then1.i, %sw.epilog, %if.end.i196, %if.then1.i199, %if.then184, %for.end165, %sw.bb121, %sw.bb110, %if.end.i205, %if.then1.i208, %if.then105, %sw.bb78, %if.end.i214, %if.then1.i217, %if.then74, %sw.bb, %sw.default, %if.then54, %if.then35, %if.then30, %if.then24, %if.then6, %if.then - %retval.0 = phi ptr [ null, %if.then24 ], [ null, %if.then30 ], [ null, %if.then54 ], [ null, %sw.default ], [ null, %if.then35 ], [ null, %if.then6 ], [ null, %if.then ], [ null, %sw.bb ], [ null, %if.then74 ], [ null, %if.then1.i217 ], [ null, %if.end.i214 ], [ null, %sw.bb78 ], [ null, %if.then105 ], [ null, %if.then1.i208 ], [ null, %if.end.i205 ], [ null, %sw.bb110 ], [ null, %sw.bb121 ], [ null, %for.end165 ], [ null, %if.then184 ], [ null, %if.then1.i199 ], [ null, %if.end.i196 ], [ %call192, %sw.epilog ], [ %call192, %if.then1.i ], [ %call192, %if.end.i ], [ null, %if.then47 ], [ null, %if.then5.i ], [ null, %if.end.i16.i ], [ %call8.i, %_Py_NewRef.exit.i ], [ %call8.i, %if.end.i.i ], [ %retval.0.ph.i, %return.sink.split.i ] +return: ; preds = %return.sink.split.i, %if.end.i.i, %_Py_NewRef.exit.i, %if.end.i16.i, %if.then5.i, %if.then47, %if.end.i, %if.then1.i, %sw.epilog, %if.end.i196, %if.then1.i199, %if.then184, %for.end165, %sw.bb121, %sw.bb110, %if.end.i205, %if.then1.i208, %if.then105, %sw.bb78, %if.end.i214, %if.then1.i217, %if.then74, %sw.bb, %if.then54, %if.then35, %if.then30, %if.then24, %if.then6, %if.then + %retval.0 = phi ptr [ null, %if.then24 ], [ null, %if.then30 ], [ null, %if.then54 ], [ null, %if.then35 ], [ null, %if.then6 ], [ null, %if.then ], [ null, %sw.bb ], [ null, %if.then74 ], [ null, %if.then1.i217 ], [ null, %if.end.i214 ], [ null, %sw.bb78 ], [ null, %if.then105 ], [ null, %if.then1.i208 ], [ null, %if.end.i205 ], [ null, %sw.bb110 ], [ null, %sw.bb121 ], [ null, %for.end165 ], [ null, %if.then184 ], [ null, %if.then1.i199 ], [ null, %if.end.i196 ], [ %call192, %sw.epilog ], [ %call192, %if.then1.i ], [ %call192, %if.end.i ], [ null, %if.then47 ], [ null, %if.then5.i ], [ null, %if.end.i16.i ], [ %call8.i, %_Py_NewRef.exit.i ], [ %call8.i, %if.end.i.i ], [ %retval.0.ph.i, %return.sink.split.i ] ret ptr %retval.0 } diff --git a/bench/cpython/optimized/basearith.ll b/bench/cpython/optimized/basearith.ll index 43d29586448..b1bf22905a1 100644 --- a/bench/cpython/optimized/basearith.ll +++ b/bench/cpython/optimized/basearith.ll @@ -360,8 +360,8 @@ for.end: ; preds = %for.body, %entry ret void } -; Function Attrs: nofree nosync nounwind memory(argmem: readwrite) uwtable -define hidden void @_mpd_basemul(ptr nocapture noundef %w, ptr nocapture noundef readonly %u, ptr nocapture noundef readonly %v, i64 noundef %m, i64 noundef %n) local_unnamed_addr #1 { +; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable +define hidden void @_mpd_basemul(ptr nocapture noundef %w, ptr nocapture noundef readonly %u, ptr nocapture noundef readonly %v, i64 noundef %m, i64 noundef %n) local_unnamed_addr #0 { entry: %invariant.gep24 = getelementptr i64, ptr %w, i64 %m %cmp26.not = icmp eq i64 %n, 0 @@ -495,7 +495,7 @@ for.end: ; preds = %for.body, %entry } ; Function Attrs: nounwind uwtable -define hidden i32 @_mpd_basedivmod(ptr nocapture noundef writeonly %q, ptr noundef writeonly %r, ptr nocapture noundef readonly %uconst, ptr nocapture noundef readonly %vconst, i64 noundef %nplusm, i64 noundef %n) local_unnamed_addr #2 { +define hidden noundef i32 @_mpd_basedivmod(ptr nocapture noundef writeonly %q, ptr noundef writeonly %r, ptr nocapture noundef readonly %uconst, ptr nocapture noundef readonly %vconst, i64 noundef %nplusm, i64 noundef %n) local_unnamed_addr #1 { entry: %ustatic = alloca [64 x i64], align 16 %vstatic = alloca [64 x i64], align 16 @@ -505,12 +505,12 @@ entry: do.body.i: ; preds = %entry %0 = load ptr, ptr @stderr, align 8 - %call.i = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 606) #10 + %call.i = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 606) #9 %1 = load ptr, ptr @stderr, align 8 - %2 = tail call i64 @fwrite(ptr nonnull @.str.2, i64 41, i64 1, ptr %1) #10 + %2 = tail call i64 @fwrite(ptr nonnull @.str.2, i64 41, i64 1, ptr %1) #9 %3 = load ptr, ptr @stderr, align 8 %call2.i = tail call i32 @fputc(i32 noundef 10, ptr noundef %3) - tail call void @abort() #11 + tail call void @abort() #10 unreachable sub_size_t.exit: ; preds = %entry @@ -525,7 +525,7 @@ sub_size_t.exit: ; preds = %entry if.then: ; preds = %sub_size_t.exit %add3 = add i64 %nplusm, 1 - %call4 = tail call ptr @mpd_alloc(i64 noundef %add3, i64 noundef 8) #12 + %call4 = tail call ptr @mpd_alloc(i64 noundef %add3, i64 noundef 8) #11 %cmp5 = icmp eq ptr %call4, null br i1 %cmp5, label %return, label %if.end7 @@ -536,7 +536,7 @@ if.end7: ; preds = %if.then, %sub_size_ if.then9: ; preds = %if.end7 %add10 = add i64 %n, 1 - %call11 = tail call ptr @mpd_alloc(i64 noundef %add10, i64 noundef 8) #12 + %call11 = tail call ptr @mpd_alloc(i64 noundef %add10, i64 noundef 8) #11 %cmp12 = icmp eq ptr %call11, null br i1 %cmp12, label %return.sink.split, label %if.end15 @@ -969,7 +969,7 @@ if.end94: ; preds = %for.body.i192, %whi if.then98: ; preds = %if.end94 %30 = load ptr, ptr @mpd_free, align 8 - call void %30(ptr noundef nonnull %u.0) #12 + call void %30(ptr noundef nonnull %u.0) #11 br label %if.end99 if.end99: ; preds = %if.then98, %if.end94 @@ -980,7 +980,7 @@ return.sink.split: ; preds = %if.end99, %if.then9 %v.0.sink = phi ptr [ %u.0, %if.then9 ], [ %v.0, %if.end99 ] %retval.0.ph = phi i32 [ -1, %if.then9 ], [ %retval2.0, %if.end99 ] %31 = load ptr, ptr @mpd_free, align 8 - call void %31(ptr noundef nonnull %v.0.sink) #12 + call void %31(ptr noundef nonnull %v.0.sink) #11 br label %return return: ; preds = %return.sink.split, %if.end99, %if.then @@ -988,10 +988,10 @@ return: ; preds = %return.sink.split, ret i32 %retval.0 } -declare hidden ptr @mpd_alloc(i64 noundef, i64 noundef) local_unnamed_addr #3 +declare hidden ptr @mpd_alloc(i64 noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define hidden void @_mpd_baseshiftl(ptr noundef %dest, ptr nocapture noundef readonly %src, i64 noundef %n, i64 noundef %m, i64 noundef %shift) local_unnamed_addr #2 { +define hidden void @_mpd_baseshiftl(ptr noundef %dest, ptr nocapture noundef readonly %src, i64 noundef %n, i64 noundef %m, i64 noundef %shift) local_unnamed_addr #1 { entry: %l = alloca i64, align 8 %lprev = alloca i64, align 8 @@ -1069,12 +1069,12 @@ while.body: ; preds = %while.cond.preheade br i1 %cmp17.not, label %if.end21, label %while.body, !llvm.loop !25 if.end21: ; preds = %while.body, %while.cond.preheader, %for.end - tail call void @mpd_uint_zero(ptr noundef %dest, i64 noundef %div.i) #12 + tail call void @mpd_uint_zero(ptr noundef %dest, i64 noundef %div.i) #11 ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define internal fastcc void @_mpd_divmod_pow10(ptr nocapture noundef writeonly %q, ptr nocapture noundef writeonly %r, i64 noundef %v, i64 noundef %exp) unnamed_addr #4 { +define internal fastcc void @_mpd_divmod_pow10(ptr nocapture noundef writeonly %q, ptr nocapture noundef writeonly %r, i64 noundef %v, i64 noundef %exp) unnamed_addr #3 { entry: %cmp = icmp ult i64 %exp, 10 br i1 %cmp, label %if.then, label %if.else37 @@ -1084,7 +1084,7 @@ if.then: ; preds = %entry br i1 %cmp1, label %if.then2, label %if.else if.then2: ; preds = %if.then - switch i64 %exp, label %if.end84 [ + switch i64 %exp, label %default.unreachable [ i64 0, label %sw.bb i64 1, label %sw.bb3 i64 2, label %sw.bb4 @@ -1125,7 +1125,7 @@ sw.bb12: ; preds = %if.then2 br label %if.end84.sink.split if.else: ; preds = %if.then - switch i64 %exp, label %if.end84 [ + switch i64 %exp, label %default.unreachable [ i64 5, label %sw.bb16 i64 6, label %sw.bb20 i64 7, label %sw.bb24 @@ -1173,7 +1173,7 @@ if.else37: ; preds = %entry br i1 %cmp38, label %if.then39, label %if.else61 if.then39: ; preds = %if.else37 - switch i64 %exp, label %if.end84 [ + switch i64 %exp, label %default.unreachable [ i64 10, label %sw.bb40 i64 11, label %sw.bb44 i64 12, label %sw.bb48 @@ -1261,16 +1261,19 @@ sw.bb78: ; preds = %if.else61 %sub81 = add i64 %mul80.neg, %v br label %if.end84.sink.split +default.unreachable: ; preds = %if.then39, %if.else, %if.then2 + unreachable + if.end84.sink.split: ; preds = %sw.bb16, %sw.bb20, %sw.bb24, %sw.bb28, %sw.bb32, %sw.bb, %sw.bb3, %sw.bb4, %sw.bb8, %sw.bb12, %sw.bb62, %sw.bb66, %sw.bb70, %sw.bb74, %sw.bb78, %sw.bb40, %sw.bb44, %sw.bb48, %sw.bb52, %sw.bb56 %sub59.sink = phi i64 [ %sub59, %sw.bb56 ], [ %sub55, %sw.bb52 ], [ %sub51, %sw.bb48 ], [ %sub47, %sw.bb44 ], [ %sub43, %sw.bb40 ], [ %sub81, %sw.bb78 ], [ %sub77, %sw.bb74 ], [ %sub73, %sw.bb70 ], [ %sub69, %sw.bb66 ], [ %sub65, %sw.bb62 ], [ %sub15, %sw.bb12 ], [ %sub11, %sw.bb8 ], [ %sub7, %sw.bb4 ], [ %sub, %sw.bb3 ], [ 0, %sw.bb ], [ %sub35, %sw.bb32 ], [ %sub31, %sw.bb28 ], [ %sub27, %sw.bb24 ], [ %sub23, %sw.bb20 ], [ %sub19, %sw.bb16 ] store i64 %sub59.sink, ptr %r, align 8 br label %if.end84 -if.end84: ; preds = %if.end84.sink.split, %if.then39, %if.else61, %if.then2, %if.else +if.end84: ; preds = %if.end84.sink.split, %if.else61 ret void } -declare hidden void @mpd_uint_zero(ptr noundef, i64 noundef) local_unnamed_addr #3 +declare hidden void @mpd_uint_zero(ptr noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable define hidden i64 @_mpd_baseshiftr(ptr nocapture noundef writeonly %dest, ptr nocapture noundef readonly %src, i64 noundef %slen, i64 noundef %shift) local_unnamed_addr #0 { @@ -1616,36 +1619,35 @@ for.end: ; preds = %for.body, %entry } ; Function Attrs: nofree nounwind -declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #5 +declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #4 ; Function Attrs: nofree nounwind -declare noundef i32 @fputc(i32 noundef, ptr nocapture noundef) local_unnamed_addr #5 +declare noundef i32 @fputc(i32 noundef, ptr nocapture noundef) local_unnamed_addr #4 ; Function Attrs: noreturn nounwind -declare void @abort() local_unnamed_addr #6 +declare void @abort() local_unnamed_addr #5 ; Function Attrs: nofree nounwind -declare noundef i64 @fwrite(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #7 +declare noundef i64 @fwrite(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #6 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #9 +declare i64 @llvm.umax.i64(i64, i64) #8 attributes #0 = { nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "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 = { nofree nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "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 #2 = { nounwind uwtable "frame-pointer"="all" "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 = { "frame-pointer"="all" "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 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "frame-pointer"="all" "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 = { nofree nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { nofree nounwind } -attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #10 = { cold } -attributes #11 = { noreturn nounwind } -attributes #12 = { nounwind } +attributes #1 = { nounwind uwtable "frame-pointer"="all" "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 #2 = { "frame-pointer"="all" "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 norecurse nosync nounwind willreturn memory(argmem: write) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nofree nounwind "frame-pointer"="all" "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 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nofree nounwind } +attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #9 = { cold } +attributes #10 = { noreturn nounwind } +attributes #11 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/cpython/optimized/codecs.ll b/bench/cpython/optimized/codecs.ll index 94eaaa8fc40..c60e60a015b 100644 --- a/bench/cpython/optimized/codecs.ll +++ b/bench/cpython/optimized/codecs.ll @@ -977,7 +977,7 @@ return: ; preds = %if.then3, %if.then8 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @_PyCodecRegistry_Init() unnamed_addr #0 { +define internal fastcc noundef i32 @_PyCodecRegistry_Init() unnamed_addr #0 { entry: %0 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_Py_tss_tstate) %1 = load ptr, ptr %0, align 8 @@ -1455,7 +1455,7 @@ declare ptr @PyErr_Format(ptr noundef, ptr noundef, ...) local_unnamed_addr #1 declare i32 @PyDict_SetItem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define dso_local i32 @PyCodec_KnownEncoding(ptr noundef %encoding) local_unnamed_addr #0 { +define dso_local noundef i32 @PyCodec_KnownEncoding(ptr noundef %encoding) local_unnamed_addr #0 { entry: %call = tail call ptr @_PyCodec_Lookup(ptr noundef %encoding) %tobool.not = icmp eq ptr %call, null @@ -1792,7 +1792,7 @@ codec_getstreamcodec.exit: ; preds = %entry, %if.end5.i, } ; Function Attrs: nounwind uwtable -define dso_local ptr @PyCodec_Encode(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { +define dso_local noundef ptr @PyCodec_Encode(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { entry: %call.i.i = tail call ptr @_PyCodec_Lookup(ptr noundef %encoding) %cmp.i.i = icmp eq ptr %call.i.i, null @@ -1836,7 +1836,7 @@ return: ; preds = %entry, %if.end } ; Function Attrs: nounwind uwtable -define internal fastcc ptr @_PyCodec_EncodeInternal(ptr noundef %object, ptr noundef %encoder, ptr noundef %encoding, ptr noundef %errors) unnamed_addr #0 { +define internal fastcc noundef ptr @_PyCodec_EncodeInternal(ptr noundef %object, ptr noundef %encoder, ptr noundef %encoding, ptr noundef %errors) unnamed_addr #0 { entry: %cmp.not.i = icmp eq ptr %errors, null %conv1.i = select i1 %cmp.not.i, i64 1, i64 2 @@ -2023,7 +2023,7 @@ return: ; preds = %return.sink.split, } ; Function Attrs: nounwind uwtable -define dso_local ptr @PyCodec_Decode(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { +define dso_local noundef ptr @PyCodec_Decode(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { entry: %call.i.i = tail call ptr @_PyCodec_Lookup(ptr noundef %encoding) %cmp.i.i = icmp eq ptr %call.i.i, null @@ -2067,7 +2067,7 @@ return: ; preds = %entry, %if.end } ; Function Attrs: nounwind uwtable -define internal fastcc ptr @_PyCodec_DecodeInternal(ptr noundef %object, ptr noundef %decoder, ptr noundef %encoding, ptr noundef %errors) unnamed_addr #0 { +define internal fastcc noundef ptr @_PyCodec_DecodeInternal(ptr noundef %object, ptr noundef %decoder, ptr noundef %encoding, ptr noundef %errors) unnamed_addr #0 { entry: %cmp.not.i = icmp eq ptr %errors, null %conv1.i = select i1 %cmp.not.i, i64 1, i64 2 @@ -2359,7 +2359,7 @@ declare i32 @PyObject_GetOptionalAttr(ptr noundef, ptr noundef, ptr noundef) loc declare i32 @PyObject_IsTrue(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define hidden ptr @_PyCodec_EncodeText(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { +define hidden noundef ptr @_PyCodec_EncodeText(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { entry: %call.i.i = tail call ptr @_PyCodec_LookupTextEncoding(ptr noundef %encoding, ptr noundef nonnull @.str.23) %cmp.i.i = icmp eq ptr %call.i.i, null @@ -2403,7 +2403,7 @@ return: ; preds = %entry, %if.end } ; Function Attrs: nounwind uwtable -define hidden ptr @_PyCodec_DecodeText(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { +define hidden noundef ptr @_PyCodec_DecodeText(ptr noundef %object, ptr noundef %encoding, ptr noundef %errors) local_unnamed_addr #0 { entry: %call.i.i = tail call ptr @_PyCodec_LookupTextEncoding(ptr noundef %encoding, ptr noundef nonnull @.str.24) %cmp.i.i = icmp eq ptr %call.i.i, null @@ -2531,7 +2531,7 @@ return: ; preds = %if.end8, %if.end, % declare i32 @PyDict_GetItemStringRef(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define dso_local noalias ptr @PyCodec_StrictErrors(ptr noundef %exc) local_unnamed_addr #0 { +define dso_local noalias noundef ptr @PyCodec_StrictErrors(ptr noundef %exc) local_unnamed_addr #0 { entry: %0 = getelementptr i8, ptr %exc, i64 8 %exc.val3 = load ptr, ptr %0, align 8 @@ -4261,7 +4261,7 @@ declare ptr @PyTuple_New(i64 noundef) local_unnamed_addr #1 declare i32 @PyType_IsSubtype(ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal noalias ptr @strict_errors(ptr nocapture readnone %self, ptr noundef %exc) #0 { +define internal noalias noundef ptr @strict_errors(ptr nocapture readnone %self, ptr noundef %exc) #0 { entry: %0 = getelementptr i8, ptr %exc, i64 8 %exc.val3.i = load ptr, ptr %0, align 8 @@ -4493,8 +4493,8 @@ if.end35.i: ; preds = %if.end29.i %call36.i = call ptr @PyBytes_AsString(ptr noundef nonnull %call32.i) #9 %17 = load i64, ptr %start.i, align 8 %18 = load i64, ptr %end.i, align 8 - %cmp37147.i = icmp slt i64 %17, %18 - br i1 %cmp37147.i, label %for.body.lr.ph.i, label %for.end.i + %cmp37148.i = icmp slt i64 %17, %18 + br i1 %cmp37148.i, label %for.body.lr.ph.i, label %for.end.i for.body.lr.ph.i: ; preds = %if.end35.i %state.i.i = getelementptr inbounds %struct.PyASCIIObject, ptr %call8.i, i64 0, i32 3 @@ -4503,8 +4503,8 @@ for.body.lr.ph.i: ; preds = %if.end35.i br label %for.body.i for.body.i: ; preds = %for.inc.i, %for.body.lr.ph.i - %outp.0149.i = phi ptr [ %call36.i, %for.body.lr.ph.i ], [ %outp.1.i, %for.inc.i ] - %i.0148.i = phi i64 [ %17, %for.body.lr.ph.i ], [ %inc.i, %for.inc.i ] + %outp.0150.i = phi ptr [ %call36.i, %for.body.lr.ph.i ], [ %outp.1.i, %for.inc.i ] + %i.0149.i = phi i64 [ %17, %for.body.lr.ph.i ], [ %inc.i, %for.inc.i ] %bf.load.i.i = load i32, ptr %state.i.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i, 2 %bf.clear.i.i = and i32 %bf.lshr.i.i, 7 @@ -4530,7 +4530,7 @@ if.end.i.i.i: ; preds = %if.then.i.i PyUnicode_DATA.exit.i.i: ; preds = %if.end.i.i.i, %if.then.i.i.i %retval.0.i.i.i = phi ptr [ %retval.0.i.i.i.i, %if.then.i.i.i ], [ %op.val3.i.i.i, %if.end.i.i.i ] - %arrayidx.i.i = getelementptr i8, ptr %retval.0.i.i.i, i64 %i.0148.i + %arrayidx.i.i = getelementptr i8, ptr %retval.0.i.i.i, i64 %i.0149.i %21 = load i8, ptr %arrayidx.i.i, align 1 %conv.i.i = zext i8 %21 to i32 br label %PyUnicode_READ_CHAR.exit.i @@ -4550,7 +4550,7 @@ if.end.i15.i.i: ; preds = %if.then3.i.i PyUnicode_DATA.exit17.i.i: ; preds = %if.end.i15.i.i, %if.then.i9.i.i %retval.0.i14.i.i = phi ptr [ %retval.0.i.i13.i.i, %if.then.i9.i.i ], [ %op.val3.i16.i.i, %if.end.i15.i.i ] - %arrayidx5.i.i = getelementptr i16, ptr %retval.0.i14.i.i, i64 %i.0148.i + %arrayidx5.i.i = getelementptr i16, ptr %retval.0.i14.i.i, i64 %i.0149.i %23 = load i16, ptr %arrayidx5.i.i, align 2 %conv6.i.i = zext i16 %23 to i32 br label %PyUnicode_READ_CHAR.exit.i @@ -4570,7 +4570,7 @@ if.end.i26.i.i: ; preds = %if.end7.i.i PyUnicode_DATA.exit28.i.i: ; preds = %if.end.i26.i.i, %if.then.i20.i.i %retval.0.i25.i.i = phi ptr [ %retval.0.i.i24.i.i, %if.then.i20.i.i ], [ %op.val3.i27.i.i, %if.end.i26.i.i ] - %arrayidx9.i.i = getelementptr i32, ptr %retval.0.i25.i.i, i64 %i.0148.i + %arrayidx9.i.i = getelementptr i32, ptr %retval.0.i25.i.i, i64 %i.0149.i %25 = load i32, ptr %arrayidx9.i.i, align 4 br label %PyUnicode_READ_CHAR.exit.i @@ -4615,7 +4615,7 @@ if.then1.i287.i: ; preds = %if.end.i284.i br label %PyCodec_SurrogatePassErrors.exit if.end44.i: ; preds = %PyUnicode_READ_CHAR.exit.i - switch i32 %call20.i, label %for.inc.i [ + switch i32 %call20.i, label %default.unreachable.i [ i32 0, label %sw.bb.i i32 2, label %sw.bb54.i i32 1, label %sw.bb60.i @@ -4624,72 +4624,75 @@ if.end44.i: ; preds = %PyUnicode_READ_CHAR ] sw.bb.i: ; preds = %if.end44.i - %incdec.ptr.i = getelementptr i8, ptr %outp.0149.i, i64 1 - store i8 -19, ptr %outp.0149.i, align 1 + %incdec.ptr.i = getelementptr i8, ptr %outp.0150.i, i64 1 + store i8 -19, ptr %outp.0150.i, align 1 %shr46.i = lshr i32 %retval.0.i.i, 6 %31 = trunc i32 %shr46.i to i8 %32 = and i8 %31, 63 %conv48.i = or disjoint i8 %32, -128 - %incdec.ptr49.i = getelementptr i8, ptr %outp.0149.i, i64 2 + %incdec.ptr49.i = getelementptr i8, ptr %outp.0150.i, i64 2 store i8 %conv48.i, ptr %incdec.ptr.i, align 1 %33 = trunc i32 %retval.0.i.i to i8 %34 = and i8 %33, 63 %conv52.i = or disjoint i8 %34, -128 - %incdec.ptr53.i = getelementptr i8, ptr %outp.0149.i, i64 3 + %incdec.ptr53.i = getelementptr i8, ptr %outp.0150.i, i64 3 store i8 %conv52.i, ptr %incdec.ptr49.i, align 1 br label %for.inc.i sw.bb54.i: ; preds = %if.end44.i %conv55.i = trunc i32 %retval.0.i.i to i8 - %incdec.ptr56.i = getelementptr i8, ptr %outp.0149.i, i64 1 - store i8 %conv55.i, ptr %outp.0149.i, align 1 + %incdec.ptr56.i = getelementptr i8, ptr %outp.0150.i, i64 1 + store i8 %conv55.i, ptr %outp.0150.i, align 1 %shr57.i = lshr i32 %retval.0.i.i, 8 %conv58.i = trunc i32 %shr57.i to i8 - %incdec.ptr59.i = getelementptr i8, ptr %outp.0149.i, i64 2 + %incdec.ptr59.i = getelementptr i8, ptr %outp.0150.i, i64 2 store i8 %conv58.i, ptr %incdec.ptr56.i, align 1 br label %for.inc.i sw.bb60.i: ; preds = %if.end44.i %shr61.i = lshr i32 %retval.0.i.i, 8 %conv62.i = trunc i32 %shr61.i to i8 - %incdec.ptr63.i = getelementptr i8, ptr %outp.0149.i, i64 1 - store i8 %conv62.i, ptr %outp.0149.i, align 1 + %incdec.ptr63.i = getelementptr i8, ptr %outp.0150.i, i64 1 + store i8 %conv62.i, ptr %outp.0150.i, align 1 %conv64.i = trunc i32 %retval.0.i.i to i8 - %incdec.ptr65.i = getelementptr i8, ptr %outp.0149.i, i64 2 + %incdec.ptr65.i = getelementptr i8, ptr %outp.0150.i, i64 2 store i8 %conv64.i, ptr %incdec.ptr63.i, align 1 br label %for.inc.i sw.bb66.i: ; preds = %if.end44.i %conv67.i = trunc i32 %retval.0.i.i to i8 - %incdec.ptr68.i = getelementptr i8, ptr %outp.0149.i, i64 1 - store i8 %conv67.i, ptr %outp.0149.i, align 1 + %incdec.ptr68.i = getelementptr i8, ptr %outp.0150.i, i64 1 + store i8 %conv67.i, ptr %outp.0150.i, align 1 %shr69.i = lshr i32 %retval.0.i.i, 8 %conv70.i = trunc i32 %shr69.i to i8 - %incdec.ptr71.i = getelementptr i8, ptr %outp.0149.i, i64 2 + %incdec.ptr71.i = getelementptr i8, ptr %outp.0150.i, i64 2 store i8 %conv70.i, ptr %incdec.ptr68.i, align 1 - %incdec.ptr74.i = getelementptr i8, ptr %outp.0149.i, i64 3 + %incdec.ptr74.i = getelementptr i8, ptr %outp.0150.i, i64 3 store i8 0, ptr %incdec.ptr71.i, align 1 - %incdec.ptr77.i = getelementptr i8, ptr %outp.0149.i, i64 4 + %incdec.ptr77.i = getelementptr i8, ptr %outp.0150.i, i64 4 store i8 0, ptr %incdec.ptr74.i, align 1 br label %for.inc.i sw.bb78.i: ; preds = %if.end44.i - %incdec.ptr81.i = getelementptr i8, ptr %outp.0149.i, i64 1 - store i8 0, ptr %outp.0149.i, align 1 - %incdec.ptr84.i = getelementptr i8, ptr %outp.0149.i, i64 2 + %incdec.ptr81.i = getelementptr i8, ptr %outp.0150.i, i64 1 + store i8 0, ptr %outp.0150.i, align 1 + %incdec.ptr84.i = getelementptr i8, ptr %outp.0150.i, i64 2 store i8 0, ptr %incdec.ptr81.i, align 1 %shr85.i = lshr i32 %retval.0.i.i, 8 %conv86.i = trunc i32 %shr85.i to i8 - %incdec.ptr87.i = getelementptr i8, ptr %outp.0149.i, i64 3 + %incdec.ptr87.i = getelementptr i8, ptr %outp.0150.i, i64 3 store i8 %conv86.i, ptr %incdec.ptr84.i, align 1 %conv88.i = trunc i32 %retval.0.i.i to i8 - %incdec.ptr89.i = getelementptr i8, ptr %outp.0149.i, i64 4 + %incdec.ptr89.i = getelementptr i8, ptr %outp.0150.i, i64 4 store i8 %conv88.i, ptr %incdec.ptr87.i, align 1 br label %for.inc.i -for.inc.i: ; preds = %sw.bb78.i, %sw.bb66.i, %sw.bb60.i, %sw.bb54.i, %sw.bb.i, %if.end44.i - %outp.1.i = phi ptr [ %outp.0149.i, %if.end44.i ], [ %incdec.ptr89.i, %sw.bb78.i ], [ %incdec.ptr77.i, %sw.bb66.i ], [ %incdec.ptr65.i, %sw.bb60.i ], [ %incdec.ptr59.i, %sw.bb54.i ], [ %incdec.ptr53.i, %sw.bb.i ] - %inc.i = add nsw i64 %i.0148.i, 1 +default.unreachable.i: ; preds = %if.end44.i + unreachable + +for.inc.i: ; preds = %sw.bb78.i, %sw.bb66.i, %sw.bb60.i, %sw.bb54.i, %sw.bb.i + %outp.1.i = phi ptr [ %incdec.ptr89.i, %sw.bb78.i ], [ %incdec.ptr77.i, %sw.bb66.i ], [ %incdec.ptr65.i, %sw.bb60.i ], [ %incdec.ptr59.i, %sw.bb54.i ], [ %incdec.ptr53.i, %sw.bb.i ] + %inc.i = add nsw i64 %i.0149.i, 1 %35 = load i64, ptr %end.i, align 8 %cmp37.i = icmp slt i64 %inc.i, %35 br i1 %cmp37.i, label %for.body.i, label %for.end.i, !llvm.loop !20 diff --git a/bench/cpython/optimized/compile.ll b/bench/cpython/optimized/compile.ll index 29f42a3f55a..f5f93a737b6 100644 --- a/bench/cpython/optimized/compile.ll +++ b/bench/cpython/optimized/compile.ll @@ -1330,7 +1330,6 @@ target triple = "x86_64-unknown-linux-gnu" @.str.383 = private unnamed_addr constant [34 x i8] c"can't use starred expression here\00", align 1 @.str.384 = private unnamed_addr constant [35 x i8] c"unary op %d should not be possible\00", align 1 @.str.385 = private unnamed_addr constant [63 x i8] c"asynchronous comprehension outside of an asynchronous function\00", align 1 -@.str.386 = private unnamed_addr constant [30 x i8] c"unknown comprehension type %d\00", align 1 @.str.387 = private unnamed_addr constant [61 x i8] c"'%.200s' object is not callable; perhaps you missed a comma?\00", align 1 @.str.388 = private unnamed_addr constant [37 x i8] c"Unrecognized conversion character %d\00", align 1 @.str.389 = private unnamed_addr constant [6 x i8] c"super\00", align 1 @@ -3521,7 +3520,7 @@ return: ; preds = %entry, %entry, %ent } ; Function Attrs: nounwind uwtable -define hidden i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %idx, ptr nocapture noundef %array, ptr nocapture noundef %alloc, i32 noundef %default_alloc, i64 noundef %item_size) local_unnamed_addr #1 { +define hidden noundef i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %idx, ptr nocapture noundef %array, ptr nocapture noundef %alloc, i32 noundef %default_alloc, i64 noundef %item_size) local_unnamed_addr #1 { entry: %0 = load ptr, ptr %array, align 8 %cmp = icmp eq ptr %0, null @@ -3532,12 +3531,12 @@ if.then: ; preds = %entry %add = select i1 %cmp1.not, i32 0, i32 %idx %spec.select = add i32 %add, %default_alloc %conv = sext i32 %spec.select to i64 - %call = tail call ptr @PyObject_Calloc(i64 noundef %conv, i64 noundef %item_size) #12 + %call = tail call ptr @PyObject_Calloc(i64 noundef %conv, i64 noundef %item_size) #11 %cmp3 = icmp eq ptr %call, null br i1 %cmp3, label %if.then5, label %if.end7 if.then5: ; preds = %if.then - %call6 = tail call ptr @PyErr_NoMemory() #12 + %call6 = tail call ptr @PyErr_NoMemory() #11 br label %return if.end7: ; preds = %if.then @@ -3562,16 +3561,16 @@ if.then10: ; preds = %if.else br i1 %cmp20, label %if.then22, label %if.end24 if.then22: ; preds = %if.then10 - %call23 = tail call ptr @PyErr_NoMemory() #12 + %call23 = tail call ptr @PyErr_NoMemory() #11 br label %return if.end24: ; preds = %if.then10 - %call25 = tail call ptr @PyObject_Realloc(ptr noundef nonnull %0, i64 noundef %mul19) #12 + %call25 = tail call ptr @PyObject_Realloc(ptr noundef nonnull %0, i64 noundef %mul19) #11 %cmp26 = icmp eq ptr %call25, null br i1 %cmp26, label %if.then28, label %if.end30 if.then28: ; preds = %if.end24 - %call29 = tail call ptr @PyErr_NoMemory() #12 + %call29 = tail call ptr @PyErr_NoMemory() #11 br label %return if.end30: ; preds = %if.end24 @@ -3601,7 +3600,7 @@ declare ptr @PyObject_Realloc(ptr noundef, i64 noundef) local_unnamed_addr #2 declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3 ; Function Attrs: nounwind uwtable -define hidden i32 @_PyCompile_InstructionSequence_UseLabel(ptr nocapture noundef %seq, i32 noundef %lbl) local_unnamed_addr #1 { +define hidden noundef i32 @_PyCompile_InstructionSequence_UseLabel(ptr nocapture noundef %seq, i32 noundef %lbl) local_unnamed_addr #1 { entry: %s_labelmap_size = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %seq, i64 0, i32 4 %0 = load i32, ptr %s_labelmap_size, align 8 @@ -3645,7 +3644,7 @@ return: ; preds = %entry, %for.end } ; Function Attrs: nounwind uwtable -define hidden i32 @_PyCompile_InstructionSequence_Addop(ptr nocapture noundef %seq, i32 noundef %opcode, i32 noundef %oparg, i64 %loc.coerce0, i64 %loc.coerce1) local_unnamed_addr #1 { +define hidden noundef i32 @_PyCompile_InstructionSequence_Addop(ptr nocapture noundef %seq, i32 noundef %opcode, i32 noundef %oparg, i64 %loc.coerce0, i64 %loc.coerce1) local_unnamed_addr #1 { entry: %s_used.i = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %seq, i64 0, i32 2 %0 = load i32, ptr %s_used.i, align 4 @@ -3717,21 +3716,21 @@ return: ; preds = %entry, %compiler_mo define internal fastcc ptr @new_compiler(ptr noundef %mod, ptr noundef %filename, ptr noundef %pflags, i32 noundef %optimize, ptr noundef %arena) unnamed_addr #1 { entry: %local_flags.i = alloca %struct.PyCompilerFlags, align 8 - %call = tail call ptr @PyMem_Calloc(i64 noundef 1, i64 noundef 88) #12 + %call = tail call ptr @PyMem_Calloc(i64 noundef 1, i64 noundef 88) #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %local_flags.i) store i64 55834574848, ptr %local_flags.i, align 8 - %call.i = tail call ptr @PyDict_New() #12 + %call.i = tail call ptr @PyDict_New() #11 %c_const_cache.i = getelementptr inbounds %struct.compiler, ptr %call, i64 0, i32 7 store ptr %call.i, ptr %c_const_cache.i, align 8 %tobool.not.i = icmp eq ptr %call.i, null br i1 %tobool.not.i, label %if.then3, label %if.end.i if.end.i: ; preds = %if.end - %call2.i = tail call ptr @PyList_New(i64 noundef 0) #12 + %call2.i = tail call ptr @PyList_New(i64 noundef 0) #11 %c_stack.i = getelementptr inbounds %struct.compiler, ptr %call, i64 0, i32 9 store ptr %call2.i, ptr %c_stack.i, align 8 %tobool4.not.i = icmp eq ptr %call2.i, null @@ -3752,7 +3751,7 @@ _Py_NewRef.exit.i: ; preds = %if.end.i.i.i, %if.e %c_arena.i = getelementptr inbounds %struct.compiler, ptr %call, i64 0, i32 10 store ptr %arena, ptr %c_arena.i, align 8 %c_future.i = getelementptr inbounds %struct.compiler, ptr %call, i64 0, i32 2 - %call8.i = tail call i32 @_PyFuture_FromAST(ptr noundef %mod, ptr noundef nonnull %filename, ptr noundef nonnull %c_future.i) #12 + %call8.i = tail call i32 @_PyFuture_FromAST(ptr noundef %mod, ptr noundef nonnull %filename, ptr noundef nonnull %c_future.i) #11 %tobool9.not.i = icmp eq i32 %call8.i, 0 br i1 %tobool9.not.i, label %if.then3, label %if.end11.i @@ -3771,7 +3770,7 @@ if.end11.i: ; preds = %_Py_NewRef.exit.i br i1 %cmp.i, label %cond.true.i, label %cond.end.i cond.true.i: ; preds = %if.end11.i - %call19.i = tail call ptr @_Py_GetConfig() #12 + %call19.i = tail call ptr @_Py_GetConfig() #11 %optimization_level.i = getelementptr inbounds %struct.PyConfig, ptr %call19.i, i64 0, i32 29 %4 = load i32, ptr %optimization_level.i, align 4 br label %cond.end.i @@ -3782,25 +3781,25 @@ cond.end.i: ; preds = %cond.true.i, %if.en store i32 %cond.i, ptr %c_optimize.i, align 4 %c_nestlevel.i = getelementptr inbounds %struct.compiler, ptr %call, i64 0, i32 6 store i32 0, ptr %c_nestlevel.i, align 4 - %call21.i = tail call i32 @_PyAST_Optimize(ptr noundef %mod, ptr noundef %arena, i32 noundef %cond.i, i32 noundef %or.i) #12 + %call21.i = tail call i32 @_PyAST_Optimize(ptr noundef %mod, ptr noundef %arena, i32 noundef %cond.i, i32 noundef %or.i) #11 %tobool22.not.i = icmp eq i32 %call21.i, 0 br i1 %tobool22.not.i, label %if.then3, label %if.end24.i if.end24.i: ; preds = %cond.end.i - %call26.i = tail call ptr @_PySymtable_Build(ptr noundef %mod, ptr noundef nonnull %filename, ptr noundef nonnull %c_future.i) #12 + %call26.i = tail call ptr @_PySymtable_Build(ptr noundef %mod, ptr noundef nonnull %filename, ptr noundef nonnull %c_future.i) #11 %c_st.i = getelementptr inbounds %struct.compiler, ptr %call, i64 0, i32 1 store ptr %call26.i, ptr %c_st.i, align 8 %cmp28.i = icmp eq ptr %call26.i, null br i1 %cmp28.i, label %if.then29.i, label %compiler_setup.exit if.then29.i: ; preds = %if.end24.i - %call30.i = tail call ptr @PyErr_Occurred() #12 + %call30.i = tail call ptr @PyErr_Occurred() #11 %tobool31.not.i = icmp eq ptr %call30.i, null br i1 %tobool31.not.i, label %if.then32.i, label %if.then3 if.then32.i: ; preds = %if.then29.i %5 = load ptr, ptr @PyExc_SystemError, align 8 - tail call void @PyErr_SetString(ptr noundef %5, ptr noundef nonnull @.str.328) #12 + tail call void @PyErr_SetString(ptr noundef %5, ptr noundef nonnull @.str.328) #11 br label %if.then3 compiler_setup.exit: ; preds = %if.end24.i @@ -3826,7 +3825,7 @@ entry: br i1 %tobool.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call void @_PySymtable_Free(ptr noundef nonnull %0) #12 + tail call void @_PySymtable_Free(ptr noundef nonnull %0) #11 br label %if.end if.end: ; preds = %if.then, %entry @@ -3847,7 +3846,7 @@ if.end.i.i: ; preds = %if.then.i br i1 %cmp.i.i, label %if.then1.i.i, label %Py_XDECREF.exit if.then1.i.i: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %1) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %1) #11 br label %Py_XDECREF.exit Py_XDECREF.exit: ; preds = %if.end, %if.then.i, %if.end.i.i, %if.then1.i.i @@ -3869,7 +3868,7 @@ if.end.i.i9: ; preds = %if.then.i7 br i1 %cmp.i.i11, label %if.then1.i.i12, label %Py_XDECREF.exit13 if.then1.i.i12: ; preds = %if.end.i.i9 - tail call void @_Py_Dealloc(ptr noundef nonnull %4) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %4) #11 br label %Py_XDECREF.exit13 Py_XDECREF.exit13: ; preds = %Py_XDECREF.exit, %if.then.i7, %if.end.i.i9, %if.then1.i.i12 @@ -3891,11 +3890,11 @@ if.end.i.i17: ; preds = %if.then.i15 br i1 %cmp.i.i19, label %if.then1.i.i20, label %Py_XDECREF.exit21 if.then1.i.i20: ; preds = %if.end.i.i17 - tail call void @_Py_Dealloc(ptr noundef nonnull %7) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %7) #11 br label %Py_XDECREF.exit21 Py_XDECREF.exit21: ; preds = %Py_XDECREF.exit13, %if.then.i15, %if.end.i.i17, %if.then1.i.i20 - tail call void @PyMem_Free(ptr noundef nonnull %c) #12 + tail call void @PyMem_Free(ptr noundef nonnull %c) #11 ret void } @@ -3903,7 +3902,7 @@ Py_XDECREF.exit21: ; preds = %Py_XDECREF.exit13, define hidden i32 @_PyCompile_AstOptimize(ptr noundef %mod, ptr noundef %filename, ptr nocapture noundef readonly %cf, i32 noundef %optimize, ptr noundef %arena) local_unnamed_addr #1 { entry: %future = alloca %struct.PyFutureFeatures, align 4 - %call = call i32 @_PyFuture_FromAST(ptr noundef %mod, ptr noundef %filename, ptr noundef nonnull %future) #12 + %call = call i32 @_PyFuture_FromAST(ptr noundef %mod, ptr noundef %filename, ptr noundef nonnull %future) #11 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %return, label %if.end @@ -3915,14 +3914,14 @@ if.end: ; preds = %entry br i1 %cmp, label %if.then1, label %if.end3 if.then1: ; preds = %if.end - %call2 = call ptr @_Py_GetConfig() #12 + %call2 = call ptr @_Py_GetConfig() #11 %optimization_level = getelementptr inbounds %struct.PyConfig, ptr %call2, i64 0, i32 29 %2 = load i32, ptr %optimization_level, align 4 br label %if.end3 if.end3: ; preds = %if.then1, %if.end %optimize.addr.0 = phi i32 [ %2, %if.then1 ], [ %optimize, %if.end ] - %call4 = call i32 @_PyAST_Optimize(ptr noundef %mod, ptr noundef %arena, i32 noundef %optimize.addr.0, i32 noundef %or) #12 + %call4 = call i32 @_PyAST_Optimize(ptr noundef %mod, ptr noundef %arena, i32 noundef %optimize.addr.0, i32 noundef %or) #11 %tobool5.not = icmp eq i32 %call4, 0 %. = sext i1 %tobool5.not to i32 br label %return @@ -3938,15 +3937,15 @@ declare ptr @_Py_GetConfig() local_unnamed_addr #2 declare i32 @_PyAST_Optimize(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable -define dso_local i32 @PyCompile_OpcodeStackEffectWithJump(i32 noundef %opcode, i32 noundef %oparg, i32 noundef %jump) local_unnamed_addr #5 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable +define dso_local i32 @PyCompile_OpcodeStackEffectWithJump(i32 noundef %opcode, i32 noundef %oparg, i32 noundef %jump) local_unnamed_addr #0 { entry: %call = tail call fastcc i32 @stack_effect(i32 noundef %opcode, i32 noundef %oparg, i32 noundef %jump), !range !8 ret i32 %call } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable -define internal fastcc i32 @stack_effect(i32 noundef %opcode, i32 noundef %oparg, i32 noundef %jump) unnamed_addr #5 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable +define internal fastcc i32 @stack_effect(i32 noundef %opcode, i32 noundef %oparg, i32 noundef %jump) unnamed_addr #0 { entry: %or.cond = icmp ult i32 %opcode, 255 br i1 %or.cond, label %if.then, label %if.end41 @@ -4040,8 +4039,8 @@ return: ; preds = %if.end41, %if.end41 ret i32 %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable -define dso_local i32 @PyCompile_OpcodeStackEffect(i32 noundef %opcode, i32 noundef %oparg) local_unnamed_addr #5 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable +define dso_local i32 @PyCompile_OpcodeStackEffect(i32 noundef %opcode, i32 noundef %oparg) local_unnamed_addr #0 { entry: %call = tail call fastcc i32 @stack_effect(i32 noundef %opcode, i32 noundef %oparg, i32 noundef -1), !range !8 ret i32 %call @@ -4127,7 +4126,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define dso_local i32 @_PyCompile_OpcodeHasExc(i32 noundef %opcode) local_unnamed_addr #0 { +define dso_local noundef i32 @_PyCompile_OpcodeHasExc(i32 noundef %opcode) local_unnamed_addr #0 { entry: %0 = add i32 %opcode, -264 %narrow = icmp ult i32 %0, 3 @@ -4136,15 +4135,15 @@ entry: } ; Function Attrs: nounwind uwtable -define hidden i32 @_PyCompile_ConstCacheMergeOne(ptr noundef %const_cache, ptr nocapture noundef %obj) local_unnamed_addr #1 { +define hidden noundef i32 @_PyCompile_ConstCacheMergeOne(ptr noundef %const_cache, ptr nocapture noundef %obj) local_unnamed_addr #1 { entry: %0 = load ptr, ptr %obj, align 8 - %call = tail call ptr @_PyCode_ConstantKey(ptr noundef %0) #12 + %call = tail call ptr @_PyCode_ConstantKey(ptr noundef %0) #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call1 = tail call ptr @PyDict_SetDefault(ptr noundef %const_cache, ptr noundef nonnull %call, ptr noundef nonnull %call) #12 + %call1 = tail call ptr @PyDict_SetDefault(ptr noundef %const_cache, ptr noundef nonnull %call, ptr noundef nonnull %call) #11 %1 = load i64, ptr %call, align 8 %2 = and i64 %1, 2147483648 %cmp.i22.not = icmp eq i64 %2, 0 @@ -4157,7 +4156,7 @@ if.end.i15: ; preds = %if.end br i1 %cmp.i17, label %if.then1.i18, label %Py_DECREF.exit20 if.then1.i18: ; preds = %if.end.i15 - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit20 Py_DECREF.exit20: ; preds = %if.end, %if.then1.i18, %if.end.i15 @@ -4205,7 +4204,7 @@ if.end.i: ; preds = %_Py_NewRef.exit br i1 %cmp.i, label %if.then1.i, label %return if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %5) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %5) #11 br label %return return: ; preds = %_Py_NewRef.exit, %if.then1.i, %if.end.i, %if.end4, %Py_DECREF.exit20, %entry @@ -4221,12 +4220,12 @@ declare ptr @PyDict_SetDefault(ptr noundef, ptr noundef, ptr noundef) local_unna define dso_local ptr @_PyCompile_CleanDoc(ptr noundef %doc) local_unnamed_addr #1 { entry: %doc_size = alloca i64, align 8 - %call = tail call ptr (ptr, ptr, ptr, ...) @PyObject_CallMethod(ptr noundef %doc, ptr noundef nonnull @.str.316, ptr noundef null) #12 + %call = tail call ptr (ptr, ptr, ptr, ...) @PyObject_CallMethod(ptr noundef %doc, ptr noundef nonnull @.str.316, ptr noundef null) #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call1 = call ptr @PyUnicode_AsUTF8AndSize(ptr noundef nonnull %call, ptr noundef nonnull %doc_size) #12 + %call1 = call ptr @PyUnicode_AsUTF8AndSize(ptr noundef nonnull %call, ptr noundef nonnull %doc_size) #11 %cmp2 = icmp eq ptr %call1, null br i1 %cmp2, label %if.then3, label %if.end4 @@ -4243,7 +4242,7 @@ if.end.i121: ; preds = %if.then3 br i1 %cmp.i123, label %if.then1.i124, label %return if.then1.i124: ; preds = %if.end.i121 - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return if.end4: ; preds = %if.end @@ -4326,7 +4325,7 @@ while.end53: ; preds = %while.cond47 br i1 %or.cond, label %return, label %if.end60 if.end60: ; preds = %while.end53 - %call61 = call ptr @PyMem_Malloc(i64 noundef %2) #12 + %call61 = call ptr @PyMem_Malloc(i64 noundef %2) #11 %cmp62 = icmp eq ptr %call61, null br i1 %cmp62, label %if.then64, label %while.cond67 @@ -4343,11 +4342,11 @@ if.end.i112: ; preds = %if.then64 br i1 %cmp.i114, label %if.then1.i115, label %Py_DECREF.exit117 if.then1.i115: ; preds = %if.end.i112 - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit117 Py_DECREF.exit117: ; preds = %if.then64, %if.then1.i115, %if.end.i112 - %call65 = call ptr @PyErr_NoMemory() #12 + %call65 = call ptr @PyErr_NoMemory() #11 br label %return while.cond67: ; preds = %if.end60, %while.body70 @@ -4456,15 +4455,15 @@ if.end.i: ; preds = %while.end104 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %while.end104, %if.then1.i, %if.end.i %sub.ptr.lhs.cast105 = ptrtoint ptr %w.2.lcssa to i64 %sub.ptr.rhs.cast106 = ptrtoint ptr %call61 to i64 %sub.ptr.sub107 = sub i64 %sub.ptr.lhs.cast105, %sub.ptr.rhs.cast106 - %call108 = call ptr @PyUnicode_FromStringAndSize(ptr noundef nonnull %call61, i64 noundef %sub.ptr.sub107) #12 - call void @PyMem_Free(ptr noundef nonnull %call61) #12 + %call108 = call ptr @PyUnicode_FromStringAndSize(ptr noundef nonnull %call61, i64 noundef %sub.ptr.sub107) #11 + call void @PyMem_Free(ptr noundef nonnull %call61) #11 br label %return return: ; preds = %while.end53, %if.end.i121, %if.then1.i124, %if.then3, %entry, %Py_DECREF.exit, %Py_DECREF.exit117 @@ -4485,32 +4484,32 @@ declare void @PyMem_Free(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable define dso_local ptr @_PyCompile_CodeGen(ptr noundef %ast, ptr noundef %filename, ptr noundef %pflags, i32 noundef %optimize, i32 noundef %compile_mode) local_unnamed_addr #1 { entry: - %call = tail call i32 @PyAST_Check(ptr noundef %ast) #12 + %call = tail call i32 @PyAST_Check(ptr noundef %ast) #11 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %if.then, label %if.end if.then: ; preds = %entry %0 = load ptr, ptr @PyExc_TypeError, align 8 - tail call void @PyErr_SetString(ptr noundef %0, ptr noundef nonnull @.str.317) #12 + tail call void @PyErr_SetString(ptr noundef %0, ptr noundef nonnull @.str.317) #11 br label %return if.end: ; preds = %entry - %call1 = tail call ptr @_PyArena_New() #12 + %call1 = tail call ptr @_PyArena_New() #11 %cmp = icmp eq ptr %call1, null br i1 %cmp, label %return, label %if.end3 if.end3: ; preds = %if.end - %call4 = tail call ptr @PyAST_obj2mod(ptr noundef %ast, ptr noundef nonnull %call1, i32 noundef %compile_mode) #12 + %call4 = tail call ptr @PyAST_obj2mod(ptr noundef %ast, ptr noundef nonnull %call1, i32 noundef %compile_mode) #11 %cmp5 = icmp eq ptr %call4, null br i1 %cmp5, label %if.then8, label %lor.lhs.false lor.lhs.false: ; preds = %if.end3 - %call6 = tail call i32 @_PyAST_Validate(ptr noundef nonnull %call4) #12 + %call6 = tail call i32 @_PyAST_Validate(ptr noundef nonnull %call4) #11 %tobool7.not = icmp eq i32 %call6, 0 br i1 %tobool7.not, label %if.then8, label %if.end9 if.then8: ; preds = %lor.lhs.false, %if.end3 - tail call void @_PyArena_Free(ptr noundef nonnull %call1) #12 + tail call void @_PyArena_Free(ptr noundef nonnull %call1) #11 br label %return if.end9: ; preds = %lor.lhs.false @@ -4519,7 +4518,7 @@ if.end9: ; preds = %lor.lhs.false br i1 %cmp11, label %if.then12, label %if.end13 if.then12: ; preds = %if.end9 - tail call void @_PyArena_Free(ptr noundef nonnull %call1) #12 + tail call void @_PyArena_Free(ptr noundef nonnull %call1) #11 br label %return if.end13: ; preds = %if.end9 @@ -4530,7 +4529,7 @@ if.end13: ; preds = %if.end9 if.end17: ; preds = %if.end13 %u = getelementptr inbounds %struct.compiler, ptr %call10, i64 0, i32 8 %1 = load ptr, ptr %u, align 8 - %call18 = tail call ptr @PyDict_New() #12 + %call18 = tail call ptr @PyDict_New() #11 %cmp19 = icmp eq ptr %call18, null br i1 %cmp19, label %Py_XDECREF.exit88, label %if.end21 @@ -4541,7 +4540,7 @@ if.end21: ; preds = %if.end17 br i1 %cmp22.not, label %if.end29, label %if.then23 if.then23: ; preds = %if.end21 - %call25 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.318, ptr noundef nonnull %2) #12 + %call25 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.318, ptr noundef nonnull %2) #11 %cmp26 = icmp slt i32 %call25, 0 br i1 %cmp26, label %if.then.i81, label %if.end29 @@ -4552,7 +4551,7 @@ if.end29: ; preds = %if.then23, %if.end2 br i1 %cmp30.not, label %if.end37, label %if.then31 if.then31: ; preds = %if.end29 - %call33 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.319, ptr noundef nonnull %3) #12 + %call33 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.319, ptr noundef nonnull %3) #11 %cmp34 = icmp slt i32 %call33, 0 br i1 %cmp34, label %if.then.i81, label %if.end37 @@ -4563,7 +4562,7 @@ if.end37: ; preds = %if.then31, %if.end2 br i1 %cmp38.not, label %if.end45, label %if.then39 if.then39: ; preds = %if.end37 - %call41 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.320, ptr noundef nonnull %4) #12 + %call41 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.320, ptr noundef nonnull %4) #11 %cmp42 = icmp slt i32 %call41, 0 br i1 %cmp42, label %if.then.i81, label %if.end45 @@ -4574,7 +4573,7 @@ if.end45: ; preds = %if.then39, %if.end3 br i1 %cmp46.not, label %if.end53, label %if.then47 if.then47: ; preds = %if.end45 - %call49 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.321, ptr noundef nonnull %5) #12 + %call49 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.321, ptr noundef nonnull %5) #11 %cmp50 = icmp slt i32 %call49, 0 br i1 %cmp50, label %if.then.i81, label %if.end53 @@ -4585,7 +4584,7 @@ if.end53: ; preds = %if.then47, %if.end4 br i1 %cmp54.not, label %if.end61, label %if.then55 if.then55: ; preds = %if.end53 - %call57 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.322, ptr noundef nonnull %6) #12 + %call57 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.322, ptr noundef nonnull %6) #11 %cmp58 = icmp slt i32 %call57, 0 br i1 %cmp58, label %if.then.i81, label %if.end61 @@ -4596,7 +4595,7 @@ if.end61: ; preds = %if.then55, %if.end5 br i1 %cmp62.not, label %if.end69, label %if.then63 if.then63: ; preds = %if.end61 - %call65 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.323, ptr noundef nonnull %7) #12 + %call65 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.323, ptr noundef nonnull %7) #11 %cmp66 = icmp slt i32 %call65, 0 br i1 %cmp66, label %if.then.i81, label %if.end69 @@ -4607,19 +4606,19 @@ if.end69: ; preds = %if.then63, %if.end6 br i1 %cmp70.not, label %do.body, label %if.then71 if.then71: ; preds = %if.end69 - %call73 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.324, ptr noundef nonnull %8) #12 + %call73 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.324, ptr noundef nonnull %8) #11 %cmp74 = icmp slt i32 %call73, 0 br i1 %cmp74, label %if.then.i81, label %do.body do.body: ; preds = %if.end69, %if.then71 %u_argcount = getelementptr inbounds %struct.compiler_unit, ptr %1, i64 0, i32 7, i32 8 %9 = load i64, ptr %u_argcount, align 8 - %call78 = tail call ptr @PyLong_FromLong(i64 noundef %9) #12 + %call78 = tail call ptr @PyLong_FromLong(i64 noundef %9) #11 %cmp79 = icmp eq ptr %call78, null br i1 %cmp79, label %if.then.i81, label %if.then.i if.then.i: ; preds = %do.body - %call83 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.325, ptr noundef nonnull %call78) #12 + %call83 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.325, ptr noundef nonnull %call78) #11 %10 = load i64, ptr %call78, align 8 %11 = and i64 %10, 2147483648 %cmp.i2.not.i = icmp eq i64 %11, 0 @@ -4632,7 +4631,7 @@ if.end.i.i: ; preds = %if.then.i br i1 %cmp.i.i, label %if.then1.i.i, label %Py_XDECREF.exit if.then1.i.i: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call78) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call78) #11 br label %Py_XDECREF.exit Py_XDECREF.exit: ; preds = %if.then.i, %if.end.i.i, %if.then1.i.i @@ -4642,12 +4641,12 @@ Py_XDECREF.exit: ; preds = %if.then.i, %if.end. do.body87: ; preds = %Py_XDECREF.exit %u_posonlyargcount = getelementptr inbounds %struct.compiler_unit, ptr %1, i64 0, i32 7, i32 9 %12 = load i64, ptr %u_posonlyargcount, align 8 - %call89 = tail call ptr @PyLong_FromLong(i64 noundef %12) #12 + %call89 = tail call ptr @PyLong_FromLong(i64 noundef %12) #11 %cmp90 = icmp eq ptr %call89, null br i1 %cmp90, label %if.then.i81, label %if.then.i63 if.then.i63: ; preds = %do.body87 - %call94 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.326, ptr noundef nonnull %call89) #12 + %call94 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.326, ptr noundef nonnull %call89) #11 %13 = load i64, ptr %call89, align 8 %14 = and i64 %13, 2147483648 %cmp.i2.not.i64 = icmp eq i64 %14, 0 @@ -4660,7 +4659,7 @@ if.end.i.i66: ; preds = %if.then.i63 br i1 %cmp.i.i68, label %if.then1.i.i69, label %Py_XDECREF.exit70 if.then1.i.i69: ; preds = %if.end.i.i66 - tail call void @_Py_Dealloc(ptr noundef nonnull %call89) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call89) #11 br label %Py_XDECREF.exit70 Py_XDECREF.exit70: ; preds = %if.then.i63, %if.end.i.i66, %if.then1.i.i69 @@ -4670,12 +4669,12 @@ Py_XDECREF.exit70: ; preds = %if.then.i63, %if.en do.body99: ; preds = %Py_XDECREF.exit70 %u_kwonlyargcount = getelementptr inbounds %struct.compiler_unit, ptr %1, i64 0, i32 7, i32 10 %15 = load i64, ptr %u_kwonlyargcount, align 8 - %call101 = tail call ptr @PyLong_FromLong(i64 noundef %15) #12 + %call101 = tail call ptr @PyLong_FromLong(i64 noundef %15) #11 %cmp102 = icmp eq ptr %call101, null br i1 %cmp102, label %if.then.i81, label %if.then.i72 if.then.i72: ; preds = %do.body99 - %call106 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.327, ptr noundef nonnull %call101) #12 + %call106 = tail call i32 @PyDict_SetItemString(ptr noundef nonnull %call18, ptr noundef nonnull @.str.327, ptr noundef nonnull %call101) #11 %16 = load i64, ptr %call101, align 8 %17 = and i64 %16, 2147483648 %cmp.i2.not.i73 = icmp eq i64 %17, 0 @@ -4688,7 +4687,7 @@ if.end.i.i75: ; preds = %if.then.i72 br i1 %cmp.i.i77, label %if.then1.i.i78, label %Py_XDECREF.exit79 if.then1.i.i78: ; preds = %if.end.i.i75 - tail call void @_Py_Dealloc(ptr noundef nonnull %call101) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call101) #11 br label %Py_XDECREF.exit79 Py_XDECREF.exit79: ; preds = %if.then.i72, %if.end.i.i75, %if.then1.i.i78 @@ -4711,7 +4710,7 @@ if.end116: ; preds = %do.end110 br i1 %cmp119, label %if.then.i81, label %if.end122 if.end122: ; preds = %if.end116 - %call123 = tail call ptr (i64, ...) @PyTuple_Pack(i64 noundef 2, ptr noundef nonnull %call118, ptr noundef nonnull %call18) #12 + %call123 = tail call ptr (i64, ...) @PyTuple_Pack(i64 noundef 2, ptr noundef nonnull %call118, ptr noundef nonnull %call18) #11 %20 = load i64, ptr %call118, align 8 %21 = and i64 %20, 2147483648 %cmp.i125.not = icmp eq i64 %21, 0 @@ -4724,7 +4723,7 @@ if.end.i: ; preds = %if.end122 br i1 %cmp.i, label %if.then1.i, label %if.then.i81 if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call118) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call118) #11 br label %if.then.i81 if.then.i81: ; preds = %if.then23, %if.then31, %if.then39, %if.then47, %if.then55, %if.then63, %if.then71, %do.body, %Py_XDECREF.exit, %do.body87, %Py_XDECREF.exit70, %do.body99, %Py_XDECREF.exit79, %do.end110, %if.end116, %if.end122, %if.then1.i, %if.end.i @@ -4741,14 +4740,14 @@ if.end.i.i84: ; preds = %if.then.i81 br i1 %cmp.i.i86, label %if.then1.i.i87, label %Py_XDECREF.exit88 if.then1.i.i87: ; preds = %if.end.i.i84 - tail call void @_Py_Dealloc(ptr noundef nonnull %call18) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call18) #11 br label %Py_XDECREF.exit88 Py_XDECREF.exit88: ; preds = %if.end13, %if.end17, %if.then.i81, %if.end.i.i84, %if.then1.i.i87 %res.094 = phi ptr [ %res.0.ph, %if.then.i81 ], [ %res.0.ph, %if.end.i.i84 ], [ %res.0.ph, %if.then1.i.i87 ], [ null, %if.end13 ], [ null, %if.end17 ] tail call fastcc void @compiler_exit_scope(ptr noundef nonnull %call10) tail call fastcc void @compiler_free(ptr noundef nonnull %call10) - tail call void @_PyArena_Free(ptr noundef nonnull %call1) #12 + tail call void @_PyArena_Free(ptr noundef nonnull %call1) #11 br label %return return: ; preds = %if.end, %Py_XDECREF.exit88, %if.then12, %if.then8, %if.then @@ -4769,7 +4768,7 @@ declare i32 @_PyAST_Validate(ptr noundef) local_unnamed_addr #2 declare void @_PyArena_Free(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_codegen(ptr noundef %c, ptr noundef %mod) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_codegen(ptr noundef %c, ptr noundef %mod) unnamed_addr #1 { entry: %call = tail call fastcc i32 @compiler_enter_scope(ptr noundef %c, ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 4), i32 noundef 0, ptr noundef %mod, i32 noundef 1), !range !5 %cmp = icmp eq i32 %call, -1 @@ -4871,7 +4870,7 @@ if.then32: ; preds = %sw.bb26 sw.default: ; preds = %if.end %11 = load ptr, ptr @PyExc_SystemError, align 8 - %call35 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %11, ptr noundef nonnull @.str.329, i32 noundef %0) #12 + %call35 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %11, ptr noundef nonnull @.str.329, i32 noundef %0) #11 br label %return return: ; preds = %for.cond, %if.end14, %if.then9, %instr_sequence_next_inst.exit.i.i, %sw.bb, %sw.bb26, %entry, %sw.default, %if.then32, %if.then24, %if.then3 @@ -4904,7 +4903,7 @@ if.end.i: ; preds = %if.then br i1 %cmp.i, label %if.then1.i, label %if.end if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %op) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %op) #11 br label %if.end if.end: ; preds = %if.end.i, %if.then1.i, %if.then, %entry @@ -4912,7 +4911,7 @@ if.end: ; preds = %if.end.i, %if.then1 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @add_return_at_end(ptr nocapture noundef readonly %c, i32 noundef %addNone) unnamed_addr #1 { +define internal fastcc noundef i32 @add_return_at_end(ptr nocapture noundef readonly %c, i32 noundef %addNone) unnamed_addr #1 { entry: %tobool.not = icmp eq i32 %addNone, 0 br i1 %tobool.not, label %if.end2, label %if.then @@ -4964,7 +4963,7 @@ return: ; preds = %codegen_addop_noarg ; Function Attrs: nounwind uwtable define internal fastcc ptr @instr_sequence_to_instructions(ptr nocapture noundef readonly %seq) unnamed_addr #1 { entry: - %call = tail call ptr @PyList_New(i64 noundef 0) #12 + %call = tail call ptr @PyList_New(i64 noundef 0) #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %for.cond.preheader @@ -5024,12 +5023,12 @@ cond.false: ; preds = %for.body cond.end: ; preds = %cond.false, %cond.true %cond.in = phi ptr [ %arrayidx13, %cond.true ], [ %i_oparg14, %cond.false ] %cond = load i32, ptr %cond.in, align 4 - %call16 = tail call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.394, i32 noundef %4, i32 noundef %cond, i32 noundef %loc.sroa.0.0.copyload, i32 noundef %loc.sroa.2.0.copyload, i32 noundef %loc.sroa.3.0.copyload, i32 noundef %loc.sroa.4.0.copyload) #12 + %call16 = tail call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.394, i32 noundef %4, i32 noundef %cond, i32 noundef %loc.sroa.0.0.copyload, i32 noundef %loc.sroa.2.0.copyload, i32 noundef %loc.sroa.3.0.copyload, i32 noundef %loc.sroa.4.0.copyload) #11 %cmp17 = icmp eq ptr %call16, null br i1 %cmp17, label %if.then.i, label %if.end19 if.end19: ; preds = %cond.end - %call20 = tail call i32 @PyList_Append(ptr noundef nonnull %call, ptr noundef nonnull %call16) #12 + %call20 = tail call i32 @PyList_Append(ptr noundef nonnull %call, ptr noundef nonnull %call16) #11 %8 = load i64, ptr %call16, align 8 %9 = and i64 %8, 2147483648 %cmp.i25.not = icmp eq i64 %9, 0 @@ -5042,7 +5041,7 @@ if.end.i: ; preds = %if.end19 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call16) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call16) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end19, %if.then1.i, %if.end.i @@ -5062,7 +5061,7 @@ if.end.i.i: ; preds = %if.then.i br i1 %cmp.i.i, label %if.then1.i.i, label %return if.then1.i.i: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return return: ; preds = %for.cond, %for.cond.preheader, %if.then1.i.i, %if.end.i.i, %if.then.i, %entry @@ -5075,7 +5074,7 @@ declare ptr @PyTuple_Pack(i64 noundef, ...) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable define internal fastcc void @compiler_exit_scope(ptr nocapture noundef %c) unnamed_addr #1 { entry: - %call = tail call ptr @PyErr_GetRaisedException() #12 + %call = tail call ptr @PyErr_GetRaisedException() #11 %c_nestlevel = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 6 %0 = load i32, ptr %c_nestlevel, align 4 %dec = add i32 %0, -1 @@ -5096,15 +5095,15 @@ if.then: ; preds = %entry %4 = load ptr, ptr %ob_item, align 8 %arrayidx = getelementptr ptr, ptr %4, i64 %sub %5 = load ptr, ptr %arrayidx, align 8 - %call3 = tail call ptr @PyCapsule_GetPointer(ptr noundef %5, ptr noundef nonnull @.str.330) #12 + %call3 = tail call ptr @PyCapsule_GetPointer(ptr noundef %5, ptr noundef nonnull @.str.330) #11 store ptr %call3, ptr %u, align 8 %6 = load ptr, ptr %c_stack, align 8 - %call6 = tail call i32 @PySequence_DelItem(ptr noundef %6, i64 noundef %sub) #12 + %call6 = tail call i32 @PySequence_DelItem(ptr noundef %6, i64 noundef %sub) #11 %cmp7 = icmp slt i32 %call6, 0 br i1 %cmp7, label %if.then8, label %if.end10 if.then8: ; preds = %if.then - tail call void (ptr, ...) @PyErr_FormatUnraisable(ptr noundef nonnull @.str.395) #12 + tail call void (ptr, ...) @PyErr_FormatUnraisable(ptr noundef nonnull @.str.395) #11 br label %if.end10 if.else: ; preds = %entry @@ -5112,7 +5111,7 @@ if.else: ; preds = %entry br label %if.end10 if.end10: ; preds = %if.then, %if.then8, %if.else - tail call void @PyErr_SetRaisedException(ptr noundef %call) #12 + tail call void @PyErr_SetRaisedException(ptr noundef %call) #11 ret void } @@ -5120,7 +5119,7 @@ if.end10: ; preds = %if.then, %if.then8, define dso_local ptr @_PyCompile_OptimizeCfg(ptr nocapture noundef readonly %instructions, ptr noundef %consts, i32 noundef %nlocals) local_unnamed_addr #1 { entry: %seq.i = alloca %struct._PyCompile_InstructionSequence, align 8 - %call = tail call ptr @PyDict_New() #12 + %call = tail call ptr @PyDict_New() #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end @@ -5130,14 +5129,14 @@ if.end: ; preds = %entry br i1 %cmp2, label %error, label %if.end4 if.end4: ; preds = %if.end - %call5 = tail call i32 @_PyCfg_OptimizeCodeUnit(ptr noundef nonnull %call1, ptr noundef %consts, ptr noundef nonnull %call, i32 noundef %nlocals, i32 noundef 0, i32 noundef 1) #12 + %call5 = tail call i32 @_PyCfg_OptimizeCodeUnit(ptr noundef nonnull %call1, ptr noundef %consts, ptr noundef nonnull %call, i32 noundef %nlocals, i32 noundef 0, i32 noundef 1) #11 %cmp6 = icmp slt i32 %call5, 0 br i1 %cmp6, label %error, label %if.end8 if.end8: ; preds = %if.end4 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %seq.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %seq.i, i8 0, i64 32, i1 false) - %call.i = call i32 @_PyCfg_ToInstructionSequence(ptr noundef nonnull %call1, ptr noundef nonnull %seq.i) #12 + %call.i = call i32 @_PyCfg_ToInstructionSequence(ptr noundef nonnull %call1, ptr noundef nonnull %seq.i) #11 %cmp.i8 = icmp slt i32 %call.i, 0 br i1 %cmp.i8, label %cfg_to_instructions.exit, label %if.end.i9 @@ -5145,10 +5144,10 @@ if.end.i9: ; preds = %if.end8 %call1.i = call fastcc ptr @instr_sequence_to_instructions(ptr noundef nonnull %seq.i) %s_labelmap.i.i = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %seq.i, i64 0, i32 3 %0 = load ptr, ptr %s_labelmap.i.i, align 8 - call void @PyObject_Free(ptr noundef %0) #12 + call void @PyObject_Free(ptr noundef %0) #11 store ptr null, ptr %s_labelmap.i.i, align 8 %1 = load ptr, ptr %seq.i, align 8 - call void @PyObject_Free(ptr noundef %1) #12 + call void @PyObject_Free(ptr noundef %1) #11 br label %cfg_to_instructions.exit cfg_to_instructions.exit: ; preds = %if.end8, %if.end.i9 @@ -5170,11 +5169,11 @@ if.end.i: ; preds = %error br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %error, %if.then1.i, %if.end.i - call void @_PyCfgBuilder_Free(ptr noundef %call1) #12 + call void @_PyCfgBuilder_Free(ptr noundef %call1) #11 br label %return return: ; preds = %entry, %Py_DECREF.exit @@ -5189,7 +5188,7 @@ entry: call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %seq, i8 0, i64 32, i1 false) %0 = getelementptr i8, ptr %instructions, i64 16 %instructions.val.i = load i64, ptr %0, align 8 - %call1.i = tail call ptr @PyMem_Calloc(i64 noundef %instructions.val.i, i64 noundef 1) #12 + %call1.i = tail call ptr @PyMem_Calloc(i64 noundef %instructions.val.i, i64 noundef 1) #11 %cmp.i = icmp eq ptr %call1.i, null br i1 %cmp.i, label %error, label %for.cond.preheader.i @@ -5230,8 +5229,8 @@ lor.lhs.false.i: ; preds = %for.body.i if.end8.i: ; preds = %lor.lhs.false.i %ob_item9.i = getelementptr inbounds %struct.PyTupleObject, ptr %2, i64 0, i32 1 %7 = load ptr, ptr %ob_item9.i, align 8 - %call11.i = tail call i64 @PyLong_AsLong(ptr noundef %7) #12 - %call12.i = tail call ptr @PyErr_Occurred() #12 + %call11.i = tail call i64 @PyLong_AsLong(ptr noundef %7) #11 + %call12.i = tail call ptr @PyErr_Occurred() #11 %tobool13.not.i = icmp eq ptr %call12.i, null br i1 %tobool13.not.i, label %if.end15.i, label %instructions_to_instr_sequence.exit.thread50 @@ -5252,8 +5251,8 @@ if.end15.i: ; preds = %if.end8.i if.then27.i: ; preds = %if.end15.i %arrayidx29.i = getelementptr %struct.PyTupleObject, ptr %2, i64 1 %9 = load ptr, ptr %arrayidx29.i, align 8 - %call30.i = tail call i64 @PyLong_AsLong(ptr noundef %9) #12 - %call32.i = tail call ptr @PyErr_Occurred() #12 + %call30.i = tail call i64 @PyLong_AsLong(ptr noundef %9) #11 + %call32.i = tail call ptr @PyErr_Occurred() #11 %tobool33.not.i = icmp eq ptr %call32.i, null br i1 %tobool33.not.i, label %if.end35.i, label %instructions_to_instr_sequence.exit.thread50 @@ -5300,12 +5299,12 @@ if.then.i33: ; preds = %if.then56.i %13 = add i32 %i47.054.i, 10 %spec.select.i36 = select i1 %cmp1.not.i34, i32 10, i32 %13 %conv.i37 = sext i32 %spec.select.i36 to i64 - %call.i38 = tail call ptr @PyObject_Calloc(i64 noundef %conv.i37, i64 noundef 4) #12 + %call.i38 = tail call ptr @PyObject_Calloc(i64 noundef %conv.i37, i64 noundef 4) #11 %cmp3.i39 = icmp eq ptr %call.i38, null br i1 %cmp3.i39, label %if.then5.i41, label %for.cond.preheader.i.i if.then5.i41: ; preds = %if.then.i33 - %call6.i42 = tail call ptr @PyErr_NoMemory() #12 + %call6.i42 = tail call ptr @PyErr_NoMemory() #11 br label %instructions_to_instr_sequence.exit.thread50 if.else.i8: ; preds = %if.then56.i @@ -5325,16 +5324,16 @@ if.then10.i10: ; preds = %if.else.i8 br i1 %cmp20.i19, label %if.then22.i31, label %if.end24.i20 if.then22.i31: ; preds = %if.then10.i10 - %call23.i32 = tail call ptr @PyErr_NoMemory() #12 + %call23.i32 = tail call ptr @PyErr_NoMemory() #11 br label %instructions_to_instr_sequence.exit.thread50 if.end24.i20: ; preds = %if.then10.i10 - %call25.i21 = tail call ptr @PyObject_Realloc(ptr noundef nonnull %arr.0.i2766, i64 noundef %mul19.i18) #12 + %call25.i21 = tail call ptr @PyObject_Realloc(ptr noundef nonnull %arr.0.i2766, i64 noundef %mul19.i18) #11 %cmp26.i22 = icmp eq ptr %call25.i21, null br i1 %cmp26.i22, label %if.then28.i29, label %if.end30.i23 if.then28.i29: ; preds = %if.end24.i20 - %call29.i30 = tail call ptr @PyErr_NoMemory() #12 + %call29.i30 = tail call ptr @PyErr_NoMemory() #11 br label %instructions_to_instr_sequence.exit.thread50 if.end30.i23: ; preds = %if.end24.i20 @@ -5390,9 +5389,9 @@ lor.lhs.false70.i: ; preds = %if.end62.i if.end75.i: ; preds = %lor.lhs.false70.i %ob_item77.i = getelementptr inbounds %struct.PyTupleObject, ptr %17, i64 0, i32 1 %22 = load ptr, ptr %ob_item77.i, align 8 - %call79.i = tail call i64 @PyLong_AsLong(ptr noundef %22) #12 + %call79.i = tail call i64 @PyLong_AsLong(ptr noundef %22) #11 %conv80.i = trunc i64 %call79.i to i32 - %call81.i = tail call ptr @PyErr_Occurred() #12 + %call81.i = tail call ptr @PyErr_Occurred() #11 %tobool82.not.i = icmp eq ptr %call81.i, null br i1 %tobool82.not.i, label %if.end84.i, label %instructions_to_instr_sequence.exit.thread50 @@ -5408,9 +5407,9 @@ if.end84.i: ; preds = %if.end75.i if.then91.i: ; preds = %if.end84.i %arrayidx93.i = getelementptr %struct.PyTupleObject, ptr %17, i64 1 %24 = load ptr, ptr %arrayidx93.i, align 8 - %call94.i = tail call i64 @PyLong_AsLong(ptr noundef %24) #12 + %call94.i = tail call i64 @PyLong_AsLong(ptr noundef %24) #11 %conv95.i = trunc i64 %call94.i to i32 - %call96.i = tail call ptr @PyErr_Occurred() #12 + %call96.i = tail call ptr @PyErr_Occurred() #11 %tobool97.not.i = icmp eq ptr %call96.i, null br i1 %tobool97.not.i, label %if.end100.i, label %instructions_to_instr_sequence.exit.thread50 @@ -5418,32 +5417,32 @@ if.end100.i: ; preds = %if.then91.i, %if.en %oparg85.0.i = phi i32 [ %conv95.i, %if.then91.i ], [ 0, %if.end84.i ] %arrayidx102.i = getelementptr %struct.PyTupleObject, ptr %17, i64 1, i32 0, i32 0, i32 1 %25 = load ptr, ptr %arrayidx102.i, align 8 - %call103.i = tail call i64 @PyLong_AsLong(ptr noundef %25) #12 - %call105.i = tail call ptr @PyErr_Occurred() #12 + %call103.i = tail call i64 @PyLong_AsLong(ptr noundef %25) #11 + %call105.i = tail call ptr @PyErr_Occurred() #11 %tobool106.not.i = icmp eq ptr %call105.i, null br i1 %tobool106.not.i, label %if.end108.i, label %instructions_to_instr_sequence.exit.thread50 if.end108.i: ; preds = %if.end100.i %arrayidx110.i = getelementptr %struct.PyTupleObject, ptr %17, i64 1, i32 0, i32 1 %26 = load ptr, ptr %arrayidx110.i, align 8 - %call111.i = tail call i64 @PyLong_AsLong(ptr noundef %26) #12 - %call113.i = tail call ptr @PyErr_Occurred() #12 + %call111.i = tail call i64 @PyLong_AsLong(ptr noundef %26) #11 + %call113.i = tail call ptr @PyErr_Occurred() #11 %tobool114.not.i = icmp eq ptr %call113.i, null br i1 %tobool114.not.i, label %if.end116.i, label %instructions_to_instr_sequence.exit.thread50 if.end116.i: ; preds = %if.end108.i %arrayidx118.i = getelementptr %struct.PyTupleObject, ptr %17, i64 1, i32 1 %27 = load ptr, ptr %arrayidx118.i, align 8 - %call119.i = tail call i64 @PyLong_AsLong(ptr noundef %27) #12 - %call121.i = tail call ptr @PyErr_Occurred() #12 + %call119.i = tail call i64 @PyLong_AsLong(ptr noundef %27) #11 + %call121.i = tail call ptr @PyErr_Occurred() #11 %tobool122.not.i = icmp eq ptr %call121.i, null br i1 %tobool122.not.i, label %if.end124.i, label %instructions_to_instr_sequence.exit.thread50 if.end124.i: ; preds = %if.end116.i %arrayidx126.i = getelementptr %struct.PyTupleObject, ptr %17, i64 2 %28 = load ptr, ptr %arrayidx126.i, align 8 - %call127.i = tail call i64 @PyLong_AsLong(ptr noundef %28) #12 - %call129.i = tail call ptr @PyErr_Occurred() #12 + %call127.i = tail call i64 @PyLong_AsLong(ptr noundef %28) #11 + %call129.i = tail call ptr @PyErr_Occurred() #11 %tobool130.not.i = icmp eq ptr %call129.i, null br i1 %tobool130.not.i, label %if.end132.i, label %instructions_to_instr_sequence.exit.thread50 @@ -5463,12 +5462,12 @@ if.then.i: ; preds = %if.end132.i %29 = add i32 %add.i.i.i74, 101 %spec.select.i = select i1 %cmp1.not.i, i32 100, i32 %29 %conv.i6 = sext i32 %spec.select.i to i64 - %call.i = tail call ptr @PyObject_Calloc(i64 noundef %conv.i6, i64 noundef 44) #12 + %call.i = tail call ptr @PyObject_Calloc(i64 noundef %conv.i6, i64 noundef 44) #11 %cmp3.i = icmp eq ptr %call.i, null br i1 %cmp3.i, label %if.then5.i, label %instr_sequence_next_inst.exit.i.i if.then5.i: ; preds = %if.then.i - %call6.i = tail call ptr @PyErr_NoMemory() #12 + %call6.i = tail call ptr @PyErr_NoMemory() #11 br label %instructions_to_instr_sequence.exit.thread50 if.else.i: ; preds = %if.end132.i @@ -5488,16 +5487,16 @@ if.then10.i: ; preds = %if.else.i br i1 %cmp20.i, label %if.then22.i, label %if.end24.i if.then22.i: ; preds = %if.then10.i - %call23.i = tail call ptr @PyErr_NoMemory() #12 + %call23.i = tail call ptr @PyErr_NoMemory() #11 br label %instructions_to_instr_sequence.exit.thread50 if.end24.i: ; preds = %if.then10.i - %call25.i = tail call ptr @PyObject_Realloc(ptr noundef nonnull %arr.0.i82, i64 noundef %mul19.i) #12 + %call25.i = tail call ptr @PyObject_Realloc(ptr noundef nonnull %arr.0.i82, i64 noundef %mul19.i) #11 %cmp26.i = icmp eq ptr %call25.i, null br i1 %cmp26.i, label %if.then28.i, label %if.end30.i if.then28.i: ; preds = %if.end24.i - %call29.i = tail call ptr @PyErr_NoMemory() #12 + %call29.i = tail call ptr @PyErr_NoMemory() #11 br label %instructions_to_instr_sequence.exit.thread50 if.end30.i: ; preds = %if.end24.i @@ -5532,13 +5531,13 @@ error.sink.split.i: ; preds = %lor.lhs.false38.i, %31 = phi ptr [ %arr.0.i2765, %if.end62.i ], [ %arr.0.i2765, %lor.lhs.false70.i ], [ null, %for.body.i ], [ null, %lor.lhs.false.i ], [ null, %if.end35.i ], [ null, %lor.lhs.false38.i ] %.str.396.sink.i = phi ptr [ @.str.396, %if.end62.i ], [ @.str.396, %lor.lhs.false70.i ], [ @.str.397, %lor.lhs.false38.i ], [ @.str.397, %if.end35.i ], [ @.str.396, %lor.lhs.false.i ], [ @.str.396, %for.body.i ] %32 = load ptr, ptr @PyExc_ValueError, align 8 - tail call void @PyErr_SetString(ptr noundef %32, ptr noundef nonnull %.str.396.sink.i) #12 + tail call void @PyErr_SetString(ptr noundef %32, ptr noundef nonnull %.str.396.sink.i) #11 br label %instructions_to_instr_sequence.exit.thread50 instructions_to_instr_sequence.exit.thread50: ; preds = %if.then27.i, %if.end8.i, %instr_sequence_next_inst.exit.i.i, %if.end124.i, %if.end116.i, %if.end108.i, %if.end100.i, %if.then91.i, %if.end75.i, %error.sink.split.i, %if.then5.i41, %if.then22.i31, %if.then28.i29, %if.then5.i, %if.then22.i, %if.then28.i %33 = phi ptr [ %30, %error.sink.split.i ], [ %arr.0.i82, %if.then5.i41 ], [ %arr.0.i82, %if.then22.i31 ], [ %arr.0.i82, %if.then28.i29 ], [ null, %if.then5.i ], [ %arr.0.i82, %if.then22.i ], [ %arr.0.i82, %if.then28.i ], [ %arr.0.i82, %if.end75.i ], [ %arr.0.i82, %if.then91.i ], [ %arr.0.i82, %if.end100.i ], [ %arr.0.i82, %if.end108.i ], [ %arr.0.i82, %if.end116.i ], [ %arr.0.i82, %if.end124.i ], [ %arr.0.i, %instr_sequence_next_inst.exit.i.i ], [ null, %if.end8.i ], [ null, %if.then27.i ] %34 = phi ptr [ %31, %error.sink.split.i ], [ null, %if.then5.i41 ], [ %arr.0.i2766, %if.then22.i31 ], [ %arr.0.i2766, %if.then28.i29 ], [ %arr.0.i2765, %if.then5.i ], [ %arr.0.i2765, %if.then22.i ], [ %arr.0.i2765, %if.then28.i ], [ %arr.0.i2765, %if.end75.i ], [ %arr.0.i2765, %if.then91.i ], [ %arr.0.i2765, %if.end100.i ], [ %arr.0.i2765, %if.end108.i ], [ %arr.0.i2765, %if.end116.i ], [ %arr.0.i2765, %if.end124.i ], [ %arr.0.i2765, %instr_sequence_next_inst.exit.i.i ], [ null, %if.end8.i ], [ null, %if.then27.i ] - tail call void @PyMem_Free(ptr noundef nonnull %call1.i) #12 + tail call void @PyMem_Free(ptr noundef nonnull %call1.i) #11 br label %error if.end.loopexit: ; preds = %for.inc138.i @@ -5552,7 +5551,7 @@ if.end.loopexit: ; preds = %for.inc138.i if.end: ; preds = %if.end.loopexit, %for.cond.preheader.i %35 = phi ptr [ %arr.0.i, %if.end.loopexit ], [ null, %for.cond.preheader.i ] %36 = phi ptr [ %arr.0.i2765, %if.end.loopexit ], [ null, %for.cond.preheader.i ] - tail call void @PyMem_Free(ptr noundef nonnull %call1.i) #12 + tail call void @PyMem_Free(ptr noundef nonnull %call1.i) #11 %call1 = call fastcc ptr @instr_sequence_to_cfg(ptr noundef nonnull %seq) %cmp2 = icmp eq ptr %call1, null br i1 %cmp2, label %error, label %return @@ -5560,15 +5559,15 @@ if.end: ; preds = %if.end.loopexit, %f error: ; preds = %entry, %instructions_to_instr_sequence.exit.thread50, %if.end %37 = phi ptr [ null, %entry ], [ %33, %instructions_to_instr_sequence.exit.thread50 ], [ %35, %if.end ] %38 = phi ptr [ null, %entry ], [ %34, %instructions_to_instr_sequence.exit.thread50 ], [ %36, %if.end ] - tail call void @_PyCfgBuilder_Free(ptr noundef null) #12 + tail call void @_PyCfgBuilder_Free(ptr noundef null) #11 br label %return return: ; preds = %if.end, %error %.sink185 = phi ptr [ %38, %error ], [ %36, %if.end ] %.sink = phi ptr [ %37, %error ], [ %35, %if.end ] %retval.0 = phi ptr [ null, %error ], [ %call1, %if.end ] - tail call void @PyObject_Free(ptr noundef %.sink185) #12 - tail call void @PyObject_Free(ptr noundef %.sink) #12 + tail call void @PyObject_Free(ptr noundef %.sink185) #11 + tail call void @PyObject_Free(ptr noundef %.sink) #11 ret ptr %retval.0 } @@ -5583,7 +5582,7 @@ entry: %stackdepth = alloca i32, align 4 %nlocalsplus = alloca i32, align 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %optimized_instrs, i8 0, i64 32, i1 false) - %call = tail call ptr @PyDict_New() #12 + %call = tail call ptr @PyDict_New() #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end @@ -5593,12 +5592,12 @@ if.end: ; preds = %entry br i1 %cmp2, label %error, label %if.end4 if.end4: ; preds = %if.end - %call5 = tail call i32 @_PyCfg_JumpLabelsToTargets(ptr noundef nonnull %call1) #12 + %call5 = tail call i32 @_PyCfg_JumpLabelsToTargets(ptr noundef nonnull %call1) #11 %cmp6 = icmp slt i32 %call5, 0 br i1 %cmp6, label %error, label %if.end8 if.end8: ; preds = %if.end4 - %call9 = call i32 @_PyCfg_OptimizedCfgToInstructionSequence(ptr noundef nonnull %call1, ptr noundef %umd, i32 noundef 0, ptr noundef nonnull %stackdepth, ptr noundef nonnull %nlocalsplus, ptr noundef nonnull %optimized_instrs) #12 + %call9 = call i32 @_PyCfg_OptimizedCfgToInstructionSequence(ptr noundef nonnull %call1, ptr noundef %umd, i32 noundef 0, ptr noundef nonnull %stackdepth, ptr noundef nonnull %nlocalsplus, ptr noundef nonnull %optimized_instrs) #11 %cmp10 = icmp slt i32 %call9, 0 br i1 %cmp10, label %error, label %if.end12 @@ -5612,7 +5611,7 @@ if.end12: ; preds = %if.end8 if.end16: ; preds = %if.end12 %1 = load i32, ptr %stackdepth, align 4 %2 = load i32, ptr %nlocalsplus, align 4 - %call17 = call ptr @_PyAssemble_MakeCodeObject(ptr noundef nonnull %umd, ptr noundef nonnull %call, ptr noundef nonnull %call13, i32 noundef %1, ptr noundef nonnull %optimized_instrs, i32 noundef %2, i32 noundef 0, ptr noundef %filename) #12 + %call17 = call ptr @_PyAssemble_MakeCodeObject(ptr noundef nonnull %umd, ptr noundef nonnull %call, ptr noundef nonnull %call13, i32 noundef %1, ptr noundef nonnull %optimized_instrs, i32 noundef %2, i32 noundef 0, ptr noundef %filename) #11 %3 = load i64, ptr %call13, align 8 %4 = and i64 %3, 2147483648 %cmp.i28.not = icmp eq i64 %4, 0 @@ -5625,7 +5624,7 @@ if.end.i21: ; preds = %if.end16 br i1 %cmp.i23, label %if.then1.i24, label %error if.then1.i24: ; preds = %if.end.i21 - call void @_Py_Dealloc(ptr noundef nonnull %call13) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call13) #11 br label %error error: ; preds = %if.end.i21, %if.then1.i24, %if.end16, %if.end12, %if.end8, %if.end4, %if.end @@ -5642,17 +5641,17 @@ if.end.i: ; preds = %error br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %error, %if.then1.i, %if.end.i - call void @_PyCfgBuilder_Free(ptr noundef %call1) #12 + call void @_PyCfgBuilder_Free(ptr noundef %call1) #11 %s_labelmap.i = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %optimized_instrs, i64 0, i32 3 %7 = load ptr, ptr %s_labelmap.i, align 8 - call void @PyObject_Free(ptr noundef %7) #12 + call void @PyObject_Free(ptr noundef %7) #11 store ptr null, ptr %s_labelmap.i, align 8 %8 = load ptr, ptr %optimized_instrs, align 8 - call void @PyObject_Free(ptr noundef %8) #12 + call void @PyObject_Free(ptr noundef %8) #11 br label %return return: ; preds = %entry, %Py_DECREF.exit @@ -5673,12 +5672,12 @@ entry: store i64 0, ptr %pos, align 8 %0 = getelementptr i8, ptr %dict, i64 16 %dict.val = load i64, ptr %0, align 8 - %call1 = tail call ptr @PyList_New(i64 noundef %dict.val) #12 + %call1 = tail call ptr @PyList_New(i64 noundef %dict.val) #11 %cmp = icmp eq ptr %call1, null br i1 %cmp, label %return, label %while.cond.preheader while.cond.preheader: ; preds = %entry - %call24 = call i32 @PyDict_Next(ptr noundef nonnull %dict, ptr noundef nonnull %pos, ptr noundef nonnull %k, ptr noundef nonnull %v) #12 + %call24 = call i32 @PyDict_Next(ptr noundef nonnull %dict, ptr noundef nonnull %pos, ptr noundef nonnull %k, ptr noundef nonnull %v) #11 %tobool.not5 = icmp eq i32 %call24, 0 br i1 %tobool.not5, label %return, label %while.body.lr.ph @@ -5688,7 +5687,7 @@ while.body.lr.ph: ; preds = %while.cond.preheade while.body: ; preds = %while.body.lr.ph, %_Py_NewRef.exit %2 = load ptr, ptr %v, align 8 - %call3 = call i64 @PyLong_AsLong(ptr noundef %2) #12 + %call3 = call i64 @PyLong_AsLong(ptr noundef %2) #11 %3 = load ptr, ptr %k, align 8 %4 = getelementptr i8, ptr %3, i64 8 %.val = load ptr, ptr %4, align 8 @@ -5716,7 +5715,7 @@ _Py_NewRef.exit: ; preds = %if.end7, %if.end.i. %call1.val = load ptr, ptr %1, align 8 %arrayidx.i = getelementptr ptr, ptr %call1.val, i64 %call3 store ptr %6, ptr %arrayidx.i, align 8 - %call2 = call i32 @PyDict_Next(ptr noundef %dict, ptr noundef nonnull %pos, ptr noundef nonnull %k, ptr noundef nonnull %v) #12 + %call2 = call i32 @PyDict_Next(ptr noundef %dict, ptr noundef nonnull %pos, ptr noundef nonnull %k, ptr noundef nonnull %v) #11 %tobool.not = icmp eq i32 %call2, 0 br i1 %tobool.not, label %return, label %while.body, !llvm.loop !22 @@ -5727,7 +5726,7 @@ return: ; preds = %_Py_NewRef.exit, %w declare ptr @_PyAssemble_MakeCodeObject(ptr noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable -define dso_local ptr @PyCode_Optimize(ptr noundef returned %code, ptr nocapture noundef readnone %_unused_consts, ptr nocapture noundef readnone %_unused_names, ptr nocapture noundef readnone %_unused_lnotab_obj) local_unnamed_addr #6 { +define dso_local noundef ptr @PyCode_Optimize(ptr noundef returned %code, ptr nocapture noundef readnone %_unused_consts, ptr nocapture noundef readnone %_unused_names, ptr nocapture noundef readnone %_unused_lnotab_obj) local_unnamed_addr #5 { entry: %0 = load i32, ptr %code, align 8 %add.i.i = add i32 %0, 1 @@ -5764,7 +5763,7 @@ entry: %1 = load ptr, ptr %c_const_cache, align 8 %2 = load ptr, ptr %c, align 8 %3 = load ptr, ptr %0, align 8 - %call.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %3) #12 + %call.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %3) #11 %tobool.not.i = icmp eq i32 %call.i, 0 br i1 %tobool.not.i, label %if.end62.i, label %if.then.i @@ -5893,19 +5892,19 @@ if.end4.i: ; preds = %if.end.i %conv8.i = trunc i64 %.val.i to i32 %u_firstlineno.i = getelementptr inbounds %struct.compiler_unit, ptr %0, i64 0, i32 7, i32 11 %21 = load i32, ptr %u_firstlineno.i, align 8 - %call10.i = tail call i32 @_PyCfg_OptimizeCodeUnit(ptr noundef nonnull %call1.i, ptr noundef nonnull %call.i11, ptr noundef %1, i32 noundef %conv.i, i32 noundef %conv8.i, i32 noundef %21) #12 + %call10.i = tail call i32 @_PyCfg_OptimizeCodeUnit(ptr noundef nonnull %call1.i, ptr noundef nonnull %call.i11, ptr noundef %1, i32 noundef %conv.i, i32 noundef %conv8.i, i32 noundef %21) #11 %cmp11.i = icmp slt i32 %call10.i, 0 br i1 %cmp11.i, label %if.then.i.i, label %if.end14.i if.end14.i: ; preds = %if.end4.i - %call16.i = call i32 @_PyCfg_OptimizedCfgToInstructionSequence(ptr noundef nonnull %call1.i, ptr noundef nonnull %u_metadata.i, i32 noundef %flags.6.i, ptr noundef nonnull %stackdepth.i, ptr noundef nonnull %nlocalsplus.i, ptr noundef nonnull %optimized_instrs.i) #12 + %call16.i = call i32 @_PyCfg_OptimizedCfgToInstructionSequence(ptr noundef nonnull %call1.i, ptr noundef nonnull %u_metadata.i, i32 noundef %flags.6.i, ptr noundef nonnull %stackdepth.i, ptr noundef nonnull %nlocalsplus.i, ptr noundef nonnull %optimized_instrs.i) #11 %cmp17.i = icmp slt i32 %call16.i, 0 br i1 %cmp17.i, label %if.then.i.i, label %if.end20.i if.end20.i: ; preds = %if.end14.i %22 = load i32, ptr %stackdepth.i, align 4 %23 = load i32, ptr %nlocalsplus.i, align 4 - %call22.i = call ptr @_PyAssemble_MakeCodeObject(ptr noundef nonnull %u_metadata.i, ptr noundef %1, ptr noundef nonnull %call.i11, i32 noundef %22, ptr noundef nonnull %optimized_instrs.i, i32 noundef %23, i32 noundef %flags.6.i, ptr noundef %2) #12 + %call22.i = call ptr @_PyAssemble_MakeCodeObject(ptr noundef nonnull %u_metadata.i, ptr noundef %1, ptr noundef nonnull %call.i11, i32 noundef %22, ptr noundef nonnull %optimized_instrs.i, i32 noundef %23, i32 noundef %flags.6.i, ptr noundef %2) #11 br label %if.then.i.i if.then.i.i: ; preds = %if.end20.i, %if.end14.i, %if.end4.i, %if.end.i @@ -5922,7 +5921,7 @@ if.end.i.i.i: ; preds = %if.then.i.i br i1 %cmp.i.i.i14, label %if.then1.i.i.i, label %optimize_and_assemble_code_unit.exit if.then1.i.i.i: ; preds = %if.end.i.i.i - call void @_Py_Dealloc(ptr noundef nonnull %call.i11) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call.i11) #11 br label %optimize_and_assemble_code_unit.exit optimize_and_assemble_code_unit.exit: ; preds = %if.end5, %if.then.i.i, %if.end.i.i.i, %if.then1.i.i.i @@ -5930,12 +5929,12 @@ optimize_and_assemble_code_unit.exit: ; preds = %if.end5, %if.then.i %co.019.i = phi ptr [ %co.0.ph.i, %if.then.i.i ], [ %co.0.ph.i, %if.end.i.i.i ], [ %co.0.ph.i, %if.then1.i.i.i ], [ null, %if.end5 ] %s_labelmap.i.i = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %optimized_instrs.i, i64 0, i32 3 %26 = load ptr, ptr %s_labelmap.i.i, align 8 - call void @PyObject_Free(ptr noundef %26) #12 + call void @PyObject_Free(ptr noundef %26) #11 store ptr null, ptr %s_labelmap.i.i, align 8 %27 = load ptr, ptr %optimized_instrs.i, align 8 - call void @PyObject_Free(ptr noundef %27) #12 + call void @PyObject_Free(ptr noundef %27) #11 store ptr null, ptr %optimized_instrs.i, align 8 - call void @_PyCfgBuilder_Free(ptr noundef %g.021.i) #12 + call void @_PyCfgBuilder_Free(ptr noundef %g.021.i) #11 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %optimized_instrs.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %stackdepth.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %nlocalsplus.i) @@ -5951,7 +5950,7 @@ declare i32 @_PyST_IsFunctionLike(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable define internal fastcc ptr @instr_sequence_to_cfg(ptr nocapture noundef readonly %seq) unnamed_addr #1 { entry: - %call = tail call ptr @_PyCfgBuilder_New() #12 + %call = tail call ptr @_PyCfgBuilder_New() #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end @@ -5960,7 +5959,7 @@ if.end: ; preds = %entry %0 = load i32, ptr %s_used, align 4 %conv = sext i32 %0 to i64 %mul = shl nsw i64 %conv, 2 - %call1 = tail call ptr @PyMem_Malloc(i64 noundef %mul) #12 + %call1 = tail call ptr @PyMem_Malloc(i64 noundef %mul) #11 %cmp2 = icmp eq ptr %call1, null br i1 %cmp2, label %if.then4, label %for.cond.preheader @@ -5970,7 +5969,7 @@ for.cond.preheader: ; preds = %if.end br i1 %cmp838, label %for.body, label %for.cond10.preheader if.then4: ; preds = %if.end - %call5 = tail call ptr @PyErr_NoMemory() #12 + %call5 = tail call ptr @PyErr_NoMemory() #11 br label %error for.cond10.preheader: ; preds = %for.body, %for.cond.preheader @@ -6046,7 +6045,7 @@ for.body30: ; preds = %for.body30.lr.ph, % br i1 %cmp34, label %if.then36, label %if.end42 if.then36: ; preds = %for.body30 - %call37 = tail call i32 @_PyCfgBuilder_UseLabel(ptr noundef nonnull %call, i32 %15) #12 + %call37 = tail call i32 @_PyCfgBuilder_UseLabel(ptr noundef nonnull %call, i32 %15) #11 %cmp38 = icmp slt i32 %call37, 0 br i1 %cmp38, label %error, label %if.end42 @@ -6082,22 +6081,22 @@ if.end63: ; preds = %if.end42, %if.then5 %25 = load i64, ptr %i_loc, align 4 %26 = getelementptr inbounds { i64, i64 }, ptr %i_loc, i64 0, i32 1 %27 = load i64, ptr %26, align 4 - %call64 = tail call i32 @_PyCfgBuilder_Addop(ptr noundef nonnull %call, i32 noundef %17, i32 noundef %oparg.0, i64 %25, i64 %27) #12 + %call64 = tail call i32 @_PyCfgBuilder_Addop(ptr noundef nonnull %call, i32 noundef %17, i32 noundef %oparg.0, i64 %25, i64 %27) #11 %cmp65 = icmp slt i32 %call64, 0 br i1 %cmp65, label %error, label %for.cond26 for.end71: ; preds = %for.cond26, %for.cond26.preheader - %call72 = tail call i32 @_PyCfgBuilder_CheckSize(ptr noundef nonnull %call) #12 + %call72 = tail call i32 @_PyCfgBuilder_CheckSize(ptr noundef nonnull %call) #11 %cmp73 = icmp slt i32 %call72, 0 br i1 %cmp73, label %error, label %if.end76 if.end76: ; preds = %for.end71 - tail call void @PyMem_Free(ptr noundef nonnull %call1) #12 + tail call void @PyMem_Free(ptr noundef nonnull %call1) #11 br label %return error: ; preds = %if.end63, %if.then36, %for.end71, %if.then4 - tail call void @_PyCfgBuilder_Free(ptr noundef nonnull %call) #12 - tail call void @PyMem_Free(ptr noundef %call1) #12 + tail call void @_PyCfgBuilder_Free(ptr noundef nonnull %call) #11 + tail call void @PyMem_Free(ptr noundef %call1) #11 br label %return return: ; preds = %entry, %error, %if.end76 @@ -6116,14 +6115,14 @@ declare i32 @_PyCfgBuilder_CheckSize(ptr noundef) local_unnamed_addr #2 declare void @_Py_Dealloc(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_enter_scope(ptr nocapture noundef %c, ptr noundef %name, i32 noundef %scope_type, ptr noundef %key, i32 noundef %lineno) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_enter_scope(ptr nocapture noundef %c, ptr noundef %name, i32 noundef %scope_type, ptr noundef %key, i32 noundef %lineno) unnamed_addr #1 { entry: - %call = tail call ptr @PyObject_Calloc(i64 noundef 1, i64 noundef 640) #12 + %call = tail call ptr @PyObject_Calloc(i64 noundef 1, i64 noundef 640) #11 %tobool.not = icmp eq ptr %call, null br i1 %tobool.not, label %if.then, label %if.end if.then: ; preds = %entry - %call2 = tail call ptr @PyErr_NoMemory() #12 + %call2 = tail call ptr @PyErr_NoMemory() #11 br label %return if.end: ; preds = %entry @@ -6133,7 +6132,7 @@ if.end: ; preds = %entry %c_st = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %u_argcount, i8 0, i64 24, i1 false) %0 = load ptr, ptr %c_st, align 8 - %call5 = tail call ptr @_PySymtable_Lookup(ptr noundef %0, ptr noundef %key) #12 + %call5 = tail call ptr @_PySymtable_Lookup(ptr noundef %0, ptr noundef %key) #11 store ptr %call5, ptr %call, align 8 %tobool7.not = icmp eq ptr %call5, null br i1 %tobool7.not, label %if.then8, label %if.end9 @@ -6159,12 +6158,12 @@ _Py_NewRef.exit: ; preds = %if.end9, %if.end.i. store ptr %name, ptr %u_metadata, align 8 %ste_varnames = getelementptr inbounds %struct._symtable_entry, ptr %2, i64 0, i32 4 %3 = load ptr, ptr %ste_varnames, align 8 - %call.i = tail call ptr @PyDict_New() #12 + %call.i = tail call ptr @PyDict_New() #11 %tobool.not.i = icmp eq ptr %call.i, null br i1 %tobool.not.i, label %list2dict.exit.thread, label %if.end.i61 if.end.i61: ; preds = %_Py_NewRef.exit - %call1.i = tail call i64 @PyList_Size(ptr noundef %3) #12 + %call1.i = tail call i64 @PyList_Size(ptr noundef %3) #11 %cmp21.i = icmp sgt i64 %call1.i, 0 br i1 %cmp21.i, label %for.body.lr.ph.i, label %if.end19 @@ -6174,7 +6173,7 @@ for.body.lr.ph.i: ; preds = %if.end.i61 for.body.i: ; preds = %for.inc.i, %for.body.lr.ph.i %i.022.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %inc.i, %for.inc.i ] - %call2.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %i.022.i) #12 + %call2.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %i.022.i) #11 %tobool3.not.i = icmp eq ptr %call2.i, null br i1 %tobool3.not.i, label %if.then4.i, label %if.end5.i @@ -6194,7 +6193,7 @@ if.end5.i: ; preds = %for.body.i %6 = load ptr, ptr %ob_item.i, align 8 %arrayidx.i = getelementptr ptr, ptr %6, i64 %i.022.i %7 = load ptr, ptr %arrayidx.i, align 8 - %call6.i = tail call i32 @PyDict_SetItem(ptr noundef nonnull %call.i, ptr noundef %7, ptr noundef nonnull %call2.i) #12 + %call6.i = tail call i32 @PyDict_SetItem(ptr noundef nonnull %call.i, ptr noundef %7, ptr noundef nonnull %call2.i) #11 %cmp7.i = icmp slt i32 %call6.i, 0 %8 = load i64, ptr %call2.i, align 8 %9 = and i64 %8, 2147483648 @@ -6211,7 +6210,7 @@ if.end.i22.i: ; preds = %if.then8.i br i1 %cmp.i24.i, label %if.then1.i25.i, label %Py_DECREF.exit27.i if.then1.i25.i: ; preds = %if.end.i22.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call2.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call2.i) #11 br label %Py_DECREF.exit27.i Py_DECREF.exit27.i: ; preds = %if.then1.i25.i, %if.end.i22.i, %if.then8.i @@ -6236,7 +6235,7 @@ if.end.i.i62: ; preds = %if.end9.i br i1 %cmp.i.i63, label %if.then1.i.i, label %for.inc.i if.then1.i.i: ; preds = %if.end.i.i62 - tail call void @_Py_Dealloc(ptr noundef nonnull %call2.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call2.i) #11 br label %for.inc.i for.inc.i: ; preds = %if.then1.i.i, %if.end.i.i62, %if.end9.i @@ -6245,7 +6244,7 @@ for.inc.i: ; preds = %if.then1.i.i, %if.e br i1 %exitcond.not.i, label %if.end19, label %for.body.i, !llvm.loop !26 return.sink.split.i: ; preds = %if.end.i13.i, %if.end.i31.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #11 br label %list2dict.exit.thread list2dict.exit.thread: ; preds = %_Py_NewRef.exit, %if.then4.i, %if.end.i31.i, %Py_DECREF.exit27.i, %if.end.i13.i, %return.sink.split.i @@ -6334,7 +6333,7 @@ if.then62: ; preds = %if.end51 br label %return if.end63: ; preds = %if.end51 - %call64 = tail call ptr @PyDict_New() #12 + %call64 = tail call ptr @PyDict_New() #11 %u_fasthidden = getelementptr inbounds %struct.compiler_unit, ptr %call, i64 0, i32 7, i32 7 store ptr %call64, ptr %u_fasthidden, align 8 %tobool68.not = icmp eq ptr %call64, null @@ -6351,7 +6350,7 @@ if.end70: ; preds = %if.end63 store i32 0, ptr %u_in_inlined_comp, align 4 %u_firstlineno = getelementptr inbounds %struct.compiler_unit, ptr %call, i64 0, i32 7, i32 11 store i32 %lineno, ptr %u_firstlineno, align 8 - %call72 = tail call ptr @PyDict_New() #12 + %call72 = tail call ptr @PyDict_New() #11 %u_consts = getelementptr inbounds %struct.compiler_unit, ptr %call, i64 0, i32 7, i32 2 store ptr %call72, ptr %u_consts, align 8 %tobool76.not = icmp eq ptr %call72, null @@ -6362,7 +6361,7 @@ if.then77: ; preds = %if.end70 br label %return if.end78: ; preds = %if.end70 - %call79 = tail call ptr @PyDict_New() #12 + %call79 = tail call ptr @PyDict_New() #11 %u_names = getelementptr inbounds %struct.compiler_unit, ptr %call, i64 0, i32 7, i32 3 store ptr %call79, ptr %u_names, align 8 %tobool83.not = icmp eq ptr %call79, null @@ -6381,14 +6380,14 @@ if.end85: ; preds = %if.end78 br i1 %tobool87.not, label %if.end100, label %if.then88 if.then88: ; preds = %if.end85 - %call90 = tail call ptr @PyCapsule_New(ptr noundef nonnull %22, ptr noundef nonnull @.str.330, ptr noundef null) #12 + %call90 = tail call ptr @PyCapsule_New(ptr noundef nonnull %22, ptr noundef nonnull @.str.330, ptr noundef null) #11 %tobool91.not = icmp eq ptr %call90, null br i1 %tobool91.not, label %if.then94, label %lor.lhs.false lor.lhs.false: ; preds = %if.then88 %c_stack = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 9 %23 = load ptr, ptr %c_stack, align 8 - %call92 = tail call i32 @PyList_Append(ptr noundef %23, ptr noundef nonnull %call90) #12 + %call92 = tail call i32 @PyList_Append(ptr noundef %23, ptr noundef nonnull %call90) #11 %cmp93 = icmp slt i32 %call92, 0 %24 = load i64, ptr %call90, align 8 %25 = and i64 %24, 2147483648 @@ -6405,7 +6404,7 @@ if.end.i.i66: ; preds = %if.then.i br i1 %cmp.i.i68, label %if.then1.i.i69, label %if.then94 if.then1.i.i69: ; preds = %if.end.i.i66 - tail call void @_Py_Dealloc(ptr noundef nonnull %call90) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call90) #11 br label %if.then94 if.then94: ; preds = %if.then1.i.i69, %if.end.i.i66, %if.then.i, %if.then88 @@ -6422,7 +6421,7 @@ if.end.i: ; preds = %if.end95 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call90) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call90) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end95, %if.then1.i, %if.end.i @@ -6484,7 +6483,7 @@ return: ; preds = %if.end110, %if.else } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_body(ptr noundef %c, i64 %loc.coerce0, ptr noundef %stmts) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_body(ptr noundef %c, i64 %loc.coerce0, ptr noundef %stmts) unnamed_addr #1 { entry: %loc.sroa.0.0.extract.trunc = trunc i64 %loc.coerce0 to i32 %loc.sroa.3.0.extract.shift = lshr i64 %loc.coerce0, 32 @@ -6577,7 +6576,7 @@ if.end21: ; preds = %cond.false15 br i1 %cmp22, label %if.then23, label %if.end58 if.then23: ; preds = %if.end21 - %call24 = tail call ptr @_PyAST_GetDocString(ptr noundef nonnull %stmts) #12 + %call24 = tail call ptr @_PyAST_GetDocString(ptr noundef nonnull %stmts) #11 %tobool25.not = icmp eq ptr %call24, null br i1 %tobool25.not, label %if.end58, label %if.then26 @@ -6627,7 +6626,7 @@ if.end.i: ; preds = %if.end52 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call27) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call27) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end52, %if.then1.i, %if.end.i @@ -6664,7 +6663,7 @@ return: ; preds = %for.body, %cond.end } ; Function Attrs: nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable -define internal fastcc zeroext i1 @find_ann(ptr noundef readonly %stmts) unnamed_addr #7 { +define internal fastcc noundef zeroext i1 @find_ann(ptr noundef readonly %stmts) unnamed_addr #6 { entry: %cmp = icmp eq ptr %stmts, null br label %for.cond @@ -6885,7 +6884,7 @@ return: ; preds = %lor.rhs86, %lor.rhs } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @codegen_addop_noarg(ptr nocapture noundef %seq, i32 noundef %opcode, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { +define internal fastcc noundef i32 @codegen_addop_noarg(ptr nocapture noundef %seq, i32 noundef %opcode, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { entry: %s_used.i.i = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %seq, i64 0, i32 2 %0 = load i32, ptr %s_used.i.i, align 4 @@ -6921,7 +6920,7 @@ _PyCompile_InstructionSequence_Addop.exit: ; preds = %entry, %instr_seque } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_visit_stmt(ptr noundef %c, ptr noundef %s) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_visit_stmt(ptr noundef %c, ptr noundef %s) unnamed_addr #1 { entry: %loc.i671 = alloca %struct._PyCompilerSrcLocation, align 8 %loop.i672 = alloca ptr, align 8 @@ -7046,7 +7045,7 @@ _Py_NewRef.exit: ; preds = %do.body.i, %if.end. store ptr %18, ptr %u_private.i, align 8 tail call fastcc void @Py_XDECREF(ptr noundef %17) %20 = load ptr, ptr %v.i, align 8 - %call25.i = tail call ptr (ptr, ...) @PyUnicode_FromFormat(ptr noundef nonnull @.str.335, ptr noundef %20) #12 + %call25.i = tail call ptr (ptr, ...) @PyUnicode_FromFormat(ptr noundef nonnull @.str.335, ptr noundef %20) #11 %tobool26.not.i = icmp eq ptr %call25.i, null br i1 %tobool26.not.i, label %return, label %if.end28.i @@ -7068,7 +7067,7 @@ if.end.i180.i: ; preds = %if.then32.i br i1 %cmp.i182.i, label %if.then1.i183.i, label %return if.then1.i183.i: ; preds = %if.end.i180.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call25.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call25.i) #11 br label %return if.end33.i: ; preds = %if.end28.i @@ -7081,7 +7080,7 @@ if.end.i171.i: ; preds = %if.end33.i br i1 %cmp.i173.i, label %if.then1.i174.i, label %Py_DECREF.exit176.i if.then1.i174.i: ; preds = %if.end.i171.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call25.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call25.i) #11 br label %Py_DECREF.exit176.i Py_DECREF.exit176.i: ; preds = %if.then1.i174.i, %if.end.i171.i, %if.end33.i @@ -7188,7 +7187,7 @@ cond.end79.i: ; preds = %cond.false75.i, %if %add.i = add i64 %cond80.i, 1 %c_arena.i = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 10 %26 = load ptr, ptr %c_arena.i, align 8 - %call82.i = tail call ptr @_Py_asdl_expr_seq_new(i64 noundef %add.i, ptr noundef %26) #12 + %call82.i = tail call ptr @_Py_asdl_expr_seq_new(i64 noundef %add.i, ptr noundef %26) #11 %cmp83.i = icmp eq ptr %call82.i, null br i1 %cmp83.i, label %if.then85.i, label %for.cond.i.preheader @@ -7213,7 +7212,7 @@ for.body.i: ; preds = %for.cond.i.preheade for.end.i: ; preds = %for.body.i, %for.cond.i.preheader %29 = load ptr, ptr %c_arena.i, align 8 - %call100.i = tail call ptr @_PyAST_Name(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 17), i32 noundef 1, i32 noundef %10, i32 noundef %12, i32 noundef %11, i32 noundef %13, ptr noundef %29) #12 + %call100.i = tail call ptr @_PyAST_Name(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 17), i32 noundef 1, i32 noundef %10, i32 noundef %12, i32 noundef %11, i32 noundef %13, ptr noundef %29) #11 %cmp101.i = icmp eq ptr %call100.i, null br i1 %cmp101.i, label %if.then103.i, label %if.end104.i @@ -7258,7 +7257,7 @@ if.end.i162.i: ; preds = %if.then121.i br i1 %cmp.i164.i, label %if.then1.i165.i, label %return if.then1.i165.i: ; preds = %if.end.i162.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call113.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call113.i) #11 br label %return if.end122.i: ; preds = %if.end117.i @@ -7271,7 +7270,7 @@ if.end.i.i: ; preds = %if.end122.i br i1 %cmp.i.i, label %if.then1.i.i, label %Py_DECREF.exit.i if.then1.i.i: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call113.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call113.i) #11 br label %Py_DECREF.exit.i Py_DECREF.exit.i: ; preds = %if.then1.i.i, %if.end.i.i, %if.end122.i @@ -7355,7 +7354,7 @@ cond.end.i98: ; preds = %sw.bb3 br i1 %cmp6.i, label %if.then.i, label %if.else.i99 if.then.i: ; preds = %cond.end.i98 - %call.i109 = tail call ptr (ptr, ...) @PyUnicode_FromFormat(ptr noundef nonnull @.str.335, ptr noundef %47) #12 + %call.i109 = tail call ptr (ptr, ...) @PyUnicode_FromFormat(ptr noundef nonnull @.str.335, ptr noundef %47) #11 %tobool10.not.i = icmp eq ptr %call.i109, null br i1 %tobool10.not.i, label %return, label %if.end.i110 @@ -7377,7 +7376,7 @@ if.end.i103.i: ; preds = %if.then16.i br i1 %cmp.i105.i, label %if.then1.i106.i, label %return if.then1.i106.i: ; preds = %if.end.i103.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i109) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i109) #11 br label %return if.end17.i: ; preds = %if.end.i110 @@ -7390,7 +7389,7 @@ if.end.i94.i: ; preds = %if.end17.i br i1 %cmp.i96.i, label %if.then1.i97.i, label %Py_DECREF.exit99.i if.then1.i97.i: ; preds = %if.end.i94.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i109) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i109) #11 br label %Py_DECREF.exit99.i Py_DECREF.exit99.i: ; preds = %if.then1.i97.i, %if.end.i94.i, %if.end17.i @@ -7480,7 +7479,7 @@ if.end.i.i.i.i: ; preds = %if.end.i81.i.i br i1 %cmp.i.i.i.i, label %if.then1.i.i.i.i, label %compiler_add_const.exit.i.i if.then1.i.i.i.i: ; preds = %if.end.i.i.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull @_Py_NoneStruct) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull @_Py_NoneStruct) #11 br label %compiler_add_const.exit.i.i compiler_add_const.exit.i.i: ; preds = %if.then1.i.i.i.i, %if.end.i.i.i.i, %if.end.i81.i.i @@ -7562,7 +7561,7 @@ if.end.i45.i.i: ; preds = %if.then28.i.i br i1 %cmp.i47.i.i, label %if.then1.i48.i.i, label %if.then46.i if.then1.i48.i.i: ; preds = %if.end.i45.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call22.i.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call22.i.i) #11 br label %if.then46.i if.end29.i.i: ; preds = %if.end25.i.i @@ -7575,7 +7574,7 @@ if.end.i.i.i: ; preds = %if.end29.i.i br i1 %cmp.i.i.i, label %if.then1.i.i.i, label %Py_DECREF.exit.i.i if.then1.i.i.i: ; preds = %if.end.i.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call22.i.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call22.i.i) #11 br label %Py_DECREF.exit.i.i Py_DECREF.exit.i.i: ; preds = %if.then1.i.i.i, %if.end.i.i.i, %if.end29.i.i @@ -7687,7 +7686,7 @@ if.end.i85.i: ; preds = %if.then61.i br i1 %cmp.i87.i, label %if.then1.i88.i, label %return if.then1.i88.i: ; preds = %if.end.i85.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call53.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call53.i) #11 br label %return if.end62.i: ; preds = %if.end57.i @@ -7700,7 +7699,7 @@ if.end.i.i104: ; preds = %if.end62.i br i1 %cmp.i.i106, label %if.then1.i.i107, label %Py_DECREF.exit.i102 if.then1.i.i107: ; preds = %if.end.i.i104 - tail call void @_Py_Dealloc(ptr noundef nonnull %call53.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call53.i) #11 br label %Py_DECREF.exit.i102 Py_DECREF.exit.i102: ; preds = %if.then1.i.i107, %if.end.i.i104, %if.end62.i @@ -7797,7 +7796,7 @@ land.end.i: ; preds = %land.rhs.i, %sw.bb5 %u.i119 = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %98 = load ptr, ptr %u.i119, align 8 %99 = load ptr, ptr %98, align 8 - %call.i120 = tail call i32 @_PyST_IsFunctionLike(ptr noundef %99) #12 + %call.i120 = tail call i32 @_PyST_IsFunctionLike(ptr noundef %99) #11 %tobool.not.i121 = icmp eq i32 %call.i120, 0 br i1 %tobool.not.i121, label %if.then.i137, label %if.end.i122 @@ -8359,7 +8358,7 @@ sw.bb83.i: ; preds = %sw.bb61 sw.default.i: ; preds = %sw.bb61 %189 = load ptr, ptr @PyExc_SystemError, align 8 - %call90.i = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %189, ptr noundef nonnull @.str.345, i32 noundef %154) #12 + %call90.i = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %189, ptr noundef nonnull @.str.345, i32 noundef %154) #11 br label %return sw.epilog.i: ; preds = %sw.bb83.i, %if.end75.i, %if.end51.i, %update_start_location_to_match_attr.exit.i @@ -8394,7 +8393,7 @@ if.end104.i146: ; preds = %sw.epilog.i sw.default.i.i: ; preds = %if.end104.i146 %197 = load ptr, ptr @PyExc_SystemError, align 8 - %call.i.i163 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %197, ptr noundef nonnull @.str.346, ptr noundef nonnull @.str.347, i32 noundef %195) #12 + %call.i.i163 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %197, ptr noundef nonnull @.str.346, ptr noundef nonnull @.str.347, i32 noundef %195) #11 br label %return switch.lookup: ; preds = %if.end104.i146 @@ -8657,7 +8656,7 @@ sw.bb.i224: ; preds = %if.end13.i %loc.sroa.13.8.insert.shift.i = shl nuw i64 %loc.sroa.13.8.insert.ext.i, 32 %loc.sroa.7.8.insert.ext.i = zext i32 %230 to i64 %loc.sroa.7.8.insert.insert.i = or disjoint i64 %loc.sroa.13.8.insert.shift.i, %loc.sroa.7.8.insert.ext.i - %call.i.i227 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %235, ptr noundef nonnull @.str.331) #12 + %call.i.i227 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %235, ptr noundef nonnull @.str.331) #11 %tobool.not.i.i = icmp eq i32 %call.i.i227, 0 br i1 %tobool.not.i.i, label %if.end17.i228, label %forbidden_name.exit.thread.i @@ -8711,7 +8710,7 @@ if.end44.i234: ; preds = %if.end38.i232 %u_private.i235 = getelementptr inbounds %struct.compiler_unit, ptr %243, i64 0, i32 2 %244 = load ptr, ptr %u_private.i235, align 8 %245 = load ptr, ptr %v14.i, align 8 - %call48.i236 = tail call ptr @_Py_Mangle(ptr noundef %244, ptr noundef %245) #12 + %call48.i236 = tail call ptr @_Py_Mangle(ptr noundef %244, ptr noundef %245) #11 %cmp49.i237 = icmp eq ptr %call48.i236, null br i1 %cmp49.i237, label %return, label %if.end51.i238 @@ -8736,7 +8735,7 @@ if.end.i106.i: ; preds = %if.then55.i br i1 %cmp.i108.i, label %if.then1.i109.i, label %return if.then1.i109.i: ; preds = %if.end.i106.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call48.i236) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call48.i236) #11 br label %return if.end56.i: ; preds = %if.end51.i238 @@ -8749,7 +8748,7 @@ if.end.i.i246: ; preds = %if.end56.i br i1 %cmp.i.i248, label %if.then1.i.i249, label %Py_DECREF.exit.i242 if.then1.i.i249: ; preds = %if.end.i.i246 - tail call void @_Py_Dealloc(ptr noundef nonnull %call48.i236) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call48.i236) #11 br label %Py_DECREF.exit.i242 Py_DECREF.exit.i242: ; preds = %if.then1.i.i249, %if.end.i.i246, %if.end56.i @@ -8763,7 +8762,7 @@ sw.bb63.i: ; preds = %if.end13.i %v64.i = getelementptr inbounds %struct._expr, ptr %232, i64 0, i32 1 %attr.i = getelementptr inbounds %struct._expr, ptr %232, i64 0, i32 1, i32 0, i32 1 %251 = load ptr, ptr %attr.i, align 8 - %call.i120.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %251, ptr noundef nonnull @.str.331) #12 + %call.i120.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %251, ptr noundef nonnull @.str.331) #11 %tobool.not.i121.i = icmp eq i32 %call.i120.i, 0 br i1 %tobool.not.i121.i, label %if.end67.i, label %forbidden_name.exit125.thread.i @@ -8904,7 +8903,7 @@ lor.lhs.false87.i: ; preds = %instr_sequence_next sw.default.i253: ; preds = %if.end13.i %273 = load ptr, ptr @PyExc_SystemError, align 8 - %call94.i = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %273, ptr noundef nonnull @.str.349, i32 noundef %234) #12 + %call94.i = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %273, ptr noundef nonnull @.str.349, i32 noundef %234) #11 br label %return sw.epilog.i201: ; preds = %lor.lhs.false87.i, %sw.bb78.i, %check_ann_expr.exit.i, %if.end67.i, %Py_DECREF.exit.i242, %land.lhs.true.i229, %if.end17.i228 @@ -9580,7 +9579,7 @@ codegen_addop_i.exit.i836: ; preds = %instr_sequence_next br label %if.end44.i839 if.end44.i839: ; preds = %codegen_addop_i.exit.i836, %for.body.i812 - %call45.i840 = tail call ptr @PyList_New(i64 noundef 0) #12 + %call45.i840 = tail call ptr @PyList_New(i64 noundef 0) #11 store ptr %call45.i840, ptr %pc.i, align 8 %cmp47.i = icmp eq ptr %call45.i840, null br i1 %cmp47.i, label %compiler_match_inner.exit, label %if.end50.i841 @@ -9613,7 +9612,7 @@ if.end.i324.i: ; preds = %if.then60.i br i1 %cmp.i326.i, label %if.then1.i327.i, label %compiler_match_inner.exit if.then1.i327.i: ; preds = %if.end.i324.i - tail call void @_Py_Dealloc(ptr noundef nonnull %386) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %386) #11 br label %compiler_match_inner.exit if.end62.i844: ; preds = %if.end50.i841 @@ -9670,7 +9669,7 @@ if.end.i315.i: ; preds = %if.then88.i br i1 %cmp.i317.i, label %if.then1.i318.i, label %compiler_match_inner.exit if.then1.i318.i: ; preds = %if.end.i315.i - tail call void @_Py_Dealloc(ptr noundef nonnull %386) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %386) #11 br label %compiler_match_inner.exit for.end.i846: ; preds = %for.cond65.i, %if.end62.i844 @@ -9686,7 +9685,7 @@ if.end.i.i871: ; preds = %for.end.i846 br i1 %cmp.i.i873, label %if.then1.i.i874, label %Py_DECREF.exit.i847 if.then1.i.i874: ; preds = %if.end.i.i871 - tail call void @_Py_Dealloc(ptr noundef nonnull %386) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %386) #11 br label %Py_DECREF.exit.i847 Py_DECREF.exit.i847: ; preds = %if.then1.i.i874, %if.end.i.i871, %for.end.i846 @@ -9701,12 +9700,12 @@ if.then94.i: ; preds = %Py_DECREF.exit.i847 br i1 %cmp.not.i.i848, label %if.end.i113.i, label %if.end99.i851 if.end.i113.i: ; preds = %if.then94.i - %call.i.i864 = tail call ptr @PyObject_Realloc(ptr noundef %.pre1034, i64 noundef 4) #12 + %call.i.i864 = tail call ptr @PyObject_Realloc(ptr noundef %.pre1034, i64 noundef 4) #11 %cmp1.i.i865 = icmp eq ptr %call.i.i864, null br i1 %cmp1.i.i865, label %if.then2.i.i, label %if.end4.i.i if.then2.i.i: ; preds = %if.end.i113.i - %call3.i.i = tail call ptr @PyErr_NoMemory() #12 + %call3.i.i = tail call ptr @PyErr_NoMemory() #11 br label %compiler_match_inner.exit if.end4.i.i: ; preds = %if.end.i113.i @@ -9952,7 +9951,7 @@ if.end303.i: ; preds = %cond.end286.i, %for compiler_match_inner.exit: ; preds = %for.end171.i, %instr_sequence_next_inst.exit.i.i135.i, %if.then128.i, %instr_sequence_next_inst.exit.i.i120.i, %if.then28.i, %instr_sequence_next_inst.exit.i.i.i827, %if.end44.i839, %if.end99.i851, %if.end179.i, %while.body.i.i, %for.body161.i, %for.body290.i, %if.then2.i.i, %sw.bb71, %if.end.i793, %if.then60.i, %if.end.i324.i, %if.then1.i327.i, %if.then88.i, %if.end.i315.i, %if.then1.i318.i, %if.then210.i, %if.else.i811, %if.then254.i, %if.end303.i %retval.0.i810 = phi i32 [ -1, %sw.bb71 ], [ -1, %if.end.i793 ], [ -1, %if.then60.i ], [ -1, %if.then1.i327.i ], [ -1, %if.end.i324.i ], [ -1, %if.then88.i ], [ -1, %if.then1.i318.i ], [ -1, %if.end.i315.i ], [ -1, %if.then210.i ], [ -1, %if.else.i811 ], [ -1, %if.then254.i ], [ %..i809, %if.end303.i ], [ -1, %if.then2.i.i ], [ -1, %for.body290.i ], [ -1, %for.body161.i ], [ -1, %while.body.i.i ], [ -1, %if.end179.i ], [ -1, %if.end99.i851 ], [ -1, %if.end44.i839 ], [ -1, %instr_sequence_next_inst.exit.i.i.i827 ], [ -1, %if.then28.i ], [ -1, %instr_sequence_next_inst.exit.i.i120.i ], [ -1, %if.then128.i ], [ -1, %instr_sequence_next_inst.exit.i.i135.i ], [ -1, %for.end171.i ] %443 = load ptr, ptr %fail_pop.i, align 8 - tail call void @PyObject_Free(ptr noundef %443) #12 + tail call void @PyObject_Free(ptr noundef %443) #11 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %pc.i) br label %return @@ -10097,7 +10096,7 @@ land.lhs.true14.i: ; preds = %sw.bb120 br i1 %tobool.not.i418, label %if.end33.i420, label %land.lhs.true19.i land.lhs.true19.i: ; preds = %land.lhs.true14.i - %call24.i419 = tail call i64 @PyTuple_Size(ptr noundef nonnull %463) #12 + %call24.i419 = tail call i64 @PyTuple_Size(ptr noundef nonnull %463) #11 %cmp25.i = icmp sgt i64 %call24.i419, 0 br i1 %cmp25.i, label %if.then.i446, label %if.end33.i420 @@ -10391,7 +10390,7 @@ if.end23.i: ; preds = %if.end17.i483 %526 = load ptr, ptr %517, align 8 %527 = getelementptr i8, ptr %526, i64 16 %.val.i486 = load i64, ptr %527, align 8 - %call35.i487 = tail call i64 @PyUnicode_FindChar(ptr noundef %526, i32 noundef 46, i64 noundef 0, i64 noundef %.val.i486, i32 noundef 1) #12 + %call35.i487 = tail call i64 @PyUnicode_FindChar(ptr noundef %526, i32 noundef 46, i64 noundef 0, i64 noundef %.val.i486, i32 noundef 1) #11 br i1 %tobool.not.i485, label %if.else.i529, label %if.then24.i488 if.then24.i488: ; preds = %if.end23.i @@ -10402,7 +10401,7 @@ if.then24.i488: ; preds = %if.end23.i while.body.preheader.i.i: ; preds = %if.then24.i488 %add81.i.i = add nuw i64 %call35.i487, 1 - %call482.i.i = tail call i64 @PyUnicode_FindChar(ptr noundef nonnull %526, i32 noundef 46, i64 noundef %add81.i.i, i64 noundef %.val.i486, i32 noundef 1) #12 + %call482.i.i = tail call i64 @PyUnicode_FindChar(ptr noundef nonnull %526, i32 noundef 46, i64 noundef %add81.i.i, i64 noundef %.val.i486, i32 noundef 1) #11 %cmp583.i.i = icmp eq i64 %call482.i.i, -2 br i1 %cmp583.i.i, label %return, label %if.end7.i.i @@ -10411,7 +10410,7 @@ if.end7.i.i: ; preds = %while.body.preheade %add84.i.i = phi i64 [ %add.i.i, %codegen_addop_noarg.exit.i.i ], [ %add81.i.i, %while.body.preheader.i.i ] %cmp8.not.i.i = icmp eq i64 %call485.i.i, -1 %cond.i.i491 = select i1 %cmp8.not.i.i, i64 %.val.i486, i64 %call485.i.i - %call9.i.i = tail call ptr @PyUnicode_Substring(ptr noundef %526, i64 noundef %add84.i.i, i64 noundef %cond.i.i491) #12 + %call9.i.i = tail call ptr @PyUnicode_Substring(ptr noundef %526, i64 noundef %add84.i.i, i64 noundef %cond.i.i491) #11 %tobool.not.i.i492 = icmp eq ptr %call9.i.i, null br i1 %tobool.not.i.i492, label %return, label %if.end11.i.i493 @@ -10454,7 +10453,7 @@ if.end.i46.i.i: ; preds = %if.then15.i.i528 br i1 %cmp.i48.i.i, label %if.then1.i49.i.i, label %return if.then1.i49.i.i: ; preds = %if.end.i46.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call9.i.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call9.i.i) #11 br label %return if.end16.i.i504: ; preds = %instr_sequence_next_inst.exit.i.i.i.i.i501 @@ -10480,7 +10479,7 @@ if.end.i.i.i524: ; preds = %if.end16.i.i504 br i1 %cmp.i.i.i526, label %if.then1.i.i.i527, label %Py_DECREF.exit.i.i510 if.then1.i.i.i527: ; preds = %if.end.i.i.i524 - tail call void @_Py_Dealloc(ptr noundef nonnull %call9.i.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call9.i.i) #11 br label %Py_DECREF.exit.i.i510 Py_DECREF.exit.i.i510: ; preds = %if.then1.i.i.i527, %if.end.i.i.i524, %if.end16.i.i504 @@ -10544,7 +10543,7 @@ codegen_addop_noarg.exit.i.i: ; preds = %instr_sequence_next %loc.sroa.2.0.i_loc.sroa_idx.i.i53.i.i = getelementptr inbounds i8, ptr %i_loc.i.i52.i.i, i64 8 store i64 %loc.sroa.7.8.insert.insert.i476, ptr %loc.sroa.2.0.i_loc.sroa_idx.i.i53.i.i, align 4 %add.i.i = add nuw i64 %call485.i.i, 1 - %call4.i.i = tail call i64 @PyUnicode_FindChar(ptr noundef %526, i32 noundef 46, i64 noundef %add.i.i, i64 noundef %.val.i486, i32 noundef 1) #12 + %call4.i.i = tail call i64 @PyUnicode_FindChar(ptr noundef %526, i32 noundef 46, i64 noundef %add.i.i, i64 noundef %.val.i486, i32 noundef 1) #11 %cmp5.i.i = icmp eq i64 %call4.i.i, -2 br i1 %cmp5.i.i, label %return, label %if.end7.i.i @@ -10599,7 +10598,7 @@ if.end43.thread.i: ; preds = %if.else.i529 if.then37.i531: ; preds = %if.else.i529 %549 = load ptr, ptr %517, align 8 - %call39.i532 = tail call ptr @PyUnicode_Substring(ptr noundef %549, i64 noundef 0, i64 noundef %call35.i487) #12 + %call39.i532 = tail call ptr @PyUnicode_Substring(ptr noundef %549, i64 noundef 0, i64 noundef %call35.i487) #11 %cmp40.i533 = icmp eq ptr %call39.i532, null br i1 %cmp40.i533, label %return, label %if.then46.i534 @@ -10617,7 +10616,7 @@ if.end.i.i535: ; preds = %if.then46.i534 br i1 %cmp.i.i537, label %if.then1.i.i538, label %if.end47.i if.then1.i.i538: ; preds = %if.end.i.i535 - tail call void @_Py_Dealloc(ptr noundef nonnull %call39.i532) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call39.i532) #11 br label %if.end47.i if.end47.i: ; preds = %if.then1.i.i538, %if.end.i.i535, %if.then46.i534, %if.end43.thread.i @@ -10646,7 +10645,7 @@ cond.end.i542: ; preds = %cond.false.i541, %s %level.i = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 1, i32 0, i32 2 %554 = load i32, ptr %level.i, align 8 %conv.i544 = sext i32 %554 to i64 - %call.i545 = tail call ptr @PyLong_FromLong(i64 noundef %conv.i544) #12 + %call.i545 = tail call ptr @PyLong_FromLong(i64 noundef %conv.i544) #11 %cmp4.i546 = icmp eq ptr %call.i545, null br i1 %cmp4.i546, label %return, label %if.end.i547 @@ -10688,7 +10687,7 @@ if.end.i244.i: ; preds = %if.then13.i br i1 %cmp.i246.i, label %if.then1.i247.i, label %return if.then1.i247.i: ; preds = %if.end.i244.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i545) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i545) #11 br label %return if.end14.i563: ; preds = %if.end.i547 @@ -10701,11 +10700,11 @@ if.end.i235.i: ; preds = %if.end14.i563 br i1 %cmp.i237.i, label %if.then1.i238.i, label %Py_DECREF.exit240.i if.then1.i238.i: ; preds = %if.end.i235.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i545) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i545) #11 br label %Py_DECREF.exit240.i Py_DECREF.exit240.i: ; preds = %if.then1.i238.i, %if.end.i235.i, %if.end14.i563 - %call16.i = tail call ptr @PyTuple_New(i64 noundef %cond.i543) #12 + %call16.i = tail call ptr @PyTuple_New(i64 noundef %cond.i543) #11 %tobool.not.i564 = icmp eq ptr %call16.i, null br i1 %tobool.not.i564, label %return, label %for.cond.preheader.i @@ -10761,7 +10760,7 @@ land.lhs.true.i599: ; preds = %location_is_after.e br i1 %tobool36.not.i, label %if.end58.i567, label %land.lhs.true37.i land.lhs.true37.i: ; preds = %land.lhs.true.i599 - %call40.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef nonnull %573, ptr noundef nonnull @.str.372) #12 + %call40.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef nonnull %573, ptr noundef nonnull @.str.372) #11 %tobool41.not.i = icmp eq i32 %call40.i, 0 br i1 %tobool41.not.i, label %land.lhs.true37.if.end58_crit_edge.i, label %if.then42.i600 @@ -10782,7 +10781,7 @@ if.end.i226.i: ; preds = %if.then42.i600 br i1 %cmp.i228.i, label %if.then1.i229.i, label %Py_DECREF.exit231.i if.then1.i229.i: ; preds = %if.end.i226.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call16.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call16.i) #11 br label %Py_DECREF.exit231.i Py_DECREF.exit231.i: ; preds = %if.then1.i229.i, %if.end.i226.i, %if.then42.i600 @@ -10833,7 +10832,7 @@ if.end.i217.i: ; preds = %if.then73.i br i1 %cmp.i219.i, label %if.then1.i220.i, label %return if.then1.i220.i: ; preds = %if.end.i217.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call16.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call16.i) #11 br label %return if.end74.i: ; preds = %if.end58.i567 @@ -10846,7 +10845,7 @@ if.end.i.i595: ; preds = %if.end74.i br i1 %cmp.i.i597, label %if.then1.i.i598, label %Py_DECREF.exit.i568 if.then1.i.i598: ; preds = %if.end.i.i595 - tail call void @_Py_Dealloc(ptr noundef nonnull %call16.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call16.i) #11 br label %Py_DECREF.exit.i568 Py_DECREF.exit.i568: ; preds = %if.then1.i.i598, %if.end.i.i595, %if.end74.i @@ -11753,7 +11752,7 @@ return: ; preds = %for.body.i747, %for } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef %e) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_visit_expr(ptr noundef %c, ptr noundef %e) unnamed_addr #1 { entry: %lineno1.i = getelementptr inbounds %struct._expr, ptr %e, i64 0, i32 2 %0 = load i32, ptr %lineno1.i, align 8 @@ -12140,7 +12139,7 @@ sw.bb1.i: ; preds = %if.end37.i sw.default.i507: ; preds = %if.end37.i %51 = load ptr, ptr @PyExc_SystemError, align 8 - %call.i508 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %51, ptr noundef nonnull @.str.384, i32 noundef %48) #12 + %call.i508 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %51, ptr noundef nonnull @.str.384, i32 noundef %48) #11 br label %unaryop.exit unaryop.exit: ; preds = %if.end37.i, %sw.bb1.i, %sw.default.i507 @@ -12237,7 +12236,7 @@ if.end.i.i.i503: ; preds = %if.end.i63.i br i1 %cmp.i.i.i504, label %if.then1.i.i.i, label %compiler_add_const.exit.i if.then1.i.i.i: ; preds = %if.end.i.i.i503 - tail call void @_Py_Dealloc(ptr noundef nonnull @_Py_NoneStruct) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull @_Py_NoneStruct) #11 br label %compiler_add_const.exit.i compiler_add_const.exit.i: ; preds = %if.then1.i.i.i, %if.end.i.i.i503, %if.end.i63.i @@ -12367,7 +12366,7 @@ if.end.i73.i: ; preds = %if.then68.i br i1 %cmp.i75.i, label %if.then1.i76.i, label %compiler_visit_expr1.exit if.then1.i76.i: ; preds = %if.end.i73.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call61.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call61.i) #11 br label %compiler_visit_expr1.exit if.end69.i: ; preds = %if.end65.i @@ -12380,7 +12379,7 @@ if.end.i.i481: ; preds = %if.end69.i br i1 %cmp.i.i483, label %if.then1.i.i484, label %compiler_visit_expr1.exit if.then1.i.i484: ; preds = %if.end.i.i481 - tail call void @_Py_Dealloc(ptr noundef nonnull %call61.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call61.i) #11 br label %compiler_visit_expr1.exit sw.bb78.i: ; preds = %entry @@ -12883,7 +12882,7 @@ sw.bb92.i: ; preds = %entry %u93.i = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %155 = load ptr, ptr %u93.i, align 8 %156 = load ptr, ptr %155, align 8 - %call94.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %156) #12 + %call94.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %156) #11 %tobool.not.i = icmp eq i32 %call94.i, 0 br i1 %tobool.not.i, label %if.then95.i, label %if.end97.i @@ -12948,7 +12947,7 @@ sw.bb119.i: ; preds = %entry %u120.i = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %160 = load ptr, ptr %u120.i, align 8 %161 = load ptr, ptr %160, align 8 - %call122.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %161) #12 + %call122.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %161) #11 %tobool123.not.i = icmp eq i32 %call122.i, 0 br i1 %tobool123.not.i, label %if.then124.i, label %if.end126.i @@ -13035,7 +13034,7 @@ land.lhs.true.i: ; preds = %sw.bb154.i br i1 %cmp158.i, label %if.end177.i, label %if.then159.i if.then159.i: ; preds = %sw.bb154.i, %land.lhs.true.i - %call162.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %.pre771) #12 + %call162.i = tail call i32 @_PyST_IsFunctionLike(ptr noundef %.pre771) #11 %tobool163.not.i = icmp eq i32 %call162.i, 0 br i1 %tobool163.not.i, label %if.then164.i, label %if.end166.i @@ -13496,7 +13495,7 @@ is_import_originated.exit: ; preds = %if.end.i.i253 %235 = load ptr, ptr %st_top.i, align 8 %v.i613 = getelementptr inbounds %struct._expr, ptr %232, i64 0, i32 1 %236 = load ptr, ptr %v.i613, align 8 - %call.i614 = tail call i64 @_PyST_GetSymbol(ptr noundef %235, ptr noundef %236) #12 + %call.i614 = tail call i64 @_PyST_GetSymbol(ptr noundef %235, ptr noundef %236) #11 %conv.i615712 = and i64 %call.i614, 128 %tobool.not.i.i254 = icmp eq i64 %conv.i615712, 0 br i1 %tobool.not.i.i254, label %if.end8.i.i, label %if.end7.i @@ -13985,7 +13984,7 @@ if.end.i128.i: ; preds = %if.then12.i br i1 %cmp.i130.i, label %if.then1.i131.i, label %compiler_visit_expr1.exit if.then1.i131.i: ; preds = %if.end.i128.i - tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #11 br label %compiler_visit_expr1.exit if.end13.i: ; preds = %_Py_NewRef.exit.i @@ -13998,7 +13997,7 @@ if.end.i119.i: ; preds = %if.end13.i br i1 %cmp.i121.i, label %if.then1.i122.i, label %Py_DECREF.exit124.i if.then1.i122.i: ; preds = %if.end.i119.i - tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #11 br label %Py_DECREF.exit124.i Py_DECREF.exit124.i: ; preds = %if.then1.i122.i, %if.end.i119.i, %if.end13.i @@ -14240,7 +14239,7 @@ if.end.i110.i: ; preds = %if.then102.i br i1 %cmp.i112.i, label %if.then1.i113.i, label %compiler_visit_expr1.exit if.then1.i113.i: ; preds = %if.end.i110.i - tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #11 br label %compiler_visit_expr1.exit if.end103.i: ; preds = %_Py_NewRef.exit207.i @@ -14253,7 +14252,7 @@ if.end.i.i158: ; preds = %if.end103.i br i1 %cmp.i.i159, label %if.then1.i.i, label %compiler_visit_expr1.exit if.then1.i.i: ; preds = %if.end.i.i158 - tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 16)) #11 br label %compiler_visit_expr1.exit sw.bb215.i: ; preds = %entry @@ -14285,7 +14284,7 @@ sw.bb10.i: ; preds = %if.end.i108 sw.default.i142: ; preds = %if.end.i108 %353 = load ptr, ptr @PyExc_SystemError, align 8 - %call11.i143 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %353, ptr noundef nonnull @.str.388, i32 noundef %347) #12 + %call11.i143 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %353, ptr noundef nonnull @.str.388, i32 noundef %347) #11 br label %compiler_visit_expr1.exit sw.epilog.i109: ; preds = %sw.bb10.i, %sw.bb9.i, %if.end.i108 @@ -14587,7 +14586,7 @@ lor.lhs.false3.i.i: ; preds = %sw.bb.i.i br i1 %or.cond35.i.i, label %sw.bb25.i.i, label %PyObject_TypeCheck.exit.i.i PyObject_TypeCheck.exit.i.i: ; preds = %lor.lhs.false3.i.i - %call2.i.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val16.i.i, ptr noundef nonnull @PyFloat_Type) #12 + %call2.i.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val16.i.i, ptr noundef nonnull @PyFloat_Type) #11 %tobool3.i.not.i.i = icmp eq i32 %call2.i.i.i, 0 br i1 %tobool3.i.not.i.i, label %lor.lhs.false8.i.i, label %sw.bb25.i.i @@ -14597,7 +14596,7 @@ lor.lhs.false8.i.i: ; preds = %PyObject_TypeCheck. br i1 %cmp.i.not.i21.i.i, label %sw.bb25.i.i, label %PyObject_TypeCheck.exit26.i.i PyObject_TypeCheck.exit26.i.i: ; preds = %lor.lhs.false8.i.i - %call2.i23.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val20.i.i, ptr noundef nonnull @PyComplex_Type) #12 + %call2.i23.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val20.i.i, ptr noundef nonnull @PyComplex_Type) #11 %tobool3.i24.not.i.i = icmp eq i32 %call2.i23.i.i, 0 br i1 %tobool3.i24.not.i.i, label %lor.lhs.false11.i.i, label %sw.bb25.i.i @@ -14609,13 +14608,13 @@ lor.lhs.false11.i.i: ; preds = %PyObject_TypeCheck. br i1 %or.cond36.i.i, label %sw.bb25.i.i, label %lor.lhs.false17.i.i lor.lhs.false17.i.i: ; preds = %lor.lhs.false11.i.i - %call19.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val18.i.i, ptr noundef nonnull @PySet_Type) #12 + %call19.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val18.i.i, ptr noundef nonnull @PySet_Type) #11 %tobool20.not.i.i = icmp eq i32 %call19.i.i, 0 br i1 %tobool20.not.i.i, label %lor.lhs.false21.i.i, label %sw.bb25.i.i lor.lhs.false21.i.i: ; preds = %lor.lhs.false17.i.i %.val.i.i = load ptr, ptr %401, align 8 - %call23.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val.i.i, ptr noundef nonnull @PyFrozenSet_Type) #12 + %call23.i.i = tail call i32 @PyType_IsSubtype(ptr noundef %.val.i.i, ptr noundef nonnull @PyFrozenSet_Type) #11 %tobool24.not.i.i = icmp eq i32 %call23.i.i, 0 br i1 %tobool24.not.i.i, label %if.end.i99, label %sw.bb25.i.i @@ -15299,10 +15298,10 @@ entry: %u_instr_sequence = getelementptr inbounds %struct.compiler_unit, ptr %u, i64 0, i32 3 %s_labelmap.i = getelementptr inbounds %struct.compiler_unit, ptr %u, i64 0, i32 3, i32 3 %0 = load ptr, ptr %s_labelmap.i, align 8 - tail call void @PyObject_Free(ptr noundef %0) #12 + tail call void @PyObject_Free(ptr noundef %0) #11 store ptr null, ptr %s_labelmap.i, align 8 %1 = load ptr, ptr %u_instr_sequence, align 8 - tail call void @PyObject_Free(ptr noundef %1) #12 + tail call void @PyObject_Free(ptr noundef %1) #11 store ptr null, ptr %u_instr_sequence, align 8 %2 = load ptr, ptr %u, align 8 %cmp.not = icmp eq ptr %2, null @@ -15322,7 +15321,7 @@ if.end.i146: ; preds = %if.then br i1 %cmp.i148, label %if.then1.i149, label %do.body1 if.then1.i149: ; preds = %if.end.i146 - tail call void @_Py_Dealloc(ptr noundef nonnull %2) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %2) #11 br label %do.body1 do.body1: ; preds = %if.end.i146, %if.then1.i149, %if.then, %entry @@ -15345,7 +15344,7 @@ if.end.i137: ; preds = %if.then5 br i1 %cmp.i139, label %if.then1.i140, label %do.body8 if.then1.i140: ; preds = %if.end.i137 - tail call void @_Py_Dealloc(ptr noundef nonnull %5) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %5) #11 br label %do.body8 do.body8: ; preds = %if.end.i137, %if.then1.i140, %if.then5, %do.body1 @@ -15368,7 +15367,7 @@ if.end.i128: ; preds = %if.then13 br i1 %cmp.i130, label %if.then1.i131, label %do.body16 if.then1.i131: ; preds = %if.end.i128 - tail call void @_Py_Dealloc(ptr noundef nonnull %8) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %8) #11 br label %do.body16 do.body16: ; preds = %if.end.i128, %if.then1.i131, %if.then13, %do.body8 @@ -15391,7 +15390,7 @@ if.end.i119: ; preds = %if.then21 br i1 %cmp.i121, label %if.then1.i122, label %do.body24 if.then1.i122: ; preds = %if.end.i119 - tail call void @_Py_Dealloc(ptr noundef nonnull %11) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %11) #11 br label %do.body24 do.body24: ; preds = %if.end.i119, %if.then1.i122, %if.then21, %do.body16 @@ -15414,7 +15413,7 @@ if.end.i110: ; preds = %if.then29 br i1 %cmp.i112, label %if.then1.i113, label %do.body32 if.then1.i113: ; preds = %if.end.i110 - tail call void @_Py_Dealloc(ptr noundef nonnull %14) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %14) #11 br label %do.body32 do.body32: ; preds = %if.end.i110, %if.then1.i113, %if.then29, %do.body24 @@ -15437,7 +15436,7 @@ if.end.i101: ; preds = %if.then37 br i1 %cmp.i103, label %if.then1.i104, label %do.body40 if.then1.i104: ; preds = %if.end.i101 - tail call void @_Py_Dealloc(ptr noundef nonnull %17) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %17) #11 br label %do.body40 do.body40: ; preds = %if.end.i101, %if.then1.i104, %if.then37, %do.body32 @@ -15460,7 +15459,7 @@ if.end.i92: ; preds = %if.then45 br i1 %cmp.i94, label %if.then1.i95, label %do.body48 if.then1.i95: ; preds = %if.end.i92 - tail call void @_Py_Dealloc(ptr noundef nonnull %20) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %20) #11 br label %do.body48 do.body48: ; preds = %if.end.i92, %if.then1.i95, %if.then45, %do.body40 @@ -15483,7 +15482,7 @@ if.end.i83: ; preds = %if.then53 br i1 %cmp.i85, label %if.then1.i86, label %do.body56 if.then1.i86: ; preds = %if.end.i83 - tail call void @_Py_Dealloc(ptr noundef nonnull %23) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %23) #11 br label %do.body56 do.body56: ; preds = %if.end.i83, %if.then1.i86, %if.then53, %do.body48 @@ -15506,7 +15505,7 @@ if.end.i74: ; preds = %if.then61 br i1 %cmp.i76, label %if.then1.i77, label %do.body64 if.then1.i77: ; preds = %if.end.i74 - tail call void @_Py_Dealloc(ptr noundef nonnull %26) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %26) #11 br label %do.body64 do.body64: ; preds = %if.end.i74, %if.then1.i77, %if.then61, %do.body56 @@ -15529,28 +15528,28 @@ if.end.i: ; preds = %if.then68 br i1 %cmp.i, label %if.then1.i, label %do.end70 if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %29) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %29) #11 br label %do.end70 do.end70: ; preds = %do.body64, %if.then68, %if.then1.i, %if.end.i - tail call void @PyObject_Free(ptr noundef nonnull %u) #12 + tail call void @PyObject_Free(ptr noundef nonnull %u) #11 ret void } ; Function Attrs: nounwind uwtable define internal fastcc ptr @dictbytype(ptr noundef %src, i32 noundef %scope_type, i32 noundef %flag, i64 noundef %offset) unnamed_addr #1 { entry: - %call = tail call ptr @PyDict_New() #12 + %call = tail call ptr @PyDict_New() #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call1 = tail call ptr @PyDict_Keys(ptr noundef %src) #12 + %call1 = tail call ptr @PyDict_Keys(ptr noundef %src) #11 %cmp2 = icmp eq ptr %call1, null br i1 %cmp2, label %return, label %if.end4 if.end4: ; preds = %if.end - %call5 = tail call i32 @PyList_Sort(ptr noundef nonnull %call1) #12 + %call5 = tail call i32 @PyList_Sort(ptr noundef nonnull %call1) #11 %cmp6.not = icmp eq i32 %call5, 0 br i1 %cmp6.not, label %if.end8, label %if.then7 @@ -15584,8 +15583,8 @@ for.body: ; preds = %for.body.lr.ph, %fo %3 = load ptr, ptr %ob_item, align 8 %arrayidx = getelementptr ptr, ptr %3, i64 %key_i.039 %4 = load ptr, ptr %arrayidx, align 8 - %call11 = tail call ptr @PyDict_GetItemWithError(ptr noundef %src, ptr noundef %4) #12 - %call12 = tail call i64 @PyLong_AsLong(ptr noundef %call11) #12 + %call11 = tail call ptr @PyDict_GetItemWithError(ptr noundef %src, ptr noundef %4) #11 + %call12 = tail call i64 @PyLong_AsLong(ptr noundef %call11) #11 %shr = lshr i64 %call12, 12 %and = and i64 %shr, 15 %cmp13 = icmp ne i64 %and, %conv @@ -15595,7 +15594,7 @@ for.body: ; preds = %for.body.lr.ph, %fo br i1 %or.cond, label %for.inc, label %if.then17 if.then17: ; preds = %for.body - %call18 = tail call ptr @PyLong_FromSsize_t(i64 noundef %i.040) #12 + %call18 = tail call ptr @PyLong_FromSsize_t(i64 noundef %i.040) #11 %cmp19 = icmp eq ptr %call18, null br i1 %cmp19, label %if.then21, label %if.end22 @@ -15612,7 +15611,7 @@ if.end.i78: ; preds = %if.then21 br i1 %cmp.i80, label %if.then1.i81, label %Py_DECREF.exit83 if.then1.i81: ; preds = %if.end.i78 - tail call void @_Py_Dealloc(ptr noundef nonnull %call1) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call1) #11 br label %Py_DECREF.exit83 Py_DECREF.exit83: ; preds = %if.then21, %if.then1.i81, %if.end.i78 @@ -15629,7 +15628,7 @@ if.end.i69: ; preds = %Py_DECREF.exit83 if.end22: ; preds = %if.then17 %inc = add i64 %i.040, 1 - %call23 = tail call i32 @PyDict_SetItem(ptr noundef nonnull %call, ptr noundef %4, ptr noundef nonnull %call18) #12 + %call23 = tail call i32 @PyDict_SetItem(ptr noundef nonnull %call, ptr noundef %4, ptr noundef nonnull %call18) #11 %cmp24 = icmp slt i32 %call23, 0 br i1 %cmp24, label %if.then26, label %if.end27 @@ -15646,7 +15645,7 @@ if.end.i60: ; preds = %if.then26 br i1 %cmp.i62, label %if.then1.i63, label %Py_DECREF.exit65 if.then1.i63: ; preds = %if.end.i60 - tail call void @_Py_Dealloc(ptr noundef nonnull %call1) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call1) #11 br label %Py_DECREF.exit65 Py_DECREF.exit65: ; preds = %if.then26, %if.then1.i63, %if.end.i60 @@ -15662,7 +15661,7 @@ if.end.i51: ; preds = %Py_DECREF.exit65 br i1 %cmp.i53, label %if.then1.i54, label %Py_DECREF.exit56 if.then1.i54: ; preds = %if.end.i51 - tail call void @_Py_Dealloc(ptr noundef nonnull %call18) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call18) #11 br label %Py_DECREF.exit56 Py_DECREF.exit56: ; preds = %Py_DECREF.exit65, %if.then1.i54, %if.end.i51 @@ -15690,7 +15689,7 @@ if.end.i33: ; preds = %if.end27 br i1 %cmp.i35, label %if.then1.i36, label %for.inc if.then1.i36: ; preds = %if.end.i33 - tail call void @_Py_Dealloc(ptr noundef nonnull %call18) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call18) #11 br label %for.inc for.inc: ; preds = %for.body, %if.end27, %if.then1.i36, %if.end.i33 @@ -15714,7 +15713,7 @@ if.end.i: ; preds = %for.end return.sink.split: ; preds = %if.end.i, %if.end.i42, %if.end.i69, %if.end.i87 %call1.sink = phi ptr [ %call1, %if.end.i87 ], [ %call, %if.end.i69 ], [ %call, %if.end.i42 ], [ %call1, %if.end.i ] %retval.0.ph = phi ptr [ null, %if.end.i87 ], [ null, %if.end.i69 ], [ null, %if.end.i42 ], [ %call, %if.end.i ] - tail call void @_Py_Dealloc(ptr noundef nonnull %call1.sink) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call1.sink) #11 br label %return return: ; preds = %return.sink.split, %if.end.i, %for.end, %if.end.i42, %Py_DECREF.exit56, %if.end.i69, %Py_DECREF.exit83, %if.end.i87, %if.then7, %if.end, %entry @@ -15725,24 +15724,24 @@ return: ; preds = %return.sink.split, ; Function Attrs: nounwind uwtable define internal fastcc i64 @dict_add_o(ptr noundef %dict, ptr noundef %o) unnamed_addr #1 { entry: - %call = tail call ptr @PyDict_GetItemWithError(ptr noundef %dict, ptr noundef %o) #12 + %call = tail call ptr @PyDict_GetItemWithError(ptr noundef %dict, ptr noundef %o) #11 %tobool.not = icmp eq ptr %call, null br i1 %tobool.not, label %if.then, label %if.else if.then: ; preds = %entry - %call1 = tail call ptr @PyErr_Occurred() #12 + %call1 = tail call ptr @PyErr_Occurred() #11 %tobool2.not = icmp eq ptr %call1, null br i1 %tobool2.not, label %if.end, label %return if.end: ; preds = %if.then %0 = getelementptr i8, ptr %dict, i64 16 %dict.val = load i64, ptr %0, align 8 - %call5 = tail call ptr @PyLong_FromSsize_t(i64 noundef %dict.val) #12 + %call5 = tail call ptr @PyLong_FromSsize_t(i64 noundef %dict.val) #11 %tobool6.not = icmp eq ptr %call5, null br i1 %tobool6.not, label %return, label %if.end8 if.end8: ; preds = %if.end - %call9 = tail call i32 @PyDict_SetItem(ptr noundef nonnull %dict, ptr noundef %o, ptr noundef nonnull %call5) #12 + %call9 = tail call i32 @PyDict_SetItem(ptr noundef nonnull %dict, ptr noundef %o, ptr noundef nonnull %call5) #11 %cmp = icmp slt i32 %call9, 0 %1 = load i64, ptr %call5, align 8 %2 = and i64 %1, 2147483648 @@ -15759,7 +15758,7 @@ if.end.i17: ; preds = %if.then10 br i1 %cmp.i19, label %if.then1.i20, label %return if.then1.i20: ; preds = %if.end.i17 - tail call void @_Py_Dealloc(ptr noundef nonnull %call5) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call5) #11 br label %return if.end11: ; preds = %if.end8 @@ -15772,11 +15771,11 @@ if.end.i: ; preds = %if.end11 br i1 %cmp.i, label %if.then1.i, label %return if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call5) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call5) #11 br label %return if.else: ; preds = %entry - %call12 = tail call i64 @PyLong_AsLong(ptr noundef nonnull %call) #12 + %call12 = tail call i64 @PyLong_AsLong(ptr noundef nonnull %call) #11 br label %return return: ; preds = %if.else, %if.end11, %if.then1.i, %if.end.i, %if.end.i17, %if.then1.i20, %if.then10, %if.end, %if.then @@ -15789,7 +15788,7 @@ declare ptr @PyCapsule_New(ptr noundef, ptr noundef, ptr noundef) local_unnamed_ declare i32 @PyList_Append(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_set_qualname(ptr nocapture noundef readonly %c) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_set_qualname(ptr nocapture noundef readonly %c) unnamed_addr #1 { entry: %name = alloca ptr, align 8 %u1 = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 @@ -15807,7 +15806,7 @@ if.then: ; preds = %entry %4 = getelementptr ptr, ptr %3, i64 %.val %arrayidx = getelementptr ptr, ptr %4, i64 -1 %5 = load ptr, ptr %arrayidx, align 8 - %call3 = tail call ptr @PyCapsule_GetPointer(ptr noundef %5, ptr noundef nonnull @.str.330) #12 + %call3 = tail call ptr @PyCapsule_GetPointer(ptr noundef %5, ptr noundef nonnull @.str.330) #11 %u_scope_type = getelementptr inbounds %struct.compiler_unit, ptr %call3, i64 0, i32 1 %6 = load i32, ptr %u_scope_type, align 8 %cmp4 = icmp eq i32 %6, 6 @@ -15836,7 +15835,7 @@ if.end: ; preds = %if.then5 %11 = getelementptr ptr, ptr %10, i64 %.val %arrayidx13 = getelementptr ptr, ptr %11, i64 -2 %12 = load ptr, ptr %arrayidx13, align 8 - %call14 = tail call ptr @PyCapsule_GetPointer(ptr noundef %12, ptr noundef nonnull @.str.330) #12 + %call14 = tail call ptr @PyCapsule_GetPointer(ptr noundef %12, ptr noundef nonnull @.str.330) #11 br label %if.end15 if.end15: ; preds = %if.end, %if.then @@ -15852,13 +15851,13 @@ if.then23: ; preds = %if.end15 %14 = load ptr, ptr %u_private, align 8 %u_metadata24 = getelementptr inbounds %struct.compiler_unit, ptr %0, i64 0, i32 7 %15 = load ptr, ptr %u_metadata24, align 8 - %call26 = tail call ptr @_Py_Mangle(ptr noundef %14, ptr noundef %15) #12 + %call26 = tail call ptr @_Py_Mangle(ptr noundef %14, ptr noundef %15) #11 %tobool.not = icmp eq ptr %call26, null br i1 %tobool.not, label %return, label %if.end28 if.end28: ; preds = %if.then23 %16 = load ptr, ptr %parent.0, align 8 - %call29 = tail call i32 @_PyST_GetScope(ptr noundef %16, ptr noundef nonnull %call26) #12 + %call29 = tail call i32 @_PyST_GetScope(ptr noundef %16, ptr noundef nonnull %call26) #11 %17 = load i64, ptr %call26, align 8 %18 = and i64 %17, 2147483648 %cmp.i85.not = icmp eq i64 %18, 0 @@ -15871,7 +15870,7 @@ if.end.i78: ; preds = %if.end28 br i1 %cmp.i80, label %if.then1.i81, label %Py_DECREF.exit83 if.then1.i81: ; preds = %if.end.i78 - tail call void @_Py_Dealloc(ptr noundef nonnull %call26) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call26) #11 br label %Py_DECREF.exit83 Py_DECREF.exit83: ; preds = %if.end28, %if.then1.i81, %if.end.i78 @@ -15888,7 +15887,7 @@ if.then35: ; preds = %if.end15, %Py_DECRE br i1 %switch34, label %if.then44, label %if.else if.then44: ; preds = %if.then35 - %call47 = tail call ptr @PyUnicode_Concat(ptr noundef %20, ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 15)) #12 + %call47 = tail call ptr @PyUnicode_Concat(ptr noundef %20, ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 15)) #11 %cmp48 = icmp eq ptr %call47, null br i1 %cmp48, label %return, label %if.then58 @@ -15904,7 +15903,7 @@ if.end.i.i37: ; preds = %if.else if.then58: ; preds = %if.then44, %if.else, %if.end.i.i37 %base.0.ph = phi ptr [ %20, %if.end.i.i37 ], [ %20, %if.else ], [ %call47, %if.then44 ] - %call59 = tail call ptr @PyUnicode_Concat(ptr noundef nonnull %base.0.ph, ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 14)) #12 + %call59 = tail call ptr @PyUnicode_Concat(ptr noundef nonnull %base.0.ph, ptr noundef nonnull getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 3, i32 0, i32 14)) #11 store ptr %call59, ptr %name, align 8 %22 = load i64, ptr %base.0.ph, align 8 %23 = and i64 %22, 2147483648 @@ -15918,7 +15917,7 @@ if.end.i: ; preds = %if.then58 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %base.0.ph) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %base.0.ph) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.then1.i, %if.end.i, %if.then58 @@ -15928,7 +15927,7 @@ Py_DECREF.exit: ; preds = %if.then1.i, %if.end if.end62: ; preds = %Py_DECREF.exit %u_metadata63 = getelementptr inbounds %struct.compiler_unit, ptr %0, i64 0, i32 7 %24 = load ptr, ptr %u_metadata63, align 8 - call void @PyUnicode_Append(ptr noundef nonnull %name, ptr noundef %24) #12 + call void @PyUnicode_Append(ptr noundef nonnull %name, ptr noundef %24) #11 %25 = load ptr, ptr %name, align 8 %cmp65 = icmp eq ptr %25, null br i1 %cmp65, label %return, label %return.sink.split @@ -15957,7 +15956,7 @@ return: ; preds = %return.sink.split, } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @codegen_addop_i(ptr nocapture noundef %seq, i32 noundef %opcode, i64 noundef %oparg, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { +define internal fastcc noundef i32 @codegen_addop_i(ptr nocapture noundef %seq, i32 noundef %opcode, i64 noundef %oparg, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { entry: %conv = trunc i64 %oparg to i32 %s_used.i.i = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %seq, i64 0, i32 2 @@ -16022,7 +16021,7 @@ declare void @PyUnicode_Append(ptr noundef, ptr noundef) local_unnamed_addr #2 declare ptr @_PyAST_GetDocString(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_addop_load_const(ptr noundef %const_cache, ptr nocapture noundef %u, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %o) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_addop_load_const(ptr noundef %const_cache, ptr nocapture noundef %u, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %o) unnamed_addr #1 { entry: %call.i = tail call fastcc ptr @merge_consts_recursive(ptr noundef %const_cache, ptr noundef %o) %cmp.i = icmp eq ptr %call.i, null @@ -16044,7 +16043,7 @@ if.end.i.i: ; preds = %if.end.i br i1 %cmp.i.i, label %if.then1.i.i, label %compiler_add_const.exit if.then1.i.i: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #11 br label %compiler_add_const.exit compiler_add_const.exit: ; preds = %if.end.i, %if.end.i.i, %if.then1.i.i @@ -16088,7 +16087,7 @@ return: ; preds = %entry, %if.end.i.i4 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_nameop(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %name, i32 noundef %ctx) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_nameop(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %name, i32 noundef %ctx) unnamed_addr #1 { entry: %item = alloca ptr, align 8 %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 @@ -16101,12 +16100,12 @@ entry: ] land.lhs.true.i: ; preds = %entry - %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #12 + %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #11 %tobool.not.i = icmp eq i32 %call.i, 0 br i1 %tobool.not.i, label %if.end, label %forbidden_name.exit land.lhs.true3.i: ; preds = %entry - %call4.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #12 + %call4.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #11 %tobool5.not.i = icmp eq i32 %call4.i, 0 br i1 %tobool5.not.i, label %if.end, label %forbidden_name.exit @@ -16119,14 +16118,14 @@ if.end: ; preds = %entry, %land.lhs.tr %2 = load ptr, ptr %u, align 8 %u_private = getelementptr inbounds %struct.compiler_unit, ptr %2, i64 0, i32 2 %3 = load ptr, ptr %u_private, align 8 - %call2 = tail call ptr @_Py_Mangle(ptr noundef %3, ptr noundef %name) #12 + %call2 = tail call ptr @_Py_Mangle(ptr noundef %3, ptr noundef %name) #11 %tobool.not = icmp eq ptr %call2, null br i1 %tobool.not, label %return, label %if.end4 if.end4: ; preds = %if.end %4 = load ptr, ptr %u, align 8 %5 = load ptr, ptr %4, align 8 - %call6 = tail call i32 @_PyST_GetScope(ptr noundef %5, ptr noundef nonnull %call2) #12 + %call6 = tail call i32 @_PyST_GetScope(ptr noundef %5, ptr noundef nonnull %call2) #11 switch i32 %call6, label %sw.bb104 [ i32 4, label %sw.bb i32 5, label %sw.bb9 @@ -16148,7 +16147,7 @@ sw.bb9: ; preds = %if.end4 sw.bb12: ; preds = %if.end4 %8 = load ptr, ptr %u, align 8 %9 = load ptr, ptr %8, align 8 - %call15 = tail call i32 @_PyST_IsFunctionLike(ptr noundef %9) #12 + %call15 = tail call i32 @_PyST_IsFunctionLike(ptr noundef %9) #11 %tobool16.not = icmp eq i32 %call15, 0 br i1 %tobool16.not, label %if.else, label %sw.bb67 @@ -16156,7 +16155,7 @@ if.else: ; preds = %sw.bb12 %10 = load ptr, ptr %u, align 8 %u_fasthidden = getelementptr inbounds %struct.compiler_unit, ptr %10, i64 0, i32 7, i32 7 %11 = load ptr, ptr %u_fasthidden, align 8 - %call20 = call i32 @PyDict_GetItemRef(ptr noundef %11, ptr noundef nonnull %call2, ptr noundef nonnull %item) #12 + %call20 = call i32 @PyDict_GetItemRef(ptr noundef %11, ptr noundef nonnull %call2, ptr noundef nonnull %item) #11 %cmp = icmp slt i32 %call20, 0 br i1 %cmp, label %error, label %if.end22 @@ -16169,7 +16168,7 @@ if.end22: ; preds = %if.else sw.bb27: ; preds = %if.end4 %13 = load ptr, ptr %u, align 8 %14 = load ptr, ptr %13, align 8 - %call30 = tail call i32 @_PyST_IsFunctionLike(ptr noundef %14) #12 + %call30 = tail call i32 @_PyST_IsFunctionLike(ptr noundef %14) #11 %tobool31.not = icmp eq i32 %call30, 0 br i1 %tobool31.not, label %sw.bb104, label %sw.bb79 @@ -16272,7 +16271,7 @@ if.end.i148: ; preds = %if.then77 br i1 %cmp.i150, label %if.then1.i151, label %return if.then1.i151: ; preds = %if.end.i148 - call void @_Py_Dealloc(ptr noundef nonnull %call2) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call2) #11 br label %return if.end78: ; preds = %instr_sequence_next_inst.exit.i.i.i @@ -16298,7 +16297,7 @@ if.end.i139: ; preds = %if.end78 br i1 %cmp.i141, label %if.then1.i142, label %return if.then1.i142: ; preds = %if.end.i139 - call void @_Py_Dealloc(ptr noundef nonnull %call2) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call2) #11 br label %return sw.bb79: ; preds = %if.end4, %sw.bb27 @@ -16375,7 +16374,7 @@ if.end.i130: ; preds = %sw.epilog116 br i1 %cmp.i132, label %if.then1.i133, label %Py_DECREF.exit135 if.then1.i133: ; preds = %if.end.i130 - call void @_Py_Dealloc(ptr noundef nonnull %call2) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call2) #11 br label %Py_DECREF.exit135 Py_DECREF.exit135: ; preds = %sw.epilog116, %if.then1.i133, %if.end.i130 @@ -16461,7 +16460,7 @@ if.end.i: ; preds = %error br i1 %cmp.i, label %if.then1.i, label %return if.then1.i: ; preds = %if.end.i - call void @_Py_Dealloc(ptr noundef nonnull %call2) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call2) #11 br label %return return: ; preds = %if.end.i.i78, %instr_sequence_next_inst.exit.i.i75, %if.then122.split, %if.end.i.i, %instr_sequence_next_inst.exit.i.i, %if.end120.split, %forbidden_name.exit, %if.end.i, %if.then1.i, %error, %Py_DECREF.exit135, %if.end.i139, %if.then1.i142, %if.end78, %if.end.i148, %if.then1.i151, %if.then77, %if.end @@ -16481,12 +16480,12 @@ entry: br i1 %or.cond, label %return, label %if.end if.end: ; preds = %entry - %call = tail call ptr @_PyCode_ConstantKey(ptr noundef %o) #12 + %call = tail call ptr @_PyCode_ConstantKey(ptr noundef %o) #11 %cmp2 = icmp eq ptr %call, null br i1 %cmp2, label %return, label %if.end4 if.end4: ; preds = %if.end - %call5 = tail call ptr @PyDict_SetDefault(ptr noundef %const_cache, ptr noundef nonnull %call, ptr noundef nonnull %call) #12 + %call5 = tail call ptr @PyDict_SetDefault(ptr noundef %const_cache, ptr noundef nonnull %call, ptr noundef nonnull %call) #11 %cmp6.not = icmp eq ptr %call5, %call br i1 %cmp6.not, label %if.end8, label %if.then7 @@ -16517,7 +16516,7 @@ if.end.i148: ; preds = %Py_XINCREF.exit br i1 %cmp.i150, label %if.then1.i151, label %return if.then1.i151: ; preds = %if.end.i148 - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return if.end8: ; preds = %if.end4 @@ -16553,7 +16552,7 @@ if.end.i139: ; preds = %if.then15 br i1 %cmp.i141, label %if.then1.i142, label %return if.then1.i142: ; preds = %if.end.i139 - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return if.end16: ; preds = %for.body @@ -16596,7 +16595,7 @@ if.end.i130: ; preds = %_Py_NewRef.exit br i1 %cmp.i132, label %if.then1.i133, label %if.end26 if.then1.i133: ; preds = %if.end.i130 - tail call void @_Py_Dealloc(ptr noundef nonnull %5) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %5) #11 br label %if.end26 if.end26: ; preds = %if.end.i130, %if.then1.i133, %_Py_NewRef.exit, %if.end22 @@ -16612,7 +16611,7 @@ if.end.i121: ; preds = %if.end26 br i1 %cmp.i123, label %if.then1.i124, label %for.inc if.then1.i124: ; preds = %if.end.i121 - tail call void @_Py_Dealloc(ptr noundef nonnull %call13) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call13) #11 br label %for.inc for.inc: ; preds = %if.end.i121, %if.then1.i124, %if.end26 @@ -16631,7 +16630,7 @@ if.then30: ; preds = %if.else27 br i1 %cmp33, label %return, label %if.end35 if.end35: ; preds = %if.then30 - %call36 = tail call ptr @PyTuple_New(i64 noundef %o.val72) #12 + %call36 = tail call ptr @PyTuple_New(i64 noundef %o.val72) #11 %cmp37 = icmp eq ptr %call36, null br i1 %cmp37, label %if.then38, label %if.end39 @@ -16648,12 +16647,12 @@ if.end.i112: ; preds = %if.then38 br i1 %cmp.i114, label %if.then1.i115, label %return if.then1.i115: ; preds = %if.end.i112 - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return if.end39: ; preds = %if.end35 store i64 0, ptr %pos, align 8 - %call4290 = call i32 @_PySet_NextEntry(ptr noundef %o, ptr noundef nonnull %pos, ptr noundef nonnull %item41, ptr noundef nonnull %hash) #12 + %call4290 = call i32 @_PySet_NextEntry(ptr noundef %o, ptr noundef nonnull %pos, ptr noundef nonnull %item41, ptr noundef nonnull %hash) #11 %tobool43.not91 = icmp eq i32 %call4290, 0 br i1 %tobool43.not91, label %while.end, label %while.body @@ -16677,7 +16676,7 @@ if.end.i103: ; preds = %if.then46 br i1 %cmp.i105, label %if.then1.i106, label %Py_DECREF.exit108 if.then1.i106: ; preds = %if.end.i103 - call void @_Py_Dealloc(ptr noundef nonnull %call36) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call36) #11 br label %Py_DECREF.exit108 Py_DECREF.exit108: ; preds = %if.then46, %if.then1.i106, %if.end.i103 @@ -16693,7 +16692,7 @@ if.end.i94: ; preds = %Py_DECREF.exit108 br i1 %cmp.i96, label %if.then1.i97, label %return if.then1.i97: ; preds = %if.end.i94 - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return if.end47: ; preds = %while.body @@ -16727,7 +16726,7 @@ if.end.i85: ; preds = %_Py_NewRef.exit87 br i1 %cmp.i87, label %if.then1.i88, label %if.end56 if.then1.i88: ; preds = %if.end.i85 - call void @_Py_Dealloc(ptr noundef nonnull %call44) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call44) #11 br label %if.end56 if.end56: ; preds = %if.end47, %if.end.i85, %if.then1.i88, %_Py_NewRef.exit87 @@ -16735,12 +16734,12 @@ if.end56: ; preds = %if.end47, %if.end.i %arrayidx.i88 = getelementptr %struct.PyTupleObject, ptr %call36, i64 0, i32 1, i64 %i40.092 store ptr %u48.0, ptr %arrayidx.i88, align 8 %inc57 = add i64 %i40.092, 1 - %call42 = call i32 @_PySet_NextEntry(ptr noundef %o, ptr noundef nonnull %pos, ptr noundef nonnull %item41, ptr noundef nonnull %hash) #12 + %call42 = call i32 @_PySet_NextEntry(ptr noundef %o, ptr noundef nonnull %pos, ptr noundef nonnull %item41, ptr noundef nonnull %hash) #11 %tobool43.not = icmp eq i32 %call42, 0 br i1 %tobool43.not, label %while.end, label %while.body, !llvm.loop !69 while.end: ; preds = %if.end56, %if.end39 - %call58 = call ptr @PyFrozenSet_New(ptr noundef nonnull %call36) #12 + %call58 = call ptr @PyFrozenSet_New(ptr noundef nonnull %call36) #11 %28 = load i64, ptr %call36, align 8 %29 = and i64 %28, 2147483648 %cmp.i186.not = icmp eq i64 %29, 0 @@ -16753,7 +16752,7 @@ if.end.i76: ; preds = %while.end br i1 %cmp.i78, label %if.then1.i79, label %Py_DECREF.exit81 if.then1.i79: ; preds = %if.end.i76 - call void @_Py_Dealloc(ptr noundef nonnull %call36) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call36) #11 br label %Py_DECREF.exit81 Py_DECREF.exit81: ; preds = %while.end, %if.then1.i79, %if.end.i76 @@ -16773,7 +16772,7 @@ if.end.i67: ; preds = %if.then60 br i1 %cmp.i69, label %if.then1.i70, label %return if.then1.i70: ; preds = %if.end.i67 - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return if.end61: ; preds = %Py_DECREF.exit81 @@ -16789,7 +16788,7 @@ if.end.i: ; preds = %if.end61 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - call void @_Py_Dealloc(ptr noundef nonnull %o) #12 + call void @_Py_Dealloc(ptr noundef nonnull %o) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end61, %if.then1.i, %if.end.i @@ -16809,7 +16808,7 @@ declare i32 @_PySet_NextEntry(ptr noundef, ptr noundef, ptr noundef, ptr noundef declare ptr @PyFrozenSet_New(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc zeroext i1 @forbidden_name(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %name, i32 noundef %ctx) unnamed_addr #1 { +define internal fastcc noundef zeroext i1 @forbidden_name(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %name, i32 noundef %ctx) unnamed_addr #1 { entry: switch i32 %ctx, label %return [ i32 2, label %land.lhs.true @@ -16817,12 +16816,12 @@ entry: ] land.lhs.true: ; preds = %entry - %call = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #12 + %call = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #11 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %return, label %return.sink.split land.lhs.true3: ; preds = %entry - %call4 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #12 + %call4 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.331) #11 %tobool5.not = icmp eq i32 %call4, 0 br i1 %tobool5.not, label %return, label %return.sink.split @@ -16839,7 +16838,7 @@ return: ; preds = %return.sink.split, declare i32 @PyDict_GetItemRef(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_addop_o(ptr nocapture noundef %u, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %opcode, ptr noundef %dict, ptr noundef %o) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_addop_o(ptr nocapture noundef %u, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %opcode, ptr noundef %dict, ptr noundef %o) unnamed_addr #1 { entry: %call = tail call fastcc i64 @dict_add_o(ptr noundef %dict, ptr noundef %o) %cmp = icmp slt i64 %call, 0 @@ -16888,7 +16887,7 @@ define internal void @compiler_error(ptr nocapture noundef readonly %c, i64 %loc entry: %vargs = alloca [1 x %struct.__va_list_tag], align 16 call void @llvm.va_start(ptr nonnull %vargs) - %call = call ptr @PyUnicode_FromFormatV(ptr noundef %format, ptr noundef nonnull %vargs) #12 + %call = call ptr @PyUnicode_FromFormatV(ptr noundef %format, ptr noundef nonnull %vargs) #11 call void @llvm.va_end(ptr nonnull %vargs) %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end @@ -16901,13 +16900,13 @@ if.end: ; preds = %entry %loc.sroa.3.0.extract.trunc = trunc i64 %loc.sroa.3.0.extract.shift to i32 %loc.sroa.0.0.extract.trunc = trunc i64 %loc.coerce0 to i32 %0 = load ptr, ptr %c, align 8 - %call3 = call ptr @PyErr_ProgramTextObject(ptr noundef %0, i32 noundef %loc.sroa.0.0.extract.trunc) #12 + %call3 = call ptr @PyErr_ProgramTextObject(ptr noundef %0, i32 noundef %loc.sroa.0.0.extract.trunc) #11 %cmp4 = icmp eq ptr %call3, null %spec.store.select = select i1 %cmp4, ptr @_Py_NoneStruct, ptr %call3 %1 = load ptr, ptr %c, align 8 %add = add i32 %loc.sroa.4.8.extract.trunc, 1 %add9 = add i32 %loc.sroa.6.8.extract.trunc, 1 - %call10 = call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.334, ptr noundef nonnull %call, ptr noundef %1, i32 noundef %loc.sroa.0.0.extract.trunc, i32 noundef %add, ptr noundef nonnull %spec.store.select, i32 noundef %loc.sroa.3.0.extract.trunc, i32 noundef %add9) #12 + %call10 = call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.334, ptr noundef nonnull %call, ptr noundef %1, i32 noundef %loc.sroa.0.0.extract.trunc, i32 noundef %add, ptr noundef nonnull %spec.store.select, i32 noundef %loc.sroa.3.0.extract.trunc, i32 noundef %add9) #11 %2 = load i64, ptr %call, align 8 %3 = and i64 %2, 2147483648 %cmp.i24.not = icmp eq i64 %3, 0 @@ -16920,7 +16919,7 @@ if.end.i17: ; preds = %if.end br i1 %cmp.i19, label %if.then1.i20, label %Py_DECREF.exit22 if.then1.i20: ; preds = %if.end.i17 - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit22 Py_DECREF.exit22: ; preds = %if.end, %if.then1.i20, %if.end.i17 @@ -16929,7 +16928,7 @@ Py_DECREF.exit22: ; preds = %if.end, %if.then1.i if.end13: ; preds = %Py_DECREF.exit22 %4 = load ptr, ptr @PyExc_SyntaxError, align 8 - call void @PyErr_SetObject(ptr noundef %4, ptr noundef nonnull %call10) #12 + call void @PyErr_SetObject(ptr noundef %4, ptr noundef nonnull %call10) #11 br label %exit exit: ; preds = %Py_DECREF.exit22, %if.end13 @@ -16945,7 +16944,7 @@ if.end.i: ; preds = %exit br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - call void @_Py_Dealloc(ptr noundef nonnull %spec.store.select) #12 + call void @_Py_Dealloc(ptr noundef nonnull %spec.store.select) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %exit, %if.then1.i, %if.end.i @@ -16964,7 +16963,7 @@ if.end.i.i: ; preds = %if.then.i br i1 %cmp.i.i, label %if.then1.i.i, label %return if.then1.i.i: ; preds = %if.end.i.i - call void @_Py_Dealloc(ptr noundef nonnull %call10) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call10) #11 br label %return return: ; preds = %if.then1.i.i, %if.end.i.i, %if.then.i, %Py_DECREF.exit, %entry @@ -16972,12 +16971,12 @@ return: ; preds = %if.then1.i.i, %if.e } ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn -declare void @llvm.va_start(ptr) #8 +declare void @llvm.va_start(ptr) #7 declare ptr @PyUnicode_FromFormatV(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn -declare void @llvm.va_end(ptr) #8 +declare void @llvm.va_end(ptr) #7 declare ptr @PyErr_ProgramTextObject(ptr noundef, i32 noundef) local_unnamed_addr #2 @@ -16986,7 +16985,7 @@ declare ptr @Py_BuildValue(ptr noundef, ...) local_unnamed_addr #2 declare void @PyErr_SetObject(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_function(ptr noundef %c, ptr noundef %s, i32 noundef %is_async) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_function(ptr noundef %c, ptr noundef %s, i32 noundef %is_async) unnamed_addr #1 { entry: %annotations_len.i = alloca i64, align 8 %args.0.in = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 1, i32 0, i32 1 @@ -17093,7 +17092,7 @@ for.cond.i.i: ; preds = %cond.end.i, %for.bo for.body.i.i: ; preds = %for.cond.i.i %arrayidx.i.i = getelementptr %struct.asdl_expr_seq, ptr %13, i64 0, i32 2, i64 %conv.i.i %16 = load ptr, ptr %arrayidx.i.i, align 8 - %call.i.i = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef %16) #13, !range !5 + %call.i.i = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef %16) #12, !range !5 %cmp4.i.i = icmp eq i32 %call.i.i, -1 %inc.i.i = add i32 %_i.0.i.i, 1 br i1 %cmp4.i.i, label %return, label %for.cond.i.i, !llvm.loop !70 @@ -17206,7 +17205,7 @@ codegen_addop_i.exit: ; preds = %instr_sequence_next br label %if.end65 if.end65: ; preds = %codegen_addop_i.exit, %if.then48 - %call66 = tail call ptr (ptr, ...) @PyUnicode_FromFormat(ptr noundef nonnull @.str.335, ptr noundef %name.0) #12 + %call66 = tail call ptr (ptr, ...) @PyUnicode_FromFormat(ptr noundef nonnull @.str.335, ptr noundef %name.0) #11 %tobool67.not = icmp eq ptr %call66, null br i1 %tobool67.not, label %return, label %if.end69 @@ -17228,7 +17227,7 @@ if.end.i203: ; preds = %if.then73 br i1 %cmp.i205, label %if.then1.i206, label %return if.then1.i206: ; preds = %if.end.i203 - tail call void @_Py_Dealloc(ptr noundef nonnull %call66) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call66) #11 br label %return if.end74: ; preds = %if.end69 @@ -17241,7 +17240,7 @@ if.end.i194: ; preds = %if.end74 br i1 %cmp.i196, label %if.then1.i197, label %Py_DECREF.exit199 if.then1.i197: ; preds = %if.end.i194 - tail call void @_Py_Dealloc(ptr noundef nonnull %call66) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call66) #11 br label %Py_DECREF.exit199 Py_DECREF.exit199: ; preds = %if.end74, %if.then1.i197, %if.end.i194 @@ -17484,7 +17483,7 @@ if.end13.i323: ; preds = %if.end.i321 br i1 %cmp14.i, label %if.then15.i, label %if.end24.i if.then15.i: ; preds = %if.end13.i323 - %call16.i = tail call ptr @_PyAST_GetDocString(ptr noundef %65) #12 + %call16.i = tail call ptr @_PyAST_GetDocString(ptr noundef %65) #11 %tobool17.not.i = icmp eq ptr %call16.i, null br i1 %tobool17.not.i, label %if.end24.i, label %if.then18.i @@ -17525,7 +17524,7 @@ if.end.i.i360: ; preds = %if.end.i358 br i1 %cmp.i.i362, label %if.then1.i.i363, label %compiler_add_const.exit if.then1.i.i363: ; preds = %if.end.i.i360 - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i356) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i356) #11 br label %compiler_add_const.exit compiler_add_const.exit: ; preds = %if.end.i358, %if.end.i.i360, %if.then1.i.i363 @@ -17554,7 +17553,7 @@ if.end.i.i352: ; preds = %if.then.i br i1 %cmp.i.i354, label %if.then1.i.i355, label %Py_XDECREF.exit if.then1.i.i355: ; preds = %if.end.i.i352 - tail call void @_Py_Dealloc(ptr noundef nonnull %docstring.0.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %docstring.0.i) #11 br label %Py_XDECREF.exit Py_XDECREF.exit: ; preds = %if.end29.i, %if.then.i, %if.end.i.i352, %if.then1.i.i355 @@ -17678,7 +17677,7 @@ if.end.i105.i: ; preds = %if.then100.i br i1 %cmp.i107.i, label %if.then1.i108.i, label %if.then106 if.then1.i108.i: ; preds = %if.end.i105.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call88.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call88.i) #11 br label %if.then106 if.end101.i: ; preds = %if.end92.i @@ -17691,7 +17690,7 @@ if.end.i.i329: ; preds = %if.end101.i br i1 %cmp.i.i330, label %if.then1.i.i, label %if.end110 if.then1.i.i: ; preds = %if.end.i.i329 - tail call void @_Py_Dealloc(ptr noundef nonnull %call88.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call88.i) #11 br label %if.end110 if.then106: ; preds = %if.then21.i, %if.then28.i, %if.then70.i, %if.then85.i, %if.end.i321, %if.then100.i, %if.then1.i108.i, %if.end.i105.i, %if.end87.i @@ -17775,7 +17774,7 @@ if.end.i185: ; preds = %if.then137 br i1 %cmp.i187, label %if.then1.i188, label %return if.then1.i188: ; preds = %if.end.i185 - tail call void @_Py_Dealloc(ptr noundef nonnull %call129) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call129) #11 br label %return if.end138: ; preds = %if.end133 @@ -17788,7 +17787,7 @@ if.end.i: ; preds = %if.end138 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call129) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call129) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end138, %if.then1.i, %if.end.i @@ -17840,7 +17839,7 @@ return: ; preds = %for.body.i, %for.bo } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_with(ptr noundef %c, ptr noundef %s, i32 noundef %pos) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_with(ptr noundef %c, ptr noundef %s, i32 noundef %pos) unnamed_addr #1 { entry: %v = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 1 %0 = load ptr, ptr %v, align 8 @@ -18168,7 +18167,7 @@ return: ; preds = %for.body, %if.end45 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_async_with(ptr noundef %c, ptr noundef %s, i32 noundef %pos) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_async_with(ptr noundef %c, ptr noundef %s, i32 noundef %pos) unnamed_addr #1 { entry: %lineno1 = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 2 %0 = load i32, ptr %lineno1, align 8 @@ -18539,7 +18538,7 @@ return: ; preds = %for.body, %if.end49 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_check_debug_args(ptr nocapture noundef readonly %c, ptr nocapture noundef readonly %args) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_check_debug_args(ptr nocapture noundef readonly %c, ptr nocapture noundef readonly %args) unnamed_addr #1 { entry: %0 = load ptr, ptr %args, align 8 %cmp.not.i = icmp eq ptr %0, null @@ -18561,7 +18560,7 @@ if.then.i.i: ; preds = %for.body.i %lineno1.i.i = getelementptr inbounds %struct._arg, ptr %2, i64 0, i32 3 %3 = load <4 x i32>, ptr %lineno1.i.i, align 8 %4 = load ptr, ptr %2, align 8 - %call.i.i.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %4, ptr noundef nonnull @.str.331) #12 + %call.i.i.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %4, ptr noundef nonnull @.str.331) #11 %tobool.not.i.i.i = icmp eq i32 %call.i.i.i, 0 br i1 %tobool.not.i.i.i, label %for.inc.i, label %return.sink.split @@ -18592,7 +18591,7 @@ if.then.i.i17: ; preds = %for.body.i13 %lineno1.i.i18 = getelementptr inbounds %struct._arg, ptr %7, i64 0, i32 3 %8 = load <4 x i32>, ptr %lineno1.i.i18, align 8 %9 = load ptr, ptr %7, align 8 - %call.i.i.i22 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %9, ptr noundef nonnull @.str.331) #12 + %call.i.i.i22 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %9, ptr noundef nonnull @.str.331) #11 %tobool.not.i.i.i23 = icmp eq i32 %call.i.i.i22, 0 br i1 %tobool.not.i.i.i23, label %for.inc.i34, label %return.sink.split @@ -18611,7 +18610,7 @@ if.then.i: ; preds = %if.end5 %lineno1.i = getelementptr inbounds %struct._arg, ptr %10, i64 0, i32 3 %11 = load <4 x i32>, ptr %lineno1.i, align 8 %12 = load ptr, ptr %10, align 8 - %call.i.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %12, ptr noundef nonnull @.str.331) #12 + %call.i.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %12, ptr noundef nonnull @.str.331) #11 %tobool.not.i.i = icmp eq i32 %call.i.i, 0 br i1 %tobool.not.i.i, label %if.end9, label %return.sink.split @@ -18637,7 +18636,7 @@ if.then.i.i48: ; preds = %for.body.i44 %lineno1.i.i49 = getelementptr inbounds %struct._arg, ptr %15, i64 0, i32 3 %16 = load <4 x i32>, ptr %lineno1.i.i49, align 8 %17 = load ptr, ptr %15, align 8 - %call.i.i.i53 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %17, ptr noundef nonnull @.str.331) #12 + %call.i.i.i53 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %17, ptr noundef nonnull @.str.331) #11 %tobool.not.i.i.i54 = icmp eq i32 %call.i.i.i53, 0 br i1 %tobool.not.i.i.i54, label %for.inc.i65, label %return.sink.split @@ -18656,7 +18655,7 @@ if.then.i70: ; preds = %if.end13 %lineno1.i71 = getelementptr inbounds %struct._arg, ptr %18, i64 0, i32 3 %19 = load <4 x i32>, ptr %lineno1.i71, align 8 %20 = load ptr, ptr %18, align 8 - %call.i.i75 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %20, ptr noundef nonnull @.str.331) #12 + %call.i.i75 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %20, ptr noundef nonnull @.str.331) #11 %tobool.not.i.i76 = icmp eq i32 %call.i.i75, 0 br i1 %tobool.not.i.i76, label %return, label %return.sink.split @@ -18685,7 +18684,7 @@ return: ; preds = %return.sink.split, declare ptr @PyUnicode_FromFormat(ptr noundef, ...) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_type_params(ptr noundef %c, ptr noundef readonly %type_params) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_type_params(ptr noundef %c, ptr noundef readonly %type_params) unnamed_addr #1 { entry: %tobool.not = icmp eq ptr %type_params, null br i1 %tobool.not, label %return, label %cond.false @@ -18815,7 +18814,7 @@ if.end.i159: ; preds = %if.then37 br i1 %cmp.i161, label %if.then1.i162, label %return if.then1.i162: ; preds = %if.end.i159 - tail call void @_Py_Dealloc(ptr noundef nonnull %call31) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call31) #11 br label %return if.end38: ; preds = %if.end34 @@ -18828,7 +18827,7 @@ if.end.i: ; preds = %if.end38 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call31) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call31) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end38, %if.then1.i, %if.end.i @@ -19148,7 +19147,7 @@ return: ; preds = %if.end118, %instr_s } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_make_closure(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %co, i64 noundef %flags) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_make_closure(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %co, i64 noundef %flags) unnamed_addr #1 { entry: %co_nfreevars = getelementptr inbounds %struct.PyCodeObject, ptr %co, i64 0, i32 14 %0 = load i32, ptr %co_nfreevars, align 8 @@ -19183,7 +19182,7 @@ if.then5: ; preds = %for.body %5 = load ptr, ptr %u, align 8 %u_cellvars = getelementptr inbounds %struct.compiler_unit, ptr %5, i64 0, i32 7, i32 5 %6 = load ptr, ptr %u_cellvars, align 8 - %call.i = tail call ptr @PyDict_GetItemWithError(ptr noundef %6, ptr noundef %4) #12 + %call.i = tail call ptr @PyDict_GetItemWithError(ptr noundef %6, ptr noundef %4) #11 %cmp.i51 = icmp eq ptr %call.i, null br i1 %cmp.i51, label %if.then12, label %if.end10 @@ -19191,24 +19190,24 @@ if.else: ; preds = %for.body %7 = load ptr, ptr %u, align 8 %u_freevars = getelementptr inbounds %struct.compiler_unit, ptr %7, i64 0, i32 7, i32 6 %8 = load ptr, ptr %u_freevars, align 8 - %call.i53 = tail call ptr @PyDict_GetItemWithError(ptr noundef %8, ptr noundef %4) #12 + %call.i53 = tail call ptr @PyDict_GetItemWithError(ptr noundef %8, ptr noundef %4) #11 %cmp.i54 = icmp eq ptr %call.i53, null br i1 %cmp.i54, label %if.then12, label %if.end10 if.end10: ; preds = %if.else, %if.then5 %call.i53.sink = phi ptr [ %call.i, %if.then5 ], [ %call.i53, %if.else ] - %call1.i56 = tail call i64 @PyLong_AsLong(ptr noundef nonnull %call.i53.sink) #12 + %call1.i56 = tail call i64 @PyLong_AsLong(ptr noundef nonnull %call.i53.sink) #11 %arg.0 = trunc i64 %call1.i56 to i32 %cmp11 = icmp eq i32 %arg.0, -1 br i1 %cmp11, label %if.then12, label %if.end20 if.then12: ; preds = %if.else, %if.then5, %if.end10 - %call13 = tail call ptr @_PyCode_GetFreevars(ptr noundef nonnull %co) #12 + %call13 = tail call ptr @_PyCode_GetFreevars(ptr noundef nonnull %co) #11 %cmp14 = icmp eq ptr %call13, null br i1 %cmp14, label %if.then15, label %if.end16 if.then15: ; preds = %if.then12 - tail call void @PyErr_Clear() #12 + tail call void @PyErr_Clear() #11 br label %if.end16 if.end16: ; preds = %if.then15, %if.then12 @@ -19218,7 +19217,7 @@ if.end16: ; preds = %if.then15, %if.then %11 = load ptr, ptr %u_metadata18, align 8 %co_name = getelementptr inbounds %struct.PyCodeObject, ptr %co, i64 0, i32 19 %12 = load ptr, ptr %co_name, align 8 - %call19 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %9, ptr noundef nonnull @.str.336, ptr noundef %4, i32 noundef %call1, ptr noundef %11, ptr noundef %12, ptr noundef %call13) #12 + %call19 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %9, ptr noundef nonnull @.str.336, ptr noundef %4, i32 noundef %call1, ptr noundef %11, ptr noundef %12, ptr noundef %call13) #11 %13 = load i64, ptr %call13, align 8 %14 = and i64 %13, 2147483648 %cmp.i94.not = icmp eq i64 %14, 0 @@ -19231,7 +19230,7 @@ if.end.i: ; preds = %if.end16 br i1 %cmp.i, label %if.then1.i, label %return if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call13) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call13) #11 br label %return if.end20: ; preds = %if.end10 @@ -19495,7 +19494,7 @@ return: ; preds = %if.end20, %instr_se } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_apply_decorators(ptr nocapture noundef readonly %c, ptr noundef readonly %decos) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_apply_decorators(ptr nocapture noundef readonly %c, ptr noundef readonly %decos) unnamed_addr #1 { entry: %tobool.not = icmp eq ptr %decos, null br i1 %tobool.not, label %return, label %cond.end @@ -19568,7 +19567,7 @@ return: ; preds = %codegen_addop_i.exi } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_visit_defaults(ptr noundef %c, ptr nocapture noundef readonly %args, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_visit_defaults(ptr noundef %c, ptr nocapture noundef readonly %args, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { entry: %defaults = getelementptr inbounds %struct._arguments, ptr %args, i64 0, i32 6 %0 = load ptr, ptr %defaults, align 8 @@ -19645,7 +19644,7 @@ return: ; preds = %for.body, %codegen_ } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_visit_kwonlydefaults(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %kwonlyargs, ptr nocapture noundef readonly %kw_defaults) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_visit_kwonlydefaults(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %kwonlyargs, ptr nocapture noundef readonly %kw_defaults) unnamed_addr #1 { entry: %0 = load i64, ptr %kwonlyargs, align 8 %cmp251 = icmp sgt i64 %0, 0 @@ -19672,7 +19671,7 @@ if.then: ; preds = %for.body %u_private = getelementptr inbounds %struct.compiler_unit, ptr %4, i64 0, i32 2 %5 = load ptr, ptr %u_private, align 8 %6 = load ptr, ptr %3, align 8 - %call = tail call ptr @_Py_Mangle(ptr noundef %5, ptr noundef %6) #12 + %call = tail call ptr @_Py_Mangle(ptr noundef %5, ptr noundef %6) #11 %tobool8.not = icmp eq ptr %call, null %cmp.not.i = icmp eq ptr %keys.052, null br i1 %tobool8.not, label %error, label %if.end @@ -19681,7 +19680,7 @@ if.end: ; preds = %if.then br i1 %cmp.not.i, label %if.then12, label %if.else if.then12: ; preds = %if.end - %call13 = tail call ptr @PyList_New(i64 noundef 1) #12 + %call13 = tail call ptr @PyList_New(i64 noundef 1) #11 %cmp14 = icmp eq ptr %call13, null br i1 %cmp14, label %if.then16, label %if.end17 @@ -19698,7 +19697,7 @@ if.end.i82: ; preds = %if.then16 br i1 %cmp.i84, label %if.then1.i85, label %return if.then1.i85: ; preds = %if.end.i82 - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return if.end17: ; preds = %if.then12 @@ -19708,7 +19707,7 @@ if.end17: ; preds = %if.then12 br label %if.end23 if.else: ; preds = %if.end - %call18 = tail call i32 @PyList_Append(ptr noundef nonnull %keys.052, ptr noundef nonnull %call) #12 + %call18 = tail call i32 @PyList_Append(ptr noundef nonnull %keys.052, ptr noundef nonnull %call) #11 %10 = load i64, ptr %call, align 8 %11 = and i64 %10, 2147483648 %cmp.i92.not = icmp eq i64 %11, 0 @@ -19721,7 +19720,7 @@ if.end.i73: ; preds = %if.else br i1 %cmp.i75, label %if.then1.i76, label %Py_DECREF.exit78 if.then1.i76: ; preds = %if.end.i73 - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit78 Py_DECREF.exit78: ; preds = %if.else, %if.then1.i76, %if.end.i73 @@ -19753,7 +19752,7 @@ for.end: ; preds = %for.inc if.then32: ; preds = %for.end %13 = getelementptr i8, ptr %keys.2, i64 16 %keys.0.val = load i64, ptr %13, align 8 - %call34 = tail call ptr @PyList_AsTuple(ptr noundef nonnull %keys.2) #12 + %call34 = tail call ptr @PyList_AsTuple(ptr noundef nonnull %keys.2) #11 %14 = load i64, ptr %keys.2, align 8 %15 = and i64 %14, 2147483648 %cmp.i96.not = icmp eq i64 %15, 0 @@ -19766,7 +19765,7 @@ if.end.i64: ; preds = %if.then32 br i1 %cmp.i66, label %if.then1.i67, label %Py_DECREF.exit69 if.then1.i67: ; preds = %if.end.i64 - tail call void @_Py_Dealloc(ptr noundef nonnull %keys.2) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %keys.2) #11 br label %Py_DECREF.exit69 Py_DECREF.exit69: ; preds = %if.then32, %if.then1.i67, %if.end.i64 @@ -19795,7 +19794,7 @@ if.end.i55: ; preds = %if.then43 br i1 %cmp.i57, label %if.then1.i58, label %return if.then1.i58: ; preds = %if.end.i55 - tail call void @_Py_Dealloc(ptr noundef nonnull %call34) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call34) #11 br label %return if.end44: ; preds = %if.end38 @@ -19808,7 +19807,7 @@ if.end.i: ; preds = %if.end44 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call34) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call34) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end44, %if.then1.i, %if.end.i @@ -19860,7 +19859,7 @@ if.end.i.i39: ; preds = %if.then.i br i1 %cmp.i.i40, label %if.then1.i.i, label %return if.then1.i.i: ; preds = %if.end.i.i39 - tail call void @_Py_Dealloc(ptr noundef nonnull %keys.345) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %keys.345) #11 br label %return return: ; preds = %entry, %if.then1.i.i, %if.end.i.i39, %if.then.i, %error, %codegen_addop_i.exit, %instr_sequence_next_inst.exit.i.i, %Py_DECREF.exit, %for.end, %if.end.i55, %if.then1.i58, %if.then43, %Py_DECREF.exit69, %if.end.i82, %if.then1.i85, %if.then16 @@ -19871,7 +19870,7 @@ return: ; preds = %entry, %if.then1.i. declare ptr @PyList_AsTuple(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_visit_argannotation(ptr noundef %c, ptr noundef %id, ptr noundef %annotation, ptr nocapture noundef %annotations_len, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_visit_argannotation(ptr noundef %c, ptr noundef %id, ptr noundef %annotation, ptr nocapture noundef %annotations_len, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { entry: %tobool.not = icmp eq ptr %annotation, null br i1 %tobool.not, label %return, label %if.end @@ -19881,7 +19880,7 @@ if.end: ; preds = %entry %0 = load ptr, ptr %u, align 8 %u_private = getelementptr inbounds %struct.compiler_unit, ptr %0, i64 0, i32 2 %1 = load ptr, ptr %u_private, align 8 - %call = tail call ptr @_Py_Mangle(ptr noundef %1, ptr noundef %id) #12 + %call = tail call ptr @_Py_Mangle(ptr noundef %1, ptr noundef %id) #11 %tobool1.not = icmp eq ptr %call, null br i1 %tobool1.not, label %return, label %if.end3 @@ -19906,7 +19905,7 @@ if.end.i: ; preds = %if.end7 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end7, %if.then1.i, %if.end.i @@ -19925,7 +19924,7 @@ if.then9: ; preds = %Py_DECREF.exit %9 = load i32, ptr %col_offset3.i, align 4 %end_col_offset4.i = getelementptr inbounds %struct._expr, ptr %annotation, i64 0, i32 5 %10 = load i32, ptr %end_col_offset4.i, align 4 - %call.i = tail call ptr @_PyAST_ExprAsUnicode(ptr noundef nonnull %annotation) #12 + %call.i = tail call ptr @_PyAST_ExprAsUnicode(ptr noundef nonnull %annotation) #11 %cmp.i18 = icmp eq ptr %call.i, null br i1 %cmp.i18, label %return, label %if.end.i19 @@ -19957,7 +19956,7 @@ if.end.i12.i: ; preds = %if.then7.i br i1 %cmp.i14.i, label %compiler_visit_annexpr.exit.thread28, label %return compiler_visit_annexpr.exit.thread28: ; preds = %if.end.i12.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #11 br label %return if.end8.i: ; preds = %if.end.i19 @@ -19970,7 +19969,7 @@ if.end.i.i: ; preds = %if.end8.i br i1 %cmp.i.i, label %compiler_visit_annexpr.exit, label %if.end31 compiler_visit_annexpr.exit: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i) #11 br label %if.end31 if.else: ; preds = %Py_DECREF.exit @@ -20033,7 +20032,7 @@ return: ; preds = %if.end19, %instr_se } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_visit_annexpr(ptr nocapture noundef readonly %c, ptr noundef %annotation) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_visit_annexpr(ptr nocapture noundef readonly %c, ptr noundef %annotation) unnamed_addr #1 { entry: %lineno1 = getelementptr inbounds %struct._expr, ptr %annotation, i64 0, i32 2 %0 = load i32, ptr %lineno1, align 8 @@ -20043,7 +20042,7 @@ entry: %2 = load i32, ptr %col_offset3, align 4 %end_col_offset4 = getelementptr inbounds %struct._expr, ptr %annotation, i64 0, i32 5 %3 = load i32, ptr %end_col_offset4, align 4 - %call = tail call ptr @_PyAST_ExprAsUnicode(ptr noundef %annotation) #12 + %call = tail call ptr @_PyAST_ExprAsUnicode(ptr noundef %annotation) #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end @@ -20087,7 +20086,7 @@ if.end.i: ; preds = %if.end8 return.sink.split: ; preds = %if.end.i, %if.end.i12 %retval.0.ph = phi i32 [ -1, %if.end.i12 ], [ 0, %if.end.i ] - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return return: ; preds = %return.sink.split, %if.end.i, %if.end8, %if.end.i12, %if.then7, %entry @@ -20098,7 +20097,7 @@ return: ; preds = %return.sink.split, declare ptr @_PyAST_ExprAsUnicode(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @wrap_in_stopiteration_handler(ptr nocapture noundef readonly %c) unnamed_addr #1 { +define internal fastcc noundef i32 @wrap_in_stopiteration_handler(ptr nocapture noundef readonly %c) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -20327,12 +20326,12 @@ entry: br i1 %cmp, label %land.lhs.true, label %if.end land.lhs.true: ; preds = %entry - %call = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.337) #12 + %call = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.337) #11 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %lor.lhs.false, label %return lor.lhs.false: ; preds = %land.lhs.true - %call1 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.338) #12 + %call1 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %name, ptr noundef nonnull @.str.338) #11 %tobool2.not = icmp eq i32 %call1, 0 br i1 %tobool2.not, label %lor.lhs.false.if.end_crit_edge, label %return @@ -20343,7 +20342,7 @@ lor.lhs.false.if.end_crit_edge: ; preds = %lor.lhs.false if.end: ; preds = %lor.lhs.false.if.end_crit_edge, %entry %2 = phi ptr [ %.pre, %lor.lhs.false.if.end_crit_edge ], [ %0, %entry ] %3 = load ptr, ptr %2, align 8 - %call4 = tail call i32 @_PyST_GetScope(ptr noundef %3, ptr noundef %name) #12 + %call4 = tail call i32 @_PyST_GetScope(ptr noundef %3, ptr noundef %name) #11 %cmp5 = icmp eq i32 %call4, 0 br i1 %cmp5, label %if.then6, label %return @@ -20361,7 +20360,7 @@ if.then6: ; preds = %if.end %10 = load ptr, ptr %u_varnames, align 8 %u_names = getelementptr inbounds %struct.compiler_unit, ptr %5, i64 0, i32 7, i32 3 %11 = load ptr, ptr %u_names, align 8 - %call16 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %4, ptr noundef nonnull @.str.339, ptr noundef %name, ptr noundef %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11) #12 + %call16 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %4, ptr noundef nonnull @.str.339, ptr noundef %name, ptr noundef %6, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11) #11 br label %return return: ; preds = %if.end, %land.lhs.true, %lor.lhs.false, %if.then6 @@ -20372,12 +20371,12 @@ return: ; preds = %if.end, %land.lhs.t ; Function Attrs: nounwind uwtable define internal fastcc i32 @compiler_lookup_arg(ptr noundef %dict, ptr noundef %name) unnamed_addr #1 { entry: - %call = tail call ptr @PyDict_GetItemWithError(ptr noundef %dict, ptr noundef %name) #12 + %call = tail call ptr @PyDict_GetItemWithError(ptr noundef %dict, ptr noundef %name) #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call1 = tail call i64 @PyLong_AsLong(ptr noundef nonnull %call) #12 + %call1 = tail call i64 @PyLong_AsLong(ptr noundef nonnull %call) #11 %conv = trunc i64 %call1 to i32 br label %return @@ -20391,7 +20390,7 @@ declare ptr @_PyCode_GetFreevars(ptr noundef) local_unnamed_addr #2 declare void @PyErr_Clear() local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_class_body(ptr noundef %c, ptr noundef %s, i32 noundef %firstlineno) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_class_body(ptr noundef %c, ptr noundef %s, i32 noundef %firstlineno) unnamed_addr #1 { entry: %v = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 1 %0 = load ptr, ptr %v, align 8 @@ -20432,7 +20431,7 @@ if.end.i.i265: ; preds = %if.then.i br i1 %cmp.i.i266, label %if.then1.i.i, label %Py_XDECREF.exit if.then1.i.i: ; preds = %if.end.i.i265 - tail call void @_Py_Dealloc(ptr noundef nonnull %2) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %2) #11 br label %Py_XDECREF.exit Py_XDECREF.exit: ; preds = %_Py_NewRef.exit, %if.then.i, %if.end.i.i265, %if.then1.i.i @@ -20741,7 +20740,7 @@ if.end.i177: ; preds = %if.then163 br i1 %cmp.i179, label %if.then1.i180, label %return if.then1.i180: ; preds = %if.end.i177 - tail call void @_Py_Dealloc(ptr noundef nonnull %call133) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call133) #11 br label %return if.end164: ; preds = %if.end159 @@ -20754,7 +20753,7 @@ if.end.i: ; preds = %if.end164 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call133) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call133) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end164, %if.then1.i, %if.end.i @@ -20776,7 +20775,7 @@ declare ptr @_Py_asdl_expr_seq_new(i64 noundef, ptr noundef) local_unnamed_addr declare ptr @_PyAST_Name(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_call_helper(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %n, ptr noundef %args, ptr noundef %keywords) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_call_helper(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %n, ptr noundef %args, ptr noundef %keywords) unnamed_addr #1 { entry: %call = tail call fastcc i32 @validate_keywords(ptr noundef %c, ptr noundef %keywords), !range !5 %cmp = icmp eq i32 %call, -1 @@ -20881,7 +20880,7 @@ for.body50: ; preds = %for.cond40 br i1 %cmp.i, label %return, label %for.cond40, !llvm.loop !87 for.end61: ; preds = %for.cond40, %for.cond40.preheader - %call.i217 = tail call ptr @PyTuple_New(i64 noundef %cond7) #12 + %call.i217 = tail call ptr @PyTuple_New(i64 noundef %cond7) #11 %cmp.i218 = icmp eq ptr %call.i217, null br i1 %cmp.i218, label %return, label %for.cond.preheader.i @@ -20933,7 +20932,7 @@ if.end.i17.i: ; preds = %if.then12.i br i1 %cmp.i19.i, label %compiler_call_simple_kw_helper.exit.thread263, label %return compiler_call_simple_kw_helper.exit.thread263: ; preds = %if.end.i17.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i217) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i217) #11 br label %return if.end13.i: ; preds = %if.end8.i @@ -20946,7 +20945,7 @@ if.end.i.i: ; preds = %if.end13.i br i1 %cmp.i.i219, label %compiler_call_simple_kw_helper.exit, label %if.end66 compiler_call_simple_kw_helper.exit: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call.i217) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call.i217) #11 br label %if.end66 if.end66: ; preds = %if.end.i.i, %if.end13.i, %compiler_call_simple_kw_helper.exit @@ -21276,7 +21275,7 @@ return: ; preds = %for.body28, %for.bo } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @validate_keywords(ptr nocapture noundef readonly %c, ptr noundef readonly %keywords) unnamed_addr #1 { +define internal fastcc noundef i32 @validate_keywords(ptr nocapture noundef readonly %c, ptr noundef readonly %keywords) unnamed_addr #1 { entry: %cmp = icmp eq ptr %keywords, null br i1 %cmp, label %return, label %cond.end @@ -21307,7 +21306,7 @@ if.end: ; preds = %for.body %5 = load i32, ptr %col_offset5, align 4 %end_col_offset6 = getelementptr inbounds %struct._keyword, ptr %1, i64 0, i32 5 %6 = load i32, ptr %end_col_offset6, align 4 - %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef nonnull %2, ptr noundef nonnull @.str.331) #12 + %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef nonnull %2, ptr noundef nonnull @.str.331) #11 %tobool.not.i = icmp eq i32 %call.i, 0 br i1 %tobool.not.i, label %for.cond10.preheader, label %forbidden_name.exit.thread @@ -21338,7 +21337,7 @@ for.body12: ; preds = %for.cond10.preheade land.lhs.true: ; preds = %for.body12 %9 = load ptr, ptr %1, align 8 - %call18 = tail call i32 @PyUnicode_Compare(ptr noundef %9, ptr noundef nonnull %8) #12 + %call18 = tail call i32 @PyUnicode_Compare(ptr noundef %9, ptr noundef nonnull %8) #11 %tobool19.not = icmp eq i32 %call18, 0 br i1 %tobool19.not, label %if.then20, label %for.inc @@ -21379,9 +21378,9 @@ return: ; preds = %for.inc32, %entry, } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_call_simple_kw_helper(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %keywords, i64 noundef %nkwelts) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_call_simple_kw_helper(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %keywords, i64 noundef %nkwelts) unnamed_addr #1 { entry: - %call = tail call ptr @PyTuple_New(i64 noundef %nkwelts) #12 + %call = tail call ptr @PyTuple_New(i64 noundef %nkwelts) #11 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %for.cond.preheader @@ -21444,7 +21443,7 @@ if.end.i: ; preds = %if.end13 return.sink.split: ; preds = %if.end.i, %if.end.i17 %retval.0.ph = phi i32 [ -1, %if.end.i17 ], [ 0, %if.end.i ] - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return return: ; preds = %return.sink.split, %if.end.i, %if.end13, %if.end.i17, %if.then12, %entry @@ -21453,7 +21452,7 @@ return: ; preds = %return.sink.split, } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @starunpack_helper(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %elts, i32 noundef %pushed, i32 noundef %build, i32 noundef %add, i32 noundef %extend, i32 noundef %tuple) unnamed_addr #1 { +define internal fastcc noundef i32 @starunpack_helper(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %elts, i32 noundef %pushed, i32 noundef %build, i32 noundef %add, i32 noundef %extend, i32 noundef %tuple) unnamed_addr #1 { entry: %cmp = icmp eq ptr %elts, null br i1 %cmp, label %if.end60.thread299, label %cond.end @@ -21507,7 +21506,7 @@ are_all_items_const.exit: ; preds = %for.cond.i, %for.bo br i1 %cmp.i106.not.le, label %if.end60, label %if.then if.then: ; preds = %are_all_items_const.exit - %call2 = tail call ptr @PyTuple_New(i64 noundef %0) #12 + %call2 = tail call ptr @PyTuple_New(i64 noundef %0) #11 %cmp3 = icmp eq ptr %call2, null br i1 %cmp3, label %return, label %for.body.preheader @@ -21565,7 +21564,7 @@ if.end.i232: ; preds = %if.then15 br i1 %cmp.i234, label %if.then1.i235, label %return if.then1.i235: ; preds = %if.end.i232 - tail call void @_Py_Dealloc(ptr noundef nonnull %call2) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call2) #11 br label %return if.end16: ; preds = %if.end12 @@ -21578,7 +21577,7 @@ if.end.i223: ; preds = %if.end16 br i1 %cmp.i225, label %if.then1.i226, label %if.end59 if.then1.i226: ; preds = %if.end.i223 - tail call void @_Py_Dealloc(ptr noundef nonnull %call2) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call2) #11 br label %if.end59 if.else: ; preds = %for.end @@ -21586,7 +21585,7 @@ if.else: ; preds = %for.end br i1 %cmp17, label %do.body, label %if.end23 do.body: ; preds = %if.else - %call19 = tail call ptr @PyFrozenSet_New(ptr noundef nonnull %call2) #12 + %call19 = tail call ptr @PyFrozenSet_New(ptr noundef nonnull %call2) #11 %12 = load i64, ptr %call2, align 8 %13 = and i64 %12, 2147483648 %cmp.i246.not = icmp eq i64 %13, 0 @@ -21599,7 +21598,7 @@ if.end.i214: ; preds = %do.body br i1 %cmp.i216, label %if.then1.i217, label %do.end if.then1.i217: ; preds = %if.end.i214 - tail call void @_Py_Dealloc(ptr noundef nonnull %call2) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call2) #11 br label %do.end do.end: ; preds = %if.end.i214, %if.then1.i217, %do.body @@ -21657,7 +21656,7 @@ if.end.i205: ; preds = %if.then40 br i1 %cmp.i207, label %if.then1.i208, label %return if.then1.i208: ; preds = %if.end.i205 - tail call void @_Py_Dealloc(ptr noundef nonnull %folded.0) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %folded.0) #11 br label %return if.end41: ; preds = %if.end34 @@ -21670,7 +21669,7 @@ if.end.i: ; preds = %if.end41 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %folded.0) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %folded.0) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end41, %if.then1.i, %if.end.i @@ -22038,7 +22037,7 @@ return: ; preds = %for.body87, %if.the } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_subkwargs(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %keywords, i64 noundef %begin, i64 noundef %end) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_subkwargs(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %keywords, i64 noundef %begin, i64 noundef %end) unnamed_addr #1 { entry: %sub = sub i64 %end, %begin %mul = shl i64 %sub, 1 @@ -22067,12 +22066,12 @@ for.body: ; preds = %for.cond.preheader, br i1 %cmp5, label %return, label %for.cond for.end: ; preds = %for.cond - %call8 = tail call ptr @PyTuple_New(i64 noundef %sub) #12 + %call8 = tail call ptr @PyTuple_New(i64 noundef %sub) #11 %cmp9 = icmp eq ptr %call8, null br i1 %cmp9, label %return, label %for.cond13.preheader for.end.thread: ; preds = %for.cond.preheader - %call8124 = tail call ptr @PyTuple_New(i64 noundef %sub) #12 + %call8124 = tail call ptr @PyTuple_New(i64 noundef %sub) #11 %cmp9125 = icmp eq ptr %call8124, null br i1 %cmp9125, label %return, label %if.end27 @@ -22124,7 +22123,7 @@ if.end.i96: ; preds = %if.then31 br i1 %cmp.i98, label %if.then1.i99, label %return if.then1.i99: ; preds = %if.end.i96 - tail call void @_Py_Dealloc(ptr noundef nonnull %call8126128) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call8126128) #11 br label %return if.end32: ; preds = %if.end27 @@ -22137,7 +22136,7 @@ if.end.i: ; preds = %if.end32 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call8126128) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call8126128) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end32, %if.then1.i, %if.end.i @@ -22341,7 +22340,7 @@ return: ; preds = %for.body, %for.body declare i32 @PyUnicode_Compare(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_unwind_fblock_stack(ptr noundef %c, ptr nocapture noundef %ploc, i32 noundef %preserve_tos, ptr noundef %loop) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_unwind_fblock_stack(ptr noundef %c, ptr nocapture noundef %ploc, i32 noundef %preserve_tos, ptr noundef %loop) unnamed_addr #1 { entry: %copy = alloca %struct.fblockinfo, align 8 %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 @@ -22408,7 +22407,7 @@ return: ; preds = %if.end19, %if.end13 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_unwind_fblock(ptr noundef %c, ptr nocapture noundef %ploc, ptr nocapture noundef readonly %info, i32 noundef %preserve_tos) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_unwind_fblock(ptr noundef %c, ptr nocapture noundef %ploc, ptr nocapture noundef readonly %info, i32 noundef %preserve_tos) unnamed_addr #1 { entry: %0 = load i32, ptr %info, align 8 switch i32 %0, label %sw.epilog [ @@ -23145,7 +23144,7 @@ return: ; preds = %for.body, %if.then2 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_push_fblock(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %t, i32 %block_label.coerce, i32 %exit.coerce, ptr noundef %datum) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_push_fblock(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %t, i32 %block_label.coerce, i32 %exit.coerce, ptr noundef %datum) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -23178,7 +23177,7 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_call_exit_with_nones(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_call_exit_with_nones(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { entry: %c_const_cache = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 7 %0 = load ptr, ptr %c_const_cache, align 8 @@ -23239,7 +23238,7 @@ return: ; preds = %codegen_addop_i.exi } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_add_yield_from(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %await) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_add_yield_from(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %await) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -23485,7 +23484,7 @@ return: ; preds = %if.end49, %instr_se } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @codegen_addop_j(ptr nocapture noundef %seq, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %opcode, i32 %target.coerce) unnamed_addr #1 { +define internal fastcc noundef i32 @codegen_addop_j(ptr nocapture noundef %seq, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %opcode, i32 %target.coerce) unnamed_addr #1 { entry: %s_used.i.i = getelementptr inbounds %struct._PyCompile_InstructionSequence, ptr %seq, i64 0, i32 2 %0 = load i32, ptr %s_used.i.i, align 4 @@ -23520,8 +23519,8 @@ _PyCompile_InstructionSequence_Addop.exit: ; preds = %entry, %instr_seque ret i32 %retval.0.i } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable -define internal fastcc { i64, i64 } @update_start_location_to_match_attr(i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %attr) unnamed_addr #9 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable +define internal fastcc { i64, i64 } @update_start_location_to_match_attr(i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %attr) unnamed_addr #8 { entry: %loc.sroa.0.sroa.0.0.extract.trunc = trunc i64 %loc.coerce0 to i32 %loc.sroa.0.sroa.7.0.extract.shift = lshr i64 %loc.coerce0, 32 @@ -23574,11 +23573,11 @@ if.end34: ; preds = %if.then, %if.then21 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_addop_name(ptr nocapture noundef %u, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %opcode, ptr noundef %dict, ptr noundef %o) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_addop_name(ptr nocapture noundef %u, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %opcode, ptr noundef %dict, ptr noundef %o) unnamed_addr #1 { entry: %u_private = getelementptr inbounds %struct.compiler_unit, ptr %u, i64 0, i32 2 %0 = load ptr, ptr %u_private, align 8 - %call = tail call ptr @_Py_Mangle(ptr noundef %0, ptr noundef %o) #12 + %call = tail call ptr @_Py_Mangle(ptr noundef %0, ptr noundef %o) #11 %tobool.not = icmp eq ptr %call, null br i1 %tobool.not, label %return, label %if.end @@ -23596,7 +23595,7 @@ if.end.i: ; preds = %if.end br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end, %if.then1.i, %if.end.i @@ -23666,7 +23665,7 @@ return: ; preds = %if.end.i.i, %instr_ } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_slice(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_slice(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { entry: %v = getelementptr inbounds %struct._expr, ptr %s, i64 0, i32 1 %0 = load ptr, ptr %v, align 8 @@ -23757,7 +23756,7 @@ return: ; preds = %if.then41, %if.end3 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @addop_binary(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %binop, i1 noundef zeroext %inplace) unnamed_addr #1 { +define internal fastcc noundef i32 @addop_binary(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %binop, i1 noundef zeroext %inplace) unnamed_addr #1 { entry: switch i32 %binop, label %sw.default [ i32 1, label %sw.bb @@ -23830,7 +23829,7 @@ sw.bb34: ; preds = %entry sw.default: ; preds = %entry %0 = load ptr, ptr @PyExc_SystemError, align 8 %cond38 = select i1 %inplace, ptr @.str.347, ptr @.str.348 - %call = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %0, ptr noundef nonnull @.str.346, ptr noundef nonnull %cond38, i32 noundef %binop) #12 + %call = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %0, ptr noundef nonnull @.str.346, ptr noundef nonnull %cond38, i32 noundef %binop) #11 br label %return sw.epilog: ; preds = %sw.bb34, %sw.bb31, %sw.bb28, %sw.bb25, %sw.bb22, %sw.bb19, %sw.bb16, %sw.bb13, %sw.bb10, %sw.bb7, %sw.bb4, %sw.bb1, %sw.bb @@ -23872,7 +23871,7 @@ return: ; preds = %codegen_addop_i.exi } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @check_ann_subscr(ptr noundef %c, ptr noundef %e) unnamed_addr #1 { +define internal fastcc noundef i32 @check_ann_subscr(ptr noundef %c, ptr noundef %e) unnamed_addr #1 { entry: %0 = load i32, ptr %e, align 8 switch i32 %0, label %sw.default [ @@ -24143,7 +24142,7 @@ return: ; preds = %for.body, %for.cond } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_jump_if(ptr noundef %c, ptr noundef %e, i32 %next.coerce, i32 noundef %cond) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_jump_if(ptr noundef %c, ptr noundef %e, i32 %next.coerce, i32 noundef %cond) unnamed_addr #1 { entry: br label %tailrecurse @@ -24821,7 +24820,7 @@ return: ; preds = %if.end230, %instr_s } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @check_compare(ptr nocapture noundef readonly %c, ptr nocapture noundef readonly %e) unnamed_addr #1 { +define internal fastcc noundef i32 @check_compare(ptr nocapture noundef readonly %c, ptr nocapture noundef readonly %e) unnamed_addr #1 { entry: %v = getelementptr inbounds %struct._expr, ptr %e, i64 0, i32 1 %0 = load ptr, ptr %v, align 8 @@ -24972,7 +24971,7 @@ return: ; preds = %for.cond, %check_is } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_addcompare(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %op) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_addcompare(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, i32 noundef %op) unnamed_addr #1 { entry: switch i32 %op, label %sw.default [ i32 1, label %sw.epilog @@ -25169,11 +25168,11 @@ return: ; preds = %return.sink.split, } ; Function Attrs: nounwind uwtable -define internal i32 @compiler_warn(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %format, ...) unnamed_addr #1 { +define internal noundef i32 @compiler_warn(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %format, ...) unnamed_addr #1 { entry: %vargs = alloca [1 x %struct.__va_list_tag], align 16 call void @llvm.va_start(ptr nonnull %vargs) - %call = call ptr @PyUnicode_FromFormatV(ptr noundef %format, ptr noundef nonnull %vargs) #12 + %call = call ptr @PyUnicode_FromFormatV(ptr noundef %format, ptr noundef nonnull %vargs) #11 call void @llvm.va_end(ptr nonnull %vargs) %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end @@ -25182,19 +25181,19 @@ if.end: ; preds = %entry %loc.sroa.0.0.extract.trunc = trunc i64 %loc.coerce0 to i32 %0 = load ptr, ptr @PyExc_SyntaxWarning, align 8 %1 = load ptr, ptr %c, align 8 - %call3 = call i32 @PyErr_WarnExplicitObject(ptr noundef %0, ptr noundef nonnull %call, ptr noundef %1, i32 noundef %loc.sroa.0.0.extract.trunc, ptr noundef null, ptr noundef null) #12 + %call3 = call i32 @PyErr_WarnExplicitObject(ptr noundef %0, ptr noundef nonnull %call, ptr noundef %1, i32 noundef %loc.sroa.0.0.extract.trunc, ptr noundef null, ptr noundef null) #11 %cmp4 = icmp slt i32 %call3, 0 br i1 %cmp4, label %if.then5, label %if.end11 if.then5: ; preds = %if.end %2 = load ptr, ptr @PyExc_SyntaxWarning, align 8 - %call6 = call i32 @PyErr_ExceptionMatches(ptr noundef %2) #12 + %call6 = call i32 @PyErr_ExceptionMatches(ptr noundef %2) #11 %tobool.not = icmp eq i32 %call6, 0 br i1 %tobool.not, label %if.end10, label %if.then7 if.then7: ; preds = %if.then5 - call void @PyErr_Clear() #12 - %call8 = call ptr @PyUnicode_AsUTF8(ptr noundef nonnull %call) #12 + call void @PyErr_Clear() #11 + %call8 = call ptr @PyUnicode_AsUTF8(ptr noundef nonnull %call) #11 call void (ptr, i64, i64, ptr, ...) @compiler_error(ptr noundef nonnull %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %call8) br label %if.end10 @@ -25224,7 +25223,7 @@ if.end.i: ; preds = %if.end11 return.sink.split: ; preds = %if.end.i, %if.end.i15 %retval.0.ph = phi i32 [ -1, %if.end.i15 ], [ 0, %if.end.i ] - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %return return: ; preds = %return.sink.split, %if.end.i, %if.end11, %if.end.i15, %if.end10, %entry @@ -25641,7 +25640,7 @@ if.then53.i: ; preds = %if.end51.i br i1 %cmp66.i, label %return, label %if.end68.i if.end68.i: ; preds = %if.then53.i - %call69.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %cond.i499) #12 + %call69.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %cond.i499) #11 %cmp70.i = icmp eq ptr %call69.i, null br i1 %cmp70.i, label %return, label %if.end72.i @@ -25678,7 +25677,7 @@ if.end.i249.i: ; preds = %if.then85.i br i1 %cmp.i251.i, label %if.then1.i252.i, label %return if.then1.i252.i: ; preds = %if.end.i249.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call69.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call69.i) #11 br label %return if.end86.i: ; preds = %if.end72.i @@ -25691,7 +25690,7 @@ if.end.i240.i: ; preds = %if.end86.i br i1 %cmp.i242.i, label %if.then1.i243.i, label %Py_DECREF.exit245.i if.then1.i243.i: ; preds = %if.end.i240.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call69.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call69.i) #11 br label %Py_DECREF.exit245.i Py_DECREF.exit245.i: ; preds = %if.then1.i243.i, %if.end.i240.i, %if.end86.i @@ -25753,7 +25752,7 @@ if.then114.i: ; preds = %if.else.i if.end129.i: ; preds = %if.then114.i %sub.i = add nsw i64 %cond.i499, -1 - %call131.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %sub.i) #12 + %call131.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %sub.i) #11 %cmp132.i = icmp eq ptr %call131.i, null br i1 %cmp132.i, label %return, label %if.end134.i @@ -25790,7 +25789,7 @@ if.end.i231.i: ; preds = %if.then148.i br i1 %cmp.i233.i, label %if.then1.i234.i, label %return if.then1.i234.i: ; preds = %if.end.i231.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call131.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call131.i) #11 br label %return if.end149.i: ; preds = %if.end134.i @@ -25803,7 +25802,7 @@ if.end.i.i: ; preds = %if.end149.i br i1 %cmp.i.i, label %if.then1.i.i, label %Py_DECREF.exit.i if.then1.i.i: ; preds = %if.end.i.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call131.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call131.i) #11 br label %Py_DECREF.exit.i Py_DECREF.exit.i: ; preds = %if.then1.i.i, %if.end.i.i, %if.end149.i @@ -26061,7 +26060,7 @@ if.then63.i: ; preds = %if.end61.i br i1 %cmp76.i, label %return, label %if.end78.i if.end78.i: ; preds = %if.then63.i - %call79.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %cond.i64) #12 + %call79.i = tail call ptr @PyLong_FromSsize_t(i64 noundef %cond.i64) #11 %cmp80.i = icmp eq ptr %call79.i, null br i1 %cmp80.i, label %return, label %if.end82.i @@ -26098,7 +26097,7 @@ if.end.i513.i: ; preds = %if.then95.i br i1 %cmp.i515.i, label %if.then1.i516.i, label %return if.then1.i516.i: ; preds = %if.end.i513.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call79.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call79.i) #11 br label %return if.end96.i: ; preds = %if.end82.i @@ -26111,7 +26110,7 @@ if.end.i504.i: ; preds = %if.end96.i br i1 %cmp.i506.i, label %if.then1.i507.i, label %Py_DECREF.exit509.i if.then1.i507.i: ; preds = %if.end.i504.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call79.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call79.i) #11 br label %Py_DECREF.exit509.i Py_DECREF.exit509.i: ; preds = %if.then1.i507.i, %if.end.i504.i, %if.end96.i @@ -26170,12 +26169,12 @@ if.then125.i: ; preds = %if.end123.i br label %return if.end136.i: ; preds = %if.end123.i - %call137.i = tail call ptr @PySet_New(ptr noundef null) #12 + %call137.i = tail call ptr @PySet_New(ptr noundef null) #11 %cmp138.i = icmp eq ptr %call137.i, null br i1 %cmp138.i, label %return, label %for.cond.i85.preheader if.end136.i.thread: ; preds = %if.end61.i - %call137.i501 = tail call ptr @PySet_New(ptr noundef null) #12 + %call137.i501 = tail call ptr @PySet_New(ptr noundef null) #11 %cmp138.i502 = icmp eq ptr %call137.i501, null br i1 %cmp138.i502, label %return, label %for.end.i87 @@ -26222,7 +26221,7 @@ if.end162.i91: ; preds = %for.body.i89 if.then164.i: ; preds = %if.end162.i91 %v165.i = getelementptr inbounds %struct._expr, ptr %175, i64 0, i32 1 %182 = load ptr, ptr %v165.i, align 8 - %call166.i = tail call i32 @PySet_Contains(ptr noundef nonnull %call137.i, ptr noundef %182) #12 + %call166.i = tail call i32 @PySet_Contains(ptr noundef nonnull %call137.i, ptr noundef %182) #11 %cmp167.i = icmp slt i32 %call166.i, 0 br i1 %cmp167.i, label %error.i, label %if.end169.i @@ -26249,7 +26248,7 @@ if.then171.i: ; preds = %if.end169.i if.end185.i: ; preds = %if.end169.i %188 = load ptr, ptr %v165.i, align 8 - %call188.i = tail call i32 @PySet_Add(ptr noundef nonnull %call137.i, ptr noundef %188) #12 + %call188.i = tail call i32 @PySet_Add(ptr noundef nonnull %call137.i, ptr noundef %188) #11 %tobool189.not.i = icmp eq i32 %call188.i, 0 br i1 %tobool189.not.i, label %if.end207.i, label %error.i @@ -26295,7 +26294,7 @@ if.end.i495.i: ; preds = %for.end.i87 br i1 %cmp.i497.i, label %if.then1.i498.i, label %Py_DECREF.exit500.i if.then1.i498.i: ; preds = %if.end.i495.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call137.i504509) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call137.i504509) #11 br label %Py_DECREF.exit500.i Py_DECREF.exit500.i: ; preds = %if.then1.i498.i, %if.end.i495.i, %for.end.i87 @@ -26669,7 +26668,7 @@ if.end.i.i95: ; preds = %error.i br i1 %cmp.i.i97, label %if.then1.i.i98, label %return if.then1.i.i98: ; preds = %if.end.i.i95 - tail call void @_Py_Dealloc(ptr noundef nonnull %call137.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call137.i) #11 br label %return sw.bb7: ; preds = %entry @@ -26777,7 +26776,7 @@ if.end44.i: ; preds = %if.then39.i, %if.en br i1 %cmp48.i123, label %return, label %if.end50.i if.end50.i: ; preds = %if.end44.i - %call51.i = tail call ptr @PyTuple_New(i64 noundef %cond11.i) #12 + %call51.i = tail call ptr @PyTuple_New(i64 noundef %cond11.i) #11 %cmp52.i124 = icmp eq ptr %call51.i, null br i1 %cmp52.i124, label %return, label %for.cond.i125.preheader @@ -26843,7 +26842,7 @@ if.end.i210.i: ; preds = %if.then71.i br i1 %cmp.i212.i, label %if.then1.i213.i, label %return if.then1.i213.i: ; preds = %if.end.i210.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call51.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call51.i) #11 br label %return if.end72.i131: ; preds = %if.end59.i @@ -26856,7 +26855,7 @@ if.end.i.i147: ; preds = %if.end72.i131 br i1 %cmp.i.i149, label %if.then1.i.i150, label %Py_DECREF.exit.i132 if.then1.i.i150: ; preds = %if.end.i.i147 - tail call void @_Py_Dealloc(ptr noundef nonnull %call51.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call51.i) #11 br label %Py_DECREF.exit.i132 Py_DECREF.exit.i132: ; preds = %if.then1.i.i150, %if.end.i.i147, %if.end72.i131 @@ -27268,7 +27267,7 @@ for.body.i265: ; preds = %for.body.i265.lr.ph %388 = load ptr, ptr %v.i218, align 8 %arrayidx.i266 = getelementptr %struct.asdl_pattern_seq, ptr %388, i64 0, i32 2, i64 %i.0.i223450 %389 = load ptr, ptr %arrayidx.i266, align 8 - %call8.i267 = tail call ptr @PyList_New(i64 noundef 0) #12 + %call8.i267 = tail call ptr @PyList_New(i64 noundef 0) #11 %cmp9.i268 = icmp eq ptr %call8.i267, null br i1 %cmp9.i268, label %error.i259, label %do.body.i @@ -27287,7 +27286,7 @@ if.end.i272.i: ; preds = %do.body.i br i1 %cmp.i274.i, label %if.then1.i275.i, label %do.end.i if.then1.i275.i: ; preds = %if.end.i272.i - tail call void @_Py_Dealloc(ptr noundef nonnull %390) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %390) #11 br label %do.end.i do.end.i: ; preds = %if.then1.i275.i, %if.end.i272.i, %do.body.i @@ -27382,12 +27381,12 @@ while.body.i288: ; preds = %while.cond.i286.pre %arrayidx40.i = getelementptr ptr, ptr %406, i64 %dec.i287448 %407 = load ptr, ptr %arrayidx40.i, align 8 %408 = load ptr, ptr %pc, align 8 - %call42.i = tail call i64 @PySequence_Index(ptr noundef %408, ptr noundef %407) #12 + %call42.i = tail call i64 @PySequence_Index(ptr noundef %408, ptr noundef %407) #11 %cmp43.i = icmp slt i64 %call42.i, 0 br i1 %cmp43.i, label %if.then44.i290, label %if.end45.i if.then44.i290: ; preds = %while.body.i288 - tail call void @PyErr_Clear() #12 + tail call void @PyErr_Clear() #11 br label %diff.i if.end45.i: ; preds = %while.body.i288 @@ -27397,20 +27396,20 @@ if.end45.i: ; preds = %while.body.i288 if.then47.i: ; preds = %if.end45.i %add.i289 = add nuw i64 %call42.i, 1 %409 = load ptr, ptr %pc, align 8 - %call49.i = tail call ptr @PyList_GetSlice(ptr noundef %409, i64 noundef 0, i64 noundef %add.i289) #12 + %call49.i = tail call ptr @PyList_GetSlice(ptr noundef %409, i64 noundef 0, i64 noundef %add.i289) #11 %cmp50.i = icmp eq ptr %call49.i, null br i1 %cmp50.i, label %if.then61.i, label %lor.lhs.false51.i lor.lhs.false51.i: ; preds = %if.then47.i %410 = load ptr, ptr %pc, align 8 - %call53.i = tail call i32 @PyList_SetSlice(ptr noundef %410, i64 noundef 0, i64 noundef %add.i289, ptr noundef null) #12 + %call53.i = tail call i32 @PyList_SetSlice(ptr noundef %410, i64 noundef 0, i64 noundef %add.i289, ptr noundef null) #11 %tobool54.not.i = icmp eq i32 %call53.i, 0 br i1 %tobool54.not.i, label %lor.lhs.false55.i, label %if.then61.i lor.lhs.false55.i: ; preds = %lor.lhs.false51.i %411 = load ptr, ptr %pc, align 8 %sub57.i = sub i64 %dec.i287448, %call42.i - %call59.i = tail call i32 @PyList_SetSlice(ptr noundef %411, i64 noundef %sub57.i, i64 noundef %sub57.i, ptr noundef nonnull %call49.i) #12 + %call59.i = tail call i32 @PyList_SetSlice(ptr noundef %411, i64 noundef %sub57.i, i64 noundef %sub57.i, ptr noundef nonnull %call49.i) #11 %tobool60.not.i = icmp eq i32 %call59.i, 0 br i1 %tobool60.not.i, label %if.end62.i, label %if.then61.i @@ -27431,7 +27430,7 @@ if.end.i263.i: ; preds = %if.end62.i br i1 %cmp.i265.i, label %if.then1.i266.i, label %Py_DECREF.exit268.i if.then1.i266.i: ; preds = %if.end.i263.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call49.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call49.i) #11 br label %Py_DECREF.exit268.i Py_DECREF.exit268.i: ; preds = %if.then1.i266.i, %if.end.i263.i, %if.end62.i @@ -27571,7 +27570,7 @@ if.end.i254.i: ; preds = %for.end.i225 br i1 %cmp.i256.i, label %if.then1.i257.i, label %Py_DECREF.exit259.i if.then1.i257.i: ; preds = %if.end.i254.i - tail call void @_Py_Dealloc(ptr noundef nonnull %434) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %434) #11 br label %Py_DECREF.exit259.i Py_DECREF.exit259.i: ; preds = %if.then1.i257.i, %if.end.i254.i, %for.end.i225 @@ -27736,7 +27735,7 @@ if.end175.i: ; preds = %codegen_addop_i.exi %arrayidx178.i = getelementptr ptr, ptr %463, i64 %i159.0.i453 %464 = load ptr, ptr %arrayidx178.i, align 8 %465 = load ptr, ptr %pc, align 8 - %call180.i = tail call i32 @PySequence_Contains(ptr noundef %465, ptr noundef %464) #12 + %call180.i = tail call i32 @PySequence_Contains(ptr noundef %465, ptr noundef %464) #11 %cmp181.i = icmp slt i32 %call180.i, 0 br i1 %cmp181.i, label %error.i259, label %if.end183.i @@ -27762,7 +27761,7 @@ if.then185.i: ; preds = %if.end183.i if.end196.i: ; preds = %if.end183.i %470 = load ptr, ptr %pc, align 8 - %call198.i = tail call i32 @PyList_Append(ptr noundef %470, ptr noundef %464) #12 + %call198.i = tail call i32 @PyList_Append(ptr noundef %470, ptr noundef %464) #11 %tobool199.not.i = icmp eq i32 %call198.i, 0 br i1 %tobool199.not.i, label %for.cond160.i, label %error.i259 @@ -27779,7 +27778,7 @@ if.end.i245.i: ; preds = %for.end204.i br i1 %cmp.i247.i, label %if.then1.i248.i, label %Py_DECREF.exit250.i if.then1.i248.i: ; preds = %if.end.i245.i - tail call void @_Py_Dealloc(ptr noundef nonnull %old_pc.sroa.0.0.copyload.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %old_pc.sroa.0.0.copyload.i) #11 br label %Py_DECREF.exit250.i Py_DECREF.exit250.i: ; preds = %if.then1.i248.i, %if.end.i245.i, %for.end204.i @@ -27795,7 +27794,7 @@ if.end.i236.i: ; preds = %Py_DECREF.exit250.i br i1 %cmp.i238.i, label %if.then1.i239.i, label %Py_DECREF.exit241.i if.then1.i239.i: ; preds = %if.end.i236.i - tail call void @_Py_Dealloc(ptr noundef nonnull %control.0.i.lcssa) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %control.0.i.lcssa) #11 br label %Py_DECREF.exit241.i Py_DECREF.exit241.i: ; preds = %if.then1.i239.i, %if.end.i236.i, %Py_DECREF.exit250.i @@ -27841,7 +27840,7 @@ diff.i: ; preds = %if.else.i285, %if.t error.i259: ; preds = %if.end85.i, %instr_sequence_next_inst.exit.i.i356, %do.end.i, %instr_sequence_next_inst.exit.i.i395, %lor.lhs.false100.i, %lor.lhs.false.i283, %for.body.i265, %instr_sequence_next_inst.exit.i.i.i376.us, %while.body.i368.us, %if.end196.i, %if.end175.i, %instr_sequence_next_inst.exit.i.i.i552, %while.body.i544, %Py_INCREF.exit.i, %instr_sequence_next_inst.exit.i.i533, %diff.i, %if.then185.i, %lor.lhs.false130.i, %if.then61.i %control.2.i = phi ptr [ %control.0.i451, %diff.i ], [ %control.0.i451, %if.then61.i ], [ %control.0.i.lcssa, %lor.lhs.false130.i ], [ %control.0.i.lcssa, %if.then185.i ], [ %control.0.i.lcssa, %instr_sequence_next_inst.exit.i.i533 ], [ %control.0.i.lcssa, %Py_INCREF.exit.i ], [ %control.0.i.lcssa, %while.body.i544 ], [ %control.0.i.lcssa, %instr_sequence_next_inst.exit.i.i.i552 ], [ %control.0.i.lcssa, %if.end175.i ], [ %control.0.i.lcssa, %if.end196.i ], [ %control.0.i451, %while.body.i368.us ], [ %control.0.i451, %instr_sequence_next_inst.exit.i.i.i376.us ], [ %control.0.i451, %for.body.i265 ], [ %control.0.i451, %lor.lhs.false.i283 ], [ %control.1.i, %lor.lhs.false100.i ], [ %control.0.i451, %instr_sequence_next_inst.exit.i.i395 ], [ %control.0.i451, %do.end.i ], [ %control.1.i, %instr_sequence_next_inst.exit.i.i356 ], [ %control.1.i, %if.end85.i ] %old_pc.sroa.556.0.i = phi ptr [ %old_pc.sroa.556.0.copyload.i, %diff.i ], [ %old_pc.sroa.556.0.copyload.i, %if.then61.i ], [ null, %lor.lhs.false130.i ], [ null, %if.then185.i ], [ null, %instr_sequence_next_inst.exit.i.i533 ], [ null, %Py_INCREF.exit.i ], [ null, %while.body.i544 ], [ null, %instr_sequence_next_inst.exit.i.i.i552 ], [ null, %if.end175.i ], [ null, %if.end196.i ], [ %old_pc.sroa.556.0.copyload.i, %while.body.i368.us ], [ %old_pc.sroa.556.0.copyload.i, %instr_sequence_next_inst.exit.i.i.i376.us ], [ %old_pc.sroa.556.0.copyload.i, %for.body.i265 ], [ %old_pc.sroa.556.0.copyload.i, %lor.lhs.false.i283 ], [ %old_pc.sroa.556.0.copyload.i, %lor.lhs.false100.i ], [ %old_pc.sroa.556.0.copyload.i, %instr_sequence_next_inst.exit.i.i395 ], [ %old_pc.sroa.556.0.copyload.i, %do.end.i ], [ %old_pc.sroa.556.0.copyload.i, %instr_sequence_next_inst.exit.i.i356 ], [ %old_pc.sroa.556.0.copyload.i, %if.end85.i ] - tail call void @PyObject_Free(ptr noundef %old_pc.sroa.556.0.i) #12 + tail call void @PyObject_Free(ptr noundef %old_pc.sroa.556.0.i) #11 %484 = load i64, ptr %old_pc.sroa.0.0.copyload.i, align 8 %485 = and i64 %484, 2147483648 %cmp.i298.not.i = icmp eq i64 %485, 0 @@ -27854,7 +27853,7 @@ if.end.i.i261: ; preds = %error.i259 br i1 %cmp.i.i263, label %if.then1.i.i264, label %Py_DECREF.exit.i260 if.then1.i.i264: ; preds = %if.end.i.i261 - tail call void @_Py_Dealloc(ptr noundef nonnull %old_pc.sroa.0.0.copyload.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %old_pc.sroa.0.0.copyload.i) #11 br label %Py_DECREF.exit.i260 Py_DECREF.exit.i260: ; preds = %if.then1.i.i264, %if.end.i.i261, %error.i259 @@ -27874,7 +27873,7 @@ if.end.i.i346: ; preds = %if.then.i344 br i1 %cmp.i.i348, label %if.then1.i.i349, label %compiler_pattern_or.exit if.then1.i.i349: ; preds = %if.end.i.i346 - tail call void @_Py_Dealloc(ptr noundef nonnull %control.2.i) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %control.2.i) #11 br label %compiler_pattern_or.exit compiler_pattern_or.exit: ; preds = %if.then1.i.i349, %if.end.i.i346, %if.then.i344, %Py_DECREF.exit.i260, %sw.bb13, %if.end143.i, %Py_DECREF.exit241.i @@ -27908,7 +27907,7 @@ return: ; preds = %for.inc204.i, %if.t } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @emit_and_reset_fail_pop(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef %pc) unnamed_addr #1 { +define internal fastcc noundef i32 @emit_and_reset_fail_pop(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef %pc) unnamed_addr #1 { entry: %fail_pop_size = getelementptr inbounds %struct.pattern_context, ptr %pc, i64 0, i32 3 %0 = load i64, ptr %fail_pop_size, align 8 @@ -28050,7 +28049,7 @@ return.sink.split: ; preds = %if.then10, %if.end2 %fail_pop17.sink40 = phi ptr [ %fail_pop17, %if.end23 ], [ %fail_pop, %if.then10 ] %retval.0.ph = phi i32 [ 0, %if.end23 ], [ -1, %if.then10 ] %28 = load ptr, ptr %fail_pop17.sink40, align 8 - tail call void @PyObject_Free(ptr noundef %28) #12 + tail call void @PyObject_Free(ptr noundef %28) #11 store ptr null, ptr %fail_pop17.sink40, align 8 br label %return @@ -28060,7 +28059,7 @@ return: ; preds = %while.body, %return } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @jump_to_fail_pop(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef %pc, i32 noundef %op) unnamed_addr #1 { +define internal fastcc noundef i32 @jump_to_fail_pop(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef %pc, i32 noundef %op) unnamed_addr #1 { entry: %on_top = getelementptr inbounds %struct.pattern_context, ptr %pc, i64 0, i32 4 %0 = load i64, ptr %on_top, align 8 @@ -28078,12 +28077,12 @@ if.end.i: ; preds = %entry %mul.i = shl i64 %add.i, 2 %fail_pop.i = getelementptr inbounds %struct.pattern_context, ptr %pc, i64 0, i32 2 %4 = load ptr, ptr %fail_pop.i, align 8 - %call.i = tail call ptr @PyObject_Realloc(ptr noundef %4, i64 noundef %mul.i) #12 + %call.i = tail call ptr @PyObject_Realloc(ptr noundef %4, i64 noundef %mul.i) #11 %cmp1.i = icmp eq ptr %call.i, null br i1 %cmp1.i, label %if.then2.i, label %if.end4.i if.then2.i: ; preds = %if.end.i - %call3.i = tail call ptr @PyErr_NoMemory() #12 + %call3.i = tail call ptr @PyErr_NoMemory() #11 br label %return if.end4.i: ; preds = %if.end.i @@ -28155,7 +28154,7 @@ return: ; preds = %while.body.i, %code } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @pattern_helper_sequence_subscr(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %patterns, i64 noundef %star, ptr nocapture noundef %pc) unnamed_addr #1 { +define internal fastcc noundef i32 @pattern_helper_sequence_subscr(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %patterns, i64 noundef %star, ptr nocapture noundef %pc) unnamed_addr #1 { entry: %on_top = getelementptr inbounds %struct.pattern_context, ptr %pc, i64 0, i32 4 %0 = load i64, ptr %on_top, align 8 @@ -28228,7 +28227,7 @@ if.end9: ; preds = %instr_sequence_next br i1 %cmp10, label %if.then11, label %if.else if.then11: ; preds = %if.end9 - %call12 = tail call ptr @PyLong_FromSsize_t(i64 noundef %i.0114) #12 + %call12 = tail call ptr @PyLong_FromSsize_t(i64 noundef %i.0114) #11 %cmp13 = icmp eq ptr %call12, null br i1 %cmp13, label %return, label %if.end15 @@ -28252,7 +28251,7 @@ if.end.i82: ; preds = %if.then19 br i1 %cmp.i84, label %if.then1.i85, label %return if.then1.i85: ; preds = %if.end.i82 - tail call void @_Py_Dealloc(ptr noundef nonnull %call12) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call12) #11 br label %return if.end20: ; preds = %if.end15 @@ -28265,7 +28264,7 @@ if.end.i73: ; preds = %if.end20 br i1 %cmp.i75, label %if.then1.i76, label %if.end42 if.then1.i76: ; preds = %if.end.i73 - tail call void @_Py_Dealloc(ptr noundef nonnull %call12) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call12) #11 br label %if.end42 if.else: ; preds = %if.end9 @@ -28298,7 +28297,7 @@ if.end26: ; preds = %instr_sequence_next %loc.sroa.2.0.i_loc.sroa_idx.i.i63 = getelementptr inbounds i8, ptr %i_loc.i.i62, i64 8 store i64 %loc.coerce1, ptr %loc.sroa.2.0.i_loc.sroa_idx.i.i63, align 4 %sub = sub nsw i64 %1, %i.0114 - %call28 = tail call ptr @PyLong_FromSsize_t(i64 noundef %sub) #12 + %call28 = tail call ptr @PyLong_FromSsize_t(i64 noundef %sub) #11 %cmp29 = icmp eq ptr %call28, null br i1 %cmp29, label %return, label %if.end31 @@ -28322,7 +28321,7 @@ if.end.i64: ; preds = %if.then36 br i1 %cmp.i66, label %if.then1.i67, label %return if.then1.i67: ; preds = %if.end.i64 - tail call void @_Py_Dealloc(ptr noundef nonnull %call28) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call28) #11 br label %return if.end37: ; preds = %if.end31 @@ -28335,7 +28334,7 @@ if.end.i: ; preds = %if.end37 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call28) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call28) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end37, %if.then1.i, %if.end.i @@ -28458,7 +28457,7 @@ return: ; preds = %if.end48, %if.end42 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @pattern_helper_sequence_unpack(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %patterns, ptr nocapture noundef %pc) unnamed_addr #1 { +define internal fastcc noundef i32 @pattern_helper_sequence_unpack(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %patterns, ptr nocapture noundef %pc) unnamed_addr #1 { entry: %cmp.i = icmp eq ptr %patterns, null br i1 %cmp.i, label %if.then20.i, label %cond.end.i @@ -28674,7 +28673,7 @@ codegen_addop_noarg.exit: ; preds = %instr_sequence_next br label %return if.end3: ; preds = %entry - %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef nonnull %n, ptr noundef nonnull @.str.331) #12 + %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef nonnull %n, ptr noundef nonnull @.str.331) #11 %tobool.not.i = icmp eq i32 %call.i, 0 br i1 %tobool.not.i, label %if.end6, label %forbidden_name.exit.thread @@ -28684,7 +28683,7 @@ forbidden_name.exit.thread: ; preds = %if.end3 if.end6: ; preds = %if.end3 %4 = load ptr, ptr %pc, align 8 - %call7 = tail call i32 @PySequence_Contains(ptr noundef %4, ptr noundef nonnull %n) #12 + %call7 = tail call i32 @PySequence_Contains(ptr noundef %4, ptr noundef nonnull %n) #11 switch i32 %call7, label %if.then11 [ i32 -1, label %return i32 0, label %if.end13 @@ -28747,7 +28746,7 @@ if.end20.loopexit: ; preds = %codegen_addop_i.exi if.end20: ; preds = %if.end20.loopexit, %if.end13 %12 = phi ptr [ %.pre, %if.end20.loopexit ], [ %6, %if.end13 ] - %call22 = tail call i32 @PyList_Append(ptr noundef %12, ptr noundef nonnull %n) #12 + %call22 = tail call i32 @PyList_Append(ptr noundef %12, ptr noundef nonnull %n) #11 %cmp23 = icmp eq i32 %call22, -1 %.18 = sext i1 %cmp23 to i32 br label %return @@ -28760,7 +28759,7 @@ return: ; preds = %instr_sequence_next declare i32 @PySequence_Contains(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @validate_kwd_attrs(ptr nocapture noundef readonly %c, ptr noundef readonly %attrs, ptr nocapture noundef readonly %patterns) unnamed_addr #1 { +define internal fastcc noundef i32 @validate_kwd_attrs(ptr nocapture noundef readonly %c, ptr noundef readonly %attrs, ptr nocapture noundef readonly %patterns) unnamed_addr #1 { entry: %cmp = icmp eq ptr %attrs, null br i1 %cmp, label %return, label %cond.end @@ -28788,7 +28787,7 @@ for.body: ; preds = %cond.end, %for.cond %5 = load i32, ptr %col_offset10, align 4 %end_col_offset13 = getelementptr inbounds %struct._pattern, ptr %2, i64 0, i32 5 %6 = load i32, ptr %end_col_offset13, align 4 - %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %1, ptr noundef nonnull @.str.331) #12 + %call.i = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %1, ptr noundef nonnull @.str.331) #11 %tobool.not.i = icmp eq i32 %call.i, 0 br i1 %tobool.not.i, label %if.end, label %forbidden_name.exit.thread @@ -28813,7 +28812,7 @@ for.body16: ; preds = %if.end, %for.inc %j.040 = phi i64 [ %inc, %for.inc ], [ %add, %if.end ] %arrayidx18 = getelementptr %struct.asdl_identifier_seq, ptr %attrs, i64 0, i32 2, i64 %j.040 %7 = load ptr, ptr %arrayidx18, align 8 - %call19 = tail call i32 @PyUnicode_Compare(ptr noundef %1, ptr noundef %7) #12 + %call19 = tail call i32 @PyUnicode_Compare(ptr noundef %1, ptr noundef %7) #11 %tobool.not = icmp eq i32 %call19, 0 br i1 %tobool.not, label %if.then20, label %for.inc @@ -28856,7 +28855,7 @@ declare ptr @PyList_GetSlice(ptr noundef, i64 noundef, i64 noundef) local_unname declare i32 @PyList_SetSlice(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_try_finally(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_try_finally(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { entry: %lineno1 = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 2 %0 = load i32, ptr %lineno1, align 8 @@ -29176,7 +29175,7 @@ return: ; preds = %for.body, %for.body } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_try_except(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_try_except(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { entry: %lineno1 = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 2 %0 = load i32, ptr %lineno1, align 8 @@ -29792,7 +29791,7 @@ return: ; preds = %for.body, %for.body } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_pop_except_and_reraise(ptr nocapture noundef readonly %c) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_pop_except_and_reraise(ptr nocapture noundef readonly %c) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -29881,7 +29880,7 @@ return: ; preds = %if.end, %instr_sequ } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_try_star_finally(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_try_star_finally(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { entry: %lineno1 = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 2 %0 = load i32, ptr %lineno1, align 8 @@ -30201,7 +30200,7 @@ return: ; preds = %for.body, %for.body } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_try_star_except(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_try_star_except(ptr noundef %c, ptr nocapture noundef readonly %s) unnamed_addr #1 { entry: %lineno1 = getelementptr inbounds %struct._stmt, ptr %s, i64 0, i32 2 %0 = load i32, ptr %lineno1, align 8 @@ -30969,7 +30968,7 @@ declare i64 @PyUnicode_FindChar(ptr noundef, i32 noundef, i64 noundef, i64 nound declare ptr @PyUnicode_Substring(ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_with_except_finish(ptr nocapture noundef readonly %c, i32 %cleanup.coerce) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_with_except_finish(ptr nocapture noundef readonly %c, i32 %cleanup.coerce) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -31246,7 +31245,7 @@ return: ; preds = %if.end45, %instr_se } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @addop_yield(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { +define internal fastcc noundef i32 @addop_yield(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -31371,14 +31370,14 @@ lor.lhs.false: ; preds = %entry lor.lhs.false4: ; preds = %lor.lhs.false %v7 = getelementptr inbounds %struct._expr, ptr %2, i64 0, i32 1 %4 = load ptr, ptr %v7, align 8 - %call = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %4, ptr noundef nonnull @.str.389) #12 + %call = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %4, ptr noundef nonnull @.str.389) #11 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %return, label %lor.lhs.false8 lor.lhs.false8: ; preds = %lor.lhs.false4 %attr10 = getelementptr inbounds %struct._expr, ptr %attr, i64 0, i32 1, i32 0, i32 1 %5 = load ptr, ptr %attr10, align 8 - %call11 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %5, ptr noundef nonnull @.str.337) #12 + %call11 = tail call i32 @_PyUnicode_EqualToASCIIString(ptr noundef %5, ptr noundef nonnull @.str.337) #11 %tobool12.not = icmp eq i32 %call11, 0 br i1 %tobool12.not, label %lor.lhs.false13, label %return @@ -31411,7 +31410,7 @@ cond.end26: ; preds = %if.end, %cond.false %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %13 = load ptr, ptr %u, align 8 %14 = load ptr, ptr %13, align 8 - %call32 = tail call i32 @_PyST_GetScope(ptr noundef %14, ptr noundef %12) #12 + %call32 = tail call i32 @_PyST_GetScope(ptr noundef %14, ptr noundef %12) #11 %cmp33.not = icmp eq i32 %call32, 3 br i1 %cmp33.not, label %if.end35, label %return @@ -31420,7 +31419,7 @@ if.end35: ; preds = %cond.end26 %15 = load ptr, ptr %c_st, align 8 %st_top = getelementptr inbounds %struct.symtable, ptr %15, i64 0, i32 2 %16 = load ptr, ptr %st_top, align 8 - %call36 = tail call i32 @_PyST_GetScope(ptr noundef %16, ptr noundef %12) #12 + %call36 = tail call i32 @_PyST_GetScope(ptr noundef %16, ptr noundef %12) #11 %cmp37.not = icmp eq i32 %call36, 0 br i1 %cmp37.not, label %if.end39, label %return @@ -31473,7 +31472,7 @@ return: ; preds = %return.loopexit, %i } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @load_args_for_super(ptr noundef %c, ptr nocapture noundef readonly %e) unnamed_addr #1 { +define internal fastcc noundef i32 @load_args_for_super(ptr noundef %c, ptr nocapture noundef readonly %e) unnamed_addr #1 { entry: %i = alloca i64, align 8 %key = alloca ptr, align 8 @@ -31556,7 +31555,7 @@ if.end46: ; preds = %if.end42 %16 = load ptr, ptr %u, align 8 %u_varnames = getelementptr inbounds %struct.compiler_unit, ptr %16, i64 0, i32 7, i32 4 %17 = load ptr, ptr %u_varnames, align 8 - %call47 = call i32 @PyDict_Next(ptr noundef %17, ptr noundef nonnull %i, ptr noundef nonnull %key, ptr noundef nonnull %value) #12 + %call47 = call i32 @PyDict_Next(ptr noundef %17, ptr noundef nonnull %i, ptr noundef nonnull %key, ptr noundef nonnull %value) #11 %tobool.not = icmp eq i32 %call47, 0 br i1 %tobool.not, label %return, label %if.end49 @@ -31573,7 +31572,7 @@ return: ; preds = %if.end49, %if.end46 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_subdict(ptr noundef %c, ptr nocapture noundef readonly %e, i64 noundef %begin, i64 noundef %end) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_subdict(ptr noundef %c, ptr nocapture noundef readonly %e, i64 noundef %begin, i64 noundef %end) unnamed_addr #1 { entry: %sub = sub i64 %end, %begin %mul = shl i64 %sub, 1 @@ -31650,7 +31649,7 @@ for.body: ; preds = %for.body.lr.ph, %fo br i1 %cmp14, label %return, label %for.cond for.end: ; preds = %for.cond, %land.lhs.true7, %for.cond.preheader - %call17 = tail call ptr @PyTuple_New(i64 noundef %sub) #12 + %call17 = tail call ptr @PyTuple_New(i64 noundef %sub) #11 %cmp18 = icmp eq ptr %call17, null br i1 %cmp18, label %return, label %for.cond22.preheader @@ -31711,7 +31710,7 @@ if.end.i110: ; preds = %if.then43 br i1 %cmp.i112, label %if.then1.i113, label %return if.then1.i113: ; preds = %if.end.i110 - tail call void @_Py_Dealloc(ptr noundef nonnull %call17) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call17) #11 br label %return if.end44: ; preds = %if.end39 @@ -31724,7 +31723,7 @@ if.end.i: ; preds = %if.end44 br i1 %cmp.i, label %if.then1.i, label %Py_DECREF.exit if.then1.i: ; preds = %if.end.i - tail call void @_Py_Dealloc(ptr noundef nonnull %call17) #12 + tail call void @_Py_Dealloc(ptr noundef nonnull %call17) #11 br label %Py_DECREF.exit Py_DECREF.exit: ; preds = %if.end44, %if.then1.i, %if.end.i @@ -31948,11 +31947,11 @@ return: ; preds = %for.body, %for.body } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_comprehension(ptr noundef %c, ptr noundef %e, i32 noundef %type, ptr noundef %name, ptr noundef %generators, ptr noundef %elt, ptr noundef %val) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_comprehension(ptr noundef %c, ptr noundef %e, i32 noundef %type, ptr noundef %name, ptr noundef %generators, ptr noundef %elt, ptr noundef %val) unnamed_addr #1 { entry: - %k.i314 = alloca ptr, align 8 - %v.i315 = alloca ptr, align 8 - %pos.i316 = alloca i64, align 8 + %k.i330 = alloca ptr, align 8 + %v.i331 = alloca ptr, align 8 + %pos.i332 = alloca i64, align 8 %k.i = alloca ptr, align 8 %v.i = alloca ptr, align 8 %pos.i = alloca i64, align 8 @@ -31978,7 +31977,7 @@ land.end: ; preds = %land.rhs, %entry %5 = phi i1 [ false, %entry ], [ %cmp, %land.rhs ] %c_st = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 1 %6 = load ptr, ptr %c_st, align 8 - %call = tail call ptr @_PySymtable_Lookup(ptr noundef %6, ptr noundef %e) #12 + %call = tail call ptr @_PySymtable_Lookup(ptr noundef %6, ptr noundef %e) #11 %cmp3 = icmp eq ptr %call, null br i1 %cmp3, label %return, label %if.end @@ -32016,7 +32015,7 @@ if.then13: ; preds = %if.end %12 = load ptr, ptr %iter.i, align 8 %call.i = tail call fastcc i32 @compiler_visit_expr(ptr noundef nonnull %c, ptr noundef %12), !range !5 %cmp.i293 = icmp eq i32 %call.i, -1 - br i1 %cmp.i293, label %if.then.i358, label %if.end.i294 + br i1 %cmp.i293, label %if.then.i374, label %if.end.i294 if.end.i294: ; preds = %if.then13 %is_async.i = getelementptr inbounds %struct._comprehension, ptr %11, i64 0, i32 3 @@ -32024,59 +32023,59 @@ if.end.i294: ; preds = %if.then13 %tobool.not.i = icmp eq i32 %13, 0 %14 = load ptr, ptr %u, align 8 %u_instr_sequence7.i = getelementptr inbounds %struct.compiler_unit, ptr %14, i64 0, i32 3 - %s_used.i.i.i393 = getelementptr inbounds %struct.compiler_unit, ptr %14, i64 0, i32 3, i32 2 - %15 = load i32, ptr %s_used.i.i.i393, align 4 - %add.i.i.i394 = add i32 %15, 1 - %s_allocated.i.i.i395 = getelementptr inbounds %struct.compiler_unit, ptr %14, i64 0, i32 3, i32 1 - %call.i.i.i396 = tail call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i394, ptr noundef nonnull %u_instr_sequence7.i, ptr noundef nonnull %s_allocated.i.i.i395, i32 noundef 100, i64 noundef 44), !range !5 - %cmp.i.i.i397 = icmp eq i32 %call.i.i.i396, -1 + %s_used.i.i.i409 = getelementptr inbounds %struct.compiler_unit, ptr %14, i64 0, i32 3, i32 2 + %15 = load i32, ptr %s_used.i.i.i409, align 4 + %add.i.i.i410 = add i32 %15, 1 + %s_allocated.i.i.i411 = getelementptr inbounds %struct.compiler_unit, ptr %14, i64 0, i32 3, i32 1 + %call.i.i.i412 = tail call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i410, ptr noundef nonnull %u_instr_sequence7.i, ptr noundef nonnull %s_allocated.i.i.i411, i32 noundef 100, i64 noundef 44), !range !5 + %cmp.i.i.i413 = icmp eq i32 %call.i.i.i412, -1 br i1 %tobool.not.i, label %if.else.i, label %if.then1.i295 if.then1.i295: ; preds = %if.end.i294 - br i1 %cmp.i.i.i397, label %if.then.i358, label %instr_sequence_next_inst.exit.i.i413 + br i1 %cmp.i.i.i413, label %if.then.i374, label %instr_sequence_next_inst.exit.i.i429 -instr_sequence_next_inst.exit.i.i413: ; preds = %if.then1.i295 - %16 = load i32, ptr %s_used.i.i.i393, align 4 - %inc.i.i.i414 = add i32 %16, 1 - store i32 %inc.i.i.i414, ptr %s_used.i.i.i393, align 4 - %cmp.i.i415 = icmp eq i32 %16, -1 - br i1 %cmp.i.i415, label %if.then.i358, label %codegen_addop_noarg.exit423 +instr_sequence_next_inst.exit.i.i429: ; preds = %if.then1.i295 + %16 = load i32, ptr %s_used.i.i.i409, align 4 + %inc.i.i.i430 = add i32 %16, 1 + store i32 %inc.i.i.i430, ptr %s_used.i.i.i409, align 4 + %cmp.i.i431 = icmp eq i32 %16, -1 + br i1 %cmp.i.i431, label %if.then.i374, label %codegen_addop_noarg.exit439 -codegen_addop_noarg.exit423: ; preds = %instr_sequence_next_inst.exit.i.i413 +codegen_addop_noarg.exit439: ; preds = %instr_sequence_next_inst.exit.i.i429 %17 = load ptr, ptr %u_instr_sequence7.i, align 8 - %idxprom.i.i417 = sext i32 %16 to i64 - %arrayidx.i.i418 = getelementptr %struct._PyCompile_Instruction, ptr %17, i64 %idxprom.i.i417 - store i32 16, ptr %arrayidx.i.i418, align 4 - %i_oparg.i.i419 = getelementptr %struct._PyCompile_Instruction, ptr %17, i64 %idxprom.i.i417, i32 1 - store i32 0, ptr %i_oparg.i.i419, align 4 - %i_loc.i.i420 = getelementptr %struct._PyCompile_Instruction, ptr %17, i64 %idxprom.i.i417, i32 2 + %idxprom.i.i433 = sext i32 %16 to i64 + %arrayidx.i.i434 = getelementptr %struct._PyCompile_Instruction, ptr %17, i64 %idxprom.i.i433 + store i32 16, ptr %arrayidx.i.i434, align 4 + %i_oparg.i.i435 = getelementptr %struct._PyCompile_Instruction, ptr %17, i64 %idxprom.i.i433, i32 1 + store i32 0, ptr %i_oparg.i.i435, align 4 + %i_loc.i.i436 = getelementptr %struct._PyCompile_Instruction, ptr %17, i64 %idxprom.i.i433, i32 2 br label %if.end17 if.else.i: ; preds = %if.end.i294 - br i1 %cmp.i.i.i397, label %if.then.i358, label %instr_sequence_next_inst.exit.i.i398 + br i1 %cmp.i.i.i413, label %if.then.i374, label %instr_sequence_next_inst.exit.i.i414 -instr_sequence_next_inst.exit.i.i398: ; preds = %if.else.i - %18 = load i32, ptr %s_used.i.i.i393, align 4 - %inc.i.i.i399 = add i32 %18, 1 - store i32 %inc.i.i.i399, ptr %s_used.i.i.i393, align 4 - %cmp.i.i400 = icmp eq i32 %18, -1 - br i1 %cmp.i.i400, label %if.then.i358, label %codegen_addop_noarg.exit +instr_sequence_next_inst.exit.i.i414: ; preds = %if.else.i + %18 = load i32, ptr %s_used.i.i.i409, align 4 + %inc.i.i.i415 = add i32 %18, 1 + store i32 %inc.i.i.i415, ptr %s_used.i.i.i409, align 4 + %cmp.i.i416 = icmp eq i32 %18, -1 + br i1 %cmp.i.i416, label %if.then.i374, label %codegen_addop_noarg.exit -codegen_addop_noarg.exit: ; preds = %instr_sequence_next_inst.exit.i.i398 +codegen_addop_noarg.exit: ; preds = %instr_sequence_next_inst.exit.i.i414 %19 = load ptr, ptr %u_instr_sequence7.i, align 8 - %idxprom.i.i402 = sext i32 %18 to i64 - %arrayidx.i.i403 = getelementptr %struct._PyCompile_Instruction, ptr %19, i64 %idxprom.i.i402 - store i32 19, ptr %arrayidx.i.i403, align 4 - %i_oparg.i.i404 = getelementptr %struct._PyCompile_Instruction, ptr %19, i64 %idxprom.i.i402, i32 1 - store i32 0, ptr %i_oparg.i.i404, align 4 - %i_loc.i.i405 = getelementptr %struct._PyCompile_Instruction, ptr %19, i64 %idxprom.i.i402, i32 2 + %idxprom.i.i418 = sext i32 %18 to i64 + %arrayidx.i.i419 = getelementptr %struct._PyCompile_Instruction, ptr %19, i64 %idxprom.i.i418 + store i32 19, ptr %arrayidx.i.i419, align 4 + %i_oparg.i.i420 = getelementptr %struct._PyCompile_Instruction, ptr %19, i64 %idxprom.i.i418, i32 1 + store i32 0, ptr %i_oparg.i.i420, align 4 + %i_loc.i.i421 = getelementptr %struct._PyCompile_Instruction, ptr %19, i64 %idxprom.i.i418, i32 2 br label %if.end17 -if.end17: ; preds = %codegen_addop_noarg.exit, %codegen_addop_noarg.exit423 - %i_loc.i.i405.sink531 = phi ptr [ %i_loc.i.i405, %codegen_addop_noarg.exit ], [ %i_loc.i.i420, %codegen_addop_noarg.exit423 ] - store i64 %loc.sroa.0.0.insert.insert, ptr %i_loc.i.i405.sink531, align 4 - %loc.sroa.2.0.i_loc.sroa_idx.i.i406 = getelementptr inbounds i8, ptr %i_loc.i.i405.sink531, i64 8 - store i64 %loc.sroa.17.8.insert.insert, ptr %loc.sroa.2.0.i_loc.sroa_idx.i.i406, align 4 +if.end17: ; preds = %codegen_addop_noarg.exit, %codegen_addop_noarg.exit439 + %i_loc.i.i421.sink549 = phi ptr [ %i_loc.i.i421, %codegen_addop_noarg.exit ], [ %i_loc.i.i436, %codegen_addop_noarg.exit439 ] + store i64 %loc.sroa.0.0.insert.insert, ptr %i_loc.i.i421.sink549, align 4 + %loc.sroa.2.0.i_loc.sroa_idx.i.i422 = getelementptr inbounds i8, ptr %i_loc.i.i421.sink549, i64 8 + store i64 %loc.sroa.17.8.insert.insert, ptr %loc.sroa.2.0.i_loc.sroa_idx.i.i422, align 4 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %k.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %v.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %pos.i) @@ -32095,7 +32094,7 @@ if.end17: ; preds = %codegen_addop_noarg store i64 0, ptr %pos.i, align 8 %ste_symbols.i = getelementptr inbounds %struct._symtable_entry, ptr %call, i64 0, i32 2 %25 = load ptr, ptr %ste_symbols.i, align 8 - %call90.i = call i32 @PyDict_Next(ptr noundef %25, ptr noundef nonnull %pos.i, ptr noundef nonnull %k.i, ptr noundef nonnull %v.i) #12 + %call90.i = call i32 @PyDict_Next(ptr noundef %25, ptr noundef nonnull %pos.i, ptr noundef nonnull %k.i, ptr noundef nonnull %v.i) #11 %tobool5.not91.i = icmp eq i32 %call90.i, 0 br i1 %tobool5.not91.i, label %push_inlined_comprehension_state.exit, label %while.body.i @@ -32104,7 +32103,7 @@ while.body.i: ; preds = %if.end17, %if.end14 %inline_state.sroa.7.0 = phi ptr [ %inline_state.sroa.7.3, %if.end147.i ], [ null, %if.end17 ] %inline_state.sroa.11.0 = phi ptr [ %inline_state.sroa.11.3, %if.end147.i ], [ null, %if.end17 ] %26 = load ptr, ptr %v.i, align 8 - %call6.i = call i64 @PyLong_AsLong(ptr noundef %26) #12 + %call6.i = call i64 @PyLong_AsLong(ptr noundef %26) #11 %and.i = and i64 %call6.i, 2 %tobool7.not.i = icmp eq i64 %and.i, 0 br i1 %tobool7.not.i, label %lor.lhs.false.i, label %land.lhs.true.i @@ -32121,7 +32120,7 @@ lor.lhs.false.i: ; preds = %while.body.i if.then.i: ; preds = %lor.lhs.false.i, %land.lhs.true.i %27 = load ptr, ptr %u, align 8 %28 = load ptr, ptr %27, align 8 - %call13.i = call i32 @_PyST_IsFunctionLike(ptr noundef %28) #12 + %call13.i = call i32 @_PyST_IsFunctionLike(ptr noundef %28) #11 %tobool14.not.i = icmp eq i32 %call13.i, 0 br i1 %tobool14.not.i, label %if.then15.i, label %if.end49.i @@ -32130,7 +32129,7 @@ if.then15.i: ; preds = %if.then.i %u_fasthidden.i = getelementptr inbounds %struct.compiler_unit, ptr %29, i64 0, i32 7, i32 7 %30 = load ptr, ptr %u_fasthidden.i, align 8 %31 = load ptr, ptr %k.i, align 8 - %call17.i = call i32 @PyDict_GetItemRef(ptr noundef %30, ptr noundef %31, ptr noundef nonnull %orig.i) #12 + %call17.i = call i32 @PyDict_GetItemRef(ptr noundef %30, ptr noundef %31, ptr noundef nonnull %orig.i) #11 %cmp18.i = icmp slt i32 %call17.i, 0 br i1 %cmp18.i, label %push_inlined_comprehension_state.exit.thread, label %if.end.i303 @@ -32153,7 +32152,7 @@ if.end.i.i.i: ; preds = %if.then.i.i br i1 %cmp.i.i.i, label %if.then1.i.i.i, label %Py_XDECREF.exit.i if.then1.i.i.i: ; preds = %if.end.i.i.i - call void @_Py_Dealloc(ptr noundef nonnull %32) #12 + call void @_Py_Dealloc(ptr noundef nonnull %32) #11 br label %Py_XDECREF.exit.i Py_XDECREF.exit.i: ; preds = %if.then1.i.i.i, %if.end.i.i.i, %if.then.i.i @@ -32164,7 +32163,7 @@ if.then22.i: ; preds = %Py_XDECREF.exit.i, %u_fasthidden25.i = getelementptr inbounds %struct.compiler_unit, ptr %35, i64 0, i32 7, i32 7 %36 = load ptr, ptr %u_fasthidden25.i, align 8 %37 = load ptr, ptr %k.i, align 8 - %call26.i = call i32 @PyDict_SetItem(ptr noundef %36, ptr noundef %37, ptr noundef nonnull @_Py_TrueStruct) #12 + %call26.i = call i32 @PyDict_SetItem(ptr noundef %36, ptr noundef %37, ptr noundef nonnull @_Py_TrueStruct) #11 %cmp27.i = icmp slt i32 %call26.i, 0 br i1 %cmp27.i, label %push_inlined_comprehension_state.exit.thread, label %if.end30.i @@ -32173,14 +32172,14 @@ if.end30.i: ; preds = %if.then22.i br i1 %cmp31.i, label %if.then33.i, label %if.end41.i if.then33.i: ; preds = %if.end30.i - %call34.i = call ptr @PySet_New(ptr noundef null) #12 + %call34.i = call ptr @PySet_New(ptr noundef null) #11 %cmp37.i = icmp eq ptr %call34.i, null br i1 %cmp37.i, label %push_inlined_comprehension_state.exit.thread, label %if.end41.i if.end41.i: ; preds = %if.then33.i, %if.end30.i %inline_state.sroa.11.1 = phi ptr [ %call34.i, %if.then33.i ], [ %inline_state.sroa.11.0, %if.end30.i ] %38 = load ptr, ptr %k.i, align 8 - %call43.i = call i32 @PySet_Add(ptr noundef nonnull %inline_state.sroa.11.1, ptr noundef %38) #12 + %call43.i = call i32 @PySet_Add(ptr noundef nonnull %inline_state.sroa.11.1, ptr noundef %38) #11 %cmp44.i = icmp slt i32 %call43.i, 0 br i1 %cmp44.i, label %push_inlined_comprehension_state.exit.thread, label %if.end49.i @@ -32193,10 +32192,10 @@ if.end49.i: ; preds = %if.end41.i, %Py_XDE %ste_symbols53.i = getelementptr inbounds %struct._symtable_entry, ptr %40, i64 0, i32 2 %41 = load ptr, ptr %ste_symbols53.i, align 8 %42 = load ptr, ptr %k.i, align 8 - %call54.i = call ptr @PyDict_GetItemWithError(ptr noundef %41, ptr noundef %42) #12 + %call54.i = call ptr @PyDict_GetItemWithError(ptr noundef %41, ptr noundef %42) #11 %cmp55.i = icmp eq ptr %call54.i, null %spec.select.i = select i1 %cmp55.i, ptr getelementptr inbounds (%struct.pyruntimestate, ptr @_PyRuntime, i64 0, i32 37, i32 0, i32 0, i64 5), ptr %call54.i - %call60.i = call i64 @PyLong_AsLong(ptr noundef nonnull %spec.select.i) #12 + %call60.i = call i64 @PyLong_AsLong(ptr noundef nonnull %spec.select.i) #11 %shr61.i = lshr i64 %call60.i, 12 %and62.i = and i64 %shr61.i, 15 %cmp63.not.i = icmp eq i64 %and50.i, %and62.i @@ -32213,7 +32212,7 @@ if.then71.i: ; preds = %land.lhs.true65.i br i1 %cmp72.i, label %if.then74.i, label %if.end82.i if.then74.i: ; preds = %if.then71.i - %call75.i = call ptr @PyDict_New() #12 + %call75.i = call ptr @PyDict_New() #11 %cmp78.i = icmp eq ptr %call75.i, null br i1 %cmp78.i, label %push_inlined_comprehension_state.exit.thread, label %if.end82.i @@ -32235,7 +32234,7 @@ Py_INCREF.exit.i: ; preds = %if.end.i216.i, %if. %46 = load ptr, ptr %ste_symbols85.i, align 8 %47 = load ptr, ptr %k.i, align 8 %48 = load ptr, ptr %v.i, align 8 - %call86.i = call i32 @PyDict_SetItem(ptr noundef %46, ptr noundef %47, ptr noundef %48) #12 + %call86.i = call i32 @PyDict_SetItem(ptr noundef %46, ptr noundef %47, ptr noundef %48) #11 %cmp87.i = icmp slt i32 %call86.i, 0 br i1 %cmp87.i, label %if.then89.i, label %if.end90.i @@ -32253,7 +32252,7 @@ if.end.i198.i: ; preds = %if.then89.i if.end90.i: ; preds = %Py_INCREF.exit.i %51 = load ptr, ptr %k.i, align 8 - %call92.i = call i32 @PyDict_SetItem(ptr noundef nonnull %inline_state.sroa.7.1, ptr noundef %51, ptr noundef nonnull %spec.select.i) #12 + %call92.i = call i32 @PyDict_SetItem(ptr noundef nonnull %inline_state.sroa.7.1, ptr noundef %51, ptr noundef nonnull %spec.select.i) #11 %cmp93.i = icmp slt i32 %call92.i, 0 %52 = load i64, ptr %spec.select.i, align 8 %53 = and i64 %52, 2147483648 @@ -32279,7 +32278,7 @@ if.end.i.i: ; preds = %if.end96.i br i1 %cmp.i.i, label %if.then1.i.i, label %if.end97.i if.then1.i.i: ; preds = %if.end.i.i - call void @_Py_Dealloc(ptr noundef nonnull %spec.select.i) #12 + call void @_Py_Dealloc(ptr noundef nonnull %spec.select.i) #11 br label %if.end97.i if.end97.i: ; preds = %if.then1.i.i, %if.end.i.i, %if.end96.i, %land.lhs.true65.i, %if.end49.i @@ -32288,7 +32287,7 @@ if.end97.i: ; preds = %if.then1.i.i, %if.e br i1 %cmp98.i, label %if.then100.i, label %if.end108.i if.then100.i: ; preds = %if.end97.i - %call101.i = call ptr @PyList_New(i64 noundef 0) #12 + %call101.i = call ptr @PyList_New(i64 noundef 0) #11 %cmp104.i = icmp eq ptr %call101.i, null br i1 %cmp104.i, label %push_inlined_comprehension_state.exit.thread, label %if.end108.i @@ -32328,7 +32327,7 @@ if.else.i302: ; preds = %if.then119.i if.end140.i: ; preds = %if.else.i302, %if.then122.i, %if.end116.i %61 = load ptr, ptr %k.i, align 8 - %call142.i = call i32 @PyList_Append(ptr noundef nonnull %inline_state.sroa.0.1, ptr noundef %61) #12 + %call142.i = call i32 @PyList_Append(ptr noundef nonnull %inline_state.sroa.0.1, ptr noundef %61) #11 %cmp143.i = icmp slt i32 %call142.i, 0 br i1 %cmp143.i, label %push_inlined_comprehension_state.exit.thread, label %if.end147.i @@ -32337,7 +32336,7 @@ if.end147.i: ; preds = %if.end140.i, %lor.l %inline_state.sroa.7.3 = phi ptr [ %inline_state.sroa.7.2, %if.end140.i ], [ %inline_state.sroa.7.0, %lor.lhs.false.i ], [ %inline_state.sroa.7.0, %land.lhs.true.i ] %inline_state.sroa.11.3 = phi ptr [ %inline_state.sroa.11.2, %if.end140.i ], [ %inline_state.sroa.11.0, %lor.lhs.false.i ], [ %inline_state.sroa.11.0, %land.lhs.true.i ] %62 = load ptr, ptr %ste_symbols.i, align 8 - %call.i299 = call i32 @PyDict_Next(ptr noundef %62, ptr noundef nonnull %pos.i, ptr noundef nonnull %k.i, ptr noundef nonnull %v.i) #12 + %call.i299 = call i32 @PyDict_Next(ptr noundef %62, ptr noundef nonnull %pos.i, ptr noundef nonnull %k.i, ptr noundef nonnull %v.i) #11 %tobool5.not.i = icmp eq i32 %call.i299, 0 br i1 %tobool5.not.i, label %while.end.i, label %while.body.i, !llvm.loop !140 @@ -32427,7 +32426,7 @@ codegen_addop_j.exit.i: ; preds = %instr_sequence_next br label %push_inlined_comprehension_state.exit push_inlined_comprehension_state.exit.thread.sink.split: ; preds = %if.end.i189.i, %if.end.i198.i - call void @_Py_Dealloc(ptr noundef nonnull %spec.select.i) #12 + call void @_Py_Dealloc(ptr noundef nonnull %spec.select.i) #11 br label %push_inlined_comprehension_state.exit.thread push_inlined_comprehension_state.exit.thread: ; preds = %if.then15.i, %if.then22.i, %if.then33.i, %if.end41.i, %if.then74.i, %if.then100.i, %if.end108.i, %if.then122.i, %if.else.i302, %if.end140.i, %push_inlined_comprehension_state.exit.thread.sink.split, %if.then89.i, %if.end.i198.i, %if.then95.i, %if.end.i189.i, %if.end158.i, %if.end165.i, %instr_sequence_next_inst.exit.i.i.i, %if.then150.i, %instr_sequence_next_inst.exit.i.i75.i, %if.end175.i @@ -32438,7 +32437,7 @@ push_inlined_comprehension_state.exit.thread: ; preds = %if.then15.i, %if.th call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %orig.i) - br label %if.then.i358 + br label %if.then.i374 push_inlined_comprehension_state.exit: ; preds = %if.end17, %while.end.i, %codegen_addop_j.exit.i %inline_state.sroa.0.4 = phi ptr [ null, %while.end.i ], [ %inline_state.sroa.0.2, %codegen_addop_j.exit.i ], [ null, %if.end17 ] @@ -32455,7 +32454,7 @@ push_inlined_comprehension_state.exit: ; preds = %if.end17, %while.en if.else: ; preds = %if.end %call23 = tail call fastcc i32 @compiler_enter_scope(ptr noundef nonnull %c, ptr noundef %name, i32 noundef 5, ptr noundef nonnull %e, i32 noundef %7), !range !5 %cmp24 = icmp slt i32 %call23, 0 - br i1 %cmp24, label %if.then.i358, label %if.then29 + br i1 %cmp24, label %if.then.i374, label %if.then29 if.then29: ; preds = %push_inlined_comprehension_state.exit, %if.else %inline_state.sroa.0.5 = phi ptr [ null, %if.else ], [ %inline_state.sroa.0.4, %push_inlined_comprehension_state.exit ] @@ -32475,7 +32474,7 @@ if.end.i167: ; preds = %if.then29 br i1 %cmp.i169, label %if.then1.i170, label %do.end if.then1.i170: ; preds = %if.end.i167 - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 br label %do.end do.end: ; preds = %if.then29, %if.then1.i170, %if.end.i167 @@ -32508,31 +32507,22 @@ if.end41: ; preds = %do.end if.end41.if.end61_crit_edge: ; preds = %if.end41 %.pre = zext i32 %8 to i64 - %.pre515 = shl nuw i64 %.pre, 32 - %.pre516 = zext i32 %7 to i64 - %.pre517 = or disjoint i64 %.pre515, %.pre516 - %.pre518 = zext i32 %10 to i64 - %.pre519 = shl nuw i64 %.pre518, 32 - %.pre520 = zext i32 %9 to i64 - %.pre521 = or disjoint i64 %.pre519, %.pre520 + %.pre533 = shl nuw i64 %.pre, 32 + %.pre534 = zext i32 %7 to i64 + %.pre535 = or disjoint i64 %.pre533, %.pre534 + %.pre536 = zext i32 %10 to i64 + %.pre537 = shl nuw i64 %.pre536, 32 + %.pre538 = zext i32 %9 to i64 + %.pre539 = or disjoint i64 %.pre537, %.pre538 br label %if.end61 if.then43: ; preds = %if.end41 - %80 = icmp ult i32 %type, 4 - br i1 %80, label %switch.lookup, label %sw.default - -sw.default: ; preds = %if.then43 - %81 = load ptr, ptr @PyExc_SystemError, align 8 - %call46 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %81, ptr noundef nonnull @.str.386, i32 noundef %type) #12 - br label %error_in_scope - -switch.lookup: ; preds = %if.then43 %switch.tableidx = add nsw i32 %type, -1 - %82 = sext i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table.compiler_comprehension, i64 0, i64 %82 + %80 = sext i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table.compiler_comprehension, i64 0, i64 %80 %switch.load = load i32, ptr %switch.gep, align 4 - %83 = load ptr, ptr %u, align 8 - %u_instr_sequence = getelementptr inbounds %struct.compiler_unit, ptr %83, i64 0, i32 3 + %81 = load ptr, ptr %u, align 8 + %u_instr_sequence = getelementptr inbounds %struct.compiler_unit, ptr %81, i64 0, i32 3 %loc.sroa.15.0.insert.ext69 = zext i32 %8 to i64 %loc.sroa.15.0.insert.shift70 = shl nuw i64 %loc.sroa.15.0.insert.ext69, 32 %loc.sroa.0.0.insert.ext19 = zext i32 %7 to i64 @@ -32541,109 +32531,133 @@ switch.lookup: ; preds = %if.then43 %loc.sroa.32.8.insert.shift178 = shl nuw i64 %loc.sroa.32.8.insert.ext177, 32 %loc.sroa.17.8.insert.ext127 = zext i32 %9 to i64 %loc.sroa.17.8.insert.insert129 = or disjoint i64 %loc.sroa.32.8.insert.shift178, %loc.sroa.17.8.insert.ext127 - %s_used.i.i.i = getelementptr inbounds %struct.compiler_unit, ptr %83, i64 0, i32 3, i32 2 - %84 = load i32, ptr %s_used.i.i.i, align 4 - %add.i.i.i = add i32 %84, 1 - %s_allocated.i.i.i = getelementptr inbounds %struct.compiler_unit, ptr %83, i64 0, i32 3, i32 1 + %s_used.i.i.i = getelementptr inbounds %struct.compiler_unit, ptr %81, i64 0, i32 3, i32 2 + %82 = load i32, ptr %s_used.i.i.i, align 4 + %add.i.i.i = add i32 %82, 1 + %s_allocated.i.i.i = getelementptr inbounds %struct.compiler_unit, ptr %81, i64 0, i32 3, i32 1 %call.i.i.i = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i, ptr noundef nonnull %u_instr_sequence, ptr noundef nonnull %s_allocated.i.i.i, i32 noundef 100, i64 noundef 44), !range !5 %cmp.i.i.i304 = icmp eq i32 %call.i.i.i, -1 br i1 %cmp.i.i.i304, label %return, label %instr_sequence_next_inst.exit.i.i -instr_sequence_next_inst.exit.i.i: ; preds = %switch.lookup - %85 = load i32, ptr %s_used.i.i.i, align 4 - %inc.i.i.i = add i32 %85, 1 +instr_sequence_next_inst.exit.i.i: ; preds = %if.then43 + %83 = load i32, ptr %s_used.i.i.i, align 4 + %inc.i.i.i = add i32 %83, 1 store i32 %inc.i.i.i, ptr %s_used.i.i.i, align 4 - %cmp.i.i305 = icmp eq i32 %85, -1 + %cmp.i.i305 = icmp eq i32 %83, -1 br i1 %cmp.i.i305, label %return, label %if.end51 if.end51: ; preds = %instr_sequence_next_inst.exit.i.i - %86 = load ptr, ptr %u_instr_sequence, align 8 - %idxprom.i.i = sext i32 %85 to i64 - %arrayidx.i.i = getelementptr %struct._PyCompile_Instruction, ptr %86, i64 %idxprom.i.i + %84 = load ptr, ptr %u_instr_sequence, align 8 + %idxprom.i.i = sext i32 %83 to i64 + %arrayidx.i.i = getelementptr %struct._PyCompile_Instruction, ptr %84, i64 %idxprom.i.i store i32 %switch.load, ptr %arrayidx.i.i, align 4 - %i_oparg.i.i = getelementptr %struct._PyCompile_Instruction, ptr %86, i64 %idxprom.i.i, i32 1 + %i_oparg.i.i = getelementptr %struct._PyCompile_Instruction, ptr %84, i64 %idxprom.i.i, i32 1 store i32 0, ptr %i_oparg.i.i, align 4 - %i_loc.i.i = getelementptr %struct._PyCompile_Instruction, ptr %86, i64 %idxprom.i.i, i32 2 + %i_loc.i.i = getelementptr %struct._PyCompile_Instruction, ptr %84, i64 %idxprom.i.i, i32 2 store i64 %loc.sroa.0.0.insert.insert21, ptr %i_loc.i.i, align 4 %loc.sroa.2.0.i_loc.sroa_idx.i.i = getelementptr inbounds i8, ptr %i_loc.i.i, i64 8 store i64 %loc.sroa.17.8.insert.insert129, ptr %loc.sroa.2.0.i_loc.sroa_idx.i.i, align 4 br i1 %tobool12.not, label %if.end61, label %if.then53 if.then53: ; preds = %if.end51 - %87 = load ptr, ptr %u, align 8 - %u_instr_sequence55 = getelementptr inbounds %struct.compiler_unit, ptr %87, i64 0, i32 3 - %call56 = call fastcc i32 @codegen_addop_i(ptr noundef nonnull %u_instr_sequence55, i32 noundef 115, i64 noundef 2, i64 %loc.sroa.0.0.insert.insert21, i64 %loc.sroa.17.8.insert.insert129), !range !5 - %cmp57 = icmp eq i32 %call56, -1 - br i1 %cmp57, label %return, label %if.end61 - -if.end61: ; preds = %if.end41.if.end61_crit_edge, %if.end51, %if.then53 - %loc.sroa.17.8.insert.insert137.pre-phi = phi i64 [ %.pre521, %if.end41.if.end61_crit_edge ], [ %loc.sroa.17.8.insert.insert129, %if.end51 ], [ %loc.sroa.17.8.insert.insert129, %if.then53 ] - %loc.sroa.0.0.insert.insert29.pre-phi = phi i64 [ %.pre517, %if.end41.if.end61_crit_edge ], [ %loc.sroa.0.0.insert.insert21, %if.end51 ], [ %loc.sroa.0.0.insert.insert21, %if.then53 ] - %88 = load ptr, ptr %typed_elements, align 8 - %is_async.i307 = getelementptr inbounds %struct._comprehension, ptr %88, i64 0, i32 3 - %89 = load i32, ptr %is_async.i307, align 8 - %tobool.not.i308 = icmp eq i32 %89, 0 - br i1 %tobool.not.i308, label %if.else.i312, label %if.then.i309 - -if.then.i309: ; preds = %if.end61 - %call.i310 = call fastcc i32 @compiler_async_comprehension_generator(ptr noundef %c, i64 %loc.sroa.0.0.insert.insert29.pre-phi, i64 %loc.sroa.17.8.insert.insert137.pre-phi, ptr noundef nonnull %generators, i32 noundef 0, i32 noundef 0, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %bf.cast), !range !5 + %85 = load ptr, ptr %u, align 8 + %u_instr_sequence55 = getelementptr inbounds %struct.compiler_unit, ptr %85, i64 0, i32 3 + %s_used.i.i.i307 = getelementptr inbounds %struct.compiler_unit, ptr %85, i64 0, i32 3, i32 2 + %86 = load i32, ptr %s_used.i.i.i307, align 4 + %add.i.i.i308 = add i32 %86, 1 + %s_allocated.i.i.i309 = getelementptr inbounds %struct.compiler_unit, ptr %85, i64 0, i32 3, i32 1 + %call.i.i.i310 = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i308, ptr noundef nonnull %u_instr_sequence55, ptr noundef nonnull %s_allocated.i.i.i309, i32 noundef 100, i64 noundef 44), !range !5 + %cmp.i.i.i311 = icmp eq i32 %call.i.i.i310, -1 + br i1 %cmp.i.i.i311, label %return, label %instr_sequence_next_inst.exit.i.i312 + +instr_sequence_next_inst.exit.i.i312: ; preds = %if.then53 + %87 = load i32, ptr %s_used.i.i.i307, align 4 + %inc.i.i.i313 = add i32 %87, 1 + store i32 %inc.i.i.i313, ptr %s_used.i.i.i307, align 4 + %cmp.i.i314 = icmp eq i32 %87, -1 + br i1 %cmp.i.i314, label %return, label %codegen_addop_i.exit322 + +codegen_addop_i.exit322: ; preds = %instr_sequence_next_inst.exit.i.i312 + %88 = load ptr, ptr %u_instr_sequence55, align 8 + %idxprom.i.i316 = sext i32 %87 to i64 + %arrayidx.i.i317 = getelementptr %struct._PyCompile_Instruction, ptr %88, i64 %idxprom.i.i316 + store i32 115, ptr %arrayidx.i.i317, align 4 + %i_oparg.i.i318 = getelementptr %struct._PyCompile_Instruction, ptr %88, i64 %idxprom.i.i316, i32 1 + store i32 2, ptr %i_oparg.i.i318, align 4 + %i_loc.i.i319 = getelementptr %struct._PyCompile_Instruction, ptr %88, i64 %idxprom.i.i316, i32 2 + store i64 %loc.sroa.0.0.insert.insert21, ptr %i_loc.i.i319, align 4 + %loc.sroa.2.0.i_loc.sroa_idx.i.i320 = getelementptr inbounds i8, ptr %i_loc.i.i319, i64 8 + store i64 %loc.sroa.17.8.insert.insert129, ptr %loc.sroa.2.0.i_loc.sroa_idx.i.i320, align 4 + br label %if.end61 + +if.end61: ; preds = %if.end41.if.end61_crit_edge, %codegen_addop_i.exit322, %if.end51 + %loc.sroa.17.8.insert.insert137.pre-phi = phi i64 [ %.pre539, %if.end41.if.end61_crit_edge ], [ %loc.sroa.17.8.insert.insert129, %codegen_addop_i.exit322 ], [ %loc.sroa.17.8.insert.insert129, %if.end51 ] + %loc.sroa.0.0.insert.insert29.pre-phi = phi i64 [ %.pre535, %if.end41.if.end61_crit_edge ], [ %loc.sroa.0.0.insert.insert21, %codegen_addop_i.exit322 ], [ %loc.sroa.0.0.insert.insert21, %if.end51 ] + %89 = load ptr, ptr %typed_elements, align 8 + %is_async.i323 = getelementptr inbounds %struct._comprehension, ptr %89, i64 0, i32 3 + %90 = load i32, ptr %is_async.i323, align 8 + %tobool.not.i324 = icmp eq i32 %90, 0 + br i1 %tobool.not.i324, label %if.else.i328, label %if.then.i325 + +if.then.i325: ; preds = %if.end61 + %call.i326 = call fastcc i32 @compiler_async_comprehension_generator(ptr noundef %c, i64 %loc.sroa.0.0.insert.insert29.pre-phi, i64 %loc.sroa.17.8.insert.insert137.pre-phi, ptr noundef nonnull %generators, i32 noundef 0, i32 noundef 0, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %bf.cast), !range !5 br label %compiler_comprehension_generator.exit -if.else.i312: ; preds = %if.end61 +if.else.i328: ; preds = %if.end61 %call1.i = call fastcc i32 @compiler_sync_comprehension_generator(ptr noundef %c, i64 %loc.sroa.0.0.insert.insert29.pre-phi, i64 %loc.sroa.17.8.insert.insert137.pre-phi, ptr noundef nonnull %generators, i32 noundef 0, i32 noundef 0, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %bf.cast), !range !5 br label %compiler_comprehension_generator.exit -compiler_comprehension_generator.exit: ; preds = %if.then.i309, %if.else.i312 - %retval.0.i311 = phi i32 [ %call.i310, %if.then.i309 ], [ %call1.i, %if.else.i312 ] - %cmp63 = icmp slt i32 %retval.0.i311, 0 +compiler_comprehension_generator.exit: ; preds = %if.then.i325, %if.else.i328 + %retval.0.i327 = phi i32 [ %call.i326, %if.then.i325 ], [ %call1.i, %if.else.i328 ] + %cmp63 = icmp slt i32 %retval.0.i327, 0 br i1 %cmp63, label %error_in_scope, label %if.end65 if.end65: ; preds = %compiler_comprehension_generator.exit br i1 %tobool12.not, label %if.end72, label %if.then67 if.then67: ; preds = %if.end65 - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %k.i314) - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %v.i315) - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %pos.i316) - %90 = load ptr, ptr %u, align 8 - %u_in_inlined_comp.i318 = getelementptr inbounds %struct.compiler_unit, ptr %90, i64 0, i32 5 - %91 = load i32, ptr %u_in_inlined_comp.i318, align 4 - %dec.i319 = add i32 %91, -1 - store i32 %dec.i319, ptr %u_in_inlined_comp.i318, align 4 - store i64 0, ptr %pos.i316, align 8 - %tobool.not.i321 = icmp eq ptr %inline_state.sroa.7.6, null - br i1 %tobool.not.i321, label %if.end10.i, label %while.cond.i - -while.cond.i: ; preds = %if.then67, %while.body.i323 - %call.i322 = call i32 @PyDict_Next(ptr noundef nonnull %inline_state.sroa.7.6, ptr noundef nonnull %pos.i316, ptr noundef nonnull %k.i314, ptr noundef nonnull %v.i315) #12 - %tobool2.not.i = icmp eq i32 %call.i322, 0 - br i1 %tobool2.not.i, label %if.then8.i, label %while.body.i323 - -while.body.i323: ; preds = %while.cond.i - %92 = load ptr, ptr %u, align 8 - %93 = load ptr, ptr %92, align 8 - %ste_symbols.i324 = getelementptr inbounds %struct._symtable_entry, ptr %93, i64 0, i32 2 - %94 = load ptr, ptr %ste_symbols.i324, align 8 - %95 = load ptr, ptr %k.i314, align 8 - %96 = load ptr, ptr %v.i315, align 8 - %call4.i = call i32 @PyDict_SetItem(ptr noundef %94, ptr noundef %95, ptr noundef %96) #12 - %tobool5.not.i325 = icmp eq i32 %call4.i, 0 - br i1 %tobool5.not.i325, label %while.cond.i, label %pop_inlined_comprehension_state.exit.thread, !llvm.loop !141 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %k.i330) + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %v.i331) + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %pos.i332) + %91 = load ptr, ptr %u, align 8 + %u_in_inlined_comp.i334 = getelementptr inbounds %struct.compiler_unit, ptr %91, i64 0, i32 5 + %92 = load i32, ptr %u_in_inlined_comp.i334, align 4 + %dec.i335 = add i32 %92, -1 + store i32 %dec.i335, ptr %u_in_inlined_comp.i334, align 4 + store i64 0, ptr %pos.i332, align 8 + %tobool.not.i337 = icmp eq ptr %inline_state.sroa.7.6, null + br i1 %tobool.not.i337, label %if.end10.i, label %while.cond.i + +while.cond.i: ; preds = %if.then67, %while.body.i339 + %call.i338 = call i32 @PyDict_Next(ptr noundef nonnull %inline_state.sroa.7.6, ptr noundef nonnull %pos.i332, ptr noundef nonnull %k.i330, ptr noundef nonnull %v.i331) #11 + %tobool2.not.i = icmp eq i32 %call.i338, 0 + br i1 %tobool2.not.i, label %if.then8.i, label %while.body.i339 + +while.body.i339: ; preds = %while.cond.i + %93 = load ptr, ptr %u, align 8 + %94 = load ptr, ptr %93, align 8 + %ste_symbols.i340 = getelementptr inbounds %struct._symtable_entry, ptr %94, i64 0, i32 2 + %95 = load ptr, ptr %ste_symbols.i340, align 8 + %96 = load ptr, ptr %k.i330, align 8 + %97 = load ptr, ptr %v.i331, align 8 + %call4.i = call i32 @PyDict_SetItem(ptr noundef %95, ptr noundef %96, ptr noundef %97) #11 + %tobool5.not.i341 = icmp eq i32 %call4.i, 0 + br i1 %tobool5.not.i341, label %while.cond.i, label %pop_inlined_comprehension_state.exit.thread, !llvm.loop !141 if.then8.i: ; preds = %while.cond.i - %97 = load i64, ptr %inline_state.sroa.7.6, align 8 - %98 = and i64 %97, 2147483648 - %cmp.i138.not.i = icmp eq i64 %98, 0 + %98 = load i64, ptr %inline_state.sroa.7.6, align 8 + %99 = and i64 %98, 2147483648 + %cmp.i138.not.i = icmp eq i64 %99, 0 br i1 %cmp.i138.not.i, label %if.end.i131.i, label %if.end10.i if.end.i131.i: ; preds = %if.then8.i - %dec.i132.i = add i64 %97, -1 + %dec.i132.i = add i64 %98, -1 store i64 %dec.i132.i, ptr %inline_state.sroa.7.6, align 8 %cmp.i133.i = icmp eq i64 %dec.i132.i, 0 br i1 %cmp.i133.i, label %if.then1.i134.i, label %if.end10.i if.then1.i134.i: ; preds = %if.end.i131.i - call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.7.6) #12 + call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.7.6) #11 br label %if.end10.i if.end10.i: ; preds = %if.then1.i134.i, %if.end.i131.i, %if.then8.i, %if.then67 @@ -32651,310 +32665,310 @@ if.end10.i: ; preds = %if.then1.i134.i, %i br i1 %tobool11.not.i, label %if.end72.i, label %if.then12.i if.then12.i: ; preds = %if.end10.i - %99 = load ptr, ptr %u, align 8 - %u_instr_sequence.i327 = getelementptr inbounds %struct.compiler_unit, ptr %99, i64 0, i32 3 - %s_used.i.i.i.i328 = getelementptr inbounds %struct.compiler_unit, ptr %99, i64 0, i32 3, i32 2 - %100 = load i32, ptr %s_used.i.i.i.i328, align 4 - %add.i.i.i.i329 = add i32 %100, 1 - %s_allocated.i.i.i.i330 = getelementptr inbounds %struct.compiler_unit, ptr %99, i64 0, i32 3, i32 1 - %call.i.i.i.i331 = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i.i329, ptr noundef nonnull %u_instr_sequence.i327, ptr noundef nonnull %s_allocated.i.i.i.i330, i32 noundef 100, i64 noundef 44), !range !5 - %cmp.i.i.i.i332 = icmp eq i32 %call.i.i.i.i331, -1 - br i1 %cmp.i.i.i.i332, label %pop_inlined_comprehension_state.exit.thread, label %instr_sequence_next_inst.exit.i.i.i333 - -instr_sequence_next_inst.exit.i.i.i333: ; preds = %if.then12.i - %101 = load i32, ptr %s_used.i.i.i.i328, align 4 - %inc.i.i.i.i334 = add i32 %101, 1 - store i32 %inc.i.i.i.i334, ptr %s_used.i.i.i.i328, align 4 - %cmp.i.i.i335 = icmp eq i32 %101, -1 - br i1 %cmp.i.i.i335, label %pop_inlined_comprehension_state.exit.thread, label %if.end17.i - -if.end17.i: ; preds = %instr_sequence_next_inst.exit.i.i.i333 - %102 = load ptr, ptr %u_instr_sequence.i327, align 8 - %idxprom.i.i.i336 = sext i32 %101 to i64 - %arrayidx.i.i.i337 = getelementptr %struct._PyCompile_Instruction, ptr %102, i64 %idxprom.i.i.i336 - store i32 263, ptr %arrayidx.i.i.i337, align 4 - %i_oparg.i.i.i338 = getelementptr %struct._PyCompile_Instruction, ptr %102, i64 %idxprom.i.i.i336, i32 1 - store i32 0, ptr %i_oparg.i.i.i338, align 4 - %i_loc.i.i.i339 = getelementptr %struct._PyCompile_Instruction, ptr %102, i64 %idxprom.i.i.i336, i32 2 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %i_loc.i.i.i339, i8 -1, i64 16, i1 false) - %103 = load ptr, ptr %u, align 8 - %u_instr_sequence19.i = getelementptr inbounds %struct.compiler_unit, ptr %103, i64 0, i32 3 - %s_used.i.i.i36.i = getelementptr inbounds %struct.compiler_unit, ptr %103, i64 0, i32 3, i32 2 - %104 = load i32, ptr %s_used.i.i.i36.i, align 4 - %add.i.i.i37.i = add i32 %104, 1 - %s_allocated.i.i.i38.i = getelementptr inbounds %struct.compiler_unit, ptr %103, i64 0, i32 3, i32 1 + %100 = load ptr, ptr %u, align 8 + %u_instr_sequence.i343 = getelementptr inbounds %struct.compiler_unit, ptr %100, i64 0, i32 3 + %s_used.i.i.i.i344 = getelementptr inbounds %struct.compiler_unit, ptr %100, i64 0, i32 3, i32 2 + %101 = load i32, ptr %s_used.i.i.i.i344, align 4 + %add.i.i.i.i345 = add i32 %101, 1 + %s_allocated.i.i.i.i346 = getelementptr inbounds %struct.compiler_unit, ptr %100, i64 0, i32 3, i32 1 + %call.i.i.i.i347 = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i.i345, ptr noundef nonnull %u_instr_sequence.i343, ptr noundef nonnull %s_allocated.i.i.i.i346, i32 noundef 100, i64 noundef 44), !range !5 + %cmp.i.i.i.i348 = icmp eq i32 %call.i.i.i.i347, -1 + br i1 %cmp.i.i.i.i348, label %pop_inlined_comprehension_state.exit.thread, label %instr_sequence_next_inst.exit.i.i.i349 + +instr_sequence_next_inst.exit.i.i.i349: ; preds = %if.then12.i + %102 = load i32, ptr %s_used.i.i.i.i344, align 4 + %inc.i.i.i.i350 = add i32 %102, 1 + store i32 %inc.i.i.i.i350, ptr %s_used.i.i.i.i344, align 4 + %cmp.i.i.i351 = icmp eq i32 %102, -1 + br i1 %cmp.i.i.i351, label %pop_inlined_comprehension_state.exit.thread, label %if.end17.i + +if.end17.i: ; preds = %instr_sequence_next_inst.exit.i.i.i349 + %103 = load ptr, ptr %u_instr_sequence.i343, align 8 + %idxprom.i.i.i352 = sext i32 %102 to i64 + %arrayidx.i.i.i353 = getelementptr %struct._PyCompile_Instruction, ptr %103, i64 %idxprom.i.i.i352 + store i32 263, ptr %arrayidx.i.i.i353, align 4 + %i_oparg.i.i.i354 = getelementptr %struct._PyCompile_Instruction, ptr %103, i64 %idxprom.i.i.i352, i32 1 + store i32 0, ptr %i_oparg.i.i.i354, align 4 + %i_loc.i.i.i355 = getelementptr %struct._PyCompile_Instruction, ptr %103, i64 %idxprom.i.i.i352, i32 2 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %i_loc.i.i.i355, i8 -1, i64 16, i1 false) + %104 = load ptr, ptr %u, align 8 + %u_instr_sequence19.i = getelementptr inbounds %struct.compiler_unit, ptr %104, i64 0, i32 3 + %s_used.i.i.i36.i = getelementptr inbounds %struct.compiler_unit, ptr %104, i64 0, i32 3, i32 2 + %105 = load i32, ptr %s_used.i.i.i36.i, align 4 + %add.i.i.i37.i = add i32 %105, 1 + %s_allocated.i.i.i38.i = getelementptr inbounds %struct.compiler_unit, ptr %104, i64 0, i32 3, i32 1 %call.i.i.i39.i = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i37.i, ptr noundef nonnull %u_instr_sequence19.i, ptr noundef nonnull %s_allocated.i.i.i38.i, i32 noundef 100, i64 noundef 44), !range !5 %cmp.i.i.i40.i = icmp eq i32 %call.i.i.i39.i, -1 br i1 %cmp.i.i.i40.i, label %pop_inlined_comprehension_state.exit.thread, label %instr_sequence_next_inst.exit.i.i41.i instr_sequence_next_inst.exit.i.i41.i: ; preds = %if.end17.i - %105 = load i32, ptr %s_used.i.i.i36.i, align 4 - %inc.i.i.i42.i = add i32 %105, 1 + %106 = load i32, ptr %s_used.i.i.i36.i, align 4 + %inc.i.i.i42.i = add i32 %106, 1 store i32 %inc.i.i.i42.i, ptr %s_used.i.i.i36.i, align 4 - %cmp.i.i43.i = icmp eq i32 %105, -1 + %cmp.i.i43.i = icmp eq i32 %106, -1 br i1 %cmp.i.i43.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end23.i if.end23.i: ; preds = %instr_sequence_next_inst.exit.i.i41.i - %106 = load ptr, ptr %u_instr_sequence19.i, align 8 - %idxprom.i.i45.i = sext i32 %105 to i64 - %arrayidx.i.i46.i = getelementptr %struct._PyCompile_Instruction, ptr %106, i64 %idxprom.i.i45.i + %107 = load ptr, ptr %u_instr_sequence19.i, align 8 + %idxprom.i.i45.i = sext i32 %106 to i64 + %arrayidx.i.i46.i = getelementptr %struct._PyCompile_Instruction, ptr %107, i64 %idxprom.i.i45.i store i32 256, ptr %arrayidx.i.i46.i, align 4 - %i_oparg.i.i47.i = getelementptr %struct._PyCompile_Instruction, ptr %106, i64 %idxprom.i.i45.i, i32 1 + %i_oparg.i.i47.i = getelementptr %struct._PyCompile_Instruction, ptr %107, i64 %idxprom.i.i45.i, i32 1 store i32 %inline_state.sroa.16.1, ptr %i_oparg.i.i47.i, align 4 - %i_loc.i.i48.i = getelementptr %struct._PyCompile_Instruction, ptr %106, i64 %idxprom.i.i45.i, i32 2 + %i_loc.i.i48.i = getelementptr %struct._PyCompile_Instruction, ptr %107, i64 %idxprom.i.i45.i, i32 2 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %i_loc.i.i48.i, i8 -1, i64 16, i1 false) - %107 = load ptr, ptr %u, align 8 - %s_labelmap_size.i.i = getelementptr inbounds %struct.compiler_unit, ptr %107, i64 0, i32 3, i32 4 - %108 = load i32, ptr %s_labelmap_size.i.i, align 8 - %s_labelmap.i.i = getelementptr inbounds %struct.compiler_unit, ptr %107, i64 0, i32 3, i32 3 + %108 = load ptr, ptr %u, align 8 + %s_labelmap_size.i.i = getelementptr inbounds %struct.compiler_unit, ptr %108, i64 0, i32 3, i32 4 + %109 = load i32, ptr %s_labelmap_size.i.i, align 8 + %s_labelmap.i.i = getelementptr inbounds %struct.compiler_unit, ptr %108, i64 0, i32 3, i32 3 %call.i.i = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %inline_state.sroa.14.1, ptr noundef nonnull %s_labelmap.i.i, ptr noundef nonnull %s_labelmap_size.i.i, i32 noundef 10, i64 noundef 4), !range !5 %cmp.i51.i = icmp eq i32 %call.i.i, -1 br i1 %cmp.i51.i, label %pop_inlined_comprehension_state.exit.thread, label %for.cond.preheader.i.i for.cond.preheader.i.i: ; preds = %if.end23.i - %109 = load i32, ptr %s_labelmap_size.i.i, align 8 - %cmp310.i.i = icmp slt i32 %108, %109 + %110 = load i32, ptr %s_labelmap_size.i.i, align 8 + %cmp310.i.i = icmp slt i32 %109, %110 br i1 %cmp310.i.i, label %for.body.preheader.i.i, label %if.end29.i for.body.preheader.i.i: ; preds = %for.cond.preheader.i.i - %110 = sext i32 %108 to i64 + %111 = sext i32 %109 to i64 br label %for.body.i.i for.body.i.i: ; preds = %for.body.i.i, %for.body.preheader.i.i - %indvars.iv.i.i = phi i64 [ %110, %for.body.preheader.i.i ], [ %indvars.iv.next.i.i, %for.body.i.i ] - %111 = load ptr, ptr %s_labelmap.i.i, align 8 - %arrayidx.i.i350 = getelementptr i32, ptr %111, i64 %indvars.iv.i.i - store i32 -111, ptr %arrayidx.i.i350, align 4 + %indvars.iv.i.i = phi i64 [ %111, %for.body.preheader.i.i ], [ %indvars.iv.next.i.i, %for.body.i.i ] + %112 = load ptr, ptr %s_labelmap.i.i, align 8 + %arrayidx.i.i366 = getelementptr i32, ptr %112, i64 %indvars.iv.i.i + store i32 -111, ptr %arrayidx.i.i366, align 4 %indvars.iv.next.i.i = add nsw i64 %indvars.iv.i.i, 1 - %112 = load i32, ptr %s_labelmap_size.i.i, align 8 - %113 = sext i32 %112 to i64 - %cmp3.i.i = icmp slt i64 %indvars.iv.next.i.i, %113 + %113 = load i32, ptr %s_labelmap_size.i.i, align 8 + %114 = sext i32 %113 to i64 + %cmp3.i.i = icmp slt i64 %indvars.iv.next.i.i, %114 br i1 %cmp3.i.i, label %for.body.i.i, label %if.end29.i, !llvm.loop !6 if.end29.i: ; preds = %for.body.i.i, %for.cond.preheader.i.i - %s_used.i.i = getelementptr inbounds %struct.compiler_unit, ptr %107, i64 0, i32 3, i32 2 - %114 = load i32, ptr %s_used.i.i, align 4 - %115 = load ptr, ptr %s_labelmap.i.i, align 8 + %s_used.i.i = getelementptr inbounds %struct.compiler_unit, ptr %108, i64 0, i32 3, i32 2 + %115 = load i32, ptr %s_used.i.i, align 4 + %116 = load ptr, ptr %s_labelmap.i.i, align 8 %idxprom6.i.i = sext i32 %inline_state.sroa.14.1 to i64 - %arrayidx7.i.i = getelementptr i32, ptr %115, i64 %idxprom6.i.i - store i32 %114, ptr %arrayidx7.i.i, align 4 - %116 = load ptr, ptr %u, align 8 - %u_instr_sequence31.i = getelementptr inbounds %struct.compiler_unit, ptr %116, i64 0, i32 3 - %s_used.i.i.i52.i = getelementptr inbounds %struct.compiler_unit, ptr %116, i64 0, i32 3, i32 2 - %117 = load i32, ptr %s_used.i.i.i52.i, align 4 - %add.i.i.i53.i = add i32 %117, 1 - %s_allocated.i.i.i54.i = getelementptr inbounds %struct.compiler_unit, ptr %116, i64 0, i32 3, i32 1 + %arrayidx7.i.i = getelementptr i32, ptr %116, i64 %idxprom6.i.i + store i32 %115, ptr %arrayidx7.i.i, align 4 + %117 = load ptr, ptr %u, align 8 + %u_instr_sequence31.i = getelementptr inbounds %struct.compiler_unit, ptr %117, i64 0, i32 3 + %s_used.i.i.i52.i = getelementptr inbounds %struct.compiler_unit, ptr %117, i64 0, i32 3, i32 2 + %118 = load i32, ptr %s_used.i.i.i52.i, align 4 + %add.i.i.i53.i = add i32 %118, 1 + %s_allocated.i.i.i54.i = getelementptr inbounds %struct.compiler_unit, ptr %117, i64 0, i32 3, i32 1 %call.i.i.i55.i = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i53.i, ptr noundef nonnull %u_instr_sequence31.i, ptr noundef nonnull %s_allocated.i.i.i54.i, i32 noundef 100, i64 noundef 44), !range !5 %cmp.i.i.i56.i = icmp eq i32 %call.i.i.i55.i, -1 br i1 %cmp.i.i.i56.i, label %pop_inlined_comprehension_state.exit.thread, label %instr_sequence_next_inst.exit.i.i57.i instr_sequence_next_inst.exit.i.i57.i: ; preds = %if.end29.i - %118 = load i32, ptr %s_used.i.i.i52.i, align 4 - %inc.i.i.i58.i = add i32 %118, 1 + %119 = load i32, ptr %s_used.i.i.i52.i, align 4 + %inc.i.i.i58.i = add i32 %119, 1 store i32 %inc.i.i.i58.i, ptr %s_used.i.i.i52.i, align 4 - %cmp.i.i59.i = icmp eq i32 %118, -1 + %cmp.i.i59.i = icmp eq i32 %119, -1 br i1 %cmp.i.i59.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end35.i if.end35.i: ; preds = %instr_sequence_next_inst.exit.i.i57.i - %119 = load ptr, ptr %u_instr_sequence31.i, align 8 - %idxprom.i.i61.i = sext i32 %118 to i64 - %arrayidx.i.i62.i = getelementptr %struct._PyCompile_Instruction, ptr %119, i64 %idxprom.i.i61.i + %120 = load ptr, ptr %u_instr_sequence31.i, align 8 + %idxprom.i.i61.i = sext i32 %119 to i64 + %arrayidx.i.i62.i = getelementptr %struct._PyCompile_Instruction, ptr %120, i64 %idxprom.i.i61.i store i32 115, ptr %arrayidx.i.i62.i, align 4 - %i_oparg.i.i63.i = getelementptr %struct._PyCompile_Instruction, ptr %119, i64 %idxprom.i.i61.i, i32 1 + %i_oparg.i.i63.i = getelementptr %struct._PyCompile_Instruction, ptr %120, i64 %idxprom.i.i61.i, i32 1 store i32 2, ptr %i_oparg.i.i63.i, align 4 - %i_loc.i.i64.i = getelementptr %struct._PyCompile_Instruction, ptr %119, i64 %idxprom.i.i61.i, i32 2 + %i_loc.i.i64.i = getelementptr %struct._PyCompile_Instruction, ptr %120, i64 %idxprom.i.i61.i, i32 2 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %i_loc.i.i64.i, i8 -1, i64 16, i1 false) - %120 = load ptr, ptr %u, align 8 - %u_instr_sequence37.i = getelementptr inbounds %struct.compiler_unit, ptr %120, i64 0, i32 3 - %s_used.i.i.i67.i = getelementptr inbounds %struct.compiler_unit, ptr %120, i64 0, i32 3, i32 2 - %121 = load i32, ptr %s_used.i.i.i67.i, align 4 - %add.i.i.i68.i = add i32 %121, 1 - %s_allocated.i.i.i69.i = getelementptr inbounds %struct.compiler_unit, ptr %120, i64 0, i32 3, i32 1 + %121 = load ptr, ptr %u, align 8 + %u_instr_sequence37.i = getelementptr inbounds %struct.compiler_unit, ptr %121, i64 0, i32 3 + %s_used.i.i.i67.i = getelementptr inbounds %struct.compiler_unit, ptr %121, i64 0, i32 3, i32 2 + %122 = load i32, ptr %s_used.i.i.i67.i, align 4 + %add.i.i.i68.i = add i32 %122, 1 + %s_allocated.i.i.i69.i = getelementptr inbounds %struct.compiler_unit, ptr %121, i64 0, i32 3, i32 1 %call.i.i.i70.i = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i68.i, ptr noundef nonnull %u_instr_sequence37.i, ptr noundef nonnull %s_allocated.i.i.i69.i, i32 noundef 100, i64 noundef 44), !range !5 %cmp.i.i.i71.i = icmp eq i32 %call.i.i.i70.i, -1 br i1 %cmp.i.i.i71.i, label %pop_inlined_comprehension_state.exit.thread, label %instr_sequence_next_inst.exit.i.i72.i instr_sequence_next_inst.exit.i.i72.i: ; preds = %if.end35.i - %122 = load i32, ptr %s_used.i.i.i67.i, align 4 - %inc.i.i.i73.i = add i32 %122, 1 + %123 = load i32, ptr %s_used.i.i.i67.i, align 4 + %inc.i.i.i73.i = add i32 %123, 1 store i32 %inc.i.i.i73.i, ptr %s_used.i.i.i67.i, align 4 - %cmp.i.i74.i = icmp eq i32 %122, -1 - br i1 %cmp.i.i74.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end41.i340 + %cmp.i.i74.i = icmp eq i32 %123, -1 + br i1 %cmp.i.i74.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end41.i356 -if.end41.i340: ; preds = %instr_sequence_next_inst.exit.i.i72.i - %123 = load ptr, ptr %u_instr_sequence37.i, align 8 - %idxprom.i.i76.i = sext i32 %122 to i64 - %arrayidx.i.i77.i = getelementptr %struct._PyCompile_Instruction, ptr %123, i64 %idxprom.i.i76.i +if.end41.i356: ; preds = %instr_sequence_next_inst.exit.i.i72.i + %124 = load ptr, ptr %u_instr_sequence37.i, align 8 + %idxprom.i.i76.i = sext i32 %123 to i64 + %arrayidx.i.i77.i = getelementptr %struct._PyCompile_Instruction, ptr %124, i64 %idxprom.i.i76.i store i32 32, ptr %arrayidx.i.i77.i, align 4 - %i_oparg.i.i78.i = getelementptr %struct._PyCompile_Instruction, ptr %123, i64 %idxprom.i.i76.i, i32 1 + %i_oparg.i.i78.i = getelementptr %struct._PyCompile_Instruction, ptr %124, i64 %idxprom.i.i76.i, i32 1 store i32 0, ptr %i_oparg.i.i78.i, align 4 - %i_loc.i.i79.i = getelementptr %struct._PyCompile_Instruction, ptr %123, i64 %idxprom.i.i76.i, i32 2 + %i_loc.i.i79.i = getelementptr %struct._PyCompile_Instruction, ptr %124, i64 %idxprom.i.i76.i, i32 2 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %i_loc.i.i79.i, i8 -1, i64 16, i1 false) %call42.i = call fastcc i32 @restore_inlined_comprehension_locals(ptr noundef nonnull %c, i64 %loc.sroa.0.0.insert.insert29.pre-phi, i64 %loc.sroa.17.8.insert.insert137.pre-phi, ptr nonnull %inline_state.sroa.0.5) %cmp43.i = icmp slt i32 %call42.i, 0 br i1 %cmp43.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end45.i -if.end45.i: ; preds = %if.end41.i340 - %124 = load ptr, ptr %u, align 8 - %u_instr_sequence47.i = getelementptr inbounds %struct.compiler_unit, ptr %124, i64 0, i32 3 - %s_used.i.i.i83.i = getelementptr inbounds %struct.compiler_unit, ptr %124, i64 0, i32 3, i32 2 - %125 = load i32, ptr %s_used.i.i.i83.i, align 4 - %add.i.i.i84.i = add i32 %125, 1 - %s_allocated.i.i.i85.i = getelementptr inbounds %struct.compiler_unit, ptr %124, i64 0, i32 3, i32 1 +if.end45.i: ; preds = %if.end41.i356 + %125 = load ptr, ptr %u, align 8 + %u_instr_sequence47.i = getelementptr inbounds %struct.compiler_unit, ptr %125, i64 0, i32 3 + %s_used.i.i.i83.i = getelementptr inbounds %struct.compiler_unit, ptr %125, i64 0, i32 3, i32 2 + %126 = load i32, ptr %s_used.i.i.i83.i, align 4 + %add.i.i.i84.i = add i32 %126, 1 + %s_allocated.i.i.i85.i = getelementptr inbounds %struct.compiler_unit, ptr %125, i64 0, i32 3, i32 1 %call.i.i.i86.i = call i32 @_PyCompile_EnsureArrayLargeEnough(i32 noundef %add.i.i.i84.i, ptr noundef nonnull %u_instr_sequence47.i, ptr noundef nonnull %s_allocated.i.i.i85.i, i32 noundef 100, i64 noundef 44), !range !5 %cmp.i.i.i87.i = icmp eq i32 %call.i.i.i86.i, -1 br i1 %cmp.i.i.i87.i, label %pop_inlined_comprehension_state.exit.thread, label %instr_sequence_next_inst.exit.i.i88.i instr_sequence_next_inst.exit.i.i88.i: ; preds = %if.end45.i - %126 = load i32, ptr %s_used.i.i.i83.i, align 4 - %inc.i.i.i89.i = add i32 %126, 1 + %127 = load i32, ptr %s_used.i.i.i83.i, align 4 + %inc.i.i.i89.i = add i32 %127, 1 store i32 %inc.i.i.i89.i, ptr %s_used.i.i.i83.i, align 4 - %cmp.i.i90.i = icmp eq i32 %126, -1 + %cmp.i.i90.i = icmp eq i32 %127, -1 br i1 %cmp.i.i90.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end51.i if.end51.i: ; preds = %instr_sequence_next_inst.exit.i.i88.i - %127 = load ptr, ptr %u_instr_sequence47.i, align 8 - %idxprom.i.i92.i = sext i32 %126 to i64 - %arrayidx.i.i93.i = getelementptr %struct._PyCompile_Instruction, ptr %127, i64 %idxprom.i.i92.i + %128 = load ptr, ptr %u_instr_sequence47.i, align 8 + %idxprom.i.i92.i = sext i32 %127 to i64 + %arrayidx.i.i93.i = getelementptr %struct._PyCompile_Instruction, ptr %128, i64 %idxprom.i.i92.i store i32 102, ptr %arrayidx.i.i93.i, align 4 - %i_oparg.i.i94.i = getelementptr %struct._PyCompile_Instruction, ptr %127, i64 %idxprom.i.i92.i, i32 1 + %i_oparg.i.i94.i = getelementptr %struct._PyCompile_Instruction, ptr %128, i64 %idxprom.i.i92.i, i32 1 store i32 0, ptr %i_oparg.i.i94.i, align 4 - %i_loc.i.i95.i = getelementptr %struct._PyCompile_Instruction, ptr %127, i64 %idxprom.i.i92.i, i32 2 + %i_loc.i.i95.i = getelementptr %struct._PyCompile_Instruction, ptr %128, i64 %idxprom.i.i92.i, i32 2 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %i_loc.i.i95.i, i8 -1, i64 16, i1 false) - %128 = load ptr, ptr %u, align 8 - %u_instr_sequence53.i = getelementptr inbounds %struct.compiler_unit, ptr %128, i64 0, i32 3 + %129 = load ptr, ptr %u, align 8 + %u_instr_sequence53.i = getelementptr inbounds %struct.compiler_unit, ptr %129, i64 0, i32 3 %call56.i = call i32 @_PyCompile_InstructionSequence_UseLabel(ptr noundef nonnull %u_instr_sequence53.i, i32 noundef %inline_state.sroa.16.1), !range !5 %cmp57.i = icmp eq i32 %call56.i, -1 br i1 %cmp57.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end59.i if.end59.i: ; preds = %if.end51.i - %call60.i341 = call fastcc i32 @restore_inlined_comprehension_locals(ptr noundef nonnull %c, i64 %loc.sroa.0.0.insert.insert29.pre-phi, i64 %loc.sroa.17.8.insert.insert137.pre-phi, ptr nonnull %inline_state.sroa.0.5) - %cmp61.i = icmp slt i32 %call60.i341, 0 + %call60.i357 = call fastcc i32 @restore_inlined_comprehension_locals(ptr noundef nonnull %c, i64 %loc.sroa.0.0.insert.insert29.pre-phi, i64 %loc.sroa.17.8.insert.insert137.pre-phi, ptr nonnull %inline_state.sroa.0.5) + %cmp61.i = icmp slt i32 %call60.i357, 0 br i1 %cmp61.i, label %pop_inlined_comprehension_state.exit.thread, label %if.then69.i if.then69.i: ; preds = %if.end59.i - %129 = load i64, ptr %inline_state.sroa.0.5, align 8 - %130 = and i64 %129, 2147483648 - %cmp.i141.not.i = icmp eq i64 %130, 0 + %130 = load i64, ptr %inline_state.sroa.0.5, align 8 + %131 = and i64 %130, 2147483648 + %cmp.i141.not.i = icmp eq i64 %131, 0 br i1 %cmp.i141.not.i, label %if.end.i122.i, label %if.end72.i if.end.i122.i: ; preds = %if.then69.i - %dec.i123.i = add i64 %129, -1 + %dec.i123.i = add i64 %130, -1 store i64 %dec.i123.i, ptr %inline_state.sroa.0.5, align 8 %cmp.i124.i = icmp eq i64 %dec.i123.i, 0 br i1 %cmp.i124.i, label %if.then1.i125.i, label %if.end72.i if.then1.i125.i: ; preds = %if.end.i122.i - call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.0.5) #12 + call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.0.5) #11 br label %if.end72.i if.end72.i: ; preds = %if.then1.i125.i, %if.end.i122.i, %if.then69.i, %if.end10.i %tobool73.not.i = icmp eq ptr %inline_state.sroa.11.6, null - br i1 %tobool73.not.i, label %pop_inlined_comprehension_state.exit.thread452, label %while.cond75.preheader.i + br i1 %tobool73.not.i, label %pop_inlined_comprehension_state.exit.thread470, label %while.cond75.preheader.i while.cond75.preheader.i: ; preds = %if.end72.i - %call77113.i = call i64 @PySet_Size(ptr noundef nonnull %inline_state.sroa.11.6) #12 + %call77113.i = call i64 @PySet_Size(ptr noundef nonnull %inline_state.sroa.11.6) #11 %cmp78114.i = icmp sgt i64 %call77113.i, 0 br i1 %cmp78114.i, label %while.body79.i, label %if.then97.i while.body79.i: ; preds = %while.cond75.preheader.i, %Py_DECREF.exit109.i - %call82.i = call ptr @PySet_Pop(ptr noundef nonnull %inline_state.sroa.11.6) #12 + %call82.i = call ptr @PySet_Pop(ptr noundef nonnull %inline_state.sroa.11.6) #11 %cmp83.i = icmp eq ptr %call82.i, null br i1 %cmp83.i, label %pop_inlined_comprehension_state.exit.thread, label %if.end85.i if.end85.i: ; preds = %while.body79.i - %131 = load ptr, ptr %u, align 8 - %u_fasthidden.i346 = getelementptr inbounds %struct.compiler_unit, ptr %131, i64 0, i32 7, i32 7 - %132 = load ptr, ptr %u_fasthidden.i346, align 8 - %call87.i = call i32 @PyDict_SetItem(ptr noundef %132, ptr noundef nonnull %call82.i, ptr noundef nonnull @_Py_FalseStruct) #12 + %132 = load ptr, ptr %u, align 8 + %u_fasthidden.i362 = getelementptr inbounds %struct.compiler_unit, ptr %132, i64 0, i32 7, i32 7 + %133 = load ptr, ptr %u_fasthidden.i362, align 8 + %call87.i = call i32 @PyDict_SetItem(ptr noundef %133, ptr noundef nonnull %call82.i, ptr noundef nonnull @_Py_FalseStruct) #11 %tobool88.not.i = icmp eq i32 %call87.i, 0 - %133 = load i64, ptr %call82.i, align 8 - %134 = and i64 %133, 2147483648 - %cmp.i149.not.i = icmp eq i64 %134, 0 - br i1 %tobool88.not.i, label %if.end90.i348, label %if.then89.i347 + %134 = load i64, ptr %call82.i, align 8 + %135 = and i64 %134, 2147483648 + %cmp.i149.not.i = icmp eq i64 %135, 0 + br i1 %tobool88.not.i, label %if.end90.i364, label %if.then89.i363 -if.then89.i347: ; preds = %if.end85.i +if.then89.i363: ; preds = %if.end85.i br i1 %cmp.i149.not.i, label %if.end.i113.i, label %pop_inlined_comprehension_state.exit.thread -if.end.i113.i: ; preds = %if.then89.i347 - %dec.i114.i = add i64 %133, -1 +if.end.i113.i: ; preds = %if.then89.i363 + %dec.i114.i = add i64 %134, -1 store i64 %dec.i114.i, ptr %call82.i, align 8 %cmp.i115.i = icmp eq i64 %dec.i114.i, 0 br i1 %cmp.i115.i, label %pop_inlined_comprehension_state.exit, label %pop_inlined_comprehension_state.exit.thread -if.end90.i348: ; preds = %if.end85.i +if.end90.i364: ; preds = %if.end85.i br i1 %cmp.i149.not.i, label %if.end.i104.i, label %Py_DECREF.exit109.i -if.end.i104.i: ; preds = %if.end90.i348 - %dec.i105.i = add i64 %133, -1 +if.end.i104.i: ; preds = %if.end90.i364 + %dec.i105.i = add i64 %134, -1 store i64 %dec.i105.i, ptr %call82.i, align 8 %cmp.i106.i = icmp eq i64 %dec.i105.i, 0 br i1 %cmp.i106.i, label %if.then1.i107.i, label %Py_DECREF.exit109.i if.then1.i107.i: ; preds = %if.end.i104.i - call void @_Py_Dealloc(ptr noundef nonnull %call82.i) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call82.i) #11 br label %Py_DECREF.exit109.i -Py_DECREF.exit109.i: ; preds = %if.then1.i107.i, %if.end.i104.i, %if.end90.i348 - %call77.i = call i64 @PySet_Size(ptr noundef nonnull %inline_state.sroa.11.6) #12 - %cmp78.i349 = icmp sgt i64 %call77.i, 0 - br i1 %cmp78.i349, label %while.body79.i, label %if.then97.i, !llvm.loop !142 +Py_DECREF.exit109.i: ; preds = %if.then1.i107.i, %if.end.i104.i, %if.end90.i364 + %call77.i = call i64 @PySet_Size(ptr noundef nonnull %inline_state.sroa.11.6) #11 + %cmp78.i365 = icmp sgt i64 %call77.i, 0 + br i1 %cmp78.i365, label %while.body79.i, label %if.then97.i, !llvm.loop !142 if.then97.i: ; preds = %Py_DECREF.exit109.i, %while.cond75.preheader.i - %135 = load i64, ptr %inline_state.sroa.11.6, align 8 - %136 = and i64 %135, 2147483648 - %cmp.i153.not.i = icmp eq i64 %136, 0 - br i1 %cmp.i153.not.i, label %if.end.i.i343, label %pop_inlined_comprehension_state.exit.thread452 + %136 = load i64, ptr %inline_state.sroa.11.6, align 8 + %137 = and i64 %136, 2147483648 + %cmp.i153.not.i = icmp eq i64 %137, 0 + br i1 %cmp.i153.not.i, label %if.end.i.i359, label %pop_inlined_comprehension_state.exit.thread470 -if.end.i.i343: ; preds = %if.then97.i - %dec.i.i344 = add i64 %135, -1 - store i64 %dec.i.i344, ptr %inline_state.sroa.11.6, align 8 - %cmp.i.i345 = icmp eq i64 %dec.i.i344, 0 - br i1 %cmp.i.i345, label %pop_inlined_comprehension_state.exit.thread455, label %pop_inlined_comprehension_state.exit.thread452 +if.end.i.i359: ; preds = %if.then97.i + %dec.i.i360 = add i64 %136, -1 + store i64 %dec.i.i360, ptr %inline_state.sroa.11.6, align 8 + %cmp.i.i361 = icmp eq i64 %dec.i.i360, 0 + br i1 %cmp.i.i361, label %pop_inlined_comprehension_state.exit.thread473, label %pop_inlined_comprehension_state.exit.thread470 -pop_inlined_comprehension_state.exit.thread455: ; preds = %if.end.i.i343 - call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.11.6) #12 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i314) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i315) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i316) +pop_inlined_comprehension_state.exit.thread473: ; preds = %if.end.i.i359 + call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.11.6) #11 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i330) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i331) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i332) br label %return -pop_inlined_comprehension_state.exit.thread: ; preds = %while.body.i323, %while.body79.i, %if.end41.i340, %if.end51.i, %if.end59.i, %if.then89.i347, %if.end.i113.i, %instr_sequence_next_inst.exit.i.i.i333, %if.then12.i, %instr_sequence_next_inst.exit.i.i41.i, %if.end17.i, %if.end23.i, %instr_sequence_next_inst.exit.i.i57.i, %if.end29.i, %instr_sequence_next_inst.exit.i.i72.i, %if.end35.i, %instr_sequence_next_inst.exit.i.i88.i, %if.end45.i - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i314) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i315) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i316) - br label %Py_XDECREF.exit365 +pop_inlined_comprehension_state.exit.thread: ; preds = %while.body.i339, %while.body79.i, %if.end41.i356, %if.end51.i, %if.end59.i, %if.then89.i363, %if.end.i113.i, %instr_sequence_next_inst.exit.i.i.i349, %if.then12.i, %instr_sequence_next_inst.exit.i.i41.i, %if.end17.i, %if.end23.i, %instr_sequence_next_inst.exit.i.i57.i, %if.end29.i, %instr_sequence_next_inst.exit.i.i72.i, %if.end35.i, %instr_sequence_next_inst.exit.i.i88.i, %if.end45.i + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i330) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i331) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i332) + br label %Py_XDECREF.exit381 -pop_inlined_comprehension_state.exit.thread452: ; preds = %if.end.i.i343, %if.then97.i, %if.end72.i - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i314) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i315) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i316) +pop_inlined_comprehension_state.exit.thread470: ; preds = %if.end.i.i359, %if.then97.i, %if.end72.i + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i330) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i331) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i332) br label %return pop_inlined_comprehension_state.exit: ; preds = %if.end.i113.i - call void @_Py_Dealloc(ptr noundef nonnull %call82.i) #12 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i314) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i315) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i316) - br label %Py_XDECREF.exit365 + call void @_Py_Dealloc(ptr noundef nonnull %call82.i) #11 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %k.i330) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %v.i331) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pos.i332) + br label %Py_XDECREF.exit381 if.end72: ; preds = %if.end65 br i1 %cmp32, label %if.then74, label %if.then91 if.then74: ; preds = %if.end72 - %137 = load ptr, ptr %u, align 8 - %u_instr_sequence76 = getelementptr inbounds %struct.compiler_unit, ptr %137, i64 0, i32 3 - %138 = load i32, ptr %lineno8, align 8 - %139 = load i32, ptr %end_lineno9, align 8 - %140 = load i32, ptr %col_offset10, align 4 - %141 = load i32, ptr %end_col_offset11, align 4 - %.compoundliteral.sroa.2.0.insert.ext = zext i32 %139 to i64 + %138 = load ptr, ptr %u, align 8 + %u_instr_sequence76 = getelementptr inbounds %struct.compiler_unit, ptr %138, i64 0, i32 3 + %139 = load i32, ptr %lineno8, align 8 + %140 = load i32, ptr %end_lineno9, align 8 + %141 = load i32, ptr %col_offset10, align 4 + %142 = load i32, ptr %end_col_offset11, align 4 + %.compoundliteral.sroa.2.0.insert.ext = zext i32 %140 to i64 %.compoundliteral.sroa.2.0.insert.shift = shl nuw i64 %.compoundliteral.sroa.2.0.insert.ext, 32 - %.compoundliteral.sroa.0.0.insert.ext = zext i32 %138 to i64 + %.compoundliteral.sroa.0.0.insert.ext = zext i32 %139 to i64 %.compoundliteral.sroa.0.0.insert.insert = or disjoint i64 %.compoundliteral.sroa.2.0.insert.shift, %.compoundliteral.sroa.0.0.insert.ext - %.compoundliteral.sroa.5.8.insert.ext = zext i32 %141 to i64 + %.compoundliteral.sroa.5.8.insert.ext = zext i32 %142 to i64 %.compoundliteral.sroa.5.8.insert.shift = shl nuw i64 %.compoundliteral.sroa.5.8.insert.ext, 32 - %.compoundliteral.sroa.3.8.insert.ext = zext i32 %140 to i64 + %.compoundliteral.sroa.3.8.insert.ext = zext i32 %141 to i64 %.compoundliteral.sroa.3.8.insert.insert = or disjoint i64 %.compoundliteral.sroa.5.8.insert.shift, %.compoundliteral.sroa.3.8.insert.ext %call85 = call fastcc i32 @codegen_addop_noarg(ptr noundef nonnull %u_instr_sequence76, i32 noundef 36, i64 %.compoundliteral.sroa.0.0.insert.insert, i64 %.compoundliteral.sroa.3.8.insert.insert), !range !5 %cmp86 = icmp eq i32 %call85, -1 @@ -32972,9 +32986,9 @@ if.end96: ; preds = %if.then74, %if.then br i1 %or.cond4, label %if.then101, label %if.end107 if.then101: ; preds = %if.end96 - %142 = load ptr, ptr %u, align 8 - %143 = load ptr, ptr %142, align 8 - %ste_coroutine104 = getelementptr inbounds %struct._symtable_entry, ptr %143, i64 0, i32 9 + %143 = load ptr, ptr %u, align 8 + %144 = load ptr, ptr %143, align 8 + %ste_coroutine104 = getelementptr inbounds %struct._symtable_entry, ptr %144, i64 0, i32 9 %bf.load105 = load i8, ptr %ste_coroutine104, align 8 %bf.set = or i8 %bf.load105, 8 store i8 %bf.set, ptr %ste_coroutine104, align 8 @@ -32982,49 +32996,49 @@ if.then101: ; preds = %if.end96 if.end107: ; preds = %if.then101, %if.end96 %cmp108 = icmp eq ptr %call97, null - br i1 %cmp108, label %Py_XDECREF.exit365, label %if.end110 + br i1 %cmp108, label %Py_XDECREF.exit381, label %if.end110 if.end110: ; preds = %if.end107 - %144 = load i32, ptr %lineno8, align 8 - %145 = load i32, ptr %end_lineno9, align 8 - %146 = load i32, ptr %col_offset10, align 4 - %147 = load i32, ptr %end_col_offset11, align 4 - %loc.sroa.15.0.insert.ext89 = zext i32 %145 to i64 + %145 = load i32, ptr %lineno8, align 8 + %146 = load i32, ptr %end_lineno9, align 8 + %147 = load i32, ptr %col_offset10, align 4 + %148 = load i32, ptr %end_col_offset11, align 4 + %loc.sroa.15.0.insert.ext89 = zext i32 %146 to i64 %loc.sroa.15.0.insert.shift90 = shl nuw i64 %loc.sroa.15.0.insert.ext89, 32 - %loc.sroa.0.0.insert.ext35 = zext i32 %144 to i64 + %loc.sroa.0.0.insert.ext35 = zext i32 %145 to i64 %loc.sroa.0.0.insert.insert37 = or disjoint i64 %loc.sroa.15.0.insert.shift90, %loc.sroa.0.0.insert.ext35 - %loc.sroa.32.8.insert.ext197 = zext i32 %147 to i64 + %loc.sroa.32.8.insert.ext197 = zext i32 %148 to i64 %loc.sroa.32.8.insert.shift198 = shl nuw i64 %loc.sroa.32.8.insert.ext197, 32 - %loc.sroa.17.8.insert.ext143 = zext i32 %146 to i64 + %loc.sroa.17.8.insert.ext143 = zext i32 %147 to i64 %loc.sroa.17.8.insert.insert145 = or disjoint i64 %loc.sroa.32.8.insert.shift198, %loc.sroa.17.8.insert.ext143 %call120 = call fastcc i32 @compiler_make_closure(ptr noundef %c, i64 %loc.sroa.0.0.insert.insert37, i64 %loc.sroa.17.8.insert.insert145, ptr noundef nonnull %call97, i64 noundef 0), !range !5 %cmp121 = icmp slt i32 %call120, 0 - %148 = load i64, ptr %call97, align 8 - %149 = and i64 %148, 2147483648 - %cmp.i2.not.i = icmp eq i64 %149, 0 - br i1 %cmp121, label %if.then.i351, label %if.then128 + %149 = load i64, ptr %call97, align 8 + %150 = and i64 %149, 2147483648 + %cmp.i2.not.i = icmp eq i64 %150, 0 + br i1 %cmp121, label %if.then.i367, label %if.then128 if.then128: ; preds = %if.end110 br i1 %cmp.i2.not.i, label %if.end.i, label %do.end130 if.end.i: ; preds = %if.then128 - %dec.i = add i64 %148, -1 + %dec.i = add i64 %149, -1 store i64 %dec.i, ptr %call97, align 8 %cmp.i = icmp eq i64 %dec.i, 0 br i1 %cmp.i, label %if.then1.i, label %do.end130 if.then1.i: ; preds = %if.end.i - call void @_Py_Dealloc(ptr noundef nonnull %call97) #12 + call void @_Py_Dealloc(ptr noundef nonnull %call97) #11 br label %do.end130 do.end130: ; preds = %if.then128, %if.then1.i, %if.end.i %call131 = call fastcc i32 @compiler_comprehension_iter(ptr noundef %c, i64 %loc.sroa.0.0.insert.insert37, i64 %loc.sroa.17.8.insert.insert145, ptr noundef %11), !range !5 %tobool132.not = icmp eq i32 %call131, 0 - br i1 %tobool132.not, label %if.end134, label %Py_XDECREF.exit365 + br i1 %tobool132.not, label %if.end134, label %Py_XDECREF.exit381 if.end134: ; preds = %do.end130 - %150 = load ptr, ptr %u, align 8 - %u_instr_sequence136 = getelementptr inbounds %struct.compiler_unit, ptr %150, i64 0, i32 3 + %151 = load ptr, ptr %u, align 8 + %u_instr_sequence136 = getelementptr inbounds %struct.compiler_unit, ptr %151, i64 0, i32 3 %call137 = call fastcc i32 @codegen_addop_i(ptr noundef nonnull %u_instr_sequence136, i32 noundef 53, i64 noundef 0, i64 %loc.sroa.0.0.insert.insert37, i64 %loc.sroa.17.8.insert.insert145), !range !5 %cmp138 = icmp eq i32 %call137, -1 br i1 %cmp138, label %return, label %if.end140 @@ -33033,17 +33047,17 @@ if.end140: ; preds = %if.end134 br i1 %or.cond, label %if.then144, label %if.end160 if.then144: ; preds = %if.end140 - %151 = load ptr, ptr %u, align 8 - %u_instr_sequence146 = getelementptr inbounds %struct.compiler_unit, ptr %151, i64 0, i32 3 + %152 = load ptr, ptr %u, align 8 + %u_instr_sequence146 = getelementptr inbounds %struct.compiler_unit, ptr %152, i64 0, i32 3 %call147 = call fastcc i32 @codegen_addop_i(ptr noundef nonnull %u_instr_sequence146, i32 noundef 73, i64 noundef 0, i64 %loc.sroa.0.0.insert.insert37, i64 %loc.sroa.17.8.insert.insert145), !range !5 %cmp148 = icmp eq i32 %call147, -1 br i1 %cmp148, label %return, label %if.end150 if.end150: ; preds = %if.then144 %c_const_cache = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 7 - %152 = load ptr, ptr %c_const_cache, align 8 - %153 = load ptr, ptr %u, align 8 - %call152 = call fastcc i32 @compiler_addop_load_const(ptr noundef %152, ptr noundef %153, i64 %loc.sroa.0.0.insert.insert37, i64 %loc.sroa.17.8.insert.insert145, ptr noundef nonnull @_Py_NoneStruct), !range !5 + %153 = load ptr, ptr %c_const_cache, align 8 + %154 = load ptr, ptr %u, align 8 + %call152 = call fastcc i32 @compiler_addop_load_const(ptr noundef %153, ptr noundef %154, i64 %loc.sroa.0.0.insert.insert37, i64 %loc.sroa.17.8.insert.insert145, ptr noundef nonnull @_Py_NoneStruct), !range !5 %cmp153 = icmp eq i32 %call152, -1 br i1 %cmp153, label %return, label %if.end155 @@ -33055,115 +33069,115 @@ if.end155: ; preds = %if.end150 if.end160: ; preds = %if.end155, %if.end140 br label %return -error_in_scope: ; preds = %compiler_comprehension_generator.exit, %sw.default, %if.then39 - br i1 %tobool12.not, label %if.then162, label %Py_XDECREF.exit365 +error_in_scope: ; preds = %compiler_comprehension_generator.exit, %if.then39 + br i1 %tobool12.not, label %if.then162, label %Py_XDECREF.exit381 if.then162: ; preds = %if.then91, %error_in_scope call fastcc void @compiler_exit_scope(ptr noundef %c) - br label %Py_XDECREF.exit365 - -if.then.i351: ; preds = %if.end110 - br i1 %cmp.i2.not.i, label %if.end.i.i353, label %Py_XDECREF.exit365 - -if.end.i.i353: ; preds = %if.then.i351 - %dec.i.i354 = add i64 %148, -1 - store i64 %dec.i.i354, ptr %call97, align 8 - %cmp.i.i355 = icmp eq i64 %dec.i.i354, 0 - br i1 %cmp.i.i355, label %if.then1.i.i356, label %Py_XDECREF.exit365 - -if.then1.i.i356: ; preds = %if.end.i.i353 - call void @_Py_Dealloc(ptr noundef nonnull %call97) #12 - br label %Py_XDECREF.exit365 - -if.then.i358: ; preds = %if.else.i, %instr_sequence_next_inst.exit.i.i398, %if.then1.i295, %instr_sequence_next_inst.exit.i.i413, %if.then13, %push_inlined_comprehension_state.exit.thread, %if.else - %inline_state.sroa.0.6.ph = phi ptr [ %inline_state.sroa.0.4.ph, %push_inlined_comprehension_state.exit.thread ], [ null, %if.else ], [ null, %if.then13 ], [ null, %instr_sequence_next_inst.exit.i.i413 ], [ null, %if.then1.i295 ], [ null, %instr_sequence_next_inst.exit.i.i398 ], [ null, %if.else.i ] - %inline_state.sroa.7.7.ph = phi ptr [ %inline_state.sroa.7.5.ph, %push_inlined_comprehension_state.exit.thread ], [ null, %if.else ], [ null, %if.then13 ], [ null, %instr_sequence_next_inst.exit.i.i413 ], [ null, %if.then1.i295 ], [ null, %instr_sequence_next_inst.exit.i.i398 ], [ null, %if.else.i ] - %inline_state.sroa.11.7.ph = phi ptr [ %inline_state.sroa.11.5.ph, %push_inlined_comprehension_state.exit.thread ], [ null, %if.else ], [ null, %if.then13 ], [ null, %instr_sequence_next_inst.exit.i.i413 ], [ null, %if.then1.i295 ], [ null, %instr_sequence_next_inst.exit.i.i398 ], [ null, %if.else.i ] - %154 = load i64, ptr %call, align 8 - %155 = and i64 %154, 2147483648 - %cmp.i2.not.i359 = icmp eq i64 %155, 0 - br i1 %cmp.i2.not.i359, label %if.end.i.i361, label %Py_XDECREF.exit365 - -if.end.i.i361: ; preds = %if.then.i358 - %dec.i.i362 = add i64 %154, -1 - store i64 %dec.i.i362, ptr %call, align 8 - %cmp.i.i363 = icmp eq i64 %dec.i.i362, 0 - br i1 %cmp.i.i363, label %if.then1.i.i364, label %Py_XDECREF.exit365 - -if.then1.i.i364: ; preds = %if.end.i.i361 - call void @_Py_Dealloc(ptr noundef nonnull %call) #12 - br label %Py_XDECREF.exit365 - -Py_XDECREF.exit365: ; preds = %error_in_scope, %if.then162, %pop_inlined_comprehension_state.exit, %if.end107, %do.end130, %pop_inlined_comprehension_state.exit.thread, %if.then1.i.i356, %if.end.i.i353, %if.then.i351, %if.then.i358, %if.end.i.i361, %if.then1.i.i364 - %inline_state.sroa.0.6466477 = phi ptr [ %inline_state.sroa.0.6.ph, %if.then.i358 ], [ %inline_state.sroa.0.6.ph, %if.end.i.i361 ], [ %inline_state.sroa.0.6.ph, %if.then1.i.i364 ], [ %inline_state.sroa.0.5, %if.then.i351 ], [ %inline_state.sroa.0.5, %if.end.i.i353 ], [ %inline_state.sroa.0.5, %if.then1.i.i356 ], [ %inline_state.sroa.0.5, %if.then162 ], [ %inline_state.sroa.0.5, %error_in_scope ], [ %inline_state.sroa.0.5, %if.end107 ], [ %inline_state.sroa.0.5, %do.end130 ], [ %inline_state.sroa.0.5, %pop_inlined_comprehension_state.exit ], [ %inline_state.sroa.0.5, %pop_inlined_comprehension_state.exit.thread ] - %inline_state.sroa.7.7467476 = phi ptr [ %inline_state.sroa.7.7.ph, %if.then.i358 ], [ %inline_state.sroa.7.7.ph, %if.end.i.i361 ], [ %inline_state.sroa.7.7.ph, %if.then1.i.i364 ], [ %inline_state.sroa.7.6, %if.then.i351 ], [ %inline_state.sroa.7.6, %if.end.i.i353 ], [ %inline_state.sroa.7.6, %if.then1.i.i356 ], [ %inline_state.sroa.7.6, %if.then162 ], [ %inline_state.sroa.7.6, %error_in_scope ], [ %inline_state.sroa.7.6, %if.end107 ], [ %inline_state.sroa.7.6, %do.end130 ], [ %inline_state.sroa.7.6, %pop_inlined_comprehension_state.exit ], [ %inline_state.sroa.7.6, %pop_inlined_comprehension_state.exit.thread ] - %inline_state.sroa.11.7468475 = phi ptr [ %inline_state.sroa.11.7.ph, %if.then.i358 ], [ %inline_state.sroa.11.7.ph, %if.end.i.i361 ], [ %inline_state.sroa.11.7.ph, %if.then1.i.i364 ], [ %inline_state.sroa.11.6, %if.then.i351 ], [ %inline_state.sroa.11.6, %if.end.i.i353 ], [ %inline_state.sroa.11.6, %if.then1.i.i356 ], [ %inline_state.sroa.11.6, %if.then162 ], [ %inline_state.sroa.11.6, %error_in_scope ], [ %inline_state.sroa.11.6, %if.end107 ], [ %inline_state.sroa.11.6, %do.end130 ], [ %inline_state.sroa.11.6, %pop_inlined_comprehension_state.exit ], [ %inline_state.sroa.11.6, %pop_inlined_comprehension_state.exit.thread ] - %cmp.not.i366 = icmp eq ptr %inline_state.sroa.0.6466477, null - br i1 %cmp.not.i366, label %Py_XDECREF.exit374, label %if.then.i367 - -if.then.i367: ; preds = %Py_XDECREF.exit365 - %156 = load i64, ptr %inline_state.sroa.0.6466477, align 8 - %157 = and i64 %156, 2147483648 - %cmp.i2.not.i368 = icmp eq i64 %157, 0 - br i1 %cmp.i2.not.i368, label %if.end.i.i370, label %Py_XDECREF.exit374 - -if.end.i.i370: ; preds = %if.then.i367 - %dec.i.i371 = add i64 %156, -1 - store i64 %dec.i.i371, ptr %inline_state.sroa.0.6466477, align 8 - %cmp.i.i372 = icmp eq i64 %dec.i.i371, 0 - br i1 %cmp.i.i372, label %if.then1.i.i373, label %Py_XDECREF.exit374 - -if.then1.i.i373: ; preds = %if.end.i.i370 - call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.0.6466477) #12 - br label %Py_XDECREF.exit374 - -Py_XDECREF.exit374: ; preds = %Py_XDECREF.exit365, %if.then.i367, %if.end.i.i370, %if.then1.i.i373 - %cmp.not.i375 = icmp eq ptr %inline_state.sroa.7.7467476, null - br i1 %cmp.not.i375, label %Py_XDECREF.exit383, label %if.then.i376 - -if.then.i376: ; preds = %Py_XDECREF.exit374 - %158 = load i64, ptr %inline_state.sroa.7.7467476, align 8 - %159 = and i64 %158, 2147483648 - %cmp.i2.not.i377 = icmp eq i64 %159, 0 - br i1 %cmp.i2.not.i377, label %if.end.i.i379, label %Py_XDECREF.exit383 - -if.end.i.i379: ; preds = %if.then.i376 - %dec.i.i380 = add i64 %158, -1 - store i64 %dec.i.i380, ptr %inline_state.sroa.7.7467476, align 8 - %cmp.i.i381 = icmp eq i64 %dec.i.i380, 0 - br i1 %cmp.i.i381, label %if.then1.i.i382, label %Py_XDECREF.exit383 - -if.then1.i.i382: ; preds = %if.end.i.i379 - call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.7.7467476) #12 - br label %Py_XDECREF.exit383 - -Py_XDECREF.exit383: ; preds = %Py_XDECREF.exit374, %if.then.i376, %if.end.i.i379, %if.then1.i.i382 - %cmp.not.i384 = icmp eq ptr %inline_state.sroa.11.7468475, null - br i1 %cmp.not.i384, label %return, label %if.then.i385 - -if.then.i385: ; preds = %Py_XDECREF.exit383 - %160 = load i64, ptr %inline_state.sroa.11.7468475, align 8 - %161 = and i64 %160, 2147483648 - %cmp.i2.not.i386 = icmp eq i64 %161, 0 - br i1 %cmp.i2.not.i386, label %if.end.i.i388, label %return - -if.end.i.i388: ; preds = %if.then.i385 - %dec.i.i389 = add i64 %160, -1 - store i64 %dec.i.i389, ptr %inline_state.sroa.11.7468475, align 8 - %cmp.i.i390 = icmp eq i64 %dec.i.i389, 0 - br i1 %cmp.i.i390, label %if.then1.i.i391, label %return - -if.then1.i.i391: ; preds = %if.end.i.i388 - call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.11.7468475) #12 - br label %return - -return: ; preds = %land.end, %switch.lookup, %instr_sequence_next_inst.exit.i.i, %if.then1.i.i391, %if.end.i.i388, %if.then.i385, %Py_XDECREF.exit383, %pop_inlined_comprehension_state.exit.thread455, %pop_inlined_comprehension_state.exit.thread452, %if.end155, %if.end150, %if.then144, %if.end134, %if.then74, %if.then53, %if.end160 - %retval.0 = phi i32 [ 0, %if.end160 ], [ -1, %if.then53 ], [ -1, %if.then74 ], [ -1, %if.end134 ], [ -1, %if.then144 ], [ -1, %if.end150 ], [ -1, %if.end155 ], [ 0, %pop_inlined_comprehension_state.exit.thread452 ], [ 0, %pop_inlined_comprehension_state.exit.thread455 ], [ -1, %Py_XDECREF.exit383 ], [ -1, %if.then.i385 ], [ -1, %if.end.i.i388 ], [ -1, %if.then1.i.i391 ], [ -1, %instr_sequence_next_inst.exit.i.i ], [ -1, %switch.lookup ], [ -1, %land.end ] + br label %Py_XDECREF.exit381 + +if.then.i367: ; preds = %if.end110 + br i1 %cmp.i2.not.i, label %if.end.i.i369, label %Py_XDECREF.exit381 + +if.end.i.i369: ; preds = %if.then.i367 + %dec.i.i370 = add i64 %149, -1 + store i64 %dec.i.i370, ptr %call97, align 8 + %cmp.i.i371 = icmp eq i64 %dec.i.i370, 0 + br i1 %cmp.i.i371, label %if.then1.i.i372, label %Py_XDECREF.exit381 + +if.then1.i.i372: ; preds = %if.end.i.i369 + call void @_Py_Dealloc(ptr noundef nonnull %call97) #11 + br label %Py_XDECREF.exit381 + +if.then.i374: ; preds = %if.else.i, %instr_sequence_next_inst.exit.i.i414, %if.then1.i295, %instr_sequence_next_inst.exit.i.i429, %if.then13, %push_inlined_comprehension_state.exit.thread, %if.else + %inline_state.sroa.0.6.ph = phi ptr [ %inline_state.sroa.0.4.ph, %push_inlined_comprehension_state.exit.thread ], [ null, %if.else ], [ null, %if.then13 ], [ null, %instr_sequence_next_inst.exit.i.i429 ], [ null, %if.then1.i295 ], [ null, %instr_sequence_next_inst.exit.i.i414 ], [ null, %if.else.i ] + %inline_state.sroa.7.7.ph = phi ptr [ %inline_state.sroa.7.5.ph, %push_inlined_comprehension_state.exit.thread ], [ null, %if.else ], [ null, %if.then13 ], [ null, %instr_sequence_next_inst.exit.i.i429 ], [ null, %if.then1.i295 ], [ null, %instr_sequence_next_inst.exit.i.i414 ], [ null, %if.else.i ] + %inline_state.sroa.11.7.ph = phi ptr [ %inline_state.sroa.11.5.ph, %push_inlined_comprehension_state.exit.thread ], [ null, %if.else ], [ null, %if.then13 ], [ null, %instr_sequence_next_inst.exit.i.i429 ], [ null, %if.then1.i295 ], [ null, %instr_sequence_next_inst.exit.i.i414 ], [ null, %if.else.i ] + %155 = load i64, ptr %call, align 8 + %156 = and i64 %155, 2147483648 + %cmp.i2.not.i375 = icmp eq i64 %156, 0 + br i1 %cmp.i2.not.i375, label %if.end.i.i377, label %Py_XDECREF.exit381 + +if.end.i.i377: ; preds = %if.then.i374 + %dec.i.i378 = add i64 %155, -1 + store i64 %dec.i.i378, ptr %call, align 8 + %cmp.i.i379 = icmp eq i64 %dec.i.i378, 0 + br i1 %cmp.i.i379, label %if.then1.i.i380, label %Py_XDECREF.exit381 + +if.then1.i.i380: ; preds = %if.end.i.i377 + call void @_Py_Dealloc(ptr noundef nonnull %call) #11 + br label %Py_XDECREF.exit381 + +Py_XDECREF.exit381: ; preds = %error_in_scope, %if.then162, %pop_inlined_comprehension_state.exit, %if.end107, %do.end130, %pop_inlined_comprehension_state.exit.thread, %if.then1.i.i372, %if.end.i.i369, %if.then.i367, %if.then.i374, %if.end.i.i377, %if.then1.i.i380 + %inline_state.sroa.0.6484495 = phi ptr [ %inline_state.sroa.0.6.ph, %if.then.i374 ], [ %inline_state.sroa.0.6.ph, %if.end.i.i377 ], [ %inline_state.sroa.0.6.ph, %if.then1.i.i380 ], [ %inline_state.sroa.0.5, %if.then.i367 ], [ %inline_state.sroa.0.5, %if.end.i.i369 ], [ %inline_state.sroa.0.5, %if.then1.i.i372 ], [ %inline_state.sroa.0.5, %if.then162 ], [ %inline_state.sroa.0.5, %error_in_scope ], [ %inline_state.sroa.0.5, %if.end107 ], [ %inline_state.sroa.0.5, %do.end130 ], [ %inline_state.sroa.0.5, %pop_inlined_comprehension_state.exit ], [ %inline_state.sroa.0.5, %pop_inlined_comprehension_state.exit.thread ] + %inline_state.sroa.7.7485494 = phi ptr [ %inline_state.sroa.7.7.ph, %if.then.i374 ], [ %inline_state.sroa.7.7.ph, %if.end.i.i377 ], [ %inline_state.sroa.7.7.ph, %if.then1.i.i380 ], [ %inline_state.sroa.7.6, %if.then.i367 ], [ %inline_state.sroa.7.6, %if.end.i.i369 ], [ %inline_state.sroa.7.6, %if.then1.i.i372 ], [ %inline_state.sroa.7.6, %if.then162 ], [ %inline_state.sroa.7.6, %error_in_scope ], [ %inline_state.sroa.7.6, %if.end107 ], [ %inline_state.sroa.7.6, %do.end130 ], [ %inline_state.sroa.7.6, %pop_inlined_comprehension_state.exit ], [ %inline_state.sroa.7.6, %pop_inlined_comprehension_state.exit.thread ] + %inline_state.sroa.11.7486493 = phi ptr [ %inline_state.sroa.11.7.ph, %if.then.i374 ], [ %inline_state.sroa.11.7.ph, %if.end.i.i377 ], [ %inline_state.sroa.11.7.ph, %if.then1.i.i380 ], [ %inline_state.sroa.11.6, %if.then.i367 ], [ %inline_state.sroa.11.6, %if.end.i.i369 ], [ %inline_state.sroa.11.6, %if.then1.i.i372 ], [ %inline_state.sroa.11.6, %if.then162 ], [ %inline_state.sroa.11.6, %error_in_scope ], [ %inline_state.sroa.11.6, %if.end107 ], [ %inline_state.sroa.11.6, %do.end130 ], [ %inline_state.sroa.11.6, %pop_inlined_comprehension_state.exit ], [ %inline_state.sroa.11.6, %pop_inlined_comprehension_state.exit.thread ] + %cmp.not.i382 = icmp eq ptr %inline_state.sroa.0.6484495, null + br i1 %cmp.not.i382, label %Py_XDECREF.exit390, label %if.then.i383 + +if.then.i383: ; preds = %Py_XDECREF.exit381 + %157 = load i64, ptr %inline_state.sroa.0.6484495, align 8 + %158 = and i64 %157, 2147483648 + %cmp.i2.not.i384 = icmp eq i64 %158, 0 + br i1 %cmp.i2.not.i384, label %if.end.i.i386, label %Py_XDECREF.exit390 + +if.end.i.i386: ; preds = %if.then.i383 + %dec.i.i387 = add i64 %157, -1 + store i64 %dec.i.i387, ptr %inline_state.sroa.0.6484495, align 8 + %cmp.i.i388 = icmp eq i64 %dec.i.i387, 0 + br i1 %cmp.i.i388, label %if.then1.i.i389, label %Py_XDECREF.exit390 + +if.then1.i.i389: ; preds = %if.end.i.i386 + call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.0.6484495) #11 + br label %Py_XDECREF.exit390 + +Py_XDECREF.exit390: ; preds = %Py_XDECREF.exit381, %if.then.i383, %if.end.i.i386, %if.then1.i.i389 + %cmp.not.i391 = icmp eq ptr %inline_state.sroa.7.7485494, null + br i1 %cmp.not.i391, label %Py_XDECREF.exit399, label %if.then.i392 + +if.then.i392: ; preds = %Py_XDECREF.exit390 + %159 = load i64, ptr %inline_state.sroa.7.7485494, align 8 + %160 = and i64 %159, 2147483648 + %cmp.i2.not.i393 = icmp eq i64 %160, 0 + br i1 %cmp.i2.not.i393, label %if.end.i.i395, label %Py_XDECREF.exit399 + +if.end.i.i395: ; preds = %if.then.i392 + %dec.i.i396 = add i64 %159, -1 + store i64 %dec.i.i396, ptr %inline_state.sroa.7.7485494, align 8 + %cmp.i.i397 = icmp eq i64 %dec.i.i396, 0 + br i1 %cmp.i.i397, label %if.then1.i.i398, label %Py_XDECREF.exit399 + +if.then1.i.i398: ; preds = %if.end.i.i395 + call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.7.7485494) #11 + br label %Py_XDECREF.exit399 + +Py_XDECREF.exit399: ; preds = %Py_XDECREF.exit390, %if.then.i392, %if.end.i.i395, %if.then1.i.i398 + %cmp.not.i400 = icmp eq ptr %inline_state.sroa.11.7486493, null + br i1 %cmp.not.i400, label %return, label %if.then.i401 + +if.then.i401: ; preds = %Py_XDECREF.exit399 + %161 = load i64, ptr %inline_state.sroa.11.7486493, align 8 + %162 = and i64 %161, 2147483648 + %cmp.i2.not.i402 = icmp eq i64 %162, 0 + br i1 %cmp.i2.not.i402, label %if.end.i.i404, label %return + +if.end.i.i404: ; preds = %if.then.i401 + %dec.i.i405 = add i64 %161, -1 + store i64 %dec.i.i405, ptr %inline_state.sroa.11.7486493, align 8 + %cmp.i.i406 = icmp eq i64 %dec.i.i405, 0 + br i1 %cmp.i.i406, label %if.then1.i.i407, label %return + +if.then1.i.i407: ; preds = %if.end.i.i404 + call void @_Py_Dealloc(ptr noundef nonnull %inline_state.sroa.11.7486493) #11 + br label %return + +return: ; preds = %land.end, %if.then53, %instr_sequence_next_inst.exit.i.i312, %if.then43, %instr_sequence_next_inst.exit.i.i, %if.then1.i.i407, %if.end.i.i404, %if.then.i401, %Py_XDECREF.exit399, %pop_inlined_comprehension_state.exit.thread473, %pop_inlined_comprehension_state.exit.thread470, %if.end155, %if.end150, %if.then144, %if.end134, %if.then74, %if.end160 + %retval.0 = phi i32 [ 0, %if.end160 ], [ -1, %if.then74 ], [ -1, %if.end134 ], [ -1, %if.then144 ], [ -1, %if.end150 ], [ -1, %if.end155 ], [ 0, %pop_inlined_comprehension_state.exit.thread470 ], [ 0, %pop_inlined_comprehension_state.exit.thread473 ], [ -1, %Py_XDECREF.exit399 ], [ -1, %if.then.i401 ], [ -1, %if.end.i.i404 ], [ -1, %if.then1.i.i407 ], [ -1, %instr_sequence_next_inst.exit.i.i ], [ -1, %if.then43 ], [ -1, %instr_sequence_next_inst.exit.i.i312 ], [ -1, %if.then53 ], [ -1, %land.end ] ret i32 %retval.0 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_comprehension_iter(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %comp) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_comprehension_iter(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr nocapture noundef readonly %comp) unnamed_addr #1 { entry: %iter = getelementptr inbounds %struct._comprehension, ptr %comp, i64 0, i32 1 %0 = load ptr, ptr %iter, align 8 @@ -33239,7 +33253,7 @@ return: ; preds = %return.sink.split, } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_comprehension_generator(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %generators, i32 noundef %gen_index, i32 noundef %depth, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %iter_on_stack) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_comprehension_generator(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %generators, i32 noundef %gen_index, i32 noundef %depth, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %iter_on_stack) unnamed_addr #1 { entry: %idxprom = sext i32 %gen_index to i64 %arrayidx = getelementptr %struct.asdl_comprehension_seq, ptr %generators, i64 0, i32 2, i64 %idxprom @@ -33265,7 +33279,7 @@ return: ; preds = %if.else, %if.then declare i32 @PyDict_Next(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_async_comprehension_generator(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %generators, i32 noundef %gen_index, i32 noundef %depth, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %iter_on_stack) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_async_comprehension_generator(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %generators, i32 noundef %gen_index, i32 noundef %depth, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %iter_on_stack) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -33584,7 +33598,9 @@ cond.end122: ; preds = %if.end111, %cond.fa br i1 %cmp124.not, label %if.end201, label %if.then126 if.then126: ; preds = %cond.end122 - switch i32 %type, label %return [ + %call127 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 + %cmp128 = icmp eq i32 %call127, -1 + switch i32 %type, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb144 i32 2, label %sw.bb158 @@ -33592,8 +33608,6 @@ if.then126: ; preds = %cond.end122 ] sw.bb: ; preds = %if.then126 - %call127 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp128 = icmp eq i32 %call127, -1 br i1 %cmp128, label %return, label %if.end131 if.end131: ; preds = %sw.bb @@ -33617,9 +33631,7 @@ if.end136: ; preds = %if.end131 br i1 %cmp140, label %return, label %if.end201 sw.bb144: ; preds = %if.then126 - %call145 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp146 = icmp eq i32 %call145, -1 - br i1 %cmp146, label %return, label %if.end149 + br i1 %cmp128, label %return, label %if.end149 if.end149: ; preds = %sw.bb144 %51 = load ptr, ptr %u, align 8 @@ -33639,9 +33651,7 @@ if.end149: ; preds = %sw.bb144 br i1 %cmp154, label %return, label %if.end201 sw.bb158: ; preds = %if.then126 - %call159 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp160 = icmp eq i32 %call159, -1 - br i1 %cmp160, label %return, label %if.end163 + br i1 %cmp128, label %return, label %if.end163 if.end163: ; preds = %sw.bb158 %52 = load ptr, ptr %u, align 8 @@ -33661,9 +33671,7 @@ if.end163: ; preds = %sw.bb158 br i1 %cmp169, label %return, label %if.end201 sw.bb173: ; preds = %if.then126 - %call174 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp175 = icmp eq i32 %call174, -1 - br i1 %cmp175, label %return, label %if.end178 + br i1 %cmp128, label %return, label %if.end178 if.end178: ; preds = %sw.bb173 %call179 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef %val), !range !5 @@ -33693,6 +33701,9 @@ if.end183: ; preds = %if.end178 %cmp197 = icmp eq i32 %call196, -1 br i1 %cmp197, label %return, label %if.end201 +default.unreachable: ; preds = %if.then126 + unreachable + if.end201: ; preds = %if.end136, %if.end149, %if.end163, %if.end183, %cond.end122 %elt_loc.sroa.18.0 = phi i32 [ %56, %if.end183 ], [ %48, %if.end163 ], [ %48, %if.end149 ], [ %48, %if.end136 ], [ %48, %cond.end122 ] %elt_loc.sroa.10.0 = phi i32 [ %55, %if.end183 ], [ %47, %if.end163 ], [ %47, %if.end149 ], [ %47, %if.end136 ], [ %47, %cond.end122 ] @@ -33739,13 +33750,13 @@ if.end226: ; preds = %if.end217 %. = sext i1 %cmp230 to i32 br label %return -return: ; preds = %for.body, %if.end57, %instr_sequence_next_inst.exit.i.i228, %if.end50, %instr_sequence_next_inst.exit.i.i213, %if.end38, %if.end30, %instr_sequence_next_inst.exit.i.i193, %if.then19, %instr_sequence_next_inst.exit.i.i, %compiler_push_fblock.exit.thread, %if.end226, %if.end217, %if.end209, %if.end201, %if.then126, %if.end183, %if.end178, %sw.bb173, %if.end163, %sw.bb158, %if.end149, %sw.bb144, %if.end136, %if.end131, %sw.bb, %if.then105, %if.end78, %if.end72, %if.end68, %if.end63, %if.else, %if.end8, %if.end, %entry - %retval.0 = phi i32 [ -1, %entry ], [ -1, %if.end ], [ -1, %if.end8 ], [ -1, %if.else ], [ -1, %if.end63 ], [ -1, %if.end68 ], [ -1, %if.end72 ], [ -1, %if.end78 ], [ -1, %if.then105 ], [ -1, %sw.bb ], [ -1, %if.end131 ], [ -1, %if.end136 ], [ -1, %sw.bb144 ], [ -1, %if.end149 ], [ -1, %sw.bb158 ], [ -1, %if.end163 ], [ -1, %sw.bb173 ], [ -1, %if.end178 ], [ -1, %if.end183 ], [ -1, %if.then126 ], [ -1, %if.end201 ], [ -1, %if.end209 ], [ -1, %if.end217 ], [ %., %if.end226 ], [ -1, %compiler_push_fblock.exit.thread ], [ -1, %instr_sequence_next_inst.exit.i.i ], [ -1, %if.then19 ], [ -1, %instr_sequence_next_inst.exit.i.i193 ], [ -1, %if.end30 ], [ -1, %if.end38 ], [ -1, %instr_sequence_next_inst.exit.i.i213 ], [ -1, %if.end50 ], [ -1, %instr_sequence_next_inst.exit.i.i228 ], [ -1, %if.end57 ], [ -1, %for.body ] +return: ; preds = %for.body, %if.end57, %instr_sequence_next_inst.exit.i.i228, %if.end50, %instr_sequence_next_inst.exit.i.i213, %if.end38, %if.end30, %instr_sequence_next_inst.exit.i.i193, %if.then19, %instr_sequence_next_inst.exit.i.i, %compiler_push_fblock.exit.thread, %if.end226, %if.end217, %if.end209, %if.end201, %if.end183, %if.end178, %sw.bb173, %if.end163, %sw.bb158, %if.end149, %sw.bb144, %if.end136, %if.end131, %sw.bb, %if.then105, %if.end78, %if.end72, %if.end68, %if.end63, %if.else, %if.end8, %if.end, %entry + %retval.0 = phi i32 [ -1, %entry ], [ -1, %if.end ], [ -1, %if.end8 ], [ -1, %if.else ], [ -1, %if.end63 ], [ -1, %if.end68 ], [ -1, %if.end72 ], [ -1, %if.end78 ], [ -1, %if.then105 ], [ -1, %sw.bb ], [ -1, %if.end131 ], [ -1, %if.end136 ], [ -1, %sw.bb144 ], [ -1, %if.end149 ], [ -1, %sw.bb158 ], [ -1, %if.end163 ], [ -1, %sw.bb173 ], [ -1, %if.end178 ], [ -1, %if.end183 ], [ -1, %if.end201 ], [ -1, %if.end209 ], [ -1, %if.end217 ], [ %., %if.end226 ], [ -1, %compiler_push_fblock.exit.thread ], [ -1, %instr_sequence_next_inst.exit.i.i ], [ -1, %if.then19 ], [ -1, %instr_sequence_next_inst.exit.i.i193 ], [ -1, %if.end30 ], [ -1, %if.end38 ], [ -1, %instr_sequence_next_inst.exit.i.i213 ], [ -1, %if.end50 ], [ -1, %instr_sequence_next_inst.exit.i.i228 ], [ -1, %if.end57 ], [ -1, %for.body ] ret i32 %retval.0 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @compiler_sync_comprehension_generator(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %generators, i32 noundef %gen_index, i32 noundef %depth, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %iter_on_stack) unnamed_addr #1 { +define internal fastcc noundef i32 @compiler_sync_comprehension_generator(ptr noundef %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef %generators, i32 noundef %gen_index, i32 noundef %depth, ptr noundef %elt, ptr noundef %val, i32 noundef %type, i32 noundef %iter_on_stack) unnamed_addr #1 { entry: %u = getelementptr inbounds %struct.compiler, ptr %c, i64 0, i32 8 %0 = load ptr, ptr %u, align 8 @@ -34042,7 +34053,9 @@ cond.end131: ; preds = %cond.end110.thread, br i1 %cmp133.not, label %if.end213, label %if.then135 if.then135: ; preds = %cond.end131 - switch i32 %type, label %return [ + %call137 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 + %cmp138 = icmp eq i32 %call137, -1 + switch i32 %type, label %default.unreachable [ i32 0, label %sw.bb136 i32 1, label %sw.bb154 i32 2, label %sw.bb168 @@ -34050,8 +34063,6 @@ if.then135: ; preds = %cond.end131 ] sw.bb136: ; preds = %if.then135 - %call137 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp138 = icmp eq i32 %call137, -1 br i1 %cmp138, label %return, label %if.end141 if.end141: ; preds = %sw.bb136 @@ -34075,9 +34086,7 @@ if.end146: ; preds = %if.end141 br i1 %cmp150, label %return, label %if.end213 sw.bb154: ; preds = %if.then135 - %call155 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp156 = icmp eq i32 %call155, -1 - br i1 %cmp156, label %return, label %if.end159 + br i1 %cmp138, label %return, label %if.end159 if.end159: ; preds = %sw.bb154 %47 = load ptr, ptr %u, align 8 @@ -34097,9 +34106,7 @@ if.end159: ; preds = %sw.bb154 br i1 %cmp164, label %return, label %if.end213 sw.bb168: ; preds = %if.then135 - %call169 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp170 = icmp eq i32 %call169, -1 - br i1 %cmp170, label %return, label %if.end173 + br i1 %cmp138, label %return, label %if.end173 if.end173: ; preds = %sw.bb168 %48 = load ptr, ptr %u, align 8 @@ -34119,9 +34126,7 @@ if.end173: ; preds = %sw.bb168 br i1 %cmp179, label %return, label %if.end213 sw.bb183: ; preds = %if.then135 - %call184 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef nonnull %elt), !range !5 - %cmp185 = icmp eq i32 %call184, -1 - br i1 %cmp185, label %return, label %if.end188 + br i1 %cmp138, label %return, label %if.end188 if.end188: ; preds = %sw.bb183 %call189 = tail call fastcc i32 @compiler_visit_expr(ptr noundef %c, ptr noundef %val), !range !5 @@ -34151,6 +34156,9 @@ if.end193: ; preds = %if.end188 %cmp207 = icmp eq i32 %call206, -1 br i1 %cmp207, label %return, label %if.end213 +default.unreachable: ; preds = %if.then135 + unreachable + if.end213: ; preds = %if.end146, %if.end159, %if.end173, %if.end193, %cond.end131 %elt_loc.sroa.18.0 = phi i32 [ %52, %if.end193 ], [ %45, %if.end173 ], [ %45, %if.end159 ], [ %45, %if.end146 ], [ %45, %cond.end131 ] %elt_loc.sroa.10.0 = phi i32 [ %51, %if.end193 ], [ %44, %if.end173 ], [ %44, %if.end159 ], [ %44, %if.end146 ], [ %44, %cond.end131 ] @@ -34225,13 +34233,13 @@ if.end241: ; preds = %if.end233 if.end249: ; preds = %if.end241, %if.end221 br label %return -return: ; preds = %for.body, %if.end213, %if.end74, %instr_sequence_next_inst.exit.i.i197, %if.then67, %if.end55, %instr_sequence_next_inst.exit.i.i182, %if.then19, %instr_sequence_next_inst.exit.i.i, %if.end241, %if.end233, %if.then225, %if.then135, %if.end193, %if.end188, %sw.bb183, %if.end173, %sw.bb168, %if.end159, %sw.bb154, %if.end146, %if.end141, %sw.bb136, %compiler_comprehension_generator.exit, %if.end82, %if.then50, %if.then41, %if.end8, %if.end, %entry, %if.end249 - %retval.0 = phi i32 [ 0, %if.end249 ], [ -1, %entry ], [ -1, %if.end ], [ -1, %if.end8 ], [ -1, %if.then41 ], [ -1, %if.then50 ], [ -1, %if.end82 ], [ -1, %compiler_comprehension_generator.exit ], [ -1, %sw.bb136 ], [ -1, %if.end141 ], [ -1, %if.end146 ], [ -1, %sw.bb154 ], [ -1, %if.end159 ], [ -1, %sw.bb168 ], [ -1, %if.end173 ], [ -1, %sw.bb183 ], [ -1, %if.end188 ], [ -1, %if.end193 ], [ -1, %if.then135 ], [ -1, %if.then225 ], [ -1, %if.end233 ], [ -1, %if.end241 ], [ -1, %instr_sequence_next_inst.exit.i.i ], [ -1, %if.then19 ], [ -1, %instr_sequence_next_inst.exit.i.i182 ], [ -1, %if.end55 ], [ -1, %if.then67 ], [ -1, %instr_sequence_next_inst.exit.i.i197 ], [ -1, %if.end74 ], [ -1, %if.end213 ], [ -1, %for.body ] +return: ; preds = %for.body, %if.end213, %if.end74, %instr_sequence_next_inst.exit.i.i197, %if.then67, %if.end55, %instr_sequence_next_inst.exit.i.i182, %if.then19, %instr_sequence_next_inst.exit.i.i, %if.end241, %if.end233, %if.then225, %if.end193, %if.end188, %sw.bb183, %if.end173, %sw.bb168, %if.end159, %sw.bb154, %if.end146, %if.end141, %sw.bb136, %compiler_comprehension_generator.exit, %if.end82, %if.then50, %if.then41, %if.end8, %if.end, %entry, %if.end249 + %retval.0 = phi i32 [ 0, %if.end249 ], [ -1, %entry ], [ -1, %if.end ], [ -1, %if.end8 ], [ -1, %if.then41 ], [ -1, %if.then50 ], [ -1, %if.end82 ], [ -1, %compiler_comprehension_generator.exit ], [ -1, %sw.bb136 ], [ -1, %if.end141 ], [ -1, %if.end146 ], [ -1, %sw.bb154 ], [ -1, %if.end159 ], [ -1, %sw.bb168 ], [ -1, %if.end173 ], [ -1, %sw.bb183 ], [ -1, %if.end188 ], [ -1, %if.end193 ], [ -1, %if.then225 ], [ -1, %if.end233 ], [ -1, %if.end241 ], [ -1, %instr_sequence_next_inst.exit.i.i ], [ -1, %if.then19 ], [ -1, %instr_sequence_next_inst.exit.i.i182 ], [ -1, %if.end55 ], [ -1, %if.then67 ], [ -1, %instr_sequence_next_inst.exit.i.i197 ], [ -1, %if.end74 ], [ -1, %if.end213 ], [ -1, %for.body ] ret i32 %retval.0 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @restore_inlined_comprehension_locals(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr %state.0.val) unnamed_addr #1 { +define internal fastcc noundef i32 @restore_inlined_comprehension_locals(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr %state.0.val) unnamed_addr #1 { entry: %0 = getelementptr i8, ptr %state.0.val, i64 16 %.val = load i64, ptr %0, align 8 @@ -34275,7 +34283,7 @@ for.cond: ; preds = %codegen_addop_i.exi br i1 %cmp2, label %for.body, label %return for.body: ; preds = %for.cond - %call4 = tail call ptr @PyList_GetItem(ptr noundef %state.0.val, i64 noundef %i.0) #12 + %call4 = tail call ptr @PyList_GetItem(ptr noundef %state.0.val, i64 noundef %i.0) #11 %cmp5 = icmp eq ptr %call4, null br i1 %cmp5, label %return, label %if.end7 @@ -34303,7 +34311,7 @@ declare i64 @_PyST_GetSymbol(ptr noundef, ptr noundef) local_unnamed_addr #2 declare i32 @PyType_IsSubtype(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @unpack_helper(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %elts) unnamed_addr #1 { +define internal fastcc noundef i32 @unpack_helper(ptr nocapture noundef readonly %c, i64 %loc.coerce0, i64 %loc.coerce1, ptr noundef readonly %elts) unnamed_addr #1 { entry: %cmp = icmp eq ptr %elts, null br i1 %cmp, label %if.then20, label %cond.end @@ -34448,34 +34456,33 @@ declare void @PyErr_SetRaisedException(ptr noundef) local_unnamed_addr #2 declare i32 @_PyCfg_ToInstructionSequence(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.smin.i64(i64, i64) #10 +declare i64 @llvm.smin.i64(i64, i64) #9 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smax.i32(i32, i32) #10 +declare i32 @llvm.smax.i32(i32, i32) #9 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #11 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #10 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #11 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #10 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.smax.i64(i64, i64) #10 +declare i64 @llvm.smax.i64(i64, i64) #9 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "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 = { nounwind uwtable "frame-pointer"="all" "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 #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #5 = { mustprogress nofree nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #8 = { mustprogress nocallback nofree nosync nounwind willreturn } -attributes #9 = { mustprogress nofree nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #11 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #12 = { nounwind } -attributes #13 = { "function-inline-cost-multiplier"="2" } +attributes #5 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn } +attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #10 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #11 = { nounwind } +attributes #12 = { "function-inline-cost-multiplier"="2" } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/cpython/optimized/mem.ll b/bench/cpython/optimized/mem.ll index 7b2146d0490..630a90f4d4f 100644 --- a/bench/cpython/optimized/mem.ll +++ b/bench/cpython/optimized/mem.ll @@ -92,7 +92,7 @@ declare i32 @PyModule_AddFunctions(ptr noundef, ptr noundef) local_unnamed_addr declare i32 @PyModule_AddObjectRef(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal nonnull ptr @pymem_api_misuse(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { +define internal noundef nonnull ptr @pymem_api_misuse(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { entry: %call = tail call ptr @PyMem_Malloc(i64 noundef 16) #4 tail call void @PyMem_RawFree(ptr noundef %call) #4 @@ -100,7 +100,7 @@ entry: } ; Function Attrs: nounwind uwtable -define internal ptr @pymem_buffer_overflow(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { +define internal noundef ptr @pymem_buffer_overflow(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { entry: %call = tail call ptr @PyMem_Malloc(i64 noundef 16) #4 %cmp = icmp eq ptr %call, null @@ -122,7 +122,7 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: nounwind uwtable -define internal nonnull ptr @pymem_malloc_without_gil(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { +define internal noundef nonnull ptr @pymem_malloc_without_gil(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { entry: %call = tail call ptr @PyEval_SaveThread() #4 %call1 = tail call ptr @PyMem_Malloc(i64 noundef 10) #4 @@ -132,7 +132,7 @@ entry: } ; Function Attrs: nounwind uwtable -define internal nonnull ptr @pyobject_malloc_without_gil(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { +define internal noundef nonnull ptr @pyobject_malloc_without_gil(ptr nocapture readnone %self, ptr nocapture readnone %args) #0 { entry: %call = tail call ptr @PyEval_SaveThread() #4 %call1 = tail call ptr @PyObject_Malloc(i64 noundef 10) #4 @@ -142,7 +142,7 @@ entry: } ; Function Attrs: nounwind uwtable -define internal nonnull ptr @remove_mem_hooks(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { +define internal noundef nonnull ptr @remove_mem_hooks(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { entry: %0 = load i32, ptr @FmHook, align 8 %tobool.not.i = icmp eq i32 %0, 0 @@ -160,7 +160,7 @@ fm_remove_hooks.exit: ; preds = %entry, %if.then.i } ; Function Attrs: nounwind uwtable -define internal ptr @set_nomemory(ptr nocapture readnone %self, ptr noundef %args) #0 { +define internal noundef ptr @set_nomemory(ptr nocapture readnone %self, ptr noundef %args) #0 { entry: %alloc.i = alloca %struct.PyMemAllocatorEx, align 8 store i64 0, ptr getelementptr inbounds (%struct.anon.0, ptr @FmData, i64 0, i32 2), align 8 @@ -206,7 +206,7 @@ return: ; preds = %entry, %fm_setup_ho } ; Function Attrs: nounwind uwtable -define internal ptr @test_pymem_alloc0(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { +define internal noundef ptr @test_pymem_alloc0(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { entry: %call = tail call ptr @PyMem_RawMalloc(i64 noundef 0) #4 %cmp = icmp eq ptr %call, null @@ -282,21 +282,21 @@ return: ; preds = %if.end20, %if.then1 } ; Function Attrs: nounwind uwtable -define internal ptr @test_pymem_setallocators(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { +define internal noundef ptr @test_pymem_setallocators(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { entry: %call = tail call fastcc ptr @test_setallocators(i32 noundef 1) ret ptr %call } ; Function Attrs: nounwind uwtable -define internal ptr @test_pymem_setrawallocators(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { +define internal noundef ptr @test_pymem_setrawallocators(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { entry: %call = tail call fastcc ptr @test_setallocators(i32 noundef 0) ret ptr %call } ; Function Attrs: nounwind uwtable -define internal ptr @test_pyobject_new(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { +define internal noundef ptr @test_pyobject_new(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { entry: %call = tail call ptr @_PyObject_New(ptr noundef nonnull @PyBaseObject_Type) #4 %cmp = icmp eq ptr %call, null @@ -391,14 +391,14 @@ return: ; preds = %if.end.i, %if.then1 } ; Function Attrs: nounwind uwtable -define internal ptr @test_pyobject_setallocators(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { +define internal noundef ptr @test_pyobject_setallocators(ptr nocapture readnone %self, ptr nocapture readnone %_unused_ignored) #0 { entry: %call = tail call fastcc ptr @test_setallocators(i32 noundef 2) ret ptr %call } ; Function Attrs: nounwind uwtable -define internal ptr @tracemalloc_track(ptr nocapture readnone %self, ptr noundef %args) #0 { +define internal noundef ptr @tracemalloc_track(ptr nocapture readnone %self, ptr noundef %args) #0 { entry: %domain = alloca i32, align 4 %ptr_obj = alloca ptr, align 8 @@ -453,7 +453,7 @@ return: ; preds = %if.end11, %if.end, } ; Function Attrs: nounwind uwtable -define internal ptr @tracemalloc_untrack(ptr nocapture readnone %self, ptr noundef %args) #0 { +define internal noundef ptr @tracemalloc_untrack(ptr nocapture readnone %self, ptr noundef %args) #0 { entry: %domain = alloca i32, align 4 %ptr_obj = alloca ptr, align 8 @@ -621,7 +621,7 @@ declare ptr @PyMem_Calloc(i64 noundef, i64 noundef) local_unnamed_addr #1 declare ptr @PyObject_Calloc(i64 noundef, i64 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal fastcc ptr @test_setallocators(i32 noundef %domain) unnamed_addr #0 { +define internal fastcc noundef ptr @test_setallocators(i32 noundef %domain) unnamed_addr #0 { entry: %hook = alloca %struct.alloc_hook_t, align 8 %alloc = alloca %struct.PyMemAllocatorEx, align 8 @@ -639,7 +639,7 @@ entry: call void @PyMem_SetAllocator(i32 noundef %domain, ptr noundef nonnull %alloc) #4 %ctx2 = getelementptr inbounds %struct.alloc_hook_t, ptr %hook, i64 0, i32 7 store ptr null, ptr %ctx2, align 8 - switch i32 %domain, label %fail [ + switch i32 %domain, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb3 i32 2, label %sw.bb5 @@ -657,6 +657,9 @@ sw.bb5: ; preds = %entry %call6 = call ptr @PyObject_Malloc(i64 noundef 42) #4 br label %sw.epilog +default.unreachable: ; preds = %if.end67, %if.end46, %if.end34, %if.end14, %entry + unreachable + sw.epilog: ; preds = %sw.bb5, %sw.bb3, %sw.bb %ptr.0 = phi ptr [ %call6, %sw.bb5 ], [ %call4, %sw.bb3 ], [ %call, %sw.bb ] %cmp = icmp eq ptr %ptr.0, null @@ -675,7 +678,7 @@ if.end10: ; preds = %if.end br i1 %cmp12.not, label %if.end14, label %fail if.end14: ; preds = %if.end10 - switch i32 %domain, label %fail [ + switch i32 %domain, label %default.unreachable [ i32 0, label %sw.bb15 i32 1, label %sw.bb17 i32 2, label %sw.bb19 @@ -715,7 +718,7 @@ if.end29: ; preds = %if.end25 br i1 %or.cond, label %if.end34, label %fail if.end34: ; preds = %if.end29 - switch i32 %domain, label %sw.epilog38 [ + switch i32 %domain, label %default.unreachable [ i32 0, label %sw.bb35 i32 1, label %sw.bb36 i32 2, label %sw.bb37 @@ -733,7 +736,7 @@ sw.bb37: ; preds = %if.end34 call void @PyObject_Free(ptr noundef nonnull %ptr2.0) #4 br label %sw.epilog38 -sw.epilog38: ; preds = %sw.bb37, %sw.bb36, %sw.bb35, %if.end34 +sw.epilog38: ; preds = %sw.bb37, %sw.bb36, %sw.bb35 %5 = load ptr, ptr %ctx2, align 8 %cmp40.not = icmp eq ptr %5, %hook br i1 %cmp40.not, label %if.end42, label %fail @@ -746,7 +749,7 @@ if.end42: ; preds = %sw.epilog38 br i1 %cmp44.not, label %if.end46, label %fail if.end46: ; preds = %if.end42 - switch i32 %domain, label %fail [ + switch i32 %domain, label %default.unreachable [ i32 0, label %sw.bb47 i32 1, label %sw.bb49 i32 2, label %sw.bb51 @@ -787,7 +790,7 @@ if.end61: ; preds = %if.end57 if.end67: ; preds = %if.end61 store ptr null, ptr %free_ptr, align 8 - switch i32 %domain, label %sw.epilog72 [ + switch i32 %domain, label %default.unreachable [ i32 0, label %sw.bb69 i32 1, label %sw.bb70 i32 2, label %sw.bb71 @@ -805,7 +808,7 @@ sw.bb71: ; preds = %if.end67 call void @PyObject_Free(ptr noundef nonnull %ptr.1) #4 br label %sw.epilog72 -sw.epilog72: ; preds = %sw.bb71, %sw.bb70, %sw.bb69, %if.end67 +sw.epilog72: ; preds = %sw.bb71, %sw.bb70, %sw.bb69 %10 = load ptr, ptr %ctx2, align 8 %cmp74.not = icmp eq ptr %10, %hook br i1 %cmp74.not, label %if.end76, label %fail @@ -826,8 +829,8 @@ if.end.i.i: ; preds = %if.end81 store i32 %add.i.i, ptr @_Py_NoneStruct, align 8 br label %finally -fail: ; preds = %if.end46, %if.end14, %entry, %if.end76, %sw.epilog72, %if.end61, %if.end57, %sw.epilog54, %if.end42, %sw.epilog38, %if.end29, %if.end25, %sw.epilog22, %if.end10, %if.end, %sw.epilog - %error_msg.0 = phi ptr [ @.str.24, %sw.epilog ], [ @.str.25, %if.end ], [ @.str.26, %if.end10 ], [ @.str.27, %sw.epilog22 ], [ @.str.28, %if.end25 ], [ @.str.29, %if.end29 ], [ @.str.30, %sw.epilog38 ], [ @.str.31, %if.end42 ], [ @.str.32, %sw.epilog54 ], [ @.str.33, %if.end57 ], [ @.str.34, %if.end61 ], [ @.str.35, %sw.epilog72 ], [ @.str.36, %if.end76 ], [ @.str.24, %entry ], [ @.str.27, %if.end14 ], [ @.str.32, %if.end46 ] +fail: ; preds = %if.end76, %sw.epilog72, %if.end61, %if.end57, %sw.epilog54, %if.end42, %sw.epilog38, %if.end29, %if.end25, %sw.epilog22, %if.end10, %if.end, %sw.epilog + %error_msg.0 = phi ptr [ @.str.24, %sw.epilog ], [ @.str.25, %if.end ], [ @.str.26, %if.end10 ], [ @.str.27, %sw.epilog22 ], [ @.str.28, %if.end25 ], [ @.str.29, %if.end29 ], [ @.str.30, %sw.epilog38 ], [ @.str.31, %if.end42 ], [ @.str.32, %sw.epilog54 ], [ @.str.33, %if.end57 ], [ @.str.34, %if.end61 ], [ @.str.35, %sw.epilog72 ], [ @.str.36, %if.end76 ] %13 = load ptr, ptr @PyExc_RuntimeError, align 8 call void @PyErr_SetString(ptr noundef %13, ptr noundef nonnull %error_msg.0) #4 br label %finally diff --git a/bench/cpython/optimized/mpdecimal.ll b/bench/cpython/optimized/mpdecimal.ll index 8679302cee5..a393fd102df 100644 --- a/bench/cpython/optimized/mpdecimal.ll +++ b/bench/cpython/optimized/mpdecimal.ll @@ -28812,7 +28812,7 @@ if.then: ; preds = %entry br i1 %cmp1, label %if.then2, label %if.else if.then2: ; preds = %if.then - switch i64 %exp, label %if.end84 [ + switch i64 %exp, label %default.unreachable [ i64 0, label %sw.bb i64 1, label %sw.bb3 i64 2, label %sw.bb4 @@ -28853,7 +28853,7 @@ sw.bb12: ; preds = %if.then2 br label %if.end84.sink.split if.else: ; preds = %if.then - switch i64 %exp, label %if.end84 [ + switch i64 %exp, label %default.unreachable [ i64 5, label %sw.bb16 i64 6, label %sw.bb20 i64 7, label %sw.bb24 @@ -28901,7 +28901,7 @@ if.else37: ; preds = %entry br i1 %cmp38, label %if.then39, label %if.else61 if.then39: ; preds = %if.else37 - switch i64 %exp, label %if.end84 [ + switch i64 %exp, label %default.unreachable [ i64 10, label %sw.bb40 i64 11, label %sw.bb44 i64 12, label %sw.bb48 @@ -28989,12 +28989,15 @@ sw.bb78: ; preds = %if.else61 %sub81 = add i64 %mul80.neg, %v br label %if.end84.sink.split +default.unreachable: ; preds = %if.then39, %if.else, %if.then2 + unreachable + if.end84.sink.split: ; preds = %sw.bb16, %sw.bb20, %sw.bb24, %sw.bb28, %sw.bb32, %sw.bb, %sw.bb3, %sw.bb4, %sw.bb8, %sw.bb12, %sw.bb62, %sw.bb66, %sw.bb70, %sw.bb74, %sw.bb78, %sw.bb40, %sw.bb44, %sw.bb48, %sw.bb52, %sw.bb56 %sub59.sink = phi i64 [ %sub59, %sw.bb56 ], [ %sub55, %sw.bb52 ], [ %sub51, %sw.bb48 ], [ %sub47, %sw.bb44 ], [ %sub43, %sw.bb40 ], [ %sub81, %sw.bb78 ], [ %sub77, %sw.bb74 ], [ %sub73, %sw.bb70 ], [ %sub69, %sw.bb66 ], [ %sub65, %sw.bb62 ], [ %sub15, %sw.bb12 ], [ %sub11, %sw.bb8 ], [ %sub7, %sw.bb4 ], [ %sub, %sw.bb3 ], [ 0, %sw.bb ], [ %sub35, %sw.bb32 ], [ %sub31, %sw.bb28 ], [ %sub27, %sw.bb24 ], [ %sub23, %sw.bb20 ], [ %sub19, %sw.bb16 ] store i64 %sub59.sink, ptr %r, align 8 br label %if.end84 -if.end84: ; preds = %if.end84.sink.split, %if.then39, %if.else61, %if.then2, %if.else +if.end84: ; preds = %if.end84.sink.split, %if.else61 ret void } diff --git a/bench/duckdb/optimized/ub_duckdb_aggr_holistic.cpp.ll b/bench/duckdb/optimized/ub_duckdb_aggr_holistic.cpp.ll index 787ec910dee..fcff68b9a80 100644 --- a/bench/duckdb/optimized/ub_duckdb_aggr_holistic.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_aggr_holistic.cpp.ll @@ -6558,7 +6558,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable1 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -6645,8 +6645,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %sw.bb39, %cond.i111 = tail call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %25) br label %sw.epilog -sw.epilog: ; preds = %for.body.i, %sw.epilog.sink.split, %for.body.i.prol.loopexit, %sw.bb43, %if.end34 - %limit.0 = phi i64 [ %i.0115, %if.end34 ], [ %cond.i110, %sw.bb43 ], [ %cond.i111, %sw.epilog.sink.split ], [ %cond.i110, %for.body.i.prol.loopexit ], [ %cond.i110, %for.body.i ] +default.unreachable1: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.body.i, %sw.epilog.sink.split, %for.body.i.prol.loopexit, %sw.bb43 + %limit.0 = phi i64 [ %cond.i110, %sw.bb43 ], [ %cond.i111, %sw.epilog.sink.split ], [ %cond.i110, %for.body.i.prol.loopexit ], [ %cond.i110, %for.body.i ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %26 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %26 @@ -44006,7 +44009,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -44142,8 +44145,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -56198,7 +56204,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -56334,8 +56340,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -64559,7 +64568,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -64695,8 +64704,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -72923,7 +72935,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -73059,8 +73071,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -81238,7 +81253,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -81374,8 +81389,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -90016,7 +90034,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -90152,8 +90170,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -98377,7 +98398,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -98513,8 +98534,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -107318,7 +107342,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -107454,8 +107478,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -118544,7 +118571,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -118680,8 +118707,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -143660,7 +143690,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -143796,8 +143826,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -151974,7 +152007,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -152110,8 +152143,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -160288,7 +160324,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -160424,8 +160460,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i139 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %36) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0144, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i136, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i139, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i136 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %37 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %37 @@ -290110,7 +290149,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -290248,8 +290287,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -294036,7 +294078,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -294174,8 +294216,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -297966,7 +298011,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -298104,8 +298149,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -301896,7 +301944,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -302034,8 +302082,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -305826,7 +305877,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -305964,8 +306015,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -309756,7 +309810,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -309894,8 +309948,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -313659,7 +313716,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -313797,8 +313854,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -317560,7 +317620,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable6 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -317698,8 +317758,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable6: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -321526,7 +321589,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable7 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -321740,8 +321803,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i150 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %47) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i143, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0155, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i150, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i143 ] +default.unreachable7: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i143, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i150, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i143 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %48 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %48 @@ -325659,7 +325725,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable2 [ i8 0, label %sw.bb i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -325777,8 +325843,11 @@ sw.bb47: ; preds = %if.end34 %cond.i111 = call noundef i64 @llvm.umin.i64(i64 %37, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i, %sw.bb47, %sw.bb43, %sw.bb39, %sw.bb, %if.end34 - %limit.0 = phi i64 [ %i.0115, %if.end34 ], [ %cond.i111, %sw.bb47 ], [ %cond.i110, %sw.bb43 ], [ %cond.i108, %sw.bb ], [ %cond.i109, %sw.bb39 ], [ %cond.i109, %for.inc.i ] +default.unreachable2: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i, %sw.bb47, %sw.bb43, %sw.bb39, %sw.bb + %limit.0 = phi i64 [ %cond.i111, %sw.bb47 ], [ %cond.i110, %sw.bb43 ], [ %cond.i108, %sw.bb ], [ %cond.i109, %sw.bb39 ], [ %cond.i109, %for.inc.i ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -329949,7 +330018,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable2 [ i8 0, label %sw.bb i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -330067,8 +330136,11 @@ sw.bb47: ; preds = %if.end34 %cond.i111 = call noundef i64 @llvm.umin.i64(i64 %37, i64 %38) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i, %sw.bb47, %sw.bb43, %sw.bb39, %sw.bb, %if.end34 - %limit.0 = phi i64 [ %i.0115, %if.end34 ], [ %cond.i111, %sw.bb47 ], [ %cond.i110, %sw.bb43 ], [ %cond.i108, %sw.bb ], [ %cond.i109, %sw.bb39 ], [ %cond.i109, %for.inc.i ] +default.unreachable2: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i, %sw.bb47, %sw.bb43, %sw.bb39, %sw.bb + %limit.0 = phi i64 [ %cond.i111, %sw.bb47 ], [ %cond.i110, %sw.bb43 ], [ %cond.i108, %sw.bb ], [ %cond.i109, %sw.bb39 ], [ %cond.i109, %for.inc.i ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %39 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %39 @@ -334412,7 +334484,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable7 [ i8 0, label %sw.epilog.sink.split i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -334598,8 +334670,11 @@ sw.epilog.sink.split: ; preds = %sw.bb47, %if.end34 %cond.i141 = call noundef i64 @llvm.umin.i64(i64 %.sink, i64 %42) br label %sw.epilog -sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39, %if.end34 - %limit.0 = phi i64 [ %i.0146, %if.end34 ], [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] +default.unreachable7: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %for.inc.i138, %for.inc.i, %sw.epilog.sink.split, %sw.bb43, %sw.bb39 + %limit.0 = phi i64 [ %cond.i109, %sw.bb39 ], [ %cond.i110, %sw.bb43 ], [ %cond.i141, %sw.epilog.sink.split ], [ %cond.i109, %for.inc.i ], [ %cond.i110, %for.inc.i138 ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %43 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %43 @@ -339719,7 +339794,7 @@ if.then20: ; preds = %if.end if.end34: ; preds = %if.then20, %if.end %overlap.1 = phi i8 [ %or32, %if.then20 ], [ %overlap.0, %if.end ] %right.0 = phi ptr [ %call21, %if.then20 ], [ %last, %if.end ] - switch i8 %overlap.1, label %sw.epilog [ + switch i8 %overlap.1, label %default.unreachable1 [ i8 0, label %sw.bb i8 1, label %sw.bb39 i8 2, label %sw.bb43 @@ -339756,8 +339831,11 @@ sw.bb47: ; preds = %if.end34 %cond.i111 = tail call noundef i64 @llvm.umin.i64(i64 %20, i64 %21) br label %sw.epilog -sw.epilog: ; preds = %sw.bb47, %sw.bb43, %sw.bb39, %sw.bb, %if.end34 - %limit.0 = phi i64 [ %i.0115, %if.end34 ], [ %cond.i111, %sw.bb47 ], [ %cond.i110, %sw.bb43 ], [ %cond.i109, %sw.bb39 ], [ %cond.i108, %sw.bb ] +default.unreachable1: ; preds = %if.end34 + unreachable + +sw.epilog: ; preds = %sw.bb47, %sw.bb43, %sw.bb39, %sw.bb + %limit.0 = phi i64 [ %cond.i111, %sw.bb47 ], [ %cond.i110, %sw.bb43 ], [ %cond.i109, %sw.bb39 ], [ %cond.i108, %sw.bb ] %end51 = getelementptr inbounds %"struct.duckdb::FrameBounds", ptr %left.0, i64 0, i32 1 %22 = load i64, ptr %end51, align 8, !tbaa !12 %cmp52 = icmp eq i64 %limit.0, %22 diff --git a/bench/eastl/optimized/TestRingBuffer.cpp.ll b/bench/eastl/optimized/TestRingBuffer.cpp.ll index dc500d59c18..bfef4a17e65 100644 --- a/bench/eastl/optimized/TestRingBuffer.cpp.ll +++ b/bench/eastl/optimized/TestRingBuffer.cpp.ll @@ -46703,7 +46703,7 @@ invoke.cont312: ; preds = %invoke.cont312.lr.p %shr.i = lshr i64 %mul.i, 32 %conv3.i = trunc i64 %shr.i to i32 %253 = load i64, ptr %mSize.i273, align 8 - switch i32 %conv3.i, label %if.end732 [ + switch i32 %conv3.i, label %default.unreachable [ i32 0, label %if.then i32 1, label %if.then333 i32 2, label %if.then362 @@ -48205,8 +48205,11 @@ if.then712: ; preds = %invoke.cont686 store i64 0, ptr %mSize.i273, align 8 br label %invoke.cont691.invoke -if.end732: ; preds = %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1696, %invoke.cont691.invoke, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1074.invoke, %invoke.cont686, %invoke.cont312, %if.then422, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1573, %invoke.cont628, %if.then606, %invoke.cont705, %if.then637, %invoke.cont676, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1437, %if.then362 - %rng.sroa.0.1 = phi i32 [ %conv4.i.i, %invoke.cont312 ], [ %conv4.i.i1941, %invoke.cont686 ], [ %conv4.i.i1953, %invoke.cont705 ], [ %conv4.i.i, %if.then637 ], [ %conv4.i.i1848, %invoke.cont676 ], [ %conv4.i.i, %if.then606 ], [ %conv4.i.i1716, %invoke.cont628 ], [ %conv4.i.i1533, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1573 ], [ %conv4.i.i1319, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1437 ], [ %conv4.i.i, %if.then422 ], [ %conv4.i.i, %if.then362 ], [ %conv4.i.i, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1074.invoke ], [ %conv4.i.i1941, %invoke.cont691.invoke ], [ %conv4.i.i1676, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1696 ] +default.unreachable: ; preds = %invoke.cont312, %invoke.cont1671 + unreachable + +if.end732: ; preds = %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1696, %invoke.cont691.invoke, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1074.invoke, %invoke.cont686, %if.then422, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1573, %invoke.cont628, %if.then606, %invoke.cont705, %if.then637, %invoke.cont676, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1437, %if.then362 + %rng.sroa.0.1 = phi i32 [ %conv4.i.i1941, %invoke.cont686 ], [ %conv4.i.i1953, %invoke.cont705 ], [ %conv4.i.i, %if.then637 ], [ %conv4.i.i1848, %invoke.cont676 ], [ %conv4.i.i, %if.then606 ], [ %conv4.i.i1716, %invoke.cont628 ], [ %conv4.i.i1533, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1573 ], [ %conv4.i.i1319, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1437 ], [ %conv4.i.i, %if.then422 ], [ %conv4.i.i, %if.then362 ], [ %conv4.i.i, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1074.invoke ], [ %conv4.i.i1941, %invoke.cont691.invoke ], [ %conv4.i.i1676, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit1696 ] %496 = load ptr, ptr %mpEnd.i.i274, align 8 %497 = load ptr, ptr %rbVectorString, align 8 %498 = load ptr, ptr %mCapacityAllocator.i.i.i275, align 8 @@ -50593,8 +50596,8 @@ for.body.i.i4243: ; preds = %invoke.cont1215, %f %first2.sroa.2.036.i.i = phi ptr [ %first2.sroa.2.1.i.i4251, %for.inc.i.i4247 ], [ %rbVectorInt4.sroa.15.1, %invoke.cont1215 ] %815 = load i32, ptr %first1.sroa.2.037.i.i, align 4 %816 = load i32, ptr %first2.sroa.2.036.i.i, align 4 - %or.cond10110.not = icmp eq i32 %816, %815 - br i1 %or.cond10110.not, label %for.inc.i.i4247, label %invoke.cont1217.loopexit + %or.cond10112.not = icmp eq i32 %816, %815 + br i1 %or.cond10112.not, label %for.inc.i.i4247, label %invoke.cont1217.loopexit for.inc.i.i4247: ; preds = %for.body.i.i4243 %incdec.ptr.i.i.i4248 = getelementptr inbounds i32, ptr %first1.sroa.2.037.i.i, i64 1 @@ -50611,7 +50614,7 @@ for.inc.i.i4247: ; preds = %for.body.i.i4243 for.end.i.i: ; preds = %for.inc.i.i4247 %cmp.i18.i.i = icmp eq ptr %spec.select.i4250, %incdec.ptr.i3979 %cmp.i21.i.i = icmp ne ptr %first2.sroa.2.1.i.i4251, %spec.select9624 - %spec.select10111 = select i1 %cmp.i18.i.i, i1 %cmp.i21.i.i, i1 false + %spec.select10113 = select i1 %cmp.i18.i.i, i1 %cmp.i21.i.i, i1 false br label %invoke.cont1217 invoke.cont1217.loopexit: ; preds = %for.body.i.i4243 @@ -50619,7 +50622,7 @@ invoke.cont1217.loopexit: ; preds = %for.body.i.i4243 br label %invoke.cont1217 invoke.cont1217: ; preds = %invoke.cont1217.loopexit, %for.end.i.i, %invoke.cont1215 - %retval.0.i.i = phi i1 [ false, %invoke.cont1215 ], [ %spec.select10111, %for.end.i.i ], [ %cmp.i.i4244, %invoke.cont1217.loopexit ] + %retval.0.i.i = phi i1 [ false, %invoke.cont1215 ], [ %spec.select10113, %for.end.i.i ], [ %cmp.i.i4244, %invoke.cont1217.loopexit ] %call1220 = invoke noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %retval.0.i.i, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 575, ptr noundef nonnull @.str.80) to label %invoke.cont1219 unwind label %lpad1208 @@ -50698,8 +50701,8 @@ for.body.i.i.i4326: ; preds = %invoke.cont1234, %f %first2.sroa.2.036.i.i.i = phi ptr [ %first2.sroa.2.1.i.i.i4333, %for.inc.i.i.i4330 ], [ %incdec.ptr.i3995, %invoke.cont1234 ] %821 = load i32, ptr %first1.sroa.2.037.i.i.i, align 4 %822 = load i32, ptr %first2.sroa.2.036.i.i.i, align 4 - %or.cond10112.not = icmp eq i32 %822, %821 - br i1 %or.cond10112.not, label %for.inc.i.i.i4330, label %invoke.cont1236.loopexit + %or.cond10114.not = icmp eq i32 %822, %821 + br i1 %or.cond10114.not, label %for.inc.i.i.i4330, label %invoke.cont1236.loopexit for.inc.i.i.i4330: ; preds = %for.body.i.i.i4326 %incdec.ptr.i.i.i.i4331 = getelementptr inbounds i32, ptr %first1.sroa.2.037.i.i.i, i64 1 @@ -50806,8 +50809,8 @@ for.body.i.i.i4420: ; preds = %invoke.cont1253, %f %first2.sroa.2.036.i.i.i4422 = phi ptr [ %first2.sroa.2.1.i.i.i4432, %for.inc.i.i.i4426 ], [ %incdec.ptr.i3995, %invoke.cont1253 ] %827 = load i32, ptr %first1.sroa.2.037.i.i.i4421, align 4 %828 = load i32, ptr %first2.sroa.2.036.i.i.i4422, align 4 - %or.cond10113.not = icmp eq i32 %828, %827 - br i1 %or.cond10113.not, label %for.inc.i.i.i4426, label %invoke.cont1255.loopexit + %or.cond10115.not = icmp eq i32 %828, %827 + br i1 %or.cond10115.not, label %for.inc.i.i.i4426, label %invoke.cont1255.loopexit for.inc.i.i.i4426: ; preds = %for.body.i.i.i4420 %incdec.ptr.i.i.i.i4427 = getelementptr inbounds i32, ptr %first1.sroa.2.037.i.i.i4421, i64 1 @@ -50914,8 +50917,8 @@ for.body.i.i4522: ; preds = %invoke.cont1272, %f %first2.sroa.2.036.i.i4524 = phi ptr [ %first2.sroa.2.1.i.i4534, %for.inc.i.i4528 ], [ %rbVectorInt7.sroa.17.1, %invoke.cont1272 ] %833 = load i32, ptr %first1.sroa.2.037.i.i4523, align 4 %834 = load i32, ptr %first2.sroa.2.036.i.i4524, align 4 - %or.cond10114.not = icmp eq i32 %834, %833 - br i1 %or.cond10114.not, label %for.inc.i.i4528, label %invoke.cont1274.loopexit + %or.cond10116.not = icmp eq i32 %834, %833 + br i1 %or.cond10116.not, label %for.inc.i.i4528, label %invoke.cont1274.loopexit for.inc.i.i4528: ; preds = %for.body.i.i4522 %incdec.ptr.i.i.i4529 = getelementptr inbounds i32, ptr %first1.sroa.2.037.i.i4523, i64 1 @@ -50932,7 +50935,7 @@ for.inc.i.i4528: ; preds = %for.body.i.i4522 for.end.i.i4512: ; preds = %for.inc.i.i4528 %cmp.i18.i.i4515 = icmp eq ptr %spec.select.i4531, %incdec.ptr.i3979 %cmp.i21.i.i4518 = icmp ne ptr %first2.sroa.2.1.i.i4534, %spec.select9633 - %spec.select10115 = select i1 %cmp.i18.i.i4515, i1 %cmp.i21.i.i4518, i1 false + %spec.select10117 = select i1 %cmp.i18.i.i4515, i1 %cmp.i21.i.i4518, i1 false br label %invoke.cont1274 invoke.cont1274.loopexit: ; preds = %for.body.i.i4522 @@ -50940,7 +50943,7 @@ invoke.cont1274.loopexit: ; preds = %for.body.i.i4522 br label %invoke.cont1274 invoke.cont1274: ; preds = %invoke.cont1274.loopexit, %for.end.i.i4512, %invoke.cont1272 - %retval.0.i.i4516 = phi i1 [ false, %invoke.cont1272 ], [ %spec.select10115, %for.end.i.i4512 ], [ %cmp.i.i4525, %invoke.cont1274.loopexit ] + %retval.0.i.i4516 = phi i1 [ false, %invoke.cont1272 ], [ %spec.select10117, %for.end.i.i4512 ], [ %cmp.i.i4525, %invoke.cont1274.loopexit ] %call1277 = invoke noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %retval.0.i.i4516, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 588, ptr noundef nonnull @.str.86) to label %invoke.cont1276 unwind label %lpad1269 @@ -51017,8 +51020,8 @@ for.body.i.i.i4624: ; preds = %invoke.cont1293, %f %first2.sroa.2.036.i.i.i4626 = phi ptr [ %first2.sroa.2.1.i.i.i4636, %for.inc.i.i.i4630 ], [ %incdec.ptr.i3995, %invoke.cont1293 ] %839 = load i32, ptr %first1.sroa.2.037.i.i.i4625, align 4 %840 = load i32, ptr %first2.sroa.2.036.i.i.i4626, align 4 - %or.cond10116.not = icmp eq i32 %840, %839 - br i1 %or.cond10116.not, label %for.inc.i.i.i4630, label %invoke.cont1295.loopexit + %or.cond10118.not = icmp eq i32 %840, %839 + br i1 %or.cond10118.not, label %for.inc.i.i.i4630, label %invoke.cont1295.loopexit for.inc.i.i.i4630: ; preds = %for.body.i.i.i4624 %incdec.ptr.i.i.i.i4631 = getelementptr inbounds i32, ptr %first1.sroa.2.037.i.i.i4625, i64 1 @@ -51123,8 +51126,8 @@ for.body.i.i4726: ; preds = %invoke.cont1314, %f %first2.sroa.2.036.i.i4728 = phi ptr [ %first2.sroa.2.1.i.i4738, %for.inc.i.i4732 ], [ %rbVectorInt9.sroa.17.1, %invoke.cont1314 ] %845 = load i32, ptr %first1.sroa.2.037.i.i4727, align 4 %846 = load i32, ptr %first2.sroa.2.036.i.i4728, align 4 - %or.cond10117.not = icmp eq i32 %846, %845 - br i1 %or.cond10117.not, label %for.inc.i.i4732, label %invoke.cont1316.loopexit + %or.cond10119.not = icmp eq i32 %846, %845 + br i1 %or.cond10119.not, label %for.inc.i.i4732, label %invoke.cont1316.loopexit for.inc.i.i4732: ; preds = %for.body.i.i4726 %incdec.ptr.i.i.i4733 = getelementptr inbounds i32, ptr %first1.sroa.2.037.i.i4727, i64 1 @@ -51141,7 +51144,7 @@ for.inc.i.i4732: ; preds = %for.body.i.i4726 for.end.i.i4716: ; preds = %for.inc.i.i4732 %cmp.i18.i.i4719 = icmp eq ptr %spec.select.i4735, %incdec.ptr.i3979 %cmp.i21.i.i4722 = icmp ne ptr %first2.sroa.2.1.i.i4738, %spec.select9639 - %spec.select10118 = select i1 %cmp.i18.i.i4719, i1 %cmp.i21.i.i4722, i1 false + %spec.select10120 = select i1 %cmp.i18.i.i4719, i1 %cmp.i21.i.i4722, i1 false br label %invoke.cont1316 invoke.cont1316.loopexit: ; preds = %for.body.i.i4726 @@ -51149,7 +51152,7 @@ invoke.cont1316.loopexit: ; preds = %for.body.i.i4726 br label %invoke.cont1316 invoke.cont1316: ; preds = %invoke.cont1316.loopexit, %for.end.i.i4716, %invoke.cont1314 - %retval.0.i.i4720 = phi i1 [ false, %invoke.cont1314 ], [ %spec.select10118, %for.end.i.i4716 ], [ %cmp.i.i4729, %invoke.cont1316.loopexit ] + %retval.0.i.i4720 = phi i1 [ false, %invoke.cont1314 ], [ %spec.select10120, %for.end.i.i4716 ], [ %cmp.i.i4729, %invoke.cont1316.loopexit ] %call1319 = invoke noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %retval.0.i.i4720, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 596, ptr noundef nonnull @.str.90) to label %invoke.cont1318 unwind label %lpad1311 @@ -51226,8 +51229,8 @@ for.body.i.i4828: ; preds = %invoke.cont1335, %f %first2.sroa.2.036.i.i4830 = phi ptr [ %first2.sroa.2.1.i.i4840, %for.inc.i.i4834 ], [ %rbVectorInt10.sroa.17.1, %invoke.cont1335 ] %851 = load i32, ptr %first1.sroa.2.037.i.i4829, align 4 %852 = load i32, ptr %first2.sroa.2.036.i.i4830, align 4 - %or.cond10119.not = icmp eq i32 %852, %851 - br i1 %or.cond10119.not, label %for.inc.i.i4834, label %invoke.cont1337.loopexit + %or.cond10121.not = icmp eq i32 %852, %851 + br i1 %or.cond10121.not, label %for.inc.i.i4834, label %invoke.cont1337.loopexit for.inc.i.i4834: ; preds = %for.body.i.i4828 %incdec.ptr.i.i.i4835 = getelementptr inbounds i32, ptr %first1.sroa.2.037.i.i4829, i64 1 @@ -51244,7 +51247,7 @@ for.inc.i.i4834: ; preds = %for.body.i.i4828 for.end.i.i4818: ; preds = %for.inc.i.i4834 %cmp.i18.i.i4821 = icmp eq ptr %spec.select.i4837, %incdec.ptr.i3979 %cmp.i21.i.i4824 = icmp ne ptr %first2.sroa.2.1.i.i4840, %spec.select9642 - %spec.select10120 = select i1 %cmp.i18.i.i4821, i1 %cmp.i21.i.i4824, i1 false + %spec.select10122 = select i1 %cmp.i18.i.i4821, i1 %cmp.i21.i.i4824, i1 false br label %invoke.cont1337 invoke.cont1337.loopexit: ; preds = %for.body.i.i4828 @@ -51252,7 +51255,7 @@ invoke.cont1337.loopexit: ; preds = %for.body.i.i4828 br label %invoke.cont1337 invoke.cont1337: ; preds = %invoke.cont1337.loopexit, %for.end.i.i4818, %invoke.cont1335 - %retval.0.i.i4822 = phi i1 [ false, %invoke.cont1335 ], [ %spec.select10120, %for.end.i.i4818 ], [ %cmp.i.i4831, %invoke.cont1337.loopexit ] + %retval.0.i.i4822 = phi i1 [ false, %invoke.cont1335 ], [ %spec.select10122, %for.end.i.i4818 ], [ %cmp.i.i4831, %invoke.cont1337.loopexit ] %call1340 = invoke noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %retval.0.i.i4822, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 600, ptr noundef nonnull @.str.92) to label %invoke.cont1339 unwind label %lpad1332 @@ -51455,7 +51458,7 @@ while.cond1403.preheader: ; preds = %invoke.cont1393 while.body1407: ; preds = %while.cond1403.preheader, %invoke.cont1413 %873 = phi ptr [ %879, %invoke.cont1413 ], [ %872, %while.cond1403.preheader ] - %it1395.sroa.32.09824 = phi ptr [ %spec.select10035, %invoke.cont1413 ], [ %870, %while.cond1403.preheader ] + %it1395.sroa.32.09824 = phi ptr [ %spec.select10036, %invoke.cont1413 ], [ %870, %while.cond1403.preheader ] %874 = load ptr, ptr %mBegin.i4885, align 8, !noalias !2874 %cmp.i.i.not14.i4993 = icmp eq ptr %874, %873 br i1 %cmp.i.i.not14.i4993, label %for.end.i5004, label %for.body.lr.ph.i4996 @@ -51489,9 +51492,9 @@ invoke.cont1413: ; preds = %invoke.cont1410 %877 = load ptr, ptr %it1395.sroa.32.09824, align 8 %cmp.i.i5010 = icmp eq ptr %877, %rbListString %878 = load ptr, ptr %rbListString, align 8 - %spec.select10035 = select i1 %cmp.i.i5010, ptr %878, ptr %877 + %spec.select10036 = select i1 %cmp.i.i5010, ptr %878, ptr %877 %879 = load ptr, ptr %mEnd.i4887, align 8, !noalias !365 - %cmp.i.i4988.not = icmp eq ptr %spec.select10035, %879 + %cmp.i.i4988.not = icmp eq ptr %spec.select10036, %879 br i1 %cmp.i.i4988.not, label %while.end1417, label %while.body1407, !llvm.loop !2878 arraydestroy.body1006: ; preds = %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit5018, %lpad968 @@ -52124,7 +52127,7 @@ invoke.cont1488: ; preds = %invoke.cont1483 %953 = load ptr, ptr %952, align 8 %cmp.i.i5275 = icmp eq ptr %953, %rbListString %954 = load ptr, ptr %rbListString, align 8 - %spec.select10036 = select i1 %cmp.i.i5275, ptr %954, ptr %953 + %spec.select10037 = select i1 %cmp.i.i5275, ptr %954, ptr %953 %955 = load ptr, ptr %mEnd.i4887, align 8, !noalias !365 %cmp.i.i.not14.i5283 = icmp eq ptr %952, %955 br i1 %cmp.i.i.not14.i5283, label %invoke.cont1497, label %for.body.lr.ph.i5286 @@ -52135,7 +52138,7 @@ for.body.lr.ph.i5286: ; preds = %invoke.cont1488 for.body.i5287: ; preds = %for.inc.i5290, %for.body.lr.ph.i5286 %temp.sroa.2.015.i5288 = phi ptr [ %952, %for.body.lr.ph.i5286 ], [ %spec.select.i5292, %for.inc.i5290 ] - %cmp.i.i4.i5289 = icmp eq ptr %temp.sroa.2.015.i5288, %spec.select10036 + %cmp.i.i4.i5289 = icmp eq ptr %temp.sroa.2.015.i5288, %spec.select10037 br i1 %cmp.i.i4.i5289, label %invoke.cont1497, label %for.inc.i5290 for.inc.i5290: ; preds = %for.body.i5287 @@ -52151,11 +52154,11 @@ invoke.cont1497: ; preds = %for.inc.i5290, %for to label %invoke.cont1500 unwind label %lpad1356.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont1500: ; preds = %invoke.cont1497 - %mValue.i.i5300 = getelementptr inbounds %"struct.eastl::ListNode.211", ptr %spec.select10036, i64 0, i32 1 - %mRemainingSizeField.i.i.i5301 = getelementptr inbounds i8, ptr %spec.select10036, i64 39 + %mValue.i.i5300 = getelementptr inbounds %"struct.eastl::ListNode.211", ptr %spec.select10037, i64 0, i32 1 + %mRemainingSizeField.i.i.i5301 = getelementptr inbounds i8, ptr %spec.select10037, i64 39 %958 = load i8, ptr %mRemainingSizeField.i.i.i5301, align 1 %tobool.i.i.i5302 = icmp slt i8 %958, 0 - %mnSize.i.i.i5303 = getelementptr inbounds %"struct.eastl::ListNode.211", ptr %spec.select10036, i64 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1 + %mnSize.i.i.i5303 = getelementptr inbounds %"struct.eastl::ListNode.211", ptr %spec.select10037, i64 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1 %959 = load i64, ptr %mnSize.i.i.i5303, align 8 %conv.i.i.i5304 = zext nneg i8 %958 to i64 %sub.i.i.i5305 = sub nsw i64 23, %conv.i.i.i5304 @@ -52283,12 +52286,12 @@ _ZN5eastleqIcNS_9allocatorEEEbRKNS_12basic_stringIT_T0_EEPKNS5_10value_typeE.exi to label %invoke.cont1519 unwind label %lpad1356.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont1519: ; preds = %_ZN5eastleqIcNS_9allocatorEEEbRKNS_12basic_stringIT_T0_EEPKNS5_10value_typeE.exit5385 - %978 = load ptr, ptr %spec.select10036, align 8 + %978 = load ptr, ptr %spec.select10037, align 8 %cmp.i.i5387 = icmp eq ptr %978, %rbListString %979 = load ptr, ptr %rbListString, align 8 - %spec.select10037 = select i1 %cmp.i.i5387, ptr %979, ptr %978 + %spec.select10038 = select i1 %cmp.i.i5387, ptr %979, ptr %978 %980 = load ptr, ptr %mEnd.i4887, align 8, !noalias !2898 - %cmp.i.i5395 = icmp eq ptr %spec.select10037, %980 + %cmp.i.i5395 = icmp eq ptr %spec.select10038, %980 %call1527 = invoke noundef i32 @_ZN2EA8UnitTest12TestInternal17EATEST_VERIFY_IMPEbRiPKciS4_(i1 noundef zeroext %cmp.i.i5395, ptr noundef nonnull align 4 dereferenceable(4) %nErrorCount, ptr noundef nonnull @.str, i32 noundef 681, ptr noundef nonnull @.str.103) to label %invoke.cont1526 unwind label %lpad1356.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -52300,7 +52303,7 @@ invoke.cont1526: ; preds = %invoke.cont1519 while.body1535: ; preds = %invoke.cont1526, %invoke.cont1541 %983 = phi ptr [ %989, %invoke.cont1541 ], [ %982, %invoke.cont1526 ] - %it1395.sroa.32.49826 = phi ptr [ %spec.select10038, %invoke.cont1541 ], [ %981, %invoke.cont1526 ] + %it1395.sroa.32.49826 = phi ptr [ %spec.select10039, %invoke.cont1541 ], [ %981, %invoke.cont1526 ] %984 = load ptr, ptr %mBegin.i4885, align 8, !noalias !2901 %cmp.i.i.not14.i5409 = icmp eq ptr %984, %983 br i1 %cmp.i.i.not14.i5409, label %invoke.cont1538, label %for.body.lr.ph.i5412 @@ -52330,9 +52333,9 @@ invoke.cont1541: ; preds = %invoke.cont1538 %987 = load ptr, ptr %it1395.sroa.32.49826, align 8 %cmp.i.i5426 = icmp eq ptr %987, %rbListString %988 = load ptr, ptr %rbListString, align 8 - %spec.select10038 = select i1 %cmp.i.i5426, ptr %988, ptr %987 + %spec.select10039 = select i1 %cmp.i.i5426, ptr %988, ptr %987 %989 = load ptr, ptr %mEnd.i4887, align 8, !noalias !365 - %cmp.i.i5404.not = icmp eq ptr %spec.select10038, %989 + %cmp.i.i5404.not = icmp eq ptr %spec.select10039, %989 br i1 %cmp.i.i5404.not, label %invoke.cont1547.loopexit, label %while.body1535, !llvm.loop !2904 lpad1426: ; preds = %invoke.cont1425 @@ -52736,7 +52739,7 @@ for.end1616: ; preds = %for.inc1613 for.body1623: ; preds = %for.end1616, %invoke.cont1636 %1055 = phi ptr [ %1066, %invoke.cont1636 ], [ %.pre9937, %for.end1616 ] %counterCheck1585.19838 = phi i32 [ %inc1639, %invoke.cont1636 ], [ %counterCheck1585.09833, %for.end1616 ] - %i1618.sroa.3.09837 = phi ptr [ %spec.select10039, %invoke.cont1636 ], [ %1053, %for.end1616 ] + %i1618.sroa.3.09837 = phi ptr [ %spec.select10040, %invoke.cont1636 ], [ %1053, %for.end1616 ] %1056 = load ptr, ptr %mBegin.i4885, align 8, !noalias !2931 %cmp.i.i.not14.i5652 = icmp eq ptr %1056, %1055 br i1 %cmp.i.i.not14.i5652, label %invoke.cont1626, label %for.body.lr.ph.i5655 @@ -52802,9 +52805,9 @@ invoke.cont1636: ; preds = %_ZN5eastleqIcNS_9al %1064 = load ptr, ptr %i1618.sroa.3.09837, align 8 %cmp.i.i5691 = icmp eq ptr %1064, %rbListString %1065 = load ptr, ptr %rbListString, align 8 - %spec.select10039 = select i1 %cmp.i.i5691, ptr %1065, ptr %1064 + %spec.select10040 = select i1 %cmp.i.i5691, ptr %1065, ptr %1064 %1066 = load ptr, ptr %mEnd.i4887, align 8, !noalias !365 - %cmp.i.i5647.not = icmp eq ptr %spec.select10039, %1066 + %cmp.i.i5647.not = icmp eq ptr %spec.select10040, %1066 br i1 %cmp.i.i5647.not, label %for.end1644, label %for.body1623, !llvm.loop !2934 for.end1644: ; preds = %invoke.cont1636, %invoke.cont1595, %for.end1616 @@ -52899,7 +52902,7 @@ invoke.cont1671: ; preds = %invoke.cont1671.lr. %shr.i5754 = lshr i64 %mul.i5753, 32 %conv3.i5755 = trunc i64 %shr.i5754 to i32 %1076 = load i64, ptr %mSize.i4888, align 8 - switch i32 %conv3.i5755, label %if.end2120 [ + switch i32 %conv3.i5755, label %default.unreachable [ i32 0, label %if.then1677 i32 1, label %if.then1696 i32 2, label %if.then1726 @@ -53985,7 +53988,7 @@ invoke.cont1956: ; preds = %invoke.cont1941.inv br i1 %cmp.not4.i, label %invoke.cont1964, label %for.body.i6383 for.body.i6383: ; preds = %invoke.cont1956, %.noexc6389 - %agg.tmp1959.sroa.3.0 = phi ptr [ %spec.select10040, %.noexc6389 ], [ %it1395.sroa.32.11, %invoke.cont1956 ] + %agg.tmp1959.sroa.3.0 = phi ptr [ %spec.select10041, %.noexc6389 ], [ %it1395.sroa.32.11, %invoke.cont1956 ] %first.addr.05.i = phi ptr [ %incdec.ptr.i6384, %.noexc6389 ], [ %stringArray1907, %invoke.cont1956 ] store ptr %rbListString, ptr %agg.tmp.i6377, align 8 store ptr %agg.tmp1959.sroa.3.0, ptr %mContainerIterator.i.i6380, align 8 @@ -53997,7 +54000,7 @@ for.body.i6383: ; preds = %invoke.cont1956, %. %1257 = load ptr, ptr %agg.tmp1959.sroa.3.0, align 8 %cmp.i.i.i6385 = icmp eq ptr %1257, %rbListString %1258 = load ptr, ptr %rbListString, align 8 - %spec.select10040 = select i1 %cmp.i.i.i6385, ptr %1258, ptr %1257 + %spec.select10041 = select i1 %cmp.i.i.i6385, ptr %1258, ptr %1257 %cmp.not.i6386 = icmp eq ptr %incdec.ptr.i6384, %add.ptr1963 br i1 %cmp.not.i6386, label %invoke.cont1964, label %for.body.i6383, !llvm.loop !2964 @@ -54448,8 +54451,8 @@ if.then2100: ; preds = %invoke.cont2073 store i64 0, ptr %mSize.i4888, align 8 br label %invoke.cont2078.invoke -if.end2120: ; preds = %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6399, %invoke.cont2078.invoke, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit5807.invoke, %invoke.cont2073, %invoke.cont1671, %if.then1787, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6273, %invoke.cont2010, %if.then1988, %invoke.cont2093, %if.then2019, %invoke.cont2062, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6136, %if.then1726 - %rng1351.sroa.0.1 = phi i32 [ %conv4.i.i5751, %invoke.cont1671 ], [ %conv4.i.i6647, %invoke.cont2073 ], [ %conv4.i.i6659, %invoke.cont2093 ], [ %conv4.i.i5751, %if.then2019 ], [ %conv4.i.i6544, %invoke.cont2062 ], [ %conv4.i.i5751, %if.then1988 ], [ %conv4.i.i6419, %invoke.cont2010 ], [ %conv4.i.i6226, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6273 ], [ %conv4.i.i6047, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6136 ], [ %conv4.i.i5751, %if.then1787 ], [ %conv4.i.i5751, %if.then1726 ], [ %conv4.i.i5751, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit5807.invoke ], [ %conv4.i.i6647, %invoke.cont2078.invoke ], [ %conv4.i.i6370, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6399 ] +if.end2120: ; preds = %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6399, %invoke.cont2078.invoke, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit5807.invoke, %invoke.cont2073, %if.then1787, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6273, %invoke.cont2010, %if.then1988, %invoke.cont2093, %if.then2019, %invoke.cont2062, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6136, %if.then1726 + %rng1351.sroa.0.1 = phi i32 [ %conv4.i.i6647, %invoke.cont2073 ], [ %conv4.i.i6659, %invoke.cont2093 ], [ %conv4.i.i5751, %if.then2019 ], [ %conv4.i.i6544, %invoke.cont2062 ], [ %conv4.i.i5751, %if.then1988 ], [ %conv4.i.i6419, %invoke.cont2010 ], [ %conv4.i.i6226, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6273 ], [ %conv4.i.i6047, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6136 ], [ %conv4.i.i5751, %if.then1787 ], [ %conv4.i.i5751, %if.then1726 ], [ %conv4.i.i5751, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit5807.invoke ], [ %conv4.i.i6647, %invoke.cont2078.invoke ], [ %conv4.i.i6370, %_ZN5eastl12basic_stringIcNS_9allocatorEED2Ev.exit6399 ] br label %for.cond.i.i6670 for.cond.i.i6670: ; preds = %for.cond.i.i6670, %if.end2120 @@ -54606,12 +54609,12 @@ invoke.cont2135: ; preds = %invoke.cont2133 invoke.cont2157.preheader: ; preds = %for.inc2150 %.pre9941 = load ptr, ptr %mBegin.i4885, align 8 - %cmp.i.i.i6790.not9860 = icmp eq ptr %spec.select10041, %.pre9941 + %cmp.i.i.i6790.not9860 = icmp eq ptr %spec.select10042, %.pre9941 br i1 %cmp.i.i.i6790.not9860, label %_ZN5eastleqIcNS_9allocatorEEEbRKNS_12basic_stringIT_T0_EES7_.exit6862, label %invoke.cont2161 for.body2143: ; preds = %invoke.cont2135, %for.inc2150 %1350 = phi ptr [ %1356, %for.inc2150 ], [ %1349, %invoke.cont2135 ] - %ic2138.sroa.3.09858 = phi ptr [ %spec.select10041, %for.inc2150 ], [ %1348, %invoke.cont2135 ] + %ic2138.sroa.3.09858 = phi ptr [ %spec.select10042, %for.inc2150 ], [ %1348, %invoke.cont2135 ] %1351 = load ptr, ptr %mBegin.i4885, align 8, !noalias !2999 %cmp.i.i.not14.i6764 = icmp eq ptr %1351, %1350 br i1 %cmp.i.i.not14.i6764, label %invoke.cont2145, label %for.body.lr.ph.i6767 @@ -54641,14 +54644,14 @@ for.inc2150: ; preds = %invoke.cont2145 %1354 = load ptr, ptr %ic2138.sroa.3.09858, align 8 %cmp.i.i6781 = icmp eq ptr %1354, %rbListString %1355 = load ptr, ptr %rbListString, align 8 - %spec.select10041 = select i1 %cmp.i.i6781, ptr %1355, ptr %1354 + %spec.select10042 = select i1 %cmp.i.i6781, ptr %1355, ptr %1354 %1356 = load ptr, ptr %mEnd.i4887, align 8, !noalias !365 - %cmp.i.i6759.not = icmp eq ptr %spec.select10041, %1356 + %cmp.i.i6759.not = icmp eq ptr %spec.select10042, %1356 br i1 %cmp.i.i6759.not, label %invoke.cont2157.preheader, label %for.body2143, !llvm.loop !3002 invoke.cont2161: ; preds = %invoke.cont2157.preheader, %for.inc2180 %1357 = phi ptr [ %1369, %for.inc2180 ], [ %.pre9941, %invoke.cont2157.preheader ] - %ric2154.sroa.4.09861 = phi ptr [ %1368, %for.inc2180 ], [ %spec.select10041, %invoke.cont2157.preheader ] + %ric2154.sroa.4.09861 = phi ptr [ %1368, %for.inc2180 ], [ %spec.select10042, %invoke.cont2157.preheader ] %1358 = load ptr, ptr %mEnd.i4887, align 8, !noalias !365 %cmp.i.i.i6795 = icmp eq ptr %ric2154.sroa.4.09861, %1358 br i1 %cmp.i.i.i6795, label %if.then2163, label %if.else2171 diff --git a/bench/flac/optimized/metadata_iterators.c.ll b/bench/flac/optimized/metadata_iterators.c.ll index cb5131062cd..27c7c80b9f1 100644 --- a/bench/flac/optimized/metadata_iterators.c.ll +++ b/bench/flac/optimized/metadata_iterators.c.ll @@ -92,7 +92,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.38 = private unnamed_addr constant [35 x i8] c"chown(filename, -1, stats->st_gid)\00", align 1 ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_get_streaminfo(ptr noundef %filename, ptr nocapture noundef writeonly %streaminfo) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_get_streaminfo(ptr noundef %filename, ptr nocapture noundef writeonly %streaminfo) local_unnamed_addr #0 { entry: %call = tail call fastcc ptr @get_one_metadata_block_(ptr noundef %filename, i32 noundef 0) %tobool.not = icmp eq ptr %call, null @@ -480,7 +480,7 @@ return: ; preds = %entry, %FLAC__metad } ; Function Attrs: mustprogress nofree nounwind sspstrong willreturn memory(write, argmem: none, inaccessiblemem: readwrite) uwtable -define noalias ptr @FLAC__metadata_simple_iterator_new() local_unnamed_addr #3 { +define noalias noundef ptr @FLAC__metadata_simple_iterator_new() local_unnamed_addr #3 { entry: %call = tail call noalias dereferenceable_or_null(248) ptr @calloc(i64 noundef 1, i64 noundef 248) #29 %cmp.not = icmp eq ptr %call, null @@ -498,7 +498,7 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_simple_iterator_init(ptr nocapture noundef %iterator, ptr nocapture noundef readonly %filename, i32 noundef %read_only, i32 noundef %preserve_file_stats) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_simple_iterator_init(ptr nocapture noundef %iterator, ptr nocapture noundef readonly %filename, i32 noundef %read_only, i32 noundef %preserve_file_stats) local_unnamed_addr #0 { entry: %0 = load ptr, ptr %iterator, align 8 %cmp.not.i = icmp eq ptr %0, null @@ -828,7 +828,7 @@ read_metadata_block_data_streaminfo_cb_.exit.i.i: ; preds = %unpack_uint64_.exit sw.bb1.i.i: ; preds = %if.then %conv.i.i.i = zext i32 %2 to i64 - %call.i79.i = tail call i32 @fseeko64(ptr noundef %3, i64 noundef %conv.i.i.i, i32 noundef 1) + %call.i79.i = tail call noundef i32 @fseeko64(ptr noundef %3, i64 noundef %conv.i.i.i, i32 noundef 1) %cmp.not.i29.i.i = icmp eq i32 %call.i79.i, 0 %status.i54 = getelementptr inbounds %struct.FLAC__Metadata_SimpleIterator, ptr %iterator, i64 0, i32 6 br i1 %cmp.not.i29.i.i, label %if.end.sink.split, label %read_metadata_block_data_.exit.thread56 @@ -1051,7 +1051,7 @@ if.end20.i60.i: ; preds = %if.then18.i58.i, %i %35 = phi i32 [ %.pre.i59.i, %if.then18.i58.i ], [ %33, %if.end14.i55.i ] %conv22.i61.i = zext i32 %35 to i64 %add.i.i62.i = add nuw nsw i64 %conv22.i61.i, 1 - %call.i.i.i63.i = tail call noalias ptr @malloc(i64 noundef %add.i.i62.i) #31 + %call.i.i.i63.i = tail call noalias noundef ptr @malloc(i64 noundef %add.i.i62.i) #31 store ptr %call.i.i.i63.i, ptr %entry15.i56.i, align 8 %cmp25.i64.i = icmp eq ptr %call.i.i.i63.i, null br i1 %cmp25.i64.i, label %read_metadata_block_data_vorbis_comment_entry_cb_.exit78.thread.i, label %if.end28.i65.i @@ -1226,7 +1226,7 @@ if.end20.i.i: ; preds = %if.then18.i.i, %if. %44 = phi i32 [ %.pre.i24.i, %if.then18.i.i ], [ %42, %if.end14.i.i ] %conv22.i25.i = zext i32 %44 to i64 %add.i.i26.i = add nuw nsw i64 %conv22.i25.i, 1 - %call.i.i.i27.i = tail call noalias ptr @malloc(i64 noundef %add.i.i26.i) #31 + %call.i.i.i27.i = tail call noalias noundef ptr @malloc(i64 noundef %add.i.i26.i) #31 store ptr %call.i.i.i27.i, ptr %entry15.i.i, align 8 %cmp25.i.i = icmp eq ptr %call.i.i.i27.i, null br i1 %cmp25.i.i, label %read_metadata_block_data_vorbis_comment_entry_cb_.exit.thread.i, label %if.end28.i.i @@ -1287,7 +1287,7 @@ skip.i.i.i: ; preds = %if.end63.i.i.i, %if if.then69.i.i.i: ; preds = %skip.i.i.i %conv70.i.i.i = zext i32 %block_length.addr.3.i.i.i to i64 - %call.i10.i = tail call i32 @fseeko64(ptr noundef %3, i64 noundef %conv70.i.i.i, i32 noundef 1) + %call.i10.i = tail call noundef i32 @fseeko64(ptr noundef %3, i64 noundef %conv70.i.i.i, i32 noundef 1) %cmp72.not.i.i.i = icmp eq i32 %call.i10.i, 0 br i1 %cmp72.not.i.i.i, label %if.end76.i.i.i, label %read_metadata_block_data_vorbis_comment_cb_.exit.i.i @@ -1684,7 +1684,7 @@ if.then11.i.i.i.i: ; preds = %if.end8.i.i.i.i if.end12.i.i.i.i: ; preds = %if.then11.i.i.i.i, %if.end8.i.i.i.i %conv13.i.i.i.i = zext i32 %len.0.i.i.i to i64 %add.i.i.i.i.i = add nuw nsw i64 %conv13.i.i.i.i, 1 - %call.i.i.i.i.i.i = tail call noalias ptr @malloc(i64 noundef %add.i.i.i.i.i) #31 + %call.i.i.i.i.i.i = tail call noalias noundef ptr @malloc(i64 noundef %add.i.i.i.i.i) #31 store ptr %call.i.i.i.i.i.i, ptr %mime_type.i.i.i, align 8 %cmp15.i.i.i.i = icmp eq ptr %call.i.i.i.i.i.i, null br i1 %cmp15.i.i.i.i, label %read_metadata_block_data_picture_cstring_cb_.exit.thread.i.i.i, label %if.end18.i.i.i.i @@ -1757,7 +1757,7 @@ if.then11.i55.i.i.i: ; preds = %if.end8.i53.i.i.i if.end12.i57.i.i.i: ; preds = %if.then11.i55.i.i.i, %if.end8.i53.i.i.i %conv13.i58.i.i.i = zext i32 %len.1.i.i.i to i64 %add.i.i59.i.i.i = add nuw nsw i64 %conv13.i58.i.i.i, 1 - %call.i.i.i60.i.i.i = tail call noalias ptr @malloc(i64 noundef %add.i.i59.i.i.i) #31 + %call.i.i.i60.i.i.i = tail call noalias noundef ptr @malloc(i64 noundef %add.i.i59.i.i.i) #31 store ptr %call.i.i.i60.i.i.i, ptr %description.i.i.i, align 8 %cmp15.i61.i.i.i = icmp eq ptr %call.i.i.i60.i.i.i, null br i1 %cmp15.i61.i.i.i, label %read_metadata_block_data_picture_cstring_cb_.exit75.thread.i.i.i, label %if.end18.i62.i.i.i @@ -1950,7 +1950,7 @@ if.end12.i.i: ; preds = %if.then11.i.i, %if. %116 = phi i32 [ %.pre.i.i, %if.then11.i.i ], [ %114, %if.end8.i.i ] %conv13.i.i = zext i32 %116 to i64 %add.i.i8.i = add nuw nsw i64 %conv13.i.i, 1 - %call.i.i.i9.i = tail call noalias ptr @malloc(i64 noundef %add.i.i8.i) #31 + %call.i.i.i9.i = tail call noalias noundef ptr @malloc(i64 noundef %add.i.i8.i) #31 store ptr %call.i.i.i9.i, ptr %data.i136.i.i, align 8 %cmp15.i.i = icmp eq ptr %call.i.i.i9.i, null br i1 %cmp15.i.i, label %read_metadata_block_data_picture_cstring_cb_.exit.i, label %if.end18.i.i @@ -2067,7 +2067,7 @@ return: ; preds = %if.else, %if.end, % declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #5 ; Function Attrs: nofree nounwind sspstrong uwtable -define i32 @FLAC__metadata_simple_iterator_next(ptr nocapture noundef %iterator) local_unnamed_addr #6 { +define noundef i32 @FLAC__metadata_simple_iterator_next(ptr nocapture noundef %iterator) local_unnamed_addr #6 { entry: %raw_header.i.i = alloca [4 x i8], align 1 %is_last = getelementptr inbounds %struct.FLAC__Metadata_SimpleIterator, ptr %iterator, i64 0, i32 10 @@ -2163,7 +2163,7 @@ entry: declare noalias ptr @strdup(ptr nocapture noundef readonly) local_unnamed_addr #10 ; Function Attrs: nofree nounwind sspstrong uwtable -define internal fastcc i32 @simple_iterator_prime_input_(ptr nocapture noundef %iterator, i32 noundef %read_only) unnamed_addr #6 { +define internal fastcc noundef i32 @simple_iterator_prime_input_(ptr nocapture noundef %iterator, i32 noundef %read_only) unnamed_addr #6 { entry: %raw_header.i.i = alloca [4 x i8], align 1 %buffer.i.i = alloca [4 x i8], align 1 @@ -2223,7 +2223,7 @@ if.else4.i.i: ; preds = %if.else.i.i br i1 %cmp7.i.i, label %if.then8.i.i, label %if.end42.i.i if.then8.i.i: ; preds = %if.else4.i.i - %call.i2.i = tail call i32 @fseeko64(ptr noundef nonnull %3, i64 noundef 2, i32 noundef 1) + %call.i2.i = tail call noundef i32 @fseeko64(ptr noundef nonnull %3, i64 noundef 2, i32 noundef 1) %cmp10.i.i = icmp slt i32 %call.i2.i, 0 br i1 %cmp10.i.i, label %sw.bb28, label %for.body.i.i @@ -2249,7 +2249,7 @@ if.end18.i.i: ; preds = %lor.lhs.false.i.i for.end.i.i: ; preds = %if.end18.i.i %conv22.i.i = zext i32 %or.i.i to i64 - %call.i1.i = tail call i32 @fseeko64(ptr noundef nonnull %3, i64 noundef %conv22.i.i, i32 noundef 1) + %call.i1.i = tail call noundef i32 @fseeko64(ptr noundef nonnull %3, i64 noundef %conv22.i.i, i32 noundef 1) %cmp24.i.i = icmp slt i32 %call.i1.i, 0 br i1 %cmp24.i.i, label %sw.bb28, label %if.end27.i.i @@ -2371,7 +2371,7 @@ declare noundef i32 @fseeko64(ptr nocapture noundef, i64 noundef, i32 noundef) l declare noundef i64 @ftello64(ptr nocapture noundef) local_unnamed_addr #11 ; Function Attrs: nofree nounwind sspstrong uwtable -define internal fastcc i32 @read_metadata_block_header_(ptr nocapture noundef %iterator) unnamed_addr #6 { +define internal fastcc noundef i32 @read_metadata_block_header_(ptr nocapture noundef %iterator) unnamed_addr #6 { entry: %raw_header.i = alloca [4 x i8], align 1 %0 = load ptr, ptr %iterator, align 8 @@ -2424,7 +2424,7 @@ return: ; preds = %read_metadata_block } ; Function Attrs: nofree nounwind sspstrong uwtable -define i32 @FLAC__metadata_simple_iterator_prev(ptr nocapture noundef %iterator) local_unnamed_addr #6 { +define noundef i32 @FLAC__metadata_simple_iterator_prev(ptr nocapture noundef %iterator) local_unnamed_addr #6 { entry: %raw_header.i.i19 = alloca [4 x i8], align 1 %raw_header.i.i = alloca [4 x i8], align 1 @@ -2614,7 +2614,7 @@ entry: } ; Function Attrs: nofree nounwind sspstrong uwtable -define i32 @FLAC__metadata_simple_iterator_get_application_id(ptr nocapture noundef %iterator, ptr nocapture noundef %id) local_unnamed_addr #6 { +define noundef i32 @FLAC__metadata_simple_iterator_get_application_id(ptr nocapture noundef %iterator, ptr nocapture noundef %id) local_unnamed_addr #6 { entry: %0 = load i32, ptr @FLAC__STREAM_METADATA_APPLICATION_ID_LEN, align 4 %div8 = lshr i32 %0, 3 @@ -2655,7 +2655,7 @@ declare noundef i64 @fread(ptr nocapture noundef, i64 noundef, i64 noundef, ptr declare ptr @FLAC__metadata_object_new(i32 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_simple_iterator_set_block(ptr noundef %iterator, ptr noundef %block, i32 noundef %use_padding) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_simple_iterator_set_block(ptr noundef %iterator, ptr noundef %block, i32 noundef %use_padding) local_unnamed_addr #0 { entry: %raw_header.i.i.i = alloca [4 x i8], align 1 %is_writable = getelementptr inbounds %struct.FLAC__Metadata_SimpleIterator, ptr %iterator, i64 0, i32 5 @@ -2863,7 +2863,7 @@ return: ; preds = %if.end71, %if.else8 } ; Function Attrs: nofree nounwind sspstrong uwtable -define internal fastcc i32 @write_metadata_block_stationary_(ptr nocapture noundef %iterator, ptr nocapture noundef %block) unnamed_addr #6 { +define internal fastcc noundef i32 @write_metadata_block_stationary_(ptr nocapture noundef %iterator, ptr nocapture noundef %block) unnamed_addr #6 { entry: %raw_header.i.i = alloca [4 x i8], align 1 %buffer.i.i = alloca [4 x i8], align 1 @@ -3001,7 +3001,7 @@ return: ; preds = %if.then.i16, %read_ } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @write_metadata_block_stationary_with_padding_(ptr nocapture noundef %iterator, ptr nocapture noundef %block, i32 noundef %padding_length, i32 noundef %padding_is_last) unnamed_addr #0 { +define internal fastcc noundef i32 @write_metadata_block_stationary_with_padding_(ptr nocapture noundef %iterator, ptr nocapture noundef %block, i32 noundef %padding_length, i32 noundef %padding_is_last) unnamed_addr #0 { entry: %buffer.i.i25 = alloca [4 x i8], align 1 %buffer.i.i = alloca [4 x i8], align 1 @@ -3156,7 +3156,7 @@ return: ; preds = %if.end22, %write_me } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @rewrite_whole_file_(ptr noundef %iterator, ptr noundef %block, i32 noundef %append) unnamed_addr #0 { +define internal fastcc noundef i32 @rewrite_whole_file_(ptr noundef %iterator, ptr noundef %block, i32 noundef %append) unnamed_addr #0 { entry: %raw_header.i.i.i117 = alloca [4 x i8], align 1 %raw_header.i.i.i.i = alloca [4 x i8], align 1 @@ -3919,7 +3919,7 @@ return: ; preds = %simple_iterator_cop } ; Function Attrs: nofree nounwind sspstrong uwtable -define internal fastcc i32 @simple_iterator_pop_(ptr nocapture noundef %iterator) unnamed_addr #6 { +define internal fastcc noundef i32 @simple_iterator_pop_(ptr nocapture noundef %iterator) unnamed_addr #6 { entry: %raw_header.i.i = alloca [4 x i8], align 1 %depth = getelementptr inbounds %struct.FLAC__Metadata_SimpleIterator, ptr %iterator, i64 0, i32 9 @@ -3990,7 +3990,7 @@ return: ; preds = %if.then.i, %read_me } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_simple_iterator_insert_block_after(ptr noundef %iterator, ptr noundef %block, i32 noundef %use_padding) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_simple_iterator_insert_block_after(ptr noundef %iterator, ptr noundef %block, i32 noundef %use_padding) local_unnamed_addr #0 { entry: %raw_header.i.i.i101 = alloca [4 x i8], align 1 %raw_header.i.i.i66 = alloca [4 x i8], align 1 @@ -4335,7 +4335,7 @@ return: ; preds = %if.then.i.i119, %if } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_simple_iterator_delete_block(ptr noundef %iterator, i32 noundef %use_padding) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_simple_iterator_delete_block(ptr noundef %iterator, i32 noundef %use_padding) local_unnamed_addr #0 { entry: %is_writable = getelementptr inbounds %struct.FLAC__Metadata_SimpleIterator, ptr %iterator, i64 0, i32 5 %0 = load i32, ptr %is_writable, align 4 @@ -4438,7 +4438,7 @@ return: ; preds = %if.end14, %if.else, } ; Function Attrs: mustprogress nofree nounwind sspstrong willreturn memory(inaccessiblemem: readwrite) uwtable -define noalias ptr @FLAC__metadata_chain_new() local_unnamed_addr #12 { +define noalias noundef ptr @FLAC__metadata_chain_new() local_unnamed_addr #12 { entry: %call = tail call noalias dereferenceable_or_null(80) ptr @calloc(i64 noundef 1, i64 noundef 80) #29 ret ptr %call @@ -4493,14 +4493,14 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_chain_read(ptr noundef %chain, ptr nocapture noundef readonly %filename) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_chain_read(ptr noundef %chain, ptr nocapture noundef readonly %filename) local_unnamed_addr #0 { entry: %call = tail call fastcc i32 @chain_read_(ptr noundef %chain, ptr noundef %filename, i32 noundef 0), !range !4 ret i32 %call } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @chain_read_(ptr noundef %chain, ptr nocapture noundef readonly %filename, i32 noundef %is_ogg) unnamed_addr #0 { +define internal fastcc noundef i32 @chain_read_(ptr noundef %chain, ptr nocapture noundef readonly %filename, i32 noundef %is_ogg) unnamed_addr #0 { entry: %head.i = getelementptr inbounds %struct.FLAC__Metadata_Chain, ptr %chain, i64 0, i32 2 %0 = load ptr, ptr %head.i, align 8 @@ -4586,14 +4586,14 @@ return: ; preds = %cond.end, %if.then5 } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_chain_read_ogg(ptr noundef %chain, ptr nocapture noundef readonly %filename) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_chain_read_ogg(ptr noundef %chain, ptr nocapture noundef readonly %filename) local_unnamed_addr #0 { entry: %call = tail call fastcc i32 @chain_read_(ptr noundef %chain, ptr noundef %filename, i32 noundef 1), !range !4 ret i32 %call } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_chain_read_with_callbacks(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_chain_read_with_callbacks(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks) local_unnamed_addr #0 { entry: %callbacks1.sroa.0.0.copyload = load ptr, ptr %callbacks, align 8 %callbacks1.sroa.42.0.callbacks.sroa_idx = getelementptr inbounds i8, ptr %callbacks, i64 16 @@ -4672,7 +4672,7 @@ chain_read_with_callbacks_.exit: ; preds = %if.then.i, %if.then } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_chain_read_ogg_with_callbacks(ptr noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_chain_read_ogg_with_callbacks(ptr noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks) local_unnamed_addr #0 { entry: %callbacks1.sroa.0.0.copyload = load ptr, ptr %callbacks, align 8 %callbacks1.sroa.42.0.callbacks.sroa_idx = getelementptr inbounds i8, ptr %callbacks, i64 16 @@ -4974,7 +4974,7 @@ return: ; preds = %if.then72.us, %if.t } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_chain_write(ptr nocapture noundef %chain, i32 noundef %use_padding, i32 noundef %preserve_file_stats) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_chain_write(ptr nocapture noundef %chain, i32 noundef %use_padding, i32 noundef %preserve_file_stats) local_unnamed_addr #0 { entry: %buffer.i70.i = alloca [8192 x i8], align 16 %buffer.i.i.i22 = alloca [4 x i8], align 1 @@ -5044,7 +5044,7 @@ chain_rewrite_metadata_in_place_.exit.thread: ; preds = %if.then13 if.end.i: ; preds = %if.then13 %first_offset.i.i = getelementptr inbounds %struct.FLAC__Metadata_Chain, ptr %chain, i64 0, i32 6 %5 = load i64, ptr %first_offset.i.i, align 8 - %call.i21.i = tail call i32 @fseeko64(ptr noundef nonnull %call.i20, i64 noundef %5, i32 noundef 0) + %call.i21.i = tail call noundef i32 @fseeko64(ptr noundef nonnull %call.i20, i64 noundef %5, i32 noundef 0) %cmp.not.i.i = icmp eq i32 %call.i21.i, 0 br i1 %cmp.not.i.i, label %if.end.i.i, label %chain_rewrite_metadata_in_place_.exit @@ -6187,7 +6187,7 @@ if.end.i26: ; preds = %if.else %call.i.i = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %112) #30 %add2.i.i = add i64 %call.i.i, 15 %spec.select.i.i.i = tail call i64 @llvm.umax.i64(i64 %add2.i.i, i64 1) - %call.i.i.i27 = tail call noalias ptr @malloc(i64 noundef %spec.select.i.i.i) #31 + %call.i.i.i27 = tail call noalias noundef ptr @malloc(i64 noundef %spec.select.i.i.i) #31 store ptr %call.i.i.i27, ptr %tempfilename.i, align 8 %cmp4.i.i = icmp eq ptr %call.i.i.i27, null br i1 %cmp4.i.i, label %err.thread.i, label %if.end.i.i28 @@ -6506,7 +6506,7 @@ if.end: ; preds = %if.then18 %conv26 = trunc i64 %sub25 to i32 %length27 = getelementptr inbounds %struct.FLAC__StreamMetadata, ptr %call19, i64 0, i32 2 store i32 %conv26, ptr %length27, align 8 - %call.i = tail call noalias dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 + %call.i = tail call noalias noundef dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 %cmp29 = icmp eq ptr %call.i, null br i1 %cmp29, label %if.then31, label %if.end33 @@ -6796,7 +6796,7 @@ if.end16: ; preds = %if.then12, %if.end } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_chain_write_with_callbacks(ptr nocapture noundef %chain, i32 noundef %use_padding, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_chain_write_with_callbacks(ptr nocapture noundef %chain, i32 noundef %use_padding, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks) local_unnamed_addr #0 { entry: %is_ogg = getelementptr inbounds %struct.FLAC__Metadata_Chain, ptr %chain, i64 0, i32 1 %0 = load i32, ptr %is_ogg, align 8 @@ -6858,7 +6858,7 @@ return: ; preds = %if.end12, %if.end16 } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @chain_rewrite_metadata_in_place_cb_(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly %write_cb, ptr nocapture noundef readonly %seek_cb) unnamed_addr #0 { +define internal fastcc noundef i32 @chain_rewrite_metadata_in_place_cb_(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly %write_cb, ptr nocapture noundef readonly %seek_cb) unnamed_addr #0 { entry: %buffer.i = alloca [4 x i8], align 1 %first_offset = getelementptr inbounds %struct.FLAC__Metadata_Chain, ptr %chain, i64 0, i32 6 @@ -6942,7 +6942,7 @@ return: ; preds = %for.cond, %if.end5, } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_chain_write_with_callbacks_and_tempfile(ptr nocapture noundef %chain, i32 noundef %use_padding, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks, ptr noundef %temp_handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %temp_callbacks) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_chain_write_with_callbacks_and_tempfile(ptr nocapture noundef %chain, i32 noundef %use_padding, ptr noundef %handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %callbacks, ptr noundef %temp_handle, ptr nocapture noundef readonly byval(%struct.FLAC__IOCallbacks) align 8 %temp_callbacks) local_unnamed_addr #0 { entry: %is_ogg = getelementptr inbounds %struct.FLAC__Metadata_Chain, ptr %chain, i64 0, i32 1 %0 = load i32, ptr %is_ogg, align 8 @@ -7032,7 +7032,7 @@ return: ; preds = %for.body, %return.s } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @chain_rewrite_file_cb_(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef readonly %seek_cb, ptr nocapture noundef readonly %eof_cb, ptr noundef %temp_handle, ptr nocapture noundef readonly %temp_write_cb) unnamed_addr #0 { +define internal fastcc noundef i32 @chain_rewrite_file_cb_(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef readonly %seek_cb, ptr nocapture noundef readonly %eof_cb, ptr noundef %temp_handle, ptr nocapture noundef readonly %temp_write_cb) unnamed_addr #0 { entry: %buffer.i27 = alloca [8192 x i8], align 16 %buffer.i21 = alloca [4 x i8], align 1 @@ -7440,7 +7440,7 @@ for.end: ; preds = %for.inc, %entry } ; Function Attrs: mustprogress nofree nounwind sspstrong willreturn memory(inaccessiblemem: readwrite) uwtable -define noalias ptr @FLAC__metadata_iterator_new() local_unnamed_addr #12 { +define noalias noundef ptr @FLAC__metadata_iterator_new() local_unnamed_addr #12 { entry: %call = tail call noalias dereferenceable_or_null(16) ptr @calloc(i64 noundef 1, i64 noundef 16) #29 ret ptr %call @@ -7465,7 +7465,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable -define i32 @FLAC__metadata_iterator_next(ptr nocapture noundef %iterator) local_unnamed_addr #15 { +define noundef i32 @FLAC__metadata_iterator_next(ptr nocapture noundef %iterator) local_unnamed_addr #15 { entry: %current = getelementptr inbounds %struct.FLAC__Metadata_Iterator, ptr %iterator, i64 0, i32 1 %0 = load ptr, ptr %current, align 8 @@ -7488,7 +7488,7 @@ return: ; preds = %entry, %lor.lhs.fal } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable -define i32 @FLAC__metadata_iterator_prev(ptr nocapture noundef %iterator) local_unnamed_addr #15 { +define noundef i32 @FLAC__metadata_iterator_prev(ptr nocapture noundef %iterator) local_unnamed_addr #15 { entry: %current = getelementptr inbounds %struct.FLAC__Metadata_Iterator, ptr %iterator, i64 0, i32 1 %0 = load ptr, ptr %current, align 8 @@ -7530,7 +7530,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_iterator_set_block(ptr nocapture noundef %iterator, ptr noundef %block) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_iterator_set_block(ptr nocapture noundef %iterator, ptr noundef %block) local_unnamed_addr #0 { entry: %current.i = getelementptr inbounds %struct.FLAC__Metadata_Iterator, ptr %iterator, i64 0, i32 1 %0 = load ptr, ptr %current.i, align 8 @@ -7597,7 +7597,7 @@ land.rhs: ; preds = %if.then.i.i.i, %cha br i1 %cmp.i2, label %land.end, label %if.end.i3 if.end.i3: ; preds = %land.rhs - %call.i.i = tail call noalias dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 + %call.i.i = tail call noalias noundef dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 %cmp1.i = icmp eq ptr %call.i.i, null br i1 %cmp1.i, label %land.end, label %if.end3.i @@ -7649,7 +7649,7 @@ land.end: ; preds = %entry, %iterator_in } ; Function Attrs: nounwind sspstrong uwtable -define i32 @FLAC__metadata_iterator_delete_block(ptr nocapture noundef %iterator, i32 noundef %replace_with_padding) local_unnamed_addr #0 { +define noundef i32 @FLAC__metadata_iterator_delete_block(ptr nocapture noundef %iterator, i32 noundef %replace_with_padding) local_unnamed_addr #0 { entry: %current = getelementptr inbounds %struct.FLAC__Metadata_Iterator, ptr %iterator, i64 0, i32 1 %0 = load ptr, ptr %current, align 8 @@ -7734,14 +7734,14 @@ return: ; preds = %entry, %if.end8 } ; Function Attrs: mustprogress nofree nounwind sspstrong willreturn uwtable -define i32 @FLAC__metadata_iterator_insert_block_after(ptr nocapture noundef %iterator, ptr noundef %block) local_unnamed_addr #17 { +define noundef i32 @FLAC__metadata_iterator_insert_block_after(ptr nocapture noundef %iterator, ptr noundef %block) local_unnamed_addr #17 { entry: %0 = load i32, ptr %block, align 8 %cmp = icmp eq i32 %0, 0 br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call.i = tail call noalias dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 + %call.i = tail call noalias noundef dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 %cmp1 = icmp eq ptr %call.i, null br i1 %cmp1, label %return, label %if.end3 @@ -7797,7 +7797,7 @@ return: ; preds = %if.end, %entry, %it declare void @FLAC__metadata_object_delete_data(ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree nounwind sspstrong willreturn uwtable -define i32 @FLAC__metadata_iterator_insert_block_before(ptr nocapture noundef %iterator, ptr noundef %block) local_unnamed_addr #17 { +define noundef i32 @FLAC__metadata_iterator_insert_block_before(ptr nocapture noundef %iterator, ptr noundef %block) local_unnamed_addr #17 { entry: %0 = load i32, ptr %block, align 8 %cmp = icmp eq i32 %0, 0 @@ -7812,7 +7812,7 @@ if.end: ; preds = %entry br i1 %cmp1, label %return, label %if.end3 if.end3: ; preds = %if.end - %call.i = tail call noalias dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 + %call.i = tail call noalias noundef dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 %cmp4 = icmp eq ptr %call.i, null br i1 %cmp4, label %return, label %if.end6 @@ -7869,7 +7869,7 @@ declare i32 @FLAC__stream_decoder_set_metadata_respond(ptr noundef, i32 noundef) declare i32 @FLAC__stream_decoder_init_file(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define internal i32 @write_callback_(ptr nocapture readnone %decoder, ptr nocapture readnone %frame, ptr nocapture readnone %buffer, ptr nocapture readnone %client_data) #18 { +define internal noundef i32 @write_callback_(ptr nocapture readnone %decoder, ptr nocapture readnone %frame, ptr nocapture readnone %buffer, ptr nocapture readnone %client_data) #18 { entry: ret i32 0 } @@ -7933,14 +7933,14 @@ declare noalias noundef ptr @fopen64(ptr nocapture noundef readonly, ptr nocaptu declare ptr @__errno_location() local_unnamed_addr #20 ; Function Attrs: nofree nounwind sspstrong uwtable -define internal i32 @fseek_wrapper_(ptr nocapture noundef %handle, i64 noundef %offset, i32 noundef %whence) #6 { +define internal noundef i32 @fseek_wrapper_(ptr nocapture noundef %handle, i64 noundef %offset, i32 noundef %whence) #6 { entry: %call = tail call i32 @fseeko64(ptr noundef %handle, i64 noundef %offset, i32 noundef %whence) ret i32 %call } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @chain_read_ogg_cb_(ptr noundef %chain, ptr noundef %handle, ptr noundef %read_cb) unnamed_addr #0 { +define internal fastcc noundef i32 @chain_read_ogg_cb_(ptr noundef %chain, ptr noundef %handle, ptr noundef %read_cb) unnamed_addr #0 { entry: %handle1 = getelementptr inbounds %struct.FLAC__Metadata_Chain, ptr %chain, i64 0, i32 9 store ptr %handle, ptr %handle1, align 8 @@ -8039,7 +8039,7 @@ return: ; preds = %lor.lhs.false, %if. } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @chain_read_cb_(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef readonly %seek_cb, ptr nocapture noundef readonly %tell_cb) unnamed_addr #0 { +define internal fastcc noundef i32 @chain_read_cb_(ptr nocapture noundef %chain, ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef readonly %seek_cb, ptr nocapture noundef readonly %tell_cb) unnamed_addr #0 { entry: %buffer.i32.i.i = alloca [4 x i8], align 1 %buffer.i.i100.i = alloca [4 x i8], align 1 @@ -8262,7 +8262,7 @@ if.end: ; preds = %sw.epilog br label %do.body do.body: ; preds = %chain_append_node_.exit, %if.end - %call.i36 = call noalias dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 + %call.i36 = call noalias noundef dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 %cmp9 = icmp eq ptr %call.i36, null br i1 %cmp9, label %if.then10, label %if.end12 @@ -9083,7 +9083,7 @@ if.then11.i.i.i: ; preds = %if.end8.i.i.i if.end12.i.i.i: ; preds = %if.then11.i.i.i, %if.end8.i.i.i %conv13.i.i.i = zext i32 %len.0.i.i to i64 %add.i.i.i.i = add nuw nsw i64 %conv13.i.i.i, 1 - %call.i.i.i.i.i = call noalias ptr @malloc(i64 noundef %add.i.i.i.i) #31 + %call.i.i.i.i.i = call noalias noundef ptr @malloc(i64 noundef %add.i.i.i.i) #31 store ptr %call.i.i.i.i.i, ptr %mime_type.i.i, align 8 %cmp15.i.i.i = icmp eq ptr %call.i.i.i.i.i, null br i1 %cmp15.i.i.i, label %read_metadata_block_data_picture_cstring_cb_.exit.thread.i.i, label %if.end18.i.i.i @@ -9150,7 +9150,7 @@ if.then11.i55.i.i: ; preds = %if.end8.i53.i.i if.end12.i57.i.i: ; preds = %if.then11.i55.i.i, %if.end8.i53.i.i %conv13.i58.i.i = zext i32 %len.1.i.i to i64 %add.i.i59.i.i = add nuw nsw i64 %conv13.i58.i.i, 1 - %call.i.i.i60.i.i = call noalias ptr @malloc(i64 noundef %add.i.i59.i.i) #31 + %call.i.i.i60.i.i = call noalias noundef ptr @malloc(i64 noundef %add.i.i59.i.i) #31 store ptr %call.i.i.i60.i.i, ptr %description.i.i, align 8 %cmp15.i61.i.i = icmp eq ptr %call.i.i.i60.i.i, null br i1 %cmp15.i61.i.i, label %read_metadata_block_data_picture_cstring_cb_.exit75.thread.i.i, label %if.end18.i62.i.i @@ -9305,26 +9305,11 @@ if.end.i142.i: ; preds = %if.else.i138.i read_metadata_block_data_cb_.exit: ; preds = %read_metadata_block_data_streaminfo_cb_.exit.i, %read_metadata_block_data_seektable_cb_.exit.i, %read_metadata_block_data_vorbis_comment_cb_.exit.i, %read_metadata_block_data_cuesheet_cb_.exit.i, %read_metadata_block_data_picture_cb_.exit.i %retval.0.i46 = phi i32 [ %retval.0.i105.i, %read_metadata_block_data_picture_cb_.exit.i ], [ %retval.0.i79.i, %read_metadata_block_data_cuesheet_cb_.exit.i ], [ %retval.0.i60.i, %read_metadata_block_data_vorbis_comment_cb_.exit.i ], [ %retval.0.i36.i, %read_metadata_block_data_seektable_cb_.exit.i ], [ %retval.0.i.i, %read_metadata_block_data_streaminfo_cb_.exit.i ] - switch i32 %retval.0.i46, label %if.then33 [ - i32 0, label %if.end34 - i32 1, label %if.then33.loopexit - i32 2, label %if.then33.loopexit - i32 3, label %if.then33.loopexit - i32 4, label %if.then33.loopexit - i32 5, label %if.then33.loopexit - i32 6, label %if.then33.loopexit - i32 7, label %if.then33.loopexit - i32 8, label %if.then33.loopexit - i32 9, label %if.then33.loopexit - i32 10, label %if.then33.loopexit - i32 11, label %if.then33.loopexit - ] - -if.then33.loopexit: ; preds = %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit, %read_metadata_block_data_cb_.exit - br label %if.then33 + %switch = icmp eq i32 %retval.0.i46, 0 + br i1 %switch, label %if.end34, label %if.then33 -if.then33: ; preds = %if.else.i.i, %if.else.i138.i, %sw.bb1.i, %sw.bb4.i, %if.end16.i.i, %if.end.i142.i, %read_metadata_block_data_cb_.exit, %if.then33.loopexit - %retval.0.i51.ph = phi i32 [ 12, %read_metadata_block_data_cb_.exit ], [ 6, %if.end.i142.i ], [ 6, %if.end16.i.i ], [ 6, %sw.bb4.i ], [ 7, %sw.bb1.i ], [ 11, %if.else.i138.i ], [ 11, %if.else.i.i ], [ %retval.0.i46, %if.then33.loopexit ] +if.then33: ; preds = %read_metadata_block_data_cb_.exit, %if.else.i.i, %if.else.i138.i, %sw.bb1.i, %sw.bb4.i, %if.end16.i.i, %if.end.i142.i + %retval.0.i51.ph = phi i32 [ 11, %if.else.i.i ], [ 11, %if.else.i138.i ], [ 7, %sw.bb1.i ], [ 6, %sw.bb4.i ], [ 6, %if.end16.i.i ], [ 6, %if.end.i142.i ], [ %retval.0.i46, %read_metadata_block_data_cb_.exit ] store i32 %retval.0.i51.ph, ptr %status30, align 4 %108 = load ptr, ptr %call.i36, align 8 %cmp.not.i56 = icmp eq ptr %108, null @@ -9343,7 +9328,7 @@ if.end34.sink.split: ; preds = %sw.default.i, %if.t store ptr null, ptr %data22.i.sink, align 8 br label %if.end34 -if.end34: ; preds = %if.end34.sink.split, %sw.bb1.i, %if.end.i142.i, %if.end16.i.i, %read_metadata_block_data_cb_.exit +if.end34: ; preds = %read_metadata_block_data_cb_.exit, %if.end34.sink.split, %sw.bb1.i, %if.end.i142.i, %if.end16.i.i store i32 0, ptr %status30, align 4 %prev.i = getelementptr inbounds %struct.FLAC__Metadata_Node, ptr %call.i36, i64 0, i32 1 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %prev.i, i8 0, i64 16, i1 false) @@ -9432,7 +9417,7 @@ return: ; preds = %chain_calculate_len } ; Function Attrs: nofree nounwind sspstrong uwtable -define internal i64 @ftell_wrapper_(ptr nocapture noundef %handle) #6 { +define internal noundef i64 @ftell_wrapper_(ptr nocapture noundef %handle) #6 { entry: %call = tail call i64 @ftello64(ptr noundef %handle) ret i64 %call @@ -9472,7 +9457,7 @@ return: ; preds = %entry, %land.lhs.tr } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define internal i32 @chain_read_ogg_write_cb_(ptr nocapture readnone %decoder, ptr nocapture readnone %frame, ptr nocapture readnone %buffer, ptr nocapture readnone %client_data) #18 { +define internal noundef i32 @chain_read_ogg_write_cb_(ptr nocapture readnone %decoder, ptr nocapture readnone %frame, ptr nocapture readnone %buffer, ptr nocapture readnone %client_data) #18 { entry: ret i32 1 } @@ -9480,7 +9465,7 @@ entry: ; Function Attrs: nounwind sspstrong uwtable define internal void @chain_read_ogg_metadata_cb_(ptr nocapture readnone %decoder, ptr noundef %metadata, ptr nocapture noundef %client_data) #0 { entry: - %call.i = tail call noalias dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 + %call.i = tail call noalias noundef dereferenceable_or_null(24) ptr @calloc(i64 noundef 1, i64 noundef 24) #29 %cmp = icmp eq ptr %call.i, null br i1 %cmp, label %if.then, label %if.end @@ -9555,7 +9540,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define internal fastcc i32 @get_equivalent_status_(i32 noundef %status) unnamed_addr #18 { +define internal fastcc noundef i32 @get_equivalent_status_(i32 noundef %status) unnamed_addr #18 { entry: %status. = tail call i32 @llvm.umin.i32(i32 %status, i32 12) ret i32 %status. @@ -9567,7 +9552,7 @@ declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #21 declare ptr @safe_malloc_mul_2op_p(i64 noundef, i64 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @read_metadata_block_data_vorbis_comment_entry_cb_(ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef %entry1, i32 noundef %max_length) unnamed_addr #0 { +define internal fastcc noundef i32 @read_metadata_block_data_vorbis_comment_entry_cb_(ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef %entry1, i32 noundef %max_length) unnamed_addr #0 { entry: %buffer = alloca [4 x i8], align 1 %0 = load i32, ptr @FLAC__STREAM_METADATA_VORBIS_COMMENT_ENTRY_LENGTH_LEN, align 4 @@ -9632,7 +9617,7 @@ if.end20: ; preds = %if.then18, %if.end1 %4 = phi i32 [ %.pre, %if.then18 ], [ %2, %if.end14 ] %conv22 = zext i32 %4 to i64 %add.i = add nuw nsw i64 %conv22, 1 - %call.i.i = call noalias ptr @malloc(i64 noundef %add.i) #31 + %call.i.i = call noalias noundef ptr @malloc(i64 noundef %add.i) #31 store ptr %call.i.i, ptr %entry15, align 8 %cmp25 = icmp eq ptr %call.i.i, null br i1 %cmp25, label %return, label %if.end28 @@ -9666,7 +9651,7 @@ return: ; preds = %land.lhs.true, %if. } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @read_metadata_block_data_picture_cstring_cb_(ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef %data, ptr nocapture noundef %length, i32 noundef %length_len) unnamed_addr #0 { +define internal fastcc noundef i32 @read_metadata_block_data_picture_cstring_cb_(ptr noundef %handle, ptr nocapture noundef readonly %read_cb, ptr nocapture noundef %data, ptr nocapture noundef %length, i32 noundef %length_len) unnamed_addr #0 { entry: %buffer = alloca [4 x i8], align 1 %div17 = lshr i32 %length_len, 3 @@ -9718,7 +9703,7 @@ if.end12: ; preds = %if.then11, %if.end8 %4 = phi i32 [ %.pre, %if.then11 ], [ %2, %if.end8 ] %conv13 = zext i32 %4 to i64 %add.i = add nuw nsw i64 %conv13, 1 - %call.i.i = call noalias ptr @malloc(i64 noundef %add.i) #31 + %call.i.i = call noalias noundef ptr @malloc(i64 noundef %add.i) #31 store ptr %call.i.i, ptr %data, align 8 %cmp15 = icmp eq ptr %call.i.i, null br i1 %cmp15, label %return, label %if.end18 @@ -9757,7 +9742,7 @@ return: ; preds = %if.then21, %if.end1 declare noundef i64 @fwrite(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #11 ; Function Attrs: nofree nounwind sspstrong uwtable -define internal fastcc i32 @open_tempfile_(ptr noundef %filename, ptr noundef %tempfile_path_prefix, ptr nocapture noundef writeonly %tempfile, ptr nocapture noundef %tempfilename, ptr nocapture noundef writeonly %status) unnamed_addr #6 { +define internal fastcc noundef i32 @open_tempfile_(ptr noundef %filename, ptr noundef %tempfile_path_prefix, ptr nocapture noundef writeonly %tempfile, ptr nocapture noundef %tempfilename, ptr nocapture noundef writeonly %status) unnamed_addr #6 { entry: %cmp = icmp eq ptr %tempfile_path_prefix, null br i1 %cmp, label %if.then, label %if.else @@ -9766,7 +9751,7 @@ if.then: ; preds = %entry %call = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %filename) #30 %add2 = add i64 %call, 15 %spec.select.i = tail call i64 @llvm.umax.i64(i64 %add2, i64 1) - %call.i = tail call noalias ptr @malloc(i64 noundef %spec.select.i) #31 + %call.i = tail call noalias noundef ptr @malloc(i64 noundef %spec.select.i) #31 store ptr %call.i, ptr %tempfilename, align 8 %cmp4 = icmp eq ptr %call.i, null br i1 %cmp4, label %return.sink.split, label %if.end @@ -9785,7 +9770,7 @@ if.else: ; preds = %entry %add15 = add i64 %call13, 16 %add18 = add i64 %add15, %call14 %spec.select.i17 = tail call i64 @llvm.umax.i64(i64 %add18, i64 1) - %call.i18 = tail call noalias ptr @malloc(i64 noundef %spec.select.i17) #31 + %call.i18 = tail call noalias noundef ptr @malloc(i64 noundef %spec.select.i17) #31 store ptr %call.i18, ptr %tempfilename, align 8 %cmp20 = icmp eq ptr %call.i18, null br i1 %cmp20, label %return.sink.split, label %if.end22 @@ -10922,7 +10907,7 @@ write_metadata_block_data_cb_.exit: ; preds = %write_metadata_bloc } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @transport_tempfile_(ptr nocapture noundef readonly %filename, ptr nocapture noundef %tempfile, ptr nocapture noundef %tempfilename, ptr nocapture noundef writeonly %status) unnamed_addr #0 { +define internal fastcc noundef i32 @transport_tempfile_(ptr nocapture noundef readonly %filename, ptr nocapture noundef %tempfile, ptr nocapture noundef %tempfilename, ptr nocapture noundef writeonly %status) unnamed_addr #0 { entry: %0 = load ptr, ptr %tempfile, align 8 %call = tail call i32 @fclose(ptr noundef %0) diff --git a/bench/flac/optimized/stream_encoder.c.ll b/bench/flac/optimized/stream_encoder.c.ll index 9a62629c136..3c275c290b9 100644 --- a/bench/flac/optimized/stream_encoder.c.ll +++ b/bench/flac/optimized/stream_encoder.c.ll @@ -7885,8 +7885,8 @@ for.cond66.preheader: ; preds = %if.then35 br label %for.body71 for.cond.preheader: ; preds = %if.then35 - %cmp43315.not = icmp eq i32 %8, 0 - br i1 %cmp43315.not, label %if.end106, label %for.body.lr.ph + %cmp43310.not = icmp eq i32 %8, 0 + br i1 %cmp43310.not, label %if.end106, label %for.body.lr.ph for.body.lr.ph: ; preds = %for.cond.preheader %arrayidx47 = getelementptr inbounds [8 x ptr], ptr %threadtask, i64 0, i64 1 @@ -7926,9 +7926,9 @@ for.body: ; preds = %for.body.lr.ph, %fo br i1 %cmp43, label %for.body, label %if.end106, !llvm.loop !83 for.body71: ; preds = %for.cond66.preheader, %for.body71 - %i.1313 = phi i32 [ 0, %for.cond66.preheader ], [ %inc103, %for.body71 ] + %i.1308 = phi i32 [ 0, %for.cond66.preheader ], [ %inc103, %for.body71 ] %31 = load ptr, ptr %threadtask, align 8 - %idxprom74 = zext i32 %i.1313 to i64 + %idxprom74 = zext i32 %i.1308 to i64 %arrayidx75 = getelementptr inbounds i32, ptr %31, i64 %idxprom74 %32 = load i32, ptr %arrayidx75, align 4 %conv76 = sext i32 %32 to i64 @@ -7954,7 +7954,7 @@ for.body71: ; preds = %for.cond66.preheade %40 = load ptr, ptr %integer_signal_mid_side98, align 8 %arrayidx101 = getelementptr inbounds i32, ptr %40, i64 %idxprom74 store i32 %conv97, ptr %arrayidx101, align 4 - %inc103 = add i32 %i.1313, 1 + %inc103 = add i32 %i.1308, 1 %41 = load ptr, ptr %encoder, align 8 %blocksize68 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %41, i64 0, i32 9 %42 = load i32, ptr %blocksize68, align 4 @@ -7966,17 +7966,17 @@ if.end106: ; preds = %for.body71, %for.bo br i1 %tobool107.not, label %for.cond148.preheader, label %for.cond109.preheader for.cond109.preheader: ; preds = %entry, %if.end33, %if.end106 - %do_mid_side.0282358 = phi i1 [ false, %if.end106 ], [ true, %if.end33 ], [ true, %entry ] + %do_mid_side.0282353 = phi i1 [ false, %if.end106 ], [ true, %if.end33 ], [ true, %entry ] %44 = phi ptr [ %43, %if.end106 ], [ %6, %if.end33 ], [ %6, %entry ] - %channels111317 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %44, i64 0, i32 6 - %45 = load i32, ptr %channels111317, align 8 - %cmp112318.not = icmp eq i32 %45, 0 - br i1 %cmp112318.not, label %if.end145, label %for.body114 + %channels111312 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %44, i64 0, i32 6 + %45 = load i32, ptr %channels111312, align 8 + %cmp112313.not = icmp eq i32 %45, 0 + br i1 %cmp112313.not, label %if.end145, label %for.body114 for.body114: ; preds = %for.cond109.preheader, %get_wasted_bits_.exit - %indvars.iv335 = phi i64 [ %indvars.iv.next336, %get_wasted_bits_.exit ], [ 0, %for.cond109.preheader ] + %indvars.iv330 = phi i64 [ %indvars.iv.next331, %get_wasted_bits_.exit ], [ 0, %for.cond109.preheader ] %46 = phi ptr [ %58, %get_wasted_bits_.exit ], [ %44, %for.cond109.preheader ] - %arrayidx117 = getelementptr inbounds [8 x ptr], ptr %threadtask, i64 0, i64 %indvars.iv335 + %arrayidx117 = getelementptr inbounds [8 x ptr], ptr %threadtask, i64 0, i64 %indvars.iv330 %47 = load ptr, ptr %arrayidx117, align 8 %blocksize119 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %46, i64 0, i32 9 %48 = load i32, ptr %blocksize119, align 4 @@ -8038,36 +8038,36 @@ get_wasted_bits_.exit: ; preds = %get_wasted_bits_.ex %bits_per_sample122 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %54, i64 0, i32 7 %55 = load i32, ptr %bits_per_sample122, align 4 %spec.select = tail call i32 @llvm.umin.i32(i32 %shift.117.i, i32 %55) - %wasted_bits = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv335, i64 1, i32 2 + %wasted_bits = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv330, i64 1, i32 2 store i32 %spec.select, ptr %wasted_bits, align 8 - %wasted_bits136 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv335, i64 0, i32 2 + %wasted_bits136 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv330, i64 0, i32 2 store i32 %spec.select, ptr %wasted_bits136, align 8 %56 = load ptr, ptr %encoder, align 8 %bits_per_sample138 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %56, i64 0, i32 7 %57 = load i32, ptr %bits_per_sample138, align 4 %sub139 = sub i32 %57, %spec.select - %arrayidx141 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 %indvars.iv335 + %arrayidx141 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 %indvars.iv330 store i32 %sub139, ptr %arrayidx141, align 4 - %indvars.iv.next336 = add nuw nsw i64 %indvars.iv335, 1 + %indvars.iv.next331 = add nuw nsw i64 %indvars.iv330, 1 %58 = load ptr, ptr %encoder, align 8 %channels111 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %58, i64 0, i32 6 %59 = load i32, ptr %channels111, align 8 %60 = zext i32 %59 to i64 - %cmp112 = icmp ult i64 %indvars.iv.next336, %60 + %cmp112 = icmp ult i64 %indvars.iv.next331, %60 br i1 %cmp112, label %for.body114, label %if.end145, !llvm.loop !88 if.end145: ; preds = %get_wasted_bits_.exit, %for.cond109.preheader - br i1 %do_mid_side.0282358, label %if.end204, label %for.cond148.preheader + br i1 %do_mid_side.0282353, label %if.end204, label %for.cond148.preheader for.cond148.preheader: ; preds = %if.end106, %if.end145 - %tobool107.not361364 = phi i1 [ false, %if.end145 ], [ true, %if.end106 ] + %tobool107.not356359 = phi i1 [ false, %if.end145 ], [ true, %if.end106 ] %integer_signal_33bit_side167 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 2 %arrayidx170 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 1, i64 1 br label %for.body151 for.body151: ; preds = %for.cond148.preheader, %if.end174 %cmp157 = phi i1 [ true, %for.cond148.preheader ], [ false, %if.end174 ] - %indvars.iv338 = phi i64 [ 0, %for.cond148.preheader ], [ 1, %if.end174 ] + %indvars.iv333 = phi i64 [ 0, %for.cond148.preheader ], [ 1, %if.end174 ] %61 = load ptr, ptr %encoder, align 8 %bits_per_sample154 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %61, i64 0, i32 7 %62 = load i32, ptr %bits_per_sample154, align 4 @@ -8079,7 +8079,7 @@ for.body151: ; preds = %for.cond148.prehead br i1 %or.cond, label %if.then159, label %if.else166 if.then159: ; preds = %for.body151 - %arrayidx162 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 1, i64 %indvars.iv338 + %arrayidx162 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 1, i64 %indvars.iv333 %64 = load ptr, ptr %arrayidx162, align 8 br i1 %cmp18.not.i221, label %if.end174, label %for.body.preheader.i222 @@ -8193,9 +8193,9 @@ if.end174: ; preds = %for.body14.i273, %f %bits_per_sample176 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %77, i64 0, i32 7 %78 = load i32, ptr %bits_per_sample176, align 4 %spec.select217 = tail call i32 @llvm.umin.i32(i32 %w152.0, i32 %78) - %wasted_bits186 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 9, i64 %indvars.iv338, i64 1, i32 2 + %wasted_bits186 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 9, i64 %indvars.iv333, i64 1, i32 2 store i32 %spec.select217, ptr %wasted_bits186, align 8 - %wasted_bits191 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 9, i64 %indvars.iv338, i64 0, i32 2 + %wasted_bits191 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 9, i64 %indvars.iv333, i64 0, i32 2 store i32 %spec.select217, ptr %wasted_bits191, align 8 %79 = load ptr, ptr %encoder, align 8 %bits_per_sample193 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %79, i64 0, i32 7 @@ -8204,21 +8204,21 @@ if.end174: ; preds = %for.body14.i273, %f %cond197 = zext i1 %not.cmp157 to i32 %sub194 = sub i32 %cond197, %spec.select217 %add198 = add i32 %sub194, %80 - %arrayidx200 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5, i64 %indvars.iv338 + %arrayidx200 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5, i64 %indvars.iv333 store i32 %add198, ptr %arrayidx200, align 4 br i1 %cmp157, label %for.body151, label %if.end204, !llvm.loop !92 if.end204: ; preds = %if.end174, %if.end145 - %do_mid_side.0282359367 = phi i1 [ true, %if.end145 ], [ false, %if.end174 ] - %tobool107.not361365 = phi i1 [ false, %if.end145 ], [ %tobool107.not361364, %if.end174 ] - br i1 %tobool107.not361365, label %if.end262, label %for.cond207.preheader + %do_mid_side.0282354362 = phi i1 [ true, %if.end145 ], [ false, %if.end174 ] + %tobool107.not356360 = phi i1 [ false, %if.end145 ], [ %tobool107.not356359, %if.end174 ] + br i1 %tobool107.not356360, label %if.end262, label %for.cond207.preheader for.cond207.preheader: ; preds = %if.end204 %81 = load ptr, ptr %encoder, align 8 - %channels209321 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %81, i64 0, i32 6 - %82 = load i32, ptr %channels209321, align 8 - %cmp210322.not = icmp eq i32 %82, 0 - br i1 %cmp210322.not, label %if.end262, label %for.body212.lr.ph + %channels209316 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %81, i64 0, i32 6 + %82 = load i32, ptr %channels209316, align 8 + %cmp210317.not = icmp eq i32 %82, 0 + br i1 %cmp210317.not, label %if.end262, label %for.body212.lr.ph for.body212.lr.ph: ; preds = %for.cond207.preheader %best_subframe = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 16 @@ -8226,18 +8226,18 @@ for.body212.lr.ph: ; preds = %for.cond207.prehead br label %for.body212 for.body212: ; preds = %for.body212.lr.ph, %if.end224 - %indvars.iv341 = phi i64 [ 0, %for.body212.lr.ph ], [ %indvars.iv.next342, %if.end224 ] + %indvars.iv336 = phi i64 [ 0, %for.body212.lr.ph ], [ %indvars.iv.next337, %if.end224 ] %83 = phi i32 [ %82, %for.body212.lr.ph ], [ %92, %if.end224 ] %84 = phi ptr [ %81, %for.body212.lr.ph ], [ %91, %if.end224 ] - %all_subframes_constant.0324 = phi i32 [ 1, %for.body212.lr.ph ], [ %all_subframes_constant.1, %if.end224 ] + %all_subframes_constant.0319 = phi i32 [ 1, %for.body212.lr.ph ], [ %all_subframes_constant.1, %if.end224 ] %limit_min_bitrate = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %84, i64 0, i32 21 %85 = load i32, ptr %limit_min_bitrate, align 8 %tobool214 = icmp ne i32 %85, 0 - %tobool215 = icmp ne i32 %all_subframes_constant.0324, 0 + %tobool215 = icmp ne i32 %all_subframes_constant.0319, 0 %or.cond1 = select i1 %tobool214, i1 %tobool215, i1 false - %indvars.iv.next342 = add nuw nsw i64 %indvars.iv341, 1 + %indvars.iv.next337 = add nuw nsw i64 %indvars.iv336, 1 %86 = zext i32 %83 to i64 - %cmp220 = icmp eq i64 %indvars.iv.next342, %86 + %cmp220 = icmp eq i64 %indvars.iv.next337, %86 %or.cond218 = and i1 %cmp220, %or.cond1 br i1 %or.cond218, label %if.then222, label %if.end224 @@ -8246,32 +8246,32 @@ if.then222: ; preds = %for.body212 br label %if.end224 if.end224: ; preds = %if.then222, %for.body212 - %arrayidx227 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 %indvars.iv341 + %arrayidx227 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 %indvars.iv336 %87 = load i32, ptr %arrayidx227, align 4 - %arrayidx230 = getelementptr inbounds [8 x ptr], ptr %threadtask, i64 0, i64 %indvars.iv341 + %arrayidx230 = getelementptr inbounds [8 x ptr], ptr %threadtask, i64 0, i64 %indvars.iv336 %88 = load ptr, ptr %arrayidx230, align 8 - %arrayidx232 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 10, i64 %indvars.iv341 - %arrayidx234 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 14, i64 %indvars.iv341 - %arrayidx237 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 6, i64 %indvars.iv341 - %add.ptr = getelementptr inbounds i32, ptr %best_subframe, i64 %indvars.iv341 - %add.ptr242 = getelementptr inbounds i32, ptr %best_subframe_bits, i64 %indvars.iv341 + %arrayidx232 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 10, i64 %indvars.iv336 + %arrayidx234 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 14, i64 %indvars.iv336 + %arrayidx237 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 6, i64 %indvars.iv336 + %add.ptr = getelementptr inbounds i32, ptr %best_subframe, i64 %indvars.iv336 + %add.ptr242 = getelementptr inbounds i32, ptr %best_subframe_bits, i64 %indvars.iv336 call fastcc void @process_subframe_(ptr noundef nonnull %encoder, ptr noundef nonnull %threadtask, i32 noundef %cond10, i32 noundef %call., ptr noundef nonnull %frame_header, i32 noundef %87, ptr noundef %88, ptr noundef nonnull %arrayidx232, ptr noundef nonnull %arrayidx234, ptr noundef nonnull %arrayidx237, ptr noundef nonnull %add.ptr, ptr noundef nonnull %add.ptr242) - %arrayidx252 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 16, i64 %indvars.iv341 + %arrayidx252 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 16, i64 %indvars.iv336 %89 = load i32, ptr %arrayidx252, align 4 %idxprom253 = zext i32 %89 to i64 - %arrayidx254 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv341, i64 %idxprom253 + %arrayidx254 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv336, i64 %idxprom253 %90 = load i32, ptr %arrayidx254, align 8 %cmp255.not = icmp eq i32 %90, 0 - %all_subframes_constant.1 = select i1 %cmp255.not, i32 %all_subframes_constant.0324, i32 0 + %all_subframes_constant.1 = select i1 %cmp255.not, i32 %all_subframes_constant.0319, i32 0 %91 = load ptr, ptr %encoder, align 8 %channels209 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %91, i64 0, i32 6 %92 = load i32, ptr %channels209, align 8 %93 = zext i32 %92 to i64 - %cmp210 = icmp ult i64 %indvars.iv.next342, %93 + %cmp210 = icmp ult i64 %indvars.iv.next337, %93 br i1 %cmp210, label %for.body212, label %if.end262, !llvm.loop !93 if.end262: ; preds = %if.end224, %for.cond207.preheader, %if.end204 - br i1 %do_mid_side.0282359367, label %if.else462, label %for.cond265.preheader + br i1 %do_mid_side.0282354362, label %if.else462, label %for.cond265.preheader for.cond265.preheader: ; preds = %if.end262 %integer_signal_33bit_side279 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 2 @@ -8281,18 +8281,18 @@ for.cond265.preheader: ; preds = %if.end262 for.body268: ; preds = %for.cond265.preheader, %for.body268 %cmp266 = phi i1 [ true, %for.cond265.preheader ], [ false, %for.body268 ] - %indvars.iv344 = phi i64 [ 0, %for.cond265.preheader ], [ 1, %for.body268 ] - %arrayidx271 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5, i64 %indvars.iv344 + %indvars.iv339 = phi i64 [ 0, %for.cond265.preheader ], [ 1, %for.body268 ] + %arrayidx271 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5, i64 %indvars.iv339 %94 = load i32, ptr %arrayidx271, align 4 %cmp272 = icmp ult i32 %94, 33 - %arrayidx277 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 1, i64 %indvars.iv344 + %arrayidx277 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 1, i64 %indvars.iv339 %integer_signal_.0.in = select i1 %cmp272, ptr %arrayidx277, ptr %integer_signal_33bit_side279 %integer_signal_.0 = load ptr, ptr %integer_signal_.0.in, align 8 - %arrayidx285 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 11, i64 %indvars.iv344 - %arrayidx288 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 15, i64 %indvars.iv344 - %arrayidx291 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 7, i64 %indvars.iv344 - %add.ptr295 = getelementptr inbounds i32, ptr %best_subframe_mid_side, i64 %indvars.iv344 - %add.ptr298 = getelementptr inbounds i32, ptr %best_subframe_bits_mid_side, i64 %indvars.iv344 + %arrayidx285 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 11, i64 %indvars.iv339 + %arrayidx288 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 15, i64 %indvars.iv339 + %arrayidx291 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 7, i64 %indvars.iv339 + %add.ptr295 = getelementptr inbounds i32, ptr %best_subframe_mid_side, i64 %indvars.iv339 + %add.ptr298 = getelementptr inbounds i32, ptr %best_subframe_bits_mid_side, i64 %indvars.iv339 call fastcc void @process_subframe_(ptr noundef nonnull %encoder, ptr noundef nonnull %threadtask, i32 noundef %cond10, i32 noundef %call., ptr noundef nonnull %frame_header, i32 noundef %94, ptr noundef %integer_signal_.0, ptr noundef nonnull %arrayidx285, ptr noundef nonnull %arrayidx288, ptr noundef nonnull %arrayidx291, ptr noundef nonnull %add.ptr295, ptr noundef nonnull %add.ptr298) br i1 %cmp266, label %for.body268, label %if.then308, !llvm.loop !94 @@ -8339,17 +8339,17 @@ if.else324: ; preds = %land.lhs.true313, % br label %for.body358 for.body358: ; preds = %if.else324, %for.body358 - %indvars.iv347 = phi i64 [ %cond354, %if.else324 ], [ %indvars.iv.next348, %for.body358 ] - %min_bits.0327 = phi i32 [ %add329, %if.else324 ], [ %spec.select220, %for.body358 ] - %channel_assignment309.0326 = phi i32 [ 0, %if.else324 ], [ %spec.select219, %for.body358 ] - %arrayidx360 = getelementptr inbounds [4 x i32], ptr %bits, i64 0, i64 %indvars.iv347 + %indvars.iv342 = phi i64 [ %cond354, %if.else324 ], [ %indvars.iv.next343, %for.body358 ] + %min_bits.0322 = phi i32 [ %add329, %if.else324 ], [ %spec.select220, %for.body358 ] + %channel_assignment309.0321 = phi i32 [ 0, %if.else324 ], [ %spec.select219, %for.body358 ] + %arrayidx360 = getelementptr inbounds [4 x i32], ptr %bits, i64 0, i64 %indvars.iv342 %104 = load i32, ptr %arrayidx360, align 4 - %cmp361 = icmp ult i32 %104, %min_bits.0327 - %105 = trunc i64 %indvars.iv347 to i32 - %spec.select219 = select i1 %cmp361, i32 %105, i32 %channel_assignment309.0326 - %spec.select220 = tail call i32 @llvm.umin.i32(i32 %104, i32 %min_bits.0327) - %indvars.iv.next348 = add nuw nsw i64 %indvars.iv347, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next348, 4 + %cmp361 = icmp ult i32 %104, %min_bits.0322 + %105 = trunc i64 %indvars.iv342 to i32 + %spec.select219 = select i1 %cmp361, i32 %105, i32 %channel_assignment309.0321 + %spec.select220 = tail call i32 @llvm.umin.i32(i32 %104, i32 %min_bits.0322) + %indvars.iv.next343 = add nuw nsw i64 %indvars.iv342, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next343, 4 br i1 %exitcond.not, label %if.end370, label %for.body358, !llvm.loop !95 if.end370: ; preds = %for.body358, %if.then318 @@ -8367,14 +8367,17 @@ if.then374: ; preds = %if.end370 br label %return if.end376: ; preds = %if.end370 - switch i32 %channel_assignment309.2, label %sw.epilog449 [ - i32 0, label %sw.epilog.thread - i32 1, label %sw.epilog.thread295 - i32 2, label %sw.epilog.thread300 - i32 3, label %sw.epilog.thread305 + switch i32 %channel_assignment309.2, label %default.unreachable [ + i32 0, label %sw.bb428 + i32 1, label %sw.bb433 + i32 2, label %sw.bb438 + i32 3, label %sw.bb443 ] -sw.epilog.thread: ; preds = %if.end376 +default.unreachable: ; preds = %if.end376 + unreachable + +sw.bb428: ; preds = %if.end376 %subframe_workspace377 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8 %best_subframe379 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 16 %108 = load i32, ptr %best_subframe379, align 8 @@ -8386,9 +8389,9 @@ sw.epilog.thread: ; preds = %if.end376 %arrayidx388 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 1, i64 %idxprom387 %subframe_bps429 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4 %arrayidx432 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 1 - br label %sw.epilog449.sink.split + br label %sw.epilog449 -sw.epilog.thread295: ; preds = %if.end376 +sw.bb433: ; preds = %if.end376 %subframe_workspace390 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8 %best_subframe392 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 16 %110 = load i32, ptr %best_subframe392, align 8 @@ -8400,9 +8403,9 @@ sw.epilog.thread295: ; preds = %if.end376 %arrayidx401 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 9, i64 1, i64 %idxprom400 %subframe_bps434 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4 %arrayidx437 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5, i64 1 - br label %sw.epilog449.sink.split + br label %sw.epilog449 -sw.epilog.thread300: ; preds = %if.end376 +sw.bb438: ; preds = %if.end376 %arrayidx406 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 17, i64 1 %112 = load i32, ptr %arrayidx406, align 4 %idxprom407 = zext i32 %112 to i64 @@ -8413,9 +8416,9 @@ sw.epilog.thread300: ; preds = %if.end376 %arrayidx414 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 1, i64 %idxprom413 %arrayidx440 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5, i64 1 %arrayidx442 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 1 - br label %sw.epilog449.sink.split + br label %sw.epilog449 -sw.epilog.thread305: ; preds = %if.end376 +sw.bb443: ; preds = %if.end376 %subframe_workspace_mid_side416 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 9 %114 = load i32, ptr %best_subframe_mid_side, align 8 %idxprom420 = zext i32 %114 to i64 @@ -8426,111 +8429,104 @@ sw.epilog.thread305: ; preds = %if.end376 %arrayidx427 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 9, i64 1, i64 %idxprom426 %subframe_bps_mid_side444 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5 %arrayidx447 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 5, i64 1 - br label %sw.epilog449.sink.split - -sw.epilog449.sink.split: ; preds = %sw.epilog.thread, %sw.epilog.thread295, %sw.epilog.thread300, %sw.epilog.thread305 - %arrayidx447.sink = phi ptr [ %arrayidx447, %sw.epilog.thread305 ], [ %arrayidx442, %sw.epilog.thread300 ], [ %arrayidx437, %sw.epilog.thread295 ], [ %arrayidx432, %sw.epilog.thread ] - %right_subframe.0294.ph = phi ptr [ %arrayidx427, %sw.epilog.thread305 ], [ %arrayidx414, %sw.epilog.thread300 ], [ %arrayidx401, %sw.epilog.thread295 ], [ %arrayidx388, %sw.epilog.thread ] - %left_subframe.0292.ph = phi ptr [ %arrayidx421, %sw.epilog.thread305 ], [ %arrayidx408, %sw.epilog.thread300 ], [ %arrayidx395, %sw.epilog.thread295 ], [ %arrayidx382, %sw.epilog.thread ] - %left_bps.0.ph.in = phi ptr [ %subframe_bps_mid_side444, %sw.epilog.thread305 ], [ %arrayidx440, %sw.epilog.thread300 ], [ %subframe_bps434, %sw.epilog.thread295 ], [ %subframe_bps429, %sw.epilog.thread ] - %left_bps.0.ph = load i32, ptr %left_bps.0.ph.in, align 4 - %116 = load i32, ptr %arrayidx447.sink, align 4 br label %sw.epilog449 -sw.epilog449: ; preds = %sw.epilog449.sink.split, %if.end376 - %right_subframe.0294 = phi ptr [ null, %if.end376 ], [ %right_subframe.0294.ph, %sw.epilog449.sink.split ] - %left_subframe.0292 = phi ptr [ null, %if.end376 ], [ %left_subframe.0292.ph, %sw.epilog449.sink.split ] - %left_bps.0 = phi i32 [ 0, %if.end376 ], [ %left_bps.0.ph, %sw.epilog449.sink.split ] - %right_bps.0 = phi i32 [ 0, %if.end376 ], [ %116, %sw.epilog449.sink.split ] - %117 = load i32, ptr %frame_header, align 8 - %118 = load ptr, ptr %frame, align 8 - %call452 = call fastcc i32 @add_subframe_(ptr noundef nonnull %encoder, i32 noundef %117, i32 noundef %left_bps.0, ptr noundef %left_subframe.0292, ptr noundef %118), !range !8 +sw.epilog449: ; preds = %sw.bb443, %sw.bb438, %sw.bb433, %sw.bb428 + %right_subframe.0293 = phi ptr [ %arrayidx427, %sw.bb443 ], [ %arrayidx414, %sw.bb438 ], [ %arrayidx401, %sw.bb433 ], [ %arrayidx388, %sw.bb428 ] + %left_subframe.0291 = phi ptr [ %arrayidx421, %sw.bb443 ], [ %arrayidx408, %sw.bb438 ], [ %arrayidx395, %sw.bb433 ], [ %arrayidx382, %sw.bb428 ] + %left_bps.0.in = phi ptr [ %subframe_bps_mid_side444, %sw.bb443 ], [ %arrayidx440, %sw.bb438 ], [ %subframe_bps434, %sw.bb433 ], [ %subframe_bps429, %sw.bb428 ] + %right_bps.0.in = phi ptr [ %arrayidx447, %sw.bb443 ], [ %arrayidx442, %sw.bb438 ], [ %arrayidx437, %sw.bb433 ], [ %arrayidx432, %sw.bb428 ] + %right_bps.0 = load i32, ptr %right_bps.0.in, align 4 + %left_bps.0 = load i32, ptr %left_bps.0.in, align 4 + %116 = load i32, ptr %frame_header, align 8 + %117 = load ptr, ptr %frame, align 8 + %call452 = call fastcc i32 @add_subframe_(ptr noundef nonnull %encoder, i32 noundef %116, i32 noundef %left_bps.0, ptr noundef nonnull %left_subframe.0291, ptr noundef %117), !range !8 %tobool453.not = icmp eq i32 %call452, 0 br i1 %tobool453.not, label %return, label %if.end455 if.end455: ; preds = %sw.epilog449 - %119 = load i32, ptr %frame_header, align 8 - %120 = load ptr, ptr %frame, align 8 - %call458 = call fastcc i32 @add_subframe_(ptr noundef nonnull %encoder, i32 noundef %119, i32 noundef %right_bps.0, ptr noundef %right_subframe.0294, ptr noundef %120), !range !8 + %118 = load i32, ptr %frame_header, align 8 + %119 = load ptr, ptr %frame, align 8 + %call458 = call fastcc i32 @add_subframe_(ptr noundef nonnull %encoder, i32 noundef %118, i32 noundef %right_bps.0, ptr noundef nonnull %right_subframe.0293, ptr noundef %119), !range !8 %tobool459.not = icmp eq i32 %call458, 0 br i1 %tobool459.not, label %return, label %if.end455.if.end496_crit_edge if.end455.if.end496_crit_edge: ; preds = %if.end455 - %.pre353 = load ptr, ptr %encoder, align 8 + %.pre348 = load ptr, ptr %encoder, align 8 br label %if.end496 if.else462: ; preds = %if.end262 %frame463 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 22 - %121 = load ptr, ptr %frame463, align 8 - %call464 = call i32 @FLAC__frame_add_header(ptr noundef nonnull %frame_header, ptr noundef %121) #24 + %120 = load ptr, ptr %frame463, align 8 + %call464 = call i32 @FLAC__frame_add_header(ptr noundef nonnull %frame_header, ptr noundef %120) #24 %tobool465.not = icmp eq i32 %call464, 0 - %122 = load ptr, ptr %encoder, align 8 + %121 = load ptr, ptr %encoder, align 8 br i1 %tobool465.not, label %if.then466, label %for.cond470.preheader for.cond470.preheader: ; preds = %if.else462 - %channels472329 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %122, i64 0, i32 6 - %123 = load i32, ptr %channels472329, align 8 - %cmp473330.not = icmp eq i32 %123, 0 - br i1 %cmp473330.not, label %if.end496, label %for.body475 + %channels472324 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %121, i64 0, i32 6 + %122 = load i32, ptr %channels472324, align 8 + %cmp473325.not = icmp eq i32 %122, 0 + br i1 %cmp473325.not, label %if.end496, label %for.body475 if.then466: ; preds = %if.else462 - store i32 7, ptr %122, align 8 + store i32 7, ptr %121, align 8 br label %return for.cond470: ; preds = %for.body475 - %indvars.iv.next351 = add nuw nsw i64 %indvars.iv350, 1 - %124 = load ptr, ptr %encoder, align 8 - %channels472 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %124, i64 0, i32 6 - %125 = load i32, ptr %channels472, align 8 - %126 = zext i32 %125 to i64 - %cmp473 = icmp ult i64 %indvars.iv.next351, %126 + %indvars.iv.next346 = add nuw nsw i64 %indvars.iv345, 1 + %123 = load ptr, ptr %encoder, align 8 + %channels472 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %123, i64 0, i32 6 + %124 = load i32, ptr %channels472, align 8 + %125 = zext i32 %124 to i64 + %cmp473 = icmp ult i64 %indvars.iv.next346, %125 br i1 %cmp473, label %for.body475, label %if.end496, !llvm.loop !96 for.body475: ; preds = %for.cond470.preheader, %for.cond470 - %indvars.iv350 = phi i64 [ %indvars.iv.next351, %for.cond470 ], [ 0, %for.cond470.preheader ] - %127 = load i32, ptr %frame_header, align 8 - %arrayidx479 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 %indvars.iv350 - %128 = load i32, ptr %arrayidx479, align 4 - %arrayidx485 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 16, i64 %indvars.iv350 - %129 = load i32, ptr %arrayidx485, align 4 - %idxprom486 = zext i32 %129 to i64 - %arrayidx487 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv350, i64 %idxprom486 - %130 = load ptr, ptr %frame463, align 8 - %call489 = call fastcc i32 @add_subframe_(ptr noundef nonnull %encoder, i32 noundef %127, i32 noundef %128, ptr noundef nonnull %arrayidx487, ptr noundef %130), !range !8 + %indvars.iv345 = phi i64 [ %indvars.iv.next346, %for.cond470 ], [ 0, %for.cond470.preheader ] + %126 = load i32, ptr %frame_header, align 8 + %arrayidx479 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 4, i64 %indvars.iv345 + %127 = load i32, ptr %arrayidx479, align 4 + %arrayidx485 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 16, i64 %indvars.iv345 + %128 = load i32, ptr %arrayidx485, align 4 + %idxprom486 = zext i32 %128 to i64 + %arrayidx487 = getelementptr inbounds %struct.FLAC__StreamEncoderThreadTask, ptr %threadtask, i64 0, i32 8, i64 %indvars.iv345, i64 %idxprom486 + %129 = load ptr, ptr %frame463, align 8 + %call489 = call fastcc i32 @add_subframe_(ptr noundef nonnull %encoder, i32 noundef %126, i32 noundef %127, ptr noundef nonnull %arrayidx487, ptr noundef %129), !range !8 %tobool490.not = icmp eq i32 %call489, 0 br i1 %tobool490.not, label %return, label %for.cond470 if.end496: ; preds = %for.cond470, %if.end455.if.end496_crit_edge, %for.cond470.preheader - %131 = phi ptr [ %.pre353, %if.end455.if.end496_crit_edge ], [ %122, %for.cond470.preheader ], [ %124, %for.cond470 ] - %loose_mid_side_stereo498 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %131, i64 0, i32 5 - %132 = load i32, ptr %loose_mid_side_stereo498, align 4 - %tobool499.not = icmp eq i32 %132, 0 + %130 = phi ptr [ %.pre348, %if.end455.if.end496_crit_edge ], [ %121, %for.cond470.preheader ], [ %123, %for.cond470 ] + %loose_mid_side_stereo498 = getelementptr inbounds %struct.FLAC__StreamEncoderProtected, ptr %130, i64 0, i32 5 + %131 = load i32, ptr %loose_mid_side_stereo498, align 4 + %tobool499.not = icmp eq i32 %131, 0 br i1 %tobool499.not, label %return, label %if.then500 if.then500: ; preds = %if.end496 - %133 = load ptr, ptr %private_, align 8 - %loose_mid_side_stereo_frame_count502 = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %133, i64 0, i32 6 - %134 = load i32, ptr %loose_mid_side_stereo_frame_count502, align 4 - %inc503 = add i32 %134, 1 + %132 = load ptr, ptr %private_, align 8 + %loose_mid_side_stereo_frame_count502 = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %132, i64 0, i32 6 + %133 = load i32, ptr %loose_mid_side_stereo_frame_count502, align 4 + %inc503 = add i32 %133, 1 store i32 %inc503, ptr %loose_mid_side_stereo_frame_count502, align 4 - %135 = load ptr, ptr %private_, align 8 - %loose_mid_side_stereo_frame_count505 = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %135, i64 0, i32 6 - %136 = load i32, ptr %loose_mid_side_stereo_frame_count505, align 4 - %loose_mid_side_stereo_frames = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %135, i64 0, i32 5 - %137 = load i32, ptr %loose_mid_side_stereo_frames, align 8 - %cmp507.not = icmp ult i32 %136, %137 + %134 = load ptr, ptr %private_, align 8 + %loose_mid_side_stereo_frame_count505 = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %134, i64 0, i32 6 + %135 = load i32, ptr %loose_mid_side_stereo_frame_count505, align 4 + %loose_mid_side_stereo_frames = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %134, i64 0, i32 5 + %136 = load i32, ptr %loose_mid_side_stereo_frames, align 8 + %cmp507.not = icmp ult i32 %135, %136 br i1 %cmp507.not, label %if.end512, label %if.then509 if.then509: ; preds = %if.then500 store i32 0, ptr %loose_mid_side_stereo_frame_count505, align 4 - %.pre354 = load ptr, ptr %private_, align 8 + %.pre349 = load ptr, ptr %private_, align 8 br label %if.end512 if.end512: ; preds = %if.then509, %if.then500 - %138 = phi ptr [ %.pre354, %if.then509 ], [ %135, %if.then500 ] - %139 = load i32, ptr %channel_assignment, align 4 - %last_channel_assignment515 = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %138, i64 0, i32 7 - store i32 %139, ptr %last_channel_assignment515, align 8 + %137 = phi ptr [ %.pre349, %if.then509 ], [ %134, %if.then500 ] + %138 = load i32, ptr %channel_assignment, align 4 + %last_channel_assignment515 = getelementptr inbounds %struct.FLAC__StreamEncoderPrivate, ptr %137, i64 0, i32 7 + store i32 %138, ptr %last_channel_assignment515, align 8 br label %return return: ; preds = %for.body475, %if.end496, %if.end512, %if.end455, %sw.epilog449, %if.then466, %if.then374 diff --git a/bench/flatbuffers/optimized/idl_gen_json_schema.cpp.ll b/bench/flatbuffers/optimized/idl_gen_json_schema.cpp.ll index 7cb2fb49718..8bed0dd027d 100644 --- a/bench/flatbuffers/optimized/idl_gen_json_schema.cpp.ll +++ b/bench/flatbuffers/optimized/idl_gen_json_schema.cpp.ll @@ -5873,8 +5873,8 @@ entry: %ref.tmp50 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp55 = alloca %"class.std::__cxx11::basic_string", align 8 %call = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %_text, ptr noundef nonnull @.str.7) - %cmp52 = icmp eq i64 %length, 0 - br i1 %cmp52, label %for.end, label %for.body.lr.ph + %cmp53 = icmp eq i64 %length, 0 + br i1 %cmp53, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %entry %sub.ptr.rhs.cast = ptrtoint ptr %s to i64 @@ -5883,9 +5883,9 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %conv54 = phi i64 [ 0, %for.body.lr.ph ], [ %conv, %for.inc ] - %i.053 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] - %arrayidx = getelementptr inbounds i8, ptr %s, i64 %conv54 + %conv55 = phi i64 [ 0, %for.body.lr.ph ], [ %conv, %for.inc ] + %i.054 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] + %arrayidx = getelementptr inbounds i8, ptr %s, i64 %conv55 %1 = load i8, ptr %arrayidx, align 1 switch i8 %1, label %sw.default [ i8 10, label %sw.bb @@ -5981,9 +5981,9 @@ for.body22.lr.ph.i: ; preds = %if.end9.i %sub17.i = xor i32 %notmask.i, -1 %and18.i = and i32 %sub17.i, %conv15.i %5 = add nsw i32 %len.031.i, -2 - %scevgep65 = getelementptr i8, ptr %scevgep, i64 %conv54 + %scevgep67 = getelementptr i8, ptr %scevgep, i64 %conv55 %6 = zext i32 %indvars.iv to i64 - %scevgep67 = getelementptr i8, ptr %scevgep65, i64 %6 + %scevgep69 = getelementptr i8, ptr %scevgep67, i64 %6 br label %for.body22.i for.body22.i: ; preds = %if.end27.i, %for.body22.lr.ph.i @@ -6011,7 +6011,7 @@ for.end34.i: ; preds = %if.end27.i br i1 %or.cond1.i, label %if.then23, label %if.end38.i if.end38.i: ; preds = %for.end34.i - switch i32 %len.031.i, label %_ZN11flatbuffers8FromUTF8EPPKc.exit [ + switch i32 %len.031.i, label %default.unreachable.i [ i32 2, label %sw.bb.i i32 3, label %sw.bb44.i i32 4, label %sw.bb50.i @@ -6032,9 +6032,12 @@ sw.bb50.i: ; preds = %if.end38.i %or.cond4.i = icmp ult i32 %14, -1048576 br i1 %or.cond4.i, label %if.then23, label %_ZN11flatbuffers8FromUTF8EPPKc.exit -_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %if.end38.i, %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i - %utf8.1 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep67, %sw.bb50.i ], [ %scevgep67, %sw.bb44.i ], [ %scevgep67, %sw.bb.i ], [ %scevgep67, %if.end38.i ] - %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ], [ %or.i, %if.end38.i ] +default.unreachable.i: ; preds = %if.end38.i + unreachable + +_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i + %utf8.1 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep69, %sw.bb50.i ], [ %scevgep69, %sw.bb44.i ], [ %scevgep69, %sw.bb.i ] + %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ] %cmp22 = icmp slt i32 %retval.0.i, 0 br i1 %cmp22, label %if.then23, label %if.else29 @@ -6061,7 +6064,7 @@ if.else29: ; preds = %_ZN11flatbuffers8Fr if.then31: ; preds = %if.else29 %sub.ptr.lhs.cast = ptrtoint ptr %utf8.1 to i64 - %16 = add i64 %conv54, %sub.ptr.rhs.cast + %16 = add i64 %conv55, %sub.ptr.rhs.cast %sub = sub i64 %sub.ptr.lhs.cast, %16 %call35 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %_text, ptr noundef nonnull %arrayidx, i64 noundef %sub) br label %if.end61 @@ -6128,7 +6131,7 @@ if.end61: ; preds = %invoke.cont42, %inv br label %for.inc for.inc: ; preds = %sw.bb, %sw.bb4, %sw.bb6, %sw.bb8, %sw.bb10, %sw.bb12, %sw.bb14, %invoke.cont, %if.end61, %if.then - %i.1 = phi i32 [ %i.053, %if.then ], [ %i.053, %invoke.cont ], [ %conv66, %if.end61 ], [ %i.053, %sw.bb14 ], [ %i.053, %sw.bb12 ], [ %i.053, %sw.bb10 ], [ %i.053, %sw.bb8 ], [ %i.053, %sw.bb6 ], [ %i.053, %sw.bb4 ], [ %i.053, %sw.bb ] + %i.1 = phi i32 [ %i.054, %if.then ], [ %i.054, %invoke.cont ], [ %conv66, %if.end61 ], [ %i.054, %sw.bb14 ], [ %i.054, %sw.bb12 ], [ %i.054, %sw.bb10 ], [ %i.054, %sw.bb8 ], [ %i.054, %sw.bb6 ], [ %i.054, %sw.bb4 ], [ %i.054, %sw.bb ] %inc = add i32 %i.1, 1 %conv = zext i32 %inc to i64 %cmp.not = icmp ult i64 %conv, %length @@ -6139,8 +6142,8 @@ for.end: ; preds = %for.inc, %entry br label %return return: ; preds = %if.then23, %for.end - %cmp51 = phi i1 [ true, %for.end ], [ false, %if.then23 ] - ret i1 %cmp51 + %cmp52 = phi i1 [ true, %for.end ], [ false, %if.then23 ] + ret i1 %cmp52 eh.resume: ; preds = %lpad56, %lpad51, %lpad41, %lpad %ref.tmp55.sink = phi ptr [ %ref.tmp55, %lpad56 ], [ %ref.tmp50, %lpad51 ], [ %ref.tmp40, %lpad41 ], [ %ref.tmp, %lpad ] diff --git a/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll b/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll index eadb46e9542..7569679b418 100644 --- a/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll +++ b/bench/flatbuffers/optimized/idl_gen_rust.cpp.ll @@ -36638,7 +36638,7 @@ entry: %value = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ty) #20 %call = call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %value), !range !72 - switch i32 %call, label %sw.epilog [ + switch i32 %call, label %default.unreachable258 [ i32 0, label %sw.bb i32 2, label %sw.bb i32 1, label %sw.bb @@ -37455,12 +37455,15 @@ ehcleanup169: ; preds = %ehcleanup168, %lpad call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp148) #20 br label %ehcleanup180 +default.unreachable258: ; preds = %entry + unreachable + sw.epilog.sink.split: ; preds = %invoke.cont3, %invoke.cont10, %invoke.cont21, %invoke.cont30, %invoke.cont35, %invoke.cont48, %invoke.cont62, %invoke.cont80, %invoke.cont108, %invoke.cont136, %invoke.cont163 %ref.tmp148.sink = phi ptr [ %ref.tmp148, %invoke.cont163 ], [ %ref.tmp120, %invoke.cont136 ], [ %ref.tmp93, %invoke.cont108 ], [ %ref.tmp77, %invoke.cont80 ], [ %ref.tmp55, %invoke.cont62 ], [ %ref.tmp40, %invoke.cont48 ], [ %ref.tmp33, %invoke.cont35 ], [ %ref.tmp29, %invoke.cont30 ], [ %ref.tmp15, %invoke.cont21 ], [ %ref.tmp9, %invoke.cont10 ], [ %ref.tmp, %invoke.cont3 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp148.sink) #20 br label %sw.epilog -sw.epilog: ; preds = %sw.epilog.sink.split, %sw.bb66.invoke, %entry +sw.epilog: ; preds = %sw.epilog.sink.split, %sw.bb66.invoke br i1 %in_a_table, label %land.lhs.true, label %if.else land.lhs.true: ; preds = %sw.epilog @@ -41375,10 +41378,9 @@ entry: %ref.tmp159 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp173 = alloca %"class.std::allocator", align 1 %ref.tmp178 = alloca %"class.std::allocator", align 1 - %ref.tmp182 = alloca %"class.std::allocator", align 1 %value = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1 %call = tail call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %value), !range !72 - switch i32 %call, label %sw.epilog [ + switch i32 %call, label %default.unreachable297 [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.bb @@ -41458,8 +41460,8 @@ sw.bb5: ; preds = %entry invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %4, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i60) to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit unwind label %lpad.i -common.resume: ; preds = %lpad.body, %ehcleanup17, %ehcleanup35, %lpad38.body, %ehcleanup49, %ehcleanup58, %ehcleanup80, %ehcleanup102, %ehcleanup124, %ehcleanup154, %ehcleanup171, %lpad174.body, %lpad179.body, %lpad183.body, %lpad.i224, %lpad.i198, %lpad.i172, %lpad.i104, %lpad.i78, %lpad.i - %common.resume.op = phi { ptr, i32 } [ %5, %lpad.i ], [ %14, %lpad.i78 ], [ %24, %lpad.i104 ], [ %48, %lpad.i172 ], [ %58, %lpad.i198 ], [ %68, %lpad.i224 ], [ %eh.lpad-body293, %lpad183.body ], [ %eh.lpad-body285, %lpad179.body ], [ %eh.lpad-body278, %lpad174.body ], [ %.pn.pn.pn, %ehcleanup171 ], [ %.pn23.pn.pn.pn.pn.pn, %ehcleanup154 ], [ %.pn30.pn.pn.pn, %ehcleanup124 ], [ %.pn35.pn.pn.pn, %ehcleanup102 ], [ %.pn40.pn.pn.pn, %ehcleanup80 ], [ %.pn45, %ehcleanup58 ], [ %.pn47, %ehcleanup49 ], [ %eh.lpad-body116, %lpad38.body ], [ %.pn49.pn.pn, %ehcleanup35 ], [ %.pn53.pn.pn, %ehcleanup17 ], [ %eh.lpad-body, %lpad.body ] +common.resume: ; preds = %lpad.body, %ehcleanup17, %ehcleanup35, %lpad38.body, %ehcleanup49, %ehcleanup58, %ehcleanup80, %ehcleanup102, %ehcleanup124, %ehcleanup154, %ehcleanup171, %lpad174.body, %lpad179.body, %lpad.i224, %lpad.i198, %lpad.i172, %lpad.i104, %lpad.i78, %lpad.i + %common.resume.op = phi { ptr, i32 } [ %5, %lpad.i ], [ %14, %lpad.i78 ], [ %24, %lpad.i104 ], [ %48, %lpad.i172 ], [ %58, %lpad.i198 ], [ %68, %lpad.i224 ], [ %eh.lpad-body285, %lpad179.body ], [ %eh.lpad-body278, %lpad174.body ], [ %.pn.pn.pn, %ehcleanup171 ], [ %.pn23.pn.pn.pn.pn.pn, %ehcleanup154 ], [ %.pn30.pn.pn.pn, %ehcleanup124 ], [ %.pn35.pn.pn.pn, %ehcleanup102 ], [ %.pn40.pn.pn.pn, %ehcleanup80 ], [ %.pn45, %ehcleanup58 ], [ %.pn47, %ehcleanup49 ], [ %eh.lpad-body116, %lpad38.body ], [ %.pn49.pn.pn, %ehcleanup35 ], [ %.pn53.pn.pn, %ehcleanup17 ], [ %eh.lpad-body, %lpad.body ] resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %sw.bb5 @@ -42567,40 +42569,10 @@ lpad179.body: ; preds = %lpad.i282, %lpad179 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp178) #20 br label %common.resume -sw.epilog: ; preds = %entry - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp182) #20 - %call.i287291 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) - to label %call.i287.noexc unwind label %lpad183 - -call.i287.noexc: ; preds = %sw.epilog - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i287291, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp182) - to label %.noexc292 unwind label %lpad183 - -.noexc292: ; preds = %call.i287.noexc - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.294, ptr noundef nonnull getelementptr inbounds ([24 x i8], ptr @.str.294, i64 0, i64 23)) - to label %invoke.cont184 unwind label %lpad.i290 - -lpad.i290: ; preds = %.noexc292 - %88 = landingpad { ptr, i32 } - cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 - br label %lpad183.body - -invoke.cont184: ; preds = %.noexc292 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp182) #20 - br label %return - -lpad183: ; preds = %call.i287.noexc, %sw.epilog - %89 = landingpad { ptr, i32 } - cleanup - br label %lpad183.body - -lpad183.body: ; preds = %lpad.i290, %lpad183 - %eh.lpad-body293 = phi { ptr, i32 } [ %89, %lpad183 ], [ %88, %lpad.i290 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp182) #20 - br label %common.resume +default.unreachable297: ; preds = %entry + unreachable -return: ; preds = %invoke.cont184, %invoke.cont180, %invoke.cont175, %invoke.cont167, %invoke.cont147, %invoke.cont119, %invoke.cont97, %invoke.cont75, %invoke.cont56, %invoke.cont47, %invoke.cont39, %invoke.cont31, %invoke.cont15, %invoke.cont +return: ; preds = %invoke.cont180, %invoke.cont175, %invoke.cont167, %invoke.cont147, %invoke.cont119, %invoke.cont97, %invoke.cont75, %invoke.cont56, %invoke.cont47, %invoke.cont39, %invoke.cont31, %invoke.cont15, %invoke.cont ret void } @@ -43776,7 +43748,6 @@ entry: %ref.tmp91 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp117 = alloca %"class.std::allocator", align 1 %ref.tmp124 = alloca %"class.std::allocator", align 1 - %ref.tmp128 = alloca %"class.std::allocator", align 1 %cmp = icmp eq i32 %context, 0 br i1 %cmp, label %if.then, label %if.else @@ -43880,7 +43851,7 @@ if.end13: ; preds = %if.then, %if.else, %12 = phi i32 [ %3, %if.then ], [ %6, %if.else ], [ 1, %_ZN11flatbuffers7IsUnionERKNS_4TypeE.exit ] %value14 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1 %call16 = tail call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %value14), !range !72 - switch i32 %call16, label %sw.epilog [ + switch i32 %call16, label %default.unreachable82 [ i32 0, label %sw.bb i32 1, label %sw.bb18 i32 2, label %sw.bb53 @@ -44218,44 +44189,14 @@ lpad125.body: ; preds = %lpad.i74, %lpad125 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp124) #20 br label %eh.resume -sw.epilog: ; preds = %if.end13 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) #20 - %call.i7983 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) - to label %call.i79.noexc unwind label %lpad129 - -call.i79.noexc: ; preds = %sw.epilog - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i7983, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) - to label %.noexc84 unwind label %lpad129 - -.noexc84: ; preds = %call.i79.noexc - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.294, ptr noundef nonnull getelementptr inbounds ([24 x i8], ptr @.str.294, i64 0, i64 23)) - to label %invoke.cont130 unwind label %lpad.i82 - -lpad.i82: ; preds = %.noexc84 - %33 = landingpad { ptr, i32 } - cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 - br label %lpad129.body - -invoke.cont130: ; preds = %.noexc84 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) #20 - br label %return - -lpad129: ; preds = %call.i79.noexc, %sw.epilog - %34 = landingpad { ptr, i32 } - cleanup - br label %lpad129.body - -lpad129.body: ; preds = %lpad.i82, %lpad129 - %eh.lpad-body85 = phi { ptr, i32 } [ %34, %lpad129 ], [ %33, %lpad.i82 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) #20 - br label %eh.resume +default.unreachable82: ; preds = %if.end13 + unreachable -return: ; preds = %invoke.cont130, %invoke.cont126, %cleanup121, %invoke.cont83, %invoke.cont79, %invoke.cont69, %invoke.cont59, %cleanup, %sw.bb, %invoke.cont11, %invoke.cont +return: ; preds = %invoke.cont126, %cleanup121, %invoke.cont83, %invoke.cont79, %invoke.cont69, %invoke.cont59, %cleanup, %sw.bb, %invoke.cont11, %invoke.cont ret void -eh.resume: ; preds = %ehcleanup.thread, %cleanup.action106, %lpad129.body, %lpad125.body, %ehcleanup122, %lpad82, %lpad78, %lpad68.body, %lpad58.body, %lpad28, %lpad24.body, %lpad10.body, %lpad.body - %.pn25 = phi { ptr, i32 } [ %eh.lpad-body, %lpad.body ], [ %eh.lpad-body85, %lpad129.body ], [ %eh.lpad-body77, %lpad125.body ], [ %.pn23, %ehcleanup122 ], [ %28, %cleanup.action106 ], [ %26, %lpad82 ], [ %25, %lpad78 ], [ %eh.lpad-body62, %lpad68.body ], [ %eh.lpad-body54, %lpad58.body ], [ %16, %lpad28 ], [ %eh.lpad-body44, %lpad24.body ], [ %eh.lpad-body36, %lpad10.body ], [ %27, %ehcleanup.thread ] +eh.resume: ; preds = %ehcleanup.thread, %cleanup.action106, %lpad125.body, %ehcleanup122, %lpad82, %lpad78, %lpad68.body, %lpad58.body, %lpad28, %lpad24.body, %lpad10.body, %lpad.body + %.pn25 = phi { ptr, i32 } [ %eh.lpad-body, %lpad.body ], [ %eh.lpad-body77, %lpad125.body ], [ %.pn23, %ehcleanup122 ], [ %28, %cleanup.action106 ], [ %26, %lpad82 ], [ %25, %lpad78 ], [ %eh.lpad-body62, %lpad68.body ], [ %eh.lpad-body54, %lpad58.body ], [ %16, %lpad28 ], [ %eh.lpad-body44, %lpad24.body ], [ %eh.lpad-body36, %lpad10.body ], [ %27, %ehcleanup.thread ] resume { ptr, i32 } %.pn25 } @@ -44677,7 +44618,7 @@ entry: %0 = load ptr, ptr %this, align 8 %value = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1 %call = tail call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %value), !range !72 - switch i32 %call, label %sw.epilog [ + switch i32 %call, label %default.unreachable322 [ i32 0, label %sw.bb i32 2, label %sw.bb i32 1, label %sw.bb @@ -45032,7 +44973,7 @@ lpad16: ; preds = %call.i.noexc69, %in br label %ehcleanup19 ehcleanup19: ; preds = %lpad14, %lpad.i66, %lpad16 - %.pn23 = phi { ptr, i32 } [ %26, %lpad16 ], [ %25, %lpad14 ], [ %7, %lpad.i66 ] + %.pn37 = phi { ptr, i32 } [ %26, %lpad16 ], [ %25, %lpad14 ], [ %7, %lpad.i66 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp9) #20 br label %eh.resume.sink.split @@ -45053,7 +44994,7 @@ lpad29: ; preds = %call.i.noexc86, %in br label %ehcleanup32 ehcleanup32: ; preds = %lpad27, %lpad.i83, %lpad29 - %.pn26 = phi { ptr, i32 } [ %29, %lpad29 ], [ %28, %lpad27 ], [ %11, %lpad.i83 ] + %.pn40 = phi { ptr, i32 } [ %29, %lpad29 ], [ %28, %lpad27 ], [ %11, %lpad.i83 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp22) #20 br label %eh.resume.sink.split @@ -45074,7 +45015,7 @@ lpad42: ; preds = %call.i.noexc102, %i br label %ehcleanup45 ehcleanup45: ; preds = %lpad40, %lpad.i99, %lpad42 - %.pn29 = phi { ptr, i32 } [ %32, %lpad42 ], [ %31, %lpad40 ], [ %14, %lpad.i99 ] + %.pn43 = phi { ptr, i32 } [ %32, %lpad42 ], [ %31, %lpad40 ], [ %14, %lpad.i99 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp35) #20 br label %eh.resume.sink.split @@ -45185,7 +45126,7 @@ invoke.cont97: ; preds = %.noexc159 call.i.noexc162: ; preds = %invoke.cont97 %call2.i164 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i163, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp94) - to label %sw.epilog.sink.split unwind label %lpad98 + to label %sw.epilog unwind label %lpad98 lpad92: ; preds = %call.i.noexc149, %sw.bb88 %47 = landingpad { ptr, i32 } @@ -45254,7 +45195,7 @@ invoke.cont113: ; preds = %.noexc179 call.i.noexc182: ; preds = %invoke.cont113 %call2.i184 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i183, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp110) - to label %sw.epilog.sink.split unwind label %lpad114 + to label %sw.epilog unwind label %lpad114 lpad108: ; preds = %call.i.noexc169, %sw.bb104 %52 = landingpad { ptr, i32 } @@ -45323,7 +45264,7 @@ invoke.cont129: ; preds = %.noexc199 call.i.noexc202: ; preds = %invoke.cont129 %call2.i204 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i203, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp126) - to label %sw.epilog.sink.split unwind label %lpad130 + to label %sw.epilog unwind label %lpad130 lpad124: ; preds = %call.i.noexc189, %sw.bb120 %57 = landingpad { ptr, i32 } @@ -45392,7 +45333,7 @@ invoke.cont145: ; preds = %.noexc219 call.i.noexc222: ; preds = %invoke.cont145 %call2.i224 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i223, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp142) - to label %sw.epilog.sink.split unwind label %lpad146 + to label %sw.epilog unwind label %lpad146 lpad140: ; preds = %call.i.noexc209, %sw.bb136 %62 = landingpad { ptr, i32 } @@ -45461,7 +45402,7 @@ invoke.cont161: ; preds = %.noexc239 call.i.noexc242: ; preds = %invoke.cont161 %call2.i244 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i243, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp158) - to label %sw.epilog.sink.split unwind label %lpad162 + to label %sw.epilog unwind label %lpad162 lpad156: ; preds = %call.i.noexc229, %sw.bb152 %67 = landingpad { ptr, i32 } @@ -45530,7 +45471,7 @@ invoke.cont177: ; preds = %.noexc259 call.i.noexc262: ; preds = %invoke.cont177 %call2.i264 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i263, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp174) - to label %sw.epilog.sink.split unwind label %lpad178 + to label %sw.epilog unwind label %lpad178 lpad172: ; preds = %call.i.noexc249, %sw.bb168 %72 = landingpad { ptr, i32 } @@ -45554,7 +45495,10 @@ ehcleanup181: ; preds = %lpad176, %lpad.i256 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170) #20 br label %eh.resume.sink.split -sw.epilog.sink.split: ; preds = %call.i.noexc262, %call.i.noexc242, %call.i.noexc222, %call.i.noexc202, %call.i.noexc182, %call.i.noexc162 +default.unreachable322: ; preds = %entry + unreachable + +sw.epilog: ; preds = %call.i.noexc262, %call.i.noexc242, %call.i.noexc222, %call.i.noexc202, %call.i.noexc182, %call.i.noexc162 %ref.tmp174.sink = phi ptr [ %ref.tmp94, %call.i.noexc162 ], [ %ref.tmp110, %call.i.noexc182 ], [ %ref.tmp126, %call.i.noexc202 ], [ %ref.tmp142, %call.i.noexc222 ], [ %ref.tmp158, %call.i.noexc242 ], [ %ref.tmp174, %call.i.noexc262 ] %ref.tmp175.sink = phi ptr [ %ref.tmp95, %call.i.noexc162 ], [ %ref.tmp111, %call.i.noexc182 ], [ %ref.tmp127, %call.i.noexc202 ], [ %ref.tmp143, %call.i.noexc222 ], [ %ref.tmp159, %call.i.noexc242 ], [ %ref.tmp175, %call.i.noexc262 ] %ref.tmp170.sink = phi ptr [ %ref.tmp90, %call.i.noexc162 ], [ %ref.tmp106, %call.i.noexc182 ], [ %ref.tmp122, %call.i.noexc202 ], [ %ref.tmp138, %call.i.noexc222 ], [ %ref.tmp154, %call.i.noexc242 ], [ %ref.tmp170, %call.i.noexc262 ] @@ -45563,9 +45507,6 @@ sw.epilog.sink.split: ; preds = %call.i.noexc262, %c call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp175.sink) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp170.sink) #20 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp171.sink) #20 - br label %sw.epilog - -sw.epilog: ; preds = %sw.epilog.sink.split, %entry %presence.i = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 8 %75 = load i32, ptr %presence.i, align 8 %cmp.i = icmp eq i32 %75, 1 @@ -45832,14 +45773,14 @@ if.end: ; preds = %if.end.sink.split, ret void eh.resume.sink.split: ; preds = %lpad246, %lpad.i316, %lpad243, %lpad237, %lpad.i308, %lpad234, %lpad228, %lpad.i300, %lpad225, %lpad219, %lpad.i292, %lpad216, %lpad210, %lpad.i284, %lpad207, %lpad201, %lpad.i276, %lpad198, %lpad192, %lpad.i268, %lpad189, %ehcleanup181, %lpad.i248, %lpad172, %ehcleanup165, %lpad.i228, %lpad156, %ehcleanup149, %lpad.i208, %lpad140, %ehcleanup133, %lpad.i188, %lpad124, %ehcleanup117, %lpad.i168, %lpad108, %ehcleanup101, %lpad.i148, %lpad92, %lpad84, %lpad.i134, %lpad81, %lpad75, %lpad.i126, %lpad72, %lpad61, %lpad.i116, %lpad58, %lpad52, %lpad.i108, %lpad49, %ehcleanup45, %lpad.i92, %lpad37, %ehcleanup32, %lpad.i74, %lpad24, %ehcleanup19, %lpad.i60, %lpad11, %lpad3, %lpad.i, %lpad - %ref.tmp242.sink322 = phi ptr [ %ref.tmp, %lpad ], [ %ref.tmp, %lpad.i ], [ %ref.tmp, %lpad3 ], [ %ref.tmp10, %lpad11 ], [ %ref.tmp10, %lpad.i60 ], [ %ref.tmp10, %ehcleanup19 ], [ %ref.tmp23, %lpad24 ], [ %ref.tmp23, %lpad.i74 ], [ %ref.tmp23, %ehcleanup32 ], [ %ref.tmp36, %lpad37 ], [ %ref.tmp36, %lpad.i92 ], [ %ref.tmp36, %ehcleanup45 ], [ %ref.tmp48, %lpad49 ], [ %ref.tmp48, %lpad.i108 ], [ %ref.tmp48, %lpad52 ], [ %ref.tmp57, %lpad58 ], [ %ref.tmp57, %lpad.i116 ], [ %ref.tmp57, %lpad61 ], [ %ref.tmp71, %lpad72 ], [ %ref.tmp71, %lpad.i126 ], [ %ref.tmp71, %lpad75 ], [ %ref.tmp80, %lpad81 ], [ %ref.tmp80, %lpad.i134 ], [ %ref.tmp80, %lpad84 ], [ %ref.tmp91, %lpad92 ], [ %ref.tmp91, %lpad.i148 ], [ %ref.tmp91, %ehcleanup101 ], [ %ref.tmp107, %lpad108 ], [ %ref.tmp107, %lpad.i168 ], [ %ref.tmp107, %ehcleanup117 ], [ %ref.tmp123, %lpad124 ], [ %ref.tmp123, %lpad.i188 ], [ %ref.tmp123, %ehcleanup133 ], [ %ref.tmp139, %lpad140 ], [ %ref.tmp139, %lpad.i208 ], [ %ref.tmp139, %ehcleanup149 ], [ %ref.tmp155, %lpad156 ], [ %ref.tmp155, %lpad.i228 ], [ %ref.tmp155, %ehcleanup165 ], [ %ref.tmp171, %lpad172 ], [ %ref.tmp171, %lpad.i248 ], [ %ref.tmp171, %ehcleanup181 ], [ %ref.tmp188, %lpad189 ], [ %ref.tmp188, %lpad.i268 ], [ %ref.tmp188, %lpad192 ], [ %ref.tmp197, %lpad198 ], [ %ref.tmp197, %lpad.i276 ], [ %ref.tmp197, %lpad201 ], [ %ref.tmp206, %lpad207 ], [ %ref.tmp206, %lpad.i284 ], [ %ref.tmp206, %lpad210 ], [ %ref.tmp215, %lpad216 ], [ %ref.tmp215, %lpad.i292 ], [ %ref.tmp215, %lpad219 ], [ %ref.tmp224, %lpad225 ], [ %ref.tmp224, %lpad.i300 ], [ %ref.tmp224, %lpad228 ], [ %ref.tmp233, %lpad234 ], [ %ref.tmp233, %lpad.i308 ], [ %ref.tmp233, %lpad237 ], [ %ref.tmp242, %lpad243 ], [ %ref.tmp242, %lpad.i316 ], [ %ref.tmp242, %lpad246 ] - %.pn54.pn.ph = phi { ptr, i32 } [ %2, %lpad ], [ %1, %lpad.i ], [ %3, %lpad3 ], [ %24, %lpad11 ], [ %5, %lpad.i60 ], [ %.pn23, %ehcleanup19 ], [ %27, %lpad24 ], [ %8, %lpad.i74 ], [ %.pn26, %ehcleanup32 ], [ %30, %lpad37 ], [ %12, %lpad.i92 ], [ %.pn29, %ehcleanup45 ], [ %33, %lpad49 ], [ %15, %lpad.i108 ], [ %34, %lpad52 ], [ %35, %lpad58 ], [ %16, %lpad.i116 ], [ %36, %lpad61 ], [ %41, %lpad72 ], [ %22, %lpad.i126 ], [ %42, %lpad75 ], [ %43, %lpad81 ], [ %23, %lpad.i134 ], [ %44, %lpad84 ], [ %47, %lpad92 ], [ %45, %lpad.i148 ], [ %.pn20, %ehcleanup101 ], [ %52, %lpad108 ], [ %50, %lpad.i168 ], [ %.pn17, %ehcleanup117 ], [ %57, %lpad124 ], [ %55, %lpad.i188 ], [ %.pn14, %ehcleanup133 ], [ %62, %lpad140 ], [ %60, %lpad.i208 ], [ %.pn11, %ehcleanup149 ], [ %67, %lpad156 ], [ %65, %lpad.i228 ], [ %.pn8, %ehcleanup165 ], [ %72, %lpad172 ], [ %70, %lpad.i248 ], [ %.pn, %ehcleanup181 ], [ %79, %lpad189 ], [ %76, %lpad.i268 ], [ %80, %lpad192 ], [ %81, %lpad198 ], [ %77, %lpad.i276 ], [ %82, %lpad201 ], [ %83, %lpad207 ], [ %78, %lpad.i284 ], [ %84, %lpad210 ], [ %89, %lpad216 ], [ %85, %lpad.i292 ], [ %90, %lpad219 ], [ %91, %lpad225 ], [ %86, %lpad.i300 ], [ %92, %lpad228 ], [ %93, %lpad234 ], [ %87, %lpad.i308 ], [ %94, %lpad237 ], [ %95, %lpad243 ], [ %88, %lpad.i316 ], [ %96, %lpad246 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp242.sink322) #20 + %ref.tmp242.sink323 = phi ptr [ %ref.tmp, %lpad ], [ %ref.tmp, %lpad.i ], [ %ref.tmp, %lpad3 ], [ %ref.tmp10, %lpad11 ], [ %ref.tmp10, %lpad.i60 ], [ %ref.tmp10, %ehcleanup19 ], [ %ref.tmp23, %lpad24 ], [ %ref.tmp23, %lpad.i74 ], [ %ref.tmp23, %ehcleanup32 ], [ %ref.tmp36, %lpad37 ], [ %ref.tmp36, %lpad.i92 ], [ %ref.tmp36, %ehcleanup45 ], [ %ref.tmp48, %lpad49 ], [ %ref.tmp48, %lpad.i108 ], [ %ref.tmp48, %lpad52 ], [ %ref.tmp57, %lpad58 ], [ %ref.tmp57, %lpad.i116 ], [ %ref.tmp57, %lpad61 ], [ %ref.tmp71, %lpad72 ], [ %ref.tmp71, %lpad.i126 ], [ %ref.tmp71, %lpad75 ], [ %ref.tmp80, %lpad81 ], [ %ref.tmp80, %lpad.i134 ], [ %ref.tmp80, %lpad84 ], [ %ref.tmp91, %lpad92 ], [ %ref.tmp91, %lpad.i148 ], [ %ref.tmp91, %ehcleanup101 ], [ %ref.tmp107, %lpad108 ], [ %ref.tmp107, %lpad.i168 ], [ %ref.tmp107, %ehcleanup117 ], [ %ref.tmp123, %lpad124 ], [ %ref.tmp123, %lpad.i188 ], [ %ref.tmp123, %ehcleanup133 ], [ %ref.tmp139, %lpad140 ], [ %ref.tmp139, %lpad.i208 ], [ %ref.tmp139, %ehcleanup149 ], [ %ref.tmp155, %lpad156 ], [ %ref.tmp155, %lpad.i228 ], [ %ref.tmp155, %ehcleanup165 ], [ %ref.tmp171, %lpad172 ], [ %ref.tmp171, %lpad.i248 ], [ %ref.tmp171, %ehcleanup181 ], [ %ref.tmp188, %lpad189 ], [ %ref.tmp188, %lpad.i268 ], [ %ref.tmp188, %lpad192 ], [ %ref.tmp197, %lpad198 ], [ %ref.tmp197, %lpad.i276 ], [ %ref.tmp197, %lpad201 ], [ %ref.tmp206, %lpad207 ], [ %ref.tmp206, %lpad.i284 ], [ %ref.tmp206, %lpad210 ], [ %ref.tmp215, %lpad216 ], [ %ref.tmp215, %lpad.i292 ], [ %ref.tmp215, %lpad219 ], [ %ref.tmp224, %lpad225 ], [ %ref.tmp224, %lpad.i300 ], [ %ref.tmp224, %lpad228 ], [ %ref.tmp233, %lpad234 ], [ %ref.tmp233, %lpad.i308 ], [ %ref.tmp233, %lpad237 ], [ %ref.tmp242, %lpad243 ], [ %ref.tmp242, %lpad.i316 ], [ %ref.tmp242, %lpad246 ] + %.pn35.pn.ph = phi { ptr, i32 } [ %2, %lpad ], [ %1, %lpad.i ], [ %3, %lpad3 ], [ %24, %lpad11 ], [ %5, %lpad.i60 ], [ %.pn37, %ehcleanup19 ], [ %27, %lpad24 ], [ %8, %lpad.i74 ], [ %.pn40, %ehcleanup32 ], [ %30, %lpad37 ], [ %12, %lpad.i92 ], [ %.pn43, %ehcleanup45 ], [ %33, %lpad49 ], [ %15, %lpad.i108 ], [ %34, %lpad52 ], [ %35, %lpad58 ], [ %16, %lpad.i116 ], [ %36, %lpad61 ], [ %41, %lpad72 ], [ %22, %lpad.i126 ], [ %42, %lpad75 ], [ %43, %lpad81 ], [ %23, %lpad.i134 ], [ %44, %lpad84 ], [ %47, %lpad92 ], [ %45, %lpad.i148 ], [ %.pn20, %ehcleanup101 ], [ %52, %lpad108 ], [ %50, %lpad.i168 ], [ %.pn17, %ehcleanup117 ], [ %57, %lpad124 ], [ %55, %lpad.i188 ], [ %.pn14, %ehcleanup133 ], [ %62, %lpad140 ], [ %60, %lpad.i208 ], [ %.pn11, %ehcleanup149 ], [ %67, %lpad156 ], [ %65, %lpad.i228 ], [ %.pn8, %ehcleanup165 ], [ %72, %lpad172 ], [ %70, %lpad.i248 ], [ %.pn, %ehcleanup181 ], [ %79, %lpad189 ], [ %76, %lpad.i268 ], [ %80, %lpad192 ], [ %81, %lpad198 ], [ %77, %lpad.i276 ], [ %82, %lpad201 ], [ %83, %lpad207 ], [ %78, %lpad.i284 ], [ %84, %lpad210 ], [ %89, %lpad216 ], [ %85, %lpad.i292 ], [ %90, %lpad219 ], [ %91, %lpad225 ], [ %86, %lpad.i300 ], [ %92, %lpad228 ], [ %93, %lpad234 ], [ %87, %lpad.i308 ], [ %94, %lpad237 ], [ %95, %lpad243 ], [ %88, %lpad.i316 ], [ %96, %lpad246 ] + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp242.sink323) #20 br label %eh.resume eh.resume: ; preds = %eh.resume.sink.split, %if.then.i.i142, %lpad67 - %.pn54.pn = phi { ptr, i32 } [ %37, %lpad67 ], [ %37, %if.then.i.i142 ], [ %.pn54.pn.ph, %eh.resume.sink.split ] - resume { ptr, i32 } %.pn54.pn + %.pn35.pn = phi { ptr, i32 } [ %37, %lpad67 ], [ %37, %if.then.i.i142 ], [ %.pn35.pn.ph, %eh.resume.sink.split ] + resume { ptr, i32 } %.pn35.pn } ; Function Attrs: mustprogress uwtable @@ -47908,23 +47849,23 @@ declare noundef ptr @_ZNK11flatbuffers6Parser12LookupStructERKNSt7__cxx1112basic ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef nonnull align 8 dereferenceable(26) %type, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) local_unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: - %ref.tmp.i166 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i161 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i139 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i133 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i124 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i118 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i113 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i107 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i102 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i96 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i91 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i77 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i71 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i61 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i58 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i53 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i48 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i165 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i160 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i138 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i132 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i123 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i117 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i112 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i106 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i101 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i95 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i90 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i76 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i70 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i60 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i57 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i52 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i47 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8 %WrapVector = alloca %class.anon.230, align 8 %WrapArray = alloca %class.anon.231, align 8 @@ -47960,11 +47901,10 @@ entry: %typname131 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp132 = alloca %"struct.flatbuffers::Type", align 8 %agg.tmp133 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp141 = alloca %"class.std::allocator", align 1 store ptr %lifetime, ptr %WrapVector, align 8 store ptr %lifetime, ptr %WrapArray, align 8 %call = tail call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %type), !range !72 - switch i32 %call, label %sw.epilog [ + switch i32 %call, label %default.unreachable178 [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.bb @@ -48002,8 +47942,8 @@ sw.bb2: ; preds = %entry invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit unwind label %lpad.i -common.resume: ; preds = %ehcleanup, %ehcleanup15, %ehcleanup24, %ehcleanup38, %ehcleanup53, %ehcleanup67, %ehcleanup85, %ehcleanup102, %lpad105.body, %ehcleanup118, %ehcleanup129, %ehcleanup140, %lpad142.body, %lpad.i169, %lpad.i164, %lpad.i116, %lpad.i105, %lpad.i94, %lpad.i56, %lpad.i51, %lpad.i - %common.resume.op = phi { ptr, i32 } [ %2, %lpad.i ], [ %5, %lpad.i51 ], [ %8, %lpad.i56 ], [ %28, %lpad.i94 ], [ %35, %lpad.i105 ], [ %42, %lpad.i116 ], [ %59, %lpad.i164 ], [ %65, %lpad.i169 ], [ %eh.lpad-body185, %lpad142.body ], [ %.pn, %ehcleanup140 ], [ %.pn19, %ehcleanup129 ], [ %.pn21, %ehcleanup118 ], [ %eh.lpad-body151, %lpad105.body ], [ %.pn23.pn.pn, %ehcleanup102 ], [ %.pn27.pn.pn, %ehcleanup85 ], [ %.pn31.pn, %ehcleanup67 ], [ %.pn34.pn, %ehcleanup53 ], [ %.pn37.pn, %ehcleanup38 ], [ %.pn40, %ehcleanup24 ], [ %.pn42, %ehcleanup15 ], [ %.pn44, %ehcleanup ] +common.resume: ; preds = %ehcleanup, %ehcleanup15, %ehcleanup24, %ehcleanup38, %ehcleanup53, %ehcleanup67, %ehcleanup85, %ehcleanup102, %lpad105.body, %ehcleanup118, %ehcleanup129, %ehcleanup140, %lpad.i168, %lpad.i163, %lpad.i115, %lpad.i104, %lpad.i93, %lpad.i55, %lpad.i50, %lpad.i + %common.resume.op = phi { ptr, i32 } [ %2, %lpad.i ], [ %5, %lpad.i50 ], [ %8, %lpad.i55 ], [ %28, %lpad.i93 ], [ %35, %lpad.i104 ], [ %42, %lpad.i115 ], [ %59, %lpad.i163 ], [ %65, %lpad.i168 ], [ %.pn, %ehcleanup140 ], [ %.pn19, %ehcleanup129 ], [ %.pn21, %ehcleanup118 ], [ %eh.lpad-body150, %lpad105.body ], [ %.pn23.pn.pn, %ehcleanup102 ], [ %.pn27.pn.pn, %ehcleanup85 ], [ %.pn31.pn, %ehcleanup67 ], [ %.pn34.pn, %ehcleanup53 ], [ %.pn37.pn, %ehcleanup38 ], [ %.pn40, %ehcleanup24 ], [ %.pn42, %ehcleanup15 ], [ %.pn44, %ehcleanup ] resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %sw.bb2 @@ -48020,72 +47960,72 @@ _ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE sw.bb3: ; preds = %entry, %entry %enum_def = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 3 %3 = load ptr, ptr %enum_def, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i48) - %defined_namespace.i49 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %3, i64 0, i32 5 - %4 = load ptr, ptr %defined_namespace.i49, align 8, !noalias !373 - %namer_.i50 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i48, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i50, ptr noundef nonnull align 8 dereferenceable(32) %3), !noalias !373 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %4, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i48) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit52 unwind label %lpad.i51 - -lpad.i51: ; preds = %sw.bb3 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i47) + %defined_namespace.i48 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %3, i64 0, i32 5 + %4 = load ptr, ptr %defined_namespace.i48, align 8, !noalias !373 + %namer_.i49 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i47, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i49, ptr noundef nonnull align 8 dereferenceable(32) %3), !noalias !373 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %4, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit51 unwind label %lpad.i50 + +lpad.i50: ; preds = %sw.bb3 %5 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i48) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit52: ; preds = %sw.bb3 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i48) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i48) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit51: ; preds = %sw.bb3 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i47) br label %return sw.bb4: ; preds = %entry %struct_def5 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 2 %6 = load ptr, ptr %struct_def5, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i53) - %defined_namespace.i54 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %6, i64 0, i32 5 - %7 = load ptr, ptr %defined_namespace.i54, align 8, !noalias !376 - %namer_.i55 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i53, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i55, ptr noundef nonnull align 8 dereferenceable(32) %6), !noalias !376 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i53) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit57 unwind label %lpad.i56 - -lpad.i56: ; preds = %sw.bb4 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i52) + %defined_namespace.i53 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %6, i64 0, i32 5 + %7 = load ptr, ptr %defined_namespace.i53, align 8, !noalias !376 + %namer_.i54 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i52, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i54, ptr noundef nonnull align 8 dereferenceable(32) %6), !noalias !376 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i52) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit56 unwind label %lpad.i55 + +lpad.i55: ; preds = %sw.bb4 %8 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i53) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i52) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit57: ; preds = %sw.bb4 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i53) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i53) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit56: ; preds = %sw.bb4 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i52) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i52) invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp, ptr noundef nonnull align 8 dereferenceable(32) %typname) to label %invoke.cont unwind label %lpad -invoke.cont: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit57 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i58) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i58, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) +invoke.cont: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit56 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i57) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i57, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) to label %.noexc unwind label %lpad6 .noexc: ; preds = %invoke.cont - %call.i1.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i58, ptr noundef nonnull @.str.293) - to label %invoke.cont7 unwind label %lpad.i59, !noalias !379 + %call.i1.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i57, ptr noundef nonnull @.str.293) + to label %invoke.cont7 unwind label %lpad.i58, !noalias !379 -lpad.i59: ; preds = %.noexc +lpad.i58: ; preds = %.noexc %9 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i58) #20, !noalias !379 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i57) #20, !noalias !379 br label %lpad6.body invoke.cont7: ; preds = %.noexc call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i58) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i58) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i57) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i57) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname) #20 br label %return -lpad: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit57 +lpad: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit56 %10 = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -48095,8 +48035,8 @@ lpad6: ; preds = %invoke.cont cleanup br label %lpad6.body -lpad6.body: ; preds = %lpad.i59, %lpad6 - %eh.lpad-body = phi { ptr, i32 } [ %11, %lpad6 ], [ %9, %lpad.i59 ] +lpad6.body: ; preds = %lpad.i58, %lpad6 + %eh.lpad-body = phi { ptr, i32 } [ %11, %lpad6 ], [ %9, %lpad.i58 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp) #20 br label %ehcleanup @@ -48107,29 +48047,29 @@ ehcleanup: ; preds = %lpad6.body, %lpad sw.bb8: ; preds = %entry call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp, ptr noundef nonnull @.str.352, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) - %call.i60 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.293) + %call.i59 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.293) to label %invoke.cont11 unwind label %lpad10 invoke.cont11: ; preds = %sw.bb8 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp9, ptr noundef nonnull align 8 dereferenceable(32) %call.i60) #20 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i61) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i61, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp9) - to label %.noexc64 unwind label %lpad12 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp9, ptr noundef nonnull align 8 dereferenceable(32) %call.i59) #20 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i60) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i60, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp9) + to label %.noexc63 unwind label %lpad12 -.noexc64: ; preds = %invoke.cont11 - %call.i1.i62 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i61, ptr noundef nonnull @.str.293) - to label %invoke.cont13 unwind label %lpad.i63, !noalias !382 +.noexc63: ; preds = %invoke.cont11 + %call.i1.i61 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i60, ptr noundef nonnull @.str.293) + to label %invoke.cont13 unwind label %lpad.i62, !noalias !382 -lpad.i63: ; preds = %.noexc64 +lpad.i62: ; preds = %.noexc63 %12 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i61) #20, !noalias !382 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i60) #20, !noalias !382 br label %lpad12.body -invoke.cont13: ; preds = %.noexc64 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i62) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i61) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i61) +invoke.cont13: ; preds = %.noexc63 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i61) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i60) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i60) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp9) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #20 br label %return @@ -48144,54 +48084,54 @@ lpad12: ; preds = %invoke.cont11 cleanup br label %lpad12.body -lpad12.body: ; preds = %lpad.i63, %lpad12 - %eh.lpad-body65 = phi { ptr, i32 } [ %14, %lpad12 ], [ %12, %lpad.i63 ] +lpad12.body: ; preds = %lpad.i62, %lpad12 + %eh.lpad-body64 = phi { ptr, i32 } [ %14, %lpad12 ], [ %12, %lpad.i62 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp9) #20 br label %ehcleanup15 ehcleanup15: ; preds = %lpad12.body, %lpad10 - %.pn42 = phi { ptr, i32 } [ %eh.lpad-body65, %lpad12.body ], [ %13, %lpad10 ] + %.pn42 = phi { ptr, i32 } [ %eh.lpad-body64, %lpad12.body ], [ %13, %lpad10 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #20 br label %common.resume sw.bb16: ; preds = %entry call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18) #20 - %call.i68 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp17) + %call.i67 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp17) to label %call.i.noexc unwind label %lpad19 call.i.noexc: ; preds = %sw.bb16 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp17, ptr noundef %call.i68, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18) - to label %.noexc69 unwind label %lpad19 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp17, ptr noundef %call.i67, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18) + to label %.noexc68 unwind label %lpad19 -.noexc69: ; preds = %call.i.noexc +.noexc68: ; preds = %call.i.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp17, ptr noundef nonnull @.str.493, ptr noundef nonnull getelementptr inbounds ([5 x i8], ptr @.str.493, i64 0, i64 4)) - to label %invoke.cont20 unwind label %lpad.i67 + to label %invoke.cont20 unwind label %lpad.i66 -lpad.i67: ; preds = %.noexc69 +lpad.i66: ; preds = %.noexc68 %15 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp17) #20 br label %ehcleanup24 -invoke.cont20: ; preds = %.noexc69 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i71) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i71, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp17) - to label %.noexc74 unwind label %lpad21 +invoke.cont20: ; preds = %.noexc68 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i70) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i70, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp17) + to label %.noexc73 unwind label %lpad21 -.noexc74: ; preds = %invoke.cont20 - %call.i1.i72 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i71, ptr noundef nonnull @.str.293) - to label %invoke.cont22 unwind label %lpad.i73, !noalias !385 +.noexc73: ; preds = %invoke.cont20 + %call.i1.i71 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i70, ptr noundef nonnull @.str.293) + to label %invoke.cont22 unwind label %lpad.i72, !noalias !385 -lpad.i73: ; preds = %.noexc74 +lpad.i72: ; preds = %.noexc73 %16 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i71) #20, !noalias !385 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i70) #20, !noalias !385 br label %lpad21.body -invoke.cont22: ; preds = %.noexc74 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i72) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i71) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i71) +invoke.cont22: ; preds = %.noexc73 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i71) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i70) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i70) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp17) #20 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18) #20 br label %return @@ -48206,13 +48146,13 @@ lpad21: ; preds = %invoke.cont20 cleanup br label %lpad21.body -lpad21.body: ; preds = %lpad.i73, %lpad21 - %eh.lpad-body75 = phi { ptr, i32 } [ %18, %lpad21 ], [ %16, %lpad.i73 ] +lpad21.body: ; preds = %lpad.i72, %lpad21 + %eh.lpad-body74 = phi { ptr, i32 } [ %18, %lpad21 ], [ %16, %lpad.i72 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp17) #20 br label %ehcleanup24 -ehcleanup24: ; preds = %lpad19, %lpad.i67, %lpad21.body - %.pn40 = phi { ptr, i32 } [ %eh.lpad-body75, %lpad21.body ], [ %17, %lpad19 ], [ %15, %lpad.i67 ] +ehcleanup24: ; preds = %lpad19, %lpad.i66, %lpad21.body + %.pn40 = phi { ptr, i32 } [ %eh.lpad-body74, %lpad21.body ], [ %17, %lpad19 ], [ %15, %lpad.i66 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18) #20 br label %common.resume @@ -48240,24 +48180,24 @@ invoke.cont31: ; preds = %sw.bb25 to label %invoke.cont33 unwind label %lpad32 invoke.cont33: ; preds = %invoke.cont31 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i77) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i77, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp28) - to label %.noexc80 unwind label %lpad34 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i76) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i76, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp28) + to label %.noexc79 unwind label %lpad34 -.noexc80: ; preds = %invoke.cont33 - %call.i1.i78 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i77, ptr noundef nonnull @.str.293) - to label %invoke.cont35 unwind label %lpad.i79, !noalias !391 +.noexc79: ; preds = %invoke.cont33 + %call.i1.i77 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i76, ptr noundef nonnull @.str.293) + to label %invoke.cont35 unwind label %lpad.i78, !noalias !391 -lpad.i79: ; preds = %.noexc80 +lpad.i78: ; preds = %.noexc79 %22 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i77) #20, !noalias !391 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i76) #20, !noalias !391 br label %lpad34.body -invoke.cont35: ; preds = %.noexc80 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i78) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i77) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i77) +invoke.cont35: ; preds = %.noexc79 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i77) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i76) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i76) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp28) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp29) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname26) #20 @@ -48278,13 +48218,13 @@ lpad34: ; preds = %invoke.cont33 cleanup br label %lpad34.body -lpad34.body: ; preds = %lpad.i79, %lpad34 - %eh.lpad-body81 = phi { ptr, i32 } [ %25, %lpad34 ], [ %22, %lpad.i79 ] +lpad34.body: ; preds = %lpad.i78, %lpad34 + %eh.lpad-body80 = phi { ptr, i32 } [ %25, %lpad34 ], [ %22, %lpad.i78 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp28) #20 br label %ehcleanup37 ehcleanup37: ; preds = %lpad34.body, %lpad32 - %.pn37 = phi { ptr, i32 } [ %eh.lpad-body81, %lpad34.body ], [ %24, %lpad32 ] + %.pn37 = phi { ptr, i32 } [ %eh.lpad-body80, %lpad34.body ], [ %24, %lpad32 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp29) #20 br label %ehcleanup38 @@ -48294,57 +48234,57 @@ ehcleanup38: ; preds = %ehcleanup37, %lpad3 br label %common.resume sw.bb39: ; preds = %entry - %enum_def.i85 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 3 - %26 = load ptr, ptr %enum_def.i85, align 8, !noalias !394 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i91) - %defined_namespace.i92 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %26, i64 0, i32 5 - %27 = load ptr, ptr %defined_namespace.i92, align 8, !noalias !397 - %namer_.i93 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i91, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i93, ptr noundef nonnull align 8 dereferenceable(32) %26), !noalias !397 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname40, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %27, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i91) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit95 unwind label %lpad.i94 - -lpad.i94: ; preds = %sw.bb39 + %enum_def.i84 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 3 + %26 = load ptr, ptr %enum_def.i84, align 8, !noalias !394 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i90) + %defined_namespace.i91 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %26, i64 0, i32 5 + %27 = load ptr, ptr %defined_namespace.i91, align 8, !noalias !397 + %namer_.i92 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i90, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i92, ptr noundef nonnull align 8 dereferenceable(32) %26), !noalias !397 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname40, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %27, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i90) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit94 unwind label %lpad.i93 + +lpad.i93: ; preds = %sw.bb39 %28 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i91) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i90) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit95: ; preds = %sw.bb39 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i91) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i91) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit94: ; preds = %sw.bb39 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i90) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i90) invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp44, ptr noundef nonnull align 8 dereferenceable(32) %typname40) to label %invoke.cont46 unwind label %lpad45 -invoke.cont46: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit95 +invoke.cont46: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit94 invoke void @_ZZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENKUlSA_E0_clB5cxx11ESA_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %agg.tmp43, ptr noundef nonnull align 8 dereferenceable(8) %WrapVector, ptr noundef nonnull %agg.tmp44) to label %invoke.cont48 unwind label %lpad47 invoke.cont48: ; preds = %invoke.cont46 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i96) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i96, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp43) - to label %.noexc99 unwind label %lpad49 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i95) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i95, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp43) + to label %.noexc98 unwind label %lpad49 -.noexc99: ; preds = %invoke.cont48 - %call.i1.i97 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i96, ptr noundef nonnull @.str.293) - to label %invoke.cont50 unwind label %lpad.i98, !noalias !400 +.noexc98: ; preds = %invoke.cont48 + %call.i1.i96 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i95, ptr noundef nonnull @.str.293) + to label %invoke.cont50 unwind label %lpad.i97, !noalias !400 -lpad.i98: ; preds = %.noexc99 +lpad.i97: ; preds = %.noexc98 %29 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i96) #20, !noalias !400 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i95) #20, !noalias !400 br label %lpad49.body -invoke.cont50: ; preds = %.noexc99 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i97) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i96) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i96) +invoke.cont50: ; preds = %.noexc98 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i96) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i95) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i95) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp43) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp44) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname40) #20 br label %return -lpad45: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit95 +lpad45: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit94 %30 = landingpad { ptr, i32 } cleanup br label %ehcleanup53 @@ -48359,13 +48299,13 @@ lpad49: ; preds = %invoke.cont48 cleanup br label %lpad49.body -lpad49.body: ; preds = %lpad.i98, %lpad49 - %eh.lpad-body100 = phi { ptr, i32 } [ %32, %lpad49 ], [ %29, %lpad.i98 ] +lpad49.body: ; preds = %lpad.i97, %lpad49 + %eh.lpad-body99 = phi { ptr, i32 } [ %32, %lpad49 ], [ %29, %lpad.i97 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp43) #20 br label %ehcleanup52 ehcleanup52: ; preds = %lpad49.body, %lpad47 - %.pn34 = phi { ptr, i32 } [ %eh.lpad-body100, %lpad49.body ], [ %31, %lpad47 ] + %.pn34 = phi { ptr, i32 } [ %eh.lpad-body99, %lpad49.body ], [ %31, %lpad47 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp44) #20 br label %ehcleanup53 @@ -48377,55 +48317,55 @@ ehcleanup53: ; preds = %ehcleanup52, %lpad4 sw.bb54: ; preds = %entry %struct_def56 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 2 %33 = load ptr, ptr %struct_def56, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i102) - %defined_namespace.i103 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %33, i64 0, i32 5 - %34 = load ptr, ptr %defined_namespace.i103, align 8, !noalias !403 - %namer_.i104 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i102, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i104, ptr noundef nonnull align 8 dereferenceable(32) %33), !noalias !403 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname55, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %34, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i102) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit106 unwind label %lpad.i105 - -lpad.i105: ; preds = %sw.bb54 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i101) + %defined_namespace.i102 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %33, i64 0, i32 5 + %34 = load ptr, ptr %defined_namespace.i102, align 8, !noalias !403 + %namer_.i103 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i101, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i103, ptr noundef nonnull align 8 dereferenceable(32) %33), !noalias !403 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname55, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %34, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i101) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit105 unwind label %lpad.i104 + +lpad.i104: ; preds = %sw.bb54 %35 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i102) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i101) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit106: ; preds = %sw.bb54 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i102) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i102) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit105: ; preds = %sw.bb54 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i101) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i101) invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp58, ptr noundef nonnull align 8 dereferenceable(32) %typname55) to label %invoke.cont60 unwind label %lpad59 -invoke.cont60: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit106 +invoke.cont60: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit105 invoke void @_ZZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENKUlSA_E0_clB5cxx11ESA_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %agg.tmp57, ptr noundef nonnull align 8 dereferenceable(8) %WrapVector, ptr noundef nonnull %agg.tmp58) to label %invoke.cont62 unwind label %lpad61 invoke.cont62: ; preds = %invoke.cont60 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i107) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i107, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp57) - to label %.noexc110 unwind label %lpad63 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i106) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i106, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp57) + to label %.noexc109 unwind label %lpad63 -.noexc110: ; preds = %invoke.cont62 - %call.i1.i108 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i107, ptr noundef nonnull @.str.293) - to label %invoke.cont64 unwind label %lpad.i109, !noalias !406 +.noexc109: ; preds = %invoke.cont62 + %call.i1.i107 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i106, ptr noundef nonnull @.str.293) + to label %invoke.cont64 unwind label %lpad.i108, !noalias !406 -lpad.i109: ; preds = %.noexc110 +lpad.i108: ; preds = %.noexc109 %36 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i107) #20, !noalias !406 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i106) #20, !noalias !406 br label %lpad63.body -invoke.cont64: ; preds = %.noexc110 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i108) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i107) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i107) +invoke.cont64: ; preds = %.noexc109 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i107) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i106) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i106) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp57) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp58) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname55) #20 br label %return -lpad59: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit106 +lpad59: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit105 %37 = landingpad { ptr, i32 } cleanup br label %ehcleanup67 @@ -48440,13 +48380,13 @@ lpad63: ; preds = %invoke.cont62 cleanup br label %lpad63.body -lpad63.body: ; preds = %lpad.i109, %lpad63 - %eh.lpad-body111 = phi { ptr, i32 } [ %39, %lpad63 ], [ %36, %lpad.i109 ] +lpad63.body: ; preds = %lpad.i108, %lpad63 + %eh.lpad-body110 = phi { ptr, i32 } [ %39, %lpad63 ], [ %36, %lpad.i108 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp57) #20 br label %ehcleanup66 ehcleanup66: ; preds = %lpad63.body, %lpad61 - %.pn31 = phi { ptr, i32 } [ %eh.lpad-body111, %lpad63.body ], [ %38, %lpad61 ] + %.pn31 = phi { ptr, i32 } [ %eh.lpad-body110, %lpad63.body ], [ %38, %lpad61 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp58) #20 br label %ehcleanup67 @@ -48458,74 +48398,74 @@ ehcleanup67: ; preds = %ehcleanup66, %lpad5 sw.bb68: ; preds = %entry %struct_def70 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 2 %40 = load ptr, ptr %struct_def70, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i113) - %defined_namespace.i114 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %40, i64 0, i32 5 - %41 = load ptr, ptr %defined_namespace.i114, align 8, !noalias !409 - %namer_.i115 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i113, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i115, ptr noundef nonnull align 8 dereferenceable(32) %40), !noalias !409 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname69, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %41, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i113) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit117 unwind label %lpad.i116 - -lpad.i116: ; preds = %sw.bb68 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i112) + %defined_namespace.i113 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %40, i64 0, i32 5 + %41 = load ptr, ptr %defined_namespace.i113, align 8, !noalias !409 + %namer_.i114 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i112, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i114, ptr noundef nonnull align 8 dereferenceable(32) %40), !noalias !409 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname69, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %41, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i112) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit116 unwind label %lpad.i115 + +lpad.i115: ; preds = %sw.bb68 %42 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i113) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i112) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit117: ; preds = %sw.bb68 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i113) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i113) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit116: ; preds = %sw.bb68 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i112) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i112) invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp73, ptr noundef nonnull align 8 dereferenceable(32) %typname69) to label %invoke.cont75 unwind label %lpad74 -invoke.cont75: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit117 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i118) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i118, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp73) - to label %.noexc121 unwind label %lpad76 +invoke.cont75: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit116 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i117) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i117, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp73) + to label %.noexc120 unwind label %lpad76 -.noexc121: ; preds = %invoke.cont75 - %call.i1.i119 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i118, ptr noundef nonnull @.str.293) - to label %invoke.cont77 unwind label %lpad.i120, !noalias !412 +.noexc120: ; preds = %invoke.cont75 + %call.i1.i118 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i117, ptr noundef nonnull @.str.293) + to label %invoke.cont77 unwind label %lpad.i119, !noalias !412 -lpad.i120: ; preds = %.noexc121 +lpad.i119: ; preds = %.noexc120 %43 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i118) #20, !noalias !412 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i117) #20, !noalias !412 br label %ehcleanup84 -invoke.cont77: ; preds = %.noexc121 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp72, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i119) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i118) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i118) +invoke.cont77: ; preds = %.noexc120 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp72, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i118) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i117) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i117) invoke void @_ZZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENKUlSA_E0_clB5cxx11ESA_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %agg.tmp71, ptr noundef nonnull align 8 dereferenceable(8) %WrapVector, ptr noundef nonnull %agg.tmp72) to label %invoke.cont79 unwind label %lpad78 invoke.cont79: ; preds = %invoke.cont77 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i124) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i124, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp71) - to label %.noexc127 unwind label %lpad80 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i123) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i123, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp71) + to label %.noexc126 unwind label %lpad80 -.noexc127: ; preds = %invoke.cont79 - %call.i1.i125 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i124, ptr noundef nonnull @.str.293) - to label %invoke.cont81 unwind label %lpad.i126, !noalias !415 +.noexc126: ; preds = %invoke.cont79 + %call.i1.i124 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i123, ptr noundef nonnull @.str.293) + to label %invoke.cont81 unwind label %lpad.i125, !noalias !415 -lpad.i126: ; preds = %.noexc127 +lpad.i125: ; preds = %.noexc126 %44 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i124) #20, !noalias !415 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i123) #20, !noalias !415 br label %lpad80.body -invoke.cont81: ; preds = %.noexc127 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i125) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i124) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i124) +invoke.cont81: ; preds = %.noexc126 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i124) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i123) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i123) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp71) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp72) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp73) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname69) #20 br label %return -lpad74: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit117 +lpad74: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit116 %45 = landingpad { ptr, i32 } cleanup br label %ehcleanup85 @@ -48545,18 +48485,18 @@ lpad80: ; preds = %invoke.cont79 cleanup br label %lpad80.body -lpad80.body: ; preds = %lpad.i126, %lpad80 - %eh.lpad-body128 = phi { ptr, i32 } [ %48, %lpad80 ], [ %44, %lpad.i126 ] +lpad80.body: ; preds = %lpad.i125, %lpad80 + %eh.lpad-body127 = phi { ptr, i32 } [ %48, %lpad80 ], [ %44, %lpad.i125 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp71) #20 br label %ehcleanup83 ehcleanup83: ; preds = %lpad80.body, %lpad78 - %.pn27 = phi { ptr, i32 } [ %eh.lpad-body128, %lpad80.body ], [ %47, %lpad78 ] + %.pn27 = phi { ptr, i32 } [ %eh.lpad-body127, %lpad80.body ], [ %47, %lpad78 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp72) #20 br label %ehcleanup84 -ehcleanup84: ; preds = %lpad76, %lpad.i120, %ehcleanup83 - %.pn27.pn = phi { ptr, i32 } [ %.pn27, %ehcleanup83 ], [ %46, %lpad76 ], [ %43, %lpad.i120 ] +ehcleanup84: ; preds = %lpad76, %lpad.i119, %ehcleanup83 + %.pn27.pn = phi { ptr, i32 } [ %.pn27, %ehcleanup83 ], [ %46, %lpad76 ], [ %43, %lpad.i119 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp73) #20 br label %ehcleanup85 @@ -48567,51 +48507,51 @@ ehcleanup85: ; preds = %ehcleanup84, %lpad7 sw.bb86: ; preds = %entry call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp90, ptr noundef nonnull @.str.286, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) - %call.i131 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp90, ptr noundef nonnull @.str.353) + %call.i130 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp90, ptr noundef nonnull @.str.353) to label %invoke.cont92 unwind label %lpad91 invoke.cont92: ; preds = %sw.bb86 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp89, ptr noundef nonnull align 8 dereferenceable(32) %call.i131) #20 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i133) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i133, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp89) - to label %.noexc136 unwind label %lpad93 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp89, ptr noundef nonnull align 8 dereferenceable(32) %call.i130) #20 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i132) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i132, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp89) + to label %.noexc135 unwind label %lpad93 -.noexc136: ; preds = %invoke.cont92 - %call.i1.i134 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i133, ptr noundef nonnull @.str.293) - to label %invoke.cont94 unwind label %lpad.i135, !noalias !418 +.noexc135: ; preds = %invoke.cont92 + %call.i1.i133 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i132, ptr noundef nonnull @.str.293) + to label %invoke.cont94 unwind label %lpad.i134, !noalias !418 -lpad.i135: ; preds = %.noexc136 +lpad.i134: ; preds = %.noexc135 %49 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i133) #20, !noalias !418 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i132) #20, !noalias !418 br label %ehcleanup101 -invoke.cont94: ; preds = %.noexc136 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp88, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i134) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i133) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i133) +invoke.cont94: ; preds = %.noexc135 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp88, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i133) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i132) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i132) invoke void @_ZZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENKUlSA_E0_clB5cxx11ESA_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %agg.tmp87, ptr noundef nonnull align 8 dereferenceable(8) %WrapVector, ptr noundef nonnull %agg.tmp88) to label %invoke.cont96 unwind label %lpad95 invoke.cont96: ; preds = %invoke.cont94 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i139) - invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i139, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp87) - to label %.noexc142 unwind label %lpad97 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i138) + invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i138, ptr noundef nonnull @.str.494, ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp87) + to label %.noexc141 unwind label %lpad97 -.noexc142: ; preds = %invoke.cont96 - %call.i1.i140 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i139, ptr noundef nonnull @.str.293) - to label %invoke.cont98 unwind label %lpad.i141, !noalias !421 +.noexc141: ; preds = %invoke.cont96 + %call.i1.i139 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i138, ptr noundef nonnull @.str.293) + to label %invoke.cont98 unwind label %lpad.i140, !noalias !421 -lpad.i141: ; preds = %.noexc142 +lpad.i140: ; preds = %.noexc141 %50 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i139) #20, !noalias !421 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i138) #20, !noalias !421 br label %lpad97.body -invoke.cont98: ; preds = %.noexc142 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i140) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i139) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i139) +invoke.cont98: ; preds = %.noexc141 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i1.i139) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i138) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i138) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp87) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp88) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp89) #20 @@ -48638,18 +48578,18 @@ lpad97: ; preds = %invoke.cont96 cleanup br label %lpad97.body -lpad97.body: ; preds = %lpad.i141, %lpad97 - %eh.lpad-body143 = phi { ptr, i32 } [ %54, %lpad97 ], [ %50, %lpad.i141 ] +lpad97.body: ; preds = %lpad.i140, %lpad97 + %eh.lpad-body142 = phi { ptr, i32 } [ %54, %lpad97 ], [ %50, %lpad.i140 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp87) #20 br label %ehcleanup100 ehcleanup100: ; preds = %lpad97.body, %lpad95 - %.pn23 = phi { ptr, i32 } [ %eh.lpad-body143, %lpad97.body ], [ %53, %lpad95 ] + %.pn23 = phi { ptr, i32 } [ %eh.lpad-body142, %lpad97.body ], [ %53, %lpad95 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp88) #20 br label %ehcleanup101 -ehcleanup101: ; preds = %lpad93, %lpad.i135, %ehcleanup100 - %.pn23.pn = phi { ptr, i32 } [ %.pn23, %ehcleanup100 ], [ %52, %lpad93 ], [ %49, %lpad.i135 ] +ehcleanup101: ; preds = %lpad93, %lpad.i134, %ehcleanup100 + %.pn23.pn = phi { ptr, i32 } [ %.pn23, %ehcleanup100 ], [ %52, %lpad93 ], [ %49, %lpad.i134 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp89) #20 br label %ehcleanup102 @@ -48660,63 +48600,63 @@ ehcleanup102: ; preds = %ehcleanup101, %lpad sw.bb103: ; preds = %entry call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp104) #20 - %call.i149 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) - to label %call.i.noexc148 unwind label %lpad105 + %call.i148 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) + to label %call.i.noexc147 unwind label %lpad105 -call.i.noexc148: ; preds = %sw.bb103 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i149, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp104) - to label %.noexc150 unwind label %lpad105 +call.i.noexc147: ; preds = %sw.bb103 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i148, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp104) + to label %.noexc149 unwind label %lpad105 -.noexc150: ; preds = %call.i.noexc148 +.noexc149: ; preds = %call.i.noexc147 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.294, ptr noundef nonnull getelementptr inbounds ([24 x i8], ptr @.str.294, i64 0, i64 23)) - to label %invoke.cont106 unwind label %lpad.i147 + to label %invoke.cont106 unwind label %lpad.i146 -lpad.i147: ; preds = %.noexc150 +lpad.i146: ; preds = %.noexc149 %55 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 br label %lpad105.body -invoke.cont106: ; preds = %.noexc150 +invoke.cont106: ; preds = %.noexc149 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp104) #20 br label %return -lpad105: ; preds = %call.i.noexc148, %sw.bb103 +lpad105: ; preds = %call.i.noexc147, %sw.bb103 %56 = landingpad { ptr, i32 } cleanup br label %lpad105.body -lpad105.body: ; preds = %lpad.i147, %lpad105 - %eh.lpad-body151 = phi { ptr, i32 } [ %56, %lpad105 ], [ %55, %lpad.i147 ] +lpad105.body: ; preds = %lpad.i146, %lpad105 + %eh.lpad-body150 = phi { ptr, i32 } [ %56, %lpad105 ], [ %55, %lpad.i146 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp104) #20 br label %common.resume sw.bb108: ; preds = %entry - %enum_def.i155 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 3 - %57 = load ptr, ptr %enum_def.i155, align 8, !noalias !424 - %fixed_length.i156 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 4 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i161) - %defined_namespace.i162 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %57, i64 0, i32 5 - %58 = load ptr, ptr %defined_namespace.i162, align 8, !noalias !427 - %namer_.i163 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i161, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i163, ptr noundef nonnull align 8 dereferenceable(32) %57), !noalias !427 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname109, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %58, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i161) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit165 unwind label %lpad.i164 - -lpad.i164: ; preds = %sw.bb108 + %enum_def.i154 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 3 + %57 = load ptr, ptr %enum_def.i154, align 8, !noalias !424 + %fixed_length.i155 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 4 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i160) + %defined_namespace.i161 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %57, i64 0, i32 5 + %58 = load ptr, ptr %defined_namespace.i161, align 8, !noalias !427 + %namer_.i162 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i160, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i162, ptr noundef nonnull align 8 dereferenceable(32) %57), !noalias !427 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname109, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %58, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i160) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit164 unwind label %lpad.i163 + +lpad.i163: ; preds = %sw.bb108 %59 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i161) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i160) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit165: ; preds = %sw.bb108 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i161) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i161) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit164: ; preds = %sw.bb108 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i160) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i160) invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp112, ptr noundef nonnull align 8 dereferenceable(32) %typname109) to label %invoke.cont114 unwind label %lpad113 -invoke.cont114: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit165 - %60 = load i16, ptr %fixed_length.i156, align 8 +invoke.cont114: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit164 + %60 = load i16, ptr %fixed_length.i155, align 8 invoke void @_ZZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENKUlSA_tE_clB5cxx11ESA_t(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(8) %WrapArray, ptr noundef nonnull %agg.tmp112, i16 noundef zeroext %60) to label %invoke.cont116 unwind label %lpad115 @@ -48725,7 +48665,7 @@ invoke.cont116: ; preds = %invoke.cont114 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname109) #20 br label %return -lpad113: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit165 +lpad113: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit164 %61 = landingpad { ptr, i32 } cleanup br label %ehcleanup118 @@ -48744,27 +48684,27 @@ ehcleanup118: ; preds = %lpad115, %lpad113 sw.bb119: ; preds = %entry %struct_def121 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 2 %63 = load ptr, ptr %struct_def121, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i166) - %defined_namespace.i167 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %63, i64 0, i32 5 - %64 = load ptr, ptr %defined_namespace.i167, align 8, !noalias !430 - %namer_.i168 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i166, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i168, ptr noundef nonnull align 8 dereferenceable(32) %63), !noalias !430 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname120, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %64, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i166) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit170 unwind label %lpad.i169 - -lpad.i169: ; preds = %sw.bb119 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i165) + %defined_namespace.i166 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %63, i64 0, i32 5 + %64 = load ptr, ptr %defined_namespace.i166, align 8, !noalias !430 + %namer_.i167 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i165, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i167, ptr noundef nonnull align 8 dereferenceable(32) %63), !noalias !430 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname120, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %64, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i165) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit169 unwind label %lpad.i168 + +lpad.i168: ; preds = %sw.bb119 %65 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i166) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i165) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit170: ; preds = %sw.bb119 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i166) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i166) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit169: ; preds = %sw.bb119 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i165) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i165) invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp122, ptr noundef nonnull align 8 dereferenceable(32) %typname120) to label %invoke.cont124 unwind label %lpad123 -invoke.cont124: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit170 +invoke.cont124: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit169 %fixed_length125 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 4 %66 = load i16, ptr %fixed_length125, align 8 invoke void @_ZZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENKUlSA_tE_clB5cxx11ESA_t(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(8) %WrapArray, ptr noundef nonnull %agg.tmp122, i16 noundef zeroext %66) @@ -48775,7 +48715,7 @@ invoke.cont127: ; preds = %invoke.cont124 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname120) #20 br label %return -lpad123: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit170 +lpad123: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit169 %67 = landingpad { ptr, i32 } cleanup br label %ehcleanup129 @@ -48793,25 +48733,25 @@ ehcleanup129: ; preds = %lpad126, %lpad123 sw.bb130: ; preds = %entry tail call void @llvm.experimental.noalias.scope.decl(metadata !433) - %element.i171 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 1 - %69 = load i32, ptr %element.i171, align 4, !noalias !433 - %struct_def.i172 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 2 - %fixed_length.i174 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 4 - %70 = load i16, ptr %fixed_length.i174, align 8, !noalias !433 + %element.i170 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 1 + %69 = load i32, ptr %element.i170, align 4, !noalias !433 + %struct_def.i171 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 2 + %fixed_length.i173 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %type, i64 0, i32 4 + %70 = load i16, ptr %fixed_length.i173, align 8, !noalias !433 store i32 %69, ptr %ref.tmp132, align 8, !alias.scope !433 - %element.i.i175 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp132, i64 0, i32 1 - store i32 0, ptr %element.i.i175, align 4, !alias.scope !433 - %struct_def.i.i176 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp132, i64 0, i32 2 - %71 = load <2 x ptr>, ptr %struct_def.i172, align 8, !noalias !433 - store <2 x ptr> %71, ptr %struct_def.i.i176, align 8, !alias.scope !433 - %fixed_length.i.i178 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp132, i64 0, i32 4 - store i16 %70, ptr %fixed_length.i.i178, align 8, !alias.scope !433 + %element.i.i174 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp132, i64 0, i32 1 + store i32 0, ptr %element.i.i174, align 4, !alias.scope !433 + %struct_def.i.i175 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp132, i64 0, i32 2 + %71 = load <2 x ptr>, ptr %struct_def.i171, align 8, !noalias !433 + store <2 x ptr> %71, ptr %struct_def.i.i175, align 8, !alias.scope !433 + %fixed_length.i.i177 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp132, i64 0, i32 4 + store i16 %70, ptr %fixed_length.i.i177, align 8, !alias.scope !433 call void @_ZNK11flatbuffers4rust13RustGenerator12GetTypeBasicB5cxx11ERKNS_4TypeE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname131, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef nonnull align 8 dereferenceable(26) %ref.tmp132) invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp133, ptr noundef nonnull align 8 dereferenceable(32) %typname131) to label %invoke.cont135 unwind label %lpad134 invoke.cont135: ; preds = %sw.bb130 - %72 = load i16, ptr %fixed_length.i174, align 8 + %72 = load i16, ptr %fixed_length.i173, align 8 invoke void @_ZZN11flatbuffers4rust13RustGenerator10FollowTypeERKNS_4TypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENKUlSA_tE_clB5cxx11ESA_t(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(8) %WrapArray, ptr noundef nonnull %agg.tmp133, i16 noundef zeroext %72) to label %invoke.cont138 unwind label %lpad137 @@ -48836,40 +48776,10 @@ ehcleanup140: ; preds = %lpad137, %lpad134 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname131) #20 br label %common.resume -sw.epilog: ; preds = %entry - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp141) #20 - %call.i183 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) - to label %call.i.noexc182 unwind label %lpad142 - -call.i.noexc182: ; preds = %sw.epilog - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i183, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp141) - to label %.noexc184 unwind label %lpad142 - -.noexc184: ; preds = %call.i.noexc182 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.294, ptr noundef nonnull getelementptr inbounds ([24 x i8], ptr @.str.294, i64 0, i64 23)) - to label %invoke.cont143 unwind label %lpad.i181 - -lpad.i181: ; preds = %.noexc184 - %75 = landingpad { ptr, i32 } - cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 - br label %lpad142.body - -invoke.cont143: ; preds = %.noexc184 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp141) #20 - br label %return - -lpad142: ; preds = %call.i.noexc182, %sw.epilog - %76 = landingpad { ptr, i32 } - cleanup - br label %lpad142.body - -lpad142.body: ; preds = %lpad.i181, %lpad142 - %eh.lpad-body185 = phi { ptr, i32 } [ %76, %lpad142 ], [ %75, %lpad.i181 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp141) #20 - br label %common.resume +default.unreachable178: ; preds = %entry + unreachable -return: ; preds = %invoke.cont143, %invoke.cont138, %invoke.cont127, %invoke.cont116, %invoke.cont106, %invoke.cont98, %invoke.cont81, %invoke.cont64, %invoke.cont50, %invoke.cont35, %invoke.cont22, %invoke.cont13, %invoke.cont7, %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit52, %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit, %sw.bb +return: ; preds = %invoke.cont138, %invoke.cont127, %invoke.cont116, %invoke.cont106, %invoke.cont98, %invoke.cont81, %invoke.cont64, %invoke.cont50, %invoke.cont35, %invoke.cont22, %invoke.cont13, %invoke.cont7, %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit51, %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit, %sw.bb ret void } @@ -51330,7 +51240,6 @@ entry: %agg.tmp115 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp116 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp124 = alloca %"class.std::allocator", align 1 - %ref.tmp128 = alloca %"class.std::allocator", align 1 %value = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1 store ptr %field, ptr %WrapOption, align 8 store ptr %WrapOption, ptr %WrapVector, align 8 @@ -51338,7 +51247,7 @@ entry: store ptr %lifetime, ptr %0, align 8 store ptr %WrapVector, ptr %WrapUOffsetsVector, align 8 %call = call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %value), !range !72 - switch i32 %call, label %sw.epilog [ + switch i32 %call, label %default.unreachable158 [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.bb @@ -51424,8 +51333,8 @@ sw.bb3: ; preds = %entry invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %10, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i43) to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit unwind label %lpad.i -common.resume: ; preds = %lpad.body, %ehcleanup15, %ehcleanup37, %ehcleanup46, %lpad49.body, %lpad54.body, %ehcleanup66, %ehcleanup76, %ehcleanup86, %ehcleanup104, %ehcleanup113, %ehcleanup122, %lpad125.body, %lpad129.body, %lpad.i133, %lpad.i128, %lpad.i123, %lpad.i101, %lpad.i62, %lpad.i - %common.resume.op = phi { ptr, i32 } [ %11, %lpad.i ], [ %25, %lpad.i62 ], [ %49, %lpad.i101 ], [ %67, %lpad.i123 ], [ %72, %lpad.i128 ], [ %77, %lpad.i133 ], [ %eh.lpad-body164, %lpad129.body ], [ %eh.lpad-body156, %lpad125.body ], [ %.pn, %ehcleanup122 ], [ %.pn17, %ehcleanup113 ], [ %.pn19.pn.pn, %ehcleanup104 ], [ %.pn23, %ehcleanup86 ], [ %.pn25, %ehcleanup76 ], [ %.pn27, %ehcleanup66 ], [ %eh.lpad-body119, %lpad54.body ], [ %eh.lpad-body114, %lpad49.body ], [ %.pn29, %ehcleanup46 ], [ %.pn31.pn.pn.pn, %ehcleanup37 ], [ %.pn36.pn.pn, %ehcleanup15 ], [ %eh.lpad-body, %lpad.body ] +common.resume: ; preds = %lpad.body, %ehcleanup15, %ehcleanup37, %ehcleanup46, %lpad49.body, %lpad54.body, %ehcleanup66, %ehcleanup76, %ehcleanup86, %ehcleanup104, %ehcleanup113, %ehcleanup122, %lpad125.body, %lpad.i133, %lpad.i128, %lpad.i123, %lpad.i101, %lpad.i62, %lpad.i + %common.resume.op = phi { ptr, i32 } [ %11, %lpad.i ], [ %25, %lpad.i62 ], [ %49, %lpad.i101 ], [ %67, %lpad.i123 ], [ %72, %lpad.i128 ], [ %77, %lpad.i133 ], [ %eh.lpad-body156, %lpad125.body ], [ %.pn, %ehcleanup122 ], [ %.pn17, %ehcleanup113 ], [ %.pn19.pn.pn, %ehcleanup104 ], [ %.pn23, %ehcleanup86 ], [ %.pn25, %ehcleanup76 ], [ %.pn27, %ehcleanup66 ], [ %eh.lpad-body119, %lpad54.body ], [ %eh.lpad-body114, %lpad49.body ], [ %.pn29, %ehcleanup46 ], [ %.pn31.pn.pn.pn, %ehcleanup37 ], [ %.pn36.pn.pn, %ehcleanup15 ], [ %eh.lpad-body, %lpad.body ] resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %sw.bb3 @@ -52163,40 +52072,10 @@ lpad125.body: ; preds = %lpad.i153, %lpad125 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp124) #20 br label %common.resume -sw.epilog: ; preds = %entry - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) #20 - %call.i158162 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) - to label %call.i158.noexc unwind label %lpad129 - -call.i158.noexc: ; preds = %sw.epilog - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i158162, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) - to label %.noexc163 unwind label %lpad129 - -.noexc163: ; preds = %call.i158.noexc - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.294, ptr noundef nonnull getelementptr inbounds ([24 x i8], ptr @.str.294, i64 0, i64 23)) - to label %invoke.cont130 unwind label %lpad.i161 - -lpad.i161: ; preds = %.noexc163 - %89 = landingpad { ptr, i32 } - cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 - br label %lpad129.body - -invoke.cont130: ; preds = %.noexc163 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) #20 - br label %return - -lpad129: ; preds = %call.i158.noexc, %sw.epilog - %90 = landingpad { ptr, i32 } - cleanup - br label %lpad129.body - -lpad129.body: ; preds = %lpad.i161, %lpad129 - %eh.lpad-body164 = phi { ptr, i32 } [ %90, %lpad129 ], [ %89, %lpad.i161 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128) #20 - br label %common.resume +default.unreachable158: ; preds = %entry + unreachable -return: ; preds = %invoke.cont130, %invoke.cont126, %invoke.cont120, %invoke.cont111, %invoke.cont100, %invoke.cont84, %invoke.cont74, %invoke.cont64, %invoke.cont55, %invoke.cont50, %invoke.cont44, %invoke.cont32, %invoke.cont13, %invoke.cont +return: ; preds = %invoke.cont126, %invoke.cont120, %invoke.cont111, %invoke.cont100, %invoke.cont84, %invoke.cont74, %invoke.cont64, %invoke.cont55, %invoke.cont50, %invoke.cont44, %invoke.cont32, %invoke.cont13, %invoke.cont ret void } @@ -54029,16 +53908,16 @@ ehcleanup95: ; preds = %lpad91, %lpad.i102, ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZN11flatbuffers4rust13RustGenerator27TableBuilderArgsAddFuncTypeERKNS_8FieldDefERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef nonnull align 8 dereferenceable(312) %field, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) local_unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { entry: - %ss.i239 = alloca %"class.std::__cxx11::basic_stringstream", align 8 - %ref.tmp.i224 = alloca %"class.std::__cxx11::basic_string", align 8 - %ss.i197 = alloca %"class.std::__cxx11::basic_stringstream", align 8 - %ref.tmp.i182 = alloca %"class.std::__cxx11::basic_string", align 8 + %ss.i238 = alloca %"class.std::__cxx11::basic_stringstream", align 8 + %ref.tmp.i223 = alloca %"class.std::__cxx11::basic_string", align 8 + %ss.i196 = alloca %"class.std::__cxx11::basic_stringstream", align 8 + %ref.tmp.i181 = alloca %"class.std::__cxx11::basic_string", align 8 %ss.i = alloca %"class.std::__cxx11::basic_stringstream", align 8 - %ref.tmp.i140 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i133 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i128 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i111 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i84 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i139 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i132 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i127 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i110 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i83 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8 %typname = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8 @@ -54095,10 +53974,9 @@ entry: %ref.tmp210 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp211 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp220 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp235 = alloca %"class.std::allocator", align 1 %value = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1 %call = tail call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %value), !range !72 - switch i32 %call, label %sw.epilog [ + switch i32 %call, label %default.unreachable265 [ i32 13, label %sw.bb i32 14, label %sw.bb15 i32 9, label %sw.bb41 @@ -54132,8 +54010,8 @@ sw.bb: ; preds = %entry invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit unwind label %lpad.i -common.resume: ; preds = %ehcleanup14, %ehcleanup40, %ehcleanup58, %ehcleanup71, %ehcleanup88, %ehcleanup101, %ehcleanup113, %ehcleanup131, %lpad135, %lpad140.body, %ehcleanup172, %ehcleanup203, %ehcleanup234, %lpad236.body, %lpad.i227, %lpad.i185, %lpad.i143, %lpad.i136, %lpad.i131, %lpad.i114, %lpad.i87, %lpad.i - %common.resume.op = phi { ptr, i32 } [ %2, %lpad.i ], [ %9, %lpad.i87 ], [ %28, %lpad.i114 ], [ %38, %lpad.i131 ], [ %41, %lpad.i136 ], [ %46, %lpad.i143 ], [ %68, %lpad.i185 ], [ %80, %lpad.i227 ], [ %eh.lpad-body272, %lpad236.body ], [ %.pn.pn.pn.pn.pn.pn, %ehcleanup234 ], [ %.pn34.pn.pn.pn.pn.pn, %ehcleanup203 ], [ %.pn41.pn.pn.pn.pn.pn, %ehcleanup172 ], [ %eh.lpad-body, %lpad140.body ], [ %51, %lpad135 ], [ %.pn48.pn.pn, %ehcleanup131 ], [ %.pn52, %ehcleanup113 ], [ %.pn54.pn, %ehcleanup101 ], [ %.pn57.pn.pn, %ehcleanup88 ], [ %.pn61.pn, %ehcleanup71 ], [ %.pn64.pn.pn, %ehcleanup58 ], [ %.pn68.pn.pn.pn.pn, %ehcleanup40 ], [ %.pn74.pn.pn, %ehcleanup14 ] +common.resume: ; preds = %ehcleanup14, %ehcleanup40, %ehcleanup58, %ehcleanup71, %ehcleanup88, %ehcleanup101, %ehcleanup113, %ehcleanup131, %lpad135, %lpad140.body, %ehcleanup172, %ehcleanup203, %ehcleanup234, %lpad.i226, %lpad.i184, %lpad.i142, %lpad.i135, %lpad.i130, %lpad.i113, %lpad.i86, %lpad.i + %common.resume.op = phi { ptr, i32 } [ %2, %lpad.i ], [ %9, %lpad.i86 ], [ %28, %lpad.i113 ], [ %38, %lpad.i130 ], [ %41, %lpad.i135 ], [ %46, %lpad.i142 ], [ %68, %lpad.i184 ], [ %80, %lpad.i226 ], [ %.pn.pn.pn.pn.pn.pn, %ehcleanup234 ], [ %.pn34.pn.pn.pn.pn.pn, %ehcleanup203 ], [ %.pn41.pn.pn.pn.pn.pn, %ehcleanup172 ], [ %eh.lpad-body, %lpad140.body ], [ %51, %lpad135 ], [ %.pn48.pn.pn, %ehcleanup131 ], [ %.pn52, %ehcleanup113 ], [ %.pn54.pn, %ehcleanup101 ], [ %.pn57.pn.pn, %ehcleanup88 ], [ %.pn61.pn, %ehcleanup71 ], [ %.pn64.pn.pn, %ehcleanup58 ], [ %.pn68.pn.pn.pn.pn, %ehcleanup40 ], [ %.pn74.pn.pn, %ehcleanup14 ] resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %sw.bb @@ -54149,21 +54027,21 @@ _ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit - %call.i80 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp6, ptr noundef nonnull @.str.355) + %call.i79 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp6, ptr noundef nonnull @.str.355) to label %invoke.cont8 unwind label %lpad7 invoke.cont8: ; preds = %invoke.cont - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp5, ptr noundef nonnull align 8 dereferenceable(32) %call.i80) #20 - %call.i81 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp5, ptr noundef nonnull align 8 dereferenceable(32) %typname) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp5, ptr noundef nonnull align 8 dereferenceable(32) %call.i79) #20 + %call.i80 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp5, ptr noundef nonnull align 8 dereferenceable(32) %typname) to label %invoke.cont10 unwind label %lpad9 invoke.cont10: ; preds = %invoke.cont8 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(32) %call.i81) #20 - %call.i82 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.523) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull align 8 dereferenceable(32) %call.i80) #20 + %call.i81 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.523) to label %invoke.cont12 unwind label %lpad11 invoke.cont12: ; preds = %invoke.cont10 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i82) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i81) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp5) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp6) #20 @@ -54209,52 +54087,52 @@ ehcleanup14: ; preds = %ehcleanup13, %lpad sw.bb15: ; preds = %entry %struct_def17 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 2 %7 = load ptr, ptr %struct_def17, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i84) - %defined_namespace.i85 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %7, i64 0, i32 5 - %8 = load ptr, ptr %defined_namespace.i85, align 8, !noalias !509 - %namer_.i86 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i84, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i86, ptr noundef nonnull align 8 dereferenceable(32) %7), !noalias !509 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname16, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %8, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i84) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit88 unwind label %lpad.i87 - -lpad.i87: ; preds = %sw.bb15 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i83) + %defined_namespace.i84 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %7, i64 0, i32 5 + %8 = load ptr, ptr %defined_namespace.i84, align 8, !noalias !509 + %namer_.i85 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i83, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i85, ptr noundef nonnull align 8 dereferenceable(32) %7), !noalias !509 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname16, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %8, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i83) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit87 unwind label %lpad.i86 + +lpad.i86: ; preds = %sw.bb15 %9 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i84) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i83) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit88: ; preds = %sw.bb15 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i84) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i84) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit87: ; preds = %sw.bb15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i83) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i83) invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp22, ptr noundef nonnull @.str.527, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont24 unwind label %lpad23 -invoke.cont24: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit88 - %call.i89 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp22, ptr noundef nonnull @.str.356) +invoke.cont24: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit87 + %call.i88 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp22, ptr noundef nonnull @.str.356) to label %invoke.cont26 unwind label %lpad25 invoke.cont26: ; preds = %invoke.cont24 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp21, ptr noundef nonnull align 8 dereferenceable(32) %call.i89) #20 - %call.i91 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp21, ptr noundef nonnull align 8 dereferenceable(32) %typname16) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp21, ptr noundef nonnull align 8 dereferenceable(32) %call.i88) #20 + %call.i90 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp21, ptr noundef nonnull align 8 dereferenceable(32) %typname16) to label %invoke.cont28 unwind label %lpad27 invoke.cont28: ; preds = %invoke.cont26 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20, ptr noundef nonnull align 8 dereferenceable(32) %call.i91) #20 - %call.i93 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20, ptr noundef nonnull @.str.351) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20, ptr noundef nonnull align 8 dereferenceable(32) %call.i90) #20 + %call.i92 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20, ptr noundef nonnull @.str.351) to label %invoke.cont30 unwind label %lpad29 invoke.cont30: ; preds = %invoke.cont28 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp19, ptr noundef nonnull align 8 dereferenceable(32) %call.i93) #20 - %call.i95 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp19, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp19, ptr noundef nonnull align 8 dereferenceable(32) %call.i92) #20 + %call.i94 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp19, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont32 unwind label %lpad31 invoke.cont32: ; preds = %invoke.cont30 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp18, ptr noundef nonnull align 8 dereferenceable(32) %call.i95) #20 - %call.i97 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp18, ptr noundef nonnull @.str.545) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp18, ptr noundef nonnull align 8 dereferenceable(32) %call.i94) #20 + %call.i96 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp18, ptr noundef nonnull @.str.545) to label %invoke.cont34 unwind label %lpad33 invoke.cont34: ; preds = %invoke.cont32 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i97) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i96) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp18) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp19) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20) #20 @@ -54263,7 +54141,7 @@ invoke.cont34: ; preds = %invoke.cont32 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname16) #20 br label %return -lpad23: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit88 +lpad23: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit87 %10 = landingpad { ptr, i32 } cleanup br label %ehcleanup40 @@ -54339,21 +54217,21 @@ sw.bb41: ; preds = %entry, %entry, %ent to label %invoke.cont48 unwind label %lpad47 invoke.cont48: ; preds = %sw.bb41 - %call.i99 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp46, ptr noundef nonnull @.str.355) + %call.i98 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp46, ptr noundef nonnull @.str.355) to label %invoke.cont50 unwind label %lpad49 invoke.cont50: ; preds = %invoke.cont48 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp45, ptr noundef nonnull align 8 dereferenceable(32) %call.i99) #20 - %call.i101 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp45, ptr noundef nonnull align 8 dereferenceable(32) %typname42) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp45, ptr noundef nonnull align 8 dereferenceable(32) %call.i98) #20 + %call.i100 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp45, ptr noundef nonnull align 8 dereferenceable(32) %typname42) to label %invoke.cont52 unwind label %lpad51 invoke.cont52: ; preds = %invoke.cont50 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp44, ptr noundef nonnull align 8 dereferenceable(32) %call.i101) #20 - %call.i103 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp44, ptr noundef nonnull @.str.523) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp44, ptr noundef nonnull align 8 dereferenceable(32) %call.i100) #20 + %call.i102 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp44, ptr noundef nonnull @.str.523) to label %invoke.cont54 unwind label %lpad53 invoke.cont54: ; preds = %invoke.cont52 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i103) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i102) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp44) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp45) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp46) #20 @@ -54398,21 +54276,21 @@ ehcleanup58: ; preds = %ehcleanup57, %lpad4 sw.bb59: ; preds = %entry call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp62, ptr noundef nonnull @.str.527, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) - %call.i105 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp62, ptr noundef nonnull @.str.358) + %call.i104 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp62, ptr noundef nonnull @.str.358) to label %invoke.cont64 unwind label %lpad63 invoke.cont64: ; preds = %sw.bb59 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp61, ptr noundef nonnull align 8 dereferenceable(32) %call.i105) #20 - %call.i107 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp61, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp61, ptr noundef nonnull align 8 dereferenceable(32) %call.i104) #20 + %call.i106 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp61, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont66 unwind label %lpad65 invoke.cont66: ; preds = %invoke.cont64 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp60, ptr noundef nonnull align 8 dereferenceable(32) %call.i107) #20 - %call.i109 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp60, ptr noundef nonnull @.str.546) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp60, ptr noundef nonnull align 8 dereferenceable(32) %call.i106) #20 + %call.i108 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp60, ptr noundef nonnull @.str.546) to label %invoke.cont68 unwind label %lpad67 invoke.cont68: ; preds = %invoke.cont66 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i109) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i108) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp60) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp61) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp62) #20 @@ -54447,49 +54325,49 @@ ehcleanup71: ; preds = %ehcleanup70, %lpad6 sw.bb72: ; preds = %entry %enum_def = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 3 %26 = load ptr, ptr %enum_def, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i111) - %defined_namespace.i112 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %26, i64 0, i32 5 - %27 = load ptr, ptr %defined_namespace.i112, align 8, !noalias !515 - %namer_.i113 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i111, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i113, ptr noundef nonnull align 8 dereferenceable(32) %26), !noalias !515 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname73, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %27, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i111) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit115 unwind label %lpad.i114 - -lpad.i114: ; preds = %sw.bb72 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i110) + %defined_namespace.i111 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %26, i64 0, i32 5 + %27 = load ptr, ptr %defined_namespace.i111, align 8, !noalias !515 + %namer_.i112 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i110, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i112, ptr noundef nonnull align 8 dereferenceable(32) %26), !noalias !515 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname73, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %27, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i110) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit114 unwind label %lpad.i113 + +lpad.i113: ; preds = %sw.bb72 %28 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i111) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i110) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit115: ; preds = %sw.bb72 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i111) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i111) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit114: ; preds = %sw.bb72 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i110) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i110) invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp76, ptr noundef nonnull @.str.527, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont78 unwind label %lpad77 -invoke.cont78: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit115 - %call.i116 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp76, ptr noundef nonnull @.str.355) +invoke.cont78: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit114 + %call.i115 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp76, ptr noundef nonnull @.str.355) to label %invoke.cont80 unwind label %lpad79 invoke.cont80: ; preds = %invoke.cont78 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp75, ptr noundef nonnull align 8 dereferenceable(32) %call.i116) #20 - %call.i118 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp75, ptr noundef nonnull align 8 dereferenceable(32) %typname73) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp75, ptr noundef nonnull align 8 dereferenceable(32) %call.i115) #20 + %call.i117 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp75, ptr noundef nonnull align 8 dereferenceable(32) %typname73) to label %invoke.cont82 unwind label %lpad81 invoke.cont82: ; preds = %invoke.cont80 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74, ptr noundef nonnull align 8 dereferenceable(32) %call.i118) #20 - %call.i120 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74, ptr noundef nonnull @.str.523) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74, ptr noundef nonnull align 8 dereferenceable(32) %call.i117) #20 + %call.i119 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74, ptr noundef nonnull @.str.523) to label %invoke.cont84 unwind label %lpad83 invoke.cont84: ; preds = %invoke.cont82 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i120) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i119) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp75) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp76) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname73) #20 br label %return -lpad77: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit115 +lpad77: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit114 %29 = landingpad { ptr, i32 } cleanup br label %ehcleanup88 @@ -54527,21 +54405,21 @@ ehcleanup88: ; preds = %ehcleanup87, %lpad7 sw.bb89: ; preds = %entry call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp92, ptr noundef nonnull @.str.527, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) - %call.i122 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92, ptr noundef nonnull @.str.547) + %call.i121 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92, ptr noundef nonnull @.str.547) to label %invoke.cont94 unwind label %lpad93 invoke.cont94: ; preds = %sw.bb89 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp91, ptr noundef nonnull align 8 dereferenceable(32) %call.i122) #20 - %call.i124 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp91, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp91, ptr noundef nonnull align 8 dereferenceable(32) %call.i121) #20 + %call.i123 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp91, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont96 unwind label %lpad95 invoke.cont96: ; preds = %invoke.cont94 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp90, ptr noundef nonnull align 8 dereferenceable(32) %call.i124) #20 - %call.i126 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp90, ptr noundef nonnull @.str.357) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp90, ptr noundef nonnull align 8 dereferenceable(32) %call.i123) #20 + %call.i125 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp90, ptr noundef nonnull @.str.357) to label %invoke.cont98 unwind label %lpad97 invoke.cont98: ; preds = %invoke.cont96 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i126) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i125) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp90) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp91) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92) #20 @@ -54576,59 +54454,59 @@ ehcleanup101: ; preds = %ehcleanup100, %lpad sw.bb102: ; preds = %entry, %entry %enum_def103 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 3 %36 = load ptr, ptr %enum_def103, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i128) - %defined_namespace.i129 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %36, i64 0, i32 5 - %37 = load ptr, ptr %defined_namespace.i129, align 8, !noalias !518 - %namer_.i130 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i128, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i130, ptr noundef nonnull align 8 dereferenceable(32) %36), !noalias !518 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %37, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i128) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit132 unwind label %lpad.i131 - -lpad.i131: ; preds = %sw.bb102 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i127) + %defined_namespace.i128 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %36, i64 0, i32 5 + %37 = load ptr, ptr %defined_namespace.i128, align 8, !noalias !518 + %namer_.i129 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i127, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i129, ptr noundef nonnull align 8 dereferenceable(32) %36), !noalias !518 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr sret(%"class.std::__cxx11::basic_string") align 8 %agg.result, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %37, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i127) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit131 unwind label %lpad.i130 + +lpad.i130: ; preds = %sw.bb102 %38 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i128) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i127) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit132: ; preds = %sw.bb102 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i128) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i128) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit131: ; preds = %sw.bb102 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i127) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i127) br label %return sw.bb104: ; preds = %entry %struct_def106 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 2 %39 = load ptr, ptr %struct_def106, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i133) - %defined_namespace.i134 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %39, i64 0, i32 5 - %40 = load ptr, ptr %defined_namespace.i134, align 8, !noalias !521 - %namer_.i135 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i133, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i135, ptr noundef nonnull align 8 dereferenceable(32) %39), !noalias !521 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname105, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %40, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i133) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit137 unwind label %lpad.i136 - -lpad.i136: ; preds = %sw.bb104 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i132) + %defined_namespace.i133 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %39, i64 0, i32 5 + %40 = load ptr, ptr %defined_namespace.i133, align 8, !noalias !521 + %namer_.i134 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i132, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i134, ptr noundef nonnull align 8 dereferenceable(32) %39), !noalias !521 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname105, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %40, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i132) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit136 unwind label %lpad.i135 + +lpad.i135: ; preds = %sw.bb104 %41 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i133) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i132) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit137: ; preds = %sw.bb104 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i133) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i133) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit136: ; preds = %sw.bb104 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i132) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i132) invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp107, ptr noundef nonnull @.str.286, ptr noundef nonnull align 8 dereferenceable(32) %typname105) to label %invoke.cont109 unwind label %lpad108 -invoke.cont109: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit137 - %call.i138 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp107, ptr noundef nonnull @.str) +invoke.cont109: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit136 + %call.i137 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp107, ptr noundef nonnull @.str) to label %invoke.cont111 unwind label %lpad110 invoke.cont111: ; preds = %invoke.cont109 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i138) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i137) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp107) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname105) #20 br label %return -lpad108: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit137 +lpad108: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit136 %42 = landingpad { ptr, i32 } cleanup br label %ehcleanup113 @@ -54647,49 +54525,49 @@ ehcleanup113: ; preds = %lpad110, %lpad108 sw.bb114: ; preds = %entry %struct_def116 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 2 %44 = load ptr, ptr %struct_def116, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i140) - %defined_namespace.i141 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %44, i64 0, i32 5 - %45 = load ptr, ptr %defined_namespace.i141, align 8, !noalias !524 - %namer_.i142 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i140, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i142, ptr noundef nonnull align 8 dereferenceable(32) %44), !noalias !524 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname115, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %45, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i140) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit144 unwind label %lpad.i143 - -lpad.i143: ; preds = %sw.bb114 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i139) + %defined_namespace.i140 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %44, i64 0, i32 5 + %45 = load ptr, ptr %defined_namespace.i140, align 8, !noalias !524 + %namer_.i141 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i139, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i141, ptr noundef nonnull align 8 dereferenceable(32) %44), !noalias !524 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname115, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %45, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i139) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit143 unwind label %lpad.i142 + +lpad.i142: ; preds = %sw.bb114 %46 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i140) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i139) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit144: ; preds = %sw.bb114 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i140) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i140) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit143: ; preds = %sw.bb114 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i139) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i139) invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp119, ptr noundef nonnull @.str.522, ptr noundef nonnull align 8 dereferenceable(32) %typname115) to label %invoke.cont121 unwind label %lpad120 -invoke.cont121: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit144 - %call.i145 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp119, ptr noundef nonnull @.str.351) +invoke.cont121: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit143 + %call.i144 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp119, ptr noundef nonnull @.str.351) to label %invoke.cont123 unwind label %lpad122 invoke.cont123: ; preds = %invoke.cont121 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp118, ptr noundef nonnull align 8 dereferenceable(32) %call.i145) #20 - %call.i147 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp118, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp118, ptr noundef nonnull align 8 dereferenceable(32) %call.i144) #20 + %call.i146 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp118, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont125 unwind label %lpad124 invoke.cont125: ; preds = %invoke.cont123 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp117, ptr noundef nonnull align 8 dereferenceable(32) %call.i147) #20 - %call.i149 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp117, ptr noundef nonnull @.str.523) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp117, ptr noundef nonnull align 8 dereferenceable(32) %call.i146) #20 + %call.i148 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp117, ptr noundef nonnull @.str.523) to label %invoke.cont127 unwind label %lpad126 invoke.cont127: ; preds = %invoke.cont125 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i149) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i148) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp117) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp118) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp119) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname115) #20 br label %return -lpad120: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit144 +lpad120: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit143 %47 = landingpad { ptr, i32 } cleanup br label %ehcleanup131 @@ -54731,11 +54609,11 @@ sw.bb132: ; preds = %entry, %entry, %ent sw.bb133: ; preds = %entry call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp134, ptr noundef nonnull @.str.524, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) - %call.i151 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp134, ptr noundef nonnull @.str.525) + %call.i150 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp134, ptr noundef nonnull @.str.525) to label %invoke.cont136 unwind label %lpad135 invoke.cont136: ; preds = %sw.bb133 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i151) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i150) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp134) #20 br label %return @@ -54747,18 +54625,18 @@ lpad135: ; preds = %sw.bb133 sw.bb138: ; preds = %entry call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp139) #20 - %call.i154 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) + %call.i153 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) to label %call.i.noexc unwind label %lpad140 call.i.noexc: ; preds = %sw.bb138 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i154, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp139) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i153, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp139) to label %.noexc unwind label %lpad140 .noexc: ; preds = %call.i.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.548, ptr noundef nonnull getelementptr inbounds ([52 x i8], ptr @.str.548, i64 0, i64 51)) - to label %invoke.cont141 unwind label %lpad.i153 + to label %invoke.cont141 unwind label %lpad.i152 -lpad.i153: ; preds = %.noexc +lpad.i152: ; preds = %.noexc %52 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 @@ -54773,61 +54651,61 @@ lpad140: ; preds = %call.i.noexc, %sw.b cleanup br label %lpad140.body -lpad140.body: ; preds = %lpad.i153, %lpad140 - %eh.lpad-body = phi { ptr, i32 } [ %53, %lpad140 ], [ %52, %lpad.i153 ] +lpad140.body: ; preds = %lpad.i152, %lpad140 + %eh.lpad-body = phi { ptr, i32 } [ %53, %lpad140 ], [ %52, %lpad.i152 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp139) #20 br label %common.resume sw.bb143: ; preds = %entry tail call void @llvm.experimental.noalias.scope.decl(metadata !527) - %element.i155 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 1 - %54 = load i32, ptr %element.i155, align 4, !noalias !527 - %struct_def.i156 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 2 - %fixed_length.i158 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 4 - %55 = load i16, ptr %fixed_length.i158, align 8, !noalias !527 + %element.i154 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 1 + %54 = load i32, ptr %element.i154, align 4, !noalias !527 + %struct_def.i155 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 2 + %fixed_length.i157 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 4 + %55 = load i16, ptr %fixed_length.i157, align 8, !noalias !527 store i32 %54, ptr %ref.tmp145, align 8, !alias.scope !527 - %element.i.i159 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp145, i64 0, i32 1 - store i32 0, ptr %element.i.i159, align 4, !alias.scope !527 - %struct_def.i.i160 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp145, i64 0, i32 2 - %56 = load <2 x ptr>, ptr %struct_def.i156, align 8, !noalias !527 - store <2 x ptr> %56, ptr %struct_def.i.i160, align 8, !alias.scope !527 - %fixed_length.i.i162 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp145, i64 0, i32 4 - store i16 %55, ptr %fixed_length.i.i162, align 8, !alias.scope !527 + %element.i.i158 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp145, i64 0, i32 1 + store i32 0, ptr %element.i.i158, align 4, !alias.scope !527 + %struct_def.i.i159 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp145, i64 0, i32 2 + %56 = load <2 x ptr>, ptr %struct_def.i155, align 8, !noalias !527 + store <2 x ptr> %56, ptr %struct_def.i.i159, align 8, !alias.scope !527 + %fixed_length.i.i161 = getelementptr inbounds %"struct.flatbuffers::Type", ptr %ref.tmp145, i64 0, i32 4 + store i16 %55, ptr %fixed_length.i.i161, align 8, !alias.scope !527 call void @_ZNK11flatbuffers4rust13RustGenerator12GetTypeBasicB5cxx11ERKNS_4TypeE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname144, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef nonnull align 8 dereferenceable(26) %ref.tmp145) invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp150, ptr noundef nonnull @.str.495, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont152 unwind label %lpad151 invoke.cont152: ; preds = %sw.bb143 - %call.i164 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp150, ptr noundef nonnull @.str.355) + %call.i163 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp150, ptr noundef nonnull @.str.355) to label %invoke.cont154 unwind label %lpad153 invoke.cont154: ; preds = %invoke.cont152 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp149, ptr noundef nonnull align 8 dereferenceable(32) %call.i164) #20 - %call.i167 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp149, ptr noundef nonnull align 8 dereferenceable(32) %typname144) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp149, ptr noundef nonnull align 8 dereferenceable(32) %call.i163) #20 + %call.i166 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp149, ptr noundef nonnull align 8 dereferenceable(32) %typname144) to label %invoke.cont156 unwind label %lpad155 invoke.cont156: ; preds = %invoke.cont154 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp148, ptr noundef nonnull align 8 dereferenceable(32) %call.i167) #20 - %call.i170 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp148, ptr noundef nonnull @.str.355) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp148, ptr noundef nonnull align 8 dereferenceable(32) %call.i166) #20 + %call.i169 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp148, ptr noundef nonnull @.str.355) to label %invoke.cont158 unwind label %lpad157 invoke.cont158: ; preds = %invoke.cont156 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147, ptr noundef nonnull align 8 dereferenceable(32) %call.i170) #20 - %57 = load i16, ptr %fixed_length.i158, align 8 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147, ptr noundef nonnull align 8 dereferenceable(32) %call.i169) #20 + %57 = load i16, ptr %fixed_length.i157, align 8 call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %ss.i) invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i) - to label %.noexc174 unwind label %lpad160 + to label %.noexc173 unwind label %lpad160 -.noexc174: ; preds = %invoke.cont158 - %add.ptr.i172 = getelementptr inbounds i8, ptr %ss.i, i64 16 - %call.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i172, i16 noundef zeroext %57) - to label %invoke.cont.i unwind label %lpad.i173, !noalias !530 +.noexc173: ; preds = %invoke.cont158 + %add.ptr.i171 = getelementptr inbounds i8, ptr %ss.i, i64 16 + %call.i = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i171, i16 noundef zeroext %57) + to label %invoke.cont.i unwind label %lpad.i172, !noalias !530 -invoke.cont.i: ; preds = %.noexc174 +invoke.cont.i: ; preds = %.noexc173 invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp159, ptr noundef nonnull align 8 dereferenceable(128) %ss.i) - to label %invoke.cont161 unwind label %lpad.i173 + to label %invoke.cont161 unwind label %lpad.i172 -lpad.i173: ; preds = %invoke.cont.i, %.noexc174 +lpad.i172: ; preds = %invoke.cont.i, %.noexc173 %58 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i) #20 @@ -54836,9 +54714,9 @@ lpad.i173: ; preds = %invoke.cont.i, %.no invoke.cont161: ; preds = %invoke.cont.i call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i) #20 call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %ss.i) - %call.i176 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147) #20, !noalias !533 + %call.i175 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147) #20, !noalias !533 %call1.i = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp159) #20, !noalias !533 - %add.i = add i64 %call1.i, %call.i176 + %add.i = add i64 %call1.i, %call.i175 %call2.i = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147) #20, !noalias !533 %cmp.i = icmp ugt i64 %add.i, %call2.i br i1 %cmp.i, label %land.lhs.true.i, label %if.end7.i @@ -54849,21 +54727,21 @@ land.lhs.true.i: ; preds = %invoke.cont161 br i1 %cmp4.not.i, label %if.end7.i, label %if.then5.i if.then5.i: ; preds = %land.lhs.true.i - %call6.i177 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp159, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147) + %call6.i176 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp159, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147) to label %invoke.cont163 unwind label %lpad162 if.end7.i: ; preds = %land.lhs.true.i, %invoke.cont161 - %call8.i178 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp159) + %call8.i177 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp159) to label %invoke.cont163 unwind label %lpad162 invoke.cont163: ; preds = %if.then5.i, %if.end7.i - %call8.sink.i = phi ptr [ %call6.i177, %if.then5.i ], [ %call8.i178, %if.end7.i ] + %call8.sink.i = phi ptr [ %call6.i176, %if.then5.i ], [ %call8.i177, %if.end7.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp146, ptr noundef nonnull align 8 dereferenceable(32) %call8.sink.i) #20 - %call.i179180 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp146, ptr noundef nonnull @.str.293) + %call.i178179 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp146, ptr noundef nonnull @.str.293) to label %invoke.cont165 unwind label %lpad164 invoke.cont165: ; preds = %invoke.cont163 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i179180) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i178179) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp146) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp159) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147) #20 @@ -54914,8 +54792,8 @@ ehcleanup167: ; preds = %lpad164, %lpad162 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp159) #20 br label %ehcleanup168 -ehcleanup168: ; preds = %lpad160, %lpad.i173, %ehcleanup167 - %.pn41.pn = phi { ptr, i32 } [ %.pn41, %ehcleanup167 ], [ %63, %lpad160 ], [ %58, %lpad.i173 ] +ehcleanup168: ; preds = %lpad160, %lpad.i172, %ehcleanup167 + %.pn41.pn = phi { ptr, i32 } [ %.pn41, %ehcleanup167 ], [ %63, %lpad160 ], [ %58, %lpad.i172 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp147) #20 br label %ehcleanup169 @@ -54942,94 +54820,94 @@ ehcleanup172: ; preds = %ehcleanup171, %lpad sw.bb173: ; preds = %entry %enum_def175 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 3 %66 = load ptr, ptr %enum_def175, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i182) - %defined_namespace.i183 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %66, i64 0, i32 5 - %67 = load ptr, ptr %defined_namespace.i183, align 8, !noalias !536 - %namer_.i184 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i182, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i184, ptr noundef nonnull align 8 dereferenceable(32) %66), !noalias !536 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname174, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %67, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i182) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit187 unwind label %lpad.i185 - -lpad.i185: ; preds = %sw.bb173 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i181) + %defined_namespace.i182 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %66, i64 0, i32 5 + %67 = load ptr, ptr %defined_namespace.i182, align 8, !noalias !536 + %namer_.i183 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i181, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i183, ptr noundef nonnull align 8 dereferenceable(32) %66), !noalias !536 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname174, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %67, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i181) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit186 unwind label %lpad.i184 + +lpad.i184: ; preds = %sw.bb173 %68 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i182) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i181) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit187: ; preds = %sw.bb173 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i182) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i182) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit186: ; preds = %sw.bb173 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i181) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i181) invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp180, ptr noundef nonnull @.str.495, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont182 unwind label %lpad181 -invoke.cont182: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit187 - %call.i188189 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp180, ptr noundef nonnull @.str.355) +invoke.cont182: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit186 + %call.i187188 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp180, ptr noundef nonnull @.str.355) to label %invoke.cont184 unwind label %lpad183 invoke.cont184: ; preds = %invoke.cont182 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp179, ptr noundef nonnull align 8 dereferenceable(32) %call.i188189) #20 - %call.i191192 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp179, ptr noundef nonnull align 8 dereferenceable(32) %typname174) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp179, ptr noundef nonnull align 8 dereferenceable(32) %call.i187188) #20 + %call.i190191 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp179, ptr noundef nonnull align 8 dereferenceable(32) %typname174) to label %invoke.cont186 unwind label %lpad185 invoke.cont186: ; preds = %invoke.cont184 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp178, ptr noundef nonnull align 8 dereferenceable(32) %call.i191192) #20 - %call.i194195 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp178, ptr noundef nonnull @.str.355) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp178, ptr noundef nonnull align 8 dereferenceable(32) %call.i190191) #20 + %call.i193194 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp178, ptr noundef nonnull @.str.355) to label %invoke.cont188 unwind label %lpad187 invoke.cont188: ; preds = %invoke.cont186 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177, ptr noundef nonnull align 8 dereferenceable(32) %call.i194195) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177, ptr noundef nonnull align 8 dereferenceable(32) %call.i193194) #20 %fixed_length190 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 4 %69 = load i16, ptr %fixed_length190, align 8 - call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %ss.i197) - invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i197) - to label %.noexc202 unwind label %lpad191 + call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %ss.i196) + invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i196) + to label %.noexc201 unwind label %lpad191 -.noexc202: ; preds = %invoke.cont188 - %add.ptr.i198 = getelementptr inbounds i8, ptr %ss.i197, i64 16 - %call.i199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i198, i16 noundef zeroext %69) - to label %invoke.cont.i201 unwind label %lpad.i200, !noalias !539 +.noexc201: ; preds = %invoke.cont188 + %add.ptr.i197 = getelementptr inbounds i8, ptr %ss.i196, i64 16 + %call.i198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i197, i16 noundef zeroext %69) + to label %invoke.cont.i200 unwind label %lpad.i199, !noalias !539 -invoke.cont.i201: ; preds = %.noexc202 - invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp189, ptr noundef nonnull align 8 dereferenceable(128) %ss.i197) - to label %invoke.cont192 unwind label %lpad.i200 +invoke.cont.i200: ; preds = %.noexc201 + invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp189, ptr noundef nonnull align 8 dereferenceable(128) %ss.i196) + to label %invoke.cont192 unwind label %lpad.i199 -lpad.i200: ; preds = %invoke.cont.i201, %.noexc202 +lpad.i199: ; preds = %invoke.cont.i200, %.noexc201 %70 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i197) #20 + call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i196) #20 br label %ehcleanup199 -invoke.cont192: ; preds = %invoke.cont.i201 - call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i197) #20 - call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %ss.i197) - %call.i205 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) #20, !noalias !542 - %call1.i206 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) #20, !noalias !542 - %add.i207 = add i64 %call1.i206, %call.i205 - %call2.i208 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) #20, !noalias !542 - %cmp.i209 = icmp ugt i64 %add.i207, %call2.i208 - br i1 %cmp.i209, label %land.lhs.true.i212, label %if.end7.i210 - -land.lhs.true.i212: ; preds = %invoke.cont192 - %call3.i213 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) #20, !noalias !542 - %cmp4.not.i214 = icmp ugt i64 %add.i207, %call3.i213 - br i1 %cmp4.not.i214, label %if.end7.i210, label %if.then5.i215 - -if.then5.i215: ; preds = %land.lhs.true.i212 - %call6.i217 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) +invoke.cont192: ; preds = %invoke.cont.i200 + call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i196) #20 + call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %ss.i196) + %call.i204 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) #20, !noalias !542 + %call1.i205 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) #20, !noalias !542 + %add.i206 = add i64 %call1.i205, %call.i204 + %call2.i207 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) #20, !noalias !542 + %cmp.i208 = icmp ugt i64 %add.i206, %call2.i207 + br i1 %cmp.i208, label %land.lhs.true.i211, label %if.end7.i209 + +land.lhs.true.i211: ; preds = %invoke.cont192 + %call3.i212 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) #20, !noalias !542 + %cmp4.not.i213 = icmp ugt i64 %add.i206, %call3.i212 + br i1 %cmp4.not.i213, label %if.end7.i209, label %if.then5.i214 + +if.then5.i214: ; preds = %land.lhs.true.i211 + %call6.i216 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) to label %invoke.cont194 unwind label %lpad193 -if.end7.i210: ; preds = %land.lhs.true.i212, %invoke.cont192 - %call8.i219 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) +if.end7.i209: ; preds = %land.lhs.true.i211, %invoke.cont192 + %call8.i218 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) to label %invoke.cont194 unwind label %lpad193 -invoke.cont194: ; preds = %if.then5.i215, %if.end7.i210 - %call8.sink.i211 = phi ptr [ %call6.i217, %if.then5.i215 ], [ %call8.i219, %if.end7.i210 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp176, ptr noundef nonnull align 8 dereferenceable(32) %call8.sink.i211) #20 - %call.i221222 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp176, ptr noundef nonnull @.str.293) +invoke.cont194: ; preds = %if.then5.i214, %if.end7.i209 + %call8.sink.i210 = phi ptr [ %call6.i216, %if.then5.i214 ], [ %call8.i218, %if.end7.i209 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp176, ptr noundef nonnull align 8 dereferenceable(32) %call8.sink.i210) #20 + %call.i220221 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp176, ptr noundef nonnull @.str.293) to label %invoke.cont196 unwind label %lpad195 invoke.cont196: ; preds = %invoke.cont194 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i221222) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i220221) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp176) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) #20 @@ -55039,7 +54917,7 @@ invoke.cont196: ; preds = %invoke.cont194 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname174) #20 br label %return -lpad181: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit187 +lpad181: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit186 %71 = landingpad { ptr, i32 } cleanup br label %ehcleanup203 @@ -55064,7 +54942,7 @@ lpad191: ; preds = %invoke.cont188 cleanup br label %ehcleanup199 -lpad193: ; preds = %if.end7.i210, %if.then5.i215 +lpad193: ; preds = %if.end7.i209, %if.then5.i214 %76 = landingpad { ptr, i32 } cleanup br label %ehcleanup198 @@ -55080,8 +54958,8 @@ ehcleanup198: ; preds = %lpad195, %lpad193 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp189) #20 br label %ehcleanup199 -ehcleanup199: ; preds = %lpad191, %lpad.i200, %ehcleanup198 - %.pn34.pn = phi { ptr, i32 } [ %.pn34, %ehcleanup198 ], [ %75, %lpad191 ], [ %70, %lpad.i200 ] +ehcleanup199: ; preds = %lpad191, %lpad.i199, %ehcleanup198 + %.pn34.pn = phi { ptr, i32 } [ %.pn34, %ehcleanup198 ], [ %75, %lpad191 ], [ %70, %lpad.i199 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp177) #20 br label %ehcleanup200 @@ -55108,94 +54986,94 @@ ehcleanup203: ; preds = %ehcleanup202, %lpad sw.bb204: ; preds = %entry %struct_def206 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 2 %78 = load ptr, ptr %struct_def206, align 8 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i224) - %defined_namespace.i225 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %78, i64 0, i32 5 - %79 = load ptr, ptr %defined_namespace.i225, align 8, !noalias !545 - %namer_.i226 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 - call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i224, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i226, ptr noundef nonnull align 8 dereferenceable(32) %78), !noalias !545 - invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname205, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %79, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i224) - to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit229 unwind label %lpad.i227 - -lpad.i227: ; preds = %sw.bb204 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i223) + %defined_namespace.i224 = getelementptr inbounds %"struct.flatbuffers::Definition", ptr %78, i64 0, i32 5 + %79 = load ptr, ptr %defined_namespace.i224, align 8, !noalias !545 + %namer_.i225 = getelementptr inbounds %"class.flatbuffers::rust::RustGenerator", ptr %this, i64 0, i32 3 + call void @_ZNK11flatbuffers5Namer13EscapeKeywordERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i223, ptr noundef nonnull align 8 dereferenceable(392) %namer_.i225, ptr noundef nonnull align 8 dereferenceable(32) %78), !noalias !545 + invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname205, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %79, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i223) + to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit228 unwind label %lpad.i226 + +lpad.i226: ; preds = %sw.bb204 %80 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i224) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i223) #20 br label %common.resume -_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit229: ; preds = %sw.bb204 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i224) #20 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i224) +_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit228: ; preds = %sw.bb204 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i223) #20 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i223) invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp211, ptr noundef nonnull @.str.495, ptr noundef nonnull align 8 dereferenceable(32) %lifetime) to label %invoke.cont213 unwind label %lpad212 -invoke.cont213: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit229 - %call.i230231 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp211, ptr noundef nonnull @.str.355) +invoke.cont213: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit228 + %call.i229230 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp211, ptr noundef nonnull @.str.355) to label %invoke.cont215 unwind label %lpad214 invoke.cont215: ; preds = %invoke.cont213 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp210, ptr noundef nonnull align 8 dereferenceable(32) %call.i230231) #20 - %call.i233234 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp210, ptr noundef nonnull align 8 dereferenceable(32) %typname205) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp210, ptr noundef nonnull align 8 dereferenceable(32) %call.i229230) #20 + %call.i232233 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp210, ptr noundef nonnull align 8 dereferenceable(32) %typname205) to label %invoke.cont217 unwind label %lpad216 invoke.cont217: ; preds = %invoke.cont215 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp209, ptr noundef nonnull align 8 dereferenceable(32) %call.i233234) #20 - %call.i236237 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp209, ptr noundef nonnull @.str.355) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp209, ptr noundef nonnull align 8 dereferenceable(32) %call.i232233) #20 + %call.i235236 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp209, ptr noundef nonnull @.str.355) to label %invoke.cont219 unwind label %lpad218 invoke.cont219: ; preds = %invoke.cont217 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208, ptr noundef nonnull align 8 dereferenceable(32) %call.i236237) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208, ptr noundef nonnull align 8 dereferenceable(32) %call.i235236) #20 %fixed_length221 = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1, i32 0, i32 4 %81 = load i16, ptr %fixed_length221, align 8 - call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %ss.i239) - invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i239) - to label %.noexc244 unwind label %lpad222 + call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %ss.i238) + invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i238) + to label %.noexc243 unwind label %lpad222 -.noexc244: ; preds = %invoke.cont219 - %add.ptr.i240 = getelementptr inbounds i8, ptr %ss.i239, i64 16 - %call.i241 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i240, i16 noundef zeroext %81) - to label %invoke.cont.i243 unwind label %lpad.i242, !noalias !548 +.noexc243: ; preds = %invoke.cont219 + %add.ptr.i239 = getelementptr inbounds i8, ptr %ss.i238, i64 16 + %call.i240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEt(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i239, i16 noundef zeroext %81) + to label %invoke.cont.i242 unwind label %lpad.i241, !noalias !548 -invoke.cont.i243: ; preds = %.noexc244 - invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp220, ptr noundef nonnull align 8 dereferenceable(128) %ss.i239) - to label %invoke.cont223 unwind label %lpad.i242 +invoke.cont.i242: ; preds = %.noexc243 + invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp220, ptr noundef nonnull align 8 dereferenceable(128) %ss.i238) + to label %invoke.cont223 unwind label %lpad.i241 -lpad.i242: ; preds = %invoke.cont.i243, %.noexc244 +lpad.i241: ; preds = %invoke.cont.i242, %.noexc243 %82 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i239) #20 + call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i238) #20 br label %ehcleanup230 -invoke.cont223: ; preds = %invoke.cont.i243 - call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i239) #20 - call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %ss.i239) - %call.i247 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) #20, !noalias !551 - %call1.i248 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) #20, !noalias !551 - %add.i249 = add i64 %call1.i248, %call.i247 - %call2.i250 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) #20, !noalias !551 - %cmp.i251 = icmp ugt i64 %add.i249, %call2.i250 - br i1 %cmp.i251, label %land.lhs.true.i254, label %if.end7.i252 - -land.lhs.true.i254: ; preds = %invoke.cont223 - %call3.i255 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) #20, !noalias !551 - %cmp4.not.i256 = icmp ugt i64 %add.i249, %call3.i255 - br i1 %cmp4.not.i256, label %if.end7.i252, label %if.then5.i257 - -if.then5.i257: ; preds = %land.lhs.true.i254 - %call6.i259 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) +invoke.cont223: ; preds = %invoke.cont.i242 + call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %ss.i238) #20 + call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %ss.i238) + %call.i246 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) #20, !noalias !551 + %call1.i247 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) #20, !noalias !551 + %add.i248 = add i64 %call1.i247, %call.i246 + %call2.i249 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) #20, !noalias !551 + %cmp.i250 = icmp ugt i64 %add.i248, %call2.i249 + br i1 %cmp.i250, label %land.lhs.true.i253, label %if.end7.i251 + +land.lhs.true.i253: ; preds = %invoke.cont223 + %call3.i254 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) #20, !noalias !551 + %cmp4.not.i255 = icmp ugt i64 %add.i248, %call3.i254 + br i1 %cmp4.not.i255, label %if.end7.i251, label %if.then5.i256 + +if.then5.i256: ; preds = %land.lhs.true.i253 + %call6.i258 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) to label %invoke.cont225 unwind label %lpad224 -if.end7.i252: ; preds = %land.lhs.true.i254, %invoke.cont223 - %call8.i261 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) +if.end7.i251: ; preds = %land.lhs.true.i253, %invoke.cont223 + %call8.i260 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) to label %invoke.cont225 unwind label %lpad224 -invoke.cont225: ; preds = %if.then5.i257, %if.end7.i252 - %call8.sink.i253 = phi ptr [ %call6.i259, %if.then5.i257 ], [ %call8.i261, %if.end7.i252 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp207, ptr noundef nonnull align 8 dereferenceable(32) %call8.sink.i253) #20 - %call.i263264 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp207, ptr noundef nonnull @.str.293) +invoke.cont225: ; preds = %if.then5.i256, %if.end7.i251 + %call8.sink.i252 = phi ptr [ %call6.i258, %if.then5.i256 ], [ %call8.i260, %if.end7.i251 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp207, ptr noundef nonnull align 8 dereferenceable(32) %call8.sink.i252) #20 + %call.i262263 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp207, ptr noundef nonnull @.str.293) to label %invoke.cont227 unwind label %lpad226 invoke.cont227: ; preds = %invoke.cont225 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i263264) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull align 8 dereferenceable(32) %call.i262263) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp207) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) #20 @@ -55205,7 +55083,7 @@ invoke.cont227: ; preds = %invoke.cont225 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname205) #20 br label %return -lpad212: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit229 +lpad212: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit228 %83 = landingpad { ptr, i32 } cleanup br label %ehcleanup234 @@ -55230,7 +55108,7 @@ lpad222: ; preds = %invoke.cont219 cleanup br label %ehcleanup230 -lpad224: ; preds = %if.end7.i252, %if.then5.i257 +lpad224: ; preds = %if.end7.i251, %if.then5.i256 %88 = landingpad { ptr, i32 } cleanup br label %ehcleanup229 @@ -55246,8 +55124,8 @@ ehcleanup229: ; preds = %lpad226, %lpad224 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp220) #20 br label %ehcleanup230 -ehcleanup230: ; preds = %lpad222, %lpad.i242, %ehcleanup229 - %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup229 ], [ %87, %lpad222 ], [ %82, %lpad.i242 ] +ehcleanup230: ; preds = %lpad222, %lpad.i241, %ehcleanup229 + %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup229 ], [ %87, %lpad222 ], [ %82, %lpad.i241 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp208) #20 br label %ehcleanup231 @@ -55271,40 +55149,10 @@ ehcleanup234: ; preds = %ehcleanup233, %lpad call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %typname205) #20 br label %common.resume -sw.epilog: ; preds = %entry - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp235) #20 - %call.i266270 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) - to label %call.i266.noexc unwind label %lpad236 - -call.i266.noexc: ; preds = %sw.epilog - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i266270, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp235) - to label %.noexc271 unwind label %lpad236 - -.noexc271: ; preds = %call.i266.noexc - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.294, ptr noundef nonnull getelementptr inbounds ([24 x i8], ptr @.str.294, i64 0, i64 23)) - to label %invoke.cont237 unwind label %lpad.i269 - -lpad.i269: ; preds = %.noexc271 - %90 = landingpad { ptr, i32 } - cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 - br label %lpad236.body - -invoke.cont237: ; preds = %.noexc271 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp235) #20 - br label %return - -lpad236: ; preds = %call.i266.noexc, %sw.epilog - %91 = landingpad { ptr, i32 } - cleanup - br label %lpad236.body - -lpad236.body: ; preds = %lpad.i269, %lpad236 - %eh.lpad-body272 = phi { ptr, i32 } [ %91, %lpad236 ], [ %90, %lpad.i269 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp235) #20 - br label %common.resume +default.unreachable265: ; preds = %entry + unreachable -return: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit132, %invoke.cont237, %invoke.cont227, %invoke.cont196, %invoke.cont165, %invoke.cont141, %invoke.cont136, %sw.bb132, %invoke.cont127, %invoke.cont111, %invoke.cont98, %invoke.cont84, %invoke.cont68, %invoke.cont54, %invoke.cont34, %invoke.cont12 +return: ; preds = %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit131, %invoke.cont227, %invoke.cont196, %invoke.cont165, %invoke.cont141, %invoke.cont136, %sw.bb132, %invoke.cont127, %invoke.cont111, %invoke.cont98, %invoke.cont84, %invoke.cont68, %invoke.cont54, %invoke.cont34, %invoke.cont12 ret void } @@ -55323,10 +55171,9 @@ entry: %ref.tmp32 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp40 = alloca %"class.std::allocator", align 1 %ref.tmp45 = alloca %"class.std::allocator", align 1 - %ref.tmp49 = alloca %"class.std::allocator", align 1 %value = getelementptr inbounds %"struct.flatbuffers::FieldDef", ptr %field, i64 0, i32 1 %call = tail call fastcc noundef i32 @_ZN11flatbuffers12_GLOBAL__N_111GetFullTypeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %value), !range !72 - switch i32 %call, label %sw.epilog [ + switch i32 %call, label %default.unreachable40 [ i32 0, label %sw.bb i32 2, label %sw.bb i32 1, label %sw.bb @@ -55430,8 +55277,8 @@ sw.bb20: ; preds = %entry invoke void @_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceEPKNS_9NamespaceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %typname21, ptr noundef nonnull align 8 dereferenceable(1008) %this, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) to label %_ZNK11flatbuffers4rust13RustGenerator15WrapInNameSpaceB5cxx11ERKNS_10DefinitionE.exit unwind label %lpad.i -common.resume: ; preds = %ehcleanup, %ehcleanup19, %ehcleanup28, %ehcleanup38, %lpad41.body, %lpad46.body, %lpad50.body, %lpad.i26, %lpad.i - %common.resume.op = phi { ptr, i32 } [ %8, %lpad.i ], [ %13, %lpad.i26 ], [ %eh.lpad-body46, %lpad50.body ], [ %eh.lpad-body38, %lpad46.body ], [ %eh.lpad-body, %lpad41.body ], [ %.pn, %ehcleanup38 ], [ %.pn8, %ehcleanup28 ], [ %.pn10, %ehcleanup19 ], [ %.pn12, %ehcleanup ] +common.resume: ; preds = %ehcleanup, %ehcleanup19, %ehcleanup28, %ehcleanup38, %lpad41.body, %lpad46.body, %lpad.i26, %lpad.i + %common.resume.op = phi { ptr, i32 } [ %8, %lpad.i ], [ %13, %lpad.i26 ], [ %eh.lpad-body38, %lpad46.body ], [ %eh.lpad-body, %lpad41.body ], [ %.pn, %ehcleanup38 ], [ %.pn8, %ehcleanup28 ], [ %.pn10, %ehcleanup19 ], [ %.pn12, %ehcleanup ] resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %sw.bb20 @@ -55587,40 +55434,10 @@ lpad46.body: ; preds = %lpad.i34, %lpad46 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp45) #20 br label %common.resume -sw.epilog: ; preds = %entry - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp49) #20 - %call.i44 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) - to label %call.i.noexc43 unwind label %lpad50 - -call.i.noexc43: ; preds = %sw.epilog - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %agg.result, ptr noundef %call.i44, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp49) - to label %.noexc45 unwind label %lpad50 - -.noexc45: ; preds = %call.i.noexc43 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, ptr noundef nonnull @.str.294, ptr noundef nonnull getelementptr inbounds ([24 x i8], ptr @.str.294, i64 0, i64 23)) - to label %invoke.cont51 unwind label %lpad.i42 - -lpad.i42: ; preds = %.noexc45 - %20 = landingpad { ptr, i32 } - cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %agg.result) #20 - br label %lpad50.body - -invoke.cont51: ; preds = %.noexc45 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp49) #20 - br label %return - -lpad50: ; preds = %call.i.noexc43, %sw.epilog - %21 = landingpad { ptr, i32 } - cleanup - br label %lpad50.body - -lpad50.body: ; preds = %lpad.i42, %lpad50 - %eh.lpad-body46 = phi { ptr, i32 } [ %21, %lpad50 ], [ %20, %lpad.i42 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp49) #20 - br label %common.resume +default.unreachable40: ; preds = %entry + unreachable -return: ; preds = %invoke.cont51, %invoke.cont47, %invoke.cont42, %invoke.cont36, %invoke.cont26, %invoke.cont17, %invoke.cont9 +return: ; preds = %invoke.cont47, %invoke.cont42, %invoke.cont36, %invoke.cont26, %invoke.cont17, %invoke.cont9 ret void } diff --git a/bench/flatbuffers/optimized/idl_gen_text.cpp.ll b/bench/flatbuffers/optimized/idl_gen_text.cpp.ll index e4ff81c7350..4fc72b08ad5 100644 --- a/bench/flatbuffers/optimized/idl_gen_text.cpp.ll +++ b/bench/flatbuffers/optimized/idl_gen_text.cpp.ll @@ -6315,8 +6315,8 @@ entry: %ref.tmp50 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp55 = alloca %"class.std::__cxx11::basic_string", align 8 %call = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %_text, ptr noundef nonnull @.str.10) - %cmp52 = icmp eq i64 %length, 0 - br i1 %cmp52, label %for.end, label %for.body.lr.ph + %cmp53 = icmp eq i64 %length, 0 + br i1 %cmp53, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %entry %sub.ptr.rhs.cast = ptrtoint ptr %s to i64 @@ -6325,9 +6325,9 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %conv54 = phi i64 [ 0, %for.body.lr.ph ], [ %conv, %for.inc ] - %i.053 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] - %arrayidx = getelementptr inbounds i8, ptr %s, i64 %conv54 + %conv55 = phi i64 [ 0, %for.body.lr.ph ], [ %conv, %for.inc ] + %i.054 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] + %arrayidx = getelementptr inbounds i8, ptr %s, i64 %conv55 %1 = load i8, ptr %arrayidx, align 1 switch i8 %1, label %sw.default [ i8 10, label %sw.bb @@ -6423,9 +6423,9 @@ for.body22.lr.ph.i: ; preds = %if.end9.i %sub17.i = xor i32 %notmask.i, -1 %and18.i = and i32 %sub17.i, %conv15.i %5 = add nsw i32 %len.031.i, -2 - %scevgep65 = getelementptr i8, ptr %scevgep, i64 %conv54 + %scevgep67 = getelementptr i8, ptr %scevgep, i64 %conv55 %6 = zext i32 %indvars.iv to i64 - %scevgep67 = getelementptr i8, ptr %scevgep65, i64 %6 + %scevgep69 = getelementptr i8, ptr %scevgep67, i64 %6 br label %for.body22.i for.body22.i: ; preds = %if.end27.i, %for.body22.lr.ph.i @@ -6453,7 +6453,7 @@ for.end34.i: ; preds = %if.end27.i br i1 %or.cond1.i, label %if.then23, label %if.end38.i if.end38.i: ; preds = %for.end34.i - switch i32 %len.031.i, label %_ZN11flatbuffers8FromUTF8EPPKc.exit [ + switch i32 %len.031.i, label %default.unreachable.i [ i32 2, label %sw.bb.i i32 3, label %sw.bb44.i i32 4, label %sw.bb50.i @@ -6474,9 +6474,12 @@ sw.bb50.i: ; preds = %if.end38.i %or.cond4.i = icmp ult i32 %14, -1048576 br i1 %or.cond4.i, label %if.then23, label %_ZN11flatbuffers8FromUTF8EPPKc.exit -_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %if.end38.i, %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i - %utf8.1 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep67, %sw.bb50.i ], [ %scevgep67, %sw.bb44.i ], [ %scevgep67, %sw.bb.i ], [ %scevgep67, %if.end38.i ] - %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ], [ %or.i, %if.end38.i ] +default.unreachable.i: ; preds = %if.end38.i + unreachable + +_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i + %utf8.1 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep69, %sw.bb50.i ], [ %scevgep69, %sw.bb44.i ], [ %scevgep69, %sw.bb.i ] + %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ] %cmp22 = icmp slt i32 %retval.0.i, 0 br i1 %cmp22, label %if.then23, label %if.else29 @@ -6503,7 +6506,7 @@ if.else29: ; preds = %_ZN11flatbuffers8Fr if.then31: ; preds = %if.else29 %sub.ptr.lhs.cast = ptrtoint ptr %utf8.1 to i64 - %16 = add i64 %conv54, %sub.ptr.rhs.cast + %16 = add i64 %conv55, %sub.ptr.rhs.cast %sub = sub i64 %sub.ptr.lhs.cast, %16 %call35 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %_text, ptr noundef nonnull %arrayidx, i64 noundef %sub) br label %if.end61 @@ -6570,7 +6573,7 @@ if.end61: ; preds = %invoke.cont42, %inv br label %for.inc for.inc: ; preds = %sw.bb, %sw.bb4, %sw.bb6, %sw.bb8, %sw.bb10, %sw.bb12, %sw.bb14, %invoke.cont, %if.end61, %if.then - %i.1 = phi i32 [ %i.053, %if.then ], [ %i.053, %invoke.cont ], [ %conv66, %if.end61 ], [ %i.053, %sw.bb14 ], [ %i.053, %sw.bb12 ], [ %i.053, %sw.bb10 ], [ %i.053, %sw.bb8 ], [ %i.053, %sw.bb6 ], [ %i.053, %sw.bb4 ], [ %i.053, %sw.bb ] + %i.1 = phi i32 [ %i.054, %if.then ], [ %i.054, %invoke.cont ], [ %conv66, %if.end61 ], [ %i.054, %sw.bb14 ], [ %i.054, %sw.bb12 ], [ %i.054, %sw.bb10 ], [ %i.054, %sw.bb8 ], [ %i.054, %sw.bb6 ], [ %i.054, %sw.bb4 ], [ %i.054, %sw.bb ] %inc = add i32 %i.1, 1 %conv = zext i32 %inc to i64 %cmp.not = icmp ult i64 %conv, %length @@ -6581,8 +6584,8 @@ for.end: ; preds = %for.inc, %entry br label %return return: ; preds = %if.then23, %for.end - %cmp51 = phi i1 [ true, %for.end ], [ false, %if.then23 ] - ret i1 %cmp51 + %cmp52 = phi i1 [ true, %for.end ], [ false, %if.then23 ] + ret i1 %cmp52 eh.resume: ; preds = %lpad56, %lpad51, %lpad41, %lpad %ref.tmp55.sink = phi ptr [ %ref.tmp55, %lpad56 ], [ %ref.tmp50, %lpad51 ], [ %ref.tmp40, %lpad41 ], [ %ref.tmp, %lpad ] diff --git a/bench/flatbuffers/optimized/idl_parser.cpp.ll b/bench/flatbuffers/optimized/idl_parser.cpp.ll index 259472f7dc0..5831b12b353 100644 --- a/bench/flatbuffers/optimized/idl_parser.cpp.ll +++ b/bench/flatbuffers/optimized/idl_parser.cpp.ll @@ -4042,7 +4042,7 @@ for.body22.lr.ph.i: ; preds = %if.end9.i %3 = add nsw i32 %len.031.i, -2 %scevgep = getelementptr i8, ptr %s.0, i64 2 %4 = zext i32 %indvars.iv to i64 - %scevgep21 = getelementptr i8, ptr %scevgep, i64 %4 + %scevgep23 = getelementptr i8, ptr %scevgep, i64 %4 br label %for.body22.i for.body22.i: ; preds = %if.end27.i, %for.body22.lr.ph.i @@ -4070,7 +4070,7 @@ for.end34.i: ; preds = %if.end27.i br i1 %or.cond1.i, label %return, label %if.end38.i if.end38.i: ; preds = %for.end34.i - switch i32 %len.031.i, label %_ZN11flatbuffers8FromUTF8EPPKc.exit [ + switch i32 %len.031.i, label %default.unreachable.i [ i32 2, label %sw.bb.i i32 3, label %sw.bb44.i i32 4, label %sw.bb50.i @@ -4091,15 +4091,18 @@ sw.bb50.i: ; preds = %if.end38.i %or.cond4.i = icmp ult i32 %12, -1048576 br i1 %or.cond4.i, label %return, label %_ZN11flatbuffers8FromUTF8EPPKc.exit -_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %if.end38.i, %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i - %s.2 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep21, %sw.bb50.i ], [ %scevgep21, %sw.bb44.i ], [ %scevgep21, %sw.bb.i ], [ %scevgep21, %if.end38.i ] - %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ], [ %or.i, %if.end38.i ] +default.unreachable.i: ; preds = %if.end38.i + unreachable + +_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i + %s.2 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep23, %sw.bb50.i ], [ %scevgep23, %sw.bb44.i ], [ %scevgep23, %sw.bb.i ] + %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ] %cmp3 = icmp slt i32 %retval.0.i, 0 br i1 %cmp3, label %return, label %while.cond, !llvm.loop !88 return: ; preds = %sw.bb50.i, %sw.bb44.i, %sw.bb.i, %for.end34.i, %if.end9.i, %for.end.i, %while.cond, %_ZN11flatbuffers8FromUTF8EPPKc.exit, %if.then.i, %for.body22.i - %cmp19 = phi i1 [ false, %for.body22.i ], [ false, %if.then.i ], [ %cmp.not, %sw.bb50.i ], [ %cmp.not, %sw.bb44.i ], [ %cmp.not, %sw.bb.i ], [ %cmp.not, %for.end34.i ], [ %cmp.not, %if.end9.i ], [ %cmp.not, %for.end.i ], [ true, %while.cond ], [ %cmp.not, %_ZN11flatbuffers8FromUTF8EPPKc.exit ] - ret i1 %cmp19 + %cmp21 = phi i1 [ false, %for.body22.i ], [ false, %if.then.i ], [ %cmp.not, %sw.bb50.i ], [ %cmp.not, %sw.bb44.i ], [ %cmp.not, %sw.bb.i ], [ %cmp.not, %for.end34.i ], [ %cmp.not, %if.end9.i ], [ %cmp.not, %for.end.i ], [ true, %while.cond ], [ %cmp.not, %_ZN11flatbuffers8FromUTF8EPPKc.exit ] + ret i1 %cmp21 } ; Function Attrs: mustprogress uwtable diff --git a/bench/flatbuffers/optimized/java_generator.cc.ll b/bench/flatbuffers/optimized/java_generator.cc.ll index 99196a446ec..cb6d26b46fa 100644 --- a/bench/flatbuffers/optimized/java_generator.cc.ll +++ b/bench/flatbuffers/optimized/java_generator.cc.ll @@ -255,7 +255,6 @@ $_ZSt19piecewise_construct = comdat any @.str.124 = private unnamed_addr constant [137 x i8] c"generated/home/dtcxzyw/WorkSpace/Projects/compilers/llvm-opt-benchmark/bench/flatbuffers/flatbuffers/grpc/src/compiler/java_generator.cc\00", align 1 @.str.125 = private unnamed_addr constant [2 x i8] c":\00", align 1 @.str.126 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@.str.127 = private unnamed_addr constant [43 x i8] c"Cannot determine class name for StubType: \00", align 1 @.str.128 = private unnamed_addr constant [10 x i8] c"stub_name\00", align 1 @.str.129 = private unnamed_addr constant [12 x i8] c"client_name\00", align 1 @.str.130 = private unnamed_addr constant [77 x i8] c"public static abstract class $abstract_name$ implements $BindableService$ {\0A\00", align 1 @@ -6974,16 +6973,16 @@ lpad: ; preds = %invoke.cont, %_ZN19 ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_19PrintStubEPN14grpc_generator7PrinterERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_St4lessISA_ESaISt4pairIKSA_SA_EEEPKNS1_7ServiceENS0_8StubTypeE(ptr noundef %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef %service, i32 noundef %type) unnamed_addr #3 personality ptr @__gxx_personality_v0 { entry: - %__guard.i515 = alloca %struct._Guard, align 8 - %__guard.i504 = alloca %struct._Guard, align 8 - %__guard.i493 = alloca %struct._Guard, align 8 - %__guard.i482 = alloca %struct._Guard, align 8 - %__guard.i471 = alloca %struct._Guard, align 8 - %__guard.i460 = alloca %struct._Guard, align 8 - %__guard.i449 = alloca %struct._Guard, align 8 + %__guard.i511 = alloca %struct._Guard, align 8 + %__guard.i500 = alloca %struct._Guard, align 8 + %__guard.i489 = alloca %struct._Guard, align 8 + %__guard.i478 = alloca %struct._Guard, align 8 + %__guard.i467 = alloca %struct._Guard, align 8 + %__guard.i456 = alloca %struct._Guard, align 8 + %__guard.i445 = alloca %struct._Guard, align 8 %__guard.i = alloca %struct._Guard, align 8 %ref.tmp.i.i = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp.i421 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i417 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp1.i = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp2.i = alloca %"class.std::allocator", align 1 %method.i = alloca %"class.std::unique_ptr.12", align 8 @@ -7012,7 +7011,7 @@ entry: %ref.tmp154.i = alloca %"class.std::allocator", align 1 %ref.tmp165.i = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp166.i = alloca %"class.std::allocator", align 1 - %lines.i253 = alloca %"class.std::vector", align 8 + %lines.i251 = alloca %"class.std::vector", align 8 %ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8 %lines.i = alloca %"class.std::vector", align 8 %service_name = alloca %"class.std::__cxx11::basic_string", align 8 @@ -7023,7 +7022,6 @@ entry: %ref.tmp10 = alloca %"class.std::allocator", align 1 %stub_name = alloca %"class.std::__cxx11::basic_string", align 8 %client_name = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp42 = alloca %class.LogHelper, align 8 %ref.tmp63 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp64 = alloca %"class.std::allocator", align 1 %ref.tmp74 = alloca %"class.std::__cxx11::basic_string", align 8 @@ -7159,7 +7157,7 @@ invoke.cont20: ; preds = %invoke.cont14 to label %invoke.cont22 unwind label %lpad21 invoke.cont22: ; preds = %invoke.cont20 - switch i32 %type, label %sw.default [ + switch i32 %type, label %default.unreachable [ i32 7, label %sw.epilog i32 4, label %sw.bb23 i32 6, label %sw.bb34 @@ -7219,12 +7217,12 @@ lpad24.loopexit: ; preds = %for.body.i, %_ZNSt1 br label %ehcleanup697 lpad24.loopexit.split-lp.loopexit: ; preds = %for.body, %for.cond - %lpad.loopexit525 = landingpad { ptr, i32 } + %lpad.loopexit521 = landingpad { ptr, i32 } cleanup br label %ehcleanup697 -lpad24.loopexit.split-lp.loopexit.split-lp: ; preds = %if.end, %.noexc439, %.noexc438, %.noexc437, %for.end.i, %.noexc433, %.noexc432, %.noexc431, %.noexc430, %invoke.cont4.i, %invoke.cont682, %.noexc212, %invoke.cont81, %invoke.cont693, %if.end690, %invoke.cont686, %invoke.cont671, %if.then668, %invoke.cont142, %invoke.cont139, %invoke.cont136, %invoke.cont133, %invoke.cont130, %invoke.cont127, %invoke.cont124, %invoke.cont121, %invoke.cont118, %invoke.cont115, %invoke.cont112, %invoke.cont109, %invoke.cont106, %invoke.cont103, %if.then100, %if.end94, %invoke.cont35, %sw.bb34, %invoke.cont29, %sw.bb28, %sw.bb23 - %lpad.loopexit.split-lp526 = landingpad { ptr, i32 } +lpad24.loopexit.split-lp.loopexit.split-lp: ; preds = %if.end, %.noexc435, %.noexc434, %.noexc433, %for.end.i, %.noexc429, %.noexc428, %.noexc427, %.noexc426, %invoke.cont4.i, %invoke.cont682, %.noexc210, %invoke.cont81, %invoke.cont693, %if.end690, %invoke.cont686, %invoke.cont671, %if.then668, %invoke.cont142, %invoke.cont139, %invoke.cont136, %invoke.cont133, %invoke.cont130, %invoke.cont127, %invoke.cont124, %invoke.cont121, %invoke.cont118, %invoke.cont115, %invoke.cont112, %invoke.cont109, %invoke.cont106, %invoke.cont103, %if.then100, %if.end94, %invoke.cont35, %sw.bb34, %invoke.cont29, %sw.bb28, %sw.bb23 + %lpad.loopexit.split-lp522 = landingpad { ptr, i32 } cleanup br label %ehcleanup697 @@ -7244,48 +7242,10 @@ invoke.cont35: ; preds = %sw.bb34 %call38 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %client_name, ptr noundef nonnull @.str.122) to label %sw.epilog unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -sw.default: ; preds = %invoke.cont22 - store ptr @_ZSt4cerr, ptr %ref.tmp42, align 8 - %call48 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.123) - to label %invoke.cont47 unwind label %lpad44 - -invoke.cont47: ; preds = %sw.default - %call50 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %call48, ptr noundef nonnull @.str.124) - to label %invoke.cont49 unwind label %lpad44 - -invoke.cont49: ; preds = %invoke.cont47 - %call52 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %call50, ptr noundef nonnull @.str.125) - to label %invoke.cont51 unwind label %lpad44 - -invoke.cont51: ; preds = %invoke.cont49 - %call54 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %call52, i32 noundef 490) - to label %invoke.cont53 unwind label %lpad44 - -invoke.cont53: ; preds = %invoke.cont51 - %call56 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %call54, ptr noundef nonnull @.str.126) - to label %invoke.cont55 unwind label %lpad44 - -invoke.cont55: ; preds = %invoke.cont53 - %call58 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %call56, ptr noundef nonnull @.str.127) - to label %invoke.cont57 unwind label %lpad44 - -invoke.cont57: ; preds = %invoke.cont55 - %call60 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %call58, i32 noundef %type) - to label %invoke.cont59 unwind label %lpad44 - -invoke.cont59: ; preds = %invoke.cont57 - %call.i193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) - to label %invoke.cont.i unwind label %terminate.lpad.i - -invoke.cont.i: ; preds = %invoke.cont59 - call void @abort() #18 +default.unreachable714: ; preds = %if.then395, %invoke.cont267 unreachable -terminate.lpad.i: ; preds = %invoke.cont59 - %10 = landingpad { ptr, i32 } - catch ptr null - %11 = extractvalue { ptr, i32 } %10, 0 - call void @__clang_call_terminate(ptr %11) #18 +default.unreachable: ; preds = %invoke.cont22 unreachable sw.epilog: ; preds = %invoke.cont22, %invoke.cont35, %invoke.cont29, %sw.bb23 @@ -7295,24 +7255,24 @@ sw.epilog: ; preds = %invoke.cont22, %inv %call_type.0 = phi i32 [ 2, %invoke.cont35 ], [ 1, %invoke.cont29 ], [ 0, %sw.bb23 ], [ 0, %invoke.cont22 ] %impl_base.0 = phi i1 [ false, %invoke.cont35 ], [ false, %invoke.cont29 ], [ false, %sw.bb23 ], [ true, %invoke.cont22 ] call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp64) #17 - %call.i194198 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp63) - to label %call.i194.noexc unwind label %lpad65 + %call.i193197 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp63) + to label %call.i193.noexc unwind label %lpad65 -call.i194.noexc: ; preds = %sw.epilog - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp63, ptr noundef %call.i194198, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp64) - to label %.noexc199 unwind label %lpad65 +call.i193.noexc: ; preds = %sw.epilog + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp63, ptr noundef %call.i193197, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp64) + to label %.noexc198 unwind label %lpad65 -.noexc199: ; preds = %call.i194.noexc +.noexc198: ; preds = %call.i193.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp63, ptr noundef nonnull @.str.128, ptr noundef nonnull getelementptr inbounds ([10 x i8], ptr @.str.128, i64 0, i64 9)) - to label %invoke.cont66 unwind label %lpad.i197 + to label %invoke.cont66 unwind label %lpad.i196 -lpad.i197: ; preds = %.noexc199 - %12 = landingpad { ptr, i32 } +lpad.i196: ; preds = %.noexc198 + %10 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp63) #17 br label %ehcleanup73 -invoke.cont66: ; preds = %.noexc199 +invoke.cont66: ; preds = %.noexc198 %call69 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp63) to label %invoke.cont68 unwind label %lpad67 @@ -7324,24 +7284,24 @@ invoke.cont70: ; preds = %invoke.cont68 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp63) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp64) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp75) #17 - %call.i202206 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74) - to label %call.i202.noexc unwind label %lpad76 + %call.i201205 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74) + to label %call.i201.noexc unwind label %lpad76 -call.i202.noexc: ; preds = %invoke.cont70 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp74, ptr noundef %call.i202206, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp75) - to label %.noexc207 unwind label %lpad76 +call.i201.noexc: ; preds = %invoke.cont70 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp74, ptr noundef %call.i201205, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp75) + to label %.noexc206 unwind label %lpad76 -.noexc207: ; preds = %call.i202.noexc +.noexc206: ; preds = %call.i201.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74, ptr noundef nonnull @.str.129, ptr noundef nonnull getelementptr inbounds ([12 x i8], ptr @.str.129, i64 0, i64 11)) - to label %invoke.cont77 unwind label %lpad.i205 + to label %invoke.cont77 unwind label %lpad.i204 -lpad.i205: ; preds = %.noexc207 - %13 = landingpad { ptr, i32 } +lpad.i204: ; preds = %.noexc206 + %11 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp74) #17 br label %ehcleanup84 -invoke.cont77: ; preds = %.noexc207 +invoke.cont77: ; preds = %.noexc206 %call80 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74) to label %invoke.cont79 unwind label %lpad78 @@ -7355,40 +7315,40 @@ invoke.cont81: ; preds = %invoke.cont79 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %lines.i) %vtable.i = load ptr, ptr %p, align 8 %vfn.i = getelementptr inbounds ptr, ptr %vtable.i, i64 3 - %14 = load ptr, ptr %vfn.i, align 8 - invoke void %14(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.73) - to label %.noexc212 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %12 = load ptr, ptr %vfn.i, align 8 + invoke void %12(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.73) + to label %.noexc210 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc212: ; preds = %invoke.cont81 +.noexc210: ; preds = %invoke.cont81 %vtable.i.i = load ptr, ptr %service, align 8, !noalias !50 %vfn.i.i = getelementptr inbounds ptr, ptr %vtable.i.i, i64 4 - %15 = load ptr, ptr %vfn.i.i, align 8, !noalias !50 - invoke void %15(ptr nonnull sret(%"class.std::vector") align 8 %lines.i, ptr noundef nonnull align 8 dereferenceable(8) %service) - to label %.noexc213 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %13 = load ptr, ptr %vfn.i.i, align 8, !noalias !50 + invoke void %13(ptr nonnull sret(%"class.std::vector") align 8 %lines.i, ptr noundef nonnull align 8 dereferenceable(8) %service) + to label %.noexc211 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc213: ; preds = %.noexc212 +.noexc211: ; preds = %.noexc210 invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_123GrpcWriteDocCommentBodyEPN14grpc_generator7PrinterERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_St4lessISA_ESaISt4pairIKSA_SA_EEERKSt6vectorISA_SaISA_EEb(ptr noundef nonnull %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(24) %lines.i, i1 noundef zeroext true) - to label %invoke.cont.i211 unwind label %lpad.i210 + to label %invoke.cont.i unwind label %lpad.i209 -invoke.cont.i211: ; preds = %.noexc213 +invoke.cont.i: ; preds = %.noexc211 %vtable1.i = load ptr, ptr %p, align 8 %vfn2.i = getelementptr inbounds ptr, ptr %vtable1.i, i64 3 - %16 = load ptr, ptr %vfn2.i, align 8 - invoke void %16(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.74) - to label %invoke.cont3.i unwind label %lpad.i210 + %14 = load ptr, ptr %vfn2.i, align 8 + invoke void %14(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.74) + to label %invoke.cont3.i unwind label %lpad.i209 -invoke.cont3.i: ; preds = %invoke.cont.i211 - %17 = load ptr, ptr %lines.i, align 8 +invoke.cont3.i: ; preds = %invoke.cont.i + %15 = load ptr, ptr %lines.i, align 8 %_M_finish.i.i = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %lines.i, i64 0, i32 1 - %18 = load ptr, ptr %_M_finish.i.i, align 8 - %cmp.not3.i.i.i.i.i = icmp eq ptr %17, %18 + %16 = load ptr, ptr %_M_finish.i.i, align 8 + %cmp.not3.i.i.i.i.i = icmp eq ptr %15, %16 br i1 %cmp.not3.i.i.i.i.i, label %invoke.cont.i.i, label %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %invoke.cont3.i, %for.body.i.i.i.i.i - %__first.addr.04.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i, %for.body.i.i.i.i.i ], [ %17, %invoke.cont3.i ] + %__first.addr.04.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i, %for.body.i.i.i.i.i ], [ %15, %invoke.cont3.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %__first.addr.04.i.i.i.i.i) #17 %incdec.ptr.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %__first.addr.04.i.i.i.i.i, i64 1 - %cmp.not.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i, %18 + %cmp.not.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i, %16 br i1 %cmp.not.i.i.i.i.i, label %invoke.contthread-pre-split.i.i, label %for.body.i.i.i.i.i, !llvm.loop !13 invoke.contthread-pre-split.i.i: ; preds = %for.body.i.i.i.i.i @@ -7396,55 +7356,49 @@ invoke.contthread-pre-split.i.i: ; preds = %for.body.i.i.i.i.i br label %invoke.cont.i.i invoke.cont.i.i: ; preds = %invoke.contthread-pre-split.i.i, %invoke.cont3.i - %19 = phi ptr [ %.pr.i.i, %invoke.contthread-pre-split.i.i ], [ %17, %invoke.cont3.i ] - %tobool.not.i.i.i.i = icmp eq ptr %19, null + %17 = phi ptr [ %.pr.i.i, %invoke.contthread-pre-split.i.i ], [ %15, %invoke.cont3.i ] + %tobool.not.i.i.i.i = icmp eq ptr %17, null br i1 %tobool.not.i.i.i.i, label %if.end, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %invoke.cont.i.i - call void @_ZdlPv(ptr noundef nonnull %19) #19 + call void @_ZdlPv(ptr noundef nonnull %17) #19 br label %if.end -lpad.i210: ; preds = %invoke.cont.i211, %.noexc213 - %20 = landingpad { ptr, i32 } +lpad.i209: ; preds = %invoke.cont.i, %.noexc211 + %18 = landingpad { ptr, i32 } cleanup call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %lines.i) #17 br label %ehcleanup697 -lpad44: ; preds = %invoke.cont57, %invoke.cont55, %invoke.cont53, %invoke.cont51, %invoke.cont49, %invoke.cont47, %sw.default - %21 = landingpad { ptr, i32 } - cleanup - call void @_ZN9LogHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp42) #17 - br label %ehcleanup697 - -lpad65: ; preds = %call.i194.noexc, %sw.epilog - %22 = landingpad { ptr, i32 } +lpad65: ; preds = %call.i193.noexc, %sw.epilog + %19 = landingpad { ptr, i32 } cleanup br label %ehcleanup73 lpad67: ; preds = %invoke.cont68, %invoke.cont66 - %23 = landingpad { ptr, i32 } + %20 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp63) #17 br label %ehcleanup73 -ehcleanup73: ; preds = %lpad65, %lpad.i197, %lpad67 - %.pn128 = phi { ptr, i32 } [ %23, %lpad67 ], [ %22, %lpad65 ], [ %12, %lpad.i197 ] +ehcleanup73: ; preds = %lpad65, %lpad.i196, %lpad67 + %.pn128 = phi { ptr, i32 } [ %20, %lpad67 ], [ %19, %lpad65 ], [ %10, %lpad.i196 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp64) #17 br label %ehcleanup697 -lpad76: ; preds = %call.i202.noexc, %invoke.cont70 - %24 = landingpad { ptr, i32 } +lpad76: ; preds = %call.i201.noexc, %invoke.cont70 + %21 = landingpad { ptr, i32 } cleanup br label %ehcleanup84 lpad78: ; preds = %invoke.cont79, %invoke.cont77 - %25 = landingpad { ptr, i32 } + %22 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp74) #17 br label %ehcleanup84 -ehcleanup84: ; preds = %lpad76, %lpad.i205, %lpad78 - %.pn130 = phi { ptr, i32 } [ %25, %lpad78 ], [ %24, %lpad76 ], [ %13, %lpad.i205 ] +ehcleanup84: ; preds = %lpad76, %lpad.i204, %lpad78 + %.pn130 = phi { ptr, i32 } [ %22, %lpad78 ], [ %21, %lpad76 ], [ %11, %lpad.i204 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp75) #17 br label %ehcleanup697 @@ -7452,16 +7406,16 @@ if.end: ; preds = %if.then.i.i.i.i, %i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %lines.i) %vtable88 = load ptr, ptr %p, align 8 %vfn89 = getelementptr inbounds ptr, ptr %vtable88, i64 2 - %26 = load ptr, ptr %vfn89, align 8 + %23 = load ptr, ptr %vfn89, align 8 %.str.130..str.131 = select i1 %impl_base.0, ptr @.str.130, ptr @.str.131 - invoke void %26(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull %.str.130..str.131) + invoke void %23(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull %.str.130..str.131) to label %if.end94 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp if.end94: ; preds = %if.end %vtable95 = load ptr, ptr %p, align 8 %vfn96 = getelementptr inbounds ptr, ptr %vtable95, i64 5 - %27 = load ptr, ptr %vfn96, align 8 - invoke void %27(ptr noundef nonnull align 8 dereferenceable(8) %p) + %24 = load ptr, ptr %vfn96, align 8 + invoke void %24(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont97 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont97: ; preds = %if.end94 @@ -7470,118 +7424,118 @@ invoke.cont97: ; preds = %if.end94 if.then100: ; preds = %invoke.cont97 %vtable101 = load ptr, ptr %p, align 8 %vfn102 = getelementptr inbounds ptr, ptr %vtable101, i64 2 - %28 = load ptr, ptr %vfn102, align 8 - invoke void %28(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.132) + %25 = load ptr, ptr %vfn102, align 8 + invoke void %25(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.132) to label %invoke.cont103 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont103: ; preds = %if.then100 %vtable104 = load ptr, ptr %p, align 8 %vfn105 = getelementptr inbounds ptr, ptr %vtable104, i64 5 - %29 = load ptr, ptr %vfn105, align 8 - invoke void %29(ptr noundef nonnull align 8 dereferenceable(8) %p) + %26 = load ptr, ptr %vfn105, align 8 + invoke void %26(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont106 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont106: ; preds = %invoke.cont103 %vtable107 = load ptr, ptr %p, align 8 %vfn108 = getelementptr inbounds ptr, ptr %vtable107, i64 3 - %30 = load ptr, ptr %vfn108, align 8 - invoke void %30(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.133) + %27 = load ptr, ptr %vfn108, align 8 + invoke void %27(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.133) to label %invoke.cont109 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont109: ; preds = %invoke.cont106 %vtable110 = load ptr, ptr %p, align 8 %vfn111 = getelementptr inbounds ptr, ptr %vtable110, i64 6 - %31 = load ptr, ptr %vfn111, align 8 - invoke void %31(ptr noundef nonnull align 8 dereferenceable(8) %p) + %28 = load ptr, ptr %vfn111, align 8 + invoke void %28(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont112 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont112: ; preds = %invoke.cont109 %vtable113 = load ptr, ptr %p, align 8 %vfn114 = getelementptr inbounds ptr, ptr %vtable113, i64 3 - %32 = load ptr, ptr %vfn114, align 8 - invoke void %32(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.64) + %29 = load ptr, ptr %vfn114, align 8 + invoke void %29(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.64) to label %invoke.cont115 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont115: ; preds = %invoke.cont112 %vtable116 = load ptr, ptr %p, align 8 %vfn117 = getelementptr inbounds ptr, ptr %vtable116, i64 2 - %33 = load ptr, ptr %vfn117, align 8 - invoke void %33(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.134) + %30 = load ptr, ptr %vfn117, align 8 + invoke void %30(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.134) to label %invoke.cont118 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont118: ; preds = %invoke.cont115 %vtable119 = load ptr, ptr %p, align 8 %vfn120 = getelementptr inbounds ptr, ptr %vtable119, i64 5 - %34 = load ptr, ptr %vfn120, align 8 - invoke void %34(ptr noundef nonnull align 8 dereferenceable(8) %p) + %31 = load ptr, ptr %vfn120, align 8 + invoke void %31(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont121 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont121: ; preds = %invoke.cont118 %vtable122 = load ptr, ptr %p, align 8 %vfn123 = getelementptr inbounds ptr, ptr %vtable122, i64 3 - %35 = load ptr, ptr %vfn123, align 8 - invoke void %35(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.135) + %32 = load ptr, ptr %vfn123, align 8 + invoke void %32(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.135) to label %invoke.cont124 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont124: ; preds = %invoke.cont121 %vtable125 = load ptr, ptr %p, align 8 %vfn126 = getelementptr inbounds ptr, ptr %vtable125, i64 6 - %36 = load ptr, ptr %vfn126, align 8 - invoke void %36(ptr noundef nonnull align 8 dereferenceable(8) %p) + %33 = load ptr, ptr %vfn126, align 8 + invoke void %33(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont127 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont127: ; preds = %invoke.cont124 %vtable128 = load ptr, ptr %p, align 8 %vfn129 = getelementptr inbounds ptr, ptr %vtable128, i64 3 - %37 = load ptr, ptr %vfn129, align 8 - invoke void %37(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.64) + %34 = load ptr, ptr %vfn129, align 8 + invoke void %34(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.64) to label %invoke.cont130 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont130: ; preds = %invoke.cont127 %vtable131 = load ptr, ptr %p, align 8 %vfn132 = getelementptr inbounds ptr, ptr %vtable131, i64 2 - %38 = load ptr, ptr %vfn132, align 8 - invoke void %38(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.136) + %35 = load ptr, ptr %vfn132, align 8 + invoke void %35(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.136) to label %invoke.cont133 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont133: ; preds = %invoke.cont130 %vtable134 = load ptr, ptr %p, align 8 %vfn135 = getelementptr inbounds ptr, ptr %vtable134, i64 5 - %39 = load ptr, ptr %vfn135, align 8 - invoke void %39(ptr noundef nonnull align 8 dereferenceable(8) %p) + %36 = load ptr, ptr %vfn135, align 8 + invoke void %36(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont136 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont136: ; preds = %invoke.cont133 %vtable137 = load ptr, ptr %p, align 8 %vfn138 = getelementptr inbounds ptr, ptr %vtable137, i64 2 - %40 = load ptr, ptr %vfn138, align 8 - invoke void %40(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.137) + %37 = load ptr, ptr %vfn138, align 8 + invoke void %37(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.137) to label %invoke.cont139 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont139: ; preds = %invoke.cont136 %vtable140 = load ptr, ptr %p, align 8 %vfn141 = getelementptr inbounds ptr, ptr %vtable140, i64 6 - %41 = load ptr, ptr %vfn141, align 8 - invoke void %41(ptr noundef nonnull align 8 dereferenceable(8) %p) + %38 = load ptr, ptr %vfn141, align 8 + invoke void %38(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont142 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont142: ; preds = %invoke.cont139 %vtable143 = load ptr, ptr %p, align 8 %vfn144 = getelementptr inbounds ptr, ptr %vtable143, i64 3 - %42 = load ptr, ptr %vfn144, align 8 - invoke void %42(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.71) + %39 = load ptr, ptr %vfn144, align 8 + invoke void %39(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.71) to label %if.end146 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp if.end146: ; preds = %invoke.cont142, %invoke.cont97 - %_M_finish.i.i263 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %lines.i253, i64 0, i32 1 + %_M_finish.i.i261 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %lines.i251, i64 0, i32 1 br label %for.cond for.cond: ; preds = %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit, %if.end146 %i.0 = phi i32 [ 0, %if.end146 ], [ %inc, %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit ] %vtable147 = load ptr, ptr %service, align 8 %vfn148 = getelementptr inbounds ptr, ptr %vtable147, i64 8 - %43 = load ptr, ptr %vfn148, align 8 - %call150 = invoke noundef i32 %43(ptr noundef nonnull align 8 dereferenceable(8) %service) + %40 = load ptr, ptr %vfn148, align 8 + %call150 = invoke noundef i32 %40(ptr noundef nonnull align 8 dereferenceable(8) %service) to label %invoke.cont149 unwind label %lpad24.loopexit.split-lp.loopexit invoke.cont149: ; preds = %for.cond @@ -7591,16 +7545,16 @@ invoke.cont149: ; preds = %for.cond for.body: ; preds = %invoke.cont149 %vtable151 = load ptr, ptr %service, align 8 %vfn152 = getelementptr inbounds ptr, ptr %vtable151, i64 9 - %44 = load ptr, ptr %vfn152, align 8 - invoke void %44(ptr nonnull sret(%"class.std::unique_ptr.12") align 8 %method, ptr noundef nonnull align 8 dereferenceable(8) %service, i32 noundef %i.0) + %41 = load ptr, ptr %vfn152, align 8 + invoke void %41(ptr nonnull sret(%"class.std::unique_ptr.12") align 8 %method, ptr noundef nonnull align 8 dereferenceable(8) %service, i32 noundef %i.0) to label %invoke.cont153 unwind label %lpad24.loopexit.split-lp.loopexit invoke.cont153: ; preds = %for.body - %45 = load ptr, ptr %method, align 8 - %vtable157 = load ptr, ptr %45, align 8 + %42 = load ptr, ptr %method, align 8 + %vtable157 = load ptr, ptr %42, align 8 %vfn158 = getelementptr inbounds ptr, ptr %vtable157, i64 11 - %46 = load ptr, ptr %vfn158, align 8 - invoke void %46(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp155, ptr noundef nonnull align 8 dereferenceable(8) %45) + %43 = load ptr, ptr %vfn158, align 8 + invoke void %43(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp155, ptr noundef nonnull align 8 dereferenceable(8) %42) to label %invoke.cont160 unwind label %lpad159 invoke.cont160: ; preds = %invoke.cont153 @@ -7609,24 +7563,24 @@ invoke.cont160: ; preds = %invoke.cont153 invoke.cont162: ; preds = %invoke.cont160 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp164) #17 - %call.i215219 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp163) - to label %call.i215.noexc unwind label %lpad165 + %call.i213217 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp163) + to label %call.i213.noexc unwind label %lpad165 -call.i215.noexc: ; preds = %invoke.cont162 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp163, ptr noundef %call.i215219, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp164) - to label %.noexc220 unwind label %lpad165 +call.i213.noexc: ; preds = %invoke.cont162 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp163, ptr noundef %call.i213217, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp164) + to label %.noexc218 unwind label %lpad165 -.noexc220: ; preds = %call.i215.noexc +.noexc218: ; preds = %call.i213.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp163, ptr noundef nonnull @.str.86, ptr noundef nonnull getelementptr inbounds ([11 x i8], ptr @.str.86, i64 0, i64 10)) - to label %invoke.cont166 unwind label %lpad.i218 + to label %invoke.cont166 unwind label %lpad.i216 -lpad.i218: ; preds = %.noexc220 - %47 = landingpad { ptr, i32 } +lpad.i216: ; preds = %.noexc218 + %44 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp163) #17 br label %ehcleanup172 -invoke.cont166: ; preds = %.noexc220 +invoke.cont166: ; preds = %.noexc218 %call169 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp163) to label %invoke.cont168 unwind label %lpad167 @@ -7636,11 +7590,11 @@ invoke.cont168: ; preds = %invoke.cont166 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp164) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp154) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp155) #17 - %48 = load ptr, ptr %method, align 8 - %vtable178 = load ptr, ptr %48, align 8 + %45 = load ptr, ptr %method, align 8 + %vtable178 = load ptr, ptr %45, align 8 %vfn179 = getelementptr inbounds ptr, ptr %vtable178, i64 13 - %49 = load ptr, ptr %vfn179, align 8 - invoke void %49(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp176, ptr noundef nonnull align 8 dereferenceable(8) %48) + %46 = load ptr, ptr %vfn179, align 8 + invoke void %46(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp176, ptr noundef nonnull align 8 dereferenceable(8) %45) to label %invoke.cont180 unwind label %lpad159 invoke.cont180: ; preds = %invoke.cont168 @@ -7649,24 +7603,24 @@ invoke.cont180: ; preds = %invoke.cont168 invoke.cont182: ; preds = %invoke.cont180 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp184) #17 - %call.i223227 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp183) - to label %call.i223.noexc unwind label %lpad185 + %call.i221225 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp183) + to label %call.i221.noexc unwind label %lpad185 -call.i223.noexc: ; preds = %invoke.cont182 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp183, ptr noundef %call.i223227, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp184) - to label %.noexc228 unwind label %lpad185 +call.i221.noexc: ; preds = %invoke.cont182 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp183, ptr noundef %call.i221225, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp184) + to label %.noexc226 unwind label %lpad185 -.noexc228: ; preds = %call.i223.noexc +.noexc226: ; preds = %call.i221.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp183, ptr noundef nonnull @.str.87, ptr noundef nonnull getelementptr inbounds ([12 x i8], ptr @.str.87, i64 0, i64 11)) - to label %invoke.cont186 unwind label %lpad.i226 + to label %invoke.cont186 unwind label %lpad.i224 -lpad.i226: ; preds = %.noexc228 - %50 = landingpad { ptr, i32 } +lpad.i224: ; preds = %.noexc226 + %47 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp183) #17 br label %ehcleanup192 -invoke.cont186: ; preds = %.noexc228 +invoke.cont186: ; preds = %.noexc226 %call189 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp183) to label %invoke.cont188 unwind label %lpad187 @@ -7676,46 +7630,46 @@ invoke.cont188: ; preds = %invoke.cont186 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp184) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp175) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp176) #17 - %51 = load ptr, ptr %method, align 8 + %48 = load ptr, ptr %method, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) - %vtable.i231 = load ptr, ptr %51, align 8, !noalias !53 - %vfn.i232 = getelementptr inbounds ptr, ptr %vtable.i231, i64 5 - %52 = load ptr, ptr %vfn.i232, align 8, !noalias !53 - invoke void %52(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(8) %51) - to label %.noexc235 unwind label %lpad159 + %vtable.i229 = load ptr, ptr %48, align 8, !noalias !53 + %vfn.i230 = getelementptr inbounds ptr, ptr %vtable.i229, i64 5 + %49 = load ptr, ptr %vfn.i230, align 8, !noalias !53 + invoke void %49(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i, ptr noundef nonnull align 8 dereferenceable(8) %48) + to label %.noexc233 unwind label %lpad159 -.noexc235: ; preds = %invoke.cont188 +.noexc233: ; preds = %invoke.cont188 invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_110MixedLowerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias align 8 %ref.tmp195, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) - to label %invoke.cont197 unwind label %lpad.i233 + to label %invoke.cont197 unwind label %lpad.i231 -lpad.i233: ; preds = %.noexc235 - %53 = landingpad { ptr, i32 } +lpad.i231: ; preds = %.noexc233 + %50 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #17 br label %ehcleanup666 -invoke.cont197: ; preds = %.noexc235 +invoke.cont197: ; preds = %.noexc233 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #17 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i) call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp199) #17 - %call.i237241 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp198) - to label %call.i237.noexc unwind label %lpad200 + %call.i235239 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp198) + to label %call.i235.noexc unwind label %lpad200 -call.i237.noexc: ; preds = %invoke.cont197 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp198, ptr noundef %call.i237241, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp199) - to label %.noexc242 unwind label %lpad200 +call.i235.noexc: ; preds = %invoke.cont197 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp198, ptr noundef %call.i235239, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp199) + to label %.noexc240 unwind label %lpad200 -.noexc242: ; preds = %call.i237.noexc +.noexc240: ; preds = %call.i235.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp198, ptr noundef nonnull @.str.138, ptr noundef nonnull getelementptr inbounds ([18 x i8], ptr @.str.138, i64 0, i64 17)) - to label %invoke.cont201 unwind label %lpad.i240 + to label %invoke.cont201 unwind label %lpad.i238 -lpad.i240: ; preds = %.noexc242 - %54 = landingpad { ptr, i32 } +lpad.i238: ; preds = %.noexc240 + %51 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp198) #17 br label %ehcleanup207 -invoke.cont201: ; preds = %.noexc242 +invoke.cont201: ; preds = %.noexc240 %call204 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp198) to label %invoke.cont203 unwind label %lpad202 @@ -7724,30 +7678,30 @@ invoke.cont203: ; preds = %invoke.cont201 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp198) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp199) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp195) #17 - %55 = load ptr, ptr %method, align 8 - invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_126MethodPropertiesGetterNameB5cxx11EPKN14grpc_generator6MethodE(ptr noalias nonnull align 8 %ref.tmp209, ptr noundef nonnull %55) + %52 = load ptr, ptr %method, align 8 + invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_126MethodPropertiesGetterNameB5cxx11EPKN14grpc_generator6MethodE(ptr noalias nonnull align 8 %ref.tmp209, ptr noundef nonnull %52) to label %invoke.cont211 unwind label %lpad159 invoke.cont211: ; preds = %invoke.cont203 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp213) #17 - %call.i245249 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp212) - to label %call.i245.noexc unwind label %lpad214 + %call.i243247 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp212) + to label %call.i243.noexc unwind label %lpad214 -call.i245.noexc: ; preds = %invoke.cont211 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp212, ptr noundef %call.i245249, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp213) - to label %.noexc250 unwind label %lpad214 +call.i243.noexc: ; preds = %invoke.cont211 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp212, ptr noundef %call.i243247, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp213) + to label %.noexc248 unwind label %lpad214 -.noexc250: ; preds = %call.i245.noexc +.noexc248: ; preds = %call.i243.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp212, ptr noundef nonnull @.str.90, ptr noundef nonnull getelementptr inbounds ([19 x i8], ptr @.str.90, i64 0, i64 18)) - to label %invoke.cont215 unwind label %lpad.i248 + to label %invoke.cont215 unwind label %lpad.i246 -lpad.i248: ; preds = %.noexc250 - %56 = landingpad { ptr, i32 } +lpad.i246: ; preds = %.noexc248 + %53 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp212) #17 br label %ehcleanup221 -invoke.cont215: ; preds = %.noexc250 +invoke.cont215: ; preds = %.noexc248 %call218 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp212) to label %invoke.cont217 unwind label %lpad216 @@ -7756,141 +7710,141 @@ invoke.cont217: ; preds = %invoke.cont215 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp212) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp213) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp209) #17 - %57 = load ptr, ptr %method, align 8 - %vtable224 = load ptr, ptr %57, align 8 + %54 = load ptr, ptr %method, align 8 + %vtable224 = load ptr, ptr %54, align 8 %vfn225 = getelementptr inbounds ptr, ptr %vtable224, i64 16 - %58 = load ptr, ptr %vfn225, align 8 - %call227 = invoke noundef zeroext i1 %58(ptr noundef nonnull align 8 dereferenceable(8) %57) + %55 = load ptr, ptr %vfn225, align 8 + %call227 = invoke noundef zeroext i1 %55(ptr noundef nonnull align 8 dereferenceable(8) %54) to label %invoke.cont226 unwind label %lpad159 invoke.cont226: ; preds = %invoke.cont217 br i1 %call227, label %lor.end, label %lor.rhs lor.rhs: ; preds = %invoke.cont226 - %59 = load ptr, ptr %method, align 8 - %vtable229 = load ptr, ptr %59, align 8 + %56 = load ptr, ptr %method, align 8 + %vtable229 = load ptr, ptr %56, align 8 %vfn230 = getelementptr inbounds ptr, ptr %vtable229, i64 18 - %60 = load ptr, ptr %vfn230, align 8 - %call232 = invoke noundef zeroext i1 %60(ptr noundef nonnull align 8 dereferenceable(8) %59) + %57 = load ptr, ptr %vfn230, align 8 + %call232 = invoke noundef zeroext i1 %57(ptr noundef nonnull align 8 dereferenceable(8) %56) to label %lor.end unwind label %lpad159 lor.end: ; preds = %lor.rhs, %invoke.cont226 - %61 = phi i1 [ true, %invoke.cont226 ], [ %call232, %lor.rhs ] - %62 = load ptr, ptr %method, align 8 - %vtable234 = load ptr, ptr %62, align 8 + %58 = phi i1 [ true, %invoke.cont226 ], [ %call232, %lor.rhs ] + %59 = load ptr, ptr %method, align 8 + %vtable234 = load ptr, ptr %59, align 8 %vfn235 = getelementptr inbounds ptr, ptr %vtable234, i64 17 - %63 = load ptr, ptr %vfn235, align 8 - %call237 = invoke noundef zeroext i1 %63(ptr noundef nonnull align 8 dereferenceable(8) %62) + %60 = load ptr, ptr %vfn235, align 8 + %call237 = invoke noundef zeroext i1 %60(ptr noundef nonnull align 8 dereferenceable(8) %59) to label %invoke.cont236 unwind label %lpad159 invoke.cont236: ; preds = %lor.end br i1 %call237, label %lor.end244, label %lor.rhs238 lor.rhs238: ; preds = %invoke.cont236 - %64 = load ptr, ptr %method, align 8 - %vtable240 = load ptr, ptr %64, align 8 + %61 = load ptr, ptr %method, align 8 + %vtable240 = load ptr, ptr %61, align 8 %vfn241 = getelementptr inbounds ptr, ptr %vtable240, i64 18 - %65 = load ptr, ptr %vfn241, align 8 - %call243 = invoke noundef zeroext i1 %65(ptr noundef nonnull align 8 dereferenceable(8) %64) + %62 = load ptr, ptr %vfn241, align 8 + %call243 = invoke noundef zeroext i1 %62(ptr noundef nonnull align 8 dereferenceable(8) %61) to label %lor.end244 unwind label %lpad159 lor.end244: ; preds = %lor.rhs238, %invoke.cont236 - %66 = phi i1 [ true, %invoke.cont236 ], [ %call243, %lor.rhs238 ] - %brmerge.not = and i1 %cmp246, %61 - %brmerge177 = or i1 %61, %66 + %63 = phi i1 [ true, %invoke.cont236 ], [ %call243, %lor.rhs238 ] + %brmerge.not = and i1 %cmp246, %58 + %brmerge177 = or i1 %58, %63 %or.cond = and i1 %cmp251, %brmerge177 %or.cond180 = or i1 %brmerge.not, %or.cond br i1 %or.cond180, label %cleanup, label %if.end256 -lpad159: ; preds = %cleanup.done357.invoke, %invoke.cont650.invoke, %.noexc274, %if.then261, %invoke.cont188, %invoke.cont662, %if.end659, %invoke.cont374, %if.end371, %if.end264, %if.end256, %lor.rhs238, %lor.end, %lor.rhs, %invoke.cont217, %invoke.cont203, %invoke.cont168, %invoke.cont153 - %67 = landingpad { ptr, i32 } +lpad159: ; preds = %cleanup.done357.invoke, %invoke.cont650.invoke, %.noexc272, %if.then261, %invoke.cont188, %invoke.cont662, %if.end659, %invoke.cont374, %if.end371, %if.end264, %if.end256, %lor.rhs238, %lor.end, %lor.rhs, %invoke.cont217, %invoke.cont203, %invoke.cont168, %invoke.cont153 + %64 = landingpad { ptr, i32 } cleanup br label %ehcleanup666 lpad161: ; preds = %invoke.cont160 - %68 = landingpad { ptr, i32 } + %65 = landingpad { ptr, i32 } cleanup br label %ehcleanup174 -lpad165: ; preds = %call.i215.noexc, %invoke.cont162 - %69 = landingpad { ptr, i32 } +lpad165: ; preds = %call.i213.noexc, %invoke.cont162 + %66 = landingpad { ptr, i32 } cleanup br label %ehcleanup172 lpad167: ; preds = %invoke.cont166 - %70 = landingpad { ptr, i32 } + %67 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp163) #17 br label %ehcleanup172 -ehcleanup172: ; preds = %lpad165, %lpad.i218, %lpad167 - %.pn134 = phi { ptr, i32 } [ %70, %lpad167 ], [ %69, %lpad165 ], [ %47, %lpad.i218 ] +ehcleanup172: ; preds = %lpad165, %lpad.i216, %lpad167 + %.pn134 = phi { ptr, i32 } [ %67, %lpad167 ], [ %66, %lpad165 ], [ %44, %lpad.i216 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp164) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp154) #17 br label %ehcleanup174 ehcleanup174: ; preds = %ehcleanup172, %lpad161 - %.pn134.pn = phi { ptr, i32 } [ %.pn134, %ehcleanup172 ], [ %68, %lpad161 ] + %.pn134.pn = phi { ptr, i32 } [ %.pn134, %ehcleanup172 ], [ %65, %lpad161 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp155) #17 br label %ehcleanup666 lpad181: ; preds = %invoke.cont180 - %71 = landingpad { ptr, i32 } + %68 = landingpad { ptr, i32 } cleanup br label %ehcleanup194 -lpad185: ; preds = %call.i223.noexc, %invoke.cont182 - %72 = landingpad { ptr, i32 } +lpad185: ; preds = %call.i221.noexc, %invoke.cont182 + %69 = landingpad { ptr, i32 } cleanup br label %ehcleanup192 lpad187: ; preds = %invoke.cont186 - %73 = landingpad { ptr, i32 } + %70 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp183) #17 br label %ehcleanup192 -ehcleanup192: ; preds = %lpad185, %lpad.i226, %lpad187 - %.pn137 = phi { ptr, i32 } [ %73, %lpad187 ], [ %72, %lpad185 ], [ %50, %lpad.i226 ] +ehcleanup192: ; preds = %lpad185, %lpad.i224, %lpad187 + %.pn137 = phi { ptr, i32 } [ %70, %lpad187 ], [ %69, %lpad185 ], [ %47, %lpad.i224 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp184) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp175) #17 br label %ehcleanup194 ehcleanup194: ; preds = %ehcleanup192, %lpad181 - %.pn137.pn = phi { ptr, i32 } [ %.pn137, %ehcleanup192 ], [ %71, %lpad181 ] + %.pn137.pn = phi { ptr, i32 } [ %.pn137, %ehcleanup192 ], [ %68, %lpad181 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp176) #17 br label %ehcleanup666 -lpad200: ; preds = %call.i237.noexc, %invoke.cont197 - %74 = landingpad { ptr, i32 } +lpad200: ; preds = %call.i235.noexc, %invoke.cont197 + %71 = landingpad { ptr, i32 } cleanup br label %ehcleanup207 lpad202: ; preds = %invoke.cont201 - %75 = landingpad { ptr, i32 } + %72 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp198) #17 br label %ehcleanup207 -ehcleanup207: ; preds = %lpad200, %lpad.i240, %lpad202 - %.pn140 = phi { ptr, i32 } [ %75, %lpad202 ], [ %74, %lpad200 ], [ %54, %lpad.i240 ] +ehcleanup207: ; preds = %lpad200, %lpad.i238, %lpad202 + %.pn140 = phi { ptr, i32 } [ %72, %lpad202 ], [ %71, %lpad200 ], [ %51, %lpad.i238 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp199) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp195) #17 br label %ehcleanup666 -lpad214: ; preds = %call.i245.noexc, %invoke.cont211 - %76 = landingpad { ptr, i32 } +lpad214: ; preds = %call.i243.noexc, %invoke.cont211 + %73 = landingpad { ptr, i32 } cleanup br label %ehcleanup221 lpad216: ; preds = %invoke.cont215 - %77 = landingpad { ptr, i32 } + %74 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp212) #17 br label %ehcleanup221 -ehcleanup221: ; preds = %lpad214, %lpad.i248, %lpad216 - %.pn142 = phi { ptr, i32 } [ %77, %lpad216 ], [ %76, %lpad214 ], [ %56, %lpad.i248 ] +ehcleanup221: ; preds = %lpad214, %lpad.i246, %lpad216 + %.pn142 = phi { ptr, i32 } [ %74, %lpad216 ], [ %73, %lpad214 ], [ %53, %lpad.i246 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp213) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp209) #17 br label %ehcleanup666 @@ -7898,86 +7852,86 @@ ehcleanup221: ; preds = %lpad214, %lpad.i248 if.end256: ; preds = %lor.end244 %vtable257 = load ptr, ptr %p, align 8 %vfn258 = getelementptr inbounds ptr, ptr %vtable257, i64 3 - %78 = load ptr, ptr %vfn258, align 8 - invoke void %78(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.103) + %75 = load ptr, ptr %vfn258, align 8 + invoke void %75(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.103) to label %if.then261 unwind label %lpad159 if.then261: ; preds = %if.end256 - %79 = load ptr, ptr %method, align 8 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %lines.i253) - %vtable.i254 = load ptr, ptr %p, align 8 - %vfn.i255 = getelementptr inbounds ptr, ptr %vtable.i254, i64 3 - %80 = load ptr, ptr %vfn.i255, align 8 - invoke void %80(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.73) - to label %.noexc274 unwind label %lpad159 - -.noexc274: ; preds = %if.then261 - %vtable.i.i256 = load ptr, ptr %79, align 8, !noalias !56 - %vfn.i.i257 = getelementptr inbounds ptr, ptr %vtable.i.i256, i64 4 - %81 = load ptr, ptr %vfn.i.i257, align 8, !noalias !56 - invoke void %81(ptr nonnull sret(%"class.std::vector") align 8 %lines.i253, ptr noundef nonnull align 8 dereferenceable(8) %79) - to label %.noexc275 unwind label %lpad159 - -.noexc275: ; preds = %.noexc274 - invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_123GrpcWriteDocCommentBodyEPN14grpc_generator7PrinterERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_St4lessISA_ESaISt4pairIKSA_SA_EEERKSt6vectorISA_SaISA_EEb(ptr noundef nonnull %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(24) %lines.i253, i1 noundef zeroext true) - to label %invoke.cont.i259 unwind label %lpad.i258 - -invoke.cont.i259: ; preds = %.noexc275 - %vtable1.i260 = load ptr, ptr %p, align 8 - %vfn2.i261 = getelementptr inbounds ptr, ptr %vtable1.i260, i64 3 - %82 = load ptr, ptr %vfn2.i261, align 8 - invoke void %82(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.74) - to label %invoke.cont3.i262 unwind label %lpad.i258 - -invoke.cont3.i262: ; preds = %invoke.cont.i259 - %83 = load ptr, ptr %lines.i253, align 8 - %84 = load ptr, ptr %_M_finish.i.i263, align 8 - %cmp.not3.i.i.i.i.i264 = icmp eq ptr %83, %84 - br i1 %cmp.not3.i.i.i.i.i264, label %invoke.cont.i.i271, label %for.body.i.i.i.i.i265 - -for.body.i.i.i.i.i265: ; preds = %invoke.cont3.i262, %for.body.i.i.i.i.i265 - %__first.addr.04.i.i.i.i.i266 = phi ptr [ %incdec.ptr.i.i.i.i.i267, %for.body.i.i.i.i.i265 ], [ %83, %invoke.cont3.i262 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %__first.addr.04.i.i.i.i.i266) #17 - %incdec.ptr.i.i.i.i.i267 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %__first.addr.04.i.i.i.i.i266, i64 1 - %cmp.not.i.i.i.i.i268 = icmp eq ptr %incdec.ptr.i.i.i.i.i267, %84 - br i1 %cmp.not.i.i.i.i.i268, label %invoke.contthread-pre-split.i.i269, label %for.body.i.i.i.i.i265, !llvm.loop !13 - -invoke.contthread-pre-split.i.i269: ; preds = %for.body.i.i.i.i.i265 - %.pr.i.i270 = load ptr, ptr %lines.i253, align 8 - br label %invoke.cont.i.i271 - -invoke.cont.i.i271: ; preds = %invoke.contthread-pre-split.i.i269, %invoke.cont3.i262 - %85 = phi ptr [ %.pr.i.i270, %invoke.contthread-pre-split.i.i269 ], [ %83, %invoke.cont3.i262 ] - %tobool.not.i.i.i.i272 = icmp eq ptr %85, null - br i1 %tobool.not.i.i.i.i272, label %if.end264, label %if.then.i.i.i.i273 - -if.then.i.i.i.i273: ; preds = %invoke.cont.i.i271 - call void @_ZdlPv(ptr noundef nonnull %85) #19 + %76 = load ptr, ptr %method, align 8 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %lines.i251) + %vtable.i252 = load ptr, ptr %p, align 8 + %vfn.i253 = getelementptr inbounds ptr, ptr %vtable.i252, i64 3 + %77 = load ptr, ptr %vfn.i253, align 8 + invoke void %77(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.73) + to label %.noexc272 unwind label %lpad159 + +.noexc272: ; preds = %if.then261 + %vtable.i.i254 = load ptr, ptr %76, align 8, !noalias !56 + %vfn.i.i255 = getelementptr inbounds ptr, ptr %vtable.i.i254, i64 4 + %78 = load ptr, ptr %vfn.i.i255, align 8, !noalias !56 + invoke void %78(ptr nonnull sret(%"class.std::vector") align 8 %lines.i251, ptr noundef nonnull align 8 dereferenceable(8) %76) + to label %.noexc273 unwind label %lpad159 + +.noexc273: ; preds = %.noexc272 + invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_123GrpcWriteDocCommentBodyEPN14grpc_generator7PrinterERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_St4lessISA_ESaISt4pairIKSA_SA_EEERKSt6vectorISA_SaISA_EEb(ptr noundef nonnull %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(24) %lines.i251, i1 noundef zeroext true) + to label %invoke.cont.i257 unwind label %lpad.i256 + +invoke.cont.i257: ; preds = %.noexc273 + %vtable1.i258 = load ptr, ptr %p, align 8 + %vfn2.i259 = getelementptr inbounds ptr, ptr %vtable1.i258, i64 3 + %79 = load ptr, ptr %vfn2.i259, align 8 + invoke void %79(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.74) + to label %invoke.cont3.i260 unwind label %lpad.i256 + +invoke.cont3.i260: ; preds = %invoke.cont.i257 + %80 = load ptr, ptr %lines.i251, align 8 + %81 = load ptr, ptr %_M_finish.i.i261, align 8 + %cmp.not3.i.i.i.i.i262 = icmp eq ptr %80, %81 + br i1 %cmp.not3.i.i.i.i.i262, label %invoke.cont.i.i269, label %for.body.i.i.i.i.i263 + +for.body.i.i.i.i.i263: ; preds = %invoke.cont3.i260, %for.body.i.i.i.i.i263 + %__first.addr.04.i.i.i.i.i264 = phi ptr [ %incdec.ptr.i.i.i.i.i265, %for.body.i.i.i.i.i263 ], [ %80, %invoke.cont3.i260 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %__first.addr.04.i.i.i.i.i264) #17 + %incdec.ptr.i.i.i.i.i265 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %__first.addr.04.i.i.i.i.i264, i64 1 + %cmp.not.i.i.i.i.i266 = icmp eq ptr %incdec.ptr.i.i.i.i.i265, %81 + br i1 %cmp.not.i.i.i.i.i266, label %invoke.contthread-pre-split.i.i267, label %for.body.i.i.i.i.i263, !llvm.loop !13 + +invoke.contthread-pre-split.i.i267: ; preds = %for.body.i.i.i.i.i263 + %.pr.i.i268 = load ptr, ptr %lines.i251, align 8 + br label %invoke.cont.i.i269 + +invoke.cont.i.i269: ; preds = %invoke.contthread-pre-split.i.i267, %invoke.cont3.i260 + %82 = phi ptr [ %.pr.i.i268, %invoke.contthread-pre-split.i.i267 ], [ %80, %invoke.cont3.i260 ] + %tobool.not.i.i.i.i270 = icmp eq ptr %82, null + br i1 %tobool.not.i.i.i.i270, label %if.end264, label %if.then.i.i.i.i271 + +if.then.i.i.i.i271: ; preds = %invoke.cont.i.i269 + call void @_ZdlPv(ptr noundef nonnull %82) #19 br label %if.end264 -lpad.i258: ; preds = %invoke.cont.i259, %.noexc275 - %86 = landingpad { ptr, i32 } +lpad.i256: ; preds = %invoke.cont.i257, %.noexc273 + %83 = landingpad { ptr, i32 } cleanup - call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %lines.i253) #17 + call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %lines.i251) #17 br label %ehcleanup666 -if.end264: ; preds = %if.then.i.i.i.i273, %invoke.cont.i.i271 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %lines.i253) +if.end264: ; preds = %if.then.i.i.i.i271, %invoke.cont.i.i269 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %lines.i251) %vtable265 = load ptr, ptr %p, align 8 %vfn266 = getelementptr inbounds ptr, ptr %vtable265, i64 3 - %87 = load ptr, ptr %vfn266, align 8 - invoke void %87(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.139) + %84 = load ptr, ptr %vfn266, align 8 + invoke void %84(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.139) to label %invoke.cont267 unwind label %lpad159 invoke.cont267: ; preds = %if.end264 - switch i32 %call_type.0, label %invoke.cont267.unreachabledefault [ + switch i32 %call_type.0, label %default.unreachable714 [ i32 1, label %sw.bb268 i32 0, label %sw.bb304 i32 2, label %sw.bb315 ] sw.bb268: ; preds = %invoke.cont267 - br i1 %61, label %cond.false, label %cleanup.done + br i1 %58, label %cond.false, label %cleanup.done cond.false: ; preds = %sw.bb268 store ptr @_ZSt4cerr, ptr %ref.tmp272, align 8 @@ -8005,28 +7959,28 @@ invoke.cont285: ; preds = %invoke.cont283 to label %cleanup.action unwind label %lpad274 cleanup.action: ; preds = %invoke.cont285 - %call.i278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) - to label %invoke.cont.i280 unwind label %terminate.lpad.i279 + %call.i276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) + to label %invoke.cont.i277 unwind label %terminate.lpad.i -invoke.cont.i280: ; preds = %cleanup.action +invoke.cont.i277: ; preds = %cleanup.action call void @abort() #18 unreachable -terminate.lpad.i279: ; preds = %cleanup.action - %88 = landingpad { ptr, i32 } +terminate.lpad.i: ; preds = %cleanup.action + %85 = landingpad { ptr, i32 } catch ptr null - %89 = extractvalue { ptr, i32 } %88, 0 - call void @__clang_call_terminate(ptr %89) #18 + %86 = extractvalue { ptr, i32 } %85, 0 + call void @__clang_call_terminate(ptr %86) #18 unreachable cleanup.done: ; preds = %sw.bb268 %vtable296 = load ptr, ptr %p, align 8 %vfn297 = getelementptr inbounds ptr, ptr %vtable296, i64 2 - %.str.141..str.142 = select i1 %66, ptr @.str.141, ptr @.str.142 + %.str.141..str.142 = select i1 %63, ptr @.str.141, ptr @.str.142 br label %cleanup.done357.invoke lpad274: ; preds = %invoke.cont285, %invoke.cont283, %invoke.cont281, %invoke.cont279, %invoke.cont277, %cond.false - %90 = landingpad { ptr, i32 } + %87 = landingpad { ptr, i32 } cleanup call void @_ZN9LogHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp272) #17 br label %ehcleanup666 @@ -8034,7 +7988,7 @@ lpad274: ; preds = %invoke.cont285, %in sw.bb304: ; preds = %invoke.cont267 %vtable307 = load ptr, ptr %p, align 8 %vfn308 = getelementptr inbounds ptr, ptr %vtable307, i64 2 - %.str.143..str.144 = select i1 %61, ptr @.str.143, ptr @.str.144 + %.str.143..str.144 = select i1 %58, ptr @.str.143, ptr @.str.144 br label %cleanup.done357.invoke sw.bb315: ; preds = %invoke.cont267 @@ -8070,7 +8024,7 @@ invoke.cont339: ; preds = %invoke.cont337 to label %invoke.cont341 unwind label %lpad326 invoke.cont341: ; preds = %invoke.cont339 - %call345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call342, i1 noundef zeroext %61) + %call345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call342, i1 noundef zeroext %58) to label %invoke.cont344 unwind label %lpad326 invoke.cont344: ; preds = %invoke.cont341 @@ -8082,22 +8036,22 @@ invoke.cont346: ; preds = %invoke.cont344 to label %invoke.cont348 unwind label %lpad326 invoke.cont348: ; preds = %invoke.cont346 - %call352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call349, i1 noundef zeroext %66) + %call352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call349, i1 noundef zeroext %63) to label %invoke.cont351 unwind label %lpad326 invoke.cont351: ; preds = %invoke.cont348 - %call.i282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) - to label %invoke.cont.i284 unwind label %terminate.lpad.i283 + %call.i278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) + to label %invoke.cont.i280 unwind label %terminate.lpad.i279 -invoke.cont.i284: ; preds = %invoke.cont351 +invoke.cont.i280: ; preds = %invoke.cont351 call void @abort() #18 unreachable -terminate.lpad.i283: ; preds = %invoke.cont351 - %91 = landingpad { ptr, i32 } +terminate.lpad.i279: ; preds = %invoke.cont351 + %88 = landingpad { ptr, i32 } catch ptr null - %92 = extractvalue { ptr, i32 } %91, 0 - call void @__clang_call_terminate(ptr %92) #18 + %89 = extractvalue { ptr, i32 } %88, 0 + call void @__clang_call_terminate(ptr %89) #18 unreachable cleanup.done357: ; preds = %sw.bb315 @@ -8106,33 +8060,30 @@ cleanup.done357: ; preds = %sw.bb315 br label %cleanup.done357.invoke cleanup.done357.invoke: ; preds = %sw.bb304, %cleanup.done, %cleanup.done357 - %93 = phi ptr [ @.str.149, %cleanup.done357 ], [ %.str.141..str.142, %cleanup.done ], [ %.str.143..str.144, %sw.bb304 ] + %90 = phi ptr [ @.str.149, %cleanup.done357 ], [ %.str.141..str.142, %cleanup.done ], [ %.str.143..str.144, %sw.bb304 ] %.in = phi ptr [ %vfn363, %cleanup.done357 ], [ %vfn297, %cleanup.done ], [ %vfn308, %sw.bb304 ] - %94 = load ptr, ptr %.in, align 8 - invoke void %94(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull %93) + %91 = load ptr, ptr %.in, align 8 + invoke void %91(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull %90) to label %if.end371 unwind label %lpad159 lpad326: ; preds = %invoke.cont348, %invoke.cont346, %invoke.cont344, %invoke.cont341, %invoke.cont339, %invoke.cont337, %invoke.cont335, %invoke.cont333, %invoke.cont331, %invoke.cont329, %cond.false320 - %95 = landingpad { ptr, i32 } + %92 = landingpad { ptr, i32 } cleanup call void @_ZN9LogHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp323) #17 br label %ehcleanup666 -invoke.cont267.unreachabledefault: ; preds = %invoke.cont267 - unreachable - if.end371: ; preds = %cleanup.done357.invoke %vtable372 = load ptr, ptr %p, align 8 %vfn373 = getelementptr inbounds ptr, ptr %vtable372, i64 3 - %96 = load ptr, ptr %vfn373, align 8 - invoke void %96(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.151) + %93 = load ptr, ptr %vfn373, align 8 + invoke void %93(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.151) to label %invoke.cont374 unwind label %lpad159 invoke.cont374: ; preds = %if.end371 %vtable375 = load ptr, ptr %p, align 8 %vfn376 = getelementptr inbounds ptr, ptr %vtable375, i64 5 - %97 = load ptr, ptr %vfn376, align 8 - invoke void %97(ptr noundef nonnull align 8 dereferenceable(8) %p) + %94 = load ptr, ptr %vfn376, align 8 + invoke void %94(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont377 unwind label %lpad159 invoke.cont377: ; preds = %invoke.cont374 @@ -8144,18 +8095,18 @@ if.then379: ; preds = %invoke.cont377 sw.bb380: ; preds = %if.then379 %vtable383 = load ptr, ptr %p, align 8 %vfn384 = getelementptr inbounds ptr, ptr %vtable383, i64 2 - %.str.152..str.153 = select i1 %61, ptr @.str.152, ptr @.str.153 + %.str.152..str.153 = select i1 %58, ptr @.str.152, ptr @.str.153 br label %invoke.cont650.invoke if.then395: ; preds = %invoke.cont377 - switch i32 %call_type.0, label %if.then395.unreachabledefault [ + switch i32 %call_type.0, label %default.unreachable714 [ i32 1, label %sw.bb396 i32 0, label %sw.bb480 i32 2, label %sw.bb596 ] sw.bb396: ; preds = %if.then395 - br i1 %61, label %cond.false399, label %cleanup.done424 + br i1 %58, label %cond.false399, label %cleanup.done424 cond.false399: ; preds = %sw.bb396 store ptr @_ZSt4cerr, ptr %ref.tmp402, align 8 @@ -8183,43 +8134,43 @@ invoke.cont416: ; preds = %invoke.cont414 to label %cleanup.action423 unwind label %lpad405 cleanup.action423: ; preds = %invoke.cont416 - %call.i286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) - to label %invoke.cont.i288 unwind label %terminate.lpad.i287 + %call.i282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) + to label %invoke.cont.i284 unwind label %terminate.lpad.i283 -invoke.cont.i288: ; preds = %cleanup.action423 +invoke.cont.i284: ; preds = %cleanup.action423 call void @abort() #18 unreachable -terminate.lpad.i287: ; preds = %cleanup.action423 - %98 = landingpad { ptr, i32 } +terminate.lpad.i283: ; preds = %cleanup.action423 + %95 = landingpad { ptr, i32 } catch ptr null - %99 = extractvalue { ptr, i32 } %98, 0 - call void @__clang_call_terminate(ptr %99) #18 + %96 = extractvalue { ptr, i32 } %95, 0 + call void @__clang_call_terminate(ptr %96) #18 unreachable cleanup.done424: ; preds = %sw.bb396 - br i1 %66, label %if.then430, label %if.else453 + br i1 %63, label %if.then430, label %if.else453 if.then430: ; preds = %cleanup.done424 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp432) #17 - %call.i290294 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp431) - to label %call.i290.noexc unwind label %lpad433 + %call.i286290 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp431) + to label %call.i286.noexc unwind label %lpad433 -call.i290.noexc: ; preds = %if.then430 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp431, ptr noundef %call.i290294, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp432) - to label %.noexc295 unwind label %lpad433 +call.i286.noexc: ; preds = %if.then430 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp431, ptr noundef %call.i286290, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp432) + to label %.noexc291 unwind label %lpad433 -.noexc295: ; preds = %call.i290.noexc +.noexc291: ; preds = %call.i286.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp431, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) - to label %invoke.cont434 unwind label %lpad.i293 + to label %invoke.cont434 unwind label %lpad.i289 -lpad.i293: ; preds = %.noexc295 - %100 = landingpad { ptr, i32 } +lpad.i289: ; preds = %.noexc291 + %97 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp431) #17 br label %ehcleanup441 -invoke.cont434: ; preds = %.noexc295 +invoke.cont434: ; preds = %.noexc291 %call437 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp431) to label %invoke.cont436 unwind label %lpad435 @@ -8231,24 +8182,24 @@ invoke.cont438: ; preds = %invoke.cont436 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp431) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp432) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp443) #17 - %call.i298302 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp442) - to label %call.i298.noexc unwind label %lpad444 + %call.i294298 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp442) + to label %call.i294.noexc unwind label %lpad444 -call.i298.noexc: ; preds = %invoke.cont438 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp442, ptr noundef %call.i298302, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp443) - to label %.noexc303 unwind label %lpad444 +call.i294.noexc: ; preds = %invoke.cont438 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp442, ptr noundef %call.i294298, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp443) + to label %.noexc299 unwind label %lpad444 -.noexc303: ; preds = %call.i298.noexc +.noexc299: ; preds = %call.i294.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp442, ptr noundef nonnull @.str.158, ptr noundef nonnull getelementptr inbounds ([7 x i8], ptr @.str.158, i64 0, i64 6)) - to label %invoke.cont445 unwind label %lpad.i301 + to label %invoke.cont445 unwind label %lpad.i297 -lpad.i301: ; preds = %.noexc303 - %101 = landingpad { ptr, i32 } +lpad.i297: ; preds = %.noexc299 + %98 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp442) #17 br label %ehcleanup452 -invoke.cont445: ; preds = %.noexc303 +invoke.cont445: ; preds = %.noexc299 %call448 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp442) to label %invoke.cont447 unwind label %lpad446 @@ -8257,63 +8208,63 @@ invoke.cont447: ; preds = %invoke.cont445 to label %if.end476 unwind label %lpad446 lpad405: ; preds = %invoke.cont416, %invoke.cont414, %invoke.cont412, %invoke.cont410, %invoke.cont408, %cond.false399 - %102 = landingpad { ptr, i32 } + %99 = landingpad { ptr, i32 } cleanup call void @_ZN9LogHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp402) #17 br label %ehcleanup666 -lpad433: ; preds = %call.i290.noexc, %if.then430 - %103 = landingpad { ptr, i32 } +lpad433: ; preds = %call.i286.noexc, %if.then430 + %100 = landingpad { ptr, i32 } cleanup br label %ehcleanup441 lpad435: ; preds = %invoke.cont436, %invoke.cont434 - %104 = landingpad { ptr, i32 } + %101 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp431) #17 br label %ehcleanup441 -ehcleanup441: ; preds = %lpad433, %lpad.i293, %lpad435 - %.pn168 = phi { ptr, i32 } [ %104, %lpad435 ], [ %103, %lpad433 ], [ %100, %lpad.i293 ] +ehcleanup441: ; preds = %lpad433, %lpad.i289, %lpad435 + %.pn168 = phi { ptr, i32 } [ %101, %lpad435 ], [ %100, %lpad433 ], [ %97, %lpad.i289 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp432) #17 br label %ehcleanup666 -lpad444: ; preds = %call.i298.noexc, %invoke.cont438 - %105 = landingpad { ptr, i32 } +lpad444: ; preds = %call.i294.noexc, %invoke.cont438 + %102 = landingpad { ptr, i32 } cleanup br label %ehcleanup452 lpad446: ; preds = %invoke.cont447, %invoke.cont445 - %106 = landingpad { ptr, i32 } + %103 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp442) #17 br label %ehcleanup452 -ehcleanup452: ; preds = %lpad444, %lpad.i301, %lpad446 - %.pn170 = phi { ptr, i32 } [ %106, %lpad446 ], [ %105, %lpad444 ], [ %101, %lpad.i301 ] +ehcleanup452: ; preds = %lpad444, %lpad.i297, %lpad446 + %.pn170 = phi { ptr, i32 } [ %103, %lpad446 ], [ %102, %lpad444 ], [ %98, %lpad.i297 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp443) #17 br label %ehcleanup666 if.else453: ; preds = %cleanup.done424 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp455) #17 - %call.i306310 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp454) - to label %call.i306.noexc unwind label %lpad456 + %call.i302306 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp454) + to label %call.i302.noexc unwind label %lpad456 -call.i306.noexc: ; preds = %if.else453 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp454, ptr noundef %call.i306310, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp455) - to label %.noexc311 unwind label %lpad456 +call.i302.noexc: ; preds = %if.else453 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp454, ptr noundef %call.i302306, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp455) + to label %.noexc307 unwind label %lpad456 -.noexc311: ; preds = %call.i306.noexc +.noexc307: ; preds = %call.i302.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp454, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) - to label %invoke.cont457 unwind label %lpad.i309 + to label %invoke.cont457 unwind label %lpad.i305 -lpad.i309: ; preds = %.noexc311 - %107 = landingpad { ptr, i32 } +lpad.i305: ; preds = %.noexc307 + %104 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp454) #17 br label %ehcleanup464 -invoke.cont457: ; preds = %.noexc311 +invoke.cont457: ; preds = %.noexc307 %call460 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp454) to label %invoke.cont459 unwind label %lpad458 @@ -8325,24 +8276,24 @@ invoke.cont461: ; preds = %invoke.cont459 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp454) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp455) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp466) #17 - %call.i314318 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp465) - to label %call.i314.noexc unwind label %lpad467 + %call.i310314 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp465) + to label %call.i310.noexc unwind label %lpad467 -call.i314.noexc: ; preds = %invoke.cont461 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp465, ptr noundef %call.i314318, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp466) - to label %.noexc319 unwind label %lpad467 +call.i310.noexc: ; preds = %invoke.cont461 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp465, ptr noundef %call.i310314, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp466) + to label %.noexc315 unwind label %lpad467 -.noexc319: ; preds = %call.i314.noexc +.noexc315: ; preds = %call.i310.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp465, ptr noundef nonnull @.str.158, ptr noundef nonnull getelementptr inbounds ([7 x i8], ptr @.str.158, i64 0, i64 6)) - to label %invoke.cont468 unwind label %lpad.i317 + to label %invoke.cont468 unwind label %lpad.i313 -lpad.i317: ; preds = %.noexc319 - %108 = landingpad { ptr, i32 } +lpad.i313: ; preds = %.noexc315 + %105 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp465) #17 br label %ehcleanup475 -invoke.cont468: ; preds = %.noexc319 +invoke.cont468: ; preds = %.noexc315 %call471 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp465) to label %invoke.cont470 unwind label %lpad469 @@ -8350,35 +8301,35 @@ invoke.cont470: ; preds = %invoke.cont468 %call473 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %call471, ptr noundef nonnull @.str.157) to label %if.end476 unwind label %lpad469 -lpad456: ; preds = %call.i306.noexc, %if.else453 - %109 = landingpad { ptr, i32 } +lpad456: ; preds = %call.i302.noexc, %if.else453 + %106 = landingpad { ptr, i32 } cleanup br label %ehcleanup464 lpad458: ; preds = %invoke.cont459, %invoke.cont457 - %110 = landingpad { ptr, i32 } + %107 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp454) #17 br label %ehcleanup464 -ehcleanup464: ; preds = %lpad456, %lpad.i309, %lpad458 - %.pn164 = phi { ptr, i32 } [ %110, %lpad458 ], [ %109, %lpad456 ], [ %107, %lpad.i309 ] +ehcleanup464: ; preds = %lpad456, %lpad.i305, %lpad458 + %.pn164 = phi { ptr, i32 } [ %107, %lpad458 ], [ %106, %lpad456 ], [ %104, %lpad.i305 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp455) #17 br label %ehcleanup666 -lpad467: ; preds = %call.i314.noexc, %invoke.cont461 - %111 = landingpad { ptr, i32 } +lpad467: ; preds = %call.i310.noexc, %invoke.cont461 + %108 = landingpad { ptr, i32 } cleanup br label %ehcleanup475 lpad469: ; preds = %invoke.cont470, %invoke.cont468 - %112 = landingpad { ptr, i32 } + %109 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp465) #17 br label %ehcleanup475 -ehcleanup475: ; preds = %lpad467, %lpad.i317, %lpad469 - %.pn166 = phi { ptr, i32 } [ %112, %lpad469 ], [ %111, %lpad467 ], [ %108, %lpad.i317 ] +ehcleanup475: ; preds = %lpad467, %lpad.i313, %lpad469 + %.pn166 = phi { ptr, i32 } [ %109, %lpad469 ], [ %108, %lpad467 ], [ %105, %lpad.i313 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp466) #17 br label %ehcleanup666 @@ -8392,31 +8343,31 @@ if.end476: ; preds = %invoke.cont470, %in br label %invoke.cont650.invoke sw.bb480: ; preds = %if.then395 - br i1 %66, label %if.then482, label %if.else531 + br i1 %63, label %if.then482, label %if.else531 if.then482: ; preds = %sw.bb480 - br i1 %61, label %if.then484, label %if.else507 + br i1 %58, label %if.then484, label %if.else507 if.then484: ; preds = %if.then482 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp486) #17 - %call.i322326 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp485) - to label %call.i322.noexc unwind label %lpad487 + %call.i318322 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp485) + to label %call.i318.noexc unwind label %lpad487 -call.i322.noexc: ; preds = %if.then484 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp485, ptr noundef %call.i322326, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp486) - to label %.noexc327 unwind label %lpad487 +call.i318.noexc: ; preds = %if.then484 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp485, ptr noundef %call.i318322, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp486) + to label %.noexc323 unwind label %lpad487 -.noexc327: ; preds = %call.i322.noexc +.noexc323: ; preds = %call.i318.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp485, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) - to label %invoke.cont488 unwind label %lpad.i325 + to label %invoke.cont488 unwind label %lpad.i321 -lpad.i325: ; preds = %.noexc327 - %113 = landingpad { ptr, i32 } +lpad.i321: ; preds = %.noexc323 + %110 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp485) #17 br label %ehcleanup495 -invoke.cont488: ; preds = %.noexc327 +invoke.cont488: ; preds = %.noexc323 %call491 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp485) to label %invoke.cont490 unwind label %lpad489 @@ -8428,24 +8379,24 @@ invoke.cont492: ; preds = %invoke.cont490 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp485) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp486) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp497) #17 - %call.i330334 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp496) - to label %call.i330.noexc unwind label %lpad498 + %call.i326330 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp496) + to label %call.i326.noexc unwind label %lpad498 -call.i330.noexc: ; preds = %invoke.cont492 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp496, ptr noundef %call.i330334, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp497) - to label %.noexc335 unwind label %lpad498 +call.i326.noexc: ; preds = %invoke.cont492 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp496, ptr noundef %call.i326330, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp497) + to label %.noexc331 unwind label %lpad498 -.noexc335: ; preds = %call.i330.noexc +.noexc331: ; preds = %call.i326.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp496, ptr noundef nonnull @.str.158, ptr noundef nonnull getelementptr inbounds ([7 x i8], ptr @.str.158, i64 0, i64 6)) - to label %invoke.cont499 unwind label %lpad.i333 + to label %invoke.cont499 unwind label %lpad.i329 -lpad.i333: ; preds = %.noexc335 - %114 = landingpad { ptr, i32 } +lpad.i329: ; preds = %.noexc331 + %111 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp496) #17 br label %ehcleanup506 -invoke.cont499: ; preds = %.noexc335 +invoke.cont499: ; preds = %.noexc331 %call502 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp496) to label %invoke.cont501 unwind label %lpad500 @@ -8453,58 +8404,58 @@ invoke.cont501: ; preds = %invoke.cont499 %call504 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %call502, ptr noundef nonnull @.str.162) to label %if.end580 unwind label %lpad500 -lpad487: ; preds = %call.i322.noexc, %if.then484 - %115 = landingpad { ptr, i32 } +lpad487: ; preds = %call.i318.noexc, %if.then484 + %112 = landingpad { ptr, i32 } cleanup br label %ehcleanup495 lpad489: ; preds = %invoke.cont490, %invoke.cont488 - %116 = landingpad { ptr, i32 } + %113 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp485) #17 br label %ehcleanup495 -ehcleanup495: ; preds = %lpad487, %lpad.i325, %lpad489 - %.pn158 = phi { ptr, i32 } [ %116, %lpad489 ], [ %115, %lpad487 ], [ %113, %lpad.i325 ] +ehcleanup495: ; preds = %lpad487, %lpad.i321, %lpad489 + %.pn158 = phi { ptr, i32 } [ %113, %lpad489 ], [ %112, %lpad487 ], [ %110, %lpad.i321 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp486) #17 br label %ehcleanup666 -lpad498: ; preds = %call.i330.noexc, %invoke.cont492 - %117 = landingpad { ptr, i32 } +lpad498: ; preds = %call.i326.noexc, %invoke.cont492 + %114 = landingpad { ptr, i32 } cleanup br label %ehcleanup506 lpad500: ; preds = %invoke.cont501, %invoke.cont499 - %118 = landingpad { ptr, i32 } + %115 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp496) #17 br label %ehcleanup506 -ehcleanup506: ; preds = %lpad498, %lpad.i333, %lpad500 - %.pn160 = phi { ptr, i32 } [ %118, %lpad500 ], [ %117, %lpad498 ], [ %114, %lpad.i333 ] +ehcleanup506: ; preds = %lpad498, %lpad.i329, %lpad500 + %.pn160 = phi { ptr, i32 } [ %115, %lpad500 ], [ %114, %lpad498 ], [ %111, %lpad.i329 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp497) #17 br label %ehcleanup666 if.else507: ; preds = %if.then482 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp509) #17 - %call.i338342 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp508) - to label %call.i338.noexc unwind label %lpad510 + %call.i334338 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp508) + to label %call.i334.noexc unwind label %lpad510 -call.i338.noexc: ; preds = %if.else507 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp508, ptr noundef %call.i338342, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp509) - to label %.noexc343 unwind label %lpad510 +call.i334.noexc: ; preds = %if.else507 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp508, ptr noundef %call.i334338, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp509) + to label %.noexc339 unwind label %lpad510 -.noexc343: ; preds = %call.i338.noexc +.noexc339: ; preds = %call.i334.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp508, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) - to label %invoke.cont511 unwind label %lpad.i341 + to label %invoke.cont511 unwind label %lpad.i337 -lpad.i341: ; preds = %.noexc343 - %119 = landingpad { ptr, i32 } +lpad.i337: ; preds = %.noexc339 + %116 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp508) #17 br label %ehcleanup518 -invoke.cont511: ; preds = %.noexc343 +invoke.cont511: ; preds = %.noexc339 %call514 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp508) to label %invoke.cont513 unwind label %lpad512 @@ -8516,24 +8467,24 @@ invoke.cont515: ; preds = %invoke.cont513 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp508) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp509) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp520) #17 - %call.i346350 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp519) - to label %call.i346.noexc unwind label %lpad521 + %call.i342346 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp519) + to label %call.i342.noexc unwind label %lpad521 -call.i346.noexc: ; preds = %invoke.cont515 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp519, ptr noundef %call.i346350, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp520) - to label %.noexc351 unwind label %lpad521 +call.i342.noexc: ; preds = %invoke.cont515 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp519, ptr noundef %call.i342346, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp520) + to label %.noexc347 unwind label %lpad521 -.noexc351: ; preds = %call.i346.noexc +.noexc347: ; preds = %call.i342.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp519, ptr noundef nonnull @.str.158, ptr noundef nonnull getelementptr inbounds ([7 x i8], ptr @.str.158, i64 0, i64 6)) - to label %invoke.cont522 unwind label %lpad.i349 + to label %invoke.cont522 unwind label %lpad.i345 -lpad.i349: ; preds = %.noexc351 - %120 = landingpad { ptr, i32 } +lpad.i345: ; preds = %.noexc347 + %117 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp519) #17 br label %ehcleanup529 -invoke.cont522: ; preds = %.noexc351 +invoke.cont522: ; preds = %.noexc347 %call525 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp519) to label %invoke.cont524 unwind label %lpad523 @@ -8541,61 +8492,61 @@ invoke.cont524: ; preds = %invoke.cont522 %call527 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %call525, ptr noundef nonnull @.str.164) to label %if.end580 unwind label %lpad523 -lpad510: ; preds = %call.i338.noexc, %if.else507 - %121 = landingpad { ptr, i32 } +lpad510: ; preds = %call.i334.noexc, %if.else507 + %118 = landingpad { ptr, i32 } cleanup br label %ehcleanup518 lpad512: ; preds = %invoke.cont513, %invoke.cont511 - %122 = landingpad { ptr, i32 } + %119 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp508) #17 br label %ehcleanup518 -ehcleanup518: ; preds = %lpad510, %lpad.i341, %lpad512 - %.pn154 = phi { ptr, i32 } [ %122, %lpad512 ], [ %121, %lpad510 ], [ %119, %lpad.i341 ] +ehcleanup518: ; preds = %lpad510, %lpad.i337, %lpad512 + %.pn154 = phi { ptr, i32 } [ %119, %lpad512 ], [ %118, %lpad510 ], [ %116, %lpad.i337 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp509) #17 br label %ehcleanup666 -lpad521: ; preds = %call.i346.noexc, %invoke.cont515 - %123 = landingpad { ptr, i32 } +lpad521: ; preds = %call.i342.noexc, %invoke.cont515 + %120 = landingpad { ptr, i32 } cleanup br label %ehcleanup529 lpad523: ; preds = %invoke.cont524, %invoke.cont522 - %124 = landingpad { ptr, i32 } + %121 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp519) #17 br label %ehcleanup529 -ehcleanup529: ; preds = %lpad521, %lpad.i349, %lpad523 - %.pn156 = phi { ptr, i32 } [ %124, %lpad523 ], [ %123, %lpad521 ], [ %120, %lpad.i349 ] +ehcleanup529: ; preds = %lpad521, %lpad.i345, %lpad523 + %.pn156 = phi { ptr, i32 } [ %121, %lpad523 ], [ %120, %lpad521 ], [ %117, %lpad.i345 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp520) #17 br label %ehcleanup666 if.else531: ; preds = %sw.bb480 - br i1 %61, label %if.then533, label %if.else556 + br i1 %58, label %if.then533, label %if.else556 if.then533: ; preds = %if.else531 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp535) #17 - %call.i354358 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp534) - to label %call.i354.noexc unwind label %lpad536 + %call.i350354 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp534) + to label %call.i350.noexc unwind label %lpad536 -call.i354.noexc: ; preds = %if.then533 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp534, ptr noundef %call.i354358, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp535) - to label %.noexc359 unwind label %lpad536 +call.i350.noexc: ; preds = %if.then533 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp534, ptr noundef %call.i350354, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp535) + to label %.noexc355 unwind label %lpad536 -.noexc359: ; preds = %call.i354.noexc +.noexc355: ; preds = %call.i350.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp534, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) - to label %invoke.cont537 unwind label %lpad.i357 + to label %invoke.cont537 unwind label %lpad.i353 -lpad.i357: ; preds = %.noexc359 - %125 = landingpad { ptr, i32 } +lpad.i353: ; preds = %.noexc355 + %122 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp534) #17 br label %ehcleanup544 -invoke.cont537: ; preds = %.noexc359 +invoke.cont537: ; preds = %.noexc355 %call540 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp534) to label %invoke.cont539 unwind label %lpad538 @@ -8607,24 +8558,24 @@ invoke.cont541: ; preds = %invoke.cont539 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp534) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp535) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp546) #17 - %call.i362366 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp545) - to label %call.i362.noexc unwind label %lpad547 + %call.i358362 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp545) + to label %call.i358.noexc unwind label %lpad547 -call.i362.noexc: ; preds = %invoke.cont541 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp545, ptr noundef %call.i362366, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp546) - to label %.noexc367 unwind label %lpad547 +call.i358.noexc: ; preds = %invoke.cont541 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp545, ptr noundef %call.i358362, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp546) + to label %.noexc363 unwind label %lpad547 -.noexc367: ; preds = %call.i362.noexc +.noexc363: ; preds = %call.i358.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp545, ptr noundef nonnull @.str.158, ptr noundef nonnull getelementptr inbounds ([7 x i8], ptr @.str.158, i64 0, i64 6)) - to label %invoke.cont548 unwind label %lpad.i365 + to label %invoke.cont548 unwind label %lpad.i361 -lpad.i365: ; preds = %.noexc367 - %126 = landingpad { ptr, i32 } +lpad.i361: ; preds = %.noexc363 + %123 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp545) #17 br label %ehcleanup555 -invoke.cont548: ; preds = %.noexc367 +invoke.cont548: ; preds = %.noexc363 %call551 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp545) to label %invoke.cont550 unwind label %lpad549 @@ -8632,58 +8583,58 @@ invoke.cont550: ; preds = %invoke.cont548 %call553 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %call551, ptr noundef nonnull @.str.162) to label %if.end580 unwind label %lpad549 -lpad536: ; preds = %call.i354.noexc, %if.then533 - %127 = landingpad { ptr, i32 } +lpad536: ; preds = %call.i350.noexc, %if.then533 + %124 = landingpad { ptr, i32 } cleanup br label %ehcleanup544 lpad538: ; preds = %invoke.cont539, %invoke.cont537 - %128 = landingpad { ptr, i32 } + %125 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp534) #17 br label %ehcleanup544 -ehcleanup544: ; preds = %lpad536, %lpad.i357, %lpad538 - %.pn150 = phi { ptr, i32 } [ %128, %lpad538 ], [ %127, %lpad536 ], [ %125, %lpad.i357 ] +ehcleanup544: ; preds = %lpad536, %lpad.i353, %lpad538 + %.pn150 = phi { ptr, i32 } [ %125, %lpad538 ], [ %124, %lpad536 ], [ %122, %lpad.i353 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp535) #17 br label %ehcleanup666 -lpad547: ; preds = %call.i362.noexc, %invoke.cont541 - %129 = landingpad { ptr, i32 } +lpad547: ; preds = %call.i358.noexc, %invoke.cont541 + %126 = landingpad { ptr, i32 } cleanup br label %ehcleanup555 lpad549: ; preds = %invoke.cont550, %invoke.cont548 - %130 = landingpad { ptr, i32 } + %127 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp545) #17 br label %ehcleanup555 -ehcleanup555: ; preds = %lpad547, %lpad.i365, %lpad549 - %.pn152 = phi { ptr, i32 } [ %130, %lpad549 ], [ %129, %lpad547 ], [ %126, %lpad.i365 ] +ehcleanup555: ; preds = %lpad547, %lpad.i361, %lpad549 + %.pn152 = phi { ptr, i32 } [ %127, %lpad549 ], [ %126, %lpad547 ], [ %123, %lpad.i361 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp546) #17 br label %ehcleanup666 if.else556: ; preds = %if.else531 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp558) #17 - %call.i370374 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp557) - to label %call.i370.noexc unwind label %lpad559 + %call.i366370 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp557) + to label %call.i366.noexc unwind label %lpad559 -call.i370.noexc: ; preds = %if.else556 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp557, ptr noundef %call.i370374, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp558) - to label %.noexc375 unwind label %lpad559 +call.i366.noexc: ; preds = %if.else556 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp557, ptr noundef %call.i366370, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp558) + to label %.noexc371 unwind label %lpad559 -.noexc375: ; preds = %call.i370.noexc +.noexc371: ; preds = %call.i366.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp557, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) - to label %invoke.cont560 unwind label %lpad.i373 + to label %invoke.cont560 unwind label %lpad.i369 -lpad.i373: ; preds = %.noexc375 - %131 = landingpad { ptr, i32 } +lpad.i369: ; preds = %.noexc371 + %128 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp557) #17 br label %ehcleanup567 -invoke.cont560: ; preds = %.noexc375 +invoke.cont560: ; preds = %.noexc371 %call563 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp557) to label %invoke.cont562 unwind label %lpad561 @@ -8695,24 +8646,24 @@ invoke.cont564: ; preds = %invoke.cont562 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp557) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp558) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp569) #17 - %call.i378382 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp568) - to label %call.i378.noexc unwind label %lpad570 + %call.i374378 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp568) + to label %call.i374.noexc unwind label %lpad570 -call.i378.noexc: ; preds = %invoke.cont564 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp568, ptr noundef %call.i378382, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp569) - to label %.noexc383 unwind label %lpad570 +call.i374.noexc: ; preds = %invoke.cont564 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp568, ptr noundef %call.i374378, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp569) + to label %.noexc379 unwind label %lpad570 -.noexc383: ; preds = %call.i378.noexc +.noexc379: ; preds = %call.i374.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp568, ptr noundef nonnull @.str.158, ptr noundef nonnull getelementptr inbounds ([7 x i8], ptr @.str.158, i64 0, i64 6)) - to label %invoke.cont571 unwind label %lpad.i381 + to label %invoke.cont571 unwind label %lpad.i377 -lpad.i381: ; preds = %.noexc383 - %132 = landingpad { ptr, i32 } +lpad.i377: ; preds = %.noexc379 + %129 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp568) #17 br label %ehcleanup578 -invoke.cont571: ; preds = %.noexc383 +invoke.cont571: ; preds = %.noexc379 %call574 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp568) to label %invoke.cont573 unwind label %lpad572 @@ -8720,35 +8671,35 @@ invoke.cont573: ; preds = %invoke.cont571 %call576 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %call574, ptr noundef nonnull @.str.164) to label %if.end580 unwind label %lpad572 -lpad559: ; preds = %call.i370.noexc, %if.else556 - %133 = landingpad { ptr, i32 } +lpad559: ; preds = %call.i366.noexc, %if.else556 + %130 = landingpad { ptr, i32 } cleanup br label %ehcleanup567 lpad561: ; preds = %invoke.cont562, %invoke.cont560 - %134 = landingpad { ptr, i32 } + %131 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp557) #17 br label %ehcleanup567 -ehcleanup567: ; preds = %lpad559, %lpad.i373, %lpad561 - %.pn146 = phi { ptr, i32 } [ %134, %lpad561 ], [ %133, %lpad559 ], [ %131, %lpad.i373 ] +ehcleanup567: ; preds = %lpad559, %lpad.i369, %lpad561 + %.pn146 = phi { ptr, i32 } [ %131, %lpad561 ], [ %130, %lpad559 ], [ %128, %lpad.i369 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp558) #17 br label %ehcleanup666 -lpad570: ; preds = %call.i378.noexc, %invoke.cont564 - %135 = landingpad { ptr, i32 } +lpad570: ; preds = %call.i374.noexc, %invoke.cont564 + %132 = landingpad { ptr, i32 } cleanup br label %ehcleanup578 lpad572: ; preds = %invoke.cont573, %invoke.cont571 - %136 = landingpad { ptr, i32 } + %133 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp568) #17 br label %ehcleanup578 -ehcleanup578: ; preds = %lpad570, %lpad.i381, %lpad572 - %.pn148 = phi { ptr, i32 } [ %136, %lpad572 ], [ %135, %lpad570 ], [ %132, %lpad.i381 ] +ehcleanup578: ; preds = %lpad570, %lpad.i377, %lpad572 + %.pn148 = phi { ptr, i32 } [ %133, %lpad572 ], [ %132, %lpad570 ], [ %129, %lpad.i377 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp569) #17 br label %ehcleanup666 @@ -8757,26 +8708,26 @@ if.end580: ; preds = %invoke.cont573, %in %ref.tmp546.sink = phi ptr [ %ref.tmp497, %invoke.cont501 ], [ %ref.tmp520, %invoke.cont524 ], [ %ref.tmp546, %invoke.cont550 ], [ %ref.tmp569, %invoke.cont573 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp545.sink) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp546.sink) #17 - %cond = select i1 %61, ptr @.str.167, ptr @.str.56 + %cond = select i1 %58, ptr @.str.167, ptr @.str.56 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp583) #17 - %call.i386390 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp582) - to label %call.i386.noexc unwind label %lpad584 + %call.i382386 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp582) + to label %call.i382.noexc unwind label %lpad584 -call.i386.noexc: ; preds = %if.end580 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp582, ptr noundef %call.i386390, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp583) - to label %.noexc391 unwind label %lpad584 +call.i382.noexc: ; preds = %if.end580 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp582, ptr noundef %call.i382386, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp583) + to label %.noexc387 unwind label %lpad584 -.noexc391: ; preds = %call.i386.noexc +.noexc387: ; preds = %call.i382.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp582, ptr noundef nonnull @.str.168, ptr noundef nonnull getelementptr inbounds ([17 x i8], ptr @.str.168, i64 0, i64 16)) - to label %invoke.cont585 unwind label %lpad.i389 + to label %invoke.cont585 unwind label %lpad.i385 -lpad.i389: ; preds = %.noexc391 - %137 = landingpad { ptr, i32 } +lpad.i385: ; preds = %.noexc387 + %134 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp582) #17 br label %ehcleanup592 -invoke.cont585: ; preds = %.noexc391 +invoke.cont585: ; preds = %.noexc387 %call588 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp582) to label %invoke.cont587 unwind label %lpad586 @@ -8791,19 +8742,19 @@ invoke.cont589: ; preds = %invoke.cont587 %vfn594 = getelementptr inbounds ptr, ptr %vtable593, i64 2 br label %invoke.cont650.invoke -lpad584: ; preds = %call.i386.noexc, %if.end580 - %138 = landingpad { ptr, i32 } +lpad584: ; preds = %call.i382.noexc, %if.end580 + %135 = landingpad { ptr, i32 } cleanup br label %ehcleanup592 lpad586: ; preds = %invoke.cont587, %invoke.cont585 - %139 = landingpad { ptr, i32 } + %136 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp582) #17 br label %ehcleanup592 -ehcleanup592: ; preds = %lpad584, %lpad.i389, %lpad586 - %.pn162 = phi { ptr, i32 } [ %139, %lpad586 ], [ %138, %lpad584 ], [ %137, %lpad.i389 ] +ehcleanup592: ; preds = %lpad584, %lpad.i385, %lpad586 + %.pn162 = phi { ptr, i32 } [ %136, %lpad586 ], [ %135, %lpad584 ], [ %134, %lpad.i385 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp583) #17 br label %ehcleanup666 @@ -8840,7 +8791,7 @@ invoke.cont620: ; preds = %invoke.cont618 to label %invoke.cont622 unwind label %lpad607 invoke.cont622: ; preds = %invoke.cont620 - %call626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call623, i1 noundef zeroext %61) + %call626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call623, i1 noundef zeroext %58) to label %invoke.cont625 unwind label %lpad607 invoke.cont625: ; preds = %invoke.cont622 @@ -8852,44 +8803,44 @@ invoke.cont627: ; preds = %invoke.cont625 to label %invoke.cont629 unwind label %lpad607 invoke.cont629: ; preds = %invoke.cont627 - %call633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call630, i1 noundef zeroext %66) + %call633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %call630, i1 noundef zeroext %63) to label %invoke.cont632 unwind label %lpad607 invoke.cont632: ; preds = %invoke.cont629 - %call.i394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) - to label %invoke.cont.i396 unwind label %terminate.lpad.i395 + %call.i390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) + to label %invoke.cont.i392 unwind label %terminate.lpad.i391 -invoke.cont.i396: ; preds = %invoke.cont632 +invoke.cont.i392: ; preds = %invoke.cont632 call void @abort() #18 unreachable -terminate.lpad.i395: ; preds = %invoke.cont632 - %140 = landingpad { ptr, i32 } +terminate.lpad.i391: ; preds = %invoke.cont632 + %137 = landingpad { ptr, i32 } catch ptr null - %141 = extractvalue { ptr, i32 } %140, 0 - call void @__clang_call_terminate(ptr %141) #18 + %138 = extractvalue { ptr, i32 } %137, 0 + call void @__clang_call_terminate(ptr %138) #18 unreachable cleanup.done638: ; preds = %sw.bb596 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp644) #17 - %call.i398402 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp643) - to label %call.i398.noexc unwind label %lpad645 + %call.i394398 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp643) + to label %call.i394.noexc unwind label %lpad645 -call.i398.noexc: ; preds = %cleanup.done638 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp643, ptr noundef %call.i398402, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp644) - to label %.noexc403 unwind label %lpad645 +call.i394.noexc: ; preds = %cleanup.done638 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp643, ptr noundef %call.i394398, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp644) + to label %.noexc399 unwind label %lpad645 -.noexc403: ; preds = %call.i398.noexc +.noexc399: ; preds = %call.i394.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp643, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) - to label %invoke.cont646 unwind label %lpad.i401 + to label %invoke.cont646 unwind label %lpad.i397 -lpad.i401: ; preds = %.noexc403 - %142 = landingpad { ptr, i32 } +lpad.i397: ; preds = %.noexc399 + %139 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp643) #17 br label %ehcleanup653 -invoke.cont646: ; preds = %.noexc403 +invoke.cont646: ; preds = %.noexc399 %call649 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp643) to label %invoke.cont648 unwind label %lpad647 @@ -8905,61 +8856,58 @@ invoke.cont650: ; preds = %invoke.cont648 br label %invoke.cont650.invoke invoke.cont650.invoke: ; preds = %sw.bb380, %if.end476, %invoke.cont589, %invoke.cont650 - %143 = phi ptr [ @.str.171, %invoke.cont650 ], [ @.str.169, %invoke.cont589 ], [ @.str.160, %if.end476 ], [ %.str.152..str.153, %sw.bb380 ] - %.in819 = phi ptr [ %vfn655, %invoke.cont650 ], [ %vfn594, %invoke.cont589 ], [ %vfn478, %if.end476 ], [ %vfn384, %sw.bb380 ] - %144 = load ptr, ptr %.in819, align 8 - invoke void %144(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull %143) + %140 = phi ptr [ @.str.171, %invoke.cont650 ], [ @.str.169, %invoke.cont589 ], [ @.str.160, %if.end476 ], [ %.str.152..str.153, %sw.bb380 ] + %.in810 = phi ptr [ %vfn655, %invoke.cont650 ], [ %vfn594, %invoke.cont589 ], [ %vfn478, %if.end476 ], [ %vfn384, %sw.bb380 ] + %141 = load ptr, ptr %.in810, align 8 + invoke void %141(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull %140) to label %if.end659 unwind label %lpad159 lpad607: ; preds = %invoke.cont629, %invoke.cont627, %invoke.cont625, %invoke.cont622, %invoke.cont620, %invoke.cont618, %invoke.cont616, %invoke.cont614, %invoke.cont612, %invoke.cont610, %cond.false601 - %145 = landingpad { ptr, i32 } + %142 = landingpad { ptr, i32 } cleanup call void @_ZN9LogHelperD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp604) #17 br label %ehcleanup666 -lpad645: ; preds = %call.i398.noexc, %cleanup.done638 - %146 = landingpad { ptr, i32 } +lpad645: ; preds = %call.i394.noexc, %cleanup.done638 + %143 = landingpad { ptr, i32 } cleanup br label %ehcleanup653 lpad647: ; preds = %invoke.cont648, %invoke.cont646 - %147 = landingpad { ptr, i32 } + %144 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp643) #17 br label %ehcleanup653 -ehcleanup653: ; preds = %lpad645, %lpad.i401, %lpad647 - %.pn144 = phi { ptr, i32 } [ %147, %lpad647 ], [ %146, %lpad645 ], [ %142, %lpad.i401 ] +ehcleanup653: ; preds = %lpad645, %lpad.i397, %lpad647 + %.pn144 = phi { ptr, i32 } [ %144, %lpad647 ], [ %143, %lpad645 ], [ %139, %lpad.i397 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp644) #17 br label %ehcleanup666 -if.then395.unreachabledefault: ; preds = %if.then395 - unreachable - if.end659: ; preds = %invoke.cont650.invoke, %if.then379 %vtable660 = load ptr, ptr %p, align 8 %vfn661 = getelementptr inbounds ptr, ptr %vtable660, i64 6 - %148 = load ptr, ptr %vfn661, align 8 - invoke void %148(ptr noundef nonnull align 8 dereferenceable(8) %p) + %145 = load ptr, ptr %vfn661, align 8 + invoke void %145(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont662 unwind label %lpad159 invoke.cont662: ; preds = %if.end659 %vtable663 = load ptr, ptr %p, align 8 %vfn664 = getelementptr inbounds ptr, ptr %vtable663, i64 3 - %149 = load ptr, ptr %vfn664, align 8 - invoke void %149(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.71) + %146 = load ptr, ptr %vfn664, align 8 + invoke void %146(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.71) to label %cleanup unwind label %lpad159 cleanup: ; preds = %invoke.cont662, %lor.end244 - %150 = load ptr, ptr %method, align 8 - %cmp.not.i = icmp eq ptr %150, null + %147 = load ptr, ptr %method, align 8 + %cmp.not.i = icmp eq ptr %147, null br i1 %cmp.not.i, label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit, label %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i _ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i: ; preds = %cleanup - %vtable.i.i406 = load ptr, ptr %150, align 8 - %vfn.i.i407 = getelementptr inbounds ptr, ptr %vtable.i.i406, i64 1 - %151 = load ptr, ptr %vfn.i.i407, align 8 - call void %151(ptr noundef nonnull align 8 dereferenceable(8) %150) #17 + %vtable.i.i402 = load ptr, ptr %147, align 8 + %vfn.i.i403 = getelementptr inbounds ptr, ptr %vtable.i.i402, i64 1 + %148 = load ptr, ptr %vfn.i.i403, align 8 + call void %148(ptr noundef nonnull align 8 dereferenceable(8) %147) #17 br label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit _ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit: ; preds = %cleanup, %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i @@ -8967,20 +8915,20 @@ _ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit: ; %inc = add nuw nsw i32 %i.0, 1 br label %for.cond, !llvm.loop !59 -ehcleanup666: ; preds = %lpad.i233, %lpad.i258, %lpad159, %lpad607, %lpad405, %lpad326, %lpad274, %ehcleanup653, %ehcleanup592, %ehcleanup578, %ehcleanup567, %ehcleanup555, %ehcleanup544, %ehcleanup529, %ehcleanup518, %ehcleanup506, %ehcleanup495, %ehcleanup475, %ehcleanup464, %ehcleanup452, %ehcleanup441, %ehcleanup221, %ehcleanup207, %ehcleanup194, %ehcleanup174 - %.pn172 = phi { ptr, i32 } [ %.pn144, %ehcleanup653 ], [ %145, %lpad607 ], [ %.pn162, %ehcleanup592 ], [ %.pn160, %ehcleanup506 ], [ %.pn158, %ehcleanup495 ], [ %.pn156, %ehcleanup529 ], [ %.pn154, %ehcleanup518 ], [ %.pn152, %ehcleanup555 ], [ %.pn150, %ehcleanup544 ], [ %.pn148, %ehcleanup578 ], [ %.pn146, %ehcleanup567 ], [ %.pn170, %ehcleanup452 ], [ %.pn168, %ehcleanup441 ], [ %.pn166, %ehcleanup475 ], [ %.pn164, %ehcleanup464 ], [ %102, %lpad405 ], [ %95, %lpad326 ], [ %90, %lpad274 ], [ %.pn142, %ehcleanup221 ], [ %.pn140, %ehcleanup207 ], [ %.pn137.pn, %ehcleanup194 ], [ %.pn134.pn, %ehcleanup174 ], [ %53, %lpad.i233 ], [ %67, %lpad159 ], [ %86, %lpad.i258 ] - %152 = load ptr, ptr %method, align 8 - %cmp.not.i408 = icmp eq ptr %152, null - br i1 %cmp.not.i408, label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit412, label %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i409 +ehcleanup666: ; preds = %lpad.i231, %lpad.i256, %lpad159, %lpad607, %lpad405, %lpad326, %lpad274, %ehcleanup653, %ehcleanup592, %ehcleanup578, %ehcleanup567, %ehcleanup555, %ehcleanup544, %ehcleanup529, %ehcleanup518, %ehcleanup506, %ehcleanup495, %ehcleanup475, %ehcleanup464, %ehcleanup452, %ehcleanup441, %ehcleanup221, %ehcleanup207, %ehcleanup194, %ehcleanup174 + %.pn172 = phi { ptr, i32 } [ %.pn144, %ehcleanup653 ], [ %142, %lpad607 ], [ %.pn162, %ehcleanup592 ], [ %.pn160, %ehcleanup506 ], [ %.pn158, %ehcleanup495 ], [ %.pn156, %ehcleanup529 ], [ %.pn154, %ehcleanup518 ], [ %.pn152, %ehcleanup555 ], [ %.pn150, %ehcleanup544 ], [ %.pn148, %ehcleanup578 ], [ %.pn146, %ehcleanup567 ], [ %.pn170, %ehcleanup452 ], [ %.pn168, %ehcleanup441 ], [ %.pn166, %ehcleanup475 ], [ %.pn164, %ehcleanup464 ], [ %99, %lpad405 ], [ %92, %lpad326 ], [ %87, %lpad274 ], [ %.pn142, %ehcleanup221 ], [ %.pn140, %ehcleanup207 ], [ %.pn137.pn, %ehcleanup194 ], [ %.pn134.pn, %ehcleanup174 ], [ %50, %lpad.i231 ], [ %64, %lpad159 ], [ %83, %lpad.i256 ] + %149 = load ptr, ptr %method, align 8 + %cmp.not.i404 = icmp eq ptr %149, null + br i1 %cmp.not.i404, label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit408, label %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i405 -_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i409: ; preds = %ehcleanup666 - %vtable.i.i410 = load ptr, ptr %152, align 8 - %vfn.i.i411 = getelementptr inbounds ptr, ptr %vtable.i.i410, i64 1 - %153 = load ptr, ptr %vfn.i.i411, align 8 - call void %153(ptr noundef nonnull align 8 dereferenceable(8) %152) #17 - br label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit412 +_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i405: ; preds = %ehcleanup666 + %vtable.i.i406 = load ptr, ptr %149, align 8 + %vfn.i.i407 = getelementptr inbounds ptr, ptr %vtable.i.i406, i64 1 + %150 = load ptr, ptr %vfn.i.i407, align 8 + call void %150(ptr noundef nonnull align 8 dereferenceable(8) %149) #17 + br label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit408 -_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit412: ; preds = %ehcleanup666, %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i409 +_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit408: ; preds = %ehcleanup666, %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i405 store ptr null, ptr %method, align 8 br label %ehcleanup697 @@ -8990,37 +8938,37 @@ for.end: ; preds = %invoke.cont149 if.then668: ; preds = %for.end %vtable669 = load ptr, ptr %p, align 8 %vfn670 = getelementptr inbounds ptr, ptr %vtable669, i64 3 - %154 = load ptr, ptr %vfn670, align 8 - invoke void %154(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.103) + %151 = load ptr, ptr %vfn670, align 8 + invoke void %151(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.103) to label %invoke.cont671 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont671: ; preds = %if.then668 %vtable672 = load ptr, ptr %p, align 8 %vfn673 = getelementptr inbounds ptr, ptr %vtable672, i64 2 - %155 = load ptr, ptr %vfn673, align 8 - invoke void %155(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.172) + %152 = load ptr, ptr %vfn673, align 8 + invoke void %152(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.172) to label %invoke.cont674 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont674: ; preds = %invoke.cont671 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp676) #17 - %call.i413417 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp675) - to label %call.i413.noexc unwind label %lpad677 + %call.i409413 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp675) + to label %call.i409.noexc unwind label %lpad677 -call.i413.noexc: ; preds = %invoke.cont674 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp675, ptr noundef %call.i413417, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp676) - to label %.noexc418 unwind label %lpad677 +call.i409.noexc: ; preds = %invoke.cont674 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp675, ptr noundef %call.i409413, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp676) + to label %.noexc414 unwind label %lpad677 -.noexc418: ; preds = %call.i413.noexc +.noexc414: ; preds = %call.i409.noexc invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp675, ptr noundef nonnull @.str.174, ptr noundef nonnull getelementptr inbounds ([9 x i8], ptr @.str.174, i64 0, i64 8)) - to label %invoke.cont678 unwind label %lpad.i416 + to label %invoke.cont678 unwind label %lpad.i412 -lpad.i416: ; preds = %.noexc418 - %156 = landingpad { ptr, i32 } +lpad.i412: ; preds = %.noexc414 + %153 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp675) #17 br label %ehcleanup685 -invoke.cont678: ; preds = %.noexc418 +invoke.cont678: ; preds = %.noexc414 %call681 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp675) to label %invoke.cont680 unwind label %lpad679 @@ -9031,7 +8979,7 @@ invoke.cont680: ; preds = %invoke.cont678 invoke.cont682: ; preds = %invoke.cont680 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp675) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp676) #17 - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i421) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i417) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp1.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp2.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %method.i) @@ -9060,122 +9008,122 @@ invoke.cont682: ; preds = %invoke.cont680 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp154.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp165.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp166.i) - %vtable.i422 = load ptr, ptr %service, align 8 - %vfn.i423 = getelementptr inbounds ptr, ptr %vtable.i422, i64 6 - %157 = load ptr, ptr %vfn.i423, align 8 - invoke void %157(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i421, ptr noundef nonnull align 8 dereferenceable(8) %service) - to label %.noexc429 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %vtable.i418 = load ptr, ptr %service, align 8 + %vfn.i419 = getelementptr inbounds ptr, ptr %vtable.i418, i64 6 + %154 = load ptr, ptr %vfn.i419, align 8 + invoke void %154(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i417, ptr noundef nonnull align 8 dereferenceable(8) %service) + to label %.noexc425 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc429: ; preds = %invoke.cont682 +.noexc425: ; preds = %invoke.cont682 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2.i) #17 %call.i59.i = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) - to label %call.i.noexc.i unwind label %lpad.i424 + to label %call.i.noexc.i unwind label %lpad.i420 -call.i.noexc.i: ; preds = %.noexc429 +call.i.noexc.i: ; preds = %.noexc425 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp1.i, ptr noundef %call.i59.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2.i) - to label %.noexc.i unwind label %lpad.i424 + to label %.noexc.i unwind label %lpad.i420 .noexc.i: ; preds = %call.i.noexc.i - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i515) - %call.i.i517 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) - to label %if.end.i519 unwind label %terminate.lpad.i.i518 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i511) + %call.i.i513 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) + to label %if.end.i515 unwind label %terminate.lpad.i.i514 -terminate.lpad.i.i518: ; preds = %.noexc.i - %158 = landingpad { ptr, i32 } +terminate.lpad.i.i514: ; preds = %.noexc.i + %155 = landingpad { ptr, i32 } catch ptr null - %159 = extractvalue { ptr, i32 } %158, 0 - call void @__clang_call_terminate(ptr %159) #18 + %156 = extractvalue { ptr, i32 } %155, 0 + call void @__clang_call_terminate(ptr %156) #18 unreachable -if.end.i519: ; preds = %.noexc.i - store ptr %ref.tmp1.i, ptr %__guard.i515, align 8 - %call4.i520 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) - to label %invoke.cont.i522 unwind label %lpad.i521 +if.end.i515: ; preds = %.noexc.i + store ptr %ref.tmp1.i, ptr %__guard.i511, align 8 + %call4.i516 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) + to label %invoke.cont.i518 unwind label %lpad.i517 -invoke.cont.i522: ; preds = %if.end.i519 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i520, ptr noundef nonnull @.str.54, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.54, i64 0, i64 12)) #17 - store ptr null, ptr %__guard.i515, align 8 +invoke.cont.i518: ; preds = %if.end.i515 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i516, ptr noundef nonnull @.str.54, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.54, i64 0, i64 12)) #17 + store ptr null, ptr %__guard.i511, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i, i64 noundef 12) - to label %invoke.cont.i425 unwind label %lpad.i521 + to label %invoke.cont.i421 unwind label %lpad.i517 -lpad.i521: ; preds = %invoke.cont.i522, %if.end.i519 - %160 = landingpad { ptr, i32 } +lpad.i517: ; preds = %invoke.cont.i518, %if.end.i515 + %157 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i515) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i511) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp1.i) #17 br label %ehcleanup.i -invoke.cont.i425: ; preds = %invoke.cont.i522 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i515) - %call.i426 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) +invoke.cont.i421: ; preds = %invoke.cont.i518 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i511) + %call.i422 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) to label %invoke.cont4.i unwind label %lpad3.i -invoke.cont4.i: ; preds = %invoke.cont.i425 - %call5.i = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i426, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i421) #17 +invoke.cont4.i: ; preds = %invoke.cont.i421 + %call5.i = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %call.i422, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i417) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2.i) #17 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i421) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i417) #17 %vtable7.i = load ptr, ptr %p, align 8 %vfn8.i = getelementptr inbounds ptr, ptr %vtable7.i, i64 5 - %161 = load ptr, ptr %vfn8.i, align 8 - invoke void %161(ptr noundef nonnull align 8 dereferenceable(8) %p) - to label %.noexc430 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %158 = load ptr, ptr %vfn8.i, align 8 + invoke void %158(ptr noundef nonnull align 8 dereferenceable(8) %p) + to label %.noexc426 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc430: ; preds = %invoke.cont4.i +.noexc426: ; preds = %invoke.cont4.i %vtable9.i = load ptr, ptr %p, align 8 %vfn10.i = getelementptr inbounds ptr, ptr %vtable9.i, i64 2 - %162 = load ptr, ptr %vfn10.i, align 8 - invoke void %162(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.175) - to label %.noexc431 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %159 = load ptr, ptr %vfn10.i, align 8 + invoke void %159(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.175) + to label %.noexc427 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc431: ; preds = %.noexc430 +.noexc427: ; preds = %.noexc426 %vtable11.i = load ptr, ptr %p, align 8 %vfn12.i = getelementptr inbounds ptr, ptr %vtable11.i, i64 5 - %163 = load ptr, ptr %vfn12.i, align 8 - invoke void %163(ptr noundef nonnull align 8 dereferenceable(8) %p) - to label %.noexc432 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %160 = load ptr, ptr %vfn12.i, align 8 + invoke void %160(ptr noundef nonnull align 8 dereferenceable(8) %p) + to label %.noexc428 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc432: ; preds = %.noexc431 +.noexc428: ; preds = %.noexc427 %vtable13.i = load ptr, ptr %p, align 8 %vfn14.i = getelementptr inbounds ptr, ptr %vtable13.i, i64 5 - %164 = load ptr, ptr %vfn14.i, align 8 - invoke void %164(ptr noundef nonnull align 8 dereferenceable(8) %p) - to label %.noexc433 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %161 = load ptr, ptr %vfn14.i, align 8 + invoke void %161(ptr noundef nonnull align 8 dereferenceable(8) %p) + to label %.noexc429 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc433: ; preds = %.noexc432 +.noexc429: ; preds = %.noexc428 %vtable15140.i = load ptr, ptr %service, align 8 %vfn16141.i = getelementptr inbounds ptr, ptr %vtable15140.i, i64 8 - %165 = load ptr, ptr %vfn16141.i, align 8 - %call17142.i434 = invoke noundef i32 %165(ptr noundef nonnull align 8 dereferenceable(8) %service) + %162 = load ptr, ptr %vfn16141.i, align 8 + %call17142.i430 = invoke noundef i32 %162(ptr noundef nonnull align 8 dereferenceable(8) %service) to label %call17142.i.noexc unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -call17142.i.noexc: ; preds = %.noexc433 - %cmp143.i = icmp sgt i32 %call17142.i434, 0 +call17142.i.noexc: ; preds = %.noexc429 + %cmp143.i = icmp sgt i32 %call17142.i430, 0 br i1 %cmp143.i, label %for.body.i, label %for.end.i for.body.i: ; preds = %call17142.i.noexc, %call17.i.noexc %i.0144.i = phi i32 [ %inc.i, %call17.i.noexc ], [ 0, %call17142.i.noexc ] %vtable18.i = load ptr, ptr %service, align 8 %vfn19.i = getelementptr inbounds ptr, ptr %vtable18.i, i64 9 - %166 = load ptr, ptr %vfn19.i, align 8 - invoke void %166(ptr nonnull sret(%"class.std::unique_ptr.12") align 8 %method.i, ptr noundef nonnull align 8 dereferenceable(8) %service, i32 noundef %i.0144.i) - to label %.noexc435 unwind label %lpad24.loopexit + %163 = load ptr, ptr %vfn19.i, align 8 + invoke void %163(ptr nonnull sret(%"class.std::unique_ptr.12") align 8 %method.i, ptr noundef nonnull align 8 dereferenceable(8) %service, i32 noundef %i.0144.i) + to label %.noexc431 unwind label %lpad24.loopexit -.noexc435: ; preds = %for.body.i - %167 = load ptr, ptr %method.i, align 8 +.noexc431: ; preds = %for.body.i + %164 = load ptr, ptr %method.i, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i) - %vtable.i.i427 = load ptr, ptr %167, align 8, !noalias !60 - %vfn.i.i428 = getelementptr inbounds ptr, ptr %vtable.i.i427, i64 5 - %168 = load ptr, ptr %vfn.i.i428, align 8, !noalias !60 - invoke void %168(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i.i, ptr noundef nonnull align 8 dereferenceable(8) %167) + %vtable.i.i423 = load ptr, ptr %164, align 8, !noalias !60 + %vfn.i.i424 = getelementptr inbounds ptr, ptr %vtable.i.i423, i64 5 + %165 = load ptr, ptr %vfn.i.i424, align 8, !noalias !60 + invoke void %165(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i.i, ptr noundef nonnull align 8 dereferenceable(8) %164) to label %.noexc61.i unwind label %lpad22.i -.noexc61.i: ; preds = %.noexc435 +.noexc61.i: ; preds = %.noexc431 invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_110MixedLowerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noalias align 8 %ref.tmp20.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) to label %invoke.cont23.i unwind label %lpad.i60.i lpad.i60.i: ; preds = %.noexc61.i - %169 = landingpad { ptr, i32 } + %166 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) #17 br label %ehcleanup199.i @@ -9196,7 +9144,7 @@ call.i.noexc66.i: ; preds = %invoke.cont23.i to label %invoke.cont27.i unwind label %lpad.i65.i lpad.i65.i: ; preds = %.noexc68.i - %170 = landingpad { ptr, i32 } + %167 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp24.i) #17 br label %ehcleanup33.i @@ -9210,8 +9158,8 @@ invoke.cont29.i: ; preds = %invoke.cont27.i call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp24.i) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp25.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20.i) #17 - %171 = load ptr, ptr %method.i, align 8 - invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_126MethodPropertiesGetterNameB5cxx11EPKN14grpc_generator6MethodE(ptr noalias nonnull align 8 %ref.tmp35.i, ptr noundef nonnull %171) + %168 = load ptr, ptr %method.i, align 8 + invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_126MethodPropertiesGetterNameB5cxx11EPKN14grpc_generator6MethodE(ptr noalias nonnull align 8 %ref.tmp35.i, ptr noundef nonnull %168) to label %invoke.cont37.i unwind label %lpad22.i invoke.cont37.i: ; preds = %invoke.cont29.i @@ -9228,7 +9176,7 @@ call.i.noexc74.i: ; preds = %invoke.cont37.i to label %invoke.cont41.i unwind label %lpad.i73.i lpad.i73.i: ; preds = %.noexc76.i - %172 = landingpad { ptr, i32 } + %169 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp38.i) #17 br label %ehcleanup47.i @@ -9242,11 +9190,11 @@ invoke.cont43.i: ; preds = %invoke.cont41.i call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp38.i) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp39.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp35.i) #17 - %173 = load ptr, ptr %method.i, align 8 - %vtable52.i = load ptr, ptr %173, align 8 + %170 = load ptr, ptr %method.i, align 8 + %vtable52.i = load ptr, ptr %170, align 8 %vfn53.i = getelementptr inbounds ptr, ptr %vtable52.i, i64 11 - %174 = load ptr, ptr %vfn53.i, align 8 - invoke void %174(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp50.i, ptr noundef nonnull align 8 dereferenceable(8) %173) + %171 = load ptr, ptr %vfn53.i, align 8 + invoke void %171(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp50.i, ptr noundef nonnull align 8 dereferenceable(8) %170) to label %invoke.cont54.i unwind label %lpad22.i invoke.cont54.i: ; preds = %invoke.cont43.i @@ -9263,37 +9211,37 @@ call.i.noexc82.i: ; preds = %invoke.cont56.i to label %.noexc84.i unwind label %lpad59.i .noexc84.i: ; preds = %call.i.noexc82.i - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i504) - %call.i.i506 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp57.i) - to label %if.end.i508 unwind label %terminate.lpad.i.i507 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i500) + %call.i.i502 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp57.i) + to label %if.end.i504 unwind label %terminate.lpad.i.i503 -terminate.lpad.i.i507: ; preds = %.noexc84.i - %175 = landingpad { ptr, i32 } +terminate.lpad.i.i503: ; preds = %.noexc84.i + %172 = landingpad { ptr, i32 } catch ptr null - %176 = extractvalue { ptr, i32 } %175, 0 - call void @__clang_call_terminate(ptr %176) #18 + %173 = extractvalue { ptr, i32 } %172, 0 + call void @__clang_call_terminate(ptr %173) #18 unreachable -if.end.i508: ; preds = %.noexc84.i - store ptr %ref.tmp57.i, ptr %__guard.i504, align 8 - %call4.i509 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp57.i) - to label %invoke.cont.i511 unwind label %lpad.i510 +if.end.i504: ; preds = %.noexc84.i + store ptr %ref.tmp57.i, ptr %__guard.i500, align 8 + %call4.i505 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp57.i) + to label %invoke.cont.i507 unwind label %lpad.i506 -invoke.cont.i511: ; preds = %if.end.i508 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i509, ptr noundef nonnull @.str.86, ptr noundef nonnull getelementptr inbounds ([11 x i8], ptr @.str.86, i64 0, i64 10)) #17 - store ptr null, ptr %__guard.i504, align 8 +invoke.cont.i507: ; preds = %if.end.i504 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i505, ptr noundef nonnull @.str.86, ptr noundef nonnull getelementptr inbounds ([11 x i8], ptr @.str.86, i64 0, i64 10)) #17 + store ptr null, ptr %__guard.i500, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp57.i, i64 noundef 10) - to label %invoke.cont60.i unwind label %lpad.i510 + to label %invoke.cont60.i unwind label %lpad.i506 -lpad.i510: ; preds = %invoke.cont.i511, %if.end.i508 - %177 = landingpad { ptr, i32 } +lpad.i506: ; preds = %invoke.cont.i507, %if.end.i504 + %174 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i504) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i500) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp57.i) #17 br label %ehcleanup66.i -invoke.cont60.i: ; preds = %invoke.cont.i511 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i504) +invoke.cont60.i: ; preds = %invoke.cont.i507 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i500) %call63.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp57.i) to label %invoke.cont62.i unwind label %lpad61.i @@ -9303,11 +9251,11 @@ invoke.cont62.i: ; preds = %invoke.cont60.i call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp58.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp50.i) #17 - %178 = load ptr, ptr %method.i, align 8 - %vtable72.i = load ptr, ptr %178, align 8 + %175 = load ptr, ptr %method.i, align 8 + %vtable72.i = load ptr, ptr %175, align 8 %vfn73.i = getelementptr inbounds ptr, ptr %vtable72.i, i64 13 - %179 = load ptr, ptr %vfn73.i, align 8 - invoke void %179(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp70.i, ptr noundef nonnull align 8 dereferenceable(8) %178) + %176 = load ptr, ptr %vfn73.i, align 8 + invoke void %176(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp70.i, ptr noundef nonnull align 8 dereferenceable(8) %175) to label %invoke.cont74.i unwind label %lpad22.i invoke.cont74.i: ; preds = %invoke.cont62.i @@ -9324,37 +9272,37 @@ call.i.noexc90.i: ; preds = %invoke.cont76.i to label %.noexc92.i unwind label %lpad79.i .noexc92.i: ; preds = %call.i.noexc90.i - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i493) - %call.i.i495 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp77.i) - to label %if.end.i497 unwind label %terminate.lpad.i.i496 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i489) + %call.i.i491 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp77.i) + to label %if.end.i493 unwind label %terminate.lpad.i.i492 -terminate.lpad.i.i496: ; preds = %.noexc92.i - %180 = landingpad { ptr, i32 } +terminate.lpad.i.i492: ; preds = %.noexc92.i + %177 = landingpad { ptr, i32 } catch ptr null - %181 = extractvalue { ptr, i32 } %180, 0 - call void @__clang_call_terminate(ptr %181) #18 + %178 = extractvalue { ptr, i32 } %177, 0 + call void @__clang_call_terminate(ptr %178) #18 unreachable -if.end.i497: ; preds = %.noexc92.i - store ptr %ref.tmp77.i, ptr %__guard.i493, align 8 - %call4.i498 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp77.i) - to label %invoke.cont.i500 unwind label %lpad.i499 +if.end.i493: ; preds = %.noexc92.i + store ptr %ref.tmp77.i, ptr %__guard.i489, align 8 + %call4.i494 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp77.i) + to label %invoke.cont.i496 unwind label %lpad.i495 -invoke.cont.i500: ; preds = %if.end.i497 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i498, ptr noundef nonnull @.str.87, ptr noundef nonnull getelementptr inbounds ([12 x i8], ptr @.str.87, i64 0, i64 11)) #17 - store ptr null, ptr %__guard.i493, align 8 +invoke.cont.i496: ; preds = %if.end.i493 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i494, ptr noundef nonnull @.str.87, ptr noundef nonnull getelementptr inbounds ([12 x i8], ptr @.str.87, i64 0, i64 11)) #17 + store ptr null, ptr %__guard.i489, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp77.i, i64 noundef 11) - to label %invoke.cont80.i unwind label %lpad.i499 + to label %invoke.cont80.i unwind label %lpad.i495 -lpad.i499: ; preds = %invoke.cont.i500, %if.end.i497 - %182 = landingpad { ptr, i32 } +lpad.i495: ; preds = %invoke.cont.i496, %if.end.i493 + %179 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i493) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i489) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp77.i) #17 br label %ehcleanup86.i -invoke.cont80.i: ; preds = %invoke.cont.i500 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i493) +invoke.cont80.i: ; preds = %invoke.cont.i496 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i489) %call83.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp77.i) to label %invoke.cont82.i unwind label %lpad81.i @@ -9364,8 +9312,8 @@ invoke.cont82.i: ; preds = %invoke.cont80.i call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp78.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp69.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp70.i) #17 - %183 = load ptr, ptr %method.i, align 8 - invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_117MethodIdFieldNameB5cxx11EPKN14grpc_generator6MethodE(ptr noalias nonnull align 8 %ref.tmp89.i, ptr noundef nonnull %183) + %180 = load ptr, ptr %method.i, align 8 + invoke fastcc void @_ZN19grpc_java_generator12_GLOBAL__N_117MethodIdFieldNameB5cxx11EPKN14grpc_generator6MethodE(ptr noalias nonnull align 8 %ref.tmp89.i, ptr noundef nonnull %180) to label %invoke.cont91.i unwind label %lpad22.i invoke.cont91.i: ; preds = %invoke.cont82.i @@ -9378,37 +9326,37 @@ call.i.noexc98.i: ; preds = %invoke.cont91.i to label %.noexc100.i unwind label %lpad94.i .noexc100.i: ; preds = %call.i.noexc98.i - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i482) - %call.i.i484 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i) - to label %if.end.i486 unwind label %terminate.lpad.i.i485 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i478) + %call.i.i480 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i) + to label %if.end.i482 unwind label %terminate.lpad.i.i481 -terminate.lpad.i.i485: ; preds = %.noexc100.i - %184 = landingpad { ptr, i32 } +terminate.lpad.i.i481: ; preds = %.noexc100.i + %181 = landingpad { ptr, i32 } catch ptr null - %185 = extractvalue { ptr, i32 } %184, 0 - call void @__clang_call_terminate(ptr %185) #18 + %182 = extractvalue { ptr, i32 } %181, 0 + call void @__clang_call_terminate(ptr %182) #18 unreachable -if.end.i486: ; preds = %.noexc100.i - store ptr %ref.tmp92.i, ptr %__guard.i482, align 8 - %call4.i487 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i) - to label %invoke.cont.i489 unwind label %lpad.i488 +if.end.i482: ; preds = %.noexc100.i + store ptr %ref.tmp92.i, ptr %__guard.i478, align 8 + %call4.i483 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i) + to label %invoke.cont.i485 unwind label %lpad.i484 -invoke.cont.i489: ; preds = %if.end.i486 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i487, ptr noundef nonnull @.str.176, ptr noundef nonnull getelementptr inbounds ([15 x i8], ptr @.str.176, i64 0, i64 14)) #17 - store ptr null, ptr %__guard.i482, align 8 +invoke.cont.i485: ; preds = %if.end.i482 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i483, ptr noundef nonnull @.str.176, ptr noundef nonnull getelementptr inbounds ([15 x i8], ptr @.str.176, i64 0, i64 14)) #17 + store ptr null, ptr %__guard.i478, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i, i64 noundef 14) - to label %invoke.cont95.i unwind label %lpad.i488 + to label %invoke.cont95.i unwind label %lpad.i484 -lpad.i488: ; preds = %invoke.cont.i489, %if.end.i486 - %186 = landingpad { ptr, i32 } +lpad.i484: ; preds = %invoke.cont.i485, %if.end.i482 + %183 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i482) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i478) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp92.i) #17 br label %ehcleanup101.i -invoke.cont95.i: ; preds = %invoke.cont.i489 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i482) +invoke.cont95.i: ; preds = %invoke.cont.i485 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i478) %call98.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i) to label %invoke.cont97.i unwind label %lpad96.i @@ -9417,49 +9365,49 @@ invoke.cont97.i: ; preds = %invoke.cont95.i call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i) #17 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp93.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp89.i) #17 - %187 = load ptr, ptr %method.i, align 8 - %vtable104.i = load ptr, ptr %187, align 8 + %184 = load ptr, ptr %method.i, align 8 + %vtable104.i = load ptr, ptr %184, align 8 %vfn105.i = getelementptr inbounds ptr, ptr %vtable104.i, i64 16 - %188 = load ptr, ptr %vfn105.i, align 8 - %call107.i = invoke noundef zeroext i1 %188(ptr noundef nonnull align 8 dereferenceable(8) %187) + %185 = load ptr, ptr %vfn105.i, align 8 + %call107.i = invoke noundef zeroext i1 %185(ptr noundef nonnull align 8 dereferenceable(8) %184) to label %invoke.cont106.i unwind label %lpad22.i invoke.cont106.i: ; preds = %invoke.cont97.i br i1 %call107.i, label %lor.end.i, label %lor.rhs.i lor.rhs.i: ; preds = %invoke.cont106.i - %189 = load ptr, ptr %method.i, align 8 - %vtable109.i = load ptr, ptr %189, align 8 + %186 = load ptr, ptr %method.i, align 8 + %vtable109.i = load ptr, ptr %186, align 8 %vfn110.i = getelementptr inbounds ptr, ptr %vtable109.i, i64 18 - %190 = load ptr, ptr %vfn110.i, align 8 - %call112.i = invoke noundef zeroext i1 %190(ptr noundef nonnull align 8 dereferenceable(8) %189) + %187 = load ptr, ptr %vfn110.i, align 8 + %call112.i = invoke noundef zeroext i1 %187(ptr noundef nonnull align 8 dereferenceable(8) %186) to label %lor.end.i unwind label %lpad22.i lor.end.i: ; preds = %lor.rhs.i, %invoke.cont106.i - %191 = phi i1 [ true, %invoke.cont106.i ], [ %call112.i, %lor.rhs.i ] - %192 = load ptr, ptr %method.i, align 8 - %vtable114.i = load ptr, ptr %192, align 8 + %188 = phi i1 [ true, %invoke.cont106.i ], [ %call112.i, %lor.rhs.i ] + %189 = load ptr, ptr %method.i, align 8 + %vtable114.i = load ptr, ptr %189, align 8 %vfn115.i = getelementptr inbounds ptr, ptr %vtable114.i, i64 17 - %193 = load ptr, ptr %vfn115.i, align 8 - %call117.i = invoke noundef zeroext i1 %193(ptr noundef nonnull align 8 dereferenceable(8) %192) + %190 = load ptr, ptr %vfn115.i, align 8 + %call117.i = invoke noundef zeroext i1 %190(ptr noundef nonnull align 8 dereferenceable(8) %189) to label %invoke.cont116.i unwind label %lpad22.i invoke.cont116.i: ; preds = %lor.end.i br i1 %call117.i, label %lor.end124.thread.i, label %lor.rhs118.i lor.rhs118.i: ; preds = %invoke.cont116.i - %194 = load ptr, ptr %method.i, align 8 - %vtable120.i = load ptr, ptr %194, align 8 + %191 = load ptr, ptr %method.i, align 8 + %vtable120.i = load ptr, ptr %191, align 8 %vfn121.i = getelementptr inbounds ptr, ptr %vtable120.i, i64 18 - %195 = load ptr, ptr %vfn121.i, align 8 - %call123.i = invoke noundef zeroext i1 %195(ptr noundef nonnull align 8 dereferenceable(8) %194) + %192 = load ptr, ptr %vfn121.i, align 8 + %call123.i = invoke noundef zeroext i1 %192(ptr noundef nonnull align 8 dereferenceable(8) %191) to label %lor.end124.i unwind label %lpad22.i lor.end124.i: ; preds = %lor.rhs118.i - br i1 %191, label %if.then.i, label %if.else150.i + br i1 %188, label %if.then.i, label %if.else150.i lor.end124.thread.i: ; preds = %invoke.cont116.i - br i1 %191, label %if.then127.i, label %if.then152.i + br i1 %188, label %if.then127.i, label %if.then152.i if.then.i: ; preds = %lor.end124.i br i1 %call123.i, label %if.then127.i, label %if.else.i @@ -9474,37 +9422,37 @@ call.i.noexc106.i: ; preds = %if.then127.i to label %.noexc108.i unwind label %lpad130.i .noexc108.i: ; preds = %call.i.noexc106.i - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i471) - %call.i.i473 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp128.i) - to label %if.end.i475 unwind label %terminate.lpad.i.i474 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i467) + %call.i.i469 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp128.i) + to label %if.end.i471 unwind label %terminate.lpad.i.i470 -terminate.lpad.i.i474: ; preds = %.noexc108.i - %196 = landingpad { ptr, i32 } +terminate.lpad.i.i470: ; preds = %.noexc108.i + %193 = landingpad { ptr, i32 } catch ptr null - %197 = extractvalue { ptr, i32 } %196, 0 - call void @__clang_call_terminate(ptr %197) #18 + %194 = extractvalue { ptr, i32 } %193, 0 + call void @__clang_call_terminate(ptr %194) #18 unreachable -if.end.i475: ; preds = %.noexc108.i - store ptr %ref.tmp128.i, ptr %__guard.i471, align 8 - %call4.i476 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp128.i) - to label %invoke.cont.i478 unwind label %lpad.i477 +if.end.i471: ; preds = %.noexc108.i + store ptr %ref.tmp128.i, ptr %__guard.i467, align 8 + %call4.i472 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp128.i) + to label %invoke.cont.i474 unwind label %lpad.i473 -invoke.cont.i478: ; preds = %if.end.i475 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i476, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) #17 - store ptr null, ptr %__guard.i471, align 8 +invoke.cont.i474: ; preds = %if.end.i471 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i472, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) #17 + store ptr null, ptr %__guard.i467, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp128.i, i64 noundef 12) - to label %invoke.cont131.i unwind label %lpad.i477 + to label %invoke.cont131.i unwind label %lpad.i473 -lpad.i477: ; preds = %invoke.cont.i478, %if.end.i475 - %198 = landingpad { ptr, i32 } +lpad.i473: ; preds = %invoke.cont.i474, %if.end.i471 + %195 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i471) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i467) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp128.i) #17 br label %ehcleanup138.i -invoke.cont131.i: ; preds = %invoke.cont.i478 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i471) +invoke.cont131.i: ; preds = %invoke.cont.i474 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i467) %call134.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp128.i) to label %invoke.cont133.i unwind label %lpad132.i @@ -9512,146 +9460,146 @@ invoke.cont133.i: ; preds = %invoke.cont131.i %call136.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %call134.i, ptr noundef nonnull @.str.161) to label %if.end177.i unwind label %lpad132.i -lpad.i424: ; preds = %call.i.noexc.i, %.noexc429 - %199 = landingpad { ptr, i32 } +lpad.i420: ; preds = %call.i.noexc.i, %.noexc425 + %196 = landingpad { ptr, i32 } cleanup br label %ehcleanup.i -lpad3.i: ; preds = %invoke.cont.i425 - %200 = landingpad { ptr, i32 } +lpad3.i: ; preds = %invoke.cont.i421 + %197 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp1.i) #17 br label %ehcleanup.i -ehcleanup.i: ; preds = %lpad3.i, %lpad.i424, %lpad.i521 - %.pn.i = phi { ptr, i32 } [ %200, %lpad3.i ], [ %199, %lpad.i424 ], [ %160, %lpad.i521 ] +ehcleanup.i: ; preds = %lpad3.i, %lpad.i420, %lpad.i517 + %.pn.i = phi { ptr, i32 } [ %197, %lpad3.i ], [ %196, %lpad.i420 ], [ %157, %lpad.i517 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2.i) #17 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i421) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i417) #17 br label %ehcleanup697 -lpad22.i: ; preds = %invoke.cont195.i, %invoke.cont192.i, %invoke.cont189.i, %invoke.cont186.i, %invoke.cont183.i, %invoke.cont180.i, %if.end177.i, %lor.rhs118.i, %lor.end.i, %lor.rhs.i, %invoke.cont97.i, %invoke.cont82.i, %invoke.cont62.i, %invoke.cont43.i, %invoke.cont29.i, %.noexc435 - %201 = landingpad { ptr, i32 } +lpad22.i: ; preds = %invoke.cont195.i, %invoke.cont192.i, %invoke.cont189.i, %invoke.cont186.i, %invoke.cont183.i, %invoke.cont180.i, %if.end177.i, %lor.rhs118.i, %lor.end.i, %lor.rhs.i, %invoke.cont97.i, %invoke.cont82.i, %invoke.cont62.i, %invoke.cont43.i, %invoke.cont29.i, %.noexc431 + %198 = landingpad { ptr, i32 } cleanup br label %ehcleanup199.i lpad26.i: ; preds = %call.i.noexc66.i, %invoke.cont23.i - %202 = landingpad { ptr, i32 } + %199 = landingpad { ptr, i32 } cleanup br label %ehcleanup33.i lpad28.i: ; preds = %invoke.cont27.i - %203 = landingpad { ptr, i32 } + %200 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp24.i) #17 br label %ehcleanup33.i ehcleanup33.i: ; preds = %lpad28.i, %lpad26.i, %lpad.i65.i - %.pn36.i = phi { ptr, i32 } [ %203, %lpad28.i ], [ %202, %lpad26.i ], [ %170, %lpad.i65.i ] + %.pn36.i = phi { ptr, i32 } [ %200, %lpad28.i ], [ %199, %lpad26.i ], [ %167, %lpad.i65.i ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp25.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20.i) #17 br label %ehcleanup199.i lpad40.i: ; preds = %call.i.noexc74.i, %invoke.cont37.i - %204 = landingpad { ptr, i32 } + %201 = landingpad { ptr, i32 } cleanup br label %ehcleanup47.i lpad42.i: ; preds = %invoke.cont41.i - %205 = landingpad { ptr, i32 } + %202 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp38.i) #17 br label %ehcleanup47.i ehcleanup47.i: ; preds = %lpad42.i, %lpad40.i, %lpad.i73.i - %.pn38.i = phi { ptr, i32 } [ %205, %lpad42.i ], [ %204, %lpad40.i ], [ %172, %lpad.i73.i ] + %.pn38.i = phi { ptr, i32 } [ %202, %lpad42.i ], [ %201, %lpad40.i ], [ %169, %lpad.i73.i ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp39.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp35.i) #17 br label %ehcleanup199.i lpad55.i: ; preds = %invoke.cont54.i - %206 = landingpad { ptr, i32 } + %203 = landingpad { ptr, i32 } cleanup br label %ehcleanup68.i lpad59.i: ; preds = %call.i.noexc82.i, %invoke.cont56.i - %207 = landingpad { ptr, i32 } + %204 = landingpad { ptr, i32 } cleanup br label %ehcleanup66.i lpad61.i: ; preds = %invoke.cont60.i - %208 = landingpad { ptr, i32 } + %205 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp57.i) #17 br label %ehcleanup66.i -ehcleanup66.i: ; preds = %lpad61.i, %lpad59.i, %lpad.i510 - %.pn40.i = phi { ptr, i32 } [ %208, %lpad61.i ], [ %207, %lpad59.i ], [ %177, %lpad.i510 ] +ehcleanup66.i: ; preds = %lpad61.i, %lpad59.i, %lpad.i506 + %.pn40.i = phi { ptr, i32 } [ %205, %lpad61.i ], [ %204, %lpad59.i ], [ %174, %lpad.i506 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp58.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp49.i) #17 br label %ehcleanup68.i ehcleanup68.i: ; preds = %ehcleanup66.i, %lpad55.i - %.pn40.pn.i = phi { ptr, i32 } [ %.pn40.i, %ehcleanup66.i ], [ %206, %lpad55.i ] + %.pn40.pn.i = phi { ptr, i32 } [ %.pn40.i, %ehcleanup66.i ], [ %203, %lpad55.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp50.i) #17 br label %ehcleanup199.i lpad75.i: ; preds = %invoke.cont74.i - %209 = landingpad { ptr, i32 } + %206 = landingpad { ptr, i32 } cleanup br label %ehcleanup88.i lpad79.i: ; preds = %call.i.noexc90.i, %invoke.cont76.i - %210 = landingpad { ptr, i32 } + %207 = landingpad { ptr, i32 } cleanup br label %ehcleanup86.i lpad81.i: ; preds = %invoke.cont80.i - %211 = landingpad { ptr, i32 } + %208 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp77.i) #17 br label %ehcleanup86.i -ehcleanup86.i: ; preds = %lpad81.i, %lpad79.i, %lpad.i499 - %.pn43.i = phi { ptr, i32 } [ %211, %lpad81.i ], [ %210, %lpad79.i ], [ %182, %lpad.i499 ] +ehcleanup86.i: ; preds = %lpad81.i, %lpad79.i, %lpad.i495 + %.pn43.i = phi { ptr, i32 } [ %208, %lpad81.i ], [ %207, %lpad79.i ], [ %179, %lpad.i495 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp78.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp69.i) #17 br label %ehcleanup88.i ehcleanup88.i: ; preds = %ehcleanup86.i, %lpad75.i - %.pn43.pn.i = phi { ptr, i32 } [ %.pn43.i, %ehcleanup86.i ], [ %209, %lpad75.i ] + %.pn43.pn.i = phi { ptr, i32 } [ %.pn43.i, %ehcleanup86.i ], [ %206, %lpad75.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp70.i) #17 br label %ehcleanup199.i lpad94.i: ; preds = %call.i.noexc98.i, %invoke.cont91.i - %212 = landingpad { ptr, i32 } + %209 = landingpad { ptr, i32 } cleanup br label %ehcleanup101.i lpad96.i: ; preds = %invoke.cont95.i - %213 = landingpad { ptr, i32 } + %210 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp92.i) #17 br label %ehcleanup101.i -ehcleanup101.i: ; preds = %lpad96.i, %lpad94.i, %lpad.i488 - %.pn46.i = phi { ptr, i32 } [ %213, %lpad96.i ], [ %212, %lpad94.i ], [ %186, %lpad.i488 ] +ehcleanup101.i: ; preds = %lpad96.i, %lpad94.i, %lpad.i484 + %.pn46.i = phi { ptr, i32 } [ %210, %lpad96.i ], [ %209, %lpad94.i ], [ %183, %lpad.i484 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp93.i) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp89.i) #17 br label %ehcleanup199.i lpad130.i: ; preds = %call.i.noexc106.i, %if.then127.i - %214 = landingpad { ptr, i32 } + %211 = landingpad { ptr, i32 } cleanup br label %ehcleanup138.i lpad132.i: ; preds = %invoke.cont133.i, %invoke.cont131.i - %215 = landingpad { ptr, i32 } + %212 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp128.i) #17 br label %ehcleanup138.i -ehcleanup138.i: ; preds = %lpad132.i, %lpad130.i, %lpad.i477 - %.pn54.i = phi { ptr, i32 } [ %215, %lpad132.i ], [ %214, %lpad130.i ], [ %198, %lpad.i477 ] +ehcleanup138.i: ; preds = %lpad132.i, %lpad130.i, %lpad.i473 + %.pn54.i = phi { ptr, i32 } [ %212, %lpad132.i ], [ %211, %lpad130.i ], [ %195, %lpad.i473 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp129.i) #17 br label %ehcleanup199.i @@ -9665,37 +9613,37 @@ call.i.noexc114.i: ; preds = %if.else.i to label %.noexc116.i unwind label %lpad141.i .noexc116.i: ; preds = %call.i.noexc114.i - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i460) - %call.i.i462 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp139.i) - to label %if.end.i464 unwind label %terminate.lpad.i.i463 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i456) + %call.i.i458 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp139.i) + to label %if.end.i460 unwind label %terminate.lpad.i.i459 -terminate.lpad.i.i463: ; preds = %.noexc116.i - %216 = landingpad { ptr, i32 } +terminate.lpad.i.i459: ; preds = %.noexc116.i + %213 = landingpad { ptr, i32 } catch ptr null - %217 = extractvalue { ptr, i32 } %216, 0 - call void @__clang_call_terminate(ptr %217) #18 + %214 = extractvalue { ptr, i32 } %213, 0 + call void @__clang_call_terminate(ptr %214) #18 unreachable -if.end.i464: ; preds = %.noexc116.i - store ptr %ref.tmp139.i, ptr %__guard.i460, align 8 - %call4.i465 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp139.i) - to label %invoke.cont.i467 unwind label %lpad.i466 +if.end.i460: ; preds = %.noexc116.i + store ptr %ref.tmp139.i, ptr %__guard.i456, align 8 + %call4.i461 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp139.i) + to label %invoke.cont.i463 unwind label %lpad.i462 -invoke.cont.i467: ; preds = %if.end.i464 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i465, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) #17 - store ptr null, ptr %__guard.i460, align 8 +invoke.cont.i463: ; preds = %if.end.i460 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i461, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) #17 + store ptr null, ptr %__guard.i456, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp139.i, i64 noundef 12) - to label %invoke.cont142.i unwind label %lpad.i466 + to label %invoke.cont142.i unwind label %lpad.i462 -lpad.i466: ; preds = %invoke.cont.i467, %if.end.i464 - %218 = landingpad { ptr, i32 } +lpad.i462: ; preds = %invoke.cont.i463, %if.end.i460 + %215 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i460) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i456) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp139.i) #17 br label %ehcleanup149.i -invoke.cont142.i: ; preds = %invoke.cont.i467 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i460) +invoke.cont142.i: ; preds = %invoke.cont.i463 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i456) %call145.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp139.i) to label %invoke.cont144.i unwind label %lpad143.i @@ -9704,18 +9652,18 @@ invoke.cont144.i: ; preds = %invoke.cont142.i to label %if.end177.i unwind label %lpad143.i lpad141.i: ; preds = %call.i.noexc114.i, %if.else.i - %219 = landingpad { ptr, i32 } + %216 = landingpad { ptr, i32 } cleanup br label %ehcleanup149.i lpad143.i: ; preds = %invoke.cont144.i, %invoke.cont142.i - %220 = landingpad { ptr, i32 } + %217 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp139.i) #17 br label %ehcleanup149.i -ehcleanup149.i: ; preds = %lpad143.i, %lpad141.i, %lpad.i466 - %.pn52.i = phi { ptr, i32 } [ %220, %lpad143.i ], [ %219, %lpad141.i ], [ %218, %lpad.i466 ] +ehcleanup149.i: ; preds = %lpad143.i, %lpad141.i, %lpad.i462 + %.pn52.i = phi { ptr, i32 } [ %217, %lpad143.i ], [ %216, %lpad141.i ], [ %215, %lpad.i462 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp140.i) #17 br label %ehcleanup199.i @@ -9732,37 +9680,37 @@ call.i.noexc122.i: ; preds = %if.then152.i to label %.noexc124.i unwind label %lpad155.i .noexc124.i: ; preds = %call.i.noexc122.i - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i449) - %call.i.i451 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp153.i) - to label %if.end.i453 unwind label %terminate.lpad.i.i452 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i445) + %call.i.i447 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp153.i) + to label %if.end.i449 unwind label %terminate.lpad.i.i448 -terminate.lpad.i.i452: ; preds = %.noexc124.i - %221 = landingpad { ptr, i32 } +terminate.lpad.i.i448: ; preds = %.noexc124.i + %218 = landingpad { ptr, i32 } catch ptr null - %222 = extractvalue { ptr, i32 } %221, 0 - call void @__clang_call_terminate(ptr %222) #18 + %219 = extractvalue { ptr, i32 } %218, 0 + call void @__clang_call_terminate(ptr %219) #18 unreachable -if.end.i453: ; preds = %.noexc124.i - store ptr %ref.tmp153.i, ptr %__guard.i449, align 8 - %call4.i454 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp153.i) - to label %invoke.cont.i456 unwind label %lpad.i455 +if.end.i449: ; preds = %.noexc124.i + store ptr %ref.tmp153.i, ptr %__guard.i445, align 8 + %call4.i450 = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp153.i) + to label %invoke.cont.i452 unwind label %lpad.i451 -invoke.cont.i456: ; preds = %if.end.i453 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i454, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) #17 - store ptr null, ptr %__guard.i449, align 8 +invoke.cont.i452: ; preds = %if.end.i449 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i450, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) #17 + store ptr null, ptr %__guard.i445, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp153.i, i64 noundef 12) - to label %invoke.cont156.i unwind label %lpad.i455 + to label %invoke.cont156.i unwind label %lpad.i451 -lpad.i455: ; preds = %invoke.cont.i456, %if.end.i453 - %223 = landingpad { ptr, i32 } +lpad.i451: ; preds = %invoke.cont.i452, %if.end.i449 + %220 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i449) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i445) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp153.i) #17 br label %ehcleanup163.i -invoke.cont156.i: ; preds = %invoke.cont.i456 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i449) +invoke.cont156.i: ; preds = %invoke.cont.i452 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i445) %call159.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp153.i) to label %invoke.cont158.i unwind label %lpad157.i @@ -9771,18 +9719,18 @@ invoke.cont158.i: ; preds = %invoke.cont156.i to label %if.end177.i unwind label %lpad157.i lpad155.i: ; preds = %call.i.noexc122.i, %if.then152.i - %224 = landingpad { ptr, i32 } + %221 = landingpad { ptr, i32 } cleanup br label %ehcleanup163.i lpad157.i: ; preds = %invoke.cont158.i, %invoke.cont156.i - %225 = landingpad { ptr, i32 } + %222 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp153.i) #17 br label %ehcleanup163.i -ehcleanup163.i: ; preds = %lpad157.i, %lpad155.i, %lpad.i455 - %.pn50.i = phi { ptr, i32 } [ %225, %lpad157.i ], [ %224, %lpad155.i ], [ %223, %lpad.i455 ] +ehcleanup163.i: ; preds = %lpad157.i, %lpad155.i, %lpad.i451 + %.pn50.i = phi { ptr, i32 } [ %222, %lpad157.i ], [ %221, %lpad155.i ], [ %220, %lpad.i451 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp154.i) #17 br label %ehcleanup199.i @@ -9797,35 +9745,35 @@ call.i.noexc130.i: ; preds = %if.else164.i .noexc132.i: ; preds = %call.i.noexc130.i call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__guard.i) - %call.i.i444 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp165.i) + %call.i.i440 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp165.i) to label %if.end.i unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %.noexc132.i - %226 = landingpad { ptr, i32 } + %223 = landingpad { ptr, i32 } catch ptr null - %227 = extractvalue { ptr, i32 } %226, 0 - call void @__clang_call_terminate(ptr %227) #18 + %224 = extractvalue { ptr, i32 } %223, 0 + call void @__clang_call_terminate(ptr %224) #18 unreachable if.end.i: ; preds = %.noexc132.i store ptr %ref.tmp165.i, ptr %__guard.i, align 8 %call4.i = invoke noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp165.i) - to label %invoke.cont.i446 unwind label %lpad.i445 + to label %invoke.cont.i442 unwind label %lpad.i441 -invoke.cont.i446: ; preds = %if.end.i +invoke.cont.i442: ; preds = %if.end.i call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %call4.i, ptr noundef nonnull @.str.156, ptr noundef nonnull getelementptr inbounds ([13 x i8], ptr @.str.156, i64 0, i64 12)) #17 store ptr null, ptr %__guard.i, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp165.i, i64 noundef 12) - to label %invoke.cont168.i unwind label %lpad.i445 + to label %invoke.cont168.i unwind label %lpad.i441 -lpad.i445: ; preds = %invoke.cont.i446, %if.end.i - %228 = landingpad { ptr, i32 } +lpad.i441: ; preds = %invoke.cont.i442, %if.end.i + %225 = landingpad { ptr, i32 } cleanup call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %__guard.i) #17 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp165.i) #17 br label %ehcleanup175.i -invoke.cont168.i: ; preds = %invoke.cont.i446 +invoke.cont168.i: ; preds = %invoke.cont.i442 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__guard.i) %call171.i = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp165.i) to label %invoke.cont170.i unwind label %lpad169.i @@ -9835,18 +9783,18 @@ invoke.cont170.i: ; preds = %invoke.cont168.i to label %if.end177.i unwind label %lpad169.i lpad167.i: ; preds = %call.i.noexc130.i, %if.else164.i - %229 = landingpad { ptr, i32 } + %226 = landingpad { ptr, i32 } cleanup br label %ehcleanup175.i lpad169.i: ; preds = %invoke.cont170.i, %invoke.cont168.i - %230 = landingpad { ptr, i32 } + %227 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp165.i) #17 br label %ehcleanup175.i -ehcleanup175.i: ; preds = %lpad169.i, %lpad167.i, %lpad.i445 - %.pn48.i = phi { ptr, i32 } [ %230, %lpad169.i ], [ %229, %lpad167.i ], [ %228, %lpad.i445 ] +ehcleanup175.i: ; preds = %lpad169.i, %lpad167.i, %lpad.i441 + %.pn48.i = phi { ptr, i32 } [ %227, %lpad169.i ], [ %226, %lpad167.i ], [ %225, %lpad.i441 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp166.i) #17 br label %ehcleanup199.i @@ -9857,120 +9805,120 @@ if.end177.i: ; preds = %invoke.cont170.i, % call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp154.sink.i) #17 %vtable178.i = load ptr, ptr %p, align 8 %vfn179.i = getelementptr inbounds ptr, ptr %vtable178.i, i64 2 - %231 = load ptr, ptr %vfn179.i, align 8 - invoke void %231(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.177) + %228 = load ptr, ptr %vfn179.i, align 8 + invoke void %228(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.177) to label %invoke.cont180.i unwind label %lpad22.i invoke.cont180.i: ; preds = %if.end177.i %vtable181.i = load ptr, ptr %p, align 8 %vfn182.i = getelementptr inbounds ptr, ptr %vtable181.i, i64 5 - %232 = load ptr, ptr %vfn182.i, align 8 - invoke void %232(ptr noundef nonnull align 8 dereferenceable(8) %p) + %229 = load ptr, ptr %vfn182.i, align 8 + invoke void %229(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont183.i unwind label %lpad22.i invoke.cont183.i: ; preds = %invoke.cont180.i %vtable184.i = load ptr, ptr %p, align 8 %vfn185.i = getelementptr inbounds ptr, ptr %vtable184.i, i64 2 - %233 = load ptr, ptr %vfn185.i, align 8 - invoke void %233(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.178) + %230 = load ptr, ptr %vfn185.i, align 8 + invoke void %230(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.178) to label %invoke.cont186.i unwind label %lpad22.i invoke.cont186.i: ; preds = %invoke.cont183.i %vtable187.i = load ptr, ptr %p, align 8 %vfn188.i = getelementptr inbounds ptr, ptr %vtable187.i, i64 5 - %234 = load ptr, ptr %vfn188.i, align 8 - invoke void %234(ptr noundef nonnull align 8 dereferenceable(8) %p) + %231 = load ptr, ptr %vfn188.i, align 8 + invoke void %231(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont189.i unwind label %lpad22.i invoke.cont189.i: ; preds = %invoke.cont186.i %vtable190.i = load ptr, ptr %p, align 8 %vfn191.i = getelementptr inbounds ptr, ptr %vtable190.i, i64 2 - %235 = load ptr, ptr %vfn191.i, align 8 - invoke void %235(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.179) + %232 = load ptr, ptr %vfn191.i, align 8 + invoke void %232(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull align 8 dereferenceable(48) %vars, ptr noundef nonnull @.str.179) to label %invoke.cont192.i unwind label %lpad22.i invoke.cont192.i: ; preds = %invoke.cont189.i %vtable193.i = load ptr, ptr %p, align 8 %vfn194.i = getelementptr inbounds ptr, ptr %vtable193.i, i64 6 - %236 = load ptr, ptr %vfn194.i, align 8 - invoke void %236(ptr noundef nonnull align 8 dereferenceable(8) %p) + %233 = load ptr, ptr %vfn194.i, align 8 + invoke void %233(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont195.i unwind label %lpad22.i invoke.cont195.i: ; preds = %invoke.cont192.i %vtable196.i = load ptr, ptr %p, align 8 %vfn197.i = getelementptr inbounds ptr, ptr %vtable196.i, i64 6 - %237 = load ptr, ptr %vfn197.i, align 8 - invoke void %237(ptr noundef nonnull align 8 dereferenceable(8) %p) + %234 = load ptr, ptr %vfn197.i, align 8 + invoke void %234(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont198.i unwind label %lpad22.i invoke.cont198.i: ; preds = %invoke.cont195.i - %238 = load ptr, ptr %method.i, align 8 - %cmp.not.i.i = icmp eq ptr %238, null + %235 = load ptr, ptr %method.i, align 8 + %cmp.not.i.i = icmp eq ptr %235, null br i1 %cmp.not.i.i, label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit.i, label %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i.i _ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i.i: ; preds = %invoke.cont198.i - %vtable.i.i.i = load ptr, ptr %238, align 8 + %vtable.i.i.i = load ptr, ptr %235, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 1 - %239 = load ptr, ptr %vfn.i.i.i, align 8 - call void %239(ptr noundef nonnull align 8 dereferenceable(8) %238) #17 + %236 = load ptr, ptr %vfn.i.i.i, align 8 + call void %236(ptr noundef nonnull align 8 dereferenceable(8) %235) #17 br label %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit.i _ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i.i, %invoke.cont198.i store ptr null, ptr %method.i, align 8 %vtable15.i = load ptr, ptr %service, align 8 %vfn16.i = getelementptr inbounds ptr, ptr %vtable15.i, i64 8 - %240 = load ptr, ptr %vfn16.i, align 8 - %call17.i436 = invoke noundef i32 %240(ptr noundef nonnull align 8 dereferenceable(8) %service) + %237 = load ptr, ptr %vfn16.i, align 8 + %call17.i432 = invoke noundef i32 %237(ptr noundef nonnull align 8 dereferenceable(8) %service) to label %call17.i.noexc unwind label %lpad24.loopexit call17.i.noexc: ; preds = %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit.i %inc.i = add nuw nsw i32 %i.0144.i, 1 - %cmp.i = icmp slt i32 %inc.i, %call17.i436 + %cmp.i = icmp slt i32 %inc.i, %call17.i432 br i1 %cmp.i, label %for.body.i, label %for.end.i, !llvm.loop !63 ehcleanup199.i: ; preds = %ehcleanup175.i, %ehcleanup163.i, %ehcleanup149.i, %ehcleanup138.i, %ehcleanup101.i, %ehcleanup88.i, %ehcleanup68.i, %ehcleanup47.i, %ehcleanup33.i, %lpad22.i, %lpad.i60.i - %.pn56.i = phi { ptr, i32 } [ %.pn54.i, %ehcleanup138.i ], [ %.pn52.i, %ehcleanup149.i ], [ %.pn50.i, %ehcleanup163.i ], [ %.pn48.i, %ehcleanup175.i ], [ %.pn46.i, %ehcleanup101.i ], [ %.pn43.pn.i, %ehcleanup88.i ], [ %.pn40.pn.i, %ehcleanup68.i ], [ %.pn38.i, %ehcleanup47.i ], [ %.pn36.i, %ehcleanup33.i ], [ %201, %lpad22.i ], [ %169, %lpad.i60.i ] - %241 = load ptr, ptr %method.i, align 8 - %cmp.not.i135.i = icmp eq ptr %241, null + %.pn56.i = phi { ptr, i32 } [ %.pn54.i, %ehcleanup138.i ], [ %.pn52.i, %ehcleanup149.i ], [ %.pn50.i, %ehcleanup163.i ], [ %.pn48.i, %ehcleanup175.i ], [ %.pn46.i, %ehcleanup101.i ], [ %.pn43.pn.i, %ehcleanup88.i ], [ %.pn40.pn.i, %ehcleanup68.i ], [ %.pn38.i, %ehcleanup47.i ], [ %.pn36.i, %ehcleanup33.i ], [ %198, %lpad22.i ], [ %166, %lpad.i60.i ] + %238 = load ptr, ptr %method.i, align 8 + %cmp.not.i135.i = icmp eq ptr %238, null br i1 %cmp.not.i135.i, label %ehcleanup697, label %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i136.i _ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i136.i: ; preds = %ehcleanup199.i - %vtable.i.i137.i = load ptr, ptr %241, align 8 + %vtable.i.i137.i = load ptr, ptr %238, align 8 %vfn.i.i138.i = getelementptr inbounds ptr, ptr %vtable.i.i137.i, i64 1 - %242 = load ptr, ptr %vfn.i.i138.i, align 8 - call void %242(ptr noundef nonnull align 8 dereferenceable(8) %241) #17 + %239 = load ptr, ptr %vfn.i.i138.i, align 8 + call void %239(ptr noundef nonnull align 8 dereferenceable(8) %238) #17 br label %ehcleanup697 for.end.i: ; preds = %call17.i.noexc, %call17142.i.noexc %vtable200.i = load ptr, ptr %p, align 8 %vfn201.i = getelementptr inbounds ptr, ptr %vtable200.i, i64 3 - %243 = load ptr, ptr %vfn201.i, align 8 - invoke void %243(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.180) - to label %.noexc437 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %240 = load ptr, ptr %vfn201.i, align 8 + invoke void %240(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.180) + to label %.noexc433 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc437: ; preds = %for.end.i +.noexc433: ; preds = %for.end.i %vtable202.i = load ptr, ptr %p, align 8 %vfn203.i = getelementptr inbounds ptr, ptr %vtable202.i, i64 6 - %244 = load ptr, ptr %vfn203.i, align 8 - invoke void %244(ptr noundef nonnull align 8 dereferenceable(8) %p) - to label %.noexc438 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %241 = load ptr, ptr %vfn203.i, align 8 + invoke void %241(ptr noundef nonnull align 8 dereferenceable(8) %p) + to label %.noexc434 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc438: ; preds = %.noexc437 +.noexc434: ; preds = %.noexc433 %vtable204.i = load ptr, ptr %p, align 8 %vfn205.i = getelementptr inbounds ptr, ptr %vtable204.i, i64 6 - %245 = load ptr, ptr %vfn205.i, align 8 - invoke void %245(ptr noundef nonnull align 8 dereferenceable(8) %p) - to label %.noexc439 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp + %242 = load ptr, ptr %vfn205.i, align 8 + invoke void %242(ptr noundef nonnull align 8 dereferenceable(8) %p) + to label %.noexc435 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -.noexc439: ; preds = %.noexc438 +.noexc435: ; preds = %.noexc434 %vtable206.i = load ptr, ptr %p, align 8 %vfn207.i = getelementptr inbounds ptr, ptr %vtable206.i, i64 6 - %246 = load ptr, ptr %vfn207.i, align 8 - invoke void %246(ptr noundef nonnull align 8 dereferenceable(8) %p) + %243 = load ptr, ptr %vfn207.i, align 8 + invoke void %243(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont686 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -invoke.cont686: ; preds = %.noexc439 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i421) +invoke.cont686: ; preds = %.noexc435 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i417) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp1.i) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp2.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %method.i) @@ -10001,38 +9949,38 @@ invoke.cont686: ; preds = %.noexc439 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp166.i) %vtable687 = load ptr, ptr %p, align 8 %vfn688 = getelementptr inbounds ptr, ptr %vtable687, i64 3 - %247 = load ptr, ptr %vfn688, align 8 - invoke void %247(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.71) + %244 = load ptr, ptr %vfn688, align 8 + invoke void %244(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.71) to label %if.end690 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp -lpad677: ; preds = %call.i413.noexc, %invoke.cont674 - %248 = landingpad { ptr, i32 } +lpad677: ; preds = %call.i409.noexc, %invoke.cont674 + %245 = landingpad { ptr, i32 } cleanup br label %ehcleanup685 lpad679: ; preds = %invoke.cont680, %invoke.cont678 - %249 = landingpad { ptr, i32 } + %246 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp675) #17 br label %ehcleanup685 -ehcleanup685: ; preds = %lpad677, %lpad.i416, %lpad679 - %.pn132 = phi { ptr, i32 } [ %249, %lpad679 ], [ %248, %lpad677 ], [ %156, %lpad.i416 ] +ehcleanup685: ; preds = %lpad677, %lpad.i412, %lpad679 + %.pn132 = phi { ptr, i32 } [ %246, %lpad679 ], [ %245, %lpad677 ], [ %153, %lpad.i412 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp676) #17 br label %ehcleanup697 if.end690: ; preds = %invoke.cont686, %for.end %vtable691 = load ptr, ptr %p, align 8 %vfn692 = getelementptr inbounds ptr, ptr %vtable691, i64 6 - %250 = load ptr, ptr %vfn692, align 8 - invoke void %250(ptr noundef nonnull align 8 dereferenceable(8) %p) + %247 = load ptr, ptr %vfn692, align 8 + invoke void %247(ptr noundef nonnull align 8 dereferenceable(8) %p) to label %invoke.cont693 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont693: ; preds = %if.end690 %vtable694 = load ptr, ptr %p, align 8 %vfn695 = getelementptr inbounds ptr, ptr %vtable694, i64 3 - %251 = load ptr, ptr %vfn695, align 8 - invoke void %251(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.64) + %248 = load ptr, ptr %vfn695, align 8 + invoke void %248(ptr noundef nonnull align 8 dereferenceable(8) %p, ptr noundef nonnull @.str.64) to label %invoke.cont696 unwind label %lpad24.loopexit.split-lp.loopexit.split-lp invoke.cont696: ; preds = %invoke.cont693 @@ -10041,8 +9989,8 @@ invoke.cont696: ; preds = %invoke.cont693 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %service_name) #17 ret void -ehcleanup697: ; preds = %lpad24.loopexit, %lpad24.loopexit.split-lp.loopexit.split-lp, %lpad24.loopexit.split-lp.loopexit, %ehcleanup.i, %ehcleanup199.i, %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i136.i, %lpad.i210, %ehcleanup685, %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit412, %ehcleanup84, %ehcleanup73, %lpad44 - %.pn172.pn = phi { ptr, i32 } [ %.pn172, %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit412 ], [ %.pn132, %ehcleanup685 ], [ %.pn130, %ehcleanup84 ], [ %.pn128, %ehcleanup73 ], [ %21, %lpad44 ], [ %20, %lpad.i210 ], [ %.pn.i, %ehcleanup.i ], [ %.pn56.i, %ehcleanup199.i ], [ %.pn56.i, %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i136.i ], [ %lpad.loopexit, %lpad24.loopexit ], [ %lpad.loopexit525, %lpad24.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp526, %lpad24.loopexit.split-lp.loopexit.split-lp ] +ehcleanup697: ; preds = %lpad24.loopexit, %lpad24.loopexit.split-lp.loopexit.split-lp, %lpad24.loopexit.split-lp.loopexit, %ehcleanup.i, %ehcleanup199.i, %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i136.i, %lpad.i209, %ehcleanup685, %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit408, %ehcleanup84, %ehcleanup73 + %.pn172.pn = phi { ptr, i32 } [ %.pn172, %_ZNSt10unique_ptrIKN14grpc_generator6MethodESt14default_deleteIS2_EED2Ev.exit408 ], [ %.pn132, %ehcleanup685 ], [ %.pn130, %ehcleanup84 ], [ %.pn128, %ehcleanup73 ], [ %18, %lpad.i209 ], [ %.pn.i, %ehcleanup.i ], [ %.pn56.i, %ehcleanup199.i ], [ %.pn56.i, %_ZNKSt14default_deleteIKN14grpc_generator6MethodEEclEPS2_.exit.i136.i ], [ %lpad.loopexit, %lpad24.loopexit ], [ %lpad.loopexit521, %lpad24.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp522, %lpad24.loopexit.split-lp.loopexit.split-lp ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %client_name) #17 br label %ehcleanup698 diff --git a/bench/flatbuffers/optimized/reflection.cpp.ll b/bench/flatbuffers/optimized/reflection.cpp.ll index 73cd2b29b58..f5e1d5f5504 100644 --- a/bench/flatbuffers/optimized/reflection.cpp.ll +++ b/bench/flatbuffers/optimized/reflection.cpp.ll @@ -1061,8 +1061,8 @@ entry: %ref.tmp50 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp55 = alloca %"class.std::__cxx11::basic_string", align 8 %call = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %_text, ptr noundef nonnull @.str.9) - %cmp52 = icmp eq i64 %length, 0 - br i1 %cmp52, label %for.end, label %for.body.lr.ph + %cmp53 = icmp eq i64 %length, 0 + br i1 %cmp53, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %entry %sub.ptr.rhs.cast = ptrtoint ptr %s to i64 @@ -1071,9 +1071,9 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %conv54 = phi i64 [ 0, %for.body.lr.ph ], [ %conv, %for.inc ] - %i.053 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] - %arrayidx = getelementptr inbounds i8, ptr %s, i64 %conv54 + %conv55 = phi i64 [ 0, %for.body.lr.ph ], [ %conv, %for.inc ] + %i.054 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] + %arrayidx = getelementptr inbounds i8, ptr %s, i64 %conv55 %1 = load i8, ptr %arrayidx, align 1 switch i8 %1, label %sw.default [ i8 10, label %sw.bb @@ -1169,9 +1169,9 @@ for.body22.lr.ph.i: ; preds = %if.end9.i %sub17.i = xor i32 %notmask.i, -1 %and18.i = and i32 %sub17.i, %conv15.i %5 = add nsw i32 %len.031.i, -2 - %scevgep65 = getelementptr i8, ptr %scevgep, i64 %conv54 + %scevgep67 = getelementptr i8, ptr %scevgep, i64 %conv55 %6 = zext i32 %indvars.iv to i64 - %scevgep67 = getelementptr i8, ptr %scevgep65, i64 %6 + %scevgep69 = getelementptr i8, ptr %scevgep67, i64 %6 br label %for.body22.i for.body22.i: ; preds = %if.end27.i, %for.body22.lr.ph.i @@ -1199,7 +1199,7 @@ for.end34.i: ; preds = %if.end27.i br i1 %or.cond1.i, label %if.then23, label %if.end38.i if.end38.i: ; preds = %for.end34.i - switch i32 %len.031.i, label %_ZN11flatbuffers8FromUTF8EPPKc.exit [ + switch i32 %len.031.i, label %default.unreachable.i [ i32 2, label %sw.bb.i i32 3, label %sw.bb44.i i32 4, label %sw.bb50.i @@ -1220,9 +1220,12 @@ sw.bb50.i: ; preds = %if.end38.i %or.cond4.i = icmp ult i32 %14, -1048576 br i1 %or.cond4.i, label %if.then23, label %_ZN11flatbuffers8FromUTF8EPPKc.exit -_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %if.end38.i, %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i - %utf8.1 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep67, %sw.bb50.i ], [ %scevgep67, %sw.bb44.i ], [ %scevgep67, %sw.bb.i ], [ %scevgep67, %if.end38.i ] - %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ], [ %or.i, %if.end38.i ] +default.unreachable.i: ; preds = %if.end38.i + unreachable + +_ZN11flatbuffers8FromUTF8EPPKc.exit: ; preds = %sw.bb.i, %sw.bb44.i, %sw.bb50.i, %if.then7.i + %utf8.1 = phi ptr [ %incdec.ptr.i, %if.then7.i ], [ %scevgep69, %sw.bb50.i ], [ %scevgep69, %sw.bb44.i ], [ %scevgep69, %sw.bb.i ] + %retval.0.i = phi i32 [ %conv8.i, %if.then7.i ], [ %or.i, %sw.bb50.i ], [ %or.i, %sw.bb44.i ], [ %or.i, %sw.bb.i ] %cmp22 = icmp slt i32 %retval.0.i, 0 br i1 %cmp22, label %if.then23, label %if.else29 @@ -1249,7 +1252,7 @@ if.else29: ; preds = %_ZN11flatbuffers8Fr if.then31: ; preds = %if.else29 %sub.ptr.lhs.cast = ptrtoint ptr %utf8.1 to i64 - %16 = add i64 %conv54, %sub.ptr.rhs.cast + %16 = add i64 %conv55, %sub.ptr.rhs.cast %sub = sub i64 %sub.ptr.lhs.cast, %16 %call35 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %_text, ptr noundef nonnull %arrayidx, i64 noundef %sub) br label %if.end61 @@ -1316,7 +1319,7 @@ if.end61: ; preds = %invoke.cont42, %inv br label %for.inc for.inc: ; preds = %sw.bb, %sw.bb4, %sw.bb6, %sw.bb8, %sw.bb10, %sw.bb12, %sw.bb14, %invoke.cont, %if.end61, %if.then - %i.1 = phi i32 [ %i.053, %if.then ], [ %i.053, %invoke.cont ], [ %conv66, %if.end61 ], [ %i.053, %sw.bb14 ], [ %i.053, %sw.bb12 ], [ %i.053, %sw.bb10 ], [ %i.053, %sw.bb8 ], [ %i.053, %sw.bb6 ], [ %i.053, %sw.bb4 ], [ %i.053, %sw.bb ] + %i.1 = phi i32 [ %i.054, %if.then ], [ %i.054, %invoke.cont ], [ %conv66, %if.end61 ], [ %i.054, %sw.bb14 ], [ %i.054, %sw.bb12 ], [ %i.054, %sw.bb10 ], [ %i.054, %sw.bb8 ], [ %i.054, %sw.bb6 ], [ %i.054, %sw.bb4 ], [ %i.054, %sw.bb ] %inc = add i32 %i.1, 1 %conv = zext i32 %inc to i64 %cmp.not = icmp ult i64 %conv, %length @@ -1327,8 +1330,8 @@ for.end: ; preds = %for.inc, %entry br label %return return: ; preds = %if.then23, %for.end - %cmp51 = phi i1 [ true, %for.end ], [ false, %if.then23 ] - ret i1 %cmp51 + %cmp52 = phi i1 [ true, %for.end ], [ false, %if.then23 ] + ret i1 %cmp52 eh.resume: ; preds = %lpad56, %lpad51, %lpad41, %lpad %ref.tmp55.sink = phi ptr [ %ref.tmp55, %lpad56 ], [ %ref.tmp50, %lpad51 ], [ %ref.tmp40, %lpad41 ], [ %ref.tmp, %lpad ] diff --git a/bench/folly/optimized/Compression.cpp.ll b/bench/folly/optimized/Compression.cpp.ll index 2f6b9591cdd..618b9176d40 100644 --- a/bench/folly/optimized/Compression.cpp.ll +++ b/bench/folly/optimized/Compression.cpp.ll @@ -313,7 +313,6 @@ $_ZTVN5folly17BadExpectedAccessIvEE = comdat any @_ZTSN5folly2io12_GLOBAL__N_116LZMA2StreamCodecE = internal constant [44 x i8] c"N5folly2io12_GLOBAL__N_116LZMA2StreamCodecE\00", align 1 @_ZTIN5folly2io12_GLOBAL__N_116LZMA2StreamCodecE = internal constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTSN5folly2io12_GLOBAL__N_116LZMA2StreamCodecE, ptr @_ZTIN5folly2io11StreamCodecE }, align 8 @.str.55 = private unnamed_addr constant [49 x i8] c"cannot create std::vector larger than max_size()\00", align 1 -@.str.56 = private unnamed_addr constant [34 x i8] c"LZMA2StreamCodec: invalid FlushOp\00", align 1 @.str.57 = private unnamed_addr constant [44 x i8] c"LZMA2StreamCodec: lzma_easy_encoder error: \00", align 1 @.str.58 = private unnamed_addr constant [19 x i8] c"index out of range\00", align 1 @.str.59 = private unnamed_addr constant [26 x i8] c"LZMA2StreamCodec: error: \00", align 1 @@ -7422,43 +7421,42 @@ sw.default.i: ; preds = %_ZN5folly8OptionalI invoke void @_ZNSt16invalid_argumentC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception.i87, ptr noundef nonnull @.str.60) to label %invoke.cont.i88.invoke unwind label %lpad.i -invoke.cont.i88.invoke: ; preds = %sw.default, %sw.default.i - %24 = phi ptr [ %exception, %sw.default ], [ %exception.i87, %sw.default.i ] - invoke void @__cxa_throw(ptr nonnull %24, ptr nonnull @_ZTISt16invalid_argument, ptr nonnull @_ZNSt16invalid_argumentD1Ev) #31 +invoke.cont.i88.invoke: ; preds = %sw.default.i + invoke void @__cxa_throw(ptr nonnull %exception.i87, ptr nonnull @_ZTISt16invalid_argument, ptr nonnull @_ZNSt16invalid_argumentD1Ev) #31 to label %invoke.cont.i88.cont unwind label %lpad invoke.cont.i88.cont: ; preds = %invoke.cont.i88.invoke unreachable lpad.i: ; preds = %sw.default.i - %25 = landingpad { ptr, i32 } + %24 = landingpad { ptr, i32 } cleanup tail call void @__cxa_free_exception(ptr %exception.i87) #29 br label %ehcleanup switch.lookup: ; preds = %_ZN5folly8OptionalI11lzma_streamEptEv.exit85 - %26 = zext nneg i32 %flushOp to i64 - %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table._ZN5folly2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS3_IPhEENS0_11StreamCodec7FlushOpE, i64 0, i64 %26 + %25 = zext nneg i32 %flushOp to i64 + %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table._ZN5folly2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS3_IPhEENS0_11StreamCodec7FlushOpE, i64 0, i64 %25 %switch.load = load i32, ptr %switch.gep, align 4 %call29 = tail call i32 @lzma_code(ptr noundef nonnull %cstream_, i32 noundef %switch.load) #29 %call31 = invoke fastcc noundef i32 @_ZN5folly2io12_GLOBAL__N_116lzmaThrowOnErrorE8lzma_ret(i32 noundef %call29) to label %invoke.cont30 unwind label %lpad invoke.cont30: ; preds = %switch.lookup - switch i32 %flushOp, label %sw.default [ + switch i32 %flushOp, label %default.unreachable [ i32 0, label %if.then.i i32 1, label %sw.bb32 i32 2, label %sw.bb42 ] lpad: ; preds = %if.then.i.i.i91, %switch.lookup, %invoke.cont.i88.invoke - %27 = landingpad { ptr, i32 } + %26 = landingpad { ptr, i32 } cleanup br label %ehcleanup sw.bb32: ; preds = %invoke.cont30 - %28 = load i8, ptr %hasValue.i.i.i63, align 8, !tbaa !160, !range !28, !noundef !29 - %tobool.not.i.i.i90 = icmp eq i8 %28, 0 + %27 = load i8, ptr %hasValue.i.i.i63, align 8, !tbaa !160, !range !28, !noundef !29 + %tobool.not.i.i.i90 = icmp eq i8 %27, 0 br i1 %tobool.not.i.i.i90, label %if.then.i.i.i91, label %invoke.cont34 if.then.i.i.i91: ; preds = %sw.bb32 @@ -7469,8 +7467,8 @@ if.then.i.i.i91: ; preds = %sw.bb32 unreachable invoke.cont34: ; preds = %sw.bb32 - %29 = load i64, ptr %avail_in, align 8, !tbaa !180 - %cmp = icmp eq i64 %29, 0 + %28 = load i64, ptr %avail_in, align 8, !tbaa !180 + %cmp = icmp eq i64 %28, 0 %.pre9 = load i64, ptr %avail_out, align 8, !tbaa !182 br i1 %cmp, label %invoke.cont38, label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit" @@ -7482,16 +7480,8 @@ sw.bb42: ; preds = %invoke.cont30 %cmp43 = icmp eq i32 %call29, 1 br label %if.then.i -sw.default: ; preds = %invoke.cont30 - %exception = tail call ptr @__cxa_allocate_exception(i64 16) #29 - invoke void @_ZNSt16invalid_argumentC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception, ptr noundef nonnull @.str.56) - to label %invoke.cont.i88.invoke unwind label %lpad44 - -lpad44: ; preds = %sw.default - %30 = landingpad { ptr, i32 } - cleanup - tail call void @__cxa_free_exception(ptr %exception) #29 - br label %ehcleanup +default.unreachable: ; preds = %invoke.cont30 + unreachable if.then.i: ; preds = %sw.bb42, %invoke.cont38, %invoke.cont30 %retval.0.ph = phi i1 [ %cmp41, %invoke.cont38 ], [ false, %invoke.cont30 ], [ %cmp43, %sw.bb42 ] @@ -7512,37 +7502,37 @@ if.then.i.i.i.i.i.i: ; preds = %if.then.i unreachable terminate.lpad.i.i.i: ; preds = %if.then.i.i.i.i.i.i - %31 = landingpad { ptr, i32 } + %29 = landingpad { ptr, i32 } catch ptr null - %32 = extractvalue { ptr, i32 } %31, 0 - tail call void @__clang_call_terminate(ptr %32) #28 + %30 = extractvalue { ptr, i32 } %29, 0 + tail call void @__clang_call_terminate(ptr %30) #28 unreachable "_ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit": ; preds = %"if.then.i._ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge", %invoke.cont34 - %33 = phi i64 [ %.pre8, %"if.then.i._ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %.pre9, %invoke.cont34 ] - %34 = phi i64 [ %.pre7, %"if.then.i._ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %29, %invoke.cont34 ] + %31 = phi i64 [ %.pre8, %"if.then.i._ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %.pre9, %invoke.cont34 ] + %32 = phi i64 [ %.pre7, %"if.then.i._ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %28, %invoke.cont34 ] %retval.0118 = phi i1 [ %retval.0.ph, %"if.then.i._ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ false, %invoke.cont34 ] - %35 = load ptr, ptr %e_.i66, align 8, !tbaa !51 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %35 to i64 - %36 = load ptr, ptr %input, align 8, !tbaa !50 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %36 to i64 - %37 = add i64 %34, %sub.ptr.rhs.cast.i.i.i.i - %sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %37 - %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %36, i64 %sub.i.i.i + %33 = load ptr, ptr %e_.i66, align 8, !tbaa !51 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %33 to i64 + %34 = load ptr, ptr %input, align 8, !tbaa !50 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %34 to i64 + %35 = add i64 %32, %sub.ptr.rhs.cast.i.i.i.i + %sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %35 + %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %34, i64 %sub.i.i.i store ptr %add.ptr.i.i.i.i, ptr %input, align 8, !tbaa !50 - %38 = load ptr, ptr %e_.i78, align 8, !tbaa !56 - %39 = load ptr, ptr %output, align 8, !tbaa !54 - %sub.ptr.lhs.cast.i11.i.i.i = ptrtoint ptr %38 to i64 - %sub.ptr.rhs.cast.i12.i.i.i = ptrtoint ptr %39 to i64 - %40 = add i64 %33, %sub.ptr.rhs.cast.i12.i.i.i - %sub8.i.i.i = sub i64 %sub.ptr.lhs.cast.i11.i.i.i, %40 - %add.ptr.i19.i.i.i = getelementptr inbounds i8, ptr %39, i64 %sub8.i.i.i + %36 = load ptr, ptr %e_.i78, align 8, !tbaa !56 + %37 = load ptr, ptr %output, align 8, !tbaa !54 + %sub.ptr.lhs.cast.i11.i.i.i = ptrtoint ptr %36 to i64 + %sub.ptr.rhs.cast.i12.i.i.i = ptrtoint ptr %37 to i64 + %38 = add i64 %31, %sub.ptr.rhs.cast.i12.i.i.i + %sub8.i.i.i = sub i64 %sub.ptr.lhs.cast.i11.i.i.i, %38 + %add.ptr.i19.i.i.i = getelementptr inbounds i8, ptr %37, i64 %sub8.i.i.i store ptr %add.ptr.i19.i.i.i, ptr %output, align 8, !tbaa !54 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %SCOPE_EXIT_STATE0) #29 br label %return -ehcleanup: ; preds = %lpad44, %lpad, %lpad.i - %.pn = phi { ptr, i32 } [ %30, %lpad44 ], [ %27, %lpad ], [ %25, %lpad.i ] +ehcleanup: ; preds = %lpad, %lpad.i + %.pn = phi { ptr, i32 } [ %26, %lpad ], [ %24, %lpad.i ] call fastcc void @"_ZN5folly6detail14ScopeGuardImplIZNS_2io12_GLOBAL__N_116LZMA2StreamCodec16doCompressStreamERNS_5RangeIPKhEERNS5_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev"(ptr noundef nonnull align 8 dereferenceable(32) %SCOPE_EXIT_STATE0) #29 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %SCOPE_EXIT_STATE0) #29 br label %common.resume diff --git a/bench/folly/optimized/Zlib.cpp.ll b/bench/folly/optimized/Zlib.cpp.ll index 6c067e5e8d9..9dc9e614c8b 100644 --- a/bench/folly/optimized/Zlib.cpp.ll +++ b/bench/folly/optimized/Zlib.cpp.ll @@ -1849,16 +1849,15 @@ sw.default.i: ; preds = %_ZN5folly8OptionalI invoke void @_ZNSt16invalid_argumentC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception.i89, ptr noundef nonnull @.str.20) to label %invoke.cont.i90.invoke unwind label %lpad.i -invoke.cont.i90.invoke: ; preds = %sw.default, %sw.default.i - %23 = phi ptr [ %exception, %sw.default ], [ %exception.i89, %sw.default.i ] - invoke void @__cxa_throw(ptr nonnull %23, ptr nonnull @_ZTISt16invalid_argument, ptr nonnull @_ZNSt16invalid_argumentD1Ev) #23 +invoke.cont.i90.invoke: ; preds = %sw.default.i + invoke void @__cxa_throw(ptr nonnull %exception.i89, ptr nonnull @_ZTISt16invalid_argument, ptr nonnull @_ZNSt16invalid_argumentD1Ev) #23 to label %invoke.cont.i90.cont unwind label %lpad38 invoke.cont.i90.cont: ; preds = %invoke.cont.i90.invoke unreachable lpad.i: ; preds = %sw.default.i - %24 = landingpad { ptr, i32 } + %23 = landingpad { ptr, i32 } cleanup tail call void @__cxa_free_exception(ptr %exception.i89) #21 br label %ehcleanup @@ -1873,20 +1872,20 @@ invoke.cont41: ; preds = %switch.lookup to label %invoke.cont43 unwind label %lpad38 invoke.cont43: ; preds = %invoke.cont41 - switch i32 %flush, label %sw.default [ + switch i32 %flush, label %default.unreachable [ i32 0, label %if.then.i103 i32 1, label %sw.bb45 i32 2, label %sw.bb56 ] lpad38: ; preds = %if.then.i.i.i93, %invoke.cont41, %switch.lookup, %invoke.cont.i90.invoke - %25 = landingpad { ptr, i32 } + %24 = landingpad { ptr, i32 } cleanup br label %ehcleanup sw.bb45: ; preds = %invoke.cont43 - %26 = load i8, ptr %hasValue.i.i.i72, align 8, !tbaa !53, !range !54, !noundef !55 - %tobool.not.i.i.i92 = icmp eq i8 %26, 0 + %25 = load i8, ptr %hasValue.i.i.i72, align 8, !tbaa !53, !range !54, !noundef !55 + %tobool.not.i.i.i92 = icmp eq i8 %25, 0 br i1 %tobool.not.i.i.i92, label %if.then.i.i.i93, label %invoke.cont47 if.then.i.i.i93: ; preds = %sw.bb45 @@ -1897,8 +1896,8 @@ if.then.i.i.i93: ; preds = %sw.bb45 unreachable invoke.cont47: ; preds = %sw.bb45 - %27 = load i32, ptr %avail_in, align 8, !tbaa !107 - %cmp50 = icmp eq i32 %27, 0 + %26 = load i32, ptr %avail_in, align 8, !tbaa !107 + %cmp50 = icmp eq i32 %26, 0 %.pre5 = load i32, ptr %avail_out, align 8, !tbaa !110 br i1 %cmp50, label %invoke.cont52, label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit" @@ -1910,16 +1909,8 @@ sw.bb56: ; preds = %invoke.cont43 %cmp57 = icmp eq i32 %call42, 1 br label %if.then.i103 -sw.default: ; preds = %invoke.cont43 - %exception = tail call ptr @__cxa_allocate_exception(i64 16) #21 - invoke void @_ZNSt16invalid_argumentC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception, ptr noundef nonnull @.str.20) - to label %invoke.cont.i90.invoke unwind label %lpad58 - -lpad58: ; preds = %sw.default - %28 = landingpad { ptr, i32 } - cleanup - tail call void @__cxa_free_exception(ptr %exception) #21 - br label %ehcleanup +default.unreachable: ; preds = %invoke.cont43 + unreachable if.then.i103: ; preds = %sw.bb56, %invoke.cont52, %invoke.cont43 %retval.0.ph = phi i1 [ %cmp55, %invoke.cont52 ], [ false, %invoke.cont43 ], [ %cmp57, %sw.bb56 ] @@ -1940,39 +1931,39 @@ if.then.i.i.i.i.i.i: ; preds = %if.then.i103 unreachable terminate.lpad.i.i.i: ; preds = %if.then.i.i.i.i.i.i - %29 = landingpad { ptr, i32 } + %27 = landingpad { ptr, i32 } catch ptr null - %30 = extractvalue { ptr, i32 } %29, 0 - tail call void @__clang_call_terminate(ptr %30) #25 + %28 = extractvalue { ptr, i32 } %27, 0 + tail call void @__clang_call_terminate(ptr %28) #25 unreachable "_ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit": ; preds = %"if.then.i103._ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge", %invoke.cont47 - %31 = phi i32 [ %.pre4, %"if.then.i103._ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %.pre5, %invoke.cont47 ] - %32 = phi i32 [ %.pre, %"if.then.i103._ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %27, %invoke.cont47 ] + %29 = phi i32 [ %.pre4, %"if.then.i103._ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %.pre5, %invoke.cont47 ] + %30 = phi i32 [ %.pre, %"if.then.i103._ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ %26, %invoke.cont47 ] %retval.0107 = phi i1 [ %retval.0.ph, %"if.then.i103._ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit_crit_edge" ], [ false, %invoke.cont47 ] - %33 = load ptr, ptr %e_.i, align 8, !tbaa !106 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %33 to i64 - %34 = load ptr, ptr %input, align 8, !tbaa !103 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %34 to i64 - %conv.i.i.i = zext i32 %32 to i64 - %35 = add i64 %sub.ptr.rhs.cast.i.i.i.i, %conv.i.i.i - %sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %35 - %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %34, i64 %sub.i.i.i + %31 = load ptr, ptr %e_.i, align 8, !tbaa !106 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %31 to i64 + %32 = load ptr, ptr %input, align 8, !tbaa !103 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %32 to i64 + %conv.i.i.i = zext i32 %30 to i64 + %33 = add i64 %sub.ptr.rhs.cast.i.i.i.i, %conv.i.i.i + %sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %33 + %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %32, i64 %sub.i.i.i store ptr %add.ptr.i.i.i.i, ptr %input, align 8, !tbaa !103 - %36 = load ptr, ptr %e_.i81, align 8, !tbaa !109 - %37 = load ptr, ptr %output, align 8, !tbaa !101 - %sub.ptr.lhs.cast.i12.i.i.i = ptrtoint ptr %36 to i64 - %sub.ptr.rhs.cast.i13.i.i.i = ptrtoint ptr %37 to i64 - %conv8.i.i.i = zext i32 %31 to i64 - %38 = add i64 %sub.ptr.rhs.cast.i13.i.i.i, %conv8.i.i.i - %sub9.i.i.i = sub i64 %sub.ptr.lhs.cast.i12.i.i.i, %38 - %add.ptr.i20.i.i.i = getelementptr inbounds i8, ptr %37, i64 %sub9.i.i.i + %34 = load ptr, ptr %e_.i81, align 8, !tbaa !109 + %35 = load ptr, ptr %output, align 8, !tbaa !101 + %sub.ptr.lhs.cast.i12.i.i.i = ptrtoint ptr %34 to i64 + %sub.ptr.rhs.cast.i13.i.i.i = ptrtoint ptr %35 to i64 + %conv8.i.i.i = zext i32 %29 to i64 + %36 = add i64 %sub.ptr.rhs.cast.i13.i.i.i, %conv8.i.i.i + %sub9.i.i.i = sub i64 %sub.ptr.lhs.cast.i12.i.i.i, %36 + %add.ptr.i20.i.i.i = getelementptr inbounds i8, ptr %35, i64 %sub9.i.i.i store ptr %add.ptr.i20.i.i.i, ptr %output, align 8, !tbaa !101 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %SCOPE_EXIT_STATE0) #21 br label %return -ehcleanup: ; preds = %lpad58, %lpad38, %lpad.i - %.pn = phi { ptr, i32 } [ %28, %lpad58 ], [ %25, %lpad38 ], [ %24, %lpad.i ] +ehcleanup: ; preds = %lpad38, %lpad.i + %.pn = phi { ptr, i32 } [ %24, %lpad38 ], [ %23, %lpad.i ] call fastcc void @"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zlib12_GLOBAL__N_115ZlibStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev"(ptr noundef nonnull align 8 dereferenceable(32) %SCOPE_EXIT_STATE0) #21 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %SCOPE_EXIT_STATE0) #21 br label %common.resume diff --git a/bench/folly/optimized/Zstd.cpp.ll b/bench/folly/optimized/Zstd.cpp.ll index a56f5f2643e..6b22071ce5c 100644 --- a/bench/folly/optimized/Zstd.cpp.ll +++ b/bench/folly/optimized/Zstd.cpp.ll @@ -215,7 +215,6 @@ $_ZZN5folly19shared_mutex_detail21getMaxDeferredReadersEvE5cache = comdat any @_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEE15deferredReadersE = external global [2048 x %"struct.std::atomic.57"], align 128 @.str.9 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1 @.str.18 = private unnamed_addr constant [34 x i8] c"ZSTD: invalid uncompressed length\00", align 1 -@.str.19 = private unnamed_addr constant [22 x i8] c"ZSTD: invalid FlushOp\00", align 1 @_ZTISt16invalid_argument = external constant ptr @.str.22 = private unnamed_addr constant [31 x i8] c"ZSTDStreamCodec: Invalid flush\00", align 1 @@ -1288,23 +1287,22 @@ sw.default.i: ; preds = %if.end invoke void @_ZNSt16invalid_argumentC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception.i, ptr noundef nonnull @.str.22) to label %invoke.cont.i.invoke unwind label %lpad.i -invoke.cont.i.invoke: ; preds = %sw.default, %sw.default.i - %21 = phi ptr [ %exception, %sw.default ], [ %exception.i, %sw.default.i ] - invoke void @__cxa_throw(ptr nonnull %21, ptr nonnull @_ZTISt16invalid_argument, ptr nonnull @_ZNSt16invalid_argumentD1Ev) #21 +invoke.cont.i.invoke: ; preds = %sw.default.i + invoke void @__cxa_throw(ptr nonnull %exception.i, ptr nonnull @_ZTISt16invalid_argument, ptr nonnull @_ZNSt16invalid_argumentD1Ev) #21 to label %invoke.cont.i.cont unwind label %lpad invoke.cont.i.cont: ; preds = %invoke.cont.i.invoke unreachable lpad.i: ; preds = %sw.default.i - %22 = landingpad { ptr, i32 } + %21 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %exception.i) #20 br label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit52" invoke.cont: ; preds = %if.end - %23 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8, !tbaa !7 - %call12 = invoke i64 @ZSTD_compressStream2(ptr noundef %23, ptr noundef nonnull %out, ptr noundef nonnull %in, i32 noundef %flushOp) + %22 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8, !tbaa !7 + %call12 = invoke i64 @ZSTD_compressStream2(ptr noundef %22, ptr noundef nonnull %out, ptr noundef nonnull %in, i32 noundef %flushOp) to label %invoke.cont11 unwind label %lpad invoke.cont11: ; preds = %invoke.cont @@ -1312,15 +1310,17 @@ invoke.cont11: ; preds = %invoke.cont to label %invoke.cont13 unwind label %lpad invoke.cont13: ; preds = %invoke.cont11 - switch i32 %flushOp, label %sw.default [ + switch i32 %flushOp, label %default.unreachable [ i32 0, label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit" i32 1, label %sw.bb15 i32 2, label %sw.bb16 ] lpad: ; preds = %invoke.cont11, %invoke.cont, %invoke.cont.i.invoke - %24 = landingpad { ptr, i32 } + %23 = landingpad { ptr, i32 } cleanup + %.pre = load i64, ptr %pos, align 8, !tbaa !80 + %.pre3 = load i64, ptr %pos7, align 8, !tbaa !87 br label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit52" sw.bb15: ; preds = %invoke.cont13 @@ -1332,77 +1332,69 @@ sw.bb16: ; preds = %invoke.cont13 br i1 %cmp17, label %if.then18, label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit" if.then18: ; preds = %sw.bb16 - %25 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8, !tbaa !7 + %24 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8, !tbaa !7 store ptr null, ptr %add.ptr.i.i.i.i.i.i.i, align 8, !tbaa !7 - %tobool.not.i.i.i = icmp eq ptr %25, null + %tobool.not.i.i.i = icmp eq ptr %24, null br i1 %tobool.not.i.i.i, label %_ZNSt10unique_ptrI11ZSTD_CCtx_sN5folly11compression31CompressionCoreLocalContextPoolIS0_NS2_8contexts17ZSTD_CCtx_CreatorENS4_17ZSTD_CCtx_DeleterENS4_18ZSTD_CCtx_ResetterELm4EE19ReturnToPoolDeleterEE5resetEPS0_.exit.i, label %if.then.i.i.i if.then.i.i.i: ; preds = %if.then18 - %26 = load ptr, ptr %cctx_, align 8, !tbaa !48 - invoke void @_ZN5folly11compression31CompressionCoreLocalContextPoolI11ZSTD_CCtx_sNS0_8contexts17ZSTD_CCtx_CreatorENS3_17ZSTD_CCtx_DeleterENS3_18ZSTD_CCtx_ResetterELm4EE5storeEPS2_(ptr noundef nonnull align 128 dereferenceable(640) %26, ptr noundef nonnull %25) + %25 = load ptr, ptr %cctx_, align 8, !tbaa !48 + invoke void @_ZN5folly11compression31CompressionCoreLocalContextPoolI11ZSTD_CCtx_sNS0_8contexts17ZSTD_CCtx_CreatorENS3_17ZSTD_CCtx_DeleterENS3_18ZSTD_CCtx_ResetterELm4EE5storeEPS2_(ptr noundef nonnull align 128 dereferenceable(640) %25, ptr noundef nonnull %24) to label %_ZNSt10unique_ptrI11ZSTD_CCtx_sN5folly11compression31CompressionCoreLocalContextPoolIS0_NS2_8contexts17ZSTD_CCtx_CreatorENS4_17ZSTD_CCtx_DeleterENS4_18ZSTD_CCtx_ResetterELm4EE19ReturnToPoolDeleterEE5resetEPS0_.exit.i unwind label %terminate.lpad.i.i.i terminate.lpad.i.i.i: ; preds = %if.then.i.i.i - %27 = landingpad { ptr, i32 } + %26 = landingpad { ptr, i32 } catch ptr null - %28 = extractvalue { ptr, i32 } %27, 0 - call void @__clang_call_terminate(ptr %28) #23 + %27 = extractvalue { ptr, i32 } %26, 0 + call void @__clang_call_terminate(ptr %27) #23 unreachable _ZNSt10unique_ptrI11ZSTD_CCtx_sN5folly11compression31CompressionCoreLocalContextPoolIS0_NS2_8contexts17ZSTD_CCtx_CreatorENS4_17ZSTD_CCtx_DeleterENS4_18ZSTD_CCtx_ResetterELm4EE19ReturnToPoolDeleterEE5resetEPS0_.exit.i: ; preds = %if.then.i.i.i, %if.then18 %add.ptr.i.i.i.i.i.i2.i = getelementptr inbounds %"class.folly::io::zstd::(anonymous namespace)::ZSTDStreamCodec", ptr %this, i64 0, i32 4, i32 0, i32 0, i32 0, i32 0, i32 1 - %29 = load ptr, ptr %add.ptr.i.i.i.i.i.i2.i, align 8, !tbaa !7 + %28 = load ptr, ptr %add.ptr.i.i.i.i.i.i2.i, align 8, !tbaa !7 store ptr null, ptr %add.ptr.i.i.i.i.i.i2.i, align 8, !tbaa !7 - %tobool.not.i.i3.i = icmp eq ptr %29, null + %tobool.not.i.i3.i = icmp eq ptr %28, null br i1 %tobool.not.i.i3.i, label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit", label %if.then.i.i4.i if.then.i.i4.i: ; preds = %_ZNSt10unique_ptrI11ZSTD_CCtx_sN5folly11compression31CompressionCoreLocalContextPoolIS0_NS2_8contexts17ZSTD_CCtx_CreatorENS4_17ZSTD_CCtx_DeleterENS4_18ZSTD_CCtx_ResetterELm4EE19ReturnToPoolDeleterEE5resetEPS0_.exit.i %dctx_.i = getelementptr inbounds %"class.folly::io::zstd::(anonymous namespace)::ZSTDStreamCodec", ptr %this, i64 0, i32 4 - %30 = load ptr, ptr %dctx_.i, align 8, !tbaa !46 - invoke void @_ZN5folly11compression31CompressionCoreLocalContextPoolI11ZSTD_DCtx_sNS0_8contexts17ZSTD_DCtx_CreatorENS3_17ZSTD_DCtx_DeleterENS3_18ZSTD_DCtx_ResetterELm4EE5storeEPS2_(ptr noundef nonnull align 128 dereferenceable(640) %30, ptr noundef nonnull %29) + %29 = load ptr, ptr %dctx_.i, align 8, !tbaa !46 + invoke void @_ZN5folly11compression31CompressionCoreLocalContextPoolI11ZSTD_DCtx_sNS0_8contexts17ZSTD_DCtx_CreatorENS3_17ZSTD_DCtx_DeleterENS3_18ZSTD_DCtx_ResetterELm4EE5storeEPS2_(ptr noundef nonnull align 128 dereferenceable(640) %29, ptr noundef nonnull %28) to label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit" unwind label %terminate.lpad.i.i5.i terminate.lpad.i.i5.i: ; preds = %if.then.i.i4.i - %31 = landingpad { ptr, i32 } + %30 = landingpad { ptr, i32 } catch ptr null - %32 = extractvalue { ptr, i32 } %31, 0 - call void @__clang_call_terminate(ptr %32) #23 + %31 = extractvalue { ptr, i32 } %30, 0 + call void @__clang_call_terminate(ptr %31) #23 unreachable -sw.default: ; preds = %invoke.cont13 - %exception = call ptr @__cxa_allocate_exception(i64 16) #20 - invoke void @_ZNSt16invalid_argumentC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception, ptr noundef nonnull @.str.19) - to label %invoke.cont.i.invoke unwind label %lpad21 - -lpad21: ; preds = %sw.default - %33 = landingpad { ptr, i32 } - cleanup - call void @__cxa_free_exception(ptr %exception) #20 - br label %"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit52" +default.unreachable: ; preds = %invoke.cont13 + unreachable "_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit": ; preds = %if.then.i.i4.i, %_ZNSt10unique_ptrI11ZSTD_CCtx_sN5folly11compression31CompressionCoreLocalContextPoolIS0_NS2_8contexts17ZSTD_CCtx_CreatorENS4_17ZSTD_CCtx_DeleterENS4_18ZSTD_CCtx_ResetterELm4EE19ReturnToPoolDeleterEE5resetEPS0_.exit.i, %sw.bb16, %sw.bb15, %invoke.cont13 %retval.0 = phi i1 [ %cmp, %sw.bb15 ], [ false, %invoke.cont13 ], [ false, %sw.bb16 ], [ true, %_ZNSt10unique_ptrI11ZSTD_CCtx_sN5folly11compression31CompressionCoreLocalContextPoolIS0_NS2_8contexts17ZSTD_CCtx_CreatorENS4_17ZSTD_CCtx_DeleterENS4_18ZSTD_CCtx_ResetterELm4EE19ReturnToPoolDeleterEE5resetEPS0_.exit.i ], [ true, %if.then.i.i4.i ] - %34 = load i64, ptr %pos, align 8, !tbaa !80 - %35 = load ptr, ptr %input, align 8, !tbaa !75 - %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %35, i64 %34 + %32 = load i64, ptr %pos, align 8, !tbaa !80 + %33 = load ptr, ptr %input, align 8, !tbaa !75 + %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %33, i64 %32 store ptr %add.ptr.i.i.i.i, ptr %input, align 8, !tbaa !75 - %36 = load i64, ptr %pos7, align 8, !tbaa !87 - %37 = load ptr, ptr %output, align 8, !tbaa !81 - %add.ptr.i4.i.i.i = getelementptr inbounds i8, ptr %37, i64 %36 + %34 = load i64, ptr %pos7, align 8, !tbaa !87 + %35 = load ptr, ptr %output, align 8, !tbaa !81 + %add.ptr.i4.i.i.i = getelementptr inbounds i8, ptr %35, i64 %34 store ptr %add.ptr.i4.i.i.i, ptr %output, align 8, !tbaa !81 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %out) #20 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %in) #20 ret i1 %retval.0 -"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit52": ; preds = %lpad21, %lpad, %lpad.i - %.pn = phi { ptr, i32 } [ %33, %lpad21 ], [ %24, %lpad ], [ %22, %lpad.i ] - %38 = load i64, ptr %pos, align 8, !tbaa !80 - %39 = load ptr, ptr %input, align 8, !tbaa !75 - %add.ptr.i.i.i.i49 = getelementptr inbounds i8, ptr %39, i64 %38 +"_ZN5folly6detail14ScopeGuardImplIZNS_2io4zstd12_GLOBAL__N_115ZSTDStreamCodec16doCompressStreamERNS_5RangeIPKhEERNS6_IPhEENS2_11StreamCodec7FlushOpEE3$_0Lb1EED2Ev.exit52": ; preds = %lpad, %lpad.i + %36 = phi i64 [ %.pre3, %lpad ], [ 0, %lpad.i ] + %37 = phi i64 [ %.pre, %lpad ], [ 0, %lpad.i ] + %.pn = phi { ptr, i32 } [ %23, %lpad ], [ %21, %lpad.i ] + %38 = load ptr, ptr %input, align 8, !tbaa !75 + %add.ptr.i.i.i.i49 = getelementptr inbounds i8, ptr %38, i64 %37 store ptr %add.ptr.i.i.i.i49, ptr %input, align 8, !tbaa !75 - %40 = load i64, ptr %pos7, align 8, !tbaa !87 - %41 = load ptr, ptr %output, align 8, !tbaa !81 - %add.ptr.i4.i.i.i51 = getelementptr inbounds i8, ptr %41, i64 %40 + %39 = load ptr, ptr %output, align 8, !tbaa !81 + %add.ptr.i4.i.i.i51 = getelementptr inbounds i8, ptr %39, i64 %36 store ptr %add.ptr.i4.i.i.i51, ptr %output, align 8, !tbaa !81 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %out) #20 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %in) #20 diff --git a/bench/folly/optimized/json.cpp.ll b/bench/folly/optimized/json.cpp.ll index b556d973d27..8cc0bfa5d9a 100644 --- a/bench/folly/optimized/json.cpp.ll +++ b/bench/folly/optimized/json.cpp.ll @@ -387,7 +387,6 @@ $_ZTVN5folly4json11parse_errorE = comdat any @.str.44 = private unnamed_addr constant [3 x i8] c"\\t\00", align 1 @.str.47 = private unnamed_addr constant [40 x i8] c"Invalid JSONC: string is not terminated\00", align 1 @_ZTISt11logic_error = external constant ptr -@.str.49 = private unnamed_addr constant [22 x i8] c"Unknown comment state\00", align 1 @.str.50 = private unnamed_addr constant [19 x i8] c"index out of range\00", align 1 @_ZTISt12out_of_range = external constant ptr @_ZTVSt12out_of_range = external unnamed_addr constant { [5 x ptr] }, align 8 @@ -9072,7 +9071,7 @@ invoke.cont: ; preds = %entry, %cleanup %i.0271 = phi i64 [ %inc84, %cleanup ], [ 0, %entry ] %state.0270 = phi i32 [ %state.4, %cleanup ], [ 0, %entry ] %add.ptr.i = getelementptr inbounds i8, ptr %jsonC.coerce0, i64 %i.0271 - switch i32 %state.0270, label %sw.default [ + switch i32 %state.0270, label %default.unreachable4 [ i32 0, label %sw.bb i32 1, label %sw.bb23 i32 2, label %sw.bb54 @@ -9168,40 +9167,39 @@ if.then32: ; preds = %if.then28 invoke void @_ZNSt11logic_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception, ptr noundef nonnull @.str.47) to label %invoke.cont34.invoke unwind label %lpad33 -invoke.cont34.invoke: ; preds = %sw.default, %if.then32 - %8 = phi ptr [ %exception, %if.then32 ], [ %exception81, %sw.default ] - invoke void @__cxa_throw(ptr nonnull %8, ptr nonnull @_ZTISt11logic_error, ptr nonnull @_ZNSt11logic_errorD1Ev) #28 +invoke.cont34.invoke: ; preds = %if.then32 + invoke void @__cxa_throw(ptr nonnull %exception, ptr nonnull @_ZTISt11logic_error, ptr nonnull @_ZNSt11logic_errorD1Ev) #28 to label %invoke.cont34.cont unwind label %lpad.loopexit.split-lp invoke.cont34.cont: ; preds = %invoke.cont34.invoke unreachable lpad33: ; preds = %if.then32 - %9 = landingpad { ptr, i32 } + %8 = landingpad { ptr, i32 } cleanup tail call void @__cxa_free_exception(ptr %exception) #26 br label %ehcleanup if.end35: ; preds = %if.then28 - %10 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %add.i142 = add i64 %10, 1 - %11 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %cmp.i.i.i143 = icmp eq ptr %11, %0 + %9 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 + %add.i142 = add i64 %9, 1 + %10 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %cmp.i.i.i143 = icmp eq ptr %10, %0 br i1 %cmp.i.i.i143, label %if.then.i.i.i151, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i144 if.then.i.i.i151: ; preds = %if.end35 - %cmp3.i.i.i152 = icmp ult i64 %10, 16 + %cmp3.i.i.i152 = icmp ult i64 %9, 16 tail call void @llvm.assume(i1 %cmp3.i.i.i152) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i144 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i144: ; preds = %if.then.i.i.i151, %if.end35 - %12 = load i64, ptr %0, align 8 - %cond.i.i145 = select i1 %cmp.i.i.i143, i64 15, i64 %12 + %11 = load i64, ptr %0, align 8 + %cond.i.i145 = select i1 %cmp.i.i.i143, i64 15, i64 %11 %cmp.i146 = icmp ugt i64 %add.i142, %cond.i.i145 br i1 %cmp.i146, label %if.then.i149, label %invoke.cont38 if.then.i149: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i144 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %10, i64 noundef 0, ptr noundef null, i64 noundef 1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %9, i64 noundef 0, ptr noundef null, i64 noundef 1) to label %.noexc153 unwind label %lpad.loopexit .noexc153: ; preds = %if.then.i149 @@ -9209,34 +9207,34 @@ if.then.i149: ; preds = %_ZNKSt7__cxx1112bas br label %invoke.cont38 invoke.cont38: ; preds = %.noexc153, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i144 - %13 = phi ptr [ %.pre.i150, %.noexc153 ], [ %11, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i144 ] - %arrayidx.i147 = getelementptr inbounds i8, ptr %13, i64 %10 + %12 = phi ptr [ %.pre.i150, %.noexc153 ], [ %10, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i144 ] + %arrayidx.i147 = getelementptr inbounds i8, ptr %12, i64 %9 store i8 92, ptr %arrayidx.i147, align 1, !tbaa !7 store i64 %add.i142, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %14 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %arrayidx.i.i148 = getelementptr inbounds i8, ptr %14, i64 %add.i142 + %13 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %arrayidx.i.i148 = getelementptr inbounds i8, ptr %13, i64 %add.i142 store i8 0, ptr %arrayidx.i.i148, align 1, !tbaa !7 %arrayidx.i155 = getelementptr inbounds i8, ptr %add.ptr.i, i64 1 - %15 = load i8, ptr %arrayidx.i155, align 1, !tbaa !7 - %16 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %add.i157 = add i64 %16, 1 - %17 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %cmp.i.i.i158 = icmp eq ptr %17, %0 + %14 = load i8, ptr %arrayidx.i155, align 1, !tbaa !7 + %15 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 + %add.i157 = add i64 %15, 1 + %16 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %cmp.i.i.i158 = icmp eq ptr %16, %0 br i1 %cmp.i.i.i158, label %if.then.i.i.i166, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i159 if.then.i.i.i166: ; preds = %invoke.cont38 - %cmp3.i.i.i167 = icmp ult i64 %16, 16 + %cmp3.i.i.i167 = icmp ult i64 %15, 16 tail call void @llvm.assume(i1 %cmp3.i.i.i167) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i159 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i159: ; preds = %if.then.i.i.i166, %invoke.cont38 - %18 = load i64, ptr %0, align 8 - %cond.i.i160 = select i1 %cmp.i.i.i158, i64 15, i64 %18 + %17 = load i64, ptr %0, align 8 + %cond.i.i160 = select i1 %cmp.i.i.i158, i64 15, i64 %17 %cmp.i161 = icmp ugt i64 %add.i157, %cond.i.i160 br i1 %cmp.i161, label %if.then.i164, label %invoke.cont41 if.then.i164: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i159 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %16, i64 noundef 0, ptr noundef null, i64 noundef 1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %15, i64 noundef 0, ptr noundef null, i64 noundef 1) to label %.noexc168 unwind label %lpad.loopexit .noexc168: ; preds = %if.then.i164 @@ -9244,12 +9242,12 @@ if.then.i164: ; preds = %_ZNKSt7__cxx1112bas br label %invoke.cont41 invoke.cont41: ; preds = %.noexc168, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i159 - %19 = phi ptr [ %.pre.i165, %.noexc168 ], [ %17, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i159 ] - %arrayidx.i162 = getelementptr inbounds i8, ptr %19, i64 %16 - store i8 %15, ptr %arrayidx.i162, align 1, !tbaa !7 + %18 = phi ptr [ %.pre.i165, %.noexc168 ], [ %16, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i159 ] + %arrayidx.i162 = getelementptr inbounds i8, ptr %18, i64 %15 + store i8 %14, ptr %arrayidx.i162, align 1, !tbaa !7 store i64 %add.i157, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %20 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %arrayidx.i.i163 = getelementptr inbounds i8, ptr %20, i64 %add.i157 + %19 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %arrayidx.i.i163 = getelementptr inbounds i8, ptr %19, i64 %add.i157 store i8 0, ptr %arrayidx.i.i163, align 1, !tbaa !7 %inc42 = add nuw i64 %i.0271, 1 br label %cleanup @@ -9257,25 +9255,25 @@ invoke.cont41: ; preds = %.noexc168, %_ZNKSt7 if.else43: ; preds = %sw.bb23 %cmp47 = icmp ne i8 %7, 34 %spec.select99 = zext i1 %cmp47 to i32 - %21 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %add.i171 = add i64 %21, 1 - %22 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %cmp.i.i.i172 = icmp eq ptr %22, %0 + %20 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 + %add.i171 = add i64 %20, 1 + %21 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %cmp.i.i.i172 = icmp eq ptr %21, %0 br i1 %cmp.i.i.i172, label %if.then.i.i.i180, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i173 if.then.i.i.i180: ; preds = %if.else43 - %cmp3.i.i.i181 = icmp ult i64 %21, 16 + %cmp3.i.i.i181 = icmp ult i64 %20, 16 tail call void @llvm.assume(i1 %cmp3.i.i.i181) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i173 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i173: ; preds = %if.then.i.i.i180, %if.else43 - %23 = load i64, ptr %0, align 8 - %cond.i.i174 = select i1 %cmp.i.i.i172, i64 15, i64 %23 + %22 = load i64, ptr %0, align 8 + %cond.i.i174 = select i1 %cmp.i.i.i172, i64 15, i64 %22 %cmp.i175 = icmp ugt i64 %add.i171, %cond.i.i174 br i1 %cmp.i175, label %if.then.i178, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit183 if.then.i178: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i173 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %21, i64 noundef 0, ptr noundef null, i64 noundef 1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %20, i64 noundef 0, ptr noundef null, i64 noundef 1) to label %.noexc182 unwind label %lpad.loopexit .noexc182: ; preds = %if.then.i178 @@ -9283,40 +9281,40 @@ if.then.i178: ; preds = %_ZNKSt7__cxx1112bas br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit183 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit183: ; preds = %.noexc182, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i173 - %24 = phi ptr [ %.pre.i179, %.noexc182 ], [ %22, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i173 ] - %arrayidx.i176 = getelementptr inbounds i8, ptr %24, i64 %21 + %23 = phi ptr [ %.pre.i179, %.noexc182 ], [ %21, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i173 ] + %arrayidx.i176 = getelementptr inbounds i8, ptr %23, i64 %20 store i8 %7, ptr %arrayidx.i176, align 1, !tbaa !7 store i64 %add.i171, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %25 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %arrayidx.i.i177 = getelementptr inbounds i8, ptr %25, i64 %add.i171 + %24 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %arrayidx.i.i177 = getelementptr inbounds i8, ptr %24, i64 %add.i171 store i8 0, ptr %arrayidx.i.i177, align 1, !tbaa !7 br label %cleanup sw.bb54: ; preds = %invoke.cont - %26 = load i8, ptr %add.ptr.i, align 1, !tbaa !7 - %cmp.i185 = icmp eq i8 %26, 10 + %25 = load i8, ptr %add.ptr.i, align 1, !tbaa !7 + %cmp.i185 = icmp eq i8 %25, 10 br i1 %cmp.i185, label %if.then57, label %if.else61 if.then57: ; preds = %sw.bb54 - %27 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %add.i187 = add i64 %27, 1 - %28 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %cmp.i.i.i188 = icmp eq ptr %28, %0 + %26 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 + %add.i187 = add i64 %26, 1 + %27 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %cmp.i.i.i188 = icmp eq ptr %27, %0 br i1 %cmp.i.i.i188, label %if.then.i.i.i196, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i189 if.then.i.i.i196: ; preds = %if.then57 - %cmp3.i.i.i197 = icmp ult i64 %27, 16 + %cmp3.i.i.i197 = icmp ult i64 %26, 16 tail call void @llvm.assume(i1 %cmp3.i.i.i197) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i189 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i189: ; preds = %if.then.i.i.i196, %if.then57 - %29 = load i64, ptr %0, align 8 - %cond.i.i190 = select i1 %cmp.i.i.i188, i64 15, i64 %29 + %28 = load i64, ptr %0, align 8 + %cond.i.i190 = select i1 %cmp.i.i.i188, i64 15, i64 %28 %cmp.i191 = icmp ugt i64 %add.i187, %cond.i.i190 br i1 %cmp.i191, label %if.then.i194, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit199 if.then.i194: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i189 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %27, i64 noundef 0, ptr noundef null, i64 noundef 1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %26, i64 noundef 0, ptr noundef null, i64 noundef 1) to label %.noexc198 unwind label %lpad.loopexit .noexc198: ; preds = %if.then.i194 @@ -9324,12 +9322,12 @@ if.then.i194: ; preds = %_ZNKSt7__cxx1112bas br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit199 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit199: ; preds = %.noexc198, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i189 - %30 = phi ptr [ %.pre.i195, %.noexc198 ], [ %28, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i189 ] - %arrayidx.i192 = getelementptr inbounds i8, ptr %30, i64 %27 + %29 = phi ptr [ %.pre.i195, %.noexc198 ], [ %27, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i189 ] + %arrayidx.i192 = getelementptr inbounds i8, ptr %29, i64 %26 store i8 10, ptr %arrayidx.i192, align 1, !tbaa !7 store i64 %add.i187, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %31 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %arrayidx.i.i193 = getelementptr inbounds i8, ptr %31, i64 %add.i187 + %30 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %arrayidx.i.i193 = getelementptr inbounds i8, ptr %30, i64 %add.i187 store i8 0, ptr %arrayidx.i.i193, align 1, !tbaa !7 br label %cleanup @@ -9337,44 +9335,44 @@ if.else61: ; preds = %sw.bb54 %sub.ptr.rhs.cast.i.i205 = ptrtoint ptr %add.ptr.i to i64 %sub.ptr.sub.i.i206 = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i.i205 %cmp.not.i211 = icmp ugt i64 %sub.ptr.sub.i.i206, 1 - %cmp.i.i.i220 = icmp eq i8 %26, 42 + %cmp.i.i.i220 = icmp eq i8 %25, 42 %or.cond273 = and i1 %cmp.not.i211, %cmp.i.i.i220 br i1 %or.cond273, label %for.cond.i.i221, label %cleanup for.cond.i.i221: ; preds = %if.else61 %arrayidx.i.i.i218.1 = getelementptr inbounds i8, ptr %add.ptr.i, i64 1 - %32 = load i8, ptr %arrayidx.i.i.i218.1, align 1, !tbaa !7 - %cmp.i.i.i220.1 = icmp eq i8 %32, 47 + %31 = load i8, ptr %arrayidx.i.i.i218.1, align 1, !tbaa !7 + %cmp.i.i.i220.1 = icmp eq i8 %31, 47 %spec.select274 = select i1 %cmp.i.i.i220.1, i32 0, i32 2 %inc68262 = zext i1 %cmp.i.i.i220.1 to i64 %spec.select275 = add nuw i64 %i.0271, %inc68262 br label %cleanup sw.bb71: ; preds = %invoke.cont - %33 = load i8, ptr %add.ptr.i, align 1, !tbaa !7 - %cmp75 = icmp eq i8 %33, 10 + %32 = load i8, ptr %add.ptr.i, align 1, !tbaa !7 + %cmp75 = icmp eq i8 %32, 10 br i1 %cmp75, label %if.then76, label %cleanup if.then76: ; preds = %sw.bb71 - %34 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %add.i226 = add i64 %34, 1 - %35 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %cmp.i.i.i227 = icmp eq ptr %35, %0 + %33 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 + %add.i226 = add i64 %33, 1 + %34 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %cmp.i.i.i227 = icmp eq ptr %34, %0 br i1 %cmp.i.i.i227, label %if.then.i.i.i235, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i228 if.then.i.i.i235: ; preds = %if.then76 - %cmp3.i.i.i236 = icmp ult i64 %34, 16 + %cmp3.i.i.i236 = icmp ult i64 %33, 16 tail call void @llvm.assume(i1 %cmp3.i.i.i236) br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i228 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i228: ; preds = %if.then.i.i.i235, %if.then76 - %36 = load i64, ptr %0, align 8 - %cond.i.i229 = select i1 %cmp.i.i.i227, i64 15, i64 %36 + %35 = load i64, ptr %0, align 8 + %cond.i.i229 = select i1 %cmp.i.i.i227, i64 15, i64 %35 %cmp.i230 = icmp ugt i64 %add.i226, %cond.i.i229 br i1 %cmp.i230, label %if.then.i233, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit238 if.then.i233: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i228 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %34, i64 noundef 0, ptr noundef null, i64 noundef 1) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %33, i64 noundef 0, ptr noundef null, i64 noundef 1) to label %.noexc237 unwind label %lpad.loopexit .noexc237: ; preds = %if.then.i233 @@ -9382,25 +9380,17 @@ if.then.i233: ; preds = %_ZNKSt7__cxx1112bas br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit238 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit238: ; preds = %.noexc237, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i228 - %37 = phi ptr [ %.pre.i234, %.noexc237 ], [ %35, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i228 ] - %arrayidx.i231 = getelementptr inbounds i8, ptr %37, i64 %34 + %36 = phi ptr [ %.pre.i234, %.noexc237 ], [ %34, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i228 ] + %arrayidx.i231 = getelementptr inbounds i8, ptr %36, i64 %33 store i8 10, ptr %arrayidx.i231, align 1, !tbaa !7 store i64 %add.i226, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %38 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %arrayidx.i.i232 = getelementptr inbounds i8, ptr %38, i64 %add.i226 + %37 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %arrayidx.i.i232 = getelementptr inbounds i8, ptr %37, i64 %add.i226 store i8 0, ptr %arrayidx.i.i232, align 1, !tbaa !7 br label %cleanup -sw.default: ; preds = %invoke.cont - %exception81 = tail call ptr @__cxa_allocate_exception(i64 16) #26 - invoke void @_ZNSt11logic_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %exception81, ptr noundef nonnull @.str.49) - to label %invoke.cont34.invoke unwind label %lpad82 - -lpad82: ; preds = %sw.default - %39 = landingpad { ptr, i32 } - cleanup - tail call void @__cxa_free_exception(ptr %exception81) #26 - br label %ehcleanup +default.unreachable4: ; preds = %invoke.cont + unreachable cleanup: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit238, %sw.bb71, %for.cond.i.i221, %if.else61, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit199, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit183, %invoke.cont41, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit, %for.cond.i.i129.1, %for.cond.i.i.1 %state.4 = phi i32 [ 1, %invoke.cont41 ], [ 2, %for.cond.i.i.1 ], [ 3, %for.cond.i.i129.1 ], [ 3, %sw.bb71 ], [ 2, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit199 ], [ %spec.select99, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit183 ], [ %spec.select, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit ], [ 0, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc.exit238 ], [ 2, %if.else61 ], [ %spec.select274, %for.cond.i.i221 ] @@ -9409,20 +9399,20 @@ cleanup: ; preds = %_ZNSt7__cxx1112basi %cmp = icmp ult i64 %inc84, %sub.ptr.sub.i br i1 %cmp, label %invoke.cont, label %nrvo.skipdtor, !llvm.loop !320 -ehcleanup: ; preds = %lpad82, %lpad33, %lpad.loopexit.split-lp, %lpad.loopexit - %.pn = phi { ptr, i32 } [ %39, %lpad82 ], [ %9, %lpad33 ], [ %lpad.loopexit267, %lpad.loopexit ], [ %lpad.loopexit.split-lp268, %lpad.loopexit.split-lp ] - %40 = load ptr, ptr %agg.result, align 8, !tbaa !31 - %cmp.i.i.i239 = icmp eq ptr %40, %0 +ehcleanup: ; preds = %lpad33, %lpad.loopexit.split-lp, %lpad.loopexit + %.pn = phi { ptr, i32 } [ %8, %lpad33 ], [ %lpad.loopexit267, %lpad.loopexit ], [ %lpad.loopexit.split-lp268, %lpad.loopexit.split-lp ] + %38 = load ptr, ptr %agg.result, align 8, !tbaa !31 + %cmp.i.i.i239 = icmp eq ptr %38, %0 br i1 %cmp.i.i.i239, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %if.then.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %ehcleanup - %41 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 - %cmp3.i.i.i241 = icmp ult i64 %41, 16 + %39 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !15 + %cmp3.i.i.i241 = icmp ult i64 %39, 16 tail call void @llvm.assume(i1 %cmp3.i.i.i241) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit if.then.i.i: ; preds = %ehcleanup - tail call void @_ZdlPv(ptr noundef %40) #27 + tail call void @_ZdlPv(ptr noundef %38) #27 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %if.then.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i diff --git a/bench/hermes/optimized/BytecodeDisassembler.cpp.ll b/bench/hermes/optimized/BytecodeDisassembler.cpp.ll index 10043d7518f..3763dda51cb 100644 --- a/bench/hermes/optimized/BytecodeDisassembler.cpp.ll +++ b/bench/hermes/optimized/BytecodeDisassembler.cpp.ll @@ -5566,7 +5566,7 @@ _ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit: ; preds = %i sw.bb: ; preds = %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit %35 = load i8, ptr %operandBuf, align 1 - switch i32 %retval.0.i139, label %sw.bb.unreachabledefault [ + switch i32 %retval.0.i139, label %default.unreachable [ i32 1, label %if.then36 i32 2, label %if.then41 i32 3, label %if.then46 @@ -5591,7 +5591,7 @@ if.then46: ; preds = %sw.bb tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv47, ptr noundef nonnull align 8 dereferenceable(36) %38) br label %sw.epilog -sw.bb.unreachabledefault: ; preds = %sw.bb +default.unreachable: ; preds = %_ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit, %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226, %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165, %_ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit, %sw.bb110, %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit, %sw.bb unreachable if.else57: ; preds = %sw.bb @@ -5615,8 +5615,7 @@ for.body.i: ; preds = %_ZN6hermes3hbcL26ge _ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit: ; preds = %for.body.i %conv2.i = trunc i64 %or.i to i32 - %42 = load ptr, ptr %os_2, align 8 - switch i32 %retval.0.i139, label %sw.bb66.unreachabledefault [ + switch i32 %retval.0.i139, label %default.unreachable [ i32 1, label %if.then82 i32 2, label %if.then86 i32 3, label %if.then90 @@ -5624,28 +5623,29 @@ _ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit: ; preds = %for.body.i ] if.then82: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit + %42 = load ptr, ptr %os_2, align 8 tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i, ptr noundef nonnull align 8 dereferenceable(36) %42) br label %sw.epilog if.then86: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i, ptr noundef nonnull align 8 dereferenceable(36) %42) + %43 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i, ptr noundef nonnull align 8 dereferenceable(36) %43) br label %sw.epilog if.then90: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i, ptr noundef nonnull align 8 dereferenceable(36) %42) + %44 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i, ptr noundef nonnull align 8 dereferenceable(36) %44) br label %sw.epilog -sw.bb66.unreachabledefault: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit - unreachable - if.else102: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit + %45 = load ptr, ptr %os_2, align 8 %conv.i141 = and i64 %or.i, 4294967295 - %call.i142 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(36) %42, i64 noundef %conv.i141) #17 + %call.i142 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(36) %45, i64 noundef %conv.i141) #17 br label %sw.epilog sw.bb110: ; preds = %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit - %43 = load i8, ptr %operandBuf, align 1 - switch i32 %retval.0.i139, label %sw.bb110.unreachabledefault [ + %46 = load i8, ptr %operandBuf, align 1 + switch i32 %retval.0.i139, label %default.unreachable [ i32 1, label %if.then127 i32 2, label %if.then132 i32 3, label %if.then137 @@ -5653,30 +5653,27 @@ sw.bb110: ; preds = %_ZN6hermes3hbcL26ge ] if.then127: ; preds = %sw.bb110 - %conv128 = zext i8 %43 to i32 - %44 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv128, ptr noundef nonnull align 8 dereferenceable(36) %44) + %conv128 = zext i8 %46 to i32 + %47 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv128, ptr noundef nonnull align 8 dereferenceable(36) %47) br label %sw.epilog if.then132: ; preds = %sw.bb110 - %conv133 = zext i8 %43 to i32 - %45 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv133, ptr noundef nonnull align 8 dereferenceable(36) %45) + %conv133 = zext i8 %46 to i32 + %48 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv133, ptr noundef nonnull align 8 dereferenceable(36) %48) br label %sw.epilog if.then137: ; preds = %sw.bb110 - %conv138 = zext i8 %43 to i32 - %46 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv138, ptr noundef nonnull align 8 dereferenceable(36) %46) + %conv138 = zext i8 %46 to i32 + %49 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv138, ptr noundef nonnull align 8 dereferenceable(36) %49) br label %sw.epilog -sw.bb110.unreachabledefault: ; preds = %sw.bb110 - unreachable - if.else150: ; preds = %sw.bb110 - %47 = load ptr, ptr %os_2, align 8 - %conv.i143 = zext i8 %43 to i64 - %call.i144 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEl(ptr noundef nonnull align 8 dereferenceable(36) %47, i64 noundef %conv.i143) #17 + %50 = load ptr, ptr %os_2, align 8 + %conv.i143 = zext i8 %46 to i64 + %call.i144 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEl(ptr noundef nonnull align 8 dereferenceable(36) %50, i64 noundef %conv.i143) #17 br label %sw.epilog for.body.i145: ; preds = %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit, %for.body.i145 @@ -5684,15 +5681,15 @@ for.body.i145: ; preds = %_ZN6hermes3hbcL26ge %indvars.iv.i146 = phi i64 [ 1, %for.body.i145 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %ret.05.i147 = phi i64 [ %or.i151, %for.body.i145 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %arrayidx.i148 = getelementptr inbounds i8, ptr %operandBuf, i64 %indvars.iv.i146 - %48 = load i8, ptr %arrayidx.i148, align 1 - %conv1.i149 = zext i8 %48 to i64 - %49 = shl nuw nsw i64 %indvars.iv.i146, 3 - %shl.i150 = shl nuw nsw i64 %conv1.i149, %49 + %51 = load i8, ptr %arrayidx.i148, align 1 + %conv1.i149 = zext i8 %51 to i64 + %52 = shl nuw nsw i64 %indvars.iv.i146, 3 + %shl.i150 = shl nuw nsw i64 %conv1.i149, %52 %or.i151 = or i64 %shl.i150, %ret.05.i147 br i1 %cmp.i, label %for.body.i145, label %_ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit, !llvm.loop !84 _ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit: ; preds = %for.body.i145 - switch i32 %retval.0.i139, label %sw.bb159.unreachabledefault [ + switch i32 %retval.0.i139, label %default.unreachable [ i32 1, label %if.then176 i32 2, label %if.then181 i32 3, label %if.then186 @@ -5702,41 +5699,38 @@ _ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit: ; preds = %for.body.i145 if.then176: ; preds = %_ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit %conv2.i152 = trunc i64 %or.i151 to i32 %conv177 = and i32 %conv2.i152, 65535 - %50 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv177, ptr noundef nonnull align 8 dereferenceable(36) %50) + %53 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv177, ptr noundef nonnull align 8 dereferenceable(36) %53) br label %sw.epilog if.then181: ; preds = %_ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit - %51 = trunc i64 %or.i151 to i32 - %conv182 = and i32 %51, 65535 - %52 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv182, ptr noundef nonnull align 8 dereferenceable(36) %52) + %54 = trunc i64 %or.i151 to i32 + %conv182 = and i32 %54, 65535 + %55 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv182, ptr noundef nonnull align 8 dereferenceable(36) %55) br label %sw.epilog if.then186: ; preds = %_ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit - %53 = trunc i64 %or.i151 to i32 - %conv187 = and i32 %53, 65535 - %54 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv187, ptr noundef nonnull align 8 dereferenceable(36) %54) + %56 = trunc i64 %or.i151 to i32 + %conv187 = and i32 %56, 65535 + %57 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv187, ptr noundef nonnull align 8 dereferenceable(36) %57) br label %sw.epilog -sw.bb159.unreachabledefault: ; preds = %_ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit - unreachable - if.else199: ; preds = %_ZN6hermes3hbc13decodeOperandItEEvPKhPT_.exit - %55 = load ptr, ptr %os_2, align 8 + %58 = load ptr, ptr %os_2, align 8 %conv201 = and i64 %or.i151, 65535 - %call.i154 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEl(ptr noundef nonnull align 8 dereferenceable(36) %55, i64 noundef %conv201) #17 + %call.i154 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEl(ptr noundef nonnull align 8 dereferenceable(36) %58, i64 noundef %conv201) #17 br label %sw.epilog for.body.i155: ; preds = %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit, %for.body.i155 %indvars.iv.i156 = phi i64 [ %indvars.iv.next.i162, %for.body.i155 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %ret.05.i157 = phi i64 [ %or.i161, %for.body.i155 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %arrayidx.i158 = getelementptr inbounds i8, ptr %operandBuf, i64 %indvars.iv.i156 - %56 = load i8, ptr %arrayidx.i158, align 1 - %conv1.i159 = zext i8 %56 to i64 - %57 = shl nuw nsw i64 %indvars.iv.i156, 3 - %shl.i160 = shl nuw nsw i64 %conv1.i159, %57 + %59 = load i8, ptr %arrayidx.i158, align 1 + %conv1.i159 = zext i8 %59 to i64 + %60 = shl nuw nsw i64 %indvars.iv.i156, 3 + %shl.i160 = shl nuw nsw i64 %conv1.i159, %60 %or.i161 = or i64 %shl.i160, %ret.05.i157 %indvars.iv.next.i162 = add nuw nsw i64 %indvars.iv.i156, 1 %exitcond.not.i163 = icmp eq i64 %indvars.iv.next.i162, 4 @@ -5744,8 +5738,7 @@ for.body.i155: ; preds = %_ZN6hermes3hbcL26ge _ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165: ; preds = %for.body.i155 %conv2.i164 = trunc i64 %or.i161 to i32 - %58 = load ptr, ptr %os_2, align 8 - switch i32 %retval.0.i139, label %sw.bb208.unreachabledefault [ + switch i32 %retval.0.i139, label %default.unreachable [ i32 1, label %if.then224 i32 2, label %if.then228 i32 3, label %if.then232 @@ -5753,56 +5746,57 @@ _ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165: ; preds = %for.body.i155 ] if.then224: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i164, ptr noundef nonnull align 8 dereferenceable(36) %58) + %61 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i164, ptr noundef nonnull align 8 dereferenceable(36) %61) br label %sw.epilog if.then228: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i164, ptr noundef nonnull align 8 dereferenceable(36) %58) + %62 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i164, ptr noundef nonnull align 8 dereferenceable(36) %62) br label %sw.epilog if.then232: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i164, ptr noundef nonnull align 8 dereferenceable(36) %58) + %63 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i164, ptr noundef nonnull align 8 dereferenceable(36) %63) br label %sw.epilog -sw.bb208.unreachabledefault: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165 - unreachable - if.else244: ; preds = %_ZN6hermes3hbc13decodeOperandIjEEvPKhPT_.exit165 + %64 = load ptr, ptr %os_2, align 8 %conv.i166 = and i64 %or.i161, 4294967295 - %call.i167 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(36) %58, i64 noundef %conv.i166) #17 + %call.i167 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(36) %64, i64 noundef %conv.i166) #17 br label %sw.epilog sw.bb252: ; preds = %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit - %59 = load i8, ptr %operandBuf, align 1 - %60 = load ptr, ptr %os_2, align 8 - %OutBufEnd.i5.i170 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %60, i64 0, i32 2 - %61 = load ptr, ptr %OutBufEnd.i5.i170, align 8 - %OutBufCur.i6.i171 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %60, i64 0, i32 3 - %62 = load ptr, ptr %OutBufCur.i6.i171, align 8 - %cmp.i.i175 = icmp eq ptr %61, %62 + %65 = load i8, ptr %operandBuf, align 1 + %66 = load ptr, ptr %os_2, align 8 + %OutBufEnd.i5.i170 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %66, i64 0, i32 2 + %67 = load ptr, ptr %OutBufEnd.i5.i170, align 8 + %OutBufCur.i6.i171 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %66, i64 0, i32 3 + %68 = load ptr, ptr %OutBufCur.i6.i171, align 8 + %cmp.i.i175 = icmp eq ptr %67, %68 br i1 %cmp.i.i175, label %if.then.i.i181, label %if.then4.i.i178 if.then.i.i181: ; preds = %sw.bb252 - %call3.i.i182 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(36) %60, ptr noundef nonnull @.str.53, i64 noundef 1) #17 + %call3.i.i182 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(36) %66, ptr noundef nonnull @.str.53, i64 noundef 1) #17 br label %_ZN4llvh11raw_ostreamlsEPKc.exit183 if.then4.i.i178: ; preds = %sw.bb252 - store i8 76, ptr %62, align 1 - %63 = load ptr, ptr %OutBufCur.i6.i171, align 8 - %add.ptr.i.i179 = getelementptr inbounds i8, ptr %63, i64 1 + store i8 76, ptr %68, align 1 + %69 = load ptr, ptr %OutBufCur.i6.i171, align 8 + %add.ptr.i.i179 = getelementptr inbounds i8, ptr %69, i64 1 store ptr %add.ptr.i.i179, ptr %OutBufCur.i6.i171, align 8 br label %_ZN4llvh11raw_ostreamlsEPKc.exit183 _ZN4llvh11raw_ostreamlsEPKc.exit183: ; preds = %if.then.i.i181, %if.then4.i.i178 - %phi.call.i180 = phi ptr [ %call3.i.i182, %if.then.i.i181 ], [ %60, %if.then4.i.i178 ] + %phi.call.i180 = phi ptr [ %call3.i.i182, %if.then.i.i181 ], [ %66, %if.then4.i.i178 ] %jumpTargets_260 = getelementptr inbounds %"class.hermes::hbc::PrettyDisassembleVisitor", ptr %this, i64 0, i32 3 - %64 = load ptr, ptr %jumpTargets_260, align 8 - %idx.ext263 = sext i8 %59 to i64 + %70 = load ptr, ptr %jumpTargets_260, align 8 + %idx.ext263 = sext i8 %65 to i64 %add.ptr264 = getelementptr inbounds i8, ptr %ip, i64 %idx.ext263 store ptr %add.ptr264, ptr %ref.tmp261, align 8 - %call.i184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8__detail9_Map_baseIPKvSt4pairIKS2_jESaIS5_ENS_10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOS2_(ptr noundef nonnull align 1 dereferenceable(1) %64, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp261) - %65 = load i32, ptr %call.i184, align 4 - %conv.i185 = zext i32 %65 to i64 + %call.i184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8__detail9_Map_baseIPKvSt4pairIKS2_jESaIS5_ENS_10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOS2_(ptr noundef nonnull align 1 dereferenceable(1) %70, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp261) + %71 = load i32, ptr %call.i184, align 4 + %conv.i185 = zext i32 %71 to i64 %call.i186 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(36) %phi.call.i180, i64 noundef %conv.i185) #17 br label %sw.epilog @@ -5810,46 +5804,46 @@ for.body.i187: ; preds = %_ZN6hermes3hbcL26ge %indvars.iv.i188 = phi i64 [ %indvars.iv.next.i194, %for.body.i187 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %ret.05.i189 = phi i64 [ %or.i193, %for.body.i187 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %arrayidx.i190 = getelementptr inbounds i8, ptr %operandBuf, i64 %indvars.iv.i188 - %66 = load i8, ptr %arrayidx.i190, align 1 - %conv1.i191 = zext i8 %66 to i64 - %67 = shl nuw nsw i64 %indvars.iv.i188, 3 - %shl.i192 = shl nuw nsw i64 %conv1.i191, %67 + %72 = load i8, ptr %arrayidx.i190, align 1 + %conv1.i191 = zext i8 %72 to i64 + %73 = shl nuw nsw i64 %indvars.iv.i188, 3 + %shl.i192 = shl nuw nsw i64 %conv1.i191, %73 %or.i193 = or i64 %shl.i192, %ret.05.i189 %indvars.iv.next.i194 = add nuw nsw i64 %indvars.iv.i188, 1 %exitcond.not.i195 = icmp eq i64 %indvars.iv.next.i194, 4 br i1 %exitcond.not.i195, label %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit, label %for.body.i187, !llvm.loop !58 _ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit: ; preds = %for.body.i187 - %68 = load ptr, ptr %os_2, align 8 - %OutBufEnd.i5.i199 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %68, i64 0, i32 2 - %69 = load ptr, ptr %OutBufEnd.i5.i199, align 8 - %OutBufCur.i6.i200 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %68, i64 0, i32 3 - %70 = load ptr, ptr %OutBufCur.i6.i200, align 8 - %cmp.i.i204 = icmp eq ptr %69, %70 + %74 = load ptr, ptr %os_2, align 8 + %OutBufEnd.i5.i199 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %74, i64 0, i32 2 + %75 = load ptr, ptr %OutBufEnd.i5.i199, align 8 + %OutBufCur.i6.i200 = getelementptr inbounds %"class.llvh::raw_ostream", ptr %74, i64 0, i32 3 + %76 = load ptr, ptr %OutBufCur.i6.i200, align 8 + %cmp.i.i204 = icmp eq ptr %75, %76 br i1 %cmp.i.i204, label %if.then.i.i210, label %if.then4.i.i207 if.then.i.i210: ; preds = %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit - %call3.i.i211 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(36) %68, ptr noundef nonnull @.str.53, i64 noundef 1) #17 + %call3.i.i211 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(36) %74, ptr noundef nonnull @.str.53, i64 noundef 1) #17 br label %_ZN4llvh11raw_ostreamlsEPKc.exit212 if.then4.i.i207: ; preds = %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit - store i8 76, ptr %70, align 1 - %71 = load ptr, ptr %OutBufCur.i6.i200, align 8 - %add.ptr.i.i208 = getelementptr inbounds i8, ptr %71, i64 1 + store i8 76, ptr %76, align 1 + %77 = load ptr, ptr %OutBufCur.i6.i200, align 8 + %add.ptr.i.i208 = getelementptr inbounds i8, ptr %77, i64 1 store ptr %add.ptr.i.i208, ptr %OutBufCur.i6.i200, align 8 br label %_ZN4llvh11raw_ostreamlsEPKc.exit212 _ZN4llvh11raw_ostreamlsEPKc.exit212: ; preds = %if.then.i.i210, %if.then4.i.i207 - %phi.call.i209 = phi ptr [ %call3.i.i211, %if.then.i.i210 ], [ %68, %if.then4.i.i207 ] + %phi.call.i209 = phi ptr [ %call3.i.i211, %if.then.i.i210 ], [ %74, %if.then4.i.i207 ] %jumpTargets_309 = getelementptr inbounds %"class.hermes::hbc::PrettyDisassembleVisitor", ptr %this, i64 0, i32 3 - %72 = load ptr, ptr %jumpTargets_309, align 8 + %78 = load ptr, ptr %jumpTargets_309, align 8 %sext259 = shl i64 %or.i193, 32 %idx.ext311 = ashr exact i64 %sext259, 32 %add.ptr312 = getelementptr inbounds i8, ptr %ip, i64 %idx.ext311 store ptr %add.ptr312, ptr %ref.tmp310, align 8 - %call.i213 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8__detail9_Map_baseIPKvSt4pairIKS2_jESaIS5_ENS_10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOS2_(ptr noundef nonnull align 1 dereferenceable(1) %72, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp310) - %73 = load i32, ptr %call.i213, align 4 - %conv.i214 = zext i32 %73 to i64 + %call.i213 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8__detail9_Map_baseIPKvSt4pairIKS2_jESaIS5_ENS_10_Select1stESt8equal_toIS2_ESt4hashIS2_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb0ELb0ELb1EEELb1EEixEOS2_(ptr noundef nonnull align 1 dereferenceable(1) %78, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp310) + %79 = load i32, ptr %call.i213, align 4 + %conv.i214 = zext i32 %79 to i64 %call.i215 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(36) %phi.call.i209, i64 noundef %conv.i214) #17 br label %sw.epilog @@ -5857,10 +5851,10 @@ for.body.i216: ; preds = %_ZN6hermes3hbcL26ge %indvars.iv.i217 = phi i64 [ %indvars.iv.next.i223, %for.body.i216 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %ret.05.i218 = phi i64 [ %or.i222, %for.body.i216 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %arrayidx.i219 = getelementptr inbounds i8, ptr %operandBuf, i64 %indvars.iv.i217 - %74 = load i8, ptr %arrayidx.i219, align 1 - %conv1.i220 = zext i8 %74 to i64 - %75 = shl nuw nsw i64 %indvars.iv.i217, 3 - %shl.i221 = shl nuw nsw i64 %conv1.i220, %75 + %80 = load i8, ptr %arrayidx.i219, align 1 + %conv1.i220 = zext i8 %80 to i64 + %81 = shl nuw nsw i64 %indvars.iv.i217, 3 + %shl.i221 = shl nuw nsw i64 %conv1.i220, %81 %or.i222 = or i64 %shl.i221, %ret.05.i218 %indvars.iv.next.i223 = add nuw nsw i64 %indvars.iv.i217, 1 %exitcond.not.i224 = icmp eq i64 %indvars.iv.next.i223, 4 @@ -5868,8 +5862,7 @@ for.body.i216: ; preds = %_ZN6hermes3hbcL26ge _ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226: ; preds = %for.body.i216 %conv2.i225 = trunc i64 %or.i222 to i32 - %76 = load ptr, ptr %os_2, align 8 - switch i32 %retval.0.i139, label %sw.bb345.unreachabledefault [ + switch i32 %retval.0.i139, label %default.unreachable [ i32 1, label %if.then361 i32 2, label %if.then365 i32 3, label %if.then369 @@ -5877,42 +5870,43 @@ _ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226: ; preds = %for.body.i216 ] if.then361: ; preds = %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i225, ptr noundef nonnull align 8 dereferenceable(36) %76) + %82 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i225, ptr noundef nonnull align 8 dereferenceable(36) %82) br label %sw.epilog if.then365: ; preds = %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i225, ptr noundef nonnull align 8 dereferenceable(36) %76) + %83 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i225, ptr noundef nonnull align 8 dereferenceable(36) %83) br label %sw.epilog if.then369: ; preds = %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i225, ptr noundef nonnull align 8 dereferenceable(36) %76) + %84 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv2.i225, ptr noundef nonnull align 8 dereferenceable(36) %84) br label %sw.epilog -sw.bb345.unreachabledefault: ; preds = %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226 - unreachable - if.else381: ; preds = %_ZN6hermes3hbc13decodeOperandIiEEvPKhPT_.exit226 + %85 = load ptr, ptr %os_2, align 8 %sext = shl i64 %or.i222, 32 %conv.i227 = ashr exact i64 %sext, 32 - %call.i228 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEl(ptr noundef nonnull align 8 dereferenceable(36) %76, i64 noundef %conv.i227) #17 + %call.i228 = tail call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEl(ptr noundef nonnull align 8 dereferenceable(36) %85, i64 noundef %conv.i227) #17 br label %sw.epilog for.body.i229: ; preds = %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit, %for.body.i229 %indvars.iv.i230 = phi i64 [ %indvars.iv.next.i236, %for.body.i229 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %ret.05.i231 = phi i64 [ %or.i235, %for.body.i229 ], [ 0, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit ] %arrayidx.i232 = getelementptr inbounds i8, ptr %operandBuf, i64 %indvars.iv.i230 - %77 = load i8, ptr %arrayidx.i232, align 1 - %conv1.i233 = zext i8 %77 to i64 - %78 = shl nuw nsw i64 %indvars.iv.i230, 3 - %shl.i234 = shl nuw i64 %conv1.i233, %78 + %86 = load i8, ptr %arrayidx.i232, align 1 + %conv1.i233 = zext i8 %86 to i64 + %87 = shl nuw nsw i64 %indvars.iv.i230, 3 + %shl.i234 = shl nuw i64 %conv1.i233, %87 %or.i235 = or i64 %shl.i234, %ret.05.i231 %indvars.iv.next.i236 = add nuw nsw i64 %indvars.iv.i230, 1 %exitcond.not.i237 = icmp eq i64 %indvars.iv.next.i236, 8 br i1 %exitcond.not.i237, label %_ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit, label %for.body.i229, !llvm.loop !85 _ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit: ; preds = %for.body.i229 - %79 = bitcast i64 %or.i235 to double - switch i32 %retval.0.i139, label %sw.bb389.unreachabledefault [ + %88 = bitcast i64 %or.i235 to double + switch i32 %retval.0.i139, label %default.unreachable [ i32 1, label %if.then406 i32 2, label %if.then411 i32 3, label %if.then416 @@ -5920,30 +5914,27 @@ _ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit: ; preds = %for.body.i229 ] if.then406: ; preds = %_ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit - %conv407 = fptoui double %79 to i32 - %80 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv407, ptr noundef nonnull align 8 dereferenceable(36) %80) + %conv407 = fptoui double %88 to i32 + %89 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandStringEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv407, ptr noundef nonnull align 8 dereferenceable(36) %89) br label %sw.epilog if.then411: ; preds = %_ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit - %conv412 = fptoui double %79 to i32 - %81 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv412, ptr noundef nonnull align 8 dereferenceable(36) %81) + %conv412 = fptoui double %88 to i32 + %90 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor17dumpOperandBigIntEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv412, ptr noundef nonnull align 8 dereferenceable(36) %90) br label %sw.epilog if.then416: ; preds = %_ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit - %conv417 = fptoui double %79 to i32 - %82 = load ptr, ptr %os_2, align 8 - tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv417, ptr noundef nonnull align 8 dereferenceable(36) %82) + %conv417 = fptoui double %88 to i32 + %91 = load ptr, ptr %os_2, align 8 + tail call void @_ZN6hermes3hbc24PrettyDisassembleVisitor19dumpOperandFunctionEjRN4llvh11raw_ostreamE(ptr noundef nonnull align 8 dereferenceable(68) %this, i32 noundef %conv417, ptr noundef nonnull align 8 dereferenceable(36) %91) br label %sw.epilog -sw.bb389.unreachabledefault: ; preds = %_ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit - unreachable - if.then421: ; preds = %_ZN6hermes3hbc13decodeOperandIdEEvPKhPT_.exit - %call424 = call noundef i64 @_ZN6hermes14numberToStringEdPcm(double noundef %79, ptr noundef nonnull %buf422, i64 noundef 32) #17 - %83 = load ptr, ptr %os_2, align 8 - %call427 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %83, ptr noundef nonnull %buf422) + %call424 = call noundef i64 @_ZN6hermes14numberToStringEdPcm(double noundef %88, ptr noundef nonnull %buf422, i64 noundef 32) #17 + %92 = load ptr, ptr %os_2, align 8 + %call427 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN4llvh11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %92, ptr noundef nonnull %buf422) br label %sw.epilog sw.epilog: ; preds = %if.end.i120, %if.then.i117, %if.then411, %if.then421, %if.then416, %if.then406, %if.then365, %if.else381, %if.then369, %if.then361, %_ZN4llvh11raw_ostreamlsEPKc.exit212, %_ZN4llvh11raw_ostreamlsEPKc.exit183, %if.then228, %if.else244, %if.then232, %if.then224, %if.then181, %if.else199, %if.then186, %if.then176, %if.then132, %if.else150, %if.then137, %if.then127, %if.then86, %if.else102, %if.then90, %if.then82, %if.then41, %if.else57, %if.then46, %if.then36, %_ZN6hermes3hbcL26getBytecodeTableForOperandENS_4inst6OpCodeEj.exit diff --git a/bench/hermes/optimized/ConvertUTF.cpp.ll b/bench/hermes/optimized/ConvertUTF.cpp.ll index a43c7a33163..5a9da9de561 100644 --- a/bench/hermes/optimized/ConvertUTF.cpp.ll +++ b/bench/hermes/optimized/ConvertUTF.cpp.ll @@ -247,131 +247,226 @@ define hidden noundef i32 @_ZN4llvh18ConvertUTF16toUTF8EPPKtS1_PPhS3_NS_15Conver entry: %0 = load ptr, ptr %sourceStart, align 8 %1 = load ptr, ptr %targetStart, align 8 - %cmp46 = icmp ult ptr %0, %sourceEnd - br i1 %cmp46, label %while.body.lr.ph, label %while.end + %cmp49 = icmp ult ptr %0, %sourceEnd + br i1 %cmp49, label %while.body.lr.ph, label %while.end while.body.lr.ph: ; preds = %entry %cmp21 = icmp eq i32 %flags, 0 - br label %while.body + br i1 %cmp21, label %while.body.us77, label %while.body.us -while.body: ; preds = %while.body.lr.ph, %sw.epilog - %source.048 = phi ptr [ %0, %while.body.lr.ph ], [ %source.1, %sw.epilog ] - %target.047 = phi ptr [ %1, %while.body.lr.ph ], [ %add.ptr76, %sw.epilog ] - %incdec.ptr = getelementptr inbounds i16, ptr %source.048, i64 1 - %2 = load i16, ptr %source.048, align 2 - %conv = zext i16 %2 to i32 +while.body.us: ; preds = %while.body.lr.ph, %sw.bb69.us + %source.051.us = phi ptr [ %source.1.us, %sw.bb69.us ], [ %0, %while.body.lr.ph ] + %target.050.us = phi ptr [ %add.ptr76.us, %sw.bb69.us ], [ %1, %while.body.lr.ph ] + %incdec.ptr.us = getelementptr inbounds i16, ptr %source.051.us, i64 1 + %2 = load i16, ptr %source.051.us, align 2 + %conv.us = zext i16 %2 to i32 %3 = and i16 %2, -1024 - %or.cond = icmp eq i16 %3, -10240 - br i1 %or.cond, label %if.then, label %if.else20 + %or.cond.us = icmp eq i16 %3, -10240 + br i1 %or.cond.us, label %if.then.us, label %if.end30.us -if.then: ; preds = %while.body - %cmp3 = icmp ult ptr %incdec.ptr, %sourceEnd - br i1 %cmp3, label %if.then4, label %while.end +if.then.us: ; preds = %while.body.us + %cmp3.us = icmp ult ptr %incdec.ptr.us, %sourceEnd + br i1 %cmp3.us, label %if.then4.us, label %while.end -if.then4: ; preds = %if.then - %4 = load i16, ptr %incdec.ptr, align 2 +if.then4.us: ; preds = %if.then.us + %4 = load i16, ptr %incdec.ptr.us, align 2 %5 = and i16 %4, -1024 - %or.cond1 = icmp eq i16 %5, -9216 - br i1 %or.cond1, label %if.then9, label %if.else - -if.then9: ; preds = %if.then4 - %conv5 = zext i16 %4 to i32 - %sub = shl nuw nsw i32 %conv, 10 - %sub10 = add nsw i32 %sub, -56613888 - %add11 = add nuw nsw i32 %sub10, %conv5 - %incdec.ptr12 = getelementptr inbounds i16, ptr %source.048, i64 2 - br label %if.end30 - -if.else: ; preds = %if.then4 - br i1 %cmp21, label %while.end, label %if.end30 - -if.else20: ; preds = %while.body - %or.cond2 = icmp eq i16 %3, -9216 - %or.cond45 = and i1 %cmp21, %or.cond2 - br i1 %or.cond45, label %while.end, label %if.end30 - -if.end30: ; preds = %if.else20, %if.else, %if.then9 - %ch.0 = phi i32 [ %add11, %if.then9 ], [ %conv, %if.else ], [ %conv, %if.else20 ] - %source.1 = phi ptr [ %incdec.ptr12, %if.then9 ], [ %incdec.ptr, %if.else ], [ %incdec.ptr, %if.else20 ] - %cmp31 = icmp ult i32 %ch.0, 128 - br i1 %cmp31, label %if.end46, label %if.else33 - -if.else33: ; preds = %if.end30 - %cmp34 = icmp ult i32 %ch.0, 2048 - br i1 %cmp34, label %if.end46, label %if.else36 - -if.else36: ; preds = %if.else33 - %cmp37 = icmp ult i32 %ch.0, 65536 - %spec.select = select i1 %cmp37, i16 3, i16 4 - br label %if.end46 - -if.end46: ; preds = %if.else36, %if.else33, %if.end30 - %bytesToWrite.0 = phi i16 [ 1, %if.end30 ], [ 2, %if.else33 ], [ %spec.select, %if.else36 ] - %idx.ext = zext nneg i16 %bytesToWrite.0 to i64 - %add.ptr = getelementptr inbounds i8, ptr %target.047, i64 %idx.ext - %cmp48 = icmp ugt ptr %add.ptr, %targetEnd - br i1 %cmp48, label %while.end, label %if.end53 + %or.cond1.us = icmp eq i16 %5, -9216 + br i1 %or.cond1.us, label %if.then9.us, label %if.end30.us -if.end53: ; preds = %if.end46 - switch i16 %bytesToWrite.0, label %sw.epilog [ - i16 4, label %sw.bb - i16 3, label %sw.bb57 - i16 2, label %sw.bb63 - i16 1, label %sw.bb69 +if.then9.us: ; preds = %if.then4.us + %conv5.us = zext i16 %4 to i32 + %sub.us = shl nuw nsw i32 %conv.us, 10 + %sub10.us = add nsw i32 %sub.us, -56613888 + %add11.us = add nuw nsw i32 %sub10.us, %conv5.us + %incdec.ptr12.us = getelementptr inbounds i16, ptr %source.051.us, i64 2 + br label %if.end30.us + +if.end30.us: ; preds = %if.then4.us, %while.body.us, %if.then9.us + %ch.0.us = phi i32 [ %add11.us, %if.then9.us ], [ %conv.us, %while.body.us ], [ %conv.us, %if.then4.us ] + %source.1.us = phi ptr [ %incdec.ptr12.us, %if.then9.us ], [ %incdec.ptr.us, %while.body.us ], [ %incdec.ptr.us, %if.then4.us ] + %cmp31.us = icmp ult i32 %ch.0.us, 128 + br i1 %cmp31.us, label %if.end46.us, label %if.else33.us + +if.else33.us: ; preds = %if.end30.us + %cmp34.us = icmp ult i32 %ch.0.us, 2048 + br i1 %cmp34.us, label %if.end46.us, label %if.else36.us + +if.else36.us: ; preds = %if.else33.us + %cmp37.us = icmp ult i32 %ch.0.us, 65536 + %spec.select.us = select i1 %cmp37.us, i16 3, i16 4 + br label %if.end46.us + +if.end46.us: ; preds = %if.else36.us, %if.else33.us, %if.end30.us + %bytesToWrite.0.us = phi i16 [ 1, %if.end30.us ], [ 2, %if.else33.us ], [ %spec.select.us, %if.else36.us ] + %idx.ext.us = zext nneg i16 %bytesToWrite.0.us to i64 + %add.ptr.us = getelementptr inbounds i8, ptr %target.050.us, i64 %idx.ext.us + %cmp48.us = icmp ugt ptr %add.ptr.us, %targetEnd + br i1 %cmp48.us, label %while.end, label %if.end53.us + +if.end53.us: ; preds = %if.end46.us + switch i16 %bytesToWrite.0.us, label %default.unreachable196 [ + i16 4, label %sw.bb.us + i16 3, label %sw.bb57.us + i16 2, label %sw.bb63.us + i16 1, label %sw.bb69.us ] -sw.bb: ; preds = %if.end53 - %6 = trunc i32 %ch.0 to i8 +sw.bb.us: ; preds = %if.end53.us + %6 = trunc i32 %ch.0.us to i8 %7 = and i8 %6, 63 - %conv55 = or disjoint i8 %7, -128 - %incdec.ptr56 = getelementptr inbounds i8, ptr %add.ptr, i64 -1 - store i8 %conv55, ptr %incdec.ptr56, align 1 - %shr = lshr i32 %ch.0, 6 - br label %sw.bb57 + %conv55.us = or disjoint i8 %7, -128 + %incdec.ptr56.us = getelementptr inbounds i8, ptr %add.ptr.us, i64 -1 + store i8 %conv55.us, ptr %incdec.ptr56.us, align 1 + %shr.us = lshr i32 %ch.0.us, 6 + br label %sw.bb57.us -sw.bb57: ; preds = %sw.bb, %if.end53 - %ch.2 = phi i32 [ %ch.0, %if.end53 ], [ %shr, %sw.bb ] - %target.1 = phi ptr [ %add.ptr, %if.end53 ], [ %incdec.ptr56, %sw.bb ] - %8 = trunc i32 %ch.2 to i8 +sw.bb57.us: ; preds = %sw.bb.us, %if.end53.us + %ch.2.us = phi i32 [ %ch.0.us, %if.end53.us ], [ %shr.us, %sw.bb.us ] + %target.1.us = phi ptr [ %add.ptr.us, %if.end53.us ], [ %incdec.ptr56.us, %sw.bb.us ] + %8 = trunc i32 %ch.2.us to i8 %9 = and i8 %8, 63 - %conv60 = or disjoint i8 %9, -128 - %incdec.ptr61 = getelementptr inbounds i8, ptr %target.1, i64 -1 - store i8 %conv60, ptr %incdec.ptr61, align 1 - %shr62 = lshr i32 %ch.2, 6 - br label %sw.bb63 - -sw.bb63: ; preds = %sw.bb57, %if.end53 - %ch.3 = phi i32 [ %ch.0, %if.end53 ], [ %shr62, %sw.bb57 ] - %target.2 = phi ptr [ %add.ptr, %if.end53 ], [ %incdec.ptr61, %sw.bb57 ] - %10 = trunc i32 %ch.3 to i8 + %conv60.us = or disjoint i8 %9, -128 + %incdec.ptr61.us = getelementptr inbounds i8, ptr %target.1.us, i64 -1 + store i8 %conv60.us, ptr %incdec.ptr61.us, align 1 + %shr62.us = lshr i32 %ch.2.us, 6 + br label %sw.bb63.us + +sw.bb63.us: ; preds = %sw.bb57.us, %if.end53.us + %ch.3.us = phi i32 [ %ch.0.us, %if.end53.us ], [ %shr62.us, %sw.bb57.us ] + %target.2.us = phi ptr [ %add.ptr.us, %if.end53.us ], [ %incdec.ptr61.us, %sw.bb57.us ] + %10 = trunc i32 %ch.3.us to i8 %11 = and i8 %10, 63 - %conv66 = or disjoint i8 %11, -128 - %incdec.ptr67 = getelementptr inbounds i8, ptr %target.2, i64 -1 - store i8 %conv66, ptr %incdec.ptr67, align 1 - %shr68 = lshr i32 %ch.3, 6 - br label %sw.bb69 - -sw.bb69: ; preds = %sw.bb63, %if.end53 - %ch.4 = phi i32 [ %ch.0, %if.end53 ], [ %shr68, %sw.bb63 ] - %target.3 = phi ptr [ %add.ptr, %if.end53 ], [ %incdec.ptr67, %sw.bb63 ] - %arrayidx = getelementptr inbounds [7 x i8], ptr @_ZN4llvhL13firstByteMarkE, i64 0, i64 %idx.ext - %12 = load i8, ptr %arrayidx, align 1 - %13 = trunc i32 %ch.4 to i8 - %conv72 = or i8 %12, %13 - %incdec.ptr73 = getelementptr inbounds i8, ptr %target.3, i64 -1 - store i8 %conv72, ptr %incdec.ptr73, align 1 - br label %sw.epilog + %conv66.us = or disjoint i8 %11, -128 + %incdec.ptr67.us = getelementptr inbounds i8, ptr %target.2.us, i64 -1 + store i8 %conv66.us, ptr %incdec.ptr67.us, align 1 + %shr68.us = lshr i32 %ch.3.us, 6 + br label %sw.bb69.us + +sw.bb69.us: ; preds = %sw.bb63.us, %if.end53.us + %ch.4.us = phi i32 [ %ch.0.us, %if.end53.us ], [ %shr68.us, %sw.bb63.us ] + %target.3.us = phi ptr [ %add.ptr.us, %if.end53.us ], [ %incdec.ptr67.us, %sw.bb63.us ] + %arrayidx.us = getelementptr inbounds [7 x i8], ptr @_ZN4llvhL13firstByteMarkE, i64 0, i64 %idx.ext.us + %12 = load i8, ptr %arrayidx.us, align 1 + %13 = trunc i32 %ch.4.us to i8 + %conv72.us = or i8 %12, %13 + %incdec.ptr73.us = getelementptr inbounds i8, ptr %target.3.us, i64 -1 + store i8 %conv72.us, ptr %incdec.ptr73.us, align 1 + %add.ptr76.us = getelementptr inbounds i8, ptr %incdec.ptr73.us, i64 %idx.ext.us + %cmp.us = icmp ult ptr %source.1.us, %sourceEnd + br i1 %cmp.us, label %while.body.us, label %while.end, !llvm.loop !7 + +while.body.us77: ; preds = %while.body.lr.ph, %sw.bb69.us126 + %source.051.us78 = phi ptr [ %source.1.us97, %sw.bb69.us126 ], [ %0, %while.body.lr.ph ] + %target.050.us79 = phi ptr [ %add.ptr76.us132, %sw.bb69.us126 ], [ %1, %while.body.lr.ph ] + %incdec.ptr.us80 = getelementptr inbounds i16, ptr %source.051.us78, i64 1 + %14 = load i16, ptr %source.051.us78, align 2 + %conv.us81 = zext i16 %14 to i32 + %15 = and i16 %14, -1024 + switch i16 %15, label %if.end30.us95 [ + i16 -10240, label %if.then.us84 + i16 -9216, label %while.end + ] -sw.epilog: ; preds = %sw.bb69, %if.end53 - %target.4 = phi ptr [ %add.ptr, %if.end53 ], [ %incdec.ptr73, %sw.bb69 ] - %add.ptr76 = getelementptr inbounds i8, ptr %target.4, i64 %idx.ext - %cmp = icmp ult ptr %source.1, %sourceEnd - br i1 %cmp, label %while.body, label %while.end, !llvm.loop !7 +if.then.us84: ; preds = %while.body.us77 + %cmp3.us85 = icmp ult ptr %incdec.ptr.us80, %sourceEnd + br i1 %cmp3.us85, label %if.then4.us86, label %while.end + +if.then4.us86: ; preds = %if.then.us84 + %16 = load i16, ptr %incdec.ptr.us80, align 2 + %17 = and i16 %16, -1024 + %or.cond1.us87 = icmp eq i16 %17, -9216 + br i1 %or.cond1.us87, label %if.then9.us89, label %while.end + +if.then9.us89: ; preds = %if.then4.us86 + %conv5.us90 = zext i16 %16 to i32 + %sub.us91 = shl nuw nsw i32 %conv.us81, 10 + %sub10.us92 = add nsw i32 %sub.us91, -56613888 + %add11.us93 = add nsw i32 %sub10.us92, %conv5.us90 + %incdec.ptr12.us94 = getelementptr inbounds i16, ptr %source.051.us78, i64 2 + br label %if.end30.us95 + +if.end30.us95: ; preds = %while.body.us77, %if.then9.us89 + %ch.0.us96 = phi i32 [ %add11.us93, %if.then9.us89 ], [ %conv.us81, %while.body.us77 ] + %source.1.us97 = phi ptr [ %incdec.ptr12.us94, %if.then9.us89 ], [ %incdec.ptr.us80, %while.body.us77 ] + %cmp31.us98 = icmp ult i32 %ch.0.us96, 128 + br i1 %cmp31.us98, label %if.end46.us104, label %if.else33.us99 + +if.else33.us99: ; preds = %if.end30.us95 + %cmp34.us100 = icmp ult i32 %ch.0.us96, 2048 + br i1 %cmp34.us100, label %if.end46.us104, label %if.else36.us101 + +if.else36.us101: ; preds = %if.else33.us99 + %cmp37.us102 = icmp ult i32 %ch.0.us96, 65536 + %spec.select.us103 = select i1 %cmp37.us102, i16 3, i16 4 + br label %if.end46.us104 + +if.end46.us104: ; preds = %if.else36.us101, %if.else33.us99, %if.end30.us95 + %bytesToWrite.0.us105 = phi i16 [ 1, %if.end30.us95 ], [ 2, %if.else33.us99 ], [ %spec.select.us103, %if.else36.us101 ] + %idx.ext.us106 = zext nneg i16 %bytesToWrite.0.us105 to i64 + %add.ptr.us107 = getelementptr inbounds i8, ptr %target.050.us79, i64 %idx.ext.us106 + %cmp48.us108 = icmp ugt ptr %add.ptr.us107, %targetEnd + br i1 %cmp48.us108, label %while.end, label %if.end53.us109 + +if.end53.us109: ; preds = %if.end46.us104 + switch i16 %bytesToWrite.0.us105, label %default.unreachable196 [ + i16 4, label %sw.bb.us110 + i16 3, label %sw.bb57.us114 + i16 2, label %sw.bb63.us120 + i16 1, label %sw.bb69.us126 + ] -while.end: ; preds = %sw.epilog, %if.else, %if.then, %if.else20, %if.end46, %entry - %target.0.lcssa = phi ptr [ %1, %entry ], [ %target.047, %if.end46 ], [ %target.047, %if.else20 ], [ %target.047, %if.then ], [ %target.047, %if.else ], [ %add.ptr76, %sw.epilog ] - %source.0.lcssa = phi ptr [ %0, %entry ], [ %source.048, %if.end46 ], [ %source.048, %if.else20 ], [ %source.048, %if.then ], [ %source.048, %if.else ], [ %source.1, %sw.epilog ] - %result.0 = phi i32 [ 0, %entry ], [ 2, %if.end46 ], [ 3, %if.else20 ], [ 1, %if.then ], [ 3, %if.else ], [ 0, %sw.epilog ] +sw.bb.us110: ; preds = %if.end53.us109 + %18 = trunc i32 %ch.0.us96 to i8 + %19 = and i8 %18, 63 + %conv55.us111 = or disjoint i8 %19, -128 + %incdec.ptr56.us112 = getelementptr inbounds i8, ptr %add.ptr.us107, i64 -1 + store i8 %conv55.us111, ptr %incdec.ptr56.us112, align 1 + %shr.us113 = lshr i32 %ch.0.us96, 6 + br label %sw.bb57.us114 + +sw.bb57.us114: ; preds = %sw.bb.us110, %if.end53.us109 + %ch.2.us115 = phi i32 [ %ch.0.us96, %if.end53.us109 ], [ %shr.us113, %sw.bb.us110 ] + %target.1.us116 = phi ptr [ %add.ptr.us107, %if.end53.us109 ], [ %incdec.ptr56.us112, %sw.bb.us110 ] + %20 = trunc i32 %ch.2.us115 to i8 + %21 = and i8 %20, 63 + %conv60.us117 = or disjoint i8 %21, -128 + %incdec.ptr61.us118 = getelementptr inbounds i8, ptr %target.1.us116, i64 -1 + store i8 %conv60.us117, ptr %incdec.ptr61.us118, align 1 + %shr62.us119 = lshr i32 %ch.2.us115, 6 + br label %sw.bb63.us120 + +sw.bb63.us120: ; preds = %sw.bb57.us114, %if.end53.us109 + %ch.3.us121 = phi i32 [ %ch.0.us96, %if.end53.us109 ], [ %shr62.us119, %sw.bb57.us114 ] + %target.2.us122 = phi ptr [ %add.ptr.us107, %if.end53.us109 ], [ %incdec.ptr61.us118, %sw.bb57.us114 ] + %22 = trunc i32 %ch.3.us121 to i8 + %23 = and i8 %22, 63 + %conv66.us123 = or disjoint i8 %23, -128 + %incdec.ptr67.us124 = getelementptr inbounds i8, ptr %target.2.us122, i64 -1 + store i8 %conv66.us123, ptr %incdec.ptr67.us124, align 1 + %shr68.us125 = lshr i32 %ch.3.us121, 6 + br label %sw.bb69.us126 + +sw.bb69.us126: ; preds = %sw.bb63.us120, %if.end53.us109 + %ch.4.us127 = phi i32 [ %ch.0.us96, %if.end53.us109 ], [ %shr68.us125, %sw.bb63.us120 ] + %target.3.us128 = phi ptr [ %add.ptr.us107, %if.end53.us109 ], [ %incdec.ptr67.us124, %sw.bb63.us120 ] + %arrayidx.us129 = getelementptr inbounds [7 x i8], ptr @_ZN4llvhL13firstByteMarkE, i64 0, i64 %idx.ext.us106 + %24 = load i8, ptr %arrayidx.us129, align 1 + %25 = trunc i32 %ch.4.us127 to i8 + %conv72.us130 = or i8 %24, %25 + %incdec.ptr73.us131 = getelementptr inbounds i8, ptr %target.3.us128, i64 -1 + store i8 %conv72.us130, ptr %incdec.ptr73.us131, align 1 + %add.ptr76.us132 = getelementptr inbounds i8, ptr %incdec.ptr73.us131, i64 %idx.ext.us106 + %cmp.us133 = icmp ult ptr %source.1.us97, %sourceEnd + br i1 %cmp.us133, label %while.body.us77, label %while.end, !llvm.loop !7 + +default.unreachable196: ; preds = %if.end53.us, %if.end53.us109 + unreachable + +while.end: ; preds = %sw.bb69.us, %if.then.us, %if.end46.us, %sw.bb69.us126, %if.then4.us86, %if.then.us84, %while.body.us77, %if.end46.us104, %entry + %target.0.lcssa = phi ptr [ %1, %entry ], [ %target.050.us79, %if.end46.us104 ], [ %target.050.us79, %while.body.us77 ], [ %target.050.us79, %if.then.us84 ], [ %target.050.us79, %if.then4.us86 ], [ %add.ptr76.us132, %sw.bb69.us126 ], [ %target.050.us, %if.end46.us ], [ %target.050.us, %if.then.us ], [ %add.ptr76.us, %sw.bb69.us ] + %source.0.lcssa = phi ptr [ %0, %entry ], [ %source.051.us78, %if.end46.us104 ], [ %source.051.us78, %while.body.us77 ], [ %source.051.us78, %if.then.us84 ], [ %source.051.us78, %if.then4.us86 ], [ %source.1.us97, %sw.bb69.us126 ], [ %source.051.us, %if.end46.us ], [ %source.051.us, %if.then.us ], [ %source.1.us, %sw.bb69.us ] + %result.0 = phi i32 [ 0, %entry ], [ 2, %if.end46.us104 ], [ 3, %while.body.us77 ], [ 1, %if.then.us84 ], [ 3, %if.then4.us86 ], [ 0, %sw.bb69.us126 ], [ 2, %if.end46.us ], [ 1, %if.then.us ], [ 0, %sw.bb69.us ] store ptr %source.0.lcssa, ptr %sourceStart, align 8 store ptr %target.0.lcssa, ptr %targetStart, align 8 ret i32 %result.0 @@ -382,19 +477,19 @@ define hidden noundef i32 @_ZN4llvh18ConvertUTF32toUTF8EPPKjS1_PPhS3_NS_15Conver entry: %0 = load ptr, ptr %sourceStart, align 8 %1 = load ptr, ptr %targetStart, align 8 - %cmp33 = icmp ult ptr %0, %sourceEnd - br i1 %cmp33, label %while.body.lr.ph, label %while.end + %cmp35 = icmp ult ptr %0, %sourceEnd + br i1 %cmp35, label %while.body.lr.ph, label %while.end while.body.lr.ph: ; preds = %entry %cmp1 = icmp eq i32 %flags, 0 br i1 %cmp1, label %while.body, label %while.body.us -while.body.us: ; preds = %while.body.lr.ph, %sw.epilog.us - %result.036.us = phi i32 [ %result.1.us, %sw.epilog.us ], [ 0, %while.body.lr.ph ] - %source.035.us = phi ptr [ %incdec.ptr.us, %sw.epilog.us ], [ %0, %while.body.lr.ph ] - %target.034.us = phi ptr [ %add.ptr51.us, %sw.epilog.us ], [ %1, %while.body.lr.ph ] - %incdec.ptr.us = getelementptr inbounds i32, ptr %source.035.us, i64 1 - %2 = load i32, ptr %source.035.us, align 4 +while.body.us: ; preds = %while.body.lr.ph, %sw.bb44.us + %result.038.us = phi i32 [ %result.1.us, %sw.bb44.us ], [ 0, %while.body.lr.ph ] + %source.037.us = phi ptr [ %incdec.ptr.us, %sw.bb44.us ], [ %0, %while.body.lr.ph ] + %target.036.us = phi ptr [ %add.ptr51.us, %sw.bb44.us ], [ %1, %while.body.lr.ph ] + %incdec.ptr.us = getelementptr inbounds i32, ptr %source.037.us, i64 1 + %2 = load i32, ptr %source.037.us, align 4 %cmp7.us = icmp ult i32 %2, 128 br i1 %cmp7.us, label %if.end21.us, label %if.else.us @@ -410,20 +505,20 @@ if.else14.us: ; preds = %if.else11.us %cmp15.us = icmp ult i32 %2, 1114112 %..us = select i1 %cmp15.us, i32 %2, i32 65533 %.32.us = select i1 %cmp15.us, i16 4, i16 3 - %result.0..us = select i1 %cmp15.us, i32 %result.036.us, i32 3 + %result.0..us = select i1 %cmp15.us, i32 %result.038.us, i32 3 br label %if.end21.us if.end21.us: ; preds = %if.else14.us, %if.else11.us, %if.else.us, %while.body.us %ch.0.us = phi i32 [ %2, %while.body.us ], [ %2, %if.else.us ], [ %2, %if.else11.us ], [ %..us, %if.else14.us ] %bytesToWrite.0.us = phi i16 [ 1, %while.body.us ], [ 2, %if.else.us ], [ 3, %if.else11.us ], [ %.32.us, %if.else14.us ] - %result.1.us = phi i32 [ %result.036.us, %while.body.us ], [ %result.036.us, %if.else.us ], [ %result.036.us, %if.else11.us ], [ %result.0..us, %if.else14.us ] + %result.1.us = phi i32 [ %result.038.us, %while.body.us ], [ %result.038.us, %if.else.us ], [ %result.038.us, %if.else11.us ], [ %result.0..us, %if.else14.us ] %idx.ext.us = zext nneg i16 %bytesToWrite.0.us to i64 - %add.ptr.us = getelementptr inbounds i8, ptr %target.034.us, i64 %idx.ext.us + %add.ptr.us = getelementptr inbounds i8, ptr %target.036.us, i64 %idx.ext.us %cmp22.us = icmp ugt ptr %add.ptr.us, %targetEnd br i1 %cmp22.us, label %while.end, label %if.end28.us if.end28.us: ; preds = %if.end21.us - switch i16 %bytesToWrite.0.us, label %sw.epilog.us [ + switch i16 %bytesToWrite.0.us, label %default.unreachable57 [ i16 4, label %sw.bb.us i16 3, label %sw.bb32.us i16 2, label %sw.bb38.us @@ -470,20 +565,16 @@ sw.bb44.us: ; preds = %sw.bb38.us, %if.end %conv47.us = or i8 %9, %10 %incdec.ptr48.us = getelementptr inbounds i8, ptr %target.3.us, i64 -1 store i8 %conv47.us, ptr %incdec.ptr48.us, align 1 - br label %sw.epilog.us - -sw.epilog.us: ; preds = %sw.bb44.us, %if.end28.us - %target.4.us = phi ptr [ %add.ptr.us, %if.end28.us ], [ %incdec.ptr48.us, %sw.bb44.us ] - %add.ptr51.us = getelementptr inbounds i8, ptr %target.4.us, i64 %idx.ext.us + %add.ptr51.us = getelementptr inbounds i8, ptr %incdec.ptr48.us, i64 %idx.ext.us %cmp.us = icmp ult ptr %incdec.ptr.us, %sourceEnd br i1 %cmp.us, label %while.body.us, label %while.end, !llvm.loop !8 -while.body: ; preds = %while.body.lr.ph, %sw.epilog - %result.036 = phi i32 [ %result.1, %sw.epilog ], [ 0, %while.body.lr.ph ] - %source.035 = phi ptr [ %incdec.ptr, %sw.epilog ], [ %0, %while.body.lr.ph ] - %target.034 = phi ptr [ %add.ptr51, %sw.epilog ], [ %1, %while.body.lr.ph ] - %incdec.ptr = getelementptr inbounds i32, ptr %source.035, i64 1 - %11 = load i32, ptr %source.035, align 4 +while.body: ; preds = %while.body.lr.ph, %sw.bb44 + %result.038 = phi i32 [ %result.1, %sw.bb44 ], [ 0, %while.body.lr.ph ] + %source.037 = phi ptr [ %incdec.ptr, %sw.bb44 ], [ %0, %while.body.lr.ph ] + %target.036 = phi ptr [ %add.ptr51, %sw.bb44 ], [ %1, %while.body.lr.ph ] + %incdec.ptr = getelementptr inbounds i32, ptr %source.037, i64 1 + %11 = load i32, ptr %source.037, align 4 %12 = and i32 %11, -2048 %or.cond = icmp eq i32 %12, 55296 br i1 %or.cond, label %while.end, label %if.end6 @@ -504,20 +595,20 @@ if.else14: ; preds = %if.else11 %cmp15 = icmp ult i32 %11, 1114112 %. = select i1 %cmp15, i32 %11, i32 65533 %.32 = select i1 %cmp15, i16 4, i16 3 - %result.0. = select i1 %cmp15, i32 %result.036, i32 3 + %result.0. = select i1 %cmp15, i32 %result.038, i32 3 br label %if.end21 if.end21: ; preds = %if.else14, %if.else11, %if.else, %if.end6 %ch.0 = phi i32 [ %11, %if.end6 ], [ %11, %if.else ], [ %11, %if.else11 ], [ %., %if.else14 ] %bytesToWrite.0 = phi i16 [ 1, %if.end6 ], [ 2, %if.else ], [ 3, %if.else11 ], [ %.32, %if.else14 ] - %result.1 = phi i32 [ %result.036, %if.end6 ], [ %result.036, %if.else ], [ %result.036, %if.else11 ], [ %result.0., %if.else14 ] + %result.1 = phi i32 [ %result.038, %if.end6 ], [ %result.038, %if.else ], [ %result.038, %if.else11 ], [ %result.0., %if.else14 ] %idx.ext = zext nneg i16 %bytesToWrite.0 to i64 - %add.ptr = getelementptr inbounds i8, ptr %target.034, i64 %idx.ext + %add.ptr = getelementptr inbounds i8, ptr %target.036, i64 %idx.ext %cmp22 = icmp ugt ptr %add.ptr, %targetEnd br i1 %cmp22, label %while.end, label %if.end28 if.end28: ; preds = %if.end21 - switch i16 %bytesToWrite.0, label %sw.epilog [ + switch i16 %bytesToWrite.0, label %default.unreachable57 [ i16 4, label %sw.bb i16 3, label %sw.bb32 i16 2, label %sw.bb38 @@ -564,18 +655,17 @@ sw.bb44: ; preds = %sw.bb38, %if.end28 %conv47 = or i8 %19, %20 %incdec.ptr48 = getelementptr inbounds i8, ptr %target.3, i64 -1 store i8 %conv47, ptr %incdec.ptr48, align 1 - br label %sw.epilog - -sw.epilog: ; preds = %sw.bb44, %if.end28 - %target.4 = phi ptr [ %add.ptr, %if.end28 ], [ %incdec.ptr48, %sw.bb44 ] - %add.ptr51 = getelementptr inbounds i8, ptr %target.4, i64 %idx.ext + %add.ptr51 = getelementptr inbounds i8, ptr %incdec.ptr48, i64 %idx.ext %cmp = icmp ult ptr %incdec.ptr, %sourceEnd br i1 %cmp, label %while.body, label %while.end, !llvm.loop !8 -while.end: ; preds = %sw.epilog.us, %if.end21.us, %sw.epilog, %while.body, %if.end21, %entry - %target.0.lcssa = phi ptr [ %1, %entry ], [ %target.034, %if.end21 ], [ %target.034, %while.body ], [ %add.ptr51, %sw.epilog ], [ %target.034.us, %if.end21.us ], [ %add.ptr51.us, %sw.epilog.us ] - %source.0.lcssa = phi ptr [ %0, %entry ], [ %source.035, %if.end21 ], [ %source.035, %while.body ], [ %incdec.ptr, %sw.epilog ], [ %source.035.us, %if.end21.us ], [ %incdec.ptr.us, %sw.epilog.us ] - %result.2 = phi i32 [ 0, %entry ], [ 2, %if.end21 ], [ 3, %while.body ], [ %result.1, %sw.epilog ], [ 2, %if.end21.us ], [ %result.1.us, %sw.epilog.us ] +default.unreachable57: ; preds = %if.end28.us, %if.end28 + unreachable + +while.end: ; preds = %sw.bb44.us, %if.end21.us, %sw.bb44, %while.body, %if.end21, %entry + %target.0.lcssa = phi ptr [ %1, %entry ], [ %target.036, %if.end21 ], [ %target.036, %while.body ], [ %add.ptr51, %sw.bb44 ], [ %target.036.us, %if.end21.us ], [ %add.ptr51.us, %sw.bb44.us ] + %source.0.lcssa = phi ptr [ %0, %entry ], [ %source.037, %if.end21 ], [ %source.037, %while.body ], [ %incdec.ptr, %sw.bb44 ], [ %source.037.us, %if.end21.us ], [ %incdec.ptr.us, %sw.bb44.us ] + %result.2 = phi i32 [ 0, %entry ], [ 2, %if.end21 ], [ 3, %while.body ], [ %result.1, %sw.bb44 ], [ 2, %if.end21.us ], [ %result.1.us, %sw.bb44.us ] store ptr %source.0.lcssa, ptr %sourceStart, align 8 store ptr %target.0.lcssa, ptr %targetStart, align 8 ret i32 %result.2 diff --git a/bench/hermes/optimized/MicrosoftDemangle.cpp.ll b/bench/hermes/optimized/MicrosoftDemangle.cpp.ll index 2a0ddd080ab..7d38eaaa1cf 100644 --- a/bench/hermes/optimized/MicrosoftDemangle.cpp.ll +++ b/bench/hermes/optimized/MicrosoftDemangle.cpp.ll @@ -8816,7 +8816,7 @@ _ZN12_GLOBAL__N_19Demangler10copyStringE10StringView.exit: ; preds = %_ZN12Outpu ; Function Attrs: mustprogress nounwind uwtable define internal fastcc noundef ptr @_ZN12_GLOBAL__N_19Demangler30demangleFunctionIdentifierCodeER10StringView27FunctionIdentifierCodeGroup(ptr nocapture noundef nonnull align 8 dereferenceable(200) %this, ptr nocapture noundef nonnull align 8 dereferenceable(16) %MangledName, i32 noundef %Group) unnamed_addr #2 align 2 { entry: - switch i32 %Group, label %return [ + switch i32 %Group, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb9 i32 2, label %sw.bb15 @@ -9209,8 +9209,11 @@ _ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNod store i8 %retval.0.i89, ptr %Operator2.i7.i109, align 8 br label %return -return: ; preds = %entry, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit111, %_ZN12_GLOBAL__N_19Demangler33demangleLiteralOperatorIdentifierER10StringView.exit, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit61, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit, %_ZN12_GLOBAL__N_19Demangler36demangleConversionOperatorIdentifierER10StringView.exit, %_ZN12_GLOBAL__N_19Demangler26demangleStructorIdentifierER10StringViewb.exit - %retval.0 = phi ptr [ %call2.i.sink9.i.i80, %_ZN12_GLOBAL__N_19Demangler33demangleLiteralOperatorIdentifierER10StringView.exit ], [ %call2.i.sink10.i106, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit111 ], [ %call2.i.sink10.i56, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit61 ], [ %call2.i.sink10.i, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit ], [ %call2.i.sink9.i.i, %_ZN12_GLOBAL__N_19Demangler36demangleConversionOperatorIdentifierER10StringView.exit ], [ %call2.i.sink11.i.i, %_ZN12_GLOBAL__N_19Demangler26demangleStructorIdentifierER10StringViewb.exit ], [ null, %entry ] +default.unreachable: ; preds = %entry + unreachable + +return: ; preds = %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit111, %_ZN12_GLOBAL__N_19Demangler33demangleLiteralOperatorIdentifierER10StringView.exit, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit61, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit, %_ZN12_GLOBAL__N_19Demangler36demangleConversionOperatorIdentifierER10StringView.exit, %_ZN12_GLOBAL__N_19Demangler26demangleStructorIdentifierER10StringViewb.exit + %retval.0 = phi ptr [ %call2.i.sink9.i.i80, %_ZN12_GLOBAL__N_19Demangler33demangleLiteralOperatorIdentifierER10StringView.exit ], [ %call2.i.sink10.i106, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit111 ], [ %call2.i.sink10.i56, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit61 ], [ %call2.i.sink10.i, %_ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_31IntrinsicFunctionIdentifierNodeEJNS0_21IntrinsicFunctionKindEEEEPT_DpOT0_.exit ], [ %call2.i.sink9.i.i, %_ZN12_GLOBAL__N_19Demangler36demangleConversionOperatorIdentifierER10StringView.exit ], [ %call2.i.sink11.i.i, %_ZN12_GLOBAL__N_19Demangler26demangleStructorIdentifierER10StringViewb.exit ] ret ptr %retval.0 } diff --git a/bench/icu/optimized/name2uni.ll b/bench/icu/optimized/name2uni.ll index c8e87492015..8105bc97812 100644 --- a/bench/icu/optimized/name2uni.ll +++ b/bench/icu/optimized/name2uni.ll @@ -765,10 +765,8 @@ while.body: ; preds = %while.body.lr.ph, % to label %invoke.cont17 unwind label %lpad16.loopexit.loopexit invoke.cont17: ; preds = %while.body - switch i32 %mode.0137, label %sw.epilog [ - i32 0, label %sw.bb - i32 1, label %sw.bb30 - ] + %switch = icmp eq i32 %mode.0137, 0 + br i1 %switch, label %sw.bb, label %sw.bb30 lpad: ; preds = %if.end7 %6 = landingpad { ptr, i32 } @@ -882,7 +880,6 @@ invoke.cont47: ; preds = %if.then44 %22 = load i32, ptr %fLength.i, align 4 %cond.i72 = select i1 %cmp.i.i69, i32 %22, i32 %shr.i.i70 %cmp49 = icmp sle i32 %cond.i72, %inc - %spec.select = zext i1 %cmp49 to i32 br label %sw.epilog if.end53: ; preds = %invoke.cont31 @@ -920,8 +917,8 @@ if.end66: ; preds = %invoke.cont61, %inv %tobool.not.i = icmp eq i32 %and.i, 0 %and5.i = and i32 %conv1.i, 2 %tobool6.not.i = icmp eq i32 %and5.i, 0 - %spec.select150 = select i1 %tobool6.not.i, ptr %.pre, ptr %fBuffer.i.i.i - %retval.0.i93 = select i1 %tobool.not.i, ptr %spec.select150, ptr null + %spec.select = select i1 %tobool6.not.i, ptr %.pre, ptr %fBuffer.i.i.i + %retval.0.i93 = select i1 %tobool.not.i, ptr %spec.select, ptr null %call70 = invoke signext i8 @uprv_isInvariantUString_75(ptr noundef %retval.0.i93, i32 noundef %len.0) to label %invoke.cont69 unwind label %lpad16.loopexit.loopexit.split-lp @@ -1019,17 +1016,17 @@ invoke.cont102: ; preds = %if.then99 %40 = load i32, ptr %fLength.i, align 4 %cond.i119 = select i1 %cmp.i.i116, i32 %40, i32 %shr.i.i117 %cmp104.not.not = icmp sle i32 %cond.i119, %call - %spec.select57 = zext i1 %cmp104.not.not to i32 br label %sw.epilog if.else: ; preds = %invoke.cont96 %dec107 = add nsw i32 %cursor.0136, -1 br label %sw.epilog -sw.epilog: ; preds = %invoke.cont102, %invoke.cont47, %if.else, %invoke.cont34, %invoke.cont40, %sw.bb, %invoke.cont21, %invoke.cont17 - %cursor.2 = phi i32 [ %cursor.0136, %invoke.cont17 ], [ %cursor.0136, %invoke.cont40 ], [ %cursor.0136, %invoke.cont34 ], [ %dec107, %if.else ], [ %cursor.0136, %invoke.cont21 ], [ %cursor.0136, %sw.bb ], [ %cursor.0136, %invoke.cont47 ], [ %cursor.0136, %invoke.cont102 ] - %mode.1 = phi i32 [ %mode.0137, %invoke.cont17 ], [ 1, %invoke.cont40 ], [ 1, %invoke.cont34 ], [ 0, %if.else ], [ 0, %invoke.cont21 ], [ 0, %sw.bb ], [ %spec.select, %invoke.cont47 ], [ %spec.select57, %invoke.cont102 ] - %openPos.1 = phi i32 [ %openPos.0138, %invoke.cont17 ], [ %openPos.0138, %invoke.cont40 ], [ %openPos.0138, %invoke.cont34 ], [ %openPos.0138, %if.else ], [ %cursor.0136, %invoke.cont21 ], [ %openPos.0138, %sw.bb ], [ %openPos.0138, %invoke.cont47 ], [ %openPos.0138, %invoke.cont102 ] +sw.epilog: ; preds = %invoke.cont102, %invoke.cont47, %if.else, %invoke.cont34, %invoke.cont40, %sw.bb, %invoke.cont21 + %cursor.2 = phi i32 [ %cursor.0136, %invoke.cont40 ], [ %cursor.0136, %invoke.cont34 ], [ %dec107, %if.else ], [ %cursor.0136, %invoke.cont21 ], [ %cursor.0136, %sw.bb ], [ %cursor.0136, %invoke.cont47 ], [ %cursor.0136, %invoke.cont102 ] + %mode.1.shrunk = phi i1 [ true, %invoke.cont40 ], [ true, %invoke.cont34 ], [ false, %if.else ], [ false, %invoke.cont21 ], [ false, %sw.bb ], [ %cmp49, %invoke.cont47 ], [ %cmp104.not.not, %invoke.cont102 ] + %openPos.1 = phi i32 [ %openPos.0138, %invoke.cont40 ], [ %openPos.0138, %invoke.cont34 ], [ %openPos.0138, %if.else ], [ %cursor.0136, %invoke.cont21 ], [ %openPos.0138, %sw.bb ], [ %openPos.0138, %invoke.cont47 ], [ %openPos.0138, %invoke.cont102 ] + %mode.1 = zext i1 %mode.1.shrunk to i32 %cmp109 = icmp ult i32 %call.i59, 65536 %cond = select i1 %cmp109, i32 1, i32 2 %add = add nsw i32 %cursor.2, %cond diff --git a/bench/icu/optimized/rle.ll b/bench/icu/optimized/rle.ll index 056bf61ecd5..c0f8f27bb17 100644 --- a/bench/icu/optimized/rle.ll +++ b/bench/icu/optimized/rle.ll @@ -1017,7 +1017,7 @@ if.end26: ; preds = %for.body, %if.then2 %i.1 = phi i32 [ %inc, %if.then20 ], [ %i.046, %for.body ] %b.0.in = phi i16 [ %4, %if.then20 ], [ %c.043, %for.body ] %b.0 = trunc i16 %b.0.in to i8 - switch i32 %node.044, label %sw.epilog [ + switch i32 %node.044, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb36 i32 2, label %for.cond48.preheader @@ -1083,15 +1083,18 @@ sw.epilog.loopexit: ; preds = %if.then54 %8 = trunc i64 %indvars.iv.next to i32 br label %sw.epilog -sw.epilog: ; preds = %sw.epilog.loopexit, %for.cond48.preheader, %sw.bb, %if.then40, %if.else44, %if.else31, %if.end26 - %node.1 = phi i32 [ %node.044, %if.end26 ], [ 0, %if.then40 ], [ 2, %if.else44 ], [ 0, %if.else31 ], [ 1, %sw.bb ], [ 0, %for.cond48.preheader ], [ 0, %sw.epilog.loopexit ] - %runLength.1 = phi i32 [ %runLength.045, %if.end26 ], [ %runLength.045, %if.then40 ], [ %conv37, %if.else44 ], [ %runLength.045, %if.else31 ], [ %runLength.045, %sw.bb ], [ %runLength.045, %for.cond48.preheader ], [ %runLength.045, %sw.epilog.loopexit ] - %ai.2 = phi i32 [ %ai.047, %if.end26 ], [ %inc41, %if.then40 ], [ %ai.047, %if.else44 ], [ %inc32, %if.else31 ], [ %ai.047, %sw.bb ], [ %ai.047, %for.cond48.preheader ], [ %8, %sw.epilog.loopexit ] +default.unreachable: ; preds = %if.end26 + unreachable + +sw.epilog: ; preds = %sw.epilog.loopexit, %for.cond48.preheader, %sw.bb, %if.then40, %if.else44, %if.else31 + %9 = phi i1 [ true, %if.then40 ], [ false, %if.else44 ], [ true, %if.else31 ], [ false, %sw.bb ], [ true, %for.cond48.preheader ], [ true, %sw.epilog.loopexit ] + %node.1 = phi i32 [ 0, %if.then40 ], [ 2, %if.else44 ], [ 0, %if.else31 ], [ 1, %sw.bb ], [ 0, %for.cond48.preheader ], [ 0, %sw.epilog.loopexit ] + %runLength.1 = phi i32 [ %runLength.045, %if.then40 ], [ %conv37, %if.else44 ], [ %runLength.045, %if.else31 ], [ %runLength.045, %sw.bb ], [ %runLength.045, %for.cond48.preheader ], [ %runLength.045, %sw.epilog.loopexit ] + %ai.2 = phi i32 [ %inc41, %if.then40 ], [ %ai.047, %if.else44 ], [ %inc32, %if.else31 ], [ %ai.047, %sw.bb ], [ %ai.047, %for.cond48.preheader ], [ %8, %sw.epilog.loopexit ] %cmp17 = icmp slt i32 %ai.2, %tgtLen br i1 %cmp17, label %for.body, label %for.end61, !llvm.loop !15 for.end61: ; preds = %sw.epilog - %9 = icmp eq i32 %node.1, 0 br i1 %9, label %if.end65, label %return.sink.split if.end65: ; preds = %for.cond.preheader, %for.end61 diff --git a/bench/icu/optimized/ucnv2022.ll b/bench/icu/optimized/ucnv2022.ll index da0d5b97a60..8d75566ff5f 100644 --- a/bench/icu/optimized/ucnv2022.ll +++ b/bench/icu/optimized/ucnv2022.ll @@ -2647,7 +2647,7 @@ DONE: ; preds = %while.cond ] if.else10: ; preds = %DONE.thread, %DONE - switch i32 %var, label %if.then147.sink.split [ + switch i32 %var, label %default.unreachable [ i32 1, label %sw.bb11 i32 3, label %sw.bb58 i32 2, label %sw.bb133 @@ -2807,6 +2807,9 @@ sw.bb133: ; preds = %if.else10 %cmp134 = icmp eq i32 %shr.i, 48 br i1 %cmp134, label %if.end141, label %if.then186.sink.split +default.unreachable: ; preds = %if.else10 + unreachable + if.end141: ; preds = %sw.bb133, %sw.bb112, %sw.bb117, %if.end80, %if.end101, %if.else126, %if.end, %if.else37, %if.else51 %.pr = load i32, ptr %err, align 4 %cmp.i71 = icmp sgt i32 %.pr, 0 @@ -2822,7 +2825,7 @@ if.else145: ; preds = %if.end141 i32 19, label %if.then186 ] -if.then147.sink.split: ; preds = %if.else10, %sw.bb85, %sw.bb64, %sw.bb15, %DONE, %DONE.thread84 +if.then147.sink.split: ; preds = %sw.bb85, %sw.bb64, %sw.bb15, %DONE, %DONE.thread84 store i32 18, ptr %err, align 4 br label %if.then147 diff --git a/bench/icu/optimized/ucnvmbcs.ll b/bench/icu/optimized/ucnvmbcs.ll index 97a3d6d456d..e4c06c6bbea 100644 --- a/bench/icu/optimized/ucnvmbcs.ll +++ b/bench/icu/optimized/ucnvmbcs.ll @@ -62,9 +62,9 @@ if.then2: ; preds = %entry br label %for.body for.body: ; preds = %if.then2, %for.inc40 - %indvars.iv146 = phi i64 [ 0, %if.then2 ], [ %indvars.iv.next147, %for.inc40 ] - %c.0133 = phi i32 [ 0, %if.then2 ], [ %c.4, %for.inc40 ] - %arrayidx = getelementptr inbounds i16, ptr %0, i64 %indvars.iv146 + %indvars.iv144 = phi i64 [ 0, %if.then2 ], [ %indvars.iv.next145, %for.inc40 ] + %c.0131 = phi i32 [ 0, %if.then2 ], [ %c.4, %for.inc40 ] + %arrayidx = getelementptr inbounds i16, ptr %0, i64 %indvars.iv144 %5 = load i16, ptr %arrayidx, align 2 %conv10 = zext i16 %5 to i32 %cmp12 = icmp ult i32 %., %conv10 @@ -76,9 +76,9 @@ if.then13: ; preds = %for.body br label %for.body18 for.body18: ; preds = %if.then13, %for.inc - %indvars.iv142 = phi i64 [ 0, %if.then13 ], [ %indvars.iv.next143, %for.inc ] - %c.1131 = phi i32 [ %c.0133, %if.then13 ], [ %c.3, %for.inc ] - %arrayidx20 = getelementptr inbounds i16, ptr %add.ptr, i64 %indvars.iv142 + %indvars.iv140 = phi i64 [ 0, %if.then13 ], [ %indvars.iv.next141, %for.inc ] + %c.1129 = phi i32 [ %c.0131, %if.then13 ], [ %c.3, %for.inc ] + %arrayidx20 = getelementptr inbounds i16, ptr %add.ptr, i64 %indvars.iv140 %6 = load i16, ptr %arrayidx20, align 2 %cmp22.not = icmp eq i16 %6, 0 br i1 %cmp22.not, label %if.else33, label %if.then23 @@ -89,7 +89,7 @@ if.then23: ; preds = %for.body18 br label %do.body do.body: ; preds = %do.cond, %if.then23 - %c.2 = phi i32 [ %c.1131, %if.then23 ], [ %inc, %do.cond ] + %c.2 = phi i32 [ %c.1129, %if.then23 ], [ %inc, %do.cond ] %stage3.0 = phi ptr [ %add.ptr25, %if.then23 ], [ %incdec.ptr, %do.cond ] %incdec.ptr = getelementptr inbounds i16, ptr %stage3.0, i64 1 %7 = load i16, ptr %stage3.0, align 2 @@ -110,24 +110,24 @@ do.cond: ; preds = %do.body, %if.then29 br i1 %cmp32.not, label %for.inc, label %do.body, !llvm.loop !4 if.else33: ; preds = %for.body18 - %add34 = add nsw i32 %c.1131, 16 + %add34 = add nsw i32 %c.1129, 16 br label %for.inc for.inc: ; preds = %do.cond, %if.else33 %c.3 = phi i32 [ %add34, %if.else33 ], [ %inc, %do.cond ] - %indvars.iv.next143 = add nuw nsw i64 %indvars.iv142, 1 - %exitcond145.not = icmp eq i64 %indvars.iv.next143, 64 - br i1 %exitcond145.not, label %for.inc40, label %for.body18, !llvm.loop !6 + %indvars.iv.next141 = add nuw nsw i64 %indvars.iv140, 1 + %exitcond143.not = icmp eq i64 %indvars.iv.next141, 64 + br i1 %exitcond143.not, label %for.inc40, label %for.body18, !llvm.loop !6 if.else37: ; preds = %for.body - %add38 = add nsw i32 %c.0133, 1024 + %add38 = add nsw i32 %c.0131, 1024 br label %for.inc40 for.inc40: ; preds = %for.inc, %if.else37 %c.4 = phi i32 [ %add38, %if.else37 ], [ %c.3, %for.inc ] - %indvars.iv.next147 = add nuw nsw i64 %indvars.iv146, 1 - %exitcond149.not = icmp eq i64 %indvars.iv.next147, %wide.trip.count - br i1 %exitcond149.not, label %if.end260, label %for.body, !llvm.loop !7 + %indvars.iv.next145 = add nuw nsw i64 %indvars.iv144, 1 + %exitcond147.not = icmp eq i64 %indvars.iv.next145, %wide.trip.count + br i1 %exitcond147.not, label %if.end260, label %for.body, !llvm.loop !7 if.else43: ; preds = %entry %cmp47 = icmp eq i32 %which, 1 @@ -153,9 +153,9 @@ sw.epilog: ; preds = %if.else43, %if.else br label %for.body56 for.body56: ; preds = %sw.epilog, %for.inc257 - %st1.1130 = phi i16 [ 0, %sw.epilog ], [ %inc258, %for.inc257 ] - %c.5129 = phi i32 [ 0, %sw.epilog ], [ %c.14, %for.inc257 ] - %idxprom57 = zext nneg i16 %st1.1130 to i64 + %st1.1128 = phi i16 [ 0, %sw.epilog ], [ %inc258, %for.inc257 ] + %c.5127 = phi i32 [ 0, %sw.epilog ], [ %c.14, %for.inc257 ] + %idxprom57 = zext nneg i16 %st1.1128 to i64 %arrayidx58 = getelementptr inbounds i16, ptr %0, i64 %idxprom57 %11 = load i16, ptr %arrayidx58, align 2 %conv59 = zext i16 %11 to i32 @@ -169,7 +169,7 @@ if.then62: ; preds = %for.body56 for.body69: ; preds = %if.then62, %for.inc251 %indvars.iv = phi i64 [ 0, %if.then62 ], [ %indvars.iv.next, %for.inc251 ] - %c.6127 = phi i32 [ %c.5129, %if.then62 ], [ %c.13, %for.inc251 ] + %c.6125 = phi i32 [ %c.5127, %if.then62 ], [ %c.13, %for.inc251 ] %arrayidx71 = getelementptr inbounds i32, ptr %add.ptr65, i64 %indvars.iv %12 = load i32, ptr %arrayidx71, align 4 %cmp72.not = icmp eq i32 %12, 0 @@ -191,7 +191,7 @@ if.then73: ; preds = %for.body69 ] do.body81: ; preds = %if.then73, %if.end122 - %c.7 = phi i32 [ %inc125, %if.end122 ], [ %c.6127, %if.then73 ] + %c.7 = phi i32 [ %inc125, %if.end122 ], [ %c.6125, %if.then73 ] %stage345.0 = phi ptr [ %stage345.4, %if.end122 ], [ %add.ptr78, %if.then73 ] %st3.0 = phi i32 [ %shr123, %if.end122 ], [ %shr79, %if.then73 ] %and82 = and i32 %st3.0, 1 @@ -209,10 +209,10 @@ if.else89: ; preds = %do.body81 br i1 %cmp47, label %if.then91, label %if.end122 if.then91: ; preds = %if.else89 - switch i32 %st3Multiplier.0, label %if.end122 [ + switch i32 %st3Multiplier.0, label %default.unreachable148 [ i32 4, label %sw.bb92 i32 3, label %sw.bb97 - i32 2, label %sw.epilog114 + i32 2, label %sw.bb103 ] sw.bb92: ; preds = %if.then91 @@ -226,28 +226,31 @@ sw.bb97: ; preds = %sw.bb92, %if.then91 %incdec.ptr98 = getelementptr inbounds i8, ptr %stage345.1, i64 1 %16 = load i8, ptr %stage345.1, align 1 %or101113 = or i8 %16, %b.0 - br label %sw.epilog114 + br label %sw.bb103 -sw.epilog114: ; preds = %if.then91, %sw.bb97 +sw.bb103: ; preds = %sw.bb97, %if.then91 %stage345.2 = phi ptr [ %stage345.0, %if.then91 ], [ %incdec.ptr98, %sw.bb97 ] %b.1 = phi i8 [ 0, %if.then91 ], [ %or101113, %sw.bb97 ] + %add.ptr112 = getelementptr inbounds i8, ptr %stage345.2, i64 2 %17 = load i8, ptr %stage345.2, align 1 %arrayidx106 = getelementptr inbounds i8, ptr %stage345.2, i64 1 %18 = load i8, ptr %arrayidx106, align 1 %or108114 = or i8 %17, %b.1 %or110115 = or i8 %or108114, %18 - %add.ptr112 = getelementptr inbounds i8, ptr %stage345.2, i64 2 %cmp116.not = icmp eq i8 %or110115, 0 br i1 %cmp116.not, label %if.end122, label %if.then117 -if.then117: ; preds = %sw.epilog114 +default.unreachable148: ; preds = %if.then91 + unreachable + +if.then117: ; preds = %sw.bb103 %19 = load ptr, ptr %add236, align 8 %20 = load ptr, ptr %sa, align 8 tail call void %19(ptr noundef %20, i32 noundef %c.7) br label %if.end122 -if.end122: ; preds = %if.then91, %if.else89, %if.then117, %sw.epilog114, %if.then84 - %stage345.4 = phi ptr [ %add.ptr88, %if.then84 ], [ %add.ptr112, %if.then117 ], [ %add.ptr112, %sw.epilog114 ], [ %stage345.0, %if.else89 ], [ %stage345.0, %if.then91 ] +if.end122: ; preds = %if.else89, %if.then117, %sw.bb103, %if.then84 + %stage345.4 = phi ptr [ %add.ptr88, %if.then84 ], [ %add.ptr112, %if.then117 ], [ %add.ptr112, %sw.bb103 ], [ %stage345.0, %if.else89 ] %shr123 = lshr i32 %st3.0, 1 %inc125 = add nsw i32 %c.7, 1 %and126 = and i32 %inc125, 15 @@ -255,7 +258,7 @@ if.end122: ; preds = %if.then91, %if.else br i1 %cmp127.not, label %for.inc251, label %do.body81, !llvm.loop !8 do.body130: ; preds = %if.then73, %if.end139 - %c.8 = phi i32 [ %inc143, %if.end139 ], [ %c.6127, %if.then73 ] + %c.8 = phi i32 [ %inc143, %if.end139 ], [ %c.6125, %if.then73 ] %stage345.5 = phi ptr [ %add.ptr141, %if.end139 ], [ %add.ptr78, %if.then73 ] %st3.1 = phi i32 [ %shr140, %if.end139 ], [ %shr79, %if.then73 ] %and131 = and i32 %st3.1, 1 @@ -283,7 +286,7 @@ if.end139: ; preds = %do.body130, %if.the br i1 %cmp145.not, label %for.inc251, label %do.body130, !llvm.loop !9 do.body148: ; preds = %if.then73, %if.end161 - %c.9 = phi i32 [ %inc165, %if.end161 ], [ %c.6127, %if.then73 ] + %c.9 = phi i32 [ %inc165, %if.end161 ], [ %c.6125, %if.then73 ] %stage345.6 = phi ptr [ %add.ptr163, %if.end161 ], [ %add.ptr78, %if.then73 ] %st3.2 = phi i32 [ %shr162, %if.end161 ], [ %shr79, %if.then73 ] %and149 = and i32 %st3.2, 1 @@ -312,7 +315,7 @@ if.end161: ; preds = %land.lhs.true153, % br i1 %cmp167.not, label %for.inc251, label %do.body148, !llvm.loop !10 do.body170: ; preds = %if.then73, %if.end183 - %c.10 = phi i32 [ %inc187, %if.end183 ], [ %c.6127, %if.then73 ] + %c.10 = phi i32 [ %inc187, %if.end183 ], [ %c.6125, %if.then73 ] %stage345.7 = phi ptr [ %add.ptr185, %if.end183 ], [ %add.ptr78, %if.then73 ] %st3.3 = phi i32 [ %shr184, %if.end183 ], [ %shr79, %if.then73 ] %and171 = and i32 %st3.3, 1 @@ -341,7 +344,7 @@ if.end183: ; preds = %do.body170, %if.the br i1 %cmp189.not, label %for.inc251, label %do.body170, !llvm.loop !11 do.body192: ; preds = %if.then73, %if.end210 - %c.11 = phi i32 [ %inc214, %if.end210 ], [ %c.6127, %if.then73 ] + %c.11 = phi i32 [ %inc214, %if.end210 ], [ %c.6125, %if.then73 ] %stage345.8 = phi ptr [ %add.ptr212, %if.end210 ], [ %add.ptr78, %if.then73 ] %st3.4 = phi i32 [ %shr211, %if.end210 ], [ %shr79, %if.then73 ] %and193 = and i32 %st3.4, 1 @@ -376,7 +379,7 @@ if.end210: ; preds = %do.body192, %if.the br i1 %cmp216.not, label %for.inc251, label %do.body192, !llvm.loop !12 do.body219: ; preds = %if.then73, %if.end238 - %c.12 = phi i32 [ %inc242, %if.end238 ], [ %c.6127, %if.then73 ] + %c.12 = phi i32 [ %inc242, %if.end238 ], [ %c.6125, %if.then73 ] %stage345.9 = phi ptr [ %add.ptr240, %if.end238 ], [ %add.ptr78, %if.then73 ] %st3.5 = phi i32 [ %shr239, %if.end238 ], [ %shr79, %if.then73 ] %and220 = and i32 %st3.5, 1 @@ -415,7 +418,7 @@ sw.default246: ; preds = %if.then73 br label %return if.else248: ; preds = %for.body69 - %add249 = add nsw i32 %c.6127, 16 + %add249 = add nsw i32 %c.6125, 16 br label %for.inc251 for.inc251: ; preds = %if.end238, %if.end210, %if.end183, %if.end161, %if.end139, %if.end122, %if.else248 @@ -425,12 +428,12 @@ for.inc251: ; preds = %if.end238, %if.end2 br i1 %exitcond.not, label %for.inc257, label %for.body69, !llvm.loop !14 if.else254: ; preds = %for.body56 - %add255 = add nsw i32 %c.5129, 1024 + %add255 = add nsw i32 %c.5127, 1024 br label %for.inc257 for.inc257: ; preds = %for.inc251, %if.else254 %c.14 = phi i32 [ %add255, %if.else254 ], [ %c.13, %for.inc251 ] - %inc258 = add nuw nsw i16 %st1.1130, 1 + %inc258 = add nuw nsw i16 %st1.1128, 1 %cmp55 = icmp ult i16 %inc258, %10 br i1 %cmp55, label %for.body56, label %if.end260, !llvm.loop !15 @@ -3069,24 +3072,24 @@ while.cond.preheader.i379: ; preds = %if.end165.i, %if.el br i1 %cmp24106.i, label %while.body.i383.preheader, label %_ZL37ucnv_MBCSDoubleFromUnicodeWithOffsetsP25UConverterFromUnicodeArgsP10UErrorCode.exit while.body.i383.preheader: ; preds = %while.cond.preheader.i379 - %cmp25.i384503 = icmp sgt i32 %targetCapacity.0.ph.i, 0 - br i1 %cmp25.i384503, label %if.then26.i, label %if.else166.i + %cmp25.i384505 = icmp sgt i32 %targetCapacity.0.ph.i, 0 + br i1 %cmp25.i384505, label %if.then26.i, label %if.else166.i while.body.i383: ; preds = %if.end38.i - %dec.i425 = add nsw i32 %targetCapacity.0110.i504, -1 - %cmp25.i384 = icmp sgt i32 %targetCapacity.0110.i504, 1 + %dec.i425 = add nsw i32 %targetCapacity.0110.i506, -1 + %cmp25.i384 = icmp sgt i32 %targetCapacity.0110.i506, 1 br i1 %cmp25.i384, label %if.then26.i, label %if.else166.i, !llvm.loop !34 if.then26.i: ; preds = %while.body.i383.preheader, %while.body.i383 - %nextSourceIndex.0107.i506 = phi i32 [ %inc.i386, %while.body.i383 ], [ %nextSourceIndex.0.ph.i, %while.body.i383.preheader ] - %sourceIndex.0108.i505 = phi i32 [ %sourceIndex.1.i424, %while.body.i383 ], [ %sourceIndex.0.ph.i380, %while.body.i383.preheader ] - %targetCapacity.0110.i504 = phi i32 [ %dec.i425, %while.body.i383 ], [ %targetCapacity.0.ph.i, %while.body.i383.preheader ] + %nextSourceIndex.0107.i508 = phi i32 [ %inc.i386, %while.body.i383 ], [ %nextSourceIndex.0.ph.i, %while.body.i383.preheader ] + %sourceIndex.0108.i507 = phi i32 [ %sourceIndex.1.i424, %while.body.i383 ], [ %sourceIndex.0.ph.i380, %while.body.i383.preheader ] + %targetCapacity.0110.i506 = phi i32 [ %dec.i425, %while.body.i383 ], [ %targetCapacity.0.ph.i, %while.body.i383.preheader ] %99 = phi ptr [ %103, %while.body.i383 ], [ %98, %while.body.i383.preheader ] %incdec.ptr.i385 = getelementptr inbounds i16, ptr %99, i64 1 store ptr %incdec.ptr.i385, ptr %source.i360, align 8 %100 = load i16, ptr %99, align 2 %conv27.i = zext i16 %100 to i32 - %inc.i386 = add nsw i32 %nextSourceIndex.0107.i506, 1 + %inc.i386 = add nsw i32 %nextSourceIndex.0107.i508, 1 %cmp28.i387 = icmp ult i16 %100, 128 br i1 %cmp28.i387, label %land.lhs.true29.i, label %if.end39.i @@ -3110,17 +3113,17 @@ if.then32.i: ; preds = %land.lhs.true29.i if.then36.i: ; preds = %if.then32.i %incdec.ptr37.i = getelementptr inbounds i32, ptr %102, i64 1 store ptr %incdec.ptr37.i, ptr %offsets.i362, align 8 - store i32 %sourceIndex.0108.i505, ptr %102, align 4 + store i32 %sourceIndex.0108.i507, ptr %102, align 4 br label %if.end38.i if.end38.i: ; preds = %if.then36.i, %if.then32.i - %sourceIndex.1.i424 = phi i32 [ %inc.i386, %if.then36.i ], [ %sourceIndex.0108.i505, %if.then32.i ] + %sourceIndex.1.i424 = phi i32 [ %inc.i386, %if.then36.i ], [ %sourceIndex.0108.i507, %if.then32.i ] %103 = load ptr, ptr %source.i360, align 8 %cmp24.i426 = icmp ult ptr %103, %89 br i1 %cmp24.i426, label %while.body.i383, label %_ZL37ucnv_MBCSDoubleFromUnicodeWithOffsetsP25UConverterFromUnicodeArgsP10UErrorCode.exit, !llvm.loop !34 if.end39.i: ; preds = %if.then26.i - %incdec.ptr.i385.le608 = getelementptr inbounds i16, ptr %99, i64 1 + %incdec.ptr.i385.le625 = getelementptr inbounds i16, ptr %99, i64 1 %cmp40.i = icmp ult i16 %100, -10240 br i1 %cmp40.i, label %if.then41.i, label %if.else51.i @@ -3129,7 +3132,7 @@ if.then41.i.loopexit: ; preds = %land.lhs.true29.i br label %if.then41.i if.then41.i: ; preds = %if.then41.i.loopexit, %if.end39.i - %incdec.ptr.i385596 = phi ptr [ %incdec.ptr.i385.le, %if.then41.i.loopexit ], [ %incdec.ptr.i385.le608, %if.end39.i ] + %incdec.ptr.i385613 = phi ptr [ %incdec.ptr.i385.le, %if.then41.i.loopexit ], [ %incdec.ptr.i385.le625, %if.end39.i ] %shr42.i = lshr i32 %conv27.i, 6 %idxprom.i418 = zext nneg i32 %shr42.i to i64 %arrayidx.i419 = getelementptr inbounds i16, ptr %94, i64 %idxprom.i418 @@ -3157,11 +3160,11 @@ if.then57.i: ; preds = %if.else51.i br i1 %cmp59.i, label %getTrail.i410, label %if.else81.i409 getTrail.i410: ; preds = %if.then57.i, %if.then25 - %107 = phi ptr [ %88, %if.then25 ], [ %incdec.ptr.i385.le608, %if.then57.i ] + %107 = phi ptr [ %88, %if.then25 ], [ %incdec.ptr.i385.le625, %if.then57.i ] %nextSourceIndex.1.i411 = phi i32 [ 0, %if.then25 ], [ %inc.i386, %if.then57.i ] - %sourceIndex.2.i412 = phi i32 [ %cond.i377, %if.then25 ], [ %sourceIndex.0108.i505, %if.then57.i ] + %sourceIndex.2.i412 = phi i32 [ %cond.i377, %if.then25 ], [ %sourceIndex.0108.i507, %if.then57.i ] %c.1.i413 = phi i32 [ %97, %if.then25 ], [ %conv27.i, %if.then57.i ] - %targetCapacity.1.i414 = phi i32 [ %conv.i369, %if.then25 ], [ %targetCapacity.0110.i504, %if.then57.i ] + %targetCapacity.1.i414 = phi i32 [ %conv.i369, %if.then25 ], [ %targetCapacity.0110.i506, %if.then57.i ] %cmp61.i = icmp ult ptr %107, %89 br i1 %cmp61.i, label %if.then62.i, label %_ZL37ucnv_MBCSDoubleFromUnicodeWithOffsetsP25UConverterFromUnicodeArgsP10UErrorCode.exit @@ -3192,11 +3195,11 @@ if.else81.i409: ; preds = %if.then57.i br label %_ZL37ucnv_MBCSDoubleFromUnicodeWithOffsetsP25UConverterFromUnicodeArgsP10UErrorCode.exit if.end83.i389: ; preds = %if.then66.i416, %if.else51.i - %110 = phi ptr [ %incdec.ptr67.i, %if.then66.i416 ], [ %incdec.ptr.i385.le608, %if.else51.i ] + %110 = phi ptr [ %incdec.ptr67.i, %if.then66.i416 ], [ %incdec.ptr.i385.le625, %if.else51.i ] %nextSourceIndex.2.i390 = phi i32 [ %inc68.i, %if.then66.i416 ], [ %inc.i386, %if.else51.i ] - %sourceIndex.3.i391 = phi i32 [ %sourceIndex.2.i412, %if.then66.i416 ], [ %sourceIndex.0108.i505, %if.else51.i ] + %sourceIndex.3.i391 = phi i32 [ %sourceIndex.2.i412, %if.then66.i416 ], [ %sourceIndex.0108.i507, %if.else51.i ] %c.2.i392 = phi i32 [ %sub.i417, %if.then66.i416 ], [ %conv27.i, %if.else51.i ] - %targetCapacity.2.i393 = phi i32 [ %targetCapacity.1.i414, %if.then66.i416 ], [ %targetCapacity.0110.i504, %if.else51.i ] + %targetCapacity.2.i393 = phi i32 [ %targetCapacity.1.i414, %if.then66.i416 ], [ %targetCapacity.0110.i506, %if.else51.i ] %shr84.i = ashr i32 %c.2.i392, 10 %idxprom85.i = sext i32 %shr84.i to i64 %arrayidx86.i = getelementptr inbounds i16, ptr %93, i64 %idxprom85.i @@ -3242,11 +3245,11 @@ land.lhs.true112.i: ; preds = %lor.lhs.false.i br i1 %cmp113.old.not.i, label %unassigned.i398, label %if.end133.i unassigned.i398: ; preds = %land.lhs.true112.i, %lor.lhs.false109.i, %if.then66.i416, %if.then41.i - %115 = phi ptr [ %incdec.ptr.i385596, %if.then41.i ], [ %110, %land.lhs.true112.i ], [ %110, %lor.lhs.false109.i ], [ %incdec.ptr67.i, %if.then66.i416 ] + %115 = phi ptr [ %incdec.ptr.i385613, %if.then41.i ], [ %110, %land.lhs.true112.i ], [ %110, %lor.lhs.false109.i ], [ %incdec.ptr67.i, %if.then66.i416 ] %nextSourceIndex.3.i399 = phi i32 [ %inc.i386, %if.then41.i ], [ %nextSourceIndex.2.i390, %land.lhs.true112.i ], [ %nextSourceIndex.2.i390, %lor.lhs.false109.i ], [ %inc68.i, %if.then66.i416 ] - %sourceIndex.4.i400 = phi i32 [ %sourceIndex.0108.i505, %if.then41.i ], [ %sourceIndex.3.i391, %land.lhs.true112.i ], [ %sourceIndex.3.i391, %lor.lhs.false109.i ], [ %sourceIndex.2.i412, %if.then66.i416 ] + %sourceIndex.4.i400 = phi i32 [ %sourceIndex.0108.i507, %if.then41.i ], [ %sourceIndex.3.i391, %land.lhs.true112.i ], [ %sourceIndex.3.i391, %lor.lhs.false109.i ], [ %sourceIndex.2.i412, %if.then66.i416 ] %c.3.i401 = phi i32 [ %conv27.i, %if.then41.i ], [ %c.2.i392, %land.lhs.true112.i ], [ %c.2.i392, %lor.lhs.false109.i ], [ %sub.i417, %if.then66.i416 ] - %targetCapacity.3.i402 = phi i32 [ %targetCapacity.0110.i504, %if.then41.i ], [ %targetCapacity.2.i393, %land.lhs.true112.i ], [ %targetCapacity.2.i393, %lor.lhs.false109.i ], [ %targetCapacity.1.i414, %if.then66.i416 ] + %targetCapacity.3.i402 = phi i32 [ %targetCapacity.0110.i506, %if.then41.i ], [ %targetCapacity.2.i393, %land.lhs.true112.i ], [ %targetCapacity.2.i393, %lor.lhs.false109.i ], [ %targetCapacity.1.i414, %if.then66.i416 ] store ptr %115, ptr %source2.i, align 8 %116 = load ptr, ptr %sharedData.i364, align 8 %117 = load ptr, ptr %target.i361, align 8 @@ -3278,9 +3281,9 @@ if.else126.i: ; preds = %unassigned.i398 if.end133.i: ; preds = %land.lhs.true112.i, %lor.lhs.false109.i, %if.end83.i389, %if.then41.i %nextSourceIndex.4.i = phi i32 [ %inc.i386, %if.then41.i ], [ %nextSourceIndex.2.i390, %lor.lhs.false109.i ], [ %nextSourceIndex.2.i390, %land.lhs.true112.i ], [ %nextSourceIndex.2.i390, %if.end83.i389 ] - %sourceIndex.5.i394 = phi i32 [ %sourceIndex.0108.i505, %if.then41.i ], [ %sourceIndex.3.i391, %lor.lhs.false109.i ], [ %sourceIndex.3.i391, %land.lhs.true112.i ], [ %sourceIndex.3.i391, %if.end83.i389 ] + %sourceIndex.5.i394 = phi i32 [ %sourceIndex.0108.i507, %if.then41.i ], [ %sourceIndex.3.i391, %lor.lhs.false109.i ], [ %sourceIndex.3.i391, %land.lhs.true112.i ], [ %sourceIndex.3.i391, %if.end83.i389 ] %value.0.in.i = phi i16 [ %105, %if.then41.i ], [ %113, %lor.lhs.false109.i ], [ %113, %land.lhs.true112.i ], [ %113, %if.end83.i389 ] - %targetCapacity.4.i = phi i32 [ %targetCapacity.0110.i504, %if.then41.i ], [ %targetCapacity.2.i393, %lor.lhs.false109.i ], [ %targetCapacity.2.i393, %land.lhs.true112.i ], [ %targetCapacity.2.i393, %if.end83.i389 ] + %targetCapacity.4.i = phi i32 [ %targetCapacity.0110.i506, %if.then41.i ], [ %targetCapacity.2.i393, %lor.lhs.false109.i ], [ %targetCapacity.2.i393, %land.lhs.true112.i ], [ %targetCapacity.2.i393, %if.end83.i389 ] %cmp134.i = icmp ult i16 %value.0.in.i, 256 br i1 %cmp134.i, label %if.then135.i, label %if.else143.i @@ -3357,13 +3360,13 @@ if.end165.i: ; preds = %if.end165.sink.spli br label %while.cond.preheader.i379, !llvm.loop !34 if.else166.i: ; preds = %while.body.i383, %while.body.i383.preheader - %.lcssa483 = phi ptr [ %98, %while.body.i383.preheader ], [ %103, %while.body.i383 ] + %.lcssa485 = phi ptr [ %98, %while.body.i383.preheader ], [ %103, %while.body.i383 ] %c.0109.i.lcssa = phi i32 [ %c.0.ph.i381, %while.body.i383.preheader ], [ 0, %while.body.i383 ] store i32 15, ptr %pErrorCode, align 4 br label %_ZL37ucnv_MBCSDoubleFromUnicodeWithOffsetsP25UConverterFromUnicodeArgsP10UErrorCode.exit _ZL37ucnv_MBCSDoubleFromUnicodeWithOffsetsP25UConverterFromUnicodeArgsP10UErrorCode.exit: ; preds = %if.end38.i, %while.cond.preheader.i379, %getTrail.i410, %if.else77.i, %if.else81.i409, %unassigned.i398, %if.end161.i, %if.else166.i - %131 = phi ptr [ %.pre131.i, %unassigned.i398 ], [ %incdec.ptr.i385.le608, %if.else81.i409 ], [ %.lcssa483, %if.else166.i ], [ %.pre130.i, %if.end161.i ], [ %107, %if.else77.i ], [ %107, %getTrail.i410 ], [ %98, %while.cond.preheader.i379 ], [ %103, %if.end38.i ] + %131 = phi ptr [ %.pre131.i, %unassigned.i398 ], [ %incdec.ptr.i385.le625, %if.else81.i409 ], [ %.lcssa485, %if.else166.i ], [ %.pre130.i, %if.end161.i ], [ %107, %if.else77.i ], [ %107, %getTrail.i410 ], [ %98, %while.cond.preheader.i379 ], [ %103, %if.end38.i ] %c.4.i382 = phi i32 [ %call.i406, %unassigned.i398 ], [ %conv27.i, %if.else81.i409 ], [ %c.0109.i.lcssa, %if.else166.i ], [ 0, %if.end161.i ], [ %c.1.i413, %if.else77.i ], [ %c.1.i413, %getTrail.i410 ], [ %c.0.ph.i381, %while.cond.preheader.i379 ], [ 0, %if.end38.i ] store i32 %c.4.i382, ptr %fromUChar32.i376, align 4 store ptr %131, ptr %source2.i, align 8 @@ -3435,12 +3438,12 @@ if.end65: ; preds = %if.end45, %if.then6 %cond = sext i1 %cmp66 to i32 %and.i428 = and i32 %142, 4096 %cmp.not.i429 = icmp eq i32 %and.i428, 0 - br i1 %cmp.not.i429, label %if.else.i, label %_ZL12getSISOBytes11SISO_OptionjPh.exit432 + br i1 %cmp.not.i429, label %if.else.i, label %_ZL12getSISOBytes11SISO_OptionjPh.exit434 if.else.i: ; preds = %if.end65 %and2.i = and i32 %142, 8192 %cmp3.not.i = icmp eq i32 %and2.i, 0 - br i1 %cmp3.not.i, label %if.else6.i, label %_ZL12getSISOBytes11SISO_OptionjPh.exit432 + br i1 %cmp3.not.i, label %if.else6.i, label %_ZL12getSISOBytes11SISO_OptionjPh.exit434 if.else6.i: ; preds = %if.else.i %and7.i = and i32 %142, 16384 @@ -3448,58 +3451,57 @@ if.else6.i: ; preds = %if.else.i %siBytes.sroa.11.0.ph.ph = select i1 %cmp8.not.i, i8 0, i8 113 %siBytes.sroa.0.0.ph.ph = select i1 %cmp8.not.i, i8 15, i8 26 %SISOLength.0.i.ph.ph = select i1 %cmp8.not.i, i32 1, i32 2 - %conv69453562 = trunc i32 %SISOLength.0.i.ph.ph to i8 + %conv69455564 = trunc i32 %SISOLength.0.i.ph.ph to i8 %and28.i = and i32 %142, 16384 %cmp29.not.i = icmp eq i32 %and28.i, 0 - br i1 %cmp29.not.i, label %if.else33.i, label %_ZL12getSISOBytes11SISO_OptionjPh.exit432 + br i1 %cmp29.not.i, label %if.else33.i, label %_ZL12getSISOBytes11SISO_OptionjPh.exit434 if.else33.i: ; preds = %if.else6.i - br label %_ZL12getSISOBytes11SISO_OptionjPh.exit432 + br label %_ZL12getSISOBytes11SISO_OptionjPh.exit434 -_ZL12getSISOBytes11SISO_OptionjPh.exit432: ; preds = %if.else.i, %if.end65, %if.else6.i, %if.else33.i - %conv69460 = phi i8 [ %conv69453562, %if.else33.i ], [ %conv69453562, %if.else6.i ], [ 2, %if.end65 ], [ 1, %if.else.i ] - %SISOLength.0.i458 = phi i32 [ %SISOLength.0.i.ph.ph, %if.else33.i ], [ %SISOLength.0.i.ph.ph, %if.else6.i ], [ 2, %if.end65 ], [ 1, %if.else.i ] - %siBytes.sroa.0.0456 = phi i8 [ %siBytes.sroa.0.0.ph.ph, %if.else33.i ], [ %siBytes.sroa.0.0.ph.ph, %if.else6.i ], [ 10, %if.end65 ], [ 41, %if.else.i ] - %siBytes.sroa.11.0454 = phi i8 [ %siBytes.sroa.11.0.ph.ph, %if.else33.i ], [ %siBytes.sroa.11.0.ph.ph, %if.else6.i ], [ 65, %if.end65 ], [ 0, %if.else.i ] +_ZL12getSISOBytes11SISO_OptionjPh.exit434: ; preds = %if.else.i, %if.end65, %if.else6.i, %if.else33.i + %conv69462 = phi i8 [ %conv69455564, %if.else33.i ], [ %conv69455564, %if.else6.i ], [ 2, %if.end65 ], [ 1, %if.else.i ] + %SISOLength.0.i460 = phi i32 [ %SISOLength.0.i.ph.ph, %if.else33.i ], [ %SISOLength.0.i.ph.ph, %if.else6.i ], [ 2, %if.end65 ], [ 1, %if.else.i ] + %siBytes.sroa.0.0458 = phi i8 [ %siBytes.sroa.0.0.ph.ph, %if.else33.i ], [ %siBytes.sroa.0.0.ph.ph, %if.else6.i ], [ 10, %if.end65 ], [ 41, %if.else.i ] + %siBytes.sroa.11.0456 = phi i8 [ %siBytes.sroa.11.0.ph.ph, %if.else33.i ], [ %siBytes.sroa.11.0.ph.ph, %if.else6.i ], [ 65, %if.end65 ], [ 0, %if.else.i ] %soBytes.sroa.9.0 = phi i32 [ 0, %if.else33.i ], [ 7340032, %if.else6.i ], [ 4325376, %if.end65 ], [ 0, %if.else.i ] %soBytes.sroa.0.0 = phi i32 [ 14, %if.else33.i ], [ 26, %if.else6.i ], [ 10, %if.end65 ], [ 40, %if.else.i ] - %SISOLength.0.i430 = phi i32 [ 1, %if.else33.i ], [ 2, %if.else6.i ], [ 2, %if.end65 ], [ 1, %if.else.i ] + %cmp410 = phi i1 [ true, %if.else33.i ], [ false, %if.else6.i ], [ false, %if.end65 ], [ true, %if.else.i ] %cmp76 = icmp sgt i32 %conv32, 0 %or.cond = select i1 %cmp66, i1 %cmp76, i1 false br i1 %or.cond, label %getTrail, label %while.cond.preheader -while.cond.preheader: ; preds = %if.else589, %if.end643, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 - %146 = phi ptr [ %134, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %197, %if.else589 ], [ %.pre, %if.end643 ] - %prevSourceIndex.0.ph = phi i32 [ -1, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %spec.select, %if.else589 ], [ %spec.select298, %if.end643 ] - %sourceIndex.0.ph = phi i32 [ %cond, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %spec.select297, %if.else589 ], [ %spec.select299, %if.end643 ] - %nextSourceIndex.0.ph = phi i32 [ 0, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %add584, %if.else589 ], [ %nextSourceIndex.4, %if.end643 ] - %c.0.ph = phi i32 [ %144, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %call578, %if.else589 ], [ 0, %if.end643 ] - %length.0.ph = phi i32 [ 0, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %length.9, %if.else589 ], [ %length.10, %if.end643 ] - %prevLength.1.ph = phi i32 [ %prevLength.0, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %195, %if.else589 ], [ %prevLength.6, %if.end643 ] - %targetCapacity.0.ph = phi i32 [ %conv32, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %conv594, %if.else589 ], [ %sub644, %if.end643 ] - %cmp79509 = icmp ult ptr %146, %135 - br i1 %cmp79509, label %while.body.preheader, label %while.end +while.cond.preheader: ; preds = %if.else589, %if.end643, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 + %146 = phi ptr [ %134, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %197, %if.else589 ], [ %.pre, %if.end643 ] + %prevSourceIndex.0.ph = phi i32 [ -1, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %spec.select, %if.else589 ], [ %spec.select298, %if.end643 ] + %sourceIndex.0.ph = phi i32 [ %cond, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %spec.select297, %if.else589 ], [ %spec.select299, %if.end643 ] + %nextSourceIndex.0.ph = phi i32 [ 0, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %add584, %if.else589 ], [ %nextSourceIndex.4579, %if.end643 ] + %c.0.ph = phi i32 [ %144, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %call578, %if.else589 ], [ 0, %if.end643 ] + %prevLength.1.ph = phi i32 [ %prevLength.0, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %195, %if.else589 ], [ %prevLength.6582, %if.end643 ] + %targetCapacity.0.ph = phi i32 [ %conv32, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %conv594, %if.else589 ], [ %sub644, %if.end643 ] + %cmp79511 = icmp ult ptr %146, %135 + br i1 %cmp79511, label %while.body.preheader, label %while.end while.body.preheader: ; preds = %while.cond.preheader %smin = call i32 @llvm.smin.i32(i32 %targetCapacity.0.ph, i32 0) - %cmp80654 = icmp sgt i32 %targetCapacity.0.ph, 0 - br i1 %cmp80654, label %if.then81, label %while.end.sink.split + %cmp80671 = icmp sgt i32 %targetCapacity.0.ph, 0 + br i1 %cmp80671, label %if.then81, label %while.end.sink.split while.body: ; preds = %if.end93 - %cmp80 = icmp sgt i32 %targetCapacity.0514655, 1 + %cmp80 = icmp sgt i32 %targetCapacity.0516672, 1 br i1 %cmp80, label %if.then81, label %while.end.sink.split, !llvm.loop !35 if.then81: ; preds = %while.body.preheader, %while.body - %prevSourceIndex.0510658 = phi i32 [ %prevSourceIndex.1, %while.body ], [ %prevSourceIndex.0.ph, %while.body.preheader ] - %sourceIndex.0511657 = phi i32 [ %sourceIndex.1, %while.body ], [ %sourceIndex.0.ph, %while.body.preheader ] - %nextSourceIndex.0512656 = phi i32 [ %inc, %while.body ], [ %nextSourceIndex.0.ph, %while.body.preheader ] - %targetCapacity.0514655 = phi i32 [ %dec, %while.body ], [ %targetCapacity.0.ph, %while.body.preheader ] + %prevSourceIndex.0512675 = phi i32 [ %prevSourceIndex.1, %while.body ], [ %prevSourceIndex.0.ph, %while.body.preheader ] + %sourceIndex.0513674 = phi i32 [ %sourceIndex.1, %while.body ], [ %sourceIndex.0.ph, %while.body.preheader ] + %nextSourceIndex.0514673 = phi i32 [ %inc, %while.body ], [ %nextSourceIndex.0.ph, %while.body.preheader ] + %targetCapacity.0516672 = phi i32 [ %dec, %while.body ], [ %targetCapacity.0.ph, %while.body.preheader ] %147 = phi ptr [ %151, %while.body ], [ %146, %while.body.preheader ] %incdec.ptr = getelementptr inbounds i16, ptr %147, i64 1 store ptr %incdec.ptr, ptr %source, align 8 %148 = load i16, ptr %147, align 2 %conv82 = zext i16 %148 to i32 - %inc = add nsw i32 %nextSourceIndex.0512656, 1 + %inc = add nsw i32 %nextSourceIndex.0514673, 1 %cmp83 = icmp ult i16 %148, 128 br i1 %cmp83, label %land.lhs.true84, label %if.end94 @@ -3523,13 +3525,13 @@ if.then87: ; preds = %land.lhs.true84 if.then91: ; preds = %if.then87 %incdec.ptr92 = getelementptr inbounds i32, ptr %150, i64 1 store ptr %incdec.ptr92, ptr %offsets, align 8 - store i32 %sourceIndex.0511657, ptr %150, align 4 + store i32 %sourceIndex.0513674, ptr %150, align 4 br label %if.end93 if.end93: ; preds = %if.then91, %if.then87 - %prevSourceIndex.1 = phi i32 [ %sourceIndex.0511657, %if.then91 ], [ %prevSourceIndex.0510658, %if.then87 ] - %sourceIndex.1 = phi i32 [ %inc, %if.then91 ], [ %sourceIndex.0511657, %if.then87 ] - %dec = add nsw i32 %targetCapacity.0514655, -1 + %prevSourceIndex.1 = phi i32 [ %sourceIndex.0513674, %if.then91 ], [ %prevSourceIndex.0512675, %if.then87 ] + %sourceIndex.1 = phi i32 [ %inc, %if.then91 ], [ %sourceIndex.0513674, %if.then87 ] + %dec = add nsw i32 %targetCapacity.0516672, -1 %151 = load ptr, ptr %source, align 8 %cmp79 = icmp ult ptr %151, %135 br i1 %cmp79, label %while.body, label %while.end, !llvm.loop !35 @@ -3547,7 +3549,7 @@ if.then98: ; preds = %if.end94 %arrayidx = getelementptr inbounds i16, ptr %mbcsIndex.0, i64 %idxprom %152 = load i16, ptr %arrayidx, align 2 %conv100 = zext i16 %152 to i32 - switch i8 %5, label %if.end599 [ + switch i8 %5, label %if.then601 [ i8 1, label %sw.bb i8 12, label %sw.bb114 i8 -37, label %sw.bb178 @@ -3592,24 +3594,26 @@ if.else125: ; preds = %if.then122 br i1 %cmp126, label %if.end599, label %if.else128 if.else128: ; preds = %if.else125 - switch i32 %SISOLength.0.i458, label %if.end599 [ - i32 1, label %if.then131 - i32 2, label %if.then138 - ] + %cmp130 = icmp eq i32 %SISOLength.0.i460, 1 + br i1 %cmp130, label %if.then131, label %if.then138 if.then131: ; preds = %if.else128 - %conv133 = zext nneg i8 %siBytes.sroa.0.0456 to i32 + %conv133 = zext nneg i8 %siBytes.sroa.0.0458 to i32 %shl134 = shl nuw nsw i32 %conv133, 8 - %or = or disjoint i32 %shl134, %conv120 - br label %if.end599 + br label %if.end148 if.then138: ; preds = %if.else128 - %conv140 = zext nneg i8 %siBytes.sroa.11.0454 to i32 + %conv140 = zext nneg i8 %siBytes.sroa.11.0456 to i32 %shl141 = shl nuw nsw i32 %conv140, 8 - %conv144 = zext nneg i8 %siBytes.sroa.0.0456 to i32 + %conv144 = zext nneg i8 %siBytes.sroa.0.0458 to i32 %shl145 = shl nuw nsw i32 %conv144, 16 %155 = or disjoint i32 %shl141, %shl145 - %or146 = or disjoint i32 %155, %conv120 + br label %if.end148 + +if.end148: ; preds = %if.then138, %if.then131 + %shl134.pn = phi i32 [ %shl134, %if.then131 ], [ %155, %if.then138 ] + %length.1 = phi i32 [ 2, %if.then131 ], [ 3, %if.then138 ] + %value.0 = or disjoint i32 %shl134.pn, %conv120 br label %if.end599 if.else151: ; preds = %sw.bb114 @@ -3617,20 +3621,12 @@ if.else151: ; preds = %sw.bb114 br i1 %cmp152, label %if.end599, label %if.else154 if.else154: ; preds = %if.else151 - switch i32 %SISOLength.0.i430, label %if.end599 [ - i32 1, label %if.then157 - i32 2, label %if.then165 - ] - -if.then157: ; preds = %if.else154 %shl160 = shl nuw nsw i32 %soBytes.sroa.0.0, 16 - %or161 = or disjoint i32 %shl160, %conv120 - br label %if.end599 - -if.then165: ; preds = %if.else154 %shl172 = shl nuw nsw i32 %soBytes.sroa.0.0, 24 %156 = or disjoint i32 %shl172, %soBytes.sroa.9.0 - %or173 = or disjoint i32 %156, %conv120 + %shl160.pn = select i1 %cmp410, i32 %shl160, i32 %156 + %length.2 = select i1 %cmp410, i32 3, i32 4 + %value.1 = or disjoint i32 %shl160.pn, %conv120 br label %if.end599 sw.bb178: ; preds = %if.then98 @@ -3785,15 +3781,14 @@ if.then305: ; preds = %if.else298 %cmp307 = icmp eq i32 %and306, 0 br i1 %cmp307, label %getTrail, label %while.end.sink.split -getTrail: ; preds = %if.then305, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 - %168 = phi ptr [ %134, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %incdec.ptr.le, %if.then305 ] - %prevSourceIndex.2 = phi i32 [ -1, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %prevSourceIndex.0510658, %if.then305 ] - %sourceIndex.2 = phi i32 [ %cond, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %sourceIndex.0511657, %if.then305 ] - %nextSourceIndex.1 = phi i32 [ 0, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %inc, %if.then305 ] - %c.1 = phi i32 [ %144, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %conv82, %if.then305 ] - %length.4 = phi i32 [ 0, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %length.0.ph, %if.then305 ] - %prevLength.3 = phi i32 [ %prevLength.0, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %prevLength.1.ph, %if.then305 ] - %targetCapacity.1 = phi i32 [ %conv32, %_ZL12getSISOBytes11SISO_OptionjPh.exit432 ], [ %targetCapacity.0514655, %if.then305 ] +getTrail: ; preds = %if.then305, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 + %168 = phi ptr [ %134, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %incdec.ptr.le, %if.then305 ] + %prevSourceIndex.2 = phi i32 [ -1, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %prevSourceIndex.0512675, %if.then305 ] + %sourceIndex.2 = phi i32 [ %cond, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %sourceIndex.0513674, %if.then305 ] + %nextSourceIndex.1 = phi i32 [ 0, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %inc, %if.then305 ] + %c.1 = phi i32 [ %144, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %conv82, %if.then305 ] + %prevLength.3 = phi i32 [ %prevLength.0, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %prevLength.1.ph, %if.then305 ] + %targetCapacity.1 = phi i32 [ %conv32, %_ZL12getSISOBytes11SISO_OptionjPh.exit434 ], [ %targetCapacity.0516672, %if.then305 ] %cmp309 = icmp ult ptr %168, %135 br i1 %cmp309, label %if.then310, label %while.end @@ -3822,13 +3817,12 @@ if.then323: ; preds = %if.then314 if.end332: ; preds = %if.then314, %if.else298 %171 = phi ptr [ %incdec.ptr315, %if.then314 ], [ %incdec.ptr.le, %if.else298 ] - %prevSourceIndex.3 = phi i32 [ %prevSourceIndex.2, %if.then314 ], [ %prevSourceIndex.0510658, %if.else298 ] - %sourceIndex.3 = phi i32 [ %sourceIndex.2, %if.then314 ], [ %sourceIndex.0511657, %if.else298 ] + %prevSourceIndex.3 = phi i32 [ %prevSourceIndex.2, %if.then314 ], [ %prevSourceIndex.0512675, %if.else298 ] + %sourceIndex.3 = phi i32 [ %sourceIndex.2, %if.then314 ], [ %sourceIndex.0513674, %if.else298 ] %nextSourceIndex.2 = phi i32 [ %inc316, %if.then314 ], [ %inc, %if.else298 ] %c.2 = phi i32 [ %sub, %if.then314 ], [ %conv82, %if.else298 ] - %length.5 = phi i32 [ %length.4, %if.then314 ], [ %length.0.ph, %if.else298 ] %prevLength.4 = phi i32 [ %prevLength.3, %if.then314 ], [ %prevLength.1.ph, %if.else298 ] - %targetCapacity.2 = phi i32 [ %targetCapacity.1, %if.then314 ], [ %targetCapacity.0514655, %if.else298 ] + %targetCapacity.2 = phi i32 [ %targetCapacity.1, %if.then314 ], [ %targetCapacity.0516672, %if.else298 ] %shr333 = ashr i32 %c.2, 10 %idxprom334 = sext i32 %shr333 to i64 %arrayidx335 = getelementptr inbounds i16, ptr %139, i64 %idxprom334 @@ -3851,7 +3845,7 @@ if.end332: ; preds = %if.then314, %if.els ] if.end332.sw.epilog555_crit_edge: ; preds = %if.end332 - %.pre558 = and i32 %c.2, 15 + %.pre560 = and i32 %c.2, 15 br label %sw.epilog555 sw.bb343: ; preds = %if.end332 @@ -3897,24 +3891,26 @@ if.else378: ; preds = %land.lhs.true369, % br i1 %cmp379, label %sw.epilog555, label %if.else381 if.else381: ; preds = %if.else378 - switch i32 %SISOLength.0.i458, label %sw.epilog555 [ - i32 1, label %if.then384 - i32 2, label %if.then392 - ] + %cmp383 = icmp eq i32 %SISOLength.0.i460, 1 + br i1 %cmp383, label %if.then384, label %if.then392 if.then384: ; preds = %if.else381 - %conv386 = zext nneg i8 %siBytes.sroa.0.0456 to i32 + %conv386 = zext nneg i8 %siBytes.sroa.0.0458 to i32 %shl387 = shl nuw nsw i32 %conv386, 8 - %or388 = or disjoint i32 %shl387, %conv365 - br label %sw.epilog555 + br label %if.end402 if.then392: ; preds = %if.else381 - %conv394 = zext nneg i8 %siBytes.sroa.11.0454 to i32 + %conv394 = zext nneg i8 %siBytes.sroa.11.0456 to i32 %shl395 = shl nuw nsw i32 %conv394, 8 - %conv398 = zext nneg i8 %siBytes.sroa.0.0456 to i32 + %conv398 = zext nneg i8 %siBytes.sroa.0.0458 to i32 %shl399 = shl nuw nsw i32 %conv398, 16 %178 = or disjoint i32 %shl395, %shl399 - %or400 = or disjoint i32 %178, %conv365 + br label %if.end402 + +if.end402: ; preds = %if.then392, %if.then384 + %shl387.pn = phi i32 [ %shl387, %if.then384 ], [ %178, %if.then392 ] + %length.6 = phi i32 [ 2, %if.then384 ], [ 3, %if.then392 ] + %value.3 = or disjoint i32 %shl387.pn, %conv365 br label %sw.epilog555 if.else405: ; preds = %sw.bb356 @@ -3922,20 +3918,12 @@ if.else405: ; preds = %sw.bb356 br i1 %cmp406, label %sw.epilog555, label %if.else408 if.else408: ; preds = %if.else405 - switch i32 %SISOLength.0.i430, label %sw.epilog555 [ - i32 1, label %if.then411 - i32 2, label %if.then419 - ] - -if.then411: ; preds = %if.else408 %shl414 = shl nuw nsw i32 %soBytes.sroa.0.0, 16 - %or415 = or disjoint i32 %shl414, %conv365 - br label %sw.epilog555 - -if.then419: ; preds = %if.else408 %shl426 = shl nuw nsw i32 %soBytes.sroa.0.0, 24 %179 = or disjoint i32 %shl426, %soBytes.sroa.9.0 - %or427 = or disjoint i32 %179, %conv365 + %shl414.pn = select i1 %cmp410, i32 %shl414, i32 %179 + %length.7 = select i1 %cmp410, i32 3, i32 4 + %value.4 = or disjoint i32 %shl414.pn, %conv365 br label %sw.epilog555 sw.bb432: ; preds = %if.end332 @@ -4071,12 +4059,12 @@ if.else544: ; preds = %if.else539 %spec.select307 = select i1 %cmp546, i32 4, i32 3 br label %sw.epilog555 -sw.epilog555: ; preds = %if.end332.sw.epilog555_crit_edge, %if.else544, %if.else507, %if.else536, %sw.bb516, %sw.bb491, %if.else484, %if.else481, %sw.bb471, %if.else465, %sw.bb445, %sw.bb432, %if.then411, %if.then419, %if.else408, %if.else405, %if.then384, %if.then392, %if.else381, %if.else378, %land.lhs.true369, %sw.bb343, %if.then542, %if.then505, %if.else443 - %and556.pre-phi = phi i32 [ %.pre558, %if.end332.sw.epilog555_crit_edge ], [ %and520, %if.else544 ], [ %and495, %if.else507 ], [ %and520, %if.else536 ], [ %and520, %sw.bb516 ], [ %and495, %sw.bb491 ], [ %and475, %if.else484 ], [ %and475, %if.else481 ], [ %and475, %sw.bb471 ], [ %and449, %if.else465 ], [ %and449, %sw.bb445 ], [ %and436, %sw.bb432 ], [ %and361, %if.then411 ], [ %and361, %if.then419 ], [ %and361, %if.else408 ], [ %and361, %if.else405 ], [ %and361, %if.then384 ], [ %and361, %if.then392 ], [ %and361, %if.else381 ], [ %and361, %if.else378 ], [ %and361, %land.lhs.true369 ], [ %and347, %sw.bb343 ], [ %and520, %if.then542 ], [ %and495, %if.then505 ], [ %and436, %if.else443 ] - %stage2Entry.0 = phi i32 [ 0, %if.end332.sw.epilog555_crit_edge ], [ %173, %if.else544 ], [ %173, %if.else507 ], [ %173, %if.else536 ], [ %173, %sw.bb516 ], [ %173, %sw.bb491 ], [ %173, %if.else484 ], [ %173, %if.else481 ], [ %173, %sw.bb471 ], [ %173, %if.else465 ], [ %173, %sw.bb445 ], [ 0, %sw.bb432 ], [ %173, %if.then411 ], [ %173, %if.then419 ], [ %173, %if.else408 ], [ %173, %if.else405 ], [ %173, %if.then384 ], [ %173, %if.then392 ], [ %173, %if.else381 ], [ %173, %if.else378 ], [ %173, %land.lhs.true369 ], [ %173, %sw.bb343 ], [ %173, %if.then542 ], [ %173, %if.then505 ], [ %173, %if.else443 ] - %value.5 = phi i32 [ 0, %if.end332.sw.epilog555_crit_edge ], [ %spec.select306, %if.else544 ], [ %spec.select304, %if.else507 ], [ %or533, %if.else536 ], [ %or533, %sw.bb516 ], [ %conv499, %sw.bb491 ], [ %184, %if.else484 ], [ %184, %if.else481 ], [ %184, %sw.bb471 ], [ %or462, %if.else465 ], [ %or462, %sw.bb445 ], [ 0, %sw.bb432 ], [ %or415, %if.then411 ], [ %or427, %if.then419 ], [ %conv365, %if.else408 ], [ %conv365, %if.else405 ], [ %or388, %if.then384 ], [ %or400, %if.then392 ], [ %conv365, %if.else381 ], [ %conv365, %if.else378 ], [ 0, %land.lhs.true369 ], [ %conv351, %sw.bb343 ], [ %or543, %if.then542 ], [ %or506, %if.then505 ], [ %conv440, %if.else443 ] - %length.8 = phi i32 [ 0, %if.end332.sw.epilog555_crit_edge ], [ %spec.select307, %if.else544 ], [ %spec.select305, %if.else507 ], [ 2, %if.else536 ], [ 1, %sw.bb516 ], [ 1, %sw.bb491 ], [ %.295, %if.else484 ], [ 2, %if.else481 ], [ 1, %sw.bb471 ], [ %.294, %if.else465 ], [ 1, %sw.bb445 ], [ 0, %sw.bb432 ], [ 3, %if.then411 ], [ 4, %if.then419 ], [ %length.5, %if.else408 ], [ 2, %if.else405 ], [ 2, %if.then384 ], [ 3, %if.then392 ], [ %length.5, %if.else381 ], [ 1, %if.else378 ], [ 0, %land.lhs.true369 ], [ %.293, %sw.bb343 ], [ 4, %if.then542 ], [ 3, %if.then505 ], [ 2, %if.else443 ] - %prevLength.5 = phi i32 [ %prevLength.4, %if.end332.sw.epilog555_crit_edge ], [ %prevLength.4, %if.else544 ], [ %prevLength.4, %if.else507 ], [ %prevLength.4, %if.else536 ], [ %prevLength.4, %sw.bb516 ], [ %prevLength.4, %sw.bb491 ], [ %prevLength.4, %if.else484 ], [ %prevLength.4, %if.else481 ], [ %prevLength.4, %sw.bb471 ], [ %prevLength.4, %if.else465 ], [ %prevLength.4, %sw.bb445 ], [ %prevLength.4, %sw.bb432 ], [ 2, %if.then411 ], [ 2, %if.then419 ], [ 2, %if.else408 ], [ 2, %if.else405 ], [ 1, %if.then384 ], [ 1, %if.then392 ], [ 1, %if.else381 ], [ %prevLength.4, %if.else378 ], [ %prevLength.4, %land.lhs.true369 ], [ %prevLength.4, %sw.bb343 ], [ %prevLength.4, %if.then542 ], [ %prevLength.4, %if.then505 ], [ %prevLength.4, %if.else443 ] +sw.epilog555: ; preds = %if.end332.sw.epilog555_crit_edge, %if.else544, %if.else507, %if.else536, %sw.bb516, %sw.bb491, %if.else484, %if.else481, %sw.bb471, %if.else465, %sw.bb445, %sw.bb432, %if.else405, %if.else378, %land.lhs.true369, %sw.bb343, %if.then542, %if.then505, %if.else443, %if.end402, %if.else408 + %and556.pre-phi = phi i32 [ %.pre560, %if.end332.sw.epilog555_crit_edge ], [ %and520, %if.else544 ], [ %and495, %if.else507 ], [ %and520, %if.else536 ], [ %and520, %sw.bb516 ], [ %and495, %sw.bb491 ], [ %and475, %if.else484 ], [ %and475, %if.else481 ], [ %and475, %sw.bb471 ], [ %and449, %if.else465 ], [ %and449, %sw.bb445 ], [ %and436, %sw.bb432 ], [ %and361, %if.else405 ], [ %and361, %if.else378 ], [ %and361, %land.lhs.true369 ], [ %and347, %sw.bb343 ], [ %and520, %if.then542 ], [ %and495, %if.then505 ], [ %and436, %if.else443 ], [ %and361, %if.end402 ], [ %and361, %if.else408 ] + %stage2Entry.0 = phi i32 [ 0, %if.end332.sw.epilog555_crit_edge ], [ %173, %if.else544 ], [ %173, %if.else507 ], [ %173, %if.else536 ], [ %173, %sw.bb516 ], [ %173, %sw.bb491 ], [ %173, %if.else484 ], [ %173, %if.else481 ], [ %173, %sw.bb471 ], [ %173, %if.else465 ], [ %173, %sw.bb445 ], [ 0, %sw.bb432 ], [ %173, %if.else405 ], [ %173, %if.else378 ], [ %173, %land.lhs.true369 ], [ %173, %sw.bb343 ], [ %173, %if.then542 ], [ %173, %if.then505 ], [ %173, %if.else443 ], [ %173, %if.end402 ], [ %173, %if.else408 ] + %value.5 = phi i32 [ 0, %if.end332.sw.epilog555_crit_edge ], [ %spec.select306, %if.else544 ], [ %spec.select304, %if.else507 ], [ %or533, %if.else536 ], [ %or533, %sw.bb516 ], [ %conv499, %sw.bb491 ], [ %184, %if.else484 ], [ %184, %if.else481 ], [ %184, %sw.bb471 ], [ %or462, %if.else465 ], [ %or462, %sw.bb445 ], [ 0, %sw.bb432 ], [ %conv365, %if.else405 ], [ %conv365, %if.else378 ], [ 0, %land.lhs.true369 ], [ %conv351, %sw.bb343 ], [ %or543, %if.then542 ], [ %or506, %if.then505 ], [ %conv440, %if.else443 ], [ %value.3, %if.end402 ], [ %value.4, %if.else408 ] + %length.8 = phi i32 [ 0, %if.end332.sw.epilog555_crit_edge ], [ %spec.select307, %if.else544 ], [ %spec.select305, %if.else507 ], [ 2, %if.else536 ], [ 1, %sw.bb516 ], [ 1, %sw.bb491 ], [ %.295, %if.else484 ], [ 2, %if.else481 ], [ 1, %sw.bb471 ], [ %.294, %if.else465 ], [ 1, %sw.bb445 ], [ 0, %sw.bb432 ], [ 2, %if.else405 ], [ 1, %if.else378 ], [ 0, %land.lhs.true369 ], [ %.293, %sw.bb343 ], [ 4, %if.then542 ], [ 3, %if.then505 ], [ 2, %if.else443 ], [ %length.6, %if.end402 ], [ %length.7, %if.else408 ] + %prevLength.5 = phi i32 [ %prevLength.4, %if.end332.sw.epilog555_crit_edge ], [ %prevLength.4, %if.else544 ], [ %prevLength.4, %if.else507 ], [ %prevLength.4, %if.else536 ], [ %prevLength.4, %sw.bb516 ], [ %prevLength.4, %sw.bb491 ], [ %prevLength.4, %if.else484 ], [ %prevLength.4, %if.else481 ], [ %prevLength.4, %sw.bb471 ], [ %prevLength.4, %if.else465 ], [ %prevLength.4, %sw.bb445 ], [ %prevLength.4, %sw.bb432 ], [ 2, %if.else405 ], [ %prevLength.4, %if.else378 ], [ %prevLength.4, %land.lhs.true369 ], [ %prevLength.4, %sw.bb343 ], [ %prevLength.4, %if.then542 ], [ %prevLength.4, %if.then505 ], [ %prevLength.4, %if.else443 ], [ 1, %if.end402 ], [ 2, %if.else408 ] %add557 = or disjoint i32 %and556.pre-phi, 16 %shl558 = shl nuw i32 1, %add557 %and559 = and i32 %stage2Entry.0, %shl558 @@ -4105,12 +4093,11 @@ land.lhs.true571: ; preds = %lor.lhs.false563 unassigned: ; preds = %lor.lhs.false568, %land.lhs.true571, %if.then275, %if.then240, %if.then218, %if.then201, %sw.bb178, %if.then122, %if.then107, %if.then323 %191 = phi ptr [ %incdec.ptr.le, %if.then275 ], [ %incdec.ptr.le, %if.then240 ], [ %incdec.ptr.le, %if.then218 ], [ %incdec.ptr.le, %if.then201 ], [ %incdec.ptr.le, %sw.bb178 ], [ %incdec.ptr.le, %if.then122 ], [ %incdec.ptr.le, %if.then107 ], [ %171, %land.lhs.true571 ], [ %171, %lor.lhs.false568 ], [ %incdec.ptr315, %if.then323 ] - %prevSourceIndex.4 = phi i32 [ %prevSourceIndex.0510658, %if.then275 ], [ %prevSourceIndex.0510658, %if.then240 ], [ %prevSourceIndex.0510658, %if.then218 ], [ %prevSourceIndex.0510658, %if.then201 ], [ %prevSourceIndex.0510658, %sw.bb178 ], [ %prevSourceIndex.0510658, %if.then122 ], [ %prevSourceIndex.0510658, %if.then107 ], [ %prevSourceIndex.3, %land.lhs.true571 ], [ %prevSourceIndex.3, %lor.lhs.false568 ], [ %prevSourceIndex.2, %if.then323 ] - %sourceIndex.4 = phi i32 [ %sourceIndex.0511657, %if.then275 ], [ %sourceIndex.0511657, %if.then240 ], [ %sourceIndex.0511657, %if.then218 ], [ %sourceIndex.0511657, %if.then201 ], [ %sourceIndex.0511657, %sw.bb178 ], [ %sourceIndex.0511657, %if.then122 ], [ %sourceIndex.0511657, %if.then107 ], [ %sourceIndex.3, %land.lhs.true571 ], [ %sourceIndex.3, %lor.lhs.false568 ], [ %sourceIndex.2, %if.then323 ] + %prevSourceIndex.4 = phi i32 [ %prevSourceIndex.0512675, %if.then275 ], [ %prevSourceIndex.0512675, %if.then240 ], [ %prevSourceIndex.0512675, %if.then218 ], [ %prevSourceIndex.0512675, %if.then201 ], [ %prevSourceIndex.0512675, %sw.bb178 ], [ %prevSourceIndex.0512675, %if.then122 ], [ %prevSourceIndex.0512675, %if.then107 ], [ %prevSourceIndex.3, %land.lhs.true571 ], [ %prevSourceIndex.3, %lor.lhs.false568 ], [ %prevSourceIndex.2, %if.then323 ] + %sourceIndex.4 = phi i32 [ %sourceIndex.0513674, %if.then275 ], [ %sourceIndex.0513674, %if.then240 ], [ %sourceIndex.0513674, %if.then218 ], [ %sourceIndex.0513674, %if.then201 ], [ %sourceIndex.0513674, %sw.bb178 ], [ %sourceIndex.0513674, %if.then122 ], [ %sourceIndex.0513674, %if.then107 ], [ %sourceIndex.3, %land.lhs.true571 ], [ %sourceIndex.3, %lor.lhs.false568 ], [ %sourceIndex.2, %if.then323 ] %nextSourceIndex.3 = phi i32 [ %inc, %if.then275 ], [ %inc, %if.then240 ], [ %inc, %if.then218 ], [ %inc, %if.then201 ], [ %inc, %sw.bb178 ], [ %inc, %if.then122 ], [ %inc, %if.then107 ], [ %nextSourceIndex.2, %land.lhs.true571 ], [ %nextSourceIndex.2, %lor.lhs.false568 ], [ %inc316, %if.then323 ] %c.3 = phi i32 [ %conv82, %if.then275 ], [ %conv82, %if.then240 ], [ %conv82, %if.then218 ], [ %conv82, %if.then201 ], [ %conv82, %sw.bb178 ], [ %conv82, %if.then122 ], [ %conv82, %if.then107 ], [ %c.2, %land.lhs.true571 ], [ %c.2, %lor.lhs.false568 ], [ %sub, %if.then323 ] - %length.9 = phi i32 [ %length.0.ph, %if.then275 ], [ %length.0.ph, %if.then240 ], [ %length.0.ph, %if.then218 ], [ %length.0.ph, %if.then201 ], [ %length.0.ph, %sw.bb178 ], [ %length.0.ph, %if.then122 ], [ %length.0.ph, %if.then107 ], [ %length.8, %land.lhs.true571 ], [ %length.8, %lor.lhs.false568 ], [ %length.4, %if.then323 ] - %targetCapacity.3 = phi i32 [ %targetCapacity.0514655, %if.then275 ], [ %targetCapacity.0514655, %if.then240 ], [ %targetCapacity.0514655, %if.then218 ], [ %targetCapacity.0514655, %if.then201 ], [ %targetCapacity.0514655, %sw.bb178 ], [ %targetCapacity.0514655, %if.then122 ], [ %targetCapacity.0514655, %if.then107 ], [ %targetCapacity.2, %land.lhs.true571 ], [ %targetCapacity.2, %lor.lhs.false568 ], [ %targetCapacity.1, %if.then323 ] + %targetCapacity.3 = phi i32 [ %targetCapacity.0516672, %if.then275 ], [ %targetCapacity.0516672, %if.then240 ], [ %targetCapacity.0516672, %if.then218 ], [ %targetCapacity.0516672, %if.then201 ], [ %targetCapacity.0516672, %sw.bb178 ], [ %targetCapacity.0516672, %if.then122 ], [ %targetCapacity.0516672, %if.then107 ], [ %targetCapacity.2, %land.lhs.true571 ], [ %targetCapacity.2, %lor.lhs.false568 ], [ %targetCapacity.1, %if.then323 ] store ptr %191, ptr %source28, align 8 %192 = load ptr, ptr %sharedData, align 8 %193 = load ptr, ptr %target, align 8 @@ -4122,8 +4109,8 @@ unassigned: ; preds = %lor.lhs.false568, % %fromUnicodeStatus585 = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 16 %195 = load i32, ptr %fromUnicodeStatus585, align 8 %196 = load i32, ptr %pErrorCode, align 4 - %cmp.i433 = icmp slt i32 %196, 1 - br i1 %cmp.i433, label %if.else589, label %while.end + %cmp.i435 = icmp slt i32 %196, 1 + br i1 %cmp.i435, label %if.else589, label %while.end if.else589: ; preds = %unassigned %197 = load ptr, ptr %source, align 8 @@ -4146,24 +4133,31 @@ if.else589: ; preds = %unassigned %spec.select297 = select i1 %cmp595.not, i32 %sourceIndex.4, i32 %add584 br label %while.cond.preheader, !llvm.loop !35 -if.end599: ; preds = %if.else288, %if.else250, %sw.epilog555, %land.lhs.true571, %lor.lhs.false568, %if.else186, %if.then248, %if.then286, %if.then107, %sw.bb, %if.else125, %if.else128, %if.then138, %if.then131, %if.else151, %if.else154, %if.then165, %if.then157, %if.then201, %if.else206, %if.then218, %if.else223, %if.else226, %if.then240, %if.then275, %if.else280, %if.then98 - %prevSourceIndex.6 = phi i32 [ %prevSourceIndex.0510658, %if.then98 ], [ %prevSourceIndex.0510658, %if.else280 ], [ %prevSourceIndex.0510658, %if.then275 ], [ %prevSourceIndex.0510658, %if.then240 ], [ %prevSourceIndex.0510658, %if.else226 ], [ %prevSourceIndex.0510658, %if.else223 ], [ %prevSourceIndex.0510658, %if.then218 ], [ %prevSourceIndex.0510658, %if.else206 ], [ %prevSourceIndex.0510658, %if.then201 ], [ %prevSourceIndex.0510658, %if.then157 ], [ %prevSourceIndex.0510658, %if.then165 ], [ %prevSourceIndex.0510658, %if.else154 ], [ %prevSourceIndex.0510658, %if.else151 ], [ %prevSourceIndex.0510658, %if.then131 ], [ %prevSourceIndex.0510658, %if.then138 ], [ %prevSourceIndex.0510658, %if.else128 ], [ %prevSourceIndex.0510658, %if.else125 ], [ %prevSourceIndex.0510658, %sw.bb ], [ %prevSourceIndex.0510658, %if.then107 ], [ %prevSourceIndex.0510658, %if.then286 ], [ %prevSourceIndex.0510658, %if.then248 ], [ %prevSourceIndex.0510658, %if.else186 ], [ %prevSourceIndex.3, %lor.lhs.false568 ], [ %prevSourceIndex.3, %land.lhs.true571 ], [ %prevSourceIndex.3, %sw.epilog555 ], [ %prevSourceIndex.0510658, %if.else250 ], [ %prevSourceIndex.0510658, %if.else288 ] - %sourceIndex.6 = phi i32 [ %sourceIndex.0511657, %if.then98 ], [ %sourceIndex.0511657, %if.else280 ], [ %sourceIndex.0511657, %if.then275 ], [ %sourceIndex.0511657, %if.then240 ], [ %sourceIndex.0511657, %if.else226 ], [ %sourceIndex.0511657, %if.else223 ], [ %sourceIndex.0511657, %if.then218 ], [ %sourceIndex.0511657, %if.else206 ], [ %sourceIndex.0511657, %if.then201 ], [ %sourceIndex.0511657, %if.then157 ], [ %sourceIndex.0511657, %if.then165 ], [ %sourceIndex.0511657, %if.else154 ], [ %sourceIndex.0511657, %if.else151 ], [ %sourceIndex.0511657, %if.then131 ], [ %sourceIndex.0511657, %if.then138 ], [ %sourceIndex.0511657, %if.else128 ], [ %sourceIndex.0511657, %if.else125 ], [ %sourceIndex.0511657, %sw.bb ], [ %sourceIndex.0511657, %if.then107 ], [ %sourceIndex.0511657, %if.then286 ], [ %sourceIndex.0511657, %if.then248 ], [ %sourceIndex.0511657, %if.else186 ], [ %sourceIndex.3, %lor.lhs.false568 ], [ %sourceIndex.3, %land.lhs.true571 ], [ %sourceIndex.3, %sw.epilog555 ], [ %sourceIndex.0511657, %if.else250 ], [ %sourceIndex.0511657, %if.else288 ] - %nextSourceIndex.4 = phi i32 [ %inc, %if.then98 ], [ %inc, %if.else280 ], [ %inc, %if.then275 ], [ %inc, %if.then240 ], [ %inc, %if.else226 ], [ %inc, %if.else223 ], [ %inc, %if.then218 ], [ %inc, %if.else206 ], [ %inc, %if.then201 ], [ %inc, %if.then157 ], [ %inc, %if.then165 ], [ %inc, %if.else154 ], [ %inc, %if.else151 ], [ %inc, %if.then131 ], [ %inc, %if.then138 ], [ %inc, %if.else128 ], [ %inc, %if.else125 ], [ %inc, %sw.bb ], [ %inc, %if.then107 ], [ %inc, %if.then286 ], [ %inc, %if.then248 ], [ %inc, %if.else186 ], [ %nextSourceIndex.2, %lor.lhs.false568 ], [ %nextSourceIndex.2, %land.lhs.true571 ], [ %nextSourceIndex.2, %sw.epilog555 ], [ %inc, %if.else250 ], [ %inc, %if.else288 ] - %value.6 = phi i32 [ 0, %if.then98 ], [ %or273, %if.else280 ], [ %or273, %if.then275 ], [ %conv238, %if.then240 ], [ %161, %if.else226 ], [ %161, %if.else223 ], [ %161, %if.then218 ], [ %or199, %if.else206 ], [ %or199, %if.then201 ], [ %or161, %if.then157 ], [ %or173, %if.then165 ], [ %conv120, %if.else154 ], [ %conv120, %if.else151 ], [ %or, %if.then131 ], [ %or146, %if.then138 ], [ %conv120, %if.else128 ], [ %conv120, %if.else125 ], [ %conv105, %sw.bb ], [ %conv105, %if.then107 ], [ %or287, %if.then286 ], [ %or249, %if.then248 ], [ %conv183, %if.else186 ], [ %value.5, %lor.lhs.false568 ], [ %value.5, %land.lhs.true571 ], [ %value.5, %sw.epilog555 ], [ %spec.select300, %if.else250 ], [ %spec.select302, %if.else288 ] - %length.10 = phi i32 [ 0, %if.then98 ], [ 2, %if.else280 ], [ 1, %if.then275 ], [ 1, %if.then240 ], [ %.291, %if.else226 ], [ 2, %if.else223 ], [ 1, %if.then218 ], [ %., %if.else206 ], [ 1, %if.then201 ], [ 3, %if.then157 ], [ 4, %if.then165 ], [ %length.0.ph, %if.else154 ], [ 2, %if.else151 ], [ 2, %if.then131 ], [ 3, %if.then138 ], [ %length.0.ph, %if.else128 ], [ 1, %if.else125 ], [ 2, %sw.bb ], [ 1, %if.then107 ], [ 4, %if.then286 ], [ 3, %if.then248 ], [ 2, %if.else186 ], [ %length.8, %lor.lhs.false568 ], [ %length.8, %land.lhs.true571 ], [ %length.8, %sw.epilog555 ], [ %spec.select301, %if.else250 ], [ %spec.select303, %if.else288 ] - %prevLength.6 = phi i32 [ %prevLength.1.ph, %if.then98 ], [ %prevLength.1.ph, %if.else280 ], [ %prevLength.1.ph, %if.then275 ], [ %prevLength.1.ph, %if.then240 ], [ %prevLength.1.ph, %if.else226 ], [ %prevLength.1.ph, %if.else223 ], [ %prevLength.1.ph, %if.then218 ], [ %prevLength.1.ph, %if.else206 ], [ %prevLength.1.ph, %if.then201 ], [ 2, %if.then157 ], [ 2, %if.then165 ], [ 2, %if.else154 ], [ 2, %if.else151 ], [ 1, %if.then131 ], [ 1, %if.then138 ], [ 1, %if.else128 ], [ %prevLength.1.ph, %if.else125 ], [ %prevLength.1.ph, %sw.bb ], [ %prevLength.1.ph, %if.then107 ], [ %prevLength.1.ph, %if.then286 ], [ %prevLength.1.ph, %if.then248 ], [ %prevLength.1.ph, %if.else186 ], [ %prevLength.5, %lor.lhs.false568 ], [ %prevLength.5, %land.lhs.true571 ], [ %prevLength.5, %sw.epilog555 ], [ %prevLength.1.ph, %if.else250 ], [ %prevLength.1.ph, %if.else288 ] - %targetCapacity.4 = phi i32 [ %targetCapacity.0514655, %if.then98 ], [ %targetCapacity.0514655, %if.else280 ], [ %targetCapacity.0514655, %if.then275 ], [ %targetCapacity.0514655, %if.then240 ], [ %targetCapacity.0514655, %if.else226 ], [ %targetCapacity.0514655, %if.else223 ], [ %targetCapacity.0514655, %if.then218 ], [ %targetCapacity.0514655, %if.else206 ], [ %targetCapacity.0514655, %if.then201 ], [ %targetCapacity.0514655, %if.then157 ], [ %targetCapacity.0514655, %if.then165 ], [ %targetCapacity.0514655, %if.else154 ], [ %targetCapacity.0514655, %if.else151 ], [ %targetCapacity.0514655, %if.then131 ], [ %targetCapacity.0514655, %if.then138 ], [ %targetCapacity.0514655, %if.else128 ], [ %targetCapacity.0514655, %if.else125 ], [ %targetCapacity.0514655, %sw.bb ], [ %targetCapacity.0514655, %if.then107 ], [ %targetCapacity.0514655, %if.then286 ], [ %targetCapacity.0514655, %if.then248 ], [ %targetCapacity.0514655, %if.else186 ], [ %targetCapacity.2, %lor.lhs.false568 ], [ %targetCapacity.2, %land.lhs.true571 ], [ %targetCapacity.2, %sw.epilog555 ], [ %targetCapacity.0514655, %if.else250 ], [ %targetCapacity.0514655, %if.else288 ] - %cmp600.not = icmp sgt i32 %length.10, %targetCapacity.4 +if.end599: ; preds = %if.else288, %if.else250, %sw.epilog555, %land.lhs.true571, %lor.lhs.false568, %if.else186, %if.else154, %if.end148, %if.then248, %if.then286, %if.then107, %sw.bb, %if.else125, %if.else151, %if.then201, %if.else206, %if.then218, %if.else223, %if.else226, %if.then240, %if.then275, %if.else280 + %prevSourceIndex.6 = phi i32 [ %prevSourceIndex.0512675, %if.else280 ], [ %prevSourceIndex.0512675, %if.then275 ], [ %prevSourceIndex.0512675, %if.then240 ], [ %prevSourceIndex.0512675, %if.else226 ], [ %prevSourceIndex.0512675, %if.else223 ], [ %prevSourceIndex.0512675, %if.then218 ], [ %prevSourceIndex.0512675, %if.else206 ], [ %prevSourceIndex.0512675, %if.then201 ], [ %prevSourceIndex.0512675, %if.else151 ], [ %prevSourceIndex.0512675, %if.else125 ], [ %prevSourceIndex.0512675, %sw.bb ], [ %prevSourceIndex.0512675, %if.then107 ], [ %prevSourceIndex.0512675, %if.then286 ], [ %prevSourceIndex.0512675, %if.then248 ], [ %prevSourceIndex.0512675, %if.end148 ], [ %prevSourceIndex.0512675, %if.else154 ], [ %prevSourceIndex.0512675, %if.else186 ], [ %prevSourceIndex.3, %lor.lhs.false568 ], [ %prevSourceIndex.3, %land.lhs.true571 ], [ %prevSourceIndex.3, %sw.epilog555 ], [ %prevSourceIndex.0512675, %if.else250 ], [ %prevSourceIndex.0512675, %if.else288 ] + %sourceIndex.6 = phi i32 [ %sourceIndex.0513674, %if.else280 ], [ %sourceIndex.0513674, %if.then275 ], [ %sourceIndex.0513674, %if.then240 ], [ %sourceIndex.0513674, %if.else226 ], [ %sourceIndex.0513674, %if.else223 ], [ %sourceIndex.0513674, %if.then218 ], [ %sourceIndex.0513674, %if.else206 ], [ %sourceIndex.0513674, %if.then201 ], [ %sourceIndex.0513674, %if.else151 ], [ %sourceIndex.0513674, %if.else125 ], [ %sourceIndex.0513674, %sw.bb ], [ %sourceIndex.0513674, %if.then107 ], [ %sourceIndex.0513674, %if.then286 ], [ %sourceIndex.0513674, %if.then248 ], [ %sourceIndex.0513674, %if.end148 ], [ %sourceIndex.0513674, %if.else154 ], [ %sourceIndex.0513674, %if.else186 ], [ %sourceIndex.3, %lor.lhs.false568 ], [ %sourceIndex.3, %land.lhs.true571 ], [ %sourceIndex.3, %sw.epilog555 ], [ %sourceIndex.0513674, %if.else250 ], [ %sourceIndex.0513674, %if.else288 ] + %nextSourceIndex.4 = phi i32 [ %inc, %if.else280 ], [ %inc, %if.then275 ], [ %inc, %if.then240 ], [ %inc, %if.else226 ], [ %inc, %if.else223 ], [ %inc, %if.then218 ], [ %inc, %if.else206 ], [ %inc, %if.then201 ], [ %inc, %if.else151 ], [ %inc, %if.else125 ], [ %inc, %sw.bb ], [ %inc, %if.then107 ], [ %inc, %if.then286 ], [ %inc, %if.then248 ], [ %inc, %if.end148 ], [ %inc, %if.else154 ], [ %inc, %if.else186 ], [ %nextSourceIndex.2, %lor.lhs.false568 ], [ %nextSourceIndex.2, %land.lhs.true571 ], [ %nextSourceIndex.2, %sw.epilog555 ], [ %inc, %if.else250 ], [ %inc, %if.else288 ] + %value.6 = phi i32 [ %or273, %if.else280 ], [ %or273, %if.then275 ], [ %conv238, %if.then240 ], [ %161, %if.else226 ], [ %161, %if.else223 ], [ %161, %if.then218 ], [ %or199, %if.else206 ], [ %or199, %if.then201 ], [ %conv120, %if.else151 ], [ %conv120, %if.else125 ], [ %conv105, %sw.bb ], [ %conv105, %if.then107 ], [ %or287, %if.then286 ], [ %or249, %if.then248 ], [ %value.0, %if.end148 ], [ %value.1, %if.else154 ], [ %conv183, %if.else186 ], [ %value.5, %lor.lhs.false568 ], [ %value.5, %land.lhs.true571 ], [ %value.5, %sw.epilog555 ], [ %spec.select300, %if.else250 ], [ %spec.select302, %if.else288 ] + %length.10 = phi i32 [ 2, %if.else280 ], [ 1, %if.then275 ], [ 1, %if.then240 ], [ %.291, %if.else226 ], [ 2, %if.else223 ], [ 1, %if.then218 ], [ %., %if.else206 ], [ 1, %if.then201 ], [ 2, %if.else151 ], [ 1, %if.else125 ], [ 2, %sw.bb ], [ 1, %if.then107 ], [ 4, %if.then286 ], [ 3, %if.then248 ], [ %length.1, %if.end148 ], [ %length.2, %if.else154 ], [ 2, %if.else186 ], [ %length.8, %lor.lhs.false568 ], [ %length.8, %land.lhs.true571 ], [ %length.8, %sw.epilog555 ], [ %spec.select301, %if.else250 ], [ %spec.select303, %if.else288 ] + %prevLength.6 = phi i32 [ %prevLength.1.ph, %if.else280 ], [ %prevLength.1.ph, %if.then275 ], [ %prevLength.1.ph, %if.then240 ], [ %prevLength.1.ph, %if.else226 ], [ %prevLength.1.ph, %if.else223 ], [ %prevLength.1.ph, %if.then218 ], [ %prevLength.1.ph, %if.else206 ], [ %prevLength.1.ph, %if.then201 ], [ 2, %if.else151 ], [ %prevLength.1.ph, %if.else125 ], [ %prevLength.1.ph, %sw.bb ], [ %prevLength.1.ph, %if.then107 ], [ %prevLength.1.ph, %if.then286 ], [ %prevLength.1.ph, %if.then248 ], [ 1, %if.end148 ], [ 2, %if.else154 ], [ %prevLength.1.ph, %if.else186 ], [ %prevLength.5, %lor.lhs.false568 ], [ %prevLength.5, %land.lhs.true571 ], [ %prevLength.5, %sw.epilog555 ], [ %prevLength.1.ph, %if.else250 ], [ %prevLength.1.ph, %if.else288 ] + %targetCapacity.4 = phi i32 [ %targetCapacity.0516672, %if.else280 ], [ %targetCapacity.0516672, %if.then275 ], [ %targetCapacity.0516672, %if.then240 ], [ %targetCapacity.0516672, %if.else226 ], [ %targetCapacity.0516672, %if.else223 ], [ %targetCapacity.0516672, %if.then218 ], [ %targetCapacity.0516672, %if.else206 ], [ %targetCapacity.0516672, %if.then201 ], [ %targetCapacity.0516672, %if.else151 ], [ %targetCapacity.0516672, %if.else125 ], [ %targetCapacity.0516672, %sw.bb ], [ %targetCapacity.0516672, %if.then107 ], [ %targetCapacity.0516672, %if.then286 ], [ %targetCapacity.0516672, %if.then248 ], [ %targetCapacity.0516672, %if.end148 ], [ %targetCapacity.0516672, %if.else154 ], [ %targetCapacity.0516672, %if.else186 ], [ %targetCapacity.2, %lor.lhs.false568 ], [ %targetCapacity.2, %land.lhs.true571 ], [ %targetCapacity.2, %sw.epilog555 ], [ %targetCapacity.0516672, %if.else250 ], [ %targetCapacity.0516672, %if.else288 ] + %cmp600.not = icmp ugt i32 %length.10, %targetCapacity.4 br i1 %cmp600.not, label %if.else645, label %if.then601 -if.then601: ; preds = %if.end599 +if.then601: ; preds = %if.then98, %if.end599 + %targetCapacity.4583 = phi i32 [ %targetCapacity.4, %if.end599 ], [ %targetCapacity.0516672, %if.then98 ] + %prevLength.6582 = phi i32 [ %prevLength.6, %if.end599 ], [ %prevLength.1.ph, %if.then98 ] + %length.10581 = phi i32 [ %length.10, %if.end599 ], [ 0, %if.then98 ] + %value.6580 = phi i32 [ %value.6, %if.end599 ], [ 0, %if.then98 ] + %nextSourceIndex.4579 = phi i32 [ %nextSourceIndex.4, %if.end599 ], [ %inc, %if.then98 ] + %sourceIndex.6578 = phi i32 [ %sourceIndex.6, %if.end599 ], [ %sourceIndex.0513674, %if.then98 ] + %prevSourceIndex.6577 = phi i32 [ %prevSourceIndex.6, %if.end599 ], [ %prevSourceIndex.0512675, %if.then98 ] %202 = load ptr, ptr %offsets, align 8 %cmp602 = icmp eq ptr %202, null br i1 %cmp602, label %if.then603, label %if.else621 if.then603: ; preds = %if.then601 - switch i32 %length.10, label %if.end643 [ + switch i32 %length.10581, label %if.end643 [ i32 4, label %sw.bb604 i32 3, label %sw.bb608 i32 2, label %sw.bb612 @@ -4171,7 +4165,7 @@ if.then603: ; preds = %if.then601 ] sw.bb604: ; preds = %if.then603 - %shr605 = lshr i32 %value.6, 24 + %shr605 = lshr i32 %value.6580, 24 %conv606 = trunc i32 %shr605 to i8 %203 = load ptr, ptr %target, align 8 %incdec.ptr607 = getelementptr inbounds i8, ptr %203, i64 1 @@ -4180,7 +4174,7 @@ sw.bb604: ; preds = %if.then603 br label %sw.bb608 sw.bb608: ; preds = %sw.bb604, %if.then603 - %shr609 = lshr i32 %value.6, 16 + %shr609 = lshr i32 %value.6580, 16 %conv610 = trunc i32 %shr609 to i8 %204 = load ptr, ptr %target, align 8 %incdec.ptr611 = getelementptr inbounds i8, ptr %204, i64 1 @@ -4189,7 +4183,7 @@ sw.bb608: ; preds = %sw.bb604, %if.then6 br label %sw.bb612 sw.bb612: ; preds = %sw.bb608, %if.then603 - %shr613 = lshr i32 %value.6, 8 + %shr613 = lshr i32 %value.6580, 8 %conv614 = trunc i32 %shr613 to i8 %205 = load ptr, ptr %target, align 8 %incdec.ptr615 = getelementptr inbounds i8, ptr %205, i64 1 @@ -4198,7 +4192,7 @@ sw.bb612: ; preds = %sw.bb608, %if.then6 br label %sw.bb616 sw.bb616: ; preds = %sw.bb612, %if.then603 - %conv617 = trunc i32 %value.6 to i8 + %conv617 = trunc i32 %value.6580 to i8 %206 = load ptr, ptr %target, align 8 %incdec.ptr618 = getelementptr inbounds i8, ptr %206, i64 1 store ptr %incdec.ptr618, ptr %target, align 8 @@ -4206,7 +4200,7 @@ sw.bb616: ; preds = %sw.bb612, %if.then6 br label %if.end643 if.else621: ; preds = %if.then601 - switch i32 %length.10, label %if.end643 [ + switch i32 %length.10581, label %if.end643 [ i32 4, label %sw.bb622 i32 3, label %sw.bb627 i32 2, label %sw.bb632 @@ -4214,7 +4208,7 @@ if.else621: ; preds = %if.then601 ] sw.bb622: ; preds = %if.else621 - %shr623 = lshr i32 %value.6, 24 + %shr623 = lshr i32 %value.6580, 24 %conv624 = trunc i32 %shr623 to i8 %207 = load ptr, ptr %target, align 8 %incdec.ptr625 = getelementptr inbounds i8, ptr %207, i64 1 @@ -4223,11 +4217,11 @@ sw.bb622: ; preds = %if.else621 %208 = load ptr, ptr %offsets, align 8 %incdec.ptr626 = getelementptr inbounds i32, ptr %208, i64 1 store ptr %incdec.ptr626, ptr %offsets, align 8 - store i32 %sourceIndex.6, ptr %208, align 4 + store i32 %sourceIndex.6578, ptr %208, align 4 br label %sw.bb627 sw.bb627: ; preds = %sw.bb622, %if.else621 - %shr628 = lshr i32 %value.6, 16 + %shr628 = lshr i32 %value.6580, 16 %conv629 = trunc i32 %shr628 to i8 %209 = load ptr, ptr %target, align 8 %incdec.ptr630 = getelementptr inbounds i8, ptr %209, i64 1 @@ -4236,11 +4230,11 @@ sw.bb627: ; preds = %sw.bb622, %if.else6 %210 = load ptr, ptr %offsets, align 8 %incdec.ptr631 = getelementptr inbounds i32, ptr %210, i64 1 store ptr %incdec.ptr631, ptr %offsets, align 8 - store i32 %sourceIndex.6, ptr %210, align 4 + store i32 %sourceIndex.6578, ptr %210, align 4 br label %sw.bb632 sw.bb632: ; preds = %sw.bb627, %if.else621 - %shr633 = lshr i32 %value.6, 8 + %shr633 = lshr i32 %value.6580, 8 %conv634 = trunc i32 %shr633 to i8 %211 = load ptr, ptr %target, align 8 %incdec.ptr635 = getelementptr inbounds i8, ptr %211, i64 1 @@ -4249,11 +4243,11 @@ sw.bb632: ; preds = %sw.bb627, %if.else6 %212 = load ptr, ptr %offsets, align 8 %incdec.ptr636 = getelementptr inbounds i32, ptr %212, i64 1 store ptr %incdec.ptr636, ptr %offsets, align 8 - store i32 %sourceIndex.6, ptr %212, align 4 + store i32 %sourceIndex.6578, ptr %212, align 4 br label %sw.bb637 sw.bb637: ; preds = %sw.bb632, %if.else621 - %conv638 = trunc i32 %value.6 to i8 + %conv638 = trunc i32 %value.6580 to i8 %213 = load ptr, ptr %target, align 8 %incdec.ptr639 = getelementptr inbounds i8, ptr %213, i64 1 store ptr %incdec.ptr639, ptr %target, align 8 @@ -4261,15 +4255,15 @@ sw.bb637: ; preds = %sw.bb632, %if.else6 %214 = load ptr, ptr %offsets, align 8 %incdec.ptr640 = getelementptr inbounds i32, ptr %214, i64 1 store ptr %incdec.ptr640, ptr %offsets, align 8 - store i32 %sourceIndex.6, ptr %214, align 4 + store i32 %sourceIndex.6578, ptr %214, align 4 br label %if.end643 if.end643: ; preds = %sw.bb637, %if.else621, %sw.bb616, %if.then603 - %sub644 = sub nsw i32 %targetCapacity.4, %length.10 + %sub644 = sub nsw i32 %targetCapacity.4583, %length.10581 %215 = load ptr, ptr %offsets, align 8 %cmp690.not = icmp eq ptr %215, null - %spec.select298 = select i1 %cmp690.not, i32 %prevSourceIndex.6, i32 %sourceIndex.6 - %spec.select299 = select i1 %cmp690.not, i32 %sourceIndex.6, i32 %nextSourceIndex.4 + %spec.select298 = select i1 %cmp690.not, i32 %prevSourceIndex.6577, i32 %sourceIndex.6578 + %spec.select299 = select i1 %cmp690.not, i32 %sourceIndex.6578, i32 %nextSourceIndex.4579 %.pre = load ptr, ptr %source, align 8 br label %while.cond.preheader, !llvm.loop !35 @@ -4309,7 +4303,7 @@ sw.epilog660: ; preds = %if.else645, %sw.bb6 store i8 %conv661, ptr %charErrorBufferLength, align 1 %mul662 = shl nsw i32 %sub646, 3 %shr663 = lshr i32 %value.6, %mul662 - switch i32 %targetCapacity.4, label %while.end.sink.split [ + switch i32 %targetCapacity.4, label %default.unreachable [ i32 3, label %sw.bb664 i32 2, label %sw.bb672 i32 1, label %sw.bb680 @@ -4365,12 +4359,15 @@ if.then684: ; preds = %sw.bb680 store i32 %sourceIndex.6, ptr %221, align 4 br label %while.end.sink.split -while.end.sink.split: ; preds = %while.body, %while.body.preheader, %sw.bb680, %if.then684, %sw.epilog660, %if.then305, %if.then310 - %.sink = phi i32 [ 12, %if.then310 ], [ 12, %if.then305 ], [ 15, %sw.epilog660 ], [ 15, %if.then684 ], [ 15, %sw.bb680 ], [ 15, %while.body.preheader ], [ 15, %while.body ] - %prevSourceIndex.8.ph = phi i32 [ %prevSourceIndex.2, %if.then310 ], [ %prevSourceIndex.0510658, %if.then305 ], [ %prevSourceIndex.6, %sw.epilog660 ], [ %prevSourceIndex.6, %if.then684 ], [ %prevSourceIndex.6, %sw.bb680 ], [ %prevSourceIndex.0.ph, %while.body.preheader ], [ %prevSourceIndex.1, %while.body ] - %c.4.ph = phi i32 [ %c.1, %if.then310 ], [ %conv82, %if.then305 ], [ 0, %sw.epilog660 ], [ 0, %if.then684 ], [ 0, %sw.bb680 ], [ %c.0.ph, %while.body.preheader ], [ 0, %while.body ] - %prevLength.7.ph = phi i32 [ %prevLength.3, %if.then310 ], [ %prevLength.1.ph, %if.then305 ], [ %prevLength.6, %sw.epilog660 ], [ %prevLength.6, %if.then684 ], [ %prevLength.6, %sw.bb680 ], [ %prevLength.1.ph, %while.body.preheader ], [ %prevLength.1.ph, %while.body ] - %targetCapacity.5.ph = phi i32 [ %targetCapacity.1, %if.then310 ], [ %targetCapacity.0514655, %if.then305 ], [ 0, %sw.epilog660 ], [ 0, %if.then684 ], [ 0, %sw.bb680 ], [ %smin, %while.body.preheader ], [ %smin, %while.body ] +default.unreachable: ; preds = %sw.epilog660 + unreachable + +while.end.sink.split: ; preds = %while.body, %while.body.preheader, %sw.bb680, %if.then684, %if.then305, %if.then310 + %.sink = phi i32 [ 12, %if.then310 ], [ 12, %if.then305 ], [ 15, %if.then684 ], [ 15, %sw.bb680 ], [ 15, %while.body.preheader ], [ 15, %while.body ] + %prevSourceIndex.8.ph = phi i32 [ %prevSourceIndex.2, %if.then310 ], [ %prevSourceIndex.0512675, %if.then305 ], [ %prevSourceIndex.6, %if.then684 ], [ %prevSourceIndex.6, %sw.bb680 ], [ %prevSourceIndex.0.ph, %while.body.preheader ], [ %prevSourceIndex.1, %while.body ] + %c.4.ph = phi i32 [ %c.1, %if.then310 ], [ %conv82, %if.then305 ], [ 0, %if.then684 ], [ 0, %sw.bb680 ], [ %c.0.ph, %while.body.preheader ], [ 0, %while.body ] + %prevLength.7.ph = phi i32 [ %prevLength.3, %if.then310 ], [ %prevLength.1.ph, %if.then305 ], [ %prevLength.6, %if.then684 ], [ %prevLength.6, %sw.bb680 ], [ %prevLength.1.ph, %while.body.preheader ], [ %prevLength.1.ph, %while.body ] + %targetCapacity.5.ph = phi i32 [ %targetCapacity.1, %if.then310 ], [ %targetCapacity.0516672, %if.then305 ], [ 0, %if.then684 ], [ 0, %sw.bb680 ], [ %smin, %while.body.preheader ], [ %smin, %while.body ] store i32 %.sink, ptr %pErrorCode, align 4 br label %while.end @@ -4380,8 +4377,8 @@ while.end: ; preds = %if.end93, %while.en %prevLength.7 = phi i32 [ %195, %unassigned ], [ %prevLength.3, %getTrail ], [ %prevLength.1.ph, %while.cond.preheader ], [ %prevLength.7.ph, %while.end.sink.split ], [ %prevLength.1.ph, %if.end93 ] %targetCapacity.5 = phi i32 [ %targetCapacity.3, %unassigned ], [ %targetCapacity.1, %getTrail ], [ %targetCapacity.0.ph, %while.cond.preheader ], [ %targetCapacity.5.ph, %while.end.sink.split ], [ %dec, %if.end93 ] %222 = load i32, ptr %pErrorCode, align 4 - %cmp.i435 = icmp slt i32 %222, 1 - %or.cond4 = and i1 %cmp59, %cmp.i435 + %cmp.i437 = icmp slt i32 %222, 1 + %or.cond4 = and i1 %cmp59, %cmp.i437 %cmp700 = icmp eq i32 %prevLength.7, 2 %or.cond6 = select i1 %or.cond4, i1 %cmp700, i1 false br i1 %or.cond6, label %land.lhs.true701, label %if.end744 @@ -4407,8 +4404,8 @@ if.then710: ; preds = %if.then708 %225 = load ptr, ptr %target, align 8 %incdec.ptr712 = getelementptr inbounds i8, ptr %225, i64 1 store ptr %incdec.ptr712, ptr %target, align 8 - store i8 %siBytes.sroa.0.0456, ptr %225, align 1 - %cmp714 = icmp eq i32 %SISOLength.0.i458, 2 + store i8 %siBytes.sroa.0.0458, ptr %225, align 1 + %cmp714 = icmp eq i32 %SISOLength.0.i460, 2 br i1 %cmp714, label %if.then715, label %if.end726 if.then715: ; preds = %if.then710 @@ -4417,7 +4414,7 @@ if.then715: ; preds = %if.then710 if.then717: ; preds = %if.then715 %charErrorBuffer719 = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 27 - store i8 %siBytes.sroa.11.0454, ptr %charErrorBuffer719, align 8 + store i8 %siBytes.sroa.11.0456, ptr %charErrorBuffer719, align 8 %charErrorBufferLength721 = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 21 store i8 1, ptr %charErrorBufferLength721, align 1 store i32 15, ptr %pErrorCode, align 4 @@ -4427,7 +4424,7 @@ if.else722: ; preds = %if.then715 %226 = load ptr, ptr %target, align 8 %incdec.ptr724 = getelementptr inbounds i8, ptr %226, i64 1 store ptr %incdec.ptr724, ptr %target, align 8 - store i8 %siBytes.sroa.11.0454, ptr %226, align 1 + store i8 %siBytes.sroa.11.0456, ptr %226, align 1 br label %if.end726 if.end726: ; preds = %if.then717, %if.else722, %if.then710 @@ -4443,18 +4440,18 @@ if.then728: ; preds = %if.end726 if.else731: ; preds = %if.then708 %charErrorBuffer733 = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 27 - store i8 %siBytes.sroa.0.0456, ptr %charErrorBuffer733, align 8 - %cmp736 = icmp eq i32 %SISOLength.0.i458, 2 + store i8 %siBytes.sroa.0.0458, ptr %charErrorBuffer733, align 8 + %cmp736 = icmp eq i32 %SISOLength.0.i460, 2 br i1 %cmp736, label %if.then737, label %if.end741 if.then737: ; preds = %if.else731 %arrayidx740 = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 27, i64 1 - store i8 %siBytes.sroa.11.0454, ptr %arrayidx740, align 1 + store i8 %siBytes.sroa.11.0456, ptr %arrayidx740, align 1 br label %if.end741 if.end741: ; preds = %if.then737, %if.else731 %charErrorBufferLength742 = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 21 - store i8 %conv69460, ptr %charErrorBufferLength742, align 1 + store i8 %conv69462, ptr %charErrorBufferLength742, align 1 store i32 15, ptr %pErrorCode, align 4 br label %if.end744 diff --git a/bench/icu/optimized/ucnvscsu.ll b/bench/icu/optimized/ucnvscsu.ll index 805cb09c5e3..3070002863d 100644 --- a/bench/icu/optimized/ucnvscsu.ll +++ b/bench/icu/optimized/ucnvscsu.ll @@ -133,7 +133,7 @@ if.end4: ; preds = %if.end, %entry ret void } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable define internal void @_ZL10_SCSUResetP10UConverter21UConverterResetChoice(ptr nocapture noundef %cnv, i32 noundef %choice) #1 { entry: %extraInfo = getelementptr inbounds %struct.UConverter, ptr %cnv, i64 0, i32 2 @@ -1412,14 +1412,14 @@ entry: %nextWindowUseIndex.i258 = getelementptr inbounds %struct.SCSUData, ptr %1, i64 0, i32 11 br label %loop -loop: ; preds = %sw.epilog, %entry - %source.0 = phi ptr [ %2, %entry ], [ %source.9, %sw.epilog ] - %target.0 = phi ptr [ %4, %entry ], [ %target.13, %sw.epilog ] - %targetCapacity.0 = phi i32 [ %conv, %entry ], [ %sub378, %sw.epilog ] - %isSingleByteMode.0 = phi i8 [ %6, %entry ], [ %isSingleByteMode.2, %sw.epilog ] - %dynamicWindow.0 = phi i8 [ %7, %entry ], [ %dynamicWindow.2, %sw.epilog ] - %currentOffset.0 = phi i32 [ %8, %entry ], [ %currentOffset.1, %sw.epilog ] - %c.0 = phi i32 [ %9, %entry ], [ 0, %sw.epilog ] +loop: ; preds = %sw.bb371, %entry + %source.0 = phi ptr [ %2, %entry ], [ %source.9, %sw.bb371 ] + %target.0 = phi ptr [ %4, %entry ], [ %incdec.ptr377, %sw.bb371 ] + %targetCapacity.0 = phi i32 [ %conv, %entry ], [ %sub378, %sw.bb371 ] + %isSingleByteMode.0 = phi i8 [ %6, %entry ], [ %isSingleByteMode.2, %sw.bb371 ] + %dynamicWindow.0 = phi i8 [ %7, %entry ], [ %dynamicWindow.2, %sw.bb371 ] + %currentOffset.0 = phi i32 [ %8, %entry ], [ %currentOffset.1, %sw.bb371 ] + %c.0 = phi i32 [ %9, %entry ], [ 0, %sw.bb371 ] %tobool.not = icmp eq i8 %isSingleByteMode.0, 0 %cmp194 = icmp ne i32 %c.0, 0 %cmp196 = icmp sgt i32 %targetCapacity.0, 0 @@ -1955,40 +1955,40 @@ if.else193: ; preds = %loop br i1 %or.cond2, label %getTrailUnicode, label %while.cond199.preheader while.cond199.preheader: ; preds = %if.else193 - %cmp200610 = icmp ult ptr %source.0, %3 - br i1 %cmp200610, label %while.body201.preheader, label %endloop + %cmp200619 = icmp ult ptr %source.0, %3 + br i1 %cmp200619, label %while.body201.preheader, label %endloop while.body201.preheader: ; preds = %while.cond199.preheader - %cmp202773 = icmp slt i32 %targetCapacity.0, 1 - br i1 %cmp202773, label %endloop.sink.split, label %if.end204 + %cmp202809 = icmp slt i32 %targetCapacity.0, 1 + br i1 %cmp202809, label %endloop.sink.split, label %if.end204 while.body201: ; preds = %if.then211 - %sub216 = add nsw i32 %targetCapacity.6613774, -2 - %cmp202 = icmp slt i32 %targetCapacity.6613774, 3 + %sub216 = add nsw i32 %targetCapacity.6622810, -2 + %cmp202 = icmp slt i32 %targetCapacity.6622810, 3 br i1 %cmp202, label %endloop.sink.split, label %if.end204, !llvm.loop !18 if.end204: ; preds = %while.body201.preheader, %while.body201 - %source.6611776 = phi ptr [ %incdec.ptr205, %while.body201 ], [ %source.0, %while.body201.preheader ] - %target.6612775 = phi ptr [ %incdec.ptr215, %while.body201 ], [ %target.0, %while.body201.preheader ] - %targetCapacity.6613774 = phi i32 [ %sub216, %while.body201 ], [ %targetCapacity.0, %while.body201.preheader ] - %incdec.ptr205 = getelementptr inbounds i16, ptr %source.6611776, i64 1 - %45 = load i16, ptr %source.6611776, align 2 + %source.6620812 = phi ptr [ %incdec.ptr205, %while.body201 ], [ %source.0, %while.body201.preheader ] + %target.6621811 = phi ptr [ %incdec.ptr215, %while.body201 ], [ %target.0, %while.body201.preheader ] + %targetCapacity.6622810 = phi i32 [ %sub216, %while.body201 ], [ %targetCapacity.0, %while.body201.preheader ] + %incdec.ptr205 = getelementptr inbounds i16, ptr %source.6620812, i64 1 + %45 = load i16, ptr %source.6620812, align 2 %conv206 = zext i16 %45 to i32 %sub207 = add nsw i32 %conv206, -13312 %cmp208 = icmp ult i32 %sub207, 41984 br i1 %cmp208, label %if.then209, label %if.else219 if.then209: ; preds = %if.end204 - %cmp210.not = icmp eq i32 %targetCapacity.6613774, 1 + %cmp210.not = icmp eq i32 %targetCapacity.6622810, 1 br i1 %cmp210.not, label %if.else379, label %if.then211 if.then211: ; preds = %if.then209 %shr = lshr i16 %45, 8 %conv212 = trunc i16 %shr to i8 - %incdec.ptr213 = getelementptr inbounds i8, ptr %target.6612775, i64 1 - store i8 %conv212, ptr %target.6612775, align 1 + %incdec.ptr213 = getelementptr inbounds i8, ptr %target.6621811, i64 1 + store i8 %conv212, ptr %target.6621811, align 1 %conv214 = trunc i16 %45 to i8 - %incdec.ptr215 = getelementptr inbounds i8, ptr %target.6612775, i64 2 + %incdec.ptr215 = getelementptr inbounds i8, ptr %target.6621811, i64 2 store i8 %conv214, ptr %incdec.ptr213, align 1 %cmp200 = icmp ult ptr %incdec.ptr205, %3 br i1 %cmp200, label %while.body201, label %endloop, !llvm.loop !18 @@ -2139,8 +2139,8 @@ if.then281: ; preds = %if.else279 getTrailUnicode: ; preds = %if.then281, %if.else193 %source.7 = phi ptr [ %source.0, %if.else193 ], [ %incdec.ptr205, %if.then281 ] - %target.7 = phi ptr [ %target.0, %if.else193 ], [ %target.6612775, %if.then281 ] - %targetCapacity.7 = phi i32 [ %targetCapacity.0, %if.else193 ], [ %targetCapacity.6613774, %if.then281 ] + %target.7 = phi ptr [ %target.0, %if.else193 ], [ %target.6621811, %if.then281 ] + %targetCapacity.7 = phi i32 [ %targetCapacity.0, %if.else193 ], [ %targetCapacity.6622810, %if.then281 ] %c.4 = phi i32 [ %c.0, %if.else193 ], [ %conv206, %if.then281 ] %cmp286 = icmp ult ptr %source.7, %3 br i1 %cmp286, label %if.then287, label %endloop @@ -2386,7 +2386,7 @@ if.else352: ; preds = %if.else279 endloop.sink.split: ; preds = %if.then281, %if.then287, %if.then36, %if.then42, %while.body, %while.body201.preheader, %while.body201, %sw.bb409, %sw.epilog397 %.sink = phi i32 [ 15, %sw.epilog397 ], [ 15, %sw.bb409 ], [ 15, %while.body201 ], [ 15, %while.body ], [ 12, %if.then42 ], [ 12, %if.then36 ], [ 12, %if.then287 ], [ 12, %if.then281 ], [ 15, %while.body201.preheader ] %source.8.ph = phi ptr [ %source.9553, %sw.epilog397 ], [ %source.9553, %sw.bb409 ], [ %incdec.ptr205, %while.body201 ], [ %source.1, %while.body ], [ %source.2, %if.then42 ], [ %incdec.ptr, %if.then36 ], [ %source.7, %if.then287 ], [ %incdec.ptr205, %if.then281 ], [ %source.0, %while.body201.preheader ] - %target.8.ph = phi ptr [ %target.9554, %sw.epilog397 ], [ %incdec.ptr411, %sw.bb409 ], [ %incdec.ptr215, %while.body201 ], [ %target.1, %while.body ], [ %target.2, %if.then42 ], [ %target.1, %if.then36 ], [ %target.7, %if.then287 ], [ %target.6612775, %if.then281 ], [ %target.0, %while.body201.preheader ] + %target.8.ph = phi ptr [ %target.9554, %sw.epilog397 ], [ %incdec.ptr411, %sw.bb409 ], [ %incdec.ptr215, %while.body201 ], [ %target.1, %while.body ], [ %target.2, %if.then42 ], [ %target.1, %if.then36 ], [ %target.7, %if.then287 ], [ %target.6621811, %if.then281 ], [ %target.0, %while.body201.preheader ] %isSingleByteMode.1.ph = phi i8 [ %isSingleByteMode.2556, %sw.epilog397 ], [ %isSingleByteMode.2556, %sw.bb409 ], [ 0, %while.body201 ], [ %isSingleByteMode.0, %while.body ], [ %isSingleByteMode.0, %if.then42 ], [ %isSingleByteMode.0, %if.then36 ], [ 0, %if.then287 ], [ 0, %if.then281 ], [ 0, %while.body201.preheader ] %dynamicWindow.1.ph = phi i8 [ %dynamicWindow.2557, %sw.epilog397 ], [ %dynamicWindow.2557, %sw.bb409 ], [ %dynamicWindow.0, %while.body201 ], [ %dynamicWindow.0, %while.body201.preheader ], [ %dynamicWindow.0, %while.body ], [ %dynamicWindow.0, %if.then42 ], [ %dynamicWindow.0, %if.then36 ], [ %dynamicWindow.0, %if.then287 ], [ %dynamicWindow.0, %if.then281 ] %c.5.ph = phi i32 [ 0, %sw.epilog397 ], [ 0, %sw.bb409 ], [ 0, %while.body201 ], [ %c.1, %while.body ], [ %c.2, %if.then42 ], [ %conv11, %if.then36 ], [ %c.4, %if.then287 ], [ %conv206, %if.then281 ], [ %c.0, %while.body201.preheader ] @@ -2408,8 +2408,8 @@ endloop: ; preds = %getTrailSingle, %wh outputBytes: ; preds = %land.lhs.true224, %if.else259, %if.else352, %if.else347, %_ZL16useDynamicWindowP8SCSUDataa.exit513, %_ZL16useDynamicWindowP8SCSUDataa.exit446, %if.then262, %_ZL16useDynamicWindowP8SCSUDataa.exit398, %if.then237, %if.else187, %if.then185, %if.then163, %if.then152, %if.else138, %_ZL16useDynamicWindowP8SCSUDataa.exit338, %if.then111, %if.then105, %if.else95, %_ZL16useDynamicWindowP8SCSUDataa.exit292, %_ZL16useDynamicWindowP8SCSUDataa.exit, %if.else23 %source.9 = phi ptr [ %incdec.ptr, %if.else23 ], [ %incdec.ptr, %if.then105 ], [ %incdec.ptr, %if.then111 ], [ %incdec.ptr, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %incdec.ptr, %if.else138 ], [ %incdec.ptr, %if.then152 ], [ %incdec.ptr, %if.then163 ], [ %incdec.ptr, %if.then185 ], [ %incdec.ptr, %if.else187 ], [ %incdec.ptr47, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %incdec.ptr47, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ %incdec.ptr47, %if.else95 ], [ %incdec.ptr292, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ %incdec.ptr292, %if.else347 ], [ %incdec.ptr292, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ %incdec.ptr205, %if.then237 ], [ %incdec.ptr205, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ %incdec.ptr205, %if.then262 ], [ %incdec.ptr205, %if.else352 ], [ %incdec.ptr205, %if.else259 ], [ %incdec.ptr205, %land.lhs.true224 ] - %target.9 = phi ptr [ %target.1, %if.else23 ], [ %target.1, %if.then105 ], [ %target.1, %if.then111 ], [ %target.1, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %target.1, %if.else138 ], [ %target.1, %if.then152 ], [ %target.1, %if.then163 ], [ %target.1, %if.then185 ], [ %target.1, %if.else187 ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ %incdec.ptr96, %if.else95 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ %target.7, %if.else347 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ %target.6612775, %if.then237 ], [ %target.6612775, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ %target.6612775, %if.then262 ], [ %target.6612775, %if.else352 ], [ %target.6612775, %if.else259 ], [ %target.6612775, %land.lhs.true224 ] - %targetCapacity.8 = phi i32 [ %targetCapacity.1, %if.else23 ], [ %targetCapacity.1, %if.then105 ], [ %targetCapacity.1, %if.then111 ], [ %targetCapacity.1, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %targetCapacity.1, %if.else138 ], [ %targetCapacity.1, %if.then152 ], [ %targetCapacity.1, %if.then163 ], [ %targetCapacity.1, %if.then185 ], [ %targetCapacity.1, %if.else187 ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ %dec97, %if.else95 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ %targetCapacity.7, %if.else347 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ %targetCapacity.6613774, %if.then237 ], [ %targetCapacity.6613774, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ %targetCapacity.6613774, %if.then262 ], [ %targetCapacity.6613774, %if.else352 ], [ %targetCapacity.6613774, %if.else259 ], [ %targetCapacity.6613774, %land.lhs.true224 ] + %target.9 = phi ptr [ %target.1, %if.else23 ], [ %target.1, %if.then105 ], [ %target.1, %if.then111 ], [ %target.1, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %target.1, %if.else138 ], [ %target.1, %if.then152 ], [ %target.1, %if.then163 ], [ %target.1, %if.then185 ], [ %target.1, %if.else187 ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ %incdec.ptr96, %if.else95 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ %target.7, %if.else347 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ %target.6621811, %if.then237 ], [ %target.6621811, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ %target.6621811, %if.then262 ], [ %target.6621811, %if.else352 ], [ %target.6621811, %if.else259 ], [ %target.6621811, %land.lhs.true224 ] + %targetCapacity.8 = phi i32 [ %targetCapacity.1, %if.else23 ], [ %targetCapacity.1, %if.then105 ], [ %targetCapacity.1, %if.then111 ], [ %targetCapacity.1, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %targetCapacity.1, %if.else138 ], [ %targetCapacity.1, %if.then152 ], [ %targetCapacity.1, %if.then163 ], [ %targetCapacity.1, %if.then185 ], [ %targetCapacity.1, %if.else187 ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ %dec97, %if.else95 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ %targetCapacity.7, %if.else347 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ %targetCapacity.6622810, %if.then237 ], [ %targetCapacity.6622810, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ %targetCapacity.6622810, %if.then262 ], [ %targetCapacity.6622810, %if.else352 ], [ %targetCapacity.6622810, %if.else259 ], [ %targetCapacity.6622810, %land.lhs.true224 ] %isSingleByteMode.2 = phi i8 [ %isSingleByteMode.0, %if.else23 ], [ %isSingleByteMode.0, %if.then105 ], [ %isSingleByteMode.0, %if.then111 ], [ %isSingleByteMode.0, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %isSingleByteMode.0, %if.else138 ], [ %isSingleByteMode.0, %if.then152 ], [ %isSingleByteMode.0, %if.then163 ], [ 0, %if.then185 ], [ %isSingleByteMode.0, %if.else187 ], [ %isSingleByteMode.0, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %isSingleByteMode.0, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ 0, %if.else95 ], [ 1, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ 0, %if.else347 ], [ 1, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ 1, %if.then237 ], [ 1, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ 1, %if.then262 ], [ 0, %if.else352 ], [ 0, %if.else259 ], [ 0, %land.lhs.true224 ] %dynamicWindow.2 = phi i8 [ %dynamicWindow.0, %if.else23 ], [ %dynamicWindow.0, %if.then105 ], [ %dynamicWindow.0, %if.then111 ], [ %conv.i303, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %dynamicWindow.0, %if.else138 ], [ %dynamicWindow.0, %if.then152 ], [ %41, %if.then163 ], [ %dynamicWindow.0, %if.then185 ], [ %dynamicWindow.0, %if.else187 ], [ %conv.i, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %25, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ %dynamicWindow.0, %if.else95 ], [ %75, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ %dynamicWindow.0, %if.else347 ], [ %conv.i415, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ %dynamicWindow.0, %if.then237 ], [ %conv.i367, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ %55, %if.then262 ], [ %dynamicWindow.0, %if.else352 ], [ %dynamicWindow.0, %if.else259 ], [ %dynamicWindow.0, %land.lhs.true224 ] %currentOffset.1 = phi i32 [ %currentOffset.0, %if.else23 ], [ %currentOffset.0, %if.then105 ], [ %currentOffset.0, %if.then111 ], [ %33, %_ZL16useDynamicWindowP8SCSUDataa.exit338 ], [ %currentOffset.0, %if.else138 ], [ %currentOffset.0, %if.then152 ], [ %42, %if.then163 ], [ %currentOffset.0, %if.then185 ], [ %currentOffset.0, %if.else187 ], [ %13, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %23, %_ZL16useDynamicWindowP8SCSUDataa.exit292 ], [ %currentOffset.0, %if.else95 ], [ %73, %_ZL16useDynamicWindowP8SCSUDataa.exit513 ], [ %currentOffset.0, %if.else347 ], [ %60, %_ZL16useDynamicWindowP8SCSUDataa.exit446 ], [ %currentOffset.0, %if.then237 ], [ %48, %_ZL16useDynamicWindowP8SCSUDataa.exit398 ], [ %56, %if.then262 ], [ %currentOffset.0, %if.else352 ], [ %currentOffset.0, %if.else259 ], [ %currentOffset.0, %land.lhs.true224 ] @@ -2419,7 +2419,7 @@ outputBytes: ; preds = %land.lhs.true224, % br i1 %cmp362.not, label %if.else379, label %if.then363 if.then363: ; preds = %outputBytes - switch i32 %length.0, label %sw.epilog [ + switch i32 %length.0, label %default.unreachable694 [ i32 4, label %sw.bb i32 3, label %sw.bb367 i32 2, label %sw.bb371 @@ -2447,22 +2447,21 @@ sw.bb371: ; preds = %sw.bb367, %if.then3 store i8 %conv373, ptr %target.11, align 1 %incdec.ptr374 = getelementptr inbounds i8, ptr %target.11, i64 1 %conv376 = trunc i32 %c.6 to i8 - %incdec.ptr377 = getelementptr inbounds i8, ptr %target.11, i64 2 store i8 %conv376, ptr %incdec.ptr374, align 1 - br label %sw.epilog - -sw.epilog: ; preds = %if.then363, %sw.bb371 - %target.13 = phi ptr [ %target.9, %if.then363 ], [ %incdec.ptr377, %sw.bb371 ] + %incdec.ptr377 = getelementptr inbounds i8, ptr %target.11, i64 2 %sub378 = sub nsw i32 %targetCapacity.8, %length.0 br label %loop +default.unreachable694: ; preds = %if.then363 + unreachable + if.else379: ; preds = %outputBytes, %if.then209 %length.0559 = phi i32 [ 2, %if.then209 ], [ %length.0, %outputBytes ] %c.6558 = phi i32 [ %conv206, %if.then209 ], [ %c.6, %outputBytes ] %dynamicWindow.2557 = phi i8 [ %dynamicWindow.0, %if.then209 ], [ %dynamicWindow.2, %outputBytes ] %isSingleByteMode.2556 = phi i8 [ 0, %if.then209 ], [ %isSingleByteMode.2, %outputBytes ] %targetCapacity.8555 = phi i32 [ 1, %if.then209 ], [ %targetCapacity.8, %outputBytes ] - %target.9554 = phi ptr [ %target.6612775, %if.then209 ], [ %target.9, %outputBytes ] + %target.9554 = phi ptr [ %target.6621811, %if.then209 ], [ %target.9, %outputBytes ] %source.9553 = phi ptr [ %incdec.ptr205, %if.then209 ], [ %source.9, %outputBytes ] %sub380 = sub nsw i32 %length.0559, %targetCapacity.8555 %charErrorBuffer = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 27 @@ -3168,53 +3167,53 @@ if.else216: ; preds = %loop br i1 %or.cond2, label %getTrailUnicode, label %while.cond222.preheader while.cond222.preheader: ; preds = %if.else216 - %cmp223705 = icmp ult ptr %source.0, %3 - br i1 %cmp223705, label %while.body224.preheader, label %endloop + %cmp223716 = icmp ult ptr %source.0, %3 + br i1 %cmp223716, label %while.body224.preheader, label %endloop while.body224.preheader: ; preds = %while.cond222.preheader - %cmp225900 = icmp slt i32 %targetCapacity.0, 1 - br i1 %cmp225900, label %endloop.sink.split, label %if.end227 + %cmp225944 = icmp slt i32 %targetCapacity.0, 1 + br i1 %cmp225944, label %endloop.sink.split, label %if.end227 while.body224: ; preds = %if.end244 - %sub245 = add nsw i32 %targetCapacity.6708904, -2 - %cmp225 = icmp slt i32 %targetCapacity.6708904, 3 + %sub245 = add nsw i32 %targetCapacity.6719948, -2 + %cmp225 = icmp slt i32 %targetCapacity.6719948, 3 br i1 %cmp225, label %endloop.sink.split, label %if.end227, !llvm.loop !20 if.end227: ; preds = %while.body224.preheader, %while.body224 - %source.6706906 = phi ptr [ %incdec.ptr228, %while.body224 ], [ %source.0, %while.body224.preheader ] - %target.6707905 = phi ptr [ %incdec.ptr239, %while.body224 ], [ %target.0, %while.body224.preheader ] - %targetCapacity.6708904 = phi i32 [ %sub245, %while.body224 ], [ %targetCapacity.0, %while.body224.preheader ] - %offsets.11709903 = phi ptr [ %offsets.12, %while.body224 ], [ %offsets.0, %while.body224.preheader ] - %sourceIndex.3711902 = phi i32 [ %inc230, %while.body224 ], [ %sourceIndex.0, %while.body224.preheader ] - %nextSourceIndex.6712901 = phi i32 [ %inc230, %while.body224 ], [ %nextSourceIndex.0, %while.body224.preheader ] - %incdec.ptr228 = getelementptr inbounds i16, ptr %source.6706906, i64 1 - %47 = load i16, ptr %source.6706906, align 2 + %source.6717950 = phi ptr [ %incdec.ptr228, %while.body224 ], [ %source.0, %while.body224.preheader ] + %target.6718949 = phi ptr [ %incdec.ptr239, %while.body224 ], [ %target.0, %while.body224.preheader ] + %targetCapacity.6719948 = phi i32 [ %sub245, %while.body224 ], [ %targetCapacity.0, %while.body224.preheader ] + %offsets.11720947 = phi ptr [ %offsets.12, %while.body224 ], [ %offsets.0, %while.body224.preheader ] + %sourceIndex.3722946 = phi i32 [ %inc230, %while.body224 ], [ %sourceIndex.0, %while.body224.preheader ] + %nextSourceIndex.6723945 = phi i32 [ %inc230, %while.body224 ], [ %nextSourceIndex.0, %while.body224.preheader ] + %incdec.ptr228 = getelementptr inbounds i16, ptr %source.6717950, i64 1 + %47 = load i16, ptr %source.6717950, align 2 %conv229 = zext i16 %47 to i32 - %inc230 = add nsw i32 %nextSourceIndex.6712901, 1 + %inc230 = add nsw i32 %nextSourceIndex.6723945, 1 %sub231 = add nsw i32 %conv229, -13312 %cmp232 = icmp ult i32 %sub231, 41984 br i1 %cmp232, label %if.then233, label %if.else248 if.then233: ; preds = %if.end227 - %cmp234.not = icmp eq i32 %targetCapacity.6708904, 1 + %cmp234.not = icmp eq i32 %targetCapacity.6719948, 1 br i1 %cmp234.not, label %if.else435, label %if.then235 if.then235: ; preds = %if.then233 %shr = lshr i16 %47, 8 %conv236 = trunc i16 %shr to i8 - %incdec.ptr237 = getelementptr inbounds i8, ptr %target.6707905, i64 1 - store i8 %conv236, ptr %target.6707905, align 1 + %incdec.ptr237 = getelementptr inbounds i8, ptr %target.6718949, i64 1 + store i8 %conv236, ptr %target.6718949, align 1 %conv238 = trunc i16 %47 to i8 - %incdec.ptr239 = getelementptr inbounds i8, ptr %target.6707905, i64 2 + %incdec.ptr239 = getelementptr inbounds i8, ptr %target.6718949, i64 2 store i8 %conv238, ptr %incdec.ptr237, align 1 - %cmp240.not = icmp eq ptr %offsets.11709903, null + %cmp240.not = icmp eq ptr %offsets.11720947, null br i1 %cmp240.not, label %if.end244, label %if.then241 if.then241: ; preds = %if.then235 - %incdec.ptr242 = getelementptr inbounds i32, ptr %offsets.11709903, i64 1 - store i32 %sourceIndex.3711902, ptr %offsets.11709903, align 4 - %incdec.ptr243 = getelementptr inbounds i32, ptr %offsets.11709903, i64 2 - store i32 %sourceIndex.3711902, ptr %incdec.ptr242, align 4 + %incdec.ptr242 = getelementptr inbounds i32, ptr %offsets.11720947, i64 1 + store i32 %sourceIndex.3722946, ptr %offsets.11720947, align 4 + %incdec.ptr243 = getelementptr inbounds i32, ptr %offsets.11720947, i64 2 + store i32 %sourceIndex.3722946, ptr %incdec.ptr242, align 4 br label %if.end244 if.end244: ; preds = %if.then241, %if.then235 @@ -3368,11 +3367,11 @@ if.then310: ; preds = %if.else308 getTrailUnicode: ; preds = %if.then310, %if.else216 %source.7 = phi ptr [ %source.0, %if.else216 ], [ %incdec.ptr228, %if.then310 ] - %target.7 = phi ptr [ %target.0, %if.else216 ], [ %target.6707905, %if.then310 ] - %targetCapacity.7 = phi i32 [ %targetCapacity.0, %if.else216 ], [ %targetCapacity.6708904, %if.then310 ] - %offsets.13 = phi ptr [ %offsets.0, %if.else216 ], [ %offsets.11709903, %if.then310 ] + %target.7 = phi ptr [ %target.0, %if.else216 ], [ %target.6718949, %if.then310 ] + %targetCapacity.7 = phi i32 [ %targetCapacity.0, %if.else216 ], [ %targetCapacity.6719948, %if.then310 ] + %offsets.13 = phi ptr [ %offsets.0, %if.else216 ], [ %offsets.11720947, %if.then310 ] %c.4 = phi i32 [ %c.0, %if.else216 ], [ %conv229, %if.then310 ] - %sourceIndex.4 = phi i32 [ %sourceIndex.0, %if.else216 ], [ %sourceIndex.3711902, %if.then310 ] + %sourceIndex.4 = phi i32 [ %sourceIndex.0, %if.else216 ], [ %sourceIndex.3722946, %if.then310 ] %nextSourceIndex.7 = phi i32 [ %nextSourceIndex.0, %if.else216 ], [ %inc230, %if.then310 ] %cmp315 = icmp ult ptr %source.7, %3 br i1 %cmp315, label %if.then316, label %endloop @@ -3619,8 +3618,8 @@ if.else382: ; preds = %if.else308 endloop.sink.split: ; preds = %if.then310, %if.then316, %if.then50, %if.then56, %while.body, %while.body224.preheader, %while.body224, %sw.bb472, %if.then476, %sw.epilog453, %sw.bb472.thread %.sink = phi i32 [ 15, %sw.bb472.thread ], [ 15, %sw.epilog453 ], [ 15, %if.then476 ], [ 15, %sw.bb472 ], [ 15, %while.body224 ], [ 15, %while.body ], [ 12, %if.then56 ], [ 12, %if.then50 ], [ 12, %if.then316 ], [ 12, %if.then310 ], [ 15, %while.body224.preheader ] %source.8.ph = phi ptr [ %source.9610, %sw.bb472.thread ], [ %source.9610, %sw.epilog453 ], [ %source.9610, %if.then476 ], [ %source.9610, %sw.bb472 ], [ %incdec.ptr228, %while.body224 ], [ %source.1, %while.body ], [ %source.2, %if.then56 ], [ %incdec.ptr, %if.then50 ], [ %source.7, %if.then316 ], [ %incdec.ptr228, %if.then310 ], [ %source.0, %while.body224.preheader ] - %target.8.ph = phi ptr [ %incdec.ptr474637, %sw.bb472.thread ], [ %target.9611, %sw.epilog453 ], [ %incdec.ptr474646, %if.then476 ], [ %incdec.ptr474, %sw.bb472 ], [ %incdec.ptr239, %while.body224 ], [ %target.1, %while.body ], [ %target.2, %if.then56 ], [ %target.1, %if.then50 ], [ %target.7, %if.then316 ], [ %target.6707905, %if.then310 ], [ %target.0, %while.body224.preheader ] - %offsets.14.ph = phi ptr [ null, %sw.bb472.thread ], [ %offsets.15613, %sw.epilog453 ], [ %incdec.ptr477, %if.then476 ], [ null, %sw.bb472 ], [ %offsets.12, %while.body224 ], [ %offsets.1, %while.body ], [ %offsets.5, %if.then56 ], [ %offsets.1, %if.then50 ], [ %offsets.13, %if.then316 ], [ %offsets.11709903, %if.then310 ], [ %offsets.0, %while.body224.preheader ] + %target.8.ph = phi ptr [ %incdec.ptr474637, %sw.bb472.thread ], [ %target.9611, %sw.epilog453 ], [ %incdec.ptr474646, %if.then476 ], [ %incdec.ptr474, %sw.bb472 ], [ %incdec.ptr239, %while.body224 ], [ %target.1, %while.body ], [ %target.2, %if.then56 ], [ %target.1, %if.then50 ], [ %target.7, %if.then316 ], [ %target.6718949, %if.then310 ], [ %target.0, %while.body224.preheader ] + %offsets.14.ph = phi ptr [ null, %sw.bb472.thread ], [ %offsets.15613, %sw.epilog453 ], [ %incdec.ptr477, %if.then476 ], [ null, %sw.bb472 ], [ %offsets.12, %while.body224 ], [ %offsets.1, %while.body ], [ %offsets.5, %if.then56 ], [ %offsets.1, %if.then50 ], [ %offsets.13, %if.then316 ], [ %offsets.11720947, %if.then310 ], [ %offsets.0, %while.body224.preheader ] %isSingleByteMode.1.ph = phi i8 [ %isSingleByteMode.2614, %sw.bb472.thread ], [ %isSingleByteMode.2614, %sw.epilog453 ], [ %isSingleByteMode.2614, %if.then476 ], [ %isSingleByteMode.2614, %sw.bb472 ], [ 0, %while.body224 ], [ %isSingleByteMode.0, %while.body ], [ %isSingleByteMode.0, %if.then56 ], [ %isSingleByteMode.0, %if.then50 ], [ 0, %if.then316 ], [ 0, %if.then310 ], [ 0, %while.body224.preheader ] %dynamicWindow.1.ph = phi i8 [ %dynamicWindow.2615, %sw.bb472.thread ], [ %dynamicWindow.2615, %sw.epilog453 ], [ %dynamicWindow.2615, %if.then476 ], [ %dynamicWindow.2615, %sw.bb472 ], [ %dynamicWindow.0, %while.body224 ], [ %dynamicWindow.0, %while.body224.preheader ], [ %dynamicWindow.0, %while.body ], [ %dynamicWindow.0, %if.then56 ], [ %dynamicWindow.0, %if.then50 ], [ %dynamicWindow.0, %if.then316 ], [ %dynamicWindow.0, %if.then310 ] %c.5.ph = phi i32 [ 0, %sw.bb472.thread ], [ 0, %sw.epilog453 ], [ 0, %if.then476 ], [ 0, %sw.bb472 ], [ 0, %while.body224 ], [ %c.1, %while.body ], [ %c.2, %if.then56 ], [ %conv13, %if.then50 ], [ %c.4, %if.then316 ], [ %conv229, %if.then310 ], [ %c.0, %while.body224.preheader ] @@ -3644,14 +3643,14 @@ endloop: ; preds = %getTrailSingle, %wh outputBytes: ; preds = %land.lhs.true253, %if.else288, %if.else382, %if.else377, %_ZL16useDynamicWindowP8SCSUDataa.exit567, %_ZL16useDynamicWindowP8SCSUDataa.exit500, %if.then291, %_ZL16useDynamicWindowP8SCSUDataa.exit452, %if.then266, %if.else210, %if.then208, %if.then186, %if.then175, %if.else161, %_ZL16useDynamicWindowP8SCSUDataa.exit392, %if.then134, %if.then128, %if.end119, %_ZL16useDynamicWindowP8SCSUDataa.exit346, %_ZL16useDynamicWindowP8SCSUDataa.exit, %if.else33 %source.9 = phi ptr [ %incdec.ptr, %if.else33 ], [ %incdec.ptr, %if.then128 ], [ %incdec.ptr, %if.then134 ], [ %incdec.ptr, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %incdec.ptr, %if.else161 ], [ %incdec.ptr, %if.then175 ], [ %incdec.ptr, %if.then186 ], [ %incdec.ptr, %if.then208 ], [ %incdec.ptr, %if.else210 ], [ %incdec.ptr61, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %incdec.ptr61, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %incdec.ptr61, %if.end119 ], [ %incdec.ptr321, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %incdec.ptr321, %if.else377 ], [ %incdec.ptr321, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %incdec.ptr228, %if.then266 ], [ %incdec.ptr228, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %incdec.ptr228, %if.then291 ], [ %incdec.ptr228, %if.else382 ], [ %incdec.ptr228, %if.else288 ], [ %incdec.ptr228, %land.lhs.true253 ] - %target.9 = phi ptr [ %target.1, %if.else33 ], [ %target.1, %if.then128 ], [ %target.1, %if.then134 ], [ %target.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %target.1, %if.else161 ], [ %target.1, %if.then175 ], [ %target.1, %if.then186 ], [ %target.1, %if.then208 ], [ %target.1, %if.else210 ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %incdec.ptr115, %if.end119 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %target.7, %if.else377 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %target.6707905, %if.then266 ], [ %target.6707905, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %target.6707905, %if.then291 ], [ %target.6707905, %if.else382 ], [ %target.6707905, %if.else288 ], [ %target.6707905, %land.lhs.true253 ] - %targetCapacity.8 = phi i32 [ %targetCapacity.1, %if.else33 ], [ %targetCapacity.1, %if.then128 ], [ %targetCapacity.1, %if.then134 ], [ %targetCapacity.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %targetCapacity.1, %if.else161 ], [ %targetCapacity.1, %if.then175 ], [ %targetCapacity.1, %if.then186 ], [ %targetCapacity.1, %if.then208 ], [ %targetCapacity.1, %if.else210 ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %dec120, %if.end119 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %targetCapacity.7, %if.else377 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %targetCapacity.6708904, %if.then266 ], [ %targetCapacity.6708904, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %targetCapacity.6708904, %if.then291 ], [ %targetCapacity.6708904, %if.else382 ], [ %targetCapacity.6708904, %if.else288 ], [ %targetCapacity.6708904, %land.lhs.true253 ] - %offsets.15 = phi ptr [ %offsets.1, %if.else33 ], [ %offsets.1, %if.then128 ], [ %offsets.1, %if.then134 ], [ %offsets.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %offsets.1, %if.else161 ], [ %offsets.1, %if.then175 ], [ %offsets.1, %if.then186 ], [ %offsets.1, %if.then208 ], [ %offsets.1, %if.else210 ], [ %offsets.5, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %offsets.5, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %offsets.7, %if.end119 ], [ %offsets.13, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %offsets.13, %if.else377 ], [ %offsets.13, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %offsets.11709903, %if.then266 ], [ %offsets.11709903, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %offsets.11709903, %if.then291 ], [ %offsets.11709903, %if.else382 ], [ %offsets.11709903, %if.else288 ], [ %offsets.11709903, %land.lhs.true253 ] + %target.9 = phi ptr [ %target.1, %if.else33 ], [ %target.1, %if.then128 ], [ %target.1, %if.then134 ], [ %target.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %target.1, %if.else161 ], [ %target.1, %if.then175 ], [ %target.1, %if.then186 ], [ %target.1, %if.then208 ], [ %target.1, %if.else210 ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %target.2, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %incdec.ptr115, %if.end119 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %target.7, %if.else377 ], [ %target.7, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %target.6718949, %if.then266 ], [ %target.6718949, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %target.6718949, %if.then291 ], [ %target.6718949, %if.else382 ], [ %target.6718949, %if.else288 ], [ %target.6718949, %land.lhs.true253 ] + %targetCapacity.8 = phi i32 [ %targetCapacity.1, %if.else33 ], [ %targetCapacity.1, %if.then128 ], [ %targetCapacity.1, %if.then134 ], [ %targetCapacity.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %targetCapacity.1, %if.else161 ], [ %targetCapacity.1, %if.then175 ], [ %targetCapacity.1, %if.then186 ], [ %targetCapacity.1, %if.then208 ], [ %targetCapacity.1, %if.else210 ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %targetCapacity.2, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %dec120, %if.end119 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %targetCapacity.7, %if.else377 ], [ %targetCapacity.7, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %targetCapacity.6719948, %if.then266 ], [ %targetCapacity.6719948, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %targetCapacity.6719948, %if.then291 ], [ %targetCapacity.6719948, %if.else382 ], [ %targetCapacity.6719948, %if.else288 ], [ %targetCapacity.6719948, %land.lhs.true253 ] + %offsets.15 = phi ptr [ %offsets.1, %if.else33 ], [ %offsets.1, %if.then128 ], [ %offsets.1, %if.then134 ], [ %offsets.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %offsets.1, %if.else161 ], [ %offsets.1, %if.then175 ], [ %offsets.1, %if.then186 ], [ %offsets.1, %if.then208 ], [ %offsets.1, %if.else210 ], [ %offsets.5, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %offsets.5, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %offsets.7, %if.end119 ], [ %offsets.13, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %offsets.13, %if.else377 ], [ %offsets.13, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %offsets.11720947, %if.then266 ], [ %offsets.11720947, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %offsets.11720947, %if.then291 ], [ %offsets.11720947, %if.else382 ], [ %offsets.11720947, %if.else288 ], [ %offsets.11720947, %land.lhs.true253 ] %isSingleByteMode.2 = phi i8 [ %isSingleByteMode.0, %if.else33 ], [ %isSingleByteMode.0, %if.then128 ], [ %isSingleByteMode.0, %if.then134 ], [ %isSingleByteMode.0, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %isSingleByteMode.0, %if.else161 ], [ %isSingleByteMode.0, %if.then175 ], [ %isSingleByteMode.0, %if.then186 ], [ 0, %if.then208 ], [ %isSingleByteMode.0, %if.else210 ], [ %isSingleByteMode.0, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %isSingleByteMode.0, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ 0, %if.end119 ], [ 1, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ 0, %if.else377 ], [ 1, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ 1, %if.then266 ], [ 1, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ 1, %if.then291 ], [ 0, %if.else382 ], [ 0, %if.else288 ], [ 0, %land.lhs.true253 ] %dynamicWindow.2 = phi i8 [ %dynamicWindow.0, %if.else33 ], [ %dynamicWindow.0, %if.then128 ], [ %dynamicWindow.0, %if.then134 ], [ %conv.i357, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %dynamicWindow.0, %if.else161 ], [ %dynamicWindow.0, %if.then175 ], [ %44, %if.then186 ], [ %dynamicWindow.0, %if.then208 ], [ %dynamicWindow.0, %if.else210 ], [ %conv.i, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %28, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %dynamicWindow.0, %if.end119 ], [ %77, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %dynamicWindow.0, %if.else377 ], [ %conv.i469, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %dynamicWindow.0, %if.then266 ], [ %conv.i421, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %57, %if.then291 ], [ %dynamicWindow.0, %if.else382 ], [ %dynamicWindow.0, %if.else288 ], [ %dynamicWindow.0, %land.lhs.true253 ] %currentOffset.1 = phi i32 [ %currentOffset.0, %if.else33 ], [ %currentOffset.0, %if.then128 ], [ %currentOffset.0, %if.then134 ], [ %36, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %currentOffset.0, %if.else161 ], [ %currentOffset.0, %if.then175 ], [ %45, %if.then186 ], [ %currentOffset.0, %if.then208 ], [ %currentOffset.0, %if.else210 ], [ %16, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %26, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %currentOffset.0, %if.end119 ], [ %75, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %currentOffset.0, %if.else377 ], [ %62, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %currentOffset.0, %if.then266 ], [ %50, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %58, %if.then291 ], [ %currentOffset.0, %if.else382 ], [ %currentOffset.0, %if.else288 ], [ %currentOffset.0, %land.lhs.true253 ] %c.6 = phi i32 [ %or, %if.else33 ], [ %or130, %if.then128 ], [ %or135, %if.then134 ], [ %or160, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %or170, %if.else161 ], [ %or182, %if.then175 ], [ %or198, %if.then186 ], [ %or209, %if.then208 ], [ %or211, %if.else210 ], [ %or96, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %or113, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %or124, %if.end119 ], [ %or376, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %or381, %if.else377 ], [ %or353, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %or270, %if.then266 ], [ %or287, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %or303, %if.then291 ], [ %or383, %if.else382 ], [ %conv229, %if.else288 ], [ %conv229, %land.lhs.true253 ] - %sourceIndex.5 = phi i32 [ %sourceIndex.1, %if.else33 ], [ %sourceIndex.1, %if.then128 ], [ %sourceIndex.1, %if.then134 ], [ %sourceIndex.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %sourceIndex.1, %if.else161 ], [ %sourceIndex.1, %if.then175 ], [ %sourceIndex.1, %if.then186 ], [ %sourceIndex.1, %if.then208 ], [ %sourceIndex.1, %if.else210 ], [ %sourceIndex.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %sourceIndex.2, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %sourceIndex.2, %if.end119 ], [ %sourceIndex.4, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %sourceIndex.4, %if.else377 ], [ %sourceIndex.4, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %sourceIndex.3711902, %if.then266 ], [ %sourceIndex.3711902, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %sourceIndex.3711902, %if.then291 ], [ %sourceIndex.3711902, %if.else382 ], [ %sourceIndex.3711902, %if.else288 ], [ %sourceIndex.3711902, %land.lhs.true253 ] + %sourceIndex.5 = phi i32 [ %sourceIndex.1, %if.else33 ], [ %sourceIndex.1, %if.then128 ], [ %sourceIndex.1, %if.then134 ], [ %sourceIndex.1, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %sourceIndex.1, %if.else161 ], [ %sourceIndex.1, %if.then175 ], [ %sourceIndex.1, %if.then186 ], [ %sourceIndex.1, %if.then208 ], [ %sourceIndex.1, %if.else210 ], [ %sourceIndex.2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %sourceIndex.2, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %sourceIndex.2, %if.end119 ], [ %sourceIndex.4, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %sourceIndex.4, %if.else377 ], [ %sourceIndex.4, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %sourceIndex.3722946, %if.then266 ], [ %sourceIndex.3722946, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %sourceIndex.3722946, %if.then291 ], [ %sourceIndex.3722946, %if.else382 ], [ %sourceIndex.3722946, %if.else288 ], [ %sourceIndex.3722946, %land.lhs.true253 ] %nextSourceIndex.8 = phi i32 [ %inc, %if.else33 ], [ %inc, %if.then128 ], [ %inc, %if.then134 ], [ %inc, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ %inc, %if.else161 ], [ %inc, %if.then175 ], [ %inc, %if.then186 ], [ %inc, %if.then208 ], [ %inc, %if.else210 ], [ %inc62, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ %inc62, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ %inc62, %if.end119 ], [ %inc322, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ %inc322, %if.else377 ], [ %inc322, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ %inc230, %if.then266 ], [ %inc230, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ %inc230, %if.then291 ], [ %inc230, %if.else382 ], [ %inc230, %if.else288 ], [ %inc230, %land.lhs.true253 ] %length.0 = phi i32 [ 2, %if.else33 ], [ 2, %if.then128 ], [ 3, %if.then134 ], [ 2, %_ZL16useDynamicWindowP8SCSUDataa.exit392 ], [ 2, %if.else161 ], [ 2, %if.then175 ], [ 3, %if.then186 ], [ 3, %if.then208 ], [ 3, %if.else210 ], [ 2, %_ZL16useDynamicWindowP8SCSUDataa.exit ], [ 4, %_ZL16useDynamicWindowP8SCSUDataa.exit346 ], [ 4, %if.end119 ], [ 4, %_ZL16useDynamicWindowP8SCSUDataa.exit567 ], [ 4, %if.else377 ], [ 2, %_ZL16useDynamicWindowP8SCSUDataa.exit500 ], [ 2, %if.then266 ], [ 2, %_ZL16useDynamicWindowP8SCSUDataa.exit452 ], [ 3, %if.then291 ], [ 3, %if.else382 ], [ 2, %if.else288 ], [ 2, %land.lhs.true253 ] %cmp393.not = icmp sgt i32 %length.0, %targetCapacity.8 @@ -3662,7 +3661,7 @@ if.then394: ; preds = %outputBytes br i1 %cmp395, label %if.then396, label %if.else411 if.then396: ; preds = %if.then394 - switch i32 %length.0, label %if.end433 [ + switch i32 %length.0, label %default.unreachable807 [ i32 4, label %sw.bb i32 3, label %sw.bb400 i32 2, label %sw.bb404 @@ -3690,12 +3689,11 @@ sw.bb404: ; preds = %sw.bb400, %if.then3 store i8 %conv406, ptr %target.11, align 1 %incdec.ptr407 = getelementptr inbounds i8, ptr %target.11, i64 1 %conv409 = trunc i32 %c.6 to i8 - %incdec.ptr410 = getelementptr inbounds i8, ptr %target.11, i64 2 store i8 %conv409, ptr %incdec.ptr407, align 1 br label %if.end433 if.else411: ; preds = %if.then394 - switch i32 %length.0, label %if.end433 [ + switch i32 %length.0, label %default.unreachable807 [ i32 4, label %sw.bb412 i32 3, label %sw.bb417 i32 2, label %sw.bb422 @@ -3731,27 +3729,30 @@ sw.bb422: ; preds = %sw.bb417, %if.else4 %incdec.ptr426 = getelementptr inbounds i32, ptr %offsets.17, i64 1 %incdec.ptr425 = getelementptr inbounds i8, ptr %target.14, i64 1 %conv428 = trunc i32 %c.6 to i8 - %incdec.ptr429 = getelementptr inbounds i8, ptr %target.14, i64 2 store i8 %conv428, ptr %incdec.ptr425, align 1 %incdec.ptr430 = getelementptr inbounds i32, ptr %offsets.17, i64 2 store i32 %sourceIndex.5, ptr %incdec.ptr426, align 4 br label %if.end433 -if.end433: ; preds = %sw.bb422, %if.else411, %sw.bb404, %if.then396 - %target.16 = phi ptr [ %target.9, %if.then396 ], [ %incdec.ptr410, %sw.bb404 ], [ %target.9, %if.else411 ], [ %incdec.ptr429, %sw.bb422 ] - %offsets.19 = phi ptr [ null, %if.then396 ], [ null, %sw.bb404 ], [ %offsets.15, %if.else411 ], [ %incdec.ptr430, %sw.bb422 ] +default.unreachable807: ; preds = %if.else411, %if.then396 + unreachable + +if.end433: ; preds = %sw.bb422, %sw.bb404 + %target.11.pn = phi ptr [ %target.11, %sw.bb404 ], [ %target.14, %sw.bb422 ] + %offsets.19 = phi ptr [ null, %sw.bb404 ], [ %incdec.ptr430, %sw.bb422 ] + %target.16 = getelementptr inbounds i8, ptr %target.11.pn, i64 2 %sub434 = sub nsw i32 %targetCapacity.8, %length.0 br label %loop if.else435: ; preds = %outputBytes, %if.then233 %length.0618 = phi i32 [ 2, %if.then233 ], [ %length.0, %outputBytes ] - %sourceIndex.5617 = phi i32 [ %sourceIndex.3711902, %if.then233 ], [ %sourceIndex.5, %outputBytes ] + %sourceIndex.5617 = phi i32 [ %sourceIndex.3722946, %if.then233 ], [ %sourceIndex.5, %outputBytes ] %c.6616 = phi i32 [ %conv229, %if.then233 ], [ %c.6, %outputBytes ] %dynamicWindow.2615 = phi i8 [ %dynamicWindow.0, %if.then233 ], [ %dynamicWindow.2, %outputBytes ] %isSingleByteMode.2614 = phi i8 [ 0, %if.then233 ], [ %isSingleByteMode.2, %outputBytes ] - %offsets.15613 = phi ptr [ %offsets.11709903, %if.then233 ], [ %offsets.15, %outputBytes ] + %offsets.15613 = phi ptr [ %offsets.11720947, %if.then233 ], [ %offsets.15, %outputBytes ] %targetCapacity.8612 = phi i32 [ 1, %if.then233 ], [ %targetCapacity.8, %outputBytes ] - %target.9611 = phi ptr [ %target.6707905, %if.then233 ], [ %target.9, %outputBytes ] + %target.9611 = phi ptr [ %target.6718949, %if.then233 ], [ %target.9, %outputBytes ] %source.9610 = phi ptr [ %incdec.ptr228, %if.then233 ], [ %source.9, %outputBytes ] %sub436 = sub nsw i32 %length.0618, %targetCapacity.8612 %charErrorBuffer = getelementptr inbounds %struct.UConverter, ptr %0, i64 0, i32 27 @@ -3879,7 +3880,7 @@ entry: ret ptr %.str..str.1 } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable define internal noundef ptr @_ZL14_SCSUSafeClonePK10UConverterPvPiP10UErrorCode(ptr nocapture noundef readonly %cnv, ptr noundef %stackBuffer, ptr nocapture noundef %pBufferSize, ptr nocapture noundef readonly %status) #1 { entry: %0 = load i32, ptr %status, align 4 @@ -4035,7 +4036,7 @@ return: ; preds = %if.else13, %for.end } attributes #0 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #2 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { "frame-pointer"="all" "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" } diff --git a/bench/icu/optimized/ucptrie.ll b/bench/icu/optimized/ucptrie.ll index 9189f550318..4b50c67cd9e 100644 --- a/bench/icu/optimized/ucptrie.ll +++ b/bench/icu/optimized/ucptrie.ll @@ -173,7 +173,6 @@ do.body: ; preds = %if.end79 %tempTrie.sroa.14.0.trie.0.12.sroa_idx = getelementptr inbounds i8, ptr %call80, i64 40 store i32 %or49, ptr %tempTrie.sroa.14.0.trie.0.12.sroa_idx, align 8 %tempTrie.sroa.15.0.trie.0.12.sroa_idx = getelementptr inbounds i8, ptr %call80, i64 44 - store i32 0, ptr %tempTrie.sroa.15.0.trie.0.12.sroa_idx, align 4 %add.ptr = getelementptr inbounds %struct.UCPTrieHeader, ptr %data, i64 1 store ptr %add.ptr, ptr %call80, align 8 %idx.ext = zext i16 %8 to i64 @@ -181,41 +180,34 @@ do.body: ; preds = %if.end79 %cmp88.not = icmp ult i32 %or49, %or %sub = add nsw i32 %or, -2 %spec.select80 = select i1 %cmp88.not, i32 %or49, i32 %sub - switch i32 %and20, label %sw.default [ + %data92 = getelementptr inbounds %struct.UCPTrie, ptr %call80, i64 0, i32 1 + store ptr %add.ptr85, ptr %data92, align 8 + %idxprom = sext i32 %spec.select80 to i64 + switch i32 %and20, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb95 i32 2, label %sw.bb101 ] sw.bb: ; preds = %do.body - %data92 = getelementptr inbounds %struct.UCPTrie, ptr %call80, i64 0, i32 1 - store ptr %add.ptr85, ptr %data92, align 8 - %idxprom = sext i32 %spec.select80 to i64 %arrayidx = getelementptr inbounds i16, ptr %add.ptr85, i64 %idxprom %16 = load i16, ptr %arrayidx, align 2 %conv94 = zext i16 %16 to i32 br label %sw.epilog sw.bb95: ; preds = %do.body - %data96 = getelementptr inbounds %struct.UCPTrie, ptr %call80, i64 0, i32 1 - store ptr %add.ptr85, ptr %data96, align 8 - %idxprom98 = sext i32 %spec.select80 to i64 - %arrayidx99 = getelementptr inbounds i32, ptr %add.ptr85, i64 %idxprom98 + %arrayidx99 = getelementptr inbounds i32, ptr %add.ptr85, i64 %idxprom %17 = load i32, ptr %arrayidx99, align 4 br label %sw.epilog sw.bb101: ; preds = %do.body - %data102 = getelementptr inbounds %struct.UCPTrie, ptr %call80, i64 0, i32 1 - store ptr %add.ptr85, ptr %data102, align 8 - %idxprom104 = sext i32 %spec.select80 to i64 - %arrayidx105 = getelementptr inbounds i8, ptr %add.ptr85, i64 %idxprom104 + %arrayidx105 = getelementptr inbounds i8, ptr %add.ptr85, i64 %idxprom %18 = load i8, ptr %arrayidx105, align 1 %conv106 = zext i8 %18 to i32 br label %sw.epilog -sw.default: ; preds = %do.body - store i32 3, ptr %pErrorCode, align 4 - br label %return +default.unreachable: ; preds = %do.body + unreachable sw.epilog: ; preds = %sw.bb101, %sw.bb95, %sw.bb %conv106.sink = phi i32 [ %conv106, %sw.bb101 ], [ %17, %sw.bb95 ], [ %conv94, %sw.bb ] @@ -227,8 +219,8 @@ if.then109: ; preds = %sw.epilog store i32 %actualLength.0, ptr %pActualLength, align 4 br label %return -return: ; preds = %sw.epilog, %if.then109, %entry, %sw.default, %if.then82, %if.then78, %if.then38, %if.then27, %if.then16, %if.then13, %if.then10 - %retval.0 = phi ptr [ null, %if.then10 ], [ null, %if.then13 ], [ null, %if.then16 ], [ null, %if.then27 ], [ null, %if.then38 ], [ null, %if.then78 ], [ null, %if.then82 ], [ null, %sw.default ], [ null, %entry ], [ %call80, %if.then109 ], [ %call80, %sw.epilog ] +return: ; preds = %sw.epilog, %if.then109, %entry, %if.then82, %if.then78, %if.then38, %if.then27, %if.then16, %if.then13, %if.then10 + %retval.0 = phi ptr [ null, %if.then10 ], [ null, %if.then13 ], [ null, %if.then16 ], [ null, %if.then27 ], [ null, %if.then38 ], [ null, %if.then78 ], [ null, %if.then82 ], [ null, %entry ], [ %call80, %if.then109 ], [ %call80, %sw.epilog ] ret ptr %retval.0 } @@ -1443,7 +1435,7 @@ if.end17: ; preds = %land.lhs.true, %lor %4 = load i32, ptr %indexLength, align 8 %mul = shl nsw i32 %4, 1 %add = add nsw i32 %mul, 16 - switch i8 %2, label %sw.epilog [ + switch i8 %2, label %default.unreachable [ i8 0, label %sw.bb i8 1, label %sw.bb20 i8 2, label %sw.bb24 @@ -1470,8 +1462,11 @@ sw.bb24: ; preds = %if.end17 %add26 = add nsw i32 %9, %add br label %sw.epilog -sw.epilog: ; preds = %if.end17, %sw.bb24, %sw.bb20, %sw.bb - %length.0 = phi i32 [ %add, %if.end17 ], [ %add26, %sw.bb24 ], [ %add23, %sw.bb20 ], [ %add19, %sw.bb ] +default.unreachable: ; preds = %if.end29, %if.end17 + unreachable + +sw.epilog: ; preds = %sw.bb24, %sw.bb20, %sw.bb + %length.0 = phi i32 [ %add26, %sw.bb24 ], [ %add23, %sw.bb20 ], [ %add19, %sw.bb ] %cmp27 = icmp sgt i32 %length.0, %capacity br i1 %cmp27, label %if.then28, label %if.end29 @@ -1530,7 +1525,7 @@ if.end29: ; preds = %sw.epilog %mul55 = shl nsw i32 %20, 1 %idx.ext = sext i32 %mul55 to i64 %add.ptr56 = getelementptr inbounds i8, ptr %add.ptr, i64 %idx.ext - switch i8 %2, label %return [ + switch i8 %2, label %default.unreachable [ i8 0, label %do.body58 i8 1, label %do.body65 i8 2, label %do.body72 @@ -1562,8 +1557,8 @@ do.body72: ; preds = %if.end29 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr56, ptr align 1 %25, i64 %conv75, i1 false) br label %return -return: ; preds = %do.body58, %do.body65, %do.body72, %if.end29, %entry, %if.then28, %if.then16 - %retval.0 = phi i32 [ 0, %if.then16 ], [ %length.0, %if.then28 ], [ 0, %entry ], [ %length.0, %if.end29 ], [ %length.0, %do.body72 ], [ %length.0, %do.body65 ], [ %length.0, %do.body58 ] +return: ; preds = %do.body58, %do.body65, %do.body72, %entry, %if.then28, %if.then16 + %retval.0 = phi i32 [ 0, %if.then16 ], [ %length.0, %if.then28 ], [ 0, %entry ], [ %length.0, %do.body72 ], [ %length.0, %do.body65 ], [ %length.0, %do.body58 ] ret i32 %retval.0 } diff --git a/bench/icu/optimized/umsg.ll b/bench/icu/optimized/umsg.ll index 6a016fd217b..c985ecde99f 100644 --- a/bench/icu/optimized/umsg.ll +++ b/bench/icu/optimized/umsg.ll @@ -39,7 +39,7 @@ entry: } ; Function Attrs: mustprogress uwtable -define i32 @u_formatMessage_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr noundef %status, ...) local_unnamed_addr #1 { +define noundef i32 @u_formatMessage_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr noundef %status, ...) local_unnamed_addr #1 { entry: %ap = alloca [1 x %struct.__va_list_tag], align 16 call void @llvm.va_start(ptr nonnull %ap) @@ -64,7 +64,7 @@ u_vformatMessage_75.exit: ; preds = %entry, %delete.notn declare void @llvm.va_start(ptr) #2 ; Function Attrs: mustprogress uwtable -define i32 @u_vformatMessage_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr nocapture noundef %ap, ptr noundef %status) local_unnamed_addr #1 { +define noundef i32 @u_vformatMessage_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr nocapture noundef %ap, ptr noundef %status) local_unnamed_addr #1 { entry: %call = tail call ptr @umsg_open_75(ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %locale, ptr noundef null, ptr noundef %status) %call1 = tail call i32 @umsg_vformat_75(ptr noundef %call, ptr noundef %result, i32 noundef %resultLength, ptr noundef %ap, ptr noundef %status) @@ -86,7 +86,7 @@ umsg_close_75.exit: ; preds = %entry, %delete.notn declare void @llvm.va_end(ptr) #2 ; Function Attrs: mustprogress uwtable -define ptr @umsg_open_75(ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %locale, ptr noundef %parseError, ptr noundef %status) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { +define noundef ptr @umsg_open_75(ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %locale, ptr noundef %parseError, ptr noundef %status) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { entry: %tErr = alloca %struct.UParseError, align 4 %patString = alloca %"class.icu_75::UnicodeString", align 8 @@ -197,7 +197,7 @@ eh.resume: ; preds = %cleanup.action22, % } ; Function Attrs: mustprogress uwtable -define i32 @umsg_vformat_75(ptr noundef %fmt, ptr noundef %result, i32 noundef %resultLength, ptr nocapture noundef %ap, ptr noundef %status) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { +define noundef i32 @umsg_vformat_75(ptr noundef %fmt, ptr noundef %result, i32 noundef %resultLength, ptr nocapture noundef %ap, ptr noundef %status) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { entry: %ref.tmp = alloca %"class.icu_75::UnicodeString", align 8 %resultStr = alloca %"class.icu_75::UnicodeString", align 8 @@ -600,7 +600,7 @@ delete.end: ; preds = %entry, %delete.notn } ; Function Attrs: mustprogress uwtable -define i32 @u_formatMessageWithError_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr noundef %parseError, ptr noundef %status, ...) local_unnamed_addr #1 { +define noundef i32 @u_formatMessageWithError_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr noundef %parseError, ptr noundef %status, ...) local_unnamed_addr #1 { entry: %ap = alloca [1 x %struct.__va_list_tag], align 16 call void @llvm.va_start(ptr nonnull %ap) @@ -622,7 +622,7 @@ u_vformatMessageWithError_75.exit: ; preds = %entry, %delete.notn } ; Function Attrs: mustprogress uwtable -define i32 @u_vformatMessageWithError_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr noundef %parseError, ptr nocapture noundef %ap, ptr noundef %status) local_unnamed_addr #1 { +define noundef i32 @u_vformatMessageWithError_75(ptr noundef %locale, ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %result, i32 noundef %resultLength, ptr noundef %parseError, ptr nocapture noundef %ap, ptr noundef %status) local_unnamed_addr #1 { entry: %call = tail call ptr @umsg_open_75(ptr noundef %pattern, i32 noundef %patternLength, ptr noundef %locale, ptr noundef %parseError, ptr noundef %status) %call1 = tail call i32 @umsg_vformat_75(ptr noundef %call, ptr noundef %result, i32 noundef %resultLength, ptr noundef %ap, ptr noundef %status) @@ -1100,7 +1100,7 @@ declare void @_ZN6icu_757UMemorydlEPv(ptr noundef) local_unnamed_addr #5 declare void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 ; Function Attrs: mustprogress uwtable -define ptr @umsg_clone_75(ptr noundef %fmt, ptr noundef %status) local_unnamed_addr #1 { +define noundef ptr @umsg_clone_75(ptr noundef %fmt, ptr noundef %status) local_unnamed_addr #1 { entry: %cmp = icmp eq ptr %status, null br i1 %cmp, label %return, label %lor.lhs.false @@ -1237,7 +1237,7 @@ lpad: ; preds = %if.end8 declare void @_ZN6icu_7513UnicodeStringC1EPKDsi(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i32 noundef) unnamed_addr #4 ; Function Attrs: mustprogress uwtable -define i32 @umsg_toPattern_75(ptr noundef %fmt, ptr noundef %result, i32 noundef %resultLength, ptr noundef %status) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { +define noundef i32 @umsg_toPattern_75(ptr noundef %fmt, ptr noundef %result, i32 noundef %resultLength, ptr noundef %status) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { entry: %res = alloca %"class.icu_75::UnicodeString", align 8 %agg.tmp = alloca %"class.icu_75::Char16Ptr", align 8 @@ -1322,7 +1322,7 @@ declare noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeStri declare noundef i32 @_ZNK6icu_7513UnicodeString7extractENS_9Char16PtrEiR10UErrorCode(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 ; Function Attrs: mustprogress uwtable -define i32 @umsg_format_75(ptr noundef %fmt, ptr noundef %result, i32 noundef %resultLength, ptr noundef %status, ...) local_unnamed_addr #1 { +define noundef i32 @umsg_format_75(ptr noundef %fmt, ptr noundef %result, i32 noundef %resultLength, ptr noundef %status, ...) local_unnamed_addr #1 { entry: %ap = alloca [1 x %struct.__va_list_tag], align 16 call void @llvm.va_start(ptr nonnull %ap) @@ -1414,8 +1414,8 @@ if.then10: ; preds = %if.end8 if.end12: ; preds = %if.then10, %if.end8 %patternLength.addr.0 = phi i32 [ %call11, %if.then10 ], [ %patternLength, %if.end8 ] - %cmp1339 = icmp sgt i32 %patternLength.addr.0, 0 - br i1 %cmp1339, label %for.body.preheader, label %if.end64 + %cmp1341 = icmp sgt i32 %patternLength.addr.0, 0 + br i1 %cmp1341, label %for.body.preheader, label %if.end64 for.body.preheader: ; preds = %if.end12 %wide.trip.count = zext nneg i32 %patternLength.addr.0 to i64 @@ -1423,12 +1423,12 @@ for.body.preheader: ; preds = %if.end12 for.body: ; preds = %for.body.preheader, %for.inc %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.inc ] - %len.042 = phi i32 [ 0, %for.body.preheader ], [ %len.3, %for.inc ] - %braceCount.041 = phi i32 [ 0, %for.body.preheader ], [ %braceCount.1, %for.inc ] - %state.040 = phi i32 [ 0, %for.body.preheader ], [ %state.1, %for.inc ] + %len.044 = phi i32 [ 0, %for.body.preheader ], [ %len.3, %for.inc ] + %braceCount.043 = phi i32 [ 0, %for.body.preheader ], [ %braceCount.1, %for.inc ] + %state.042 = phi i32 [ 0, %for.body.preheader ], [ %state.1, %for.inc ] %arrayidx = getelementptr inbounds i16, ptr %pattern, i64 %indvars.iv %1 = load i16, ptr %arrayidx, align 2 - switch i32 %state.040, label %sw.epilog42 [ + switch i32 %state.042, label %default.unreachable48 [ i32 0, label %sw.bb i32 1, label %sw.bb16 i32 2, label %sw.bb28 @@ -1445,7 +1445,7 @@ sw.bb14: ; preds = %sw.bb br label %sw.epilog42 sw.bb15: ; preds = %sw.bb - %inc = add nsw i32 %braceCount.041, 1 + %inc = add nsw i32 %braceCount.043, 1 br label %sw.epilog42 sw.bb16: ; preds = %for.body @@ -1459,17 +1459,17 @@ sw.bb19: ; preds = %sw.bb16, %sw.bb16 br label %sw.epilog42 sw.default: ; preds = %sw.bb16 - %cmp20 = icmp slt i32 %len.042, %destCapacity + %cmp20 = icmp slt i32 %len.044, %destCapacity br i1 %cmp20, label %if.then21, label %if.end26 if.then21: ; preds = %sw.default - %idxprom23 = sext i32 %len.042 to i64 + %idxprom23 = sext i32 %len.044 to i64 %arrayidx24 = getelementptr inbounds i16, ptr %dest, i64 %idxprom23 store i16 39, ptr %arrayidx24, align 2 br label %if.end26 if.end26: ; preds = %sw.default, %if.then21 - %len.1 = add nsw i32 %len.042, 1 + %len.1 = add nsw i32 %len.044, 1 br label %sw.epilog42 sw.bb28: ; preds = %for.body @@ -1484,19 +1484,22 @@ sw.bb32: ; preds = %for.body ] sw.bb34: ; preds = %sw.bb32 - %inc35 = add nsw i32 %braceCount.041, 1 + %inc35 = add nsw i32 %braceCount.043, 1 br label %sw.epilog42 sw.bb36: ; preds = %sw.bb32 - %dec = add nsw i32 %braceCount.041, -1 + %dec = add nsw i32 %braceCount.043, -1 %cmp37 = icmp eq i32 %dec, 0 %spec.select37 = select i1 %cmp37, i32 0, i32 3 br label %sw.epilog42 -sw.epilog42: ; preds = %sw.bb36, %sw.bb28, %sw.bb16, %for.body, %sw.bb32, %sw.bb34, %sw.bb19, %if.end26, %sw.bb, %sw.bb14, %sw.bb15 - %state.1 = phi i32 [ %state.040, %for.body ], [ 3, %sw.bb32 ], [ 3, %sw.bb34 ], [ 0, %if.end26 ], [ 2, %sw.bb19 ], [ 0, %sw.bb ], [ 3, %sw.bb15 ], [ 1, %sw.bb14 ], [ 0, %sw.bb16 ], [ %spec.select, %sw.bb28 ], [ %spec.select37, %sw.bb36 ] - %braceCount.1 = phi i32 [ %braceCount.041, %for.body ], [ %braceCount.041, %sw.bb32 ], [ %inc35, %sw.bb34 ], [ %braceCount.041, %if.end26 ], [ %braceCount.041, %sw.bb19 ], [ %braceCount.041, %sw.bb ], [ %inc, %sw.bb15 ], [ %braceCount.041, %sw.bb14 ], [ %braceCount.041, %sw.bb16 ], [ %braceCount.041, %sw.bb28 ], [ %dec, %sw.bb36 ] - %len.2 = phi i32 [ %len.042, %for.body ], [ %len.042, %sw.bb32 ], [ %len.042, %sw.bb34 ], [ %len.1, %if.end26 ], [ %len.042, %sw.bb19 ], [ %len.042, %sw.bb ], [ %len.042, %sw.bb15 ], [ %len.042, %sw.bb14 ], [ %len.042, %sw.bb16 ], [ %len.042, %sw.bb28 ], [ %len.042, %sw.bb36 ] +default.unreachable48: ; preds = %for.body + unreachable + +sw.epilog42: ; preds = %sw.bb36, %sw.bb28, %sw.bb16, %sw.bb32, %sw.bb34, %sw.bb19, %if.end26, %sw.bb, %sw.bb14, %sw.bb15 + %state.1 = phi i32 [ 3, %sw.bb32 ], [ 3, %sw.bb34 ], [ 0, %if.end26 ], [ 2, %sw.bb19 ], [ 0, %sw.bb ], [ 3, %sw.bb15 ], [ 1, %sw.bb14 ], [ 0, %sw.bb16 ], [ %spec.select, %sw.bb28 ], [ %spec.select37, %sw.bb36 ] + %braceCount.1 = phi i32 [ %braceCount.043, %sw.bb32 ], [ %inc35, %sw.bb34 ], [ %braceCount.043, %if.end26 ], [ %braceCount.043, %sw.bb19 ], [ %braceCount.043, %sw.bb ], [ %inc, %sw.bb15 ], [ %braceCount.043, %sw.bb14 ], [ %braceCount.043, %sw.bb16 ], [ %braceCount.043, %sw.bb28 ], [ %dec, %sw.bb36 ] + %len.2 = phi i32 [ %len.044, %sw.bb32 ], [ %len.044, %sw.bb34 ], [ %len.1, %if.end26 ], [ %len.044, %sw.bb19 ], [ %len.044, %sw.bb ], [ %len.044, %sw.bb15 ], [ %len.044, %sw.bb14 ], [ %len.044, %sw.bb16 ], [ %len.044, %sw.bb28 ], [ %len.044, %sw.bb36 ] %cmp43 = icmp slt i32 %len.2, %destCapacity br i1 %cmp43, label %if.then44, label %for.inc diff --git a/bench/icu/optimized/umutablecptrie.ll b/bench/icu/optimized/umutablecptrie.ll index 11ebb57fba4..eb72b285dc2 100644 --- a/bench/icu/optimized/umutablecptrie.ll +++ b/bench/icu/optimized/umutablecptrie.ll @@ -2990,15 +2990,15 @@ if.else.i186.i.i.i: ; preds = %do.body102.i.i.i if.else6.i189.i.i.i: ; preds = %if.else.i186.i.i.i %cmp7.i190.i.i.i = icmp ult i32 %sub.i184.i.i.i, 131071 %..i = select i1 %cmp7.i190.i.i.i, i32 17, i32 21 - %.282.i = select i1 %cmp7.i190.i.i.i, i32 131071, i32 2097151 - %.283.i = select i1 %cmp7.i190.i.i.i, i32 200003, i32 1500007 + %.283.i = select i1 %cmp7.i190.i.i.i, i32 131071, i32 2097151 + %.284.i = select i1 %cmp7.i190.i.i.i, i32 200003, i32 1500007 br label %if.end15.i193.i.i.i if.end15.i193.i.i.i: ; preds = %if.else6.i189.i.i.i, %if.else.i186.i.i.i, %do.body102.i.i.i - %.sink281.i = phi i32 [ 12, %do.body102.i.i.i ], [ 15, %if.else.i186.i.i.i ], [ %..i, %if.else6.i189.i.i.i ] - %.sink.i = phi i32 [ 4095, %do.body102.i.i.i ], [ 32767, %if.else.i186.i.i.i ], [ %.282.i, %if.else6.i189.i.i.i ] - %newLength.0.i194.i.i.i = phi i32 [ 6007, %do.body102.i.i.i ], [ 50021, %if.else.i186.i.i.i ], [ %.283.i, %if.else6.i189.i.i.i ] - store i32 %.sink281.i, ptr %shift.i.i175.i.i, align 8 + %.sink282.i = phi i32 [ 12, %do.body102.i.i.i ], [ 15, %if.else.i186.i.i.i ], [ %..i, %if.else6.i189.i.i.i ] + %.sink.i = phi i32 [ 4095, %do.body102.i.i.i ], [ 32767, %if.else.i186.i.i.i ], [ %.283.i, %if.else6.i189.i.i.i ] + %newLength.0.i194.i.i.i = phi i32 [ 6007, %do.body102.i.i.i ], [ 50021, %if.else.i186.i.i.i ], [ %.284.i, %if.else6.i189.i.i.i ] + store i32 %.sink282.i, ptr %shift.i.i175.i.i, align 8 store i32 %.sink.i, ptr %mask.i.i176.i.i, align 4 %cmp16.i196.i.i.i = icmp ugt i32 %newLength.0.i194.i.i.i, %135 br i1 %cmp16.i196.i.i.i, label %if.then17.i206.i.i.i, label %if.end15.if.end24_crit_edge.i198.i.i.i @@ -3909,7 +3909,7 @@ if.else103.i: ; preds = %if.else.i %303 = load i32, ptr %dataLength104.i, align 4 %add105.i = add nsw i32 %303, %mul.i %and106.i = and i32 %add105.i, 3 - switch i32 %and106.i, label %if.else103.unreachabledefault.i [ + switch i32 %and106.i, label %default.unreachable [ i32 0, label %land.lhs.true108.i i32 3, label %land.lhs.true127.i i32 2, label %while.end.i @@ -3956,7 +3956,7 @@ if.then135.i: ; preds = %land.lhs.true127.i store i32 %315, ptr %312, align 4 br label %if.end165.i -if.else103.unreachabledefault.i: ; preds = %if.else103.i +default.unreachable: ; preds = %if.else103.i unreachable while.body.lr.ph.i: ; preds = %if.else103.i.while.body.lr.ph.i_crit_edge, %land.lhs.true127.i, %land.lhs.true116.i, %land.lhs.true108.i @@ -4113,7 +4113,7 @@ if.end207.i: ; preds = %for.body.i, %do.bod %idx.ext209.i = sext i32 %mul152.i to i64 %add.ptr210.i = getelementptr inbounds i8, ptr %add.ptr.i, i64 %idx.ext209.i %336 = load ptr, ptr %data.i50.i.i, align 8 - switch i32 %valueWidth, label %sw.epilog245.i [ + switch i32 %valueWidth, label %default.unreachable.i [ i32 0, label %sw.bb212.i i32 1, label %sw.bb224.i i32 2, label %sw.bb231.i @@ -4162,7 +4162,10 @@ for.body237.i: ; preds = %sw.bb231.i, %for.bo %cmp236.i = icmp ugt i32 %i233.0197.i, 1 br i1 %cmp236.i, label %for.body237.i, label %sw.epilog245.i, !llvm.loop !58 -sw.epilog245.i: ; preds = %for.body237.i, %for.body218.i, %sw.bb231.i, %sw.bb224.i, %sw.bb212.i, %if.end207.i +default.unreachable.i: ; preds = %if.end207.i + unreachable + +sw.epilog245.i: ; preds = %for.body237.i, %for.body218.i, %sw.bb231.i, %sw.bb224.i, %sw.bb212.i store i32 -1, ptr %dataNullOffset.i, align 8 store i32 -1, ptr %index3NullOffset.i, align 4 store i32 0, ptr %dataLength178.i, align 4 diff --git a/bench/icu/optimized/uniset_props.ll b/bench/icu/optimized/uniset_props.ll index 454b68f73c1..5cfa0860069 100644 --- a/bench/icu/optimized/uniset_props.ll +++ b/bench/icu/optimized/uniset_props.ll @@ -875,13 +875,13 @@ while.cond.preheader: ; preds = %invoke.cont br label %land.rhs land.rhs: ; preds = %while.cond.preheader, %while.cond.backedge - %invert.0349 = phi i8 [ 0, %while.cond.preheader ], [ %invert.0.be, %while.cond.backedge ] - %op.0348 = phi i16 [ 0, %while.cond.preheader ], [ %op.0.be, %while.cond.backedge ] - %lastChar.0347 = phi i32 [ 0, %while.cond.preheader ], [ %lastChar.0.be, %while.cond.backedge ] - %mode.0346 = phi i8 [ 0, %while.cond.preheader ], [ %mode.0.be, %while.cond.backedge ] - %lastItem.0345 = phi i8 [ 0, %while.cond.preheader ], [ %lastItem.0.be, %while.cond.backedge ] - %usePat.0344 = phi i8 [ 0, %while.cond.preheader ], [ %usePat.0.be, %while.cond.backedge ] - %scratch.sroa.0.0343 = phi ptr [ null, %while.cond.preheader ], [ %scratch.sroa.0.0.be, %while.cond.backedge ] + %invert.0347 = phi i8 [ 0, %while.cond.preheader ], [ %invert.0.be, %while.cond.backedge ] + %op.0346 = phi i16 [ 0, %while.cond.preheader ], [ %op.0.be, %while.cond.backedge ] + %lastChar.0345 = phi i32 [ 0, %while.cond.preheader ], [ %lastChar.0.be, %while.cond.backedge ] + %mode.0344 = phi i8 [ 0, %while.cond.preheader ], [ %mode.0.be, %while.cond.backedge ] + %lastItem.0343 = phi i8 [ 0, %while.cond.preheader ], [ %lastItem.0.be, %while.cond.backedge ] + %usePat.0342 = phi i8 [ 0, %while.cond.preheader ], [ %usePat.0.be, %while.cond.backedge ] + %scratch.sroa.0.0341 = phi ptr [ null, %while.cond.preheader ], [ %scratch.sroa.0.0.be, %while.cond.backedge ] %call14 = invoke noundef signext i8 @_ZNK6icu_7521RuleCharacterIterator5atEndEv(ptr noundef nonnull align 8 dereferenceable(36) %chars) to label %invoke.cont13 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit @@ -904,8 +904,8 @@ lpad9.loopexit: ; preds = %while.cond228, %whi br label %ehcleanup lpad9.loopexit.split-lp.loopexit.loopexit: ; preds = %land.rhs, %while.body, %if.else, %invoke.cont20, %if.then33, %invoke.cont36, %invoke.cont38, %invoke.cont50, %invoke.cont52, %if.else63, %if.then69, %if.end90, %invoke.cont91, %sw.bb, %sw.bb115, %invoke.cont116, %sw.bb123, %sw.bb133, %sw.bb136, %sw.bb139, %if.then221, %invoke.cont222, %if.end250, %invoke.cont253, %sw.bb258, %invoke.cont259, %if.then276, %if.end308, %invoke.cont309, %invoke.cont312, %if.else315, %invoke.cont316, %if.else35, %if.then49, %if.then99, %if.then.i193, %invoke.cont251, %invoke.cont255, %invoke.cont311 - %scratch.sroa.0.1.ph.ph.ph = phi ptr [ %scratch.sroa.0.0343, %land.rhs ], [ %scratch.sroa.0.0343, %while.body ], [ %scratch.sroa.0.0343, %if.else ], [ %scratch.sroa.0.0343, %invoke.cont20 ], [ %scratch.sroa.0.0343, %if.else35 ], [ %scratch.sroa.0.0343, %invoke.cont36 ], [ %scratch.sroa.0.0343, %invoke.cont38 ], [ %scratch.sroa.0.0343, %if.then49 ], [ %scratch.sroa.0.0343, %invoke.cont50 ], [ %scratch.sroa.0.0343, %invoke.cont52 ], [ %scratch.sroa.0.0343, %if.else63 ], [ %scratch.sroa.0.0343, %if.then33 ], [ %scratch.sroa.0.0343, %if.then69 ], [ %scratch.sroa.0.0343, %if.end90 ], [ %scratch.sroa.0.0343, %invoke.cont91 ], [ %scratch.sroa.0.0343, %if.then99 ], [ %scratch.sroa.0.4, %sw.bb ], [ %scratch.sroa.0.4, %sw.bb115 ], [ %scratch.sroa.0.4, %invoke.cont116 ], [ %scratch.sroa.0.4, %sw.bb123 ], [ %scratch.sroa.0.4, %sw.bb133 ], [ %scratch.sroa.0.4, %sw.bb136 ], [ %scratch.sroa.0.4, %sw.bb139 ], [ %scratch.sroa.0.0343, %if.then221 ], [ %scratch.sroa.0.0343, %invoke.cont222 ], [ %scratch.sroa.0.0343, %if.then.i193 ], [ %scratch.sroa.0.0343, %if.end250 ], [ %scratch.sroa.0.0343, %invoke.cont251 ], [ %scratch.sroa.0.0343, %invoke.cont253 ], [ %scratch.sroa.0.0343, %invoke.cont255 ], [ %scratch.sroa.0.0343, %sw.bb258 ], [ %scratch.sroa.0.0343, %invoke.cont259 ], [ %scratch.sroa.0.0343, %if.then276 ], [ %scratch.sroa.0.0343, %if.else315 ], [ %scratch.sroa.0.0343, %invoke.cont316 ], [ %scratch.sroa.0.0343, %if.end308 ], [ %scratch.sroa.0.0343, %invoke.cont309 ], [ %scratch.sroa.0.0343, %invoke.cont311 ], [ %scratch.sroa.0.0343, %invoke.cont312 ] - %lpad.loopexit409 = landingpad { ptr, i32 } + %scratch.sroa.0.1.ph.ph.ph = phi ptr [ %scratch.sroa.0.0341, %land.rhs ], [ %scratch.sroa.0.0341, %while.body ], [ %scratch.sroa.0.0341, %if.else ], [ %scratch.sroa.0.0341, %invoke.cont20 ], [ %scratch.sroa.0.0341, %if.else35 ], [ %scratch.sroa.0.0341, %invoke.cont36 ], [ %scratch.sroa.0.0341, %invoke.cont38 ], [ %scratch.sroa.0.0341, %if.then49 ], [ %scratch.sroa.0.0341, %invoke.cont50 ], [ %scratch.sroa.0.0341, %invoke.cont52 ], [ %scratch.sroa.0.0341, %if.else63 ], [ %scratch.sroa.0.0341, %if.then33 ], [ %scratch.sroa.0.0341, %if.then69 ], [ %scratch.sroa.0.0341, %if.end90 ], [ %scratch.sroa.0.0341, %invoke.cont91 ], [ %scratch.sroa.0.0341, %if.then99 ], [ %scratch.sroa.0.4, %sw.bb ], [ %scratch.sroa.0.4, %sw.bb115 ], [ %scratch.sroa.0.4, %invoke.cont116 ], [ %scratch.sroa.0.4, %sw.bb123 ], [ %scratch.sroa.0.4, %sw.bb133 ], [ %scratch.sroa.0.4, %sw.bb136 ], [ %scratch.sroa.0.4, %sw.bb139 ], [ %scratch.sroa.0.0341, %if.then221 ], [ %scratch.sroa.0.0341, %invoke.cont222 ], [ %scratch.sroa.0.0341, %if.then.i193 ], [ %scratch.sroa.0.0341, %if.end250 ], [ %scratch.sroa.0.0341, %invoke.cont251 ], [ %scratch.sroa.0.0341, %invoke.cont253 ], [ %scratch.sroa.0.0341, %invoke.cont255 ], [ %scratch.sroa.0.0341, %sw.bb258 ], [ %scratch.sroa.0.0341, %invoke.cont259 ], [ %scratch.sroa.0.0341, %if.then276 ], [ %scratch.sroa.0.0341, %if.else315 ], [ %scratch.sroa.0.0341, %invoke.cont316 ], [ %scratch.sroa.0.0341, %if.end308 ], [ %scratch.sroa.0.0341, %invoke.cont309 ], [ %scratch.sroa.0.0341, %invoke.cont311 ], [ %scratch.sroa.0.0341, %invoke.cont312 ] + %lpad.loopexit406 = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -941,7 +941,7 @@ if.end27: ; preds = %invoke.cont21 br i1 %or.cond, label %if.else67, label %if.then30 if.then30: ; preds = %if.end27 - %cmp32 = icmp eq i8 %mode.0346, 1 + %cmp32 = icmp eq i8 %mode.0344, 1 br i1 %cmp32, label %if.then33, label %if.else35 if.then33: ; preds = %if.then30 @@ -996,7 +996,7 @@ invoke.cont53: ; preds = %invoke.cont52 br i1 %cmp.i174, label %if.end60, label %cleanup if.end60: ; preds = %invoke.cont53, %if.end45 - %invert.1 = phi i8 [ %invert.0349, %if.end45 ], [ 1, %invoke.cont53 ] + %invert.1 = phi i8 [ %invert.0347, %if.end45 ], [ 1, %invoke.cont53 ] %c.0 = phi i32 [ %call40, %if.end45 ], [ %call54, %invoke.cont53 ] %cmp61 = icmp eq i32 %c.0, 45 br i1 %cmp61, label %if.end147.thread, label %if.else63 @@ -1031,30 +1031,30 @@ dynamic_cast.notnull: ; preds = %invoke.cont70 if.then83: ; preds = %invoke.cont16, %if.then33, %dynamic_cast.notnull %nested.0 = phi ptr [ null, %invoke.cont16 ], [ null, %if.then33 ], [ %8, %dynamic_cast.notnull ] %setMode.0 = phi i32 [ 2, %invoke.cont16 ], [ 1, %if.then33 ], [ 3, %dynamic_cast.notnull ] - %cmp85 = icmp eq i8 %lastItem.0345, 1 + %cmp85 = icmp eq i8 %lastItem.0343, 1 br i1 %cmp85, label %if.then86, label %if.end94 if.then86: ; preds = %if.then83 - %cmp88.not = icmp eq i16 %op.0348, 0 + %cmp88.not = icmp eq i16 %op.0346, 0 br i1 %cmp88.not, label %if.end90, label %cleanup.sink.split if.end90: ; preds = %if.then86 - %call92 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0347, i32 noundef %lastChar.0347) + %call92 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0345, i32 noundef %lastChar.0345) to label %invoke.cont91 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit invoke.cont91: ; preds = %if.end90 - invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0347, i8 noundef signext 0) + invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0345, i8 noundef signext 0) to label %if.end102 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit if.end94: ; preds = %if.then83 - switch i16 %op.0348, label %if.end102 [ + switch i16 %op.0346, label %if.end102 [ i16 45, label %if.then99 i16 38, label %if.then99 ] if.then99: ; preds = %if.end94, %if.end94 call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %srcChar.addr.i176) - store i16 %op.0348, ptr %srcChar.addr.i176, align 2 + store i16 %op.0346, ptr %srcChar.addr.i176, align 2 %call.i177 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString8doAppendEPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, ptr noundef nonnull %srcChar.addr.i176, i32 noundef 0, i32 noundef 1) to label %_ZN6icu_7513UnicodeString6appendEDs.exit178 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit @@ -1063,12 +1063,12 @@ _ZN6icu_7513UnicodeString6appendEDs.exit178: ; preds = %if.then99 br label %if.end102 if.end102: ; preds = %invoke.cont91, %_ZN6icu_7513UnicodeString6appendEDs.exit178, %if.end94 - %op.1237 = phi i16 [ %op.0348, %_ZN6icu_7513UnicodeString6appendEDs.exit178 ], [ %op.0348, %if.end94 ], [ 0, %invoke.cont91 ] + %op.1237 = phi i16 [ %op.0346, %_ZN6icu_7513UnicodeString6appendEDs.exit178 ], [ %op.0346, %if.end94 ], [ 0, %invoke.cont91 ] %cmp103 = icmp eq ptr %nested.0, null br i1 %cmp103, label %if.then104, label %if.end112 if.then104: ; preds = %if.end102 - %cmp.i179 = icmp eq ptr %scratch.sroa.0.0343, null + %cmp.i179 = icmp eq ptr %scratch.sroa.0.0341, null br i1 %cmp.i179, label %if.then.i, label %if.end112 if.then.i: ; preds = %if.then104 @@ -1091,9 +1091,9 @@ cleanup.thread: ; preds = %if.then.i br label %_ZN6icu_7512_GLOBAL__N_117UnicodeSetPointerD2Ev.exit if.end112: ; preds = %new.notnull.i, %if.then104, %if.end102 - %scratch.sroa.0.4 = phi ptr [ %scratch.sroa.0.0343, %if.end102 ], [ %scratch.sroa.0.0343, %if.then104 ], [ %call.i, %new.notnull.i ] - %nested.1 = phi ptr [ %nested.0, %if.end102 ], [ %scratch.sroa.0.0343, %if.then104 ], [ %call.i, %new.notnull.i ] - switch i32 %setMode.0, label %if.end112.unreachabledefault [ + %scratch.sroa.0.4 = phi ptr [ %scratch.sroa.0.0341, %if.end102 ], [ %scratch.sroa.0.0341, %if.then104 ], [ %call.i, %new.notnull.i ] + %nested.1 = phi ptr [ %nested.0, %if.end102 ], [ %scratch.sroa.0.0341, %if.then104 ], [ %call.i, %new.notnull.i ] + switch i32 %setMode.0, label %default.unreachable394 [ i32 1, label %sw.bb i32 2, label %sw.bb115 i32 3, label %sw.bb123 @@ -1122,11 +1122,14 @@ sw.bb123: ; preds = %if.end112 %call125 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK6icu_7510UnicodeSet10_toPatternERNS_13UnicodeStringEa(ptr noundef nonnull align 8 dereferenceable(200) %nested.1, ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i8 noundef signext 0) to label %sw.epilog unwind label %lpad9.loopexit.split-lp.loopexit.loopexit -if.end112.unreachabledefault: ; preds = %if.end112 +default.unreachable394: ; preds = %if.end112 + unreachable + +default.unreachable: ; preds = %if.end299 unreachable sw.epilog: ; preds = %sw.bb123, %invoke.cont117, %sw.bb - %cmp127 = icmp eq i8 %mode.0346, 0 + %cmp127 = icmp eq i8 %mode.0344, 0 br i1 %cmp127, label %if.then128, label %if.end131 if.then128: ; preds = %sw.epilog @@ -1152,19 +1155,19 @@ sw.bb139: ; preds = %if.end131 %call141 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet6addAllERKS0_(ptr noundef nonnull align 8 dereferenceable(200) %this, ptr noundef nonnull align 8 dereferenceable(200) %nested.1) to label %while.cond.backedge unwind label %lpad9.loopexit.split-lp.loopexit.loopexit -while.cond.backedge: ; preds = %if.end299, %sw.bb301, %invoke.cont312, %invoke.cont316, %sw.bb320, %if.end131, %sw.bb133, %sw.bb136, %sw.bb139, %if.else63, %if.then178, %sw.bb204, %_ZN6icu_7513UnicodeString6appendEDs.exit203 - %scratch.sroa.0.0.be = phi ptr [ %scratch.sroa.0.0343, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %scratch.sroa.0.0343, %sw.bb204 ], [ %scratch.sroa.0.0343, %if.then178 ], [ %scratch.sroa.0.0343, %if.else63 ], [ %scratch.sroa.0.4, %sw.bb139 ], [ %scratch.sroa.0.4, %sw.bb136 ], [ %scratch.sroa.0.4, %sw.bb133 ], [ %scratch.sroa.0.4, %if.end131 ], [ %scratch.sroa.0.0343, %sw.bb320 ], [ %scratch.sroa.0.0343, %invoke.cont316 ], [ %scratch.sroa.0.0343, %invoke.cont312 ], [ %scratch.sroa.0.0343, %sw.bb301 ], [ %scratch.sroa.0.0343, %if.end299 ] - %usePat.0.be = phi i8 [ %usePat.0344, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %usePat.0344, %sw.bb204 ], [ %usePat.0344, %if.then178 ], [ %usePat.0344, %if.else63 ], [ 1, %sw.bb139 ], [ 1, %sw.bb136 ], [ 1, %sw.bb133 ], [ 1, %if.end131 ], [ %usePat.0344, %sw.bb320 ], [ %usePat.0344, %invoke.cont316 ], [ %usePat.0344, %invoke.cont312 ], [ %usePat.0344, %sw.bb301 ], [ %usePat.0344, %if.end299 ] - %lastItem.0.be = phi i8 [ 0, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ 2, %sw.bb204 ], [ %lastItem.0345, %if.then178 ], [ %lastItem.0345, %if.else63 ], [ 2, %sw.bb139 ], [ 2, %sw.bb136 ], [ 2, %sw.bb133 ], [ 2, %if.end131 ], [ 1, %sw.bb320 ], [ 1, %invoke.cont316 ], [ 0, %invoke.cont312 ], [ 1, %sw.bb301 ], [ %lastItem.0345, %if.end299 ] - %mode.0.be = phi i8 [ %mode.0346, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %mode.0346, %sw.bb204 ], [ %mode.0346, %if.then178 ], [ 1, %if.else63 ], [ %mode.0346, %sw.bb139 ], [ %mode.0346, %sw.bb136 ], [ %mode.0346, %sw.bb133 ], [ %mode.0346, %if.end131 ], [ %mode.1.ph248256, %sw.bb320 ], [ %mode.1.ph248256, %invoke.cont316 ], [ %mode.1.ph248256, %invoke.cont312 ], [ %mode.1.ph248256, %sw.bb301 ], [ %mode.1.ph248256, %if.end299 ] - %lastChar.0.be = phi i32 [ %lastChar.0347, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %lastChar.0347, %sw.bb204 ], [ %lastChar.0347, %if.then178 ], [ %lastChar.0347, %if.else63 ], [ %lastChar.0347, %sw.bb139 ], [ %lastChar.0347, %sw.bb136 ], [ %lastChar.0347, %sw.bb133 ], [ %lastChar.0347, %if.end131 ], [ %c.2, %sw.bb320 ], [ %c.2, %invoke.cont316 ], [ %lastChar.0347, %invoke.cont312 ], [ %c.2, %sw.bb301 ], [ %lastChar.0347, %if.end299 ] - %op.0.be = phi i16 [ 0, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ 38, %sw.bb204 ], [ 45, %if.then178 ], [ %op.0348, %if.else63 ], [ 0, %sw.bb139 ], [ 0, %sw.bb136 ], [ 0, %sw.bb133 ], [ 0, %if.end131 ], [ 0, %sw.bb320 ], [ %op.0348, %invoke.cont316 ], [ 0, %invoke.cont312 ], [ %op.0348, %sw.bb301 ], [ %op.0348, %if.end299 ] - %invert.0.be = phi i8 [ %invert.0349, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %invert.0349, %sw.bb204 ], [ %invert.0349, %if.then178 ], [ %invert.1, %if.else63 ], [ %invert.0349, %sw.bb139 ], [ %invert.0349, %sw.bb136 ], [ %invert.0349, %sw.bb133 ], [ %invert.0349, %if.end131 ], [ %invert.2.ph249255, %sw.bb320 ], [ %invert.2.ph249255, %invoke.cont316 ], [ %invert.2.ph249255, %invoke.cont312 ], [ %invert.2.ph249255, %sw.bb301 ], [ %invert.2.ph249255, %if.end299 ] +while.cond.backedge: ; preds = %if.end299, %invoke.cont312, %invoke.cont316, %sw.bb320, %if.end131, %sw.bb133, %sw.bb136, %sw.bb139, %if.else63, %if.then178, %sw.bb204, %_ZN6icu_7513UnicodeString6appendEDs.exit203 + %scratch.sroa.0.0.be = phi ptr [ %scratch.sroa.0.0341, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %scratch.sroa.0.0341, %sw.bb204 ], [ %scratch.sroa.0.0341, %if.then178 ], [ %scratch.sroa.0.0341, %if.else63 ], [ %scratch.sroa.0.4, %sw.bb139 ], [ %scratch.sroa.0.4, %sw.bb136 ], [ %scratch.sroa.0.4, %sw.bb133 ], [ %scratch.sroa.0.4, %if.end131 ], [ %scratch.sroa.0.0341, %sw.bb320 ], [ %scratch.sroa.0.0341, %invoke.cont316 ], [ %scratch.sroa.0.0341, %invoke.cont312 ], [ %scratch.sroa.0.0341, %if.end299 ] + %usePat.0.be = phi i8 [ %usePat.0342, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %usePat.0342, %sw.bb204 ], [ %usePat.0342, %if.then178 ], [ %usePat.0342, %if.else63 ], [ 1, %sw.bb139 ], [ 1, %sw.bb136 ], [ 1, %sw.bb133 ], [ 1, %if.end131 ], [ %usePat.0342, %sw.bb320 ], [ %usePat.0342, %invoke.cont316 ], [ %usePat.0342, %invoke.cont312 ], [ %usePat.0342, %if.end299 ] + %lastItem.0.be = phi i8 [ 0, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ 2, %sw.bb204 ], [ %lastItem.0343, %if.then178 ], [ %lastItem.0343, %if.else63 ], [ 2, %sw.bb139 ], [ 2, %sw.bb136 ], [ 2, %sw.bb133 ], [ 2, %if.end131 ], [ 1, %sw.bb320 ], [ 1, %invoke.cont316 ], [ 0, %invoke.cont312 ], [ 1, %if.end299 ] + %mode.0.be = phi i8 [ %mode.0344, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %mode.0344, %sw.bb204 ], [ %mode.0344, %if.then178 ], [ 1, %if.else63 ], [ %mode.0344, %sw.bb139 ], [ %mode.0344, %sw.bb136 ], [ %mode.0344, %sw.bb133 ], [ %mode.0344, %if.end131 ], [ %mode.1.ph248256, %sw.bb320 ], [ %mode.1.ph248256, %invoke.cont316 ], [ %mode.1.ph248256, %invoke.cont312 ], [ %mode.1.ph248256, %if.end299 ] + %lastChar.0.be = phi i32 [ %lastChar.0345, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %lastChar.0345, %sw.bb204 ], [ %lastChar.0345, %if.then178 ], [ %lastChar.0345, %if.else63 ], [ %lastChar.0345, %sw.bb139 ], [ %lastChar.0345, %sw.bb136 ], [ %lastChar.0345, %sw.bb133 ], [ %lastChar.0345, %if.end131 ], [ %c.2, %sw.bb320 ], [ %c.2, %invoke.cont316 ], [ %lastChar.0345, %invoke.cont312 ], [ %c.2, %if.end299 ] + %op.0.be = phi i16 [ 0, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ 38, %sw.bb204 ], [ 45, %if.then178 ], [ %op.0346, %if.else63 ], [ 0, %sw.bb139 ], [ 0, %sw.bb136 ], [ 0, %sw.bb133 ], [ 0, %if.end131 ], [ 0, %sw.bb320 ], [ %op.0346, %invoke.cont316 ], [ 0, %invoke.cont312 ], [ %op.0346, %if.end299 ] + %invert.0.be = phi i8 [ %invert.0347, %_ZN6icu_7513UnicodeString6appendEDs.exit203 ], [ %invert.0347, %sw.bb204 ], [ %invert.0347, %if.then178 ], [ %invert.1, %if.else63 ], [ %invert.0347, %sw.bb139 ], [ %invert.0347, %sw.bb136 ], [ %invert.0347, %sw.bb133 ], [ %invert.0347, %if.end131 ], [ %invert.2.ph249255, %sw.bb320 ], [ %invert.2.ph249255, %invoke.cont316 ], [ %invert.2.ph249255, %invoke.cont312 ], [ %invert.2.ph249255, %if.end299 ] %cmp12.not = icmp eq i8 %mode.0.be, 2 br i1 %cmp12.not, label %if.end330.loopexit, label %land.rhs, !llvm.loop !6 if.end143: ; preds = %invoke.cont70, %if.else67 - %cmp145 = icmp eq i8 %mode.0346, 0 + %cmp145 = icmp eq i8 %mode.0344, 0 br i1 %cmp145, label %cleanup.sink.split, label %if.end147 if.end147: ; preds = %if.end143 @@ -1183,19 +1186,19 @@ if.then149: ; preds = %if.end147 ] sw.bb150: ; preds = %if.then149 - %cmp152 = icmp eq i8 %lastItem.0345, 1 + %cmp152 = icmp eq i8 %lastItem.0343, 1 br i1 %cmp152, label %if.then153, label %if.end157 if.then153: ; preds = %sw.bb150 - %call155 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0347, i32 noundef %lastChar.0347) + %call155 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0345, i32 noundef %lastChar.0345) to label %invoke.cont154 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp invoke.cont154: ; preds = %if.then153 - invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0347, i8 noundef signext 0) + invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0345, i8 noundef signext 0) to label %if.end157 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp if.end157: ; preds = %invoke.cont154, %sw.bb150 - switch i16 %op.0348, label %if.end172 [ + switch i16 %op.0346, label %if.end172 [ i16 45, label %if.then160 i16 38, label %cleanup.sink.split ] @@ -1225,11 +1228,11 @@ _ZN6icu_7513UnicodeString6appendEDs.exit189: ; preds = %if.end172 br label %if.end330.loopexit sw.bb175: ; preds = %if.then149 - %cmp177 = icmp eq i16 %op.0348, 0 + %cmp177 = icmp eq i16 %op.0346, 0 br i1 %cmp177, label %if.then178, label %cleanup.sink.split if.then178: ; preds = %sw.bb175 - %cmp180.not = icmp eq i8 %lastItem.0345, 0 + %cmp180.not = icmp eq i8 %lastItem.0343, 0 br i1 %cmp180.not, label %if.else183, label %while.cond.backedge if.else183: ; preds = %if.then178 @@ -1267,25 +1270,25 @@ lpad198: ; preds = %if.then196 br label %ehcleanup sw.bb204: ; preds = %if.then149 - %cmp206 = icmp eq i8 %lastItem.0345, 2 - %cmp209 = icmp eq i16 %op.0348, 0 + %cmp206 = icmp eq i8 %lastItem.0343, 2 + %cmp209 = icmp eq i16 %op.0346, 0 %or.cond4 = select i1 %cmp206, i1 %cmp209, i1 false br i1 %or.cond4, label %while.cond.backedge, label %cleanup.sink.split sw.bb214: ; preds = %if.then149 - %cmp216.not = icmp eq i16 %op.0348, 0 + %cmp216.not = icmp eq i16 %op.0346, 0 br i1 %cmp216.not, label %if.end218, label %cleanup.sink.split if.end218: ; preds = %sw.bb214 - %cmp220 = icmp eq i8 %lastItem.0345, 1 + %cmp220 = icmp eq i8 %lastItem.0343, 1 br i1 %cmp220, label %if.then221, label %if.end225 if.then221: ; preds = %if.end218 - %call223 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0347, i32 noundef %lastChar.0347) + %call223 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0345, i32 noundef %lastChar.0345) to label %invoke.cont222 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit invoke.cont222: ; preds = %if.then221 - invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0347, i8 noundef signext 0) + invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0345, i8 noundef signext 0) to label %if.end225 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit if.end225: ; preds = %invoke.cont222, %if.end218 @@ -1394,20 +1397,20 @@ if.then276: ; preds = %if.end266 to label %if.end299 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit if.end278: ; preds = %if.end266 - %cmp282 = icmp eq i16 %op.0348, 0 + %cmp282 = icmp eq i16 %op.0346, 0 %or.cond7 = select i1 %22, i1 %cmp282, i1 false br i1 %or.cond7, label %if.then283, label %cleanup.sink.split if.then283: ; preds = %if.end278 - %cmp285 = icmp eq i8 %lastItem.0345, 1 + %cmp285 = icmp eq i8 %lastItem.0343, 1 br i1 %cmp285, label %if.then286, label %if.end290 if.then286: ; preds = %if.then283 - %call288 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0347, i32 noundef %lastChar.0347) + %call288 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0345, i32 noundef %lastChar.0345) to label %invoke.cont287 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp invoke.cont287: ; preds = %if.then286 - invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0347, i8 noundef signext 0) + invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0345, i8 noundef signext 0) to label %if.end290 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp if.end290: ; preds = %invoke.cont287, %if.then283 @@ -1432,32 +1435,29 @@ _ZN6icu_7513UnicodeString6appendEDs.exit213: ; preds = %invoke.cont293 br label %if.end330.loopexit if.end299: ; preds = %if.end147.thread, %if.then276, %if.then149, %if.end147 - %mode.1.ph248256 = phi i8 [ %mode.0346, %if.end147 ], [ %mode.0346, %if.then149 ], [ %mode.0346, %if.then276 ], [ 1, %if.end147.thread ] - %invert.2.ph249255 = phi i8 [ %invert.0349, %if.end147 ], [ %invert.0349, %if.then149 ], [ %invert.0349, %if.then276 ], [ %invert.1, %if.end147.thread ] + %mode.1.ph248256 = phi i8 [ %mode.0344, %if.end147 ], [ %mode.0344, %if.then149 ], [ %mode.0344, %if.then276 ], [ 1, %if.end147.thread ] + %invert.2.ph249255 = phi i8 [ %invert.0347, %if.end147 ], [ %invert.0347, %if.then149 ], [ %invert.0347, %if.then276 ], [ %invert.1, %if.end147.thread ] %c.2 = phi i32 [ %call22, %if.end147 ], [ %call22, %if.then149 ], [ 36, %if.then276 ], [ 45, %if.end147.thread ] - switch i8 %lastItem.0345, label %while.cond.backedge [ - i8 0, label %sw.bb301 + switch i8 %lastItem.0343, label %default.unreachable [ + i8 0, label %while.cond.backedge i8 1, label %sw.bb302 i8 2, label %sw.bb320 ] -sw.bb301: ; preds = %if.end299 - br label %while.cond.backedge - sw.bb302: ; preds = %if.end299 - %cmp304 = icmp eq i16 %op.0348, 45 + %cmp304 = icmp eq i16 %op.0346, 45 br i1 %cmp304, label %if.then305, label %if.else315 if.then305: ; preds = %sw.bb302 - %cmp306.not = icmp slt i32 %lastChar.0347, %c.2 + %cmp306.not = icmp slt i32 %lastChar.0345, %c.2 br i1 %cmp306.not, label %if.end308, label %cleanup.sink.split if.end308: ; preds = %if.then305 - %call310 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0347, i32 noundef %c.2) + %call310 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0345, i32 noundef %c.2) to label %invoke.cont309 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit invoke.cont309: ; preds = %if.end308 - invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0347, i8 noundef signext 0) + invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0345, i8 noundef signext 0) to label %invoke.cont311 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit invoke.cont311: ; preds = %invoke.cont309 @@ -1472,27 +1472,27 @@ invoke.cont312: ; preds = %invoke.cont311 to label %while.cond.backedge unwind label %lpad9.loopexit.split-lp.loopexit.loopexit if.else315: ; preds = %sw.bb302 - %call317 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0347, i32 noundef %lastChar.0347) + %call317 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6icu_7510UnicodeSet3addEii(ptr noundef nonnull align 8 dereferenceable(200) %this, i32 noundef %lastChar.0345, i32 noundef %lastChar.0345) to label %invoke.cont316 unwind label %lpad9.loopexit.split-lp.loopexit.loopexit invoke.cont316: ; preds = %if.else315 - invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0347, i8 noundef signext 0) + invoke void @_ZN6icu_7510UnicodeSet12_appendToPatERNS_13UnicodeStringEia(ptr noundef nonnull align 8 dereferenceable(64) %patLocal, i32 noundef %lastChar.0345, i8 noundef signext 0) to label %while.cond.backedge unwind label %lpad9.loopexit.split-lp.loopexit.loopexit sw.bb320: ; preds = %if.end299 - %cmp322.not = icmp eq i16 %op.0348, 0 + %cmp322.not = icmp eq i16 %op.0346, 0 br i1 %cmp322.not, label %while.cond.backedge, label %cleanup.sink.split if.end330.loopexit: ; preds = %while.cond.backedge, %_ZN6icu_7513UnicodeString6appendEDs.exit189, %invoke.cont199, %_ZN6icu_7513UnicodeString6appendEDs.exit213 - %invert.0.be408 = phi i8 [ %invert.0349, %_ZN6icu_7513UnicodeString6appendEDs.exit213 ], [ %invert.0349, %invoke.cont199 ], [ %invert.0349, %_ZN6icu_7513UnicodeString6appendEDs.exit189 ], [ %invert.0.be, %while.cond.backedge ] - %usePat.0.be407 = phi i8 [ 1, %_ZN6icu_7513UnicodeString6appendEDs.exit213 ], [ %usePat.0344, %invoke.cont199 ], [ %usePat.0344, %_ZN6icu_7513UnicodeString6appendEDs.exit189 ], [ %usePat.0.be, %while.cond.backedge ] - %scratch.sroa.0.0.be406 = phi ptr [ %scratch.sroa.0.0343, %_ZN6icu_7513UnicodeString6appendEDs.exit213 ], [ %scratch.sroa.0.0343, %invoke.cont199 ], [ %scratch.sroa.0.0343, %_ZN6icu_7513UnicodeString6appendEDs.exit189 ], [ %scratch.sroa.0.0.be, %while.cond.backedge ] - %23 = icmp eq i8 %usePat.0.be407, 0 + %invert.0.be405 = phi i8 [ %invert.0347, %_ZN6icu_7513UnicodeString6appendEDs.exit213 ], [ %invert.0347, %invoke.cont199 ], [ %invert.0347, %_ZN6icu_7513UnicodeString6appendEDs.exit189 ], [ %invert.0.be, %while.cond.backedge ] + %usePat.0.be404 = phi i8 [ 1, %_ZN6icu_7513UnicodeString6appendEDs.exit213 ], [ %usePat.0342, %invoke.cont199 ], [ %usePat.0342, %_ZN6icu_7513UnicodeString6appendEDs.exit189 ], [ %usePat.0.be, %while.cond.backedge ] + %scratch.sroa.0.0.be403 = phi ptr [ %scratch.sroa.0.0341, %_ZN6icu_7513UnicodeString6appendEDs.exit213 ], [ %scratch.sroa.0.0341, %invoke.cont199 ], [ %scratch.sroa.0.0341, %_ZN6icu_7513UnicodeString6appendEDs.exit189 ], [ %scratch.sroa.0.0.be, %while.cond.backedge ] + %23 = icmp eq i8 %usePat.0.be404, 0 br label %if.end330 if.end330: ; preds = %if.end330.loopexit, %if.then128 - %invert.0298 = phi i8 [ %invert.0349, %if.then128 ], [ %invert.0.be408, %if.end330.loopexit ] - %scratch.sroa.0.5.ph = phi ptr [ %scratch.sroa.0.4, %if.then128 ], [ %scratch.sroa.0.0.be406, %if.end330.loopexit ] + %invert.0296 = phi i8 [ %invert.0347, %if.then128 ], [ %invert.0.be405, %if.end330.loopexit ] + %scratch.sroa.0.5.ph = phi ptr [ %scratch.sroa.0.4, %if.then128 ], [ %scratch.sroa.0.0.be403, %if.end330.loopexit ] %usePat.1.ph = phi i1 [ false, %if.then128 ], [ %23, %if.end330.loopexit ] invoke void @_ZN6icu_7521RuleCharacterIterator11skipIgnoredEi(ptr noundef nonnull align 8 dereferenceable(36) %chars, i32 noundef %spec.select) to label %invoke.cont331 unwind label %lpad9.loopexit.split-lp.loopexit.split-lp @@ -1525,7 +1525,7 @@ memptr.end: ; preds = %memptr.nonvirtual, to label %if.end338 unwind label %lpad9.loopexit.split-lp.loopexit.split-lp if.end338: ; preds = %memptr.end, %invoke.cont331 - %tobool339.not = icmp eq i8 %invert.0298, 0 + %tobool339.not = icmp eq i8 %invert.0296, 0 br i1 %tobool339.not, label %if.end345, label %if.then340 if.then340: ; preds = %if.end338 @@ -1566,12 +1566,12 @@ if.end353: ; preds = %if.then347, %if.els cleanup.sink.split: ; preds = %invoke.cont13, %sw.bb320, %if.then305, %sw.bb214, %if.then149, %sw.bb204, %sw.bb175, %if.end143, %if.then86, %dynamic_cast.notnull, %invoke.cont229, %if.end353, %if.end278, %if.end192, %if.end157 %.sink = phi i32 [ 65538, %if.end157 ], [ 65538, %if.end192 ], [ 65538, %if.end278 ], [ 7, %if.end353 ], [ 65538, %invoke.cont229 ], [ 65538, %dynamic_cast.notnull ], [ 65538, %if.then86 ], [ 65538, %if.end143 ], [ 65538, %sw.bb175 ], [ 65538, %sw.bb204 ], [ 65538, %if.then149 ], [ 65538, %sw.bb214 ], [ 65538, %if.then305 ], [ 65538, %sw.bb320 ], [ 65538, %invoke.cont13 ] - %scratch.sroa.0.6.ph = phi ptr [ %scratch.sroa.0.0343, %if.end157 ], [ %scratch.sroa.0.0343, %if.end192 ], [ %scratch.sroa.0.0343, %if.end278 ], [ %scratch.sroa.0.5.ph, %if.end353 ], [ %scratch.sroa.0.0343, %invoke.cont229 ], [ %scratch.sroa.0.0343, %dynamic_cast.notnull ], [ %scratch.sroa.0.0343, %if.then86 ], [ %scratch.sroa.0.0343, %if.end143 ], [ %scratch.sroa.0.0343, %sw.bb175 ], [ %scratch.sroa.0.0343, %sw.bb204 ], [ %scratch.sroa.0.0343, %if.then149 ], [ %scratch.sroa.0.0343, %sw.bb214 ], [ %scratch.sroa.0.0343, %if.then305 ], [ %scratch.sroa.0.0343, %sw.bb320 ], [ %scratch.sroa.0.0343, %invoke.cont13 ] + %scratch.sroa.0.6.ph = phi ptr [ %scratch.sroa.0.0341, %if.end157 ], [ %scratch.sroa.0.0341, %if.end192 ], [ %scratch.sroa.0.0341, %if.end278 ], [ %scratch.sroa.0.5.ph, %if.end353 ], [ %scratch.sroa.0.0341, %invoke.cont229 ], [ %scratch.sroa.0.0341, %dynamic_cast.notnull ], [ %scratch.sroa.0.0341, %if.then86 ], [ %scratch.sroa.0.0341, %if.end143 ], [ %scratch.sroa.0.0341, %sw.bb175 ], [ %scratch.sroa.0.0341, %sw.bb204 ], [ %scratch.sroa.0.0341, %if.then149 ], [ %scratch.sroa.0.0341, %sw.bb214 ], [ %scratch.sroa.0.0341, %if.then305 ], [ %scratch.sroa.0.0341, %sw.bb320 ], [ %scratch.sroa.0.0341, %invoke.cont13 ] store i32 %.sink, ptr %ec, align 4 br label %cleanup cleanup: ; preds = %invoke.cont260, %invoke.cont117, %invoke.cont53, %invoke.cont39, %invoke.cont21, %invoke.cont234, %cleanup.sink.split, %invoke.cont186, %if.end353 - %scratch.sroa.0.6 = phi ptr [ %scratch.sroa.0.5.ph, %if.end353 ], [ %scratch.sroa.0.0343, %invoke.cont186 ], [ %scratch.sroa.0.6.ph, %cleanup.sink.split ], [ %scratch.sroa.0.0343, %invoke.cont234 ], [ %scratch.sroa.0.0343, %invoke.cont21 ], [ %scratch.sroa.0.0343, %invoke.cont39 ], [ %scratch.sroa.0.0343, %invoke.cont53 ], [ %scratch.sroa.0.4, %invoke.cont117 ], [ %scratch.sroa.0.0343, %invoke.cont260 ] + %scratch.sroa.0.6 = phi ptr [ %scratch.sroa.0.5.ph, %if.end353 ], [ %scratch.sroa.0.0341, %invoke.cont186 ], [ %scratch.sroa.0.6.ph, %cleanup.sink.split ], [ %scratch.sroa.0.0341, %invoke.cont234 ], [ %scratch.sroa.0.0341, %invoke.cont21 ], [ %scratch.sroa.0.0341, %invoke.cont39 ], [ %scratch.sroa.0.0341, %invoke.cont53 ], [ %scratch.sroa.0.4, %invoke.cont117 ], [ %scratch.sroa.0.0341, %invoke.cont260 ] %isnull.i = icmp eq ptr %scratch.sroa.0.6, null br i1 %isnull.i, label %_ZN6icu_7512_GLOBAL__N_117UnicodeSetPointerD2Ev.exit, label %delete.notnull.i @@ -1589,8 +1589,8 @@ cleanup.cont: ; preds = %entry, %_ZN6icu_751 ret void ehcleanup: ; preds = %lpad9.loopexit.split-lp.loopexit.loopexit, %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp, %lpad9.loopexit, %lpad9.loopexit.split-lp.loopexit.split-lp, %lpad.i, %lpad198 - %scratch.sroa.0.7 = phi ptr [ %scratch.sroa.0.0343, %lpad198 ], [ null, %lpad.i ], [ %scratch.sroa.0.0343, %lpad9.loopexit ], [ %scratch.sroa.0.1.ph.ph268, %lpad9.loopexit.split-lp.loopexit.split-lp ], [ %scratch.sroa.0.1.ph.ph.ph, %lpad9.loopexit.split-lp.loopexit.loopexit ], [ %scratch.sroa.0.0343, %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp ] - %.pn = phi { ptr, i32 } [ %13, %lpad198 ], [ %9, %lpad.i ], [ %lpad.loopexit, %lpad9.loopexit ], [ %lpad.loopexit.split-lp270, %lpad9.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit409, %lpad9.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp, %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp ] + %scratch.sroa.0.7 = phi ptr [ %scratch.sroa.0.0341, %lpad198 ], [ null, %lpad.i ], [ %scratch.sroa.0.0341, %lpad9.loopexit ], [ %scratch.sroa.0.1.ph.ph268, %lpad9.loopexit.split-lp.loopexit.split-lp ], [ %scratch.sroa.0.1.ph.ph.ph, %lpad9.loopexit.split-lp.loopexit.loopexit ], [ %scratch.sroa.0.0341, %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %13, %lpad198 ], [ %9, %lpad.i ], [ %lpad.loopexit, %lpad9.loopexit ], [ %lpad.loopexit.split-lp270, %lpad9.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit406, %lpad9.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp, %lpad9.loopexit.split-lp.loopexit.loopexit.split-lp ] call fastcc void @_ZN6icu_7512_GLOBAL__N_117UnicodeSetPointerD2Ev(ptr %scratch.sroa.0.7) #15 call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %buf) #15 call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %patLocal) #15 diff --git a/bench/icu/optimized/utrie2.ll b/bench/icu/optimized/utrie2.ll index 7fedc2ce3d6..a42da8c8e08 100644 --- a/bench/icu/optimized/utrie2.ll +++ b/bench/icu/optimized/utrie2.ll @@ -545,7 +545,7 @@ _ZL7u8IndexPK6UTrie2ii.exit: ; preds = %cond.true.i, %cond. declare i32 @utf8_prevCharSafeBody_75(ptr noundef, i32 noundef, ptr noundef, i32 noundef, i8 noundef signext) local_unnamed_addr #2 ; Function Attrs: mustprogress uwtable -define noalias ptr @utrie2_openFromSerialized_75(i32 noundef %valueBits, ptr noundef %data, i32 noundef %length, ptr noundef writeonly %pActualLength, ptr nocapture noundef %pErrorCode) local_unnamed_addr #1 { +define noalias noundef ptr @utrie2_openFromSerialized_75(i32 noundef %valueBits, ptr noundef %data, i32 noundef %length, ptr noundef writeonly %pActualLength, ptr nocapture noundef %pErrorCode) local_unnamed_addr #1 { entry: %0 = load i32, ptr %pErrorCode, align 4 %cmp.i = icmp slt i32 %0, 1 @@ -636,8 +636,6 @@ if.then47: ; preds = %if.end44 br label %return do.body: ; preds = %if.end44 - %11 = getelementptr inbounds i8, ptr %call45, i64 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false) %tempTrie.sroa.2.0.trie.0.2.sroa_idx = getelementptr inbounds i8, ptr %call45, i64 24 store i32 %conv18, ptr %tempTrie.sroa.2.0.trie.0.2.sroa_idx, align 8 %tempTrie.sroa.5.0.trie.0.2.sroa_idx = getelementptr inbounds i8, ptr %call45, i64 28 @@ -645,7 +643,6 @@ do.body: ; preds = %if.end44 %tempTrie.sroa.9.0.trie.0.2.sroa_idx = getelementptr inbounds i8, ptr %call45, i64 32 store <2 x i16> %8, ptr %tempTrie.sroa.9.0.trie.0.2.sroa_idx, align 8 %tempTrie.sroa.11.0.trie.0.2.sroa_idx = getelementptr inbounds i8, ptr %call45, i64 36 - store i64 0, ptr %tempTrie.sroa.11.0.trie.0.2.sroa_idx, align 4 %tempTrie.sroa.1126.0.trie.0.2.sroa_idx = getelementptr inbounds i8, ptr %call45, i64 44 store i32 %shl24, ptr %tempTrie.sroa.1126.0.trie.0.2.sroa_idx, align 4 %tempTrie.sroa.12.0.trie.0.2.sroa_idx = getelementptr inbounds i8, ptr %call45, i64 48 @@ -660,45 +657,38 @@ do.body: ; preds = %if.end44 store ptr %add.ptr, ptr %call45, align 8 %idx.ext = zext i16 %6 to i64 %add.ptr51 = getelementptr inbounds i16, ptr %add.ptr, i64 %idx.ext - switch i32 %valueBits, label %sw.default [ - i32 0, label %sw.bb - i32 1, label %sw.bb58 - ] + %11 = extractelement <2 x i16> %8, i64 1 + %idxprom = zext i16 %11 to i64 + br i1 %cmp26, label %sw.bb, label %sw.bb58 sw.bb: ; preds = %do.body - %data16 = getelementptr inbounds %struct.UTrie2, ptr %call45, i64 0, i32 1 - store ptr %add.ptr51, ptr %data16, align 8 - %12 = extractelement <2 x i16> %8, i64 1 - %idxprom = zext i16 %12 to i64 %arrayidx = getelementptr inbounds i16, ptr %add.ptr, i64 %idxprom - %13 = load i16, ptr %arrayidx, align 2 - %conv54 = zext i16 %13 to i32 - store i32 %conv54, ptr %tempTrie.sroa.11.0.trie.0.2.sroa_idx, align 4 + %12 = load i16, ptr %arrayidx, align 2 + %conv54 = zext i16 %12 to i32 %arrayidx56 = getelementptr inbounds i16, ptr %add.ptr51, i64 128 - %14 = load i16, ptr %arrayidx56, align 2 - %conv57 = zext i16 %14 to i32 + %13 = load i16, ptr %arrayidx56, align 2 + %conv57 = zext i16 %13 to i32 br label %sw.epilog sw.bb58: ; preds = %do.body - %data3260 = getelementptr inbounds %struct.UTrie2, ptr %call45, i64 0, i32 2 - store ptr %add.ptr51, ptr %data3260, align 8 - %15 = extractelement <2 x i16> %8, i64 1 - %idxprom63 = zext i16 %15 to i64 - %arrayidx64 = getelementptr inbounds i32, ptr %add.ptr51, i64 %idxprom63 - %16 = load i32, ptr %arrayidx64, align 4 - store i32 %16, ptr %tempTrie.sroa.11.0.trie.0.2.sroa_idx, align 4 + %arrayidx64 = getelementptr inbounds i32, ptr %add.ptr51, i64 %idxprom + %14 = load i32, ptr %arrayidx64, align 4 %arrayidx67 = getelementptr inbounds i32, ptr %add.ptr51, i64 128 - %17 = load i32, ptr %arrayidx67, align 4 + %15 = load i32, ptr %arrayidx67, align 4 br label %sw.epilog -sw.default: ; preds = %do.body - store i32 3, ptr %pErrorCode, align 4 - br label %return - sw.epilog: ; preds = %sw.bb58, %sw.bb - %.sink = phi i32 [ %17, %sw.bb58 ], [ %conv57, %sw.bb ] - %errorValue68 = getelementptr inbounds %struct.UTrie2, ptr %call45, i64 0, i32 8 - store i32 %.sink, ptr %errorValue68, align 8 + %.sink65 = phi ptr [ %add.ptr51, %sw.bb ], [ null, %sw.bb58 ] + %add.ptr51.sink = phi ptr [ null, %sw.bb ], [ %add.ptr51, %sw.bb58 ] + %.sink64 = phi i32 [ %conv54, %sw.bb ], [ %14, %sw.bb58 ] + %.sink = phi i32 [ %conv57, %sw.bb ], [ %15, %sw.bb58 ] + %16 = getelementptr inbounds %struct.UTrie2, ptr %call45, i64 0, i32 1 + store ptr %.sink65, ptr %16, align 8 + %17 = getelementptr inbounds %struct.UTrie2, ptr %call45, i64 0, i32 2 + store ptr %add.ptr51.sink, ptr %17, align 8 + store i32 %.sink64, ptr %tempTrie.sroa.11.0.trie.0.2.sroa_idx, align 4 + %18 = getelementptr inbounds %struct.UTrie2, ptr %call45, i64 0, i32 8 + store i32 %.sink, ptr %18, align 8 %cmp69.not = icmp eq ptr %pActualLength, null br i1 %cmp69.not, label %return, label %if.then70 @@ -706,8 +696,8 @@ if.then70: ; preds = %sw.epilog store i32 %actualLength.0, ptr %pActualLength, align 4 br label %return -return: ; preds = %sw.epilog, %if.then70, %entry, %sw.default, %if.then47, %if.then43, %if.then16, %if.then12, %if.then9, %if.then6 - %retval.0 = phi ptr [ null, %if.then6 ], [ null, %if.then9 ], [ null, %if.then12 ], [ null, %if.then16 ], [ null, %if.then43 ], [ null, %if.then47 ], [ null, %sw.default ], [ null, %entry ], [ %call45, %if.then70 ], [ %call45, %sw.epilog ] +return: ; preds = %sw.epilog, %if.then70, %entry, %if.then47, %if.then43, %if.then16, %if.then12, %if.then9, %if.then6 + %retval.0 = phi ptr [ null, %if.then6 ], [ null, %if.then9 ], [ null, %if.then12 ], [ null, %if.then16 ], [ null, %if.then43 ], [ null, %if.then47 ], [ null, %entry ], [ %call45, %if.then70 ], [ %call45, %sw.epilog ] ret ptr %retval.0 } @@ -721,7 +711,7 @@ declare noalias ptr @uprv_malloc_75(i64 noundef) local_unnamed_addr #4 declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5 ; Function Attrs: mustprogress uwtable -define ptr @utrie2_openDummy_75(i32 noundef %valueBits, i32 noundef %initialValue, i32 noundef %errorValue, ptr nocapture noundef %pErrorCode) local_unnamed_addr #1 { +define noundef ptr @utrie2_openDummy_75(i32 noundef %valueBits, i32 noundef %initialValue, i32 noundef %errorValue, ptr nocapture noundef %pErrorCode) local_unnamed_addr #1 { entry: %0 = load i32, ptr %pErrorCode, align 4 %cmp.i = icmp slt i32 %0, 1 @@ -800,29 +790,29 @@ for.cond42.preheader: ; preds = %for.body br label %for.body44 for.body: ; preds = %if.end19, %for.body - %i.090 = phi i32 [ 0, %if.end19 ], [ %inc, %for.body ] - %dest16.089 = phi ptr [ %add.ptr, %if.end19 ], [ %incdec.ptr, %for.body ] - %incdec.ptr = getelementptr inbounds i16, ptr %dest16.089, i64 1 - store i16 %conv41, ptr %dest16.089, align 2 - %inc = add nuw nsw i32 %i.090, 1 + %i.089 = phi i32 [ 0, %if.end19 ], [ %inc, %for.body ] + %dest16.088 = phi ptr [ %add.ptr, %if.end19 ], [ %incdec.ptr, %for.body ] + %incdec.ptr = getelementptr inbounds i16, ptr %dest16.088, i64 1 + store i16 %conv41, ptr %dest16.088, align 2 + %inc = add nuw nsw i32 %i.089, 1 %exitcond.not = icmp eq i32 %inc, 2080 br i1 %exitcond.not, label %for.cond42.preheader, label %for.body, !llvm.loop !4 for.body44: ; preds = %for.cond42.preheader, %for.body44 %cmp43 = phi i1 [ true, %for.cond42.preheader ], [ false, %for.body44 ] - %dest16.191 = phi ptr [ %incdec.ptr, %for.cond42.preheader ], [ %incdec.ptr47, %for.body44 ] - %incdec.ptr47 = getelementptr inbounds i16, ptr %dest16.191, i64 1 - store i16 %conv46, ptr %dest16.191, align 2 + %dest16.190 = phi ptr [ %incdec.ptr, %for.cond42.preheader ], [ %incdec.ptr47, %for.body44 ] + %incdec.ptr47 = getelementptr inbounds i16, ptr %dest16.190, i64 1 + store i16 %conv46, ptr %dest16.190, align 2 br i1 %cmp43, label %for.body44, label %for.body53, !llvm.loop !6 for.body53: ; preds = %for.body44, %for.body53 - %i.294 = phi i32 [ %inc57, %for.body53 ], [ 2, %for.body44 ] - %dest16.293 = phi ptr [ %incdec.ptr55, %for.body53 ], [ %incdec.ptr47, %for.body44 ] - %incdec.ptr55 = getelementptr inbounds i16, ptr %dest16.293, i64 1 - store i16 %conv27, ptr %dest16.293, align 2 - %inc57 = add nuw nsw i32 %i.294, 1 - %exitcond111.not = icmp eq i32 %inc57, 32 - br i1 %exitcond111.not, label %for.end58, label %for.body53, !llvm.loop !7 + %i.293 = phi i32 [ %inc57, %for.body53 ], [ 2, %for.body44 ] + %dest16.292 = phi ptr [ %incdec.ptr55, %for.body53 ], [ %incdec.ptr47, %for.body44 ] + %incdec.ptr55 = getelementptr inbounds i16, ptr %dest16.292, i64 1 + store i16 %conv27, ptr %dest16.292, align 2 + %inc57 = add nuw nsw i32 %i.293, 1 + %exitcond110.not = icmp eq i32 %inc57, 32 + br i1 %exitcond110.not, label %for.end58, label %for.body53, !llvm.loop !7 for.end58: ; preds = %for.body53 %data16 = getelementptr inbounds %struct.UTrie2, ptr %call11, i64 0, i32 1 @@ -840,31 +830,31 @@ for.body69.lr.ph: ; preds = %for.body61 br label %for.body69 for.body61: ; preds = %sw.bb, %for.body61 - %i.3103 = phi i32 [ 0, %sw.bb ], [ %inc65, %for.body61 ] - %dest16.3102 = phi ptr [ %incdec.ptr55, %sw.bb ], [ %incdec.ptr63, %for.body61 ] - %incdec.ptr63 = getelementptr inbounds i16, ptr %dest16.3102, i64 1 - store i16 %conv62, ptr %dest16.3102, align 2 - %inc65 = add nuw nsw i32 %i.3103, 1 - %exitcond115.not = icmp eq i32 %inc65, 128 - br i1 %exitcond115.not, label %for.body69.lr.ph, label %for.body61, !llvm.loop !8 + %i.3102 = phi i32 [ 0, %sw.bb ], [ %inc65, %for.body61 ] + %dest16.3101 = phi ptr [ %incdec.ptr55, %sw.bb ], [ %incdec.ptr63, %for.body61 ] + %incdec.ptr63 = getelementptr inbounds i16, ptr %dest16.3101, i64 1 + store i16 %conv62, ptr %dest16.3101, align 2 + %inc65 = add nuw nsw i32 %i.3102, 1 + %exitcond114.not = icmp eq i32 %inc65, 128 + br i1 %exitcond114.not, label %for.body69.lr.ph, label %for.body61, !llvm.loop !8 for.body69: ; preds = %for.body69.lr.ph, %for.body69 - %i.4106 = phi i32 [ 128, %for.body69.lr.ph ], [ %inc73, %for.body69 ] - %dest16.4105 = phi ptr [ %incdec.ptr63, %for.body69.lr.ph ], [ %incdec.ptr71, %for.body69 ] - %incdec.ptr71 = getelementptr inbounds i16, ptr %dest16.4105, i64 1 - store i16 %conv70, ptr %dest16.4105, align 2 - %inc73 = add nuw nsw i32 %i.4106, 1 - %exitcond116.not = icmp eq i32 %inc73, 192 - br i1 %exitcond116.not, label %for.body77, label %for.body69, !llvm.loop !9 + %i.4105 = phi i32 [ 128, %for.body69.lr.ph ], [ %inc73, %for.body69 ] + %dest16.4104 = phi ptr [ %incdec.ptr63, %for.body69.lr.ph ], [ %incdec.ptr71, %for.body69 ] + %incdec.ptr71 = getelementptr inbounds i16, ptr %dest16.4104, i64 1 + store i16 %conv70, ptr %dest16.4104, align 2 + %inc73 = add nuw nsw i32 %i.4105, 1 + %exitcond115.not = icmp eq i32 %inc73, 192 + br i1 %exitcond115.not, label %for.body77, label %for.body69, !llvm.loop !9 for.body77: ; preds = %for.body69, %for.body77 - %i.5109 = phi i32 [ %inc81, %for.body77 ], [ 0, %for.body69 ] - %dest16.5108 = phi ptr [ %incdec.ptr79, %for.body77 ], [ %incdec.ptr71, %for.body69 ] - %incdec.ptr79 = getelementptr inbounds i16, ptr %dest16.5108, i64 1 - store i16 %conv62, ptr %dest16.5108, align 2 - %inc81 = add nuw nsw i32 %i.5109, 1 - %exitcond117.not = icmp eq i32 %inc81, 4 - br i1 %exitcond117.not, label %return, label %for.body77, !llvm.loop !10 + %i.5108 = phi i32 [ %inc81, %for.body77 ], [ 0, %for.body69 ] + %dest16.5107 = phi ptr [ %incdec.ptr79, %for.body77 ], [ %incdec.ptr71, %for.body69 ] + %incdec.ptr79 = getelementptr inbounds i16, ptr %dest16.5107, i64 1 + store i16 %conv62, ptr %dest16.5107, align 2 + %inc81 = add nuw nsw i32 %i.5108, 1 + %exitcond116.not = icmp eq i32 %inc81, 4 + br i1 %exitcond116.not, label %return, label %for.body77, !llvm.loop !10 sw.bb83: ; preds = %for.end58 store ptr null, ptr %data16, align 8 @@ -872,31 +862,31 @@ sw.bb83: ; preds = %for.end58 br label %for.body88 for.body88: ; preds = %sw.bb83, %for.body88 - %i.696 = phi i32 [ 0, %sw.bb83 ], [ %inc91, %for.body88 ] - %p.095 = phi ptr [ %incdec.ptr55, %sw.bb83 ], [ %incdec.ptr89, %for.body88 ] - %incdec.ptr89 = getelementptr inbounds i32, ptr %p.095, i64 1 - store i32 %initialValue, ptr %p.095, align 4 - %inc91 = add nuw nsw i32 %i.696, 1 - %exitcond112.not = icmp eq i32 %inc91, 128 - br i1 %exitcond112.not, label %for.body95, label %for.body88, !llvm.loop !11 + %i.695 = phi i32 [ 0, %sw.bb83 ], [ %inc91, %for.body88 ] + %p.094 = phi ptr [ %incdec.ptr55, %sw.bb83 ], [ %incdec.ptr89, %for.body88 ] + %incdec.ptr89 = getelementptr inbounds i32, ptr %p.094, i64 1 + store i32 %initialValue, ptr %p.094, align 4 + %inc91 = add nuw nsw i32 %i.695, 1 + %exitcond111.not = icmp eq i32 %inc91, 128 + br i1 %exitcond111.not, label %for.body95, label %for.body88, !llvm.loop !11 for.body95: ; preds = %for.body88, %for.body95 - %i.799 = phi i32 [ %inc98, %for.body95 ], [ 128, %for.body88 ] - %p.198 = phi ptr [ %incdec.ptr96, %for.body95 ], [ %incdec.ptr89, %for.body88 ] - %incdec.ptr96 = getelementptr inbounds i32, ptr %p.198, i64 1 - store i32 %errorValue, ptr %p.198, align 4 - %inc98 = add nuw nsw i32 %i.799, 1 - %exitcond113.not = icmp eq i32 %inc98, 192 - br i1 %exitcond113.not, label %for.body102, label %for.body95, !llvm.loop !12 + %i.798 = phi i32 [ %inc98, %for.body95 ], [ 128, %for.body88 ] + %p.197 = phi ptr [ %incdec.ptr96, %for.body95 ], [ %incdec.ptr89, %for.body88 ] + %incdec.ptr96 = getelementptr inbounds i32, ptr %p.197, i64 1 + store i32 %errorValue, ptr %p.197, align 4 + %inc98 = add nuw nsw i32 %i.798, 1 + %exitcond112.not = icmp eq i32 %inc98, 192 + br i1 %exitcond112.not, label %for.body102, label %for.body95, !llvm.loop !12 for.body102: ; preds = %for.body95, %for.body102 - %i.8101 = phi i32 [ %inc105, %for.body102 ], [ 0, %for.body95 ] - %p.2100 = phi ptr [ %incdec.ptr103, %for.body102 ], [ %incdec.ptr96, %for.body95 ] - %incdec.ptr103 = getelementptr inbounds i32, ptr %p.2100, i64 1 - store i32 %initialValue, ptr %p.2100, align 4 - %inc105 = add nuw nsw i32 %i.8101, 1 - %exitcond114.not = icmp eq i32 %inc105, 4 - br i1 %exitcond114.not, label %return, label %for.body102, !llvm.loop !13 + %i.8100 = phi i32 [ %inc105, %for.body102 ], [ 0, %for.body95 ] + %p.299 = phi ptr [ %incdec.ptr103, %for.body102 ], [ %incdec.ptr96, %for.body95 ] + %incdec.ptr103 = getelementptr inbounds i32, ptr %p.299, i64 1 + store i32 %initialValue, ptr %p.299, align 4 + %inc105 = add nuw nsw i32 %i.8100, 1 + %exitcond113.not = icmp eq i32 %inc105, 4 + br i1 %exitcond113.not, label %return, label %for.body102, !llvm.loop !13 return.sink.split: ; preds = %if.end3, %if.end, %if.then18 %.sink = phi i32 [ 7, %if.then18 ], [ 1, %if.end ], [ 7, %if.end3 ] @@ -960,7 +950,7 @@ entry: ret i8 %conv } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable define i32 @utrie2_serialize_75(ptr noundef readonly %trie, ptr noundef %data, i32 noundef %capacity, ptr nocapture noundef %pErrorCode) local_unnamed_addr #7 { entry: %0 = load i32, ptr %pErrorCode, align 4 @@ -1690,7 +1680,7 @@ attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #4 = { allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #6 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #7 = { mustprogress nofree nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #7 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/icu/optimized/utrie2_builder.ll b/bench/icu/optimized/utrie2_builder.ll index 176ec573e03..a70ad03edc5 100644 --- a/bench/icu/optimized/utrie2_builder.ll +++ b/bench/icu/optimized/utrie2_builder.ll @@ -10,7 +10,7 @@ target triple = "x86_64-unknown-linux-gnu" %struct.UTrie2Header = type { i32, i16, i16, i16, i16, i16, i16 } ; Function Attrs: mustprogress uwtable -define ptr @utrie2_open_75(i32 noundef %initialValue, i32 noundef %errorValue, ptr nocapture noundef %pErrorCode) local_unnamed_addr #0 { +define noundef ptr @utrie2_open_75(i32 noundef %initialValue, i32 noundef %errorValue, ptr nocapture noundef %pErrorCode) local_unnamed_addr #0 { entry: %0 = load i32, ptr %pErrorCode, align 4 %cmp.i = icmp slt i32 %0, 1 @@ -275,7 +275,7 @@ return: ; preds = %if.end3.i, %if.then } ; Function Attrs: mustprogress uwtable -define ptr @utrie2_clone_75(ptr noundef readonly %other, ptr nocapture noundef %pErrorCode) local_unnamed_addr #0 { +define noundef ptr @utrie2_clone_75(ptr noundef readonly %other, ptr nocapture noundef %pErrorCode) local_unnamed_addr #0 { entry: %0 = load i32, ptr %pErrorCode, align 4 %cmp.i = icmp slt i32 %0, 1 @@ -1984,15 +1984,13 @@ for.body135: ; preds = %for.body135.prehead if.end144: ; preds = %for.body135, %for.end127, %for.end110 %dest16.5 = phi ptr [ %incdec.ptr107, %for.end110 ], [ %dest16.3.lcssa, %for.end127 ], [ %incdec.ptr140, %for.body135 ] - switch i32 %valueBits, label %sw.default [ - i32 0, label %sw.bb - i32 1, label %sw.bb156 - ] + %switch = icmp eq i32 %valueBits, 0 + %data16145 = getelementptr inbounds %struct.UTrie2, ptr %trie, i64 0, i32 1 + %data32 = getelementptr inbounds %struct.UTrie2, ptr %trie, i64 0, i32 2 + br i1 %switch, label %sw.bb, label %sw.bb156 sw.bb: ; preds = %if.end144 - %data16145 = getelementptr inbounds %struct.UTrie2, ptr %trie, i64 0, i32 1 store ptr %dest16.5, ptr %data16145, align 8 - %data32 = getelementptr inbounds %struct.UTrie2, ptr %trie, i64 0, i32 2 store ptr null, ptr %data32, align 8 %113 = load i32, ptr %dataLength, align 8 %cmp148220 = icmp sgt i32 %113, 0 @@ -2017,10 +2015,8 @@ for.body149: ; preds = %for.body149.prehead br i1 %cmp148, label %for.body149, label %sw.epilog, !llvm.loop !44 sw.bb156: ; preds = %if.end144 - %data16157 = getelementptr inbounds %struct.UTrie2, ptr %trie, i64 0, i32 1 - store ptr null, ptr %data16157, align 8 - %data32158 = getelementptr inbounds %struct.UTrie2, ptr %trie, i64 0, i32 2 - store ptr %dest16.5, ptr %data32158, align 8 + store ptr null, ptr %data16145, align 8 + store ptr %dest16.5, ptr %data32, align 8 %data159 = getelementptr inbounds %struct.UNewTrie2, ptr %2, i64 0, i32 2 %116 = load ptr, ptr %data159, align 8 %117 = load i32, ptr %dataLength, align 8 @@ -2029,10 +2025,6 @@ sw.bb156: ; preds = %if.end144 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 2 %dest16.5, ptr align 4 %116, i64 %mul162, i1 false) br label %sw.epilog -sw.default: ; preds = %if.end144 - store i32 1, ptr %pErrorCode, align 4 - br label %return - sw.epilog: ; preds = %for.body149, %sw.bb, %sw.bb156 %data163 = getelementptr inbounds %struct.UNewTrie2, ptr %2, i64 0, i32 2 %118 = load ptr, ptr %data163, align 8 @@ -2041,7 +2033,7 @@ sw.epilog: ; preds = %for.body149, %sw.bb store ptr null, ptr %newTrie6, align 8 br label %return -return: ; preds = %if.then6.i, %_ZL11compactTrieP6UTrie2P10UErrorCode.exit, %if.then8, %if.then11, %entry, %sw.epilog, %sw.default, %if.then56, %if.then38, %if.then4 +return: ; preds = %if.then6.i, %_ZL11compactTrieP6UTrie2P10UErrorCode.exit, %if.then8, %if.then11, %entry, %sw.epilog, %if.then56, %if.then38, %if.then4 ret void } diff --git a/bench/icu/optimized/utrie_swap.ll b/bench/icu/optimized/utrie_swap.ll index 12530f7281d..fce66e2ff56 100644 --- a/bench/icu/optimized/utrie_swap.ll +++ b/bench/icu/optimized/utrie_swap.ll @@ -194,7 +194,6 @@ if.end11: ; preds = %if.end6 %8 = load i16, ptr %shiftedDataLength, align 4 %call20 = tail call noundef zeroext i16 %7(i16 noundef zeroext %8) %9 = and i16 %call14, 15 - %conv24 = zext i16 %call20 to i32 %cmp26 = icmp ne i32 %call12, 1416784178 %cmp30 = icmp ugt i16 %9, 1 %or.cond4 = or i1 %cmp26, %cmp30 @@ -210,27 +209,17 @@ if.then37: ; preds = %if.end11 if.end38: ; preds = %if.end11 %conv33 = zext i16 %call17 to i32 + %conv24 = zext i16 %call20 to i32 %mul = shl nuw nsw i32 %conv33, 1 %narrow = add nuw nsw i32 %mul, 16 - switch i16 %9, label %sw.default [ - i16 0, label %sw.epilog - i16 1, label %sw.bb45 - ] - -sw.bb45: ; preds = %if.end38 - br label %sw.epilog - -sw.default: ; preds = %if.end38 - store i32 3, ptr %pErrorCode, align 4 - br label %return - -sw.epilog: ; preds = %if.end38, %sw.bb45 - %.sink = phi i32 [ 4, %sw.bb45 ], [ 3, %if.end38 ] - %mul46 = shl nuw nsw i32 %conv24, %.sink - %size.0 = add nuw nsw i32 %narrow, %mul46 + %switch = icmp eq i16 %9, 0 + %mul46 = shl nuw nsw i32 %conv24, 4 + %mul43 = shl nuw nsw i32 %conv24, 3 + %mul46.pn = select i1 %switch, i32 %mul43, i32 %mul46 + %size.0 = add nuw nsw i32 %narrow, %mul46.pn br i1 %cmp3, label %if.then49, label %return -if.then49: ; preds = %sw.epilog +if.then49: ; preds = %if.end38 %cmp50 = icmp ugt i32 %size.0, %length br i1 %cmp50, label %if.then51, label %if.end52 @@ -246,39 +235,28 @@ if.end52: ; preds = %if.then49 %11 = load ptr, ptr %swapArray16, align 8 %options57 = getelementptr inbounds %struct.UTrie2Header, ptr %outData, i64 0, i32 1 %call58 = tail call noundef i32 %11(ptr noundef nonnull %ds, ptr noundef nonnull %options, i32 noundef 12, ptr noundef nonnull %options57, ptr noundef nonnull %pErrorCode) - switch i16 %9, label %sw.default87 [ - i16 0, label %sw.bb59 - i16 1, label %sw.bb67 - ] - -sw.bb59: ; preds = %if.end52 %12 = load ptr, ptr %swapArray16, align 8 %add.ptr = getelementptr inbounds %struct.UTrie2Header, ptr %inData, i64 1 - %13 = shl nuw nsw i32 %conv24, 3 - %mul64 = add nuw nsw i32 %13, %mul + br i1 %switch, label %sw.bb59, label %sw.bb67 + +sw.bb59: ; preds = %if.end52 + %mul64 = add nuw nsw i32 %mul43, %mul %add.ptr65 = getelementptr inbounds %struct.UTrie2Header, ptr %outData, i64 1 %call66 = tail call noundef i32 %12(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr, i32 noundef %mul64, ptr noundef nonnull %add.ptr65, ptr noundef nonnull %pErrorCode) br label %return sw.bb67: ; preds = %if.end52 - %14 = load ptr, ptr %swapArray16, align 8 - %add.ptr69 = getelementptr inbounds %struct.UTrie2Header, ptr %inData, i64 1 %add.ptr73 = getelementptr inbounds %struct.UTrie2Header, ptr %outData, i64 1 - %call74 = tail call noundef i32 %14(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr69, i32 noundef %mul, ptr noundef nonnull %add.ptr73, ptr noundef nonnull %pErrorCode) - %15 = load ptr, ptr %swapArray32, align 8 + %call74 = tail call noundef i32 %12(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr, i32 noundef %mul, ptr noundef nonnull %add.ptr73, ptr noundef nonnull %pErrorCode) + %13 = load ptr, ptr %swapArray32, align 8 %idx.ext = zext i16 %call17 to i64 - %add.ptr79 = getelementptr inbounds i16, ptr %add.ptr69, i64 %idx.ext - %mul80 = shl nuw nsw i32 %conv24, 4 + %add.ptr79 = getelementptr inbounds i16, ptr %add.ptr, i64 %idx.ext %add.ptr85 = getelementptr inbounds i16, ptr %add.ptr73, i64 %idx.ext - %call86 = tail call noundef i32 %15(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr79, i32 noundef %mul80, ptr noundef nonnull %add.ptr85, ptr noundef nonnull %pErrorCode) - br label %return - -sw.default87: ; preds = %if.end52 - store i32 3, ptr %pErrorCode, align 4 + %call86 = tail call noundef i32 %13(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr79, i32 noundef %mul46, ptr noundef nonnull %add.ptr85, ptr noundef nonnull %pErrorCode) br label %return -return: ; preds = %sw.epilog, %sw.bb67, %sw.bb59, %entry, %sw.default87, %if.then51, %sw.default, %if.then37, %if.then10, %if.then5 - %retval.0 = phi i32 [ 0, %if.then5 ], [ 0, %if.then10 ], [ 0, %if.then37 ], [ 0, %sw.default ], [ 0, %if.then51 ], [ 0, %sw.default87 ], [ 0, %entry ], [ %size.0, %sw.bb59 ], [ %size.0, %sw.bb67 ], [ %size.0, %sw.epilog ] +return: ; preds = %if.end38, %sw.bb67, %sw.bb59, %entry, %if.then51, %if.then37, %if.then10, %if.then5 + %retval.0 = phi i32 [ 0, %if.then5 ], [ 0, %if.then10 ], [ 0, %if.then37 ], [ 0, %if.then51 ], [ 0, %entry ], [ %size.0, %sw.bb59 ], [ %size.0, %sw.bb67 ], [ %size.0, %if.end38 ] ret i32 %retval.0 } @@ -367,7 +345,7 @@ if.then50: ; preds = %lor.lhs.false44, %l if.end51: ; preds = %lor.lhs.false44 %mul = shl nuw nsw i32 %conv46, 1 %narrow = add nuw nsw i32 %mul, 16 - switch i32 %and26, label %sw.default [ + switch i32 %and26, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb58 i32 2, label %sw.epilog @@ -381,9 +359,8 @@ sw.bb58: ; preds = %if.end51 %mul59 = shl nuw nsw i32 %or, 2 br label %sw.epilog -sw.default: ; preds = %if.end51 - store i32 3, ptr %pErrorCode, align 4 - br label %return +default.unreachable: ; preds = %if.end67, %if.end51 + unreachable sw.epilog: ; preds = %if.end51, %sw.bb58, %sw.bb %or.pn = phi i32 [ %mul59, %sw.bb58 ], [ %mul56, %sw.bb ], [ %or, %if.end51 ] @@ -413,7 +390,7 @@ if.end67: ; preds = %if.then64 %idx.ext = zext i16 %call17 to i64 %add.ptr83 = getelementptr inbounds i16, ptr %add.ptr, i64 %idx.ext %add.ptr88 = getelementptr inbounds i16, ptr %add.ptr74, i64 %idx.ext - switch i32 %and26, label %sw.default102 [ + switch i32 %and26, label %default.unreachable [ i32 0, label %sw.bb89 i32 1, label %sw.bb93 i32 2, label %sw.bb97 @@ -440,12 +417,8 @@ do.body: ; preds = %sw.bb97 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %add.ptr88, ptr nonnull align 2 %add.ptr83, i64 %conv100, i1 false) br label %return -sw.default102: ; preds = %if.end67 - store i32 3, ptr %pErrorCode, align 4 - br label %return - -return: ; preds = %sw.epilog, %sw.bb97, %do.body, %sw.bb93, %sw.bb89, %entry, %sw.default102, %if.then66, %sw.default, %if.then50, %if.then10, %if.then5 - %retval.0 = phi i32 [ 0, %if.then5 ], [ 0, %if.then10 ], [ 0, %if.then50 ], [ 0, %sw.default ], [ 0, %if.then66 ], [ 0, %sw.default102 ], [ 0, %entry ], [ %size.0, %sw.bb89 ], [ %size.0, %sw.bb93 ], [ %size.0, %do.body ], [ %size.0, %sw.bb97 ], [ %size.0, %sw.epilog ] +return: ; preds = %sw.epilog, %sw.bb97, %do.body, %sw.bb93, %sw.bb89, %entry, %if.then66, %if.then50, %if.then10, %if.then5 + %retval.0 = phi i32 [ 0, %if.then5 ], [ 0, %if.then10 ], [ 0, %if.then50 ], [ 0, %if.then66 ], [ 0, %entry ], [ %size.0, %sw.bb89 ], [ %size.0, %sw.bb93 ], [ %size.0, %do.body ], [ %size.0, %sw.bb97 ], [ %size.0, %sw.epilog ] ret i32 %retval.0 } diff --git a/bench/icu/optimized/vtzone.ll b/bench/icu/optimized/vtzone.ll index 2de3178aaa5..d85193c061f 100644 --- a/bench/icu/optimized/vtzone.ll +++ b/bench/icu/optimized/vtzone.ll @@ -2863,7 +2863,7 @@ lpad21.loopexit.split-lp: ; preds = %if.end423 br label %ehcleanup643 for.body: ; preds = %for.body.lr.ph, %for.inc - %8 = phi ptr [ %4, %for.body.lr.ph ], [ %140, %for.inc ] + %8 = phi ptr [ %4, %for.body.lr.ph ], [ %134, %for.inc ] %state.0603 = phi i32 [ 0, %for.body.lr.ph ], [ %state.2, %for.inc ] %n.0602 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] %dst.0601 = phi i8 [ 0, %for.body.lr.ph ], [ %dst.1, %for.inc ] @@ -2928,19 +2928,19 @@ _ZNK6icu_7513UnicodeString8pinIndexERi.exit.i: ; preds = %invoke.cont39 to label %invoke.cont41 unwind label %lpad21.loopexit invoke.cont41: ; preds = %_ZNK6icu_7513UnicodeString8pinIndexERi.exit.i - switch i32 %state.0603, label %for.inc [ - i32 0, label %sw.bb - i32 1, label %sw.bb60 - i32 2, label %sw.bb163 - ] - -sw.bb: ; preds = %invoke.cont41 %20 = load i16, ptr %fUnion2.i142, align 8 %cmp.i.i.i162 = icmp slt i16 %20, 0 %21 = ashr i16 %20, 5 %shr.i.i.i163 = sext i16 %21 to i32 %22 = load i32, ptr %fLength.i.i151, align 4 %cond.i.i165 = select i1 %cmp.i.i.i162, i32 %22, i32 %shr.i.i.i163 + switch i32 %state.0603, label %default.unreachable [ + i32 0, label %sw.bb + i32 1, label %sw.bb60 + i32 2, label %sw.bb163 + ] + +sw.bb: ; preds = %invoke.cont41 %call3.i166 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i165, ptr noundef nonnull @_ZN6icu_75L10ICAL_BEGINE, i32 noundef 0, i32 noundef -1) to label %invoke.cont45 unwind label %lpad44 @@ -2986,13 +2986,7 @@ ehcleanup: ; preds = %lpad50, %lpad44 br label %ehcleanup643 sw.bb60: ; preds = %invoke.cont41 - %28 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i175 = icmp slt i16 %28, 0 - %29 = ashr i16 %28, 5 - %shr.i.i.i176 = sext i16 %29 to i32 - %30 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i178 = select i1 %cmp.i.i.i175, i32 %30, i32 %shr.i.i.i176 - %call3.i179 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i178, ptr noundef nonnull @_ZN6icu_75L9ICAL_TZIDE, i32 noundef 0, i32 noundef -1) + %call3.i179 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i165, ptr noundef nonnull @_ZN6icu_75L9ICAL_TZIDE, i32 noundef 0, i32 noundef -1) to label %invoke.cont64 unwind label %lpad63 invoke.cont64: ; preds = %sw.bb60 @@ -3001,23 +2995,23 @@ invoke.cont64: ; preds = %sw.bb60 br i1 %cmp67, label %if.then69.invoke, label %if.else if.then69.invoke: ; preds = %invoke.cont75, %invoke.cont64 - %31 = phi ptr [ %tzid, %invoke.cont64 ], [ %tzurl, %invoke.cont75 ] - %32 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeStringaSERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %31, ptr noundef nonnull align 8 dereferenceable(64) %value) + %28 = phi ptr [ %tzid, %invoke.cont64 ], [ %tzurl, %invoke.cont75 ] + %29 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeStringaSERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %28, ptr noundef nonnull align 8 dereferenceable(64) %value) to label %for.inc unwind label %lpad21.loopexit lpad63: ; preds = %sw.bb60 - %33 = landingpad { ptr, i32 } + %30 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L9ICAL_TZIDE) #15, !srcloc !4 br label %ehcleanup643 if.else: ; preds = %invoke.cont64 - %34 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i182 = icmp slt i16 %34, 0 - %35 = ashr i16 %34, 5 - %shr.i.i.i183 = sext i16 %35 to i32 - %36 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i185 = select i1 %cmp.i.i.i182, i32 %36, i32 %shr.i.i.i183 + %31 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i182 = icmp slt i16 %31, 0 + %32 = ashr i16 %31, 5 + %shr.i.i.i183 = sext i16 %32 to i32 + %33 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i185 = select i1 %cmp.i.i.i182, i32 %33, i32 %shr.i.i.i183 %call3.i186 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i185, ptr noundef nonnull @_ZN6icu_75L10ICAL_TZURLE, i32 noundef 0, i32 noundef -1) to label %invoke.cont75 unwind label %lpad74 @@ -3027,18 +3021,18 @@ invoke.cont75: ; preds = %if.else br i1 %cmp78, label %if.then69.invoke, label %if.else83 lpad74: ; preds = %if.else - %37 = landingpad { ptr, i32 } + %34 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L10ICAL_TZURLE) #15, !srcloc !4 br label %ehcleanup643 if.else83: ; preds = %invoke.cont75 - %38 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i189 = icmp slt i16 %38, 0 - %39 = ashr i16 %38, 5 - %shr.i.i.i190 = sext i16 %39 to i32 - %40 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i192 = select i1 %cmp.i.i.i189, i32 %40, i32 %shr.i.i.i190 + %35 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i189 = icmp slt i16 %35, 0 + %36 = ashr i16 %35, 5 + %shr.i.i.i190 = sext i16 %36 to i32 + %37 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i192 = select i1 %cmp.i.i.i189, i32 %37, i32 %shr.i.i.i190 %call3.i193 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i192, ptr noundef nonnull @_ZN6icu_75L12ICAL_LASTMODE, i32 noundef 0, i32 noundef -1) to label %invoke.cont87 unwind label %lpad86 @@ -3053,23 +3047,23 @@ if.then92: ; preds = %invoke.cont87 invoke.cont93: ; preds = %if.then92 store double %call94, ptr %lastmod, align 8 - %41 = load i32, ptr %status, align 4 - %cmp.i195 = icmp slt i32 %41, 1 + %38 = load i32, ptr %status, align 4 + %cmp.i195 = icmp slt i32 %38, 1 br i1 %cmp.i195, label %for.inc, label %cleanup642 lpad86: ; preds = %if.else83 - %42 = landingpad { ptr, i32 } + %39 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L12ICAL_LASTMODE) #15, !srcloc !4 br label %ehcleanup643 if.else100: ; preds = %invoke.cont87 - %43 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i198 = icmp slt i16 %43, 0 - %44 = ashr i16 %43, 5 - %shr.i.i.i199 = sext i16 %44 to i32 - %45 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i201 = select i1 %cmp.i.i.i198, i32 %45, i32 %shr.i.i.i199 + %40 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i198 = icmp slt i16 %40, 0 + %41 = ashr i16 %40, 5 + %shr.i.i.i199 = sext i16 %41 to i32 + %42 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i201 = select i1 %cmp.i.i.i198, i32 %42, i32 %shr.i.i.i199 %call3.i202 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i201, ptr noundef nonnull @_ZN6icu_75L10ICAL_BEGINE, i32 noundef 0, i32 noundef -1) to label %invoke.cont104 unwind label %lpad103 @@ -3079,12 +3073,12 @@ invoke.cont104: ; preds = %if.else100 br i1 %cmp107, label %if.then109, label %if.else148 if.then109: ; preds = %invoke.cont104 - %46 = load i16, ptr %fUnion2.i143, align 8 - %cmp.i.i.i205 = icmp slt i16 %46, 0 - %47 = ashr i16 %46, 5 - %shr.i.i.i206 = sext i16 %47 to i32 - %48 = load i32, ptr %fLength.i.i157, align 4 - %cond.i.i208 = select i1 %cmp.i.i.i205, i32 %48, i32 %shr.i.i.i206 + %43 = load i16, ptr %fUnion2.i143, align 8 + %cmp.i.i.i205 = icmp slt i16 %43, 0 + %44 = ashr i16 %43, 5 + %shr.i.i.i206 = sext i16 %44 to i32 + %45 = load i32, ptr %fLength.i.i157, align 4 + %cond.i.i208 = select i1 %cmp.i.i.i205, i32 %45, i32 %shr.i.i.i206 %call3.i209 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %value, i32 noundef 0, i32 noundef %cond.i.i208, ptr noundef nonnull @_ZN6icu_75L13ICAL_DAYLIGHTE, i32 noundef 0, i32 noundef -1) to label %invoke.cont113 unwind label %lpad112 @@ -3092,52 +3086,52 @@ invoke.cont113: ; preds = %if.then109 %cmp116 = icmp eq i8 %call3.i209, 0 %conv117 = zext i1 %cmp116 to i8 call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L13ICAL_DAYLIGHTE) #15, !srcloc !4 - %49 = load i16, ptr %fUnion2.i143, align 8 - %cmp.i.i.i212 = icmp slt i16 %49, 0 - %50 = ashr i16 %49, 5 - %shr.i.i.i213 = sext i16 %50 to i32 - %51 = load i32, ptr %fLength.i.i157, align 4 - %cond.i.i215 = select i1 %cmp.i.i.i212, i32 %51, i32 %shr.i.i.i213 + %46 = load i16, ptr %fUnion2.i143, align 8 + %cmp.i.i.i212 = icmp slt i16 %46, 0 + %47 = ashr i16 %46, 5 + %shr.i.i.i213 = sext i16 %47 to i32 + %48 = load i32, ptr %fLength.i.i157, align 4 + %cond.i.i215 = select i1 %cmp.i.i.i212, i32 %48, i32 %shr.i.i.i213 %call3.i216 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %value, i32 noundef 0, i32 noundef %cond.i.i215, ptr noundef nonnull @_ZN6icu_75L13ICAL_STANDARDE, i32 noundef 0, i32 noundef -1) to label %invoke.cont122 unwind label %lpad121 invoke.cont122: ; preds = %invoke.cont113 %cmp125 = icmp eq i8 %call3.i216, 0 - %52 = or i1 %cmp116, %cmp125 + %49 = or i1 %cmp116, %cmp125 call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L13ICAL_STANDARDE) #15, !srcloc !4 - br i1 %52, label %invoke.cont129, label %cleanup642 + br i1 %49, label %invoke.cont129, label %cleanup642 invoke.cont129: ; preds = %invoke.cont122 - %53 = load i16, ptr %fUnion2.i, align 8 - %cmp.i.i218 = icmp slt i16 %53, 0 - %54 = ashr i16 %53, 5 - %shr.i.i = sext i16 %54 to i32 - %55 = load i32, ptr %fLength.i, align 4 - %cond.i = select i1 %cmp.i.i218, i32 %55, i32 %shr.i.i + %50 = load i16, ptr %fUnion2.i, align 8 + %cmp.i.i218 = icmp slt i16 %50, 0 + %51 = ashr i16 %50, 5 + %shr.i.i = sext i16 %51 to i32 + %52 = load i32, ptr %fLength.i, align 4 + %cond.i = select i1 %cmp.i.i218, i32 %52, i32 %shr.i.i %cmp131 = icmp eq i32 %cond.i, 0 br i1 %cmp131, label %cleanup642, label %if.end133 lpad103: ; preds = %if.else100 - %56 = landingpad { ptr, i32 } + %53 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L10ICAL_BEGINE) #15, !srcloc !4 br label %ehcleanup643 lpad112: ; preds = %if.then109 - %57 = landingpad { ptr, i32 } + %54 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L13ICAL_DAYLIGHTE) #15, !srcloc !4 br label %ehcleanup643 lpad121: ; preds = %invoke.cont113 - %58 = landingpad { ptr, i32 } + %55 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L13ICAL_STANDARDE) #15, !srcloc !4 br label %ehcleanup643 if.end133: ; preds = %invoke.cont129 - %59 = load i32, ptr %count.i322, align 8 - %cmp136.not = icmp eq i32 %59, 0 + %56 = load i32, ptr %count.i322, align 8 + %cmp136.not = icmp eq i32 %56, 0 br i1 %cmp136.not, label %invoke.cont142, label %if.then137 if.then137: ; preds = %if.end133 @@ -3145,33 +3139,33 @@ if.then137: ; preds = %if.end133 to label %invoke.cont142 unwind label %lpad21.loopexit invoke.cont142: ; preds = %if.then137, %if.end133 - %60 = load i16, ptr %fUnion2.i138, align 8 - %conv2.i3.i = and i16 %60, 1 + %57 = load i16, ptr %fUnion2.i138, align 8 + %conv2.i3.i = and i16 %57, 1 %tobool.not.i = icmp eq i16 %conv2.i3.i, 0 - %61 = and i16 %60, 30 - %storemerge.i = select i1 %tobool.not.i, i16 %61, i16 2 + %58 = and i16 %57, 30 + %storemerge.i = select i1 %tobool.not.i, i16 %58, i16 2 store i16 %storemerge.i, ptr %fUnion2.i138, align 8 - %62 = load i16, ptr %fUnion2.i139, align 8 - %conv2.i3.i222 = and i16 %62, 1 + %59 = load i16, ptr %fUnion2.i139, align 8 + %conv2.i3.i222 = and i16 %59, 1 %tobool.not.i223 = icmp eq i16 %conv2.i3.i222, 0 - %63 = and i16 %62, 30 - %storemerge.i224 = select i1 %tobool.not.i223, i16 %63, i16 2 + %60 = and i16 %59, 30 + %storemerge.i224 = select i1 %tobool.not.i223, i16 %60, i16 2 store i16 %storemerge.i224, ptr %fUnion2.i139, align 8 - %64 = load i16, ptr %fUnion2.i140, align 8 - %conv2.i3.i226 = and i16 %64, 1 + %61 = load i16, ptr %fUnion2.i140, align 8 + %conv2.i3.i226 = and i16 %61, 1 %tobool.not.i227 = icmp eq i16 %conv2.i3.i226, 0 - %65 = and i16 %64, 30 - %storemerge.i228 = select i1 %tobool.not.i227, i16 %65, i16 2 + %62 = and i16 %61, 30 + %storemerge.i228 = select i1 %tobool.not.i227, i16 %62, i16 2 store i16 %storemerge.i228, ptr %fUnion2.i140, align 8 br label %for.inc if.else148: ; preds = %invoke.cont104 - %66 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i230 = icmp slt i16 %66, 0 - %67 = ashr i16 %66, 5 - %shr.i.i.i231 = sext i16 %67 to i32 - %68 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i233 = select i1 %cmp.i.i.i230, i32 %68, i32 %shr.i.i.i231 + %63 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i230 = icmp slt i16 %63, 0 + %64 = ashr i16 %63, 5 + %shr.i.i.i231 = sext i16 %64 to i32 + %65 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i233 = select i1 %cmp.i.i.i230, i32 %65, i32 %shr.i.i.i231 %call3.i234 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i233, ptr noundef nonnull @_ZN6icu_75L8ICAL_ENDE, i32 noundef 0, i32 noundef -1) to label %invoke.cont152 unwind label %lpad151 @@ -3180,19 +3174,13 @@ invoke.cont152: ; preds = %if.else148 br label %for.inc lpad151: ; preds = %if.else148 - %69 = landingpad { ptr, i32 } + %66 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L8ICAL_ENDE) #15, !srcloc !4 br label %ehcleanup643 sw.bb163: ; preds = %invoke.cont41 - %70 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i237 = icmp slt i16 %70, 0 - %71 = ashr i16 %70, 5 - %shr.i.i.i238 = sext i16 %71 to i32 - %72 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i240 = select i1 %cmp.i.i.i237, i32 %72, i32 %shr.i.i.i238 - %call3.i241 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i240, ptr noundef nonnull @_ZN6icu_75L12ICAL_DTSTARTE, i32 noundef 0, i32 noundef -1) + %call3.i241 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i165, ptr noundef nonnull @_ZN6icu_75L12ICAL_DTSTARTE, i32 noundef 0, i32 noundef -1) to label %invoke.cont167 unwind label %lpad166 invoke.cont167: ; preds = %sw.bb163 @@ -3201,23 +3189,23 @@ invoke.cont167: ; preds = %sw.bb163 br i1 %cmp170, label %if.then172.invoke, label %if.else175 if.then172.invoke: ; preds = %invoke.cont203, %invoke.cont191, %invoke.cont179, %invoke.cont167 - %73 = phi ptr [ %dtstart, %invoke.cont167 ], [ %zonename, %invoke.cont179 ], [ %from, %invoke.cont191 ], [ %to, %invoke.cont203 ] - %74 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeStringaSERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %73, ptr noundef nonnull align 8 dereferenceable(64) %value) + %67 = phi ptr [ %dtstart, %invoke.cont167 ], [ %zonename, %invoke.cont179 ], [ %from, %invoke.cont191 ], [ %to, %invoke.cont203 ] + %68 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeStringaSERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %67, ptr noundef nonnull align 8 dereferenceable(64) %value) to label %for.inc unwind label %lpad21.loopexit lpad166: ; preds = %sw.bb163 - %75 = landingpad { ptr, i32 } + %69 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L12ICAL_DTSTARTE) #15, !srcloc !4 br label %ehcleanup643 if.else175: ; preds = %invoke.cont167 - %76 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i244 = icmp slt i16 %76, 0 - %77 = ashr i16 %76, 5 - %shr.i.i.i245 = sext i16 %77 to i32 - %78 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i247 = select i1 %cmp.i.i.i244, i32 %78, i32 %shr.i.i.i245 + %70 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i244 = icmp slt i16 %70, 0 + %71 = ashr i16 %70, 5 + %shr.i.i.i245 = sext i16 %71 to i32 + %72 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i247 = select i1 %cmp.i.i.i244, i32 %72, i32 %shr.i.i.i245 %call3.i248 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i247, ptr noundef nonnull @_ZN6icu_75L11ICAL_TZNAMEE, i32 noundef 0, i32 noundef -1) to label %invoke.cont179 unwind label %lpad178 @@ -3227,18 +3215,18 @@ invoke.cont179: ; preds = %if.else175 br i1 %cmp182, label %if.then172.invoke, label %if.else187 lpad178: ; preds = %if.else175 - %79 = landingpad { ptr, i32 } + %73 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L11ICAL_TZNAMEE) #15, !srcloc !4 br label %ehcleanup643 if.else187: ; preds = %invoke.cont179 - %80 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i251 = icmp slt i16 %80, 0 - %81 = ashr i16 %80, 5 - %shr.i.i.i252 = sext i16 %81 to i32 - %82 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i254 = select i1 %cmp.i.i.i251, i32 %82, i32 %shr.i.i.i252 + %74 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i251 = icmp slt i16 %74, 0 + %75 = ashr i16 %74, 5 + %shr.i.i.i252 = sext i16 %75 to i32 + %76 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i254 = select i1 %cmp.i.i.i251, i32 %76, i32 %shr.i.i.i252 %call3.i255 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i254, ptr noundef nonnull @_ZN6icu_75L17ICAL_TZOFFSETFROME, i32 noundef 0, i32 noundef -1) to label %invoke.cont191 unwind label %lpad190 @@ -3248,18 +3236,18 @@ invoke.cont191: ; preds = %if.else187 br i1 %cmp194, label %if.then172.invoke, label %if.else199 lpad190: ; preds = %if.else187 - %83 = landingpad { ptr, i32 } + %77 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L17ICAL_TZOFFSETFROME) #15, !srcloc !4 br label %ehcleanup643 if.else199: ; preds = %invoke.cont191 - %84 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i258 = icmp slt i16 %84, 0 - %85 = ashr i16 %84, 5 - %shr.i.i.i259 = sext i16 %85 to i32 - %86 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i261 = select i1 %cmp.i.i.i258, i32 %86, i32 %shr.i.i.i259 + %78 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i258 = icmp slt i16 %78, 0 + %79 = ashr i16 %78, 5 + %shr.i.i.i259 = sext i16 %79 to i32 + %80 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i261 = select i1 %cmp.i.i.i258, i32 %80, i32 %shr.i.i.i259 %call3.i262 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i261, ptr noundef nonnull @_ZN6icu_75L15ICAL_TZOFFSETTOE, i32 noundef 0, i32 noundef -1) to label %invoke.cont203 unwind label %lpad202 @@ -3269,18 +3257,18 @@ invoke.cont203: ; preds = %if.else199 br i1 %cmp206, label %if.then172.invoke, label %if.else211 lpad202: ; preds = %if.else199 - %87 = landingpad { ptr, i32 } + %81 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L15ICAL_TZOFFSETTOE) #15, !srcloc !4 br label %ehcleanup643 if.else211: ; preds = %invoke.cont203 - %88 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i265 = icmp slt i16 %88, 0 - %89 = ashr i16 %88, 5 - %shr.i.i.i266 = sext i16 %89 to i32 - %90 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i268 = select i1 %cmp.i.i.i265, i32 %90, i32 %shr.i.i.i266 + %82 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i265 = icmp slt i16 %82, 0 + %83 = ashr i16 %82, 5 + %shr.i.i.i266 = sext i16 %83 to i32 + %84 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i268 = select i1 %cmp.i.i.i265, i32 %84, i32 %shr.i.i.i266 %call3.i269 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i268, ptr noundef nonnull @_ZN6icu_75L10ICAL_RDATEE, i32 noundef 0, i32 noundef -1) to label %invoke.cont215 unwind label %lpad214 @@ -3294,7 +3282,7 @@ if.then220: ; preds = %invoke.cont215 br i1 %tobool221.not, label %while.body, label %cleanup642 lpad214: ; preds = %if.else211 - %91 = landingpad { ptr, i32 } + %85 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L10ICAL_RDATEE) #15, !srcloc !4 br label %ehcleanup643 @@ -3317,16 +3305,16 @@ entry._ZNK6icu_7513UnicodeString8pinIndexERi.exit_crit_edge.i283: ; preds = %whi if.else.i.i273: ; preds = %while.body %cmp.i.i.i.i274 = icmp slt i16 %.pre.i272, 0 - %92 = load i32, ptr %fLength.i.i157, align 4 - %cond.i.i.i277 = select i1 %cmp.i.i.i.i274, i32 %92, i32 %.pre5.i + %86 = load i32, ptr %fLength.i.i157, align 4 + %cond.i.i.i277 = select i1 %cmp.i.i.i.i274, i32 %86, i32 %.pre5.i %spec.select.i278 = call i32 @llvm.smin.i32(i32 %cond.i.i.i277, i32 %dstart.0594) br label %_ZNK6icu_7513UnicodeString8pinIndexERi.exit.i279 _ZNK6icu_7513UnicodeString8pinIndexERi.exit.i279: ; preds = %if.else.i.i273, %entry._ZNK6icu_7513UnicodeString8pinIndexERi.exit_crit_edge.i283 - %93 = phi i32 [ %.pre3.i, %entry._ZNK6icu_7513UnicodeString8pinIndexERi.exit_crit_edge.i283 ], [ %92, %if.else.i.i273 ] + %87 = phi i32 [ %.pre3.i, %entry._ZNK6icu_7513UnicodeString8pinIndexERi.exit_crit_edge.i283 ], [ %86, %if.else.i.i273 ] %start.addr.0.i = phi i32 [ 0, %entry._ZNK6icu_7513UnicodeString8pinIndexERi.exit_crit_edge.i283 ], [ %spec.select.i278, %if.else.i.i273 ] %cmp.i.i.i280 = icmp slt i16 %.pre.i272, 0 - %cond.i.i281 = select i1 %cmp.i.i.i280, i32 %93, i32 %.pre5.i + %cond.i.i281 = select i1 %cmp.i.i.i280, i32 %87, i32 %.pre5.i %sub.i282 = sub nsw i32 %cond.i.i281, %start.addr.0.i %call2.i284 = invoke noundef i32 @_ZNK6icu_7513UnicodeString9doIndexOfEDsii(ptr noundef nonnull align 8 dereferenceable(64) %value, i16 noundef zeroext 44, i32 noundef %start.addr.0.i, i32 noundef %sub.i282) to label %invoke.cont227 unwind label %lpad226 @@ -3345,13 +3333,13 @@ new.notnull: ; preds = %if.then230 to label %new.cont unwind label %lpad233 new.cont: ; preds = %new.notnull - %94 = load i32, ptr %status, align 4 - %cmp.i.i285 = icmp sgt i32 %94, 0 + %88 = load i32, ptr %status, align 4 + %cmp.i.i285 = icmp sgt i32 %88, 0 br i1 %cmp.i.i285, label %delete.notnull5.i, label %if.end254 new.cont.thread: ; preds = %if.then230 - %95 = load i32, ptr %status, align 4 - %cmp.i.i285498 = icmp sgt i32 %95, 0 + %89 = load i32, ptr %status, align 4 + %cmp.i.i285498 = icmp sgt i32 %89, 0 br i1 %cmp.i.i285498, label %if.end254, label %if.then3.i if.then3.i: ; preds = %new.cont.thread @@ -3361,17 +3349,17 @@ if.then3.i: ; preds = %new.cont.thread delete.notnull5.i: ; preds = %new.cont %vtable6.i = load ptr, ptr %call231, align 8 %vfn7.i = getelementptr inbounds ptr, ptr %vtable6.i, i64 1 - %96 = load ptr, ptr %vfn7.i, align 8 - call void %96(ptr noundef nonnull align 8 dereferenceable(64) %call231) #15 + %90 = load ptr, ptr %vfn7.i, align 8 + call void %90(ptr noundef nonnull align 8 dereferenceable(64) %call231) #15 br label %if.end254 lpad226: ; preds = %_ZNK6icu_7513UnicodeString8pinIndexERi.exit.i279, %if.end254 - %97 = landingpad { ptr, i32 } + %91 = landingpad { ptr, i32 } cleanup br label %ehcleanup643 lpad233: ; preds = %new.notnull - %98 = landingpad { ptr, i32 } + %92 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_757UMemorydlEPv(ptr noundef nonnull %call231) #15 br label %ehcleanup643 @@ -3385,13 +3373,13 @@ new.notnull243: ; preds = %if.else240 to label %new.cont252 unwind label %lpad246 new.cont252: ; preds = %new.notnull243 - %99 = load i32, ptr %status, align 4 - %cmp.i.i287 = icmp sgt i32 %99, 0 + %93 = load i32, ptr %status, align 4 + %cmp.i.i287 = icmp sgt i32 %93, 0 br i1 %cmp.i.i287, label %delete.notnull5.i298, label %if.end254 new.cont252.thread: ; preds = %if.else240 - %100 = load i32, ptr %status, align 4 - %cmp.i.i287501 = icmp sgt i32 %100, 0 + %94 = load i32, ptr %status, align 4 + %cmp.i.i287501 = icmp sgt i32 %94, 0 br i1 %cmp.i.i287501, label %if.end254, label %if.then3.i295 if.then3.i295: ; preds = %new.cont252.thread @@ -3401,12 +3389,12 @@ if.then3.i295: ; preds = %new.cont252.thread delete.notnull5.i298: ; preds = %new.cont252 %vtable6.i299 = load ptr, ptr %call231, align 8 %vfn7.i300 = getelementptr inbounds ptr, ptr %vtable6.i299, i64 1 - %101 = load ptr, ptr %vfn7.i300, align 8 - call void %101(ptr noundef nonnull align 8 dereferenceable(64) %call231) #15 + %95 = load ptr, ptr %vfn7.i300, align 8 + call void %95(ptr noundef nonnull align 8 dereferenceable(64) %call231) #15 br label %if.end254 lpad246: ; preds = %new.notnull243 - %102 = landingpad { ptr, i32 } + %96 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_757UMemorydlEPv(ptr noundef nonnull %call231) #15 br label %ehcleanup643 @@ -3417,17 +3405,17 @@ if.end254: ; preds = %new.cont252.thread, to label %invoke.cont257 unwind label %lpad226 invoke.cont257: ; preds = %if.end254 - %103 = load i32, ptr %status, align 4 - %cmp.i302 = icmp slt i32 %103, 1 + %97 = load i32, ptr %status, align 4 + %cmp.i302 = icmp slt i32 %97, 1 br i1 %cmp.i302, label %while.cond, label %cleanup642 if.else265: ; preds = %invoke.cont215 - %104 = load i16, ptr %fUnion2.i142, align 8 - %cmp.i.i.i316 = icmp slt i16 %104, 0 - %105 = ashr i16 %104, 5 - %shr.i.i.i317 = sext i16 %105 to i32 - %106 = load i32, ptr %fLength.i.i151, align 4 - %cond.i.i319 = select i1 %cmp.i.i.i316, i32 %106, i32 %shr.i.i.i317 + %98 = load i16, ptr %fUnion2.i142, align 8 + %cmp.i.i.i316 = icmp slt i16 %98, 0 + %99 = ashr i16 %98, 5 + %shr.i.i.i317 = sext i16 %99 to i32 + %100 = load i32, ptr %fLength.i.i151, align 4 + %cond.i.i319 = select i1 %cmp.i.i.i316, i32 %100, i32 %shr.i.i.i317 %call3.i320 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %name, i32 noundef 0, i32 noundef %cond.i.i319, ptr noundef nonnull @_ZN6icu_75L10ICAL_RRULEE, i32 noundef 0, i32 noundef -1) to label %invoke.cont269 unwind label %lpad268 @@ -3438,13 +3426,13 @@ invoke.cont269: ; preds = %if.else265 if.then274: ; preds = %invoke.cont269 %tobool275.not = icmp ne i8 %isRRULE.0600, 0 - %107 = load i32, ptr %count.i322, align 8 - %cmp278.not = icmp eq i32 %107, 0 + %101 = load i32, ptr %count.i322, align 8 + %cmp278.not = icmp eq i32 %101, 0 %or.cond530 = select i1 %tobool275.not, i1 true, i1 %cmp278.not br i1 %or.cond530, label %if.end280, label %cleanup642 lpad268: ; preds = %if.else265 - %108 = landingpad { ptr, i32 } + %102 = landingpad { ptr, i32 } cleanup call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr nonnull @_ZN6icu_75L10ICAL_RRULEE) #15, !srcloc !4 br label %ehcleanup643 @@ -3459,8 +3447,8 @@ new.notnull283: ; preds = %if.end280 to label %invoke.cont293 unwind label %lpad286 new.cont292: ; preds = %if.end280 - %109 = load i32, ptr %status, align 4 - %cmp.i.i324 = icmp sgt i32 %109, 0 + %103 = load i32, ptr %status, align 4 + %cmp.i.i324 = icmp sgt i32 %103, 0 br i1 %cmp.i.i324, label %invoke.cont293, label %if.then.i325 if.then.i325: ; preds = %new.cont292 @@ -3472,18 +3460,18 @@ invoke.cont293: ; preds = %new.notnull283, %if to label %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 unwind label %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit339 _ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333: ; preds = %invoke.cont293 - %110 = load i32, ptr %status, align 4 - %cmp.i326 = icmp slt i32 %110, 1 + %104 = load i32, ptr %status, align 4 + %cmp.i326 = icmp slt i32 %104, 1 br i1 %cmp.i326, label %for.inc, label %cleanup642 lpad286: ; preds = %new.notnull283 - %111 = landingpad { ptr, i32 } + %105 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_757UMemorydlEPv(ptr noundef nonnull %call281) #15 br label %ehcleanup643 _ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit339: ; preds = %invoke.cont293 - %112 = landingpad { ptr, i32 } + %106 = landingpad { ptr, i32 } cleanup br label %ehcleanup643 @@ -3494,54 +3482,54 @@ if.else307: ; preds = %invoke.cont269 invoke.cont311: ; preds = %if.else307 %cmp314 = icmp eq i8 %call312, 0 - %113 = load ptr, ptr %agg.tmp308, align 8 - call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr %113) #15, !srcloc !4 + %107 = load ptr, ptr %agg.tmp308, align 8 + call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr %107) #15, !srcloc !4 br i1 %cmp314, label %invoke.cont317, label %for.inc invoke.cont317: ; preds = %invoke.cont311 - %114 = load i16, ptr %fUnion2.i141, align 8 - %cmp.i.i341 = icmp slt i16 %114, 0 - %115 = ashr i16 %114, 5 - %shr.i.i342 = sext i16 %115 to i32 - %116 = load i32, ptr %fLength.i343, align 4 - %cond.i344 = select i1 %cmp.i.i341, i32 %116, i32 %shr.i.i342 + %108 = load i16, ptr %fUnion2.i141, align 8 + %cmp.i.i341 = icmp slt i16 %108, 0 + %109 = ashr i16 %108, 5 + %shr.i.i342 = sext i16 %109 to i32 + %110 = load i32, ptr %fLength.i343, align 4 + %cond.i344 = select i1 %cmp.i.i341, i32 %110, i32 %shr.i.i342 %cmp319 = icmp eq i32 %cond.i344, 0 br i1 %cmp319, label %cleanup642, label %invoke.cont321 invoke.cont321: ; preds = %invoke.cont317 - %117 = load i16, ptr %fUnion2.i138, align 8 - %cmp.i.i346 = icmp slt i16 %117, 0 - %118 = ashr i16 %117, 5 - %shr.i.i347 = sext i16 %118 to i32 - %119 = load i32, ptr %fLength.i348, align 4 - %cond.i349 = select i1 %cmp.i.i346, i32 %119, i32 %shr.i.i347 + %111 = load i16, ptr %fUnion2.i138, align 8 + %cmp.i.i346 = icmp slt i16 %111, 0 + %112 = ashr i16 %111, 5 + %shr.i.i347 = sext i16 %112 to i32 + %113 = load i32, ptr %fLength.i348, align 4 + %cond.i349 = select i1 %cmp.i.i346, i32 %113, i32 %shr.i.i347 %cmp323 = icmp eq i32 %cond.i349, 0 br i1 %cmp323, label %cleanup642, label %invoke.cont325 invoke.cont325: ; preds = %invoke.cont321 - %120 = load i16, ptr %fUnion2.i139, align 8 - %cmp.i.i351 = icmp slt i16 %120, 0 - %121 = ashr i16 %120, 5 - %shr.i.i352 = sext i16 %121 to i32 - %122 = load i32, ptr %fLength.i353, align 4 - %cond.i354 = select i1 %cmp.i.i351, i32 %122, i32 %shr.i.i352 + %114 = load i16, ptr %fUnion2.i139, align 8 + %cmp.i.i351 = icmp slt i16 %114, 0 + %115 = ashr i16 %114, 5 + %shr.i.i352 = sext i16 %115 to i32 + %116 = load i32, ptr %fLength.i353, align 4 + %cond.i354 = select i1 %cmp.i.i351, i32 %116, i32 %shr.i.i352 %cmp327 = icmp eq i32 %cond.i354, 0 br i1 %cmp327, label %cleanup642, label %invoke.cont330 lpad310: ; preds = %if.else307 - %123 = landingpad { ptr, i32 } + %117 = landingpad { ptr, i32 } cleanup - %124 = load ptr, ptr %agg.tmp308, align 8 - call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr %124) #15, !srcloc !4 + %118 = load ptr, ptr %agg.tmp308, align 8 + call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr %118) #15, !srcloc !4 br label %ehcleanup643 invoke.cont330: ; preds = %invoke.cont325 - %125 = load i16, ptr %fUnion2.i140, align 8 - %cmp.i.i356 = icmp slt i16 %125, 0 - %126 = ashr i16 %125, 5 - %shr.i.i357 = sext i16 %126 to i32 - %127 = load i32, ptr %fLength.i358, align 4 - %cond.i359 = select i1 %cmp.i.i356, i32 %127, i32 %shr.i.i357 + %119 = load i16, ptr %fUnion2.i140, align 8 + %cmp.i.i356 = icmp slt i16 %119, 0 + %120 = ashr i16 %119, 5 + %shr.i.i357 = sext i16 %120 to i32 + %121 = load i32, ptr %fLength.i358, align 4 + %cond.i359 = select i1 %cmp.i.i356, i32 %121, i32 %shr.i.i357 %cmp332 = icmp eq i32 %cond.i359, 0 br i1 %cmp332, label %if.then333, label %invoke.cont336 @@ -3553,22 +3541,22 @@ invoke.cont336: ; preds = %invoke.cont330, %if store ptr null, ptr %rule, align 8 %call339 = call fastcc noundef i32 @_ZN6icu_75L17offsetStrToMillisERKNS_13UnicodeStringER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(64) %from, ptr noundef nonnull align 4 dereferenceable(4) %status) %call341 = call fastcc noundef i32 @_ZN6icu_75L17offsetStrToMillisERKNS_13UnicodeStringER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(64) %to, ptr noundef nonnull align 4 dereferenceable(4) %status) - %128 = load i32, ptr %status, align 4 - %cmp.i360 = icmp slt i32 %128, 1 + %122 = load i32, ptr %status, align 4 + %cmp.i360 = icmp slt i32 %122, 1 br i1 %cmp.i360, label %if.end346, label %cleanup642 lpad337: ; preds = %if.end399, %if.else379, %if.else370, %if.then366, %if.end357 - %129 = landingpad { ptr, i32 } + %123 = landingpad { ptr, i32 } cleanup - %130 = load ptr, ptr %rule, align 8 - %isnull.i362 = icmp eq ptr %130, null + %124 = load ptr, ptr %rule, align 8 + %isnull.i362 = icmp eq ptr %124, null br i1 %isnull.i362, label %ehcleanup643, label %delete.notnull.i363 delete.notnull.i363: ; preds = %lpad337 - %vtable.i364 = load ptr, ptr %130, align 8 + %vtable.i364 = load ptr, ptr %124, align 8 %vfn.i365 = getelementptr inbounds ptr, ptr %vtable.i364, i64 1 - %131 = load ptr, ptr %vfn.i365, align 8 - call void %131(ptr noundef nonnull align 8 dereferenceable(80) %130) #15 + %125 = load ptr, ptr %vfn.i365, align 8 + call void %125(ptr noundef nonnull align 8 dereferenceable(80) %124) #15 br label %ehcleanup643 if.end346: ; preds = %invoke.cont336 @@ -3590,8 +3578,8 @@ if.end357: ; preds = %if.then348, %if.end to label %invoke.cont358 unwind label %lpad337 invoke.cont358: ; preds = %if.end357 - %132 = load i32, ptr %status, align 4 - %cmp.i367 = icmp slt i32 %132, 1 + %126 = load i32, ptr %status, align 4 + %cmp.i367 = icmp slt i32 %126, 1 br i1 %cmp.i367, label %if.end364, label %cleanup408 if.end364: ; preds = %invoke.cont358 @@ -3610,16 +3598,16 @@ if.else370: ; preds = %if.end364 if.end374: ; preds = %if.else370, %if.then366 %call372.sink = phi ptr [ %call368, %if.then366 ], [ %call372, %if.else370 ] call void @_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEE29adoptInsteadAndCheckErrorCodeEPS1_R10UErrorCode(ptr noundef nonnull align 8 dereferenceable(8) %rule, ptr noundef %call372.sink, ptr noundef nonnull align 4 dereferenceable(4) %status) - %133 = load i32, ptr %status, align 4 - %cmp.i369 = icmp slt i32 %133, 1 + %127 = load i32, ptr %status, align 4 + %cmp.i369 = icmp slt i32 %127, 1 br i1 %cmp.i369, label %if.else379, label %cleanup408 if.else379: ; preds = %if.end374 - %134 = load ptr, ptr %rule, align 8 - %vtable = load ptr, ptr %134, align 8 + %128 = load ptr, ptr %rule, align 8 + %vtable = load ptr, ptr %128, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 7 - %135 = load ptr, ptr %vfn, align 8 - %call383 = invoke noundef signext i8 %135(ptr noundef nonnull align 8 dereferenceable(80) %134, i32 noundef %call339, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %actualStart) + %129 = load ptr, ptr %vfn, align 8 + %call383 = invoke noundef signext i8 %129(ptr noundef nonnull align 8 dereferenceable(80) %128, i32 noundef %call339, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %actualStart) to label %invoke.cont382 unwind label %lpad337 invoke.cont382: ; preds = %if.else379 @@ -3627,8 +3615,8 @@ invoke.cont382: ; preds = %if.else379 br i1 %tobool384.not, label %if.end399, label %land.lhs.true385 land.lhs.true385: ; preds = %invoke.cont382 - %136 = load double, ptr %actualStart, align 8 - %cmp386 = fcmp olt double %136, %firstStart.0597 + %130 = load double, ptr %actualStart, align 8 + %cmp386 = fcmp olt double %130, %firstStart.0597 br i1 %cmp386, label %if.then387, label %if.end399 if.then387: ; preds = %land.lhs.true385 @@ -3642,17 +3630,17 @@ if.then387: ; preds = %land.lhs.true385 br label %if.end399 if.end399: ; preds = %if.then387, %invoke.cont382, %land.lhs.true385 - %firstStart.1 = phi double [ %firstStart.0597, %land.lhs.true385 ], [ %firstStart.0597, %invoke.cont382 ], [ %136, %if.then387 ] + %firstStart.1 = phi double [ %firstStart.0597, %land.lhs.true385 ], [ %firstStart.0597, %invoke.cont382 ], [ %130, %if.then387 ] %initialDSTSavings.1 = phi i32 [ %initialDSTSavings.0598, %land.lhs.true385 ], [ %initialDSTSavings.0598, %invoke.cont382 ], [ %spec.select136, %if.then387 ] %initialRawOffset.1 = phi i32 [ %initialRawOffset.0599, %land.lhs.true385 ], [ %initialRawOffset.0599, %invoke.cont382 ], [ %spec.select137, %if.then387 ] - %137 = load ptr, ptr %rule, align 8 + %131 = load ptr, ptr %rule, align 8 store ptr null, ptr %rule, align 8 - invoke void @_ZN6icu_757UVector12adoptElementEPvR10UErrorCode(ptr noundef nonnull align 8 dereferenceable(40) %rules, ptr noundef %137, ptr noundef nonnull align 4 dereferenceable(4) %status) + invoke void @_ZN6icu_757UVector12adoptElementEPvR10UErrorCode(ptr noundef nonnull align 8 dereferenceable(40) %rules, ptr noundef %131, ptr noundef nonnull align 4 dereferenceable(4) %status) to label %invoke.cont402 unwind label %lpad337 invoke.cont402: ; preds = %if.end399 - %138 = load i32, ptr %status, align 4 - %cmp.i371 = icmp slt i32 %138, 1 + %132 = load i32, ptr %status, align 4 + %cmp.i371 = icmp slt i32 %132, 1 %.130 = select i1 %cmp.i371, i32 1, i32 2 br label %cleanup408 @@ -3669,33 +3657,36 @@ cleanup408: ; preds = %invoke.cont402, %if delete.notnull.i374: ; preds = %cleanup408 %vtable.i375 = load ptr, ptr %.pr, align 8 %vfn.i376 = getelementptr inbounds ptr, ptr %vtable.i375, i64 1 - %139 = load ptr, ptr %vfn.i376, align 8 - call void %139(ptr noundef nonnull align 8 dereferenceable(80) %.pr) #15 + %133 = load ptr, ptr %vfn.i376, align 8 + call void %133(ptr noundef nonnull align 8 dereferenceable(80) %.pr) #15 br i1 %cond1.ph, label %for.inc, label %cleanup642 _ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378: ; preds = %cleanup408 br i1 %cond1.ph, label %for.inc, label %cleanup642 -for.inc: ; preds = %while.cond, %if.then172.invoke, %if.then69.invoke, %delete.notnull.i374, %cleanup.done, %cleanup.done.thread, %invoke.cont142, %invoke.cont152, %invoke.cont41, %invoke.cont93, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378, %invoke.cont311, %invoke.cont34 - %firstStart.3 = phi double [ %firstStart.0597, %invoke.cont34 ], [ %firstStart.0597, %invoke.cont41 ], [ %firstStart.0597, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %firstStart.2.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %firstStart.0597, %invoke.cont311 ], [ %firstStart.0597, %invoke.cont93 ], [ %firstStart.0597, %invoke.cont152 ], [ %firstStart.0597, %invoke.cont142 ], [ %firstStart.0597, %cleanup.done.thread ], [ %firstStart.0597, %cleanup.done ], [ %firstStart.2.ph, %delete.notnull.i374 ], [ %firstStart.0597, %if.then69.invoke ], [ %firstStart.0597, %if.then172.invoke ], [ %firstStart.0597, %while.cond ] - %initialDSTSavings.3 = phi i32 [ %initialDSTSavings.0598, %invoke.cont34 ], [ %initialDSTSavings.0598, %invoke.cont41 ], [ %initialDSTSavings.0598, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %initialDSTSavings.2.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %initialDSTSavings.0598, %invoke.cont311 ], [ %initialDSTSavings.0598, %invoke.cont93 ], [ %initialDSTSavings.0598, %invoke.cont152 ], [ %initialDSTSavings.0598, %invoke.cont142 ], [ %initialDSTSavings.0598, %cleanup.done.thread ], [ %initialDSTSavings.0598, %cleanup.done ], [ %initialDSTSavings.2.ph, %delete.notnull.i374 ], [ %initialDSTSavings.0598, %if.then69.invoke ], [ %initialDSTSavings.0598, %if.then172.invoke ], [ %initialDSTSavings.0598, %while.cond ] - %initialRawOffset.3 = phi i32 [ %initialRawOffset.0599, %invoke.cont34 ], [ %initialRawOffset.0599, %invoke.cont41 ], [ %initialRawOffset.0599, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %initialRawOffset.2.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %initialRawOffset.0599, %invoke.cont311 ], [ %initialRawOffset.0599, %invoke.cont93 ], [ %initialRawOffset.0599, %invoke.cont152 ], [ %initialRawOffset.0599, %invoke.cont142 ], [ %initialRawOffset.0599, %cleanup.done.thread ], [ %initialRawOffset.0599, %cleanup.done ], [ %initialRawOffset.2.ph, %delete.notnull.i374 ], [ %initialRawOffset.0599, %if.then69.invoke ], [ %initialRawOffset.0599, %if.then172.invoke ], [ %initialRawOffset.0599, %while.cond ] - %isRRULE.1 = phi i8 [ %isRRULE.0600, %invoke.cont34 ], [ %isRRULE.0600, %invoke.cont41 ], [ 1, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %isRRULE.0600, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %isRRULE.0600, %invoke.cont311 ], [ %isRRULE.0600, %invoke.cont93 ], [ %isRRULE.0600, %invoke.cont152 ], [ 0, %invoke.cont142 ], [ %isRRULE.0600, %cleanup.done.thread ], [ %isRRULE.0600, %cleanup.done ], [ %isRRULE.0600, %delete.notnull.i374 ], [ %isRRULE.0600, %if.then69.invoke ], [ %isRRULE.0600, %if.then172.invoke ], [ 0, %while.cond ] - %dst.1 = phi i8 [ %dst.0601, %invoke.cont34 ], [ %dst.0601, %invoke.cont41 ], [ %dst.0601, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %dst.0601, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %dst.0601, %invoke.cont311 ], [ %dst.0601, %invoke.cont93 ], [ %dst.0601, %invoke.cont152 ], [ %conv117, %invoke.cont142 ], [ %dst.0601, %cleanup.done.thread ], [ %dst.0601, %cleanup.done ], [ %dst.0601, %delete.notnull.i374 ], [ %dst.0601, %if.then69.invoke ], [ %dst.0601, %if.then172.invoke ], [ %dst.0601, %while.cond ] - %state.2 = phi i32 [ %state.0603, %invoke.cont34 ], [ %state.0603, %invoke.cont41 ], [ 2, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %state.1.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ 2, %invoke.cont311 ], [ 1, %invoke.cont93 ], [ 1, %invoke.cont152 ], [ 2, %invoke.cont142 ], [ 0, %cleanup.done.thread ], [ %spec.select, %cleanup.done ], [ %state.1.ph, %delete.notnull.i374 ], [ 1, %if.then69.invoke ], [ 2, %if.then172.invoke ], [ 2, %while.cond ] +default.unreachable: ; preds = %invoke.cont41 + unreachable + +for.inc: ; preds = %while.cond, %if.then172.invoke, %if.then69.invoke, %delete.notnull.i374, %cleanup.done, %cleanup.done.thread, %invoke.cont142, %invoke.cont152, %invoke.cont93, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378, %invoke.cont311, %invoke.cont34 + %firstStart.3 = phi double [ %firstStart.0597, %invoke.cont34 ], [ %firstStart.0597, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %firstStart.2.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %firstStart.0597, %invoke.cont311 ], [ %firstStart.0597, %invoke.cont93 ], [ %firstStart.0597, %invoke.cont152 ], [ %firstStart.0597, %invoke.cont142 ], [ %firstStart.0597, %cleanup.done.thread ], [ %firstStart.0597, %cleanup.done ], [ %firstStart.2.ph, %delete.notnull.i374 ], [ %firstStart.0597, %if.then69.invoke ], [ %firstStart.0597, %if.then172.invoke ], [ %firstStart.0597, %while.cond ] + %initialDSTSavings.3 = phi i32 [ %initialDSTSavings.0598, %invoke.cont34 ], [ %initialDSTSavings.0598, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %initialDSTSavings.2.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %initialDSTSavings.0598, %invoke.cont311 ], [ %initialDSTSavings.0598, %invoke.cont93 ], [ %initialDSTSavings.0598, %invoke.cont152 ], [ %initialDSTSavings.0598, %invoke.cont142 ], [ %initialDSTSavings.0598, %cleanup.done.thread ], [ %initialDSTSavings.0598, %cleanup.done ], [ %initialDSTSavings.2.ph, %delete.notnull.i374 ], [ %initialDSTSavings.0598, %if.then69.invoke ], [ %initialDSTSavings.0598, %if.then172.invoke ], [ %initialDSTSavings.0598, %while.cond ] + %initialRawOffset.3 = phi i32 [ %initialRawOffset.0599, %invoke.cont34 ], [ %initialRawOffset.0599, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %initialRawOffset.2.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %initialRawOffset.0599, %invoke.cont311 ], [ %initialRawOffset.0599, %invoke.cont93 ], [ %initialRawOffset.0599, %invoke.cont152 ], [ %initialRawOffset.0599, %invoke.cont142 ], [ %initialRawOffset.0599, %cleanup.done.thread ], [ %initialRawOffset.0599, %cleanup.done ], [ %initialRawOffset.2.ph, %delete.notnull.i374 ], [ %initialRawOffset.0599, %if.then69.invoke ], [ %initialRawOffset.0599, %if.then172.invoke ], [ %initialRawOffset.0599, %while.cond ] + %isRRULE.1 = phi i8 [ %isRRULE.0600, %invoke.cont34 ], [ 1, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %isRRULE.0600, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %isRRULE.0600, %invoke.cont311 ], [ %isRRULE.0600, %invoke.cont93 ], [ %isRRULE.0600, %invoke.cont152 ], [ 0, %invoke.cont142 ], [ %isRRULE.0600, %cleanup.done.thread ], [ %isRRULE.0600, %cleanup.done ], [ %isRRULE.0600, %delete.notnull.i374 ], [ %isRRULE.0600, %if.then69.invoke ], [ %isRRULE.0600, %if.then172.invoke ], [ 0, %while.cond ] + %dst.1 = phi i8 [ %dst.0601, %invoke.cont34 ], [ %dst.0601, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %dst.0601, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ %dst.0601, %invoke.cont311 ], [ %dst.0601, %invoke.cont93 ], [ %dst.0601, %invoke.cont152 ], [ %conv117, %invoke.cont142 ], [ %dst.0601, %cleanup.done.thread ], [ %dst.0601, %cleanup.done ], [ %dst.0601, %delete.notnull.i374 ], [ %dst.0601, %if.then69.invoke ], [ %dst.0601, %if.then172.invoke ], [ %dst.0601, %while.cond ] + %state.2 = phi i32 [ %state.0603, %invoke.cont34 ], [ 2, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333 ], [ %state.1.ph, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378 ], [ 2, %invoke.cont311 ], [ 1, %invoke.cont93 ], [ 1, %invoke.cont152 ], [ 2, %invoke.cont142 ], [ 0, %cleanup.done.thread ], [ %spec.select, %cleanup.done ], [ %state.1.ph, %delete.notnull.i374 ], [ 1, %if.then69.invoke ], [ 2, %if.then172.invoke ], [ 2, %while.cond ] %inc = add nuw nsw i32 %n.0602, 1 - %140 = load ptr, ptr %vtzlines, align 8 - %count.i146 = getelementptr inbounds %"class.icu_75::UVector", ptr %140, i64 0, i32 1 - %141 = load i32, ptr %count.i146, align 8 - %cmp30 = icmp slt i32 %inc, %141 + %134 = load ptr, ptr %vtzlines, align 8 + %count.i146 = getelementptr inbounds %"class.icu_75::UVector", ptr %134, i64 0, i32 1 + %135 = load i32, ptr %count.i146, align 8 + %cmp30 = icmp slt i32 %inc, %135 br i1 %cmp30, label %for.body, label %for.end, !llvm.loop !13 for.end: ; preds = %for.inc, %for.cond.preheader %initialDSTSavings.0.lcssa = phi i32 [ 0, %for.cond.preheader ], [ %initialDSTSavings.3, %for.inc ] %initialRawOffset.0.lcssa = phi i32 [ 0, %for.cond.preheader ], [ %initialRawOffset.3, %for.inc ] %count.i385 = getelementptr inbounds %"class.icu_75::UVector", ptr %rules, i64 0, i32 1 - %142 = load i32, ptr %count.i385, align 8 - %cmp421 = icmp eq i32 %142, 0 + %136 = load i32, ptr %count.i385, align 8 + %cmp421 = icmp eq i32 %136, 0 br i1 %cmp421, label %cleanup642, label %if.end423 if.end423: ; preds = %for.end @@ -3712,8 +3703,8 @@ new.notnull427: ; preds = %invoke.cont424 to label %invoke.cont437 unwind label %lpad430 new.cont436: ; preds = %invoke.cont424 - %143 = load i32, ptr %status, align 4 - %cmp.i.i387 = icmp sgt i32 %143, 0 + %137 = load i32, ptr %status, align 4 + %cmp.i.i387 = icmp sgt i32 %137, 0 br i1 %cmp.i.i387, label %cleanup642, label %if.then.i389 if.then.i389: ; preds = %new.cont436 @@ -3726,7 +3717,7 @@ invoke.cont437: ; preds = %new.notnull427 br i1 %cmp.i390, label %if.end443, label %delete.notnull.i438 lpad430: ; preds = %new.notnull427 - %144 = landingpad { ptr, i32 } + %138 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_757UMemorydlEPv(ptr noundef nonnull %call425) #15 br label %ehcleanup643 @@ -3741,8 +3732,8 @@ new.notnull446: ; preds = %if.end443 to label %invoke.cont458 unwind label %delete.notnull.i449 new.cont457: ; preds = %if.end443 - %145 = load i32, ptr %status, align 4 - %cmp.i.i393 = icmp sgt i32 %145, 0 + %139 = load i32, ptr %status, align 4 + %cmp.i.i393 = icmp sgt i32 %139, 0 br i1 %cmp.i.i393, label %delete.notnull.i438, label %if.then.i395 if.then.i395: ; preds = %new.cont457 @@ -3755,12 +3746,12 @@ invoke.cont458: ; preds = %new.notnull446 br i1 %cmp.i396, label %cleanup640, label %for.cond468.preheader for.cond468.preheader: ; preds = %invoke.cont458 - %146 = load i32, ptr %count.i385, align 8 - %cmp471605 = icmp sgt i32 %146, 0 + %140 = load i32, ptr %count.i385, align 8 + %cmp471605 = icmp sgt i32 %140, 0 br i1 %cmp471605, label %for.body472.lr.ph, label %while.cond611.preheader for.body472.lr.ph: ; preds = %for.cond468.preheader - %147 = load i32, ptr @_ZN6icu_7518AnnualTimeZoneRule8MAX_YEARE, align 4 + %141 = load i32, ptr @_ZN6icu_7518AnnualTimeZoneRule8MAX_YEARE, align 4 br label %for.body472 lpad459.loopexit: ; preds = %while.body615, %invoke.cont616 @@ -3792,20 +3783,20 @@ for.body472: ; preds = %for.body472.lr.ph, to label %invoke.cont473 unwind label %lpad459.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont473: ; preds = %for.body472 - %148 = icmp eq ptr %call474, null - br i1 %148, label %for.inc484, label %dynamic_cast.end + %142 = icmp eq ptr %call474, null + br i1 %142, label %for.inc484, label %dynamic_cast.end dynamic_cast.end: ; preds = %invoke.cont473 - %149 = call ptr @__dynamic_cast(ptr nonnull %call474, ptr nonnull @_ZTIN6icu_7512TimeZoneRuleE, ptr nonnull @_ZTIN6icu_7518AnnualTimeZoneRuleE, i64 0) #15 - %cmp475.not = icmp eq ptr %149, null + %143 = call ptr @__dynamic_cast(ptr nonnull %call474, ptr nonnull @_ZTIN6icu_7512TimeZoneRuleE, ptr nonnull @_ZTIN6icu_7518AnnualTimeZoneRuleE, i64 0) #15 + %cmp475.not = icmp eq ptr %143, null br i1 %cmp475.not, label %for.inc484, label %if.then476 if.then476: ; preds = %dynamic_cast.end - %call478 = invoke noundef i32 @_ZNK6icu_7518AnnualTimeZoneRule10getEndYearEv(ptr noundef nonnull align 8 dereferenceable(96) %149) + %call478 = invoke noundef i32 @_ZNK6icu_7518AnnualTimeZoneRule10getEndYearEv(ptr noundef nonnull align 8 dereferenceable(96) %143) to label %invoke.cont477 unwind label %lpad459.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont477: ; preds = %if.then476 - %cmp479 = icmp eq i32 %call478, %147 + %cmp479 = icmp eq i32 %call478, %141 %inc481 = zext i1 %cmp479 to i32 %spec.select131 = add nsw i32 %finalRuleCount.0606, %inc481 %spec.select132 = select i1 %cmp479, i32 %n.1608, i32 %finalRuleIdx.0607 @@ -3815,8 +3806,8 @@ for.inc484: ; preds = %invoke.cont473, %in %finalRuleCount.1 = phi i32 [ %finalRuleCount.0606, %dynamic_cast.end ], [ %spec.select131, %invoke.cont477 ], [ %finalRuleCount.0606, %invoke.cont473 ] %finalRuleIdx.1 = phi i32 [ %finalRuleIdx.0607, %dynamic_cast.end ], [ %spec.select132, %invoke.cont477 ], [ %finalRuleIdx.0607, %invoke.cont473 ] %inc485 = add nuw nsw i32 %n.1608, 1 - %150 = load i32, ptr %count.i385, align 8 - %cmp471 = icmp slt i32 %inc485, %150 + %144 = load i32, ptr %count.i385, align 8 + %cmp471 = icmp slt i32 %inc485, %144 br i1 %cmp471, label %for.body472, label %for.end486, !llvm.loop !14 for.end486: ; preds = %for.inc484 @@ -3835,7 +3826,7 @@ while.cond611.preheader: ; preds = %for.cond468.prehead br label %while.cond611 if.then491: ; preds = %if.end489 - %cmp494 = icmp eq i32 %150, 1 + %cmp494 = icmp eq i32 %144, 1 br i1 %cmp494, label %if.then495, label %if.else497 if.then495: ; preds = %if.then491 @@ -3857,15 +3848,15 @@ invoke.cont500: ; preds = %invoke.cont498 invoke.cont502: ; preds = %invoke.cont500 %vtable505 = load ptr, ptr %call499, align 8 %vfn506 = getelementptr inbounds ptr, ptr %vtable505, i64 7 - %151 = load ptr, ptr %vfn506, align 8 - %call508 = invoke noundef signext i8 %151(ptr noundef nonnull align 8 dereferenceable(96) %call499, i32 noundef %initialRawOffset.0.lcssa, i32 noundef %initialDSTSavings.0.lcssa, ptr noundef nonnull align 8 dereferenceable(8) %finalStart) + %145 = load ptr, ptr %vfn506, align 8 + %call508 = invoke noundef signext i8 %145(ptr noundef nonnull align 8 dereferenceable(96) %call499, i32 noundef %initialRawOffset.0.lcssa, i32 noundef %initialDSTSavings.0.lcssa, ptr noundef nonnull align 8 dereferenceable(8) %finalStart) to label %invoke.cont507 unwind label %lpad459.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont507: ; preds = %invoke.cont502 - %152 = load double, ptr %finalStart, align 8 - store double %152, ptr %start504, align 8 - %153 = load i32, ptr %count.i385, align 8 - %cmp512612 = icmp sgt i32 %153, 0 + %146 = load double, ptr %finalStart, align 8 + store double %146, ptr %start504, align 8 + %147 = load i32, ptr %count.i385, align 8 + %cmp512612 = icmp sgt i32 %147, 0 br i1 %cmp512612, label %for.body513, label %invoke.cont540 for.body513: ; preds = %invoke.cont507, %for.inc535 @@ -3880,14 +3871,14 @@ if.end516: ; preds = %for.body513 invoke.cont518: ; preds = %if.end516 %vtable520 = load ptr, ptr %call519, align 8 %vfn521 = getelementptr inbounds ptr, ptr %vtable520, i64 8 - %154 = load ptr, ptr %vfn521, align 8 - %call523 = invoke noundef signext i8 %154(ptr noundef nonnull align 8 dereferenceable(80) %call519, i32 noundef %call501, i32 noundef %call503, ptr noundef nonnull align 8 dereferenceable(8) %lastStart) + %148 = load ptr, ptr %vfn521, align 8 + %call523 = invoke noundef signext i8 %148(ptr noundef nonnull align 8 dereferenceable(80) %call519, i32 noundef %call501, i32 noundef %call503, ptr noundef nonnull align 8 dereferenceable(8) %lastStart) to label %invoke.cont522 unwind label %lpad459.loopexit.split-lp.loopexit invoke.cont522: ; preds = %invoke.cont518 - %155 = load double, ptr %lastStart, align 8 - %156 = load double, ptr %start504, align 8 - %cmp524 = fcmp ogt double %155, %156 + %149 = load double, ptr %lastStart, align 8 + %150 = load double, ptr %start504, align 8 + %cmp524 = fcmp ogt double %149, %150 br i1 %cmp524, label %if.then525, label %for.inc535 if.then525: ; preds = %invoke.cont522 @@ -3901,14 +3892,14 @@ invoke.cont526: ; preds = %if.then525 invoke.cont528: ; preds = %invoke.cont526 %vtable530 = load ptr, ptr %call499, align 8 %vfn531 = getelementptr inbounds ptr, ptr %vtable530, i64 9 - %157 = load ptr, ptr %vfn531, align 8 - %call533 = invoke noundef signext i8 %157(ptr noundef nonnull align 8 dereferenceable(96) %call499, double noundef %155, i32 noundef %call527, i32 noundef %call529, i8 noundef signext 0, ptr noundef nonnull align 8 dereferenceable(8) %start504) + %151 = load ptr, ptr %vfn531, align 8 + %call533 = invoke noundef signext i8 %151(ptr noundef nonnull align 8 dereferenceable(96) %call499, double noundef %149, i32 noundef %call527, i32 noundef %call529, i8 noundef signext 0, ptr noundef nonnull align 8 dereferenceable(8) %start504) to label %for.inc535 unwind label %lpad459.loopexit.split-lp.loopexit for.inc535: ; preds = %invoke.cont522, %invoke.cont528, %for.body513 %inc536 = add nuw nsw i32 %n.2613, 1 - %158 = load i32, ptr %count.i385, align 8 - %cmp512 = icmp slt i32 %inc536, %158 + %152 = load i32, ptr %count.i385, align 8 + %cmp512 = icmp slt i32 %inc536, %152 br i1 %cmp512, label %for.body513, label %invoke.cont540.loopexit, !llvm.loop !15 invoke.cont540.loopexit: ; preds = %for.inc535 @@ -3917,13 +3908,13 @@ invoke.cont540.loopexit: ; preds = %for.inc535 br label %invoke.cont540 invoke.cont540: ; preds = %invoke.cont540.loopexit, %invoke.cont507 - %159 = phi double [ %.pre619, %invoke.cont540.loopexit ], [ %152, %invoke.cont507 ] - %160 = phi double [ %.pre618, %invoke.cont540.loopexit ], [ %152, %invoke.cont507 ] + %153 = phi double [ %.pre619, %invoke.cont540.loopexit ], [ %146, %invoke.cont507 ] + %154 = phi double [ %.pre618, %invoke.cont540.loopexit ], [ %146, %invoke.cont507 ] store ptr null, ptr %newRule, align 8 store ptr getelementptr inbounds ({ [13 x ptr] }, ptr @_ZTVN6icu_7513UnicodeStringE, i64 0, inrange i32 0, i64 2), ptr %tznam, align 8 %fUnion2.i401 = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %tznam, i64 0, i32 1 store i16 2, ptr %fUnion2.i401, align 8 - %cmp541 = fcmp oeq double %160, %159 + %cmp541 = fcmp oeq double %154, %153 br i1 %cmp541, label %if.then542, label %if.else563 if.then542: ; preds = %invoke.cont540 @@ -3948,18 +3939,18 @@ invoke.cont553: ; preds = %invoke.cont551 to label %if.end588 unwind label %lpad548 lpad548: ; preds = %invoke.cont553, %invoke.cont551, %invoke.cont549, %new.notnull545 - %161 = landingpad { ptr, i32 } + %155 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_757UMemorydlEPv(ptr noundef nonnull %call543) #15 br label %ehcleanup604 lpad561: ; preds = %invoke.cont594, %if.end593, %if.else563 - %162 = landingpad { ptr, i32 } + %156 = landingpad { ptr, i32 } cleanup br label %ehcleanup604 if.else563: ; preds = %invoke.cont540 - invoke void @_ZN6icu_755Grego12timeToFieldsEdRiS1_S1_S1_S1_S1_(double noundef %160, ptr noundef nonnull align 4 dereferenceable(4) %y, ptr noundef nonnull align 4 dereferenceable(4) %m, ptr noundef nonnull align 4 dereferenceable(4) %d, ptr noundef nonnull align 4 dereferenceable(4) %dow, ptr noundef nonnull align 4 dereferenceable(4) %doy, ptr noundef nonnull align 4 dereferenceable(4) %mid) + invoke void @_ZN6icu_755Grego12timeToFieldsEdRiS1_S1_S1_S1_S1_(double noundef %154, ptr noundef nonnull align 4 dereferenceable(4) %y, ptr noundef nonnull align 4 dereferenceable(4) %m, ptr noundef nonnull align 4 dereferenceable(4) %d, ptr noundef nonnull align 4 dereferenceable(4) %dow, ptr noundef nonnull align 4 dereferenceable(4) %doy, ptr noundef nonnull align 4 dereferenceable(4) %mid) to label %invoke.cont564 unwind label %lpad561 invoke.cont564: ; preds = %if.else563 @@ -3988,12 +3979,12 @@ invoke.cont577: ; preds = %invoke.cont575 to label %invoke.cont579 unwind label %lpad570 invoke.cont579: ; preds = %invoke.cont577 - %163 = load i32, ptr %y, align 4 - invoke void @_ZN6icu_7518AnnualTimeZoneRuleC1ERKNS_13UnicodeStringEiiRKNS_12DateTimeRuleEii(ptr noundef nonnull align 8 dereferenceable(96) %call565, ptr noundef nonnull align 8 dereferenceable(64) %call572, i32 noundef %call574, i32 noundef %call576, ptr noundef nonnull align 8 dereferenceable(36) %call578, i32 noundef %call580, i32 noundef %163) + %157 = load i32, ptr %y, align 4 + invoke void @_ZN6icu_7518AnnualTimeZoneRuleC1ERKNS_13UnicodeStringEiiRKNS_12DateTimeRuleEii(ptr noundef nonnull align 8 dereferenceable(96) %call565, ptr noundef nonnull align 8 dereferenceable(64) %call572, i32 noundef %call574, i32 noundef %call576, ptr noundef nonnull align 8 dereferenceable(36) %call578, i32 noundef %call580, i32 noundef %157) to label %if.end588 unwind label %lpad570 lpad570: ; preds = %invoke.cont579, %invoke.cont577, %invoke.cont575, %invoke.cont573, %invoke.cont571, %new.notnull567 - %164 = landingpad { ptr, i32 } + %158 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_757UMemorydlEPv(ptr noundef nonnull %call565) #15 br label %ehcleanup604 @@ -4001,8 +3992,8 @@ lpad570: ; preds = %invoke.cont579, %in if.end588: ; preds = %invoke.cont564, %invoke.cont579, %if.then542, %invoke.cont553 %call565.sink = phi ptr [ %call543, %invoke.cont553 ], [ %call543, %if.then542 ], [ %call565, %invoke.cont579 ], [ %call565, %invoke.cont564 ] call void @_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEE29adoptInsteadAndCheckErrorCodeEPS1_R10UErrorCode(ptr noundef nonnull align 8 dereferenceable(8) %newRule, ptr noundef %call565.sink, ptr noundef nonnull align 4 dereferenceable(4) %status) - %165 = load i32, ptr %status, align 4 - %cmp.i402 = icmp slt i32 %165, 1 + %159 = load i32, ptr %status, align 4 + %cmp.i402 = icmp slt i32 %159, 1 br i1 %cmp.i402, label %if.end593, label %cleanup638.critedge if.end593: ; preds = %if.end588 @@ -4010,46 +4001,46 @@ if.end593: ; preds = %if.end588 to label %invoke.cont594 unwind label %lpad561 invoke.cont594: ; preds = %if.end593 - %166 = load ptr, ptr %newRule, align 8 + %160 = load ptr, ptr %newRule, align 8 store ptr null, ptr %newRule, align 8 - invoke void @_ZN6icu_757UVector12adoptElementEPvR10UErrorCode(ptr noundef nonnull align 8 dereferenceable(40) %rules, ptr noundef %166, ptr noundef nonnull align 4 dereferenceable(4) %status) + invoke void @_ZN6icu_757UVector12adoptElementEPvR10UErrorCode(ptr noundef nonnull align 8 dereferenceable(40) %rules, ptr noundef %160, ptr noundef nonnull align 4 dereferenceable(4) %status) to label %invoke.cont597 unwind label %lpad561 invoke.cont597: ; preds = %invoke.cont594 - %167 = load i32, ptr %status, align 4 - %cmp.i404 = icmp slt i32 %167, 1 + %161 = load i32, ptr %status, align 4 + %cmp.i404 = icmp slt i32 %161, 1 call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %tznam) #15 - %168 = load ptr, ptr %newRule, align 8 - %isnull.i406 = icmp eq ptr %168, null + %162 = load ptr, ptr %newRule, align 8 + %isnull.i406 = icmp eq ptr %162, null br i1 %isnull.i406, label %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit411, label %delete.notnull.i407 delete.notnull.i407: ; preds = %invoke.cont597 - %vtable.i408 = load ptr, ptr %168, align 8 + %vtable.i408 = load ptr, ptr %162, align 8 %vfn.i409 = getelementptr inbounds ptr, ptr %vtable.i408, i64 1 - %169 = load ptr, ptr %vfn.i409, align 8 - call void %169(ptr noundef nonnull align 8 dereferenceable(80) %168) #15 + %163 = load ptr, ptr %vfn.i409, align 8 + call void %163(ptr noundef nonnull align 8 dereferenceable(80) %162) #15 br label %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit411 _ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit411: ; preds = %invoke.cont597, %delete.notnull.i407 br i1 %cmp.i404, label %while.cond611.preheader, label %cleanup638 ehcleanup604: ; preds = %lpad570, %lpad548, %lpad561 - %.pn = phi { ptr, i32 } [ %162, %lpad561 ], [ %161, %lpad548 ], [ %164, %lpad570 ] + %.pn = phi { ptr, i32 } [ %156, %lpad561 ], [ %155, %lpad548 ], [ %158, %lpad570 ] call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %tznam) #15 - %170 = load ptr, ptr %newRule, align 8 - %isnull.i412 = icmp eq ptr %170, null + %164 = load ptr, ptr %newRule, align 8 + %isnull.i412 = icmp eq ptr %164, null br i1 %isnull.i412, label %ehcleanup639, label %delete.notnull.i413 delete.notnull.i413: ; preds = %ehcleanup604 - %vtable.i414 = load ptr, ptr %170, align 8 + %vtable.i414 = load ptr, ptr %164, align 8 %vfn.i415 = getelementptr inbounds ptr, ptr %vtable.i414, i64 1 - %171 = load ptr, ptr %vfn.i415, align 8 - call void %171(ptr noundef nonnull align 8 dereferenceable(80) %170) #15 + %165 = load ptr, ptr %vfn.i415, align 8 + call void %165(ptr noundef nonnull align 8 dereferenceable(80) %164) #15 br label %ehcleanup639 while.cond611: ; preds = %while.cond611.preheader, %invoke.cont620 - %172 = load i32, ptr %count.i385, align 8 - %cmp.i419.not = icmp eq i32 %172, 0 + %166 = load i32, ptr %count.i385, align 8 + %cmp.i419.not = icmp eq i32 %166, 0 br i1 %cmp.i419.not, label %while.end626, label %while.body615 while.body615: ; preds = %while.cond611 @@ -4061,8 +4052,8 @@ invoke.cont616: ; preds = %while.body615 to label %invoke.cont620 unwind label %lpad459.loopexit invoke.cont620: ; preds = %invoke.cont616 - %173 = load i32, ptr %status, align 4 - %cmp.i421 = icmp slt i32 %173, 1 + %167 = load i32, ptr %status, align 4 + %cmp.i421 = icmp slt i32 %167, 1 br i1 %cmp.i421, label %while.cond611, label %cleanup638, !llvm.loop !16 while.end626: ; preds = %while.cond611 @@ -4070,8 +4061,8 @@ while.end626: ; preds = %while.cond611 to label %invoke.cont629 unwind label %lpad459.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont629: ; preds = %while.end626 - %174 = load i32, ptr %status, align 4 - %cmp.i423 = icmp slt i32 %174, 1 + %168 = load i32, ptr %status, align 4 + %cmp.i423 = icmp slt i32 %168, 1 br i1 %cmp.i423, label %if.end634, label %cleanup638 if.end634: ; preds = %invoke.cont629 @@ -4083,15 +4074,15 @@ if.end634: ; preds = %invoke.cont629 cleanup638.critedge: ; preds = %if.end588 call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %tznam) #15 - %175 = load ptr, ptr %newRule, align 8 - %isnull.i426 = icmp eq ptr %175, null + %169 = load ptr, ptr %newRule, align 8 + %isnull.i426 = icmp eq ptr %169, null br i1 %isnull.i426, label %cleanup638, label %delete.notnull.i427 delete.notnull.i427: ; preds = %cleanup638.critedge - %vtable.i428 = load ptr, ptr %175, align 8 + %vtable.i428 = load ptr, ptr %169, align 8 %vfn.i429 = getelementptr inbounds ptr, ptr %vtable.i428, i64 1 - %176 = load ptr, ptr %vfn.i429, align 8 - call void %176(ptr noundef nonnull align 8 dereferenceable(80) %175) #15 + %170 = load ptr, ptr %vfn.i429, align 8 + call void %170(ptr noundef nonnull align 8 dereferenceable(80) %169) #15 br label %cleanup638 cleanup638: ; preds = %invoke.cont620, %delete.notnull.i427, %cleanup638.critedge, %invoke.cont629, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit411, %if.then488 @@ -4101,8 +4092,8 @@ cleanup640: ; preds = %invoke.cont458, %cl %initialRule.sroa.0.0652 = phi ptr [ null, %cleanup638 ], [ %call425, %invoke.cont458 ] %vtable.i434 = load ptr, ptr %call444, align 8 %vfn.i435 = getelementptr inbounds ptr, ptr %vtable.i434, i64 1 - %177 = load ptr, ptr %vfn.i435, align 8 - call void %177(ptr noundef nonnull align 8 dereferenceable(105) %call444) #15 + %171 = load ptr, ptr %vfn.i435, align 8 + call void %171(ptr noundef nonnull align 8 dereferenceable(105) %call444) #15 %isnull.i437 = icmp eq ptr %initialRule.sroa.0.0652, null br i1 %isnull.i437, label %cleanup642, label %delete.notnull.i438 @@ -4110,8 +4101,8 @@ delete.notnull.i438: ; preds = %if.then.i395, %new. %initialRule.sroa.0.1659 = phi ptr [ %initialRule.sroa.0.0652, %cleanup640 ], [ %call425, %invoke.cont437 ], [ %call425, %new.cont457 ], [ %call425, %if.then.i395 ] %vtable.i439 = load ptr, ptr %initialRule.sroa.0.1659, align 8 %vfn.i440 = getelementptr inbounds ptr, ptr %vtable.i439, i64 1 - %178 = load ptr, ptr %vfn.i440, align 8 - call void %178(ptr noundef nonnull align 8 dereferenceable(80) %initialRule.sroa.0.1659) #15 + %172 = load ptr, ptr %vfn.i440, align 8 + call void %172(ptr noundef nonnull align 8 dereferenceable(80) %initialRule.sroa.0.1659) #15 br label %cleanup642 cleanup642: ; preds = %invoke.cont336, %if.then274, %invoke.cont317, %invoke.cont321, %invoke.cont325, %if.then220, %invoke.cont122, %invoke.cont129, %invoke.cont93, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit333, %_ZN6icu_7512LocalPointerINS_12TimeZoneRuleEED2Ev.exit378, %delete.notnull.i374, %invoke.cont257, %new.cont436, %if.then.i389, %cleanup638, %if.end634, %delete.notnull.i438, %cleanup640, %for.end, %invoke.cont20 @@ -4138,22 +4129,22 @@ ehcleanup639: ; preds = %lpad459.loopexit, % delete.notnull.i443: ; preds = %ehcleanup639 %vtable.i444 = load ptr, ptr %rbtz.sroa.0.2, align 8 %vfn.i445 = getelementptr inbounds ptr, ptr %vtable.i444, i64 1 - %179 = load ptr, ptr %vfn.i445, align 8 - call void %179(ptr noundef nonnull align 8 dereferenceable(105) %rbtz.sroa.0.2) #15 + %173 = load ptr, ptr %vfn.i445, align 8 + call void %173(ptr noundef nonnull align 8 dereferenceable(105) %rbtz.sroa.0.2) #15 br label %ehcleanup643 delete.notnull.i449: ; preds = %new.notnull446 - %180 = landingpad { ptr, i32 } + %174 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_757UMemorydlEPv(ptr noundef nonnull %call444) #15 %vtable.i450 = load ptr, ptr %call425, align 8 %vfn.i451 = getelementptr inbounds ptr, ptr %vtable.i450, i64 1 - %181 = load ptr, ptr %vfn.i451, align 8 - call void %181(ptr noundef nonnull align 8 dereferenceable(80) %call425) #15 + %175 = load ptr, ptr %vfn.i451, align 8 + call void %175(ptr noundef nonnull align 8 dereferenceable(80) %call425) #15 br label %ehcleanup643 ehcleanup643: ; preds = %lpad21.loopexit, %lpad21.loopexit.split-lp, %delete.notnull.i443, %ehcleanup639, %delete.notnull.i449, %delete.notnull.i363, %lpad337, %lpad246, %lpad233, %lpad226, %lpad430, %lpad286, %lpad310, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit339, %lpad268, %lpad214, %lpad202, %lpad190, %lpad178, %lpad166, %lpad151, %lpad121, %lpad112, %lpad103, %lpad86, %lpad74, %lpad63, %ehcleanup - %.pn120 = phi { ptr, i32 } [ %112, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit339 ], [ %111, %lpad286 ], [ %123, %lpad310 ], [ %108, %lpad268 ], [ %91, %lpad214 ], [ %87, %lpad202 ], [ %83, %lpad190 ], [ %79, %lpad178 ], [ %75, %lpad166 ], [ %58, %lpad121 ], [ %57, %lpad112 ], [ %69, %lpad151 ], [ %56, %lpad103 ], [ %42, %lpad86 ], [ %37, %lpad74 ], [ %33, %lpad63 ], [ %.pn118, %ehcleanup ], [ %144, %lpad430 ], [ %97, %lpad226 ], [ %98, %lpad233 ], [ %102, %lpad246 ], [ %129, %lpad337 ], [ %129, %delete.notnull.i363 ], [ %180, %delete.notnull.i449 ], [ %.pn113, %ehcleanup639 ], [ %.pn113, %delete.notnull.i443 ], [ %lpad.loopexit536, %lpad21.loopexit ], [ %lpad.loopexit.split-lp537, %lpad21.loopexit.split-lp ] + %.pn120 = phi { ptr, i32 } [ %106, %_ZN6icu_7512LocalPointerINS_13UnicodeStringEED2Ev.exit339 ], [ %105, %lpad286 ], [ %117, %lpad310 ], [ %102, %lpad268 ], [ %85, %lpad214 ], [ %81, %lpad202 ], [ %77, %lpad190 ], [ %73, %lpad178 ], [ %69, %lpad166 ], [ %55, %lpad121 ], [ %54, %lpad112 ], [ %66, %lpad151 ], [ %53, %lpad103 ], [ %39, %lpad86 ], [ %34, %lpad74 ], [ %30, %lpad63 ], [ %.pn118, %ehcleanup ], [ %138, %lpad430 ], [ %91, %lpad226 ], [ %92, %lpad233 ], [ %96, %lpad246 ], [ %123, %lpad337 ], [ %123, %delete.notnull.i363 ], [ %174, %delete.notnull.i449 ], [ %.pn113, %ehcleanup639 ], [ %.pn113, %delete.notnull.i443 ], [ %lpad.loopexit536, %lpad21.loopexit ], [ %lpad.loopexit.split-lp537, %lpad21.loopexit.split-lp ] call void @_ZN6icu_757UVectorD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %dates) #15 br label %ehcleanup645 diff --git a/bench/libevent/optimized/http.c.ll b/bench/libevent/optimized/http.c.ll index 29c630612cc..5142a9bd2f7 100644 --- a/bench/libevent/optimized/http.c.ll +++ b/bench/libevent/optimized/http.c.ll @@ -8541,7 +8541,7 @@ if.end67.us: ; preds = %while.body22.us, %l br i1 %tobool21.not.us, label %return, label %while.body22.us, !llvm.loop !44 if.then: ; preds = %entry - switch i32 %part, label %return [ + switch i32 %part, label %default.unreachable [ i32 0, label %while.cond i32 1, label %while.cond8 i32 2, label %sw.bb19 @@ -8577,6 +8577,9 @@ sw.bb19: ; preds = %if.then %add.ptr = getelementptr inbounds i8, ptr %cp, i64 %call br label %return +default.unreachable: ; preds = %if.then + unreachable + while.body22: ; preds = %while.body22.lr.ph, %if.end67 %11 = phi i8 [ %19, %if.end67 ], [ %0, %while.body22.lr.ph ] %cp.addr.334 = phi ptr [ %add.ptr54, %if.end67 ], [ %cp, %while.body22.lr.ph ] @@ -8629,8 +8632,8 @@ if.end67: ; preds = %if.else55, %land.lh %tobool21.not = icmp eq i8 %19, 0 br i1 %tobool21.not, label %return, label %while.body22, !llvm.loop !44 -return: ; preds = %while.cond8, %while.cond8, %while.cond, %while.cond, %while.cond, %if.else55, %if.end67, %land.lhs.true49.us, %land.lhs.true45.us, %switch.early.test.us, %if.end67.us, %while.cond20.preheader, %if.then, %sw.bb19 - %retval.0 = phi ptr [ %cp, %if.then ], [ %add.ptr, %sw.bb19 ], [ %cp, %while.cond20.preheader ], [ %cp.addr.334.us, %land.lhs.true49.us ], [ %cp.addr.334.us, %land.lhs.true45.us ], [ %cp.addr.334.us, %switch.early.test.us ], [ %incdec.ptr41.us, %if.end67.us ], [ %cp.addr.334, %if.else55 ], [ %add.ptr54, %if.end67 ], [ %cp.addr.0, %while.cond ], [ %cp.addr.0, %while.cond ], [ %cp.addr.0, %while.cond ], [ %cp.addr.1, %while.cond8 ], [ %cp.addr.1, %while.cond8 ] +return: ; preds = %while.cond8, %while.cond8, %while.cond, %while.cond, %while.cond, %if.else55, %if.end67, %land.lhs.true49.us, %land.lhs.true45.us, %switch.early.test.us, %if.end67.us, %while.cond20.preheader, %sw.bb19 + %retval.0 = phi ptr [ %add.ptr, %sw.bb19 ], [ %cp, %while.cond20.preheader ], [ %cp.addr.334.us, %land.lhs.true49.us ], [ %cp.addr.334.us, %land.lhs.true45.us ], [ %cp.addr.334.us, %switch.early.test.us ], [ %incdec.ptr41.us, %if.end67.us ], [ %cp.addr.334, %if.else55 ], [ %add.ptr54, %if.end67 ], [ %cp.addr.0, %while.cond ], [ %cp.addr.0, %while.cond ], [ %cp.addr.0, %while.cond ], [ %cp.addr.1, %while.cond8 ], [ %cp.addr.1, %while.cond8 ] ret ptr %retval.0 } diff --git a/bench/libuv/optimized/core.c.ll b/bench/libuv/optimized/core.c.ll index 33575c6bb05..64942aa8901 100644 --- a/bench/libuv/optimized/core.c.ll +++ b/bench/libuv/optimized/core.c.ll @@ -91,12 +91,12 @@ sw.bb1: ; preds = %if.end sw.epilog: ; preds = %if.end, %sw.bb1 %.sink = phi i32 [ 0, %sw.bb1 ], [ 1, %if.end ] - %call2 = call i32 @clock_gettime(i32 noundef %.sink, ptr noundef nonnull %t) #24 + %call2 = call i32 @clock_gettime(i32 noundef %.sink, ptr noundef nonnull %t) #23 %tobool.not = icmp eq i32 %call2, 0 br i1 %tobool.not, label %if.end5, label %if.then3 if.then3: ; preds = %sw.epilog - %call4 = tail call ptr @__errno_location() #25 + %call4 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call4, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -125,7 +125,7 @@ declare ptr @__errno_location() local_unnamed_addr #2 ; Function Attrs: nounwind uwtable define i64 @uv_hrtime() local_unnamed_addr #0 { entry: - %call = tail call i64 @uv__hrtime(i32 noundef 0) #24 + %call = tail call i64 @uv__hrtime(i32 noundef 0) #23 ret i64 %call } @@ -160,59 +160,59 @@ entry: ] sw.bb: ; preds = %entry - tail call void @uv__pipe_close(ptr noundef nonnull %handle) #24 + tail call void @uv__pipe_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb2: ; preds = %entry - tail call void @uv__stream_close(ptr noundef nonnull %handle) #24 + tail call void @uv__stream_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb3: ; preds = %entry - tail call void @uv__tcp_close(ptr noundef nonnull %handle) #24 + tail call void @uv__tcp_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb4: ; preds = %entry - tail call void @uv__udp_close(ptr noundef nonnull %handle) #24 + tail call void @uv__udp_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb5: ; preds = %entry - tail call void @uv__prepare_close(ptr noundef nonnull %handle) #24 + tail call void @uv__prepare_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb6: ; preds = %entry - tail call void @uv__check_close(ptr noundef nonnull %handle) #24 + tail call void @uv__check_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb7: ; preds = %entry - tail call void @uv__idle_close(ptr noundef nonnull %handle) #24 + tail call void @uv__idle_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb8: ; preds = %entry - tail call void @uv__async_close(ptr noundef nonnull %handle) #24 + tail call void @uv__async_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb9: ; preds = %entry - tail call void @uv__timer_close(ptr noundef nonnull %handle) #24 + tail call void @uv__timer_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb10: ; preds = %entry - tail call void @uv__process_close(ptr noundef nonnull %handle) #24 + tail call void @uv__process_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb11: ; preds = %entry - tail call void @uv__fs_event_close(ptr noundef nonnull %handle) #24 + tail call void @uv__fs_event_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb12: ; preds = %entry - tail call void @uv__poll_close(ptr noundef nonnull %handle) #24 + tail call void @uv__poll_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.bb13: ; preds = %entry - tail call void @uv__fs_poll_close(ptr noundef nonnull %handle) #24 + tail call void @uv__fs_poll_close(ptr noundef nonnull %handle) #23 br label %return sw.bb14: ; preds = %entry - tail call void @uv__signal_close(ptr noundef nonnull %handle) #24 + tail call void @uv__signal_close(ptr noundef nonnull %handle) #23 br label %sw.epilog sw.epilog: ; preds = %entry, %sw.bb14, %sw.bb12, %sw.bb11, %sw.bb10, %sw.bb9, %sw.bb8, %sw.bb7, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb @@ -305,11 +305,11 @@ if.end15: ; preds = %if.then10, %if.then br i1 %cmp16, label %if.then17, label %if.else18 if.then17: ; preds = %if.end15 - %call = call i32 @getsockopt(i32 noundef %fd.0, i32 noundef 1, i32 noundef %optname, ptr noundef nonnull %value, ptr noundef nonnull %len) #24 + %call = call i32 @getsockopt(i32 noundef %fd.0, i32 noundef 1, i32 noundef %optname, ptr noundef nonnull %value, ptr noundef nonnull %len) #23 br label %if.end20 if.else18: ; preds = %if.end15 - %call19 = tail call i32 @setsockopt(i32 noundef %fd.0, i32 noundef 1, i32 noundef %optname, ptr noundef nonnull %value, i32 noundef 4) #24 + %call19 = tail call i32 @setsockopt(i32 noundef %fd.0, i32 noundef 1, i32 noundef %optname, ptr noundef nonnull %value, i32 noundef 4) #23 br label %if.end20 if.end20: ; preds = %if.else18, %if.then17 @@ -318,7 +318,7 @@ if.end20: ; preds = %if.else18, %if.then br i1 %cmp21, label %if.then22, label %return if.then22: ; preds = %if.end20 - %call23 = tail call ptr @__errno_location() #25 + %call23 = tail call ptr @__errno_location() #24 %2 = load i32, ptr %call23, align 4 %sub = sub nsw i32 0, %2 br label %return @@ -335,7 +335,7 @@ declare i32 @getsockopt(i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr declare i32 @setsockopt(i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define hidden i32 @uv__getiovmax() local_unnamed_addr #5 { +define hidden noundef i32 @uv__getiovmax() local_unnamed_addr #5 { entry: ret i32 1024 } @@ -411,7 +411,7 @@ land.lhs.true9.i: ; preds = %land.lhs.true7.i br i1 %cmp10.i, label %if.then.i, label %return if.then.i: ; preds = %land.lhs.true9.i - %call11.i = tail call i32 @uv__next_timeout(ptr noundef nonnull %loop) #24 + %call11.i = tail call i32 @uv__next_timeout(ptr noundef nonnull %loop) #23 br label %return return: ; preds = %if.then.i, %land.lhs.true9.i, %land.lhs.true7.i, %land.lhs.true4.i, %land.lhs.true3.i, %lor.lhs.false.i, %if.then, %entry @@ -480,7 +480,7 @@ uv__loop_alive.exit: ; preds = %lor.lhs.false2.i br i1 %cmp3.i.not, label %if.end5.thread, label %if.end if.end5.thread: ; preds = %uv__loop_alive.exit - %call.i = tail call i64 @uv__hrtime(i32 noundef 1) #24 + %call.i = tail call i64 @uv__hrtime(i32 noundef 1) #23 %div.i = udiv i64 %call.i, 1000000 %time.i = getelementptr inbounds %struct.uv_loop_s, ptr %loop, i64 0, i32 28 store i64 %div.i, ptr %time.i, align 8 @@ -497,11 +497,11 @@ land.lhs.true2: ; preds = %if.end br i1 %cmp3, label %if.then4, label %if.end5 if.then4: ; preds = %land.lhs.true2 - %call.i38 = tail call i64 @uv__hrtime(i32 noundef 1) #24 + %call.i38 = tail call i64 @uv__hrtime(i32 noundef 1) #23 %div.i39 = udiv i64 %call.i38, 1000000 %time.i40 = getelementptr inbounds %struct.uv_loop_s, ptr %loop, i64 0, i32 28 store i64 %div.i39, ptr %time.i40, align 8 - tail call void @uv__run_timers(ptr noundef nonnull %loop) #24 + tail call void @uv__run_timers(ptr noundef nonnull %loop) #23 br label %if.end5 if.end5: ; preds = %if.then4, %land.lhs.true2, %if.end @@ -565,7 +565,7 @@ while.body.i: ; preds = %uv__queue_move.exit store ptr %11, ptr %prev.i.i, align 8 %add.ptr.i = getelementptr inbounds i8, ptr %11, i64 -8 %15 = load ptr, ptr %add.ptr.i, align 8 - call void %15(ptr noundef %loop, ptr noundef nonnull %add.ptr.i, i32 noundef 4) #24 + call void %15(ptr noundef %loop, ptr noundef nonnull %add.ptr.i, i32 noundef 4) #23 %16 = load ptr, ptr %pq.i, align 8 %cmp.i.not.i44 = icmp eq ptr %16, %pq.i br i1 %cmp.i.not.i44, label %uv__run_pending.exit, label %while.body.i @@ -573,8 +573,8 @@ while.body.i: ; preds = %uv__queue_move.exit uv__run_pending.exit: ; preds = %while.body.i, %land.end14.thread, %uv__queue_move.exit.i %17 = phi i1 [ %cmp.i41, %land.end14.thread ], [ false, %uv__queue_move.exit.i ], [ false, %while.body.i ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pq.i) - call void @uv__run_idle(ptr noundef %loop) #24 - call void @uv__run_prepare(ptr noundef %loop) #24 + call void @uv__run_idle(ptr noundef %loop) #23 + call void @uv__run_prepare(ptr noundef %loop) #23 %or.cond1 = select i1 %cmp15, i1 %17, i1 false %or.cond2 = or i1 %cmp, %or.cond1 br i1 %or.cond2, label %if.then19, label %do.body @@ -616,7 +616,7 @@ land.lhs.true9.i: ; preds = %land.lhs.true7.i br i1 %cmp10.i, label %if.then.i, label %do.body if.then.i: ; preds = %land.lhs.true9.i - %call11.i = call i32 @uv__next_timeout(ptr noundef nonnull %loop) #24 + %call11.i = call i32 @uv__next_timeout(ptr noundef nonnull %loop) #23 br label %do.body do.body: ; preds = %if.then.i, %land.lhs.true9.i, %land.lhs.true7.i, %land.lhs.true4.i, %land.lhs.true3.i, %lor.lhs.false.i51, %if.then19, %uv__run_pending.exit @@ -626,7 +626,7 @@ do.body: ; preds = %if.then.i, %land.lh %26 = load i64, ptr %loop_metrics, align 8 %inc = add i64 %26, 1 store i64 %inc, ptr %loop_metrics, align 8 - call void @uv__io_poll(ptr noundef %loop, i32 noundef %timeout.0) #24 + call void @uv__io_poll(ptr noundef %loop, i32 noundef %timeout.0) #23 br label %land.rhs23 land.rhs23: ; preds = %do.body, %uv__run_pending.exit69 @@ -663,7 +663,7 @@ while.body.i64: ; preds = %for.body, %while.bo store ptr %30, ptr %prev.i.i65, align 8 %add.ptr.i67 = getelementptr inbounds i8, ptr %30, i64 -8 %34 = load ptr, ptr %add.ptr.i67, align 8 - call void %34(ptr noundef %loop, ptr noundef nonnull %add.ptr.i67, i32 noundef 4) #24 + call void %34(ptr noundef %loop, ptr noundef nonnull %add.ptr.i67, i32 noundef 4) #23 %35 = load ptr, ptr %pq.i55, align 8 %cmp.i.not.i68 = icmp eq ptr %35, %pq.i55 br i1 %cmp.i.not.i68, label %uv__run_pending.exit69, label %while.body.i64 @@ -675,8 +675,8 @@ uv__run_pending.exit69: ; preds = %while.body.i64, %fo br i1 %exitcond.not, label %for.end, label %land.rhs23 for.end: ; preds = %uv__run_pending.exit69, %land.rhs23 - call void @uv__metrics_update_idle_time(ptr noundef %loop) #24 - call void @uv__run_check(ptr noundef %loop) #24 + call void @uv__metrics_update_idle_time(ptr noundef %loop) #23 + call void @uv__run_check(ptr noundef %loop) #23 %36 = load ptr, ptr %closing_handles.i50, align 8 store ptr null, ptr %closing_handles.i50, align 8 %tobool.not4.i = icmp eq ptr %36, null @@ -720,11 +720,11 @@ if.then.i.i: ; preds = %sw.bb1.i.i br label %uv__finish_close.exit.i sw.bb3.i.i: ; preds = %while.body.i71, %while.body.i71, %while.body.i71 - call void @uv__stream_destroy(ptr noundef nonnull %p.05.i) #24 + call void @uv__stream_destroy(ptr noundef nonnull %p.05.i) #23 br label %do.body.i.i sw.bb4.i.i: ; preds = %while.body.i71 - call void @uv__udp_finish_close(ptr noundef nonnull %p.05.i) #24 + call void @uv__udp_finish_close(ptr noundef nonnull %p.05.i) #23 br label %do.body.i.i do.body.i.i: ; preds = %sw.bb4.i.i, %sw.bb3.i.i, %sw.bb1.i.i, %while.body.i71 @@ -764,7 +764,7 @@ do.end22.i.i: ; preds = %do.body20.i.i, %if. br i1 %tobool.not.i.i, label %uv__finish_close.exit.i, label %if.then23.i.i if.then23.i.i: ; preds = %do.end22.i.i - call void %51(ptr noundef nonnull %p.05.i) #24 + call void %51(ptr noundef nonnull %p.05.i) #23 br label %uv__finish_close.exit.i uv__finish_close.exit.i: ; preds = %if.then23.i.i, %do.end22.i.i, %if.then.i.i @@ -772,10 +772,10 @@ uv__finish_close.exit.i: ; preds = %if.then23.i.i, %do. br i1 %tobool.not.i, label %uv__run_closing_handles.exit, label %while.body.i71 uv__run_closing_handles.exit: ; preds = %uv__finish_close.exit.i, %for.end - %call.i73 = call i64 @uv__hrtime(i32 noundef 1) #24 + %call.i73 = call i64 @uv__hrtime(i32 noundef 1) #23 %div.i74 = udiv i64 %call.i73, 1000000 store i64 %div.i74, ptr %time.i75, align 8 - call void @uv__run_timers(ptr noundef %loop) #24 + call void @uv__run_timers(ptr noundef %loop) #23 %52 = load i32, ptr %active_handles.i, align 8 %cmp.not.i77 = icmp eq i32 %52, 0 br i1 %cmp.not.i77, label %lor.lhs.false.i79, label %uv__loop_alive.exit88 @@ -832,7 +832,7 @@ declare void @uv__run_check(ptr noundef) local_unnamed_addr #3 ; Function Attrs: nounwind uwtable define void @uv_update_time(ptr nocapture noundef writeonly %loop) local_unnamed_addr #0 { entry: - %call.i = tail call i64 @uv__hrtime(i32 noundef 1) #24 + %call.i = tail call i64 @uv__hrtime(i32 noundef 1) #23 %div.i = udiv i64 %call.i, 1000000 %time.i = getelementptr inbounds %struct.uv_loop_s, ptr %loop, i64 0, i32 28 store i64 %div.i, ptr %time.i, align 8 @@ -854,12 +854,12 @@ define hidden i32 @uv__socket(i32 noundef %domain, i32 noundef %type, i32 nounde entry: %set.addr.i = alloca i32, align 4 %or1 = or i32 %type, 526336 - %call = tail call i32 @socket(i32 noundef %domain, i32 noundef %or1, i32 noundef %protocol) #24 + %call = tail call i32 @socket(i32 noundef %domain, i32 noundef %or1, i32 noundef %protocol) #23 %cmp.not = icmp eq i32 %call, -1 br i1 %cmp.not, label %if.end, label %return if.end: ; preds = %entry - %call2 = tail call ptr @__errno_location() #25 + %call2 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call2, align 4 %cmp3.not = icmp eq i32 %0, 22 br i1 %cmp3.not, label %if.end6, label %if.then4 @@ -869,7 +869,7 @@ if.then4: ; preds = %if.end br label %return if.end6: ; preds = %if.end - %call7 = tail call i32 @socket(i32 noundef %domain, i32 noundef %type, i32 noundef %protocol) #24 + %call7 = tail call i32 @socket(i32 noundef %domain, i32 noundef %type, i32 noundef %protocol) #23 %cmp8 = icmp eq i32 %call7, -1 br i1 %cmp8, label %if.then9, label %if.end12 @@ -884,7 +884,7 @@ if.end12: ; preds = %if.end6 br label %do.body.i do.body.i: ; preds = %land.rhs.i, %if.end12 - %call.i = call i32 (i32, i64, ...) @ioctl(i32 noundef %call7, i64 noundef 21537, ptr noundef nonnull %set.addr.i) #24 + %call.i = call i32 (i32, i64, ...) @ioctl(i32 noundef %call7, i64 noundef 21537, ptr noundef nonnull %set.addr.i) #23 switch i32 %call.i, label %do.body.i.uv__nonblock_ioctl.exit_crit_edge [ i32 -1, label %land.rhs.i i32 0, label %uv__nonblock_ioctl.exit.thread @@ -913,7 +913,7 @@ do.body.i12.preheader: ; preds = %uv__nonblock_ioctl. br label %do.body.i12 do.body.i12: ; preds = %do.body.i12.preheader, %land.rhs.i15 - %call.i13 = call i32 (i32, i32, ...) @fcntl64(i32 noundef %call7, i32 noundef 2, i32 noundef 1) #24 + %call.i13 = call i32 (i32, i32, ...) @fcntl64(i32 noundef %call7, i32 noundef 2, i32 noundef 1) #23 switch i32 %call.i13, label %do.body.i12.if.then4.i_crit_edge [ i32 -1, label %land.rhs.i15 i32 0, label %return @@ -936,7 +936,7 @@ if.end17: ; preds = %land.rhs.i15, %do.b if.then18: ; preds = %uv__nonblock_ioctl.exit, %if.end17 %6 = phi i32 [ %5, %if.end17 ], [ %3, %uv__nonblock_ioctl.exit ] %err.027 = sub nsw i32 0, %6 - %call.i.i.i = call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %call7) #24 + %call.i.i.i = call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %call7) #23 %7 = and i64 %call.i.i.i, 4294967295 %cmp.i.i = icmp eq i64 %7, 4294967295 br i1 %cmp.i.i, label %if.then.i.i, label %return @@ -961,18 +961,18 @@ entry: br label %do.body do.body: ; preds = %land.rhs, %entry - %call = call i32 (i32, i64, ...) @ioctl(i32 noundef %fd, i64 noundef 21537, ptr noundef nonnull %set.addr) #24 + %call = call i32 (i32, i64, ...) @ioctl(i32 noundef %fd, i64 noundef 21537, ptr noundef nonnull %set.addr) #23 switch i32 %call, label %do.body.if.then_crit_edge [ i32 -1, label %land.rhs i32 0, label %return ] do.body.if.then_crit_edge: ; preds = %do.body - %.pre = tail call ptr @__errno_location() #25 + %.pre = tail call ptr @__errno_location() #24 br label %if.then land.rhs: ; preds = %do.body - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %cmp2 = icmp eq i32 %0, 4 br i1 %cmp2, label %do.body, label %if.then @@ -996,18 +996,18 @@ entry: br label %do.body do.body: ; preds = %land.rhs, %entry - %call = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd, i32 noundef 2, i32 noundef %spec.store.select) #24 + %call = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd, i32 noundef 2, i32 noundef %spec.store.select) #23 switch i32 %call, label %do.body.if.then4_crit_edge [ i32 -1, label %land.rhs i32 0, label %return ] do.body.if.then4_crit_edge: ; preds = %do.body - %.pre = tail call ptr @__errno_location() #25 + %.pre = tail call ptr @__errno_location() #24 br label %if.then4 land.rhs: ; preds = %do.body - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %cmp2 = icmp eq i32 %0, 4 br i1 %cmp2, label %do.body, label %if.then4 @@ -1026,9 +1026,9 @@ return: ; preds = %do.body, %if.then4 ; Function Attrs: nounwind uwtable define hidden i32 @uv__close(i32 noundef %fd) local_unnamed_addr #0 { entry: - %call.i = tail call ptr @__errno_location() #25 + %call.i = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call.i, align 4 - %call.i.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %fd) #24 + %call.i.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %fd) #23 %conv.i.i = trunc i64 %call.i.i to i32 %cmp.i = icmp eq i32 %conv.i.i, -1 br i1 %cmp.i, label %if.then.i, label %uv__close_nocheckstdio.exit @@ -1049,14 +1049,14 @@ uv__close_nocheckstdio.exit: ; preds = %entry, %if.then.i } ; Function Attrs: nounwind uwtable -define hidden noalias ptr @uv__open_file(ptr nocapture noundef readonly %path) local_unnamed_addr #0 { +define hidden noalias noundef ptr @uv__open_file(ptr nocapture noundef readonly %path) local_unnamed_addr #0 { entry: - %call.i = tail call i32 (ptr, i32, ...) @open64(ptr noundef %path, i32 noundef 524288) #24 + %call.i = tail call i32 (ptr, i32, ...) @open64(ptr noundef %path, i32 noundef 524288) #23 %cmp.i = icmp eq i32 %call.i, -1 br i1 %cmp.i, label %if.then.i, label %uv__open_cloexec.exit if.then.i: ; preds = %entry - %call1.i = tail call ptr @__errno_location() #25 + %call1.i = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1.i, align 4 %sub.i = sub nsw i32 0, %0 br label %uv__open_cloexec.exit @@ -1067,14 +1067,14 @@ uv__open_cloexec.exit: ; preds = %entry, %if.then.i br i1 %cmp, label %return, label %if.end if.end: ; preds = %uv__open_cloexec.exit - %call1 = tail call noalias ptr @fdopen(i32 noundef %retval.0.i, ptr noundef nonnull @.str) #24 + %call1 = tail call noalias ptr @fdopen(i32 noundef %retval.0.i, ptr noundef nonnull @.str) #23 %cmp2 = icmp eq ptr %call1, null br i1 %cmp2, label %if.then3, label %return if.then3: ; preds = %if.end - %call.i.i = tail call ptr @__errno_location() #25 + %call.i.i = tail call ptr @__errno_location() #24 %1 = load i32, ptr %call.i.i, align 4 - %call.i.i.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %retval.0.i) #24 + %call.i.i.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %retval.0.i) #23 %2 = and i64 %call.i.i.i, 4294967295 %cmp.i.i = icmp eq i64 %2, 4294967295 br i1 %cmp.i.i, label %if.then.i.i, label %return @@ -1092,12 +1092,12 @@ return: ; preds = %if.then.i.i, %if.th define hidden i32 @uv__open_cloexec(ptr nocapture noundef readonly %path, i32 noundef %flags) local_unnamed_addr #7 { entry: %or = or i32 %flags, 524288 - %call = tail call i32 (ptr, i32, ...) @open64(ptr noundef %path, i32 noundef %or) #24 + %call = tail call i32 (ptr, i32, ...) @open64(ptr noundef %path, i32 noundef %or) #23 %cmp = icmp eq i32 %call, -1 br i1 %cmp, label %if.then, label %return if.then: ; preds = %entry - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -1116,12 +1116,12 @@ entry: br label %do.body do.body: ; preds = %land.rhs, %entry - %call = tail call i32 @accept4(i32 noundef %sockfd, ptr null, ptr noundef null, i32 noundef 526336) #24 + %call = tail call i32 @accept4(i32 noundef %sockfd, ptr null, ptr noundef null, i32 noundef 526336) #23 %cmp = icmp eq i32 %call, -1 br i1 %cmp, label %land.rhs, label %return land.rhs: ; preds = %do.body - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %cmp2 = icmp eq i32 %0, 4 br i1 %cmp2, label %do.body, label %if.then @@ -1140,7 +1140,7 @@ declare i32 @accept4(i32 noundef, ptr, ptr noundef, i32 noundef) local_unnamed_a ; Function Attrs: nounwind uwtable define hidden i32 @uv__close_nocancel(i32 noundef %fd) local_unnamed_addr #0 { entry: - %call = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %fd) #24 + %call = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %fd) #23 %conv = trunc i64 %call to i32 ret i32 %conv } @@ -1151,9 +1151,9 @@ declare i64 @syscall(i64 noundef, ...) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable define hidden i32 @uv__close_nocheckstdio(i32 noundef %fd) local_unnamed_addr #0 { entry: - %call = tail call ptr @__errno_location() #25 + %call = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call, align 4 - %call.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %fd) #24 + %call.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %fd) #23 %conv.i = trunc i64 %call.i to i32 %cmp = icmp eq i32 %conv.i, -1 br i1 %cmp, label %if.then, label %if.end7 @@ -1182,12 +1182,12 @@ entry: br label %do.body do.body: ; preds = %land.rhs, %entry - %call = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd, i32 noundef 3) #24 + %call = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd, i32 noundef 3) #23 %cmp = icmp eq i32 %call, -1 br i1 %cmp, label %land.rhs, label %if.end land.rhs: ; preds = %do.body - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %cmp2 = icmp eq i32 %0, 4 br i1 %cmp2, label %do.body, label %if.then @@ -1210,18 +1210,18 @@ if.end13: ; preds = %if.end br label %do.body18 do.body18: ; preds = %land.rhs22, %if.end13 - %call19 = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd, i32 noundef 4, i32 noundef %flags.0) #24 + %call19 = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd, i32 noundef 4, i32 noundef %flags.0) #23 switch i32 %call19, label %do.body18.if.then28_crit_edge [ i32 -1, label %land.rhs22 i32 0, label %return ] do.body18.if.then28_crit_edge: ; preds = %do.body18 - %.pre = tail call ptr @__errno_location() #25 + %.pre = tail call ptr @__errno_location() #24 br label %if.then28 land.rhs22: ; preds = %do.body18 - %call23 = tail call ptr @__errno_location() #25 + %call23 = tail call ptr @__errno_location() #24 %3 = load i32, ptr %call23, align 4 %cmp24 = icmp eq i32 %3, 4 br i1 %cmp24, label %do.body18, label %if.then28 @@ -1243,12 +1243,12 @@ declare i32 @fcntl64(i32 noundef, i32 noundef, ...) local_unnamed_addr #3 define hidden i64 @uv__recvmsg(i32 noundef %fd, ptr noundef %msg, i32 noundef %flags) local_unnamed_addr #0 { entry: %or = or i32 %flags, 1073741824 - %call = tail call i64 @recvmsg(i32 noundef %fd, ptr noundef %msg, i32 noundef %or) #24 + %call = tail call i64 @recvmsg(i32 noundef %fd, ptr noundef %msg, i32 noundef %or) #23 %cmp = icmp eq i64 %call, -1 br i1 %cmp, label %if.then, label %return if.then: ; preds = %entry - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %sub = sub nsw i32 0, %0 %conv = sext i32 %sub to i64 @@ -1272,12 +1272,12 @@ entry: if.end: ; preds = %entry %0 = load i64, ptr %size, align 8 - %call = tail call ptr @getcwd(ptr noundef nonnull %buffer, i64 noundef %0) #24 + %call = tail call ptr @getcwd(ptr noundef nonnull %buffer, i64 noundef %0) #23 %cmp2.not = icmp eq ptr %call, null br i1 %cmp2.not, label %if.end4, label %fixup if.end4: ; preds = %if.end - %call5 = tail call ptr @__errno_location() #25 + %call5 = tail call ptr @__errno_location() #24 %1 = load i32, ptr %call5, align 4 %cmp6.not = icmp eq i32 %1, 34 br i1 %cmp6.not, label %if.end9, label %if.then7 @@ -1287,7 +1287,7 @@ if.then7: ; preds = %if.end4 br label %return if.end9: ; preds = %if.end4 - %call10 = call ptr @getcwd(ptr noundef nonnull %scratch, i64 noundef 4097) #24 + %call10 = call ptr @getcwd(ptr noundef nonnull %scratch, i64 noundef 4097) #23 %cmp11 = icmp eq ptr %call10, null br i1 %cmp11, label %if.then12, label %fixup @@ -1298,7 +1298,7 @@ if.then12: ; preds = %if.end9 fixup: ; preds = %if.end9, %if.end %buffer.addr.0 = phi ptr [ %buffer, %if.end ], [ %scratch, %if.end9 ] - %call17 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buffer.addr.0) #26 + %call17 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buffer.addr.0) #25 store i64 %call17, ptr %size, align 8 %cmp18 = icmp ugt i64 %call17, 1 br i1 %cmp18, label %land.lhs.true, label %if.end25 @@ -1339,12 +1339,12 @@ declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #9 ; Function Attrs: nounwind uwtable define i32 @uv_chdir(ptr noundef %dir) local_unnamed_addr #0 { entry: - %call = tail call i32 @chdir(ptr noundef %dir) #24 + %call = tail call i32 @chdir(ptr noundef %dir) #23 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %return, label %if.then if.then: ; preds = %entry - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -1367,19 +1367,19 @@ for.cond: ; preds = %for.inc, %entry br label %do.body.i do.body.i: ; preds = %land.rhs.i, %for.cond - %call.i = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd.0, i32 noundef 2, i32 noundef 1) #24 + %call.i = tail call i32 (i32, i32, ...) @fcntl64(i32 noundef %fd.0, i32 noundef 2, i32 noundef 1) #23 switch i32 %call.i, label %do.body.if.then4_crit_edge.i [ i32 -1, label %land.rhs.i i32 0, label %for.inc ] do.body.if.then4_crit_edge.i: ; preds = %do.body.i - %.pre.i = tail call ptr @__errno_location() #25 + %.pre.i = tail call ptr @__errno_location() #24 %.pre = load i32, ptr %.pre.i, align 4 br label %uv__cloexec.exit land.rhs.i: ; preds = %do.body.i - %call1.i = tail call ptr @__errno_location() #25 + %call1.i = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1.i, align 4 %cmp2.i = icmp eq i32 %0, 4 br i1 %cmp2.i, label %do.body.i, label %uv__cloexec.exit @@ -1400,7 +1400,7 @@ for.end: ; preds = %uv__cloexec.exit } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable -define i32 @uv_fileno(ptr nocapture noundef readonly %handle, ptr nocapture noundef writeonly %fd) local_unnamed_addr #10 { +define noundef i32 @uv_fileno(ptr nocapture noundef readonly %handle, ptr nocapture noundef writeonly %fd) local_unnamed_addr #10 { entry: %type = getelementptr inbounds %struct.uv_handle_s, ptr %handle, i64 0, i32 2 %0 = load i32, ptr %type, align 8 @@ -1514,12 +1514,12 @@ if.end11.i: ; preds = %if.then4.i, %if.end %sub.i = add i32 %or8.i.i, -1 %conv.i = zext i32 %add.i.i to i64 %mul.i = shl nuw nsw i64 %conv.i, 3 - %call15.i = tail call ptr @uv__reallocf(ptr noundef %3, i64 noundef %mul.i) #24 + %call15.i = tail call ptr @uv__reallocf(ptr noundef %3, i64 noundef %mul.i) #23 %cmp16.i = icmp eq ptr %call15.i, null br i1 %cmp16.i, label %if.then18.i, label %if.end19.i if.then18.i: ; preds = %if.end11.i - tail call void @abort() #27 + tail call void @abort() #26 unreachable if.end19.i: ; preds = %if.end11.i @@ -1750,7 +1750,7 @@ uv__io_stop.exit: ; preds = %entry, %if.end.i, % br i1 %cmp.not, label %if.end, label %if.then if.then: ; preds = %uv__io_stop.exit - tail call void @uv__platform_invalidate_fd(ptr noundef %loop, i32 noundef %14) #24 + tail call void @uv__platform_invalidate_fd(ptr noundef %loop, i32 noundef %14) #23 br label %if.end if.end: ; preds = %if.then, %uv__io_stop.exit @@ -1820,12 +1820,12 @@ land.end: ; preds = %land.rhs, %entry define i32 @uv_getrusage(ptr nocapture noundef writeonly %rusage) local_unnamed_addr #0 { entry: %usage = alloca %struct.rusage, align 16 - %call = call i32 @getrusage(i32 noundef 0, ptr noundef nonnull %usage) #24 + %call = call i32 @getrusage(i32 noundef 0, ptr noundef nonnull %usage) #23 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %if.end, label %if.then if.then: ; preds = %entry - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -1881,12 +1881,12 @@ declare noundef i32 @open64(ptr nocapture noundef readonly, i32 noundef, ...) lo ; Function Attrs: nounwind uwtable define hidden i32 @uv__slurp(ptr nocapture noundef readonly %filename, ptr nocapture noundef %buf, i64 noundef %len) local_unnamed_addr #0 { entry: - %call.i = tail call i32 (ptr, i32, ...) @open64(ptr noundef %filename, i32 noundef 524288) #24 + %call.i = tail call i32 (ptr, i32, ...) @open64(ptr noundef %filename, i32 noundef 524288) #23 %cmp.i = icmp eq i32 %call.i, -1 br i1 %cmp.i, label %if.then.i, label %uv__open_cloexec.exit if.then.i: ; preds = %entry - %call1.i = tail call ptr @__errno_location() #25 + %call1.i = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1.i, align 4 %sub.i = sub nsw i32 0, %0 br label %uv__open_cloexec.exit @@ -1901,9 +1901,9 @@ do.body.preheader: ; preds = %uv__open_cloexec.ex br label %do.body do.body: ; preds = %do.body.preheader, %land.rhs - %call1 = tail call i64 @read(i32 noundef %retval.0.i, ptr noundef %buf, i64 noundef %sub) #24 + %call1 = tail call i64 @read(i32 noundef %retval.0.i, ptr noundef %buf, i64 noundef %sub) #23 %cmp2 = icmp eq i64 %call1, -1 - %call3 = tail call ptr @__errno_location() #25 + %call3 = tail call ptr @__errno_location() #24 br i1 %cmp2, label %land.rhs, label %do.end land.rhs: ; preds = %do.body @@ -1913,7 +1913,7 @@ land.rhs: ; preds = %do.body do.end: ; preds = %land.rhs, %do.body %2 = load i32, ptr %call3, align 4 - %call.i.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %retval.0.i) #24 + %call.i.i = tail call i64 (i64, ...) @syscall(i64 noundef 3, i32 noundef %retval.0.i) #23 %conv.i.i = trunc i64 %call.i.i to i32 %cmp.i8 = icmp eq i32 %conv.i.i, -1 br i1 %cmp.i8, label %if.then.i9, label %uv__close_nocheckstdio.exit @@ -1933,7 +1933,7 @@ uv__close_nocheckstdio.exit: ; preds = %if.then.i9, %do.end br i1 %tobool.not, label %if.end7, label %if.then6 if.then6: ; preds = %uv__close_nocheckstdio.exit - tail call void @abort() #27 + tail call void @abort() #26 unreachable if.end7: ; preds = %if.then.i9, %if.then.i9, %uv__close_nocheckstdio.exit @@ -1964,12 +1964,12 @@ declare void @abort() local_unnamed_addr #15 ; Function Attrs: nounwind uwtable define hidden i32 @uv__dup2_cloexec(i32 noundef %oldfd, i32 noundef %newfd) local_unnamed_addr #0 { entry: - %call = tail call i32 @dup3(i32 noundef %oldfd, i32 noundef %newfd, i32 noundef 524288) #24 + %call = tail call i32 @dup3(i32 noundef %oldfd, i32 noundef %newfd, i32 noundef 524288) #23 %cmp = icmp eq i32 %call, -1 br i1 %cmp, label %if.then, label %return if.then: ; preds = %entry - %call1 = tail call ptr @__errno_location() #25 + %call1 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call1, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -1997,12 +1997,12 @@ lor.lhs.false4.i: ; preds = %entry br i1 %cmp5.i, label %return, label %if.end.i if.end.i: ; preds = %lor.lhs.false4.i - %call.i = tail call ptr @getenv(ptr noundef nonnull @.str.1) #24 + %call.i = tail call ptr @getenv(ptr noundef nonnull @.str.1) #23 %cmp6.i = icmp eq ptr %call.i, null br i1 %cmp6.i, label %if.end, label %if.end8.i if.end8.i: ; preds = %if.end.i - %call9.i = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %call.i) #26 + %call9.i = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %call.i) #25 %cmp10.not.i = icmp ult i64 %call9.i, %0 %add13.i = add i64 %call9.i, 1 br i1 %cmp10.not.i, label %if.end12.i, label %return.sink.split.i @@ -2018,7 +2018,7 @@ return.sink.split.i: ; preds = %if.end12.i, %if.end br label %return if.end: ; preds = %if.end.i - %call.i11 = tail call i32 @geteuid() #24 + %call.i11 = tail call i32 @geteuid() #23 %call1.i = call fastcc i32 @uv__getpwuid_r(ptr noundef nonnull %pwd, i32 noundef %call.i11), !range !4 %cmp2.not = icmp eq i32 %call1.i, 0 br i1 %cmp2.not, label %if.end4, label %return @@ -2026,7 +2026,7 @@ if.end: ; preds = %if.end.i if.end4: ; preds = %if.end %homedir = getelementptr inbounds %struct.uv_passwd_s, ptr %pwd, i64 0, i32 4 %1 = load ptr, ptr %homedir, align 8 - %call5 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #26 + %call5 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #25 %2 = load i64, ptr %size, align 8 %cmp6.not = icmp ult i64 %call5, %2 %add10 = add i64 %call5, 1 @@ -2034,13 +2034,13 @@ if.end4: ; preds = %if.end if.then7: ; preds = %if.end4 store i64 %add10, ptr %size, align 8 - call void @uv_os_free_passwd(ptr noundef nonnull %pwd) #24 + call void @uv_os_free_passwd(ptr noundef nonnull %pwd) #23 br label %return if.end8: ; preds = %if.end4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %buffer, ptr noundef nonnull align 1 dereferenceable(1) %1, i64 %add10, i1 false) store i64 %call5, ptr %size, align 8 - call void @uv_os_free_passwd(ptr noundef nonnull %pwd) #24 + call void @uv_os_free_passwd(ptr noundef nonnull %pwd) #23 br label %return return: ; preds = %return.sink.split.i, %entry, %lor.lhs.false4.i, %if.end, %if.end8, %if.then7 @@ -2049,7 +2049,7 @@ return: ; preds = %return.sink.split.i } ; Function Attrs: nofree nounwind memory(readwrite, inaccessiblemem: read) uwtable -define i32 @uv_os_getenv(ptr noundef readonly %name, ptr noundef writeonly %buffer, ptr noundef %size) local_unnamed_addr #16 { +define noundef i32 @uv_os_getenv(ptr noundef readonly %name, ptr noundef writeonly %buffer, ptr noundef %size) local_unnamed_addr #16 { entry: %cmp = icmp eq ptr %name, null %cmp1 = icmp eq ptr %buffer, null @@ -2064,12 +2064,12 @@ lor.lhs.false4: ; preds = %entry br i1 %cmp5, label %return, label %if.end if.end: ; preds = %lor.lhs.false4 - %call = tail call ptr @getenv(ptr noundef nonnull %name) #24 + %call = tail call ptr @getenv(ptr noundef nonnull %name) #23 %cmp6 = icmp eq ptr %call, null br i1 %cmp6, label %return, label %if.end8 if.end8: ; preds = %if.end - %call9 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %call) #26 + %call9 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %call) #25 %cmp10.not = icmp ult i64 %call9, %0 %add13 = add i64 %call9, 1 br i1 %cmp10.not, label %if.end12, label %return.sink.split @@ -2092,7 +2092,7 @@ return: ; preds = %return.sink.split, ; Function Attrs: nounwind uwtable define i32 @uv_os_get_passwd(ptr noundef %pwd) local_unnamed_addr #0 { entry: - %call = tail call i32 @geteuid() #24 + %call = tail call i32 @geteuid() #23 %call1 = tail call fastcc i32 @uv__getpwuid_r(ptr noundef %pwd, i32 noundef %call), !range !4 ret i32 %call1 } @@ -2103,7 +2103,7 @@ declare void @uv_os_free_passwd(ptr noundef) local_unnamed_addr #3 declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #17 ; Function Attrs: nofree nounwind memory(readwrite, inaccessiblemem: read) uwtable -define i32 @uv_os_tmpdir(ptr noundef writeonly %buffer, ptr noundef %size) local_unnamed_addr #16 { +define noundef i32 @uv_os_tmpdir(ptr noundef writeonly %buffer, ptr noundef %size) local_unnamed_addr #16 { entry: %cmp = icmp eq ptr %buffer, null %cmp1 = icmp eq ptr %size, null @@ -2116,29 +2116,29 @@ lor.lhs.false2: ; preds = %entry br i1 %cmp3, label %return, label %do.body do.body: ; preds = %lor.lhs.false2 - %call = tail call ptr @getenv(ptr noundef nonnull @.str.2) #24 + %call = tail call ptr @getenv(ptr noundef nonnull @.str.2) #23 %cmp4.not = icmp eq ptr %call, null br i1 %cmp4.not, label %do.body7, label %return_buffer do.body7: ; preds = %do.body - %call8 = tail call ptr @getenv(ptr noundef nonnull @.str.3) #24 + %call8 = tail call ptr @getenv(ptr noundef nonnull @.str.3) #23 %cmp9.not = icmp eq ptr %call8, null br i1 %cmp9.not, label %do.body13, label %return_buffer do.body13: ; preds = %do.body7 - %call14 = tail call ptr @getenv(ptr noundef nonnull @.str.4) #24 + %call14 = tail call ptr @getenv(ptr noundef nonnull @.str.4) #23 %cmp15.not = icmp eq ptr %call14, null br i1 %cmp15.not, label %do.body19, label %return_buffer do.body19: ; preds = %do.body13 - %call20 = tail call ptr @getenv(ptr noundef nonnull @.str.5) #24 + %call20 = tail call ptr @getenv(ptr noundef nonnull @.str.5) #23 %cmp21.not = icmp eq ptr %call20, null %spec.store.select = select i1 %cmp21.not, ptr @.str.6, ptr %call20 br label %return_buffer return_buffer: ; preds = %do.body19, %do.body13, %do.body7, %do.body %buf.0 = phi ptr [ %call, %do.body ], [ %call8, %do.body7 ], [ %call14, %do.body13 ], [ %spec.store.select, %do.body19 ] - %call25 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf.0) #26 + %call25 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf.0) #25 %cmp26.not = icmp ult i64 %call25, %0 br i1 %cmp26.not, label %if.end28, label %if.then27 @@ -2189,13 +2189,13 @@ entry: br i1 %cmp, label %return, label %for.cond.preheader for.cond.preheader: ; preds = %entry - %call45 = tail call ptr @uv__malloc(i64 noundef 2000) #24 + %call45 = tail call ptr @uv__malloc(i64 noundef 2000) #23 %cmp146 = icmp eq ptr %call45, null br i1 %cmp146, label %return, label %do.body.preheader for.cond: ; preds = %if.end9 %mul = shl i64 %bufsize.047, 1 - %call = call ptr @uv__malloc(i64 noundef %mul) #24 + %call = call ptr @uv__malloc(i64 noundef %mul) #23 %cmp1 = icmp eq ptr %call, null br i1 %cmp1, label %return, label %do.body.preheader @@ -2205,7 +2205,7 @@ do.body.preheader: ; preds = %for.cond.preheader, br label %do.body do.body: ; preds = %do.body.preheader, %do.body - %call4 = call i32 @getgrgid_r(i32 noundef %gid, ptr noundef nonnull %gp, ptr noundef nonnull %call48, i64 noundef %bufsize.047, ptr noundef nonnull %result) #24 + %call4 = call i32 @getgrgid_r(i32 noundef %gid, ptr noundef nonnull %gp, ptr noundef nonnull %call48, i64 noundef %bufsize.047, ptr noundef nonnull %result) #23 %cmp5 = icmp eq i32 %call4, 4 br i1 %cmp5, label %do.body, label %do.end @@ -2217,7 +2217,7 @@ do.end: ; preds = %do.body br i1 %or.cond, label %if.end9, label %if.end18 if.end9: ; preds = %do.end - call void @uv__free(ptr noundef nonnull %call48) #24 + call void @uv__free(ptr noundef nonnull %call48) #23 %cmp10.not = icmp eq i32 %call4, 34 br i1 %cmp10.not, label %for.cond, label %for.end @@ -2235,7 +2235,7 @@ if.end15: ; preds = %for.end if.end18: ; preds = %do.end, %if.end15 %1 = load ptr, ptr %gp, align 8 - %call19 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #26 + %call19 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #25 %add = add i64 %call19, 1 %gr_mem21 = getelementptr inbounds %struct.group, ptr %gp, i64 0, i32 3 %2 = load ptr, ptr %gr_mem21, align 8 @@ -2247,7 +2247,7 @@ for.body: ; preds = %if.end18, %for.body %4 = phi ptr [ %5, %for.body ], [ %3, %if.end18 ] %mem_size.051 = phi i64 [ %add29, %for.body ], [ 8, %if.end18 ] %members.050 = phi i64 [ %inc, %for.body ], [ 0, %if.end18 ] - %call26 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #26 + %call26 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #25 %add28 = add i64 %mem_size.051, 9 %add29 = add i64 %add28, %call26 %inc = add nuw nsw i64 %members.050, 1 @@ -2260,12 +2260,12 @@ for.end32: ; preds = %for.body, %if.end18 %members.0.lcssa = phi i64 [ 0, %if.end18 ], [ %inc, %for.body ] %mem_size.0.lcssa = phi i64 [ 8, %if.end18 ], [ %add29, %for.body ] %add33 = add i64 %mem_size.0.lcssa, %add - %call34 = call ptr @uv__malloc(i64 noundef %add33) #24 + %call34 = call ptr @uv__malloc(i64 noundef %add33) #23 %cmp35 = icmp eq ptr %call34, null br i1 %cmp35, label %if.then36, label %if.end37 if.then36: ; preds = %for.end32 - call void @uv__free(ptr noundef nonnull %call48) #24 + call void @uv__free(ptr noundef nonnull %call48) #23 br label %return if.end37: ; preds = %for.end32 @@ -2288,8 +2288,8 @@ for.body47: ; preds = %if.end37, %for.body %9 = load ptr, ptr %gr_mem21, align 8 %arrayidx53 = getelementptr inbounds ptr, ptr %9, i64 %indvars.iv %10 = load ptr, ptr %arrayidx53, align 8 - %call54 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %gr_mem.055, ptr noundef nonnull dereferenceable(1) %10) #24 - %call55 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %gr_mem.055) #26 + %call54 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %gr_mem.055, ptr noundef nonnull dereferenceable(1) %10) #23 + %call55 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %gr_mem.055) #25 %add56 = add i64 %call55, 1 %add.ptr = getelementptr inbounds i8, ptr %gr_mem.055, i64 %add56 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 @@ -2306,7 +2306,7 @@ for.end59: ; preds = %for.body47, %if.end %conv63 = zext i32 %12 to i64 %gid64 = getelementptr inbounds %struct.uv_group_s, ptr %grp, i64 0, i32 1 store i64 %conv63, ptr %gid64, align 8 - call void @uv__free(ptr noundef nonnull %call48) #24 + call void @uv__free(ptr noundef nonnull %call48) #23 br label %return return: ; preds = %for.cond, %for.cond.preheader, %if.end15, %entry, %for.end59, %if.then36, %if.then14 @@ -2332,13 +2332,13 @@ entry: br i1 %cmp, label %return, label %for.cond.preheader for.cond.preheader: ; preds = %entry - %call34 = tail call ptr @uv__malloc(i64 noundef 2000) #24 + %call34 = tail call ptr @uv__malloc(i64 noundef 2000) #23 %cmp135 = icmp eq ptr %call34, null br i1 %cmp135, label %return, label %do.body.preheader for.cond: ; preds = %if.end9 %mul = shl i64 %bufsize.036, 1 - %call = call ptr @uv__malloc(i64 noundef %mul) #24 + %call = call ptr @uv__malloc(i64 noundef %mul) #23 %cmp1 = icmp eq ptr %call, null br i1 %cmp1, label %return, label %do.body.preheader @@ -2348,7 +2348,7 @@ do.body.preheader: ; preds = %for.cond.preheader, br label %do.body do.body: ; preds = %do.body.preheader, %do.body - %call4 = call i32 @getpwuid_r(i32 noundef %uid, ptr noundef nonnull %pw, ptr noundef nonnull %call37, i64 noundef %bufsize.036, ptr noundef nonnull %result) #24 + %call4 = call i32 @getpwuid_r(i32 noundef %uid, ptr noundef nonnull %pw, ptr noundef nonnull %call37, i64 noundef %bufsize.036, ptr noundef nonnull %result) #23 %cmp5 = icmp eq i32 %call4, 4 br i1 %cmp5, label %do.body, label %do.end @@ -2360,7 +2360,7 @@ do.end: ; preds = %do.body br i1 %or.cond, label %if.end9, label %if.end18 if.end9: ; preds = %do.end - call void @uv__free(ptr noundef nonnull %call37) #24 + call void @uv__free(ptr noundef nonnull %call37) #23 %cmp10.not = icmp eq i32 %call4, 34 br i1 %cmp10.not, label %for.cond, label %for.end @@ -2378,25 +2378,25 @@ if.end15: ; preds = %for.end if.end18: ; preds = %do.end, %if.end15 %1 = load ptr, ptr %pw, align 8 - %call19 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #26 + %call19 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #25 %add = add i64 %call19, 1 %pw_dir = getelementptr inbounds %struct.passwd, ptr %pw, i64 0, i32 5 %2 = load ptr, ptr %pw_dir, align 8 - %call20 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #26 + %call20 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #25 %add21 = add i64 %call20, 1 %pw_shell = getelementptr inbounds %struct.passwd, ptr %pw, i64 0, i32 6 %3 = load ptr, ptr %pw_shell, align 8 - %call22 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #26 + %call22 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #25 %add23 = add i64 %call22, 1 %add24 = add i64 %add21, %add %add25 = add i64 %add24, %add23 - %call26 = call ptr @uv__malloc(i64 noundef %add25) #24 + %call26 = call ptr @uv__malloc(i64 noundef %add25) #23 store ptr %call26, ptr %pwd, align 8 %cmp28 = icmp eq ptr %call26, null br i1 %cmp28, label %if.then29, label %if.end30 if.then29: ; preds = %if.end18 - call void @uv__free(ptr noundef nonnull %call37) #24 + call void @uv__free(ptr noundef nonnull %call37) #23 br label %return if.end30: ; preds = %if.end18 @@ -2419,7 +2419,7 @@ if.end30: ; preds = %if.end18 %9 = load <2 x i32>, ptr %pw_uid, align 8 %10 = zext <2 x i32> %9 to <2 x i64> store <2 x i64> %10, ptr %uid40, align 8 - call void @uv__free(ptr noundef nonnull %call37) #24 + call void @uv__free(ptr noundef nonnull %call37) #23 br label %return return: ; preds = %for.cond, %for.cond.preheader, %if.end15, %entry, %if.end30, %if.then29, %if.then14 @@ -2437,8 +2437,8 @@ entry: ret i32 %call } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable -define i32 @uv_translate_sys_error(i32 noundef %sys_errno) local_unnamed_addr #20 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable +define noundef i32 @uv_translate_sys_error(i32 noundef %sys_errno) local_unnamed_addr #5 { entry: %0 = tail call i32 @llvm.abs.i32(i32 %sys_errno, i1 false) %cond = sub i32 0, %0 @@ -2446,7 +2446,7 @@ entry: } ; Function Attrs: nounwind uwtable -define i32 @uv_os_environ(ptr nocapture noundef %envitems, ptr nocapture noundef writeonly %count) local_unnamed_addr #0 { +define noundef i32 @uv_os_environ(ptr nocapture noundef %envitems, ptr nocapture noundef writeonly %count) local_unnamed_addr #0 { entry: store ptr null, ptr %envitems, align 8 store i32 0, ptr %count, align 4 @@ -2464,7 +2464,7 @@ for.cond: ; preds = %for.cond, %entry br i1 %cmp.not, label %for.end, label %for.cond for.end: ; preds = %for.cond - %call = tail call ptr @uv__calloc(i64 noundef %indvars.iv, i64 noundef 16) #24 + %call = tail call ptr @uv__calloc(i64 noundef %indvars.iv, i64 noundef 16) #23 store ptr %call, ptr %envitems, align 8 %cmp1 = icmp eq ptr %call, null br i1 %cmp1, label %return, label %for.cond3.preheader @@ -2488,7 +2488,7 @@ for.body6: ; preds = %for.body6.preheader br i1 %cmp9, label %return.sink.split, label %if.end12 if.end12: ; preds = %for.body6 - %call15 = tail call ptr @uv__strdup(ptr noundef nonnull %4) #24 + %call15 = tail call ptr @uv__strdup(ptr noundef nonnull %4) #23 %cmp16 = icmp eq ptr %call15, null br i1 %cmp16, label %for.cond31.preheader, label %if.end19 @@ -2501,12 +2501,12 @@ for.body34.lr.ph: ; preds = %for.cond31.preheade br label %for.body34 if.end19: ; preds = %if.end12 - %call20 = tail call ptr @strchr(ptr noundef nonnull dereferenceable(1) %call15, i32 noundef 61) #26 + %call20 = tail call ptr @strchr(ptr noundef nonnull dereferenceable(1) %call15, i32 noundef 61) #25 %cmp21 = icmp eq ptr %call20, null br i1 %cmp21, label %if.then23, label %if.end24 if.then23: ; preds = %if.end19 - tail call void @uv__free(ptr noundef nonnull %call15) #24 + tail call void @uv__free(ptr noundef nonnull %call15) #23 br label %for.inc28 if.end24: ; preds = %if.end19 @@ -2532,14 +2532,14 @@ for.body34: ; preds = %for.body34.lr.ph, % %6 = load ptr, ptr %envitems, align 8 %arrayidx36 = getelementptr inbounds %struct.uv_env_item_s, ptr %6, i64 %idxprom35 %7 = load ptr, ptr %arrayidx36, align 8 - tail call void @uv__free(ptr noundef %7) #24 + tail call void @uv__free(ptr noundef %7) #23 %inc39 = add nuw nsw i32 %i.134, 1 %exitcond42.not = icmp eq i32 %inc39, %cnt.031 br i1 %exitcond42.not, label %for.end40, label %for.body34 for.end40: ; preds = %for.body34, %for.cond31.preheader %8 = load ptr, ptr %envitems, align 8 - tail call void @uv__free(ptr noundef %8) #24 + tail call void @uv__free(ptr noundef %8) #23 store ptr null, ptr %envitems, align 8 br label %return.sink.split @@ -2570,12 +2570,12 @@ entry: br i1 %or.cond, label %return, label %if.end if.end: ; preds = %entry - %call = tail call i32 @setenv(ptr noundef nonnull %name, ptr noundef nonnull %value, i32 noundef 1) #24 + %call = tail call i32 @setenv(ptr noundef nonnull %name, ptr noundef nonnull %value, i32 noundef 1) #23 %cmp2.not = icmp eq i32 %call, 0 br i1 %cmp2.not, label %return, label %if.then3 if.then3: ; preds = %if.end - %call4 = tail call ptr @__errno_location() #25 + %call4 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call4, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -2595,12 +2595,12 @@ entry: br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call = tail call i32 @unsetenv(ptr noundef nonnull %name) #24 + %call = tail call i32 @unsetenv(ptr noundef nonnull %name) #23 %cmp1.not = icmp eq i32 %call, 0 br i1 %cmp1.not, label %return, label %if.then2 if.then2: ; preds = %if.end - %call3 = tail call ptr @__errno_location() #25 + %call3 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call3, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -2628,12 +2628,12 @@ lor.lhs.false2: ; preds = %entry br i1 %cmp3, label %return, label %if.end if.end: ; preds = %lor.lhs.false2 - %call = call i32 @gethostname(ptr noundef nonnull %buf, i64 noundef 65) #24 + %call = call i32 @gethostname(ptr noundef nonnull %buf, i64 noundef 65) #23 %cmp4.not = icmp eq i32 %call, 0 br i1 %cmp4.not, label %if.end7, label %if.then5 if.then5: ; preds = %if.end - %call6 = tail call ptr @__errno_location() #25 + %call6 = tail call ptr @__errno_location() #24 %1 = load i32, ptr %call6, align 4 %sub = sub nsw i32 0, %1 br label %return @@ -2641,7 +2641,7 @@ if.then5: ; preds = %if.end if.end7: ; preds = %if.end %arrayidx = getelementptr inbounds [65 x i8], ptr %buf, i64 0, i64 64 store i8 0, ptr %arrayidx, align 16 - %call9 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #26 + %call9 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #25 %2 = load i64, ptr %size, align 8 %cmp10.not = icmp ult i64 %call9, %2 %add14 = add i64 %call9, 1 @@ -2665,13 +2665,13 @@ return: ; preds = %entry, %lor.lhs.fal declare i32 @gethostname(ptr noundef, i64 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define i32 @uv_get_osfhandle(i32 noundef returned %fd) local_unnamed_addr #5 { +define noundef i32 @uv_get_osfhandle(i32 noundef returned %fd) local_unnamed_addr #5 { entry: ret i32 %fd } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define i32 @uv_open_osfhandle(i32 noundef returned %os_fd) local_unnamed_addr #5 { +define noundef i32 @uv_open_osfhandle(i32 noundef returned %os_fd) local_unnamed_addr #5 { entry: ret i32 %os_fd } @@ -2679,7 +2679,7 @@ entry: ; Function Attrs: nounwind uwtable define i32 @uv_os_getpid() local_unnamed_addr #0 { entry: - %call = tail call i32 @getpid() #24 + %call = tail call i32 @getpid() #23 ret i32 %call } @@ -2689,7 +2689,7 @@ declare i32 @getpid() local_unnamed_addr #1 ; Function Attrs: nounwind uwtable define i32 @uv_os_getppid() local_unnamed_addr #0 { entry: - %call = tail call i32 @getppid() #24 + %call = tail call i32 @getppid() #23 ret i32 %call } @@ -2697,7 +2697,7 @@ entry: declare i32 @getppid() local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define i32 @uv_cpumask_size() local_unnamed_addr #5 { +define noundef i32 @uv_cpumask_size() local_unnamed_addr #5 { entry: ret i32 1024 } @@ -2709,9 +2709,9 @@ entry: br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call = tail call ptr @__errno_location() #25 + %call = tail call ptr @__errno_location() #24 store i32 0, ptr %call, align 4 - %call1 = tail call i32 @getpriority(i32 noundef 0, i32 noundef %pid) #24 + %call1 = tail call i32 @getpriority(i32 noundef 0, i32 noundef %pid) #23 %cmp2 = icmp eq i32 %call1, -1 br i1 %cmp2, label %land.lhs.true, label %if.end7 @@ -2744,12 +2744,12 @@ entry: br i1 %or.cond, label %return, label %if.end if.end: ; preds = %entry - %call = tail call i32 @setpriority(i32 noundef 0, i32 noundef %pid, i32 noundef %priority) #24 + %call = tail call i32 @setpriority(i32 noundef 0, i32 noundef %pid, i32 noundef %priority) #23 %cmp2.not = icmp eq i32 %call, 0 br i1 %cmp2.not, label %return, label %if.then3 if.then3: ; preds = %if.end - %call4 = tail call ptr @__errno_location() #25 + %call4 = tail call ptr @__errno_location() #24 %1 = load i32, ptr %call4, align 4 %sub = sub nsw i32 0, %1 br label %return @@ -2767,18 +2767,18 @@ define i32 @uv_thread_getpriority(i64 noundef %tid, ptr noundef writeonly %prior entry: %policy = alloca i32, align 4 %param = alloca %struct.sched_param, align 4 - %call = tail call i64 (i64, ...) @syscall(i64 noundef 186) #24 + %call = tail call i64 (i64, ...) @syscall(i64 noundef 186) #23 %conv = trunc i64 %call to i32 %cmp = icmp eq ptr %priority, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call2 = call i32 @pthread_getschedparam(i64 noundef %tid, ptr noundef nonnull %policy, ptr noundef nonnull %param) #24 + %call2 = call i32 @pthread_getschedparam(i64 noundef %tid, ptr noundef nonnull %policy, ptr noundef nonnull %param) #23 %cmp3.not = icmp eq i32 %call2, 0 br i1 %cmp3.not, label %if.end7, label %if.then5 if.then5: ; preds = %if.end - %call6 = tail call ptr @__errno_location() #25 + %call6 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call6, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -2789,15 +2789,15 @@ if.end7: ; preds = %if.end br i1 %cmp8, label %land.lhs.true, label %if.end25 land.lhs.true: ; preds = %if.end7 - %call10 = tail call i64 @pthread_self() #25 - %call11 = call i32 @pthread_equal(i64 noundef %tid, i64 noundef %call10) #25 + %call10 = tail call i64 @pthread_self() #24 + %call11 = call i32 @pthread_equal(i64 noundef %tid, i64 noundef %call10) #24 %tobool.not = icmp eq i32 %call11, 0 br i1 %tobool.not, label %if.end25, label %if.then12 if.then12: ; preds = %land.lhs.true - %call13 = tail call ptr @__errno_location() #25 + %call13 = tail call ptr @__errno_location() #24 store i32 0, ptr %call13, align 4 - %call14 = call i32 @getpriority(i32 noundef 0, i32 noundef %conv) #24 + %call14 = call i32 @getpriority(i32 noundef 0, i32 noundef %conv) #23 %cmp15 = icmp eq i32 %call14, -1 br i1 %cmp15, label %land.lhs.true17, label %if.end24 @@ -2843,7 +2843,7 @@ entry: br i1 %or.cond, label %return, label %if.end if.end: ; preds = %entry - %call = call i32 @pthread_getschedparam(i64 noundef %tid, ptr noundef nonnull %policy, ptr noundef nonnull %param) #24 + %call = call i32 @pthread_getschedparam(i64 noundef %tid, ptr noundef nonnull %policy, ptr noundef nonnull %param) #23 %cmp2.not = icmp eq i32 %call, 0 br i1 %cmp2.not, label %if.end5, label %return.sink.split @@ -2853,23 +2853,23 @@ if.end5: ; preds = %if.end br i1 %cmp6, label %land.lhs.true, label %if.end11 land.lhs.true: ; preds = %if.end5 - %call7 = tail call i64 @pthread_self() #25 - %call8 = call i32 @pthread_equal(i64 noundef %tid, i64 noundef %call7) #25 + %call7 = tail call i64 @pthread_self() #24 + %call8 = call i32 @pthread_equal(i64 noundef %tid, i64 noundef %call7) #24 %tobool.not = icmp eq i32 %call8, 0 br i1 %tobool.not, label %if.end11, label %if.then9 if.then9: ; preds = %land.lhs.true - %call.i = call i64 (i64, ...) @syscall(i64 noundef 186) #24 + %call.i = call i64 (i64, ...) @syscall(i64 noundef 186) #23 %conv.i = trunc i64 %call.i to i32 %mul.neg.i = mul nsw i32 %priority, -2 - %call2.i = call i32 @setpriority(i32 noundef 0, i32 noundef %conv.i, i32 noundef %mul.neg.i) #24 + %call2.i = call i32 @setpriority(i32 noundef 0, i32 noundef %conv.i, i32 noundef %mul.neg.i) #23 %cmp3.not.i = icmp eq i32 %call2.i, 0 br i1 %cmp3.not.i, label %return, label %return.sink.split if.end11: ; preds = %land.lhs.true, %if.end5 - %call12 = call i32 @sched_get_priority_min(i32 noundef %1) #24 + %call12 = call i32 @sched_get_priority_min(i32 noundef %1) #23 %2 = load i32, ptr %policy, align 4 - %call13 = call i32 @sched_get_priority_max(i32 noundef %2) #24 + %call13 = call i32 @sched_get_priority_max(i32 noundef %2) #23 %cmp14 = icmp eq i32 %call12, -1 %cmp16 = icmp eq i32 %call13, -1 %or.cond1 = select i1 %cmp14, i1 true, i1 %cmp16 @@ -2877,7 +2877,7 @@ if.end11: ; preds = %land.lhs.true, %if. if.end20: ; preds = %if.end11 %sub21 = sub nsw i32 %call13, %call12 - switch i32 %priority, label %return [ + switch i32 %priority, label %default.unreachable [ i32 2, label %sw.epilog i32 1, label %sw.bb22 i32 0, label %sw.bb23 @@ -2904,6 +2904,9 @@ sw.bb26: ; preds = %if.end20 sw.bb29: ; preds = %if.end20 br label %sw.epilog +default.unreachable: ; preds = %if.end20 + unreachable + sw.epilog: ; preds = %if.end20, %sw.bb29, %sw.bb26, %sw.bb23, %sw.bb22 %prio.0 = phi i32 [ %call12, %sw.bb29 ], [ %add28, %sw.bb26 ], [ %add25, %sw.bb23 ], [ %add, %sw.bb22 ], [ %call13, %if.end20 ] %3 = load i32, ptr %param, align 4 @@ -2913,18 +2916,18 @@ sw.epilog: ; preds = %if.end20, %sw.bb29, if.then31: ; preds = %sw.epilog store i32 %prio.0, ptr %param, align 4 %4 = load i32, ptr %policy, align 4 - %call33 = call i32 @pthread_setschedparam(i64 noundef %tid, i32 noundef %4, ptr noundef nonnull %param) #24 + %call33 = call i32 @pthread_setschedparam(i64 noundef %tid, i32 noundef %4, ptr noundef nonnull %param) #23 %cmp34.not = icmp eq i32 %call33, 0 br i1 %cmp34.not, label %return, label %return.sink.split return.sink.split: ; preds = %if.then31, %if.end11, %if.then9, %if.end - %call6.i = tail call ptr @__errno_location() #25 + %call6.i = tail call ptr @__errno_location() #24 %5 = load i32, ptr %call6.i, align 4 %sub7.i = sub nsw i32 0, %5 br label %return -return: ; preds = %return.sink.split, %if.then9, %sw.epilog, %if.then31, %if.end20, %entry - %retval.0 = phi i32 [ -22, %entry ], [ 0, %if.end20 ], [ 0, %if.then31 ], [ 0, %sw.epilog ], [ 0, %if.then9 ], [ %sub7.i, %return.sink.split ] +return: ; preds = %return.sink.split, %if.then9, %sw.epilog, %if.then31, %entry + %retval.0 = phi i32 [ -22, %entry ], [ 0, %if.then31 ], [ 0, %sw.epilog ], [ 0, %if.then9 ], [ %sub7.i, %return.sink.split ] ret i32 %retval.0 } @@ -2945,18 +2948,18 @@ entry: br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call = call i32 @uname(ptr noundef nonnull %buf) #24 + %call = call i32 @uname(ptr noundef nonnull %buf) #23 %cmp1 = icmp eq i32 %call, -1 br i1 %cmp1, label %if.then2, label %if.end4 if.then2: ; preds = %if.end - %call3 = tail call ptr @__errno_location() #25 + %call3 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call3, align 4 %sub = sub nsw i32 0, %0 br label %error if.end4: ; preds = %if.end - %call7 = call i64 @uv__strscpy(ptr noundef nonnull %buffer, ptr noundef nonnull %buf, i64 noundef 256) #24 + %call7 = call i64 @uv__strscpy(ptr noundef nonnull %buffer, ptr noundef nonnull %buf, i64 noundef 256) #23 %1 = and i64 %call7, 4294967295 %cmp8 = icmp eq i64 %1, 4294967289 br i1 %cmp8, label %error, label %if.end11 @@ -2964,7 +2967,7 @@ if.end4: ; preds = %if.end if.end11: ; preds = %if.end4 %release = getelementptr inbounds %struct.uv_utsname_s, ptr %buffer, i64 0, i32 1 %release13 = getelementptr inbounds %struct.utsname, ptr %buf, i64 0, i32 2 - %call15 = call i64 @uv__strscpy(ptr noundef nonnull %release, ptr noundef nonnull %release13, i64 noundef 256) #24 + %call15 = call i64 @uv__strscpy(ptr noundef nonnull %release, ptr noundef nonnull %release13, i64 noundef 256) #23 %2 = and i64 %call15, 4294967295 %cmp17 = icmp eq i64 %2, 4294967289 br i1 %cmp17, label %error, label %if.end20 @@ -2972,7 +2975,7 @@ if.end11: ; preds = %if.end4 if.end20: ; preds = %if.end11 %version = getelementptr inbounds %struct.uv_utsname_s, ptr %buffer, i64 0, i32 2 %version22 = getelementptr inbounds %struct.utsname, ptr %buf, i64 0, i32 3 - %call24 = call i64 @uv__strscpy(ptr noundef nonnull %version, ptr noundef nonnull %version22, i64 noundef 256) #24 + %call24 = call i64 @uv__strscpy(ptr noundef nonnull %version, ptr noundef nonnull %version22, i64 noundef 256) #23 %3 = and i64 %call24, 4294967295 %cmp26 = icmp eq i64 %3, 4294967289 br i1 %cmp26, label %error, label %if.end29 @@ -2980,7 +2983,7 @@ if.end20: ; preds = %if.end11 if.end29: ; preds = %if.end20 %machine = getelementptr inbounds %struct.uv_utsname_s, ptr %buffer, i64 0, i32 3 %machine31 = getelementptr inbounds %struct.utsname, ptr %buf, i64 0, i32 4 - %call33 = call i64 @uv__strscpy(ptr noundef nonnull %machine, ptr noundef nonnull %machine31, i64 noundef 256) #24 + %call33 = call i64 @uv__strscpy(ptr noundef nonnull %machine, ptr noundef nonnull %machine31, i64 noundef 256) #23 %4 = and i64 %call33, 4294967295 %cmp35 = icmp eq i64 %4, 4294967289 br i1 %cmp35, label %error, label %return @@ -3046,12 +3049,12 @@ sw.epilog.i: ; preds = %sw.bb5.i, %sw.bb2.i if.end: ; preds = %sw.epilog.i %2 = load i32, ptr %namelen, align 4 store i32 %2, ptr %socklen, align 4 - %call1 = call i32 %func(i32 noundef %fd_out.0.i, ptr noundef %name, ptr noundef nonnull %socklen) #24 + %call1 = call i32 %func(i32 noundef %fd_out.0.i, ptr noundef %name, ptr noundef nonnull %socklen) #23 %tobool.not = icmp eq i32 %call1, 0 br i1 %tobool.not, label %if.end4, label %if.then2 if.then2: ; preds = %if.end - %call3 = tail call ptr @__errno_location() #25 + %call3 = tail call ptr @__errno_location() #24 %3 = load i32, ptr %call3, align 4 %sub = sub nsw i32 0, %3 br label %return @@ -3074,12 +3077,12 @@ entry: br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %call = call i32 @gettimeofday(ptr noundef nonnull %time, ptr noundef null) #24 + %call = call i32 @gettimeofday(ptr noundef nonnull %time, ptr noundef null) #23 %cmp1.not = icmp eq i32 %call, 0 br i1 %cmp1.not, label %if.end4, label %if.then2 if.then2: ; preds = %if.end - %call3 = tail call ptr @__errno_location() #25 + %call3 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call3, align 4 %sub = sub nsw i32 0, %0 br label %return @@ -3117,12 +3120,12 @@ entry: br label %do.body do.body: ; preds = %land.rhs, %entry - %call = call i32 @nanosleep(ptr noundef nonnull %timeout, ptr noundef nonnull %timeout) #24 + %call = call i32 @nanosleep(ptr noundef nonnull %timeout, ptr noundef nonnull %timeout) #23 %cmp = icmp eq i32 %call, -1 br i1 %cmp, label %land.rhs, label %do.end land.rhs: ; preds = %do.body - %call4 = tail call ptr @__errno_location() #25 + %call4 = tail call ptr @__errno_location() #24 %0 = load i32, ptr %call4, align 4 %cmp5 = icmp eq i32 %0, 4 br i1 %cmp5, label %do.body, label %do.end @@ -3150,23 +3153,23 @@ lor.lhs.false2: ; preds = %entry br i1 %cmp3, label %return, label %if.end if.end: ; preds = %lor.lhs.false2 - %call = tail call ptr @strchr(ptr noundef nonnull dereferenceable(1) %prog, i32 noundef 47) #26 + %call = tail call ptr @strchr(ptr noundef nonnull dereferenceable(1) %prog, i32 noundef 47) #25 %cmp4.not = icmp eq ptr %call, null br i1 %cmp4.not, label %if.end19, label %if.then5 if.then5: ; preds = %if.end - %call6 = call ptr @realpath(ptr noundef %prog, ptr noundef nonnull %abspath) #24 + %call6 = call ptr @realpath(ptr noundef %prog, ptr noundef nonnull %abspath) #23 %cmp8.not = icmp eq ptr %call6, %abspath br i1 %cmp8.not, label %if.end11, label %if.then9 if.then9: ; preds = %if.then5 - %call10 = tail call ptr @__errno_location() #25 + %call10 = tail call ptr @__errno_location() #24 %1 = load i32, ptr %call10, align 4 %sub = sub nsw i32 0, %1 br label %return if.end11: ; preds = %if.then5 - %call13 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %abspath) #26 + %call13 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %abspath) #25 %2 = load i64, ptr %buflen, align 8 %sub14 = add i64 %2, -1 %spec.select = call i64 @llvm.umin.i64(i64 %sub14, i64 %call13) @@ -3178,34 +3181,34 @@ if.end11: ; preds = %if.then5 br label %return if.end19: ; preds = %if.end - %call20 = tail call ptr @getenv(ptr noundef nonnull @.str.7) #24 + %call20 = tail call ptr @getenv(ptr noundef nonnull @.str.7) #23 %cmp21 = icmp eq ptr %call20, null br i1 %cmp21, label %return, label %if.end23 if.end23: ; preds = %if.end19 - %call24 = tail call ptr @uv__strdup(ptr noundef nonnull %call20) #24 + %call24 = tail call ptr @uv__strdup(ptr noundef nonnull %call20) #23 %cmp25 = icmp eq ptr %call24, null br i1 %cmp25, label %return, label %if.end27 if.end27: ; preds = %if.end23 - %call28 = call ptr @uv__strtok(ptr noundef nonnull %call24, ptr noundef nonnull @.str.8, ptr noundef nonnull %itr) #24 + %call28 = call ptr @uv__strtok(ptr noundef nonnull %call24, ptr noundef nonnull @.str.8, ptr noundef nonnull %itr) #23 %cmp29.not28 = icmp eq ptr %call28, null br i1 %cmp29.not28, label %while.end, label %while.body while.body: ; preds = %if.end27, %if.end51 %token.029 = phi ptr [ %call52, %if.end51 ], [ %call28, %if.end27 ] - %call31 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %trypath, i64 noundef 4095, ptr noundef nonnull @.str.9, ptr noundef nonnull %token.029, ptr noundef %prog) #24 - %call34 = call ptr @realpath(ptr noundef nonnull %trypath, ptr noundef nonnull %abspath) #24 + %call31 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %trypath, i64 noundef 4095, ptr noundef nonnull @.str.9, ptr noundef nonnull %token.029, ptr noundef %prog) #23 + %call34 = call ptr @realpath(ptr noundef nonnull %trypath, ptr noundef nonnull %abspath) #23 %cmp36 = icmp eq ptr %call34, %abspath br i1 %cmp36, label %if.then37, label %if.end51 if.then37: ; preds = %while.body - %call39 = call i32 @access(ptr noundef nonnull %abspath, i32 noundef 1) #24 + %call39 = call i32 @access(ptr noundef nonnull %abspath, i32 noundef 1) #23 %cmp40 = icmp eq i32 %call39, 0 br i1 %cmp40, label %if.then41, label %if.end51 if.then41: ; preds = %if.then37 - %call43 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %abspath) #26 + %call43 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %abspath) #25 %4 = load i64, ptr %buflen, align 8 %sub44 = add i64 %4, -1 %spec.select27 = call i64 @llvm.umin.i64(i64 %sub44, i64 %call43) @@ -3214,16 +3217,16 @@ if.then41: ; preds = %if.then37 %5 = load i64, ptr %buflen, align 8 %arrayidx49 = getelementptr inbounds i8, ptr %buf, i64 %5 store i8 0, ptr %arrayidx49, align 1 - call void @uv__free(ptr noundef nonnull %call24) #24 + call void @uv__free(ptr noundef nonnull %call24) #23 br label %return if.end51: ; preds = %if.then37, %while.body - %call52 = call ptr @uv__strtok(ptr noundef null, ptr noundef nonnull @.str.8, ptr noundef nonnull %itr) #24 + %call52 = call ptr @uv__strtok(ptr noundef null, ptr noundef nonnull @.str.8, ptr noundef nonnull %itr) #23 %cmp29.not = icmp eq ptr %call52, null br i1 %cmp29.not, label %while.end, label %while.body while.end: ; preds = %if.end51, %if.end27 - call void @uv__free(ptr noundef nonnull %call24) #24 + call void @uv__free(ptr noundef nonnull %call24) #23 br label %return return: ; preds = %if.end23, %if.end19, %entry, %lor.lhs.false2, %while.end, %if.then41, %if.end11, %if.then9 @@ -3247,17 +3250,17 @@ define i32 @uv_available_parallelism() local_unnamed_addr #0 { entry: %set = alloca %struct.cpu_set_t, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) %set, i8 0, i64 128, i1 false) - %call = call i32 @sched_getaffinity(i32 noundef 0, i64 noundef 128, ptr noundef nonnull %set) #24 + %call = call i32 @sched_getaffinity(i32 noundef 0, i64 noundef 128, ptr noundef nonnull %set) #23 %cmp = icmp eq i32 %call, 0 br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry - %call1 = call i32 @__sched_cpucount(i64 noundef 128, ptr noundef nonnull %set) #24 + %call1 = call i32 @__sched_cpucount(i64 noundef 128, ptr noundef nonnull %set) #23 %conv = sext i32 %call1 to i64 br label %if.end if.else: ; preds = %entry - %call2 = call i64 @sysconf(i32 noundef 84) #24 + %call2 = call i64 @sysconf(i32 noundef 84) #23 br label %if.end if.end: ; preds = %if.else, %if.then @@ -3268,7 +3271,7 @@ if.end: ; preds = %if.else, %if.then } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #21 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #20 ; Function Attrs: nounwind declare i32 @sched_getaffinity(i32 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1 @@ -3290,19 +3293,19 @@ declare ptr @uv__reallocf(ptr noundef, i64 noundef) local_unnamed_addr #3 declare i32 @getpwuid_r(i32 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #3 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.abs.i32(i32, i1 immarg) #22 +declare i32 @llvm.abs.i32(i32, i1 immarg) #21 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.smax.i64(i64, i64) #22 +declare i64 @llvm.smax.i64(i64, i64) #21 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #23 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #22 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #23 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #22 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #22 +declare i64 @llvm.umin.i64(i64, i64) #21 attributes #0 = { nounwind uwtable "frame-pointer"="all" "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 = { nounwind "frame-pointer"="all" "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" } @@ -3324,14 +3327,13 @@ attributes #16 = { nofree nounwind memory(readwrite, inaccessiblemem: read) uwta attributes #17 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #18 = { nofree nounwind memory(read) "frame-pointer"="all" "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 #19 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite) "frame-pointer"="all" "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 #20 = { mustprogress nofree nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "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 #21 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #22 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #23 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #24 = { nounwind } -attributes #25 = { nounwind willreturn memory(none) } -attributes #26 = { nounwind willreturn memory(read) } -attributes #27 = { noreturn nounwind } +attributes #20 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #21 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #22 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #23 = { nounwind } +attributes #24 = { nounwind willreturn memory(none) } +attributes #25 = { nounwind willreturn memory(read) } +attributes #26 = { noreturn nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/llama.cpp/optimized/llama.cpp.ll b/bench/llama.cpp/optimized/llama.cpp.ll index 5344225315a..8d6253614d5 100644 --- a/bench/llama.cpp/optimized/llama.cpp.ll +++ b/bench/llama.cpp/optimized/llama.cpp.ll @@ -66017,9 +66017,9 @@ declare ptr @ggml_new_tensor_3d(ptr noundef, i32 noundef, i64 noundef, i64 nound ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZL17llm_build_k_shiftP12ggml_contextRK13llama_hparamsRK13llama_cparamsRK14llama_kv_cacheP11ggml_cgraph13llm_rope_typeliffRKSt8functionIFvP11ggml_tensorPKciEE(ptr noundef %ctx, ptr nocapture noundef nonnull readonly align 4 dereferenceable(76) %hparams, ptr nocapture noundef nonnull readonly align 4 dereferenceable(48) %cparams, ptr nocapture noundef nonnull readonly align 8 dereferenceable(128) %kv, ptr noundef %graph, i32 noundef %type, i64 noundef %n_ctx, i32 noundef %n_rot, float noundef %freq_base, float noundef %freq_scale, ptr noundef nonnull align 8 dereferenceable(32) %cb) unnamed_addr #2 { entry: - %__args.addr.i30 = alloca ptr, align 8 - %__args.addr2.i31 = alloca ptr, align 8 - %__args.addr4.i32 = alloca i32, align 4 + %__args.addr.i28 = alloca ptr, align 8 + %__args.addr2.i29 = alloca ptr, align 8 + %__args.addr4.i30 = alloca i32, align 4 %__args.addr.i = alloca ptr, align 8 %__args.addr2.i = alloca ptr, align 8 %__args.addr4.i = alloca i32, align 4 @@ -66035,8 +66035,8 @@ entry: %div.i.i = udiv i32 %3, %1 %div.i = udiv i32 %2, %div.i.i %conv4 = zext i32 %div.i to i64 - %div.i27 = udiv i32 %2, %3 - %conv6 = zext i32 %div.i27 to i64 + %div.i25 = udiv i32 %2, %3 + %conv6 = zext i32 %div.i25 to i64 %n_yarn_orig_ctx = getelementptr inbounds %struct.llama_cparams, ptr %cparams, i64 0, i32 6 %4 = load i32, ptr %n_yarn_orig_ctx, align 4 %yarn_ext_factor = getelementptr inbounds %struct.llama_cparams, ptr %cparams, i64 0, i32 7 @@ -66085,57 +66085,57 @@ _ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit: ; preds = %do.end call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__args.addr.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__args.addr2.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %__args.addr4.i) - %switch.selectcmp = icmp eq i32 %type, 1 - %switch.select = select i1 %switch.selectcmp, i32 2, i32 0 - %cmp1438.not = icmp eq i32 %0, 0 - br i1 %cmp1438.not, label %for.end, label %for.body.lr.ph + %switch = icmp eq i32 %type, 0 + %. = select i1 %switch, i32 0, i32 2 + %cmp1436.not = icmp eq i32 %0, 0 + br i1 %cmp1436.not, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit %k_l = getelementptr inbounds %struct.llama_kv_cache, ptr %kv, i64 0, i32 6 %wide.trip.count = zext i32 %0 to i64 br label %for.body -for.body: ; preds = %for.body.lr.ph, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit37 - %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit37 ] +for.body: ; preds = %for.body.lr.ph, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit35 + %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit35 ] %13 = load ptr, ptr %k_l, align 8 %add.ptr.i = getelementptr inbounds ptr, ptr %13, i64 %indvars.iv %14 = load ptr, ptr %add.ptr.i, align 8 %15 = load i32, ptr %14, align 8 %call21 = call i64 @ggml_row_size(i32 noundef %15, i64 noundef %conv6) %16 = load ptr, ptr %k_l, align 8 - %add.ptr.i29 = getelementptr inbounds ptr, ptr %16, i64 %indvars.iv - %17 = load ptr, ptr %add.ptr.i29, align 8 + %add.ptr.i27 = getelementptr inbounds ptr, ptr %16, i64 %indvars.iv + %17 = load ptr, ptr %add.ptr.i27, align 8 %18 = load i32, ptr %17, align 8 %call26 = call i64 @ggml_row_size(i32 noundef %18, i64 noundef %conv4) %call27 = call ptr @ggml_view_3d(ptr noundef %ctx, ptr noundef nonnull %14, i64 noundef %conv6, i64 noundef %conv3, i64 noundef %n_ctx, i64 noundef %call21, i64 noundef %call26, i64 noundef 0) - %call28 = call ptr @ggml_rope_custom_inplace(ptr noundef %ctx, ptr noundef %call27, ptr noundef %call10, i32 noundef %n_rot, i32 noundef %switch.select, i32 noundef 0, i32 noundef %4, float noundef %freq_base, float noundef %freq_scale, float noundef %5, float noundef %6, float noundef %7, float noundef %8) - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__args.addr.i30) - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__args.addr2.i31) - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %__args.addr4.i32) - store ptr %call28, ptr %__args.addr.i30, align 8 - store ptr @.str.102, ptr %__args.addr2.i31, align 8 + %call28 = call ptr @ggml_rope_custom_inplace(ptr noundef %ctx, ptr noundef %call27, ptr noundef %call10, i32 noundef %n_rot, i32 noundef %., i32 noundef 0, i32 noundef %4, float noundef %freq_base, float noundef %freq_scale, float noundef %5, float noundef %6, float noundef %7, float noundef %8) + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__args.addr.i28) + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__args.addr2.i29) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %__args.addr4.i30) + store ptr %call28, ptr %__args.addr.i28, align 8 + store ptr @.str.102, ptr %__args.addr2.i29, align 8 %19 = trunc i64 %indvars.iv to i32 - store i32 %19, ptr %__args.addr4.i32, align 4 + store i32 %19, ptr %__args.addr4.i30, align 4 %20 = load ptr, ptr %_M_manager.i.i, align 8 - %tobool.not.i.i34 = icmp eq ptr %20, null - br i1 %tobool.not.i.i34, label %if.then.i36, label %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit37 + %tobool.not.i.i32 = icmp eq ptr %20, null + br i1 %tobool.not.i.i32, label %if.then.i34, label %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit35 -if.then.i36: ; preds = %for.body +if.then.i34: ; preds = %for.body call void @_ZSt25__throw_bad_function_callv() #47 unreachable -_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit37: ; preds = %for.body +_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit35: ; preds = %for.body %21 = load ptr, ptr %_M_invoker.i, align 8 - call void %21(ptr noundef nonnull align 8 dereferenceable(16) %cb, ptr noundef nonnull align 8 dereferenceable(8) %__args.addr.i30, ptr noundef nonnull align 8 dereferenceable(8) %__args.addr2.i31, ptr noundef nonnull align 4 dereferenceable(4) %__args.addr4.i32) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__args.addr.i30) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__args.addr2.i31) - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %__args.addr4.i32) + call void %21(ptr noundef nonnull align 8 dereferenceable(16) %cb, ptr noundef nonnull align 8 dereferenceable(8) %__args.addr.i28, ptr noundef nonnull align 8 dereferenceable(8) %__args.addr2.i29, ptr noundef nonnull align 4 dereferenceable(4) %__args.addr4.i30) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__args.addr.i28) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__args.addr2.i29) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %__args.addr4.i30) call void @ggml_build_forward_expand(ptr noundef %graph, ptr noundef %call28) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !380 -for.end: ; preds = %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit37, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit +for.end: ; preds = %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit35, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit ret void } @@ -66148,10 +66148,8 @@ entry: %__args.addr.i = alloca ptr, align 8 %__args.addr2.i = alloca ptr, align 8 %__args.addr4.i = alloca i32, align 4 - switch i32 %type, label %sw.epilog [ - i32 0, label %sw.bb - i32 1, label %sw.bb1 - ] + %switch = icmp eq i32 %type, 0 + br i1 %switch, label %sw.bb, label %sw.bb1 sw.bb: ; preds = %entry %call = tail call ptr @ggml_norm(ptr noundef %ctx, ptr noundef %cur, float noundef %hparams.44.val) @@ -66161,8 +66159,8 @@ sw.bb1: ; preds = %entry %call2 = tail call ptr @ggml_rms_norm(ptr noundef %ctx, ptr noundef %cur, float noundef %hparams.48.val) br label %sw.epilog -sw.epilog: ; preds = %sw.bb1, %sw.bb, %entry - %cur.addr.0 = phi ptr [ %cur, %entry ], [ %call2, %sw.bb1 ], [ %call, %sw.bb ] +sw.epilog: ; preds = %sw.bb1, %sw.bb + %cur.addr.0 = phi ptr [ %call2, %sw.bb1 ], [ %call, %sw.bb ] %tobool = icmp ne ptr %mw, null %tobool3 = icmp ne ptr %mb, null %or.cond = or i1 %tobool, %tobool3 @@ -66831,10 +66829,8 @@ if.end: ; preds = %_ZNKSt8functionIFvP br i1 %tobool2.not, label %if.end11, label %if.then3 if.then3: ; preds = %if.end - switch i32 %type_gate, label %if.end11 [ - i32 0, label %sw.bb - i32 1, label %sw.bb5 - ] + %switch = icmp eq i32 %type_gate, 0 + br i1 %switch, label %sw.bb, label %sw.bb5 sw.bb: ; preds = %if.then3 %call4 = call ptr @ggml_mul_mat(ptr noundef %ctx, ptr noundef nonnull %gate, ptr noundef %tmp.0) @@ -66884,9 +66880,12 @@ _ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit91: ; preds = %sw.bb5 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %__args.addr4.i86) br label %if.end11 -if.end11: ; preds = %if.end, %if.then3, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit83, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit91 - %cur.addr.1 = phi ptr [ %cur, %if.then3 ], [ %call6, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit91 ], [ %call4, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit83 ], [ %tmp.0, %if.end ] - switch i32 %type_op, label %sw.epilog21 [ +default.unreachable: ; preds = %if.end11 + unreachable + +if.end11: ; preds = %if.end, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit83, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit91 + %cur.addr.1 = phi ptr [ %call6, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit91 ], [ %call4, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit83 ], [ %tmp.0, %if.end ] + switch i32 %type_op, label %default.unreachable [ i32 0, label %sw.bb12 i32 1, label %sw.bb14 i32 2, label %sw.bb16 @@ -67010,8 +67009,8 @@ _ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit131: ; preds = %_ZNKSt8func call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %__args.addr4.i126) br label %sw.epilog21 -sw.epilog21: ; preds = %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit131, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit115, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit107, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit99, %if.end11 - %cur.addr.2 = phi ptr [ %cur.addr.1, %if.end11 ], [ %call20, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit131 ], [ %call17, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit115 ], [ %call15, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit107 ], [ %call13, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit99 ] +sw.epilog21: ; preds = %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit131, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit115, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit107, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit99 + %cur.addr.2 = phi ptr [ %call20, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit131 ], [ %call17, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit115 ], [ %call15, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit107 ], [ %call13, %_ZNKSt8functionIFvP11ggml_tensorPKciEEclES1_S3_i.exit99 ] %cmp = icmp eq i32 %type_gate, 1 br i1 %cmp, label %if.then22, label %if.end24 diff --git a/bench/lua/optimized/lstrlib.ll b/bench/lua/optimized/lstrlib.ll index aecf54e264c..c251498b6f0 100644 --- a/bench/lua/optimized/lstrlib.ll +++ b/bench/lua/optimized/lstrlib.ll @@ -1912,7 +1912,7 @@ while.end: ; preds = %lor.end, %while.bod %dec.lcssa = phi i32 [ %dec139, %while.body ], [ -1, %lor.end ] store i32 %dec.lcssa, ptr %ntoalign, align 4 %inc15 = add nsw i32 %arg.0146, 1 - switch i32 %call2, label %sw.epilog [ + switch i32 %call2, label %default.unreachable157 [ i32 0, label %sw.bb i32 1, label %sw.bb36 i32 2, label %sw.bb58 @@ -1922,8 +1922,8 @@ while.end: ; preds = %lor.end, %while.bod i32 6, label %sw.bb118 i32 7, label %sw.bb143 i32 8, label %sw.bb174 - i32 9, label %sw.bb188 - i32 10, label %sw.bb188 + i32 9, label %sw.epilog + i32 10, label %sw.epilog ] sw.bb: ; preds = %while.end @@ -2373,14 +2373,14 @@ lor.end182: ; preds = %lor.rhs179, %sw.bb1 store i64 %inc186, ptr %n, align 8 %arrayidx187 = getelementptr inbounds i8, ptr %62, i64 %61 store i8 0, ptr %arrayidx187, align 1 - br label %sw.bb188 - -sw.bb188: ; preds = %lor.end182, %while.end, %while.end br label %sw.epilog -sw.epilog: ; preds = %lor.end111, %lor.end96, %sw.bb188, %lor.end166, %packint.exit135, %copywithendian.exit100, %copywithendian.exit88, %copywithendian.exit, %packint.exit76, %packint.exit, %while.end - %totalsize.1 = phi i64 [ %add4, %while.end ], [ %add4, %sw.bb188 ], [ %add173, %lor.end166 ], [ %add142, %packint.exit135 ], [ %add4, %copywithendian.exit100 ], [ %add4, %copywithendian.exit88 ], [ %add4, %copywithendian.exit ], [ %add4, %packint.exit76 ], [ %add4, %packint.exit ], [ %add4, %lor.end96 ], [ %add4, %lor.end111 ] - %arg.1 = phi i32 [ %inc15, %while.end ], [ %arg.0146, %sw.bb188 ], [ %inc15, %lor.end166 ], [ %inc15, %packint.exit135 ], [ %inc15, %copywithendian.exit100 ], [ %inc15, %copywithendian.exit88 ], [ %inc15, %copywithendian.exit ], [ %inc15, %packint.exit76 ], [ %inc15, %packint.exit ], [ %inc15, %lor.end96 ], [ %inc15, %lor.end111 ] +default.unreachable157: ; preds = %while.end + unreachable + +sw.epilog: ; preds = %lor.end111, %lor.end96, %while.end, %while.end, %lor.end182, %lor.end166, %packint.exit135, %copywithendian.exit100, %copywithendian.exit88, %copywithendian.exit, %packint.exit76, %packint.exit + %totalsize.1 = phi i64 [ %add173, %lor.end166 ], [ %add142, %packint.exit135 ], [ %add4, %copywithendian.exit100 ], [ %add4, %copywithendian.exit88 ], [ %add4, %copywithendian.exit ], [ %add4, %packint.exit76 ], [ %add4, %packint.exit ], [ %add4, %lor.end182 ], [ %add4, %while.end ], [ %add4, %while.end ], [ %add4, %lor.end96 ], [ %add4, %lor.end111 ] + %arg.1 = phi i32 [ %inc15, %lor.end166 ], [ %inc15, %packint.exit135 ], [ %inc15, %copywithendian.exit100 ], [ %inc15, %copywithendian.exit88 ], [ %inc15, %copywithendian.exit ], [ %inc15, %packint.exit76 ], [ %inc15, %packint.exit ], [ %arg.0146, %lor.end182 ], [ %arg.0146, %while.end ], [ %arg.0146, %while.end ], [ %inc15, %lor.end96 ], [ %inc15, %lor.end111 ] %63 = load ptr, ptr %fmt, align 8 %64 = load i8, ptr %63, align 1 %cmp.not = icmp eq i8 %64, 0 @@ -2495,8 +2495,8 @@ lor.end: ; preds = %lor.rhs, %posrelatI %maxalign.i = getelementptr inbounds %struct.Header, ptr %h, i64 0, i32 2 store i32 1, ptr %maxalign.i, align 4 %1 = load i8, ptr %call, align 1 - %cmp10.not87 = icmp eq i8 %1, 0 - br i1 %cmp10.not87, label %while.end, label %while.body.lr.ph + %cmp10.not89 = icmp eq i8 %1, 0 + br i1 %cmp10.not89, label %while.end, label %while.body.lr.ph while.body.lr.ph: ; preds = %lor.end %2 = getelementptr inbounds i8, ptr %f41, i64 8 @@ -2505,16 +2505,16 @@ while.body.lr.ph: ; preds = %lor.end br label %while.body while.body: ; preds = %while.body.lr.ph, %sw.epilog - %pos.089 = phi i64 [ %sub, %while.body.lr.ph ], [ %add92, %sw.epilog ] - %n.088 = phi i32 [ 0, %while.body.lr.ph ], [ %n.1, %sw.epilog ] - %call12 = call fastcc i32 @getdetails(ptr noundef nonnull %h, i64 noundef %pos.089, ptr noundef nonnull %fmt, ptr noundef nonnull %size, ptr noundef nonnull %ntoalign), !range !17 + %pos.091 = phi i64 [ %sub, %while.body.lr.ph ], [ %add92, %sw.epilog ] + %n.090 = phi i32 [ 0, %while.body.lr.ph ], [ %n.1, %sw.epilog ] + %call12 = call fastcc i32 @getdetails(ptr noundef nonnull %h, i64 noundef %pos.091, ptr noundef nonnull %fmt, ptr noundef nonnull %size, ptr noundef nonnull %ntoalign), !range !17 %5 = load i32, ptr %ntoalign, align 4 %conv13 = sext i32 %5 to i64 %6 = load i32, ptr %size, align 4 %conv14 = sext i32 %6 to i64 %add = add nsw i64 %conv14, %conv13 %7 = load i64, ptr %ld, align 8 - %sub15 = sub i64 %7, %pos.089 + %sub15 = sub i64 %7, %pos.091 %cmp16.not = icmp ugt i64 %add, %sub15 br i1 %cmp16.not, label %lor.rhs22, label %lor.end25 @@ -2523,10 +2523,10 @@ lor.rhs22: ; preds = %while.body br label %lor.end25 lor.end25: ; preds = %lor.rhs22, %while.body - %add28 = add i64 %pos.089, %conv13 + %add28 = add i64 %pos.091, %conv13 call void @luaL_checkstack(ptr noundef %L, i32 noundef 2, ptr noundef nonnull @.str.72) #13 - %inc = add nsw i32 %n.088, 1 - switch i32 %call12, label %sw.epilog [ + %inc = add nsw i32 %n.090, 1 + switch i32 %call12, label %default.unreachable97 [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.bb32 @@ -2535,9 +2535,9 @@ lor.end25: ; preds = %lor.rhs22, %while.b i32 5, label %sw.bb44 i32 6, label %sw.bb48 i32 7, label %sw.bb70 - i32 9, label %sw.bb90 - i32 8, label %sw.bb90 - i32 10, label %sw.bb90 + i32 9, label %sw.epilog + i32 8, label %sw.epilog + i32 10, label %sw.epilog ] sw.bb: ; preds = %lor.end25, %lor.end25 @@ -2574,11 +2574,11 @@ while.body.i: ; preds = %sw.bb32, %while.bod br i1 %cmp3.not.i, label %copywithendian.exit.loopexit, label %while.body.i, !llvm.loop !20 copywithendian.exit.loopexit: ; preds = %while.body.i - %.pre94 = load float, ptr %f, align 4 + %.pre96 = load float, ptr %f, align 4 br label %copywithendian.exit copywithendian.exit: ; preds = %copywithendian.exit.loopexit, %if.then.i - %13 = phi float [ %.pre94, %copywithendian.exit.loopexit ], [ %11, %if.then.i ] + %13 = phi float [ %.pre96, %copywithendian.exit.loopexit ], [ %11, %if.then.i ] %conv35 = fpext float %13 to double call void @lua_pushnumber(ptr noundef %L, double noundef %conv35) #13 br label %sw.epilog @@ -2608,11 +2608,11 @@ while.body.i56: ; preds = %sw.bb36, %while.bod br i1 %cmp3.not.i63, label %copywithendian.exit65.loopexit, label %while.body.i56, !llvm.loop !20 copywithendian.exit65.loopexit: ; preds = %while.body.i56 - %.pre93 = load double, ptr %f37, align 8 + %.pre95 = load double, ptr %f37, align 8 br label %copywithendian.exit65 copywithendian.exit65: ; preds = %copywithendian.exit65.loopexit, %if.then.i64 - %18 = phi double [ %.pre93, %copywithendian.exit65.loopexit ], [ %16, %if.then.i64 ] + %18 = phi double [ %.pre95, %copywithendian.exit65.loopexit ], [ %16, %if.then.i64 ] call void @lua_pushnumber(ptr noundef %L, double noundef %18) #13 br label %sw.epilog @@ -2779,12 +2779,12 @@ lor.end84: ; preds = %lor.rhs81, %sw.bb70 %add89 = add i64 %add88, %call73 br label %sw.epilog -sw.bb90: ; preds = %lor.end25, %lor.end25, %lor.end25 - br label %sw.epilog +default.unreachable97: ; preds = %lor.end25 + unreachable -sw.epilog: ; preds = %sw.bb90, %lor.end84, %lor.end64, %sw.bb44, %copywithendian.exit77, %copywithendian.exit65, %copywithendian.exit, %sw.bb, %lor.end25 - %n.1 = phi i32 [ %inc, %lor.end25 ], [ %n.088, %sw.bb90 ], [ %inc, %lor.end84 ], [ %inc, %lor.end64 ], [ %inc, %sw.bb44 ], [ %inc, %copywithendian.exit77 ], [ %inc, %copywithendian.exit65 ], [ %inc, %copywithendian.exit ], [ %inc, %sw.bb ] - %pos.1 = phi i64 [ %add28, %lor.end25 ], [ %add28, %sw.bb90 ], [ %add89, %lor.end84 ], [ %add69, %lor.end64 ], [ %add28, %sw.bb44 ], [ %add28, %copywithendian.exit77 ], [ %add28, %copywithendian.exit65 ], [ %add28, %copywithendian.exit ], [ %add28, %sw.bb ] +sw.epilog: ; preds = %lor.end25, %lor.end25, %lor.end25, %lor.end84, %lor.end64, %sw.bb44, %copywithendian.exit77, %copywithendian.exit65, %copywithendian.exit, %sw.bb + %n.1 = phi i32 [ %inc, %lor.end84 ], [ %inc, %lor.end64 ], [ %inc, %sw.bb44 ], [ %inc, %copywithendian.exit77 ], [ %inc, %copywithendian.exit65 ], [ %inc, %copywithendian.exit ], [ %inc, %sw.bb ], [ %n.090, %lor.end25 ], [ %n.090, %lor.end25 ], [ %n.090, %lor.end25 ] + %pos.1 = phi i64 [ %add89, %lor.end84 ], [ %add69, %lor.end64 ], [ %add28, %sw.bb44 ], [ %add28, %copywithendian.exit77 ], [ %add28, %copywithendian.exit65 ], [ %add28, %copywithendian.exit ], [ %add28, %sw.bb ], [ %add28, %lor.end25 ], [ %add28, %lor.end25 ], [ %add28, %lor.end25 ] %add92 = add i64 %pos.1, %conv14 %38 = load ptr, ptr %fmt, align 8 %39 = load i8, ptr %38, align 1 diff --git a/bench/luajit/optimized/buildvm.ll b/bench/luajit/optimized/buildvm.ll index 5973bd603ed..2662b7bcf88 100644 --- a/bench/luajit/optimized/buildvm.ll +++ b/bench/luajit/optimized/buildvm.ll @@ -1057,11 +1057,11 @@ if.then35: ; preds = %while.body31 %inc36 = add nsw i32 %ofs.0, 1 br label %while.body31.backedge -while.body31.backedge: ; preds = %if.then35, %if.else193, %while.end371, %sw.bb376, %sw.bb383, %sw.bb386, %sw.bb389, %if.else298, %if.then294, %if.end52, %sw.bb124, %sw.bb121, %do.end119, %ob, %sw.bb66, %vaarg.end, %if.end158, %if.then186, %sw.bb183 - %mrm.0.be = phi i32 [ %mrm.2, %sw.bb183 ], [ %mrm.2, %if.then186 ], [ %mrm.2, %if.end158 ], [ %mrm.0, %if.then35 ], [ %mrm.0, %if.else193 ], [ %conv391, %sw.bb389 ], [ %mrm.0, %sw.bb386 ], [ %mrm.0, %sw.bb383 ], [ %mrm.0, %sw.bb376 ], [ %mrm.0, %while.end371 ], [ %mrm.0, %if.then294 ], [ %mrm.0, %if.else298 ], [ -1, %if.end52 ], [ -1, %sw.bb124 ], [ -1, %sw.bb121 ], [ -1, %do.end119 ], [ -1, %ob ], [ -1, %sw.bb66 ], [ -1, %vaarg.end ] - %ofs.0.be = phi i32 [ %ofs.1, %sw.bb183 ], [ %dec, %if.then186 ], [ %ofs.1, %if.end158 ], [ %inc36, %if.then35 ], [ %ofs.0, %if.else193 ], [ %ofs.0, %sw.bb389 ], [ %inc388, %sw.bb386 ], [ %add385, %sw.bb383 ], [ %add379, %sw.bb376 ], [ %ofs.0, %while.end371 ], [ %add288, %if.then294 ], [ %add299, %if.else298 ], [ %ofs.0, %if.end52 ], [ %ofs.0, %sw.bb124 ], [ %add123, %sw.bb121 ], [ %add120, %do.end119 ], [ %inc96, %ob ], [ %add67, %sw.bb66 ], [ %ofs.0, %vaarg.end ] - %pos.0.be = phi i32 [ %inc41, %sw.bb183 ], [ %inc41, %if.then186 ], [ %inc41, %if.end158 ], [ %pos.0, %if.then35 ], [ %pos.0, %if.else193 ], [ %pos.0, %sw.bb389 ], [ %pos.0, %sw.bb386 ], [ %pos.0, %sw.bb383 ], [ %inc380, %sw.bb376 ], [ %inc373, %while.end371 ], [ %inc295, %if.then294 ], [ %inc287, %if.else298 ], [ %inc41, %if.end52 ], [ %inc41, %sw.bb124 ], [ %inc41, %sw.bb121 ], [ %inc41, %do.end119 ], [ %inc41, %ob ], [ %inc41, %sw.bb66 ], [ %inc41, %vaarg.end ] - %p.0.be = phi ptr [ %incdec.ptr169, %sw.bb183 ], [ %incdec.ptr169, %if.then186 ], [ %incdec.ptr169, %if.end158 ], [ %incdec.ptr, %if.then35 ], [ %incdec.ptr, %if.else193 ], [ %incdec.ptr, %sw.bb389 ], [ %incdec.ptr387, %sw.bb386 ], [ %add.ptr384, %sw.bb383 ], [ %incdec.ptr377, %sw.bb376 ], [ %p.5, %while.end371 ], [ %p.4, %if.then294 ], [ %p.4, %if.else298 ], [ %incdec.ptr, %if.end52 ], [ %incdec.ptr, %sw.bb124 ], [ %incdec.ptr122, %sw.bb121 ], [ %incdec.ptr, %do.end119 ], [ %incdec.ptr, %ob ], [ %incdec.ptr, %sw.bb66 ], [ %incdec.ptr, %vaarg.end ] +while.body31.backedge: ; preds = %if.then35, %while.end371, %sw.bb376, %sw.bb383, %sw.bb386, %sw.bb389, %if.else298, %if.then294, %if.end52, %sw.bb124, %sw.bb121, %do.end119, %ob, %sw.bb66, %if.end158, %if.then186, %sw.bb183 + %mrm.0.be = phi i32 [ %mrm.2, %sw.bb183 ], [ %mrm.2, %if.then186 ], [ %mrm.2, %if.end158 ], [ %mrm.0, %if.then35 ], [ %conv391, %sw.bb389 ], [ %mrm.0, %sw.bb386 ], [ %mrm.0, %sw.bb383 ], [ %mrm.0, %sw.bb376 ], [ %mrm.0, %while.end371 ], [ %mrm.0, %if.then294 ], [ %mrm.0, %if.else298 ], [ -1, %if.end52 ], [ -1, %sw.bb124 ], [ -1, %sw.bb121 ], [ -1, %do.end119 ], [ -1, %ob ], [ -1, %sw.bb66 ] + %ofs.0.be = phi i32 [ %ofs.1, %sw.bb183 ], [ %dec, %if.then186 ], [ %ofs.1, %if.end158 ], [ %inc36, %if.then35 ], [ %ofs.0, %sw.bb389 ], [ %inc388, %sw.bb386 ], [ %add385, %sw.bb383 ], [ %add379, %sw.bb376 ], [ %ofs.0, %while.end371 ], [ %add288, %if.then294 ], [ %add299, %if.else298 ], [ %ofs.0, %if.end52 ], [ %ofs.0, %sw.bb124 ], [ %add123, %sw.bb121 ], [ %add120, %do.end119 ], [ %inc96, %ob ], [ %add67, %sw.bb66 ] + %pos.0.be = phi i32 [ %inc41, %sw.bb183 ], [ %inc41, %if.then186 ], [ %inc41, %if.end158 ], [ %pos.0, %if.then35 ], [ %pos.0, %sw.bb389 ], [ %pos.0, %sw.bb386 ], [ %pos.0, %sw.bb383 ], [ %inc380, %sw.bb376 ], [ %inc373, %while.end371 ], [ %inc295, %if.then294 ], [ %inc287, %if.else298 ], [ %inc41, %if.end52 ], [ %inc41, %sw.bb124 ], [ %inc41, %sw.bb121 ], [ %inc41, %do.end119 ], [ %inc41, %ob ], [ %inc41, %sw.bb66 ] + %p.0.be = phi ptr [ %incdec.ptr169, %sw.bb183 ], [ %incdec.ptr169, %if.then186 ], [ %incdec.ptr169, %if.end158 ], [ %incdec.ptr, %if.then35 ], [ %incdec.ptr, %sw.bb389 ], [ %incdec.ptr387, %sw.bb386 ], [ %add.ptr384, %sw.bb383 ], [ %incdec.ptr377, %sw.bb376 ], [ %p.5, %while.end371 ], [ %p.4, %if.then294 ], [ %p.4, %if.else298 ], [ %incdec.ptr, %if.end52 ], [ %incdec.ptr, %sw.bb124 ], [ %incdec.ptr122, %sw.bb121 ], [ %incdec.ptr, %do.end119 ], [ %incdec.ptr, %ob ], [ %incdec.ptr, %sw.bb66 ] br label %while.body31 if.else: ; preds = %while.body31 @@ -1094,7 +1094,7 @@ vaarg.end: ; preds = %vaarg.in_mem, %vaar %idxprom42 = sext i32 %pos.0 to i64 %arrayidx43 = getelementptr inbounds i32, ptr %12, i64 %idxprom42 store i32 %18, ptr %arrayidx43, align 4 - switch i8 %14, label %while.body31.backedge [ + switch i8 %14, label %default.unreachable [ i8 -23, label %sw.bb i8 -17, label %sw.bb59 i8 -13, label %sw.bb66 @@ -1218,8 +1218,8 @@ land.lhs.true: ; preds = %do.body129 %26 = load i8, ptr %incdec.ptr, align 1 %.mask = and i8 %26, -32 %cmp136.not = icmp eq i8 %.mask, 64 - %or.cond288 = select i1 %cmp133.not, i1 %cmp136.not, i1 false - br i1 %or.cond288, label %if.then138, label %do.end148 + %or.cond292 = select i1 %cmp133.not, i1 %cmp136.not, i1 false + br i1 %or.cond292, label %if.then138, label %do.end148 if.then138: ; preds = %land.lhs.true, %do.body129 %27 = load ptr, ptr %actionlist, align 8 @@ -1255,7 +1255,7 @@ if.end158: ; preds = %land.lhs.true152, % %incdec.ptr169 = getelementptr inbounds i8, ptr %p.0, i64 2 %30 = lshr i8 %26, 3 %31 = and i8 %30, 3 - switch i8 %31, label %if.end168.unreachabledefault [ + switch i8 %31, label %default.unreachable252 [ i8 3, label %sw.bb173 i8 2, label %sw.bb178 i8 1, label %sw.bb183 @@ -1286,11 +1286,14 @@ if.then186: ; preds = %sw.bb183 %dec = add nsw i32 %ofs.1, -1 br label %while.body31.backedge -if.end168.unreachabledefault: ; preds = %if.end158 +default.unreachable252: ; preds = %if.end158 + unreachable + +default.unreachable: ; preds = %if.else193, %vaarg.end unreachable if.else193: ; preds = %if.else - switch i8 %14, label %while.body31.backedge [ + switch i8 %14, label %default.unreachable [ i8 -12, label %sw.bb195 i8 -10, label %sw.bb195 i8 -11, label %sw.bb244 diff --git a/bench/luajit/optimized/lj_cparse.ll b/bench/luajit/optimized/lj_cparse.ll index cf0377180e4..dca3a9740d2 100644 --- a/bench/luajit/optimized/lj_cparse.ll +++ b/bench/luajit/optimized/lj_cparse.ll @@ -5874,12 +5874,11 @@ entry: %depth.i346 = getelementptr inbounds %struct.CPState, ptr %cp, i64 0, i32 12 %id211 = getelementptr inbounds %struct.CPValue, ptr %k, i64 0, i32 1 %id3 = getelementptr inbounds %struct.CPValue, ptr %k3, i64 0, i32 1 - %switch = icmp ult i32 %pri, 11 - br i1 %switch, label %for.cond, label %sw.default.split + br label %for.cond -for.cond: ; preds = %entry, %for.cond.backedge - %.pre416 = load i32, ptr %tok1.i, align 4 - switch i32 %pri, label %sw.bb170 [ +for.cond: ; preds = %for.cond.backedge, %entry + %0 = load i32, ptr %tok1.i, align 4 + switch i32 %pri, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb11 i32 2, label %sw.bb19 @@ -5890,10 +5889,11 @@ for.cond: ; preds = %entry, %for.cond.ba i32 7, label %sw.bb56 i32 8, label %sw.bb135 i32 9, label %sw.bb152 + i32 10, label %sw.bb170 ] sw.bb: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 63, label %if.then i32 260, label %if.then14 i32 261, label %if.then22 @@ -5917,10 +5917,10 @@ sw.bb: ; preds = %for.cond if.then: ; preds = %sw.bb %call.i = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %0 = load i32, ptr %depth.i346, align 4 - %inc.i.i359405 = add nsw i32 %0, 1 + %1 = load i32, ptr %depth.i346, align 4 + %inc.i.i359405 = add nsw i32 %1, 1 store i32 %inc.i.i359405, ptr %depth.i346, align 4 - %cmp.i.i360406 = icmp sgt i32 %0, 19 + %cmp.i.i360406 = icmp sgt i32 %1, 19 br i1 %cmp.i.i360406, label %if.then.i.i362, label %cp_expr_sub.exit363 if.then.i.i362: ; preds = %if.then, %cp_opt.exit357 @@ -5930,22 +5930,22 @@ if.then.i.i362: ; preds = %if.then, %cp_opt.ex cp_expr_sub.exit363: ; preds = %if.then, %cp_opt.exit357 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %1 = load i32, ptr %depth.i346, align 4 - %dec.i.i361 = add nsw i32 %1, -1 + %2 = load i32, ptr %depth.i346, align 4 + %dec.i.i361 = add nsw i32 %2, -1 store i32 %dec.i.i361, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 0) - %2 = load i32, ptr %tok1.i, align 4 - switch i32 %2, label %if.then.i138 [ + %3 = load i32, ptr %tok1.i, align 4 + switch i32 %3, label %if.then.i138 [ i32 44, label %cp_opt.exit357 i32 58, label %cp_check.exit ] cp_opt.exit357: ; preds = %cp_expr_sub.exit363 %call.i356 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %3 = load i32, ptr %depth.i346, align 4 - %inc.i.i359 = add nsw i32 %3, 1 + %4 = load i32, ptr %depth.i346, align 4 + %inc.i.i359 = add nsw i32 %4, 1 store i32 %inc.i.i359, ptr %depth.i346, align 4 - %cmp.i.i360 = icmp sgt i32 %3, 19 + %cmp.i.i360 = icmp sgt i32 %4, 19 br i1 %cmp.i.i360, label %if.then.i.i362, label %cp_expr_sub.exit363, !llvm.loop !32 if.then.i138: ; preds = %cp_expr_sub.exit363 @@ -5954,10 +5954,10 @@ if.then.i138: ; preds = %cp_expr_sub.exit363 cp_check.exit: ; preds = %cp_expr_sub.exit363 %call.i139 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %4 = load i32, ptr %depth.i346, align 4 - %inc.i.i = add nsw i32 %4, 1 + %5 = load i32, ptr %depth.i346, align 4 + %inc.i.i = add nsw i32 %5, 1 store i32 %inc.i.i, ptr %depth.i346, align 4 - %cmp.i.i = icmp sgt i32 %4, 19 + %cmp.i.i = icmp sgt i32 %5, 19 br i1 %cmp.i.i, label %if.then.i.i, label %cp_expr_sub.exit if.then.i.i: ; preds = %cp_check.exit @@ -5967,24 +5967,24 @@ if.then.i.i: ; preds = %cp_check.exit cp_expr_sub.exit: ; preds = %cp_check.exit call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k3) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k3) - %5 = load i32, ptr %depth.i346, align 4 - %dec.i.i = add nsw i32 %5, -1 + %6 = load i32, ptr %depth.i346, align 4 + %dec.i.i = add nsw i32 %6, -1 store i32 %dec.i.i, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k3, i32 noundef 0) - %6 = load i32, ptr %k, align 4 - %tobool1.not = icmp eq i32 %6, 0 - %7 = load i32, ptr %k2, align 4 - %8 = load i32, ptr %k3, align 4 - %cond = select i1 %tobool1.not, i32 %8, i32 %7 + %7 = load i32, ptr %k, align 4 + %tobool1.not = icmp eq i32 %7, 0 + %8 = load i32, ptr %k2, align 4 + %9 = load i32, ptr %k3, align 4 + %cond = select i1 %tobool1.not, i32 %9, i32 %8 store i32 %cond, ptr %k, align 4 - %9 = load i32, ptr %id, align 4 - %10 = load i32, ptr %id3, align 4 - %cond9 = tail call i32 @llvm.umax.i32(i32 %9, i32 %10) + %10 = load i32, ptr %id, align 4 + %11 = load i32, ptr %id3, align 4 + %cond9 = tail call i32 @llvm.umax.i32(i32 %10, i32 %11) store i32 %cond9, ptr %id211, align 4 br label %for.cond.backedge sw.bb11: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 260, label %if.then14 i32 261, label %if.then22 i32 124, label %if.then30 @@ -6007,10 +6007,10 @@ sw.bb11: ; preds = %for.cond if.then14: ; preds = %sw.bb, %sw.bb11 %call.i144 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %11 = load i32, ptr %depth.i346, align 4 - %inc.i.i147 = add nsw i32 %11, 1 + %12 = load i32, ptr %depth.i346, align 4 + %inc.i.i147 = add nsw i32 %12, 1 store i32 %inc.i.i147, ptr %depth.i346, align 4 - %cmp.i.i148 = icmp sgt i32 %11, 19 + %cmp.i.i148 = icmp sgt i32 %12, 19 br i1 %cmp.i.i148, label %if.then.i.i150, label %cp_expr_sub.exit151 if.then.i.i150: ; preds = %if.then14 @@ -6020,22 +6020,22 @@ if.then.i.i150: ; preds = %if.then14 cp_expr_sub.exit151: ; preds = %if.then14 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %12 = load i32, ptr %depth.i346, align 4 - %dec.i.i149 = add nsw i32 %12, -1 + %13 = load i32, ptr %depth.i346, align 4 + %dec.i.i149 = add nsw i32 %13, -1 store i32 %dec.i.i149, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 2) - %13 = load i32, ptr %k, align 4 - %tobool15 = icmp ne i32 %13, 0 - %14 = load i32, ptr %k2, align 4 - %tobool16 = icmp ne i32 %14, 0 - %15 = select i1 %tobool15, i1 true, i1 %tobool16 - %lor.ext = zext i1 %15 to i32 + %14 = load i32, ptr %k, align 4 + %tobool15 = icmp ne i32 %14, 0 + %15 = load i32, ptr %k2, align 4 + %tobool16 = icmp ne i32 %15, 0 + %16 = select i1 %tobool15, i1 true, i1 %tobool16 + %lor.ext = zext i1 %16 to i32 store i32 %lor.ext, ptr %k, align 4 store i32 9, ptr %id211, align 4 br label %for.cond.backedge sw.bb19: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 261, label %if.then22 i32 124, label %if.then30 i32 94, label %if.then35 @@ -6057,10 +6057,10 @@ sw.bb19: ; preds = %for.cond if.then22: ; preds = %sw.bb, %sw.bb11, %sw.bb19 %call.i156 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %16 = load i32, ptr %depth.i346, align 4 - %inc.i.i159 = add nsw i32 %16, 1 + %17 = load i32, ptr %depth.i346, align 4 + %inc.i.i159 = add nsw i32 %17, 1 store i32 %inc.i.i159, ptr %depth.i346, align 4 - %cmp.i.i160 = icmp sgt i32 %16, 19 + %cmp.i.i160 = icmp sgt i32 %17, 19 br i1 %cmp.i.i160, label %if.then.i.i162, label %cp_expr_sub.exit163 if.then.i.i162: ; preds = %if.then22 @@ -6070,22 +6070,22 @@ if.then.i.i162: ; preds = %if.then22 cp_expr_sub.exit163: ; preds = %if.then22 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %17 = load i32, ptr %depth.i346, align 4 - %dec.i.i161 = add nsw i32 %17, -1 + %18 = load i32, ptr %depth.i346, align 4 + %dec.i.i161 = add nsw i32 %18, -1 store i32 %dec.i.i161, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 3) - %18 = load i32, ptr %k, align 4 - %tobool23 = icmp ne i32 %18, 0 - %19 = load i32, ptr %k2, align 4 - %tobool24 = icmp ne i32 %19, 0 - %20 = select i1 %tobool23, i1 %tobool24, i1 false - %land.ext = zext i1 %20 to i32 + %19 = load i32, ptr %k, align 4 + %tobool23 = icmp ne i32 %19, 0 + %20 = load i32, ptr %k2, align 4 + %tobool24 = icmp ne i32 %20, 0 + %21 = select i1 %tobool23, i1 %tobool24, i1 false + %land.ext = zext i1 %21 to i32 store i32 %land.ext, ptr %k, align 4 store i32 9, ptr %id211, align 4 br label %for.cond.backedge sw.bb27: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 124, label %if.then30 i32 94, label %if.then35 i32 38, label %if.then40 @@ -6106,10 +6106,10 @@ sw.bb27: ; preds = %for.cond if.then30: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27 %call.i168 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %21 = load i32, ptr %depth.i346, align 4 - %inc.i.i171 = add nsw i32 %21, 1 + %22 = load i32, ptr %depth.i346, align 4 + %inc.i.i171 = add nsw i32 %22, 1 store i32 %inc.i.i171, ptr %depth.i346, align 4 - %cmp.i.i172 = icmp sgt i32 %21, 19 + %cmp.i.i172 = icmp sgt i32 %22, 19 br i1 %cmp.i.i172, label %if.then.i.i174, label %cp_expr_sub.exit175 if.then.i.i174: ; preds = %if.then30 @@ -6119,17 +6119,17 @@ if.then.i.i174: ; preds = %if.then30 cp_expr_sub.exit175: ; preds = %if.then30 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %22 = load i32, ptr %depth.i346, align 4 - %dec.i.i173 = add nsw i32 %22, -1 + %23 = load i32, ptr %depth.i346, align 4 + %dec.i.i173 = add nsw i32 %23, -1 store i32 %dec.i.i173, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 4) - %23 = load i32, ptr %k, align 4 - %24 = load i32, ptr %k2, align 4 - %or = or i32 %24, %23 + %24 = load i32, ptr %k, align 4 + %25 = load i32, ptr %k2, align 4 + %or = or i32 %25, %24 br label %arith_result sw.bb32: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 94, label %if.then35 i32 38, label %if.then40 i32 262, label %if.then45 @@ -6149,10 +6149,10 @@ sw.bb32: ; preds = %for.cond if.then35: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32 %call.i180 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %25 = load i32, ptr %depth.i346, align 4 - %inc.i.i183 = add nsw i32 %25, 1 + %26 = load i32, ptr %depth.i346, align 4 + %inc.i.i183 = add nsw i32 %26, 1 store i32 %inc.i.i183, ptr %depth.i346, align 4 - %cmp.i.i184 = icmp sgt i32 %25, 19 + %cmp.i.i184 = icmp sgt i32 %26, 19 br i1 %cmp.i.i184, label %if.then.i.i186, label %cp_expr_sub.exit187 if.then.i.i186: ; preds = %if.then35 @@ -6162,17 +6162,17 @@ if.then.i.i186: ; preds = %if.then35 cp_expr_sub.exit187: ; preds = %if.then35 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %26 = load i32, ptr %depth.i346, align 4 - %dec.i.i185 = add nsw i32 %26, -1 + %27 = load i32, ptr %depth.i346, align 4 + %dec.i.i185 = add nsw i32 %27, -1 store i32 %dec.i.i185, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 5) - %27 = load i32, ptr %k, align 4 - %28 = load i32, ptr %k2, align 4 - %xor = xor i32 %28, %27 + %28 = load i32, ptr %k, align 4 + %29 = load i32, ptr %k2, align 4 + %xor = xor i32 %29, %28 br label %arith_result sw.bb37: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 38, label %if.then40 i32 262, label %if.then45 i32 263, label %if.then50 @@ -6191,10 +6191,10 @@ sw.bb37: ; preds = %for.cond if.then40: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37 %call.i192 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %29 = load i32, ptr %depth.i346, align 4 - %inc.i.i195 = add nsw i32 %29, 1 + %30 = load i32, ptr %depth.i346, align 4 + %inc.i.i195 = add nsw i32 %30, 1 store i32 %inc.i.i195, ptr %depth.i346, align 4 - %cmp.i.i196 = icmp sgt i32 %29, 19 + %cmp.i.i196 = icmp sgt i32 %30, 19 br i1 %cmp.i.i196, label %if.then.i.i198, label %cp_expr_sub.exit199 if.then.i.i198: ; preds = %if.then40 @@ -6204,17 +6204,17 @@ if.then.i.i198: ; preds = %if.then40 cp_expr_sub.exit199: ; preds = %if.then40 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %30 = load i32, ptr %depth.i346, align 4 - %dec.i.i197 = add nsw i32 %30, -1 + %31 = load i32, ptr %depth.i346, align 4 + %dec.i.i197 = add nsw i32 %31, -1 store i32 %dec.i.i197, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 6) - %31 = load i32, ptr %k, align 4 - %32 = load i32, ptr %k2, align 4 - %and = and i32 %32, %31 + %32 = load i32, ptr %k, align 4 + %33 = load i32, ptr %k2, align 4 + %and = and i32 %33, %32 br label %arith_result sw.bb42: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 262, label %if.then45 i32 263, label %if.then50 i32 60, label %if.then59 @@ -6232,10 +6232,10 @@ sw.bb42: ; preds = %for.cond if.then45: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42 %call.i204 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %33 = load i32, ptr %depth.i346, align 4 - %inc.i.i207 = add nsw i32 %33, 1 + %34 = load i32, ptr %depth.i346, align 4 + %inc.i.i207 = add nsw i32 %34, 1 store i32 %inc.i.i207, ptr %depth.i346, align 4 - %cmp.i.i208 = icmp sgt i32 %33, 19 + %cmp.i.i208 = icmp sgt i32 %34, 19 br i1 %cmp.i.i208, label %if.then.i.i210, label %cp_expr_sub.exit211 if.then.i.i210: ; preds = %if.then45 @@ -6245,13 +6245,13 @@ if.then.i.i210: ; preds = %if.then45 cp_expr_sub.exit211: ; preds = %if.then45 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %34 = load i32, ptr %depth.i346, align 4 - %dec.i.i209 = add nsw i32 %34, -1 + %35 = load i32, ptr %depth.i346, align 4 + %dec.i.i209 = add nsw i32 %35, -1 store i32 %dec.i.i209, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 7) - %35 = load i32, ptr %k, align 4 - %36 = load i32, ptr %k2, align 4 - %cmp46 = icmp eq i32 %35, %36 + %36 = load i32, ptr %k, align 4 + %37 = load i32, ptr %k2, align 4 + %cmp46 = icmp eq i32 %36, %37 %conv = zext i1 %cmp46 to i32 store i32 %conv, ptr %k, align 4 store i32 9, ptr %id211, align 4 @@ -6259,10 +6259,10 @@ cp_expr_sub.exit211: ; preds = %if.then45 if.then50: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42 %call.i216 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %37 = load i32, ptr %depth.i346, align 4 - %inc.i.i219 = add nsw i32 %37, 1 + %38 = load i32, ptr %depth.i346, align 4 + %inc.i.i219 = add nsw i32 %38, 1 store i32 %inc.i.i219, ptr %depth.i346, align 4 - %cmp.i.i220 = icmp sgt i32 %37, 19 + %cmp.i.i220 = icmp sgt i32 %38, 19 br i1 %cmp.i.i220, label %if.then.i.i222, label %cp_expr_sub.exit223 if.then.i.i222: ; preds = %if.then50 @@ -6272,20 +6272,20 @@ if.then.i.i222: ; preds = %if.then50 cp_expr_sub.exit223: ; preds = %if.then50 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %38 = load i32, ptr %depth.i346, align 4 - %dec.i.i221 = add nsw i32 %38, -1 + %39 = load i32, ptr %depth.i346, align 4 + %dec.i.i221 = add nsw i32 %39, -1 store i32 %dec.i.i221, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 7) - %39 = load i32, ptr %k, align 4 - %40 = load i32, ptr %k2, align 4 - %cmp51 = icmp ne i32 %39, %40 + %40 = load i32, ptr %k, align 4 + %41 = load i32, ptr %k2, align 4 + %cmp51 = icmp ne i32 %40, %41 %conv52 = zext i1 %cmp51 to i32 store i32 %conv52, ptr %k, align 4 store i32 9, ptr %id211, align 4 br label %for.cond.backedge sw.bb56: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 60, label %if.then59 i32 62, label %if.then77 i32 264, label %if.then96 @@ -6301,10 +6301,10 @@ sw.bb56: ; preds = %for.cond if.then59: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i228 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %41 = load i32, ptr %depth.i346, align 4 - %inc.i.i231 = add nsw i32 %41, 1 + %42 = load i32, ptr %depth.i346, align 4 + %inc.i.i231 = add nsw i32 %42, 1 store i32 %inc.i.i231, ptr %depth.i346, align 4 - %cmp.i.i232 = icmp sgt i32 %41, 19 + %cmp.i.i232 = icmp sgt i32 %42, 19 br i1 %cmp.i.i232, label %if.then.i.i234, label %cp_expr_sub.exit235 if.then.i.i234: ; preds = %if.then59 @@ -6314,25 +6314,25 @@ if.then.i.i234: ; preds = %if.then59 cp_expr_sub.exit235: ; preds = %if.then59 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %42 = load i32, ptr %depth.i346, align 4 - %dec.i.i233 = add nsw i32 %42, -1 + %43 = load i32, ptr %depth.i346, align 4 + %dec.i.i233 = add nsw i32 %43, -1 store i32 %dec.i.i233, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %43 = load i32, ptr %id211, align 4 - %cmp61 = icmp eq i32 %43, 9 - %44 = load i32, ptr %id, align 4 - %cmp64 = icmp eq i32 %44, 9 + %44 = load i32, ptr %id211, align 4 + %cmp61 = icmp eq i32 %44, 9 + %45 = load i32, ptr %id, align 4 + %cmp64 = icmp eq i32 %45, 9 %or.cond = select i1 %cmp61, i1 %cmp64, i1 false - %45 = load i32, ptr %k, align 4 - %46 = load i32, ptr %k2, align 4 + %46 = load i32, ptr %k, align 4 + %47 = load i32, ptr %k2, align 4 br i1 %or.cond, label %if.then66, label %if.else69 if.then66: ; preds = %cp_expr_sub.exit235 - %cmp67 = icmp slt i32 %45, %46 + %cmp67 = icmp slt i32 %46, %47 br label %if.end72 if.else69: ; preds = %cp_expr_sub.exit235 - %cmp70 = icmp ult i32 %45, %46 + %cmp70 = icmp ult i32 %46, %47 br label %if.end72 if.end72: ; preds = %if.else69, %if.then66 @@ -6344,10 +6344,10 @@ if.end72: ; preds = %if.else69, %if.then if.then77: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i240 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %47 = load i32, ptr %depth.i346, align 4 - %inc.i.i243 = add nsw i32 %47, 1 + %48 = load i32, ptr %depth.i346, align 4 + %inc.i.i243 = add nsw i32 %48, 1 store i32 %inc.i.i243, ptr %depth.i346, align 4 - %cmp.i.i244 = icmp sgt i32 %47, 19 + %cmp.i.i244 = icmp sgt i32 %48, 19 br i1 %cmp.i.i244, label %if.then.i.i246, label %cp_expr_sub.exit247 if.then.i.i246: ; preds = %if.then77 @@ -6357,25 +6357,25 @@ if.then.i.i246: ; preds = %if.then77 cp_expr_sub.exit247: ; preds = %if.then77 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %48 = load i32, ptr %depth.i346, align 4 - %dec.i.i245 = add nsw i32 %48, -1 + %49 = load i32, ptr %depth.i346, align 4 + %dec.i.i245 = add nsw i32 %49, -1 store i32 %dec.i.i245, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %49 = load i32, ptr %id211, align 4 - %cmp79 = icmp eq i32 %49, 9 - %50 = load i32, ptr %id, align 4 - %cmp83 = icmp eq i32 %50, 9 + %50 = load i32, ptr %id211, align 4 + %cmp79 = icmp eq i32 %50, 9 + %51 = load i32, ptr %id, align 4 + %cmp83 = icmp eq i32 %51, 9 %or.cond1 = select i1 %cmp79, i1 %cmp83, i1 false - %51 = load i32, ptr %k, align 4 - %52 = load i32, ptr %k2, align 4 + %52 = load i32, ptr %k, align 4 + %53 = load i32, ptr %k2, align 4 br i1 %or.cond1, label %if.then85, label %if.else88 if.then85: ; preds = %cp_expr_sub.exit247 - %cmp86 = icmp sgt i32 %51, %52 + %cmp86 = icmp sgt i32 %52, %53 br label %if.end91 if.else88: ; preds = %cp_expr_sub.exit247 - %cmp89 = icmp ugt i32 %51, %52 + %cmp89 = icmp ugt i32 %52, %53 br label %if.end91 if.end91: ; preds = %if.else88, %if.then85 @@ -6387,10 +6387,10 @@ if.end91: ; preds = %if.else88, %if.then if.then96: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i252 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %53 = load i32, ptr %depth.i346, align 4 - %inc.i.i255 = add nsw i32 %53, 1 + %54 = load i32, ptr %depth.i346, align 4 + %inc.i.i255 = add nsw i32 %54, 1 store i32 %inc.i.i255, ptr %depth.i346, align 4 - %cmp.i.i256 = icmp sgt i32 %53, 19 + %cmp.i.i256 = icmp sgt i32 %54, 19 br i1 %cmp.i.i256, label %if.then.i.i258, label %cp_expr_sub.exit259 if.then.i.i258: ; preds = %if.then96 @@ -6400,25 +6400,25 @@ if.then.i.i258: ; preds = %if.then96 cp_expr_sub.exit259: ; preds = %if.then96 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %54 = load i32, ptr %depth.i346, align 4 - %dec.i.i257 = add nsw i32 %54, -1 + %55 = load i32, ptr %depth.i346, align 4 + %dec.i.i257 = add nsw i32 %55, -1 store i32 %dec.i.i257, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %55 = load i32, ptr %id211, align 4 - %cmp98 = icmp eq i32 %55, 9 - %56 = load i32, ptr %id, align 4 - %cmp102 = icmp eq i32 %56, 9 + %56 = load i32, ptr %id211, align 4 + %cmp98 = icmp eq i32 %56, 9 + %57 = load i32, ptr %id, align 4 + %cmp102 = icmp eq i32 %57, 9 %or.cond2 = select i1 %cmp98, i1 %cmp102, i1 false - %57 = load i32, ptr %k, align 4 - %58 = load i32, ptr %k2, align 4 + %58 = load i32, ptr %k, align 4 + %59 = load i32, ptr %k2, align 4 br i1 %or.cond2, label %if.then104, label %if.else107 if.then104: ; preds = %cp_expr_sub.exit259 - %cmp105 = icmp sle i32 %57, %58 + %cmp105 = icmp sle i32 %58, %59 br label %if.end110 if.else107: ; preds = %cp_expr_sub.exit259 - %cmp108 = icmp ule i32 %57, %58 + %cmp108 = icmp ule i32 %58, %59 br label %if.end110 if.end110: ; preds = %if.else107, %if.then104 @@ -6430,10 +6430,10 @@ if.end110: ; preds = %if.else107, %if.the if.then115: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i264 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %59 = load i32, ptr %depth.i346, align 4 - %inc.i.i267 = add nsw i32 %59, 1 + %60 = load i32, ptr %depth.i346, align 4 + %inc.i.i267 = add nsw i32 %60, 1 store i32 %inc.i.i267, ptr %depth.i346, align 4 - %cmp.i.i268 = icmp sgt i32 %59, 19 + %cmp.i.i268 = icmp sgt i32 %60, 19 br i1 %cmp.i.i268, label %if.then.i.i270, label %cp_expr_sub.exit271 if.then.i.i270: ; preds = %if.then115 @@ -6443,25 +6443,25 @@ if.then.i.i270: ; preds = %if.then115 cp_expr_sub.exit271: ; preds = %if.then115 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %60 = load i32, ptr %depth.i346, align 4 - %dec.i.i269 = add nsw i32 %60, -1 + %61 = load i32, ptr %depth.i346, align 4 + %dec.i.i269 = add nsw i32 %61, -1 store i32 %dec.i.i269, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %61 = load i32, ptr %id211, align 4 - %cmp117 = icmp eq i32 %61, 9 - %62 = load i32, ptr %id, align 4 - %cmp121 = icmp eq i32 %62, 9 + %62 = load i32, ptr %id211, align 4 + %cmp117 = icmp eq i32 %62, 9 + %63 = load i32, ptr %id, align 4 + %cmp121 = icmp eq i32 %63, 9 %or.cond3 = select i1 %cmp117, i1 %cmp121, i1 false - %63 = load i32, ptr %k, align 4 - %64 = load i32, ptr %k2, align 4 + %64 = load i32, ptr %k, align 4 + %65 = load i32, ptr %k2, align 4 br i1 %or.cond3, label %if.then123, label %if.else126 if.then123: ; preds = %cp_expr_sub.exit271 - %cmp124 = icmp sge i32 %63, %64 + %cmp124 = icmp sge i32 %64, %65 br label %if.end129 if.else126: ; preds = %cp_expr_sub.exit271 - %cmp127 = icmp uge i32 %63, %64 + %cmp127 = icmp uge i32 %64, %65 br label %if.end129 if.end129: ; preds = %if.else126, %if.then123 @@ -6472,7 +6472,7 @@ if.end129: ; preds = %if.else126, %if.the br label %for.cond.backedge sw.bb135: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 266, label %if.then138 i32 267, label %if.then142 i32 43, label %if.then155 @@ -6484,10 +6484,10 @@ sw.bb135: ; preds = %for.cond if.then138: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135 %call.i276 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %65 = load i32, ptr %depth.i346, align 4 - %inc.i.i279 = add nsw i32 %65, 1 + %66 = load i32, ptr %depth.i346, align 4 + %inc.i.i279 = add nsw i32 %66, 1 store i32 %inc.i.i279, ptr %depth.i346, align 4 - %cmp.i.i280 = icmp sgt i32 %65, 19 + %cmp.i.i280 = icmp sgt i32 %66, 19 br i1 %cmp.i.i280, label %if.then.i.i282, label %cp_expr_sub.exit283 if.then.i.i282: ; preds = %if.then138 @@ -6497,22 +6497,22 @@ if.then.i.i282: ; preds = %if.then138 cp_expr_sub.exit283: ; preds = %if.then138 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %66 = load i32, ptr %depth.i346, align 4 - %dec.i.i281 = add nsw i32 %66, -1 + %67 = load i32, ptr %depth.i346, align 4 + %dec.i.i281 = add nsw i32 %67, -1 store i32 %dec.i.i281, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 9) - %67 = load i32, ptr %k, align 4 - %68 = load i32, ptr %k2, align 4 - %shl = shl i32 %67, %68 + %68 = load i32, ptr %k, align 4 + %69 = load i32, ptr %k2, align 4 + %shl = shl i32 %68, %69 store i32 %shl, ptr %k, align 4 br label %for.cond.backedge if.then142: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135 %call.i288 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %69 = load i32, ptr %depth.i346, align 4 - %inc.i.i291 = add nsw i32 %69, 1 + %70 = load i32, ptr %depth.i346, align 4 + %inc.i.i291 = add nsw i32 %70, 1 store i32 %inc.i.i291, ptr %depth.i346, align 4 - %cmp.i.i292 = icmp sgt i32 %69, 19 + %cmp.i.i292 = icmp sgt i32 %70, 19 br i1 %cmp.i.i292, label %if.then.i.i294, label %cp_expr_sub.exit295 if.then.i.i294: ; preds = %if.then142 @@ -6522,22 +6522,22 @@ if.then.i.i294: ; preds = %if.then142 cp_expr_sub.exit295: ; preds = %if.then142 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %70 = load i32, ptr %depth.i346, align 4 - %dec.i.i293 = add nsw i32 %70, -1 + %71 = load i32, ptr %depth.i346, align 4 + %dec.i.i293 = add nsw i32 %71, -1 store i32 %dec.i.i293, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 9) - %71 = load i32, ptr %id211, align 4 - %cmp144 = icmp eq i32 %71, 9 - %72 = load i32, ptr %k, align 4 - %73 = load i32, ptr %k2, align 4 - %shr148 = lshr i32 %72, %73 - %shr = ashr i32 %72, %73 + %72 = load i32, ptr %id211, align 4 + %cmp144 = icmp eq i32 %72, 9 + %73 = load i32, ptr %k, align 4 + %74 = load i32, ptr %k2, align 4 + %shr148 = lshr i32 %73, %74 + %shr = ashr i32 %73, %74 %storemerge131 = select i1 %cmp144, i32 %shr, i32 %shr148 store i32 %storemerge131, ptr %k, align 4 br label %for.cond.backedge sw.bb152: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 43, label %if.then155 i32 45, label %if.then167 i32 42, label %if.then173 @@ -6547,10 +6547,10 @@ sw.bb152: ; preds = %for.cond if.then155: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152 %call.i300 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %74 = load i32, ptr %depth.i346, align 4 - %inc.i.i303 = add nsw i32 %74, 1 + %75 = load i32, ptr %depth.i346, align 4 + %inc.i.i303 = add nsw i32 %75, 1 store i32 %inc.i.i303, ptr %depth.i346, align 4 - %cmp.i.i304 = icmp sgt i32 %74, 19 + %cmp.i.i304 = icmp sgt i32 %75, 19 br i1 %cmp.i.i304, label %if.then.i.i306, label %cp_expr_sub.exit307 if.then.i.i306: ; preds = %if.then155 @@ -6560,36 +6560,36 @@ if.then.i.i306: ; preds = %if.then155 cp_expr_sub.exit307: ; preds = %if.then155 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %75 = load i32, ptr %depth.i346, align 4 - %dec.i.i305 = add nsw i32 %75, -1 + %76 = load i32, ptr %depth.i346, align 4 + %dec.i.i305 = add nsw i32 %76, -1 store i32 %dec.i.i305, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 10) - %76 = load i32, ptr %k, align 4 - %77 = load i32, ptr %k2, align 4 - %add = add i32 %77, %76 + %77 = load i32, ptr %k, align 4 + %78 = load i32, ptr %k2, align 4 + %add = add i32 %78, %77 br label %arith_result arith_result: ; preds = %cp_expr_unary.exit, %cp_expr_sub.exit319, %cp_expr_sub.exit307, %cp_expr_sub.exit199, %cp_expr_sub.exit187, %cp_expr_sub.exit175 %mul.sink = phi i32 [ %mul, %cp_expr_unary.exit ], [ %sub, %cp_expr_sub.exit319 ], [ %add, %cp_expr_sub.exit307 ], [ %and, %cp_expr_sub.exit199 ], [ %xor, %cp_expr_sub.exit187 ], [ %or, %cp_expr_sub.exit175 ] store i32 %mul.sink, ptr %k, align 4 - %78 = load i32, ptr %id, align 4 - %79 = load i32, ptr %id211, align 4 - %cmp158 = icmp ugt i32 %78, %79 + %79 = load i32, ptr %id, align 4 + %80 = load i32, ptr %id211, align 4 + %cmp158 = icmp ugt i32 %79, %80 br i1 %cmp158, label %if.then160, label %for.cond.backedge for.cond.backedge: ; preds = %arith_result, %if.then160, %cp_expr_sub.exit, %cp_expr_sub.exit151, %cp_expr_sub.exit163, %cp_expr_sub.exit211, %cp_expr_sub.exit223, %if.end72, %if.end91, %if.end110, %if.end129, %cp_expr_sub.exit283, %cp_expr_sub.exit295, %if.end205, %if.end238 br label %for.cond if.then160: ; preds = %arith_result - store i32 %78, ptr %id211, align 4 + store i32 %79, ptr %id211, align 4 br label %for.cond.backedge if.then167: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152 %call.i312 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %80 = load i32, ptr %depth.i346, align 4 - %inc.i.i315 = add nsw i32 %80, 1 + %81 = load i32, ptr %depth.i346, align 4 + %inc.i.i315 = add nsw i32 %81, 1 store i32 %inc.i.i315, ptr %depth.i346, align 4 - %cmp.i.i316 = icmp sgt i32 %80, 19 + %cmp.i.i316 = icmp sgt i32 %81, 19 br i1 %cmp.i.i316, label %if.then.i.i318, label %cp_expr_sub.exit319 if.then.i.i318: ; preds = %if.then167 @@ -6599,17 +6599,17 @@ if.then.i.i318: ; preds = %if.then167 cp_expr_sub.exit319: ; preds = %if.then167 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %81 = load i32, ptr %depth.i346, align 4 - %dec.i.i317 = add nsw i32 %81, -1 + %82 = load i32, ptr %depth.i346, align 4 + %dec.i.i317 = add nsw i32 %82, -1 store i32 %dec.i.i317, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 10) - %82 = load i32, ptr %k, align 4 - %83 = load i32, ptr %k2, align 4 - %sub = sub i32 %82, %83 + %83 = load i32, ptr %k, align 4 + %84 = load i32, ptr %k2, align 4 + %sub = sub i32 %83, %84 br label %arith_result sw.bb170: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 42, label %if.then173 i32 47, label %if.then177 i32 37, label %if.then209 @@ -6617,10 +6617,10 @@ sw.bb170: ; preds = %for.cond if.then173: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 %call.i324 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %84 = load i32, ptr %depth.i346, align 4 - %inc.i = add nsw i32 %84, 1 + %85 = load i32, ptr %depth.i346, align 4 + %inc.i = add nsw i32 %85, 1 store i32 %inc.i, ptr %depth.i346, align 4 - %cmp.i326 = icmp sgt i32 %84, 19 + %cmp.i326 = icmp sgt i32 %85, 19 br i1 %cmp.i326, label %if.then.i327, label %cp_expr_unary.exit if.then.i327: ; preds = %if.then173 @@ -6630,20 +6630,20 @@ if.then.i327: ; preds = %if.then173 cp_expr_unary.exit: ; preds = %if.then173 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %85 = load i32, ptr %depth.i346, align 4 - %dec.i = add nsw i32 %85, -1 + %86 = load i32, ptr %depth.i346, align 4 + %dec.i = add nsw i32 %86, -1 store i32 %dec.i, ptr %depth.i346, align 4 - %86 = load i32, ptr %k, align 4 - %87 = load i32, ptr %k2, align 4 - %mul = mul i32 %87, %86 + %87 = load i32, ptr %k, align 4 + %88 = load i32, ptr %k2, align 4 + %mul = mul i32 %88, %87 br label %arith_result if.then177: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 %call.i332 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %88 = load i32, ptr %depth.i346, align 4 - %inc.i335 = add nsw i32 %88, 1 + %89 = load i32, ptr %depth.i346, align 4 + %inc.i335 = add nsw i32 %89, 1 store i32 %inc.i335, ptr %depth.i346, align 4 - %cmp.i336 = icmp sgt i32 %88, 19 + %cmp.i336 = icmp sgt i32 %89, 19 br i1 %cmp.i336, label %if.then.i338, label %cp_expr_unary.exit339 if.then.i338: ; preds = %if.then177 @@ -6653,32 +6653,32 @@ if.then.i338: ; preds = %if.then177 cp_expr_unary.exit339: ; preds = %if.then177 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %89 = load i32, ptr %depth.i346, align 4 - %dec.i337 = add nsw i32 %89, -1 + %90 = load i32, ptr %depth.i346, align 4 + %dec.i337 = add nsw i32 %90, -1 store i32 %dec.i337, ptr %depth.i346, align 4 - %90 = load i32, ptr %id, align 4 - %91 = load i32, ptr %id211, align 4 - %cmp180 = icmp ugt i32 %90, %91 + %91 = load i32, ptr %id, align 4 + %92 = load i32, ptr %id211, align 4 + %cmp180 = icmp ugt i32 %91, %92 br i1 %cmp180, label %if.then182, label %if.end185 if.then182: ; preds = %cp_expr_unary.exit339 - store i32 %90, ptr %id211, align 4 + store i32 %91, ptr %id211, align 4 br label %if.end185 if.end185: ; preds = %if.then182, %cp_expr_unary.exit339 - %92 = phi i32 [ %90, %if.then182 ], [ %91, %cp_expr_unary.exit339 ] - %93 = load i32, ptr %k2, align 4 - %cmp186 = icmp eq i32 %93, 0 + %93 = phi i32 [ %91, %if.then182 ], [ %92, %cp_expr_unary.exit339 ] + %94 = load i32, ptr %k2, align 4 + %cmp186 = icmp eq i32 %94, 0 br i1 %cmp186, label %if.then197, label %lor.lhs.false lor.lhs.false: ; preds = %if.end185 - %cmp189 = icmp eq i32 %92, 9 - %94 = load i32, ptr %k, align 4 + %cmp189 = icmp eq i32 %93, 9 + %95 = load i32, ptr %k, align 4 br i1 %cmp189, label %land.lhs.true191, label %if.else203 land.lhs.true191: ; preds = %lor.lhs.false - %cmp192 = icmp eq i32 %94, -2147483648 - %cmp195 = icmp eq i32 %93, -1 + %cmp192 = icmp eq i32 %95, -2147483648 + %cmp195 = icmp eq i32 %94, -1 %or.cond5 = and i1 %cmp195, %cmp192 br i1 %or.cond5, label %if.then197, label %if.then202 @@ -6687,11 +6687,11 @@ if.then197: ; preds = %land.lhs.true191, % unreachable if.then202: ; preds = %land.lhs.true191 - %div = sdiv i32 %94, %93 + %div = sdiv i32 %95, %94 br label %if.end205 if.else203: ; preds = %lor.lhs.false - %div204 = udiv i32 %94, %93 + %div204 = udiv i32 %95, %94 br label %if.end205 if.end205: ; preds = %if.else203, %if.then202 @@ -6701,10 +6701,10 @@ if.end205: ; preds = %if.else203, %if.the if.then209: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 %call.i344 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %95 = load i32, ptr %depth.i346, align 4 - %inc.i347 = add nsw i32 %95, 1 + %96 = load i32, ptr %depth.i346, align 4 + %inc.i347 = add nsw i32 %96, 1 store i32 %inc.i347, ptr %depth.i346, align 4 - %cmp.i348 = icmp sgt i32 %95, 19 + %cmp.i348 = icmp sgt i32 %96, 19 br i1 %cmp.i348, label %if.then.i350, label %cp_expr_unary.exit351 if.then.i350: ; preds = %if.then209 @@ -6714,32 +6714,32 @@ if.then.i350: ; preds = %if.then209 cp_expr_unary.exit351: ; preds = %if.then209 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %96 = load i32, ptr %depth.i346, align 4 - %dec.i349 = add nsw i32 %96, -1 + %97 = load i32, ptr %depth.i346, align 4 + %dec.i349 = add nsw i32 %97, -1 store i32 %dec.i349, ptr %depth.i346, align 4 - %97 = load i32, ptr %id, align 4 - %98 = load i32, ptr %id211, align 4 - %cmp212 = icmp ugt i32 %97, %98 + %98 = load i32, ptr %id, align 4 + %99 = load i32, ptr %id211, align 4 + %cmp212 = icmp ugt i32 %98, %99 br i1 %cmp212, label %if.then214, label %if.end217 if.then214: ; preds = %cp_expr_unary.exit351 - store i32 %97, ptr %id211, align 4 + store i32 %98, ptr %id211, align 4 br label %if.end217 if.end217: ; preds = %if.then214, %cp_expr_unary.exit351 - %99 = phi i32 [ %97, %if.then214 ], [ %98, %cp_expr_unary.exit351 ] - %100 = load i32, ptr %k2, align 4 - %cmp218 = icmp eq i32 %100, 0 + %100 = phi i32 [ %98, %if.then214 ], [ %99, %cp_expr_unary.exit351 ] + %101 = load i32, ptr %k2, align 4 + %cmp218 = icmp eq i32 %101, 0 br i1 %cmp218, label %if.then230, label %lor.lhs.false220 lor.lhs.false220: ; preds = %if.end217 - %cmp222 = icmp eq i32 %99, 9 - %101 = load i32, ptr %k, align 4 + %cmp222 = icmp eq i32 %100, 9 + %102 = load i32, ptr %k, align 4 br i1 %cmp222, label %land.lhs.true224, label %if.else236 land.lhs.true224: ; preds = %lor.lhs.false220 - %cmp225 = icmp eq i32 %101, -2147483648 - %cmp228 = icmp eq i32 %100, -1 + %cmp225 = icmp eq i32 %102, -2147483648 + %cmp228 = icmp eq i32 %101, -1 %or.cond7 = and i1 %cmp228, %cmp225 br i1 %or.cond7, label %if.then230, label %if.then235 @@ -6748,11 +6748,11 @@ if.then230: ; preds = %land.lhs.true224, % unreachable if.then235: ; preds = %land.lhs.true224 - %rem = srem i32 %101, %100 + %rem = srem i32 %102, %101 br label %if.end238 if.else236: ; preds = %lor.lhs.false220 - %rem237 = urem i32 %101, %100 + %rem237 = urem i32 %102, %101 br label %if.end238 if.end238: ; preds = %if.else236, %if.then235 @@ -6760,7 +6760,10 @@ if.end238: ; preds = %if.else236, %if.the store i32 %storemerge, ptr %k, align 4 br label %for.cond.backedge -sw.default.split: ; preds = %sw.bb170, %sw.bb152, %sw.bb135, %sw.bb56, %sw.bb42, %sw.bb37, %sw.bb32, %sw.bb27, %sw.bb19, %sw.bb11, %sw.bb, %entry +default.unreachable: ; preds = %for.cond + unreachable + +sw.default: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 ret void } diff --git a/bench/luajit/optimized/lj_cparse_dyn.ll b/bench/luajit/optimized/lj_cparse_dyn.ll index bab62aec2fa..315061a208b 100644 --- a/bench/luajit/optimized/lj_cparse_dyn.ll +++ b/bench/luajit/optimized/lj_cparse_dyn.ll @@ -5874,12 +5874,11 @@ entry: %depth.i346 = getelementptr inbounds %struct.CPState, ptr %cp, i64 0, i32 12 %id211 = getelementptr inbounds %struct.CPValue, ptr %k, i64 0, i32 1 %id3 = getelementptr inbounds %struct.CPValue, ptr %k3, i64 0, i32 1 - %switch = icmp ult i32 %pri, 11 - br i1 %switch, label %for.cond, label %sw.default.split + br label %for.cond -for.cond: ; preds = %entry, %for.cond.backedge - %.pre416 = load i32, ptr %tok1.i, align 4 - switch i32 %pri, label %sw.bb170 [ +for.cond: ; preds = %for.cond.backedge, %entry + %0 = load i32, ptr %tok1.i, align 4 + switch i32 %pri, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb11 i32 2, label %sw.bb19 @@ -5890,10 +5889,11 @@ for.cond: ; preds = %entry, %for.cond.ba i32 7, label %sw.bb56 i32 8, label %sw.bb135 i32 9, label %sw.bb152 + i32 10, label %sw.bb170 ] sw.bb: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 63, label %if.then i32 260, label %if.then14 i32 261, label %if.then22 @@ -5917,10 +5917,10 @@ sw.bb: ; preds = %for.cond if.then: ; preds = %sw.bb %call.i = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %0 = load i32, ptr %depth.i346, align 4 - %inc.i.i359405 = add nsw i32 %0, 1 + %1 = load i32, ptr %depth.i346, align 4 + %inc.i.i359405 = add nsw i32 %1, 1 store i32 %inc.i.i359405, ptr %depth.i346, align 4 - %cmp.i.i360406 = icmp sgt i32 %0, 19 + %cmp.i.i360406 = icmp sgt i32 %1, 19 br i1 %cmp.i.i360406, label %if.then.i.i362, label %cp_expr_sub.exit363 if.then.i.i362: ; preds = %if.then, %cp_opt.exit357 @@ -5930,22 +5930,22 @@ if.then.i.i362: ; preds = %if.then, %cp_opt.ex cp_expr_sub.exit363: ; preds = %if.then, %cp_opt.exit357 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %1 = load i32, ptr %depth.i346, align 4 - %dec.i.i361 = add nsw i32 %1, -1 + %2 = load i32, ptr %depth.i346, align 4 + %dec.i.i361 = add nsw i32 %2, -1 store i32 %dec.i.i361, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 0) - %2 = load i32, ptr %tok1.i, align 4 - switch i32 %2, label %if.then.i138 [ + %3 = load i32, ptr %tok1.i, align 4 + switch i32 %3, label %if.then.i138 [ i32 44, label %cp_opt.exit357 i32 58, label %cp_check.exit ] cp_opt.exit357: ; preds = %cp_expr_sub.exit363 %call.i356 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %3 = load i32, ptr %depth.i346, align 4 - %inc.i.i359 = add nsw i32 %3, 1 + %4 = load i32, ptr %depth.i346, align 4 + %inc.i.i359 = add nsw i32 %4, 1 store i32 %inc.i.i359, ptr %depth.i346, align 4 - %cmp.i.i360 = icmp sgt i32 %3, 19 + %cmp.i.i360 = icmp sgt i32 %4, 19 br i1 %cmp.i.i360, label %if.then.i.i362, label %cp_expr_sub.exit363, !llvm.loop !31 if.then.i138: ; preds = %cp_expr_sub.exit363 @@ -5954,10 +5954,10 @@ if.then.i138: ; preds = %cp_expr_sub.exit363 cp_check.exit: ; preds = %cp_expr_sub.exit363 %call.i139 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %4 = load i32, ptr %depth.i346, align 4 - %inc.i.i = add nsw i32 %4, 1 + %5 = load i32, ptr %depth.i346, align 4 + %inc.i.i = add nsw i32 %5, 1 store i32 %inc.i.i, ptr %depth.i346, align 4 - %cmp.i.i = icmp sgt i32 %4, 19 + %cmp.i.i = icmp sgt i32 %5, 19 br i1 %cmp.i.i, label %if.then.i.i, label %cp_expr_sub.exit if.then.i.i: ; preds = %cp_check.exit @@ -5967,24 +5967,24 @@ if.then.i.i: ; preds = %cp_check.exit cp_expr_sub.exit: ; preds = %cp_check.exit call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k3) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k3) - %5 = load i32, ptr %depth.i346, align 4 - %dec.i.i = add nsw i32 %5, -1 + %6 = load i32, ptr %depth.i346, align 4 + %dec.i.i = add nsw i32 %6, -1 store i32 %dec.i.i, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k3, i32 noundef 0) - %6 = load i32, ptr %k, align 4 - %tobool1.not = icmp eq i32 %6, 0 - %7 = load i32, ptr %k2, align 4 - %8 = load i32, ptr %k3, align 4 - %cond = select i1 %tobool1.not, i32 %8, i32 %7 + %7 = load i32, ptr %k, align 4 + %tobool1.not = icmp eq i32 %7, 0 + %8 = load i32, ptr %k2, align 4 + %9 = load i32, ptr %k3, align 4 + %cond = select i1 %tobool1.not, i32 %9, i32 %8 store i32 %cond, ptr %k, align 4 - %9 = load i32, ptr %id, align 4 - %10 = load i32, ptr %id3, align 4 - %cond9 = tail call i32 @llvm.umax.i32(i32 %9, i32 %10) + %10 = load i32, ptr %id, align 4 + %11 = load i32, ptr %id3, align 4 + %cond9 = tail call i32 @llvm.umax.i32(i32 %10, i32 %11) store i32 %cond9, ptr %id211, align 4 br label %for.cond.backedge sw.bb11: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 260, label %if.then14 i32 261, label %if.then22 i32 124, label %if.then30 @@ -6007,10 +6007,10 @@ sw.bb11: ; preds = %for.cond if.then14: ; preds = %sw.bb, %sw.bb11 %call.i144 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %11 = load i32, ptr %depth.i346, align 4 - %inc.i.i147 = add nsw i32 %11, 1 + %12 = load i32, ptr %depth.i346, align 4 + %inc.i.i147 = add nsw i32 %12, 1 store i32 %inc.i.i147, ptr %depth.i346, align 4 - %cmp.i.i148 = icmp sgt i32 %11, 19 + %cmp.i.i148 = icmp sgt i32 %12, 19 br i1 %cmp.i.i148, label %if.then.i.i150, label %cp_expr_sub.exit151 if.then.i.i150: ; preds = %if.then14 @@ -6020,22 +6020,22 @@ if.then.i.i150: ; preds = %if.then14 cp_expr_sub.exit151: ; preds = %if.then14 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %12 = load i32, ptr %depth.i346, align 4 - %dec.i.i149 = add nsw i32 %12, -1 + %13 = load i32, ptr %depth.i346, align 4 + %dec.i.i149 = add nsw i32 %13, -1 store i32 %dec.i.i149, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 2) - %13 = load i32, ptr %k, align 4 - %tobool15 = icmp ne i32 %13, 0 - %14 = load i32, ptr %k2, align 4 - %tobool16 = icmp ne i32 %14, 0 - %15 = select i1 %tobool15, i1 true, i1 %tobool16 - %lor.ext = zext i1 %15 to i32 + %14 = load i32, ptr %k, align 4 + %tobool15 = icmp ne i32 %14, 0 + %15 = load i32, ptr %k2, align 4 + %tobool16 = icmp ne i32 %15, 0 + %16 = select i1 %tobool15, i1 true, i1 %tobool16 + %lor.ext = zext i1 %16 to i32 store i32 %lor.ext, ptr %k, align 4 store i32 9, ptr %id211, align 4 br label %for.cond.backedge sw.bb19: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 261, label %if.then22 i32 124, label %if.then30 i32 94, label %if.then35 @@ -6057,10 +6057,10 @@ sw.bb19: ; preds = %for.cond if.then22: ; preds = %sw.bb, %sw.bb11, %sw.bb19 %call.i156 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %16 = load i32, ptr %depth.i346, align 4 - %inc.i.i159 = add nsw i32 %16, 1 + %17 = load i32, ptr %depth.i346, align 4 + %inc.i.i159 = add nsw i32 %17, 1 store i32 %inc.i.i159, ptr %depth.i346, align 4 - %cmp.i.i160 = icmp sgt i32 %16, 19 + %cmp.i.i160 = icmp sgt i32 %17, 19 br i1 %cmp.i.i160, label %if.then.i.i162, label %cp_expr_sub.exit163 if.then.i.i162: ; preds = %if.then22 @@ -6070,22 +6070,22 @@ if.then.i.i162: ; preds = %if.then22 cp_expr_sub.exit163: ; preds = %if.then22 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %17 = load i32, ptr %depth.i346, align 4 - %dec.i.i161 = add nsw i32 %17, -1 + %18 = load i32, ptr %depth.i346, align 4 + %dec.i.i161 = add nsw i32 %18, -1 store i32 %dec.i.i161, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 3) - %18 = load i32, ptr %k, align 4 - %tobool23 = icmp ne i32 %18, 0 - %19 = load i32, ptr %k2, align 4 - %tobool24 = icmp ne i32 %19, 0 - %20 = select i1 %tobool23, i1 %tobool24, i1 false - %land.ext = zext i1 %20 to i32 + %19 = load i32, ptr %k, align 4 + %tobool23 = icmp ne i32 %19, 0 + %20 = load i32, ptr %k2, align 4 + %tobool24 = icmp ne i32 %20, 0 + %21 = select i1 %tobool23, i1 %tobool24, i1 false + %land.ext = zext i1 %21 to i32 store i32 %land.ext, ptr %k, align 4 store i32 9, ptr %id211, align 4 br label %for.cond.backedge sw.bb27: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 124, label %if.then30 i32 94, label %if.then35 i32 38, label %if.then40 @@ -6106,10 +6106,10 @@ sw.bb27: ; preds = %for.cond if.then30: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27 %call.i168 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %21 = load i32, ptr %depth.i346, align 4 - %inc.i.i171 = add nsw i32 %21, 1 + %22 = load i32, ptr %depth.i346, align 4 + %inc.i.i171 = add nsw i32 %22, 1 store i32 %inc.i.i171, ptr %depth.i346, align 4 - %cmp.i.i172 = icmp sgt i32 %21, 19 + %cmp.i.i172 = icmp sgt i32 %22, 19 br i1 %cmp.i.i172, label %if.then.i.i174, label %cp_expr_sub.exit175 if.then.i.i174: ; preds = %if.then30 @@ -6119,17 +6119,17 @@ if.then.i.i174: ; preds = %if.then30 cp_expr_sub.exit175: ; preds = %if.then30 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %22 = load i32, ptr %depth.i346, align 4 - %dec.i.i173 = add nsw i32 %22, -1 + %23 = load i32, ptr %depth.i346, align 4 + %dec.i.i173 = add nsw i32 %23, -1 store i32 %dec.i.i173, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 4) - %23 = load i32, ptr %k, align 4 - %24 = load i32, ptr %k2, align 4 - %or = or i32 %24, %23 + %24 = load i32, ptr %k, align 4 + %25 = load i32, ptr %k2, align 4 + %or = or i32 %25, %24 br label %arith_result sw.bb32: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 94, label %if.then35 i32 38, label %if.then40 i32 262, label %if.then45 @@ -6149,10 +6149,10 @@ sw.bb32: ; preds = %for.cond if.then35: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32 %call.i180 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %25 = load i32, ptr %depth.i346, align 4 - %inc.i.i183 = add nsw i32 %25, 1 + %26 = load i32, ptr %depth.i346, align 4 + %inc.i.i183 = add nsw i32 %26, 1 store i32 %inc.i.i183, ptr %depth.i346, align 4 - %cmp.i.i184 = icmp sgt i32 %25, 19 + %cmp.i.i184 = icmp sgt i32 %26, 19 br i1 %cmp.i.i184, label %if.then.i.i186, label %cp_expr_sub.exit187 if.then.i.i186: ; preds = %if.then35 @@ -6162,17 +6162,17 @@ if.then.i.i186: ; preds = %if.then35 cp_expr_sub.exit187: ; preds = %if.then35 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %26 = load i32, ptr %depth.i346, align 4 - %dec.i.i185 = add nsw i32 %26, -1 + %27 = load i32, ptr %depth.i346, align 4 + %dec.i.i185 = add nsw i32 %27, -1 store i32 %dec.i.i185, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 5) - %27 = load i32, ptr %k, align 4 - %28 = load i32, ptr %k2, align 4 - %xor = xor i32 %28, %27 + %28 = load i32, ptr %k, align 4 + %29 = load i32, ptr %k2, align 4 + %xor = xor i32 %29, %28 br label %arith_result sw.bb37: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 38, label %if.then40 i32 262, label %if.then45 i32 263, label %if.then50 @@ -6191,10 +6191,10 @@ sw.bb37: ; preds = %for.cond if.then40: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37 %call.i192 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %29 = load i32, ptr %depth.i346, align 4 - %inc.i.i195 = add nsw i32 %29, 1 + %30 = load i32, ptr %depth.i346, align 4 + %inc.i.i195 = add nsw i32 %30, 1 store i32 %inc.i.i195, ptr %depth.i346, align 4 - %cmp.i.i196 = icmp sgt i32 %29, 19 + %cmp.i.i196 = icmp sgt i32 %30, 19 br i1 %cmp.i.i196, label %if.then.i.i198, label %cp_expr_sub.exit199 if.then.i.i198: ; preds = %if.then40 @@ -6204,17 +6204,17 @@ if.then.i.i198: ; preds = %if.then40 cp_expr_sub.exit199: ; preds = %if.then40 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %30 = load i32, ptr %depth.i346, align 4 - %dec.i.i197 = add nsw i32 %30, -1 + %31 = load i32, ptr %depth.i346, align 4 + %dec.i.i197 = add nsw i32 %31, -1 store i32 %dec.i.i197, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 6) - %31 = load i32, ptr %k, align 4 - %32 = load i32, ptr %k2, align 4 - %and = and i32 %32, %31 + %32 = load i32, ptr %k, align 4 + %33 = load i32, ptr %k2, align 4 + %and = and i32 %33, %32 br label %arith_result sw.bb42: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 262, label %if.then45 i32 263, label %if.then50 i32 60, label %if.then59 @@ -6232,10 +6232,10 @@ sw.bb42: ; preds = %for.cond if.then45: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42 %call.i204 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %33 = load i32, ptr %depth.i346, align 4 - %inc.i.i207 = add nsw i32 %33, 1 + %34 = load i32, ptr %depth.i346, align 4 + %inc.i.i207 = add nsw i32 %34, 1 store i32 %inc.i.i207, ptr %depth.i346, align 4 - %cmp.i.i208 = icmp sgt i32 %33, 19 + %cmp.i.i208 = icmp sgt i32 %34, 19 br i1 %cmp.i.i208, label %if.then.i.i210, label %cp_expr_sub.exit211 if.then.i.i210: ; preds = %if.then45 @@ -6245,13 +6245,13 @@ if.then.i.i210: ; preds = %if.then45 cp_expr_sub.exit211: ; preds = %if.then45 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %34 = load i32, ptr %depth.i346, align 4 - %dec.i.i209 = add nsw i32 %34, -1 + %35 = load i32, ptr %depth.i346, align 4 + %dec.i.i209 = add nsw i32 %35, -1 store i32 %dec.i.i209, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 7) - %35 = load i32, ptr %k, align 4 - %36 = load i32, ptr %k2, align 4 - %cmp46 = icmp eq i32 %35, %36 + %36 = load i32, ptr %k, align 4 + %37 = load i32, ptr %k2, align 4 + %cmp46 = icmp eq i32 %36, %37 %conv = zext i1 %cmp46 to i32 store i32 %conv, ptr %k, align 4 store i32 9, ptr %id211, align 4 @@ -6259,10 +6259,10 @@ cp_expr_sub.exit211: ; preds = %if.then45 if.then50: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42 %call.i216 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %37 = load i32, ptr %depth.i346, align 4 - %inc.i.i219 = add nsw i32 %37, 1 + %38 = load i32, ptr %depth.i346, align 4 + %inc.i.i219 = add nsw i32 %38, 1 store i32 %inc.i.i219, ptr %depth.i346, align 4 - %cmp.i.i220 = icmp sgt i32 %37, 19 + %cmp.i.i220 = icmp sgt i32 %38, 19 br i1 %cmp.i.i220, label %if.then.i.i222, label %cp_expr_sub.exit223 if.then.i.i222: ; preds = %if.then50 @@ -6272,20 +6272,20 @@ if.then.i.i222: ; preds = %if.then50 cp_expr_sub.exit223: ; preds = %if.then50 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %38 = load i32, ptr %depth.i346, align 4 - %dec.i.i221 = add nsw i32 %38, -1 + %39 = load i32, ptr %depth.i346, align 4 + %dec.i.i221 = add nsw i32 %39, -1 store i32 %dec.i.i221, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 7) - %39 = load i32, ptr %k, align 4 - %40 = load i32, ptr %k2, align 4 - %cmp51 = icmp ne i32 %39, %40 + %40 = load i32, ptr %k, align 4 + %41 = load i32, ptr %k2, align 4 + %cmp51 = icmp ne i32 %40, %41 %conv52 = zext i1 %cmp51 to i32 store i32 %conv52, ptr %k, align 4 store i32 9, ptr %id211, align 4 br label %for.cond.backedge sw.bb56: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 60, label %if.then59 i32 62, label %if.then77 i32 264, label %if.then96 @@ -6301,10 +6301,10 @@ sw.bb56: ; preds = %for.cond if.then59: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i228 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %41 = load i32, ptr %depth.i346, align 4 - %inc.i.i231 = add nsw i32 %41, 1 + %42 = load i32, ptr %depth.i346, align 4 + %inc.i.i231 = add nsw i32 %42, 1 store i32 %inc.i.i231, ptr %depth.i346, align 4 - %cmp.i.i232 = icmp sgt i32 %41, 19 + %cmp.i.i232 = icmp sgt i32 %42, 19 br i1 %cmp.i.i232, label %if.then.i.i234, label %cp_expr_sub.exit235 if.then.i.i234: ; preds = %if.then59 @@ -6314,25 +6314,25 @@ if.then.i.i234: ; preds = %if.then59 cp_expr_sub.exit235: ; preds = %if.then59 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %42 = load i32, ptr %depth.i346, align 4 - %dec.i.i233 = add nsw i32 %42, -1 + %43 = load i32, ptr %depth.i346, align 4 + %dec.i.i233 = add nsw i32 %43, -1 store i32 %dec.i.i233, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %43 = load i32, ptr %id211, align 4 - %cmp61 = icmp eq i32 %43, 9 - %44 = load i32, ptr %id, align 4 - %cmp64 = icmp eq i32 %44, 9 + %44 = load i32, ptr %id211, align 4 + %cmp61 = icmp eq i32 %44, 9 + %45 = load i32, ptr %id, align 4 + %cmp64 = icmp eq i32 %45, 9 %or.cond = select i1 %cmp61, i1 %cmp64, i1 false - %45 = load i32, ptr %k, align 4 - %46 = load i32, ptr %k2, align 4 + %46 = load i32, ptr %k, align 4 + %47 = load i32, ptr %k2, align 4 br i1 %or.cond, label %if.then66, label %if.else69 if.then66: ; preds = %cp_expr_sub.exit235 - %cmp67 = icmp slt i32 %45, %46 + %cmp67 = icmp slt i32 %46, %47 br label %if.end72 if.else69: ; preds = %cp_expr_sub.exit235 - %cmp70 = icmp ult i32 %45, %46 + %cmp70 = icmp ult i32 %46, %47 br label %if.end72 if.end72: ; preds = %if.else69, %if.then66 @@ -6344,10 +6344,10 @@ if.end72: ; preds = %if.else69, %if.then if.then77: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i240 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %47 = load i32, ptr %depth.i346, align 4 - %inc.i.i243 = add nsw i32 %47, 1 + %48 = load i32, ptr %depth.i346, align 4 + %inc.i.i243 = add nsw i32 %48, 1 store i32 %inc.i.i243, ptr %depth.i346, align 4 - %cmp.i.i244 = icmp sgt i32 %47, 19 + %cmp.i.i244 = icmp sgt i32 %48, 19 br i1 %cmp.i.i244, label %if.then.i.i246, label %cp_expr_sub.exit247 if.then.i.i246: ; preds = %if.then77 @@ -6357,25 +6357,25 @@ if.then.i.i246: ; preds = %if.then77 cp_expr_sub.exit247: ; preds = %if.then77 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %48 = load i32, ptr %depth.i346, align 4 - %dec.i.i245 = add nsw i32 %48, -1 + %49 = load i32, ptr %depth.i346, align 4 + %dec.i.i245 = add nsw i32 %49, -1 store i32 %dec.i.i245, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %49 = load i32, ptr %id211, align 4 - %cmp79 = icmp eq i32 %49, 9 - %50 = load i32, ptr %id, align 4 - %cmp83 = icmp eq i32 %50, 9 + %50 = load i32, ptr %id211, align 4 + %cmp79 = icmp eq i32 %50, 9 + %51 = load i32, ptr %id, align 4 + %cmp83 = icmp eq i32 %51, 9 %or.cond1 = select i1 %cmp79, i1 %cmp83, i1 false - %51 = load i32, ptr %k, align 4 - %52 = load i32, ptr %k2, align 4 + %52 = load i32, ptr %k, align 4 + %53 = load i32, ptr %k2, align 4 br i1 %or.cond1, label %if.then85, label %if.else88 if.then85: ; preds = %cp_expr_sub.exit247 - %cmp86 = icmp sgt i32 %51, %52 + %cmp86 = icmp sgt i32 %52, %53 br label %if.end91 if.else88: ; preds = %cp_expr_sub.exit247 - %cmp89 = icmp ugt i32 %51, %52 + %cmp89 = icmp ugt i32 %52, %53 br label %if.end91 if.end91: ; preds = %if.else88, %if.then85 @@ -6387,10 +6387,10 @@ if.end91: ; preds = %if.else88, %if.then if.then96: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i252 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %53 = load i32, ptr %depth.i346, align 4 - %inc.i.i255 = add nsw i32 %53, 1 + %54 = load i32, ptr %depth.i346, align 4 + %inc.i.i255 = add nsw i32 %54, 1 store i32 %inc.i.i255, ptr %depth.i346, align 4 - %cmp.i.i256 = icmp sgt i32 %53, 19 + %cmp.i.i256 = icmp sgt i32 %54, 19 br i1 %cmp.i.i256, label %if.then.i.i258, label %cp_expr_sub.exit259 if.then.i.i258: ; preds = %if.then96 @@ -6400,25 +6400,25 @@ if.then.i.i258: ; preds = %if.then96 cp_expr_sub.exit259: ; preds = %if.then96 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %54 = load i32, ptr %depth.i346, align 4 - %dec.i.i257 = add nsw i32 %54, -1 + %55 = load i32, ptr %depth.i346, align 4 + %dec.i.i257 = add nsw i32 %55, -1 store i32 %dec.i.i257, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %55 = load i32, ptr %id211, align 4 - %cmp98 = icmp eq i32 %55, 9 - %56 = load i32, ptr %id, align 4 - %cmp102 = icmp eq i32 %56, 9 + %56 = load i32, ptr %id211, align 4 + %cmp98 = icmp eq i32 %56, 9 + %57 = load i32, ptr %id, align 4 + %cmp102 = icmp eq i32 %57, 9 %or.cond2 = select i1 %cmp98, i1 %cmp102, i1 false - %57 = load i32, ptr %k, align 4 - %58 = load i32, ptr %k2, align 4 + %58 = load i32, ptr %k, align 4 + %59 = load i32, ptr %k2, align 4 br i1 %or.cond2, label %if.then104, label %if.else107 if.then104: ; preds = %cp_expr_sub.exit259 - %cmp105 = icmp sle i32 %57, %58 + %cmp105 = icmp sle i32 %58, %59 br label %if.end110 if.else107: ; preds = %cp_expr_sub.exit259 - %cmp108 = icmp ule i32 %57, %58 + %cmp108 = icmp ule i32 %58, %59 br label %if.end110 if.end110: ; preds = %if.else107, %if.then104 @@ -6430,10 +6430,10 @@ if.end110: ; preds = %if.else107, %if.the if.then115: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56 %call.i264 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %59 = load i32, ptr %depth.i346, align 4 - %inc.i.i267 = add nsw i32 %59, 1 + %60 = load i32, ptr %depth.i346, align 4 + %inc.i.i267 = add nsw i32 %60, 1 store i32 %inc.i.i267, ptr %depth.i346, align 4 - %cmp.i.i268 = icmp sgt i32 %59, 19 + %cmp.i.i268 = icmp sgt i32 %60, 19 br i1 %cmp.i.i268, label %if.then.i.i270, label %cp_expr_sub.exit271 if.then.i.i270: ; preds = %if.then115 @@ -6443,25 +6443,25 @@ if.then.i.i270: ; preds = %if.then115 cp_expr_sub.exit271: ; preds = %if.then115 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %60 = load i32, ptr %depth.i346, align 4 - %dec.i.i269 = add nsw i32 %60, -1 + %61 = load i32, ptr %depth.i346, align 4 + %dec.i.i269 = add nsw i32 %61, -1 store i32 %dec.i.i269, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 8) - %61 = load i32, ptr %id211, align 4 - %cmp117 = icmp eq i32 %61, 9 - %62 = load i32, ptr %id, align 4 - %cmp121 = icmp eq i32 %62, 9 + %62 = load i32, ptr %id211, align 4 + %cmp117 = icmp eq i32 %62, 9 + %63 = load i32, ptr %id, align 4 + %cmp121 = icmp eq i32 %63, 9 %or.cond3 = select i1 %cmp117, i1 %cmp121, i1 false - %63 = load i32, ptr %k, align 4 - %64 = load i32, ptr %k2, align 4 + %64 = load i32, ptr %k, align 4 + %65 = load i32, ptr %k2, align 4 br i1 %or.cond3, label %if.then123, label %if.else126 if.then123: ; preds = %cp_expr_sub.exit271 - %cmp124 = icmp sge i32 %63, %64 + %cmp124 = icmp sge i32 %64, %65 br label %if.end129 if.else126: ; preds = %cp_expr_sub.exit271 - %cmp127 = icmp uge i32 %63, %64 + %cmp127 = icmp uge i32 %64, %65 br label %if.end129 if.end129: ; preds = %if.else126, %if.then123 @@ -6472,7 +6472,7 @@ if.end129: ; preds = %if.else126, %if.the br label %for.cond.backedge sw.bb135: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 266, label %if.then138 i32 267, label %if.then142 i32 43, label %if.then155 @@ -6484,10 +6484,10 @@ sw.bb135: ; preds = %for.cond if.then138: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135 %call.i276 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %65 = load i32, ptr %depth.i346, align 4 - %inc.i.i279 = add nsw i32 %65, 1 + %66 = load i32, ptr %depth.i346, align 4 + %inc.i.i279 = add nsw i32 %66, 1 store i32 %inc.i.i279, ptr %depth.i346, align 4 - %cmp.i.i280 = icmp sgt i32 %65, 19 + %cmp.i.i280 = icmp sgt i32 %66, 19 br i1 %cmp.i.i280, label %if.then.i.i282, label %cp_expr_sub.exit283 if.then.i.i282: ; preds = %if.then138 @@ -6497,22 +6497,22 @@ if.then.i.i282: ; preds = %if.then138 cp_expr_sub.exit283: ; preds = %if.then138 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %66 = load i32, ptr %depth.i346, align 4 - %dec.i.i281 = add nsw i32 %66, -1 + %67 = load i32, ptr %depth.i346, align 4 + %dec.i.i281 = add nsw i32 %67, -1 store i32 %dec.i.i281, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 9) - %67 = load i32, ptr %k, align 4 - %68 = load i32, ptr %k2, align 4 - %shl = shl i32 %67, %68 + %68 = load i32, ptr %k, align 4 + %69 = load i32, ptr %k2, align 4 + %shl = shl i32 %68, %69 store i32 %shl, ptr %k, align 4 br label %for.cond.backedge if.then142: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135 %call.i288 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %69 = load i32, ptr %depth.i346, align 4 - %inc.i.i291 = add nsw i32 %69, 1 + %70 = load i32, ptr %depth.i346, align 4 + %inc.i.i291 = add nsw i32 %70, 1 store i32 %inc.i.i291, ptr %depth.i346, align 4 - %cmp.i.i292 = icmp sgt i32 %69, 19 + %cmp.i.i292 = icmp sgt i32 %70, 19 br i1 %cmp.i.i292, label %if.then.i.i294, label %cp_expr_sub.exit295 if.then.i.i294: ; preds = %if.then142 @@ -6522,22 +6522,22 @@ if.then.i.i294: ; preds = %if.then142 cp_expr_sub.exit295: ; preds = %if.then142 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %70 = load i32, ptr %depth.i346, align 4 - %dec.i.i293 = add nsw i32 %70, -1 + %71 = load i32, ptr %depth.i346, align 4 + %dec.i.i293 = add nsw i32 %71, -1 store i32 %dec.i.i293, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 9) - %71 = load i32, ptr %id211, align 4 - %cmp144 = icmp eq i32 %71, 9 - %72 = load i32, ptr %k, align 4 - %73 = load i32, ptr %k2, align 4 - %shr148 = lshr i32 %72, %73 - %shr = ashr i32 %72, %73 + %72 = load i32, ptr %id211, align 4 + %cmp144 = icmp eq i32 %72, 9 + %73 = load i32, ptr %k, align 4 + %74 = load i32, ptr %k2, align 4 + %shr148 = lshr i32 %73, %74 + %shr = ashr i32 %73, %74 %storemerge131 = select i1 %cmp144, i32 %shr, i32 %shr148 store i32 %storemerge131, ptr %k, align 4 br label %for.cond.backedge sw.bb152: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 43, label %if.then155 i32 45, label %if.then167 i32 42, label %if.then173 @@ -6547,10 +6547,10 @@ sw.bb152: ; preds = %for.cond if.then155: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152 %call.i300 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %74 = load i32, ptr %depth.i346, align 4 - %inc.i.i303 = add nsw i32 %74, 1 + %75 = load i32, ptr %depth.i346, align 4 + %inc.i.i303 = add nsw i32 %75, 1 store i32 %inc.i.i303, ptr %depth.i346, align 4 - %cmp.i.i304 = icmp sgt i32 %74, 19 + %cmp.i.i304 = icmp sgt i32 %75, 19 br i1 %cmp.i.i304, label %if.then.i.i306, label %cp_expr_sub.exit307 if.then.i.i306: ; preds = %if.then155 @@ -6560,36 +6560,36 @@ if.then.i.i306: ; preds = %if.then155 cp_expr_sub.exit307: ; preds = %if.then155 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %75 = load i32, ptr %depth.i346, align 4 - %dec.i.i305 = add nsw i32 %75, -1 + %76 = load i32, ptr %depth.i346, align 4 + %dec.i.i305 = add nsw i32 %76, -1 store i32 %dec.i.i305, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 10) - %76 = load i32, ptr %k, align 4 - %77 = load i32, ptr %k2, align 4 - %add = add i32 %77, %76 + %77 = load i32, ptr %k, align 4 + %78 = load i32, ptr %k2, align 4 + %add = add i32 %78, %77 br label %arith_result arith_result: ; preds = %cp_expr_unary.exit, %cp_expr_sub.exit319, %cp_expr_sub.exit307, %cp_expr_sub.exit199, %cp_expr_sub.exit187, %cp_expr_sub.exit175 %mul.sink = phi i32 [ %mul, %cp_expr_unary.exit ], [ %sub, %cp_expr_sub.exit319 ], [ %add, %cp_expr_sub.exit307 ], [ %and, %cp_expr_sub.exit199 ], [ %xor, %cp_expr_sub.exit187 ], [ %or, %cp_expr_sub.exit175 ] store i32 %mul.sink, ptr %k, align 4 - %78 = load i32, ptr %id, align 4 - %79 = load i32, ptr %id211, align 4 - %cmp158 = icmp ugt i32 %78, %79 + %79 = load i32, ptr %id, align 4 + %80 = load i32, ptr %id211, align 4 + %cmp158 = icmp ugt i32 %79, %80 br i1 %cmp158, label %if.then160, label %for.cond.backedge for.cond.backedge: ; preds = %arith_result, %if.then160, %cp_expr_sub.exit, %cp_expr_sub.exit151, %cp_expr_sub.exit163, %cp_expr_sub.exit211, %cp_expr_sub.exit223, %if.end72, %if.end91, %if.end110, %if.end129, %cp_expr_sub.exit283, %cp_expr_sub.exit295, %if.end205, %if.end238 br label %for.cond if.then160: ; preds = %arith_result - store i32 %78, ptr %id211, align 4 + store i32 %79, ptr %id211, align 4 br label %for.cond.backedge if.then167: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152 %call.i312 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %80 = load i32, ptr %depth.i346, align 4 - %inc.i.i315 = add nsw i32 %80, 1 + %81 = load i32, ptr %depth.i346, align 4 + %inc.i.i315 = add nsw i32 %81, 1 store i32 %inc.i.i315, ptr %depth.i346, align 4 - %cmp.i.i316 = icmp sgt i32 %80, 19 + %cmp.i.i316 = icmp sgt i32 %81, 19 br i1 %cmp.i.i316, label %if.then.i.i318, label %cp_expr_sub.exit319 if.then.i.i318: ; preds = %if.then167 @@ -6599,17 +6599,17 @@ if.then.i.i318: ; preds = %if.then167 cp_expr_sub.exit319: ; preds = %if.then167 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %81 = load i32, ptr %depth.i346, align 4 - %dec.i.i317 = add nsw i32 %81, -1 + %82 = load i32, ptr %depth.i346, align 4 + %dec.i.i317 = add nsw i32 %82, -1 store i32 %dec.i.i317, ptr %depth.i346, align 4 call fastcc void @cp_expr_infix(ptr noundef nonnull %cp, ptr noundef nonnull %k2, i32 noundef 10) - %82 = load i32, ptr %k, align 4 - %83 = load i32, ptr %k2, align 4 - %sub = sub i32 %82, %83 + %83 = load i32, ptr %k, align 4 + %84 = load i32, ptr %k2, align 4 + %sub = sub i32 %83, %84 br label %arith_result sw.bb170: ; preds = %for.cond - switch i32 %.pre416, label %sw.default.split [ + switch i32 %0, label %sw.default [ i32 42, label %if.then173 i32 47, label %if.then177 i32 37, label %if.then209 @@ -6617,10 +6617,10 @@ sw.bb170: ; preds = %for.cond if.then173: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 %call.i324 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %84 = load i32, ptr %depth.i346, align 4 - %inc.i = add nsw i32 %84, 1 + %85 = load i32, ptr %depth.i346, align 4 + %inc.i = add nsw i32 %85, 1 store i32 %inc.i, ptr %depth.i346, align 4 - %cmp.i326 = icmp sgt i32 %84, 19 + %cmp.i326 = icmp sgt i32 %85, 19 br i1 %cmp.i326, label %if.then.i327, label %cp_expr_unary.exit if.then.i327: ; preds = %if.then173 @@ -6630,20 +6630,20 @@ if.then.i327: ; preds = %if.then173 cp_expr_unary.exit: ; preds = %if.then173 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %85 = load i32, ptr %depth.i346, align 4 - %dec.i = add nsw i32 %85, -1 + %86 = load i32, ptr %depth.i346, align 4 + %dec.i = add nsw i32 %86, -1 store i32 %dec.i, ptr %depth.i346, align 4 - %86 = load i32, ptr %k, align 4 - %87 = load i32, ptr %k2, align 4 - %mul = mul i32 %87, %86 + %87 = load i32, ptr %k, align 4 + %88 = load i32, ptr %k2, align 4 + %mul = mul i32 %88, %87 br label %arith_result if.then177: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 %call.i332 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %88 = load i32, ptr %depth.i346, align 4 - %inc.i335 = add nsw i32 %88, 1 + %89 = load i32, ptr %depth.i346, align 4 + %inc.i335 = add nsw i32 %89, 1 store i32 %inc.i335, ptr %depth.i346, align 4 - %cmp.i336 = icmp sgt i32 %88, 19 + %cmp.i336 = icmp sgt i32 %89, 19 br i1 %cmp.i336, label %if.then.i338, label %cp_expr_unary.exit339 if.then.i338: ; preds = %if.then177 @@ -6653,32 +6653,32 @@ if.then.i338: ; preds = %if.then177 cp_expr_unary.exit339: ; preds = %if.then177 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %89 = load i32, ptr %depth.i346, align 4 - %dec.i337 = add nsw i32 %89, -1 + %90 = load i32, ptr %depth.i346, align 4 + %dec.i337 = add nsw i32 %90, -1 store i32 %dec.i337, ptr %depth.i346, align 4 - %90 = load i32, ptr %id, align 4 - %91 = load i32, ptr %id211, align 4 - %cmp180 = icmp ugt i32 %90, %91 + %91 = load i32, ptr %id, align 4 + %92 = load i32, ptr %id211, align 4 + %cmp180 = icmp ugt i32 %91, %92 br i1 %cmp180, label %if.then182, label %if.end185 if.then182: ; preds = %cp_expr_unary.exit339 - store i32 %90, ptr %id211, align 4 + store i32 %91, ptr %id211, align 4 br label %if.end185 if.end185: ; preds = %if.then182, %cp_expr_unary.exit339 - %92 = phi i32 [ %90, %if.then182 ], [ %91, %cp_expr_unary.exit339 ] - %93 = load i32, ptr %k2, align 4 - %cmp186 = icmp eq i32 %93, 0 + %93 = phi i32 [ %91, %if.then182 ], [ %92, %cp_expr_unary.exit339 ] + %94 = load i32, ptr %k2, align 4 + %cmp186 = icmp eq i32 %94, 0 br i1 %cmp186, label %if.then197, label %lor.lhs.false lor.lhs.false: ; preds = %if.end185 - %cmp189 = icmp eq i32 %92, 9 - %94 = load i32, ptr %k, align 4 + %cmp189 = icmp eq i32 %93, 9 + %95 = load i32, ptr %k, align 4 br i1 %cmp189, label %land.lhs.true191, label %if.else203 land.lhs.true191: ; preds = %lor.lhs.false - %cmp192 = icmp eq i32 %94, -2147483648 - %cmp195 = icmp eq i32 %93, -1 + %cmp192 = icmp eq i32 %95, -2147483648 + %cmp195 = icmp eq i32 %94, -1 %or.cond5 = and i1 %cmp195, %cmp192 br i1 %or.cond5, label %if.then197, label %if.then202 @@ -6687,11 +6687,11 @@ if.then197: ; preds = %land.lhs.true191, % unreachable if.then202: ; preds = %land.lhs.true191 - %div = sdiv i32 %94, %93 + %div = sdiv i32 %95, %94 br label %if.end205 if.else203: ; preds = %lor.lhs.false - %div204 = udiv i32 %94, %93 + %div204 = udiv i32 %95, %94 br label %if.end205 if.end205: ; preds = %if.else203, %if.then202 @@ -6701,10 +6701,10 @@ if.end205: ; preds = %if.else203, %if.the if.then209: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 %call.i344 = tail call fastcc i32 @cp_next(ptr noundef nonnull %cp) - %95 = load i32, ptr %depth.i346, align 4 - %inc.i347 = add nsw i32 %95, 1 + %96 = load i32, ptr %depth.i346, align 4 + %inc.i347 = add nsw i32 %96, 1 store i32 %inc.i347, ptr %depth.i346, align 4 - %cmp.i348 = icmp sgt i32 %95, 19 + %cmp.i348 = icmp sgt i32 %96, 19 br i1 %cmp.i348, label %if.then.i350, label %cp_expr_unary.exit351 if.then.i350: ; preds = %if.then209 @@ -6714,32 +6714,32 @@ if.then.i350: ; preds = %if.then209 cp_expr_unary.exit351: ; preds = %if.then209 call fastcc void @cp_expr_prefix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) call fastcc void @cp_expr_postfix(ptr noundef nonnull %cp, ptr noundef nonnull %k2) - %96 = load i32, ptr %depth.i346, align 4 - %dec.i349 = add nsw i32 %96, -1 + %97 = load i32, ptr %depth.i346, align 4 + %dec.i349 = add nsw i32 %97, -1 store i32 %dec.i349, ptr %depth.i346, align 4 - %97 = load i32, ptr %id, align 4 - %98 = load i32, ptr %id211, align 4 - %cmp212 = icmp ugt i32 %97, %98 + %98 = load i32, ptr %id, align 4 + %99 = load i32, ptr %id211, align 4 + %cmp212 = icmp ugt i32 %98, %99 br i1 %cmp212, label %if.then214, label %if.end217 if.then214: ; preds = %cp_expr_unary.exit351 - store i32 %97, ptr %id211, align 4 + store i32 %98, ptr %id211, align 4 br label %if.end217 if.end217: ; preds = %if.then214, %cp_expr_unary.exit351 - %99 = phi i32 [ %97, %if.then214 ], [ %98, %cp_expr_unary.exit351 ] - %100 = load i32, ptr %k2, align 4 - %cmp218 = icmp eq i32 %100, 0 + %100 = phi i32 [ %98, %if.then214 ], [ %99, %cp_expr_unary.exit351 ] + %101 = load i32, ptr %k2, align 4 + %cmp218 = icmp eq i32 %101, 0 br i1 %cmp218, label %if.then230, label %lor.lhs.false220 lor.lhs.false220: ; preds = %if.end217 - %cmp222 = icmp eq i32 %99, 9 - %101 = load i32, ptr %k, align 4 + %cmp222 = icmp eq i32 %100, 9 + %102 = load i32, ptr %k, align 4 br i1 %cmp222, label %land.lhs.true224, label %if.else236 land.lhs.true224: ; preds = %lor.lhs.false220 - %cmp225 = icmp eq i32 %101, -2147483648 - %cmp228 = icmp eq i32 %100, -1 + %cmp225 = icmp eq i32 %102, -2147483648 + %cmp228 = icmp eq i32 %101, -1 %or.cond7 = and i1 %cmp228, %cmp225 br i1 %or.cond7, label %if.then230, label %if.then235 @@ -6748,11 +6748,11 @@ if.then230: ; preds = %land.lhs.true224, % unreachable if.then235: ; preds = %land.lhs.true224 - %rem = srem i32 %101, %100 + %rem = srem i32 %102, %101 br label %if.end238 if.else236: ; preds = %lor.lhs.false220 - %rem237 = urem i32 %101, %100 + %rem237 = urem i32 %102, %101 br label %if.end238 if.end238: ; preds = %if.else236, %if.then235 @@ -6760,7 +6760,10 @@ if.end238: ; preds = %if.else236, %if.the store i32 %storemerge, ptr %k, align 4 br label %for.cond.backedge -sw.default.split: ; preds = %sw.bb170, %sw.bb152, %sw.bb135, %sw.bb56, %sw.bb42, %sw.bb37, %sw.bb32, %sw.bb27, %sw.bb19, %sw.bb11, %sw.bb, %entry +default.unreachable: ; preds = %for.cond + unreachable + +sw.default: ; preds = %sw.bb, %sw.bb11, %sw.bb19, %sw.bb27, %sw.bb32, %sw.bb37, %sw.bb42, %sw.bb56, %sw.bb135, %sw.bb152, %sw.bb170 ret void } diff --git a/bench/luajit/optimized/minilua.ll b/bench/luajit/optimized/minilua.ll index 43af54ca3f5..9a91882105f 100644 --- a/bench/luajit/optimized/minilua.ll +++ b/bench/luajit/optimized/minilua.ll @@ -9106,7 +9106,7 @@ luaO_str2d.exit.i58: ; preds = %while.cond.i.i52 if.then: ; preds = %luaO_str2d.exit.thread9.i64, %luaO_str2d.exit.i58, %land.lhs.true.if.then_crit_edge %18 = phi double [ %.pre, %land.lhs.true.if.then_crit_edge ], [ %num.0.i47, %luaO_str2d.exit.i58 ], [ %num.0.i47, %luaO_str2d.exit.thread9.i64 ] %19 = load double, ptr %retval.0.i.ph, align 8 - switch i32 %op, label %if.end34 [ + switch i32 %op, label %default.unreachable [ i32 5, label %sw.bb i32 6, label %sw.bb5 i32 7, label %sw.bb9 @@ -9240,6 +9240,9 @@ luaV_tonumber.exit99: ; preds = %if.then33, %if.then call void (ptr, ptr, ...) @luaG_runerror(ptr noundef nonnull %L, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.42, ptr noundef %32) unreachable +default.unreachable: ; preds = %if.then + unreachable + if.end34.sink.split: ; preds = %sw.bb28, %sw.bb23, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb %add.sink = phi double [ %add, %sw.bb ], [ %sub, %sw.bb5 ], [ %mul, %sw.bb9 ], [ %div, %sw.bb13 ], [ %21, %sw.bb17 ], [ %call25, %sw.bb23 ], [ %fneg, %sw.bb28 ] store double %add.sink, ptr %ra, align 8 @@ -9247,7 +9250,7 @@ if.end34.sink.split: ; preds = %sw.bb28, %sw.bb23, store i32 3, ptr %tt, align 8 br label %if.end34 -if.end34: ; preds = %if.end34.sink.split, %if.else, %if.then +if.end34: ; preds = %if.end34.sink.split, %if.else ret void } @@ -27180,7 +27183,7 @@ luaX_next.exit: ; preds = %if.then.i22, %if.el store i32 5, ptr %e2.i, align 8 %u.i = getelementptr inbounds %struct.expdesc, ptr %e2.i, i64 0, i32 1 store double 0.000000e+00, ptr %u.i, align 8 - switch i32 %retval.0.i.ph, label %luaX_next.exit.unreachabledefault [ + switch i32 %retval.0.i.ph, label %default.unreachable [ i32 0, label %sw.bb.i i32 1, label %sw.bb2.i23 i32 2, label %sw.bb3.i @@ -27485,7 +27488,7 @@ sw.bb3.i: ; preds = %luaX_next.exit call fastcc void @codearith(ptr noundef %5, i32 noundef 20, ptr noundef %v, ptr noundef nonnull %e2.i) br label %luaK_prefix.exit -luaX_next.exit.unreachabledefault: ; preds = %luaX_next.exit +default.unreachable: ; preds = %luaX_next.exit unreachable luaK_prefix.exit: ; preds = %patchtestreg.exit.i48.i.i, %if.end.i, %removevalues.exit.i.i, %sw.bb3.i diff --git a/bench/memcached/optimized/jenkins_hash.ll b/bench/memcached/optimized/jenkins_hash.ll index 1fa7110f765..85b86f20f05 100644 --- a/bench/memcached/optimized/jenkins_hash.ll +++ b/bench/memcached/optimized/jenkins_hash.ll @@ -3,7 +3,7 @@ source_filename = "bench/memcached/original/jenkins_hash.ll" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -; Function Attrs: nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable +; Function Attrs: nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable define dso_local i32 @jenkins_hash(ptr noundef %key, i64 noundef %length) local_unnamed_addr #0 { entry: %conv = trunc i64 %length to i32 @@ -66,7 +66,7 @@ while.end: ; preds = %while.body, %while. %c.0.lcssa = phi i32 [ %add, %while.cond.preheader ], [ %xor40, %while.body ] %length.addr.0.lcssa = phi i64 [ %length, %while.cond.preheader ], [ %sub42, %while.body ] %k.0.lcssa = phi ptr [ %key, %while.cond.preheader ], [ %add.ptr, %while.body ] - switch i64 %length.addr.0.lcssa, label %if.end437 [ + switch i64 %length.addr.0.lcssa, label %default.unreachable [ i64 12, label %sw.bb i64 11, label %sw.bb49 i64 10, label %sw.bb57 @@ -248,7 +248,7 @@ while.end180: ; preds = %while.body120, %whi %c.1.lcssa = phi i32 [ %add, %while.cond117.preheader ], [ %xor176, %while.body120 ] %length.addr.1.lcssa = phi i64 [ %length, %while.cond117.preheader ], [ %sub178, %while.body120 ] %k116.0.lcssa = phi ptr [ %key, %while.cond117.preheader ], [ %add.ptr179, %while.body120 ] - switch i64 %length.addr.1.lcssa, label %if.end437 [ + switch i64 %length.addr.1.lcssa, label %default.unreachable [ i64 12, label %sw.bb181 i64 11, label %sw.bb203 i64 10, label %sw.bb208 @@ -461,7 +461,7 @@ while.end377: ; preds = %while.body293, %whi %c.4.lcssa = phi i32 [ %add, %while.cond290.preheader ], [ %xor373, %while.body293 ] %length.addr.2.lcssa = phi i64 [ %length, %while.cond290.preheader ], [ %sub375, %while.body293 ] %k289.0.lcssa = phi ptr [ %key, %while.cond290.preheader ], [ %add.ptr376, %while.body293 ] - switch i64 %length.addr.2.lcssa, label %if.end437 [ + switch i64 %length.addr.2.lcssa, label %default.unreachable [ i64 12, label %sw.bb378 i64 11, label %sw.bb383 i64 10, label %sw.bb388 @@ -590,10 +590,13 @@ sw.bb431: ; preds = %sw.bb426, %while.en %add434 = add i32 %a.6, %conv433 br label %if.end437 -if.end437: ; preds = %sw.bb282, %sw.bb278, %sw.bb265, %sw.bb250, %sw.bb230, %sw.bb208, %sw.bb181, %while.end180, %sw.bb431, %while.end377, %while.end, %sw.bb, %sw.bb49, %sw.bb57, %sw.bb65, %sw.bb73, %sw.bb78, %sw.bb84, %sw.bb90, %sw.bb96, %sw.bb99, %sw.bb103, %sw.bb107 - %a.7 = phi i32 [ %a.0.lcssa, %while.end ], [ %add110, %sw.bb107 ], [ %add106, %sw.bb103 ], [ %add102, %sw.bb99 ], [ %add98, %sw.bb96 ], [ %add95, %sw.bb90 ], [ %add89, %sw.bb84 ], [ %add83, %sw.bb78 ], [ %add77, %sw.bb73 ], [ %add72, %sw.bb65 ], [ %add64, %sw.bb57 ], [ %add56, %sw.bb49 ], [ %add48, %sw.bb ], [ %a.1.lcssa, %while.end180 ], [ %add285, %sw.bb282 ], [ %add281, %sw.bb278 ], [ %add272, %sw.bb265 ], [ %add260, %sw.bb250 ], [ %add244, %sw.bb230 ], [ %add225, %sw.bb208 ], [ %add202, %sw.bb181 ], [ %a.3.lcssa, %while.end377 ], [ %add434, %sw.bb431 ] - %b.12 = phi i32 [ %b.0.lcssa, %while.end ], [ %b.0.lcssa, %sw.bb107 ], [ %b.0.lcssa, %sw.bb103 ], [ %b.0.lcssa, %sw.bb99 ], [ %b.0.lcssa, %sw.bb96 ], [ %add93, %sw.bb90 ], [ %add87, %sw.bb84 ], [ %add81, %sw.bb78 ], [ %add75, %sw.bb73 ], [ %add70, %sw.bb65 ], [ %add62, %sw.bb57 ], [ %add54, %sw.bb49 ], [ %add46, %sw.bb ], [ %b.1.lcssa, %while.end180 ], [ %b.1.lcssa, %sw.bb282 ], [ %b.1.lcssa, %sw.bb278 ], [ %b.3, %sw.bb265 ], [ %add253, %sw.bb250 ], [ %add237, %sw.bb230 ], [ %add218, %sw.bb208 ], [ %add195, %sw.bb181 ], [ %b.4.lcssa, %while.end377 ], [ %b.11, %sw.bb431 ] - %c.16 = phi i32 [ %c.0.lcssa, %while.end ], [ %c.0.lcssa, %sw.bb107 ], [ %c.0.lcssa, %sw.bb103 ], [ %c.0.lcssa, %sw.bb99 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb90 ], [ %c.0.lcssa, %sw.bb84 ], [ %c.0.lcssa, %sw.bb78 ], [ %c.0.lcssa, %sw.bb73 ], [ %add68, %sw.bb65 ], [ %add60, %sw.bb57 ], [ %add52, %sw.bb49 ], [ %add44, %sw.bb ], [ %c.1.lcssa, %while.end180 ], [ %c.1.lcssa, %sw.bb282 ], [ %c.1.lcssa, %sw.bb278 ], [ %c.1.lcssa, %sw.bb265 ], [ %c.1.lcssa, %sw.bb250 ], [ %c.3, %sw.bb230 ], [ %add211, %sw.bb208 ], [ %add188, %sw.bb181 ], [ %c.4.lcssa, %while.end377 ], [ %c.15, %sw.bb431 ] +default.unreachable: ; preds = %while.end377, %while.end180, %while.end + unreachable + +if.end437: ; preds = %sw.bb282, %sw.bb278, %sw.bb265, %sw.bb250, %sw.bb230, %sw.bb208, %sw.bb181, %sw.bb431, %sw.bb, %sw.bb49, %sw.bb57, %sw.bb65, %sw.bb73, %sw.bb78, %sw.bb84, %sw.bb90, %sw.bb96, %sw.bb99, %sw.bb103, %sw.bb107 + %a.7 = phi i32 [ %add110, %sw.bb107 ], [ %add106, %sw.bb103 ], [ %add102, %sw.bb99 ], [ %add98, %sw.bb96 ], [ %add95, %sw.bb90 ], [ %add89, %sw.bb84 ], [ %add83, %sw.bb78 ], [ %add77, %sw.bb73 ], [ %add72, %sw.bb65 ], [ %add64, %sw.bb57 ], [ %add56, %sw.bb49 ], [ %add48, %sw.bb ], [ %add285, %sw.bb282 ], [ %add281, %sw.bb278 ], [ %add272, %sw.bb265 ], [ %add260, %sw.bb250 ], [ %add244, %sw.bb230 ], [ %add225, %sw.bb208 ], [ %add202, %sw.bb181 ], [ %add434, %sw.bb431 ] + %b.12 = phi i32 [ %b.0.lcssa, %sw.bb107 ], [ %b.0.lcssa, %sw.bb103 ], [ %b.0.lcssa, %sw.bb99 ], [ %b.0.lcssa, %sw.bb96 ], [ %add93, %sw.bb90 ], [ %add87, %sw.bb84 ], [ %add81, %sw.bb78 ], [ %add75, %sw.bb73 ], [ %add70, %sw.bb65 ], [ %add62, %sw.bb57 ], [ %add54, %sw.bb49 ], [ %add46, %sw.bb ], [ %b.1.lcssa, %sw.bb282 ], [ %b.1.lcssa, %sw.bb278 ], [ %b.3, %sw.bb265 ], [ %add253, %sw.bb250 ], [ %add237, %sw.bb230 ], [ %add218, %sw.bb208 ], [ %add195, %sw.bb181 ], [ %b.11, %sw.bb431 ] + %c.16 = phi i32 [ %c.0.lcssa, %sw.bb107 ], [ %c.0.lcssa, %sw.bb103 ], [ %c.0.lcssa, %sw.bb99 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb90 ], [ %c.0.lcssa, %sw.bb84 ], [ %c.0.lcssa, %sw.bb78 ], [ %c.0.lcssa, %sw.bb73 ], [ %add68, %sw.bb65 ], [ %add60, %sw.bb57 ], [ %add52, %sw.bb49 ], [ %add44, %sw.bb ], [ %c.1.lcssa, %sw.bb282 ], [ %c.1.lcssa, %sw.bb278 ], [ %c.1.lcssa, %sw.bb265 ], [ %c.1.lcssa, %sw.bb250 ], [ %c.3, %sw.bb230 ], [ %add211, %sw.bb208 ], [ %add188, %sw.bb181 ], [ %c.15, %sw.bb431 ] %xor438 = xor i32 %c.16, %b.12 %xor441 = tail call i32 @llvm.fshl.i32(i32 %b.12, i32 %b.12, i32 14) %sub442 = sub i32 %xor438, %xor441 @@ -625,7 +628,7 @@ return: ; preds = %while.end377, %whil ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.fshl.i32(i32, i32, i32) #1 -attributes #0 = { nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #0 = { nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 speculatable willreturn memory(none) } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/memcached/optimized/memcached-jenkins_hash.ll b/bench/memcached/optimized/memcached-jenkins_hash.ll index 309bf51f643..2835d4a306b 100644 --- a/bench/memcached/optimized/memcached-jenkins_hash.ll +++ b/bench/memcached/optimized/memcached-jenkins_hash.ll @@ -3,7 +3,7 @@ source_filename = "bench/memcached/original/memcached-jenkins_hash.ll" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -; Function Attrs: nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable +; Function Attrs: nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable define dso_local i32 @jenkins_hash(ptr noundef %key, i64 noundef %length) local_unnamed_addr #0 { entry: %conv = trunc i64 %length to i32 @@ -66,7 +66,7 @@ while.end: ; preds = %while.body, %while. %c.0.lcssa = phi i32 [ %add, %while.cond.preheader ], [ %xor40, %while.body ] %length.addr.0.lcssa = phi i64 [ %length, %while.cond.preheader ], [ %sub42, %while.body ] %k.0.lcssa = phi ptr [ %key, %while.cond.preheader ], [ %add.ptr, %while.body ] - switch i64 %length.addr.0.lcssa, label %if.end437 [ + switch i64 %length.addr.0.lcssa, label %default.unreachable [ i64 12, label %sw.bb i64 11, label %sw.bb49 i64 10, label %sw.bb57 @@ -248,7 +248,7 @@ while.end180: ; preds = %while.body120, %whi %c.1.lcssa = phi i32 [ %add, %while.cond117.preheader ], [ %xor176, %while.body120 ] %length.addr.1.lcssa = phi i64 [ %length, %while.cond117.preheader ], [ %sub178, %while.body120 ] %k116.0.lcssa = phi ptr [ %key, %while.cond117.preheader ], [ %add.ptr179, %while.body120 ] - switch i64 %length.addr.1.lcssa, label %if.end437 [ + switch i64 %length.addr.1.lcssa, label %default.unreachable [ i64 12, label %sw.bb181 i64 11, label %sw.bb203 i64 10, label %sw.bb208 @@ -461,7 +461,7 @@ while.end377: ; preds = %while.body293, %whi %c.4.lcssa = phi i32 [ %add, %while.cond290.preheader ], [ %xor373, %while.body293 ] %length.addr.2.lcssa = phi i64 [ %length, %while.cond290.preheader ], [ %sub375, %while.body293 ] %k289.0.lcssa = phi ptr [ %key, %while.cond290.preheader ], [ %add.ptr376, %while.body293 ] - switch i64 %length.addr.2.lcssa, label %if.end437 [ + switch i64 %length.addr.2.lcssa, label %default.unreachable [ i64 12, label %sw.bb378 i64 11, label %sw.bb383 i64 10, label %sw.bb388 @@ -590,10 +590,13 @@ sw.bb431: ; preds = %sw.bb426, %while.en %add434 = add i32 %a.6, %conv433 br label %if.end437 -if.end437: ; preds = %sw.bb282, %sw.bb278, %sw.bb265, %sw.bb250, %sw.bb230, %sw.bb208, %sw.bb181, %while.end180, %sw.bb431, %while.end377, %while.end, %sw.bb, %sw.bb49, %sw.bb57, %sw.bb65, %sw.bb73, %sw.bb78, %sw.bb84, %sw.bb90, %sw.bb96, %sw.bb99, %sw.bb103, %sw.bb107 - %a.7 = phi i32 [ %a.0.lcssa, %while.end ], [ %add110, %sw.bb107 ], [ %add106, %sw.bb103 ], [ %add102, %sw.bb99 ], [ %add98, %sw.bb96 ], [ %add95, %sw.bb90 ], [ %add89, %sw.bb84 ], [ %add83, %sw.bb78 ], [ %add77, %sw.bb73 ], [ %add72, %sw.bb65 ], [ %add64, %sw.bb57 ], [ %add56, %sw.bb49 ], [ %add48, %sw.bb ], [ %a.1.lcssa, %while.end180 ], [ %add285, %sw.bb282 ], [ %add281, %sw.bb278 ], [ %add272, %sw.bb265 ], [ %add260, %sw.bb250 ], [ %add244, %sw.bb230 ], [ %add225, %sw.bb208 ], [ %add202, %sw.bb181 ], [ %a.3.lcssa, %while.end377 ], [ %add434, %sw.bb431 ] - %b.12 = phi i32 [ %b.0.lcssa, %while.end ], [ %b.0.lcssa, %sw.bb107 ], [ %b.0.lcssa, %sw.bb103 ], [ %b.0.lcssa, %sw.bb99 ], [ %b.0.lcssa, %sw.bb96 ], [ %add93, %sw.bb90 ], [ %add87, %sw.bb84 ], [ %add81, %sw.bb78 ], [ %add75, %sw.bb73 ], [ %add70, %sw.bb65 ], [ %add62, %sw.bb57 ], [ %add54, %sw.bb49 ], [ %add46, %sw.bb ], [ %b.1.lcssa, %while.end180 ], [ %b.1.lcssa, %sw.bb282 ], [ %b.1.lcssa, %sw.bb278 ], [ %b.3, %sw.bb265 ], [ %add253, %sw.bb250 ], [ %add237, %sw.bb230 ], [ %add218, %sw.bb208 ], [ %add195, %sw.bb181 ], [ %b.4.lcssa, %while.end377 ], [ %b.11, %sw.bb431 ] - %c.16 = phi i32 [ %c.0.lcssa, %while.end ], [ %c.0.lcssa, %sw.bb107 ], [ %c.0.lcssa, %sw.bb103 ], [ %c.0.lcssa, %sw.bb99 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb90 ], [ %c.0.lcssa, %sw.bb84 ], [ %c.0.lcssa, %sw.bb78 ], [ %c.0.lcssa, %sw.bb73 ], [ %add68, %sw.bb65 ], [ %add60, %sw.bb57 ], [ %add52, %sw.bb49 ], [ %add44, %sw.bb ], [ %c.1.lcssa, %while.end180 ], [ %c.1.lcssa, %sw.bb282 ], [ %c.1.lcssa, %sw.bb278 ], [ %c.1.lcssa, %sw.bb265 ], [ %c.1.lcssa, %sw.bb250 ], [ %c.3, %sw.bb230 ], [ %add211, %sw.bb208 ], [ %add188, %sw.bb181 ], [ %c.4.lcssa, %while.end377 ], [ %c.15, %sw.bb431 ] +default.unreachable: ; preds = %while.end377, %while.end180, %while.end + unreachable + +if.end437: ; preds = %sw.bb282, %sw.bb278, %sw.bb265, %sw.bb250, %sw.bb230, %sw.bb208, %sw.bb181, %sw.bb431, %sw.bb, %sw.bb49, %sw.bb57, %sw.bb65, %sw.bb73, %sw.bb78, %sw.bb84, %sw.bb90, %sw.bb96, %sw.bb99, %sw.bb103, %sw.bb107 + %a.7 = phi i32 [ %add110, %sw.bb107 ], [ %add106, %sw.bb103 ], [ %add102, %sw.bb99 ], [ %add98, %sw.bb96 ], [ %add95, %sw.bb90 ], [ %add89, %sw.bb84 ], [ %add83, %sw.bb78 ], [ %add77, %sw.bb73 ], [ %add72, %sw.bb65 ], [ %add64, %sw.bb57 ], [ %add56, %sw.bb49 ], [ %add48, %sw.bb ], [ %add285, %sw.bb282 ], [ %add281, %sw.bb278 ], [ %add272, %sw.bb265 ], [ %add260, %sw.bb250 ], [ %add244, %sw.bb230 ], [ %add225, %sw.bb208 ], [ %add202, %sw.bb181 ], [ %add434, %sw.bb431 ] + %b.12 = phi i32 [ %b.0.lcssa, %sw.bb107 ], [ %b.0.lcssa, %sw.bb103 ], [ %b.0.lcssa, %sw.bb99 ], [ %b.0.lcssa, %sw.bb96 ], [ %add93, %sw.bb90 ], [ %add87, %sw.bb84 ], [ %add81, %sw.bb78 ], [ %add75, %sw.bb73 ], [ %add70, %sw.bb65 ], [ %add62, %sw.bb57 ], [ %add54, %sw.bb49 ], [ %add46, %sw.bb ], [ %b.1.lcssa, %sw.bb282 ], [ %b.1.lcssa, %sw.bb278 ], [ %b.3, %sw.bb265 ], [ %add253, %sw.bb250 ], [ %add237, %sw.bb230 ], [ %add218, %sw.bb208 ], [ %add195, %sw.bb181 ], [ %b.11, %sw.bb431 ] + %c.16 = phi i32 [ %c.0.lcssa, %sw.bb107 ], [ %c.0.lcssa, %sw.bb103 ], [ %c.0.lcssa, %sw.bb99 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb90 ], [ %c.0.lcssa, %sw.bb84 ], [ %c.0.lcssa, %sw.bb78 ], [ %c.0.lcssa, %sw.bb73 ], [ %add68, %sw.bb65 ], [ %add60, %sw.bb57 ], [ %add52, %sw.bb49 ], [ %add44, %sw.bb ], [ %c.1.lcssa, %sw.bb282 ], [ %c.1.lcssa, %sw.bb278 ], [ %c.1.lcssa, %sw.bb265 ], [ %c.1.lcssa, %sw.bb250 ], [ %c.3, %sw.bb230 ], [ %add211, %sw.bb208 ], [ %add188, %sw.bb181 ], [ %c.15, %sw.bb431 ] %xor438 = xor i32 %c.16, %b.12 %xor441 = tail call i32 @llvm.fshl.i32(i32 %b.12, i32 %b.12, i32 14) %sub442 = sub i32 %xor438, %xor441 @@ -625,7 +628,7 @@ return: ; preds = %while.end377, %whil ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.fshl.i32(i32, i32, i32) #1 -attributes #0 = { nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #0 = { nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 speculatable willreturn memory(none) } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/memcached/optimized/memcached_debug-jenkins_hash.ll b/bench/memcached/optimized/memcached_debug-jenkins_hash.ll index e44856a618b..8ca3d49be6a 100644 --- a/bench/memcached/optimized/memcached_debug-jenkins_hash.ll +++ b/bench/memcached/optimized/memcached_debug-jenkins_hash.ll @@ -3,7 +3,7 @@ source_filename = "bench/memcached/original/memcached_debug-jenkins_hash.ll" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -; Function Attrs: nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable +; Function Attrs: nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable define dso_local i32 @jenkins_hash(ptr noundef %key, i64 noundef %length) local_unnamed_addr #0 { entry: %conv = trunc i64 %length to i32 @@ -66,7 +66,7 @@ while.end: ; preds = %while.body, %while. %c.0.lcssa = phi i32 [ %add, %while.cond.preheader ], [ %xor40, %while.body ] %length.addr.0.lcssa = phi i64 [ %length, %while.cond.preheader ], [ %sub42, %while.body ] %k.0.lcssa = phi ptr [ %key, %while.cond.preheader ], [ %add.ptr, %while.body ] - switch i64 %length.addr.0.lcssa, label %if.end437 [ + switch i64 %length.addr.0.lcssa, label %default.unreachable [ i64 12, label %sw.bb i64 11, label %sw.bb49 i64 10, label %sw.bb57 @@ -248,7 +248,7 @@ while.end180: ; preds = %while.body120, %whi %c.1.lcssa = phi i32 [ %add, %while.cond117.preheader ], [ %xor176, %while.body120 ] %length.addr.1.lcssa = phi i64 [ %length, %while.cond117.preheader ], [ %sub178, %while.body120 ] %k116.0.lcssa = phi ptr [ %key, %while.cond117.preheader ], [ %add.ptr179, %while.body120 ] - switch i64 %length.addr.1.lcssa, label %if.end437 [ + switch i64 %length.addr.1.lcssa, label %default.unreachable [ i64 12, label %sw.bb181 i64 11, label %sw.bb203 i64 10, label %sw.bb208 @@ -461,7 +461,7 @@ while.end377: ; preds = %while.body293, %whi %c.4.lcssa = phi i32 [ %add, %while.cond290.preheader ], [ %xor373, %while.body293 ] %length.addr.2.lcssa = phi i64 [ %length, %while.cond290.preheader ], [ %sub375, %while.body293 ] %k289.0.lcssa = phi ptr [ %key, %while.cond290.preheader ], [ %add.ptr376, %while.body293 ] - switch i64 %length.addr.2.lcssa, label %if.end437 [ + switch i64 %length.addr.2.lcssa, label %default.unreachable [ i64 12, label %sw.bb378 i64 11, label %sw.bb383 i64 10, label %sw.bb388 @@ -590,10 +590,13 @@ sw.bb431: ; preds = %sw.bb426, %while.en %add434 = add i32 %a.6, %conv433 br label %if.end437 -if.end437: ; preds = %sw.bb282, %sw.bb278, %sw.bb265, %sw.bb250, %sw.bb230, %sw.bb208, %sw.bb181, %while.end180, %sw.bb431, %while.end377, %while.end, %sw.bb, %sw.bb49, %sw.bb57, %sw.bb65, %sw.bb73, %sw.bb78, %sw.bb84, %sw.bb90, %sw.bb96, %sw.bb99, %sw.bb103, %sw.bb107 - %a.7 = phi i32 [ %a.0.lcssa, %while.end ], [ %add110, %sw.bb107 ], [ %add106, %sw.bb103 ], [ %add102, %sw.bb99 ], [ %add98, %sw.bb96 ], [ %add95, %sw.bb90 ], [ %add89, %sw.bb84 ], [ %add83, %sw.bb78 ], [ %add77, %sw.bb73 ], [ %add72, %sw.bb65 ], [ %add64, %sw.bb57 ], [ %add56, %sw.bb49 ], [ %add48, %sw.bb ], [ %a.1.lcssa, %while.end180 ], [ %add285, %sw.bb282 ], [ %add281, %sw.bb278 ], [ %add272, %sw.bb265 ], [ %add260, %sw.bb250 ], [ %add244, %sw.bb230 ], [ %add225, %sw.bb208 ], [ %add202, %sw.bb181 ], [ %a.3.lcssa, %while.end377 ], [ %add434, %sw.bb431 ] - %b.12 = phi i32 [ %b.0.lcssa, %while.end ], [ %b.0.lcssa, %sw.bb107 ], [ %b.0.lcssa, %sw.bb103 ], [ %b.0.lcssa, %sw.bb99 ], [ %b.0.lcssa, %sw.bb96 ], [ %add93, %sw.bb90 ], [ %add87, %sw.bb84 ], [ %add81, %sw.bb78 ], [ %add75, %sw.bb73 ], [ %add70, %sw.bb65 ], [ %add62, %sw.bb57 ], [ %add54, %sw.bb49 ], [ %add46, %sw.bb ], [ %b.1.lcssa, %while.end180 ], [ %b.1.lcssa, %sw.bb282 ], [ %b.1.lcssa, %sw.bb278 ], [ %b.3, %sw.bb265 ], [ %add253, %sw.bb250 ], [ %add237, %sw.bb230 ], [ %add218, %sw.bb208 ], [ %add195, %sw.bb181 ], [ %b.4.lcssa, %while.end377 ], [ %b.11, %sw.bb431 ] - %c.16 = phi i32 [ %c.0.lcssa, %while.end ], [ %c.0.lcssa, %sw.bb107 ], [ %c.0.lcssa, %sw.bb103 ], [ %c.0.lcssa, %sw.bb99 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb90 ], [ %c.0.lcssa, %sw.bb84 ], [ %c.0.lcssa, %sw.bb78 ], [ %c.0.lcssa, %sw.bb73 ], [ %add68, %sw.bb65 ], [ %add60, %sw.bb57 ], [ %add52, %sw.bb49 ], [ %add44, %sw.bb ], [ %c.1.lcssa, %while.end180 ], [ %c.1.lcssa, %sw.bb282 ], [ %c.1.lcssa, %sw.bb278 ], [ %c.1.lcssa, %sw.bb265 ], [ %c.1.lcssa, %sw.bb250 ], [ %c.3, %sw.bb230 ], [ %add211, %sw.bb208 ], [ %add188, %sw.bb181 ], [ %c.4.lcssa, %while.end377 ], [ %c.15, %sw.bb431 ] +default.unreachable: ; preds = %while.end377, %while.end180, %while.end + unreachable + +if.end437: ; preds = %sw.bb282, %sw.bb278, %sw.bb265, %sw.bb250, %sw.bb230, %sw.bb208, %sw.bb181, %sw.bb431, %sw.bb, %sw.bb49, %sw.bb57, %sw.bb65, %sw.bb73, %sw.bb78, %sw.bb84, %sw.bb90, %sw.bb96, %sw.bb99, %sw.bb103, %sw.bb107 + %a.7 = phi i32 [ %add110, %sw.bb107 ], [ %add106, %sw.bb103 ], [ %add102, %sw.bb99 ], [ %add98, %sw.bb96 ], [ %add95, %sw.bb90 ], [ %add89, %sw.bb84 ], [ %add83, %sw.bb78 ], [ %add77, %sw.bb73 ], [ %add72, %sw.bb65 ], [ %add64, %sw.bb57 ], [ %add56, %sw.bb49 ], [ %add48, %sw.bb ], [ %add285, %sw.bb282 ], [ %add281, %sw.bb278 ], [ %add272, %sw.bb265 ], [ %add260, %sw.bb250 ], [ %add244, %sw.bb230 ], [ %add225, %sw.bb208 ], [ %add202, %sw.bb181 ], [ %add434, %sw.bb431 ] + %b.12 = phi i32 [ %b.0.lcssa, %sw.bb107 ], [ %b.0.lcssa, %sw.bb103 ], [ %b.0.lcssa, %sw.bb99 ], [ %b.0.lcssa, %sw.bb96 ], [ %add93, %sw.bb90 ], [ %add87, %sw.bb84 ], [ %add81, %sw.bb78 ], [ %add75, %sw.bb73 ], [ %add70, %sw.bb65 ], [ %add62, %sw.bb57 ], [ %add54, %sw.bb49 ], [ %add46, %sw.bb ], [ %b.1.lcssa, %sw.bb282 ], [ %b.1.lcssa, %sw.bb278 ], [ %b.3, %sw.bb265 ], [ %add253, %sw.bb250 ], [ %add237, %sw.bb230 ], [ %add218, %sw.bb208 ], [ %add195, %sw.bb181 ], [ %b.11, %sw.bb431 ] + %c.16 = phi i32 [ %c.0.lcssa, %sw.bb107 ], [ %c.0.lcssa, %sw.bb103 ], [ %c.0.lcssa, %sw.bb99 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb90 ], [ %c.0.lcssa, %sw.bb84 ], [ %c.0.lcssa, %sw.bb78 ], [ %c.0.lcssa, %sw.bb73 ], [ %add68, %sw.bb65 ], [ %add60, %sw.bb57 ], [ %add52, %sw.bb49 ], [ %add44, %sw.bb ], [ %c.1.lcssa, %sw.bb282 ], [ %c.1.lcssa, %sw.bb278 ], [ %c.1.lcssa, %sw.bb265 ], [ %c.1.lcssa, %sw.bb250 ], [ %c.3, %sw.bb230 ], [ %add211, %sw.bb208 ], [ %add188, %sw.bb181 ], [ %c.15, %sw.bb431 ] %xor438 = xor i32 %c.16, %b.12 %xor441 = tail call i32 @llvm.fshl.i32(i32 %b.12, i32 %b.12, i32 14) %sub442 = sub i32 %xor438, %xor441 @@ -625,7 +628,7 @@ return: ; preds = %while.end377, %whil ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.fshl.i32(i32, i32, i32) #1 -attributes #0 = { nofree nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #0 = { nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 speculatable willreturn memory(none) } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/nlohmann_json/optimized/unit-allocator.cpp.ll b/bench/nlohmann_json/optimized/unit-allocator.cpp.ll index 7a3f2c86dfc..b1b9218765e 100644 --- a/bench/nlohmann_json/optimized/unit-allocator.cpp.ll +++ b/bench/nlohmann_json/optimized/unit-allocator.cpp.ll @@ -3005,19 +3005,19 @@ cleanup.action.i: ; preds = %ehcleanup.thread.i, if.then10.i: ; preds = %invoke.cont15 store i8 2, ptr %call13, align 8 - %call5.i.i1.i3.i.i16 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #19 - to label %call5.i.i1.i3.i.i.noexc unwind label %lpad16 + %call5.i.i1.i2.i.i16 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #19 + to label %call5.i.i1.i2.i.i.noexc unwind label %lpad16 -call5.i.i1.i3.i.i.noexc: ; preds = %if.then10.i - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %call5.i.i1.i3.i.i16, i8 0, i64 24, i1 false) +call5.i.i1.i2.i.i.noexc: ; preds = %if.then10.i + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %call5.i.i1.i2.i.i16, i8 0, i64 24, i1 false) %m_value.i15 = getelementptr inbounds %"struct.nlohmann::json_abi_v3_11_3::basic_json, bool, long, unsigned long, double, (anonymous namespace)::allocator_no_forward>::data", ptr %call13, i64 0, i32 1 - %13 = ptrtoint ptr %call5.i.i1.i3.i.i16 to i64 + %13 = ptrtoint ptr %call5.i.i1.i2.i.i16 to i64 store i64 %13, ptr %m_value.i15, align 8 br label %if.end13.i -if.end13.i: ; preds = %call5.i.i1.i3.i.i.noexc, %entry.if.end13_crit_edge.i - %.val.i = phi ptr [ %.val.pre.i, %entry.if.end13_crit_edge.i ], [ null, %call5.i.i1.i3.i.i.noexc ] - %14 = phi ptr [ %.pre.i, %entry.if.end13_crit_edge.i ], [ %call5.i.i1.i3.i.i16, %call5.i.i1.i3.i.i.noexc ] +if.end13.i: ; preds = %call5.i.i1.i2.i.i.noexc, %entry.if.end13_crit_edge.i + %.val.i = phi ptr [ %.val.pre.i, %entry.if.end13_crit_edge.i ], [ null, %call5.i.i1.i2.i.i.noexc ] + %14 = phi ptr [ %.pre.i, %entry.if.end13_crit_edge.i ], [ %call5.i.i1.i2.i.i16, %call5.i.i1.i2.i.i.noexc ] %15 = getelementptr i8, ptr %14, i64 16 %.val5.i = load ptr, ptr %15, align 8 %_M_finish.i.i.i = getelementptr inbounds %"struct.std::_Vector_base, bool, long, unsigned long, double, (anonymous namespace)::allocator_no_forward>, (anonymous namespace)::allocator_no_forward, bool, long, unsigned long, double, (anonymous namespace)::allocator_no_forward>>>::_Vector_impl_data", ptr %14, i64 0, i32 1 @@ -3642,7 +3642,7 @@ declare noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef define internal fastcc void @_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE10json_valueC2ENS0_6detail7value_tE(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %this, i8 noundef zeroext %t) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 { entry: %ref.tmp.i.i.i.i = alloca %"class.std::allocator", align 1 - switch i8 %t, label %sw.epilog [ + switch i8 %t, label %default.unreachable [ i8 1, label %sw.bb i8 2, label %sw.bb2 i8 3, label %sw.bb4 @@ -3751,9 +3751,12 @@ _ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_str call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp.i.i.i.i) br label %sw.epilog -sw.epilog: ; preds = %entry, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS9_JRA1_KcEEEPT_DpOT0_.exit, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS3_ISF_NSB_ISF_EEEJEEEPT_DpOT0_.exit, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS2_IS9_SF_St4lessIS9_ENSB_ISt4pairIKS9_SF_EEEEJEEEPT_DpOT0_.exit - %.sink = phi ptr [ %call5.i.i2.i7, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS9_JRA1_KcEEEPT_DpOT0_.exit ], [ %call5.i.i2.i2, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS3_ISF_NSB_ISF_EEEJEEEPT_DpOT0_.exit ], [ %call5.i.i2.i, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS2_IS9_SF_St4lessIS9_ENSB_ISt4pairIKS9_SF_EEEEJEEEPT_DpOT0_.exit ], [ null, %entry ] - store ptr %.sink, ptr %this, align 8 +default.unreachable: ; preds = %entry + unreachable + +sw.epilog: ; preds = %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS9_JRA1_KcEEEPT_DpOT0_.exit, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS3_ISF_NSB_ISF_EEEJEEEPT_DpOT0_.exit, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS2_IS9_SF_St4lessIS9_ENSB_ISt4pairIKS9_SF_EEEEJEEEPT_DpOT0_.exit + %call5.i.i2.i7.sink = phi ptr [ %call5.i.i2.i7, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS9_JRA1_KcEEEPT_DpOT0_.exit ], [ %call5.i.i2.i2, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS3_ISF_NSB_ISF_EEEJEEEPT_DpOT0_.exit ], [ %call5.i.i2.i, %_ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS0_14adl_serializerES3_IhSaIhEEvE6createIS2_IS9_SF_St4lessIS9_ENSB_ISt4pairIKS9_SF_EEEEJEEEPT_DpOT0_.exit ] + store ptr %call5.i.i2.i7.sink, ptr %this, align 8 ret void } diff --git a/bench/node/optimized/libnode.crypto_rsa.ll b/bench/node/optimized/libnode.crypto_rsa.ll index 750984eed19..4d6cbfe849c 100644 --- a/bench/node/optimized/libnode.crypto_rsa.ll +++ b/bench/node/optimized/libnode.crypto_rsa.ll @@ -12118,26 +12118,24 @@ if.end: ; preds = %_ZNSt10shared_ptrIN br i1 %call5, label %if.then6, label %if.end9 if.then6: ; preds = %if.end - switch i32 %call322, label %if.end9 [ - i32 2, label %sw.bb8 - i32 1, label %sw.bb7 - ] + %switch = icmp eq i32 %call322, 2 + %_M_finish.i.i8 = getelementptr inbounds %"class.node::crypto::CryptoJob.524", ptr %this, i64 0, i32 3, i32 1, i32 0, i32 0, i32 0, i32 1 + %_M_end_of_storage.i.i9 = getelementptr inbounds %"class.node::crypto::CryptoJob.524", ptr %this, i64 0, i32 3, i32 1, i32 0, i32 0, i32 0, i32 2 + br i1 %switch, label %sw.bb8, label %sw.bb7 sw.bb7: ; preds = %if.then6 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) call void @_ZN4node11SPrintFImplB5cxx11EPKc(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i, ptr noundef nonnull @.str.64) - %_M_finish.i.i = getelementptr inbounds %"class.node::crypto::CryptoJob.524", ptr %this, i64 0, i32 3, i32 1, i32 0, i32 0, i32 0, i32 1 - %18 = load ptr, ptr %_M_finish.i.i, align 8 - %_M_end_of_storage.i.i = getelementptr inbounds %"class.node::crypto::CryptoJob.524", ptr %this, i64 0, i32 3, i32 1, i32 0, i32 0, i32 0, i32 2 - %19 = load ptr, ptr %_M_end_of_storage.i.i, align 8 + %18 = load ptr, ptr %_M_finish.i.i8, align 8 + %19 = load ptr, ptr %_M_end_of_storage.i.i9, align 8 %cmp.not.i.i = icmp eq ptr %18, %19 br i1 %cmp.not.i.i, label %if.else.i.i, label %if.then.i.i if.then.i.i: ; preds = %sw.bb7 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #20 - %20 = load ptr, ptr %_M_finish.i.i, align 8 + %20 = load ptr, ptr %_M_finish.i.i8, align 8 %incdec.ptr.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %20, i64 1 - store ptr %incdec.ptr.i.i, ptr %_M_finish.i.i, align 8 + store ptr %incdec.ptr.i.i, ptr %_M_finish.i.i8, align 8 br label %_ZN4node6crypto16CryptoErrorStore6InsertIJEEEvNS0_15NodeCryptoErrorEDpOT_.exit if.else.i.i: ; preds = %sw.bb7 @@ -12153,9 +12151,7 @@ _ZN4node6crypto16CryptoErrorStore6InsertIJEEEvNS0_15NodeCryptoErrorEDpOT_.exit: sw.bb8: ; preds = %if.then6 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i7) call void @_ZN4node11SPrintFImplB5cxx11EPKc(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i7, ptr noundef nonnull @.str.154) - %_M_finish.i.i8 = getelementptr inbounds %"class.node::crypto::CryptoJob.524", ptr %this, i64 0, i32 3, i32 1, i32 0, i32 0, i32 0, i32 1 %21 = load ptr, ptr %_M_finish.i.i8, align 8 - %_M_end_of_storage.i.i9 = getelementptr inbounds %"class.node::crypto::CryptoJob.524", ptr %this, i64 0, i32 3, i32 1, i32 0, i32 0, i32 0, i32 2 %22 = load ptr, ptr %_M_end_of_storage.i.i9, align 8 %cmp.not.i.i10 = icmp eq ptr %21, %22 br i1 %cmp.not.i.i10, label %if.else.i.i13, label %if.then.i.i11 @@ -12177,7 +12173,7 @@ _ZN4node6crypto16CryptoErrorStore6InsertIJEEEvNS0_15NodeCryptoErrorEDpOT_.exit15 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i7) br label %if.end9 -if.end9: ; preds = %if.then6, %_ZN4node6crypto16CryptoErrorStore6InsertIJEEEvNS0_15NodeCryptoErrorEDpOT_.exit, %_ZN4node6crypto16CryptoErrorStore6InsertIJEEEvNS0_15NodeCryptoErrorEDpOT_.exit15, %_ZNSt10shared_ptrIN4node6crypto13KeyObjectDataEED2Ev.exit, %if.end +if.end9: ; preds = %_ZN4node6crypto16CryptoErrorStore6InsertIJEEEvNS0_15NodeCryptoErrorEDpOT_.exit, %_ZN4node6crypto16CryptoErrorStore6InsertIJEEEvNS0_15NodeCryptoErrorEDpOT_.exit15, %_ZNSt10shared_ptrIN4node6crypto13KeyObjectDataEED2Ev.exit, %if.end ret void } diff --git a/bench/node/optimized/libnode.node_errors.ll b/bench/node/optimized/libnode.node_errors.ll index 1c2d8c1d813..01c78e3d182 100644 --- a/bench/node/optimized/libnode.node_errors.ll +++ b/bench/node/optimized/libnode.node_errors.ll @@ -604,9 +604,6 @@ $_ZZN4node11SPrintFImplIRPKcJS3_EEENSt7__cxx1112basic_stringIcSt11char_traitsIcE @_ZZN4nodeL20ReportFatalExceptionEPNS_11EnvironmentEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEENS_21EnhanceFatalExceptionEE4args_0 = internal constant %"struct.node::AssertionInfo" { ptr @.str.173, ptr @.str.174, ptr @.str.172 }, align 8 @.str.173 = private unnamed_addr constant [29 x i8] c"../../src/node_errors.cc:421\00", align 1 @.str.174 = private unnamed_addr constant [19 x i8] c"!message.IsEmpty()\00", align 1 -@_ZZN4nodeL20ReportFatalExceptionEPNS_11EnvironmentEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEENS_21EnhanceFatalExceptionEE4args_1 = internal constant %"struct.node::AssertionInfo" { ptr @.str.175, ptr @.str.176, ptr @.str.172 }, align 8 -@.str.175 = private unnamed_addr constant [29 x i8] c"../../src/node_errors.cc:471\00", align 1 -@.str.176 = private unnamed_addr constant [27 x i8] c"\22Unreachable code reached\22\00", align 1 @.str.177 = private unnamed_addr constant [10 x i8] c"Exception\00", align 1 @.str.178 = private unnamed_addr constant [7 x i8] c"%s\0A%s\0A\00", align 1 @.str.179 = private unnamed_addr constant [29 x i8] c"\00", align 1 @@ -2504,15 +2501,13 @@ if.then40: ; preds = %_ZN4node20IsExcepti br label %if.end130 if.else: ; preds = %_ZN4node20IsExceptionDecoratedEPNS_11EnvironmentEN2v85LocalINS2_5ValueEEE.exit - switch i32 %4, label %do.body100 [ - i32 0, label %sw.bb - i32 1, label %sw.bb69 - ] - -sw.bb: ; preds = %if.else + %switch = icmp eq i32 %4, 0 %principal_realm_.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 89 %13 = load ptr, ptr %principal_realm_.i, align 8 %vtable.i = load ptr, ptr %13, align 8 + br i1 %switch, label %sw.bb, label %sw.bb69 + +sw.bb: ; preds = %if.else %vfn.i = getelementptr inbounds ptr, ptr %vtable.i, i64 37 %14 = load ptr, ptr %vfn.i, align 8 %call2.i = call ptr %14(ptr noundef nonnull align 8 dereferenceable(872) %13) #20 @@ -2569,39 +2564,32 @@ land.rhs.i42: ; preds = %"_ZZN4nodeL20Report br label %sw.epilog sw.bb69: ; preds = %if.else - %principal_realm_.i.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 89 - %26 = load ptr, ptr %principal_realm_.i.i, align 8 - %vtable.i53 = load ptr, ptr %26, align 8 - %vfn.i54 = getelementptr inbounds ptr, ptr %vtable.i53, i64 8 - %27 = load ptr, ptr %vfn.i54, align 8 - %call2.i55 = call ptr %27(ptr noundef nonnull align 8 dereferenceable(872) %26) #20 + %vfn.i54 = getelementptr inbounds ptr, ptr %vtable.i, i64 8 + %26 = load ptr, ptr %vfn.i54, align 8 + %call2.i55 = call ptr %26(ptr noundef nonnull align 8 dereferenceable(872) %13) #20 %isolate_data_.i.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 4 - %28 = load ptr, ptr %isolate_data_.i.i, align 8 - %stack_string_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %28, i64 0, i32 268 - %29 = load ptr, ptr %stack_string_.i.i, align 8 - %call93 = call ptr @_ZN2v86Object3GetENS_5LocalINS_7ContextEEENS1_INS_5ValueEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i55, ptr %29) #20 + %27 = load ptr, ptr %isolate_data_.i.i, align 8 + %stack_string_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %27, i64 0, i32 268 + %28 = load ptr, ptr %stack_string_.i.i, align 8 + %call93 = call ptr @_ZN2v86Object3GetENS_5LocalINS_7ContextEEENS1_INS_5ValueEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i55, ptr %28) #20 %inspector_agent_.i.i56 = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 66 - %30 = load ptr, ptr %inspector_agent_.i.i56, align 8 - call void @_ZN4node9inspector5Agent23ReportUncaughtExceptionEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEE(ptr noundef nonnull align 8 dereferenceable(186) %30, ptr nonnull %error.coerce, ptr nonnull %message.coerce) #20 + %29 = load ptr, ptr %inspector_agent_.i.i56, align 8 + call void @_ZN4node9inspector5Agent23ReportUncaughtExceptionEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEE(ptr noundef nonnull align 8 dereferenceable(186) %29, ptr nonnull %error.coerce, ptr nonnull %message.coerce) #20 br label %sw.epilog -do.body100: ; preds = %if.else - call void @_ZN4node6AssertERKNS_13AssertionInfoE(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN4nodeL20ReportFatalExceptionEPNS_11EnvironmentEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEENS_21EnhanceFatalExceptionEE4args_1) - unreachable - sw.epilog: ; preds = %sw.bb69, %"_ZZN4nodeL20ReportFatalExceptionEPNS_11EnvironmentEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEENS_21EnhanceFatalExceptionEENK3$_1clENS3_INS2_8FunctionEEE.exit52" - %stack_trace.sroa.0.2 = phi ptr [ %call93, %sw.bb69 ], [ %stack_trace.sroa.0.1, %"_ZZN4nodeL20ReportFatalExceptionEPNS_11EnvironmentEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEENS_21EnhanceFatalExceptionEENK3$_1clENS3_INS2_8FunctionEEE.exit52" ] + %stack_trace.sroa.0.2 = phi ptr [ %stack_trace.sroa.0.1, %"_ZZN4nodeL20ReportFatalExceptionEPNS_11EnvironmentEN2v85LocalINS2_5ValueEEENS3_INS2_7MessageEEENS_21EnhanceFatalExceptionEENK3$_1clENS3_INS2_8FunctionEEE.exit52" ], [ %call93, %sw.bb69 ] %principal_realm_.i.i59 = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 89 - %31 = load ptr, ptr %principal_realm_.i.i59, align 8 - %vtable.i60 = load ptr, ptr %31, align 8 + %30 = load ptr, ptr %principal_realm_.i.i59, align 8 + %vtable.i60 = load ptr, ptr %30, align 8 %vfn.i61 = getelementptr inbounds ptr, ptr %vtable.i60, i64 8 - %32 = load ptr, ptr %vfn.i61, align 8 - %call2.i62 = call ptr %32(ptr noundef nonnull align 8 dereferenceable(872) %31) #20 + %31 = load ptr, ptr %vfn.i61, align 8 + %call2.i62 = call ptr %31(ptr noundef nonnull align 8 dereferenceable(872) %30) #20 %isolate_data_.i.i63 = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 4 - %33 = load ptr, ptr %isolate_data_.i.i63, align 8 - %arrow_message_private_symbol_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %33, i64 0, i32 3 - %34 = load ptr, ptr %arrow_message_private_symbol_.i.i, align 8 - %call121 = call ptr @_ZN2v86Object10GetPrivateENS_5LocalINS_7ContextEEENS1_INS_7PrivateEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i62, ptr %34) #20 + %32 = load ptr, ptr %isolate_data_.i.i63, align 8 + %arrow_message_private_symbol_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %32, i64 0, i32 3 + %33 = load ptr, ptr %arrow_message_private_symbol_.i.i, align 8 + %call121 = call ptr @_ZN2v86Object10GetPrivateENS_5LocalINS_7ContextEEENS1_INS_7PrivateEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i62, ptr %33) #20 %cmp.i.i.i477 = icmp eq ptr %call121, null br i1 %cmp.i.i.i477, label %if.then.i479, label %if.end130 @@ -2612,38 +2600,38 @@ if.then.i479: ; preds = %sw.epilog if.end130: ; preds = %sw.epilog, %if.then.i479, %if.then40 %stack_trace.sroa.0.3 = phi ptr [ %stack_trace.sroa.0.2, %if.then.i479 ], [ %stack_trace.sroa.0.2, %sw.epilog ], [ %12, %if.then40 ] %arrow.sroa.0.0 = phi ptr [ null, %if.then.i479 ], [ %call121, %sw.epilog ], [ null, %if.then40 ] - %35 = load ptr, ptr %isolate_.i, align 8 - call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %trace, ptr noundef %35, ptr %stack_trace.sroa.0.3) #20 + %34 = load ptr, ptr %isolate_.i, align 8 + call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %trace, ptr noundef %34, ptr %stack_trace.sroa.0.3) #20 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp136) #20 %call.i = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %report_message) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %report_message, ptr noundef %call.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp136) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %report_message, ptr noundef nonnull @.str.177, ptr noundef nonnull getelementptr inbounds ([10 x i8], ptr @.str.177, i64 0, i64 9)) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp136) #20 - %36 = load i64, ptr %trace, align 8 - %cmp.not = icmp eq i64 %36, 0 + %35 = load i64, ptr %trace, align 8 + %cmp.not = icmp eq i64 %35, 0 br i1 %cmp.not, label %if.else153, label %land.lhs.true land.lhs.true: ; preds = %if.end130 - %37 = load i64, ptr %stack_trace.sroa.0.3, align 8 - %and.i.i = and i64 %37, 3 + %36 = load i64, ptr %stack_trace.sroa.0.3, align 8 + %and.i.i = and i64 %36, 3 %cmp.i.i595 = icmp eq i64 %and.i.i, 1 br i1 %cmp.i.i595, label %if.end.i597, label %if.then140 if.end.i597: ; preds = %land.lhs.true - %sub.i18.i = add nsw i64 %37, -1 - %38 = inttoptr i64 %sub.i18.i to ptr - %39 = load i64, ptr %38, align 8 - %sub.i.i = add i64 %39, 11 - %40 = inttoptr i64 %sub.i.i to ptr - %41 = load i16, ptr %40, align 2 - %cmp.i598.not = icmp eq i16 %41, 131 + %sub.i18.i = add nsw i64 %36, -1 + %37 = inttoptr i64 %sub.i18.i to ptr + %38 = load i64, ptr %37, align 8 + %sub.i.i = add i64 %38, 11 + %39 = inttoptr i64 %sub.i.i to ptr + %40 = load i16, ptr %39, align 2 + %cmp.i598.not = icmp eq i16 %40, 131 br i1 %cmp.i598.not, label %if.end5.i, label %if.then140 if.end5.i: ; preds = %if.end.i597 - %sub.i.i686 = add i64 %37, 39 - %42 = inttoptr i64 %sub.i.i686 to ptr - %43 = load i64, ptr %42, align 8 - %shr.i713.mask = and i64 %43, -4294967296 + %sub.i.i686 = add i64 %36, 39 + %41 = inttoptr i64 %sub.i.i686 to ptr + %42 = load i64, ptr %41, align 8 + %shr.i713.mask = and i64 %42, -4294967296 %cmp7.i = icmp eq i64 %shr.i713.mask, 21474836480 br i1 %cmp7.i, label %if.else153, label %if.then140 @@ -2652,42 +2640,42 @@ if.then140: ; preds = %land.lhs.true, %if. br i1 %cmp.i349, label %if.then145, label %lor.lhs.false lor.lhs.false: ; preds = %if.then140 - %44 = load i64, ptr %arrow.sroa.0.0, align 8 - %and.i555 = and i64 %44, 3 + %43 = load i64, ptr %arrow.sroa.0.0, align 8 + %and.i555 = and i64 %43, 3 %cmp.i556 = icmp eq i64 %and.i555, 1 br i1 %cmp.i556, label %if.end.i, label %if.then145 if.end.i: ; preds = %lor.lhs.false - %sub.i590 = add nsw i64 %44, -1 - %45 = inttoptr i64 %sub.i590 to ptr - %46 = load i64, ptr %45, align 8 - %sub.i = add i64 %46, 11 - %47 = inttoptr i64 %sub.i to ptr - %48 = load i16, ptr %47, align 2 - %cmp.i539 = icmp ugt i16 %48, 127 + %sub.i590 = add nsw i64 %43, -1 + %44 = inttoptr i64 %sub.i590 to ptr + %45 = load i64, ptr %44, align 8 + %sub.i = add i64 %45, 11 + %46 = inttoptr i64 %sub.i to ptr + %47 = load i16, ptr %46, align 2 + %cmp.i539 = icmp ugt i16 %47, 127 %brmerge = or i1 %retval.0.i, %cmp.i539 br i1 %brmerge, label %if.then145, label %if.else146 if.then145: ; preds = %lor.lhs.false, %if.end.i, %if.then140 - %49 = load ptr, ptr @stderr, align 8 - call void @_ZN4node7FPrintFIJRNS_9Utf8ValueEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %49, ptr noundef nonnull @.str.131, ptr noundef nonnull align 8 dereferenceable(1048) %trace) #21 + %48 = load ptr, ptr @stderr, align 8 + call void @_ZN4node7FPrintFIJRNS_9Utf8ValueEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %48, ptr noundef nonnull @.str.131, ptr noundef nonnull align 8 dereferenceable(1048) %trace) #21 br label %if.end304 if.else146: ; preds = %if.end.i - %50 = load ptr, ptr %isolate_.i, align 8 - call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string, ptr noundef %50, ptr nonnull %arrow.sroa.0.0) #20 - %51 = load ptr, ptr @stderr, align 8 - call void @_ZN4node7FPrintFIJRNS_9Utf8ValueES2_EEEvP8_IO_FILEPKcDpOT_(ptr noundef %51, ptr noundef nonnull @.str.178, ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string, ptr noundef nonnull align 8 dereferenceable(1048) %trace) #21 + %49 = load ptr, ptr %isolate_.i, align 8 + call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string, ptr noundef %49, ptr nonnull %arrow.sroa.0.0) #20 + %50 = load ptr, ptr @stderr, align 8 + call void @_ZN4node7FPrintFIJRNS_9Utf8ValueES2_EEEvP8_IO_FILEPKcDpOT_(ptr noundef %50, ptr noundef nonnull @.str.178, ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string, ptr noundef nonnull align 8 dereferenceable(1048) %trace) #21 %buf_.i.i.i.i = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %arrow_string, i64 0, i32 2 - %52 = load ptr, ptr %buf_.i.i.i.i, align 8 - %cmp.i.i.i.i = icmp ne ptr %52, null + %51 = load ptr, ptr %buf_.i.i.i.i, align 8 + %cmp.i.i.i.i = icmp ne ptr %51, null %buf_st_.i.i.i = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %arrow_string, i64 0, i32 3 - %cmp.i.i.i = icmp ne ptr %52, %buf_st_.i.i.i - %53 = select i1 %cmp.i.i.i.i, i1 %cmp.i.i.i, i1 false - br i1 %53, label %if.then.i.i, label %if.end304 + %cmp.i.i.i = icmp ne ptr %51, %buf_st_.i.i.i + %52 = select i1 %cmp.i.i.i.i, i1 %cmp.i.i.i, i1 false + br i1 %52, label %if.then.i.i, label %if.end304 if.then.i.i: ; preds = %if.else146 - call void @free(ptr noundef nonnull %52) #20 + call void @free(ptr noundef nonnull %51) #20 br label %if.end304 if.else153: ; preds = %if.end5.i, %if.end130 @@ -2696,49 +2684,49 @@ if.else153: ; preds = %if.end5.i, %if.end1 if.end217: ; preds = %if.else153 %principal_realm_.i.i67 = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 89 - %54 = load ptr, ptr %principal_realm_.i.i67, align 8 - %vtable.i68 = load ptr, ptr %54, align 8 + %53 = load ptr, ptr %principal_realm_.i.i67, align 8 + %vtable.i68 = load ptr, ptr %53, align 8 %vfn.i69 = getelementptr inbounds ptr, ptr %vtable.i68, i64 8 - %55 = load ptr, ptr %vfn.i69, align 8 - %call2.i70 = call ptr %55(ptr noundef nonnull align 8 dereferenceable(872) %54) #20 + %54 = load ptr, ptr %vfn.i69, align 8 + %call2.i70 = call ptr %54(ptr noundef nonnull align 8 dereferenceable(872) %53) #20 %isolate_data_.i.i71 = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 4 - %56 = load ptr, ptr %isolate_data_.i.i71, align 8 - %message_string_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %56, i64 0, i32 176 - %57 = load ptr, ptr %message_string_.i.i, align 8 - %call185 = call ptr @_ZN2v86Object3GetENS_5LocalINS_7ContextEEENS1_INS_5ValueEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i70, ptr %57) #20 - %58 = load ptr, ptr %principal_realm_.i.i67, align 8 - %vtable.i73 = load ptr, ptr %58, align 8 + %55 = load ptr, ptr %isolate_data_.i.i71, align 8 + %message_string_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %55, i64 0, i32 176 + %56 = load ptr, ptr %message_string_.i.i, align 8 + %call185 = call ptr @_ZN2v86Object3GetENS_5LocalINS_7ContextEEENS1_INS_5ValueEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i70, ptr %56) #20 + %57 = load ptr, ptr %principal_realm_.i.i67, align 8 + %vtable.i73 = load ptr, ptr %57, align 8 %vfn.i74 = getelementptr inbounds ptr, ptr %vtable.i73, i64 8 - %59 = load ptr, ptr %vfn.i74, align 8 - %call2.i75 = call ptr %59(ptr noundef nonnull align 8 dereferenceable(872) %58) #20 - %60 = load ptr, ptr %isolate_data_.i.i71, align 8 - %name_string_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %60, i64 0, i32 183 - %61 = load ptr, ptr %name_string_.i.i, align 8 - %call212 = call ptr @_ZN2v86Object3GetENS_5LocalINS_7ContextEEENS1_INS_5ValueEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i75, ptr %61) #20 + %58 = load ptr, ptr %vfn.i74, align 8 + %call2.i75 = call ptr %58(ptr noundef nonnull align 8 dereferenceable(872) %57) #20 + %59 = load ptr, ptr %isolate_data_.i.i71, align 8 + %name_string_.i.i = getelementptr inbounds %"class.node::IsolateData", ptr %59, i64 0, i32 183 + %60 = load ptr, ptr %name_string_.i.i, align 8 + %call212 = call ptr @_ZN2v86Object3GetENS_5LocalINS_7ContextEEENS1_INS_5ValueEEE(ptr noundef nonnull align 1 dereferenceable(1) %error.coerce, ptr %call2.i75, ptr %60) #20 %cmp.i.i430 = icmp eq ptr %call185, null br i1 %cmp.i.i430, label %if.then236, label %_ZN2v810MaybeLocalINS_5ValueEE14ToLocalCheckedEv.exit469 _ZN2v810MaybeLocalINS_5ValueEE14ToLocalCheckedEv.exit469: ; preds = %if.end217 - %62 = load i64, ptr %call185, align 8 - %and.i.i615 = and i64 %62, 3 + %61 = load i64, ptr %call185, align 8 + %and.i.i615 = and i64 %61, 3 %cmp.i.i616 = icmp eq i64 %and.i.i615, 1 br i1 %cmp.i.i616, label %if.end.i618, label %lor.lhs.false227.critedge if.end.i618: ; preds = %_ZN2v810MaybeLocalINS_5ValueEE14ToLocalCheckedEv.exit469 - %sub.i18.i621 = add nsw i64 %62, -1 - %63 = inttoptr i64 %sub.i18.i621 to ptr - %64 = load i64, ptr %63, align 8 - %sub.i.i624 = add i64 %64, 11 - %65 = inttoptr i64 %sub.i.i624 to ptr - %66 = load i16, ptr %65, align 2 - %cmp.i626.not = icmp eq i16 %66, 131 + %sub.i18.i621 = add nsw i64 %61, -1 + %62 = inttoptr i64 %sub.i18.i621 to ptr + %63 = load i64, ptr %62, align 8 + %sub.i.i624 = add i64 %63, 11 + %64 = inttoptr i64 %sub.i.i624 to ptr + %65 = load i16, ptr %64, align 2 + %cmp.i626.not = icmp eq i16 %65, 131 br i1 %cmp.i626.not, label %if.end5.i627, label %lor.lhs.false227.critedge if.end5.i627: ; preds = %if.end.i618 - %sub.i.i694 = add i64 %62, 39 - %67 = inttoptr i64 %sub.i.i694 to ptr - %68 = load i64, ptr %67, align 8 - %shr.i708.mask = and i64 %68, -4294967296 + %sub.i.i694 = add i64 %61, 39 + %66 = inttoptr i64 %sub.i.i694 to ptr + %67 = load i64, ptr %66, align 8 + %shr.i708.mask = and i64 %67, -4294967296 %cmp7.i629 = icmp eq i64 %shr.i708.mask, 21474836480 %cmp.i.i425 = icmp eq ptr %call212, null %or.cond = select i1 %cmp7.i629, i1 true, i1 %cmp.i.i425 @@ -2749,43 +2737,43 @@ lor.lhs.false227.critedge: ; preds = %if.end.i618, %_ZN2v br i1 %cmp.i.i425.old, label %if.then236, label %_ZN2v810MaybeLocalINS_5ValueEE14ToLocalCheckedEv.exit458 _ZN2v810MaybeLocalINS_5ValueEE14ToLocalCheckedEv.exit458: ; preds = %lor.lhs.false227.critedge, %if.end5.i627 - %69 = load i64, ptr %call212, align 8 - %and.i.i648 = and i64 %69, 3 + %68 = load i64, ptr %call212, align 8 + %and.i.i648 = and i64 %68, 3 %cmp.i.i649 = icmp eq i64 %and.i.i648, 1 br i1 %cmp.i.i649, label %if.end.i651, label %if.else247 if.end.i651: ; preds = %_ZN2v810MaybeLocalINS_5ValueEE14ToLocalCheckedEv.exit458 - %sub.i18.i654 = add nsw i64 %69, -1 - %70 = inttoptr i64 %sub.i18.i654 to ptr - %71 = load i64, ptr %70, align 8 - %sub.i.i657 = add i64 %71, 11 - %72 = inttoptr i64 %sub.i.i657 to ptr - %73 = load i16, ptr %72, align 2 - %cmp.i659.not = icmp eq i16 %73, 131 + %sub.i18.i654 = add nsw i64 %68, -1 + %69 = inttoptr i64 %sub.i18.i654 to ptr + %70 = load i64, ptr %69, align 8 + %sub.i.i657 = add i64 %70, 11 + %71 = inttoptr i64 %sub.i.i657 to ptr + %72 = load i16, ptr %71, align 2 + %cmp.i659.not = icmp eq i16 %72, 131 br i1 %cmp.i659.not, label %if.end5.i660, label %if.else247 if.end5.i660: ; preds = %if.end.i651 - %sub.i.i702 = add i64 %69, 39 - %74 = inttoptr i64 %sub.i.i702 to ptr - %75 = load i64, ptr %74, align 8 - %shr.i.mask = and i64 %75, -4294967296 + %sub.i.i702 = add i64 %68, 39 + %73 = inttoptr i64 %sub.i.i702 to ptr + %74 = load i64, ptr %73, align 8 + %shr.i.mask = and i64 %74, -4294967296 %cmp7.i662 = icmp eq i64 %shr.i.mask, 21474836480 br i1 %cmp7.i662, label %if.then236, label %if.else247 if.then236: ; preds = %if.else153, %lor.lhs.false227.critedge, %if.end5.i627, %if.end217, %if.end5.i660 - %76 = load ptr, ptr %isolate_.i, align 8 - call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %message237, ptr noundef %76, ptr nonnull %error.coerce) #20 - %77 = load ptr, ptr @stderr, align 8 + %75 = load ptr, ptr %isolate_.i, align 8 + call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %message237, ptr noundef %75, ptr nonnull %error.coerce) #20 + %76 = load ptr, ptr @stderr, align 8 %buf_.i = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %message237, i64 0, i32 2 - %78 = load ptr, ptr %buf_.i, align 8 - %tobool245.not = icmp eq ptr %78, null + %77 = load ptr, ptr %buf_.i, align 8 + %tobool245.not = icmp eq ptr %77, null br i1 %tobool245.not, label %cond.false, label %cond.true cond.true: ; preds = %if.then236 - %79 = load i64, ptr %message237, align 8 - store i64 %79, ptr %ref.tmp243, align 8 - %80 = getelementptr inbounds { i64, ptr }, ptr %ref.tmp243, i64 0, i32 1 - store ptr %78, ptr %80, align 8 + %78 = load i64, ptr %message237, align 8 + store i64 %78, ptr %ref.tmp243, align 8 + %79 = getelementptr inbounds { i64, ptr }, ptr %ref.tmp243, i64 0, i32 1 + store ptr %77, ptr %79, align 8 br label %cond.end cond.false: ; preds = %if.then236 @@ -2795,25 +2783,25 @@ cond.false: ; preds = %if.then236 br label %cond.end cond.end: ; preds = %cond.false, %cond.true - call void @_ZN4node7FPrintFIJSt17basic_string_viewIcSt11char_traitsIcEEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %77, ptr noundef nonnull @.str.131, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp243) #21 - %81 = load ptr, ptr %buf_.i, align 8 - %cmp.i.i.i.i80 = icmp ne ptr %81, null + call void @_ZN4node7FPrintFIJSt17basic_string_viewIcSt11char_traitsIcEEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %76, ptr noundef nonnull @.str.131, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp243) #21 + %80 = load ptr, ptr %buf_.i, align 8 + %cmp.i.i.i.i80 = icmp ne ptr %80, null %buf_st_.i.i.i81 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %message237, i64 0, i32 3 - %cmp.i.i.i82 = icmp ne ptr %81, %buf_st_.i.i.i81 - %82 = select i1 %cmp.i.i.i.i80, i1 %cmp.i.i.i82, i1 false - br i1 %82, label %if.end283.sink.split, label %if.end283 + %cmp.i.i.i82 = icmp ne ptr %80, %buf_st_.i.i.i81 + %81 = select i1 %cmp.i.i.i.i80, i1 %cmp.i.i.i82, i1 false + br i1 %81, label %if.end283.sink.split, label %if.end283 if.else247: ; preds = %_ZN2v810MaybeLocalINS_5ValueEE14ToLocalCheckedEv.exit458, %if.end.i651, %if.end5.i660 + %82 = load ptr, ptr %isolate_.i, align 8 + call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %name_string, ptr noundef %82, ptr nonnull %call212) #20 %83 = load ptr, ptr %isolate_.i, align 8 - call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %name_string, ptr noundef %83, ptr nonnull %call212) #20 - %84 = load ptr, ptr %isolate_.i, align 8 - call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %message_string, ptr noundef %84, ptr nonnull %call185) #20 + call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %message_string, ptr noundef %83, ptr nonnull %call185) #20 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i) %buf_.i.i87 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %message_string, i64 0, i32 2 - %85 = load ptr, ptr %buf_.i.i87, align 8, !noalias !27 - %86 = load i64, ptr %message_string, align 8, !noalias !27 + %84 = load ptr, ptr %buf_.i.i87, align 8, !noalias !27 + %85 = load i64, ptr %message_string, align 8, !noalias !27 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #20, !noalias !27 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp266, ptr noundef %85, i64 noundef %86, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp266, ptr noundef %84, i64 noundef %85, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #20 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i) #20 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp.i) %call267 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %report_message, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp266) #20 @@ -2822,170 +2810,170 @@ if.else247: ; preds = %_ZN2v810MaybeLocalI br i1 %cmp.i346, label %if.then274, label %lor.lhs.false269 lor.lhs.false269: ; preds = %if.else247 - %87 = load i64, ptr %arrow.sroa.0.0, align 8 - %and.i = and i64 %87, 3 + %86 = load i64, ptr %arrow.sroa.0.0, align 8 + %and.i = and i64 %86, 3 %cmp.i553 = icmp eq i64 %and.i, 1 br i1 %cmp.i553, label %if.end.i547, label %if.then274 if.end.i547: ; preds = %lor.lhs.false269 - %sub.i584 = add nsw i64 %87, -1 - %88 = inttoptr i64 %sub.i584 to ptr - %89 = load i64, ptr %88, align 8 - %sub.i578 = add i64 %89, 11 - %90 = inttoptr i64 %sub.i578 to ptr - %91 = load i16, ptr %90, align 2 - %cmp.i549 = icmp ugt i16 %91, 127 + %sub.i584 = add nsw i64 %86, -1 + %87 = inttoptr i64 %sub.i584 to ptr + %88 = load i64, ptr %87, align 8 + %sub.i578 = add i64 %88, 11 + %89 = inttoptr i64 %sub.i578 to ptr + %90 = load i16, ptr %89, align 2 + %cmp.i549 = icmp ugt i16 %90, 127 %brmerge19 = or i1 %retval.0.i, %cmp.i549 br i1 %brmerge19, label %if.then274, label %if.else275 if.then274: ; preds = %lor.lhs.false269, %if.end.i547, %if.else247 - %92 = load ptr, ptr @stderr, align 8 - call void @_ZN4node7FPrintFIJRNS_9Utf8ValueES2_EEEvP8_IO_FILEPKcDpOT_(ptr noundef %92, ptr noundef nonnull @.str.180, ptr noundef nonnull align 8 dereferenceable(1048) %name_string, ptr noundef nonnull align 8 dereferenceable(1048) %message_string) #21 + %91 = load ptr, ptr @stderr, align 8 + call void @_ZN4node7FPrintFIJRNS_9Utf8ValueES2_EEEvP8_IO_FILEPKcDpOT_(ptr noundef %91, ptr noundef nonnull @.str.180, ptr noundef nonnull align 8 dereferenceable(1048) %name_string, ptr noundef nonnull align 8 dereferenceable(1048) %message_string) #21 br label %if.end282 if.else275: ; preds = %if.end.i547 - %93 = load ptr, ptr %isolate_.i, align 8 - call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string276, ptr noundef %93, ptr nonnull %arrow.sroa.0.0) #20 - %94 = load ptr, ptr @stderr, align 8 - call void @_ZN4node7FPrintFIJRNS_9Utf8ValueES2_S2_EEEvP8_IO_FILEPKcDpOT_(ptr noundef %94, ptr noundef nonnull @.str.181, ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string276, ptr noundef nonnull align 8 dereferenceable(1048) %name_string, ptr noundef nonnull align 8 dereferenceable(1048) %message_string) #21 + %92 = load ptr, ptr %isolate_.i, align 8 + call void @_ZN4node9Utf8ValueC1EPN2v87IsolateENS1_5LocalINS1_5ValueEEE(ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string276, ptr noundef %92, ptr nonnull %arrow.sroa.0.0) #20 + %93 = load ptr, ptr @stderr, align 8 + call void @_ZN4node7FPrintFIJRNS_9Utf8ValueES2_S2_EEEvP8_IO_FILEPKcDpOT_(ptr noundef %93, ptr noundef nonnull @.str.181, ptr noundef nonnull align 8 dereferenceable(1048) %arrow_string276, ptr noundef nonnull align 8 dereferenceable(1048) %name_string, ptr noundef nonnull align 8 dereferenceable(1048) %message_string) #21 %buf_.i.i.i.i89 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %arrow_string276, i64 0, i32 2 - %95 = load ptr, ptr %buf_.i.i.i.i89, align 8 - %cmp.i.i.i.i90 = icmp ne ptr %95, null + %94 = load ptr, ptr %buf_.i.i.i.i89, align 8 + %cmp.i.i.i.i90 = icmp ne ptr %94, null %buf_st_.i.i.i91 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %arrow_string276, i64 0, i32 3 - %cmp.i.i.i92 = icmp ne ptr %95, %buf_st_.i.i.i91 - %96 = select i1 %cmp.i.i.i.i90, i1 %cmp.i.i.i92, i1 false - br i1 %96, label %if.then.i.i93, label %if.end282 + %cmp.i.i.i92 = icmp ne ptr %94, %buf_st_.i.i.i91 + %95 = select i1 %cmp.i.i.i.i90, i1 %cmp.i.i.i92, i1 false + br i1 %95, label %if.then.i.i93, label %if.end282 if.then.i.i93: ; preds = %if.else275 - call void @free(ptr noundef nonnull %95) #20 + call void @free(ptr noundef nonnull %94) #20 br label %if.end282 if.end282: ; preds = %if.then.i.i93, %if.else275, %if.then274 - %97 = load ptr, ptr %buf_.i.i87, align 8 - %cmp.i.i.i.i96 = icmp ne ptr %97, null + %96 = load ptr, ptr %buf_.i.i87, align 8 + %cmp.i.i.i.i96 = icmp ne ptr %96, null %buf_st_.i.i.i97 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %message_string, i64 0, i32 3 - %cmp.i.i.i98 = icmp ne ptr %97, %buf_st_.i.i.i97 - %98 = select i1 %cmp.i.i.i.i96, i1 %cmp.i.i.i98, i1 false - br i1 %98, label %if.then.i.i99, label %_ZN4node9Utf8ValueD2Ev.exit100 + %cmp.i.i.i98 = icmp ne ptr %96, %buf_st_.i.i.i97 + %97 = select i1 %cmp.i.i.i.i96, i1 %cmp.i.i.i98, i1 false + br i1 %97, label %if.then.i.i99, label %_ZN4node9Utf8ValueD2Ev.exit100 if.then.i.i99: ; preds = %if.end282 - call void @free(ptr noundef nonnull %97) #20 + call void @free(ptr noundef nonnull %96) #20 br label %_ZN4node9Utf8ValueD2Ev.exit100 _ZN4node9Utf8ValueD2Ev.exit100: ; preds = %if.end282, %if.then.i.i99 %buf_.i.i.i.i101 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %name_string, i64 0, i32 2 - %99 = load ptr, ptr %buf_.i.i.i.i101, align 8 - %cmp.i.i.i.i102 = icmp ne ptr %99, null + %98 = load ptr, ptr %buf_.i.i.i.i101, align 8 + %cmp.i.i.i.i102 = icmp ne ptr %98, null %buf_st_.i.i.i103 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %name_string, i64 0, i32 3 - %cmp.i.i.i104 = icmp ne ptr %99, %buf_st_.i.i.i103 - %100 = select i1 %cmp.i.i.i.i102, i1 %cmp.i.i.i104, i1 false - br i1 %100, label %if.end283.sink.split, label %if.end283 + %cmp.i.i.i104 = icmp ne ptr %98, %buf_st_.i.i.i103 + %99 = select i1 %cmp.i.i.i.i102, i1 %cmp.i.i.i104, i1 false + br i1 %99, label %if.end283.sink.split, label %if.end283 if.end283.sink.split: ; preds = %_ZN4node9Utf8ValueD2Ev.exit100, %cond.end - %.sink = phi ptr [ %81, %cond.end ], [ %99, %_ZN4node9Utf8ValueD2Ev.exit100 ] + %.sink = phi ptr [ %80, %cond.end ], [ %98, %_ZN4node9Utf8ValueD2Ev.exit100 ] call void @free(ptr noundef nonnull %.sink) #20 br label %if.end283 if.end283: ; preds = %if.end283.sink.split, %_ZN4node9Utf8ValueD2Ev.exit100, %cond.end %options_.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 40 - %101 = load ptr, ptr %options_.i, align 8, !noalias !30 + %100 = load ptr, ptr %options_.i, align 8, !noalias !30 %_M_refcount3.i.i.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 40, i32 0, i32 1 - %102 = load ptr, ptr %_M_refcount3.i.i.i, align 8, !noalias !30 - %cmp.not.i.i.i.i = icmp eq ptr %102, null + %101 = load ptr, ptr %_M_refcount3.i.i.i, align 8, !noalias !30 + %cmp.not.i.i.i.i = icmp eq ptr %101, null br i1 %cmp.not.i.i.i.i, label %_ZN4node11Environment7optionsEv.exit, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %if.end283 - %_M_use_count.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %102, i64 0, i32 1 - %103 = load i8, ptr @__libc_single_threaded, align 1, !noalias !30 - %tobool.i.not.i.i.i.i.i = icmp eq i8 %103, 0 + %_M_use_count.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %101, i64 0, i32 1 + %102 = load i8, ptr @__libc_single_threaded, align 1, !noalias !30 + %tobool.i.not.i.i.i.i.i = icmp eq i8 %102, 0 br i1 %tobool.i.not.i.i.i.i.i, label %if.else.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i - %104 = load i32, ptr %_M_use_count.i.i.i.i.i, align 4, !noalias !30 - %add.i.i.i.i.i.i = add nsw i32 %104, 1 + %103 = load i32, ptr %_M_use_count.i.i.i.i.i, align 4, !noalias !30 + %add.i.i.i.i.i.i = add nsw i32 %103, 1 store i32 %add.i.i.i.i.i.i, ptr %_M_use_count.i.i.i.i.i, align 4, !noalias !30 br label %if.then.i.i.i if.else.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i - %105 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i, i32 1 acq_rel, align 4, !noalias !30 + %104 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i, i32 1 acq_rel, align 4, !noalias !30 br label %if.then.i.i.i _ZN4node11Environment7optionsEv.exit: ; preds = %if.end283 - %trace_uncaught = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %101, i64 0, i32 72 - %106 = load i8, ptr %trace_uncaught, align 2 - %107 = and i8 %106, 1 - %tobool286.not = icmp eq i8 %107, 0 + %trace_uncaught = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %100, i64 0, i32 72 + %105 = load i8, ptr %trace_uncaught, align 2 + %106 = and i8 %105, 1 + %tobool286.not = icmp eq i8 %106, 0 br i1 %tobool286.not, label %if.then288, label %if.end304 if.then.i.i.i: ; preds = %if.then.i.i.i.i.i.i, %if.else.i.i.i.i.i.i - %trace_uncaught306 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %101, i64 0, i32 72 - %108 = load i8, ptr %trace_uncaught306, align 2 - %109 = and i8 %108, 1 - %tobool286.not307 = icmp eq i8 %109, 0 - %110 = load atomic i64, ptr %_M_use_count.i.i.i.i.i acquire, align 8 - %cmp.i.i.i.i107 = icmp eq i64 %110, 4294967297 - %111 = trunc i64 %110 to i32 + %trace_uncaught306 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %100, i64 0, i32 72 + %107 = load i8, ptr %trace_uncaught306, align 2 + %108 = and i8 %107, 1 + %tobool286.not307 = icmp eq i8 %108, 0 + %109 = load atomic i64, ptr %_M_use_count.i.i.i.i.i acquire, align 8 + %cmp.i.i.i.i107 = icmp eq i64 %109, 4294967297 + %110 = trunc i64 %109 to i32 br i1 %cmp.i.i.i.i107, label %if.then.i.i.i.i108, label %if.end.i.i.i.i if.then.i.i.i.i108: ; preds = %if.then.i.i.i store i32 0, ptr %_M_use_count.i.i.i.i.i, align 8 - %_M_weak_count.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %102, i64 0, i32 2 + %_M_weak_count.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %101, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i, align 4 - %vtable.i.i.i.i = load ptr, ptr %102, align 8 + %vtable.i.i.i.i = load ptr, ptr %101, align 8 %vfn.i.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i.i, i64 2 - %112 = load ptr, ptr %vfn.i.i.i.i, align 8 - call void %112(ptr noundef nonnull align 8 dereferenceable(16) %102) #20 + %111 = load ptr, ptr %vfn.i.i.i.i, align 8 + call void %111(ptr noundef nonnull align 8 dereferenceable(16) %101) #20 br label %if.end8.sink.split.i.i.i.i if.end.i.i.i.i: ; preds = %if.then.i.i.i - %113 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i = icmp eq i8 %113, 0 + %112 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i = icmp eq i8 %112, 0 br i1 %tobool.i.i.not.i.i.i.i, label %if.else.i.i.i.i.i, label %if.then.i.i.i.i.i if.then.i.i.i.i.i: ; preds = %if.end.i.i.i.i - %add.i.i.i.i.i = add nsw i32 %111, -1 + %add.i.i.i.i.i = add nsw i32 %110, -1 store i32 %add.i.i.i.i.i, ptr %_M_use_count.i.i.i.i.i, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i if.else.i.i.i.i.i: ; preds = %if.end.i.i.i.i - %114 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i, i32 -1 acq_rel, align 4 + %113 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i: ; preds = %if.else.i.i.i.i.i, %if.then.i.i.i.i.i - %retval.i.0.i.i.i.i = phi i32 [ %111, %if.then.i.i.i.i.i ], [ %114, %if.else.i.i.i.i.i ] + %retval.i.0.i.i.i.i = phi i32 [ %110, %if.then.i.i.i.i.i ], [ %113, %if.else.i.i.i.i.i ] %cmp6.i.i.i.i = icmp eq i32 %retval.i.0.i.i.i.i, 1 br i1 %cmp6.i.i.i.i, label %if.then7.i.i.i.i, label %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit if.then7.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i - %vtable.i.i.i.i.i.i = load ptr, ptr %102, align 8 + %vtable.i.i.i.i.i.i = load ptr, ptr %101, align 8 %vfn.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i, i64 2 - %115 = load ptr, ptr %vfn.i.i.i.i.i.i, align 8 - call void %115(ptr noundef nonnull align 8 dereferenceable(16) %102) #20 - %_M_weak_count.i.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %102, i64 0, i32 2 - %116 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i.i.i = icmp eq i8 %116, 0 + %114 = load ptr, ptr %vfn.i.i.i.i.i.i, align 8 + call void %114(ptr noundef nonnull align 8 dereferenceable(16) %101) #20 + %_M_weak_count.i.i.i.i.i.i = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %101, i64 0, i32 2 + %115 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i.i.i = icmp eq i8 %115, 0 br i1 %tobool.i.i.not.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i: ; preds = %if.then7.i.i.i.i - %117 = load i32, ptr %_M_weak_count.i.i.i.i.i.i, align 4 - %add.i.i.i.i.i.i.i = add nsw i32 %117, -1 + %116 = load i32, ptr %_M_weak_count.i.i.i.i.i.i, align 4 + %add.i.i.i.i.i.i.i = add nsw i32 %116, -1 store i32 %add.i.i.i.i.i.i.i, ptr %_M_weak_count.i.i.i.i.i.i, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i if.else.i.i.i.i.i.i.i: ; preds = %if.then7.i.i.i.i - %118 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i, i32 -1 acq_rel, align 4 + %117 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i - %retval.i.0.i.i.i.i.i.i = phi i32 [ %117, %if.then.i.i.i.i.i.i.i ], [ %118, %if.else.i.i.i.i.i.i.i ] + %retval.i.0.i.i.i.i.i.i = phi i32 [ %116, %if.then.i.i.i.i.i.i.i ], [ %117, %if.else.i.i.i.i.i.i.i ] %cmp.i.i.i.i.i.i = icmp eq i32 %retval.i.0.i.i.i.i.i.i, 1 br i1 %cmp.i.i.i.i.i.i, label %if.end8.sink.split.i.i.i.i, label %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit if.end8.sink.split.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i, %if.then.i.i.i.i108 - %vtable2.i.i.i.i.i.i = load ptr, ptr %102, align 8 + %vtable2.i.i.i.i.i.i = load ptr, ptr %101, align 8 %vfn3.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i, i64 3 - %119 = load ptr, ptr %vfn3.i.i.i.i.i.i, align 8 - call void %119(ptr noundef nonnull align 8 dereferenceable(16) %102) #20 + %118 = load ptr, ptr %vfn3.i.i.i.i.i.i, align 8 + call void %118(ptr noundef nonnull align 8 dereferenceable(16) %101) #20 br i1 %tobool286.not307, label %if.then288, label %if.end304 _ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i @@ -2994,14 +2982,14 @@ _ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit: ; preds = %_ZN9__gnu_cx if.then288: ; preds = %if.end8.sink.split.i.i.i.i, %_ZN4node11Environment7optionsEv.exit, %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %argv0) #20 %argv_.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 43 - %120 = load ptr, ptr %argv_.i, align 8 + %119 = load ptr, ptr %argv_.i, align 8 %_M_finish.i.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 43, i32 0, i32 0, i32 0, i32 1 - %121 = load ptr, ptr %_M_finish.i.i, align 8 - %cmp.i.i109 = icmp eq ptr %120, %121 + %120 = load ptr, ptr %_M_finish.i.i, align 8 + %cmp.i.i109 = icmp eq ptr %119, %120 br i1 %cmp.i.i109, label %if.end295, label %if.then291 if.then291: ; preds = %if.then288 - %call294 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %argv0, ptr noundef nonnull align 8 dereferenceable(32) %120) #20 + %call294 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %argv0, ptr noundef nonnull align 8 dereferenceable(32) %119) #20 br label %if.end295 if.end295: ; preds = %if.then291, %if.then288 @@ -3013,13 +3001,13 @@ if.then297: ; preds = %if.end295 br label %if.end299 if.end299: ; preds = %if.then297, %if.end295 - %122 = load ptr, ptr @stderr, align 8 + %121 = load ptr, ptr @stderr, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp302) #20 %call.i111 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp301) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp301, ptr noundef %call.i111, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp302) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp301, ptr noundef nonnull @.str.184, ptr noundef nonnull getelementptr inbounds ([5 x i8], ptr @.str.184, i64 0, i64 4)) call void @_ZN4node2fs8BasenameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp300, ptr noundef nonnull align 8 dereferenceable(32) %argv0, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp301) #20 - call void @_ZN4node7FPrintFIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %122, ptr noundef nonnull @.str.183, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp300) #21 + call void @_ZN4node7FPrintFIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %121, ptr noundef nonnull @.str.183, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp300) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp300) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp301) #20 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp302) #20 @@ -3028,106 +3016,106 @@ if.end299: ; preds = %if.then297, %if.end if.end304: ; preds = %if.end8.sink.split.i.i.i.i, %_ZN4node11Environment7optionsEv.exit, %if.then.i.i, %if.else146, %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit, %if.end299, %if.then145 %isolate_data_.i = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 4 - %123 = load ptr, ptr %isolate_data_.i, align 8 - %options_.i115 = getelementptr inbounds %"class.node::IsolateData", ptr %123, i64 0, i32 445 - %124 = load ptr, ptr %options_.i115, align 8, !noalias !33 - %_M_refcount3.i.i.i117 = getelementptr inbounds %"class.node::IsolateData", ptr %123, i64 0, i32 445, i32 0, i32 1 - %125 = load ptr, ptr %_M_refcount3.i.i.i117, align 8, !noalias !33 - %cmp.not.i.i.i.i118 = icmp eq ptr %125, null + %122 = load ptr, ptr %isolate_data_.i, align 8 + %options_.i115 = getelementptr inbounds %"class.node::IsolateData", ptr %122, i64 0, i32 445 + %123 = load ptr, ptr %options_.i115, align 8, !noalias !33 + %_M_refcount3.i.i.i117 = getelementptr inbounds %"class.node::IsolateData", ptr %122, i64 0, i32 445, i32 0, i32 1 + %124 = load ptr, ptr %_M_refcount3.i.i.i117, align 8, !noalias !33 + %cmp.not.i.i.i.i118 = icmp eq ptr %124, null br i1 %cmp.not.i.i.i.i118, label %_ZN4node11IsolateData7optionsEv.exit, label %if.then.i.i.i.i119 if.then.i.i.i.i119: ; preds = %if.end304 - %_M_use_count.i.i.i.i.i120 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %125, i64 0, i32 1 - %126 = load i8, ptr @__libc_single_threaded, align 1, !noalias !33 - %tobool.i.not.i.i.i.i.i121 = icmp eq i8 %126, 0 + %_M_use_count.i.i.i.i.i120 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %124, i64 0, i32 1 + %125 = load i8, ptr @__libc_single_threaded, align 1, !noalias !33 + %tobool.i.not.i.i.i.i.i121 = icmp eq i8 %125, 0 br i1 %tobool.i.not.i.i.i.i.i121, label %if.else.i.i.i.i.i.i124, label %if.then.i.i.i.i.i.i122 if.then.i.i.i.i.i.i122: ; preds = %if.then.i.i.i.i119 - %127 = load i32, ptr %_M_use_count.i.i.i.i.i120, align 4, !noalias !33 - %add.i.i.i.i.i.i123 = add nsw i32 %127, 1 + %126 = load i32, ptr %_M_use_count.i.i.i.i.i120, align 4, !noalias !33 + %add.i.i.i.i.i.i123 = add nsw i32 %126, 1 store i32 %add.i.i.i.i.i.i123, ptr %_M_use_count.i.i.i.i.i120, align 4, !noalias !33 br label %if.then.i.i.i127 if.else.i.i.i.i.i.i124: ; preds = %if.then.i.i.i.i119 - %128 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i120, i32 1 acq_rel, align 4, !noalias !33 + %127 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i120, i32 1 acq_rel, align 4, !noalias !33 br label %if.then.i.i.i127 _ZN4node11IsolateData7optionsEv.exit: ; preds = %if.end304 - %report_uncaught_exception = getelementptr inbounds %"class.node::PerIsolateOptions", ptr %124, i64 0, i32 3 - %129 = load i8, ptr %report_uncaught_exception, align 1 - %130 = and i8 %129, 1 - %tobool308.not = icmp eq i8 %130, 0 + %report_uncaught_exception = getelementptr inbounds %"class.node::PerIsolateOptions", ptr %123, i64 0, i32 3 + %128 = load i8, ptr %report_uncaught_exception, align 1 + %129 = and i8 %128, 1 + %tobool308.not = icmp eq i8 %129, 0 br i1 %tobool308.not, label %if.end317, label %if.then309 if.then.i.i.i127: ; preds = %if.then.i.i.i.i.i.i122, %if.else.i.i.i.i.i.i124 - %report_uncaught_exception310 = getelementptr inbounds %"class.node::PerIsolateOptions", ptr %124, i64 0, i32 3 - %131 = load i8, ptr %report_uncaught_exception310, align 1 - %132 = and i8 %131, 1 - %tobool308.not311 = icmp eq i8 %132, 0 - %133 = load atomic i64, ptr %_M_use_count.i.i.i.i.i120 acquire, align 8 - %cmp.i.i.i.i129 = icmp eq i64 %133, 4294967297 - %134 = trunc i64 %133 to i32 + %report_uncaught_exception310 = getelementptr inbounds %"class.node::PerIsolateOptions", ptr %123, i64 0, i32 3 + %130 = load i8, ptr %report_uncaught_exception310, align 1 + %131 = and i8 %130, 1 + %tobool308.not311 = icmp eq i8 %131, 0 + %132 = load atomic i64, ptr %_M_use_count.i.i.i.i.i120 acquire, align 8 + %cmp.i.i.i.i129 = icmp eq i64 %132, 4294967297 + %133 = trunc i64 %132 to i32 br i1 %cmp.i.i.i.i129, label %if.then.i.i.i.i152, label %if.end.i.i.i.i130 if.then.i.i.i.i152: ; preds = %if.then.i.i.i127 store i32 0, ptr %_M_use_count.i.i.i.i.i120, align 8 - %_M_weak_count.i.i.i.i153 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %125, i64 0, i32 2 + %_M_weak_count.i.i.i.i153 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %124, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i153, align 4 - %vtable.i.i.i.i154 = load ptr, ptr %125, align 8 + %vtable.i.i.i.i154 = load ptr, ptr %124, align 8 %vfn.i.i.i.i155 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i154, i64 2 - %135 = load ptr, ptr %vfn.i.i.i.i155, align 8 - call void %135(ptr noundef nonnull align 8 dereferenceable(16) %125) #20 + %134 = load ptr, ptr %vfn.i.i.i.i155, align 8 + call void %134(ptr noundef nonnull align 8 dereferenceable(16) %124) #20 br label %if.end8.sink.split.i.i.i.i147 if.end.i.i.i.i130: ; preds = %if.then.i.i.i127 - %136 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i131 = icmp eq i8 %136, 0 + %135 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i131 = icmp eq i8 %135, 0 br i1 %tobool.i.i.not.i.i.i.i131, label %if.else.i.i.i.i.i151, label %if.then.i.i.i.i.i132 if.then.i.i.i.i.i132: ; preds = %if.end.i.i.i.i130 - %add.i.i.i.i.i133 = add nsw i32 %134, -1 + %add.i.i.i.i.i133 = add nsw i32 %133, -1 store i32 %add.i.i.i.i.i133, ptr %_M_use_count.i.i.i.i.i120, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i134 if.else.i.i.i.i.i151: ; preds = %if.end.i.i.i.i130 - %137 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i120, i32 -1 acq_rel, align 4 + %136 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i120, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i134 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i134: ; preds = %if.else.i.i.i.i.i151, %if.then.i.i.i.i.i132 - %retval.i.0.i.i.i.i135 = phi i32 [ %134, %if.then.i.i.i.i.i132 ], [ %137, %if.else.i.i.i.i.i151 ] + %retval.i.0.i.i.i.i135 = phi i32 [ %133, %if.then.i.i.i.i.i132 ], [ %136, %if.else.i.i.i.i.i151 ] %cmp6.i.i.i.i136 = icmp eq i32 %retval.i.0.i.i.i.i135, 1 br i1 %cmp6.i.i.i.i136, label %if.then7.i.i.i.i137, label %_ZNSt10shared_ptrIN4node17PerIsolateOptionsEED2Ev.exit if.then7.i.i.i.i137: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i134 - %vtable.i.i.i.i.i.i138 = load ptr, ptr %125, align 8 + %vtable.i.i.i.i.i.i138 = load ptr, ptr %124, align 8 %vfn.i.i.i.i.i.i139 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i138, i64 2 - %138 = load ptr, ptr %vfn.i.i.i.i.i.i139, align 8 - call void %138(ptr noundef nonnull align 8 dereferenceable(16) %125) #20 - %_M_weak_count.i.i.i.i.i.i140 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %125, i64 0, i32 2 - %139 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i.i.i141 = icmp eq i8 %139, 0 + %137 = load ptr, ptr %vfn.i.i.i.i.i.i139, align 8 + call void %137(ptr noundef nonnull align 8 dereferenceable(16) %124) #20 + %_M_weak_count.i.i.i.i.i.i140 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %124, i64 0, i32 2 + %138 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i.i.i141 = icmp eq i8 %138, 0 br i1 %tobool.i.i.not.i.i.i.i.i.i141, label %if.else.i.i.i.i.i.i.i150, label %if.then.i.i.i.i.i.i.i142 if.then.i.i.i.i.i.i.i142: ; preds = %if.then7.i.i.i.i137 - %140 = load i32, ptr %_M_weak_count.i.i.i.i.i.i140, align 4 - %add.i.i.i.i.i.i.i143 = add nsw i32 %140, -1 + %139 = load i32, ptr %_M_weak_count.i.i.i.i.i.i140, align 4 + %add.i.i.i.i.i.i.i143 = add nsw i32 %139, -1 store i32 %add.i.i.i.i.i.i.i143, ptr %_M_weak_count.i.i.i.i.i.i140, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i144 if.else.i.i.i.i.i.i.i150: ; preds = %if.then7.i.i.i.i137 - %141 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i140, i32 -1 acq_rel, align 4 + %140 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i140, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i144 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i144: ; preds = %if.else.i.i.i.i.i.i.i150, %if.then.i.i.i.i.i.i.i142 - %retval.i.0.i.i.i.i.i.i145 = phi i32 [ %140, %if.then.i.i.i.i.i.i.i142 ], [ %141, %if.else.i.i.i.i.i.i.i150 ] + %retval.i.0.i.i.i.i.i.i145 = phi i32 [ %139, %if.then.i.i.i.i.i.i.i142 ], [ %140, %if.else.i.i.i.i.i.i.i150 ] %cmp.i.i.i.i.i.i146 = icmp eq i32 %retval.i.0.i.i.i.i.i.i145, 1 br i1 %cmp.i.i.i.i.i.i146, label %if.end8.sink.split.i.i.i.i147, label %_ZNSt10shared_ptrIN4node17PerIsolateOptionsEED2Ev.exit if.end8.sink.split.i.i.i.i147: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i144, %if.then.i.i.i.i152 - %vtable2.i.i.i.i.i.i148 = load ptr, ptr %125, align 8 + %vtable2.i.i.i.i.i.i148 = load ptr, ptr %124, align 8 %vfn3.i.i.i.i.i.i149 = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i148, i64 3 - %142 = load ptr, ptr %vfn3.i.i.i.i.i.i149, align 8 - call void %142(ptr noundef nonnull align 8 dereferenceable(16) %125) #20 + %141 = load ptr, ptr %vfn3.i.i.i.i.i.i149, align 8 + call void %141(ptr noundef nonnull align 8 dereferenceable(16) %124) #20 br i1 %tobool308.not311, label %if.end317, label %if.then309 _ZNSt10shared_ptrIN4node17PerIsolateOptionsEED2Ev.exit: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i134, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i144 @@ -3147,104 +3135,104 @@ if.then309: ; preds = %if.end8.sink.split. if.end317: ; preds = %if.end8.sink.split.i.i.i.i147, %_ZN4node11IsolateData7optionsEv.exit, %if.then309, %_ZNSt10shared_ptrIN4node17PerIsolateOptionsEED2Ev.exit %options_.i160 = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 40 - %143 = load ptr, ptr %options_.i160, align 8, !noalias !36 + %142 = load ptr, ptr %options_.i160, align 8, !noalias !36 %_M_refcount3.i.i.i162 = getelementptr inbounds %"class.node::Environment", ptr %env, i64 0, i32 40, i32 0, i32 1 - %144 = load ptr, ptr %_M_refcount3.i.i.i162, align 8, !noalias !36 - %cmp.not.i.i.i.i163 = icmp eq ptr %144, null + %143 = load ptr, ptr %_M_refcount3.i.i.i162, align 8, !noalias !36 + %cmp.not.i.i.i.i163 = icmp eq ptr %143, null br i1 %cmp.not.i.i.i.i163, label %_ZN4node11Environment7optionsEv.exit170, label %if.then.i.i.i.i164 if.then.i.i.i.i164: ; preds = %if.end317 - %_M_use_count.i.i.i.i.i165 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %144, i64 0, i32 1 - %145 = load i8, ptr @__libc_single_threaded, align 1, !noalias !36 - %tobool.i.not.i.i.i.i.i166 = icmp eq i8 %145, 0 + %_M_use_count.i.i.i.i.i165 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %143, i64 0, i32 1 + %144 = load i8, ptr @__libc_single_threaded, align 1, !noalias !36 + %tobool.i.not.i.i.i.i.i166 = icmp eq i8 %144, 0 br i1 %tobool.i.not.i.i.i.i.i166, label %if.else.i.i.i.i.i.i169, label %if.then.i.i.i.i.i.i167 if.then.i.i.i.i.i.i167: ; preds = %if.then.i.i.i.i164 - %146 = load i32, ptr %_M_use_count.i.i.i.i.i165, align 4, !noalias !36 - %add.i.i.i.i.i.i168 = add nsw i32 %146, 1 + %145 = load i32, ptr %_M_use_count.i.i.i.i.i165, align 4, !noalias !36 + %add.i.i.i.i.i.i168 = add nsw i32 %145, 1 store i32 %add.i.i.i.i.i.i168, ptr %_M_use_count.i.i.i.i.i165, align 4, !noalias !36 br label %if.then.i.i.i173 if.else.i.i.i.i.i.i169: ; preds = %if.then.i.i.i.i164 - %147 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i165, i32 1 acq_rel, align 4, !noalias !36 + %146 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i165, i32 1 acq_rel, align 4, !noalias !36 br label %if.then.i.i.i173 _ZN4node11Environment7optionsEv.exit170: ; preds = %if.end317 - %trace_uncaught320 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %143, i64 0, i32 72 - %148 = load i8, ptr %trace_uncaught320, align 2 - %149 = and i8 %148, 1 - %tobool321.not = icmp eq i8 %149, 0 + %trace_uncaught320 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %142, i64 0, i32 72 + %147 = load i8, ptr %trace_uncaught320, align 2 + %148 = and i8 %147, 1 + %tobool321.not = icmp eq i8 %148, 0 br i1 %tobool321.not, label %if.end337, label %if.then322 if.then.i.i.i173: ; preds = %if.then.i.i.i.i.i.i167, %if.else.i.i.i.i.i.i169 - %trace_uncaught320314 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %143, i64 0, i32 72 - %150 = load i8, ptr %trace_uncaught320314, align 2 - %151 = and i8 %150, 1 - %tobool321.not315 = icmp eq i8 %151, 0 - %152 = load atomic i64, ptr %_M_use_count.i.i.i.i.i165 acquire, align 8 - %cmp.i.i.i.i175 = icmp eq i64 %152, 4294967297 - %153 = trunc i64 %152 to i32 + %trace_uncaught320314 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %142, i64 0, i32 72 + %149 = load i8, ptr %trace_uncaught320314, align 2 + %150 = and i8 %149, 1 + %tobool321.not315 = icmp eq i8 %150, 0 + %151 = load atomic i64, ptr %_M_use_count.i.i.i.i.i165 acquire, align 8 + %cmp.i.i.i.i175 = icmp eq i64 %151, 4294967297 + %152 = trunc i64 %151 to i32 br i1 %cmp.i.i.i.i175, label %if.then.i.i.i.i198, label %if.end.i.i.i.i176 if.then.i.i.i.i198: ; preds = %if.then.i.i.i173 store i32 0, ptr %_M_use_count.i.i.i.i.i165, align 8 - %_M_weak_count.i.i.i.i199 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %144, i64 0, i32 2 + %_M_weak_count.i.i.i.i199 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %143, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i199, align 4 - %vtable.i.i.i.i200 = load ptr, ptr %144, align 8 + %vtable.i.i.i.i200 = load ptr, ptr %143, align 8 %vfn.i.i.i.i201 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i200, i64 2 - %154 = load ptr, ptr %vfn.i.i.i.i201, align 8 - call void %154(ptr noundef nonnull align 8 dereferenceable(16) %144) #20 + %153 = load ptr, ptr %vfn.i.i.i.i201, align 8 + call void %153(ptr noundef nonnull align 8 dereferenceable(16) %143) #20 br label %if.end8.sink.split.i.i.i.i193 if.end.i.i.i.i176: ; preds = %if.then.i.i.i173 - %155 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i177 = icmp eq i8 %155, 0 + %154 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i177 = icmp eq i8 %154, 0 br i1 %tobool.i.i.not.i.i.i.i177, label %if.else.i.i.i.i.i197, label %if.then.i.i.i.i.i178 if.then.i.i.i.i.i178: ; preds = %if.end.i.i.i.i176 - %add.i.i.i.i.i179 = add nsw i32 %153, -1 + %add.i.i.i.i.i179 = add nsw i32 %152, -1 store i32 %add.i.i.i.i.i179, ptr %_M_use_count.i.i.i.i.i165, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i180 if.else.i.i.i.i.i197: ; preds = %if.end.i.i.i.i176 - %156 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i165, i32 -1 acq_rel, align 4 + %155 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i165, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i180 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i180: ; preds = %if.else.i.i.i.i.i197, %if.then.i.i.i.i.i178 - %retval.i.0.i.i.i.i181 = phi i32 [ %153, %if.then.i.i.i.i.i178 ], [ %156, %if.else.i.i.i.i.i197 ] + %retval.i.0.i.i.i.i181 = phi i32 [ %152, %if.then.i.i.i.i.i178 ], [ %155, %if.else.i.i.i.i.i197 ] %cmp6.i.i.i.i182 = icmp eq i32 %retval.i.0.i.i.i.i181, 1 br i1 %cmp6.i.i.i.i182, label %if.then7.i.i.i.i183, label %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit202 if.then7.i.i.i.i183: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i180 - %vtable.i.i.i.i.i.i184 = load ptr, ptr %144, align 8 + %vtable.i.i.i.i.i.i184 = load ptr, ptr %143, align 8 %vfn.i.i.i.i.i.i185 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i184, i64 2 - %157 = load ptr, ptr %vfn.i.i.i.i.i.i185, align 8 - call void %157(ptr noundef nonnull align 8 dereferenceable(16) %144) #20 - %_M_weak_count.i.i.i.i.i.i186 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %144, i64 0, i32 2 - %158 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i.i.i187 = icmp eq i8 %158, 0 + %156 = load ptr, ptr %vfn.i.i.i.i.i.i185, align 8 + call void %156(ptr noundef nonnull align 8 dereferenceable(16) %143) #20 + %_M_weak_count.i.i.i.i.i.i186 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %143, i64 0, i32 2 + %157 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i.i.i187 = icmp eq i8 %157, 0 br i1 %tobool.i.i.not.i.i.i.i.i.i187, label %if.else.i.i.i.i.i.i.i196, label %if.then.i.i.i.i.i.i.i188 if.then.i.i.i.i.i.i.i188: ; preds = %if.then7.i.i.i.i183 - %159 = load i32, ptr %_M_weak_count.i.i.i.i.i.i186, align 4 - %add.i.i.i.i.i.i.i189 = add nsw i32 %159, -1 + %158 = load i32, ptr %_M_weak_count.i.i.i.i.i.i186, align 4 + %add.i.i.i.i.i.i.i189 = add nsw i32 %158, -1 store i32 %add.i.i.i.i.i.i.i189, ptr %_M_weak_count.i.i.i.i.i.i186, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i190 if.else.i.i.i.i.i.i.i196: ; preds = %if.then7.i.i.i.i183 - %160 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i186, i32 -1 acq_rel, align 4 + %159 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i186, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i190 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i190: ; preds = %if.else.i.i.i.i.i.i.i196, %if.then.i.i.i.i.i.i.i188 - %retval.i.0.i.i.i.i.i.i191 = phi i32 [ %159, %if.then.i.i.i.i.i.i.i188 ], [ %160, %if.else.i.i.i.i.i.i.i196 ] + %retval.i.0.i.i.i.i.i.i191 = phi i32 [ %158, %if.then.i.i.i.i.i.i.i188 ], [ %159, %if.else.i.i.i.i.i.i.i196 ] %cmp.i.i.i.i.i.i192 = icmp eq i32 %retval.i.0.i.i.i.i.i.i191, 1 br i1 %cmp.i.i.i.i.i.i192, label %if.end8.sink.split.i.i.i.i193, label %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit202 if.end8.sink.split.i.i.i.i193: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i190, %if.then.i.i.i.i198 - %vtable2.i.i.i.i.i.i194 = load ptr, ptr %144, align 8 + %vtable2.i.i.i.i.i.i194 = load ptr, ptr %143, align 8 %vfn3.i.i.i.i.i.i195 = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i194, i64 3 - %161 = load ptr, ptr %vfn3.i.i.i.i.i.i195, align 8 - call void %161(ptr noundef nonnull align 8 dereferenceable(16) %144) #20 + %160 = load ptr, ptr %vfn3.i.i.i.i.i.i195, align 8 + call void %160(ptr noundef nonnull align 8 dereferenceable(16) %143) #20 br i1 %tobool321.not315, label %if.end337, label %if.then322 _ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit202: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i180, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i190 @@ -3256,141 +3244,141 @@ if.then322: ; preds = %if.end8.sink.split. br i1 %cmp.i, label %if.end337, label %if.then330 if.then330: ; preds = %if.then322 - %162 = load ptr, ptr @stderr, align 8 - call void @_ZN4node7FPrintFIJEEEvP8_IO_FILEPKcDpOT_(ptr noundef %162, ptr noundef nonnull @.str.185) #21 - %163 = load ptr, ptr %isolate_.i, align 8 + %161 = load ptr, ptr @stderr, align 8 + call void @_ZN4node7FPrintFIJEEEvP8_IO_FILEPKcDpOT_(ptr noundef %161, ptr noundef nonnull @.str.185) #21 + %162 = load ptr, ptr %isolate_.i, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i204) - call fastcc void @_ZN4nodeL16FormatStackTraceB5cxx11EPN2v87IsolateENS0_5LocalINS0_10StackTraceEEENS_16StackTracePrefixE(ptr noalias nonnull align 8 %ref.tmp.i204, ptr noundef %163, ptr nonnull %call325, i32 noundef 0) + call fastcc void @_ZN4nodeL16FormatStackTraceB5cxx11EPN2v87IsolateENS0_5LocalINS0_10StackTraceEEENS_16StackTracePrefixE(ptr noalias nonnull align 8 %ref.tmp.i204, ptr noundef %162, ptr nonnull %call325, i32 noundef 0) + %163 = load ptr, ptr @stderr, align 8 + call void @_ZN4node7FPrintFIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %163, ptr noundef nonnull @.str.131, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i204) #21 %164 = load ptr, ptr @stderr, align 8 - call void @_ZN4node7FPrintFIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvP8_IO_FILEPKcDpOT_(ptr noundef %164, ptr noundef nonnull @.str.131, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i204) #21 - %165 = load ptr, ptr @stderr, align 8 - %call.i.i205 = call i32 @fflush(ptr noundef %165) + %call.i.i205 = call i32 @fflush(ptr noundef %164) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i204) #20 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i204) br label %if.end337 if.end337: ; preds = %if.end8.sink.split.i.i.i.i193, %_ZN4node11Environment7optionsEv.exit170, %if.then322, %if.then330, %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit202 - %166 = load ptr, ptr %options_.i160, align 8, !noalias !39 - %167 = load ptr, ptr %_M_refcount3.i.i.i162, align 8, !noalias !39 - %cmp.not.i.i.i.i209 = icmp eq ptr %167, null + %165 = load ptr, ptr %options_.i160, align 8, !noalias !39 + %166 = load ptr, ptr %_M_refcount3.i.i.i162, align 8, !noalias !39 + %cmp.not.i.i.i.i209 = icmp eq ptr %166, null br i1 %cmp.not.i.i.i.i209, label %_ZN4node11Environment7optionsEv.exit216, label %if.then.i.i.i.i210 if.then.i.i.i.i210: ; preds = %if.end337 - %_M_use_count.i.i.i.i.i211 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %167, i64 0, i32 1 - %168 = load i8, ptr @__libc_single_threaded, align 1, !noalias !39 - %tobool.i.not.i.i.i.i.i212 = icmp eq i8 %168, 0 + %_M_use_count.i.i.i.i.i211 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %166, i64 0, i32 1 + %167 = load i8, ptr @__libc_single_threaded, align 1, !noalias !39 + %tobool.i.not.i.i.i.i.i212 = icmp eq i8 %167, 0 br i1 %tobool.i.not.i.i.i.i.i212, label %if.else.i.i.i.i.i.i215, label %if.then.i.i.i.i.i.i213 if.then.i.i.i.i.i.i213: ; preds = %if.then.i.i.i.i210 - %169 = load i32, ptr %_M_use_count.i.i.i.i.i211, align 4, !noalias !39 - %add.i.i.i.i.i.i214 = add nsw i32 %169, 1 + %168 = load i32, ptr %_M_use_count.i.i.i.i.i211, align 4, !noalias !39 + %add.i.i.i.i.i.i214 = add nsw i32 %168, 1 store i32 %add.i.i.i.i.i.i214, ptr %_M_use_count.i.i.i.i.i211, align 4, !noalias !39 br label %if.then.i.i.i219 if.else.i.i.i.i.i.i215: ; preds = %if.then.i.i.i.i210 - %170 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i211, i32 1 acq_rel, align 4, !noalias !39 + %169 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i211, i32 1 acq_rel, align 4, !noalias !39 br label %if.then.i.i.i219 _ZN4node11Environment7optionsEv.exit216: ; preds = %if.end337 - %extra_info_on_fatal_exception = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %166, i64 0, i32 75 - %171 = load i8, ptr %extra_info_on_fatal_exception, align 1 - %172 = and i8 %171, 1 - %tobool340.not = icmp eq i8 %172, 0 + %extra_info_on_fatal_exception = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %165, i64 0, i32 75 + %170 = load i8, ptr %extra_info_on_fatal_exception, align 1 + %171 = and i8 %170, 1 + %tobool340.not = icmp eq i8 %171, 0 br i1 %tobool340.not, label %if.end342, label %if.then341 if.then.i.i.i219: ; preds = %if.then.i.i.i.i.i.i213, %if.else.i.i.i.i.i.i215 - %extra_info_on_fatal_exception318 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %166, i64 0, i32 75 - %173 = load i8, ptr %extra_info_on_fatal_exception318, align 1 - %174 = and i8 %173, 1 - %tobool340.not319 = icmp eq i8 %174, 0 - %175 = load atomic i64, ptr %_M_use_count.i.i.i.i.i211 acquire, align 8 - %cmp.i.i.i.i221 = icmp eq i64 %175, 4294967297 - %176 = trunc i64 %175 to i32 + %extra_info_on_fatal_exception318 = getelementptr inbounds %"class.node::EnvironmentOptions", ptr %165, i64 0, i32 75 + %172 = load i8, ptr %extra_info_on_fatal_exception318, align 1 + %173 = and i8 %172, 1 + %tobool340.not319 = icmp eq i8 %173, 0 + %174 = load atomic i64, ptr %_M_use_count.i.i.i.i.i211 acquire, align 8 + %cmp.i.i.i.i221 = icmp eq i64 %174, 4294967297 + %175 = trunc i64 %174 to i32 br i1 %cmp.i.i.i.i221, label %if.then.i.i.i.i244, label %if.end.i.i.i.i222 if.then.i.i.i.i244: ; preds = %if.then.i.i.i219 store i32 0, ptr %_M_use_count.i.i.i.i.i211, align 8 - %_M_weak_count.i.i.i.i245 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %167, i64 0, i32 2 + %_M_weak_count.i.i.i.i245 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %166, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i245, align 4 - %vtable.i.i.i.i246 = load ptr, ptr %167, align 8 + %vtable.i.i.i.i246 = load ptr, ptr %166, align 8 %vfn.i.i.i.i247 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i246, i64 2 - %177 = load ptr, ptr %vfn.i.i.i.i247, align 8 - call void %177(ptr noundef nonnull align 8 dereferenceable(16) %167) #20 + %176 = load ptr, ptr %vfn.i.i.i.i247, align 8 + call void %176(ptr noundef nonnull align 8 dereferenceable(16) %166) #20 br label %if.end8.sink.split.i.i.i.i239 if.end.i.i.i.i222: ; preds = %if.then.i.i.i219 - %178 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i223 = icmp eq i8 %178, 0 + %177 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i223 = icmp eq i8 %177, 0 br i1 %tobool.i.i.not.i.i.i.i223, label %if.else.i.i.i.i.i243, label %if.then.i.i.i.i.i224 if.then.i.i.i.i.i224: ; preds = %if.end.i.i.i.i222 - %add.i.i.i.i.i225 = add nsw i32 %176, -1 + %add.i.i.i.i.i225 = add nsw i32 %175, -1 store i32 %add.i.i.i.i.i225, ptr %_M_use_count.i.i.i.i.i211, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i226 if.else.i.i.i.i.i243: ; preds = %if.end.i.i.i.i222 - %179 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i211, i32 -1 acq_rel, align 4 + %178 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i.i211, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i226 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i226: ; preds = %if.else.i.i.i.i.i243, %if.then.i.i.i.i.i224 - %retval.i.0.i.i.i.i227 = phi i32 [ %176, %if.then.i.i.i.i.i224 ], [ %179, %if.else.i.i.i.i.i243 ] + %retval.i.0.i.i.i.i227 = phi i32 [ %175, %if.then.i.i.i.i.i224 ], [ %178, %if.else.i.i.i.i.i243 ] %cmp6.i.i.i.i228 = icmp eq i32 %retval.i.0.i.i.i.i227, 1 br i1 %cmp6.i.i.i.i228, label %if.then7.i.i.i.i229, label %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit248 if.then7.i.i.i.i229: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i226 - %vtable.i.i.i.i.i.i230 = load ptr, ptr %167, align 8 + %vtable.i.i.i.i.i.i230 = load ptr, ptr %166, align 8 %vfn.i.i.i.i.i.i231 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i230, i64 2 - %180 = load ptr, ptr %vfn.i.i.i.i.i.i231, align 8 - call void %180(ptr noundef nonnull align 8 dereferenceable(16) %167) #20 - %_M_weak_count.i.i.i.i.i.i232 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %167, i64 0, i32 2 - %181 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.i.not.i.i.i.i.i.i233 = icmp eq i8 %181, 0 + %179 = load ptr, ptr %vfn.i.i.i.i.i.i231, align 8 + call void %179(ptr noundef nonnull align 8 dereferenceable(16) %166) #20 + %_M_weak_count.i.i.i.i.i.i232 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %166, i64 0, i32 2 + %180 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.i.not.i.i.i.i.i.i233 = icmp eq i8 %180, 0 br i1 %tobool.i.i.not.i.i.i.i.i.i233, label %if.else.i.i.i.i.i.i.i242, label %if.then.i.i.i.i.i.i.i234 if.then.i.i.i.i.i.i.i234: ; preds = %if.then7.i.i.i.i229 - %182 = load i32, ptr %_M_weak_count.i.i.i.i.i.i232, align 4 - %add.i.i.i.i.i.i.i235 = add nsw i32 %182, -1 + %181 = load i32, ptr %_M_weak_count.i.i.i.i.i.i232, align 4 + %add.i.i.i.i.i.i.i235 = add nsw i32 %181, -1 store i32 %add.i.i.i.i.i.i.i235, ptr %_M_weak_count.i.i.i.i.i.i232, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i236 if.else.i.i.i.i.i.i.i242: ; preds = %if.then7.i.i.i.i229 - %183 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i232, i32 -1 acq_rel, align 4 + %182 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i232, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i236 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i236: ; preds = %if.else.i.i.i.i.i.i.i242, %if.then.i.i.i.i.i.i.i234 - %retval.i.0.i.i.i.i.i.i237 = phi i32 [ %182, %if.then.i.i.i.i.i.i.i234 ], [ %183, %if.else.i.i.i.i.i.i.i242 ] + %retval.i.0.i.i.i.i.i.i237 = phi i32 [ %181, %if.then.i.i.i.i.i.i.i234 ], [ %182, %if.else.i.i.i.i.i.i.i242 ] %cmp.i.i.i.i.i.i238 = icmp eq i32 %retval.i.0.i.i.i.i.i.i237, 1 br i1 %cmp.i.i.i.i.i.i238, label %if.end8.sink.split.i.i.i.i239, label %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit248 if.end8.sink.split.i.i.i.i239: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i236, %if.then.i.i.i.i244 - %vtable2.i.i.i.i.i.i240 = load ptr, ptr %167, align 8 + %vtable2.i.i.i.i.i.i240 = load ptr, ptr %166, align 8 %vfn3.i.i.i.i.i.i241 = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i240, i64 3 - %184 = load ptr, ptr %vfn3.i.i.i.i.i.i241, align 8 - call void %184(ptr noundef nonnull align 8 dereferenceable(16) %167) #20 + %183 = load ptr, ptr %vfn3.i.i.i.i.i.i241, align 8 + call void %183(ptr noundef nonnull align 8 dereferenceable(16) %166) #20 br i1 %tobool340.not319, label %if.end342, label %if.then341 _ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit248: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i226, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i236 br i1 %tobool340.not319, label %if.end342, label %if.then341 if.then341: ; preds = %if.end8.sink.split.i.i.i.i239, %_ZN4node11Environment7optionsEv.exit216, %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit248 - %185 = load ptr, ptr @stderr, align 8 - call void @_ZN4node7FPrintFIJRA12_KcEEEvP8_IO_FILEPS1_DpOT_(ptr noundef %185, ptr noundef nonnull @.str.186, ptr noundef nonnull align 1 dereferenceable(12) @.str.187) #21 + %184 = load ptr, ptr @stderr, align 8 + call void @_ZN4node7FPrintFIJRA12_KcEEEvP8_IO_FILEPS1_DpOT_(ptr noundef %184, ptr noundef nonnull @.str.186, ptr noundef nonnull align 1 dereferenceable(12) @.str.187) #21 br label %if.end342 if.end342: ; preds = %if.end8.sink.split.i.i.i.i239, %_ZN4node11Environment7optionsEv.exit216, %if.then341, %_ZNSt10shared_ptrIN4node18EnvironmentOptionsEED2Ev.exit248 - %186 = load ptr, ptr @stderr, align 8 - %call343 = call i32 @fflush(ptr noundef %186) + %185 = load ptr, ptr @stderr, align 8 + %call343 = call i32 @fflush(ptr noundef %185) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %report_message) #20 %buf_.i.i.i.i249 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %trace, i64 0, i32 2 - %187 = load ptr, ptr %buf_.i.i.i.i249, align 8 - %cmp.i.i.i.i250 = icmp ne ptr %187, null + %186 = load ptr, ptr %buf_.i.i.i.i249, align 8 + %cmp.i.i.i.i250 = icmp ne ptr %186, null %buf_st_.i.i.i251 = getelementptr inbounds %"class.node::MaybeStackBuffer", ptr %trace, i64 0, i32 3 - %cmp.i.i.i252 = icmp ne ptr %187, %buf_st_.i.i.i251 - %188 = select i1 %cmp.i.i.i.i250, i1 %cmp.i.i.i252, i1 false - br i1 %188, label %if.then.i.i253, label %_ZN4node9Utf8ValueD2Ev.exit254 + %cmp.i.i.i252 = icmp ne ptr %186, %buf_st_.i.i.i251 + %187 = select i1 %cmp.i.i.i.i250, i1 %cmp.i.i.i252, i1 false + br i1 %187, label %if.then.i.i253, label %_ZN4node9Utf8ValueD2Ev.exit254 if.then.i.i253: ; preds = %if.end342 - call void @free(ptr noundef nonnull %187) #20 + call void @free(ptr noundef nonnull %186) #20 br label %_ZN4node9Utf8ValueD2Ev.exit254 _ZN4node9Utf8ValueD2Ev.exit254: ; preds = %if.end342, %if.then.i.i253 diff --git a/bench/node/optimized/libnode.node_sockaddr.ll b/bench/node/optimized/libnode.node_sockaddr.ll index 9fbad5ea193..3fd4e073220 100644 --- a/bench/node/optimized/libnode.node_sockaddr.ll +++ b/bench/node/optimized/libnode.node_sockaddr.ll @@ -1132,8 +1132,8 @@ sw.bb15: ; preds = %sw.bb7 %retval.0.i29 = select i1 %cmp.inv.i, i32 %..i28, i32 -1 br label %return -return: ; preds = %_ZN4node12_GLOBAL__N_117compare_ipv4_ipv6ERKNS_13SocketAddressES3_.exit25, %entry, %sw.bb, %sw.bb7, %if.end.i17, %sw.bb9, %if.else.i, %if.end.i, %sw.bb5, %sw.bb15, %sw.bb3 - %retval.0 = phi i32 [ %retval.0.i29, %sw.bb15 ], [ %retval.0.i, %sw.bb3 ], [ -2, %sw.bb5 ], [ -1, %if.end.i ], [ %..i10, %if.else.i ], [ -2, %sw.bb9 ], [ %spec.select, %_ZN4node12_GLOBAL__N_117compare_ipv4_ipv6ERKNS_13SocketAddressES3_.exit25 ], [ 1, %if.end.i17 ], [ -2, %sw.bb7 ], [ -2, %sw.bb ], [ -2, %entry ] +return: ; preds = %_ZN4node12_GLOBAL__N_117compare_ipv4_ipv6ERKNS_13SocketAddressES3_.exit25, %if.end.i17, %sw.bb9, %if.else.i, %if.end.i, %sw.bb5, %entry, %sw.bb, %sw.bb7, %sw.bb15, %sw.bb3 + %retval.0 = phi i32 [ %retval.0.i29, %sw.bb15 ], [ %retval.0.i, %sw.bb3 ], [ -2, %sw.bb7 ], [ -2, %sw.bb ], [ -2, %entry ], [ -2, %sw.bb5 ], [ -1, %if.end.i ], [ %..i10, %if.else.i ], [ -2, %sw.bb9 ], [ %spec.select, %_ZN4node12_GLOBAL__N_117compare_ipv4_ipv6ERKNS_13SocketAddressES3_.exit25 ], [ 1, %if.end.i17 ] ret i32 %retval.0 } @@ -2264,7 +2264,7 @@ if.then.i.i.i: ; preds = %if.else.i _ZNKSt6vectorIN2v85LocalINS0_5ValueEEESaIS3_EE12_M_check_lenEmPKc.exit.i.i: ; preds = %if.else.i %sub.ptr.div.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i, 3 %.sroa.speculated.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i, i64 1) - %add.i.i.i = add i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i + %add.i.i.i = add nsw i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i %cmp7.i.i.i = icmp ult i64 %add.i.i.i, %sub.ptr.div.i.i.i.i %12 = call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 1152921504606846975) %cond.i.i.i = select i1 %cmp7.i.i.i, i64 1152921504606846975, i64 %12 diff --git a/bench/node/optimized/simdutf.ll b/bench/node/optimized/simdutf.ll index f916e9674ad..e16358089c8 100644 --- a/bench/node/optimized/simdutf.ll +++ b/bench/node/optimized/simdutf.ll @@ -2519,7 +2519,7 @@ entry: br i1 %cmp.i, label %if.then.i, label %if.end20.i if.then.i: ; preds = %entry - switch i64 %length, label %if.end20.i [ + switch i64 %length, label %default.unreachable.i [ i64 2, label %sw.bb.i i64 1, label %sw.bb11.i i64 0, label %_ZN7simdutf6scalar12_GLOBAL__N_14utf817trim_partial_utf8EPKcm.exit @@ -2543,7 +2543,10 @@ sw.bb11.i: ; preds = %if.then.i %sub12.length.i = zext i1 %cmp15.i to i64 br label %_ZN7simdutf6scalar12_GLOBAL__N_14utf817trim_partial_utf8EPKcm.exit -if.end20.i: ; preds = %if.then.i, %entry +default.unreachable.i: ; preds = %if.then.i + unreachable + +if.end20.i: ; preds = %entry %sub21.i = add i64 %length, -1 %arrayidx22.i = getelementptr inbounds i8, ptr %input, i64 %sub21.i %3 = load i8, ptr %arrayidx22.i, align 1 @@ -3769,7 +3772,7 @@ if.end27.i: ; preds = %if.else.i, %if.then %or18.sink.i = phi i8 [ %2, %if.then14.i ], [ %or18.i, %if.else.i ] %utf8_output.addr.2.i = phi ptr [ %incdec.ptr15.i, %if.then14.i ], [ %incdec.ptr25.i, %if.else.i ] store i8 %or18.sink.i, ptr %utf8_output.addr.029.i, align 1 - %pos.2.i = add nuw i64 %pos.028.i, 1 + %pos.2.i = add i64 %pos.028.i, 1 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %while.body9.i, %if.end27.i, %while.cond7.preheader.i @@ -3923,7 +3926,7 @@ if.else.i: ; preds = %if.end10.i br i1 %cmp18.i, label %if.then19.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf8_to_latin17convertEPKcmPc.exit if.then19.i: ; preds = %if.else.i - %add20.i = add nuw i64 %pos.036.i, 1 + %add20.i = add i64 %pos.036.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %len br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf8_to_latin17convertEPKcmPc.exit @@ -3947,7 +3950,7 @@ if.end47.i: ; preds = %if.end41.i, %if.end %or37.sink.i = phi i8 [ %or37.i, %if.end41.i ], [ %2, %if.end10.i ] %.sink.i = phi i64 [ 2, %if.end41.i ], [ 1, %if.end10.i ] store i8 %or37.sink.i, ptr %latin_output.addr.037.i, align 1 - %add44.i = add nuw i64 %.sink.i, %pos.036.i + %add44.i = add i64 %.sink.i, %pos.036.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.037.i, i64 1 br label %while.cond.backedge.i @@ -4024,7 +4027,7 @@ if.else.i: ; preds = %if.end10.i br i1 %cmp18.i, label %if.then19.i, label %if.else47.i if.then19.i: ; preds = %if.else.i - %add20.i = add nuw i64 %pos.052.i, 1 + %add20.i = add i64 %pos.052.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %len br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf8_to_latin119convert_with_errorsEPKcmPc.exit @@ -4070,7 +4073,7 @@ if.end64.i: ; preds = %if.end43.i, %if.end %conv44.sink.i = phi i8 [ %conv44.i, %if.end43.i ], [ %2, %if.end10.i ] %.sink.i = phi i64 [ 2, %if.end43.i ], [ 1, %if.end10.i ] store i8 %conv44.sink.i, ptr %latin_output.addr.053.i, align 1 - %add46.i = add nuw i64 %.sink.i, %pos.052.i + %add46.i = add i64 %.sink.i, %pos.052.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.053.i, i64 1 br label %while.cond.backedge.i @@ -4149,7 +4152,7 @@ if.else.i: ; preds = %if.end10.i br i1 %cmp18.i, label %if.then19.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf8_to_latin113convert_validEPKcmPc.exit if.then19.i: ; preds = %if.else.i - %add20.i = add nuw i64 %pos.034.i, 1 + %add20.i = add i64 %pos.034.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %len br i1 %cmp21.not.i, label %if.end23.i, label %while.end44.i @@ -4170,7 +4173,7 @@ if.end43.i: ; preds = %if.end30.i, %if.end %or37.sink.i = phi i8 [ %or37.i, %if.end30.i ], [ %2, %if.end10.i ] %.sink.i = phi i64 [ 2, %if.end30.i ], [ 1, %if.end10.i ] store i8 %or37.sink.i, ptr %latin_output.addr.035.i, align 1 - %add40.i = add nuw i64 %.sink.i, %pos.034.i + %add40.i = add i64 %.sink.i, %pos.034.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.035.i, i64 1 br label %while.cond.backedge.i @@ -4254,7 +4257,7 @@ cond.end24: ; preds = %if.end13 %conv23 = zext nneg i8 %2 to i16 %incdec.ptr26 = getelementptr inbounds i16, ptr %utf16_output.addr.093, i64 1 store i16 %conv23, ptr %utf16_output.addr.093, align 2 - %inc27 = add nuw i64 %pos.092, 1 + %inc27 = add i64 %pos.092, 1 br label %while.cond.backedge if.else: ; preds = %if.end13 @@ -4263,7 +4266,7 @@ if.else: ; preds = %if.end13 br i1 %cmp30, label %if.then31, label %if.else63 if.then31: ; preds = %if.else - %add32 = add nuw i64 %pos.092, 1 + %add32 = add i64 %pos.092, 1 %cmp33.not = icmp ult i64 %add32, %len br i1 %cmp33.not, label %if.end35, label %return @@ -4287,7 +4290,7 @@ if.end59: ; preds = %if.end42 %conv60 = trunc i32 %or49 to i16 %incdec.ptr61 = getelementptr inbounds i16, ptr %utf16_output.addr.093, i64 1 store i16 %conv60, ptr %utf16_output.addr.093, align 2 - %add62 = add nuw i64 %pos.092, 2 + %add62 = add i64 %pos.092, 2 br label %while.cond.backedge if.else63: ; preds = %if.else @@ -4483,7 +4486,7 @@ cond.end24: ; preds = %if.end13 %or.i81 = shl nuw nsw i16 %conv20, 8 %incdec.ptr26 = getelementptr inbounds i16, ptr %utf16_output.addr.093, i64 1 store i16 %or.i81, ptr %utf16_output.addr.093, align 2 - %inc27 = add nuw i64 %pos.092, 1 + %inc27 = add i64 %pos.092, 1 br label %while.cond.backedge if.else: ; preds = %if.end13 @@ -4492,7 +4495,7 @@ if.else: ; preds = %if.end13 br i1 %cmp30, label %if.then31, label %if.else63 if.then31: ; preds = %if.else - %add32 = add nuw i64 %pos.092, 1 + %add32 = add i64 %pos.092, 1 %cmp33.not = icmp ult i64 %add32, %len br i1 %cmp33.not, label %if.end35, label %return @@ -4517,7 +4520,7 @@ if.end59: ; preds = %if.end42 %or.i82 = tail call noundef i16 @llvm.bswap.i16(i16 %conv56) %incdec.ptr61 = getelementptr inbounds i16, ptr %utf16_output.addr.093, i64 1 store i16 %or.i82, ptr %utf16_output.addr.093, align 2 - %add62 = add nuw i64 %pos.092, 2 + %add62 = add i64 %pos.092, 2 br label %while.cond.backedge if.else63: ; preds = %if.else @@ -4714,7 +4717,7 @@ cond.end24: ; preds = %if.end13 %conv23 = zext nneg i8 %2 to i16 %incdec.ptr26 = getelementptr inbounds i16, ptr %utf16_output.addr.0113, i64 1 store i16 %conv23, ptr %utf16_output.addr.0113, align 2 - %inc27 = add nuw i64 %pos.0112, 1 + %inc27 = add i64 %pos.0112, 1 br label %while.cond.backedge if.else: ; preds = %if.end13 @@ -4723,7 +4726,7 @@ if.else: ; preds = %if.end13 br i1 %cmp30, label %if.then31, label %if.else63 if.then31: ; preds = %if.else - %add32 = add nuw i64 %pos.0112, 1 + %add32 = add i64 %pos.0112, 1 %cmp33.not = icmp ult i64 %add32, %len br i1 %cmp33.not, label %if.end35, label %return @@ -4747,7 +4750,7 @@ if.end59: ; preds = %if.end42 %conv60 = trunc i32 %or49 to i16 %incdec.ptr61 = getelementptr inbounds i16, ptr %utf16_output.addr.0113, i64 1 store i16 %conv60, ptr %utf16_output.addr.0113, align 2 - %add62 = add nuw i64 %pos.0112, 2 + %add62 = add i64 %pos.0112, 2 br label %while.cond.backedge if.else63: ; preds = %if.else @@ -4958,7 +4961,7 @@ cond.end24: ; preds = %if.end13 %or.i97 = shl nuw nsw i16 %conv20, 8 %incdec.ptr26 = getelementptr inbounds i16, ptr %utf16_output.addr.0113, i64 1 store i16 %or.i97, ptr %utf16_output.addr.0113, align 2 - %inc27 = add nuw i64 %pos.0112, 1 + %inc27 = add i64 %pos.0112, 1 br label %while.cond.backedge if.else: ; preds = %if.end13 @@ -4967,7 +4970,7 @@ if.else: ; preds = %if.end13 br i1 %cmp30, label %if.then31, label %if.else63 if.then31: ; preds = %if.else - %add32 = add nuw i64 %pos.0112, 1 + %add32 = add i64 %pos.0112, 1 %cmp33.not = icmp ult i64 %add32, %len br i1 %cmp33.not, label %if.end35, label %return @@ -4992,7 +4995,7 @@ if.end59: ; preds = %if.end42 %or.i98 = tail call noundef i16 @llvm.bswap.i16(i16 %conv56) %incdec.ptr61 = getelementptr inbounds i16, ptr %utf16_output.addr.0113, i64 1 store i16 %or.i98, ptr %utf16_output.addr.0113, align 2 - %add62 = add nuw i64 %pos.0112, 2 + %add62 = add i64 %pos.0112, 2 br label %while.cond.backedge if.else63: ; preds = %if.else @@ -5201,7 +5204,7 @@ cond.end22: ; preds = %if.end11 %conv21 = zext nneg i8 %2 to i16 %incdec.ptr24 = getelementptr inbounds i16, ptr %utf16_output.addr.068, i64 1 store i16 %conv21, ptr %utf16_output.addr.068, align 2 - %inc25 = add nuw i64 %pos.067, 1 + %inc25 = add i64 %pos.067, 1 br label %while.cond.backedge if.else: ; preds = %if.end11 @@ -5210,7 +5213,7 @@ if.else: ; preds = %if.end11 br i1 %cmp28, label %if.then29, label %if.else47 if.then29: ; preds = %if.else - %add30 = add nuw i64 %pos.067, 1 + %add30 = add i64 %pos.067, 1 %cmp31.not = icmp ult i64 %add30, %len br i1 %cmp31.not, label %if.end44, label %while.end126 @@ -5225,7 +5228,7 @@ if.end44: ; preds = %if.then29 %conv40 = trunc i32 %or to i16 %incdec.ptr45 = getelementptr inbounds i16, ptr %utf16_output.addr.068, i64 1 store i16 %conv40, ptr %utf16_output.addr.068, align 2 - %add46 = add nuw i64 %pos.067, 2 + %add46 = add i64 %pos.067, 2 br label %while.cond.backedge if.else47: ; preds = %if.else @@ -5380,7 +5383,7 @@ cond.end22: ; preds = %if.end11 %or.i56 = shl nuw nsw i16 %conv18, 8 %incdec.ptr24 = getelementptr inbounds i16, ptr %utf16_output.addr.068, i64 1 store i16 %or.i56, ptr %utf16_output.addr.068, align 2 - %inc25 = add nuw i64 %pos.067, 1 + %inc25 = add i64 %pos.067, 1 br label %while.cond.backedge if.else: ; preds = %if.end11 @@ -5389,7 +5392,7 @@ if.else: ; preds = %if.end11 br i1 %cmp28, label %if.then29, label %if.else47 if.then29: ; preds = %if.else - %add30 = add nuw i64 %pos.067, 1 + %add30 = add i64 %pos.067, 1 %cmp31.not = icmp ult i64 %add30, %len br i1 %cmp31.not, label %if.end44, label %while.end126 @@ -5405,7 +5408,7 @@ if.end44: ; preds = %if.then29 %or.i57 = tail call noundef i16 @llvm.bswap.i16(i16 %conv40) %incdec.ptr45 = getelementptr inbounds i16, ptr %utf16_output.addr.068, i64 1 store i16 %or.i57, ptr %utf16_output.addr.068, align 2 - %add46 = add nuw i64 %pos.067, 2 + %add46 = add i64 %pos.067, 2 br label %while.cond.backedge if.else47: ; preds = %if.else @@ -5566,7 +5569,7 @@ if.else: ; preds = %if.end10 br i1 %cmp20, label %if.then21, label %if.else46 if.then21: ; preds = %if.else - %add22 = add nuw i64 %pos.077, 1 + %add22 = add i64 %pos.077, 1 %cmp23.not = icmp ult i64 %add22, %len br i1 %cmp23.not, label %if.end25, label %return @@ -5769,7 +5772,7 @@ if.else: ; preds = %if.end10 br i1 %cmp20, label %if.then21, label %if.else46 if.then21: ; preds = %if.else - %add22 = add nuw i64 %pos.097, 1 + %add22 = add i64 %pos.097, 1 %cmp23.not = icmp ult i64 %add22, %len br i1 %cmp23.not, label %if.end25, label %return @@ -5980,7 +5983,7 @@ if.else: ; preds = %if.end8 br i1 %cmp18, label %if.then19, label %if.else32 if.then19: ; preds = %if.else - %add20 = add nuw i64 %pos.052, 1 + %add20 = add i64 %pos.052, 1 %cmp21.not = icmp ult i64 %add20, %len br i1 %cmp21.not, label %if.end23, label %while.end93 @@ -6347,7 +6350,7 @@ if.then53.i: ; preds = %cond.end48.i %conv56.i = trunc i16 %4 to i8 %incdec.ptr57.i = getelementptr inbounds i8, ptr %latin_output.addr.044.i, i64 1 store i8 %conv56.i, ptr %latin_output.addr.044.i, align 1 - %inc58.i = add nuw i64 %pos.043.i, 1 + %inc58.i = add i64 %pos.043.i, 1 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i, %if.then53.i, %while.cond33.preheader.i @@ -6436,7 +6439,7 @@ if.then53.i: ; preds = %cond.end48.i %conv56.i = trunc i16 %or.i35.i to i8 %incdec.ptr57.i = getelementptr inbounds i8, ptr %latin_output.addr.044.i, i64 1 store i8 %conv56.i, ptr %latin_output.addr.044.i, align 1 - %inc58.i = add nuw i64 %pos.043.i, 1 + %inc58.i = add i64 %pos.043.i, 1 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i, %if.then53.i, %while.cond33.preheader.i @@ -6570,7 +6573,7 @@ if.then26: ; preds = %cond.end21 %conv27 = trunc i16 %2 to i8 %incdec.ptr28 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 1 store i8 %conv27, ptr %utf8_output.addr.062, align 1 - %inc29 = add nuw i64 %pos.061, 1 + %inc29 = add i64 %pos.061, 1 br label %while.cond.backedge if.else: ; preds = %cond.end21 @@ -6591,7 +6594,7 @@ if.then33: ; preds = %if.else %conv42 = or disjoint i8 %6, -128 %incdec.ptr43 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 2 store i8 %conv42, ptr %incdec.ptr38, align 1 - %inc44 = add nuw i64 %pos.061, 1 + %inc44 = add i64 %pos.061, 1 br label %while.cond.backedge if.then49: ; preds = %if.else @@ -6611,11 +6614,11 @@ if.then49: ; preds = %if.else %conv64 = or disjoint i8 %11, -128 %incdec.ptr65 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 3 store i8 %conv64, ptr %incdec.ptr60, align 1 - %inc66 = add nuw i64 %pos.061, 1 + %inc66 = add i64 %pos.061, 1 br label %while.cond.backedge if.else67: ; preds = %if.else - %add68 = add nuw i64 %pos.061, 1 + %add68 = add i64 %pos.061, 1 %cmp69.not = icmp ult i64 %add68, %len br i1 %cmp69.not, label %if.end71, label %return @@ -6659,7 +6662,7 @@ if.end94: ; preds = %cond.end86 %conv116 = or disjoint i8 %19, -128 %incdec.ptr117 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 4 store i8 %conv116, ptr %incdec.ptr113, align 1 - %add118 = add nuw i64 %pos.061, 2 + %add118 = add i64 %pos.061, 2 br label %while.cond.backedge while.cond.backedge: ; preds = %cond.end, %if.then26, %if.then49, %if.end94, %if.then33, %while.cond6.preheader @@ -6740,7 +6743,7 @@ if.then26: ; preds = %cond.end21 %conv27 = trunc i16 %or.i53 to i8 %incdec.ptr28 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 1 store i8 %conv27, ptr %utf8_output.addr.062, align 1 - %inc29 = add nuw i64 %pos.061, 1 + %inc29 = add i64 %pos.061, 1 br label %while.cond.backedge if.else: ; preds = %cond.end21 @@ -6761,7 +6764,7 @@ if.then33: ; preds = %if.else %conv42 = or disjoint i8 %6, -128 %incdec.ptr43 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 2 store i8 %conv42, ptr %incdec.ptr38, align 1 - %inc44 = add nuw i64 %pos.061, 1 + %inc44 = add i64 %pos.061, 1 br label %while.cond.backedge if.then49: ; preds = %if.else @@ -6781,11 +6784,11 @@ if.then49: ; preds = %if.else %conv64 = or disjoint i8 %11, -128 %incdec.ptr65 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 3 store i8 %conv64, ptr %incdec.ptr60, align 1 - %inc66 = add nuw i64 %pos.061, 1 + %inc66 = add i64 %pos.061, 1 br label %while.cond.backedge if.else67: ; preds = %if.else - %add68 = add nuw i64 %pos.061, 1 + %add68 = add i64 %pos.061, 1 %cmp69.not = icmp ult i64 %add68, %len br i1 %cmp69.not, label %if.end71, label %return @@ -6830,7 +6833,7 @@ if.end94: ; preds = %cond.end86 %conv116 = or disjoint i8 %19, -128 %incdec.ptr117 = getelementptr inbounds i8, ptr %utf8_output.addr.062, i64 4 store i8 %conv116, ptr %incdec.ptr113, align 1 - %add118 = add nuw i64 %pos.061, 2 + %add118 = add i64 %pos.061, 2 br label %while.cond.backedge while.cond.backedge: ; preds = %cond.end, %if.then26, %if.then49, %if.end94, %if.then33, %while.cond6.preheader @@ -6908,7 +6911,7 @@ if.then26: ; preds = %cond.end21 %conv27 = trunc i16 %2 to i8 %incdec.ptr28 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 1 store i8 %conv27, ptr %utf8_output.addr.066, align 1 - %inc29 = add nuw i64 %pos.065, 1 + %inc29 = add i64 %pos.065, 1 br label %while.cond.backedge if.else: ; preds = %cond.end21 @@ -6929,7 +6932,7 @@ if.then33: ; preds = %if.else %conv42 = or disjoint i8 %6, -128 %incdec.ptr43 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 2 store i8 %conv42, ptr %incdec.ptr38, align 1 - %inc44 = add nuw i64 %pos.065, 1 + %inc44 = add i64 %pos.065, 1 br label %while.cond.backedge if.then49: ; preds = %if.else @@ -6949,11 +6952,11 @@ if.then49: ; preds = %if.else %conv64 = or disjoint i8 %11, -128 %incdec.ptr65 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 3 store i8 %conv64, ptr %incdec.ptr60, align 1 - %inc66 = add nuw i64 %pos.065, 1 + %inc66 = add i64 %pos.065, 1 br label %while.cond.backedge if.else67: ; preds = %if.else - %add68 = add nuw i64 %pos.065, 1 + %add68 = add i64 %pos.065, 1 %cmp69.not = icmp ult i64 %add68, %len br i1 %cmp69.not, label %if.end71, label %return @@ -6997,7 +7000,7 @@ if.end94: ; preds = %cond.end86 %conv116 = or disjoint i8 %19, -128 %incdec.ptr117 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 4 store i8 %conv116, ptr %incdec.ptr113, align 1 - %add118 = add nuw i64 %pos.065, 2 + %add118 = add i64 %pos.065, 2 br label %while.cond.backedge while.cond.backedge: ; preds = %cond.end, %if.then26, %if.then49, %if.end94, %if.then33, %while.cond6.preheader @@ -7081,7 +7084,7 @@ if.then26: ; preds = %cond.end21 %conv27 = trunc i16 %or.i56 to i8 %incdec.ptr28 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 1 store i8 %conv27, ptr %utf8_output.addr.066, align 1 - %inc29 = add nuw i64 %pos.065, 1 + %inc29 = add i64 %pos.065, 1 br label %while.cond.backedge if.else: ; preds = %cond.end21 @@ -7102,7 +7105,7 @@ if.then33: ; preds = %if.else %conv42 = or disjoint i8 %6, -128 %incdec.ptr43 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 2 store i8 %conv42, ptr %incdec.ptr38, align 1 - %inc44 = add nuw i64 %pos.065, 1 + %inc44 = add i64 %pos.065, 1 br label %while.cond.backedge if.then49: ; preds = %if.else @@ -7122,11 +7125,11 @@ if.then49: ; preds = %if.else %conv64 = or disjoint i8 %11, -128 %incdec.ptr65 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 3 store i8 %conv64, ptr %incdec.ptr60, align 1 - %inc66 = add nuw i64 %pos.065, 1 + %inc66 = add i64 %pos.065, 1 br label %while.cond.backedge if.else67: ; preds = %if.else - %add68 = add nuw i64 %pos.065, 1 + %add68 = add i64 %pos.065, 1 %cmp69.not = icmp ult i64 %add68, %len br i1 %cmp69.not, label %if.end71, label %return @@ -7171,7 +7174,7 @@ if.end94: ; preds = %cond.end86 %conv116 = or disjoint i8 %19, -128 %incdec.ptr117 = getelementptr inbounds i8, ptr %utf8_output.addr.066, i64 4 store i8 %conv116, ptr %incdec.ptr113, align 1 - %add118 = add nuw i64 %pos.065, 2 + %add118 = add i64 %pos.065, 2 br label %while.cond.backedge while.cond.backedge: ; preds = %cond.end, %if.then26, %if.then49, %if.end94, %if.then33, %while.cond6.preheader @@ -7245,7 +7248,7 @@ if.then26.i: ; preds = %cond.end21.i %conv27.i = trunc i16 %2 to i8 %incdec.ptr28.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 1 store i8 %conv27.i, ptr %utf8_output.addr.060.i, align 1 - %inc29.i = add nuw i64 %pos.059.i, 1 + %inc29.i = add i64 %pos.059.i, 1 br label %while.cond.backedge.i if.else.i: ; preds = %cond.end21.i @@ -7266,7 +7269,7 @@ if.then33.i: ; preds = %if.else.i %conv42.i = or disjoint i8 %6, -128 %incdec.ptr43.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 2 store i8 %conv42.i, ptr %incdec.ptr38.i, align 1 - %inc44.i = add nuw i64 %pos.059.i, 1 + %inc44.i = add i64 %pos.059.i, 1 br label %while.cond.backedge.i if.then49.i: ; preds = %if.else.i @@ -7286,11 +7289,11 @@ if.then49.i: ; preds = %if.else.i %conv64.i = or disjoint i8 %11, -128 %incdec.ptr65.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 3 store i8 %conv64.i, ptr %incdec.ptr60.i, align 1 - %inc66.i = add nuw i64 %pos.059.i, 1 + %inc66.i = add i64 %pos.059.i, 1 br label %while.cond.backedge.i if.else67.i: ; preds = %if.else.i - %add70.i = add nuw i64 %pos.059.i, 1 + %add70.i = add i64 %pos.059.i, 1 %cmp71.not.i = icmp ult i64 %add70.i, %len br i1 %cmp71.not.i, label %cond.end82.i, label %_ZN7simdutf6scalar12_GLOBAL__N_113utf16_to_utf813convert_validILNS_10endiannessE0EEEmPKDsmPc.exit @@ -7326,7 +7329,7 @@ cond.end82.i: ; preds = %if.else67.i %conv108.i = or disjoint i8 %19, -128 %incdec.ptr109.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 4 store i8 %conv108.i, ptr %incdec.ptr105.i, align 1 - %add110.i = add nuw i64 %pos.059.i, 2 + %add110.i = add i64 %pos.059.i, 2 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i, %cond.end82.i, %if.then49.i, %if.then33.i, %if.then26.i, %while.cond6.preheader.i @@ -7400,7 +7403,7 @@ if.then26.i: ; preds = %cond.end21.i %conv27.i = trunc i16 %or.i51.i to i8 %incdec.ptr28.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 1 store i8 %conv27.i, ptr %utf8_output.addr.060.i, align 1 - %inc29.i = add nuw i64 %pos.059.i, 1 + %inc29.i = add i64 %pos.059.i, 1 br label %while.cond.backedge.i if.else.i: ; preds = %cond.end21.i @@ -7421,7 +7424,7 @@ if.then33.i: ; preds = %if.else.i %conv42.i = or disjoint i8 %6, -128 %incdec.ptr43.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 2 store i8 %conv42.i, ptr %incdec.ptr38.i, align 1 - %inc44.i = add nuw i64 %pos.059.i, 1 + %inc44.i = add i64 %pos.059.i, 1 br label %while.cond.backedge.i if.then49.i: ; preds = %if.else.i @@ -7441,11 +7444,11 @@ if.then49.i: ; preds = %if.else.i %conv64.i = or disjoint i8 %11, -128 %incdec.ptr65.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 3 store i8 %conv64.i, ptr %incdec.ptr60.i, align 1 - %inc66.i = add nuw i64 %pos.059.i, 1 + %inc66.i = add i64 %pos.059.i, 1 br label %while.cond.backedge.i if.else67.i: ; preds = %if.else.i - %add70.i = add nuw i64 %pos.059.i, 1 + %add70.i = add i64 %pos.059.i, 1 %cmp71.not.i = icmp ult i64 %add70.i, %len br i1 %cmp71.not.i, label %cond.end82.i, label %_ZN7simdutf6scalar12_GLOBAL__N_113utf16_to_utf813convert_validILNS_10endiannessE1EEEmPKDsmPc.exit @@ -7482,7 +7485,7 @@ cond.end82.i: ; preds = %if.else67.i %conv108.i = or disjoint i8 %19, -128 %incdec.ptr109.i = getelementptr inbounds i8, ptr %utf8_output.addr.060.i, i64 4 store i8 %conv108.i, ptr %incdec.ptr105.i, align 1 - %add110.i = add nuw i64 %pos.059.i, 2 + %add110.i = add i64 %pos.059.i, 2 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i, %cond.end82.i, %if.then49.i, %if.then33.i, %if.then26.i, %while.cond6.preheader.i @@ -8499,7 +8502,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i, %pos.022.i + %add35.i = add i64 %.sink.i, %pos.022.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %len br i1 %cmp.i, label %cond.end.i, label %while.end.i, !llvm.loop !87 @@ -8564,7 +8567,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i, %pos.022.i + %add35.i = add i64 %.sink.i, %pos.022.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %len br i1 %cmp.i, label %cond.end.i, label %while.end.i, !llvm.loop !88 @@ -8627,7 +8630,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i = add nuw i64 %.sink.i, %pos.026.i + %add35.i = add i64 %.sink.i, %pos.026.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %len br i1 %cmp.i, label %cond.end.i, label %while.end.i, !llvm.loop !89 @@ -8695,7 +8698,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i = add nuw i64 %.sink.i, %pos.026.i + %add35.i = add i64 %.sink.i, %pos.026.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %len br i1 %cmp.i, label %cond.end.i, label %while.end.i, !llvm.loop !90 @@ -8753,7 +8756,7 @@ if.end28.i: ; preds = %cond.end17.i, %cond %add25.sink.i = phi i32 [ %add25.i, %cond.end17.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %cond.end17.i ], [ 1, %cond.end.i ] store i32 %add25.sink.i, ptr %utf32_output.addr.021.i, align 4 - %add27.i = add nuw i64 %.sink.i, %pos.020.i + %add27.i = add i64 %.sink.i, %pos.020.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.021.i, i64 1 %cmp.i = icmp ult i64 %add27.i, %len br i1 %cmp.i, label %cond.end.i, label %while.end.i, !llvm.loop !91 @@ -8810,7 +8813,7 @@ if.end28.i: ; preds = %cond.end17.i, %cond %add25.sink.i = phi i32 [ %add25.i, %cond.end17.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %cond.end17.i ], [ 1, %cond.end.i ] store i32 %add25.sink.i, ptr %utf32_output.addr.021.i, align 4 - %add27.i = add nuw i64 %.sink.i, %pos.020.i + %add27.i = add i64 %.sink.i, %pos.020.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.021.i, i64 1 %cmp.i = icmp ult i64 %add27.i, %len br i1 %cmp.i, label %cond.end.i, label %while.end.i, !llvm.loop !92 @@ -11493,7 +11496,7 @@ if.else.i: ; preds = %if.end10.i br i1 %cmp18.i, label %if.then19.i, label %if.else47.i if.then19.i: ; preds = %if.else.i - %add20.i = add nuw i64 %pos.052.i, 1 + %add20.i = add i64 %pos.052.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %sub br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf8_to_latin119convert_with_errorsEPKcmPc.exit @@ -11539,7 +11542,7 @@ if.end64.i: ; preds = %if.end43.i, %if.end %conv44.sink.i = phi i8 [ %conv44.i, %if.end43.i ], [ %37, %if.end10.i ] %.sink.i = phi i64 [ 2, %if.end43.i ], [ 1, %if.end10.i ] store i8 %conv44.sink.i, ptr %latin_output.addr.053.i, align 1 - %add46.i = add nuw i64 %.sink.i, %pos.052.i + %add46.i = add i64 %.sink.i, %pos.052.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.053.i, i64 1 br label %while.cond.backedge.i @@ -21686,7 +21689,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i13 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i13, %pos.022.i + %add35.i = add i64 %.sink.i13, %pos.022.i %utf32_output.addr.1.i14 = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i15 = icmp ult i64 %add35.i, %sub br i1 %cmp.i15, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE0EEEmPKDsmPDi.exit, !llvm.loop !87 @@ -21870,7 +21873,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i13 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i13, %pos.022.i + %add35.i = add i64 %.sink.i13, %pos.022.i %utf32_output.addr.1.i14 = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i15 = icmp ult i64 %add35.i, %sub br i1 %cmp.i15, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE1EEEmPKDsmPDi.exit, !llvm.loop !88 @@ -22041,7 +22044,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i18 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i = add nuw i64 %.sink.i18, %pos.026.i + %add35.i = add i64 %.sink.i18, %pos.026.i %utf32_output.addr.1.i19 = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i20 = icmp ult i64 %add35.i, %sub br i1 %cmp.i20, label %cond.end.i, label %while.end.i21, !llvm.loop !89 @@ -22098,7 +22101,7 @@ if.else.i56: ; preds = %cond.end.i33 br i1 %cmp8.i59, label %if.then28, label %if.end.i60 if.end.i60: ; preds = %if.else.i56 - %add.i61 = add nuw i64 %pos.026.i35, 1 + %add.i61 = add i64 %pos.026.i35, 1 %cmp10.not.i62 = icmp ult i64 %add.i61, %sub24 br i1 %cmp10.not.i62, label %cond.end21.i63, label %if.then28 @@ -22120,7 +22123,7 @@ if.end36.i40: ; preds = %if.end29.i67, %cond %add33.sink.i41 = phi i32 [ %add33.i71, %if.end29.i67 ], [ %conv.i37, %cond.end.i33 ] %.sink.i42 = phi i64 [ 2, %if.end29.i67 ], [ 1, %cond.end.i33 ] store i32 %add33.sink.i41, ptr %utf32_output.addr.027.i34, align 4 - %add35.i43 = add nuw i64 %.sink.i42, %pos.026.i35 + %add35.i43 = add i64 %.sink.i42, %pos.026.i35 %utf32_output.addr.1.i44 = getelementptr inbounds i32, ptr %utf32_output.addr.027.i34, i64 1 %cmp.i45 = icmp ult i64 %add35.i43, %sub24 br i1 %cmp.i45, label %cond.end.i33, label %if.else.loopexit, !llvm.loop !89 @@ -22305,7 +22308,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i18 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i = add nuw i64 %.sink.i18, %pos.026.i + %add35.i = add i64 %.sink.i18, %pos.026.i %utf32_output.addr.1.i19 = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i20 = icmp ult i64 %add35.i, %sub br i1 %cmp.i20, label %cond.end.i, label %while.end.i21, !llvm.loop !90 @@ -22363,7 +22366,7 @@ if.else.i56: ; preds = %cond.end.i32 br i1 %cmp8.i59, label %if.then28, label %if.end.i60 if.end.i60: ; preds = %if.else.i56 - %add.i61 = add nuw i64 %pos.026.i34, 1 + %add.i61 = add i64 %pos.026.i34, 1 %cmp10.not.i62 = icmp ult i64 %add.i61, %sub24 br i1 %cmp10.not.i62, label %cond.end21.i63, label %if.then28 @@ -22386,7 +22389,7 @@ if.end36.i40: ; preds = %if.end29.i68, %cond %add33.sink.i41 = phi i32 [ %add33.i72, %if.end29.i68 ], [ %conv.i37, %cond.end.i32 ] %.sink.i42 = phi i64 [ 2, %if.end29.i68 ], [ 1, %cond.end.i32 ] store i32 %add33.sink.i41, ptr %utf32_output.addr.027.i33, align 4 - %add35.i43 = add nuw i64 %.sink.i42, %pos.026.i34 + %add35.i43 = add i64 %.sink.i42, %pos.026.i34 %utf32_output.addr.1.i44 = getelementptr inbounds i32, ptr %utf32_output.addr.027.i33, i64 1 %cmp.i45 = icmp ult i64 %add35.i43, %sub24 br i1 %cmp.i45, label %cond.end.i32, label %if.else.loopexit, !llvm.loop !90 @@ -22578,7 +22581,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i13 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i13, %pos.022.i + %add35.i = add i64 %.sink.i13, %pos.022.i %utf32_output.addr.1.i14 = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i15 = icmp ult i64 %add35.i, %sub br i1 %cmp.i15, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE0EEEmPKDsmPDi.exit, !llvm.loop !87 @@ -22762,7 +22765,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i13 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i13, %pos.022.i + %add35.i = add i64 %.sink.i13, %pos.022.i %utf32_output.addr.1.i14 = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i15 = icmp ult i64 %add35.i, %sub br i1 %cmp.i15, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE1EEEmPKDsmPDi.exit, !llvm.loop !88 @@ -26164,7 +26167,7 @@ if.end27.i: ; preds = %if.else.i, %if.then %or18.sink.i = phi i8 [ %25, %if.then14.i ], [ %or18.i, %if.else.i ] %utf8_output.addr.2.i = phi ptr [ %incdec.ptr15.i, %if.then14.i ], [ %incdec.ptr25.i, %if.else.i ] store i8 %or18.sink.i, ptr %utf8_output.addr.029.i, align 1 - %pos.2.i = add nuw i64 %pos.028.i, 1 + %pos.2.i = add i64 %pos.028.i, 1 br label %while.cond.backedge.i15 while.cond.backedge.i15: ; preds = %while.body9.i, %if.end27.i, %while.cond7.preheader.i @@ -26633,7 +26636,7 @@ if.else.i414: ; preds = %if.end10.i br i1 %cmp18.i, label %if.then19.i, label %_ZN7simdutf7haswell12_GLOBAL__N_114utf8_to_latin121validating_transcoder7convertEPKcmPc.exit if.then19.i: ; preds = %if.else.i414 - %add20.i = add nuw i64 %pos.036.i, 1 + %add20.i = add i64 %pos.036.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %sub37.i br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf7haswell12_GLOBAL__N_114utf8_to_latin121validating_transcoder7convertEPKcmPc.exit @@ -26657,7 +26660,7 @@ if.end47.i: ; preds = %if.end41.i416, %if. %or37.sink.i = phi i8 [ %or37.i, %if.end41.i416 ], [ %55, %if.end10.i ] %.sink.i = phi i64 [ 2, %if.end41.i416 ], [ 1, %if.end10.i ] store i8 %or37.sink.i, ptr %latin_output.addr.037.i, align 1 - %add44.i = add nuw i64 %.sink.i, %pos.036.i + %add44.i = add i64 %.sink.i, %pos.036.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.037.i, i64 1 br label %while.cond.backedge.i @@ -27129,7 +27132,7 @@ if.else.i74: ; preds = %if.end10.i br i1 %cmp18.i, label %if.then19.i, label %_ZN7simdutf7haswell12_GLOBAL__N_114utf8_to_latin113convert_validEPKcmPc.exit if.then19.i: ; preds = %if.else.i74 - %add20.i = add nuw i64 %pos.036.i, 1 + %add20.i = add i64 %pos.036.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %sub25.i br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf7haswell12_GLOBAL__N_114utf8_to_latin113convert_validEPKcmPc.exit @@ -27153,7 +27156,7 @@ if.end47.i: ; preds = %if.end41.i, %if.end %or37.sink.i = phi i8 [ %or37.i, %if.end41.i ], [ %26, %if.end10.i ] %.sink.i = phi i64 [ 2, %if.end41.i ], [ 1, %if.end10.i ] store i8 %or37.sink.i, ptr %latin_output.addr.037.i, align 1 - %add44.i = add nuw i64 %.sink.i, %pos.036.i + %add44.i = add i64 %.sink.i, %pos.036.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.037.i, i64 1 br label %while.cond.backedge.i @@ -30821,7 +30824,7 @@ if.then53.i: ; preds = %cond.end48.i %conv56.i = trunc i16 %18 to i8 %incdec.ptr57.i = getelementptr inbounds i8, ptr %latin_output.addr.044.i, i64 1 store i8 %conv56.i, ptr %latin_output.addr.044.i, align 1 - %inc58.i = add nuw i64 %pos.043.i, 1 + %inc58.i = add i64 %pos.043.i, 1 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i19, %if.then53.i, %while.cond33.preheader.i @@ -30996,7 +30999,7 @@ if.then53.i: ; preds = %cond.end48.i %conv56.i = trunc i16 %or.i35.i to i8 %incdec.ptr57.i = getelementptr inbounds i8, ptr %latin_output.addr.044.i, i64 1 store i8 %conv56.i, ptr %latin_output.addr.044.i, align 1 - %inc58.i = add nuw i64 %pos.043.i, 1 + %inc58.i = add i64 %pos.043.i, 1 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i19, %if.then53.i, %while.cond33.preheader.i @@ -33650,7 +33653,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i12, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i, %pos.022.i + %add35.i = add i64 %.sink.i, %pos.022.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %sub br i1 %cmp.i, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE0EEEmPKDsmPDi.exit, !llvm.loop !87 @@ -33834,7 +33837,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i14, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i, %pos.022.i + %add35.i = add i64 %.sink.i, %pos.022.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %sub br i1 %cmp.i, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE1EEEmPKDsmPDi.exit, !llvm.loop !88 @@ -33990,7 +33993,7 @@ if.else.i22: ; preds = %cond.end.i br i1 %cmp8.i, label %if.then11, label %if.end.i if.end.i: ; preds = %if.else.i22 - %add.i = add nuw i64 %pos.026.i, 1 + %add.i = add i64 %pos.026.i, 1 %cmp10.not.i = icmp ult i64 %add.i, %sub br i1 %cmp10.not.i, label %cond.end21.i, label %if.then11 @@ -34012,7 +34015,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i13, %cond.end.i ] %.sink.i15 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i = add nuw i64 %.sink.i15, %pos.026.i + %add35.i = add i64 %.sink.i15, %pos.026.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %sub br i1 %cmp.i, label %cond.end.i, label %if.else, !llvm.loop !89 @@ -34188,7 +34191,7 @@ if.else.i24: ; preds = %cond.end.i br i1 %cmp8.i, label %if.then11, label %if.end.i if.end.i: ; preds = %if.else.i24 - %add.i = add nuw i64 %pos.026.i, 1 + %add.i = add i64 %pos.026.i, 1 %cmp10.not.i = icmp ult i64 %add.i, %sub br i1 %cmp10.not.i, label %cond.end21.i, label %if.then11 @@ -34211,7 +34214,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i15, %cond.end.i ] %.sink.i17 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i = add nuw i64 %.sink.i17, %pos.026.i + %add35.i = add i64 %.sink.i17, %pos.026.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %sub br i1 %cmp.i, label %cond.end.i, label %if.else, !llvm.loop !90 @@ -35668,7 +35671,7 @@ if.end36.i.i: ; preds = %if.end29.i.i, %cond %add33.sink.i.i = phi i32 [ %add33.i.i, %if.end29.i.i ], [ %conv.i12.i, %cond.end.i.i ] %.sink.i.i = phi i64 [ 2, %if.end29.i.i ], [ 1, %cond.end.i.i ] store i32 %add33.sink.i.i, ptr %utf32_output.addr.023.i.i, align 4 - %add35.i.i = add nuw i64 %.sink.i.i, %pos.022.i.i + %add35.i.i = add i64 %.sink.i.i, %pos.022.i.i %utf32_output.addr.1.i.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i.i, i64 1 %cmp.i.i = icmp ult i64 %add35.i.i, %sub.i br i1 %cmp.i.i, label %cond.end.i.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE0EEEmPKDsmPDi.exit.i, !llvm.loop !87 @@ -35852,7 +35855,7 @@ if.end36.i.i: ; preds = %if.end29.i.i, %cond %add33.sink.i.i = phi i32 [ %add33.i.i, %if.end29.i.i ], [ %conv.i14.i, %cond.end.i.i ] %.sink.i.i = phi i64 [ 2, %if.end29.i.i ], [ 1, %cond.end.i.i ] store i32 %add33.sink.i.i, ptr %utf32_output.addr.023.i.i, align 4 - %add35.i.i = add nuw i64 %.sink.i.i, %pos.022.i.i + %add35.i.i = add i64 %.sink.i.i, %pos.022.i.i %utf32_output.addr.1.i.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i.i, i64 1 %cmp.i.i = icmp ult i64 %add35.i.i, %sub.i br i1 %cmp.i.i, label %cond.end.i.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE1EEEmPKDsmPDi.exit.i, !llvm.loop !88 @@ -39363,7 +39366,7 @@ if.end27.i: ; preds = %if.else.i9, %if.the %or18.sink.i = phi i8 [ %59, %if.then14.i ], [ %or18.i, %if.else.i9 ] %utf8_output.addr.2.i = phi ptr [ %incdec.ptr15.i, %if.then14.i ], [ %incdec.ptr25.i, %if.else.i9 ] store i8 %or18.sink.i, ptr %utf8_output.addr.029.i, align 1 - %pos.2.i = add nuw i64 %pos.028.i, 1 + %pos.2.i = add i64 %pos.028.i, 1 br label %while.cond.backedge.i10 while.cond.backedge.i10: ; preds = %while.body9.i, %if.end27.i, %while.cond7.preheader.i @@ -39900,7 +39903,7 @@ if.else.i289: ; preds = %if.end10.i287 br i1 %cmp18.i, label %if.then19.i, label %_ZN7simdutf8westmere12_GLOBAL__N_114utf8_to_latin121validating_transcoder7convertEPKcmPc.exit if.then19.i: ; preds = %if.else.i289 - %add20.i = add nuw i64 %pos.036.i, 1 + %add20.i = add i64 %pos.036.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %sub115.i br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf8westmere12_GLOBAL__N_114utf8_to_latin121validating_transcoder7convertEPKcmPc.exit @@ -39924,7 +39927,7 @@ if.end47.i: ; preds = %if.end41.i, %if.end %or37.sink.i = phi i8 [ %or37.i, %if.end41.i ], [ %86, %if.end10.i287 ] %.sink.i = phi i64 [ 2, %if.end41.i ], [ 1, %if.end10.i287 ] store i8 %or37.sink.i, ptr %latin_output.addr.037.i, align 1 - %add44.i = add nuw i64 %.sink.i, %pos.036.i + %add44.i = add i64 %.sink.i, %pos.036.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.037.i, i64 1 br label %while.cond.backedge.i @@ -40468,7 +40471,7 @@ if.else.i67: ; preds = %if.end10.i65 br i1 %cmp18.i, label %if.then19.i, label %_ZN7simdutf8westmere12_GLOBAL__N_114utf8_to_latin113convert_validEPKcmPc.exit if.then19.i: ; preds = %if.else.i67 - %add20.i = add nuw i64 %pos.036.i, 1 + %add20.i = add i64 %pos.036.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %sub25.i br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf8westmere12_GLOBAL__N_114utf8_to_latin113convert_validEPKcmPc.exit @@ -40492,7 +40495,7 @@ if.end47.i: ; preds = %if.end41.i, %if.end %or37.sink.i = phi i8 [ %or37.i, %if.end41.i ], [ %33, %if.end10.i65 ] %.sink.i = phi i64 [ 2, %if.end41.i ], [ 1, %if.end10.i65 ] store i8 %or37.sink.i, ptr %latin_output.addr.037.i, align 1 - %add44.i = add nuw i64 %.sink.i, %pos.036.i + %add44.i = add i64 %.sink.i, %pos.036.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.037.i, i64 1 br label %while.cond.backedge.i @@ -44895,7 +44898,7 @@ if.then53.i: ; preds = %cond.end48.i %conv56.i = trunc i16 %12 to i8 %incdec.ptr57.i = getelementptr inbounds i8, ptr %latin_output.addr.044.i, i64 1 store i8 %conv56.i, ptr %latin_output.addr.044.i, align 1 - %inc58.i = add nuw i64 %pos.043.i, 1 + %inc58.i = add i64 %pos.043.i, 1 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i19, %if.then53.i, %while.cond33.preheader.i @@ -45065,7 +45068,7 @@ if.then53.i: ; preds = %cond.end48.i %conv56.i = trunc i16 %or.i35.i to i8 %incdec.ptr57.i = getelementptr inbounds i8, ptr %latin_output.addr.044.i, i64 1 store i8 %conv56.i, ptr %latin_output.addr.044.i, align 1 - %inc58.i = add nuw i64 %pos.043.i, 1 + %inc58.i = add i64 %pos.043.i, 1 br label %while.cond.backedge.i while.cond.backedge.i: ; preds = %cond.end.i19, %if.then53.i, %while.cond33.preheader.i @@ -47797,7 +47800,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i = add nuw i64 %.sink.i, %pos.022.i + %add35.i = add i64 %.sink.i, %pos.022.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %sub br i1 %cmp.i, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE0EEEmPKDsmPDi.exit, !llvm.loop !87 @@ -47980,7 +47983,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.023.i, align 4 - %add35.i15 = add nuw i64 %.sink.i, %pos.022.i + %add35.i15 = add i64 %.sink.i, %pos.022.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i, i64 1 %cmp.i = icmp ult i64 %add35.i15, %sub br i1 %cmp.i, label %cond.end.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE1EEEmPKDsmPDi.exit, !llvm.loop !88 @@ -48135,7 +48138,7 @@ if.else.i22: ; preds = %cond.end.i br i1 %cmp8.i24, label %if.then11, label %if.end.i if.end.i: ; preds = %if.else.i22 - %add.i = add nuw i64 %pos.026.i, 1 + %add.i = add i64 %pos.026.i, 1 %cmp10.not.i = icmp ult i64 %add.i, %sub br i1 %cmp10.not.i, label %cond.end21.i, label %if.then11 @@ -48157,7 +48160,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i15 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i = add nuw i64 %.sink.i15, %pos.026.i + %add35.i = add i64 %.sink.i15, %pos.026.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i = icmp ult i64 %add35.i, %sub br i1 %cmp.i, label %cond.end.i, label %if.else, !llvm.loop !89 @@ -48332,7 +48335,7 @@ if.else.i24: ; preds = %cond.end.i br i1 %cmp8.i, label %if.then11, label %if.end.i if.end.i: ; preds = %if.else.i24 - %add.i = add nuw i64 %pos.026.i, 1 + %add.i = add i64 %pos.026.i, 1 %cmp10.not.i = icmp ult i64 %add.i, %sub br i1 %cmp10.not.i, label %cond.end21.i, label %if.then11 @@ -48355,7 +48358,7 @@ if.end36.i: ; preds = %if.end29.i, %cond.e %add33.sink.i = phi i32 [ %add33.i, %if.end29.i ], [ %conv.i, %cond.end.i ] %.sink.i16 = phi i64 [ 2, %if.end29.i ], [ 1, %cond.end.i ] store i32 %add33.sink.i, ptr %utf32_output.addr.027.i, align 4 - %add35.i17 = add nuw i64 %.sink.i16, %pos.026.i + %add35.i17 = add i64 %.sink.i16, %pos.026.i %utf32_output.addr.1.i = getelementptr inbounds i32, ptr %utf32_output.addr.027.i, i64 1 %cmp.i = icmp ult i64 %add35.i17, %sub br i1 %cmp.i, label %cond.end.i, label %if.else, !llvm.loop !90 @@ -49849,7 +49852,7 @@ if.end36.i.i: ; preds = %if.end29.i.i, %cond %add33.sink.i.i = phi i32 [ %add33.i.i, %if.end29.i.i ], [ %conv.i.i, %cond.end.i.i ] %.sink.i.i = phi i64 [ 2, %if.end29.i.i ], [ 1, %cond.end.i.i ] store i32 %add33.sink.i.i, ptr %utf32_output.addr.023.i.i, align 4 - %add35.i.i = add nuw i64 %.sink.i.i, %pos.022.i.i + %add35.i.i = add i64 %.sink.i.i, %pos.022.i.i %utf32_output.addr.1.i.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i.i, i64 1 %cmp.i.i = icmp ult i64 %add35.i.i, %sub.i br i1 %cmp.i.i, label %cond.end.i.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE0EEEmPKDsmPDi.exit.i, !llvm.loop !87 @@ -50032,7 +50035,7 @@ if.end36.i.i: ; preds = %if.end29.i.i, %cond %add33.sink.i.i = phi i32 [ %add33.i.i, %if.end29.i.i ], [ %conv.i.i, %cond.end.i.i ] %.sink.i.i = phi i64 [ 2, %if.end29.i.i ], [ 1, %cond.end.i.i ] store i32 %add33.sink.i.i, ptr %utf32_output.addr.023.i.i, align 4 - %add35.i15.i = add nuw i64 %.sink.i.i, %pos.022.i.i + %add35.i15.i = add i64 %.sink.i.i, %pos.022.i.i %utf32_output.addr.1.i.i = getelementptr inbounds i32, ptr %utf32_output.addr.023.i.i, i64 1 %cmp.i.i = icmp ult i64 %add35.i15.i, %sub.i br i1 %cmp.i.i, label %cond.end.i.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf16_to_utf327convertILNS_10endiannessE1EEEmPKDsmPDi.exit.i, !llvm.loop !88 @@ -53166,7 +53169,7 @@ if.else.i: ; preds = %if.end10.i br i1 %cmp18.i, label %if.then19.i, label %if.else47.i if.then19.i: ; preds = %if.else.i - %add20.i = add nuw i64 %pos.052.i, 1 + %add20.i = add i64 %pos.052.i, 1 %cmp21.not.i = icmp ult i64 %add20.i, %add br i1 %cmp21.not.i, label %if.end23.i, label %_ZN7simdutf6scalar12_GLOBAL__N_114utf8_to_latin119convert_with_errorsEPKcmPc.exit.thread @@ -53212,7 +53215,7 @@ if.end64.i: ; preds = %if.end43.i, %if.end %conv44.sink.i = phi i8 [ %conv44.i, %if.end43.i ], [ %4, %if.end10.i ] %.sink.i = phi i64 [ 2, %if.end43.i ], [ 1, %if.end10.i ] store i8 %conv44.sink.i, ptr %latin_output.addr.053.i, align 1 - %add46.i = add nuw i64 %.sink.i, %pos.052.i + %add46.i = add i64 %.sink.i, %pos.052.i %latin_output.addr.2.i = getelementptr inbounds i8, ptr %latin_output.addr.053.i, i64 1 br label %while.cond.backedge.i diff --git a/bench/nuklear/optimized/unity.c.ll b/bench/nuklear/optimized/unity.c.ll index 5773e1dd2b5..e973e11bad4 100644 --- a/bench/nuklear/optimized/unity.c.ll +++ b/bench/nuklear/optimized/unity.c.ll @@ -1101,7 +1101,7 @@ for.end: ; preds = %for.body, %for.cond %idx.ext = sext i32 %mul13 to i64 %add.ptr14 = getelementptr inbounds i8, ptr %key, i64 %idx.ext %and = and i32 %len, 3 - switch i32 %and, label %for.end.unreachabledefault [ + switch i32 %and, label %default.unreachable318 [ i32 3, label %sw.bb i32 2, label %sw.bb18 i32 1, label %sw.bb23 @@ -1145,7 +1145,7 @@ sw.bb23: ; preds = %for.end, %sw.bb18 %xor32 = xor i32 %mul31, %h1.0.lcssa br label %sw.epilog -for.end.unreachabledefault: ; preds = %for.end +default.unreachable318: ; preds = %for.end unreachable sw.epilog: ; preds = %for.end, %sw.bb23 @@ -12485,7 +12485,7 @@ sw.bb6: ; preds = %while.body if.end.i: ; preds = %sw.bb6 store <4 x float> %46, ptr %val.i, align 16 - switch i32 %59, label %nk_draw_vertex_color.exit [ + switch i32 %59, label %default.unreachable.i [ i32 11, label %sw.bb.i i32 8, label %sw.bb.i i32 12, label %sw.bb78.i @@ -12548,7 +12548,10 @@ sw.bb178.i: ; preds = %if.end.i, %if.end.i %call183.i = call fastcc ptr @nk_memcopy(ptr noundef %add.ptr1, ptr noundef nonnull %color.i, i64 noundef 4) br label %nk_draw_vertex_color.exit -nk_draw_vertex_color.exit: ; preds = %sw.bb6, %if.end.i, %sw.bb.i, %sw.bb78.i, %sw.bb88.i, %sw.bb103.i, %sw.bb123.i, %sw.bb139.i, %sw.bb159.i, %sw.bb162.i, %sw.bb178.i +default.unreachable.i: ; preds = %if.end.i + unreachable + +nk_draw_vertex_color.exit: ; preds = %sw.bb6, %sw.bb.i, %sw.bb78.i, %sw.bb88.i, %sw.bb103.i, %sw.bb123.i, %sw.bb139.i, %sw.bb159.i, %sw.bb162.i, %sw.bb178.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %val.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %col.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %bgra.i) diff --git a/bench/ocio/optimized/CTFReaderHelper.cpp.ll b/bench/ocio/optimized/CTFReaderHelper.cpp.ll index a28989c15fb..8fe251c5a39 100644 --- a/bench/ocio/optimized/CTFReaderHelper.cpp.ll +++ b/bench/ocio/optimized/CTFReaderHelper.cpp.ll @@ -35377,9 +35377,9 @@ while.body.lr.ph: ; preds = %cleanup.done while.body: ; preds = %while.body.lr.ph, %if.end174 %23 = phi ptr [ %22, %while.body.lr.ph ], [ %58, %if.end174 ] %arrayidx288 = phi ptr [ %atts, %while.body.lr.ph ], [ %arrayidx, %if.end174 ] - %validType.0287 = phi i8 [ 1, %while.body.lr.ph ], [ %validType.1296, %if.end174 ] + %validType.0287 = phi i8 [ 1, %while.body.lr.ph ], [ %validType.1297, %if.end174 ] %i.0285 = phi i32 [ 0, %while.body.lr.ph ], [ %add175, %if.end174 ] - %chan.0284 = phi i32 [ -1, %while.body.lr.ph ], [ %chan.1294, %if.end174 ] + %chan.0284 = phi i32 [ -1, %while.body.lr.ph ], [ %chan.1295, %if.end174 ] %call26 = call noundef i32 @_ZN19OpenColorIO_v2_4dev8Platform10StrcasecmpEPKcS2_(ptr noundef nonnull @_ZN19OpenColorIO_v2_4devL9ATTR_CHANE, ptr noundef nonnull %23) %cmp27 = icmp eq i32 %call26, 0 br i1 %cmp27, label %if.then, label %if.else63 @@ -35639,8 +35639,8 @@ if.end171: ; preds = %if.else39, %if.else br i1 %tobool172.not, label %if.then173, label %if.end174 if.then173: ; preds = %if.then157, %if.then146, %if.then133, %if.then120, %if.then107, %if.then94, %if.then81, %if.then68, %if.end171 - %validType.1297 = phi i8 [ %validType.0287, %if.end171 ], [ 0, %if.then68 ], [ 0, %if.then81 ], [ 0, %if.then94 ], [ 0, %if.then107 ], [ 0, %if.then120 ], [ 0, %if.then133 ], [ 0, %if.then146 ], [ 0, %if.then157 ] - %chan.1295 = phi i32 [ %chan.1, %if.end171 ], [ %chan.0284, %if.then68 ], [ %chan.0284, %if.then81 ], [ %chan.0284, %if.then94 ], [ %chan.0284, %if.then107 ], [ %chan.0284, %if.then120 ], [ %chan.0284, %if.then133 ], [ %chan.0284, %if.then146 ], [ %chan.0284, %if.then157 ] + %validType.1298 = phi i8 [ %validType.0287, %if.end171 ], [ 0, %if.then68 ], [ 0, %if.then81 ], [ 0, %if.then94 ], [ 0, %if.then107 ], [ 0, %if.then120 ], [ 0, %if.then133 ], [ 0, %if.then146 ], [ 0, %if.then157 ] + %chan.1296 = phi i32 [ %chan.1, %if.end171 ], [ %chan.0284, %if.then68 ], [ %chan.0284, %if.then81 ], [ %chan.0284, %if.then94 ], [ %chan.0284, %if.then107 ], [ %chan.0284, %if.then120 ], [ %chan.0284, %if.then133 ], [ %chan.0284, %if.then146 ], [ %chan.0284, %if.then157 ] call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %oss.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %oss.i) @@ -35683,8 +35683,8 @@ _ZN19OpenColorIO_v2_4dev12_GLOBAL__N_16ThrowMIA55_cJEEEvRKNS_16XmlReaderElementE br label %if.end174 if.end174: ; preds = %if.then.i135, %if.then157, %if.then.i127, %if.then146, %if.then.i119, %if.then133, %if.then.i111, %if.then120, %if.then.i103, %if.then107, %if.then.i95, %if.then94, %if.then.i87, %if.then81, %if.then.i, %if.then68, %_ZN19OpenColorIO_v2_4dev12_GLOBAL__N_16ThrowMIA55_cJEEEvRKNS_16XmlReaderElementERKT_DpT0_.exit, %if.end171 - %validType.1296 = phi i8 [ %validType.1297, %_ZN19OpenColorIO_v2_4dev12_GLOBAL__N_16ThrowMIA55_cJEEEvRKNS_16XmlReaderElementERKT_DpT0_.exit ], [ %validType.0287, %if.end171 ], [ 1, %if.then68 ], [ 1, %if.then.i ], [ 1, %if.then81 ], [ 1, %if.then.i87 ], [ 1, %if.then94 ], [ 1, %if.then.i95 ], [ 1, %if.then107 ], [ 1, %if.then.i103 ], [ 1, %if.then120 ], [ 1, %if.then.i111 ], [ 1, %if.then133 ], [ 1, %if.then.i119 ], [ 1, %if.then146 ], [ 1, %if.then.i127 ], [ 1, %if.then157 ], [ 1, %if.then.i135 ] - %chan.1294 = phi i32 [ %chan.1295, %_ZN19OpenColorIO_v2_4dev12_GLOBAL__N_16ThrowMIA55_cJEEEvRKNS_16XmlReaderElementERKT_DpT0_.exit ], [ %chan.1, %if.end171 ], [ %chan.0284, %if.then68 ], [ %chan.0284, %if.then.i ], [ %chan.0284, %if.then81 ], [ %chan.0284, %if.then.i87 ], [ %chan.0284, %if.then94 ], [ %chan.0284, %if.then.i95 ], [ %chan.0284, %if.then107 ], [ %chan.0284, %if.then.i103 ], [ %chan.0284, %if.then120 ], [ %chan.0284, %if.then.i111 ], [ %chan.0284, %if.then133 ], [ %chan.0284, %if.then.i119 ], [ %chan.0284, %if.then146 ], [ %chan.0284, %if.then.i127 ], [ %chan.0284, %if.then157 ], [ %chan.0284, %if.then.i135 ] + %validType.1297 = phi i8 [ %validType.1298, %_ZN19OpenColorIO_v2_4dev12_GLOBAL__N_16ThrowMIA55_cJEEEvRKNS_16XmlReaderElementERKT_DpT0_.exit ], [ %validType.0287, %if.end171 ], [ 1, %if.then68 ], [ 1, %if.then.i ], [ 1, %if.then81 ], [ 1, %if.then.i87 ], [ 1, %if.then94 ], [ 1, %if.then.i95 ], [ 1, %if.then107 ], [ 1, %if.then.i103 ], [ 1, %if.then120 ], [ 1, %if.then.i111 ], [ 1, %if.then133 ], [ 1, %if.then.i119 ], [ 1, %if.then146 ], [ 1, %if.then.i127 ], [ 1, %if.then157 ], [ 1, %if.then.i135 ] + %chan.1295 = phi i32 [ %chan.1296, %_ZN19OpenColorIO_v2_4dev12_GLOBAL__N_16ThrowMIA55_cJEEEvRKNS_16XmlReaderElementERKT_DpT0_.exit ], [ %chan.1, %if.end171 ], [ %chan.0284, %if.then68 ], [ %chan.0284, %if.then.i ], [ %chan.0284, %if.then81 ], [ %chan.0284, %if.then.i87 ], [ %chan.0284, %if.then94 ], [ %chan.0284, %if.then.i95 ], [ %chan.0284, %if.then107 ], [ %chan.0284, %if.then.i103 ], [ %chan.0284, %if.then120 ], [ %chan.0284, %if.then.i111 ], [ %chan.0284, %if.then133 ], [ %chan.0284, %if.then.i119 ], [ %chan.0284, %if.then146 ], [ %chan.0284, %if.then.i127 ], [ %chan.0284, %if.then157 ], [ %chan.0284, %if.then.i135 ] %add175 = add i32 %i.0285, 2 %idxprom = zext i32 %add175 to i64 %arrayidx = getelementptr inbounds ptr, ptr %atts, i64 %idxprom @@ -35693,7 +35693,7 @@ if.end174: ; preds = %if.then.i135, %if.t br i1 %tobool23.not, label %while.end, label %while.body, !llvm.loop !349 while.end: ; preds = %if.end174, %cleanup.done - %chan.0.lcssa = phi i32 [ -1, %cleanup.done ], [ %chan.1294, %if.end174 ] + %chan.0.lcssa = phi i32 [ -1, %cleanup.done ], [ %chan.1295, %if.end174 ] %m_type.i137 = getelementptr inbounds %"class.OpenColorIO_v2_4dev::CTFReaderLogElt", ptr %1, i64 0, i32 1, i32 3 %59 = load i32, ptr %m_type.i137, align 8 %cmp177 = icmp eq i32 %59, 1 @@ -36018,7 +36018,8 @@ if.end8.sink.split.i.i.i.i217: ; preds = %_ZN9__gnu_cxx27__ex br label %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit _ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit: ; preds = %_ZSt20dynamic_pointer_castIN19OpenColorIO_v2_4dev9LogOpDataENS0_6OpDataEESt10shared_ptrIT_ERKS3_IT0_E.exit, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i204, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i214, %if.end8.sink.split.i.i.i.i217 - switch i32 %chan.0.lcssa, label %sw.epilog [ + %112 = load ptr, ptr %logOp, align 8 + switch i32 %chan.0.lcssa, label %default.unreachable291 [ i32 -1, label %sw.bb i32 0, label %sw.bb258 i32 1, label %sw.bb261 @@ -36026,7 +36027,6 @@ _ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit: ; preds = %_ZSt20dyn ] sw.bb: ; preds = %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit - %112 = load ptr, ptr %logOp, align 8 %m_redParams.i = getelementptr inbounds %"class.OpenColorIO_v2_4dev::LogOpData", ptr %112, i64 0, i32 1 %call.i226 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %m_redParams.i, ptr noundef nonnull align 8 dereferenceable(24) %newParams) to label %invoke.cont253 unwind label %lpad252 @@ -36047,106 +36047,106 @@ lpad252: ; preds = %sw.bb264.invoke, %i br label %ehcleanup268 sw.bb258: ; preds = %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit - %114 = load ptr, ptr %logOp, align 8 - %m_redParams.i229 = getelementptr inbounds %"class.OpenColorIO_v2_4dev::LogOpData", ptr %114, i64 0, i32 1 + %m_redParams.i229 = getelementptr inbounds %"class.OpenColorIO_v2_4dev::LogOpData", ptr %112, i64 0, i32 1 br label %sw.bb264.invoke sw.bb261: ; preds = %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit - %115 = load ptr, ptr %logOp, align 8 - %m_greenParams.i232 = getelementptr inbounds %"class.OpenColorIO_v2_4dev::LogOpData", ptr %115, i64 0, i32 2 + %m_greenParams.i232 = getelementptr inbounds %"class.OpenColorIO_v2_4dev::LogOpData", ptr %112, i64 0, i32 2 br label %sw.bb264.invoke sw.bb264: ; preds = %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit - %116 = load ptr, ptr %logOp, align 8 - %m_blueParams.i235 = getelementptr inbounds %"class.OpenColorIO_v2_4dev::LogOpData", ptr %116, i64 0, i32 3 + %m_blueParams.i235 = getelementptr inbounds %"class.OpenColorIO_v2_4dev::LogOpData", ptr %112, i64 0, i32 3 br label %sw.bb264.invoke sw.bb264.invoke: ; preds = %invoke.cont255, %sw.bb258, %sw.bb261, %sw.bb264 - %117 = phi ptr [ %m_blueParams.i235, %sw.bb264 ], [ %m_greenParams.i232, %sw.bb261 ], [ %m_redParams.i229, %sw.bb258 ], [ %m_blueParams.i, %invoke.cont255 ] - %118 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %117, ptr noundef nonnull align 8 dereferenceable(24) %newParams) + %114 = phi ptr [ %m_blueParams.i235, %sw.bb264 ], [ %m_greenParams.i232, %sw.bb261 ], [ %m_redParams.i229, %sw.bb258 ], [ %m_blueParams.i, %invoke.cont255 ] + %115 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %114, ptr noundef nonnull align 8 dereferenceable(24) %newParams) to label %sw.epilog unwind label %lpad252 -sw.epilog: ; preds = %sw.bb264.invoke, %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit +default.unreachable291: ; preds = %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev6OpDataEED2Ev.exit + unreachable + +sw.epilog: ; preds = %sw.bb264.invoke %_M_refcount.i.i238 = getelementptr inbounds %"class.std::__shared_ptr.190", ptr %logOp, i64 0, i32 1 - %119 = load ptr, ptr %_M_refcount.i.i238, align 8 - %cmp.not.i.i.i239 = icmp eq ptr %119, null + %116 = load ptr, ptr %_M_refcount.i.i238, align 8 + %cmp.not.i.i.i239 = icmp eq ptr %116, null br i1 %cmp.not.i.i.i239, label %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev9LogOpDataEED2Ev.exit, label %if.then.i.i.i240 if.then.i.i.i240: ; preds = %sw.epilog - %_M_use_count.i.i.i.i241 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %119, i64 0, i32 1 - %120 = load atomic i64, ptr %_M_use_count.i.i.i.i241 acquire, align 8 - %cmp.i.i.i.i242 = icmp eq i64 %120, 4294967297 - %121 = trunc i64 %120 to i32 + %_M_use_count.i.i.i.i241 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %116, i64 0, i32 1 + %117 = load atomic i64, ptr %_M_use_count.i.i.i.i241 acquire, align 8 + %cmp.i.i.i.i242 = icmp eq i64 %117, 4294967297 + %118 = trunc i64 %117 to i32 br i1 %cmp.i.i.i.i242, label %if.then.i.i.i.i265, label %if.end.i.i.i.i243 if.then.i.i.i.i265: ; preds = %if.then.i.i.i240 store i32 0, ptr %_M_use_count.i.i.i.i241, align 8 - %_M_weak_count.i.i.i.i266 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %119, i64 0, i32 2 + %_M_weak_count.i.i.i.i266 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %116, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i266, align 4 - %vtable.i.i.i.i267 = load ptr, ptr %119, align 8 + %vtable.i.i.i.i267 = load ptr, ptr %116, align 8 %vfn.i.i.i.i268 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i267, i64 2 - %122 = load ptr, ptr %vfn.i.i.i.i268, align 8 - call void %122(ptr noundef nonnull align 8 dereferenceable(16) %119) #28 + %119 = load ptr, ptr %vfn.i.i.i.i268, align 8 + call void %119(ptr noundef nonnull align 8 dereferenceable(16) %116) #28 br label %if.end8.sink.split.i.i.i.i260 if.end.i.i.i.i243: ; preds = %if.then.i.i.i240 - %123 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i244 = icmp eq i8 %123, 0 + %120 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i244 = icmp eq i8 %120, 0 br i1 %tobool.i.not.i.i.i.i244, label %if.else.i.i.i.i.i264, label %if.then.i.i.i.i.i245 if.then.i.i.i.i.i245: ; preds = %if.end.i.i.i.i243 - %add.i.i.i.i.i246 = add nsw i32 %121, -1 + %add.i.i.i.i.i246 = add nsw i32 %118, -1 store i32 %add.i.i.i.i.i246, ptr %_M_use_count.i.i.i.i241, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i247 if.else.i.i.i.i.i264: ; preds = %if.end.i.i.i.i243 - %124 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i241, i32 -1 acq_rel, align 4 + %121 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i241, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i247 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i247: ; preds = %if.else.i.i.i.i.i264, %if.then.i.i.i.i.i245 - %retval.i.0.i.i.i.i248 = phi i32 [ %121, %if.then.i.i.i.i.i245 ], [ %124, %if.else.i.i.i.i.i264 ] + %retval.i.0.i.i.i.i248 = phi i32 [ %118, %if.then.i.i.i.i.i245 ], [ %121, %if.else.i.i.i.i.i264 ] %cmp6.i.i.i.i249 = icmp eq i32 %retval.i.0.i.i.i.i248, 1 br i1 %cmp6.i.i.i.i249, label %if.then7.i.i.i.i250, label %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev9LogOpDataEED2Ev.exit if.then7.i.i.i.i250: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i247 - %vtable.i.i.i.i.i.i251 = load ptr, ptr %119, align 8 + %vtable.i.i.i.i.i.i251 = load ptr, ptr %116, align 8 %vfn.i.i.i.i.i.i252 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i251, i64 2 - %125 = load ptr, ptr %vfn.i.i.i.i.i.i252, align 8 - call void %125(ptr noundef nonnull align 8 dereferenceable(16) %119) #28 - %_M_weak_count.i.i.i.i.i.i253 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %119, i64 0, i32 2 - %126 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i.i.i254 = icmp eq i8 %126, 0 + %122 = load ptr, ptr %vfn.i.i.i.i.i.i252, align 8 + call void %122(ptr noundef nonnull align 8 dereferenceable(16) %116) #28 + %_M_weak_count.i.i.i.i.i.i253 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %116, i64 0, i32 2 + %123 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i.i.i254 = icmp eq i8 %123, 0 br i1 %tobool.i.not.i.i.i.i.i.i254, label %if.else.i.i.i.i.i.i.i263, label %if.then.i.i.i.i.i.i.i255 if.then.i.i.i.i.i.i.i255: ; preds = %if.then7.i.i.i.i250 - %127 = load i32, ptr %_M_weak_count.i.i.i.i.i.i253, align 4 - %add.i.i.i.i.i.i.i256 = add nsw i32 %127, -1 + %124 = load i32, ptr %_M_weak_count.i.i.i.i.i.i253, align 4 + %add.i.i.i.i.i.i.i256 = add nsw i32 %124, -1 store i32 %add.i.i.i.i.i.i.i256, ptr %_M_weak_count.i.i.i.i.i.i253, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i257 if.else.i.i.i.i.i.i.i263: ; preds = %if.then7.i.i.i.i250 - %128 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i253, i32 -1 acq_rel, align 4 + %125 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i253, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i257 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i257: ; preds = %if.else.i.i.i.i.i.i.i263, %if.then.i.i.i.i.i.i.i255 - %retval.i.0.i.i.i.i.i.i258 = phi i32 [ %127, %if.then.i.i.i.i.i.i.i255 ], [ %128, %if.else.i.i.i.i.i.i.i263 ] + %retval.i.0.i.i.i.i.i.i258 = phi i32 [ %124, %if.then.i.i.i.i.i.i.i255 ], [ %125, %if.else.i.i.i.i.i.i.i263 ] %cmp.i.i.i.i.i.i259 = icmp eq i32 %retval.i.0.i.i.i.i.i.i258, 1 br i1 %cmp.i.i.i.i.i.i259, label %if.end8.sink.split.i.i.i.i260, label %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev9LogOpDataEED2Ev.exit if.end8.sink.split.i.i.i.i260: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i257, %if.then.i.i.i.i265 - %vtable2.i.i.i.i.i.i261 = load ptr, ptr %119, align 8 + %vtable2.i.i.i.i.i.i261 = load ptr, ptr %116, align 8 %vfn3.i.i.i.i.i.i262 = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i261, i64 3 - %129 = load ptr, ptr %vfn3.i.i.i.i.i.i262, align 8 - call void %129(ptr noundef nonnull align 8 dereferenceable(16) %119) #28 + %126 = load ptr, ptr %vfn3.i.i.i.i.i.i262, align 8 + call void %126(ptr noundef nonnull align 8 dereferenceable(16) %116) #28 br label %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev9LogOpDataEED2Ev.exit _ZNSt10shared_ptrIN19OpenColorIO_v2_4dev9LogOpDataEED2Ev.exit: ; preds = %sw.epilog, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i247, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i257, %if.end8.sink.split.i.i.i.i260 - %130 = load ptr, ptr %newParams, align 8 - %tobool.not.i.i.i270 = icmp eq ptr %130, null + %127 = load ptr, ptr %newParams, align 8 + %tobool.not.i.i.i270 = icmp eq ptr %127, null br i1 %tobool.not.i.i.i270, label %return, label %if.then.i.i.i271 if.then.i.i.i271: ; preds = %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev9LogOpDataEED2Ev.exit - call void @_ZdlPv(ptr noundef nonnull %130) #30 + call void @_ZdlPv(ptr noundef nonnull %127) #30 br label %return return: ; preds = %if.then.i.i.i271, %_ZNSt10shared_ptrIN19OpenColorIO_v2_4dev9LogOpDataEED2Ev.exit, %if.then178 @@ -36154,12 +36154,12 @@ return: ; preds = %if.then.i.i.i271, % ehcleanup268: ; preds = %lpad252, %lpad184 %.pn = phi { ptr, i32 } [ %113, %lpad252 ], [ %73, %lpad184 ] - %131 = load ptr, ptr %newParams, align 8 - %tobool.not.i.i.i273 = icmp eq ptr %131, null + %128 = load ptr, ptr %newParams, align 8 + %tobool.not.i.i.i273 = icmp eq ptr %128, null br i1 %tobool.not.i.i.i273, label %common.resume, label %if.then.i.i.i274 if.then.i.i.i274: ; preds = %ehcleanup268 - call void @_ZdlPv(ptr noundef nonnull %131) #30 + call void @_ZdlPv(ptr noundef nonnull %128) #30 br label %common.resume } diff --git a/bench/ocio/optimized/Op.cpp.ll b/bench/ocio/optimized/Op.cpp.ll index 625825c4bf7..8159b884607 100644 --- a/bench/ocio/optimized/Op.cpp.ll +++ b/bench/ocio/optimized/Op.cpp.ll @@ -9670,22 +9670,18 @@ if.end8.sink.split.i.i.i.i35: ; preds = %_ZN9__gnu_cxx27__ex if.else: ; preds = %if.then call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %os) - %34 = icmp ult i32 %type, 3 - br i1 %34, label %switch.lookup, label %sw.epilog + %34 = sext i32 %type to i64 + %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table._ZN19OpenColorIO_v2_4dev12_GLOBAL__N_123ValidateDynamicPropertyINS_25DynamicPropertyDoubleImplEEEvSt10shared_ptrINS_2OpEERS3_IT_ENS_19DynamicPropertyTypeE, i64 0, i64 %34 + %switch.load = load ptr, ptr %switch.gep, align 8 + %35 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %os, ptr noundef nonnull %switch.load) + to label %sw.epilog unwind label %lpad -lpad: ; preds = %switch.lookup, %invoke.cont24, %sw.epilog - %35 = landingpad { ptr, i32 } +lpad: ; preds = %if.else, %invoke.cont24, %sw.epilog + %36 = landingpad { ptr, i32 } cleanup br label %ehcleanup -switch.lookup: ; preds = %if.else - %36 = zext nneg i32 %type to i64 - %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table._ZN19OpenColorIO_v2_4dev12_GLOBAL__N_123ValidateDynamicPropertyINS_25DynamicPropertyDoubleImplEEEvSt10shared_ptrINS_2OpEERS3_IT_ENS_19DynamicPropertyTypeE, i64 0, i64 %36 - %switch.load = load ptr, ptr %switch.gep, align 8 - %37 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %os, ptr noundef nonnull %switch.load) - to label %sw.epilog unwind label %lpad - -sw.epilog: ; preds = %if.else, %switch.lookup +sw.epilog: ; preds = %if.else %call25 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %os, ptr noundef nonnull @.str.38) to label %invoke.cont24 unwind label %lpad @@ -9703,13 +9699,13 @@ invoke.cont29: ; preds = %invoke.cont27 br label %if.end30 lpad28: ; preds = %invoke.cont27 - %38 = landingpad { ptr, i32 } + %37 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp26) #22 br label %ehcleanup ehcleanup: ; preds = %lpad28, %lpad - %.pn = phi { ptr, i32 } [ %38, %lpad28 ], [ %35, %lpad ] + %.pn = phi { ptr, i32 } [ %37, %lpad28 ], [ %36, %lpad ] call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %os) #22 resume { ptr, i32 } %.pn diff --git a/bench/oiio/optimized/hashes.cpp.ll b/bench/oiio/optimized/hashes.cpp.ll index 4f91daee7d0..71a73c20805 100644 --- a/bench/oiio/optimized/hashes.cpp.ll +++ b/bench/oiio/optimized/hashes.cpp.ll @@ -196,7 +196,7 @@ while.end: ; preds = %while.body, %while. %c.0.lcssa = phi i32 [ %add1, %while.cond.preheader ], [ %xor37, %while.body ] %length.addr.0.lcssa = phi i64 [ %length, %while.cond.preheader ], [ %sub39, %while.body ] %k.0.lcssa = phi ptr [ %key, %while.cond.preheader ], [ %add.ptr, %while.body ] - switch i64 %length.addr.0.lcssa, label %if.end431 [ + switch i64 %length.addr.0.lcssa, label %default.unreachable [ i64 12, label %sw.bb i64 11, label %sw.bb46 i64 10, label %sw.bb54 @@ -378,7 +378,7 @@ while.end175: ; preds = %while.body115, %whi %c.1.lcssa = phi i32 [ %add1, %while.cond113.preheader ], [ %xor171, %while.body115 ] %length.addr.1.lcssa = phi i64 [ %length, %while.cond113.preheader ], [ %sub173, %while.body115 ] %k112.0.lcssa = phi ptr [ %key, %while.cond113.preheader ], [ %add.ptr174, %while.body115 ] - switch i64 %length.addr.1.lcssa, label %if.end431 [ + switch i64 %length.addr.1.lcssa, label %default.unreachable [ i64 12, label %sw.bb176 i64 11, label %sw.bb198 i64 10, label %sw.bb203 @@ -591,7 +591,7 @@ while.end371: ; preds = %while.body287, %whi %c.4.lcssa = phi i32 [ %add1, %while.cond285.preheader ], [ %xor367, %while.body287 ] %length.addr.2.lcssa = phi i64 [ %length, %while.cond285.preheader ], [ %sub369, %while.body287 ] %k284.0.lcssa = phi ptr [ %key, %while.cond285.preheader ], [ %add.ptr370, %while.body287 ] - switch i64 %length.addr.2.lcssa, label %if.end431 [ + switch i64 %length.addr.2.lcssa, label %default.unreachable [ i64 12, label %sw.bb372 i64 11, label %sw.bb377 i64 10, label %sw.bb382 @@ -720,10 +720,13 @@ sw.bb425: ; preds = %sw.bb420, %while.en %add428 = add i32 %a.6, %conv427 br label %if.end431 -if.end431: ; preds = %sw.bb277, %sw.bb273, %sw.bb260, %sw.bb245, %sw.bb225, %sw.bb203, %sw.bb176, %while.end175, %sw.bb425, %while.end371, %while.end, %sw.bb, %sw.bb46, %sw.bb54, %sw.bb62, %sw.bb70, %sw.bb75, %sw.bb81, %sw.bb87, %sw.bb93, %sw.bb96, %sw.bb100, %sw.bb104 - %a.7 = phi i32 [ %a.0.lcssa, %while.end ], [ %add107, %sw.bb104 ], [ %add103, %sw.bb100 ], [ %add99, %sw.bb96 ], [ %add95, %sw.bb93 ], [ %add92, %sw.bb87 ], [ %add86, %sw.bb81 ], [ %add80, %sw.bb75 ], [ %add74, %sw.bb70 ], [ %add69, %sw.bb62 ], [ %add61, %sw.bb54 ], [ %add53, %sw.bb46 ], [ %add45, %sw.bb ], [ %a.1.lcssa, %while.end175 ], [ %add280, %sw.bb277 ], [ %add276, %sw.bb273 ], [ %add267, %sw.bb260 ], [ %add255, %sw.bb245 ], [ %add239, %sw.bb225 ], [ %add220, %sw.bb203 ], [ %add197, %sw.bb176 ], [ %a.3.lcssa, %while.end371 ], [ %add428, %sw.bb425 ] - %b.12 = phi i32 [ %b.0.lcssa, %while.end ], [ %b.0.lcssa, %sw.bb104 ], [ %b.0.lcssa, %sw.bb100 ], [ %b.0.lcssa, %sw.bb96 ], [ %b.0.lcssa, %sw.bb93 ], [ %add90, %sw.bb87 ], [ %add84, %sw.bb81 ], [ %add78, %sw.bb75 ], [ %add72, %sw.bb70 ], [ %add67, %sw.bb62 ], [ %add59, %sw.bb54 ], [ %add51, %sw.bb46 ], [ %add43, %sw.bb ], [ %b.1.lcssa, %while.end175 ], [ %b.1.lcssa, %sw.bb277 ], [ %b.1.lcssa, %sw.bb273 ], [ %b.3, %sw.bb260 ], [ %add248, %sw.bb245 ], [ %add232, %sw.bb225 ], [ %add213, %sw.bb203 ], [ %add190, %sw.bb176 ], [ %b.4.lcssa, %while.end371 ], [ %b.11, %sw.bb425 ] - %c.16 = phi i32 [ %c.0.lcssa, %while.end ], [ %c.0.lcssa, %sw.bb104 ], [ %c.0.lcssa, %sw.bb100 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb93 ], [ %c.0.lcssa, %sw.bb87 ], [ %c.0.lcssa, %sw.bb81 ], [ %c.0.lcssa, %sw.bb75 ], [ %c.0.lcssa, %sw.bb70 ], [ %add65, %sw.bb62 ], [ %add57, %sw.bb54 ], [ %add49, %sw.bb46 ], [ %add41, %sw.bb ], [ %c.1.lcssa, %while.end175 ], [ %c.1.lcssa, %sw.bb277 ], [ %c.1.lcssa, %sw.bb273 ], [ %c.1.lcssa, %sw.bb260 ], [ %c.1.lcssa, %sw.bb245 ], [ %c.3, %sw.bb225 ], [ %add206, %sw.bb203 ], [ %add183, %sw.bb176 ], [ %c.4.lcssa, %while.end371 ], [ %c.15, %sw.bb425 ] +default.unreachable: ; preds = %while.end371, %while.end175, %while.end + unreachable + +if.end431: ; preds = %sw.bb277, %sw.bb273, %sw.bb260, %sw.bb245, %sw.bb225, %sw.bb203, %sw.bb176, %sw.bb425, %sw.bb, %sw.bb46, %sw.bb54, %sw.bb62, %sw.bb70, %sw.bb75, %sw.bb81, %sw.bb87, %sw.bb93, %sw.bb96, %sw.bb100, %sw.bb104 + %a.7 = phi i32 [ %add107, %sw.bb104 ], [ %add103, %sw.bb100 ], [ %add99, %sw.bb96 ], [ %add95, %sw.bb93 ], [ %add92, %sw.bb87 ], [ %add86, %sw.bb81 ], [ %add80, %sw.bb75 ], [ %add74, %sw.bb70 ], [ %add69, %sw.bb62 ], [ %add61, %sw.bb54 ], [ %add53, %sw.bb46 ], [ %add45, %sw.bb ], [ %add280, %sw.bb277 ], [ %add276, %sw.bb273 ], [ %add267, %sw.bb260 ], [ %add255, %sw.bb245 ], [ %add239, %sw.bb225 ], [ %add220, %sw.bb203 ], [ %add197, %sw.bb176 ], [ %add428, %sw.bb425 ] + %b.12 = phi i32 [ %b.0.lcssa, %sw.bb104 ], [ %b.0.lcssa, %sw.bb100 ], [ %b.0.lcssa, %sw.bb96 ], [ %b.0.lcssa, %sw.bb93 ], [ %add90, %sw.bb87 ], [ %add84, %sw.bb81 ], [ %add78, %sw.bb75 ], [ %add72, %sw.bb70 ], [ %add67, %sw.bb62 ], [ %add59, %sw.bb54 ], [ %add51, %sw.bb46 ], [ %add43, %sw.bb ], [ %b.1.lcssa, %sw.bb277 ], [ %b.1.lcssa, %sw.bb273 ], [ %b.3, %sw.bb260 ], [ %add248, %sw.bb245 ], [ %add232, %sw.bb225 ], [ %add213, %sw.bb203 ], [ %add190, %sw.bb176 ], [ %b.11, %sw.bb425 ] + %c.16 = phi i32 [ %c.0.lcssa, %sw.bb104 ], [ %c.0.lcssa, %sw.bb100 ], [ %c.0.lcssa, %sw.bb96 ], [ %c.0.lcssa, %sw.bb93 ], [ %c.0.lcssa, %sw.bb87 ], [ %c.0.lcssa, %sw.bb81 ], [ %c.0.lcssa, %sw.bb75 ], [ %c.0.lcssa, %sw.bb70 ], [ %add65, %sw.bb62 ], [ %add57, %sw.bb54 ], [ %add49, %sw.bb46 ], [ %add41, %sw.bb ], [ %c.1.lcssa, %sw.bb277 ], [ %c.1.lcssa, %sw.bb273 ], [ %c.1.lcssa, %sw.bb260 ], [ %c.1.lcssa, %sw.bb245 ], [ %c.3, %sw.bb225 ], [ %add206, %sw.bb203 ], [ %add183, %sw.bb176 ], [ %c.15, %sw.bb425 ] %xor432 = xor i32 %c.16, %b.12 %or435 = tail call i32 @llvm.fshl.i32(i32 %b.12, i32 %b.12, i32 14) %sub436 = sub i32 %xor432, %or435 diff --git a/bench/openssl/optimized/libcrypto-lib-asymcipher.ll b/bench/openssl/optimized/libcrypto-lib-asymcipher.ll index 17de72e5fd8..cfb2a83cf42 100644 --- a/bench/openssl/optimized/libcrypto-lib-asymcipher.ll +++ b/bench/openssl/optimized/libcrypto-lib-asymcipher.ll @@ -100,14 +100,13 @@ if.then25: ; preds = %if.end20 br label %if.then138 for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0101 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.0100 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.184, %for.inc ] - %cipher.099 = phi ptr [ null, %for.cond.preheader ], [ %cipher.182, %for.inc ] - %cmp.i = icmp eq ptr %cipher.099, null + %iter.085 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %cipher.084 = phi ptr [ null, %for.cond.preheader ], [ %cipher.171, %for.inc ] + %cmp.i = icmp eq ptr %cipher.084, null br i1 %cmp.i, label %EVP_ASYM_CIPHER_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.099, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.084, i64 0, i32 4 %3 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %3, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -121,22 +120,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_ASYM_CIPHER_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.099, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.084, i64 0, i32 1 %4 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %4, ptr noundef nonnull @.str, i32 noundef 463) #4 - %prov.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.099, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.084, i64 0, i32 3 %5 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %5) #4 - call void @CRYPTO_free(ptr noundef nonnull %cipher.099, ptr noundef nonnull @.str, i32 noundef 466) #4 + call void @CRYPTO_free(ptr noundef nonnull %cipher.084, ptr noundef nonnull @.str, i32 noundef 466) #4 br label %EVP_ASYM_CIPHER_free.exit EVP_ASYM_CIPHER_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %6 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %6) #4 - switch i32 %iter.0101, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb38 - ] + %switch = icmp eq i32 %iter.085, 1 + br i1 %switch, label %sw.bb, label %sw.bb38 sw.bb: ; preds = %EVP_ASYM_CIPHER_free.exit %7 = load ptr, ptr %libctx, align 8 @@ -158,16 +155,13 @@ sw.bb38: ; preds = %EVP_ASYM_CIPHER_fre %cmp43 = icmp eq ptr %call.i66, null br i1 %cmp43, label %legacy, label %if.end50 -sw.epilog: ; preds = %EVP_ASYM_CIPHER_free.exit - br i1 %cmp.i, label %for.inc, label %if.end50 - -if.end50: ; preds = %if.then35, %sw.bb38, %sw.epilog - %tmp_prov.183 = phi ptr [ %tmp_prov.0100, %sw.epilog ], [ %9, %if.then35 ], [ %call40, %sw.bb38 ] - %cipher.181 = phi ptr [ %cipher.099, %sw.epilog ], [ %call.i, %if.then35 ], [ %call.i66, %sw.bb38 ] +if.end50: ; preds = %sw.bb38, %if.then35 + %cipher.1.ph = phi ptr [ %call.i, %if.then35 ], [ %call.i66, %sw.bb38 ] + %tmp_prov.1.ph = phi ptr [ %9, %if.then35 ], [ %call40, %sw.bb38 ] %12 = load ptr, ptr %keymgmt, align 8 %call52 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %12) #4 %13 = load ptr, ptr %propquery41, align 8 - %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.183, ptr noundef %call52, ptr noundef %13) #4 + %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call52, ptr noundef %13) #4 store ptr %call54, ptr %tmp_keymgmt, align 8 %cmp55.not = icmp eq ptr %call54, null br i1 %cmp55.not, label %if.then65, label %if.end62 @@ -182,16 +176,15 @@ if.end62: ; preds = %if.end50 br i1 %cmp63, label %if.then65, label %for.inc if.then65: ; preds = %if.end50, %if.end62 - %provkey.191 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] + %provkey.176 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] call void @EVP_KEYMGMT_free(ptr noundef %call54) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end62, %if.then65, %sw.epilog - %tmp_prov.184 = phi ptr [ %tmp_prov.0100, %sw.epilog ], [ %tmp_prov.183, %if.then65 ], [ %tmp_prov.183, %if.end62 ], [ %tmp_prov.0100, %sw.bb ] - %cipher.182 = phi ptr [ null, %sw.epilog ], [ %cipher.181, %if.then65 ], [ %cipher.181, %if.end62 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.191, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.0101, 1 - %cmp28 = icmp ult i32 %iter.0101, 2 +for.inc: ; preds = %sw.bb, %if.end62, %if.then65 + %cipher.171 = phi ptr [ %cipher.1.ph, %if.then65 ], [ %cipher.1.ph, %if.end62 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.176, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] + %inc = add nuw nsw i32 %iter.085, 1 + %cmp28 = icmp ult i32 %iter.085, 2 %cmp30 = icmp eq ptr %provkey.2, null %17 = select i1 %cmp28, i1 %cmp30, i1 false br i1 %17, label %for.body, label %for.end, !llvm.loop !4 @@ -200,43 +193,19 @@ for.end: ; preds = %for.inc br i1 %cmp30, label %if.then69, label %if.end70 if.then69: ; preds = %for.end - %cmp.i67 = icmp eq ptr %cipher.182, null - br i1 %cmp.i67, label %legacy, label %if.end.i68 - -if.end.i68: ; preds = %if.then69 - %refcnt.i69 = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 4 - %18 = atomicrmw sub ptr %refcnt.i69, i32 1 monotonic, align 4 - %cmp.i.i70 = icmp eq i32 %18, 1 - br i1 %cmp.i.i70, label %CRYPTO_DOWN_REF.exit.thread.i76, label %CRYPTO_DOWN_REF.exit.i71 - -CRYPTO_DOWN_REF.exit.thread.i76: ; preds = %if.end.i68 - fence acquire - br label %if.end3.i73 - -CRYPTO_DOWN_REF.exit.i71: ; preds = %if.end.i68 - %cmp1.i72 = icmp sgt i32 %18, 1 - br i1 %cmp1.i72, label %legacy, label %if.end3.i73 - -if.end3.i73: ; preds = %CRYPTO_DOWN_REF.exit.i71, %CRYPTO_DOWN_REF.exit.thread.i76 - %type_name.i74 = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 1 - %19 = load ptr, ptr %type_name.i74, align 8 - call void @CRYPTO_free(ptr noundef %19, ptr noundef nonnull @.str, i32 noundef 463) #4 - %prov.i75 = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 3 - %20 = load ptr, ptr %prov.i75, align 8 - call void @ossl_provider_free(ptr noundef %20) #4 - call void @CRYPTO_free(ptr noundef nonnull %cipher.182, ptr noundef nonnull @.str, i32 noundef 466) #4 + call void @EVP_ASYM_CIPHER_free(ptr noundef %cipher.171) br label %legacy if.end70: ; preds = %for.end %call71 = call i32 @ERR_pop_to_mark() #4 %op = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5 - store ptr %cipher.182, ptr %op, align 8 - %newctx = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 5 - %21 = load ptr, ptr %newctx, align 8 - %prov = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 3 - %22 = load ptr, ptr %prov, align 8 - %call73 = call ptr @ossl_provider_ctx(ptr noundef %22) #4 - %call74 = call ptr %21(ptr noundef %call73) #4 + store ptr %cipher.171, ptr %op, align 8 + %newctx = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 5 + %18 = load ptr, ptr %newctx, align 8 + %prov = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 3 + %19 = load ptr, ptr %prov, align 8 + %call73 = call ptr @ossl_provider_ctx(ptr noundef %19) #4 + %call74 = call ptr %18(ptr noundef %call73) #4 %algctx = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5, i32 0, i32 1 store ptr %call74, ptr %algctx, align 8 %cmp78 = icmp eq ptr %call74, null @@ -255,9 +224,9 @@ if.end81: ; preds = %if.end70 ] sw.bb82: ; preds = %if.end81 - %encrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 6 - %23 = load ptr, ptr %encrypt_init, align 8 - %cmp83 = icmp eq ptr %23, null + %encrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 6 + %20 = load ptr, ptr %encrypt_init, align 8 + %cmp83 = icmp eq ptr %20, null br i1 %cmp83, label %if.then85, label %sw.epilog100 if.then85: ; preds = %sw.bb82 @@ -267,9 +236,9 @@ if.then85: ; preds = %sw.bb82 br label %if.then138 sw.bb91: ; preds = %if.end81 - %decrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 8 - %24 = load ptr, ptr %decrypt_init, align 8 - %cmp92 = icmp eq ptr %24, null + %decrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 8 + %21 = load ptr, ptr %decrypt_init, align 8 + %cmp92 = icmp eq ptr %21, null br i1 %cmp92, label %if.then94, label %sw.epilog100 if.then94: ; preds = %sw.bb91 @@ -285,30 +254,30 @@ sw.default: ; preds = %if.end81 br label %if.then138 sw.epilog100: ; preds = %sw.bb91, %sw.bb82 - %.sink = phi ptr [ %23, %sw.bb82 ], [ %24, %sw.bb91 ] + %.sink = phi ptr [ %20, %sw.bb82 ], [ %21, %sw.bb91 ] %call99 = call i32 %.sink(ptr noundef nonnull %call74, ptr noundef nonnull %provkey.2, ptr noundef %params) #4 %cmp101 = icmp slt i32 %call99, 1 br i1 %cmp101, label %if.then138, label %if.end104 if.end104: ; preds = %sw.epilog100 - %25 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %25) #4 + %22 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %22) #4 br label %return -legacy: ; preds = %sw.bb38, %if.end3.i73, %CRYPTO_DOWN_REF.exit.i71, %if.then69, %if.end +legacy: ; preds = %sw.bb38, %if.end, %if.then69 %call105 = call i32 @ERR_pop_to_mark() #4 - %26 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %26) #4 + %23 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %23) #4 store ptr null, ptr %tmp_keymgmt, align 8 %pmeth = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 12 - %27 = load ptr, ptr %pmeth, align 8 - %cmp106 = icmp eq ptr %27, null + %24 = load ptr, ptr %pmeth, align 8 + %cmp106 = icmp eq ptr %24, null br i1 %cmp106, label %if.then111, label %lor.lhs.false lor.lhs.false: ; preds = %legacy - %encrypt = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 20 - %28 = load ptr, ptr %encrypt, align 8 - %cmp109 = icmp eq ptr %28, null + %encrypt = getelementptr inbounds %struct.evp_pkey_method_st, ptr %24, i64 0, i32 20 + %25 = load ptr, ptr %encrypt, align 8 + %cmp109 = icmp eq ptr %25, null br i1 %cmp109, label %if.then111, label %if.end112 if.then111: ; preds = %lor.lhs.false, %legacy @@ -318,22 +287,22 @@ if.then111: ; preds = %lor.lhs.false, %leg br label %return if.end112: ; preds = %lor.lhs.false - %29 = load i32, ptr %ctx, align 8 - switch i32 %29, label %sw.default134 [ + %26 = load i32, ptr %ctx, align 8 + switch i32 %26, label %sw.default134 [ i32 512, label %sw.bb114 i32 1024, label %sw.bb124 ] sw.bb114: ; preds = %if.end112 - %encrypt_init116 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 19 - %30 = load ptr, ptr %encrypt_init116, align 8 - %cmp117 = icmp eq ptr %30, null + %encrypt_init116 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %24, i64 0, i32 19 + %27 = load ptr, ptr %encrypt_init116, align 8 + %cmp117 = icmp eq ptr %27, null br i1 %cmp117, label %return, label %err sw.bb124: ; preds = %if.end112 - %decrypt_init126 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 21 - %31 = load ptr, ptr %decrypt_init126, align 8 - %cmp127 = icmp eq ptr %31, null + %decrypt_init126 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %24, i64 0, i32 21 + %28 = load ptr, ptr %decrypt_init126, align 8 + %cmp127 = icmp eq ptr %28, null br i1 %cmp127, label %return, label %err sw.default134: ; preds = %if.end112 @@ -343,25 +312,25 @@ sw.default134: ; preds = %if.end112 br label %if.then138 err: ; preds = %sw.bb124, %sw.bb114 - %.sink102 = phi ptr [ %30, %sw.bb114 ], [ %31, %sw.bb124 ] - %call123 = call i32 %.sink102(ptr noundef nonnull %ctx) #4 + %.sink86 = phi ptr [ %27, %sw.bb114 ], [ %28, %sw.bb124 ] + %call123 = call i32 %.sink86(ptr noundef nonnull %ctx) #4 %cmp136 = icmp slt i32 %call123, 1 br i1 %cmp136, label %if.then138, label %if.end140 if.then138: ; preds = %if.then18, %if.then85, %sw.epilog100, %if.then94, %sw.default, %if.then80, %if.then25, %if.then6, %sw.default134, %err - %ret.195 = phi i32 [ %call123, %err ], [ 0, %if.then18 ], [ -2, %if.then85 ], [ %call99, %sw.epilog100 ], [ -2, %if.then94 ], [ 0, %sw.default ], [ 0, %if.then80 ], [ 0, %if.then25 ], [ 0, %if.then6 ], [ -1, %sw.default134 ] + %ret.180 = phi i32 [ %call123, %err ], [ 0, %if.then18 ], [ -2, %if.then85 ], [ %call99, %sw.epilog100 ], [ -2, %if.then94 ], [ 0, %sw.default ], [ 0, %if.then80 ], [ 0, %if.then25 ], [ 0, %if.then6 ], [ -1, %sw.default134 ] call void @evp_pkey_ctx_free_old_ops(ptr noundef nonnull %ctx) #4 store i32 0, ptr %ctx, align 8 br label %if.end140 if.end140: ; preds = %if.then138, %err - %ret.194 = phi i32 [ %ret.195, %if.then138 ], [ %call123, %err ] - %32 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %32) #4 + %ret.179 = phi i32 [ %ret.180, %if.then138 ], [ %call123, %err ] + %29 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %29) #4 br label %return return: ; preds = %sw.bb124, %sw.bb114, %if.end140, %if.then111, %if.end104, %if.then - %retval.0 = phi i32 [ -2, %if.then ], [ -2, %if.then111 ], [ %ret.194, %if.end140 ], [ 1, %if.end104 ], [ 1, %sw.bb114 ], [ 1, %sw.bb124 ] + %retval.0 = phi i32 [ -2, %if.then ], [ -2, %if.then111 ], [ %ret.179, %if.end140 ], [ 1, %if.end104 ], [ 1, %sw.bb114 ], [ 1, %sw.bb124 ] ret i32 %retval.0 } @@ -635,7 +604,7 @@ return: ; preds = %if.end32, %if.then3 } ; Function Attrs: nounwind uwtable -define i32 @evp_pkey_decrypt_alloc(ptr noundef %ctx, ptr nocapture noundef %outp, ptr noundef %outlenp, i64 noundef %expected_outlen, ptr noundef %in, i64 noundef %inlen) local_unnamed_addr #0 { +define noundef i32 @evp_pkey_decrypt_alloc(ptr noundef %ctx, ptr nocapture noundef %outp, ptr noundef %outlenp, i64 noundef %expected_outlen, ptr noundef %in, i64 noundef %inlen) local_unnamed_addr #0 { entry: %call = tail call i32 @EVP_PKEY_decrypt(ptr noundef %ctx, ptr noundef null, ptr noundef %outlenp, ptr noundef %in, i64 noundef %inlen) %cmp = icmp slt i32 %call, 1 @@ -722,7 +691,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_ASYM_CIPHER_up_ref(ptr nocapture noundef %cipher) #2 { +define noundef i32 @EVP_ASYM_CIPHER_up_ref(ptr nocapture noundef %cipher) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 diff --git a/bench/openssl/optimized/libcrypto-lib-cbc_cksm.ll b/bench/openssl/optimized/libcrypto-lib-cbc_cksm.ll index a59f6a8f610..4213777af2d 100644 --- a/bench/openssl/optimized/libcrypto-lib-cbc_cksm.ll +++ b/bench/openssl/optimized/libcrypto-lib-cbc_cksm.ll @@ -10,31 +10,31 @@ entry: %0 = load i32, ptr %ivec, align 1 %incdec.ptr8 = getelementptr inbounds i8, ptr %ivec, i64 4 %1 = load i32, ptr %incdec.ptr8, align 1 - %cmp69 = icmp sgt i64 %length, 0 - br i1 %cmp69, label %for.body.lr.ph, label %for.end + %cmp71 = icmp sgt i64 %length, 0 + br i1 %cmp71, label %for.body.lr.ph, label %for.end for.body.lr.ph: ; preds = %entry %arrayidx94 = getelementptr inbounds [2 x i32], ptr %tin, i64 0, i64 1 br label %for.body for.body: ; preds = %for.body.lr.ph, %if.end - %in.addr.073 = phi ptr [ %in, %for.body.lr.ph ], [ %in.addr.8, %if.end ] - %l.072 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] - %tout1.071 = phi i32 [ %1, %for.body.lr.ph ], [ %12, %if.end ] - %tout0.070 = phi i32 [ %0, %for.body.lr.ph ], [ %11, %if.end ] - %cmp27 = icmp ugt i64 %l.072, 7 + %in.addr.075 = phi ptr [ %in, %for.body.lr.ph ], [ %in.addr.8, %if.end ] + %l.074 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] + %tout1.073 = phi i32 [ %1, %for.body.lr.ph ], [ %12, %if.end ] + %tout0.072 = phi i32 [ %0, %for.body.lr.ph ], [ %11, %if.end ] + %cmp27 = icmp ugt i64 %l.074, 7 br i1 %cmp27, label %if.then, label %if.else if.then: ; preds = %for.body - %2 = load i32, ptr %in.addr.073, align 1 - %incdec.ptr39 = getelementptr inbounds i8, ptr %in.addr.073, i64 4 + %2 = load i32, ptr %in.addr.075, align 1 + %incdec.ptr39 = getelementptr inbounds i8, ptr %in.addr.075, i64 4 %3 = load i32, ptr %incdec.ptr39, align 1 - %incdec.ptr53 = getelementptr inbounds i8, ptr %in.addr.073, i64 8 + %incdec.ptr53 = getelementptr inbounds i8, ptr %in.addr.075, i64 8 br label %if.end if.else: ; preds = %for.body - %add.ptr = getelementptr inbounds i8, ptr %in.addr.073, i64 %l.072 - switch i64 %l.072, label %if.end [ + %add.ptr = getelementptr inbounds i8, ptr %in.addr.075, i64 %l.074 + switch i64 %l.074, label %default.unreachable [ i64 1, label %sw.bb88 i64 7, label %sw.bb60 i64 6, label %sw.bb65 @@ -111,19 +111,22 @@ sw.bb88: ; preds = %if.else, %sw.bb83 %or91 = or i32 %tin0.2, %conv90 br label %if.end -if.end: ; preds = %if.else, %sw.bb88, %if.then - %tin0.3 = phi i32 [ %2, %if.then ], [ 0, %if.else ], [ %or91, %sw.bb88 ] - %tin1.7 = phi i32 [ %3, %if.then ], [ 0, %if.else ], [ %tin1.6, %sw.bb88 ] - %in.addr.8 = phi ptr [ %incdec.ptr53, %if.then ], [ %add.ptr, %if.else ], [ %incdec.ptr89, %sw.bb88 ] - %xor = xor i32 %tin0.3, %tout0.070 +default.unreachable: ; preds = %if.else + unreachable + +if.end: ; preds = %sw.bb88, %if.then + %tin0.3 = phi i32 [ %2, %if.then ], [ %or91, %sw.bb88 ] + %tin1.7 = phi i32 [ %3, %if.then ], [ %tin1.6, %sw.bb88 ] + %in.addr.8 = phi ptr [ %incdec.ptr53, %if.then ], [ %incdec.ptr89, %sw.bb88 ] + %xor = xor i32 %tin0.3, %tout0.072 store i32 %xor, ptr %tin, align 4 - %xor93 = xor i32 %tin1.7, %tout1.071 + %xor93 = xor i32 %tin1.7, %tout1.073 store i32 %xor93, ptr %arrayidx94, align 4 call void @DES_encrypt1(ptr noundef nonnull %tin, ptr noundef %schedule, i32 noundef 1) #3 %11 = load i32, ptr %tin, align 4 %12 = load i32, ptr %arrayidx94, align 4 - %sub = add nsw i64 %l.072, -8 - %cmp = icmp sgt i64 %l.072, 8 + %sub = add nsw i64 %l.074, -8 + %cmp = icmp sgt i64 %l.074, 8 br i1 %cmp, label %for.body, label %for.end, !llvm.loop !4 for.end: ; preds = %if.end, %entry diff --git a/bench/openssl/optimized/libcrypto-lib-exchange.ll b/bench/openssl/optimized/libcrypto-lib-exchange.ll index 2bbdf92661b..e2245fbdfb1 100644 --- a/bench/openssl/optimized/libcrypto-lib-exchange.ll +++ b/bench/openssl/optimized/libcrypto-lib-exchange.ll @@ -62,7 +62,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_KEYEXCH_up_ref(ptr nocapture noundef %exchange) #2 { +define noundef i32 @EVP_KEYEXCH_up_ref(ptr nocapture noundef %exchange) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 @@ -431,14 +431,13 @@ if.then37: ; preds = %if.end32 br label %err for.body: ; preds = %for.cond.preheader, %for.inc - %iter.089 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.088 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.176, %for.inc ] - %exchange.087 = phi ptr [ null, %for.cond.preheader ], [ %exchange.174, %for.inc ] - %cmp.i = icmp eq ptr %exchange.087, null + %iter.084 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %exchange.083 = phi ptr [ null, %for.cond.preheader ], [ %exchange.174, %for.inc ] + %cmp.i = icmp eq ptr %exchange.083, null br i1 %cmp.i, label %EVP_KEYEXCH_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.087, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.083, i64 0, i32 4 %6 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %6, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -452,22 +451,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_KEYEXCH_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.087, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.083, i64 0, i32 1 %7 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %7, ptr noundef nonnull @.str, i32 noundef 151) #4 - %prov.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.087, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.083, i64 0, i32 3 %8 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %8) #4 - call void @CRYPTO_free(ptr noundef nonnull %exchange.087, ptr noundef nonnull @.str, i32 noundef 154) #4 + call void @CRYPTO_free(ptr noundef nonnull %exchange.083, ptr noundef nonnull @.str, i32 noundef 154) #4 br label %EVP_KEYEXCH_free.exit EVP_KEYEXCH_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %9 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %9) #4 - switch i32 %iter.089, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb50 - ] + %switch = icmp eq i32 %iter.084, 1 + br i1 %switch, label %sw.bb, label %sw.bb50 sw.bb: ; preds = %EVP_KEYEXCH_free.exit %10 = load ptr, ptr %libctx, align 8 @@ -489,16 +486,13 @@ sw.bb50: ; preds = %EVP_KEYEXCH_free.ex %cmp55 = icmp eq ptr %call.i58, null br i1 %cmp55, label %legacy, label %if.end62 -sw.epilog: ; preds = %EVP_KEYEXCH_free.exit - br i1 %cmp.i, label %for.inc, label %if.end62 - -if.end62: ; preds = %if.then47, %sw.bb50, %sw.epilog - %tmp_prov.175 = phi ptr [ %tmp_prov.088, %sw.epilog ], [ %12, %if.then47 ], [ %call52, %sw.bb50 ] - %exchange.173 = phi ptr [ %exchange.087, %sw.epilog ], [ %call.i, %if.then47 ], [ %call.i58, %sw.bb50 ] +if.end62: ; preds = %sw.bb50, %if.then47 + %exchange.1.ph = phi ptr [ %call.i, %if.then47 ], [ %call.i58, %sw.bb50 ] + %tmp_prov.1.ph = phi ptr [ %12, %if.then47 ], [ %call52, %sw.bb50 ] %15 = load ptr, ptr %keymgmt, align 8 %call64 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %15) #4 %16 = load ptr, ptr %propquery53, align 8 - %call66 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.175, ptr noundef %call64, ptr noundef %16) #4 + %call66 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call64, ptr noundef %16) #4 store ptr %call66, ptr %tmp_keymgmt, align 8 %cmp67.not = icmp eq ptr %call66, null br i1 %cmp67.not, label %if.then77, label %if.end74 @@ -513,16 +507,15 @@ if.end74: ; preds = %if.end62 br i1 %cmp75, label %if.then77, label %for.inc if.then77: ; preds = %if.end62, %if.end74 - %provkey.183 = phi ptr [ %call73, %if.end74 ], [ null, %if.end62 ] + %provkey.179 = phi ptr [ %call73, %if.end74 ], [ null, %if.end62 ] call void @EVP_KEYMGMT_free(ptr noundef %call66) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end74, %if.then77, %sw.epilog - %tmp_prov.176 = phi ptr [ %tmp_prov.088, %sw.epilog ], [ %tmp_prov.175, %if.then77 ], [ %tmp_prov.175, %if.end74 ], [ %tmp_prov.088, %sw.bb ] - %exchange.174 = phi ptr [ null, %sw.epilog ], [ %exchange.173, %if.then77 ], [ %exchange.173, %if.end74 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.183, %if.then77 ], [ %call73, %if.end74 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.089, 1 - %cmp40 = icmp ult i32 %iter.089, 2 +for.inc: ; preds = %sw.bb, %if.end74, %if.then77 + %exchange.174 = phi ptr [ %exchange.1.ph, %if.then77 ], [ %exchange.1.ph, %if.end74 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.179, %if.then77 ], [ %call73, %if.end74 ], [ null, %sw.bb ] + %inc = add nuw nsw i32 %iter.084, 1 + %cmp40 = icmp ult i32 %iter.084, 2 %cmp42 = icmp eq ptr %provkey.2, null %20 = select i1 %cmp40, i1 %cmp42, i1 false br i1 %20, label %for.body, label %for.end, !llvm.loop !6 diff --git a/bench/openssl/optimized/libcrypto-lib-kem.ll b/bench/openssl/optimized/libcrypto-lib-kem.ll index 2c79e94515f..e5c835b6dbb 100644 --- a/bench/openssl/optimized/libcrypto-lib-kem.ll +++ b/bench/openssl/optimized/libcrypto-lib-kem.ll @@ -124,15 +124,14 @@ if.then25: ; preds = %if.end21 br label %if.then150 for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0108 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %provauthkey.0107 = phi ptr [ null, %for.cond.preheader ], [ %provauthkey.2, %for.inc ] - %tmp_prov.0106 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.187, %for.inc ] - %kem.0105 = phi ptr [ null, %for.cond.preheader ], [ %kem.185, %for.inc ] - %cmp.i = icmp eq ptr %kem.0105, null + %iter.0103 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %provauthkey.0102 = phi ptr [ null, %for.cond.preheader ], [ %provauthkey.2, %for.inc ] + %kem.0101 = phi ptr [ null, %for.cond.preheader ], [ %kem.185, %for.inc ] + %cmp.i = icmp eq ptr %kem.0101, null br i1 %cmp.i, label %EVP_KEM_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0105, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0101, i64 0, i32 4 %6 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %6, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -146,22 +145,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_KEM_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0105, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0101, i64 0, i32 1 %7 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %7, ptr noundef nonnull @.str, i32 noundef 431) #4 - %prov.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0105, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0101, i64 0, i32 3 %8 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %8) #4 - call void @CRYPTO_free(ptr noundef nonnull %kem.0105, ptr noundef nonnull @.str, i32 noundef 434) #4 + call void @CRYPTO_free(ptr noundef nonnull %kem.0101, ptr noundef nonnull @.str, i32 noundef 434) #4 br label %EVP_KEM_free.exit EVP_KEM_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %9 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %9) #4 - switch i32 %iter.0108, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb37 - ] + %switch = icmp eq i32 %iter.0103, 1 + br i1 %switch, label %sw.bb, label %sw.bb37 sw.bb: ; preds = %EVP_KEM_free.exit %10 = load ptr, ptr %libctx, align 8 @@ -189,16 +186,13 @@ if.then44: ; preds = %sw.bb37 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 6, i32 noundef 150, ptr noundef null) #4 br label %if.then150 -sw.epilog: ; preds = %EVP_KEM_free.exit - br i1 %cmp.i, label %for.inc, label %if.end49 - -if.end49: ; preds = %if.then34, %sw.bb37, %sw.epilog - %tmp_prov.186 = phi ptr [ %tmp_prov.0106, %sw.epilog ], [ %12, %if.then34 ], [ %call39, %sw.bb37 ] - %kem.184 = phi ptr [ %kem.0105, %sw.epilog ], [ %call.i, %if.then34 ], [ %call.i80, %sw.bb37 ] +if.end49: ; preds = %sw.bb37, %if.then34 + %kem.1.ph = phi ptr [ %call.i, %if.then34 ], [ %call.i80, %sw.bb37 ] + %tmp_prov.1.ph = phi ptr [ %12, %if.then34 ], [ %call39, %sw.bb37 ] %15 = load ptr, ptr %keymgmt22, align 8 %call51 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %15) #4 %16 = load ptr, ptr %propquery40, align 8 - %call53 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.186, ptr noundef %call51, ptr noundef %16) #4 + %call53 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call51, ptr noundef %16) #4 store ptr %call53, ptr %tmp_keymgmt, align 8 %cmp54.not = icmp eq ptr %call53, null br i1 %cmp54.not, label %if.then78, label %if.then56 @@ -220,31 +214,30 @@ if.then66: ; preds = %if.then56 br i1 %cmp70, label %if.then72, label %if.end75 if.then72: ; preds = %if.then66 - call void @EVP_KEM_free(ptr noundef nonnull %kem.184) + call void @EVP_KEM_free(ptr noundef nonnull %kem.1.ph) call void @ERR_new() #4 call void @ERR_set_debug(ptr noundef nonnull @.str, i32 noundef 135, ptr noundef nonnull @__func__.evp_kem_init) #4 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 6, i32 noundef 134, ptr noundef null) #4 br label %if.then150 if.end75: ; preds = %if.then56, %if.then66 - %provauthkey.1.ph = phi ptr [ %provauthkey.0107, %if.then56 ], [ %call69, %if.then66 ] + %provauthkey.1.ph = phi ptr [ %provauthkey.0102, %if.then56 ], [ %call69, %if.then66 ] %.pr = load ptr, ptr %tmp_keymgmt, align 8 %cmp76 = icmp eq ptr %.pr, null br i1 %cmp76, label %if.then78, label %for.inc if.then78: ; preds = %if.end49, %if.end75 - %provauthkey.196 = phi ptr [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0107, %if.end49 ] - %provkey.195 = phi ptr [ %call60, %if.end75 ], [ null, %if.end49 ] + %provauthkey.192 = phi ptr [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0102, %if.end49 ] + %provkey.191 = phi ptr [ %call60, %if.end75 ], [ null, %if.end49 ] call void @EVP_KEYMGMT_free(ptr noundef %call53) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end75, %if.then78, %sw.epilog - %tmp_prov.187 = phi ptr [ %tmp_prov.0106, %sw.epilog ], [ %tmp_prov.186, %if.then78 ], [ %tmp_prov.186, %if.end75 ], [ %tmp_prov.0106, %sw.bb ] - %kem.185 = phi ptr [ null, %sw.epilog ], [ %kem.184, %if.then78 ], [ %kem.184, %if.end75 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.195, %if.then78 ], [ %call60, %if.end75 ], [ null, %sw.bb ] - %provauthkey.2 = phi ptr [ %provauthkey.0107, %sw.epilog ], [ %provauthkey.196, %if.then78 ], [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0107, %sw.bb ] - %inc = add nuw nsw i32 %iter.0108, 1 - %cmp27 = icmp ult i32 %iter.0108, 2 +for.inc: ; preds = %sw.bb, %if.end75, %if.then78 + %kem.185 = phi ptr [ %kem.1.ph, %if.then78 ], [ %kem.1.ph, %if.end75 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.191, %if.then78 ], [ %call60, %if.end75 ], [ null, %sw.bb ] + %provauthkey.2 = phi ptr [ %provauthkey.192, %if.then78 ], [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0102, %sw.bb ] + %inc = add nuw nsw i32 %iter.0103, 1 + %cmp27 = icmp ult i32 %iter.0103, 2 %cmp29 = icmp eq ptr %provkey.2, null %22 = and i1 %cmp29, %cmp27 br i1 %22, label %for.body, label %for.end, !llvm.loop !5 @@ -548,7 +541,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_KEM_up_ref(ptr nocapture noundef %kem) #2 { +define noundef i32 @EVP_KEM_up_ref(ptr nocapture noundef %kem) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_kem_st, ptr %kem, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 diff --git a/bench/openssl/optimized/libcrypto-lib-m_sigver.ll b/bench/openssl/optimized/libcrypto-lib-m_sigver.ll index ab448c3c9e5..e6d1787b360 100644 --- a/bench/openssl/optimized/libcrypto-lib-m_sigver.ll +++ b/bench/openssl/optimized/libcrypto-lib-m_sigver.ll @@ -139,8 +139,8 @@ if.then41: ; preds = %if.end39 %cmp53 = icmp eq ptr %9, null %.pre = load ptr, ptr %keymgmt, align 8 %cmp57 = icmp eq ptr %9, %.pre - %or.cond194 = select i1 %cmp53, i1 true, i1 %cmp57 - br i1 %or.cond194, label %if.end63, label %if.then61 + %or.cond189 = select i1 %cmp53, i1 true, i1 %cmp57 + br i1 %or.cond189, label %if.end63, label %if.then61 if.else42: ; preds = %if.end39 %cmp43 = icmp eq ptr %mdname, null @@ -187,16 +187,12 @@ if.then68: ; preds = %if.end63 br label %err for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0192 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.0191 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.1165, %for.inc ] - %signature.2190 = phi ptr [ %signature.1, %for.cond.preheader ], [ %signature.3163, %for.inc ] - call void @EVP_SIGNATURE_free(ptr noundef %signature.2190) #5 + %switch = phi i1 [ true, %for.cond.preheader ], [ false, %for.inc ] + %signature.2186 = phi ptr [ %signature.1, %for.cond.preheader ], [ %signature.3163, %for.inc ] + call void @EVP_SIGNATURE_free(ptr noundef %signature.2186) #5 %11 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %11) #5 - switch i32 %iter.0192, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb83 - ] + br i1 %switch, label %sw.bb, label %sw.bb83 sw.bb: ; preds = %for.body %12 = load ptr, ptr %libctx75, align 8 @@ -217,17 +213,13 @@ sw.bb83: ; preds = %for.body %cmp88 = icmp eq ptr %call87, null br i1 %cmp88, label %legacy, label %if.end95 -sw.epilog: ; preds = %for.body - %cmp92 = icmp eq ptr %signature.2190, null - br i1 %cmp92, label %for.inc, label %if.end95 - -if.end95: ; preds = %if.then80, %sw.bb83, %sw.epilog - %tmp_prov.1164 = phi ptr [ %tmp_prov.0191, %sw.epilog ], [ %call81, %if.then80 ], [ %call85, %sw.bb83 ] - %signature.3162 = phi ptr [ %signature.2190, %sw.epilog ], [ %call77, %if.then80 ], [ %call87, %sw.bb83 ] +if.end95: ; preds = %sw.bb83, %if.then80 + %signature.3.ph = phi ptr [ %call77, %if.then80 ], [ %call87, %sw.bb83 ] + %tmp_prov.1.ph = phi ptr [ %call81, %if.then80 ], [ %call85, %sw.bb83 ] %16 = load ptr, ptr %keymgmt, align 8 %call97 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %16) #5 %17 = load ptr, ptr %propquery86, align 8 - %call99 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1164, ptr noundef %call97, ptr noundef %17) #5 + %call99 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call97, ptr noundef %17) #5 store ptr %call99, ptr %tmp_keymgmt, align 8 %cmp100.not = icmp eq ptr %call99, null br i1 %cmp100.not, label %if.then110, label %if.end107 @@ -242,18 +234,15 @@ if.end107: ; preds = %if.end95 br i1 %cmp108, label %if.then110, label %for.inc if.then110: ; preds = %if.end95, %if.end107 - %provkey.1172 = phi ptr [ %call106, %if.end107 ], [ null, %if.end95 ] + %provkey.1168 = phi ptr [ %call106, %if.end107 ], [ null, %if.end95 ] call void @EVP_KEYMGMT_free(ptr noundef %call99) #5 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end107, %if.then110, %sw.epilog - %tmp_prov.1165 = phi ptr [ %tmp_prov.0191, %sw.epilog ], [ %tmp_prov.1164, %if.then110 ], [ %tmp_prov.1164, %if.end107 ], [ %tmp_prov.0191, %sw.bb ] - %signature.3163 = phi ptr [ null, %sw.epilog ], [ %signature.3162, %if.then110 ], [ %signature.3162, %if.end107 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.1172, %if.then110 ], [ %call106, %if.end107 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.0192, 1 - %cmp71 = icmp ult i32 %iter.0192, 2 +for.inc: ; preds = %sw.bb, %if.end107, %if.then110 + %signature.3163 = phi ptr [ %signature.3.ph, %if.then110 ], [ %signature.3.ph, %if.end107 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.1168, %if.then110 ], [ %call106, %if.end107 ], [ null, %sw.bb ] %cmp73 = icmp eq ptr %provkey.2, null - %21 = select i1 %cmp71, i1 %cmp73, i1 false + %21 = select i1 %switch, i1 %cmp73, i1 false br i1 %21, label %for.body, label %for.end, !llvm.loop !5 for.end: ; preds = %for.inc @@ -345,12 +334,12 @@ if.end160: ; preds = %if.else147 br i1 %cmp161.not, label %if.end186, label %if.then163 if.then163: ; preds = %if.then156, %if.end160 - %mdname.addr.1178 = phi ptr [ %mdname.addr.0, %if.end160 ], [ %locmdname, %if.then156 ] + %mdname.addr.1174 = phi ptr [ %mdname.addr.0, %if.end160 ], [ %locmdname, %if.then156 ] call void @evp_md_ctx_clear_digest(ptr noundef %ctx, i32 noundef 1, i32 noundef 0) #5 %call164 = call i32 @ERR_set_mark() #5 %libctx165 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %1, i64 0, i32 1 %25 = load ptr, ptr %libctx165, align 8 - %call166 = call ptr @EVP_MD_fetch(ptr noundef %25, ptr noundef nonnull %mdname.addr.1178, ptr noundef %props.addr.0) #5 + %call166 = call ptr @EVP_MD_fetch(ptr noundef %25, ptr noundef nonnull %mdname.addr.1174, ptr noundef %props.addr.0) #5 %fetched_digest = getelementptr inbounds %struct.evp_md_ctx_st, ptr %ctx, i64 0, i32 8 store ptr %call166, ptr %fetched_digest, align 8 %cmp168.not = icmp eq ptr %call166, null @@ -363,7 +352,7 @@ if.then170: ; preds = %if.then163 br label %if.end183 if.else173: ; preds = %if.then163 - %call174 = call ptr @EVP_get_digestbyname(ptr noundef nonnull %mdname.addr.1178) #5 + %call174 = call ptr @EVP_get_digestbyname(ptr noundef nonnull %mdname.addr.1174) #5 store ptr %call174, ptr %digest175, align 8 store ptr %call174, ptr %ctx, align 8 %cmp178 = icmp eq ptr %call174, null @@ -381,7 +370,7 @@ if.end183: ; preds = %if.else173, %if.the br label %if.end186 if.end186: ; preds = %if.then156, %if.then152, %if.end.i149, %land.lhs.true.i146, %if.end160, %if.end183, %if.then139 - %mdname.addr.2 = phi ptr [ %mdname.addr.0, %if.then139 ], [ %mdname.addr.1178, %if.end183 ], [ null, %if.end160 ], [ %call144, %if.end.i149 ], [ null, %land.lhs.true.i146 ], [ null, %if.then152 ], [ null, %if.then156 ] + %mdname.addr.2 = phi ptr [ %mdname.addr.0, %if.then139 ], [ %mdname.addr.1174, %if.end183 ], [ null, %if.end160 ], [ %call144, %if.end.i149 ], [ null, %land.lhs.true.i146 ], [ null, %if.then152 ], [ null, %if.then156 ] %tobool187.not = icmp eq i32 %ver, 0 br i1 %tobool187.not, label %if.else197, label %if.then188 @@ -410,10 +399,10 @@ if.then200: ; preds = %if.else197 br label %err if.end206: ; preds = %if.else197, %if.then188 - %.sink195 = phi ptr [ %26, %if.then188 ], [ %27, %if.else197 ] + %.sink190 = phi ptr [ %26, %if.then188 ], [ %27, %if.else197 ] %algctx204 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %1, i64 0, i32 5, i32 0, i32 1 %28 = load ptr, ptr %algctx204, align 8 - %call205 = call i32 %.sink195(ptr noundef %28, ptr noundef %mdname.addr.2, ptr noundef %provkey.3, ptr noundef %params) #5 + %call205 = call i32 %.sink190(ptr noundef %28, ptr noundef %mdname.addr.2, ptr noundef %provkey.3, ptr noundef %params) #5 %cmp207 = icmp sgt i32 %call205, 0 %cmp210 = icmp ne ptr %mdname.addr.2, null %or.cond2 = or i1 %cmp210, %cmp207 @@ -429,7 +418,7 @@ if.then216: ; preds = %if.end213 br label %err err: ; preds = %if.end213, %if.then216, %if.then200, %if.then191, %if.then180, %if.then131, %if.then114, %if.then68, %if.then61, %if.then37 - call void @evp_pkey_ctx_free_old_ops(ptr noundef %1) #5 + call void @evp_pkey_ctx_free_old_ops(ptr noundef nonnull %1) #5 store i32 0, ptr %1, align 8 %29 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %29) #5 @@ -471,8 +460,8 @@ if.end233: ; preds = %if.end228 %and = and i32 %34, 4 %tobool236.not = icmp eq i32 %and, 0 %cmp238 = icmp eq ptr %type.addr.0, null - %or.cond186 = select i1 %tobool236.not, i1 %cmp238, i1 false - br i1 %or.cond186, label %if.then240, label %if.end253 + %or.cond182 = select i1 %tobool236.not, i1 %cmp238, i1 false + br i1 %or.cond182, label %if.then240, label %if.end253 if.then240: ; preds = %if.end233 %call241 = call i32 @EVP_PKEY_get_default_digest_nid(ptr noundef %pkey, ptr noundef nonnull %def_nid) #5 @@ -574,15 +563,15 @@ if.end322: ; preds = %if.end301, %if.else if.end328: ; preds = %if.end322 %tobool329.not = icmp eq ptr %pctx, null - %.pre193 = load ptr, ptr %pctx1, align 8 + %.pre188 = load ptr, ptr %pctx1, align 8 br i1 %tobool329.not, label %if.end332, label %if.then330 if.then330: ; preds = %if.end328 - store ptr %.pre193, ptr %pctx, align 8 + store ptr %.pre188, ptr %pctx, align 8 br label %if.end332 if.end332: ; preds = %if.then330, %if.end328 - %pmeth334 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %.pre193, i64 0, i32 12 + %pmeth334 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %.pre188, i64 0, i32 12 %45 = load ptr, ptr %pmeth334, align 8 %flags335 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %45, i64 0, i32 1 %46 = load i32, ptr %flags335, align 4 @@ -1571,7 +1560,7 @@ declare i32 @EVP_PKEY_get_default_digest_nid(ptr noundef, ptr noundef) local_unn declare ptr @OBJ_nid2sn(i32 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal i32 @update(ptr nocapture readnone %ctx, ptr nocapture readnone %data, i64 %datalen) #0 { +define internal noundef i32 @update(ptr nocapture readnone %ctx, ptr nocapture readnone %data, i64 %datalen) #0 { entry: tail call void @ERR_new() #5 tail call void @ERR_set_debug(ptr noundef nonnull @.str, i32 noundef 23, ptr noundef nonnull @__func__.update) #5 diff --git a/bench/openssl/optimized/libcrypto-lib-pcbc_enc.ll b/bench/openssl/optimized/libcrypto-lib-pcbc_enc.ll index 46430024849..3bbcda5790c 100644 --- a/bench/openssl/optimized/libcrypto-lib-pcbc_enc.ll +++ b/bench/openssl/optimized/libcrypto-lib-pcbc_enc.ll @@ -8,11 +8,11 @@ define void @DES_pcbc_encrypt(ptr nocapture noundef readonly %input, ptr nocaptu entry: %tin = alloca [2 x i32], align 4 %tobool.not = icmp eq i32 %enc, 0 - %cmp157145 = icmp sgt i64 %length, 0 + %cmp157146 = icmp sgt i64 %length, 0 br i1 %tobool.not, label %if.else127, label %if.then if.then: ; preds = %entry - br i1 %cmp157145, label %for.body.lr.ph, label %if.end275 + br i1 %cmp157146, label %for.body.lr.ph, label %if.end275 for.body.lr.ph: ; preds = %if.then %incdec.ptr7 = getelementptr inbounds i8, ptr %ivec, i64 4 @@ -22,24 +22,24 @@ for.body.lr.ph: ; preds = %if.then br label %for.body for.body: ; preds = %for.body.lr.ph, %if.end - %out.0144 = phi ptr [ %output, %for.body.lr.ph ], [ %incdec.ptr126, %if.end ] - %in.0143 = phi ptr [ %input, %for.body.lr.ph ], [ %in.8, %if.end ] - %xor1.0142 = phi i32 [ %0, %for.body.lr.ph ], [ %xor98, %if.end ] - %xor0.0141 = phi i32 [ %1, %for.body.lr.ph ], [ %xor97, %if.end ] - %length.addr.0140 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] - %cmp26 = icmp ugt i64 %length.addr.0140, 7 + %out.0145 = phi ptr [ %output, %for.body.lr.ph ], [ %incdec.ptr126, %if.end ] + %in.0144 = phi ptr [ %input, %for.body.lr.ph ], [ %in.8, %if.end ] + %xor1.0143 = phi i32 [ %0, %for.body.lr.ph ], [ %xor98, %if.end ] + %xor0.0142 = phi i32 [ %1, %for.body.lr.ph ], [ %xor97, %if.end ] + %length.addr.0141 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] + %cmp26 = icmp ugt i64 %length.addr.0141, 7 br i1 %cmp26, label %if.then28, label %if.else if.then28: ; preds = %for.body - %2 = load i32, ptr %in.0143, align 1 - %incdec.ptr39 = getelementptr inbounds i8, ptr %in.0143, i64 4 + %2 = load i32, ptr %in.0144, align 1 + %incdec.ptr39 = getelementptr inbounds i8, ptr %in.0144, i64 4 %3 = load i32, ptr %incdec.ptr39, align 1 - %incdec.ptr53 = getelementptr inbounds i8, ptr %in.0143, i64 8 + %incdec.ptr53 = getelementptr inbounds i8, ptr %in.0144, i64 8 br label %if.end if.else: ; preds = %for.body - %add.ptr = getelementptr inbounds i8, ptr %in.0143, i64 %length.addr.0140 - switch i64 %length.addr.0140, label %if.end [ + %add.ptr = getelementptr inbounds i8, ptr %in.0144, i64 %length.addr.0141 + switch i64 %length.addr.0141, label %default.unreachable [ i64 1, label %sw.bb88 i64 7, label %sw.bb60 i64 6, label %sw.bb65 @@ -116,13 +116,16 @@ sw.bb88: ; preds = %if.else, %sw.bb83 %or91 = or i32 %sin0.2, %conv90 br label %if.end -if.end: ; preds = %if.else, %sw.bb88, %if.then28 - %sin0.3 = phi i32 [ %2, %if.then28 ], [ 0, %if.else ], [ %or91, %sw.bb88 ] - %sin1.7 = phi i32 [ %3, %if.then28 ], [ 0, %if.else ], [ %sin1.6, %sw.bb88 ] - %in.8 = phi ptr [ %incdec.ptr53, %if.then28 ], [ %add.ptr, %if.else ], [ %incdec.ptr89, %sw.bb88 ] - %xor = xor i32 %sin0.3, %xor0.0141 +default.unreachable: ; preds = %if.else, %if.else228 + unreachable + +if.end: ; preds = %sw.bb88, %if.then28 + %sin0.3 = phi i32 [ %2, %if.then28 ], [ %or91, %sw.bb88 ] + %sin1.7 = phi i32 [ %3, %if.then28 ], [ %sin1.6, %sw.bb88 ] + %in.8 = phi ptr [ %incdec.ptr53, %if.then28 ], [ %incdec.ptr89, %sw.bb88 ] + %xor = xor i32 %sin0.3, %xor0.0142 store i32 %xor, ptr %tin, align 4 - %xor93 = xor i32 %sin1.7, %xor1.0142 + %xor93 = xor i32 %sin1.7, %xor1.0143 store i32 %xor93, ptr %arrayidx94, align 4 call void @DES_encrypt1(ptr noundef nonnull %tin, ptr noundef %schedule, i32 noundef 1) #2 %11 = load i32, ptr %tin, align 4 @@ -130,41 +133,41 @@ if.end: ; preds = %if.else, %sw.bb88, %xor97 = xor i32 %11, %sin0.3 %xor98 = xor i32 %12, %sin1.7 %conv99 = trunc i32 %11 to i8 - %incdec.ptr100 = getelementptr inbounds i8, ptr %out.0144, i64 1 - store i8 %conv99, ptr %out.0144, align 1 + %incdec.ptr100 = getelementptr inbounds i8, ptr %out.0145, i64 1 + store i8 %conv99, ptr %out.0145, align 1 %shr = lshr i32 %11, 8 %conv102 = trunc i32 %shr to i8 - %incdec.ptr103 = getelementptr inbounds i8, ptr %out.0144, i64 2 + %incdec.ptr103 = getelementptr inbounds i8, ptr %out.0145, i64 2 store i8 %conv102, ptr %incdec.ptr100, align 1 %shr104 = lshr i32 %11, 16 %conv106 = trunc i32 %shr104 to i8 - %incdec.ptr107 = getelementptr inbounds i8, ptr %out.0144, i64 3 + %incdec.ptr107 = getelementptr inbounds i8, ptr %out.0145, i64 3 store i8 %conv106, ptr %incdec.ptr103, align 1 %shr108 = lshr i32 %11, 24 %conv110 = trunc i32 %shr108 to i8 - %incdec.ptr111 = getelementptr inbounds i8, ptr %out.0144, i64 4 + %incdec.ptr111 = getelementptr inbounds i8, ptr %out.0145, i64 4 store i8 %conv110, ptr %incdec.ptr107, align 1 %conv113 = trunc i32 %12 to i8 - %incdec.ptr114 = getelementptr inbounds i8, ptr %out.0144, i64 5 + %incdec.ptr114 = getelementptr inbounds i8, ptr %out.0145, i64 5 store i8 %conv113, ptr %incdec.ptr111, align 1 %shr115 = lshr i32 %12, 8 %conv117 = trunc i32 %shr115 to i8 - %incdec.ptr118 = getelementptr inbounds i8, ptr %out.0144, i64 6 + %incdec.ptr118 = getelementptr inbounds i8, ptr %out.0145, i64 6 store i8 %conv117, ptr %incdec.ptr114, align 1 %shr119 = lshr i32 %12, 16 %conv121 = trunc i32 %shr119 to i8 - %incdec.ptr122 = getelementptr inbounds i8, ptr %out.0144, i64 7 + %incdec.ptr122 = getelementptr inbounds i8, ptr %out.0145, i64 7 store i8 %conv121, ptr %incdec.ptr118, align 1 %shr123 = lshr i32 %12, 24 %conv125 = trunc i32 %shr123 to i8 - %incdec.ptr126 = getelementptr inbounds i8, ptr %out.0144, i64 8 + %incdec.ptr126 = getelementptr inbounds i8, ptr %out.0145, i64 8 store i8 %conv125, ptr %incdec.ptr122, align 1 - %sub = add nsw i64 %length.addr.0140, -8 - %cmp = icmp sgt i64 %length.addr.0140, 8 + %sub = add nsw i64 %length.addr.0141, -8 + %cmp = icmp sgt i64 %length.addr.0141, 8 br i1 %cmp, label %for.body, label %if.end275, !llvm.loop !4 if.else127: ; preds = %entry - br i1 %cmp157145, label %for.body159.lr.ph, label %if.end275 + br i1 %cmp157146, label %for.body159.lr.ph, label %if.end275 for.body159.lr.ph: ; preds = %if.else127 %incdec.ptr138 = getelementptr inbounds i8, ptr %ivec, i64 4 @@ -174,28 +177,28 @@ for.body159.lr.ph: ; preds = %if.else127 br label %for.body159 for.body159: ; preds = %for.body159.lr.ph, %if.end269 - %out.1150 = phi ptr [ %output, %for.body159.lr.ph ], [ %incdec.ptr227, %if.end269 ] - %in.9149 = phi ptr [ %input, %for.body159.lr.ph ], [ %incdec.ptr184, %if.end269 ] - %xor1.1148 = phi i32 [ %13, %for.body159.lr.ph ], [ %xor271, %if.end269 ] - %xor0.1147 = phi i32 [ %14, %for.body159.lr.ph ], [ %xor270, %if.end269 ] - %length.addr.1146 = phi i64 [ %length, %for.body159.lr.ph ], [ %sub273, %if.end269 ] - %15 = load i16, ptr %in.9149, align 1 + %out.1151 = phi ptr [ %output, %for.body159.lr.ph ], [ %incdec.ptr227, %if.end269 ] + %in.9150 = phi ptr [ %input, %for.body159.lr.ph ], [ %incdec.ptr184, %if.end269 ] + %xor1.1149 = phi i32 [ %13, %for.body159.lr.ph ], [ %xor271, %if.end269 ] + %xor0.1148 = phi i32 [ %14, %for.body159.lr.ph ], [ %xor270, %if.end269 ] + %length.addr.1147 = phi i64 [ %length, %for.body159.lr.ph ], [ %sub273, %if.end269 ] + %15 = load i16, ptr %in.9150, align 1 %16 = zext i16 %15 to i32 - %incdec.ptr162 = getelementptr inbounds i8, ptr %in.9149, i64 2 - %incdec.ptr166 = getelementptr inbounds i8, ptr %in.9149, i64 3 + %incdec.ptr162 = getelementptr inbounds i8, ptr %in.9150, i64 2 + %incdec.ptr166 = getelementptr inbounds i8, ptr %in.9150, i64 3 %17 = load i8, ptr %incdec.ptr162, align 1 %conv167 = zext i8 %17 to i32 %shl168 = shl nuw nsw i32 %conv167, 16 %or169 = or disjoint i32 %shl168, %16 - %incdec.ptr170 = getelementptr inbounds i8, ptr %in.9149, i64 4 + %incdec.ptr170 = getelementptr inbounds i8, ptr %in.9150, i64 4 %18 = load i8, ptr %incdec.ptr166, align 1 %conv171 = zext i8 %18 to i32 %shl172 = shl nuw i32 %conv171, 24 %or173 = or disjoint i32 %or169, %shl172 %19 = load i16, ptr %incdec.ptr170, align 1 %20 = zext i16 %19 to i32 - %incdec.ptr176 = getelementptr inbounds i8, ptr %in.9149, i64 6 - %incdec.ptr180 = getelementptr inbounds i8, ptr %in.9149, i64 7 + %incdec.ptr176 = getelementptr inbounds i8, ptr %in.9150, i64 6 + %incdec.ptr180 = getelementptr inbounds i8, ptr %in.9150, i64 7 %21 = load i8, ptr %incdec.ptr176, align 1 %conv181 = zext i8 %21 to i32 %shl182 = shl nuw nsw i32 %conv181, 16 @@ -208,23 +211,22 @@ for.body159: ; preds = %for.body159.lr.ph, store i32 %or187, ptr %arrayidx189, align 4 call void @DES_encrypt1(ptr noundef nonnull %tin, ptr noundef %schedule, i32 noundef 0) #2 %23 = load i32, ptr %tin, align 4 - %xor192 = xor i32 %23, %xor0.1147 + %xor192 = xor i32 %23, %xor0.1148 %24 = load i32, ptr %arrayidx189, align 4 - %xor194 = xor i32 %24, %xor1.1148 - %cmp195 = icmp ugt i64 %length.addr.1146, 7 + %xor194 = xor i32 %24, %xor1.1149 + %cmp195 = icmp ugt i64 %length.addr.1147, 7 br i1 %cmp195, label %if.end269, label %if.else228 if.else228: ; preds = %for.body159 - %add.ptr229 = getelementptr inbounds i8, ptr %out.1150, i64 %length.addr.1146 - switch i64 %length.addr.1146, label %if.else228.unreachabledefault [ - i64 1, label %sw.bb264 + %add.ptr229 = getelementptr inbounds i8, ptr %out.1151, i64 %length.addr.1147 + switch i64 %length.addr.1147, label %default.unreachable [ + i64 1, label %if.end269.thread i64 7, label %sw.bb235 i64 6, label %sw.bb240 i64 5, label %sw.bb245 i64 4, label %sw.bb249 i64 3, label %sw.bb254 i64 2, label %sw.bb259 - i64 0, label %if.end275 ] sw.bb235: ; preds = %if.else228 @@ -271,9 +273,9 @@ sw.bb259: ; preds = %sw.bb254, %if.else2 %conv262 = trunc i32 %shr260 to i8 %incdec.ptr263 = getelementptr inbounds i8, ptr %out.7, i64 -1 store i8 %conv262, ptr %incdec.ptr263, align 1 - br label %sw.bb264 + br label %if.end269.thread -sw.bb264: ; preds = %if.else228, %sw.bb259 +if.end269.thread: ; preds = %sw.bb259, %if.else228 %out.8 = phi ptr [ %add.ptr229, %if.else228 ], [ %incdec.ptr263, %sw.bb259 ] %conv266 = trunc i32 %xor192 to i8 %incdec.ptr267 = getelementptr inbounds i8, ptr %out.8, i64 -1 @@ -281,47 +283,44 @@ sw.bb264: ; preds = %if.else228, %sw.bb2 br label %if.end275 if.end269: ; preds = %for.body159 - %incdec.ptr184 = getelementptr inbounds i8, ptr %in.9149, i64 8 + %incdec.ptr184 = getelementptr inbounds i8, ptr %in.9150, i64 8 %conv199 = trunc i32 %xor192 to i8 - %incdec.ptr200 = getelementptr inbounds i8, ptr %out.1150, i64 1 - store i8 %conv199, ptr %out.1150, align 1 + %incdec.ptr200 = getelementptr inbounds i8, ptr %out.1151, i64 1 + store i8 %conv199, ptr %out.1151, align 1 %shr201 = lshr i32 %xor192, 8 %conv203 = trunc i32 %shr201 to i8 - %incdec.ptr204 = getelementptr inbounds i8, ptr %out.1150, i64 2 + %incdec.ptr204 = getelementptr inbounds i8, ptr %out.1151, i64 2 store i8 %conv203, ptr %incdec.ptr200, align 1 %shr205 = lshr i32 %xor192, 16 %conv207 = trunc i32 %shr205 to i8 - %incdec.ptr208 = getelementptr inbounds i8, ptr %out.1150, i64 3 + %incdec.ptr208 = getelementptr inbounds i8, ptr %out.1151, i64 3 store i8 %conv207, ptr %incdec.ptr204, align 1 %shr209 = lshr i32 %xor192, 24 %conv211 = trunc i32 %shr209 to i8 - %incdec.ptr212 = getelementptr inbounds i8, ptr %out.1150, i64 4 + %incdec.ptr212 = getelementptr inbounds i8, ptr %out.1151, i64 4 store i8 %conv211, ptr %incdec.ptr208, align 1 %conv214 = trunc i32 %xor194 to i8 - %incdec.ptr215 = getelementptr inbounds i8, ptr %out.1150, i64 5 + %incdec.ptr215 = getelementptr inbounds i8, ptr %out.1151, i64 5 store i8 %conv214, ptr %incdec.ptr212, align 1 %shr216 = lshr i32 %xor194, 8 %conv218 = trunc i32 %shr216 to i8 - %incdec.ptr219 = getelementptr inbounds i8, ptr %out.1150, i64 6 + %incdec.ptr219 = getelementptr inbounds i8, ptr %out.1151, i64 6 store i8 %conv218, ptr %incdec.ptr215, align 1 %shr220 = lshr i32 %xor194, 16 %conv222 = trunc i32 %shr220 to i8 - %incdec.ptr223 = getelementptr inbounds i8, ptr %out.1150, i64 7 + %incdec.ptr223 = getelementptr inbounds i8, ptr %out.1151, i64 7 store i8 %conv222, ptr %incdec.ptr219, align 1 %shr224 = lshr i32 %xor194, 24 %conv226 = trunc i32 %shr224 to i8 - %incdec.ptr227 = getelementptr inbounds i8, ptr %out.1150, i64 8 + %incdec.ptr227 = getelementptr inbounds i8, ptr %out.1151, i64 8 store i8 %conv226, ptr %incdec.ptr223, align 1 %xor270 = xor i32 %xor192, %or173 %xor271 = xor i32 %xor194, %or187 - %sub273 = add nsw i64 %length.addr.1146, -8 - %cmp157.not = icmp eq i64 %length.addr.1146, 8 - br i1 %cmp157.not, label %if.end275, label %for.body159, !llvm.loop !6 - -if.else228.unreachabledefault: ; preds = %if.else228 - unreachable + %sub273 = add nsw i64 %length.addr.1147, -8 + %cmp157 = icmp sgt i64 %length.addr.1147, 8 + br i1 %cmp157, label %for.body159, label %if.end275, !llvm.loop !6 -if.end275: ; preds = %if.end, %if.end269, %if.else228, %sw.bb264, %if.then, %if.else127 +if.end275: ; preds = %if.end, %if.end269, %if.end269.thread, %if.then, %if.else127 ret void } diff --git a/bench/openssl/optimized/libcrypto-lib-signature.ll b/bench/openssl/optimized/libcrypto-lib-signature.ll index cb7acc608d0..79f3d39b99b 100644 --- a/bench/openssl/optimized/libcrypto-lib-signature.ll +++ b/bench/openssl/optimized/libcrypto-lib-signature.ll @@ -63,7 +63,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_SIGNATURE_up_ref(ptr nocapture noundef %signature) #2 { +define noundef i32 @EVP_SIGNATURE_up_ref(ptr nocapture noundef %signature) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_signature_st, ptr %signature, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 @@ -848,14 +848,13 @@ if.then25: ; preds = %if.end20 br label %err for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0119 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.0118 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.1106, %for.inc ] - %signature.0117 = phi ptr [ null, %for.cond.preheader ], [ %signature.1104, %for.inc ] - %cmp.i = icmp eq ptr %signature.0117, null + %iter.0103 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %signature.0102 = phi ptr [ null, %for.cond.preheader ], [ %signature.193, %for.inc ] + %cmp.i = icmp eq ptr %signature.0102, null br i1 %cmp.i, label %EVP_SIGNATURE_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0117, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0102, i64 0, i32 4 %3 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %3, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -869,22 +868,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_SIGNATURE_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0117, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0102, i64 0, i32 1 %4 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %4, ptr noundef nonnull @.str, i32 noundef 285) #4 - %prov.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0117, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0102, i64 0, i32 3 %5 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %5) #4 - call void @CRYPTO_free(ptr noundef nonnull %signature.0117, ptr noundef nonnull @.str, i32 noundef 288) #4 + call void @CRYPTO_free(ptr noundef nonnull %signature.0102, ptr noundef nonnull @.str, i32 noundef 288) #4 br label %EVP_SIGNATURE_free.exit EVP_SIGNATURE_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %6 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %6) #4 - switch i32 %iter.0119, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb38 - ] + %switch = icmp eq i32 %iter.0103, 1 + br i1 %switch, label %sw.bb, label %sw.bb38 sw.bb: ; preds = %EVP_SIGNATURE_free.exit %7 = load ptr, ptr %libctx, align 8 @@ -906,16 +903,13 @@ sw.bb38: ; preds = %EVP_SIGNATURE_free. %cmp43 = icmp eq ptr %call.i88, null br i1 %cmp43, label %legacy, label %if.end50 -sw.epilog: ; preds = %EVP_SIGNATURE_free.exit - br i1 %cmp.i, label %for.inc, label %if.end50 - -if.end50: ; preds = %if.then35, %sw.bb38, %sw.epilog - %tmp_prov.1105 = phi ptr [ %tmp_prov.0118, %sw.epilog ], [ %9, %if.then35 ], [ %call40, %sw.bb38 ] - %signature.1103 = phi ptr [ %signature.0117, %sw.epilog ], [ %call.i, %if.then35 ], [ %call.i88, %sw.bb38 ] +if.end50: ; preds = %sw.bb38, %if.then35 + %signature.1.ph = phi ptr [ %call.i, %if.then35 ], [ %call.i88, %sw.bb38 ] + %tmp_prov.1.ph = phi ptr [ %9, %if.then35 ], [ %call40, %sw.bb38 ] %12 = load ptr, ptr %keymgmt, align 8 %call52 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %12) #4 %13 = load ptr, ptr %propquery41, align 8 - %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1105, ptr noundef %call52, ptr noundef %13) #4 + %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call52, ptr noundef %13) #4 store ptr %call54, ptr %tmp_keymgmt, align 8 %cmp55.not = icmp eq ptr %call54, null br i1 %cmp55.not, label %if.then65, label %if.end62 @@ -930,16 +924,15 @@ if.end62: ; preds = %if.end50 br i1 %cmp63, label %if.then65, label %for.inc if.then65: ; preds = %if.end50, %if.end62 - %provkey.1113 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] + %provkey.198 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] call void @EVP_KEYMGMT_free(ptr noundef %call54) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end62, %if.then65, %sw.epilog - %tmp_prov.1106 = phi ptr [ %tmp_prov.0118, %sw.epilog ], [ %tmp_prov.1105, %if.then65 ], [ %tmp_prov.1105, %if.end62 ], [ %tmp_prov.0118, %sw.bb ] - %signature.1104 = phi ptr [ null, %sw.epilog ], [ %signature.1103, %if.then65 ], [ %signature.1103, %if.end62 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.1113, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.0119, 1 - %cmp28 = icmp ult i32 %iter.0119, 2 +for.inc: ; preds = %sw.bb, %if.end62, %if.then65 + %signature.193 = phi ptr [ %signature.1.ph, %if.then65 ], [ %signature.1.ph, %if.end62 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.198, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] + %inc = add nuw nsw i32 %iter.0103, 1 + %cmp28 = icmp ult i32 %iter.0103, 2 %cmp30 = icmp eq ptr %provkey.2, null %17 = select i1 %cmp28, i1 %cmp30, i1 false br i1 %17, label %for.body, label %for.end, !llvm.loop !6 @@ -948,44 +941,20 @@ for.end: ; preds = %for.inc br i1 %cmp30, label %if.then69, label %if.end70 if.then69: ; preds = %for.end - %cmp.i89 = icmp eq ptr %signature.1104, null - br i1 %cmp.i89, label %legacy, label %if.end.i90 - -if.end.i90: ; preds = %if.then69 - %refcnt.i91 = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 4 - %18 = atomicrmw sub ptr %refcnt.i91, i32 1 monotonic, align 4 - %cmp.i.i92 = icmp eq i32 %18, 1 - br i1 %cmp.i.i92, label %CRYPTO_DOWN_REF.exit.thread.i98, label %CRYPTO_DOWN_REF.exit.i93 - -CRYPTO_DOWN_REF.exit.thread.i98: ; preds = %if.end.i90 - fence acquire - br label %if.end3.i95 - -CRYPTO_DOWN_REF.exit.i93: ; preds = %if.end.i90 - %cmp1.i94 = icmp sgt i32 %18, 1 - br i1 %cmp1.i94, label %legacy, label %if.end3.i95 - -if.end3.i95: ; preds = %CRYPTO_DOWN_REF.exit.i93, %CRYPTO_DOWN_REF.exit.thread.i98 - %type_name.i96 = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 1 - %19 = load ptr, ptr %type_name.i96, align 8 - call void @CRYPTO_free(ptr noundef %19, ptr noundef nonnull @.str, i32 noundef 285) #4 - %prov.i97 = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 3 - %20 = load ptr, ptr %prov.i97, align 8 - call void @ossl_provider_free(ptr noundef %20) #4 - call void @CRYPTO_free(ptr noundef nonnull %signature.1104, ptr noundef nonnull @.str, i32 noundef 288) #4 + call void @EVP_SIGNATURE_free(ptr noundef %signature.193) br label %legacy if.end70: ; preds = %for.end %call71 = call i32 @ERR_pop_to_mark() #4 %op = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5 - store ptr %signature.1104, ptr %op, align 8 - %newctx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 5 - %21 = load ptr, ptr %newctx, align 8 - %prov = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 3 - %22 = load ptr, ptr %prov, align 8 - %call73 = call ptr @ossl_provider_ctx(ptr noundef %22) #4 - %23 = load ptr, ptr %propquery41, align 8 - %call75 = call ptr %21(ptr noundef %call73, ptr noundef %23) #4 + store ptr %signature.193, ptr %op, align 8 + %newctx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 5 + %18 = load ptr, ptr %newctx, align 8 + %prov = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 3 + %19 = load ptr, ptr %prov, align 8 + %call73 = call ptr @ossl_provider_ctx(ptr noundef %19) #4 + %20 = load ptr, ptr %propquery41, align 8 + %call75 = call ptr %18(ptr noundef %call73, ptr noundef %20) #4 %algctx = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5, i32 0, i32 1 store ptr %call75, ptr %algctx, align 8 %cmp79 = icmp eq ptr %call75, null @@ -1005,9 +974,9 @@ if.end82: ; preds = %if.end70 ] sw.bb83: ; preds = %if.end82 - %sign_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 6 - %24 = load ptr, ptr %sign_init, align 8 - %cmp84 = icmp eq ptr %24, null + %sign_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 6 + %21 = load ptr, ptr %sign_init, align 8 + %cmp84 = icmp eq ptr %21, null br i1 %cmp84, label %if.then86, label %sw.epilog110 if.then86: ; preds = %sw.bb83 @@ -1017,9 +986,9 @@ if.then86: ; preds = %sw.bb83 br label %err sw.bb92: ; preds = %if.end82 - %verify_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 8 - %25 = load ptr, ptr %verify_init, align 8 - %cmp93 = icmp eq ptr %25, null + %verify_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 8 + %22 = load ptr, ptr %verify_init, align 8 + %cmp93 = icmp eq ptr %22, null br i1 %cmp93, label %if.then95, label %sw.epilog110 if.then95: ; preds = %sw.bb92 @@ -1029,9 +998,9 @@ if.then95: ; preds = %sw.bb92 br label %err sw.bb101: ; preds = %if.end82 - %verify_recover_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 10 - %26 = load ptr, ptr %verify_recover_init, align 8 - %cmp102 = icmp eq ptr %26, null + %verify_recover_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 10 + %23 = load ptr, ptr %verify_recover_init, align 8 + %cmp102 = icmp eq ptr %23, null br i1 %cmp102, label %if.then104, label %sw.epilog110 if.then104: ; preds = %sw.bb101 @@ -1047,27 +1016,27 @@ sw.default: ; preds = %if.end82 br label %err sw.epilog110: ; preds = %sw.bb101, %sw.bb92, %sw.bb83 - %.sink = phi ptr [ %24, %sw.bb83 ], [ %25, %sw.bb92 ], [ %26, %sw.bb101 ] + %.sink = phi ptr [ %21, %sw.bb83 ], [ %22, %sw.bb92 ], [ %23, %sw.bb101 ] %call109 = call i32 %.sink(ptr noundef nonnull %call75, ptr noundef nonnull %provkey.2, ptr noundef %params) #4 %cmp111 = icmp slt i32 %call109, 1 br i1 %cmp111, label %if.then113, label %if.then181 if.then113: ; preds = %sw.epilog110 - %freectx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 20 - %27 = load ptr, ptr %freectx, align 8 - %28 = load ptr, ptr %algctx, align 8 - call void %27(ptr noundef %28) #4 + %freectx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 20 + %24 = load ptr, ptr %freectx, align 8 + %25 = load ptr, ptr %algctx, align 8 + call void %24(ptr noundef %25) #4 store ptr null, ptr %algctx, align 8 br label %err -legacy: ; preds = %sw.bb38, %if.end3.i95, %CRYPTO_DOWN_REF.exit.i93, %if.then69, %if.end +legacy: ; preds = %sw.bb38, %if.end, %if.then69 %call119 = call i32 @ERR_pop_to_mark() #4 - %29 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %29) #4 + %26 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %26) #4 store ptr null, ptr %tmp_keymgmt, align 8 %pmeth = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 12 - %30 = load ptr, ptr %pmeth, align 8 - %cmp120 = icmp eq ptr %30, null + %27 = load ptr, ptr %pmeth, align 8 + %cmp120 = icmp eq ptr %27, null br i1 %cmp120, label %if.then141, label %lor.lhs.false lor.lhs.false: ; preds = %legacy @@ -1078,21 +1047,21 @@ lor.lhs.false: ; preds = %legacy ] land.lhs.true: ; preds = %lor.lhs.false - %sign = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 10 - %31 = load ptr, ptr %sign, align 8 - %cmp125 = icmp eq ptr %31, null + %sign = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 10 + %28 = load ptr, ptr %sign, align 8 + %cmp125 = icmp eq ptr %28, null br i1 %cmp125, label %if.then141, label %sw.bb143 land.lhs.true130: ; preds = %lor.lhs.false - %verify = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 12 - %32 = load ptr, ptr %verify, align 8 - %cmp132 = icmp eq ptr %32, null + %verify = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 12 + %29 = load ptr, ptr %verify, align 8 + %cmp132 = icmp eq ptr %29, null br i1 %cmp132, label %if.then141, label %sw.bb153 land.lhs.true137: ; preds = %lor.lhs.false - %verify_recover = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 14 - %33 = load ptr, ptr %verify_recover, align 8 - %cmp139 = icmp eq ptr %33, null + %verify_recover = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 14 + %30 = load ptr, ptr %verify_recover, align 8 + %cmp139 = icmp eq ptr %30, null br i1 %cmp139, label %if.then141, label %sw.bb163 if.then141: ; preds = %land.lhs.true137, %land.lhs.true130, %land.lhs.true, %legacy @@ -1102,21 +1071,21 @@ if.then141: ; preds = %land.lhs.true137, % br label %return sw.bb143: ; preds = %land.lhs.true - %sign_init145 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 9 - %34 = load ptr, ptr %sign_init145, align 8 - %cmp146 = icmp eq ptr %34, null + %sign_init145 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 9 + %31 = load ptr, ptr %sign_init145, align 8 + %cmp146 = icmp eq ptr %31, null br i1 %cmp146, label %return, label %sw.epilog174 sw.bb153: ; preds = %land.lhs.true130 - %verify_init155 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 11 - %35 = load ptr, ptr %verify_init155, align 8 - %cmp156 = icmp eq ptr %35, null + %verify_init155 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 11 + %32 = load ptr, ptr %verify_init155, align 8 + %cmp156 = icmp eq ptr %32, null br i1 %cmp156, label %return, label %sw.epilog174 sw.bb163: ; preds = %land.lhs.true137 - %verify_recover_init165 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 13 - %36 = load ptr, ptr %verify_recover_init165, align 8 - %cmp166 = icmp eq ptr %36, null + %verify_recover_init165 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 13 + %33 = load ptr, ptr %verify_recover_init165, align 8 + %cmp166 = icmp eq ptr %33, null br i1 %cmp166, label %return, label %sw.epilog174 sw.default173: ; preds = %lor.lhs.false @@ -1126,23 +1095,23 @@ sw.default173: ; preds = %lor.lhs.false br label %err sw.epilog174: ; preds = %sw.bb163, %sw.bb153, %sw.bb143 - %.sink120 = phi ptr [ %34, %sw.bb143 ], [ %35, %sw.bb153 ], [ %36, %sw.bb163 ] - %call172 = call i32 %.sink120(ptr noundef nonnull %ctx) #4 + %.sink104 = phi ptr [ %31, %sw.bb143 ], [ %32, %sw.bb153 ], [ %33, %sw.bb163 ] + %call172 = call i32 %.sink104(ptr noundef nonnull %ctx) #4 %cmp175 = icmp slt i32 %call172, 1 br i1 %cmp175, label %err, label %if.then181 if.then181: ; preds = %sw.epilog110, %sw.epilog174 %call182 = call i32 @evp_pkey_ctx_use_cached_data(ptr noundef nonnull %ctx) #4 - %37 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %37) #4 + %34 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %34) #4 br label %return err: ; preds = %sw.epilog174, %sw.default173, %if.then113, %sw.default, %if.then104, %if.then95, %if.then86, %if.then81, %if.then25, %if.then18, %if.then6 %ret.4 = phi i32 [ 0, %sw.default173 ], [ %call172, %sw.epilog174 ], [ 0, %if.then6 ], [ 0, %if.then25 ], [ 0, %if.then81 ], [ 0, %sw.default ], [ -2, %if.then104 ], [ %call109, %if.then113 ], [ -2, %if.then95 ], [ -2, %if.then86 ], [ 0, %if.then18 ] call void @evp_pkey_ctx_free_old_ops(ptr noundef nonnull %ctx) #4 store i32 0, ptr %ctx, align 8 - %38 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %38) #4 + %35 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %35) #4 br label %return return: ; preds = %sw.bb163, %sw.bb153, %sw.bb143, %err, %if.then181, %if.then141, %if.then diff --git a/bench/openssl/optimized/libcrypto-lib-v3_addr.ll b/bench/openssl/optimized/libcrypto-lib-v3_addr.ll index 3da0986b4bc..cc05b01df27 100644 --- a/bench/openssl/optimized/libcrypto-lib-v3_addr.ll +++ b/bench/openssl/optimized/libcrypto-lib-v3_addr.ll @@ -1935,9 +1935,9 @@ entry: br i1 %cmp, label %if.then, label %for.cond.preheader for.cond.preheader: ; preds = %entry - %call3121 = tail call i32 @OPENSSL_sk_num(ptr noundef %values) #15 - %cmp4122 = icmp sgt i32 %call3121, 0 - br i1 %cmp4122, label %for.body, label %for.end + %call3163 = tail call i32 @OPENSSL_sk_num(ptr noundef %values) #15 + %cmp4164 = icmp sgt i32 %call3163, 0 + br i1 %cmp4164, label %for.body, label %for.end if.then: ; preds = %entry tail call void @ERR_new() #15 @@ -1946,8 +1946,8 @@ if.then: ; preds = %entry br label %return for.body: ; preds = %for.cond.preheader, %for.inc - %i.0123 = phi i32 [ %inc172, %for.inc ], [ 0, %for.cond.preheader ] - %call6 = call ptr @OPENSSL_sk_value(ptr noundef %values, i32 noundef %i.0123) #15 + %i.0165 = phi i32 [ %inc172, %for.inc ], [ 0, %for.cond.preheader ] + %call6 = call ptr @OPENSSL_sk_value(ptr noundef %values, i32 noundef %i.0165) #15 %name = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 1 %0 = load ptr, ptr %name, align 8 %call7 = call i32 @ossl_v3_name_cmp(ptr noundef %0, ptr noundef nonnull @.str.14) #15 @@ -1979,18 +1979,18 @@ if.else23: ; preds = %if.else18 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 115, ptr noundef nonnull @.str.18, ptr noundef %4) #15 br label %err -if.then32: ; preds = %if.else18, %if.else13 - %afi.0169181195206 = phi i32 [ 2, %if.else18 ], [ 1, %if.else13 ] - %5 = phi ptr [ @v2i_IPAddrBlocks.v6addr_chars, %if.else18 ], [ @v2i_IPAddrBlocks.v4addr_chars, %if.else13 ] - %6 = phi i32 [ 16, %if.else18 ], [ 4, %if.else13 ] +if.then32: ; preds = %if.else13, %if.else18 + %5 = phi i32 [ 16, %if.else18 ], [ 4, %if.else13 ] + %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399121 = phi ptr [ @v2i_IPAddrBlocks.v6addr_chars, %if.else18 ], [ @v2i_IPAddrBlocks.v4addr_chars, %if.else13 ] + %afi.089101119 = phi i32 [ 2, %if.else18 ], [ 1, %if.else13 ] %value = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %7 = load ptr, ptr %value, align 8 - %call33 = call i64 @strtoul(ptr noundef %7, ptr noundef nonnull %t, i32 noundef 0) #15 + %6 = load ptr, ptr %value, align 8 + %call33 = call i64 @strtoul(ptr noundef %6, ptr noundef nonnull %t, i32 noundef 0) #15 %conv = trunc i64 %call33 to i32 store i32 %conv, ptr %safi_, align 4 - %8 = load ptr, ptr %t, align 8 - %call34 = call i64 @strspn(ptr noundef %8, ptr noundef nonnull @.str.19) #16 - %add.ptr = getelementptr inbounds i8, ptr %8, i64 %call34 + %7 = load ptr, ptr %t, align 8 + %call34 = call i64 @strspn(ptr noundef %7, ptr noundef nonnull @.str.19) #16 + %add.ptr = getelementptr inbounds i8, ptr %7, i64 %call34 store ptr %add.ptr, ptr %t, align 8 %cmp35 = icmp ugt i32 %conv, 255 br i1 %cmp35, label %if.then40, label %lor.lhs.false @@ -1998,8 +1998,8 @@ if.then32: ; preds = %if.else18, %if.else lor.lhs.false: ; preds = %if.then32 %incdec.ptr = getelementptr inbounds i8, ptr %add.ptr, i64 1 store ptr %incdec.ptr, ptr %t, align 8 - %9 = load i8, ptr %add.ptr, align 1 - %cmp38.not = icmp eq i8 %9, 58 + %8 = load i8, ptr %add.ptr, align 1 + %cmp38.not = icmp eq i8 %8, 58 br i1 %cmp38.not, label %if.end43, label %if.then40 if.then40: ; preds = %lor.lhs.false, %if.then32 @@ -2007,9 +2007,9 @@ if.then40: ; preds = %lor.lhs.false, %if. call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 990, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 164, ptr noundef null) #15 - %10 = load ptr, ptr %name, align 8 - %11 = load ptr, ptr %value.le, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %10, ptr noundef nonnull @.str.21, ptr noundef %11) #15 + %9 = load ptr, ptr %name, align 8 + %10 = load ptr, ptr %value.le, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %9, ptr noundef nonnull @.str.21, ptr noundef %10) #15 br label %err if.end43: ; preds = %lor.lhs.false @@ -2020,19 +2020,19 @@ if.end43: ; preds = %lor.lhs.false br label %if.end50 if.else47: ; preds = %if.else, %for.body - %afi.0169181195206.ph = phi i32 [ 1, %for.body ], [ 2, %if.else ] - %.ph = phi ptr [ @v2i_IPAddrBlocks.v4addr_chars, %for.body ], [ @v2i_IPAddrBlocks.v6addr_chars, %if.else ] - %.ph209 = phi i32 [ 4, %for.body ], [ 16, %if.else ] + %11 = phi i32 [ 4, %for.body ], [ 16, %if.else ] + %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399113 = phi ptr [ @v2i_IPAddrBlocks.v4addr_chars, %for.body ], [ @v2i_IPAddrBlocks.v6addr_chars, %if.else ] + %afi.089101109 = phi i32 [ 1, %for.body ], [ 2, %if.else ] %value48 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 %12 = load ptr, ptr %value48, align 8 %call49 = call noalias ptr @CRYPTO_strdup(ptr noundef %12, ptr noundef nonnull @.str.13, i32 noundef 997) #15 br label %if.end50 if.end50: ; preds = %if.else47, %if.end43 - %13 = phi i32 [ %6, %if.end43 ], [ %.ph209, %if.else47 ] - %14 = phi ptr [ %5, %if.end43 ], [ %.ph, %if.else47 ] - %safi.0171179197204216 = phi ptr [ %safi_, %if.end43 ], [ null, %if.else47 ] - %afi.0169181195206214 = phi i32 [ %afi.0169181195206, %if.end43 ], [ %afi.0169181195206.ph, %if.else47 ] + %13 = phi i32 [ %5, %if.end43 ], [ %11, %if.else47 ] + %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399112 = phi ptr [ %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399121, %if.end43 ], [ %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399113, %if.else47 ] + %safi.091100110 = phi ptr [ %safi_, %if.end43 ], [ null, %if.else47 ] + %afi.089101108 = phi i32 [ %afi.089101119, %if.end43 ], [ %afi.089101109, %if.else47 ] %s.1 = phi ptr [ %call46, %if.end43 ], [ %call49, %if.else47 ] %cmp51 = icmp eq ptr %s.1, null br i1 %cmp51, label %err, label %if.end54 @@ -2043,39 +2043,39 @@ if.end54: ; preds = %if.end50 br i1 %cmp56, label %if.then58, label %if.end65 if.then58: ; preds = %if.end54 - %call.i = call fastcc ptr @make_IPAddressFamily(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216) + %call.i = call fastcc ptr @make_IPAddressFamily(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110) %cmp.i = icmp eq ptr %call.i, null br i1 %cmp.i, label %if.then61, label %lor.lhs.false.i lor.lhs.false.i: ; preds = %if.then58 %ipAddressChoice.i = getelementptr inbounds %struct.IPAddressFamily_st, ptr %call.i, i64 0, i32 1 - %15 = load ptr, ptr %ipAddressChoice.i, align 8 - %cmp1.i = icmp eq ptr %15, null + %14 = load ptr, ptr %ipAddressChoice.i, align 8 + %cmp1.i = icmp eq ptr %14, null br i1 %cmp1.i, label %if.then61, label %lor.lhs.false2.i lor.lhs.false2.i: ; preds = %lor.lhs.false.i - %16 = load i32, ptr %15, align 8 - %u17.phi.trans.insert.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %15, i64 0, i32 1 + %15 = load i32, ptr %14, align 8 + %u17.phi.trans.insert.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %14, i64 0, i32 1 %.pre.i = load ptr, ptr %u17.phi.trans.insert.i, align 8 - %17 = icmp eq ptr %.pre.i, null - switch i32 %16, label %if.end15.i [ + %16 = icmp eq ptr %.pre.i, null + switch i32 %15, label %if.end15.i [ i32 1, label %land.lhs.true.i i32 0, label %land.lhs.true10.i ] land.lhs.true.i: ; preds = %lor.lhs.false2.i - br i1 %17, label %land.lhs.true19.i, label %if.then61 + br i1 %16, label %land.lhs.true19.i, label %if.then61 land.lhs.true10.i: ; preds = %lor.lhs.false2.i - br i1 %17, label %land.lhs.true19.i, label %for.inc + br i1 %16, label %land.lhs.true19.i, label %for.inc if.end15.i: ; preds = %lor.lhs.false2.i - br i1 %17, label %land.lhs.true19.i, label %if.end25.i + br i1 %16, label %land.lhs.true19.i, label %if.end25.i land.lhs.true19.i: ; preds = %if.end15.i, %land.lhs.true10.i, %land.lhs.true.i %call20.i = call ptr @ASN1_NULL_new() #15 - %18 = load ptr, ptr %ipAddressChoice.i, align 8 - %u22.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %18, i64 0, i32 1 + %17 = load ptr, ptr %ipAddressChoice.i, align 8 + %u22.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %17, i64 0, i32 1 store ptr %call20.i, ptr %u22.i, align 8 %cmp23.i = icmp eq ptr %call20.i, null br i1 %cmp23.i, label %if.then61, label %land.lhs.true19.if.end25_crit_edge.i @@ -2085,22 +2085,22 @@ land.lhs.true19.if.end25_crit_edge.i: ; preds = %land.lhs.true19.i br label %if.end25.i if.end25.i: ; preds = %land.lhs.true19.if.end25_crit_edge.i, %if.end15.i - %19 = phi ptr [ %.pre10.i, %land.lhs.true19.if.end25_crit_edge.i ], [ %15, %if.end15.i ] - store i32 0, ptr %19, align 8 + %18 = phi ptr [ %.pre10.i, %land.lhs.true19.if.end25_crit_edge.i ], [ %14, %if.end15.i ] + store i32 0, ptr %18, align 8 br label %for.inc if.then61: ; preds = %land.lhs.true.i, %lor.lhs.false.i, %if.then58, %land.lhs.true19.i call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1008, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 165, ptr noundef null) #15 - %20 = load ptr, ptr %name, align 8 + %19 = load ptr, ptr %name, align 8 %value63 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %21 = load ptr, ptr %value63, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %20, ptr noundef nonnull @.str.21, ptr noundef %21) #15 + %20 = load ptr, ptr %value63, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %19, ptr noundef nonnull @.str.21, ptr noundef %20) #15 br label %err if.end65: ; preds = %if.end54 - %call66 = call i64 @strspn(ptr noundef nonnull %s.1, ptr noundef nonnull %14) #16 + %call66 = call i64 @strspn(ptr noundef nonnull %s.1, ptr noundef nonnull %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399112) #16 %sext = shl i64 %call66, 32 %conv68 = ashr exact i64 %sext, 32 %add.ptr69 = getelementptr inbounds i8, ptr %s.1, i64 %conv68 @@ -2111,7 +2111,7 @@ if.end65: ; preds = %if.end54 %sext77 = shl i64 %add, 32 %idxprom = ashr exact i64 %sext77, 32 %arrayidx = getelementptr inbounds i8, ptr %s.1, i64 %idxprom - %22 = load i8, ptr %arrayidx, align 1 + %21 = load i8, ptr %arrayidx, align 1 store i8 0, ptr %add.ptr69, align 1 %call75 = call i32 @ossl_a2i_ipadd(ptr noundef nonnull %min, ptr noundef nonnull %s.1) #15 %cmp76.not = icmp eq i32 %call75, %13 @@ -2121,14 +2121,14 @@ if.then78: ; preds = %if.end65 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1023, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 166, ptr noundef null) #15 - %23 = load ptr, ptr %name, align 8 + %22 = load ptr, ptr %name, align 8 %value80 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %24 = load ptr, ptr %value80, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %23, ptr noundef nonnull @.str.21, ptr noundef %24) #15 + %23 = load ptr, ptr %value80, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %22, ptr noundef nonnull @.str.21, ptr noundef %23) #15 br label %err if.end81: ; preds = %if.end65 - switch i8 %22, label %sw.default [ + switch i8 %21, label %sw.default [ i8 47, label %sw.bb82 i8 45, label %sw.bb110 i8 0, label %sw.bb162 @@ -2139,30 +2139,30 @@ sw.bb82: ; preds = %if.end81 %add.ptr84 = getelementptr inbounds i8, ptr %s.1, i64 %idx.ext83 %call85 = call i64 @strtoul(ptr noundef %add.ptr84, ptr noundef nonnull %t, i32 noundef 10) #15 %conv86 = trunc i64 %call85 to i32 - %25 = load ptr, ptr %t, align 8 - %cmp89 = icmp eq ptr %25, %add.ptr84 + %24 = load ptr, ptr %t, align 8 + %cmp89 = icmp eq ptr %24, %add.ptr84 br i1 %cmp89, label %if.then101, label %lor.lhs.false91 lor.lhs.false91: ; preds = %sw.bb82 - %26 = load i8, ptr %25, align 1 - %cmp93.not = icmp ne i8 %26, 0 + %25 = load i8, ptr %24, align 1 + %cmp93.not = icmp ne i8 %25, 0 %mul = shl nuw nsw i32 %13, 3 %or.cond = icmp ult i32 %mul, %conv86 - %or.cond80 = select i1 %cmp93.not, i1 true, i1 %or.cond - br i1 %or.cond80, label %if.then101, label %if.end104 + %or.cond78 = select i1 %cmp93.not, i1 true, i1 %or.cond + br i1 %or.cond78, label %if.then101, label %if.end104 if.then101: ; preds = %lor.lhs.false91, %sw.bb82 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1035, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %27 = load ptr, ptr %name, align 8 + %26 = load ptr, ptr %name, align 8 %value103 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %28 = load ptr, ptr %value103, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %27, ptr noundef nonnull @.str.21, ptr noundef %28) #15 + %27 = load ptr, ptr %value103, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %26, ptr noundef nonnull @.str.21, ptr noundef %27) #15 br label %err if.end104: ; preds = %lor.lhs.false91 - %call106 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216, ptr noundef nonnull %min, i32 noundef %conv86), !range !6 + %call106 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110, ptr noundef nonnull %min, i32 noundef %conv86), !range !6 %tobool107.not = icmp eq i32 %call106, 0 br i1 %tobool107.not, label %if.then108, label %for.inc @@ -2176,31 +2176,31 @@ sw.bb110: ; preds = %if.end81 %conv111 = sext i32 %inc to i64 %add.ptr113 = getelementptr inbounds i8, ptr %s.1, i64 %conv111 %call114 = call i64 @strspn(ptr noundef %add.ptr113, ptr noundef nonnull @.str.19) #16 - %29 = trunc i64 %call114 to i32 - %conv116 = add i32 %inc, %29 + %28 = trunc i64 %call114 to i32 + %conv116 = add i32 %inc, %28 %conv117 = sext i32 %conv116 to i64 %add.ptr119 = getelementptr inbounds i8, ptr %s.1, i64 %conv117 - %call120 = call i64 @strspn(ptr noundef %add.ptr119, ptr noundef nonnull %14) #16 - %30 = trunc i64 %call120 to i32 - %cmp123 = icmp eq i32 %30, 0 + %call120 = call i64 @strspn(ptr noundef %add.ptr119, ptr noundef nonnull %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399112) #16 + %29 = trunc i64 %call120 to i32 + %cmp123 = icmp eq i32 %29, 0 br i1 %cmp123, label %if.then131, label %lor.lhs.false125 lor.lhs.false125: ; preds = %sw.bb110 - %conv122 = add i32 %conv116, %30 + %conv122 = add i32 %conv116, %29 %idxprom126 = sext i32 %conv122 to i64 %arrayidx127 = getelementptr inbounds i8, ptr %s.1, i64 %idxprom126 - %31 = load i8, ptr %arrayidx127, align 1 - %cmp129.not = icmp eq i8 %31, 0 + %30 = load i8, ptr %arrayidx127, align 1 + %cmp129.not = icmp eq i8 %30, 0 br i1 %cmp129.not, label %if.end134, label %if.then131 if.then131: ; preds = %lor.lhs.false125, %sw.bb110 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1048, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %32 = load ptr, ptr %name, align 8 + %31 = load ptr, ptr %name, align 8 %value133 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %33 = load ptr, ptr %value133, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %32, ptr noundef nonnull @.str.21, ptr noundef %33) #15 + %32 = load ptr, ptr %value133, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %31, ptr noundef nonnull @.str.21, ptr noundef %32) #15 br label %err if.end134: ; preds = %lor.lhs.false125 @@ -2212,10 +2212,10 @@ if.then141: ; preds = %if.end134 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1053, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 166, ptr noundef null) #15 - %34 = load ptr, ptr %name, align 8 + %33 = load ptr, ptr %name, align 8 %value143 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %35 = load ptr, ptr %value143, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %34, ptr noundef nonnull @.str.21, ptr noundef %35) #15 + %34 = load ptr, ptr %value143, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %33, ptr noundef nonnull @.str.21, ptr noundef %34) #15 br label %err if.end144: ; preds = %if.end134 @@ -2228,14 +2228,14 @@ if.then152: ; preds = %if.end144 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1058, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %36 = load ptr, ptr %name, align 8 + %35 = load ptr, ptr %name, align 8 %value154 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %37 = load ptr, ptr %value154, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %36, ptr noundef nonnull @.str.21, ptr noundef %37) #15 + %36 = load ptr, ptr %value154, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %35, ptr noundef nonnull @.str.21, ptr noundef %36) #15 br label %err if.end155: ; preds = %if.end144 - %call158 = call i32 @X509v3_addr_add_range(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216, ptr noundef nonnull %min, ptr noundef nonnull %max), !range !6 + %call158 = call i32 @X509v3_addr_add_range(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110, ptr noundef nonnull %min, ptr noundef nonnull %max), !range !6 %tobool159.not = icmp eq i32 %call158, 0 br i1 %tobool159.not, label %if.then160, label %for.inc @@ -2247,7 +2247,7 @@ if.then160: ; preds = %if.end155 sw.bb162: ; preds = %if.end81 %mul164 = shl nuw nsw i32 %13, 3 - %call165 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216, ptr noundef nonnull %min, i32 noundef %mul164), !range !6 + %call165 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110, ptr noundef nonnull %min, i32 noundef %mul164), !range !6 %tobool166.not = icmp eq i32 %call165, 0 br i1 %tobool166.not, label %if.then167, label %for.inc @@ -2261,16 +2261,16 @@ sw.default: ; preds = %if.end81 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1074, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %38 = load ptr, ptr %name, align 8 + %37 = load ptr, ptr %name, align 8 %value170 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %39 = load ptr, ptr %value170, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %38, ptr noundef nonnull @.str.21, ptr noundef %39) #15 + %38 = load ptr, ptr %value170, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %37, ptr noundef nonnull @.str.21, ptr noundef %38) #15 br label %err for.inc: ; preds = %if.end104, %if.end155, %sw.bb162, %land.lhs.true10.i, %if.end25.i %.sink = phi i32 [ 1012, %if.end25.i ], [ 1012, %land.lhs.true10.i ], [ 1079, %sw.bb162 ], [ 1079, %if.end155 ], [ 1079, %if.end104 ] call void @CRYPTO_free(ptr noundef nonnull %s.1, ptr noundef nonnull @.str.13, i32 noundef %.sink) #15 - %inc172 = add nuw nsw i32 %i.0123, 1 + %inc172 = add nuw nsw i32 %i.0165, 1 %call3 = call i32 @OPENSSL_sk_num(ptr noundef %values) #15 %cmp4 = icmp slt i32 %inc172, %call3 br i1 %cmp4, label %for.body, label %for.end, !llvm.loop !20 diff --git a/bench/openssl/optimized/libcrypto-lib-v3_utl.ll b/bench/openssl/optimized/libcrypto-lib-v3_utl.ll index e8772dd68bb..138d3f36a90 100644 --- a/bench/openssl/optimized/libcrypto-lib-v3_utl.ll +++ b/bench/openssl/optimized/libcrypto-lib-v3_utl.ll @@ -44,7 +44,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.22 = private unnamed_addr constant [14 x i8] c"%d.%d.%d.%d%n\00", align 1 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %cmp.not = icmp eq ptr %value, null br i1 %cmp.not, label %entry.split, label %cond.true.split @@ -64,7 +64,7 @@ cond.end: ; preds = %entry.split, %cond. } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @x509v3_add_len_value(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) unnamed_addr #0 { +define internal fastcc noundef i32 @x509v3_add_len_value(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) unnamed_addr #0 { entry: %0 = load ptr, ptr %extlist, align 8 %cmp = icmp eq ptr %0, null @@ -160,7 +160,7 @@ return: ; preds = %if.end29, %if.end41 declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_uchar(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_uchar(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %cmp.not = icmp eq ptr %value, null br i1 %cmp.not, label %entry.split, label %cond.true.split @@ -180,7 +180,7 @@ cond.end: ; preds = %entry.split, %cond. } ; Function Attrs: nounwind uwtable -define i32 @x509v3_add_len_value_uchar(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @x509v3_add_len_value_uchar(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %call = tail call fastcc i32 @x509v3_add_len_value(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr noundef %extlist), !range !4 ret i32 %call @@ -211,7 +211,7 @@ return: ; preds = %entry, %if.end declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_bool(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_bool(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %tobool.not = icmp eq i32 %asn1_bool, 0 br i1 %tobool.not, label %if.end, label %if.then @@ -230,7 +230,7 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_bool_nf(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_bool_nf(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %tobool.not = icmp eq i32 %asn1_bool, 0 br i1 %tobool.not, label %return, label %if.then @@ -498,7 +498,7 @@ declare i32 @BN_is_zero(ptr noundef) local_unnamed_addr #2 declare ptr @BN_to_ASN1_INTEGER(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_int(ptr noundef %name, ptr noundef %aint, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_int(ptr noundef %name, ptr noundef %aint, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %tobool.not = icmp eq ptr %aint, null br i1 %tobool.not, label %return, label %if.end.i @@ -535,7 +535,7 @@ return: ; preds = %i2s_ASN1_INTEGER.ex } ; Function Attrs: nounwind uwtable -define i32 @X509V3_get_value_bool(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %asn1_bool) local_unnamed_addr #0 { +define noundef i32 @X509V3_get_value_bool(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %asn1_bool) local_unnamed_addr #0 { entry: %value1 = getelementptr inbounds %struct.CONF_VALUE, ptr %value, i64 0, i32 2 %0 = load ptr, ptr %value1, align 8 @@ -631,7 +631,7 @@ declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_ declare void @ERR_add_error_data(i32 noundef, ...) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define i32 @X509V3_get_value_int(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %aint) local_unnamed_addr #0 { +define noundef i32 @X509V3_get_value_int(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %aint) local_unnamed_addr #0 { entry: %value1 = getelementptr inbounds %struct.CONF_VALUE, ptr %value, i64 0, i32 2 %0 = load ptr, ptr %value1, align 8 @@ -677,10 +677,8 @@ for.cond: ; preds = %entry, %for.inc ] for.body: ; preds = %for.cond - switch i32 %state.0, label %for.inc [ - i32 1, label %sw.bb - i32 2, label %sw.bb30 - ] + %switch = icmp eq i32 %state.0, 1 + br i1 %switch, label %sw.bb, label %sw.bb30 sw.bb: ; preds = %for.body switch i8 %0, label %for.inc [ @@ -868,10 +866,10 @@ if.end42: ; preds = %X509V3_add_value.ex %add.ptr43 = getelementptr inbounds i8, ptr %p.0, i64 1 br label %for.inc -for.inc: ; preds = %sw.bb, %for.body, %if.end23, %if.end14, %if.end42, %sw.bb30 - %q.1 = phi ptr [ %q.0, %for.body ], [ %add.ptr43, %if.end42 ], [ %q.0, %sw.bb30 ], [ %add.ptr, %if.end14 ], [ %add.ptr20, %if.end23 ], [ %q.0, %sw.bb ] - %ntmp.1 = phi ptr [ %ntmp.0, %for.body ], [ null, %if.end42 ], [ %ntmp.0, %sw.bb30 ], [ %p.018.i, %if.end14 ], [ %p.018.i33, %if.end23 ], [ %ntmp.0, %sw.bb ] - %state.1 = phi i32 [ %state.0, %for.body ], [ 1, %if.end42 ], [ 2, %sw.bb30 ], [ 2, %if.end14 ], [ 1, %if.end23 ], [ 1, %sw.bb ] +for.inc: ; preds = %sw.bb, %if.end23, %if.end14, %if.end42, %sw.bb30 + %q.1 = phi ptr [ %add.ptr43, %if.end42 ], [ %q.0, %sw.bb30 ], [ %add.ptr, %if.end14 ], [ %add.ptr20, %if.end23 ], [ %q.0, %sw.bb ] + %ntmp.1 = phi ptr [ null, %if.end42 ], [ %ntmp.0, %sw.bb30 ], [ %p.018.i, %if.end14 ], [ %p.018.i33, %if.end23 ], [ %ntmp.0, %sw.bb ] + %state.1 = phi i32 [ 1, %if.end42 ], [ 2, %sw.bb30 ], [ 2, %if.end14 ], [ 1, %if.end23 ], [ 1, %sw.bb ] %incdec.ptr = getelementptr inbounds i8, ptr %p.0, i64 1 br label %for.cond, !llvm.loop !8 @@ -1178,7 +1176,7 @@ declare ptr @OPENSSL_sk_value(ptr noundef, i32 noundef) local_unnamed_addr #2 declare i32 @OBJ_obj2nid(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @append_ia5(ptr nocapture noundef %sk, ptr nocapture noundef readonly %email) unnamed_addr #0 { +define internal fastcc noundef i32 @append_ia5(ptr nocapture noundef %sk, ptr nocapture noundef readonly %email) unnamed_addr #0 { entry: %type = getelementptr inbounds %struct.asn1_string_st, ptr %email, i64 0, i32 1 %0 = load i32, ptr %type, align 4 @@ -1737,7 +1735,7 @@ return: ; preds = %if.end, %entry, %if } ; Function Attrs: nounwind uwtable -define i32 @ossl_a2i_ipadd(ptr nocapture noundef writeonly %ipout, ptr noundef %ipasc) local_unnamed_addr #0 { +define noundef i32 @ossl_a2i_ipadd(ptr nocapture noundef writeonly %ipout, ptr noundef %ipasc) local_unnamed_addr #0 { entry: %v6stat.i = alloca %struct.IPV6_STAT, align 4 %call = tail call ptr @strchr(ptr noundef nonnull dereferenceable(1) %ipasc, i32 noundef 58) #12 @@ -1996,7 +1994,7 @@ return: ; preds = %if.end18, %if.end, declare ptr @strchr(ptr noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @ipv4_from_asc(ptr nocapture noundef writeonly %v4, ptr nocapture noundef readonly %in) unnamed_addr #0 { +define internal fastcc noundef i32 @ipv4_from_asc(ptr nocapture noundef writeonly %v4, ptr nocapture noundef readonly %in) unnamed_addr #0 { entry: %a0 = alloca i32, align 4 %a1 = alloca i32, align 4 @@ -2072,7 +2070,7 @@ return: ; preds = %lor.lhs.false19, %i } ; Function Attrs: nounwind uwtable -define i32 @X509V3_NAME_from_section(ptr noundef %nm, ptr noundef %dn_sk, i64 noundef %chtype) local_unnamed_addr #0 { +define noundef i32 @X509V3_NAME_from_section(ptr noundef %nm, ptr noundef %dn_sk, i64 noundef %chtype) local_unnamed_addr #0 { entry: %tobool.not = icmp eq ptr %nm, null br i1 %tobool.not, label %return, label %for.cond.preheader @@ -2267,7 +2265,7 @@ return: ; preds = %if.then10.i, %while } ; Function Attrs: nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable -define internal i32 @equal_nocase(ptr nocapture noundef readonly %pattern, i64 noundef %pattern_len, ptr nocapture noundef readonly %subject, i64 noundef %subject_len, i32 noundef %flags) #6 { +define internal noundef i32 @equal_nocase(ptr nocapture noundef readonly %pattern, i64 noundef %pattern_len, ptr nocapture noundef readonly %subject, i64 noundef %subject_len, i32 noundef %flags) #6 { entry: %and.i = and i32 %flags, 32768 %cmp.i = icmp eq i32 %and.i, 0 @@ -2369,7 +2367,7 @@ return: ; preds = %while.body, %if.the } ; Function Attrs: nounwind uwtable -define internal i32 @equal_wildcard(ptr noundef %pattern, i64 noundef %pattern_len, ptr noundef %subject, i64 noundef %subject_len, i32 noundef %flags) #0 { +define internal noundef i32 @equal_wildcard(ptr noundef %pattern, i64 noundef %pattern_len, ptr noundef %subject, i64 noundef %subject_len, i32 noundef %flags) #0 { entry: %cmp = icmp ugt i64 %subject_len, 1 br i1 %cmp, label %land.lhs.true, label %if.then @@ -2942,7 +2940,7 @@ declare noundef i32 @__isoc99_sscanf(ptr nocapture noundef readonly, ptr nocaptu declare i32 @CONF_parse_list(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal i32 @ipv6_cb(ptr nocapture noundef readonly %elem, i32 noundef %len, ptr nocapture noundef %usr) #0 { +define internal noundef i32 @ipv6_cb(ptr nocapture noundef readonly %elem, i32 noundef %len, ptr nocapture noundef %usr) #0 { entry: %total = getelementptr inbounds %struct.IPV6_STAT, ptr %usr, i64 0, i32 1 %0 = load i32, ptr %total, align 4 diff --git a/bench/openssl/optimized/libcrypto-shlib-asymcipher.ll b/bench/openssl/optimized/libcrypto-shlib-asymcipher.ll index c032d88197d..9fcd81f7e63 100644 --- a/bench/openssl/optimized/libcrypto-shlib-asymcipher.ll +++ b/bench/openssl/optimized/libcrypto-shlib-asymcipher.ll @@ -100,14 +100,13 @@ if.then25: ; preds = %if.end20 br label %if.then138 for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0101 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.0100 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.184, %for.inc ] - %cipher.099 = phi ptr [ null, %for.cond.preheader ], [ %cipher.182, %for.inc ] - %cmp.i = icmp eq ptr %cipher.099, null + %iter.085 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %cipher.084 = phi ptr [ null, %for.cond.preheader ], [ %cipher.171, %for.inc ] + %cmp.i = icmp eq ptr %cipher.084, null br i1 %cmp.i, label %EVP_ASYM_CIPHER_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.099, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.084, i64 0, i32 4 %3 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %3, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -121,22 +120,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_ASYM_CIPHER_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.099, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.084, i64 0, i32 1 %4 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %4, ptr noundef nonnull @.str, i32 noundef 463) #4 - %prov.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.099, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.084, i64 0, i32 3 %5 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %5) #4 - call void @CRYPTO_free(ptr noundef nonnull %cipher.099, ptr noundef nonnull @.str, i32 noundef 466) #4 + call void @CRYPTO_free(ptr noundef nonnull %cipher.084, ptr noundef nonnull @.str, i32 noundef 466) #4 br label %EVP_ASYM_CIPHER_free.exit EVP_ASYM_CIPHER_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %6 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %6) #4 - switch i32 %iter.0101, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb38 - ] + %switch = icmp eq i32 %iter.085, 1 + br i1 %switch, label %sw.bb, label %sw.bb38 sw.bb: ; preds = %EVP_ASYM_CIPHER_free.exit %7 = load ptr, ptr %libctx, align 8 @@ -158,16 +155,13 @@ sw.bb38: ; preds = %EVP_ASYM_CIPHER_fre %cmp43 = icmp eq ptr %call.i66, null br i1 %cmp43, label %legacy, label %if.end50 -sw.epilog: ; preds = %EVP_ASYM_CIPHER_free.exit - br i1 %cmp.i, label %for.inc, label %if.end50 - -if.end50: ; preds = %if.then35, %sw.bb38, %sw.epilog - %tmp_prov.183 = phi ptr [ %tmp_prov.0100, %sw.epilog ], [ %9, %if.then35 ], [ %call40, %sw.bb38 ] - %cipher.181 = phi ptr [ %cipher.099, %sw.epilog ], [ %call.i, %if.then35 ], [ %call.i66, %sw.bb38 ] +if.end50: ; preds = %sw.bb38, %if.then35 + %cipher.1.ph = phi ptr [ %call.i, %if.then35 ], [ %call.i66, %sw.bb38 ] + %tmp_prov.1.ph = phi ptr [ %9, %if.then35 ], [ %call40, %sw.bb38 ] %12 = load ptr, ptr %keymgmt, align 8 %call52 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %12) #4 %13 = load ptr, ptr %propquery41, align 8 - %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.183, ptr noundef %call52, ptr noundef %13) #4 + %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call52, ptr noundef %13) #4 store ptr %call54, ptr %tmp_keymgmt, align 8 %cmp55.not = icmp eq ptr %call54, null br i1 %cmp55.not, label %if.then65, label %if.end62 @@ -182,16 +176,15 @@ if.end62: ; preds = %if.end50 br i1 %cmp63, label %if.then65, label %for.inc if.then65: ; preds = %if.end50, %if.end62 - %provkey.191 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] + %provkey.176 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] call void @EVP_KEYMGMT_free(ptr noundef %call54) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end62, %if.then65, %sw.epilog - %tmp_prov.184 = phi ptr [ %tmp_prov.0100, %sw.epilog ], [ %tmp_prov.183, %if.then65 ], [ %tmp_prov.183, %if.end62 ], [ %tmp_prov.0100, %sw.bb ] - %cipher.182 = phi ptr [ null, %sw.epilog ], [ %cipher.181, %if.then65 ], [ %cipher.181, %if.end62 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.191, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.0101, 1 - %cmp28 = icmp ult i32 %iter.0101, 2 +for.inc: ; preds = %sw.bb, %if.end62, %if.then65 + %cipher.171 = phi ptr [ %cipher.1.ph, %if.then65 ], [ %cipher.1.ph, %if.end62 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.176, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] + %inc = add nuw nsw i32 %iter.085, 1 + %cmp28 = icmp ult i32 %iter.085, 2 %cmp30 = icmp eq ptr %provkey.2, null %17 = select i1 %cmp28, i1 %cmp30, i1 false br i1 %17, label %for.body, label %for.end, !llvm.loop !4 @@ -200,43 +193,19 @@ for.end: ; preds = %for.inc br i1 %cmp30, label %if.then69, label %if.end70 if.then69: ; preds = %for.end - %cmp.i67 = icmp eq ptr %cipher.182, null - br i1 %cmp.i67, label %legacy, label %if.end.i68 - -if.end.i68: ; preds = %if.then69 - %refcnt.i69 = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 4 - %18 = atomicrmw sub ptr %refcnt.i69, i32 1 monotonic, align 4 - %cmp.i.i70 = icmp eq i32 %18, 1 - br i1 %cmp.i.i70, label %CRYPTO_DOWN_REF.exit.thread.i76, label %CRYPTO_DOWN_REF.exit.i71 - -CRYPTO_DOWN_REF.exit.thread.i76: ; preds = %if.end.i68 - fence acquire - br label %if.end3.i73 - -CRYPTO_DOWN_REF.exit.i71: ; preds = %if.end.i68 - %cmp1.i72 = icmp sgt i32 %18, 1 - br i1 %cmp1.i72, label %legacy, label %if.end3.i73 - -if.end3.i73: ; preds = %CRYPTO_DOWN_REF.exit.i71, %CRYPTO_DOWN_REF.exit.thread.i76 - %type_name.i74 = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 1 - %19 = load ptr, ptr %type_name.i74, align 8 - call void @CRYPTO_free(ptr noundef %19, ptr noundef nonnull @.str, i32 noundef 463) #4 - %prov.i75 = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 3 - %20 = load ptr, ptr %prov.i75, align 8 - call void @ossl_provider_free(ptr noundef %20) #4 - call void @CRYPTO_free(ptr noundef nonnull %cipher.182, ptr noundef nonnull @.str, i32 noundef 466) #4 + call void @EVP_ASYM_CIPHER_free(ptr noundef %cipher.171) br label %legacy if.end70: ; preds = %for.end %call71 = call i32 @ERR_pop_to_mark() #4 %op = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5 - store ptr %cipher.182, ptr %op, align 8 - %newctx = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 5 - %21 = load ptr, ptr %newctx, align 8 - %prov = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 3 - %22 = load ptr, ptr %prov, align 8 - %call73 = call ptr @ossl_provider_ctx(ptr noundef %22) #4 - %call74 = call ptr %21(ptr noundef %call73) #4 + store ptr %cipher.171, ptr %op, align 8 + %newctx = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 5 + %18 = load ptr, ptr %newctx, align 8 + %prov = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 3 + %19 = load ptr, ptr %prov, align 8 + %call73 = call ptr @ossl_provider_ctx(ptr noundef %19) #4 + %call74 = call ptr %18(ptr noundef %call73) #4 %algctx = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5, i32 0, i32 1 store ptr %call74, ptr %algctx, align 8 %cmp78 = icmp eq ptr %call74, null @@ -255,9 +224,9 @@ if.end81: ; preds = %if.end70 ] sw.bb82: ; preds = %if.end81 - %encrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 6 - %23 = load ptr, ptr %encrypt_init, align 8 - %cmp83 = icmp eq ptr %23, null + %encrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 6 + %20 = load ptr, ptr %encrypt_init, align 8 + %cmp83 = icmp eq ptr %20, null br i1 %cmp83, label %if.then85, label %sw.epilog100 if.then85: ; preds = %sw.bb82 @@ -267,9 +236,9 @@ if.then85: ; preds = %sw.bb82 br label %if.then138 sw.bb91: ; preds = %if.end81 - %decrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.182, i64 0, i32 8 - %24 = load ptr, ptr %decrypt_init, align 8 - %cmp92 = icmp eq ptr %24, null + %decrypt_init = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher.171, i64 0, i32 8 + %21 = load ptr, ptr %decrypt_init, align 8 + %cmp92 = icmp eq ptr %21, null br i1 %cmp92, label %if.then94, label %sw.epilog100 if.then94: ; preds = %sw.bb91 @@ -285,30 +254,30 @@ sw.default: ; preds = %if.end81 br label %if.then138 sw.epilog100: ; preds = %sw.bb91, %sw.bb82 - %.sink = phi ptr [ %23, %sw.bb82 ], [ %24, %sw.bb91 ] + %.sink = phi ptr [ %20, %sw.bb82 ], [ %21, %sw.bb91 ] %call99 = call i32 %.sink(ptr noundef nonnull %call74, ptr noundef nonnull %provkey.2, ptr noundef %params) #4 %cmp101 = icmp slt i32 %call99, 1 br i1 %cmp101, label %if.then138, label %if.end104 if.end104: ; preds = %sw.epilog100 - %25 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %25) #4 + %22 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %22) #4 br label %return -legacy: ; preds = %sw.bb38, %if.end3.i73, %CRYPTO_DOWN_REF.exit.i71, %if.then69, %if.end +legacy: ; preds = %sw.bb38, %if.end, %if.then69 %call105 = call i32 @ERR_pop_to_mark() #4 - %26 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %26) #4 + %23 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %23) #4 store ptr null, ptr %tmp_keymgmt, align 8 %pmeth = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 12 - %27 = load ptr, ptr %pmeth, align 8 - %cmp106 = icmp eq ptr %27, null + %24 = load ptr, ptr %pmeth, align 8 + %cmp106 = icmp eq ptr %24, null br i1 %cmp106, label %if.then111, label %lor.lhs.false lor.lhs.false: ; preds = %legacy - %encrypt = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 20 - %28 = load ptr, ptr %encrypt, align 8 - %cmp109 = icmp eq ptr %28, null + %encrypt = getelementptr inbounds %struct.evp_pkey_method_st, ptr %24, i64 0, i32 20 + %25 = load ptr, ptr %encrypt, align 8 + %cmp109 = icmp eq ptr %25, null br i1 %cmp109, label %if.then111, label %if.end112 if.then111: ; preds = %lor.lhs.false, %legacy @@ -318,22 +287,22 @@ if.then111: ; preds = %lor.lhs.false, %leg br label %return if.end112: ; preds = %lor.lhs.false - %29 = load i32, ptr %ctx, align 8 - switch i32 %29, label %sw.default134 [ + %26 = load i32, ptr %ctx, align 8 + switch i32 %26, label %sw.default134 [ i32 512, label %sw.bb114 i32 1024, label %sw.bb124 ] sw.bb114: ; preds = %if.end112 - %encrypt_init116 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 19 - %30 = load ptr, ptr %encrypt_init116, align 8 - %cmp117 = icmp eq ptr %30, null + %encrypt_init116 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %24, i64 0, i32 19 + %27 = load ptr, ptr %encrypt_init116, align 8 + %cmp117 = icmp eq ptr %27, null br i1 %cmp117, label %return, label %err sw.bb124: ; preds = %if.end112 - %decrypt_init126 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 21 - %31 = load ptr, ptr %decrypt_init126, align 8 - %cmp127 = icmp eq ptr %31, null + %decrypt_init126 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %24, i64 0, i32 21 + %28 = load ptr, ptr %decrypt_init126, align 8 + %cmp127 = icmp eq ptr %28, null br i1 %cmp127, label %return, label %err sw.default134: ; preds = %if.end112 @@ -343,25 +312,25 @@ sw.default134: ; preds = %if.end112 br label %if.then138 err: ; preds = %sw.bb124, %sw.bb114 - %.sink102 = phi ptr [ %30, %sw.bb114 ], [ %31, %sw.bb124 ] - %call123 = call i32 %.sink102(ptr noundef nonnull %ctx) #4 + %.sink86 = phi ptr [ %27, %sw.bb114 ], [ %28, %sw.bb124 ] + %call123 = call i32 %.sink86(ptr noundef nonnull %ctx) #4 %cmp136 = icmp slt i32 %call123, 1 br i1 %cmp136, label %if.then138, label %if.end140 if.then138: ; preds = %if.then18, %if.then85, %sw.epilog100, %if.then94, %sw.default, %if.then80, %if.then25, %if.then6, %sw.default134, %err - %ret.195 = phi i32 [ %call123, %err ], [ 0, %if.then18 ], [ -2, %if.then85 ], [ %call99, %sw.epilog100 ], [ -2, %if.then94 ], [ 0, %sw.default ], [ 0, %if.then80 ], [ 0, %if.then25 ], [ 0, %if.then6 ], [ -1, %sw.default134 ] + %ret.180 = phi i32 [ %call123, %err ], [ 0, %if.then18 ], [ -2, %if.then85 ], [ %call99, %sw.epilog100 ], [ -2, %if.then94 ], [ 0, %sw.default ], [ 0, %if.then80 ], [ 0, %if.then25 ], [ 0, %if.then6 ], [ -1, %sw.default134 ] call void @evp_pkey_ctx_free_old_ops(ptr noundef nonnull %ctx) #4 store i32 0, ptr %ctx, align 8 br label %if.end140 if.end140: ; preds = %if.then138, %err - %ret.194 = phi i32 [ %ret.195, %if.then138 ], [ %call123, %err ] - %32 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %32) #4 + %ret.179 = phi i32 [ %ret.180, %if.then138 ], [ %call123, %err ] + %29 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %29) #4 br label %return return: ; preds = %sw.bb124, %sw.bb114, %if.end140, %if.then111, %if.end104, %if.then - %retval.0 = phi i32 [ -2, %if.then ], [ -2, %if.then111 ], [ %ret.194, %if.end140 ], [ 1, %if.end104 ], [ 1, %sw.bb114 ], [ 1, %sw.bb124 ] + %retval.0 = phi i32 [ -2, %if.then ], [ -2, %if.then111 ], [ %ret.179, %if.end140 ], [ 1, %if.end104 ], [ 1, %sw.bb114 ], [ 1, %sw.bb124 ] ret i32 %retval.0 } @@ -635,7 +604,7 @@ return: ; preds = %if.end32, %if.then3 } ; Function Attrs: nounwind uwtable -define i32 @evp_pkey_decrypt_alloc(ptr noundef %ctx, ptr nocapture noundef %outp, ptr noundef %outlenp, i64 noundef %expected_outlen, ptr noundef %in, i64 noundef %inlen) local_unnamed_addr #0 { +define noundef i32 @evp_pkey_decrypt_alloc(ptr noundef %ctx, ptr nocapture noundef %outp, ptr noundef %outlenp, i64 noundef %expected_outlen, ptr noundef %in, i64 noundef %inlen) local_unnamed_addr #0 { entry: %call = tail call i32 @EVP_PKEY_decrypt(ptr noundef %ctx, ptr noundef null, ptr noundef %outlenp, ptr noundef %in, i64 noundef %inlen) %cmp = icmp slt i32 %call, 1 @@ -722,7 +691,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_ASYM_CIPHER_up_ref(ptr nocapture noundef %cipher) #2 { +define noundef i32 @EVP_ASYM_CIPHER_up_ref(ptr nocapture noundef %cipher) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_asym_cipher_st, ptr %cipher, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 diff --git a/bench/openssl/optimized/libcrypto-shlib-cbc_cksm.ll b/bench/openssl/optimized/libcrypto-shlib-cbc_cksm.ll index fbcd74d20f9..98520905b2a 100644 --- a/bench/openssl/optimized/libcrypto-shlib-cbc_cksm.ll +++ b/bench/openssl/optimized/libcrypto-shlib-cbc_cksm.ll @@ -10,31 +10,31 @@ entry: %0 = load i32, ptr %ivec, align 1 %incdec.ptr8 = getelementptr inbounds i8, ptr %ivec, i64 4 %1 = load i32, ptr %incdec.ptr8, align 1 - %cmp69 = icmp sgt i64 %length, 0 - br i1 %cmp69, label %for.body.lr.ph, label %for.end + %cmp71 = icmp sgt i64 %length, 0 + br i1 %cmp71, label %for.body.lr.ph, label %for.end for.body.lr.ph: ; preds = %entry %arrayidx94 = getelementptr inbounds [2 x i32], ptr %tin, i64 0, i64 1 br label %for.body for.body: ; preds = %for.body.lr.ph, %if.end - %in.addr.073 = phi ptr [ %in, %for.body.lr.ph ], [ %in.addr.8, %if.end ] - %l.072 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] - %tout1.071 = phi i32 [ %1, %for.body.lr.ph ], [ %12, %if.end ] - %tout0.070 = phi i32 [ %0, %for.body.lr.ph ], [ %11, %if.end ] - %cmp27 = icmp ugt i64 %l.072, 7 + %in.addr.075 = phi ptr [ %in, %for.body.lr.ph ], [ %in.addr.8, %if.end ] + %l.074 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] + %tout1.073 = phi i32 [ %1, %for.body.lr.ph ], [ %12, %if.end ] + %tout0.072 = phi i32 [ %0, %for.body.lr.ph ], [ %11, %if.end ] + %cmp27 = icmp ugt i64 %l.074, 7 br i1 %cmp27, label %if.then, label %if.else if.then: ; preds = %for.body - %2 = load i32, ptr %in.addr.073, align 1 - %incdec.ptr39 = getelementptr inbounds i8, ptr %in.addr.073, i64 4 + %2 = load i32, ptr %in.addr.075, align 1 + %incdec.ptr39 = getelementptr inbounds i8, ptr %in.addr.075, i64 4 %3 = load i32, ptr %incdec.ptr39, align 1 - %incdec.ptr53 = getelementptr inbounds i8, ptr %in.addr.073, i64 8 + %incdec.ptr53 = getelementptr inbounds i8, ptr %in.addr.075, i64 8 br label %if.end if.else: ; preds = %for.body - %add.ptr = getelementptr inbounds i8, ptr %in.addr.073, i64 %l.072 - switch i64 %l.072, label %if.end [ + %add.ptr = getelementptr inbounds i8, ptr %in.addr.075, i64 %l.074 + switch i64 %l.074, label %default.unreachable [ i64 1, label %sw.bb88 i64 7, label %sw.bb60 i64 6, label %sw.bb65 @@ -111,19 +111,22 @@ sw.bb88: ; preds = %if.else, %sw.bb83 %or91 = or i32 %tin0.2, %conv90 br label %if.end -if.end: ; preds = %if.else, %sw.bb88, %if.then - %tin0.3 = phi i32 [ %2, %if.then ], [ 0, %if.else ], [ %or91, %sw.bb88 ] - %tin1.7 = phi i32 [ %3, %if.then ], [ 0, %if.else ], [ %tin1.6, %sw.bb88 ] - %in.addr.8 = phi ptr [ %incdec.ptr53, %if.then ], [ %add.ptr, %if.else ], [ %incdec.ptr89, %sw.bb88 ] - %xor = xor i32 %tin0.3, %tout0.070 +default.unreachable: ; preds = %if.else + unreachable + +if.end: ; preds = %sw.bb88, %if.then + %tin0.3 = phi i32 [ %2, %if.then ], [ %or91, %sw.bb88 ] + %tin1.7 = phi i32 [ %3, %if.then ], [ %tin1.6, %sw.bb88 ] + %in.addr.8 = phi ptr [ %incdec.ptr53, %if.then ], [ %incdec.ptr89, %sw.bb88 ] + %xor = xor i32 %tin0.3, %tout0.072 store i32 %xor, ptr %tin, align 4 - %xor93 = xor i32 %tin1.7, %tout1.071 + %xor93 = xor i32 %tin1.7, %tout1.073 store i32 %xor93, ptr %arrayidx94, align 4 call void @DES_encrypt1(ptr noundef nonnull %tin, ptr noundef %schedule, i32 noundef 1) #3 %11 = load i32, ptr %tin, align 4 %12 = load i32, ptr %arrayidx94, align 4 - %sub = add nsw i64 %l.072, -8 - %cmp = icmp sgt i64 %l.072, 8 + %sub = add nsw i64 %l.074, -8 + %cmp = icmp sgt i64 %l.074, 8 br i1 %cmp, label %for.body, label %for.end, !llvm.loop !4 for.end: ; preds = %if.end, %entry diff --git a/bench/openssl/optimized/libcrypto-shlib-exchange.ll b/bench/openssl/optimized/libcrypto-shlib-exchange.ll index c805640a8a2..3a408ac6022 100644 --- a/bench/openssl/optimized/libcrypto-shlib-exchange.ll +++ b/bench/openssl/optimized/libcrypto-shlib-exchange.ll @@ -62,7 +62,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_KEYEXCH_up_ref(ptr nocapture noundef %exchange) #2 { +define noundef i32 @EVP_KEYEXCH_up_ref(ptr nocapture noundef %exchange) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 @@ -431,14 +431,13 @@ if.then37: ; preds = %if.end32 br label %err for.body: ; preds = %for.cond.preheader, %for.inc - %iter.089 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.088 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.176, %for.inc ] - %exchange.087 = phi ptr [ null, %for.cond.preheader ], [ %exchange.174, %for.inc ] - %cmp.i = icmp eq ptr %exchange.087, null + %iter.084 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %exchange.083 = phi ptr [ null, %for.cond.preheader ], [ %exchange.174, %for.inc ] + %cmp.i = icmp eq ptr %exchange.083, null br i1 %cmp.i, label %EVP_KEYEXCH_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.087, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.083, i64 0, i32 4 %6 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %6, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -452,22 +451,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_KEYEXCH_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.087, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.083, i64 0, i32 1 %7 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %7, ptr noundef nonnull @.str, i32 noundef 151) #4 - %prov.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.087, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_keyexch_st, ptr %exchange.083, i64 0, i32 3 %8 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %8) #4 - call void @CRYPTO_free(ptr noundef nonnull %exchange.087, ptr noundef nonnull @.str, i32 noundef 154) #4 + call void @CRYPTO_free(ptr noundef nonnull %exchange.083, ptr noundef nonnull @.str, i32 noundef 154) #4 br label %EVP_KEYEXCH_free.exit EVP_KEYEXCH_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %9 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %9) #4 - switch i32 %iter.089, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb50 - ] + %switch = icmp eq i32 %iter.084, 1 + br i1 %switch, label %sw.bb, label %sw.bb50 sw.bb: ; preds = %EVP_KEYEXCH_free.exit %10 = load ptr, ptr %libctx, align 8 @@ -489,16 +486,13 @@ sw.bb50: ; preds = %EVP_KEYEXCH_free.ex %cmp55 = icmp eq ptr %call.i58, null br i1 %cmp55, label %legacy, label %if.end62 -sw.epilog: ; preds = %EVP_KEYEXCH_free.exit - br i1 %cmp.i, label %for.inc, label %if.end62 - -if.end62: ; preds = %if.then47, %sw.bb50, %sw.epilog - %tmp_prov.175 = phi ptr [ %tmp_prov.088, %sw.epilog ], [ %12, %if.then47 ], [ %call52, %sw.bb50 ] - %exchange.173 = phi ptr [ %exchange.087, %sw.epilog ], [ %call.i, %if.then47 ], [ %call.i58, %sw.bb50 ] +if.end62: ; preds = %sw.bb50, %if.then47 + %exchange.1.ph = phi ptr [ %call.i, %if.then47 ], [ %call.i58, %sw.bb50 ] + %tmp_prov.1.ph = phi ptr [ %12, %if.then47 ], [ %call52, %sw.bb50 ] %15 = load ptr, ptr %keymgmt, align 8 %call64 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %15) #4 %16 = load ptr, ptr %propquery53, align 8 - %call66 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.175, ptr noundef %call64, ptr noundef %16) #4 + %call66 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call64, ptr noundef %16) #4 store ptr %call66, ptr %tmp_keymgmt, align 8 %cmp67.not = icmp eq ptr %call66, null br i1 %cmp67.not, label %if.then77, label %if.end74 @@ -513,16 +507,15 @@ if.end74: ; preds = %if.end62 br i1 %cmp75, label %if.then77, label %for.inc if.then77: ; preds = %if.end62, %if.end74 - %provkey.183 = phi ptr [ %call73, %if.end74 ], [ null, %if.end62 ] + %provkey.179 = phi ptr [ %call73, %if.end74 ], [ null, %if.end62 ] call void @EVP_KEYMGMT_free(ptr noundef %call66) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end74, %if.then77, %sw.epilog - %tmp_prov.176 = phi ptr [ %tmp_prov.088, %sw.epilog ], [ %tmp_prov.175, %if.then77 ], [ %tmp_prov.175, %if.end74 ], [ %tmp_prov.088, %sw.bb ] - %exchange.174 = phi ptr [ null, %sw.epilog ], [ %exchange.173, %if.then77 ], [ %exchange.173, %if.end74 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.183, %if.then77 ], [ %call73, %if.end74 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.089, 1 - %cmp40 = icmp ult i32 %iter.089, 2 +for.inc: ; preds = %sw.bb, %if.end74, %if.then77 + %exchange.174 = phi ptr [ %exchange.1.ph, %if.then77 ], [ %exchange.1.ph, %if.end74 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.179, %if.then77 ], [ %call73, %if.end74 ], [ null, %sw.bb ] + %inc = add nuw nsw i32 %iter.084, 1 + %cmp40 = icmp ult i32 %iter.084, 2 %cmp42 = icmp eq ptr %provkey.2, null %20 = select i1 %cmp40, i1 %cmp42, i1 false br i1 %20, label %for.body, label %for.end, !llvm.loop !6 diff --git a/bench/openssl/optimized/libcrypto-shlib-kem.ll b/bench/openssl/optimized/libcrypto-shlib-kem.ll index fed01c36704..d7b1be8b685 100644 --- a/bench/openssl/optimized/libcrypto-shlib-kem.ll +++ b/bench/openssl/optimized/libcrypto-shlib-kem.ll @@ -124,15 +124,14 @@ if.then25: ; preds = %if.end21 br label %if.then150 for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0108 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %provauthkey.0107 = phi ptr [ null, %for.cond.preheader ], [ %provauthkey.2, %for.inc ] - %tmp_prov.0106 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.187, %for.inc ] - %kem.0105 = phi ptr [ null, %for.cond.preheader ], [ %kem.185, %for.inc ] - %cmp.i = icmp eq ptr %kem.0105, null + %iter.0103 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %provauthkey.0102 = phi ptr [ null, %for.cond.preheader ], [ %provauthkey.2, %for.inc ] + %kem.0101 = phi ptr [ null, %for.cond.preheader ], [ %kem.185, %for.inc ] + %cmp.i = icmp eq ptr %kem.0101, null br i1 %cmp.i, label %EVP_KEM_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0105, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0101, i64 0, i32 4 %6 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %6, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -146,22 +145,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_KEM_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0105, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0101, i64 0, i32 1 %7 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %7, ptr noundef nonnull @.str, i32 noundef 431) #4 - %prov.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0105, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_kem_st, ptr %kem.0101, i64 0, i32 3 %8 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %8) #4 - call void @CRYPTO_free(ptr noundef nonnull %kem.0105, ptr noundef nonnull @.str, i32 noundef 434) #4 + call void @CRYPTO_free(ptr noundef nonnull %kem.0101, ptr noundef nonnull @.str, i32 noundef 434) #4 br label %EVP_KEM_free.exit EVP_KEM_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %9 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %9) #4 - switch i32 %iter.0108, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb37 - ] + %switch = icmp eq i32 %iter.0103, 1 + br i1 %switch, label %sw.bb, label %sw.bb37 sw.bb: ; preds = %EVP_KEM_free.exit %10 = load ptr, ptr %libctx, align 8 @@ -189,16 +186,13 @@ if.then44: ; preds = %sw.bb37 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 6, i32 noundef 150, ptr noundef null) #4 br label %if.then150 -sw.epilog: ; preds = %EVP_KEM_free.exit - br i1 %cmp.i, label %for.inc, label %if.end49 - -if.end49: ; preds = %if.then34, %sw.bb37, %sw.epilog - %tmp_prov.186 = phi ptr [ %tmp_prov.0106, %sw.epilog ], [ %12, %if.then34 ], [ %call39, %sw.bb37 ] - %kem.184 = phi ptr [ %kem.0105, %sw.epilog ], [ %call.i, %if.then34 ], [ %call.i80, %sw.bb37 ] +if.end49: ; preds = %sw.bb37, %if.then34 + %kem.1.ph = phi ptr [ %call.i, %if.then34 ], [ %call.i80, %sw.bb37 ] + %tmp_prov.1.ph = phi ptr [ %12, %if.then34 ], [ %call39, %sw.bb37 ] %15 = load ptr, ptr %keymgmt22, align 8 %call51 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %15) #4 %16 = load ptr, ptr %propquery40, align 8 - %call53 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.186, ptr noundef %call51, ptr noundef %16) #4 + %call53 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call51, ptr noundef %16) #4 store ptr %call53, ptr %tmp_keymgmt, align 8 %cmp54.not = icmp eq ptr %call53, null br i1 %cmp54.not, label %if.then78, label %if.then56 @@ -220,31 +214,30 @@ if.then66: ; preds = %if.then56 br i1 %cmp70, label %if.then72, label %if.end75 if.then72: ; preds = %if.then66 - call void @EVP_KEM_free(ptr noundef nonnull %kem.184) + call void @EVP_KEM_free(ptr noundef nonnull %kem.1.ph) call void @ERR_new() #4 call void @ERR_set_debug(ptr noundef nonnull @.str, i32 noundef 135, ptr noundef nonnull @__func__.evp_kem_init) #4 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 6, i32 noundef 134, ptr noundef null) #4 br label %if.then150 if.end75: ; preds = %if.then56, %if.then66 - %provauthkey.1.ph = phi ptr [ %provauthkey.0107, %if.then56 ], [ %call69, %if.then66 ] + %provauthkey.1.ph = phi ptr [ %provauthkey.0102, %if.then56 ], [ %call69, %if.then66 ] %.pr = load ptr, ptr %tmp_keymgmt, align 8 %cmp76 = icmp eq ptr %.pr, null br i1 %cmp76, label %if.then78, label %for.inc if.then78: ; preds = %if.end49, %if.end75 - %provauthkey.196 = phi ptr [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0107, %if.end49 ] - %provkey.195 = phi ptr [ %call60, %if.end75 ], [ null, %if.end49 ] + %provauthkey.192 = phi ptr [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0102, %if.end49 ] + %provkey.191 = phi ptr [ %call60, %if.end75 ], [ null, %if.end49 ] call void @EVP_KEYMGMT_free(ptr noundef %call53) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end75, %if.then78, %sw.epilog - %tmp_prov.187 = phi ptr [ %tmp_prov.0106, %sw.epilog ], [ %tmp_prov.186, %if.then78 ], [ %tmp_prov.186, %if.end75 ], [ %tmp_prov.0106, %sw.bb ] - %kem.185 = phi ptr [ null, %sw.epilog ], [ %kem.184, %if.then78 ], [ %kem.184, %if.end75 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.195, %if.then78 ], [ %call60, %if.end75 ], [ null, %sw.bb ] - %provauthkey.2 = phi ptr [ %provauthkey.0107, %sw.epilog ], [ %provauthkey.196, %if.then78 ], [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0107, %sw.bb ] - %inc = add nuw nsw i32 %iter.0108, 1 - %cmp27 = icmp ult i32 %iter.0108, 2 +for.inc: ; preds = %sw.bb, %if.end75, %if.then78 + %kem.185 = phi ptr [ %kem.1.ph, %if.then78 ], [ %kem.1.ph, %if.end75 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.191, %if.then78 ], [ %call60, %if.end75 ], [ null, %sw.bb ] + %provauthkey.2 = phi ptr [ %provauthkey.192, %if.then78 ], [ %provauthkey.1.ph, %if.end75 ], [ %provauthkey.0102, %sw.bb ] + %inc = add nuw nsw i32 %iter.0103, 1 + %cmp27 = icmp ult i32 %iter.0103, 2 %cmp29 = icmp eq ptr %provkey.2, null %22 = and i1 %cmp29, %cmp27 br i1 %22, label %for.body, label %for.end, !llvm.loop !5 @@ -548,7 +541,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_KEM_up_ref(ptr nocapture noundef %kem) #2 { +define noundef i32 @EVP_KEM_up_ref(ptr nocapture noundef %kem) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_kem_st, ptr %kem, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 diff --git a/bench/openssl/optimized/libcrypto-shlib-m_sigver.ll b/bench/openssl/optimized/libcrypto-shlib-m_sigver.ll index cc9f77431c4..eb0a2bc3c60 100644 --- a/bench/openssl/optimized/libcrypto-shlib-m_sigver.ll +++ b/bench/openssl/optimized/libcrypto-shlib-m_sigver.ll @@ -139,8 +139,8 @@ if.then41: ; preds = %if.end39 %cmp53 = icmp eq ptr %9, null %.pre = load ptr, ptr %keymgmt, align 8 %cmp57 = icmp eq ptr %9, %.pre - %or.cond194 = select i1 %cmp53, i1 true, i1 %cmp57 - br i1 %or.cond194, label %if.end63, label %if.then61 + %or.cond189 = select i1 %cmp53, i1 true, i1 %cmp57 + br i1 %or.cond189, label %if.end63, label %if.then61 if.else42: ; preds = %if.end39 %cmp43 = icmp eq ptr %mdname, null @@ -187,16 +187,12 @@ if.then68: ; preds = %if.end63 br label %err for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0192 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.0191 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.1165, %for.inc ] - %signature.2190 = phi ptr [ %signature.1, %for.cond.preheader ], [ %signature.3163, %for.inc ] - call void @EVP_SIGNATURE_free(ptr noundef %signature.2190) #5 + %switch = phi i1 [ true, %for.cond.preheader ], [ false, %for.inc ] + %signature.2186 = phi ptr [ %signature.1, %for.cond.preheader ], [ %signature.3163, %for.inc ] + call void @EVP_SIGNATURE_free(ptr noundef %signature.2186) #5 %11 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %11) #5 - switch i32 %iter.0192, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb83 - ] + br i1 %switch, label %sw.bb, label %sw.bb83 sw.bb: ; preds = %for.body %12 = load ptr, ptr %libctx75, align 8 @@ -217,17 +213,13 @@ sw.bb83: ; preds = %for.body %cmp88 = icmp eq ptr %call87, null br i1 %cmp88, label %legacy, label %if.end95 -sw.epilog: ; preds = %for.body - %cmp92 = icmp eq ptr %signature.2190, null - br i1 %cmp92, label %for.inc, label %if.end95 - -if.end95: ; preds = %if.then80, %sw.bb83, %sw.epilog - %tmp_prov.1164 = phi ptr [ %tmp_prov.0191, %sw.epilog ], [ %call81, %if.then80 ], [ %call85, %sw.bb83 ] - %signature.3162 = phi ptr [ %signature.2190, %sw.epilog ], [ %call77, %if.then80 ], [ %call87, %sw.bb83 ] +if.end95: ; preds = %sw.bb83, %if.then80 + %signature.3.ph = phi ptr [ %call77, %if.then80 ], [ %call87, %sw.bb83 ] + %tmp_prov.1.ph = phi ptr [ %call81, %if.then80 ], [ %call85, %sw.bb83 ] %16 = load ptr, ptr %keymgmt, align 8 %call97 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %16) #5 %17 = load ptr, ptr %propquery86, align 8 - %call99 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1164, ptr noundef %call97, ptr noundef %17) #5 + %call99 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call97, ptr noundef %17) #5 store ptr %call99, ptr %tmp_keymgmt, align 8 %cmp100.not = icmp eq ptr %call99, null br i1 %cmp100.not, label %if.then110, label %if.end107 @@ -242,18 +234,15 @@ if.end107: ; preds = %if.end95 br i1 %cmp108, label %if.then110, label %for.inc if.then110: ; preds = %if.end95, %if.end107 - %provkey.1172 = phi ptr [ %call106, %if.end107 ], [ null, %if.end95 ] + %provkey.1168 = phi ptr [ %call106, %if.end107 ], [ null, %if.end95 ] call void @EVP_KEYMGMT_free(ptr noundef %call99) #5 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end107, %if.then110, %sw.epilog - %tmp_prov.1165 = phi ptr [ %tmp_prov.0191, %sw.epilog ], [ %tmp_prov.1164, %if.then110 ], [ %tmp_prov.1164, %if.end107 ], [ %tmp_prov.0191, %sw.bb ] - %signature.3163 = phi ptr [ null, %sw.epilog ], [ %signature.3162, %if.then110 ], [ %signature.3162, %if.end107 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.1172, %if.then110 ], [ %call106, %if.end107 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.0192, 1 - %cmp71 = icmp ult i32 %iter.0192, 2 +for.inc: ; preds = %sw.bb, %if.end107, %if.then110 + %signature.3163 = phi ptr [ %signature.3.ph, %if.then110 ], [ %signature.3.ph, %if.end107 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.1168, %if.then110 ], [ %call106, %if.end107 ], [ null, %sw.bb ] %cmp73 = icmp eq ptr %provkey.2, null - %21 = select i1 %cmp71, i1 %cmp73, i1 false + %21 = select i1 %switch, i1 %cmp73, i1 false br i1 %21, label %for.body, label %for.end, !llvm.loop !5 for.end: ; preds = %for.inc @@ -345,12 +334,12 @@ if.end160: ; preds = %if.else147 br i1 %cmp161.not, label %if.end186, label %if.then163 if.then163: ; preds = %if.then156, %if.end160 - %mdname.addr.1178 = phi ptr [ %mdname.addr.0, %if.end160 ], [ %locmdname, %if.then156 ] + %mdname.addr.1174 = phi ptr [ %mdname.addr.0, %if.end160 ], [ %locmdname, %if.then156 ] call void @evp_md_ctx_clear_digest(ptr noundef %ctx, i32 noundef 1, i32 noundef 0) #5 %call164 = call i32 @ERR_set_mark() #5 %libctx165 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %1, i64 0, i32 1 %25 = load ptr, ptr %libctx165, align 8 - %call166 = call ptr @EVP_MD_fetch(ptr noundef %25, ptr noundef nonnull %mdname.addr.1178, ptr noundef %props.addr.0) #5 + %call166 = call ptr @EVP_MD_fetch(ptr noundef %25, ptr noundef nonnull %mdname.addr.1174, ptr noundef %props.addr.0) #5 %fetched_digest = getelementptr inbounds %struct.evp_md_ctx_st, ptr %ctx, i64 0, i32 8 store ptr %call166, ptr %fetched_digest, align 8 %cmp168.not = icmp eq ptr %call166, null @@ -363,7 +352,7 @@ if.then170: ; preds = %if.then163 br label %if.end183 if.else173: ; preds = %if.then163 - %call174 = call ptr @EVP_get_digestbyname(ptr noundef nonnull %mdname.addr.1178) #5 + %call174 = call ptr @EVP_get_digestbyname(ptr noundef nonnull %mdname.addr.1174) #5 store ptr %call174, ptr %digest175, align 8 store ptr %call174, ptr %ctx, align 8 %cmp178 = icmp eq ptr %call174, null @@ -381,7 +370,7 @@ if.end183: ; preds = %if.else173, %if.the br label %if.end186 if.end186: ; preds = %if.then156, %if.then152, %if.end.i149, %land.lhs.true.i146, %if.end160, %if.end183, %if.then139 - %mdname.addr.2 = phi ptr [ %mdname.addr.0, %if.then139 ], [ %mdname.addr.1178, %if.end183 ], [ null, %if.end160 ], [ %call144, %if.end.i149 ], [ null, %land.lhs.true.i146 ], [ null, %if.then152 ], [ null, %if.then156 ] + %mdname.addr.2 = phi ptr [ %mdname.addr.0, %if.then139 ], [ %mdname.addr.1174, %if.end183 ], [ null, %if.end160 ], [ %call144, %if.end.i149 ], [ null, %land.lhs.true.i146 ], [ null, %if.then152 ], [ null, %if.then156 ] %tobool187.not = icmp eq i32 %ver, 0 br i1 %tobool187.not, label %if.else197, label %if.then188 @@ -410,10 +399,10 @@ if.then200: ; preds = %if.else197 br label %err if.end206: ; preds = %if.else197, %if.then188 - %.sink195 = phi ptr [ %26, %if.then188 ], [ %27, %if.else197 ] + %.sink190 = phi ptr [ %26, %if.then188 ], [ %27, %if.else197 ] %algctx204 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %1, i64 0, i32 5, i32 0, i32 1 %28 = load ptr, ptr %algctx204, align 8 - %call205 = call i32 %.sink195(ptr noundef %28, ptr noundef %mdname.addr.2, ptr noundef %provkey.3, ptr noundef %params) #5 + %call205 = call i32 %.sink190(ptr noundef %28, ptr noundef %mdname.addr.2, ptr noundef %provkey.3, ptr noundef %params) #5 %cmp207 = icmp sgt i32 %call205, 0 %cmp210 = icmp ne ptr %mdname.addr.2, null %or.cond2 = or i1 %cmp210, %cmp207 @@ -429,7 +418,7 @@ if.then216: ; preds = %if.end213 br label %err err: ; preds = %if.end213, %if.then216, %if.then200, %if.then191, %if.then180, %if.then131, %if.then114, %if.then68, %if.then61, %if.then37 - call void @evp_pkey_ctx_free_old_ops(ptr noundef %1) #5 + call void @evp_pkey_ctx_free_old_ops(ptr noundef nonnull %1) #5 store i32 0, ptr %1, align 8 %29 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %29) #5 @@ -471,8 +460,8 @@ if.end233: ; preds = %if.end228 %and = and i32 %34, 4 %tobool236.not = icmp eq i32 %and, 0 %cmp238 = icmp eq ptr %type.addr.0, null - %or.cond186 = select i1 %tobool236.not, i1 %cmp238, i1 false - br i1 %or.cond186, label %if.then240, label %if.end253 + %or.cond182 = select i1 %tobool236.not, i1 %cmp238, i1 false + br i1 %or.cond182, label %if.then240, label %if.end253 if.then240: ; preds = %if.end233 %call241 = call i32 @EVP_PKEY_get_default_digest_nid(ptr noundef %pkey, ptr noundef nonnull %def_nid) #5 @@ -574,15 +563,15 @@ if.end322: ; preds = %if.end301, %if.else if.end328: ; preds = %if.end322 %tobool329.not = icmp eq ptr %pctx, null - %.pre193 = load ptr, ptr %pctx1, align 8 + %.pre188 = load ptr, ptr %pctx1, align 8 br i1 %tobool329.not, label %if.end332, label %if.then330 if.then330: ; preds = %if.end328 - store ptr %.pre193, ptr %pctx, align 8 + store ptr %.pre188, ptr %pctx, align 8 br label %if.end332 if.end332: ; preds = %if.then330, %if.end328 - %pmeth334 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %.pre193, i64 0, i32 12 + %pmeth334 = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %.pre188, i64 0, i32 12 %45 = load ptr, ptr %pmeth334, align 8 %flags335 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %45, i64 0, i32 1 %46 = load i32, ptr %flags335, align 4 @@ -1571,7 +1560,7 @@ declare i32 @EVP_PKEY_get_default_digest_nid(ptr noundef, ptr noundef) local_unn declare ptr @OBJ_nid2sn(i32 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal i32 @update(ptr nocapture readnone %ctx, ptr nocapture readnone %data, i64 %datalen) #0 { +define internal noundef i32 @update(ptr nocapture readnone %ctx, ptr nocapture readnone %data, i64 %datalen) #0 { entry: tail call void @ERR_new() #5 tail call void @ERR_set_debug(ptr noundef nonnull @.str, i32 noundef 23, ptr noundef nonnull @__func__.update) #5 diff --git a/bench/openssl/optimized/libcrypto-shlib-pcbc_enc.ll b/bench/openssl/optimized/libcrypto-shlib-pcbc_enc.ll index f63ef745fdf..3e80d977db9 100644 --- a/bench/openssl/optimized/libcrypto-shlib-pcbc_enc.ll +++ b/bench/openssl/optimized/libcrypto-shlib-pcbc_enc.ll @@ -8,11 +8,11 @@ define void @DES_pcbc_encrypt(ptr nocapture noundef readonly %input, ptr nocaptu entry: %tin = alloca [2 x i32], align 4 %tobool.not = icmp eq i32 %enc, 0 - %cmp157145 = icmp sgt i64 %length, 0 + %cmp157146 = icmp sgt i64 %length, 0 br i1 %tobool.not, label %if.else127, label %if.then if.then: ; preds = %entry - br i1 %cmp157145, label %for.body.lr.ph, label %if.end275 + br i1 %cmp157146, label %for.body.lr.ph, label %if.end275 for.body.lr.ph: ; preds = %if.then %incdec.ptr7 = getelementptr inbounds i8, ptr %ivec, i64 4 @@ -22,24 +22,24 @@ for.body.lr.ph: ; preds = %if.then br label %for.body for.body: ; preds = %for.body.lr.ph, %if.end - %out.0144 = phi ptr [ %output, %for.body.lr.ph ], [ %incdec.ptr126, %if.end ] - %in.0143 = phi ptr [ %input, %for.body.lr.ph ], [ %in.8, %if.end ] - %xor1.0142 = phi i32 [ %0, %for.body.lr.ph ], [ %xor98, %if.end ] - %xor0.0141 = phi i32 [ %1, %for.body.lr.ph ], [ %xor97, %if.end ] - %length.addr.0140 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] - %cmp26 = icmp ugt i64 %length.addr.0140, 7 + %out.0145 = phi ptr [ %output, %for.body.lr.ph ], [ %incdec.ptr126, %if.end ] + %in.0144 = phi ptr [ %input, %for.body.lr.ph ], [ %in.8, %if.end ] + %xor1.0143 = phi i32 [ %0, %for.body.lr.ph ], [ %xor98, %if.end ] + %xor0.0142 = phi i32 [ %1, %for.body.lr.ph ], [ %xor97, %if.end ] + %length.addr.0141 = phi i64 [ %length, %for.body.lr.ph ], [ %sub, %if.end ] + %cmp26 = icmp ugt i64 %length.addr.0141, 7 br i1 %cmp26, label %if.then28, label %if.else if.then28: ; preds = %for.body - %2 = load i32, ptr %in.0143, align 1 - %incdec.ptr39 = getelementptr inbounds i8, ptr %in.0143, i64 4 + %2 = load i32, ptr %in.0144, align 1 + %incdec.ptr39 = getelementptr inbounds i8, ptr %in.0144, i64 4 %3 = load i32, ptr %incdec.ptr39, align 1 - %incdec.ptr53 = getelementptr inbounds i8, ptr %in.0143, i64 8 + %incdec.ptr53 = getelementptr inbounds i8, ptr %in.0144, i64 8 br label %if.end if.else: ; preds = %for.body - %add.ptr = getelementptr inbounds i8, ptr %in.0143, i64 %length.addr.0140 - switch i64 %length.addr.0140, label %if.end [ + %add.ptr = getelementptr inbounds i8, ptr %in.0144, i64 %length.addr.0141 + switch i64 %length.addr.0141, label %default.unreachable [ i64 1, label %sw.bb88 i64 7, label %sw.bb60 i64 6, label %sw.bb65 @@ -116,13 +116,16 @@ sw.bb88: ; preds = %if.else, %sw.bb83 %or91 = or i32 %sin0.2, %conv90 br label %if.end -if.end: ; preds = %if.else, %sw.bb88, %if.then28 - %sin0.3 = phi i32 [ %2, %if.then28 ], [ 0, %if.else ], [ %or91, %sw.bb88 ] - %sin1.7 = phi i32 [ %3, %if.then28 ], [ 0, %if.else ], [ %sin1.6, %sw.bb88 ] - %in.8 = phi ptr [ %incdec.ptr53, %if.then28 ], [ %add.ptr, %if.else ], [ %incdec.ptr89, %sw.bb88 ] - %xor = xor i32 %sin0.3, %xor0.0141 +default.unreachable: ; preds = %if.else, %if.else228 + unreachable + +if.end: ; preds = %sw.bb88, %if.then28 + %sin0.3 = phi i32 [ %2, %if.then28 ], [ %or91, %sw.bb88 ] + %sin1.7 = phi i32 [ %3, %if.then28 ], [ %sin1.6, %sw.bb88 ] + %in.8 = phi ptr [ %incdec.ptr53, %if.then28 ], [ %incdec.ptr89, %sw.bb88 ] + %xor = xor i32 %sin0.3, %xor0.0142 store i32 %xor, ptr %tin, align 4 - %xor93 = xor i32 %sin1.7, %xor1.0142 + %xor93 = xor i32 %sin1.7, %xor1.0143 store i32 %xor93, ptr %arrayidx94, align 4 call void @DES_encrypt1(ptr noundef nonnull %tin, ptr noundef %schedule, i32 noundef 1) #2 %11 = load i32, ptr %tin, align 4 @@ -130,41 +133,41 @@ if.end: ; preds = %if.else, %sw.bb88, %xor97 = xor i32 %11, %sin0.3 %xor98 = xor i32 %12, %sin1.7 %conv99 = trunc i32 %11 to i8 - %incdec.ptr100 = getelementptr inbounds i8, ptr %out.0144, i64 1 - store i8 %conv99, ptr %out.0144, align 1 + %incdec.ptr100 = getelementptr inbounds i8, ptr %out.0145, i64 1 + store i8 %conv99, ptr %out.0145, align 1 %shr = lshr i32 %11, 8 %conv102 = trunc i32 %shr to i8 - %incdec.ptr103 = getelementptr inbounds i8, ptr %out.0144, i64 2 + %incdec.ptr103 = getelementptr inbounds i8, ptr %out.0145, i64 2 store i8 %conv102, ptr %incdec.ptr100, align 1 %shr104 = lshr i32 %11, 16 %conv106 = trunc i32 %shr104 to i8 - %incdec.ptr107 = getelementptr inbounds i8, ptr %out.0144, i64 3 + %incdec.ptr107 = getelementptr inbounds i8, ptr %out.0145, i64 3 store i8 %conv106, ptr %incdec.ptr103, align 1 %shr108 = lshr i32 %11, 24 %conv110 = trunc i32 %shr108 to i8 - %incdec.ptr111 = getelementptr inbounds i8, ptr %out.0144, i64 4 + %incdec.ptr111 = getelementptr inbounds i8, ptr %out.0145, i64 4 store i8 %conv110, ptr %incdec.ptr107, align 1 %conv113 = trunc i32 %12 to i8 - %incdec.ptr114 = getelementptr inbounds i8, ptr %out.0144, i64 5 + %incdec.ptr114 = getelementptr inbounds i8, ptr %out.0145, i64 5 store i8 %conv113, ptr %incdec.ptr111, align 1 %shr115 = lshr i32 %12, 8 %conv117 = trunc i32 %shr115 to i8 - %incdec.ptr118 = getelementptr inbounds i8, ptr %out.0144, i64 6 + %incdec.ptr118 = getelementptr inbounds i8, ptr %out.0145, i64 6 store i8 %conv117, ptr %incdec.ptr114, align 1 %shr119 = lshr i32 %12, 16 %conv121 = trunc i32 %shr119 to i8 - %incdec.ptr122 = getelementptr inbounds i8, ptr %out.0144, i64 7 + %incdec.ptr122 = getelementptr inbounds i8, ptr %out.0145, i64 7 store i8 %conv121, ptr %incdec.ptr118, align 1 %shr123 = lshr i32 %12, 24 %conv125 = trunc i32 %shr123 to i8 - %incdec.ptr126 = getelementptr inbounds i8, ptr %out.0144, i64 8 + %incdec.ptr126 = getelementptr inbounds i8, ptr %out.0145, i64 8 store i8 %conv125, ptr %incdec.ptr122, align 1 - %sub = add nsw i64 %length.addr.0140, -8 - %cmp = icmp sgt i64 %length.addr.0140, 8 + %sub = add nsw i64 %length.addr.0141, -8 + %cmp = icmp sgt i64 %length.addr.0141, 8 br i1 %cmp, label %for.body, label %if.end275, !llvm.loop !4 if.else127: ; preds = %entry - br i1 %cmp157145, label %for.body159.lr.ph, label %if.end275 + br i1 %cmp157146, label %for.body159.lr.ph, label %if.end275 for.body159.lr.ph: ; preds = %if.else127 %incdec.ptr138 = getelementptr inbounds i8, ptr %ivec, i64 4 @@ -174,28 +177,28 @@ for.body159.lr.ph: ; preds = %if.else127 br label %for.body159 for.body159: ; preds = %for.body159.lr.ph, %if.end269 - %out.1150 = phi ptr [ %output, %for.body159.lr.ph ], [ %incdec.ptr227, %if.end269 ] - %in.9149 = phi ptr [ %input, %for.body159.lr.ph ], [ %incdec.ptr184, %if.end269 ] - %xor1.1148 = phi i32 [ %13, %for.body159.lr.ph ], [ %xor271, %if.end269 ] - %xor0.1147 = phi i32 [ %14, %for.body159.lr.ph ], [ %xor270, %if.end269 ] - %length.addr.1146 = phi i64 [ %length, %for.body159.lr.ph ], [ %sub273, %if.end269 ] - %15 = load i16, ptr %in.9149, align 1 + %out.1151 = phi ptr [ %output, %for.body159.lr.ph ], [ %incdec.ptr227, %if.end269 ] + %in.9150 = phi ptr [ %input, %for.body159.lr.ph ], [ %incdec.ptr184, %if.end269 ] + %xor1.1149 = phi i32 [ %13, %for.body159.lr.ph ], [ %xor271, %if.end269 ] + %xor0.1148 = phi i32 [ %14, %for.body159.lr.ph ], [ %xor270, %if.end269 ] + %length.addr.1147 = phi i64 [ %length, %for.body159.lr.ph ], [ %sub273, %if.end269 ] + %15 = load i16, ptr %in.9150, align 1 %16 = zext i16 %15 to i32 - %incdec.ptr162 = getelementptr inbounds i8, ptr %in.9149, i64 2 - %incdec.ptr166 = getelementptr inbounds i8, ptr %in.9149, i64 3 + %incdec.ptr162 = getelementptr inbounds i8, ptr %in.9150, i64 2 + %incdec.ptr166 = getelementptr inbounds i8, ptr %in.9150, i64 3 %17 = load i8, ptr %incdec.ptr162, align 1 %conv167 = zext i8 %17 to i32 %shl168 = shl nuw nsw i32 %conv167, 16 %or169 = or disjoint i32 %shl168, %16 - %incdec.ptr170 = getelementptr inbounds i8, ptr %in.9149, i64 4 + %incdec.ptr170 = getelementptr inbounds i8, ptr %in.9150, i64 4 %18 = load i8, ptr %incdec.ptr166, align 1 %conv171 = zext i8 %18 to i32 %shl172 = shl nuw i32 %conv171, 24 %or173 = or disjoint i32 %or169, %shl172 %19 = load i16, ptr %incdec.ptr170, align 1 %20 = zext i16 %19 to i32 - %incdec.ptr176 = getelementptr inbounds i8, ptr %in.9149, i64 6 - %incdec.ptr180 = getelementptr inbounds i8, ptr %in.9149, i64 7 + %incdec.ptr176 = getelementptr inbounds i8, ptr %in.9150, i64 6 + %incdec.ptr180 = getelementptr inbounds i8, ptr %in.9150, i64 7 %21 = load i8, ptr %incdec.ptr176, align 1 %conv181 = zext i8 %21 to i32 %shl182 = shl nuw nsw i32 %conv181, 16 @@ -208,23 +211,22 @@ for.body159: ; preds = %for.body159.lr.ph, store i32 %or187, ptr %arrayidx189, align 4 call void @DES_encrypt1(ptr noundef nonnull %tin, ptr noundef %schedule, i32 noundef 0) #2 %23 = load i32, ptr %tin, align 4 - %xor192 = xor i32 %23, %xor0.1147 + %xor192 = xor i32 %23, %xor0.1148 %24 = load i32, ptr %arrayidx189, align 4 - %xor194 = xor i32 %24, %xor1.1148 - %cmp195 = icmp ugt i64 %length.addr.1146, 7 + %xor194 = xor i32 %24, %xor1.1149 + %cmp195 = icmp ugt i64 %length.addr.1147, 7 br i1 %cmp195, label %if.end269, label %if.else228 if.else228: ; preds = %for.body159 - %add.ptr229 = getelementptr inbounds i8, ptr %out.1150, i64 %length.addr.1146 - switch i64 %length.addr.1146, label %if.else228.unreachabledefault [ - i64 1, label %sw.bb264 + %add.ptr229 = getelementptr inbounds i8, ptr %out.1151, i64 %length.addr.1147 + switch i64 %length.addr.1147, label %default.unreachable [ + i64 1, label %if.end269.thread i64 7, label %sw.bb235 i64 6, label %sw.bb240 i64 5, label %sw.bb245 i64 4, label %sw.bb249 i64 3, label %sw.bb254 i64 2, label %sw.bb259 - i64 0, label %if.end275 ] sw.bb235: ; preds = %if.else228 @@ -271,9 +273,9 @@ sw.bb259: ; preds = %sw.bb254, %if.else2 %conv262 = trunc i32 %shr260 to i8 %incdec.ptr263 = getelementptr inbounds i8, ptr %out.7, i64 -1 store i8 %conv262, ptr %incdec.ptr263, align 1 - br label %sw.bb264 + br label %if.end269.thread -sw.bb264: ; preds = %if.else228, %sw.bb259 +if.end269.thread: ; preds = %sw.bb259, %if.else228 %out.8 = phi ptr [ %add.ptr229, %if.else228 ], [ %incdec.ptr263, %sw.bb259 ] %conv266 = trunc i32 %xor192 to i8 %incdec.ptr267 = getelementptr inbounds i8, ptr %out.8, i64 -1 @@ -281,47 +283,44 @@ sw.bb264: ; preds = %if.else228, %sw.bb2 br label %if.end275 if.end269: ; preds = %for.body159 - %incdec.ptr184 = getelementptr inbounds i8, ptr %in.9149, i64 8 + %incdec.ptr184 = getelementptr inbounds i8, ptr %in.9150, i64 8 %conv199 = trunc i32 %xor192 to i8 - %incdec.ptr200 = getelementptr inbounds i8, ptr %out.1150, i64 1 - store i8 %conv199, ptr %out.1150, align 1 + %incdec.ptr200 = getelementptr inbounds i8, ptr %out.1151, i64 1 + store i8 %conv199, ptr %out.1151, align 1 %shr201 = lshr i32 %xor192, 8 %conv203 = trunc i32 %shr201 to i8 - %incdec.ptr204 = getelementptr inbounds i8, ptr %out.1150, i64 2 + %incdec.ptr204 = getelementptr inbounds i8, ptr %out.1151, i64 2 store i8 %conv203, ptr %incdec.ptr200, align 1 %shr205 = lshr i32 %xor192, 16 %conv207 = trunc i32 %shr205 to i8 - %incdec.ptr208 = getelementptr inbounds i8, ptr %out.1150, i64 3 + %incdec.ptr208 = getelementptr inbounds i8, ptr %out.1151, i64 3 store i8 %conv207, ptr %incdec.ptr204, align 1 %shr209 = lshr i32 %xor192, 24 %conv211 = trunc i32 %shr209 to i8 - %incdec.ptr212 = getelementptr inbounds i8, ptr %out.1150, i64 4 + %incdec.ptr212 = getelementptr inbounds i8, ptr %out.1151, i64 4 store i8 %conv211, ptr %incdec.ptr208, align 1 %conv214 = trunc i32 %xor194 to i8 - %incdec.ptr215 = getelementptr inbounds i8, ptr %out.1150, i64 5 + %incdec.ptr215 = getelementptr inbounds i8, ptr %out.1151, i64 5 store i8 %conv214, ptr %incdec.ptr212, align 1 %shr216 = lshr i32 %xor194, 8 %conv218 = trunc i32 %shr216 to i8 - %incdec.ptr219 = getelementptr inbounds i8, ptr %out.1150, i64 6 + %incdec.ptr219 = getelementptr inbounds i8, ptr %out.1151, i64 6 store i8 %conv218, ptr %incdec.ptr215, align 1 %shr220 = lshr i32 %xor194, 16 %conv222 = trunc i32 %shr220 to i8 - %incdec.ptr223 = getelementptr inbounds i8, ptr %out.1150, i64 7 + %incdec.ptr223 = getelementptr inbounds i8, ptr %out.1151, i64 7 store i8 %conv222, ptr %incdec.ptr219, align 1 %shr224 = lshr i32 %xor194, 24 %conv226 = trunc i32 %shr224 to i8 - %incdec.ptr227 = getelementptr inbounds i8, ptr %out.1150, i64 8 + %incdec.ptr227 = getelementptr inbounds i8, ptr %out.1151, i64 8 store i8 %conv226, ptr %incdec.ptr223, align 1 %xor270 = xor i32 %xor192, %or173 %xor271 = xor i32 %xor194, %or187 - %sub273 = add nsw i64 %length.addr.1146, -8 - %cmp157.not = icmp eq i64 %length.addr.1146, 8 - br i1 %cmp157.not, label %if.end275, label %for.body159, !llvm.loop !6 - -if.else228.unreachabledefault: ; preds = %if.else228 - unreachable + %sub273 = add nsw i64 %length.addr.1147, -8 + %cmp157 = icmp sgt i64 %length.addr.1147, 8 + br i1 %cmp157, label %for.body159, label %if.end275, !llvm.loop !6 -if.end275: ; preds = %if.end, %if.end269, %if.else228, %sw.bb264, %if.then, %if.else127 +if.end275: ; preds = %if.end, %if.end269, %if.end269.thread, %if.then, %if.else127 ret void } diff --git a/bench/openssl/optimized/libcrypto-shlib-signature.ll b/bench/openssl/optimized/libcrypto-shlib-signature.ll index 7f8af3275eb..2cdda45c721 100644 --- a/bench/openssl/optimized/libcrypto-shlib-signature.ll +++ b/bench/openssl/optimized/libcrypto-shlib-signature.ll @@ -63,7 +63,7 @@ declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_a declare void @ossl_provider_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) uwtable -define i32 @EVP_SIGNATURE_up_ref(ptr nocapture noundef %signature) #2 { +define noundef i32 @EVP_SIGNATURE_up_ref(ptr nocapture noundef %signature) #2 { entry: %refcnt = getelementptr inbounds %struct.evp_signature_st, ptr %signature, i64 0, i32 4 %0 = atomicrmw add ptr %refcnt, i32 1 monotonic, align 4 @@ -848,14 +848,13 @@ if.then25: ; preds = %if.end20 br label %err for.body: ; preds = %for.cond.preheader, %for.inc - %iter.0119 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] - %tmp_prov.0118 = phi ptr [ null, %for.cond.preheader ], [ %tmp_prov.1106, %for.inc ] - %signature.0117 = phi ptr [ null, %for.cond.preheader ], [ %signature.1104, %for.inc ] - %cmp.i = icmp eq ptr %signature.0117, null + %iter.0103 = phi i32 [ 1, %for.cond.preheader ], [ %inc, %for.inc ] + %signature.0102 = phi ptr [ null, %for.cond.preheader ], [ %signature.193, %for.inc ] + %cmp.i = icmp eq ptr %signature.0102, null br i1 %cmp.i, label %EVP_SIGNATURE_free.exit, label %if.end.i if.end.i: ; preds = %for.body - %refcnt.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0117, i64 0, i32 4 + %refcnt.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0102, i64 0, i32 4 %3 = atomicrmw sub ptr %refcnt.i, i32 1 monotonic, align 4 %cmp.i.i = icmp eq i32 %3, 1 br i1 %cmp.i.i, label %CRYPTO_DOWN_REF.exit.thread.i, label %CRYPTO_DOWN_REF.exit.i @@ -869,22 +868,20 @@ CRYPTO_DOWN_REF.exit.i: ; preds = %if.end.i br i1 %cmp1.i, label %EVP_SIGNATURE_free.exit, label %if.end3.i if.end3.i: ; preds = %CRYPTO_DOWN_REF.exit.i, %CRYPTO_DOWN_REF.exit.thread.i - %type_name.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0117, i64 0, i32 1 + %type_name.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0102, i64 0, i32 1 %4 = load ptr, ptr %type_name.i, align 8 call void @CRYPTO_free(ptr noundef %4, ptr noundef nonnull @.str, i32 noundef 285) #4 - %prov.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0117, i64 0, i32 3 + %prov.i = getelementptr inbounds %struct.evp_signature_st, ptr %signature.0102, i64 0, i32 3 %5 = load ptr, ptr %prov.i, align 8 call void @ossl_provider_free(ptr noundef %5) #4 - call void @CRYPTO_free(ptr noundef nonnull %signature.0117, ptr noundef nonnull @.str, i32 noundef 288) #4 + call void @CRYPTO_free(ptr noundef nonnull %signature.0102, ptr noundef nonnull @.str, i32 noundef 288) #4 br label %EVP_SIGNATURE_free.exit EVP_SIGNATURE_free.exit: ; preds = %for.body, %CRYPTO_DOWN_REF.exit.i, %if.end3.i %6 = load ptr, ptr %tmp_keymgmt, align 8 call void @EVP_KEYMGMT_free(ptr noundef %6) #4 - switch i32 %iter.0119, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb38 - ] + %switch = icmp eq i32 %iter.0103, 1 + br i1 %switch, label %sw.bb, label %sw.bb38 sw.bb: ; preds = %EVP_SIGNATURE_free.exit %7 = load ptr, ptr %libctx, align 8 @@ -906,16 +903,13 @@ sw.bb38: ; preds = %EVP_SIGNATURE_free. %cmp43 = icmp eq ptr %call.i88, null br i1 %cmp43, label %legacy, label %if.end50 -sw.epilog: ; preds = %EVP_SIGNATURE_free.exit - br i1 %cmp.i, label %for.inc, label %if.end50 - -if.end50: ; preds = %if.then35, %sw.bb38, %sw.epilog - %tmp_prov.1105 = phi ptr [ %tmp_prov.0118, %sw.epilog ], [ %9, %if.then35 ], [ %call40, %sw.bb38 ] - %signature.1103 = phi ptr [ %signature.0117, %sw.epilog ], [ %call.i, %if.then35 ], [ %call.i88, %sw.bb38 ] +if.end50: ; preds = %sw.bb38, %if.then35 + %signature.1.ph = phi ptr [ %call.i, %if.then35 ], [ %call.i88, %sw.bb38 ] + %tmp_prov.1.ph = phi ptr [ %9, %if.then35 ], [ %call40, %sw.bb38 ] %12 = load ptr, ptr %keymgmt, align 8 %call52 = call ptr @EVP_KEYMGMT_get0_name(ptr noundef %12) #4 %13 = load ptr, ptr %propquery41, align 8 - %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1105, ptr noundef %call52, ptr noundef %13) #4 + %call54 = call ptr @evp_keymgmt_fetch_from_prov(ptr noundef %tmp_prov.1.ph, ptr noundef %call52, ptr noundef %13) #4 store ptr %call54, ptr %tmp_keymgmt, align 8 %cmp55.not = icmp eq ptr %call54, null br i1 %cmp55.not, label %if.then65, label %if.end62 @@ -930,16 +924,15 @@ if.end62: ; preds = %if.end50 br i1 %cmp63, label %if.then65, label %for.inc if.then65: ; preds = %if.end50, %if.end62 - %provkey.1113 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] + %provkey.198 = phi ptr [ %call61, %if.end62 ], [ null, %if.end50 ] call void @EVP_KEYMGMT_free(ptr noundef %call54) #4 br label %for.inc -for.inc: ; preds = %sw.bb, %if.end62, %if.then65, %sw.epilog - %tmp_prov.1106 = phi ptr [ %tmp_prov.0118, %sw.epilog ], [ %tmp_prov.1105, %if.then65 ], [ %tmp_prov.1105, %if.end62 ], [ %tmp_prov.0118, %sw.bb ] - %signature.1104 = phi ptr [ null, %sw.epilog ], [ %signature.1103, %if.then65 ], [ %signature.1103, %if.end62 ], [ null, %sw.bb ] - %provkey.2 = phi ptr [ null, %sw.epilog ], [ %provkey.1113, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] - %inc = add nuw nsw i32 %iter.0119, 1 - %cmp28 = icmp ult i32 %iter.0119, 2 +for.inc: ; preds = %sw.bb, %if.end62, %if.then65 + %signature.193 = phi ptr [ %signature.1.ph, %if.then65 ], [ %signature.1.ph, %if.end62 ], [ null, %sw.bb ] + %provkey.2 = phi ptr [ %provkey.198, %if.then65 ], [ %call61, %if.end62 ], [ null, %sw.bb ] + %inc = add nuw nsw i32 %iter.0103, 1 + %cmp28 = icmp ult i32 %iter.0103, 2 %cmp30 = icmp eq ptr %provkey.2, null %17 = select i1 %cmp28, i1 %cmp30, i1 false br i1 %17, label %for.body, label %for.end, !llvm.loop !6 @@ -948,44 +941,20 @@ for.end: ; preds = %for.inc br i1 %cmp30, label %if.then69, label %if.end70 if.then69: ; preds = %for.end - %cmp.i89 = icmp eq ptr %signature.1104, null - br i1 %cmp.i89, label %legacy, label %if.end.i90 - -if.end.i90: ; preds = %if.then69 - %refcnt.i91 = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 4 - %18 = atomicrmw sub ptr %refcnt.i91, i32 1 monotonic, align 4 - %cmp.i.i92 = icmp eq i32 %18, 1 - br i1 %cmp.i.i92, label %CRYPTO_DOWN_REF.exit.thread.i98, label %CRYPTO_DOWN_REF.exit.i93 - -CRYPTO_DOWN_REF.exit.thread.i98: ; preds = %if.end.i90 - fence acquire - br label %if.end3.i95 - -CRYPTO_DOWN_REF.exit.i93: ; preds = %if.end.i90 - %cmp1.i94 = icmp sgt i32 %18, 1 - br i1 %cmp1.i94, label %legacy, label %if.end3.i95 - -if.end3.i95: ; preds = %CRYPTO_DOWN_REF.exit.i93, %CRYPTO_DOWN_REF.exit.thread.i98 - %type_name.i96 = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 1 - %19 = load ptr, ptr %type_name.i96, align 8 - call void @CRYPTO_free(ptr noundef %19, ptr noundef nonnull @.str, i32 noundef 285) #4 - %prov.i97 = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 3 - %20 = load ptr, ptr %prov.i97, align 8 - call void @ossl_provider_free(ptr noundef %20) #4 - call void @CRYPTO_free(ptr noundef nonnull %signature.1104, ptr noundef nonnull @.str, i32 noundef 288) #4 + call void @EVP_SIGNATURE_free(ptr noundef %signature.193) br label %legacy if.end70: ; preds = %for.end %call71 = call i32 @ERR_pop_to_mark() #4 %op = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5 - store ptr %signature.1104, ptr %op, align 8 - %newctx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 5 - %21 = load ptr, ptr %newctx, align 8 - %prov = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 3 - %22 = load ptr, ptr %prov, align 8 - %call73 = call ptr @ossl_provider_ctx(ptr noundef %22) #4 - %23 = load ptr, ptr %propquery41, align 8 - %call75 = call ptr %21(ptr noundef %call73, ptr noundef %23) #4 + store ptr %signature.193, ptr %op, align 8 + %newctx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 5 + %18 = load ptr, ptr %newctx, align 8 + %prov = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 3 + %19 = load ptr, ptr %prov, align 8 + %call73 = call ptr @ossl_provider_ctx(ptr noundef %19) #4 + %20 = load ptr, ptr %propquery41, align 8 + %call75 = call ptr %18(ptr noundef %call73, ptr noundef %20) #4 %algctx = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 5, i32 0, i32 1 store ptr %call75, ptr %algctx, align 8 %cmp79 = icmp eq ptr %call75, null @@ -1005,9 +974,9 @@ if.end82: ; preds = %if.end70 ] sw.bb83: ; preds = %if.end82 - %sign_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 6 - %24 = load ptr, ptr %sign_init, align 8 - %cmp84 = icmp eq ptr %24, null + %sign_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 6 + %21 = load ptr, ptr %sign_init, align 8 + %cmp84 = icmp eq ptr %21, null br i1 %cmp84, label %if.then86, label %sw.epilog110 if.then86: ; preds = %sw.bb83 @@ -1017,9 +986,9 @@ if.then86: ; preds = %sw.bb83 br label %err sw.bb92: ; preds = %if.end82 - %verify_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 8 - %25 = load ptr, ptr %verify_init, align 8 - %cmp93 = icmp eq ptr %25, null + %verify_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 8 + %22 = load ptr, ptr %verify_init, align 8 + %cmp93 = icmp eq ptr %22, null br i1 %cmp93, label %if.then95, label %sw.epilog110 if.then95: ; preds = %sw.bb92 @@ -1029,9 +998,9 @@ if.then95: ; preds = %sw.bb92 br label %err sw.bb101: ; preds = %if.end82 - %verify_recover_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 10 - %26 = load ptr, ptr %verify_recover_init, align 8 - %cmp102 = icmp eq ptr %26, null + %verify_recover_init = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 10 + %23 = load ptr, ptr %verify_recover_init, align 8 + %cmp102 = icmp eq ptr %23, null br i1 %cmp102, label %if.then104, label %sw.epilog110 if.then104: ; preds = %sw.bb101 @@ -1047,27 +1016,27 @@ sw.default: ; preds = %if.end82 br label %err sw.epilog110: ; preds = %sw.bb101, %sw.bb92, %sw.bb83 - %.sink = phi ptr [ %24, %sw.bb83 ], [ %25, %sw.bb92 ], [ %26, %sw.bb101 ] + %.sink = phi ptr [ %21, %sw.bb83 ], [ %22, %sw.bb92 ], [ %23, %sw.bb101 ] %call109 = call i32 %.sink(ptr noundef nonnull %call75, ptr noundef nonnull %provkey.2, ptr noundef %params) #4 %cmp111 = icmp slt i32 %call109, 1 br i1 %cmp111, label %if.then113, label %if.then181 if.then113: ; preds = %sw.epilog110 - %freectx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.1104, i64 0, i32 20 - %27 = load ptr, ptr %freectx, align 8 - %28 = load ptr, ptr %algctx, align 8 - call void %27(ptr noundef %28) #4 + %freectx = getelementptr inbounds %struct.evp_signature_st, ptr %signature.193, i64 0, i32 20 + %24 = load ptr, ptr %freectx, align 8 + %25 = load ptr, ptr %algctx, align 8 + call void %24(ptr noundef %25) #4 store ptr null, ptr %algctx, align 8 br label %err -legacy: ; preds = %sw.bb38, %if.end3.i95, %CRYPTO_DOWN_REF.exit.i93, %if.then69, %if.end +legacy: ; preds = %sw.bb38, %if.end, %if.then69 %call119 = call i32 @ERR_pop_to_mark() #4 - %29 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %29) #4 + %26 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %26) #4 store ptr null, ptr %tmp_keymgmt, align 8 %pmeth = getelementptr inbounds %struct.evp_pkey_ctx_st, ptr %ctx, i64 0, i32 12 - %30 = load ptr, ptr %pmeth, align 8 - %cmp120 = icmp eq ptr %30, null + %27 = load ptr, ptr %pmeth, align 8 + %cmp120 = icmp eq ptr %27, null br i1 %cmp120, label %if.then141, label %lor.lhs.false lor.lhs.false: ; preds = %legacy @@ -1078,21 +1047,21 @@ lor.lhs.false: ; preds = %legacy ] land.lhs.true: ; preds = %lor.lhs.false - %sign = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 10 - %31 = load ptr, ptr %sign, align 8 - %cmp125 = icmp eq ptr %31, null + %sign = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 10 + %28 = load ptr, ptr %sign, align 8 + %cmp125 = icmp eq ptr %28, null br i1 %cmp125, label %if.then141, label %sw.bb143 land.lhs.true130: ; preds = %lor.lhs.false - %verify = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 12 - %32 = load ptr, ptr %verify, align 8 - %cmp132 = icmp eq ptr %32, null + %verify = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 12 + %29 = load ptr, ptr %verify, align 8 + %cmp132 = icmp eq ptr %29, null br i1 %cmp132, label %if.then141, label %sw.bb153 land.lhs.true137: ; preds = %lor.lhs.false - %verify_recover = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 14 - %33 = load ptr, ptr %verify_recover, align 8 - %cmp139 = icmp eq ptr %33, null + %verify_recover = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 14 + %30 = load ptr, ptr %verify_recover, align 8 + %cmp139 = icmp eq ptr %30, null br i1 %cmp139, label %if.then141, label %sw.bb163 if.then141: ; preds = %land.lhs.true137, %land.lhs.true130, %land.lhs.true, %legacy @@ -1102,21 +1071,21 @@ if.then141: ; preds = %land.lhs.true137, % br label %return sw.bb143: ; preds = %land.lhs.true - %sign_init145 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 9 - %34 = load ptr, ptr %sign_init145, align 8 - %cmp146 = icmp eq ptr %34, null + %sign_init145 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 9 + %31 = load ptr, ptr %sign_init145, align 8 + %cmp146 = icmp eq ptr %31, null br i1 %cmp146, label %return, label %sw.epilog174 sw.bb153: ; preds = %land.lhs.true130 - %verify_init155 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 11 - %35 = load ptr, ptr %verify_init155, align 8 - %cmp156 = icmp eq ptr %35, null + %verify_init155 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 11 + %32 = load ptr, ptr %verify_init155, align 8 + %cmp156 = icmp eq ptr %32, null br i1 %cmp156, label %return, label %sw.epilog174 sw.bb163: ; preds = %land.lhs.true137 - %verify_recover_init165 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %30, i64 0, i32 13 - %36 = load ptr, ptr %verify_recover_init165, align 8 - %cmp166 = icmp eq ptr %36, null + %verify_recover_init165 = getelementptr inbounds %struct.evp_pkey_method_st, ptr %27, i64 0, i32 13 + %33 = load ptr, ptr %verify_recover_init165, align 8 + %cmp166 = icmp eq ptr %33, null br i1 %cmp166, label %return, label %sw.epilog174 sw.default173: ; preds = %lor.lhs.false @@ -1126,23 +1095,23 @@ sw.default173: ; preds = %lor.lhs.false br label %err sw.epilog174: ; preds = %sw.bb163, %sw.bb153, %sw.bb143 - %.sink120 = phi ptr [ %34, %sw.bb143 ], [ %35, %sw.bb153 ], [ %36, %sw.bb163 ] - %call172 = call i32 %.sink120(ptr noundef nonnull %ctx) #4 + %.sink104 = phi ptr [ %31, %sw.bb143 ], [ %32, %sw.bb153 ], [ %33, %sw.bb163 ] + %call172 = call i32 %.sink104(ptr noundef nonnull %ctx) #4 %cmp175 = icmp slt i32 %call172, 1 br i1 %cmp175, label %err, label %if.then181 if.then181: ; preds = %sw.epilog110, %sw.epilog174 %call182 = call i32 @evp_pkey_ctx_use_cached_data(ptr noundef nonnull %ctx) #4 - %37 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %37) #4 + %34 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %34) #4 br label %return err: ; preds = %sw.epilog174, %sw.default173, %if.then113, %sw.default, %if.then104, %if.then95, %if.then86, %if.then81, %if.then25, %if.then18, %if.then6 %ret.4 = phi i32 [ 0, %sw.default173 ], [ %call172, %sw.epilog174 ], [ 0, %if.then6 ], [ 0, %if.then25 ], [ 0, %if.then81 ], [ 0, %sw.default ], [ -2, %if.then104 ], [ %call109, %if.then113 ], [ -2, %if.then95 ], [ -2, %if.then86 ], [ 0, %if.then18 ] call void @evp_pkey_ctx_free_old_ops(ptr noundef nonnull %ctx) #4 store i32 0, ptr %ctx, align 8 - %38 = load ptr, ptr %tmp_keymgmt, align 8 - call void @EVP_KEYMGMT_free(ptr noundef %38) #4 + %35 = load ptr, ptr %tmp_keymgmt, align 8 + call void @EVP_KEYMGMT_free(ptr noundef %35) #4 br label %return return: ; preds = %sw.bb163, %sw.bb153, %sw.bb143, %err, %if.then181, %if.then141, %if.then diff --git a/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll b/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll index 20f75b77ed0..17c36d939d9 100644 --- a/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll +++ b/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll @@ -1935,9 +1935,9 @@ entry: br i1 %cmp, label %if.then, label %for.cond.preheader for.cond.preheader: ; preds = %entry - %call3121 = tail call i32 @OPENSSL_sk_num(ptr noundef %values) #15 - %cmp4122 = icmp sgt i32 %call3121, 0 - br i1 %cmp4122, label %for.body, label %for.end + %call3163 = tail call i32 @OPENSSL_sk_num(ptr noundef %values) #15 + %cmp4164 = icmp sgt i32 %call3163, 0 + br i1 %cmp4164, label %for.body, label %for.end if.then: ; preds = %entry tail call void @ERR_new() #15 @@ -1946,8 +1946,8 @@ if.then: ; preds = %entry br label %return for.body: ; preds = %for.cond.preheader, %for.inc - %i.0123 = phi i32 [ %inc172, %for.inc ], [ 0, %for.cond.preheader ] - %call6 = call ptr @OPENSSL_sk_value(ptr noundef %values, i32 noundef %i.0123) #15 + %i.0165 = phi i32 [ %inc172, %for.inc ], [ 0, %for.cond.preheader ] + %call6 = call ptr @OPENSSL_sk_value(ptr noundef %values, i32 noundef %i.0165) #15 %name = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 1 %0 = load ptr, ptr %name, align 8 %call7 = call i32 @ossl_v3_name_cmp(ptr noundef %0, ptr noundef nonnull @.str.14) #15 @@ -1979,18 +1979,18 @@ if.else23: ; preds = %if.else18 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 115, ptr noundef nonnull @.str.18, ptr noundef %4) #15 br label %err -if.then32: ; preds = %if.else18, %if.else13 - %afi.0169181195206 = phi i32 [ 2, %if.else18 ], [ 1, %if.else13 ] - %5 = phi ptr [ @v2i_IPAddrBlocks.v6addr_chars, %if.else18 ], [ @v2i_IPAddrBlocks.v4addr_chars, %if.else13 ] - %6 = phi i32 [ 16, %if.else18 ], [ 4, %if.else13 ] +if.then32: ; preds = %if.else13, %if.else18 + %5 = phi i32 [ 16, %if.else18 ], [ 4, %if.else13 ] + %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399121 = phi ptr [ @v2i_IPAddrBlocks.v6addr_chars, %if.else18 ], [ @v2i_IPAddrBlocks.v4addr_chars, %if.else13 ] + %afi.089101119 = phi i32 [ 2, %if.else18 ], [ 1, %if.else13 ] %value = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %7 = load ptr, ptr %value, align 8 - %call33 = call i64 @strtoul(ptr noundef %7, ptr noundef nonnull %t, i32 noundef 0) #15 + %6 = load ptr, ptr %value, align 8 + %call33 = call i64 @strtoul(ptr noundef %6, ptr noundef nonnull %t, i32 noundef 0) #15 %conv = trunc i64 %call33 to i32 store i32 %conv, ptr %safi_, align 4 - %8 = load ptr, ptr %t, align 8 - %call34 = call i64 @strspn(ptr noundef %8, ptr noundef nonnull @.str.19) #16 - %add.ptr = getelementptr inbounds i8, ptr %8, i64 %call34 + %7 = load ptr, ptr %t, align 8 + %call34 = call i64 @strspn(ptr noundef %7, ptr noundef nonnull @.str.19) #16 + %add.ptr = getelementptr inbounds i8, ptr %7, i64 %call34 store ptr %add.ptr, ptr %t, align 8 %cmp35 = icmp ugt i32 %conv, 255 br i1 %cmp35, label %if.then40, label %lor.lhs.false @@ -1998,8 +1998,8 @@ if.then32: ; preds = %if.else18, %if.else lor.lhs.false: ; preds = %if.then32 %incdec.ptr = getelementptr inbounds i8, ptr %add.ptr, i64 1 store ptr %incdec.ptr, ptr %t, align 8 - %9 = load i8, ptr %add.ptr, align 1 - %cmp38.not = icmp eq i8 %9, 58 + %8 = load i8, ptr %add.ptr, align 1 + %cmp38.not = icmp eq i8 %8, 58 br i1 %cmp38.not, label %if.end43, label %if.then40 if.then40: ; preds = %lor.lhs.false, %if.then32 @@ -2007,9 +2007,9 @@ if.then40: ; preds = %lor.lhs.false, %if. call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 990, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 164, ptr noundef null) #15 - %10 = load ptr, ptr %name, align 8 - %11 = load ptr, ptr %value.le, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %10, ptr noundef nonnull @.str.21, ptr noundef %11) #15 + %9 = load ptr, ptr %name, align 8 + %10 = load ptr, ptr %value.le, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %9, ptr noundef nonnull @.str.21, ptr noundef %10) #15 br label %err if.end43: ; preds = %lor.lhs.false @@ -2020,19 +2020,19 @@ if.end43: ; preds = %lor.lhs.false br label %if.end50 if.else47: ; preds = %if.else, %for.body - %afi.0169181195206.ph = phi i32 [ 1, %for.body ], [ 2, %if.else ] - %.ph = phi ptr [ @v2i_IPAddrBlocks.v4addr_chars, %for.body ], [ @v2i_IPAddrBlocks.v6addr_chars, %if.else ] - %.ph209 = phi i32 [ 4, %for.body ], [ 16, %if.else ] + %11 = phi i32 [ 4, %for.body ], [ 16, %if.else ] + %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399113 = phi ptr [ @v2i_IPAddrBlocks.v4addr_chars, %for.body ], [ @v2i_IPAddrBlocks.v6addr_chars, %if.else ] + %afi.089101109 = phi i32 [ 1, %for.body ], [ 2, %if.else ] %value48 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 %12 = load ptr, ptr %value48, align 8 %call49 = call noalias ptr @CRYPTO_strdup(ptr noundef %12, ptr noundef nonnull @.str.13, i32 noundef 997) #15 br label %if.end50 if.end50: ; preds = %if.else47, %if.end43 - %13 = phi i32 [ %6, %if.end43 ], [ %.ph209, %if.else47 ] - %14 = phi ptr [ %5, %if.end43 ], [ %.ph, %if.else47 ] - %safi.0171179197204216 = phi ptr [ %safi_, %if.end43 ], [ null, %if.else47 ] - %afi.0169181195206214 = phi i32 [ %afi.0169181195206, %if.end43 ], [ %afi.0169181195206.ph, %if.else47 ] + %13 = phi i32 [ %5, %if.end43 ], [ %11, %if.else47 ] + %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399112 = phi ptr [ %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399121, %if.end43 ], [ %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399113, %if.else47 ] + %safi.091100110 = phi ptr [ %safi_, %if.end43 ], [ null, %if.else47 ] + %afi.089101108 = phi i32 [ %afi.089101119, %if.end43 ], [ %afi.089101109, %if.else47 ] %s.1 = phi ptr [ %call46, %if.end43 ], [ %call49, %if.else47 ] %cmp51 = icmp eq ptr %s.1, null br i1 %cmp51, label %err, label %if.end54 @@ -2043,39 +2043,39 @@ if.end54: ; preds = %if.end50 br i1 %cmp56, label %if.then58, label %if.end65 if.then58: ; preds = %if.end54 - %call.i = call fastcc ptr @make_IPAddressFamily(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216) + %call.i = call fastcc ptr @make_IPAddressFamily(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110) %cmp.i = icmp eq ptr %call.i, null br i1 %cmp.i, label %if.then61, label %lor.lhs.false.i lor.lhs.false.i: ; preds = %if.then58 %ipAddressChoice.i = getelementptr inbounds %struct.IPAddressFamily_st, ptr %call.i, i64 0, i32 1 - %15 = load ptr, ptr %ipAddressChoice.i, align 8 - %cmp1.i = icmp eq ptr %15, null + %14 = load ptr, ptr %ipAddressChoice.i, align 8 + %cmp1.i = icmp eq ptr %14, null br i1 %cmp1.i, label %if.then61, label %lor.lhs.false2.i lor.lhs.false2.i: ; preds = %lor.lhs.false.i - %16 = load i32, ptr %15, align 8 - %u17.phi.trans.insert.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %15, i64 0, i32 1 + %15 = load i32, ptr %14, align 8 + %u17.phi.trans.insert.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %14, i64 0, i32 1 %.pre.i = load ptr, ptr %u17.phi.trans.insert.i, align 8 - %17 = icmp eq ptr %.pre.i, null - switch i32 %16, label %if.end15.i [ + %16 = icmp eq ptr %.pre.i, null + switch i32 %15, label %if.end15.i [ i32 1, label %land.lhs.true.i i32 0, label %land.lhs.true10.i ] land.lhs.true.i: ; preds = %lor.lhs.false2.i - br i1 %17, label %land.lhs.true19.i, label %if.then61 + br i1 %16, label %land.lhs.true19.i, label %if.then61 land.lhs.true10.i: ; preds = %lor.lhs.false2.i - br i1 %17, label %land.lhs.true19.i, label %for.inc + br i1 %16, label %land.lhs.true19.i, label %for.inc if.end15.i: ; preds = %lor.lhs.false2.i - br i1 %17, label %land.lhs.true19.i, label %if.end25.i + br i1 %16, label %land.lhs.true19.i, label %if.end25.i land.lhs.true19.i: ; preds = %if.end15.i, %land.lhs.true10.i, %land.lhs.true.i %call20.i = call ptr @ASN1_NULL_new() #15 - %18 = load ptr, ptr %ipAddressChoice.i, align 8 - %u22.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %18, i64 0, i32 1 + %17 = load ptr, ptr %ipAddressChoice.i, align 8 + %u22.i = getelementptr inbounds %struct.IPAddressChoice_st, ptr %17, i64 0, i32 1 store ptr %call20.i, ptr %u22.i, align 8 %cmp23.i = icmp eq ptr %call20.i, null br i1 %cmp23.i, label %if.then61, label %land.lhs.true19.if.end25_crit_edge.i @@ -2085,22 +2085,22 @@ land.lhs.true19.if.end25_crit_edge.i: ; preds = %land.lhs.true19.i br label %if.end25.i if.end25.i: ; preds = %land.lhs.true19.if.end25_crit_edge.i, %if.end15.i - %19 = phi ptr [ %.pre10.i, %land.lhs.true19.if.end25_crit_edge.i ], [ %15, %if.end15.i ] - store i32 0, ptr %19, align 8 + %18 = phi ptr [ %.pre10.i, %land.lhs.true19.if.end25_crit_edge.i ], [ %14, %if.end15.i ] + store i32 0, ptr %18, align 8 br label %for.inc if.then61: ; preds = %land.lhs.true.i, %lor.lhs.false.i, %if.then58, %land.lhs.true19.i call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1008, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 165, ptr noundef null) #15 - %20 = load ptr, ptr %name, align 8 + %19 = load ptr, ptr %name, align 8 %value63 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %21 = load ptr, ptr %value63, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %20, ptr noundef nonnull @.str.21, ptr noundef %21) #15 + %20 = load ptr, ptr %value63, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %19, ptr noundef nonnull @.str.21, ptr noundef %20) #15 br label %err if.end65: ; preds = %if.end54 - %call66 = call i64 @strspn(ptr noundef nonnull %s.1, ptr noundef nonnull %14) #16 + %call66 = call i64 @strspn(ptr noundef nonnull %s.1, ptr noundef nonnull %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399112) #16 %sext = shl i64 %call66, 32 %conv68 = ashr exact i64 %sext, 32 %add.ptr69 = getelementptr inbounds i8, ptr %s.1, i64 %conv68 @@ -2111,7 +2111,7 @@ if.end65: ; preds = %if.end54 %sext77 = shl i64 %add, 32 %idxprom = ashr exact i64 %sext77, 32 %arrayidx = getelementptr inbounds i8, ptr %s.1, i64 %idxprom - %22 = load i8, ptr %arrayidx, align 1 + %21 = load i8, ptr %arrayidx, align 1 store i8 0, ptr %add.ptr69, align 1 %call75 = call i32 @ossl_a2i_ipadd(ptr noundef nonnull %min, ptr noundef nonnull %s.1) #15 %cmp76.not = icmp eq i32 %call75, %13 @@ -2121,14 +2121,14 @@ if.then78: ; preds = %if.end65 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1023, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 166, ptr noundef null) #15 - %23 = load ptr, ptr %name, align 8 + %22 = load ptr, ptr %name, align 8 %value80 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %24 = load ptr, ptr %value80, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %23, ptr noundef nonnull @.str.21, ptr noundef %24) #15 + %23 = load ptr, ptr %value80, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %22, ptr noundef nonnull @.str.21, ptr noundef %23) #15 br label %err if.end81: ; preds = %if.end65 - switch i8 %22, label %sw.default [ + switch i8 %21, label %sw.default [ i8 47, label %sw.bb82 i8 45, label %sw.bb110 i8 0, label %sw.bb162 @@ -2139,30 +2139,30 @@ sw.bb82: ; preds = %if.end81 %add.ptr84 = getelementptr inbounds i8, ptr %s.1, i64 %idx.ext83 %call85 = call i64 @strtoul(ptr noundef %add.ptr84, ptr noundef nonnull %t, i32 noundef 10) #15 %conv86 = trunc i64 %call85 to i32 - %25 = load ptr, ptr %t, align 8 - %cmp89 = icmp eq ptr %25, %add.ptr84 + %24 = load ptr, ptr %t, align 8 + %cmp89 = icmp eq ptr %24, %add.ptr84 br i1 %cmp89, label %if.then101, label %lor.lhs.false91 lor.lhs.false91: ; preds = %sw.bb82 - %26 = load i8, ptr %25, align 1 - %cmp93.not = icmp ne i8 %26, 0 + %25 = load i8, ptr %24, align 1 + %cmp93.not = icmp ne i8 %25, 0 %mul = shl nuw nsw i32 %13, 3 %or.cond = icmp ult i32 %mul, %conv86 - %or.cond80 = select i1 %cmp93.not, i1 true, i1 %or.cond - br i1 %or.cond80, label %if.then101, label %if.end104 + %or.cond78 = select i1 %cmp93.not, i1 true, i1 %or.cond + br i1 %or.cond78, label %if.then101, label %if.end104 if.then101: ; preds = %lor.lhs.false91, %sw.bb82 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1035, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %27 = load ptr, ptr %name, align 8 + %26 = load ptr, ptr %name, align 8 %value103 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %28 = load ptr, ptr %value103, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %27, ptr noundef nonnull @.str.21, ptr noundef %28) #15 + %27 = load ptr, ptr %value103, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %26, ptr noundef nonnull @.str.21, ptr noundef %27) #15 br label %err if.end104: ; preds = %lor.lhs.false91 - %call106 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216, ptr noundef nonnull %min, i32 noundef %conv86), !range !6 + %call106 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110, ptr noundef nonnull %min, i32 noundef %conv86), !range !6 %tobool107.not = icmp eq i32 %call106, 0 br i1 %tobool107.not, label %if.then108, label %for.inc @@ -2176,31 +2176,31 @@ sw.bb110: ; preds = %if.end81 %conv111 = sext i32 %inc to i64 %add.ptr113 = getelementptr inbounds i8, ptr %s.1, i64 %conv111 %call114 = call i64 @strspn(ptr noundef %add.ptr113, ptr noundef nonnull @.str.19) #16 - %29 = trunc i64 %call114 to i32 - %conv116 = add i32 %inc, %29 + %28 = trunc i64 %call114 to i32 + %conv116 = add i32 %inc, %28 %conv117 = sext i32 %conv116 to i64 %add.ptr119 = getelementptr inbounds i8, ptr %s.1, i64 %conv117 - %call120 = call i64 @strspn(ptr noundef %add.ptr119, ptr noundef nonnull %14) #16 - %30 = trunc i64 %call120 to i32 - %cmp123 = icmp eq i32 %30, 0 + %call120 = call i64 @strspn(ptr noundef %add.ptr119, ptr noundef nonnull %v2i_IPAddrBlocks.v4addr_chars.v2i_IPAddrBlocks.v6addr_chars9399112) #16 + %29 = trunc i64 %call120 to i32 + %cmp123 = icmp eq i32 %29, 0 br i1 %cmp123, label %if.then131, label %lor.lhs.false125 lor.lhs.false125: ; preds = %sw.bb110 - %conv122 = add i32 %conv116, %30 + %conv122 = add i32 %conv116, %29 %idxprom126 = sext i32 %conv122 to i64 %arrayidx127 = getelementptr inbounds i8, ptr %s.1, i64 %idxprom126 - %31 = load i8, ptr %arrayidx127, align 1 - %cmp129.not = icmp eq i8 %31, 0 + %30 = load i8, ptr %arrayidx127, align 1 + %cmp129.not = icmp eq i8 %30, 0 br i1 %cmp129.not, label %if.end134, label %if.then131 if.then131: ; preds = %lor.lhs.false125, %sw.bb110 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1048, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %32 = load ptr, ptr %name, align 8 + %31 = load ptr, ptr %name, align 8 %value133 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %33 = load ptr, ptr %value133, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %32, ptr noundef nonnull @.str.21, ptr noundef %33) #15 + %32 = load ptr, ptr %value133, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %31, ptr noundef nonnull @.str.21, ptr noundef %32) #15 br label %err if.end134: ; preds = %lor.lhs.false125 @@ -2212,10 +2212,10 @@ if.then141: ; preds = %if.end134 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1053, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 166, ptr noundef null) #15 - %34 = load ptr, ptr %name, align 8 + %33 = load ptr, ptr %name, align 8 %value143 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %35 = load ptr, ptr %value143, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %34, ptr noundef nonnull @.str.21, ptr noundef %35) #15 + %34 = load ptr, ptr %value143, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %33, ptr noundef nonnull @.str.21, ptr noundef %34) #15 br label %err if.end144: ; preds = %if.end134 @@ -2228,14 +2228,14 @@ if.then152: ; preds = %if.end144 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1058, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %36 = load ptr, ptr %name, align 8 + %35 = load ptr, ptr %name, align 8 %value154 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %37 = load ptr, ptr %value154, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %36, ptr noundef nonnull @.str.21, ptr noundef %37) #15 + %36 = load ptr, ptr %value154, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %35, ptr noundef nonnull @.str.21, ptr noundef %36) #15 br label %err if.end155: ; preds = %if.end144 - %call158 = call i32 @X509v3_addr_add_range(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216, ptr noundef nonnull %min, ptr noundef nonnull %max), !range !6 + %call158 = call i32 @X509v3_addr_add_range(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110, ptr noundef nonnull %min, ptr noundef nonnull %max), !range !6 %tobool159.not = icmp eq i32 %call158, 0 br i1 %tobool159.not, label %if.then160, label %for.inc @@ -2247,7 +2247,7 @@ if.then160: ; preds = %if.end155 sw.bb162: ; preds = %if.end81 %mul164 = shl nuw nsw i32 %13, 3 - %call165 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.0169181195206214, ptr noundef %safi.0171179197204216, ptr noundef nonnull %min, i32 noundef %mul164), !range !6 + %call165 = call i32 @X509v3_addr_add_prefix(ptr noundef nonnull %call1, i32 noundef %afi.089101108, ptr noundef %safi.091100110, ptr noundef nonnull %min, i32 noundef %mul164), !range !6 %tobool166.not = icmp eq i32 %call165, 0 br i1 %tobool166.not, label %if.then167, label %for.inc @@ -2261,16 +2261,16 @@ sw.default: ; preds = %if.end81 call void @ERR_new() #15 call void @ERR_set_debug(ptr noundef nonnull @.str.13, i32 noundef 1074, ptr noundef nonnull @__func__.v2i_IPAddrBlocks) #15 call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 34, i32 noundef 116, ptr noundef null) #15 - %38 = load ptr, ptr %name, align 8 + %37 = load ptr, ptr %name, align 8 %value170 = getelementptr inbounds %struct.CONF_VALUE, ptr %call6, i64 0, i32 2 - %39 = load ptr, ptr %value170, align 8 - call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %38, ptr noundef nonnull @.str.21, ptr noundef %39) #15 + %38 = load ptr, ptr %value170, align 8 + call void (i32, ...) @ERR_add_error_data(i32 noundef 4, ptr noundef nonnull @.str.20, ptr noundef %37, ptr noundef nonnull @.str.21, ptr noundef %38) #15 br label %err for.inc: ; preds = %if.end104, %if.end155, %sw.bb162, %land.lhs.true10.i, %if.end25.i %.sink = phi i32 [ 1012, %if.end25.i ], [ 1012, %land.lhs.true10.i ], [ 1079, %sw.bb162 ], [ 1079, %if.end155 ], [ 1079, %if.end104 ] call void @CRYPTO_free(ptr noundef nonnull %s.1, ptr noundef nonnull @.str.13, i32 noundef %.sink) #15 - %inc172 = add nuw nsw i32 %i.0123, 1 + %inc172 = add nuw nsw i32 %i.0165, 1 %call3 = call i32 @OPENSSL_sk_num(ptr noundef %values) #15 %cmp4 = icmp slt i32 %inc172, %call3 br i1 %cmp4, label %for.body, label %for.end, !llvm.loop !20 diff --git a/bench/openssl/optimized/libcrypto-shlib-v3_utl.ll b/bench/openssl/optimized/libcrypto-shlib-v3_utl.ll index 1d6cf5ba12e..7aacd367e1b 100644 --- a/bench/openssl/optimized/libcrypto-shlib-v3_utl.ll +++ b/bench/openssl/optimized/libcrypto-shlib-v3_utl.ll @@ -44,7 +44,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.22 = private unnamed_addr constant [14 x i8] c"%d.%d.%d.%d%n\00", align 1 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %cmp.not = icmp eq ptr %value, null br i1 %cmp.not, label %entry.split, label %cond.true.split @@ -64,7 +64,7 @@ cond.end: ; preds = %entry.split, %cond. } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @x509v3_add_len_value(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) unnamed_addr #0 { +define internal fastcc noundef i32 @x509v3_add_len_value(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) unnamed_addr #0 { entry: %0 = load ptr, ptr %extlist, align 8 %cmp = icmp eq ptr %0, null @@ -160,7 +160,7 @@ return: ; preds = %if.end29, %if.end41 declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_uchar(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_uchar(ptr noundef %name, ptr noundef %value, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %cmp.not = icmp eq ptr %value, null br i1 %cmp.not, label %entry.split, label %cond.true.split @@ -180,7 +180,7 @@ cond.end: ; preds = %entry.split, %cond. } ; Function Attrs: nounwind uwtable -define i32 @x509v3_add_len_value_uchar(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @x509v3_add_len_value_uchar(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %call = tail call fastcc i32 @x509v3_add_len_value(ptr noundef %name, ptr noundef %value, i64 noundef %vallen, ptr noundef %extlist), !range !4 ret i32 %call @@ -211,7 +211,7 @@ return: ; preds = %entry, %if.end declare void @CRYPTO_free(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_bool(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_bool(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %tobool.not = icmp eq i32 %asn1_bool, 0 br i1 %tobool.not, label %if.end, label %if.then @@ -230,7 +230,7 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_bool_nf(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_bool_nf(ptr noundef %name, i32 noundef %asn1_bool, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %tobool.not = icmp eq i32 %asn1_bool, 0 br i1 %tobool.not, label %return, label %if.then @@ -498,7 +498,7 @@ declare i32 @BN_is_zero(ptr noundef) local_unnamed_addr #2 declare ptr @BN_to_ASN1_INTEGER(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define i32 @X509V3_add_value_int(ptr noundef %name, ptr noundef %aint, ptr nocapture noundef %extlist) local_unnamed_addr #0 { +define noundef i32 @X509V3_add_value_int(ptr noundef %name, ptr noundef %aint, ptr nocapture noundef %extlist) local_unnamed_addr #0 { entry: %tobool.not = icmp eq ptr %aint, null br i1 %tobool.not, label %return, label %if.end.i @@ -535,7 +535,7 @@ return: ; preds = %i2s_ASN1_INTEGER.ex } ; Function Attrs: nounwind uwtable -define i32 @X509V3_get_value_bool(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %asn1_bool) local_unnamed_addr #0 { +define noundef i32 @X509V3_get_value_bool(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %asn1_bool) local_unnamed_addr #0 { entry: %value1 = getelementptr inbounds %struct.CONF_VALUE, ptr %value, i64 0, i32 2 %0 = load ptr, ptr %value1, align 8 @@ -631,7 +631,7 @@ declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_ declare void @ERR_add_error_data(i32 noundef, ...) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define i32 @X509V3_get_value_int(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %aint) local_unnamed_addr #0 { +define noundef i32 @X509V3_get_value_int(ptr nocapture noundef readonly %value, ptr nocapture noundef writeonly %aint) local_unnamed_addr #0 { entry: %value1 = getelementptr inbounds %struct.CONF_VALUE, ptr %value, i64 0, i32 2 %0 = load ptr, ptr %value1, align 8 @@ -677,10 +677,8 @@ for.cond: ; preds = %entry, %for.inc ] for.body: ; preds = %for.cond - switch i32 %state.0, label %for.inc [ - i32 1, label %sw.bb - i32 2, label %sw.bb30 - ] + %switch = icmp eq i32 %state.0, 1 + br i1 %switch, label %sw.bb, label %sw.bb30 sw.bb: ; preds = %for.body switch i8 %0, label %for.inc [ @@ -868,10 +866,10 @@ if.end42: ; preds = %X509V3_add_value.ex %add.ptr43 = getelementptr inbounds i8, ptr %p.0, i64 1 br label %for.inc -for.inc: ; preds = %sw.bb, %for.body, %if.end23, %if.end14, %if.end42, %sw.bb30 - %q.1 = phi ptr [ %q.0, %for.body ], [ %add.ptr43, %if.end42 ], [ %q.0, %sw.bb30 ], [ %add.ptr, %if.end14 ], [ %add.ptr20, %if.end23 ], [ %q.0, %sw.bb ] - %ntmp.1 = phi ptr [ %ntmp.0, %for.body ], [ null, %if.end42 ], [ %ntmp.0, %sw.bb30 ], [ %p.018.i, %if.end14 ], [ %p.018.i33, %if.end23 ], [ %ntmp.0, %sw.bb ] - %state.1 = phi i32 [ %state.0, %for.body ], [ 1, %if.end42 ], [ 2, %sw.bb30 ], [ 2, %if.end14 ], [ 1, %if.end23 ], [ 1, %sw.bb ] +for.inc: ; preds = %sw.bb, %if.end23, %if.end14, %if.end42, %sw.bb30 + %q.1 = phi ptr [ %add.ptr43, %if.end42 ], [ %q.0, %sw.bb30 ], [ %add.ptr, %if.end14 ], [ %add.ptr20, %if.end23 ], [ %q.0, %sw.bb ] + %ntmp.1 = phi ptr [ null, %if.end42 ], [ %ntmp.0, %sw.bb30 ], [ %p.018.i, %if.end14 ], [ %p.018.i33, %if.end23 ], [ %ntmp.0, %sw.bb ] + %state.1 = phi i32 [ 1, %if.end42 ], [ 2, %sw.bb30 ], [ 2, %if.end14 ], [ 1, %if.end23 ], [ 1, %sw.bb ] %incdec.ptr = getelementptr inbounds i8, ptr %p.0, i64 1 br label %for.cond, !llvm.loop !8 @@ -1178,7 +1176,7 @@ declare ptr @OPENSSL_sk_value(ptr noundef, i32 noundef) local_unnamed_addr #2 declare i32 @OBJ_obj2nid(ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @append_ia5(ptr nocapture noundef %sk, ptr nocapture noundef readonly %email) unnamed_addr #0 { +define internal fastcc noundef i32 @append_ia5(ptr nocapture noundef %sk, ptr nocapture noundef readonly %email) unnamed_addr #0 { entry: %type = getelementptr inbounds %struct.asn1_string_st, ptr %email, i64 0, i32 1 %0 = load i32, ptr %type, align 4 @@ -1737,7 +1735,7 @@ return: ; preds = %if.end, %entry, %if } ; Function Attrs: nounwind uwtable -define i32 @ossl_a2i_ipadd(ptr nocapture noundef writeonly %ipout, ptr noundef %ipasc) local_unnamed_addr #0 { +define noundef i32 @ossl_a2i_ipadd(ptr nocapture noundef writeonly %ipout, ptr noundef %ipasc) local_unnamed_addr #0 { entry: %v6stat.i = alloca %struct.IPV6_STAT, align 4 %call = tail call ptr @strchr(ptr noundef nonnull dereferenceable(1) %ipasc, i32 noundef 58) #12 @@ -1996,7 +1994,7 @@ return: ; preds = %if.end18, %if.end, declare ptr @strchr(ptr noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal fastcc i32 @ipv4_from_asc(ptr nocapture noundef writeonly %v4, ptr nocapture noundef readonly %in) unnamed_addr #0 { +define internal fastcc noundef i32 @ipv4_from_asc(ptr nocapture noundef writeonly %v4, ptr nocapture noundef readonly %in) unnamed_addr #0 { entry: %a0 = alloca i32, align 4 %a1 = alloca i32, align 4 @@ -2072,7 +2070,7 @@ return: ; preds = %lor.lhs.false19, %i } ; Function Attrs: nounwind uwtable -define i32 @X509V3_NAME_from_section(ptr noundef %nm, ptr noundef %dn_sk, i64 noundef %chtype) local_unnamed_addr #0 { +define noundef i32 @X509V3_NAME_from_section(ptr noundef %nm, ptr noundef %dn_sk, i64 noundef %chtype) local_unnamed_addr #0 { entry: %tobool.not = icmp eq ptr %nm, null br i1 %tobool.not, label %return, label %for.cond.preheader @@ -2267,7 +2265,7 @@ return: ; preds = %if.then10.i, %while } ; Function Attrs: nofree norecurse nosync nounwind memory(read, inaccessiblemem: none) uwtable -define internal i32 @equal_nocase(ptr nocapture noundef readonly %pattern, i64 noundef %pattern_len, ptr nocapture noundef readonly %subject, i64 noundef %subject_len, i32 noundef %flags) #6 { +define internal noundef i32 @equal_nocase(ptr nocapture noundef readonly %pattern, i64 noundef %pattern_len, ptr nocapture noundef readonly %subject, i64 noundef %subject_len, i32 noundef %flags) #6 { entry: %and.i = and i32 %flags, 32768 %cmp.i = icmp eq i32 %and.i, 0 @@ -2369,7 +2367,7 @@ return: ; preds = %while.body, %if.the } ; Function Attrs: nounwind uwtable -define internal i32 @equal_wildcard(ptr noundef %pattern, i64 noundef %pattern_len, ptr noundef %subject, i64 noundef %subject_len, i32 noundef %flags) #0 { +define internal noundef i32 @equal_wildcard(ptr noundef %pattern, i64 noundef %pattern_len, ptr noundef %subject, i64 noundef %subject_len, i32 noundef %flags) #0 { entry: %cmp = icmp ugt i64 %subject_len, 1 br i1 %cmp, label %land.lhs.true, label %if.then @@ -2942,7 +2940,7 @@ declare noundef i32 @__isoc99_sscanf(ptr nocapture noundef readonly, ptr nocaptu declare i32 @CONF_parse_list(ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: nounwind uwtable -define internal i32 @ipv6_cb(ptr nocapture noundef readonly %elem, i32 noundef %len, ptr nocapture noundef %usr) #0 { +define internal noundef i32 @ipv6_cb(ptr nocapture noundef readonly %elem, i32 noundef %len, ptr nocapture noundef %usr) #0 { entry: %total = getelementptr inbounds %struct.IPV6_STAT, ptr %usr, i64 0, i32 1 %0 = load i32, ptr %total, align 4 diff --git a/bench/openssl/optimized/libdefault-lib-ecx_kmgmt.ll b/bench/openssl/optimized/libdefault-lib-ecx_kmgmt.ll index 3eca4a04db3..73292b51a50 100644 --- a/bench/openssl/optimized/libdefault-lib-ecx_kmgmt.ll +++ b/bench/openssl/optimized/libdefault-lib-ecx_kmgmt.ll @@ -1132,7 +1132,7 @@ if.then30: ; preds = %if.end26 land.rhs32: ; preds = %if.end26.thread, %if.then30 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %pub.i) - switch i32 %type, label %ecx_key_pairwise_check.exit [ + switch i32 %type, label %default.unreachable.i [ i32 0, label %sw.bb.i i32 1, label %sw.bb1.i i32 2, label %sw.bb4.i @@ -1171,6 +1171,9 @@ sw.bb7.i: ; preds = %land.rhs32 %tobool13.not.i = icmp eq i32 %call12.i, 0 br i1 %tobool13.not.i, label %ecx_key_pairwise_check.exit, label %sw.epilog.i +default.unreachable.i: ; preds = %land.rhs32 + unreachable + sw.epilog.i: ; preds = %sw.bb7.i, %sw.bb4.i, %sw.bb1.i, %sw.bb.i %pubkey.i = getelementptr inbounds %struct.ecx_key_st, ptr %keydata, i64 0, i32 3 %11 = load i64, ptr %keylen1, align 8 @@ -1179,8 +1182,8 @@ sw.epilog.i: ; preds = %sw.bb7.i, %sw.bb4.i %conv.i = zext i1 %cmp.i to i32 br label %ecx_key_pairwise_check.exit -ecx_key_pairwise_check.exit: ; preds = %land.rhs32, %sw.bb4.i, %sw.bb7.i, %sw.epilog.i - %retval.0.i = phi i32 [ %conv.i, %sw.epilog.i ], [ 0, %sw.bb4.i ], [ 0, %sw.bb7.i ], [ 0, %land.rhs32 ] +ecx_key_pairwise_check.exit: ; preds = %sw.bb4.i, %sw.bb7.i, %sw.epilog.i + %retval.0.i = phi i32 [ %conv.i, %sw.epilog.i ], [ 0, %sw.bb4.i ], [ 0, %sw.bb7.i ] call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %pub.i) br label %return diff --git a/bench/openssl/optimized/libssl-lib-quic_txp.ll b/bench/openssl/optimized/libssl-lib-quic_txp.ll index 443b1bc73d2..0930437f2a3 100644 --- a/bench/openssl/optimized/libssl-lib-quic_txp.ll +++ b/bench/openssl/optimized/libssl-lib-quic_txp.ll @@ -643,12 +643,12 @@ entry: define noundef i32 @ossl_quic_tx_packetiser_generate(ptr noundef %txp, ptr nocapture noundef %status) local_unnamed_addr #0 { entry: %chunks.i.i = alloca [2 x %struct.chunk_info], align 16 - %chunk.i.i218 = alloca %struct.quic_txpim_chunk_st, align 8 + %chunk.i.i217 = alloca %struct.quic_txpim_chunk_st, align 8 %hdr_len_implicit.i.i = alloca i64, align 8 %payload_len_implicit.i.i = alloca i64, align 8 %hdr_len_explicit.i.i = alloca i64, align 8 %payload_len_explicit.i.i = alloca i64, align 8 - %it.i219 = alloca %struct.quic_stream_iter_st, align 8 + %it.i218 = alloca %struct.quic_stream_iter_st, align 8 %f.i = alloca %struct.ossl_quic_frame_stop_sending_st, align 16 %f37.i = alloca %struct.ossl_quic_frame_reset_stream_st, align 8 %txpkt.i = alloca %struct.ossl_qtx_pkt_st, align 8 @@ -740,38 +740,38 @@ txp_determine_archetype.exit: ; preds = %for.body.i, %for.en %start.i.i = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i, i64 0, i32 1 %end.i.i = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i, i64 0, i32 2 %has_fin.i.i = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i, i64 0, i32 3 - %stream2.i = getelementptr inbounds %struct.quic_stream_iter_st, ptr %it.i219, i64 0, i32 2 + %stream2.i = getelementptr inbounds %struct.quic_stream_iter_st, ptr %it.i218, i64 0, i32 2 %app_error_code57.i = getelementptr inbounds %struct.ossl_quic_frame_reset_stream_st, ptr %f37.i, i64 0, i32 1 %final_size.i = getelementptr inbounds %struct.ossl_quic_frame_reset_stream_st, ptr %f37.i, i64 0, i32 2 %valid.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 0, i32 4 - %start.i.i227 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i218, i64 0, i32 1 - %end.i.i228 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i218, i64 0, i32 2 - %has_fin.i.i229 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i218, i64 0, i32 3 + %start.i.i226 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i217, i64 0, i32 1 + %end.i.i227 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i217, i64 0, i32 2 + %has_fin.i.i228 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i217, i64 0, i32 3 %now.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_args_st, ptr %txp, i64 0, i32 15 %now_arg.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_args_st, ptr %txp, i64 0, i32 16 - %hwm13346 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 0, i32 5, i32 2 + %hwm13345 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 0, i32 5, i32 2 br label %for.body6 for.body6: ; preds = %txp_determine_archetype.exit, %for.inc44 - %indvars.iv670 = phi i64 [ 0, %txp_determine_archetype.exit ], [ %indvars.iv.next671, %for.inc44 ] + %indvars.iv671 = phi i64 [ 0, %txp_determine_archetype.exit ], [ %indvars.iv.next672, %for.inc44 ] %need_padding.0545 = phi i32 [ 0, %txp_determine_archetype.exit ], [ %need_padding.2, %for.inc44 ] - %conn_close_enc_level.0544 = phi i32 [ 4, %txp_determine_archetype.exit ], [ %conn_close_enc_level.2355, %for.inc44 ] - %cmp7.not = icmp eq i64 %indvars.iv670, 0 + %conn_close_enc_level.0544 = phi i32 [ 4, %txp_determine_archetype.exit ], [ %conn_close_enc_level.2354, %for.inc44 ] + %cmp7.not = icmp eq i64 %indvars.iv671, 0 br i1 %cmp7.not, label %cond.end.thread, label %cond.end cond.end.thread: ; preds = %for.body6 - store i64 0, ptr %hwm13346, align 16 + store i64 0, ptr %hwm13345, align 16 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i) br label %ossl_quic_enc_level_to_pn_space.exit.i cond.end: ; preds = %for.body6 - %8 = add nsw i64 %indvars.iv670, -1 + %8 = add nsw i64 %indvars.iv671, -1 %hwm = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %8, i32 5, i32 2 %9 = load i64, ptr %hwm, align 16 - %hwm13 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 2 + %hwm13 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 2 store i64 %9, ptr %hwm13, align 16 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i) - %10 = trunc i64 %indvars.iv670 to i32 + %10 = trunc i64 %indvars.iv671 to i32 switch i32 %10, label %cond.end.unreachabledefault [ i32 3, label %sw.bb2.i.i i32 1, label %ossl_quic_enc_level_to_pn_space.exit.i @@ -790,18 +790,18 @@ sw.default.i.i: ; preds = %cond.end ossl_quic_enc_level_to_pn_space.exit.i: ; preds = %cond.end, %cond.end.thread, %sw.default.i.i, %sw.bb2.i.i %.pre-phi = phi i32 [ %10, %cond.end ], [ 0, %cond.end.thread ], [ 0, %sw.default.i.i ], [ %10, %sw.bb2.i.i ] - %hwm13350 = phi ptr [ %hwm13, %cond.end ], [ %hwm13346, %cond.end.thread ], [ %hwm13, %sw.default.i.i ], [ %hwm13, %sw.bb2.i.i ] - %idxprom10348 = phi i64 [ 1, %cond.end ], [ 0, %cond.end.thread ], [ %indvars.iv670, %sw.default.i.i ], [ %indvars.iv670, %sw.bb2.i.i ] - %cond347 = phi i64 [ %9, %cond.end ], [ 0, %cond.end.thread ], [ %9, %sw.default.i.i ], [ %9, %sw.bb2.i.i ] + %hwm13349 = phi ptr [ %hwm13, %cond.end ], [ %hwm13345, %cond.end.thread ], [ %hwm13, %sw.default.i.i ], [ %hwm13, %sw.bb2.i.i ] + %idxprom10347 = phi i64 [ 1, %cond.end ], [ 0, %cond.end.thread ], [ %indvars.iv671, %sw.default.i.i ], [ %indvars.iv671, %sw.bb2.i.i ] + %cond346 = phi i64 [ %9, %cond.end ], [ 0, %cond.end.thread ], [ %9, %sw.default.i.i ], [ %9, %sw.bb2.i.i ] %retval.0.i.i = phi i32 [ %10, %cond.end ], [ 0, %cond.end.thread ], [ 2, %sw.default.i.i ], [ 2, %sw.bb2.i.i ] - %arrayidx11349 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670 + %arrayidx11348 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671 %11 = load ptr, ptr %qtx, align 8 %call1.i = call i32 @ossl_qtx_is_enc_level_provisioned(ptr noundef %11, i32 noundef %.pre-phi) #10 %tobool.not.i = icmp eq i32 %call1.i, 0 br i1 %tobool.not.i, label %txp_should_try_staging.exit, label %if.end5.i if.end5.i: ; preds = %ossl_quic_enc_level_to_pn_space.exit.i - %arrayidx3.i.i = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom10348, i64 %idxprom2.i.i + %arrayidx3.i.i = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom10347, i64 %idxprom2.i.i %12 = load i32, ptr %arrayidx3.i.i, align 4 %.fr108.i = freeze i32 %12 %13 = and i32 %.fr108.i, 65536 @@ -812,7 +812,7 @@ if.end5.i: ; preds = %ossl_quic_enc_level if.end8.i: ; preds = %if.end5.i %cmp11.not.i = icmp eq i32 %conn_close_enc_level.0544, 3 %14 = call i32 @llvm.umin.i32(i32 %conn_close_enc_level.0544, i32 %.pre-phi) - %spec.select402 = select i1 %cmp11.not.i, i32 3, i32 %14 + %spec.select401 = select i1 %cmp11.not.i, i32 3, i32 %14 %15 = and i32 %.fr108.i, 8192 %tobool17.not.i = icmp eq i32 %15, 0 br i1 %tobool17.not.i, label %if.end31.i, label %if.then18.i @@ -960,13 +960,13 @@ land.lhs.true134.i: ; preds = %if.end129.i %bf.load135.i = load i16, ptr %want_ack.i, align 8 %32 = and i16 %bf.load135.i, 1024 %tobool139.not.i = icmp ne i16 %32, 0 - %33 = zext nneg i32 %spec.select402 to i64 - %cmp141.i = icmp eq i64 %indvars.iv670, %33 - %or.cond403 = select i1 %tobool139.not.i, i1 %cmp141.i, i1 false - br i1 %or.cond403, label %if.end.thread, label %if.end144.i + %33 = zext nneg i32 %spec.select401 to i64 + %cmp141.i = icmp eq i64 %indvars.iv671, %33 + %or.cond402 = select i1 %tobool139.not.i, i1 %cmp141.i, i1 false + br i1 %or.cond402, label %if.end.thread, label %if.end144.i if.end144.i: ; preds = %land.lhs.true134.i, %if.end129.i - %cmp145.not.i = icmp eq i64 %indvars.iv670, 2 + %cmp145.not.i = icmp eq i64 %indvars.iv671, 2 br i1 %cmp145.not.i, label %if.end187.i, label %if.then147.i if.then147.i: ; preds = %if.end144.i @@ -1197,7 +1197,7 @@ if.then198.i: ; preds = %land.lhs.true192.i br i1 %cmp200.not.i, label %txp_should_try_staging.exit, label %if.end txp_should_try_staging.exit: ; preds = %if.end187.i, %land.lhs.true192.i, %if.then198.i, %ossl_quic_enc_level_to_pn_space.exit.i, %if.end5.i - %conn_close_enc_level.2 = phi i32 [ %conn_close_enc_level.0544, %ossl_quic_enc_level_to_pn_space.exit.i ], [ %conn_close_enc_level.0544, %if.end5.i ], [ %spec.select402, %if.then198.i ], [ %spec.select402, %land.lhs.true192.i ], [ %spec.select402, %if.end187.i ] + %conn_close_enc_level.2 = phi i32 [ %conn_close_enc_level.0544, %ossl_quic_enc_level_to_pn_space.exit.i ], [ %conn_close_enc_level.0544, %if.end5.i ], [ %spec.select401, %if.then198.i ], [ %spec.select401, %land.lhs.true192.i ], [ %spec.select401, %if.end187.i ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i) br label %for.inc44 @@ -1210,50 +1210,42 @@ if.end: ; preds = %for.body.us87.i, %f br label %if.end.i.i if.end.i.i: ; preds = %if.end, %if.end.thread - %phdr.i358 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4 - %geom.i359 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5 - %adata.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 5 + %phdr.i357 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4 + %geom.i358 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5 + %adata.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 5 store i32 %.fr108.i, ptr %adata.i.i, align 4 - %45 = icmp ult i32 %.pre-phi, 4 - br i1 %45, label %switch.lookup, label %ossl_quic_enc_level_to_pkt_type.exit.i.i - -switch.lookup: ; preds = %if.end.i.i - %46 = zext nneg i32 %.pre-phi to i64 - %switch.gep = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_generate, i64 0, i64 %46 + %45 = sext i32 %.pre-phi to i64 + %switch.gep = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_generate, i64 0, i64 %45 %switch.load = load i32, ptr %switch.gep, align 4 - br label %ossl_quic_enc_level_to_pkt_type.exit.i.i - -ossl_quic_enc_level_to_pkt_type.exit.i.i: ; preds = %if.end.i.i, %switch.lookup - %retval.0.i37.i.i = phi i32 [ %switch.load, %switch.lookup ], [ 37119, %if.end.i.i ] - %bf.load.i.i = load i32, ptr %phdr.i358, align 8 + %bf.load.i.i = load i32, ptr %phdr.i357, align 8 %bf.clear.i.i = and i32 %bf.load.i.i, -3210752 - %bf.set15.i.i = or disjoint i32 %bf.clear.i.i, %retval.0.i37.i.i - store i32 %bf.set15.i.i, ptr %phdr.i358, align 8 - %version.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 1 + %bf.set15.i.i = or disjoint i32 %bf.clear.i.i, %switch.load + store i32 %bf.set15.i.i, ptr %phdr.i357, align 8 + %version.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 1 store i32 1, ptr %version.i.i, align 4 - %dst_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 2 + %dst_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(21) %dst_conn_id.i.i, ptr noundef nonnull align 1 dereferenceable(21) %cur_dcid.i.i, i64 21, i1 false) - %src_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 3 + %src_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 3 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(21) %src_conn_id.i.i, ptr noundef nonnull align 8 dereferenceable(21) %txp, i64 21, i1 false) - %len.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 7 + %len.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 7 store i64 16379, ptr %len.i.i, align 16 br i1 %cmp7.not, label %if.then24.i.i, label %if.end27.i.i -if.then24.i.i: ; preds = %ossl_quic_enc_level_to_pkt_type.exit.i.i - %47 = load ptr, ptr %initial_token.i.i, align 8 - %48 = load i64, ptr %initial_token_len.i.i, align 8 +if.then24.i.i: ; preds = %if.end.i.i + %46 = load ptr, ptr %initial_token.i.i, align 8 + %47 = load i64, ptr %initial_token_len.i.i, align 8 br label %if.end27.i.i -if.end27.i.i: ; preds = %ossl_quic_enc_level_to_pkt_type.exit.i.i, %if.then24.i.i - %.sink = phi ptr [ %47, %if.then24.i.i ], [ null, %ossl_quic_enc_level_to_pkt_type.exit.i.i ] - %.sink.i.i = phi i64 [ %48, %if.then24.i.i ], [ 0, %ossl_quic_enc_level_to_pkt_type.exit.i.i ] - %49 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 5 - store ptr %.sink, ptr %49, align 16 - %50 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 6 - store i64 %.sink.i.i, ptr %50, align 8 - %51 = load i8, ptr %dst_conn_id.i.i, align 16 - %conv29.i.i = zext i8 %51 to i64 - %call30.i.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv29.i.i, ptr noundef nonnull %phdr.i358) #10 +if.end27.i.i: ; preds = %if.end.i.i, %if.then24.i.i + %.sink = phi ptr [ %46, %if.then24.i.i ], [ null, %if.end.i.i ] + %.sink.i.i = phi i64 [ %47, %if.then24.i.i ], [ 0, %if.end.i.i ] + %48 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 5 + store ptr %.sink, ptr %48, align 16 + %49 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 6 + store i64 %.sink.i.i, ptr %49, align 8 + %50 = load i8, ptr %dst_conn_id.i.i, align 16 + %conv29.i.i = zext i8 %50 to i64 + %call30.i.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv29.i.i, ptr noundef nonnull %phdr.i357) #10 %conv31.i.i = sext i32 %call30.i.i to i64 %cmp32.i.i = icmp eq i32 %call30.i.i, 0 br i1 %cmp32.i.i, label %for.end46, label %if.end35.i.i @@ -1261,8 +1253,8 @@ if.end27.i.i: ; preds = %ossl_quic_enc_level if.end35.i.i: ; preds = %if.end27.i.i %txp.val.i.i = load ptr, ptr %qtx, align 8 %call.i.i.i = call i64 @ossl_qtx_get_mdpl(ptr noundef %txp.val.i.i) #10 - %cmpl.0.i.i = call i64 @llvm.usub.sat.i64(i64 %call.i.i.i, i64 %cond347) - %cmppl.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 1 + %cmpl.0.i.i = call i64 @llvm.usub.sat.i64(i64 %call.i.i.i, i64 %cond346) + %cmppl.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %pl.addr.i.i.i) %cmp.i38.i.i = icmp ult i64 %cmpl.0.i.i, %conv31.i.i br i1 %cmp.i38.i.i, label %txp_determine_ppl_from_pl.exit.thread.i.i, label %if.end.i39.i.i @@ -1270,8 +1262,8 @@ if.end35.i.i: ; preds = %if.end27.i.i if.end.i39.i.i: ; preds = %if.end35.i.i %sub.i.i.i = sub i64 %cmpl.0.i.i, %conv31.i.i store i64 %sub.i.i.i, ptr %pl.addr.i.i.i, align 8 - %52 = load ptr, ptr %qtx, align 8 - %call.i40.i.i = call i32 @ossl_qtx_calculate_plaintext_payload_len(ptr noundef %52, i32 noundef %.pre-phi, i64 noundef %sub.i.i.i, ptr noundef nonnull %pl.addr.i.i.i) #10 + %51 = load ptr, ptr %qtx, align 8 + %call.i40.i.i = call i32 @ossl_qtx_calculate_plaintext_payload_len(ptr noundef %51, i32 noundef %.pre-phi, i64 noundef %sub.i.i.i, ptr noundef nonnull %pl.addr.i.i.i) #10 %tobool.not.i.i.i = icmp eq i32 %call.i40.i.i, 0 br i1 %tobool.not.i.i.i, label %txp_determine_ppl_from_pl.exit.thread.i.i, label %if.end.i @@ -1280,107 +1272,107 @@ txp_determine_ppl_from_pl.exit.thread.i.i: ; preds = %if.end.i39.i.i, %if br label %for.end46 if.end.i: ; preds = %if.end.i39.i.i - %53 = load i64, ptr %pl.addr.i.i.i, align 8 - store i64 %53, ptr %cmppl.i.i, align 8 + %52 = load i64, ptr %pl.addr.i.i.i, align 8 + store i64 %52, ptr %cmppl.i.i, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pl.addr.i.i.i) - store i64 %cmpl.0.i.i, ptr %geom.i359, align 16 - %sub49.i.i = sub i64 %cmpl.0.i.i, %53 - %pkt_overhead.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 3 + store i64 %cmpl.0.i.i, ptr %geom.i358, align 16 + %sub49.i.i = sub i64 %cmpl.0.i.i, %52 + %pkt_overhead.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 3 store i64 %sub49.i.i, ptr %pkt_overhead.i.i, align 8 - %archetype50.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 4 + %archetype50.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 4 store i32 %retval.0.i, ptr %archetype50.i.i, align 16 %bf.load.i = load i32, ptr %adata.i.i, align 4 - %54 = lshr i32 %bf.load.i, 15 - %.lobit.i = and i32 %54, 1 + %53 = lshr i32 %bf.load.i, 15 + %.lobit.i = and i32 %53, 1 %conv.i79 = zext nneg i32 %.lobit.i to i64 - %cmp.i11.i = icmp ult i64 %53, %conv.i79 + %cmp.i11.i = icmp ult i64 %52, %conv.i79 br i1 %cmp.i11.i, label %for.end46, label %if.end.i12.i if.end.i12.i: ; preds = %if.end.i - store ptr %txp, ptr %arrayidx11349, align 16 - %enc_level2.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 6 + store ptr %txp, ptr %arrayidx11348, align 16 + %enc_level2.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 6 store i32 %.pre-phi, ptr %enc_level2.i.i, align 16 - %max_ppl3.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 1 - store i64 %53, ptr %max_ppl3.i.i, align 8 - %reserve4.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 4 + %max_ppl3.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 1 + store i64 %52, ptr %max_ppl3.i.i, align 8 + %reserve4.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 4 store i64 %conv.i79, ptr %reserve4.i.i, align 16 - %num_iovec.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 5 + %num_iovec.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 5 store i64 0, ptr %num_iovec.i.i, align 8 - %bytes_appended.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 2 - %reserve_allowed.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 7 + %bytes_appended.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 2 + %reserve_allowed.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 7 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %bytes_appended.i.i, i8 0, i64 16, i1 false) %bf.load.i13.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear6.i.i = and i8 %bf.load.i13.i, -4 store i8 %bf.clear6.i.i, ptr %reserve_allowed.i.i, align 4 - %txn.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8 + %txn.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8 store ptr null, ptr %txn.i.i, align 8 - %active.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 2 + %active.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 2 %bf.load9.i.i = load i8, ptr %active.i.i, align 8 %bf.clear10.i.i = and i8 %bf.load9.i.i, -2 store i8 %bf.clear10.i.i, ptr %active.i.i, align 8 - %scratch_len.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10348, i32 1 - %55 = load i64, ptr %scratch_len.i.i, align 8 - %cmp13.i.i = icmp ult i64 %55, %53 + %scratch_len.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10347, i32 1 + %54 = load i64, ptr %scratch_len.i.i, align 8 + %cmp13.i.i = icmp ult i64 %54, %52 br i1 %cmp13.i.i, label %if.then14.i.i, label %if.end20 if.then14.i.i: ; preds = %if.end.i12.i - %arrayidx.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10348 - %56 = load ptr, ptr %arrayidx.i.i, align 8 - %call.i.i81 = call ptr @CRYPTO_realloc(ptr noundef %56, i64 noundef %53, ptr noundef nonnull @.str, i32 noundef 208) #10 + %arrayidx.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10347 + %55 = load ptr, ptr %arrayidx.i.i, align 8 + %call.i.i81 = call ptr @CRYPTO_realloc(ptr noundef %55, i64 noundef %52, ptr noundef nonnull @.str, i32 noundef 208) #10 %cmp20.i.i = icmp eq ptr %call.i.i81, null br i1 %cmp20.i.i, label %for.end46, label %if.end22.i.i if.end22.i.i: ; preds = %if.then14.i.i - %57 = load ptr, ptr %arrayidx11349, align 16 - %arrayidx26.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %57, i64 0, i32 12, i64 %idxprom10348 + %56 = load ptr, ptr %arrayidx11348, align 16 + %arrayidx26.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %56, i64 0, i32 12, i64 %idxprom10347 store ptr %call.i.i81, ptr %arrayidx26.i.i, align 8 - %58 = load ptr, ptr %arrayidx11349, align 16 - %scratch_len32.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %58, i64 0, i32 12, i64 %idxprom10348, i32 1 - store i64 %53, ptr %scratch_len32.i.i, align 8 + %57 = load ptr, ptr %arrayidx11348, align 16 + %scratch_len32.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %57, i64 0, i32 12, i64 %idxprom10347, i32 1 + store i64 %52, ptr %scratch_len32.i.i, align 8 %.pre = load i32, ptr %enc_level2.i.i, align 16 br label %if.end20 if.end20: ; preds = %if.end22.i.i, %if.end.i12.i - %59 = phi i32 [ %.pre, %if.end22.i.i ], [ %.pre-phi, %if.end.i12.i ] - %h_valid.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 1 + %58 = phi i32 [ %.pre, %if.end22.i.i ], [ %.pre-phi, %if.end.i12.i ] + %h_valid.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 1 store i32 1, ptr %h_valid.i, align 16 - %tpkt.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 2 - %force_pad.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 6 + %tpkt.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 2 + %force_pad.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 6 store i32 0, ptr %force_pad.i, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %tpkt.i, i8 0, i64 16, i1 false) - %60 = zext nneg i32 %spec.select402 to i64 - %cmp23 = icmp eq i64 %indvars.iv670, %60 + %59 = zext nneg i32 %spec.select401 to i64 + %cmp23 = icmp eq i64 %indvars.iv671, %59 %conv = zext i1 %cmp23 to i32 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %can_be_non_inflight.i) - %61 = icmp ult i32 %59, 4 - br i1 %61, label %switch.lookup917, label %ossl_quic_enc_level_to_pn_space.exit.i84 + %60 = icmp ult i32 %58, 4 + br i1 %60, label %switch.lookup, label %ossl_quic_enc_level_to_pn_space.exit.i84 -switch.lookup917: ; preds = %if.end20 - %62 = zext nneg i32 %59 to i64 - %switch.gep918 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %62 - %switch.load919 = load i32, ptr %switch.gep918, align 4 +switch.lookup: ; preds = %if.end20 + %61 = zext nneg i32 %58 to i64 + %switch.gep920 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %61 + %switch.load921 = load i32, ptr %switch.gep920, align 4 br label %ossl_quic_enc_level_to_pn_space.exit.i84 -ossl_quic_enc_level_to_pn_space.exit.i84: ; preds = %if.end20, %switch.lookup917 - %retval.0.i.i85 = phi i32 [ %switch.load919, %switch.lookup917 ], [ 2, %if.end20 ] +ossl_quic_enc_level_to_pn_space.exit.i84: ; preds = %if.end20, %switch.lookup + %retval.0.i.i85 = phi i32 [ %switch.load921, %switch.lookup ], [ 2, %if.end20 ] %a.sroa.0.0.copyload.i = load i32, ptr %adata.i.i, align 4 store i32 1, ptr %can_be_non_inflight.i, align 4 %idxprom.i86 = zext nneg i32 %retval.0.i.i85 to i64 %arrayidx.i87 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 6, i64 %idxprom.i86 - %63 = load i64, ptr %arrayidx.i87, align 8 - %cmp.i.i88 = icmp ugt i64 %63, 4611686018427387903 + %62 = load i64, ptr %arrayidx.i87, align 8 + %cmp.i.i88 = icmp ugt i64 %62, 4611686018427387903 br i1 %cmp.i.i88, label %txp_generate_for_el.exit.thread, label %if.end12.i if.end12.i: ; preds = %ossl_quic_enc_level_to_pn_space.exit.i84 - %64 = load ptr, ptr %txpim.i, align 8 - %call13.i = call ptr @ossl_quic_txpim_pkt_alloc(ptr noundef %64) #10 + %63 = load ptr, ptr %txpim.i, align 8 + %call13.i = call ptr @ossl_quic_txpim_pkt_alloc(ptr noundef %63) #10 store ptr %call13.i, ptr %tpkt.i, align 8 %cmp15.i = icmp eq ptr %call13.i, null br i1 %cmp15.i, label %txp_generate_for_el.exit.thread, label %if.end18.i if.end18.i: ; preds = %if.end12.i - %65 = and i32 %a.sroa.0.0.copyload.i, 8 - %tobool19.not.i = icmp eq i32 %65, 0 + %64 = and i32 %a.sroa.0.0.copyload.i, 8 + %tobool19.not.i = icmp eq i32 %64, 0 br i1 %tobool19.not.i, label %if.end43.i97, label %land.lhs.true.i land.lhs.true.i: ; preds = %if.end18.i @@ -1390,25 +1382,25 @@ land.lhs.true.i: ; preds = %if.end18.i br i1 %tobool22.not.i, label %if.end43.i97, label %land.lhs.true23.i land.lhs.true23.i: ; preds = %land.lhs.true.i - %66 = load i64, ptr %max_ppl3.i.i, align 8 + %65 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i.i94 = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i.i95 = and i8 %bf.load.i.i94, 1 %tobool.not.i.i = icmp eq i8 %bf.clear.i.i95, 0 br i1 %tobool.not.i.i, label %cond.false.i.i, label %tx_helper_get_space_left.exit.i cond.false.i.i: ; preds = %land.lhs.true23.i - %67 = load i64, ptr %reserve4.i.i, align 16 + %66 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit.i tx_helper_get_space_left.exit.i: ; preds = %cond.false.i.i, %land.lhs.true23.i - %cond.i.i = phi i64 [ %67, %cond.false.i.i ], [ 0, %land.lhs.true23.i ] - %68 = load i64, ptr %bytes_appended.i.i, align 16 - %69 = add i64 %68, %cond.i.i - %cmp25.not.i = icmp eq i64 %66, %69 + %cond.i.i = phi i64 [ %66, %cond.false.i.i ], [ 0, %land.lhs.true23.i ] + %67 = load i64, ptr %bytes_appended.i.i, align 16 + %68 = add i64 %67, %cond.i.i + %cmp25.not.i = icmp eq i64 %65, %68 br i1 %cmp25.not.i, label %if.end43.i97, label %if.then27.i if.then27.i: ; preds = %tx_helper_get_space_left.exit.i - %call28.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) + %call28.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp29.i = icmp eq ptr %call28.i, null br i1 %cmp29.i, label %if.then337.i, label %if.end32.i @@ -1422,7 +1414,7 @@ if.then35.i: ; preds = %if.end32.i %bf.load36.i = load i8, ptr %had_handshake_done_frame.i, align 8 %bf.set.i = or i8 %bf.load36.i, 1 store i8 %bf.set.i, ptr %had_handshake_done_frame.i, align 8 - %call38.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call38.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool39.not.i = icmp eq i32 %call38.i, 0 br i1 %tobool39.not.i, label %if.then337.i, label %if.end41.i @@ -1436,10 +1428,10 @@ if.else.i: ; preds = %if.end32.i %bf.load.i108.i = load i8, ptr %active.i.i, align 8 %bf.clear.i109.i = and i8 %bf.load.i108.i, 1 %tobool.not.i110.i = icmp eq i8 %bf.clear.i109.i, 0 - br i1 %tobool.not.i110.i, label %if.end43.i97, label %if.end.i.i131 + br i1 %tobool.not.i110.i, label %if.end43.i97, label %if.end.i.i130 -if.end.i.i131: ; preds = %if.else.i - %wpkt2.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 +if.end.i.i130: ; preds = %if.else.i + %wpkt2.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i) #10 %bf.load.i.i.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i.i = and i8 %bf.load.i.i.i, -2 @@ -1447,47 +1439,47 @@ if.end.i.i131: ; preds = %if.else.i store ptr null, ptr %txn.i.i, align 8 br label %if.end43.i97 -if.end43.i97: ; preds = %if.end.i.i131, %if.else.i, %if.end41.i, %tx_helper_get_space_left.exit.i, %land.lhs.true.i, %if.end18.i - %have_ack_eliciting.promoted271.i = phi i32 [ 0, %if.end.i.i131 ], [ 0, %if.else.i ], [ 1, %if.end41.i ], [ 0, %tx_helper_get_space_left.exit.i ], [ 0, %land.lhs.true.i ], [ 0, %if.end18.i ] - %70 = and i32 %a.sroa.0.0.copyload.i, 512 - %tobool47.not.i = icmp eq i32 %70, 0 +if.end43.i97: ; preds = %if.end.i.i130, %if.else.i, %if.end41.i, %tx_helper_get_space_left.exit.i, %land.lhs.true.i, %if.end18.i + %have_ack_eliciting.promoted271.i = phi i32 [ 0, %if.end.i.i130 ], [ 0, %if.else.i ], [ 1, %if.end41.i ], [ 0, %tx_helper_get_space_left.exit.i ], [ 0, %land.lhs.true.i ], [ 0, %if.end18.i ] + %69 = and i32 %a.sroa.0.0.copyload.i, 512 + %tobool47.not.i = icmp eq i32 %69, 0 br i1 %tobool47.not.i, label %if.end166.i, label %land.lhs.true48.i land.lhs.true48.i: ; preds = %if.end43.i97 %bf.load49.i = load i16, ptr %want_ack.i, align 8 - %71 = and i16 %bf.load49.i, 2 - %tobool53.not.i = icmp eq i16 %71, 0 - br i1 %tobool53.not.i, label %lor.lhs.false.i128, label %land.lhs.true57.i + %70 = and i16 %bf.load49.i, 2 + %tobool53.not.i = icmp eq i16 %70, 0 + br i1 %tobool53.not.i, label %lor.lhs.false.i127, label %land.lhs.true57.i -lor.lhs.false.i128: ; preds = %land.lhs.true48.i - %72 = load ptr, ptr %conn_rxfc.i, align 8 - %call55.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %72, i32 noundef 0) #10 +lor.lhs.false.i127: ; preds = %land.lhs.true48.i + %71 = load ptr, ptr %conn_rxfc.i, align 8 + %call55.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %71, i32 noundef 0) #10 %tobool56.not.i = icmp eq i32 %call55.i, 0 br i1 %tobool56.not.i, label %land.lhs.true88.i, label %land.lhs.true57.i -land.lhs.true57.i: ; preds = %lor.lhs.false.i128, %land.lhs.true48.i - %73 = load i64, ptr %max_ppl3.i.i, align 8 +land.lhs.true57.i: ; preds = %lor.lhs.false.i127, %land.lhs.true48.i + %72 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i113.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i114.i = and i8 %bf.load.i113.i, 1 %tobool.not.i115.i = icmp eq i8 %bf.clear.i114.i, 0 br i1 %tobool.not.i115.i, label %cond.false.i119.i, label %tx_helper_get_space_left.exit121.i cond.false.i119.i: ; preds = %land.lhs.true57.i - %74 = load i64, ptr %reserve4.i.i, align 16 + %73 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit121.i tx_helper_get_space_left.exit121.i: ; preds = %cond.false.i119.i, %land.lhs.true57.i - %cond.i116.i = phi i64 [ %74, %cond.false.i119.i ], [ 0, %land.lhs.true57.i ] - %75 = load i64, ptr %bytes_appended.i.i, align 16 - %76 = add i64 %cond.i116.i, %75 - %sub1.i118.i = sub i64 %73, %76 + %cond.i116.i = phi i64 [ %73, %cond.false.i119.i ], [ 0, %land.lhs.true57.i ] + %74 = load i64, ptr %bytes_appended.i.i, align 16 + %75 = add i64 %cond.i116.i, %74 + %sub1.i118.i = sub i64 %72, %75 %cmp59.i = icmp ugt i64 %sub1.i118.i, 1 br i1 %cmp59.i, label %if.then61.i, label %land.lhs.true88.i if.then61.i: ; preds = %tx_helper_get_space_left.exit121.i - %call63.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %77 = load ptr, ptr %conn_rxfc.i, align 8 - %call66.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %77) #10 + %call63.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %76 = load ptr, ptr %conn_rxfc.i, align 8 + %call66.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %76) #10 %cmp67.i = icmp eq ptr %call63.i, null br i1 %cmp67.i, label %if.then337.i, label %if.end70.i @@ -1501,7 +1493,7 @@ if.then73.i: ; preds = %if.end70.i %bf.load74.i = load i8, ptr %had_max_data_frame.i, align 8 %bf.set76.i = or i8 %bf.load74.i, 2 store i8 %bf.set76.i, ptr %had_max_data_frame.i, align 8 - %call77.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call77.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool78.not.i = icmp eq i32 %call77.i, 0 br i1 %tobool78.not.i, label %if.then337.i, label %if.end80.i @@ -1518,7 +1510,7 @@ if.else81.i: ; preds = %if.end70.i br i1 %tobool.not.i128.i, label %land.lhs.true88.i, label %if.end.i129.i if.end.i129.i: ; preds = %if.else81.i - %wpkt2.i.i130.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i130.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i130.i) #10 %bf.load.i.i132.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i133.i = and i8 %bf.load.i.i132.i, -2 @@ -1526,42 +1518,42 @@ if.end.i129.i: ; preds = %if.else81.i store ptr null, ptr %txn.i.i, align 8 br label %land.lhs.true88.i -land.lhs.true88.i: ; preds = %if.end.i129.i, %if.else81.i, %if.end80.i, %tx_helper_get_space_left.exit121.i, %lor.lhs.false.i128 - %have_ack_eliciting.promoted270.i = phi i32 [ %have_ack_eliciting.promoted271.i, %lor.lhs.false.i128 ], [ %have_ack_eliciting.promoted271.i, %tx_helper_get_space_left.exit121.i ], [ 1, %if.end80.i ], [ %have_ack_eliciting.promoted271.i, %if.else81.i ], [ %have_ack_eliciting.promoted271.i, %if.end.i129.i ] +land.lhs.true88.i: ; preds = %if.end.i129.i, %if.else81.i, %if.end80.i, %tx_helper_get_space_left.exit121.i, %lor.lhs.false.i127 + %have_ack_eliciting.promoted270.i = phi i32 [ %have_ack_eliciting.promoted271.i, %lor.lhs.false.i127 ], [ %have_ack_eliciting.promoted271.i, %tx_helper_get_space_left.exit121.i ], [ 1, %if.end80.i ], [ %have_ack_eliciting.promoted271.i, %if.else81.i ], [ %have_ack_eliciting.promoted271.i, %if.end.i129.i ] %bf.load89.i = load i16, ptr %want_ack.i, align 8 - %78 = and i16 %bf.load89.i, 4 - %tobool93.not.i = icmp eq i16 %78, 0 + %77 = and i16 %bf.load89.i, 4 + %tobool93.not.i = icmp eq i16 %77, 0 br i1 %tobool93.not.i, label %lor.lhs.false94.i, label %land.lhs.true98.i lor.lhs.false94.i: ; preds = %land.lhs.true88.i - %79 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 - %call96.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %79, i32 noundef 0) #10 + %78 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 + %call96.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %78, i32 noundef 0) #10 %tobool97.not.i = icmp eq i32 %call96.i, 0 br i1 %tobool97.not.i, label %land.lhs.true129.i, label %land.lhs.true98.i land.lhs.true98.i: ; preds = %lor.lhs.false94.i, %land.lhs.true88.i - %80 = load i64, ptr %max_ppl3.i.i, align 8 + %79 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i137.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i138.i = and i8 %bf.load.i137.i, 1 %tobool.not.i139.i = icmp eq i8 %bf.clear.i138.i, 0 br i1 %tobool.not.i139.i, label %cond.false.i143.i, label %tx_helper_get_space_left.exit145.i cond.false.i143.i: ; preds = %land.lhs.true98.i - %81 = load i64, ptr %reserve4.i.i, align 16 + %80 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit145.i tx_helper_get_space_left.exit145.i: ; preds = %cond.false.i143.i, %land.lhs.true98.i - %cond.i140.i = phi i64 [ %81, %cond.false.i143.i ], [ 0, %land.lhs.true98.i ] - %82 = load i64, ptr %bytes_appended.i.i, align 16 - %83 = add i64 %cond.i140.i, %82 - %sub1.i142.i = sub i64 %80, %83 + %cond.i140.i = phi i64 [ %80, %cond.false.i143.i ], [ 0, %land.lhs.true98.i ] + %81 = load i64, ptr %bytes_appended.i.i, align 16 + %82 = add i64 %cond.i140.i, %81 + %sub1.i142.i = sub i64 %79, %82 %cmp100.i = icmp ugt i64 %sub1.i142.i, 1 br i1 %cmp100.i, label %if.then102.i, label %land.lhs.true129.i if.then102.i: ; preds = %tx_helper_get_space_left.exit145.i - %call104.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %84 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 - %call107.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %84) #10 + %call104.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %83 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 + %call107.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %83) #10 %cmp108.i = icmp eq ptr %call104.i, null br i1 %cmp108.i, label %if.then337.i, label %if.end111.i @@ -1575,7 +1567,7 @@ if.then114.i: ; preds = %if.end111.i %bf.load115.i = load i8, ptr %had_max_streams_bidi_frame.i, align 8 %bf.set117.i = or i8 %bf.load115.i, 4 store i8 %bf.set117.i, ptr %had_max_streams_bidi_frame.i, align 8 - %call118.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call118.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool119.not.i = icmp eq i32 %call118.i, 0 br i1 %tobool119.not.i, label %if.then337.i, label %if.end121.i @@ -1592,7 +1584,7 @@ if.else122.i: ; preds = %if.end111.i br i1 %tobool.not.i152.i, label %land.lhs.true129.i, label %if.end.i153.i if.end.i153.i: ; preds = %if.else122.i - %wpkt2.i.i154.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i154.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i154.i) #10 %bf.load.i.i156.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i157.i = and i8 %bf.load.i.i156.i, -2 @@ -1603,44 +1595,44 @@ if.end.i153.i: ; preds = %if.else122.i land.lhs.true129.i: ; preds = %if.end.i153.i, %if.else122.i, %if.end121.i, %tx_helper_get_space_left.exit145.i, %lor.lhs.false94.i %have_ack_eliciting.promoted269.i = phi i32 [ %have_ack_eliciting.promoted270.i, %lor.lhs.false94.i ], [ %have_ack_eliciting.promoted270.i, %tx_helper_get_space_left.exit145.i ], [ 1, %if.end121.i ], [ %have_ack_eliciting.promoted270.i, %if.else122.i ], [ %have_ack_eliciting.promoted270.i, %if.end.i153.i ] %bf.load130.i = load i16, ptr %want_ack.i, align 8 - %85 = and i16 %bf.load130.i, 8 - %tobool134.not.i = icmp eq i16 %85, 0 + %84 = and i16 %bf.load130.i, 8 + %tobool134.not.i = icmp eq i16 %84, 0 br i1 %tobool134.not.i, label %lor.lhs.false135.i, label %land.lhs.true139.i lor.lhs.false135.i: ; preds = %land.lhs.true129.i - %86 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 - %call137.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %86, i32 noundef 0) #10 + %85 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 + %call137.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %85, i32 noundef 0) #10 %tobool138.not.i = icmp eq i32 %call137.i, 0 br i1 %tobool138.not.i, label %if.end166.i, label %land.lhs.true139.i land.lhs.true139.i: ; preds = %lor.lhs.false135.i, %land.lhs.true129.i - %87 = load i64, ptr %max_ppl3.i.i, align 8 + %86 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i161.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i162.i = and i8 %bf.load.i161.i, 1 %tobool.not.i163.i = icmp eq i8 %bf.clear.i162.i, 0 br i1 %tobool.not.i163.i, label %cond.false.i167.i, label %tx_helper_get_space_left.exit169.i cond.false.i167.i: ; preds = %land.lhs.true139.i - %88 = load i64, ptr %reserve4.i.i, align 16 + %87 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit169.i tx_helper_get_space_left.exit169.i: ; preds = %cond.false.i167.i, %land.lhs.true139.i - %cond.i164.i = phi i64 [ %88, %cond.false.i167.i ], [ 0, %land.lhs.true139.i ] - %89 = load i64, ptr %bytes_appended.i.i, align 16 - %90 = add i64 %cond.i164.i, %89 - %sub1.i166.i = sub i64 %87, %90 + %cond.i164.i = phi i64 [ %87, %cond.false.i167.i ], [ 0, %land.lhs.true139.i ] + %88 = load i64, ptr %bytes_appended.i.i, align 16 + %89 = add i64 %cond.i164.i, %88 + %sub1.i166.i = sub i64 %86, %89 %cmp141.i99 = icmp ugt i64 %sub1.i166.i, 1 br i1 %cmp141.i99, label %if.then143.i, label %if.end166.i if.then143.i: ; preds = %tx_helper_get_space_left.exit169.i - %call145.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %91 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 - %call149.i125 = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %91) #10 + %call145.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %90 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 + %call149.i124 = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %90) #10 %cmp150.i = icmp eq ptr %call145.i, null br i1 %cmp150.i, label %if.then337.i, label %if.end153.i if.end153.i: ; preds = %if.then143.i - %call154.i = call i32 @ossl_quic_wire_encode_frame_max_streams(ptr noundef nonnull %call145.i, i8 noundef signext 1, i64 noundef %call149.i125) #10 + %call154.i = call i32 @ossl_quic_wire_encode_frame_max_streams(ptr noundef nonnull %call145.i, i8 noundef signext 1, i64 noundef %call149.i124) #10 %tobool155.not.i = icmp eq i32 %call154.i, 0 br i1 %tobool155.not.i, label %if.else164.i, label %if.then156.i @@ -1649,7 +1641,7 @@ if.then156.i: ; preds = %if.end153.i %bf.load157.i = load i8, ptr %had_max_streams_uni_frame.i, align 8 %bf.set159.i = or i8 %bf.load157.i, 8 store i8 %bf.set159.i, ptr %had_max_streams_uni_frame.i, align 8 - %call160.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call160.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool161.not.i = icmp eq i32 %call160.i, 0 br i1 %tobool161.not.i, label %if.then337.i, label %if.end163.i @@ -1666,7 +1658,7 @@ if.else164.i: ; preds = %if.end153.i br i1 %tobool.not.i176.i, label %if.end166.i, label %if.end.i177.i if.end.i177.i: ; preds = %if.else164.i - %wpkt2.i.i178.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i178.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i178.i) #10 %bf.load.i.i180.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i181.i = and i8 %bf.load.i.i180.i, -2 @@ -1676,28 +1668,28 @@ if.end.i177.i: ; preds = %if.else164.i if.end166.i: ; preds = %if.end.i177.i, %if.else164.i, %if.end163.i, %tx_helper_get_space_left.exit169.i, %lor.lhs.false135.i, %if.end43.i97 %have_ack_eliciting.promoted.i = phi i32 [ %have_ack_eliciting.promoted269.i, %if.end.i177.i ], [ %have_ack_eliciting.promoted269.i, %if.else164.i ], [ %have_ack_eliciting.promoted271.i, %if.end43.i97 ], [ 1, %if.end163.i ], [ %have_ack_eliciting.promoted269.i, %tx_helper_get_space_left.exit169.i ], [ %have_ack_eliciting.promoted269.i, %lor.lhs.false135.i ] - %92 = load ptr, ptr %cfq.i, align 8 - %call168.i = call ptr @ossl_quic_cfq_get_priority_head(ptr noundef %92, i32 noundef %retval.0.i.i85) #10 + %91 = load ptr, ptr %cfq.i, align 8 + %call168.i = call ptr @ossl_quic_cfq_get_priority_head(ptr noundef %91, i32 noundef %retval.0.i.i85) #10 %cmp169.not254.i = icmp eq ptr %call168.i, null br i1 %cmp169.not254.i, label %if.then229.i, label %for.body.lr.ph.i101 for.body.lr.ph.i101: ; preds = %if.end166.i - %93 = and i32 %a.sroa.0.0.copyload.i, 32 - %tobool205.not.i = icmp eq i32 %93, 0 - %94 = insertelement <4 x i32> poison, i32 %a.sroa.0.0.copyload.i, i64 0 - %95 = shufflevector <4 x i32> %94, <4 x i32> poison, <4 x i32> zeroinitializer - %96 = and <4 x i32> %95, - %97 = icmp eq <4 x i32> %96, zeroinitializer - %98 = extractelement <4 x i1> %97, i64 0 - %99 = extractelement <4 x i1> %97, i64 1 - %100 = extractelement <4 x i1> %97, i64 2 - %101 = extractelement <4 x i1> %97, i64 3 + %92 = and i32 %a.sroa.0.0.copyload.i, 32 + %tobool205.not.i = icmp eq i32 %92, 0 + %93 = insertelement <4 x i32> poison, i32 %a.sroa.0.0.copyload.i, i64 0 + %94 = shufflevector <4 x i32> %93, <4 x i32> poison, <4 x i32> zeroinitializer + %95 = and <4 x i32> %94, + %96 = icmp eq <4 x i32> %95, zeroinitializer + %97 = extractelement <4 x i1> %96, i64 0 + %98 = extractelement <4 x i1> %96, i64 1 + %99 = extractelement <4 x i1> %96, i64 2 + %100 = extractelement <4 x i1> %96, i64 3 br label %for.body.i106 for.body.i106: ; preds = %for.inc.i, %for.body.lr.ph.i101 %done_pre_token.0256.i = phi i32 [ 0, %for.body.lr.ph.i101 ], [ %done_pre_token.2.i, %for.inc.i ] %cfq_item.0255.i = phi ptr [ %call168.i, %for.body.lr.ph.i101 ], [ %call227.i, %for.inc.i ] - %102 = phi i32 [ %have_ack_eliciting.promoted.i, %for.body.lr.ph.i101 ], [ %119, %for.inc.i ] + %101 = phi i32 [ %have_ack_eliciting.promoted.i, %for.body.lr.ph.i101 ], [ %118, %for.inc.i ] %call171.i = call i64 @ossl_quic_cfq_item_get_frame_type(ptr noundef nonnull %cfq_item.0255.i) #10 %call172.i = call ptr @ossl_quic_cfq_item_get_encoded(ptr noundef nonnull %cfq_item.0255.i) #10 %call173.i = call i64 @ossl_quic_cfq_item_get_encoded_len(ptr noundef nonnull %cfq_item.0255.i) #10 @@ -1709,20 +1701,20 @@ for.body.i106: ; preds = %for.inc.i, %for.bod ] sw.bb.i: ; preds = %for.body.i106 - br i1 %99, label %for.inc.i, label %sw.epilog.i + br i1 %98, label %for.inc.i, label %sw.epilog.i sw.bb180.i: ; preds = %for.body.i106 - br i1 %100, label %for.inc.i, label %sw.epilog.i + br i1 %99, label %for.inc.i, label %sw.epilog.i sw.bb187.i: ; preds = %for.body.i106 - br i1 %101, label %for.inc.i, label %if.end193.i + br i1 %100, label %for.inc.i, label %if.end193.i if.end193.i: ; preds = %sw.bb187.i %tobool194.not.i = icmp eq i32 %done_pre_token.0256.i, 0 br i1 %tobool194.not.i, label %if.then195.i, label %sw.epilog.i if.then195.i: ; preds = %if.end193.i - %call196.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11349, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 + %call196.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11348, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 br label %sw.epilog.i sw.bb201.i: ; preds = %for.body.i106 @@ -1733,85 +1725,85 @@ if.end207.i: ; preds = %sw.bb201.i br label %sw.epilog.i sw.default.i: ; preds = %for.body.i106 - br i1 %98, label %for.inc.i, label %sw.epilog.i + br i1 %97, label %for.inc.i, label %sw.epilog.i sw.epilog.i: ; preds = %sw.default.i, %if.end207.i, %if.then195.i, %if.end193.i, %sw.bb180.i, %sw.bb.i %done_pre_token.1.i = phi i32 [ %done_pre_token.0256.i, %sw.default.i ], [ %done_pre_token.0256.i, %if.end207.i ], [ 1, %if.end193.i ], [ %done_pre_token.0256.i, %sw.bb180.i ], [ %done_pre_token.0256.i, %sw.bb.i ], [ %call196.i, %if.then195.i ] - %103 = load i64, ptr %max_ppl3.i.i, align 8 + %102 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i185.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i186.i = and i8 %bf.load.i185.i, 1 %tobool.not.i187.i = icmp eq i8 %bf.clear.i186.i, 0 br i1 %tobool.not.i187.i, label %cond.false.i191.i, label %tx_helper_get_space_left.exit193.i cond.false.i191.i: ; preds = %sw.epilog.i - %104 = load i64, ptr %reserve4.i.i, align 16 + %103 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit193.i tx_helper_get_space_left.exit193.i: ; preds = %cond.false.i191.i, %sw.epilog.i - %cond.i188.i = phi i64 [ %104, %cond.false.i191.i ], [ 0, %sw.epilog.i ] - %105 = load i64, ptr %bytes_appended.i.i, align 16 - %106 = add i64 %cond.i188.i, %105 - %sub1.i190.i = sub i64 %103, %106 + %cond.i188.i = phi i64 [ %103, %cond.false.i191.i ], [ 0, %sw.epilog.i ] + %104 = load i64, ptr %bytes_appended.i.i, align 16 + %105 = add i64 %cond.i188.i, %104 + %sub1.i190.i = sub i64 %102, %105 %cmp215.i = icmp ugt i64 %call173.i, %sub1.i190.i br i1 %cmp215.i, label %for.end.i108, label %if.end218.i if.end218.i: ; preds = %tx_helper_get_space_left.exit193.i - %107 = load ptr, ptr %arrayidx11349, align 16 - %108 = load i32, ptr %enc_level2.i.i, align 16 - %idxprom.i.i107 = zext i32 %108 to i64 + %106 = load ptr, ptr %arrayidx11348, align 16 + %107 = load i32, ptr %enc_level2.i.i, align 16 + %idxprom.i.i107 = zext i32 %107 to i64 %cmp.i194.i = icmp eq i64 %call173.i, 0 br i1 %cmp.i194.i, label %if.end222.i, label %if.end.i195.i if.end.i195.i: ; preds = %if.end218.i - %109 = and i8 %bf.load.i185.i, 2 - %tobool.not.i197.i = icmp eq i8 %109, 0 + %108 = and i8 %bf.load.i185.i, 2 + %tobool.not.i197.i = icmp eq i8 %108, 0 br i1 %tobool.not.i197.i, label %if.end9.i.i, label %if.then337.i if.end9.i.i: ; preds = %if.end.i195.i - %110 = load i64, ptr %num_iovec.i.i, align 8 - %add.i.i = add i64 %110, 1 - %alloc_iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 3 - %111 = load i64, ptr %alloc_iovec.i.i.i, align 8 - %cmp.not.i.i.i = icmp ult i64 %111, %add.i.i + %109 = load i64, ptr %num_iovec.i.i, align 8 + %add.i.i = add i64 %109, 1 + %alloc_iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 3 + %110 = load i64, ptr %alloc_iovec.i.i.i, align 8 + %cmp.not.i.i.i = icmp ult i64 %110, %add.i.i br i1 %cmp.not.i.i.i, label %if.end.i.i.i, label %if.end9.if.end12_crit_edge.i.i if.end9.if.end12_crit_edge.i.i: ; preds = %if.end9.i.i - %iovec.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 + %iovec.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 %.pre.i.i = load ptr, ptr %iovec.phi.trans.insert.i.i, align 8 br label %if.end12.i.i if.end.i.i.i: ; preds = %if.end9.i.i - %cmp2.not.i.i.i = icmp eq i64 %111, 0 - %mul.i.i.i = shl i64 %111, 1 + %cmp2.not.i.i.i = icmp eq i64 %110, 0 + %mul.i.i.i = shl i64 %110, 1 %spec.select.i.i.i = select i1 %cmp2.not.i.i.i, i64 8, i64 %mul.i.i.i - %iovec4.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 - %112 = load ptr, ptr %iovec4.i.i.i, align 8 + %iovec4.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 + %111 = load ptr, ptr %iovec4.i.i.i, align 8 %mul5.i.i.i = shl i64 %spec.select.i.i.i, 4 - %call.i.i.i124 = call ptr @CRYPTO_realloc(ptr noundef %112, i64 noundef %mul5.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 - %cmp6.i.i.i = icmp eq ptr %call.i.i.i124, null + %call.i.i.i123 = call ptr @CRYPTO_realloc(ptr noundef %111, i64 noundef %mul5.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %cmp6.i.i.i = icmp eq ptr %call.i.i.i123, null br i1 %cmp6.i.i.i, label %if.then337.i, label %if.end8.i.i.i if.end8.i.i.i: ; preds = %if.end.i.i.i - store ptr %call.i.i.i124, ptr %iovec4.i.i.i, align 8 + store ptr %call.i.i.i123, ptr %iovec4.i.i.i, align 8 store i64 %spec.select.i.i.i, ptr %alloc_iovec.i.i.i, align 8 %.pre14.i.i = load i64, ptr %num_iovec.i.i, align 8 br label %if.end12.i.i if.end12.i.i: ; preds = %if.end8.i.i.i, %if.end9.if.end12_crit_edge.i.i - %113 = phi i64 [ %110, %if.end9.if.end12_crit_edge.i.i ], [ %.pre14.i.i, %if.end8.i.i.i ] - %114 = phi ptr [ %.pre.i.i, %if.end9.if.end12_crit_edge.i.i ], [ %call.i.i.i124, %if.end8.i.i.i ] - %iovec.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 - %arrayidx14.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %114, i64 %113 + %112 = phi i64 [ %109, %if.end9.if.end12_crit_edge.i.i ], [ %.pre14.i.i, %if.end8.i.i.i ] + %113 = phi ptr [ %.pre.i.i, %if.end9.if.end12_crit_edge.i.i ], [ %call.i.i.i123, %if.end8.i.i.i ] + %iovec.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 + %arrayidx14.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %113, i64 %112 store ptr %call172.i, ptr %arrayidx14.i.i, align 8 - %115 = load ptr, ptr %iovec.i.i, align 8 - %116 = load i64, ptr %num_iovec.i.i, align 8 - %buf_len19.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %115, i64 %116, i32 1 + %114 = load ptr, ptr %iovec.i.i, align 8 + %115 = load i64, ptr %num_iovec.i.i, align 8 + %buf_len19.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %114, i64 %115, i32 1 store i64 %call173.i, ptr %buf_len19.i.i, align 8 - %117 = load i64, ptr %num_iovec.i.i, align 8 - %inc.i.i = add i64 %117, 1 + %116 = load i64, ptr %num_iovec.i.i, align 8 + %inc.i.i = add i64 %116, 1 store i64 %inc.i.i, ptr %num_iovec.i.i, align 8 - %118 = load i64, ptr %bytes_appended.i.i, align 16 - %add21.i.i = add i64 %118, %call173.i + %117 = load i64, ptr %bytes_appended.i.i, align 16 + %add21.i.i = add i64 %117, %call173.i store i64 %add21.i.i, ptr %bytes_appended.i.i, align 16 br label %if.end222.i @@ -1832,27 +1824,27 @@ if.then225.i: ; preds = %if.end222.i br label %for.inc.i for.inc.i: ; preds = %if.then225.i, %if.end222.i, %if.end222.i, %if.end222.i, %if.end222.i, %if.end222.i, %sw.default.i, %sw.bb201.i, %sw.bb187.i, %sw.bb180.i, %sw.bb.i - %119 = phi i32 [ 1, %if.then225.i ], [ %102, %sw.default.i ], [ %102, %sw.bb201.i ], [ %102, %sw.bb187.i ], [ %102, %sw.bb180.i ], [ %102, %sw.bb.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ] + %118 = phi i32 [ 1, %if.then225.i ], [ %101, %sw.default.i ], [ %101, %sw.bb201.i ], [ %101, %sw.bb187.i ], [ %101, %sw.bb180.i ], [ %101, %sw.bb.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ] %done_pre_token.2.i = phi i32 [ %done_pre_token.1.i, %if.then225.i ], [ %done_pre_token.0256.i, %sw.default.i ], [ %done_pre_token.0256.i, %sw.bb201.i ], [ %done_pre_token.0256.i, %sw.bb187.i ], [ %done_pre_token.0256.i, %sw.bb180.i ], [ %done_pre_token.0256.i, %sw.bb.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ] %call227.i = call ptr @ossl_quic_cfq_item_get_priority_next(ptr noundef nonnull %cfq_item.0255.i, i32 noundef %retval.0.i.i85) #10 %cmp169.not.i = icmp eq ptr %call227.i, null br i1 %cmp169.not.i, label %for.end.i108, label %for.body.i106, !llvm.loop !10 for.end.i108: ; preds = %for.inc.i, %tx_helper_get_space_left.exit193.i - %have_ack_eliciting.promoted260.i = phi i32 [ %119, %for.inc.i ], [ %102, %tx_helper_get_space_left.exit193.i ] + %have_ack_eliciting.promoted260.i = phi i32 [ %118, %for.inc.i ], [ %101, %tx_helper_get_space_left.exit193.i ] %done_pre_token.3.i = phi i32 [ %done_pre_token.2.i, %for.inc.i ], [ %done_pre_token.1.i, %tx_helper_get_space_left.exit193.i ] %tobool228.not.i = icmp eq i32 %done_pre_token.3.i, 0 br i1 %tobool228.not.i, label %if.then229.i, label %if.end234.i if.then229.i: ; preds = %if.end166.i, %for.end.i108 %have_ack_eliciting.i.0 = phi i32 [ %have_ack_eliciting.promoted260.i, %for.end.i108 ], [ %have_ack_eliciting.promoted.i, %if.end166.i ] - %call230.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11349, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 + %call230.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11348, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 br label %if.end234.i if.end234.i: ; preds = %if.then229.i, %for.end.i108 %have_ack_eliciting.i.1 = phi i32 [ %have_ack_eliciting.i.0, %if.then229.i ], [ %have_ack_eliciting.promoted260.i, %for.end.i108 ] - %120 = and i32 %a.sroa.0.0.copyload.i, 4 - %tobool238.not.i = icmp eq i32 %120, 0 + %119 = and i32 %a.sroa.0.0.copyload.i, 4 + %tobool238.not.i = icmp eq i32 %119, 0 br i1 %tobool238.not.i, label %if.end244.i, label %if.then239.i if.then239.i: ; preds = %if.end234.i @@ -1862,93 +1854,93 @@ if.then239.i: ; preds = %if.end234.i call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %iov.i.i82) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %hdr_bytes.i.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i.i) - %121 = load i32, ptr %enc_level2.i.i, align 16 - %122 = icmp ult i32 %121, 4 - br i1 %122, label %switch.lookup920, label %ossl_quic_enc_level_to_pn_space.exit.i.i - -switch.lookup920: ; preds = %if.then239.i - %123 = zext nneg i32 %121 to i64 - %switch.gep921 = getelementptr inbounds [4 x i64], ptr @switch.table.ossl_quic_tx_packetiser_generate.11, i64 0, i64 %123 - %switch.load922 = load i64, ptr %switch.gep921, align 8 + %120 = load i32, ptr %enc_level2.i.i, align 16 + %121 = icmp ult i32 %120, 4 + br i1 %121, label %switch.lookup922, label %ossl_quic_enc_level_to_pn_space.exit.i.i + +switch.lookup922: ; preds = %if.then239.i + %122 = zext nneg i32 %120 to i64 + %switch.gep923 = getelementptr inbounds [4 x i64], ptr @switch.table.ossl_quic_tx_packetiser_generate.11, i64 0, i64 %122 + %switch.load924 = load i64, ptr %switch.gep923, align 8 br label %ossl_quic_enc_level_to_pn_space.exit.i.i -ossl_quic_enc_level_to_pn_space.exit.i.i: ; preds = %if.then239.i, %switch.lookup920 - %retval.0.i.i.i = phi i64 [ %switch.load922, %switch.lookup920 ], [ 2, %if.then239.i ] - %124 = load ptr, ptr %tpkt.i, align 8 +ossl_quic_enc_level_to_pn_space.exit.i.i: ; preds = %if.then239.i, %switch.lookup922 + %retval.0.i.i.i = phi i64 [ %switch.load924, %switch.lookup922 ], [ 2, %if.then239.i ] + %123 = load ptr, ptr %tpkt.i, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %shdr.i.i, i8 0, i64 40, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %chdr.i.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %chunk.i.i, i8 0, i64 32, i1 false) %arrayidx.i.i110 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_args_st, ptr %txp, i64 0, i32 17, i64 %retval.0.i.i.i - %idxprom22.i.i = zext i32 %121 to i64 + %idxprom22.i.i = zext i32 %120 to i64 %alloc_iovec.i.i206.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom22.i.i, i32 3 %iovec4.i.i207.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom22.i.i, i32 2 br label %for.cond.i.i for.cond.i.i: ; preds = %for.end.i.i, %ossl_quic_enc_level_to_pn_space.exit.i.i - %125 = phi i32 [ %have_ack_eliciting.i.1, %ossl_quic_enc_level_to_pn_space.exit.i.i ], [ 1, %for.end.i.i ] + %124 = phi i32 [ %have_ack_eliciting.i.1, %ossl_quic_enc_level_to_pn_space.exit.i.i ], [ 1, %for.end.i.i ] %i.0.i.i = phi i64 [ 0, %ossl_quic_enc_level_to_pn_space.exit.i.i ], [ %inc54.i.i, %for.end.i.i ] - %126 = load i64, ptr %max_ppl3.i.i, align 8 + %125 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i.i208.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i.i209.i = and i8 %bf.load.i.i208.i, 1 %tobool.not.i.i.i112 = icmp eq i8 %bf.clear.i.i209.i, 0 br i1 %tobool.not.i.i.i112, label %cond.false.i.i.i, label %tx_helper_get_space_left.exit.i.i cond.false.i.i.i: ; preds = %for.cond.i.i - %127 = load i64, ptr %reserve4.i.i, align 16 + %126 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit.i.i tx_helper_get_space_left.exit.i.i: ; preds = %cond.false.i.i.i, %for.cond.i.i - %cond.i.i.i = phi i64 [ %127, %cond.false.i.i.i ], [ 0, %for.cond.i.i ] - %128 = load i64, ptr %bytes_appended.i.i, align 16 - %129 = add i64 %cond.i.i.i, %128 - %sub1.i.i.i = sub i64 %126, %129 + %cond.i.i.i = phi i64 [ %126, %cond.false.i.i.i ], [ 0, %for.cond.i.i ] + %127 = load i64, ptr %bytes_appended.i.i, align 16 + %128 = add i64 %cond.i.i.i, %127 + %sub1.i.i.i = sub i64 %125, %128 %cmp.i210.i = icmp ult i64 %sub1.i.i.i, 4 br i1 %cmp.i210.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end.i211.i if.end.i211.i: ; preds = %tx_helper_get_space_left.exit.i.i store i64 2, ptr %num_stream_iovec.i.i, align 8 - %130 = load ptr, ptr %arrayidx.i.i110, align 8 - %call6.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %130, i64 noundef %i.0.i.i, ptr noundef nonnull %shdr.i.i, ptr noundef nonnull %iov.i.i82, ptr noundef nonnull %num_stream_iovec.i.i) #10 + %129 = load ptr, ptr %arrayidx.i.i110, align 8 + %call6.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %129, i64 noundef %i.0.i.i, ptr noundef nonnull %shdr.i.i, ptr noundef nonnull %iov.i.i82, ptr noundef nonnull %num_stream_iovec.i.i) #10 %tobool.not.i212.i = icmp eq i32 %call6.i.i, 0 br i1 %tobool.not.i212.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end8.i.i if.end8.i.i: ; preds = %if.end.i211.i - %131 = load i64, ptr %offset.i.i, align 8 - store i64 %131, ptr %chdr.i.i, align 8 - %132 = load i64, ptr %len.i.i111, align 8 - %cmp12.i.i = icmp eq i64 %132, 0 + %130 = load i64, ptr %offset.i.i, align 8 + store i64 %130, ptr %chdr.i.i, align 8 + %131 = load i64, ptr %len.i.i111, align 8 + %cmp12.i.i = icmp eq i64 %131, 0 br i1 %cmp12.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end14.i.i if.end14.i.i: ; preds = %if.end8.i.i store i64 0, ptr %len10.i.i, align 8 %call.i.i213.i = call i64 @ossl_quic_wire_get_encoded_frame_len_crypto_hdr(ptr noundef nonnull %chdr.i.i) #10 - store i64 %132, ptr %len10.i.i, align 8 + store i64 %131, ptr %len10.i.i, align 8 %cmp5.i.i.i = icmp eq i64 %call.i.i213.i, 0 br i1 %cmp5.i.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %determine_crypto_len.exit.i.i determine_crypto_len.exit.i.i: ; preds = %if.end14.i.i %dec.i.i.i = add i64 %call.i.i213.i, -1 - %call8.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i, i64 noundef %132, i64 noundef %dec.i.i.i, ptr noundef nonnull %hdr_bytes.i.i, ptr noundef nonnull %len10.i.i), !range !9 + %call8.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i, i64 noundef %131, i64 noundef %dec.i.i.i, ptr noundef nonnull %hdr_bytes.i.i, ptr noundef nonnull %len10.i.i), !range !9 %tobool17.not.i.i = icmp eq i32 %call8.i.i.i, 0 br i1 %tobool17.not.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end19.i.i if.end19.i.i: ; preds = %determine_crypto_len.exit.i.i - %133 = load i64, ptr %len10.i.i, align 8 - %134 = load i64, ptr %num_stream_iovec.i.i, align 8 - call void @ossl_quic_sstream_adjust_iov(i64 noundef %133, ptr noundef nonnull %iov.i.i82, i64 noundef %134) #10 - %135 = load i64, ptr %num_iovec.i.i, align 8 - %add.i214.i = add i64 %135, 3 - %136 = load i64, ptr %alloc_iovec.i.i206.i, align 8 - %cmp.not.i.i215.i = icmp ult i64 %136, %add.i214.i + %132 = load i64, ptr %len10.i.i, align 8 + %133 = load i64, ptr %num_stream_iovec.i.i, align 8 + call void @ossl_quic_sstream_adjust_iov(i64 noundef %132, ptr noundef nonnull %iov.i.i82, i64 noundef %133) #10 + %134 = load i64, ptr %num_iovec.i.i, align 8 + %add.i214.i = add i64 %134, 3 + %135 = load i64, ptr %alloc_iovec.i.i206.i, align 8 + %cmp.not.i.i215.i = icmp ult i64 %135, %add.i214.i br i1 %cmp.not.i.i215.i, label %if.end.i.i220.i, label %if.end27.i.i113 if.end.i.i220.i: ; preds = %if.end19.i.i - %cmp2.not.i.i221.i = icmp eq i64 %136, 0 - %mul.i.i222.i = shl i64 %136, 1 + %cmp2.not.i.i221.i = icmp eq i64 %135, 0 + %mul.i.i222.i = shl i64 %135, 1 %spec.select.i.i223.i = select i1 %cmp2.not.i.i221.i, i64 8, i64 %mul.i.i222.i - %137 = load ptr, ptr %iovec4.i.i207.i, align 8 + %136 = load ptr, ptr %iovec4.i.i207.i, align 8 %mul5.i.i224.i = shl i64 %spec.select.i.i223.i, 4 - %call.i21.i.i = call ptr @CRYPTO_realloc(ptr noundef %137, i64 noundef %mul5.i.i224.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %call.i21.i.i = call ptr @CRYPTO_realloc(ptr noundef %136, i64 noundef %mul5.i.i224.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 %cmp6.i.i225.i = icmp eq ptr %call.i21.i.i, null br i1 %cmp6.i.i225.i, label %txp_generate_crypto_frames.exit.i, label %if.end8.i.i226.i @@ -1958,7 +1950,7 @@ if.end8.i.i226.i: ; preds = %if.end.i.i220.i br label %if.end27.i.i113 if.end27.i.i113: ; preds = %if.end8.i.i226.i, %if.end19.i.i - %call28.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) + %call28.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp29.i.i = icmp eq ptr %call28.i.i, null br i1 %cmp29.i.i, label %txp_generate_crypto_frames.exit.i, label %if.end31.i.i @@ -1974,7 +1966,7 @@ if.then34.i.i: ; preds = %if.end31.i.i br i1 %tobool.not.i24.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end.i25.i.i if.end.i25.i.i: ; preds = %if.then34.i.i - %wpkt2.i.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i) #10 %bf.load.i.i.i.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i.i.i = and i8 %bf.load.i.i.i.i, -2 @@ -1983,54 +1975,54 @@ if.end.i25.i.i: ; preds = %if.then34.i.i br label %txp_generate_crypto_frames.exit.thread.i if.end35.i.i114: ; preds = %if.end31.i.i - %call36.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call36.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool37.not.i.i = icmp eq i32 %call36.i.i, 0 br i1 %tobool37.not.i.i, label %txp_generate_crypto_frames.exit.i, label %for.cond40.preheader.i.i for.cond40.preheader.i.i: ; preds = %if.end35.i.i114 - %138 = load i64, ptr %num_stream_iovec.i.i, align 8 - %cmp4138.not.i.i = icmp eq i64 %138, 0 + %137 = load i64, ptr %num_stream_iovec.i.i, align 8 + %cmp4138.not.i.i = icmp eq i64 %137, 0 br i1 %cmp4138.not.i.i, label %for.end.i.i, label %for.body.i.i for.body.i.i: ; preds = %for.cond40.preheader.i.i, %tx_helper_append_iovec.exit.i.i %i.139.i.i = phi i64 [ %inc.i216.i, %tx_helper_append_iovec.exit.i.i ], [ 0, %for.cond40.preheader.i.i ] %arrayidx42.i.i = getelementptr inbounds [2 x %struct.ossl_qtx_iovec_st], ptr %iov.i.i82, i64 0, i64 %i.139.i.i - %139 = load ptr, ptr %arrayidx42.i.i, align 16 + %138 = load ptr, ptr %arrayidx42.i.i, align 16 %buf_len.i.i = getelementptr inbounds [2 x %struct.ossl_qtx_iovec_st], ptr %iov.i.i82, i64 0, i64 %i.139.i.i, i32 1 - %140 = load i64, ptr %buf_len.i.i, align 8 - %141 = load ptr, ptr %arrayidx11349, align 16 - %142 = load i32, ptr %enc_level2.i.i, align 16 - %idxprom.i.i.i115 = zext i32 %142 to i64 - %cmp.i.i.i116 = icmp eq i64 %140, 0 + %139 = load i64, ptr %buf_len.i.i, align 8 + %140 = load ptr, ptr %arrayidx11348, align 16 + %141 = load i32, ptr %enc_level2.i.i, align 16 + %idxprom.i.i.i115 = zext i32 %141 to i64 + %cmp.i.i.i116 = icmp eq i64 %139, 0 br i1 %cmp.i.i.i116, label %tx_helper_append_iovec.exit.i.i, label %if.end.i26.i.i if.end.i26.i.i: ; preds = %for.body.i.i %bf.load.i27.i.i = load i8, ptr %reserve_allowed.i.i, align 4 - %143 = and i8 %bf.load.i27.i.i, 2 - %tobool.not.i28.i.i = icmp eq i8 %143, 0 + %142 = and i8 %bf.load.i27.i.i, 2 + %tobool.not.i28.i.i = icmp eq i8 %142, 0 br i1 %tobool.not.i28.i.i, label %if.end9.i.i.i, label %tx_helper_append_iovec.exit.i.i if.end9.i.i.i: ; preds = %if.end.i26.i.i - %144 = load i64, ptr %num_iovec.i.i, align 8 - %add.i.i.i = add i64 %144, 1 - %alloc_iovec.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 3 - %145 = load i64, ptr %alloc_iovec.i.i.i.i, align 8 - %cmp.not.i.i.i.i = icmp ult i64 %145, %add.i.i.i + %143 = load i64, ptr %num_iovec.i.i, align 8 + %add.i.i.i = add i64 %143, 1 + %alloc_iovec.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 3 + %144 = load i64, ptr %alloc_iovec.i.i.i.i, align 8 + %cmp.not.i.i.i.i = icmp ult i64 %144, %add.i.i.i br i1 %cmp.not.i.i.i.i, label %if.end.i.i.i.i, label %if.end9.if.end12_crit_edge.i.i.i if.end9.if.end12_crit_edge.i.i.i: ; preds = %if.end9.i.i.i - %iovec.phi.trans.insert.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 + %iovec.phi.trans.insert.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 %.pre.i.i.i = load ptr, ptr %iovec.phi.trans.insert.i.i.i, align 8 br label %if.end12.i.i.i if.end.i.i.i.i: ; preds = %if.end9.i.i.i - %cmp2.not.i.i.i.i = icmp eq i64 %145, 0 - %mul.i.i.i.i = shl i64 %145, 1 + %cmp2.not.i.i.i.i = icmp eq i64 %144, 0 + %mul.i.i.i.i = shl i64 %144, 1 %spec.select.i.i.i.i = select i1 %cmp2.not.i.i.i.i, i64 8, i64 %mul.i.i.i.i - %iovec4.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 - %146 = load ptr, ptr %iovec4.i.i.i.i, align 8 + %iovec4.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 + %145 = load ptr, ptr %iovec4.i.i.i.i, align 8 %mul5.i.i.i.i = shl i64 %spec.select.i.i.i.i, 4 - %call.i.i.i.i = call ptr @CRYPTO_realloc(ptr noundef %146, i64 noundef %mul5.i.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %call.i.i.i.i = call ptr @CRYPTO_realloc(ptr noundef %145, i64 noundef %mul5.i.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 %cmp6.i.i.i.i = icmp eq ptr %call.i.i.i.i, null br i1 %cmp6.i.i.i.i, label %tx_helper_append_iovec.exit.i.i, label %if.end8.i.i.i.i @@ -2041,27 +2033,27 @@ if.end8.i.i.i.i: ; preds = %if.end.i.i.i.i br label %if.end12.i.i.i if.end12.i.i.i: ; preds = %if.end8.i.i.i.i, %if.end9.if.end12_crit_edge.i.i.i - %147 = phi i64 [ %144, %if.end9.if.end12_crit_edge.i.i.i ], [ %.pre14.i.i.i, %if.end8.i.i.i.i ] - %148 = phi ptr [ %.pre.i.i.i, %if.end9.if.end12_crit_edge.i.i.i ], [ %call.i.i.i.i, %if.end8.i.i.i.i ] - %iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 - %arrayidx14.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %148, i64 %147 - store ptr %139, ptr %arrayidx14.i.i.i, align 8 - %149 = load ptr, ptr %iovec.i.i.i, align 8 + %146 = phi i64 [ %143, %if.end9.if.end12_crit_edge.i.i.i ], [ %.pre14.i.i.i, %if.end8.i.i.i.i ] + %147 = phi ptr [ %.pre.i.i.i, %if.end9.if.end12_crit_edge.i.i.i ], [ %call.i.i.i.i, %if.end8.i.i.i.i ] + %iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 + %arrayidx14.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %147, i64 %146 + store ptr %138, ptr %arrayidx14.i.i.i, align 8 + %148 = load ptr, ptr %iovec.i.i.i, align 8 + %149 = load i64, ptr %num_iovec.i.i, align 8 + %buf_len19.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %148, i64 %149, i32 1 + store i64 %139, ptr %buf_len19.i.i.i, align 8 %150 = load i64, ptr %num_iovec.i.i, align 8 - %buf_len19.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %149, i64 %150, i32 1 - store i64 %140, ptr %buf_len19.i.i.i, align 8 - %151 = load i64, ptr %num_iovec.i.i, align 8 - %inc.i.i.i = add i64 %151, 1 + %inc.i.i.i = add i64 %150, 1 store i64 %inc.i.i.i, ptr %num_iovec.i.i, align 8 - %152 = load i64, ptr %bytes_appended.i.i, align 16 - %add21.i.i.i = add i64 %152, %140 + %151 = load i64, ptr %bytes_appended.i.i, align 16 + %add21.i.i.i = add i64 %151, %139 store i64 %add21.i.i.i, ptr %bytes_appended.i.i, align 16 br label %tx_helper_append_iovec.exit.i.i tx_helper_append_iovec.exit.i.i: ; preds = %if.end12.i.i.i, %if.end.i.i.i.i, %if.end.i26.i.i, %for.body.i.i %inc.i216.i = add nuw i64 %i.139.i.i, 1 - %153 = load i64, ptr %num_stream_iovec.i.i, align 8 - %cmp41.i.i = icmp ult i64 %inc.i216.i, %153 + %152 = load i64, ptr %num_stream_iovec.i.i, align 8 + %cmp41.i.i = icmp ult i64 %inc.i216.i, %152 br i1 %cmp41.i.i, label %for.body.i.i, label %for.end.i.i, !llvm.loop !11 for.end.i.i: ; preds = %tx_helper_append_iovec.exit.i.i, %for.cond40.preheader.i.i @@ -2070,16 +2062,16 @@ for.end.i.i: ; preds = %tx_helper_append_io %bf.set.i.i.i = or i8 %bf.load.i32.i.i, 1 store i8 %bf.set.i.i.i, ptr %reserve_allowed.i.i, align 4 store i64 -1, ptr %chunk.i.i, align 8 - %154 = load i64, ptr %chdr.i.i, align 8 - store i64 %154, ptr %start.i.i, align 8 - %155 = load i64, ptr %len10.i.i, align 8 - %add48.i.i = add i64 %154, -1 - %sub.i.i = add i64 %add48.i.i, %155 + %153 = load i64, ptr %chdr.i.i, align 8 + store i64 %153, ptr %start.i.i, align 8 + %154 = load i64, ptr %len10.i.i, align 8 + %add48.i.i = add i64 %153, -1 + %sub.i.i = add i64 %add48.i.i, %154 store i64 %sub.i.i, ptr %end.i.i, align 8 %bf.load.i217.i = load i8, ptr %has_fin.i.i, align 8 %bf.clear.i218.i = and i8 %bf.load.i217.i, -2 store i8 %bf.clear.i218.i, ptr %has_fin.i.i, align 8 - %call49.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %124, ptr noundef nonnull %chunk.i.i) #10 + %call49.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %123, ptr noundef nonnull %chunk.i.i) #10 %tobool50.not.i.i = icmp eq i32 %call49.i.i, 0 %inc54.i.i = add i64 %i.1.lcssa.i.i, 1 br i1 %tobool50.not.i.i, label %txp_generate_crypto_frames.exit.i, label %for.cond.i.i @@ -2103,114 +2095,114 @@ txp_generate_crypto_frames.exit.i: ; preds = %for.end.i.i, %if.en br label %if.then337.i if.end244.i: ; preds = %txp_generate_crypto_frames.exit.thread.i, %if.end234.i - %have_ack_eliciting.i.3 = phi i32 [ %have_ack_eliciting.i.1, %if.end234.i ], [ %125, %txp_generate_crypto_frames.exit.thread.i ] - %156 = and i32 %a.sroa.0.0.copyload.i, 256 - %tobool248.not.i = icmp eq i32 %156, 0 + %have_ack_eliciting.i.3 = phi i32 [ %have_ack_eliciting.i.1, %if.end234.i ], [ %124, %txp_generate_crypto_frames.exit.thread.i ] + %155 = and i32 %a.sroa.0.0.copyload.i, 256 + %tobool248.not.i = icmp eq i32 %155, 0 br i1 %tobool248.not.i, label %if.end260.i, label %land.lhs.true249.i land.lhs.true249.i: ; preds = %if.end244.i %bf.load250.i = load i16, ptr %want_ack.i, align 8 - %157 = and i16 %bf.load250.i, 2048 - %tobool254.not.i = icmp eq i16 %157, 0 + %156 = and i16 %bf.load250.i, 2048 + %tobool254.not.i = icmp eq i16 %156, 0 br i1 %tobool254.not.i, label %if.end260.i, label %if.then255.i if.then255.i: ; preds = %land.lhs.true249.i - %stream_head.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 3 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i219) + %stream_head.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 3 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %f37.i) - %158 = load ptr, ptr %qsm.i, align 8 - call void @ossl_quic_stream_iter_init(ptr noundef nonnull %it.i219, ptr noundef %158, i32 noundef 1) #10 - %159 = load ptr, ptr %stream2.i, align 8 - %cmp.not160.i = icmp eq ptr %159, null - br i1 %cmp.not160.i, label %txp_generate_stream_related.exit.thread366, label %for.body.i230 - -for.body.i230: ; preds = %if.then255.i, %if.end163.i251 - %have_ack_eliciting.i.4 = phi i32 [ %have_ack_eliciting.i.11, %if.end163.i251 ], [ %have_ack_eliciting.i.3, %if.then255.i ] - %160 = phi ptr [ %241, %if.end163.i251 ], [ %159, %if.then255.i ] - %conn_consumed.0161.i = phi i64 [ %conn_consumed.1.i, %if.end163.i251 ], [ 0, %if.then255.i ] - call void @ossl_quic_stream_iter_next(ptr noundef nonnull %it.i219) #10 - %161 = load ptr, ptr %stream2.i, align 8 - %txp_sent_fc.i231 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 15 - %bf.load.i232 = load i64, ptr %txp_sent_fc.i231, align 8 - %bf.clear12.i = and i64 %bf.load.i232, -6174015489 - store i64 %bf.clear12.i, ptr %txp_sent_fc.i231, align 8 - %txp_txfc_new_credit_consumed.i233 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 9 - store i64 0, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %162 = and i64 %bf.load.i232, 17179869184 - %tobool.not.i234 = icmp eq i64 %162, 0 - br i1 %tobool.not.i234, label %if.end30.i241, label %if.then.i - -if.then.i: ; preds = %for.body.i230 - %call.i235 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %cmp16.i = icmp eq ptr %call.i235, null - br i1 %cmp16.i, label %txp_generate_stream_related.exit.thread, label %if.end.i236 - -if.end.i236: ; preds = %if.then.i - %id.i237 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %163 = load <2 x i64>, ptr %id.i237, align 8 - store <2 x i64> %163, ptr %f.i, align 16 - %call18.i = call i32 @ossl_quic_wire_encode_frame_stop_sending(ptr noundef nonnull %call.i235, ptr noundef nonnull %f.i) #10 - %tobool19.not.i238 = icmp eq i32 %call18.i, 0 - br i1 %tobool19.not.i238, label %if.then20.i, label %if.end21.i - -if.then20.i: ; preds = %if.end.i236 - %bf.load.i.i332 = load i8, ptr %active.i.i, align 8 - %bf.clear.i.i333 = and i8 %bf.load.i.i332, 1 - %tobool.not.i.i334 = icmp eq i8 %bf.clear.i.i333, 0 - br i1 %tobool.not.i.i334, label %txp_generate_stream_related.exit.thread371, label %if.end.i.i335 - -if.end.i.i335: ; preds = %if.then20.i - %wpkt2.i.i.i336 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i336) #10 - %bf.load.i.i.i338 = load i8, ptr %active.i.i, align 8 - %bf.clear.i.i.i339 = and i8 %bf.load.i.i.i338, -2 - store i8 %bf.clear.i.i.i339, ptr %active.i.i, align 8 + %157 = load ptr, ptr %qsm.i, align 8 + call void @ossl_quic_stream_iter_init(ptr noundef nonnull %it.i218, ptr noundef %157, i32 noundef 1) #10 + %158 = load ptr, ptr %stream2.i, align 8 + %cmp.not160.i = icmp eq ptr %158, null + br i1 %cmp.not160.i, label %txp_generate_stream_related.exit.thread365, label %for.body.i229 + +for.body.i229: ; preds = %if.then255.i, %if.end163.i250 + %have_ack_eliciting.i.4 = phi i32 [ %have_ack_eliciting.i.11, %if.end163.i250 ], [ %have_ack_eliciting.i.3, %if.then255.i ] + %159 = phi ptr [ %240, %if.end163.i250 ], [ %158, %if.then255.i ] + %conn_consumed.0161.i = phi i64 [ %conn_consumed.1.i, %if.end163.i250 ], [ 0, %if.then255.i ] + call void @ossl_quic_stream_iter_next(ptr noundef nonnull %it.i218) #10 + %160 = load ptr, ptr %stream2.i, align 8 + %txp_sent_fc.i230 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 15 + %bf.load.i231 = load i64, ptr %txp_sent_fc.i230, align 8 + %bf.clear12.i = and i64 %bf.load.i231, -6174015489 + store i64 %bf.clear12.i, ptr %txp_sent_fc.i230, align 8 + %txp_txfc_new_credit_consumed.i232 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 9 + store i64 0, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %161 = and i64 %bf.load.i231, 17179869184 + %tobool.not.i233 = icmp eq i64 %161, 0 + br i1 %tobool.not.i233, label %if.end30.i240, label %if.then.i + +if.then.i: ; preds = %for.body.i229 + %call.i234 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %cmp16.i = icmp eq ptr %call.i234, null + br i1 %cmp16.i, label %txp_generate_stream_related.exit.thread, label %if.end.i235 + +if.end.i235: ; preds = %if.then.i + %id.i236 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %162 = load <2 x i64>, ptr %id.i236, align 8 + store <2 x i64> %162, ptr %f.i, align 16 + %call18.i = call i32 @ossl_quic_wire_encode_frame_stop_sending(ptr noundef nonnull %call.i234, ptr noundef nonnull %f.i) #10 + %tobool19.not.i237 = icmp eq i32 %call18.i, 0 + br i1 %tobool19.not.i237, label %if.then20.i, label %if.end21.i + +if.then20.i: ; preds = %if.end.i235 + %bf.load.i.i331 = load i8, ptr %active.i.i, align 8 + %bf.clear.i.i332 = and i8 %bf.load.i.i331, 1 + %tobool.not.i.i333 = icmp eq i8 %bf.clear.i.i332, 0 + br i1 %tobool.not.i.i333, label %txp_generate_stream_related.exit.thread370, label %if.end.i.i334 + +if.end.i.i334: ; preds = %if.then20.i + %wpkt2.i.i.i335 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i335) #10 + %bf.load.i.i.i337 = load i8, ptr %active.i.i, align 8 + %bf.clear.i.i.i338 = and i8 %bf.load.i.i.i337, -2 + store i8 %bf.clear.i.i.i338, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 -if.end21.i: ; preds = %if.end.i236 - %call22.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 +if.end21.i: ; preds = %if.end.i235 + %call22.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool23.not.i = icmp eq i32 %call22.i, 0 - br i1 %tobool23.not.i, label %txp_generate_stream_related.exit.thread, label %if.end25.i239 + br i1 %tobool23.not.i, label %txp_generate_stream_related.exit.thread, label %if.end25.i238 -if.end25.i239: ; preds = %if.end21.i +if.end25.i238: ; preds = %if.end21.i %bf.load.i70.i = load i8, ptr %reserve_allowed.i.i, align 4 - %bf.set.i.i240 = or i8 %bf.load.i70.i, 1 - store i8 %bf.set.i.i240, ptr %reserve_allowed.i.i, align 4 - %bf.load27.i = load i64, ptr %txp_sent_fc.i231, align 8 + %bf.set.i.i239 = or i8 %bf.load.i70.i, 1 + store i8 %bf.set.i.i239, ptr %reserve_allowed.i.i, align 4 + %bf.load27.i = load i64, ptr %txp_sent_fc.i230, align 8 %bf.set29.i = or i64 %bf.load27.i, 536870912 - store i64 %bf.set29.i, ptr %txp_sent_fc.i231, align 8 - br label %if.end30.i241 - -if.end30.i241: ; preds = %if.end25.i239, %for.body.i230 - %have_ack_eliciting.i.5 = phi i32 [ %have_ack_eliciting.i.4, %for.body.i230 ], [ 1, %if.end25.i239 ] - %bf.load31.i = phi i64 [ %bf.clear12.i, %for.body.i230 ], [ %bf.set29.i, %if.end25.i239 ] - %164 = and i64 %bf.load31.i, 34359738368 - %tobool35.not.i242 = icmp eq i64 %164, 0 - br i1 %tobool35.not.i242, label %if.end92.i, label %if.then36.i - -if.then36.i: ; preds = %if.end30.i241 - %165 = and i64 %bf.load31.i, 65280 - %cmp42.i = icmp eq i64 %165, 1280 + store i64 %bf.set29.i, ptr %txp_sent_fc.i230, align 8 + br label %if.end30.i240 + +if.end30.i240: ; preds = %if.end25.i238, %for.body.i229 + %have_ack_eliciting.i.5 = phi i32 [ %have_ack_eliciting.i.4, %for.body.i229 ], [ 1, %if.end25.i238 ] + %bf.load31.i = phi i64 [ %bf.clear12.i, %for.body.i229 ], [ %bf.set29.i, %if.end25.i238 ] + %163 = and i64 %bf.load31.i, 34359738368 + %tobool35.not.i241 = icmp eq i64 %163, 0 + br i1 %tobool35.not.i241, label %if.end92.i, label %if.then36.i + +if.then36.i: ; preds = %if.end30.i240 + %164 = and i64 %bf.load31.i, 65280 + %cmp42.i = icmp eq i64 %164, 1280 br i1 %cmp42.i, label %if.end49.i, label %txp_generate_stream_related.exit.thread if.end49.i: ; preds = %if.then36.i - %call50.i244 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %cmp51.i = icmp eq ptr %call50.i244, null - br i1 %cmp51.i, label %txp_generate_stream_related.exit.thread, label %if.end54.i245 - -if.end54.i245: ; preds = %if.end49.i - %id55.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %166 = load i64, ptr %id55.i, align 8 - store i64 %166, ptr %f37.i, align 8 - %reset_stream_aec.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 6 - %167 = load i64, ptr %reset_stream_aec.i, align 8 - store i64 %167, ptr %app_error_code57.i, align 8 - %bf.load.i71.i = load i64, ptr %txp_sent_fc.i231, align 8 - %168 = lshr i64 %bf.load.i71.i, 8 - %trunc.i.i246 = trunc i64 %168 to i8 - switch i8 %trunc.i.i246, label %txp_generate_stream_related.exit.thread [ + %call50.i243 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %cmp51.i = icmp eq ptr %call50.i243, null + br i1 %cmp51.i, label %txp_generate_stream_related.exit.thread, label %if.end54.i244 + +if.end54.i244: ; preds = %if.end49.i + %id55.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %165 = load i64, ptr %id55.i, align 8 + store i64 %165, ptr %f37.i, align 8 + %reset_stream_aec.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 6 + %166 = load i64, ptr %reset_stream_aec.i, align 8 + store i64 %166, ptr %app_error_code57.i, align 8 + %bf.load.i71.i = load i64, ptr %txp_sent_fc.i230, align 8 + %167 = lshr i64 %bf.load.i71.i, 8 + %trunc.i.i245 = trunc i64 %167 to i8 + switch i8 %trunc.i.i245, label %txp_generate_stream_related.exit.thread [ i8 6, label %ossl_quic_stream_send_get_final_size.exit.thread110.i i8 2, label %ossl_quic_stream_send_get_final_size.exit.i i8 3, label %ossl_quic_stream_send_get_final_size.exit.thread110.i @@ -2218,21 +2210,21 @@ if.end54.i245: ; preds = %if.end49.i i8 5, label %ossl_quic_stream_send_get_final_size.exit.thread110.i ] -ossl_quic_stream_send_get_final_size.exit.thread110.i: ; preds = %if.end54.i245, %if.end54.i245, %if.end54.i245, %if.end54.i245 - %send_final_size.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 10 - %169 = load i64, ptr %send_final_size.i.i, align 8 - store i64 %169, ptr %final_size.i, align 8 +ossl_quic_stream_send_get_final_size.exit.thread110.i: ; preds = %if.end54.i244, %if.end54.i244, %if.end54.i244, %if.end54.i244 + %send_final_size.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 10 + %168 = load i64, ptr %send_final_size.i.i, align 8 + store i64 %168, ptr %final_size.i, align 8 br label %if.end61.i -ossl_quic_stream_send_get_final_size.exit.i: ; preds = %if.end54.i245 - %sstream.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 11 - %170 = load ptr, ptr %sstream.i.i, align 8 - %call.i.i330 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %170, ptr noundef nonnull %final_size.i) #10 - %tobool59.not.i = icmp eq i32 %call.i.i330, 0 +ossl_quic_stream_send_get_final_size.exit.i: ; preds = %if.end54.i244 + %sstream.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 11 + %169 = load ptr, ptr %sstream.i.i, align 8 + %call.i.i329 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %169, ptr noundef nonnull %final_size.i) #10 + %tobool59.not.i = icmp eq i32 %call.i.i329, 0 br i1 %tobool59.not.i, label %txp_generate_stream_related.exit.thread, label %if.end61.i if.end61.i: ; preds = %ossl_quic_stream_send_get_final_size.exit.i, %ossl_quic_stream_send_get_final_size.exit.thread110.i - %call62.i = call i32 @ossl_quic_wire_encode_frame_reset_stream(ptr noundef nonnull %call50.i244, ptr noundef nonnull %f37.i) #10 + %call62.i = call i32 @ossl_quic_wire_encode_frame_reset_stream(ptr noundef nonnull %call50.i243, ptr noundef nonnull %f37.i) #10 %tobool63.not.i = icmp eq i32 %call62.i, 0 br i1 %tobool63.not.i, label %if.then64.i, label %if.end65.i @@ -2240,293 +2232,293 @@ if.then64.i: ; preds = %if.end61.i %bf.load.i73.i = load i8, ptr %active.i.i, align 8 %bf.clear.i74.i = and i8 %bf.load.i73.i, 1 %tobool.not.i75.i = icmp eq i8 %bf.clear.i74.i, 0 - br i1 %tobool.not.i75.i, label %txp_generate_stream_related.exit.thread371, label %if.end.i76.i + br i1 %tobool.not.i75.i, label %txp_generate_stream_related.exit.thread370, label %if.end.i76.i if.end.i76.i: ; preds = %if.then64.i - %wpkt2.i.i77.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i77.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i77.i) #10 %bf.load.i.i79.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i80.i = and i8 %bf.load.i.i79.i, -2 store i8 %bf.clear.i.i80.i, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 if.end65.i: ; preds = %if.end61.i - %call66.i247 = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 - %tobool67.not.i = icmp eq i32 %call66.i247, 0 + %call66.i246 = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 + %tobool67.not.i = icmp eq i32 %call66.i246, 0 br i1 %tobool67.not.i, label %txp_generate_stream_related.exit.thread, label %if.end69.i if.end69.i: ; preds = %if.end65.i %bf.load.i84.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.set.i85.i = or i8 %bf.load.i84.i, 1 store i8 %bf.set.i85.i, ptr %reserve_allowed.i.i, align 4 - %bf.load71.i = load i64, ptr %txp_sent_fc.i231, align 8 + %bf.load71.i = load i64, ptr %txp_sent_fc.i230, align 8 %bf.set73.i = or i64 %bf.load71.i, 1073741824 - store i64 %bf.set73.i, ptr %txp_sent_fc.i231, align 8 - %171 = load i64, ptr %final_size.i, align 8 - %txfc.i248 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 13 - %call75.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i248) #10 - %cmp76.not.i = icmp ugt i64 %171, %call75.i + store i64 %bf.set73.i, ptr %txp_sent_fc.i230, align 8 + %170 = load i64, ptr %final_size.i, align 8 + %txfc.i247 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 13 + %call75.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i247) #10 + %cmp76.not.i = icmp ugt i64 %170, %call75.i br i1 %cmp76.not.i, label %txp_generate_stream_related.exit.thread, label %if.end87.i if.end87.i: ; preds = %if.end69.i - %172 = load i64, ptr %final_size.i, align 8 - %call90.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i248) #10 - %sub.i249 = sub i64 %172, %call90.i - store i64 %sub.i249, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %bf.load93.pre.i = load i64, ptr %txp_sent_fc.i231, align 8 + %171 = load i64, ptr %final_size.i, align 8 + %call90.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i247) #10 + %sub.i248 = sub i64 %171, %call90.i + store i64 %sub.i248, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %bf.load93.pre.i = load i64, ptr %txp_sent_fc.i230, align 8 br label %if.end92.i -if.end92.i: ; preds = %if.end87.i, %if.end30.i241 - %have_ack_eliciting.i.6 = phi i32 [ %have_ack_eliciting.i.5, %if.end30.i241 ], [ 1, %if.end87.i ] - %bf.load93.i = phi i64 [ %bf.load31.i, %if.end30.i241 ], [ %bf.load93.pre.i, %if.end87.i ] - %173 = and i64 %bf.load93.i, 16711680 - %cmp97.i = icmp eq i64 %173, 65536 - br i1 %cmp97.i, label %land.lhs.true.i319, label %if.end127.i - -land.lhs.true.i319: ; preds = %if.end92.i - %174 = and i64 %bf.load93.i, 8589934592 - %tobool103.not.i = icmp eq i64 %174, 0 - br i1 %tobool103.not.i, label %lor.lhs.false.i327, label %if.then106.i - -lor.lhs.false.i327: ; preds = %land.lhs.true.i319 - %rxfc.i328 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 14 - %call104.i329 = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef nonnull %rxfc.i328, i32 noundef 0) #10 - %tobool105.not.i = icmp eq i32 %call104.i329, 0 +if.end92.i: ; preds = %if.end87.i, %if.end30.i240 + %have_ack_eliciting.i.6 = phi i32 [ %have_ack_eliciting.i.5, %if.end30.i240 ], [ 1, %if.end87.i ] + %bf.load93.i = phi i64 [ %bf.load31.i, %if.end30.i240 ], [ %bf.load93.pre.i, %if.end87.i ] + %172 = and i64 %bf.load93.i, 16711680 + %cmp97.i = icmp eq i64 %172, 65536 + br i1 %cmp97.i, label %land.lhs.true.i318, label %if.end127.i + +land.lhs.true.i318: ; preds = %if.end92.i + %173 = and i64 %bf.load93.i, 8589934592 + %tobool103.not.i = icmp eq i64 %173, 0 + br i1 %tobool103.not.i, label %lor.lhs.false.i326, label %if.then106.i + +lor.lhs.false.i326: ; preds = %land.lhs.true.i318 + %rxfc.i327 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 14 + %call104.i328 = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef nonnull %rxfc.i327, i32 noundef 0) #10 + %tobool105.not.i = icmp eq i32 %call104.i328, 0 br i1 %tobool105.not.i, label %lor.lhs.false.if.end127_crit_edge.i, label %if.then106.i -lor.lhs.false.if.end127_crit_edge.i: ; preds = %lor.lhs.false.i327 - %.val.pre.i = load i64, ptr %txp_sent_fc.i231, align 8 +lor.lhs.false.if.end127_crit_edge.i: ; preds = %lor.lhs.false.i326 + %.val.pre.i = load i64, ptr %txp_sent_fc.i230, align 8 br label %if.end127.i -if.then106.i: ; preds = %lor.lhs.false.i327, %land.lhs.true.i319 - %call107.i320 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %cmp108.i321 = icmp eq ptr %call107.i320, null - br i1 %cmp108.i321, label %txp_generate_stream_related.exit.thread, label %if.end111.i322 +if.then106.i: ; preds = %lor.lhs.false.i326, %land.lhs.true.i318 + %call107.i319 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %cmp108.i320 = icmp eq ptr %call107.i319, null + br i1 %cmp108.i320, label %txp_generate_stream_related.exit.thread, label %if.end111.i321 -if.end111.i322: ; preds = %if.then106.i - %rxfc112.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 14 +if.end111.i321: ; preds = %if.then106.i + %rxfc112.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 14 %call113.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef nonnull %rxfc112.i) #10 - %id114.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %175 = load i64, ptr %id114.i, align 8 - %call115.i323 = call i32 @ossl_quic_wire_encode_frame_max_stream_data(ptr noundef nonnull %call107.i320, i64 noundef %175, i64 noundef %call113.i) #10 - %tobool116.not.i324 = icmp eq i32 %call115.i323, 0 - br i1 %tobool116.not.i324, label %if.then117.i, label %if.end118.i325 + %id114.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %174 = load i64, ptr %id114.i, align 8 + %call115.i322 = call i32 @ossl_quic_wire_encode_frame_max_stream_data(ptr noundef nonnull %call107.i319, i64 noundef %174, i64 noundef %call113.i) #10 + %tobool116.not.i323 = icmp eq i32 %call115.i322, 0 + br i1 %tobool116.not.i323, label %if.then117.i, label %if.end118.i324 -if.then117.i: ; preds = %if.end111.i322 +if.then117.i: ; preds = %if.end111.i321 %bf.load.i87.i = load i8, ptr %active.i.i, align 8 %bf.clear.i88.i = and i8 %bf.load.i87.i, 1 %tobool.not.i89.i = icmp eq i8 %bf.clear.i88.i, 0 - br i1 %tobool.not.i89.i, label %txp_generate_stream_related.exit.thread371, label %if.end.i90.i + br i1 %tobool.not.i89.i, label %txp_generate_stream_related.exit.thread370, label %if.end.i90.i if.end.i90.i: ; preds = %if.then117.i - %wpkt2.i.i91.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i91.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i91.i) #10 %bf.load.i.i93.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i94.i = and i8 %bf.load.i.i93.i, -2 store i8 %bf.clear.i.i94.i, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 -if.end118.i325: ; preds = %if.end111.i322 - %call119.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 +if.end118.i324: ; preds = %if.end111.i321 + %call119.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool120.not.i = icmp eq i32 %call119.i, 0 br i1 %tobool120.not.i, label %txp_generate_stream_related.exit.thread, label %if.end122.i -if.end122.i: ; preds = %if.end118.i325 +if.end122.i: ; preds = %if.end118.i324 %bf.load.i98.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.set.i99.i = or i8 %bf.load.i98.i, 1 store i8 %bf.set.i99.i, ptr %reserve_allowed.i.i, align 4 - %bf.load124.i326 = load i64, ptr %txp_sent_fc.i231, align 8 - %bf.set126.i = or i64 %bf.load124.i326, 268435456 - store i64 %bf.set126.i, ptr %txp_sent_fc.i231, align 8 + %bf.load124.i325 = load i64, ptr %txp_sent_fc.i230, align 8 + %bf.set126.i = or i64 %bf.load124.i325, 268435456 + store i64 %bf.set126.i, ptr %txp_sent_fc.i230, align 8 br label %if.end127.i if.end127.i: ; preds = %if.end122.i, %lor.lhs.false.if.end127_crit_edge.i, %if.end92.i %have_ack_eliciting.i.7 = phi i32 [ %have_ack_eliciting.i.6, %lor.lhs.false.if.end127_crit_edge.i ], [ 1, %if.end122.i ], [ %have_ack_eliciting.i.6, %if.end92.i ] %.val.i = phi i64 [ %.val.pre.i, %lor.lhs.false.if.end127_crit_edge.i ], [ %bf.set126.i, %if.end122.i ], [ %bf.load93.i, %if.end92.i ] - %176 = lshr i64 %.val.i, 8 - %trunc.i100.i = trunc i64 %176 to i8 - %177 = add i8 %trunc.i100.i, -4 - %switch.i.i250 = icmp ult i8 %177, -3 - br i1 %switch.i.i250, label %if.end163.i251, label %land.lhs.true130.i + %175 = lshr i64 %.val.i, 8 + %trunc.i100.i = trunc i64 %175 to i8 + %176 = add i8 %trunc.i100.i, -4 + %switch.i.i249 = icmp ult i8 %176, -3 + br i1 %switch.i.i249, label %if.end163.i250, label %land.lhs.true130.i land.lhs.true130.i: ; preds = %if.end127.i - %178 = trunc i64 %.val.i to i32 - %179 = lshr i32 %178, 8 - %bf.cast.i.i = and i32 %179, 255 - %180 = add nsw i32 %bf.cast.i.i, -7 - %narrow.i.i = icmp ult i32 %180, -2 - br i1 %narrow.i.i, label %if.then133.i253, label %if.end163.i251 - -if.then133.i253: ; preds = %land.lhs.true130.i - %181 = and i64 %.val.i, 34359738368 - %tobool139.not.i254 = icmp eq i64 %181, 0 - br i1 %tobool139.not.i254, label %if.end151.i, label %txp_generate_stream_related.exit.thread - -if.end151.i: ; preds = %if.then133.i253 - %id152.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %182 = load i64, ptr %id152.i, align 8 - %sstream.i255 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 11 - %183 = load ptr, ptr %sstream.i255, align 8 - %txfc153.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 13 + %177 = trunc i64 %.val.i to i32 + %178 = lshr i32 %177, 8 + %bf.cast.i.i = and i32 %178, 255 + %179 = add nsw i32 %bf.cast.i.i, -7 + %narrow.i.i = icmp ult i32 %179, -2 + br i1 %narrow.i.i, label %if.then133.i252, label %if.end163.i250 + +if.then133.i252: ; preds = %land.lhs.true130.i + %180 = and i64 %.val.i, 34359738368 + %tobool139.not.i253 = icmp eq i64 %180, 0 + br i1 %tobool139.not.i253, label %if.end151.i, label %txp_generate_stream_related.exit.thread + +if.end151.i: ; preds = %if.then133.i252 + %id152.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %181 = load i64, ptr %id152.i, align 8 + %sstream.i254 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 11 + %182 = load ptr, ptr %sstream.i254, align 8 + %txfc153.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 13 call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(192) %chunks.i.i, i8 0, i64 192, i1 false) - %184 = load i32, ptr %enc_level2.i.i, align 16 - %185 = load ptr, ptr %tpkt.i, align 8 + %183 = load i32, ptr %enc_level2.i.i, align 16 + %184 = load ptr, ptr %tpkt.i, align 8 %call.i101.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc153.i) #10 - br label %for.body.i.i256 + br label %for.body.i.i255 for.cond11.preheader.i.i: ; preds = %if.end.i102.i - %cmp56.not.i.i = icmp eq ptr %161, null - %idxprom.i.i263 = zext i32 %184 to i64 - %alloc_iovec.i.i.i264 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i263, i32 3 - %iovec4.i.i.i265 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i263, i32 2 + %cmp56.not.i.i = icmp eq ptr %160, null + %idxprom.i.i262 = zext i32 %183 to i64 + %alloc_iovec.i.i.i263 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i262, i32 3 + %iovec4.i.i.i264 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i262, i32 2 br label %for.cond11.i.i -for.body.i.i256: ; preds = %land.lhs.true.i.i, %if.end151.i +for.body.i.i255: ; preds = %land.lhs.true.i.i, %if.end151.i %cmp6.i.i = phi i1 [ true, %if.end151.i ], [ false, %land.lhs.true.i.i ] %i.0166.i.i = phi i64 [ 0, %if.end151.i ], [ 1, %land.lhs.true.i.i ] - %arrayidx.i.i257 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i + %arrayidx.i.i256 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i %num_stream_iovec.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 3 store i64 2, ptr %num_stream_iovec.i.i.i, align 16 %iov.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 2 - %call.i.i.i258 = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %183, i64 noundef %i.0166.i.i, ptr noundef nonnull %arrayidx.i.i257, ptr noundef nonnull %iov.i.i.i, ptr noundef nonnull %num_stream_iovec.i.i.i) #10 + %call.i.i.i257 = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %182, i64 noundef %i.0166.i.i, ptr noundef nonnull %arrayidx.i.i256, ptr noundef nonnull %iov.i.i.i, ptr noundef nonnull %num_stream_iovec.i.i.i) #10 %valid.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 4 - store i32 %call.i.i.i258, ptr %valid.i.i.i, align 8 - %tobool.not.i.i.i259 = icmp eq i32 %call.i.i.i258, 0 - br i1 %tobool.not.i.i.i259, label %if.end.i102.i, label %if.end.i.i.i260 - -if.end.i.i.i260: ; preds = %for.body.i.i256 - %len.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 2 - %186 = load i64, ptr %len.i.i.i, align 16 - %cmp.not.i.i.i261 = icmp eq i64 %186, 0 - br i1 %cmp.not.i.i.i261, label %lor.rhs.i.i.i, label %if.end10.i.i.i - -lor.rhs.i.i.i: ; preds = %if.end.i.i.i260 - %is_fin.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 4 + store i32 %call.i.i.i257, ptr %valid.i.i.i, align 8 + %tobool.not.i.i.i258 = icmp eq i32 %call.i.i.i257, 0 + br i1 %tobool.not.i.i.i258, label %if.end.i102.i, label %if.end.i.i.i259 + +if.end.i.i.i259: ; preds = %for.body.i.i255 + %len.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 2 + %185 = load i64, ptr %len.i.i.i, align 16 + %cmp.not.i.i.i260 = icmp eq i64 %185, 0 + br i1 %cmp.not.i.i.i260, label %lor.rhs.i.i.i, label %if.end10.i.i.i + +lor.rhs.i.i.i: ; preds = %if.end.i.i.i259 + %is_fin.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 4 %bf.load.i.i104.i = load i8, ptr %is_fin.i.i.i, align 16 - %187 = and i8 %bf.load.i.i104.i, 2 - %tobool5.not.i.i.i = icmp eq i8 %187, 0 + %186 = and i8 %bf.load.i.i104.i, 2 + %tobool5.not.i.i.i = icmp eq i8 %186, 0 br i1 %tobool5.not.i.i.i, label %txp_generate_stream_related.exit, label %if.end10.i.i.i -if.end10.i.i.i: ; preds = %lor.rhs.i.i.i, %if.end.i.i.i260 +if.end10.i.i.i: ; preds = %lor.rhs.i.i.i, %if.end.i.i.i259 %orig_len.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 1 - store i64 %186, ptr %orig_len.i.i.i, align 8 + store i64 %185, ptr %orig_len.i.i.i, align 8 %call13.i.i.i = call i64 @ossl_quic_txfc_get_credit(ptr noundef nonnull %txfc153.i, i64 noundef %conn_consumed.0161.i) #10 %call14.i.i.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc153.i) #10 - %add.i.i.i262 = add i64 %call14.i.i.i, %call13.i.i.i - %188 = load i64, ptr %len.i.i.i, align 16 - %cmp17.not.i.i.i = icmp eq i64 %188, 0 + %add.i.i.i261 = add i64 %call14.i.i.i, %call13.i.i.i + %187 = load i64, ptr %len.i.i.i, align 16 + %cmp17.not.i.i.i = icmp eq i64 %187, 0 br i1 %cmp17.not.i.i.i, label %if.end10.i.land.lhs.true43.i_crit_edge.i.i, label %land.lhs.true.i.i.i if.end10.i.land.lhs.true43.i_crit_edge.i.i: ; preds = %if.end10.i.i.i - %is_fin45.i.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 4 + %is_fin45.i.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 4 %bf.load46.i.pre.i.i = load i8, ptr %is_fin45.i.phi.trans.insert.i.i, align 16 br label %land.lhs.true43.i.i.i land.lhs.true.i.i.i: ; preds = %if.end10.i.i.i - %offset.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 1 - %189 = load i64, ptr %offset.i.i.i, align 8 - %add22.i.i.i = add i64 %189, %188 - %cmp23.i.i.i = icmp ugt i64 %add22.i.i.i, %add.i.i.i262 + %offset.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 1 + %188 = load i64, ptr %offset.i.i.i, align 8 + %add22.i.i.i = add i64 %188, %187 + %cmp23.i.i.i = icmp ugt i64 %add22.i.i.i, %add.i.i.i261 br i1 %cmp23.i.i.i, label %if.end38.i.i.i, label %if.end.i102.i if.end38.i.i.i: ; preds = %land.lhs.true.i.i.i - %spec.select.i.i.i318 = call i64 @llvm.usub.sat.i64(i64 %add.i.i.i262, i64 %189) - store i64 %spec.select.i.i.i318, ptr %len.i.i.i, align 16 - %is_fin35.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 4 + %spec.select.i.i.i317 = call i64 @llvm.usub.sat.i64(i64 %add.i.i.i261, i64 %188) + store i64 %spec.select.i.i.i317, ptr %len.i.i.i, align 16 + %is_fin35.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 4 %bf.load36.i.i.i = load i8, ptr %is_fin35.i.i.i, align 16 %bf.clear37.i.i.i = and i8 %bf.load36.i.i.i, -3 store i8 %bf.clear37.i.i.i, ptr %is_fin35.i.i.i, align 16 - %.not.i.i.i = icmp ugt i64 %add.i.i.i262, %189 + %.not.i.i.i = icmp ugt i64 %add.i.i.i261, %188 br i1 %.not.i.i.i, label %if.end.i102.i, label %land.lhs.true43.i.i.i land.lhs.true43.i.i.i: ; preds = %if.end38.i.i.i, %if.end10.i.land.lhs.true43.i_crit_edge.i.i %bf.load46.i.i.i = phi i8 [ %bf.load46.i.pre.i.i, %if.end10.i.land.lhs.true43.i_crit_edge.i.i ], [ %bf.clear37.i.i.i, %if.end38.i.i.i ] - %190 = and i8 %bf.load46.i.i.i, 2 - %tobool50.not.i.i.i = icmp eq i8 %190, 0 + %189 = and i8 %bf.load46.i.i.i, 2 + %tobool50.not.i.i.i = icmp eq i8 %189, 0 br i1 %tobool50.not.i.i.i, label %if.then51.i.i.i, label %if.end.i102.i if.then51.i.i.i: ; preds = %land.lhs.true43.i.i.i store i32 0, ptr %valid.i.i.i, align 8 br label %if.end.i102.i -if.end.i102.i: ; preds = %if.then51.i.i.i, %land.lhs.true43.i.i.i, %if.end38.i.i.i, %land.lhs.true.i.i.i, %for.body.i.i256 +if.end.i102.i: ; preds = %if.then51.i.i.i, %land.lhs.true43.i.i.i, %if.end38.i.i.i, %land.lhs.true.i.i.i, %for.body.i.i255 br i1 %cmp6.i.i, label %land.lhs.true.i.i, label %for.cond11.preheader.i.i land.lhs.true.i.i: ; preds = %if.end.i102.i - %191 = load i32, ptr %valid.i.i, align 8 - %tobool8.not.i.i = icmp eq i32 %191, 0 - br i1 %tobool8.not.i.i, label %if.end158.thread124.i, label %for.body.i.i256, !llvm.loop !12 + %190 = load i32, ptr %valid.i.i, align 8 + %tobool8.not.i.i = icmp eq i32 %190, 0 + br i1 %tobool8.not.i.i, label %if.end158.thread124.i, label %for.body.i.i255, !llvm.loop !12 if.end158.thread124.i: ; preds = %land.lhs.true.i.i - store i64 0, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 0, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - %192 = load i64, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %add128.i = add i64 %192, %conn_consumed.0161.i - br label %if.end163.i251 + %191 = load i64, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %add128.i = add i64 %191, %conn_consumed.0161.i + br label %if.end163.i250 for.cond11.i.i: ; preds = %if.end203.i.i, %for.cond11.preheader.i.i %have_ack_eliciting.i.8 = phi i32 [ %have_ack_eliciting.i.7, %for.cond11.preheader.i.i ], [ 1, %if.end203.i.i ] %packet_full.0.i = phi i32 [ 0, %for.cond11.preheader.i.i ], [ %packet_full.1.i, %if.end203.i.i ] %i.1.i.i = phi i64 [ 0, %for.cond11.preheader.i.i ], [ %inc210.i.i, %if.end203.i.i ] %fc_new_hwm.0.i.i = phi i64 [ %call.i101.i, %for.cond11.preheader.i.i ], [ %fc_new_hwm.1.i.i, %if.end203.i.i ] - %193 = load i64, ptr %max_ppl3.i.i, align 8 + %192 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i79.i.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i.i103.i = and i8 %bf.load.i79.i.i, 1 %tobool.not.i80.i.i = icmp eq i8 %bf.clear.i.i103.i, 0 - br i1 %tobool.not.i80.i.i, label %cond.false.i.i.i317, label %tx_helper_get_space_left.exit.i.i266 + br i1 %tobool.not.i80.i.i, label %cond.false.i.i.i316, label %tx_helper_get_space_left.exit.i.i265 -cond.false.i.i.i317: ; preds = %for.cond11.i.i - %194 = load i64, ptr %reserve4.i.i, align 16 - br label %tx_helper_get_space_left.exit.i.i266 +cond.false.i.i.i316: ; preds = %for.cond11.i.i + %193 = load i64, ptr %reserve4.i.i, align 16 + br label %tx_helper_get_space_left.exit.i.i265 -tx_helper_get_space_left.exit.i.i266: ; preds = %cond.false.i.i.i317, %for.cond11.i.i - %cond.i.i.i267 = phi i64 [ %194, %cond.false.i.i.i317 ], [ 0, %for.cond11.i.i ] - %195 = load i64, ptr %bytes_appended.i.i, align 16 - %196 = add i64 %cond.i.i.i267, %195 - %sub1.i.i.i268 = sub i64 %193, %196 +tx_helper_get_space_left.exit.i.i265: ; preds = %cond.false.i.i.i316, %for.cond11.i.i + %cond.i.i.i266 = phi i64 [ %193, %cond.false.i.i.i316 ], [ 0, %for.cond11.i.i ] + %194 = load i64, ptr %bytes_appended.i.i, align 16 + %195 = add i64 %cond.i.i.i266, %194 + %sub1.i.i.i267 = sub i64 %192, %195 %rem.i.i = and i64 %i.1.i.i, 1 %arrayidx13.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i %valid14.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 4 - %197 = load i32, ptr %valid14.i.i, align 8 - %tobool15.not.i.i = icmp eq i32 %197, 0 + %196 = load i32, ptr %valid14.i.i, align 8 + %tobool15.not.i.i = icmp eq i32 %196, 0 br i1 %tobool15.not.i.i, label %if.end158.i, label %if.end17.i.i -if.end17.i.i: ; preds = %tx_helper_get_space_left.exit.i.i266 - %cmp18.i.i = icmp ult i64 %sub1.i.i.i268, 3 +if.end17.i.i: ; preds = %tx_helper_get_space_left.exit.i.i265 + %cmp18.i.i = icmp ult i64 %sub1.i.i.i267, 3 br i1 %cmp18.i.i, label %if.end158.thread.i, label %if.end20.i.i if.end20.i.i: ; preds = %if.end17.i.i - %198 = and i8 %bf.load.i79.i.i, 2 - %tobool21.not.i.i = icmp eq i8 %198, 0 + %197 = and i8 %bf.load.i79.i.i, 2 + %tobool21.not.i.i = icmp eq i8 %197, 0 br i1 %tobool21.not.i.i, label %if.end29.i.i, label %txp_generate_stream_related.exit if.end29.i.i: ; preds = %if.end20.i.i %orig_len35.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 1 - %199 = load i64, ptr %orig_len35.i.i, align 8 + %198 = load i64, ptr %orig_len35.i.i, align 8 %cmp36.not.i.i = icmp eq i64 %i.1.i.i, 0 br i1 %cmp36.not.i.i, label %if.end46.i.i, label %if.then38.i.i if.then38.i.i: ; preds = %if.end29.i.i - %add.i.i269 = add i64 %i.1.i.i, 1 - %rem40.i.i = and i64 %add.i.i269, 1 + %add.i.i268 = add i64 %i.1.i.i, 1 + %rem40.i.i = and i64 %add.i.i268, 1 %arrayidx41.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i %num_stream_iovec.i81.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 3 store i64 2, ptr %num_stream_iovec.i81.i.i, align 16 %iov.i82.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 2 - %call.i83.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %183, i64 noundef %add.i.i269, ptr noundef nonnull %arrayidx41.i.i, ptr noundef nonnull %iov.i82.i.i, ptr noundef nonnull %num_stream_iovec.i81.i.i) #10 + %call.i83.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %182, i64 noundef %add.i.i268, ptr noundef nonnull %arrayidx41.i.i, ptr noundef nonnull %iov.i82.i.i, ptr noundef nonnull %num_stream_iovec.i81.i.i) #10 %valid.i84.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 4 store i32 %call.i83.i.i, ptr %valid.i84.i.i, align 8 %tobool.not.i85.i.i = icmp eq i32 %call.i83.i.i, 0 @@ -2534,25 +2526,25 @@ if.then38.i.i: ; preds = %if.end29.i.i if.end.i86.i.i: ; preds = %if.then38.i.i %len.i87.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 2 - %200 = load i64, ptr %len.i87.i.i, align 16 - %cmp.not.i88.i.i = icmp eq i64 %200, 0 + %199 = load i64, ptr %len.i87.i.i, align 16 + %cmp.not.i88.i.i = icmp eq i64 %199, 0 br i1 %cmp.not.i88.i.i, label %lor.rhs.i111.i.i, label %if.end10.i89.i.i lor.rhs.i111.i.i: ; preds = %if.end.i86.i.i %is_fin.i112.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 4 %bf.load.i113.i.i = load i8, ptr %is_fin.i112.i.i, align 16 - %201 = and i8 %bf.load.i113.i.i, 2 - %tobool5.not.i114.i.i = icmp eq i8 %201, 0 + %200 = and i8 %bf.load.i113.i.i, 2 + %tobool5.not.i114.i.i = icmp eq i8 %200, 0 br i1 %tobool5.not.i114.i.i, label %txp_generate_stream_related.exit, label %if.end10.i89.i.i if.end10.i89.i.i: ; preds = %lor.rhs.i111.i.i, %if.end.i86.i.i %orig_len.i90.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 1 - store i64 %200, ptr %orig_len.i90.i.i, align 8 + store i64 %199, ptr %orig_len.i90.i.i, align 8 %call13.i91.i.i = call i64 @ossl_quic_txfc_get_credit(ptr noundef nonnull %txfc153.i, i64 noundef %conn_consumed.0161.i) #10 %call14.i92.i.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc153.i) #10 %add.i93.i.i = add i64 %call14.i92.i.i, %call13.i91.i.i - %202 = load i64, ptr %len.i87.i.i, align 16 - %cmp17.not.i94.i.i = icmp eq i64 %202, 0 + %201 = load i64, ptr %len.i87.i.i, align 16 + %cmp17.not.i94.i.i = icmp eq i64 %201, 0 br i1 %cmp17.not.i94.i.i, label %if.end10.i89.land.lhs.true43.i106_crit_edge.i.i, label %land.lhs.true.i95.i.i if.end10.i89.land.lhs.true43.i106_crit_edge.i.i: ; preds = %if.end10.i89.i.i @@ -2562,25 +2554,25 @@ if.end10.i89.land.lhs.true43.i106_crit_edge.i.i: ; preds = %if.end10.i89.i.i land.lhs.true.i95.i.i: ; preds = %if.end10.i89.i.i %offset.i96.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 1 - %203 = load i64, ptr %offset.i96.i.i, align 8 - %add22.i97.i.i = add i64 %203, %202 + %202 = load i64, ptr %offset.i96.i.i, align 8 + %add22.i97.i.i = add i64 %202, %201 %cmp23.i98.i.i = icmp ugt i64 %add22.i97.i.i, %add.i93.i.i br i1 %cmp23.i98.i.i, label %if.end38.i100.i.i, label %if.end46.i.i if.end38.i100.i.i: ; preds = %land.lhs.true.i95.i.i - %spec.select.i101.i.i = call i64 @llvm.usub.sat.i64(i64 %add.i93.i.i, i64 %203) + %spec.select.i101.i.i = call i64 @llvm.usub.sat.i64(i64 %add.i93.i.i, i64 %202) store i64 %spec.select.i101.i.i, ptr %len.i87.i.i, align 16 %is_fin35.i102.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 4 %bf.load36.i103.i.i = load i8, ptr %is_fin35.i102.i.i, align 16 %bf.clear37.i104.i.i = and i8 %bf.load36.i103.i.i, -3 store i8 %bf.clear37.i104.i.i, ptr %is_fin35.i102.i.i, align 16 - %.not.i105.i.i = icmp ugt i64 %add.i93.i.i, %203 + %.not.i105.i.i = icmp ugt i64 %add.i93.i.i, %202 br i1 %.not.i105.i.i, label %if.end46.i.i, label %land.lhs.true43.i106.i.i land.lhs.true43.i106.i.i: ; preds = %if.end38.i100.i.i, %if.end10.i89.land.lhs.true43.i106_crit_edge.i.i %bf.load46.i108.i.i = phi i8 [ %bf.load46.i108.pre.i.i, %if.end10.i89.land.lhs.true43.i106_crit_edge.i.i ], [ %bf.clear37.i104.i.i, %if.end38.i100.i.i ] - %204 = and i8 %bf.load46.i108.i.i, 2 - %tobool50.not.i109.i.i = icmp eq i8 %204, 0 + %203 = and i8 %bf.load46.i108.i.i, 2 + %tobool50.not.i109.i.i = icmp eq i8 %203, 0 br i1 %tobool50.not.i109.i.i, label %if.then51.i110.i.i, label %if.end46.i.i if.then51.i110.i.i: ; preds = %land.lhs.true43.i106.i.i @@ -2595,45 +2587,45 @@ if.end46.i.i: ; preds = %if.then51.i110.i.i, store i64 0, ptr %payload_len_implicit.i.i, align 8 store i64 0, ptr %hdr_len_implicit.i.i, align 8 %len1.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx13.i.i, i64 0, i32 2 - %205 = load i64, ptr %len1.i.i.i, align 16 + %204 = load i64, ptr %len1.i.i.i, align 16 store i64 0, ptr %len1.i.i.i, align 16 %call.i116.i.i = call i64 @ossl_quic_wire_get_encoded_frame_len_stream_hdr(ptr noundef nonnull %arrayidx13.i.i) #10 - %cmp5.i.i.i270 = icmp eq i64 %call.i116.i.i, 0 - br i1 %cmp5.i.i.i270, label %if.end158.thread.i, label %determine_stream_len.exit.i.i + %cmp5.i.i.i269 = icmp eq i64 %call.i116.i.i, 0 + br i1 %cmp5.i.i.i269, label %if.end158.thread.i, label %determine_stream_len.exit.i.i determine_stream_len.exit.i.i: ; preds = %if.end46.i.i %bf.load.i117.i.i = load i8, ptr %has_explicit_len.i.i, align 16 - %206 = and i8 %bf.load.i117.i.i, 1 - %sext.i.i.i = sub nsw i8 0, %206 - %dec.i.i.i271 = sext i8 %sext.i.i.i to i64 - %spec.select.i118.i.i = add i64 %call.i116.i.i, %dec.i.i.i271 - %call10.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i268, i64 noundef %205, i64 noundef %spec.select.i118.i.i, ptr noundef nonnull %hdr_len_implicit.i.i, ptr noundef nonnull %payload_len_implicit.i.i), !range !9 - %tobool50.not.i.i272 = icmp eq i32 %call10.i.i.i, 0 - br i1 %tobool50.not.i.i272, label %if.end158.thread.i, label %if.end52.i.i + %205 = and i8 %bf.load.i117.i.i, 1 + %sext.i.i.i = sub nsw i8 0, %205 + %dec.i.i.i270 = sext i8 %sext.i.i.i to i64 + %spec.select.i118.i.i = add i64 %call.i116.i.i, %dec.i.i.i270 + %call10.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i267, i64 noundef %204, i64 noundef %spec.select.i118.i.i, ptr noundef nonnull %hdr_len_implicit.i.i, ptr noundef nonnull %payload_len_implicit.i.i), !range !9 + %tobool50.not.i.i271 = icmp eq i32 %call10.i.i.i, 0 + br i1 %tobool50.not.i.i271, label %if.end158.thread.i, label %if.end52.i.i if.end52.i.i: ; preds = %determine_stream_len.exit.i.i - %207 = load i64, ptr %hdr_len_implicit.i.i, align 8 - %208 = load i64, ptr %payload_len_implicit.i.i, align 8 - %add53.i.i = add i64 %208, %207 - %cmp54.not.i.i = icmp ult i64 %add53.i.i, %sub1.i.i.i268 + %206 = load i64, ptr %hdr_len_implicit.i.i, align 8 + %207 = load i64, ptr %payload_len_implicit.i.i, align 8 + %add53.i.i = add i64 %207, %206 + %cmp54.not.i.i = icmp ult i64 %add53.i.i, %sub1.i.i.i267 br i1 %cmp56.not.i.i, label %lor.rhs.i.i, label %lor.end.i.i lor.rhs.i.i: ; preds = %if.end52.i.i %rem59.i.i = xor i64 %rem.i.i, 1 %valid61.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem59.i.i, i32 4 - %209 = load i32, ptr %valid61.i.i, align 8 - %tobool62.i.i = icmp ne i32 %209, 0 + %208 = load i32, ptr %valid61.i.i, align 8 + %tobool62.i.i = icmp ne i32 %208, 0 br label %lor.end.i.i lor.end.i.i: ; preds = %lor.rhs.i.i, %if.end52.i.i - %210 = phi i1 [ true, %if.end52.i.i ], [ %tobool62.i.i, %lor.rhs.i.i ] - %or.cond.i.i = select i1 %cmp54.not.i.i, i1 %210, i1 false + %209 = phi i1 [ true, %if.end52.i.i ], [ %tobool62.i.i, %lor.rhs.i.i ] + %or.cond.i.i = select i1 %cmp54.not.i.i, i1 %209, i1 false br i1 %or.cond.i.i, label %if.then71.i.i, label %land.rhs.i.i land.rhs.i.i: ; preds = %lor.end.i.i - %211 = load i32, ptr %force_pad.i, align 8 - %tobool65.not.i.i = icmp eq i32 %211, 0 - br i1 %tobool65.not.i.i, label %if.else.i.i316, label %if.then71.i.i + %210 = load i32, ptr %force_pad.i, align 8 + %tobool65.not.i.i = icmp eq i32 %210, 0 + br i1 %tobool65.not.i.i, label %if.else.i.i315, label %if.then71.i.i if.then71.i.i: ; preds = %land.rhs.i.i, %lor.end.i.i %bf.set75.i.i = or i8 %bf.load.i117.i.i, 1 @@ -2647,30 +2639,30 @@ if.then71.i.i: ; preds = %land.rhs.i.i, %lor. determine_stream_len.exit131.i.i: ; preds = %if.then71.i.i %bf.load.i125.i.i = load i8, ptr %has_explicit_len.i.i, align 16 - %212 = and i8 %bf.load.i125.i.i, 1 - %sext.i126.i.i = sub nsw i8 0, %212 + %211 = and i8 %bf.load.i125.i.i, 1 + %sext.i126.i.i = sub nsw i8 0, %211 %dec.i127.i.i = sext i8 %sext.i126.i.i to i64 %spec.select.i128.i.i = add i64 %call.i121.i.i, %dec.i127.i.i - %call10.i129.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i268, i64 noundef %205, i64 noundef %spec.select.i128.i.i, ptr noundef nonnull %hdr_len_explicit.i.i, ptr noundef nonnull %payload_len_explicit.i.i), !range !9 + %call10.i129.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i267, i64 noundef %204, i64 noundef %spec.select.i128.i.i, ptr noundef nonnull %hdr_len_explicit.i.i, ptr noundef nonnull %payload_len_explicit.i.i), !range !9 %tobool77.not.i.i = icmp eq i32 %call10.i129.i.i, 0 br i1 %tobool77.not.i.i, label %if.end158.thread.i, label %if.end79.i.i if.end79.i.i: ; preds = %determine_stream_len.exit131.i.i - %213 = load i64, ptr %payload_len_explicit.i.i, align 8 + %212 = load i64, ptr %payload_len_explicit.i.i, align 8 br label %if.end85.i.i -if.else.i.i316: ; preds = %land.rhs.i.i +if.else.i.i315: ; preds = %land.rhs.i.i %bf.clear82.i.i = and i8 %bf.load.i117.i.i, -2 store i8 %bf.clear82.i.i, ptr %has_explicit_len.i.i, align 16 br label %if.end85.i.i -if.end85.i.i: ; preds = %if.else.i.i316, %if.end79.i.i - %packet_full.1.i = phi i32 [ %packet_full.0.i, %if.end79.i.i ], [ 1, %if.else.i.i316 ] - %bf.load102.i.i = phi i8 [ %bf.load.i125.i.i, %if.end79.i.i ], [ %bf.clear82.i.i, %if.else.i.i316 ] - %214 = phi i64 [ %213, %if.end79.i.i ], [ %208, %if.else.i.i316 ] - store i64 %214, ptr %len1.i.i.i, align 16 - %215 = and i8 %bf.load102.i.i, 2 - %tobool90.not.i.i = icmp eq i8 %215, 0 +if.end85.i.i: ; preds = %if.else.i.i315, %if.end79.i.i + %packet_full.1.i = phi i32 [ %packet_full.0.i, %if.end79.i.i ], [ 1, %if.else.i.i315 ] + %bf.load102.i.i = phi i8 [ %bf.load.i125.i.i, %if.end79.i.i ], [ %bf.clear82.i.i, %if.else.i.i315 ] + %213 = phi i64 [ %212, %if.end79.i.i ], [ %207, %if.else.i.i315 ] + store i64 %213, ptr %len1.i.i.i, align 16 + %214 = and i8 %bf.load102.i.i, 2 + %tobool90.not.i.i = icmp eq i8 %214, 0 br i1 %tobool90.not.i.i, label %if.end96.i.i, label %if.then91.i.i if.then91.i.i: ; preds = %if.end85.i.i @@ -2680,7 +2672,7 @@ if.then91.i.i: ; preds = %if.end85.i.i br label %if.end96.i.i if.end96.i.i: ; preds = %if.then91.i.i, %if.end85.i.i - %cmp98.i.i = icmp ult i64 %214, %199 + %cmp98.i.i = icmp ult i64 %213, %198 br i1 %cmp98.i.i, label %if.then100.i.i, label %if.end105.i.i if.then100.i.i: ; preds = %if.end96.i.i @@ -2689,38 +2681,38 @@ if.then100.i.i: ; preds = %if.end96.i.i br label %if.end105.i.i if.end105.i.i: ; preds = %if.then100.i.i, %if.end96.i.i - %iov.i.i273 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2 - %num_stream_iovec.i.i274 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 3 - %216 = load i64, ptr %num_stream_iovec.i.i274, align 16 - call void @ossl_quic_sstream_adjust_iov(i64 noundef %214, ptr noundef nonnull %iov.i.i273, i64 noundef %216) #10 - %217 = load i64, ptr %num_iovec.i.i, align 8 - %add112.i.i = add i64 %217, 3 - %218 = load i64, ptr %alloc_iovec.i.i.i264, align 8 - %cmp.not.i132.i.i = icmp ult i64 %218, %add112.i.i + %iov.i.i272 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2 + %num_stream_iovec.i.i273 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 3 + %215 = load i64, ptr %num_stream_iovec.i.i273, align 16 + call void @ossl_quic_sstream_adjust_iov(i64 noundef %213, ptr noundef nonnull %iov.i.i272, i64 noundef %215) #10 + %216 = load i64, ptr %num_iovec.i.i, align 8 + %add112.i.i = add i64 %216, 3 + %217 = load i64, ptr %alloc_iovec.i.i.i263, align 8 + %cmp.not.i132.i.i = icmp ult i64 %217, %add112.i.i br i1 %cmp.not.i132.i.i, label %if.end.i134.i.i, label %if.end116.i.i if.end.i134.i.i: ; preds = %if.end105.i.i - %cmp2.not.i.i.i311 = icmp eq i64 %218, 0 - %mul.i.i.i312 = shl i64 %218, 1 - %spec.select.i135.i.i = select i1 %cmp2.not.i.i.i311, i64 8, i64 %mul.i.i.i312 - %219 = load ptr, ptr %iovec4.i.i.i265, align 8 - %mul5.i.i.i313 = shl i64 %spec.select.i135.i.i, 4 - %call.i136.i.i = call ptr @CRYPTO_realloc(ptr noundef %219, i64 noundef %mul5.i.i.i313, ptr noundef nonnull @.str, i32 noundef 3041) #10 - %cmp6.i.i.i314 = icmp eq ptr %call.i136.i.i, null - br i1 %cmp6.i.i.i314, label %txp_generate_stream_related.exit, label %if.end8.i.i.i315 - -if.end8.i.i.i315: ; preds = %if.end.i134.i.i - store ptr %call.i136.i.i, ptr %iovec4.i.i.i265, align 8 - store i64 %spec.select.i135.i.i, ptr %alloc_iovec.i.i.i264, align 8 + %cmp2.not.i.i.i310 = icmp eq i64 %217, 0 + %mul.i.i.i311 = shl i64 %217, 1 + %spec.select.i135.i.i = select i1 %cmp2.not.i.i.i310, i64 8, i64 %mul.i.i.i311 + %218 = load ptr, ptr %iovec4.i.i.i264, align 8 + %mul5.i.i.i312 = shl i64 %spec.select.i135.i.i, 4 + %call.i136.i.i = call ptr @CRYPTO_realloc(ptr noundef %218, i64 noundef %mul5.i.i.i312, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %cmp6.i.i.i313 = icmp eq ptr %call.i136.i.i, null + br i1 %cmp6.i.i.i313, label %txp_generate_stream_related.exit, label %if.end8.i.i.i314 + +if.end8.i.i.i314: ; preds = %if.end.i134.i.i + store ptr %call.i136.i.i, ptr %iovec4.i.i.i264, align 8 + store i64 %spec.select.i135.i.i, ptr %alloc_iovec.i.i.i263, align 8 br label %if.end116.i.i -if.end116.i.i: ; preds = %if.end8.i.i.i315, %if.end105.i.i - %call117.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) +if.end116.i.i: ; preds = %if.end8.i.i.i314, %if.end105.i.i + %call117.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp118.i.i = icmp eq ptr %call117.i.i, null br i1 %cmp118.i.i, label %txp_generate_stream_related.exit, label %if.end121.i.i if.end121.i.i: ; preds = %if.end116.i.i - store i64 %182, ptr %arrayidx13.i.i, align 16 + store i64 %181, ptr %arrayidx13.i.i, align 16 %call122.i.i = call i32 @ossl_quic_wire_encode_frame_stream_hdr(ptr noundef nonnull %call117.i.i, ptr noundef nonnull %arrayidx13.i.i) #10 %cmp123.not.i.i = icmp eq i32 %call122.i.i, 0 br i1 %cmp123.not.i.i, label %if.then131.i.i, label %if.end132.i.i @@ -2732,100 +2724,100 @@ if.then131.i.i: ; preds = %if.end121.i.i br i1 %tobool.not.i139.i.i, label %if.end158.thread.i, label %if.end.i140.i.i if.end.i140.i.i: ; preds = %if.then131.i.i - %wpkt2.i.i.i.i307 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i307) #10 - %bf.load.i.i.i.i309 = load i8, ptr %active.i.i, align 8 - %bf.clear.i.i.i.i310 = and i8 %bf.load.i.i.i.i309, -2 - store i8 %bf.clear.i.i.i.i310, ptr %active.i.i, align 8 + %wpkt2.i.i.i.i306 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i306) #10 + %bf.load.i.i.i.i308 = load i8, ptr %active.i.i, align 8 + %bf.clear.i.i.i.i309 = and i8 %bf.load.i.i.i.i308, -2 + store i8 %bf.clear.i.i.i.i309, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 br label %if.end158.thread.i if.end132.i.i: ; preds = %if.end121.i.i - %call133.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call133.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool134.not.i.i = icmp eq i32 %call133.i.i, 0 br i1 %tobool134.not.i.i, label %txp_generate_stream_related.exit, label %for.cond137.preheader.i.i for.cond137.preheader.i.i: ; preds = %if.end132.i.i - %220 = load i64, ptr %num_stream_iovec.i.i274, align 16 - %cmp141167.not.i.i = icmp eq i64 %220, 0 + %219 = load i64, ptr %num_stream_iovec.i.i273, align 16 + %cmp141167.not.i.i = icmp eq i64 %219, 0 br i1 %cmp141167.not.i.i, label %for.end155.i.i, label %for.body143.i.i -for.body143.i.i: ; preds = %for.cond137.preheader.i.i, %tx_helper_append_iovec.exit.i.i278 - %j.0168.i.i = phi i64 [ %inc154.i.i, %tx_helper_append_iovec.exit.i.i278 ], [ 0, %for.cond137.preheader.i.i ] +for.body143.i.i: ; preds = %for.cond137.preheader.i.i, %tx_helper_append_iovec.exit.i.i277 + %j.0168.i.i = phi i64 [ %inc154.i.i, %tx_helper_append_iovec.exit.i.i277 ], [ 0, %for.cond137.preheader.i.i ] %arrayidx147.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2, i64 %j.0168.i.i - %221 = load ptr, ptr %arrayidx147.i.i, align 16 - %buf_len.i.i275 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2, i64 %j.0168.i.i, i32 1 - %222 = load i64, ptr %buf_len.i.i275, align 8 - %223 = load ptr, ptr %arrayidx11349, align 16 - %224 = load i32, ptr %enc_level2.i.i, align 16 - %idxprom.i.i.i276 = zext i32 %224 to i64 - %cmp.i.i.i277 = icmp eq i64 %222, 0 - br i1 %cmp.i.i.i277, label %tx_helper_append_iovec.exit.i.i278, label %if.end.i141.i.i + %220 = load ptr, ptr %arrayidx147.i.i, align 16 + %buf_len.i.i274 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2, i64 %j.0168.i.i, i32 1 + %221 = load i64, ptr %buf_len.i.i274, align 8 + %222 = load ptr, ptr %arrayidx11348, align 16 + %223 = load i32, ptr %enc_level2.i.i, align 16 + %idxprom.i.i.i275 = zext i32 %223 to i64 + %cmp.i.i.i276 = icmp eq i64 %221, 0 + br i1 %cmp.i.i.i276, label %tx_helper_append_iovec.exit.i.i277, label %if.end.i141.i.i if.end.i141.i.i: ; preds = %for.body143.i.i %bf.load.i142.i.i = load i8, ptr %reserve_allowed.i.i, align 4 - %225 = and i8 %bf.load.i142.i.i, 2 - %tobool.not.i143.i.i = icmp eq i8 %225, 0 - br i1 %tobool.not.i143.i.i, label %if.end9.i.i.i284, label %tx_helper_append_iovec.exit.i.i278 - -if.end9.i.i.i284: ; preds = %if.end.i141.i.i - %226 = load i64, ptr %num_iovec.i.i, align 8 - %add.i145.i.i = add i64 %226, 1 - %alloc_iovec.i.i.i.i285 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 3 - %227 = load i64, ptr %alloc_iovec.i.i.i.i285, align 8 - %cmp.not.i.i.i.i286 = icmp ult i64 %227, %add.i145.i.i - br i1 %cmp.not.i.i.i.i286, label %if.end.i.i.i.i296, label %if.end9.if.end12_crit_edge.i.i.i287 - -if.end9.if.end12_crit_edge.i.i.i287: ; preds = %if.end9.i.i.i284 - %iovec.phi.trans.insert.i.i.i288 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 2 - %.pre.i.i.i289 = load ptr, ptr %iovec.phi.trans.insert.i.i.i288, align 8 - br label %if.end12.i.i.i290 - -if.end.i.i.i.i296: ; preds = %if.end9.i.i.i284 - %cmp2.not.i.i.i.i297 = icmp eq i64 %227, 0 - %mul.i.i.i.i298 = shl i64 %227, 1 - %spec.select.i.i.i.i299 = select i1 %cmp2.not.i.i.i.i297, i64 8, i64 %mul.i.i.i.i298 - %iovec4.i.i.i.i300 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 2 - %228 = load ptr, ptr %iovec4.i.i.i.i300, align 8 - %mul5.i.i.i.i301 = shl i64 %spec.select.i.i.i.i299, 4 - %call.i.i.i.i302 = call ptr @CRYPTO_realloc(ptr noundef %228, i64 noundef %mul5.i.i.i.i301, ptr noundef nonnull @.str, i32 noundef 3041) #10 - %cmp6.i.i.i.i303 = icmp eq ptr %call.i.i.i.i302, null - br i1 %cmp6.i.i.i.i303, label %tx_helper_append_iovec.exit.i.i278, label %if.end8.i.i.i.i304 - -if.end8.i.i.i.i304: ; preds = %if.end.i.i.i.i296 - store ptr %call.i.i.i.i302, ptr %iovec4.i.i.i.i300, align 8 - store i64 %spec.select.i.i.i.i299, ptr %alloc_iovec.i.i.i.i285, align 8 - %.pre14.i.i.i305 = load i64, ptr %num_iovec.i.i, align 8 - br label %if.end12.i.i.i290 - -if.end12.i.i.i290: ; preds = %if.end8.i.i.i.i304, %if.end9.if.end12_crit_edge.i.i.i287 - %229 = phi i64 [ %226, %if.end9.if.end12_crit_edge.i.i.i287 ], [ %.pre14.i.i.i305, %if.end8.i.i.i.i304 ] - %230 = phi ptr [ %.pre.i.i.i289, %if.end9.if.end12_crit_edge.i.i.i287 ], [ %call.i.i.i.i302, %if.end8.i.i.i.i304 ] - %iovec.i.i.i291 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 2 - %arrayidx14.i.i.i292 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %230, i64 %229 - store ptr %221, ptr %arrayidx14.i.i.i292, align 8 - %231 = load ptr, ptr %iovec.i.i.i291, align 8 + %224 = and i8 %bf.load.i142.i.i, 2 + %tobool.not.i143.i.i = icmp eq i8 %224, 0 + br i1 %tobool.not.i143.i.i, label %if.end9.i.i.i283, label %tx_helper_append_iovec.exit.i.i277 + +if.end9.i.i.i283: ; preds = %if.end.i141.i.i + %225 = load i64, ptr %num_iovec.i.i, align 8 + %add.i145.i.i = add i64 %225, 1 + %alloc_iovec.i.i.i.i284 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 3 + %226 = load i64, ptr %alloc_iovec.i.i.i.i284, align 8 + %cmp.not.i.i.i.i285 = icmp ult i64 %226, %add.i145.i.i + br i1 %cmp.not.i.i.i.i285, label %if.end.i.i.i.i295, label %if.end9.if.end12_crit_edge.i.i.i286 + +if.end9.if.end12_crit_edge.i.i.i286: ; preds = %if.end9.i.i.i283 + %iovec.phi.trans.insert.i.i.i287 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 2 + %.pre.i.i.i288 = load ptr, ptr %iovec.phi.trans.insert.i.i.i287, align 8 + br label %if.end12.i.i.i289 + +if.end.i.i.i.i295: ; preds = %if.end9.i.i.i283 + %cmp2.not.i.i.i.i296 = icmp eq i64 %226, 0 + %mul.i.i.i.i297 = shl i64 %226, 1 + %spec.select.i.i.i.i298 = select i1 %cmp2.not.i.i.i.i296, i64 8, i64 %mul.i.i.i.i297 + %iovec4.i.i.i.i299 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 2 + %227 = load ptr, ptr %iovec4.i.i.i.i299, align 8 + %mul5.i.i.i.i300 = shl i64 %spec.select.i.i.i.i298, 4 + %call.i.i.i.i301 = call ptr @CRYPTO_realloc(ptr noundef %227, i64 noundef %mul5.i.i.i.i300, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %cmp6.i.i.i.i302 = icmp eq ptr %call.i.i.i.i301, null + br i1 %cmp6.i.i.i.i302, label %tx_helper_append_iovec.exit.i.i277, label %if.end8.i.i.i.i303 + +if.end8.i.i.i.i303: ; preds = %if.end.i.i.i.i295 + store ptr %call.i.i.i.i301, ptr %iovec4.i.i.i.i299, align 8 + store i64 %spec.select.i.i.i.i298, ptr %alloc_iovec.i.i.i.i284, align 8 + %.pre14.i.i.i304 = load i64, ptr %num_iovec.i.i, align 8 + br label %if.end12.i.i.i289 + +if.end12.i.i.i289: ; preds = %if.end8.i.i.i.i303, %if.end9.if.end12_crit_edge.i.i.i286 + %228 = phi i64 [ %225, %if.end9.if.end12_crit_edge.i.i.i286 ], [ %.pre14.i.i.i304, %if.end8.i.i.i.i303 ] + %229 = phi ptr [ %.pre.i.i.i288, %if.end9.if.end12_crit_edge.i.i.i286 ], [ %call.i.i.i.i301, %if.end8.i.i.i.i303 ] + %iovec.i.i.i290 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 2 + %arrayidx14.i.i.i291 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %229, i64 %228 + store ptr %220, ptr %arrayidx14.i.i.i291, align 8 + %230 = load ptr, ptr %iovec.i.i.i290, align 8 + %231 = load i64, ptr %num_iovec.i.i, align 8 + %buf_len19.i.i.i292 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %230, i64 %231, i32 1 + store i64 %221, ptr %buf_len19.i.i.i292, align 8 %232 = load i64, ptr %num_iovec.i.i, align 8 - %buf_len19.i.i.i293 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %231, i64 %232, i32 1 - store i64 %222, ptr %buf_len19.i.i.i293, align 8 - %233 = load i64, ptr %num_iovec.i.i, align 8 - %inc.i.i.i294 = add i64 %233, 1 - store i64 %inc.i.i.i294, ptr %num_iovec.i.i, align 8 - %234 = load i64, ptr %bytes_appended.i.i, align 16 - %add21.i.i.i295 = add i64 %234, %222 - store i64 %add21.i.i.i295, ptr %bytes_appended.i.i, align 16 - br label %tx_helper_append_iovec.exit.i.i278 - -tx_helper_append_iovec.exit.i.i278: ; preds = %if.end12.i.i.i290, %if.end.i.i.i.i296, %if.end.i141.i.i, %for.body143.i.i + %inc.i.i.i293 = add i64 %232, 1 + store i64 %inc.i.i.i293, ptr %num_iovec.i.i, align 8 + %233 = load i64, ptr %bytes_appended.i.i, align 16 + %add21.i.i.i294 = add i64 %233, %221 + store i64 %add21.i.i.i294, ptr %bytes_appended.i.i, align 16 + br label %tx_helper_append_iovec.exit.i.i277 + +tx_helper_append_iovec.exit.i.i277: ; preds = %if.end12.i.i.i289, %if.end.i.i.i.i295, %if.end.i141.i.i, %for.body143.i.i %inc154.i.i = add nuw i64 %j.0168.i.i, 1 - %235 = load i64, ptr %num_stream_iovec.i.i274, align 16 - %cmp141.i.i = icmp ult i64 %inc154.i.i, %235 + %234 = load i64, ptr %num_stream_iovec.i.i273, align 16 + %cmp141.i.i = icmp ult i64 %inc154.i.i, %234 br i1 %cmp141.i.i, label %for.body143.i.i, label %for.end155.i.i, !llvm.loop !13 -for.end155.i.i: ; preds = %tx_helper_append_iovec.exit.i.i278, %for.cond137.preheader.i.i +for.end155.i.i: ; preds = %tx_helper_append_iovec.exit.i.i277, %for.cond137.preheader.i.i %bf.load.i148.i.i = load i8, ptr %reserve_allowed.i.i, align 4 - %bf.set.i.i.i279 = or i8 %bf.load.i148.i.i, 1 - store i8 %bf.set.i.i.i279, ptr %reserve_allowed.i.i, align 4 + %bf.set.i.i.i278 = or i8 %bf.load.i148.i.i, 1 + store i8 %bf.set.i.i.i278, ptr %reserve_allowed.i.i, align 4 %bf.load157.i.i = load i8, ptr %has_explicit_len.i.i, align 16 %bf.clear158.i.i = and i8 %bf.load157.i.i, 1 %tobool160.not.i.i = icmp eq i8 %bf.clear158.i.i, 0 @@ -2837,93 +2829,93 @@ if.then161.i.i: ; preds = %for.end155.i.i br label %if.end166.i.i if.end166.i.i: ; preds = %if.then161.i.i, %for.end155.i.i - %236 = load i64, ptr %len1.i.i.i, align 16 - %cmp168.not.i.i = icmp eq i64 %236, 0 + %235 = load i64, ptr %len1.i.i.i, align 16 + %cmp168.not.i.i = icmp eq i64 %235, 0 %offset182.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx13.i.i, i64 0, i32 1 - %.pre.i.i280 = load i64, ptr %offset182.phi.trans.insert.i.i, align 8 - %add172.i.i = add i64 %.pre.i.i280, %236 + %.pre.i.i279 = load i64, ptr %offset182.phi.trans.insert.i.i, align 8 + %add172.i.i = add i64 %.pre.i.i279, %235 %spec.select.i.i = call i64 @llvm.umax.i64(i64 %add172.i.i, i64 %fc_new_hwm.0.i.i) %fc_new_hwm.1.i.i = select i1 %cmp168.not.i.i, i64 %fc_new_hwm.0.i.i, i64 %spec.select.i.i - %237 = load i64, ptr %arrayidx13.i.i, align 16 - store i64 %237, ptr %chunk.i.i218, align 8 - store i64 %.pre.i.i280, ptr %start.i.i227, align 8 - %sub.i.i281 = add i64 %add172.i.i, -1 - store i64 %sub.i.i281, ptr %end.i.i228, align 8 + %236 = load i64, ptr %arrayidx13.i.i, align 16 + store i64 %236, ptr %chunk.i.i217, align 8 + store i64 %.pre.i.i279, ptr %start.i.i226, align 8 + %sub.i.i280 = add i64 %add172.i.i, -1 + store i64 %sub.i.i280, ptr %end.i.i227, align 8 %bf.lshr188.i.i = lshr i8 %bf.load157.i.i, 1 %bf.clear189.i.i = and i8 %bf.lshr188.i.i, 1 - %bf.load191.i.i = load i8, ptr %has_fin.i.i229, align 8 + %bf.load191.i.i = load i8, ptr %has_fin.i.i228, align 8 %bf.clear192.i.i = and i8 %bf.load191.i.i, -8 %bf.set193.i.i = or disjoint i8 %bf.clear192.i.i, %bf.clear189.i.i - store i8 %bf.set193.i.i, ptr %has_fin.i.i229, align 8 - %call200.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %185, ptr noundef nonnull %chunk.i.i218) #10 + store i8 %bf.set193.i.i, ptr %has_fin.i.i228, align 8 + %call200.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %184, ptr noundef nonnull %chunk.i.i217) #10 %tobool201.not.i.i = icmp eq i32 %call200.i.i, 0 br i1 %tobool201.not.i.i, label %txp_generate_stream_related.exit, label %if.end203.i.i if.end203.i.i: ; preds = %if.end166.i.i - %238 = load i64, ptr %len1.i.i.i, align 16 - %cmp205.i.i = icmp ult i64 %238, %199 + %237 = load i64, ptr %len1.i.i.i, align 16 + %cmp205.i.i = icmp ult i64 %237, %198 %inc210.i.i = add i64 %i.1.i.i, 1 br i1 %cmp205.i.i, label %if.end158.i, label %for.cond11.i.i if.end158.thread.i: ; preds = %determine_stream_len.exit131.i.i, %if.then71.i.i, %determine_stream_len.exit.i.i, %if.end46.i.i, %if.end17.i.i, %if.end.i140.i.i, %if.then131.i.i %sub211.i116121.i = sub i64 %fc_new_hwm.0.i.i, %call.i101.i - store i64 %sub211.i116121.i, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 %sub211.i116121.i, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 -if.end158.i: ; preds = %if.end203.i.i, %tx_helper_get_space_left.exit.i.i266 - %have_ack_eliciting.i.10 = phi i32 [ %have_ack_eliciting.i.8, %tx_helper_get_space_left.exit.i.i266 ], [ 1, %if.end203.i.i ] - %packet_full.2.ph.i = phi i32 [ %packet_full.0.i, %tx_helper_get_space_left.exit.i.i266 ], [ %packet_full.1.i, %if.end203.i.i ] - %fc_new_hwm.2.i.ph.i = phi i64 [ %fc_new_hwm.0.i.i, %tx_helper_get_space_left.exit.i.i266 ], [ %fc_new_hwm.1.i.i, %if.end203.i.i ] +if.end158.i: ; preds = %if.end203.i.i, %tx_helper_get_space_left.exit.i.i265 + %have_ack_eliciting.i.10 = phi i32 [ %have_ack_eliciting.i.8, %tx_helper_get_space_left.exit.i.i265 ], [ 1, %if.end203.i.i ] + %packet_full.2.ph.i = phi i32 [ %packet_full.0.i, %tx_helper_get_space_left.exit.i.i265 ], [ %packet_full.1.i, %if.end203.i.i ] + %fc_new_hwm.2.i.ph.i = phi i64 [ %fc_new_hwm.0.i.i, %tx_helper_get_space_left.exit.i.i265 ], [ %fc_new_hwm.1.i.i, %if.end203.i.i ] %sub211.i116.i = sub i64 %fc_new_hwm.2.i.ph.i, %call.i101.i - store i64 %sub211.i116.i, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 %sub211.i116.i, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - %239 = load i64, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %add.i282 = add i64 %239, %conn_consumed.0161.i - %tobool160.not.i283 = icmp eq i32 %packet_full.2.ph.i, 0 - br i1 %tobool160.not.i283, label %if.end163.i251, label %txp_generate_stream_related.exit.thread371 + %238 = load i64, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %add.i281 = add i64 %238, %conn_consumed.0161.i + %tobool160.not.i282 = icmp eq i32 %packet_full.2.ph.i, 0 + br i1 %tobool160.not.i282, label %if.end163.i250, label %txp_generate_stream_related.exit.thread370 -if.end163.i251: ; preds = %if.end158.i, %if.end158.thread124.i, %land.lhs.true130.i, %if.end127.i +if.end163.i250: ; preds = %if.end158.i, %if.end158.thread124.i, %land.lhs.true130.i, %if.end127.i %have_ack_eliciting.i.11 = phi i32 [ %have_ack_eliciting.i.7, %if.end127.i ], [ %have_ack_eliciting.i.7, %if.end158.thread124.i ], [ %have_ack_eliciting.i.10, %if.end158.i ], [ %have_ack_eliciting.i.7, %land.lhs.true130.i ] - %conn_consumed.1.i = phi i64 [ %conn_consumed.0161.i, %if.end127.i ], [ %add128.i, %if.end158.thread124.i ], [ %add.i282, %if.end158.i ], [ %conn_consumed.0161.i, %land.lhs.true130.i ] - %240 = load ptr, ptr %stream_head.i, align 16 - %txp_next.i107.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 3 - store ptr %240, ptr %txp_next.i107.i, align 8 - store ptr %160, ptr %stream_head.i, align 16 - %241 = load ptr, ptr %stream2.i, align 8 - %cmp.not.i252 = icmp eq ptr %241, null - br i1 %cmp.not.i252, label %txp_generate_stream_related.exit.thread366, label %for.body.i230, !llvm.loop !14 - -txp_generate_stream_related.exit.thread: ; preds = %if.then.i, %if.end21.i, %if.then36.i, %if.end49.i, %ossl_quic_stream_send_get_final_size.exit.i, %if.end65.i, %if.end69.i, %if.then106.i, %if.end118.i325, %if.then133.i253, %if.end54.i245 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) + %conn_consumed.1.i = phi i64 [ %conn_consumed.0161.i, %if.end127.i ], [ %add128.i, %if.end158.thread124.i ], [ %add.i281, %if.end158.i ], [ %conn_consumed.0161.i, %land.lhs.true130.i ] + %239 = load ptr, ptr %stream_head.i, align 16 + %txp_next.i107.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 3 + store ptr %239, ptr %txp_next.i107.i, align 8 + store ptr %159, ptr %stream_head.i, align 16 + %240 = load ptr, ptr %stream2.i, align 8 + %cmp.not.i251 = icmp eq ptr %240, null + br i1 %cmp.not.i251, label %txp_generate_stream_related.exit.thread365, label %for.body.i229, !llvm.loop !14 + +txp_generate_stream_related.exit.thread: ; preds = %if.then.i, %if.end21.i, %if.then36.i, %if.end49.i, %ossl_quic_stream_send_get_final_size.exit.i, %if.end65.i, %if.end69.i, %if.then106.i, %if.end118.i324, %if.then133.i252, %if.end54.i244 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.then337.i -txp_generate_stream_related.exit.thread366: ; preds = %if.end163.i251, %if.then255.i - %have_ack_eliciting.i.13.ph = phi i32 [ %have_ack_eliciting.i.3, %if.then255.i ], [ %have_ack_eliciting.i.11, %if.end163.i251 ] - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) +txp_generate_stream_related.exit.thread365: ; preds = %if.end163.i250, %if.then255.i + %have_ack_eliciting.i.13.ph = phi i32 [ %have_ack_eliciting.i.3, %if.then255.i ], [ %have_ack_eliciting.i.11, %if.end163.i250 ] + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.end260.i -txp_generate_stream_related.exit.thread371: ; preds = %if.end158.i, %if.then20.i, %if.end.i.i335, %if.then64.i, %if.end.i76.i, %if.then117.i, %if.end.i90.i, %if.end158.thread.i - %have_ack_eliciting.i.12.ph = phi i32 [ %have_ack_eliciting.i.4, %if.end.i.i335 ], [ %have_ack_eliciting.i.4, %if.then20.i ], [ %have_ack_eliciting.i.5, %if.end.i76.i ], [ %have_ack_eliciting.i.5, %if.then64.i ], [ %have_ack_eliciting.i.6, %if.end.i90.i ], [ %have_ack_eliciting.i.6, %if.then117.i ], [ %have_ack_eliciting.i.8, %if.end158.thread.i ], [ %have_ack_eliciting.i.10, %if.end158.i ] - %242 = load ptr, ptr %stream_head.i, align 16 - %txp_next.i.i374 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 3 - store ptr %242, ptr %txp_next.i.i374, align 8 - store ptr %160, ptr %stream_head.i, align 16 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) +txp_generate_stream_related.exit.thread370: ; preds = %if.end158.i, %if.then20.i, %if.end.i.i334, %if.then64.i, %if.end.i76.i, %if.then117.i, %if.end.i90.i, %if.end158.thread.i + %have_ack_eliciting.i.12.ph = phi i32 [ %have_ack_eliciting.i.4, %if.end.i.i334 ], [ %have_ack_eliciting.i.4, %if.then20.i ], [ %have_ack_eliciting.i.5, %if.end.i76.i ], [ %have_ack_eliciting.i.5, %if.then64.i ], [ %have_ack_eliciting.i.6, %if.end.i90.i ], [ %have_ack_eliciting.i.6, %if.then117.i ], [ %have_ack_eliciting.i.8, %if.end158.thread.i ], [ %have_ack_eliciting.i.10, %if.end158.i ] + %241 = load ptr, ptr %stream_head.i, align 16 + %txp_next.i.i373 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 3 + store ptr %241, ptr %txp_next.i.i373, align 8 + store ptr %159, ptr %stream_head.i, align 16 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.end260.i @@ -2931,29 +2923,29 @@ txp_generate_stream_related.exit.thread371: ; preds = %if.end158.i, %if.th txp_generate_stream_related.exit: ; preds = %lor.rhs.i.i.i, %if.end20.i.i, %lor.rhs.i111.i.i, %if.end.i134.i.i, %if.end116.i.i, %if.end132.i.i, %if.end166.i.i %fc_new_hwm.2.i.i = phi i64 [ %fc_new_hwm.0.i.i, %if.end116.i.i ], [ %fc_new_hwm.1.i.i, %if.end166.i.i ], [ %fc_new_hwm.0.i.i, %if.end132.i.i ], [ %fc_new_hwm.0.i.i, %if.end20.i.i ], [ %fc_new_hwm.0.i.i, %lor.rhs.i111.i.i ], [ %fc_new_hwm.0.i.i, %if.end.i134.i.i ], [ %call.i101.i, %lor.rhs.i.i.i ] %sub211.i.i = sub i64 %fc_new_hwm.2.i.i, %call.i101.i - store i64 %sub211.i.i, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 %sub211.i.i, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - %243 = load ptr, ptr %stream_head.i, align 8 - %txp_next.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 3 - store ptr %243, ptr %txp_next.i.i, align 8 - store ptr %160, ptr %stream_head.i, align 8 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) + %242 = load ptr, ptr %stream_head.i, align 8 + %txp_next.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 3 + store ptr %242, ptr %txp_next.i.i, align 8 + store ptr %159, ptr %stream_head.i, align 8 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.then337.i -if.end260.i: ; preds = %txp_generate_stream_related.exit.thread371, %txp_generate_stream_related.exit.thread366, %land.lhs.true249.i, %if.end244.i - %have_ack_eliciting.i.14 = phi i32 [ %have_ack_eliciting.i.3, %if.end244.i ], [ %have_ack_eliciting.i.3, %land.lhs.true249.i ], [ %have_ack_eliciting.i.13.ph, %txp_generate_stream_related.exit.thread366 ], [ %have_ack_eliciting.i.12.ph, %txp_generate_stream_related.exit.thread371 ] +if.end260.i: ; preds = %txp_generate_stream_related.exit.thread370, %txp_generate_stream_related.exit.thread365, %land.lhs.true249.i, %if.end244.i + %have_ack_eliciting.i.14 = phi i32 [ %have_ack_eliciting.i.3, %if.end244.i ], [ %have_ack_eliciting.i.3, %land.lhs.true249.i ], [ %have_ack_eliciting.i.13.ph, %txp_generate_stream_related.exit.thread365 ], [ %have_ack_eliciting.i.12.ph, %txp_generate_stream_related.exit.thread370 ] %bf.load.i228.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.set.i229.i = or i8 %bf.load.i228.i, 1 store i8 %bf.set.i229.i, ptr %reserve_allowed.i.i, align 4 - %244 = and i32 %a.sroa.0.0.copyload.i, 32768 - %tobool264.not.i = icmp eq i32 %244, 0 + %243 = and i32 %a.sroa.0.0.copyload.i, 32768 + %tobool264.not.i = icmp eq i32 %243, 0 br i1 %tobool264.not.i, label %lor.lhs.false265.i, label %land.lhs.true273.i lor.lhs.false265.i: ; preds = %if.end260.i @@ -2973,12 +2965,12 @@ land.lhs.true273.i: ; preds = %if.end260.i br i1 %tobool274.old.not.i, label %land.lhs.true275.i, label %if.then296.i land.lhs.true275.i: ; preds = %land.lhs.true273.i, %lor.lhs.false265.i - %245 = and i32 %a.sroa.0.0.copyload.i, 2 - %tobool279.not.i = icmp eq i32 %245, 0 + %244 = and i32 %a.sroa.0.0.copyload.i, 2 + %tobool279.not.i = icmp eq i32 %244, 0 br i1 %tobool279.not.i, label %if.end294.if.end297_crit_edge.i, label %if.then280.i if.then280.i: ; preds = %land.lhs.true275.i - %call282.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) + %call282.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp283.i = icmp eq ptr %call282.i, null br i1 %cmp283.i, label %if.then337.i, label %if.end286.i @@ -2988,7 +2980,7 @@ if.end286.i: ; preds = %if.then280.i br i1 %tobool288.not.i, label %if.then337.i, label %lor.lhs.false289.i lor.lhs.false289.i: ; preds = %if.end286.i - %call290.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call290.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool291.not.i = icmp eq i32 %call290.i, 0 br i1 %tobool291.not.i, label %if.then337.i, label %if.then296.i @@ -2998,20 +2990,20 @@ if.end294.i: ; preds = %lor.lhs.false265.i if.end294.if.end297_crit_edge.i: ; preds = %if.end294.i, %land.lhs.true275.i %.pre.i = load i32, ptr %can_be_non_inflight.i, align 4 - %246 = icmp eq i32 %.pre.i, 0 - %247 = select i1 %246, i8 4, i8 0 + %245 = icmp eq i32 %.pre.i, 0 + %246 = select i1 %245, i8 4, i8 0 br label %if.end28 if.then296.i: ; preds = %if.end294.i, %lor.lhs.false289.i, %land.lhs.true273.i - %248 = phi i32 [ %have_ack_eliciting.i.14, %if.end294.i ], [ %have_ack_eliciting.i.14, %land.lhs.true273.i ], [ 1, %lor.lhs.false289.i ] - %249 = trunc i32 %248 to i8 - %250 = shl nuw nsw i8 %249, 3 - %251 = and i8 %250, 8 + %247 = phi i32 [ %have_ack_eliciting.i.14, %if.end294.i ], [ %have_ack_eliciting.i.14, %land.lhs.true273.i ], [ 1, %lor.lhs.false289.i ] + %248 = trunc i32 %247 to i8 + %249 = shl nuw nsw i8 %248, 3 + %250 = and i8 %249, 8 br label %if.end28 if.then337.i: ; preds = %lor.lhs.false289.i, %if.end286.i, %if.then280.i, %if.then156.i, %if.then143.i, %if.then114.i, %if.then102.i, %if.then73.i, %if.then61.i, %if.then35.i, %if.then27.i, %if.end.i.i.i, %if.end.i195.i, %txp_generate_stream_related.exit, %txp_generate_stream_related.exit.thread, %txp_generate_crypto_frames.exit.i - %252 = load ptr, ptr %txpim.i, align 8 - call void @ossl_quic_txpim_pkt_release(ptr noundef %252, ptr noundef nonnull %call13.i) #10 + %251 = load ptr, ptr %txpim.i, align 8 + call void @ossl_quic_txpim_pkt_release(ptr noundef %251, ptr noundef nonnull %call13.i) #10 store ptr null, ptr %tpkt.i, align 8 br label %txp_generate_for_el.exit.thread @@ -3020,75 +3012,75 @@ txp_generate_for_el.exit.thread: ; preds = %if.end12.i, %ossl_q br label %out if.end28: ; preds = %if.then296.i, %if.end294.if.end297_crit_edge.i - %tobool307.not.i = phi i8 [ 4, %if.then296.i ], [ %247, %if.end294.if.end297_crit_edge.i ] - %bf.value318.i = phi i8 [ %251, %if.then296.i ], [ 0, %if.end294.if.end297_crit_edge.i ] - %253 = load i64, ptr %bytes_appended.i.i, align 16 - %254 = load i64, ptr %pkt_overhead.i.i, align 8 - %add.i = add i64 %254, %253 + %tobool307.not.i = phi i8 [ 4, %if.then296.i ], [ %246, %if.end294.if.end297_crit_edge.i ] + %bf.value318.i = phi i8 [ %250, %if.then296.i ], [ 0, %if.end294.if.end297_crit_edge.i ] + %252 = load i64, ptr %bytes_appended.i.i, align 16 + %253 = load i64, ptr %pkt_overhead.i.i, align 8 + %add.i = add i64 %253, %252 %num_bytes.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %call13.i, i64 0, i32 1 store i64 %add.i, ptr %num_bytes.i, align 8 - %255 = load i64, ptr %arrayidx.i87, align 8 - store i64 %255, ptr %call13.i, align 8 + %254 = load i64, ptr %arrayidx.i87, align 8 + store i64 %254, ptr %call13.i, align 8 %pkt_space.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %call13.i, i64 0, i32 4 - %256 = trunc i32 %retval.0.i.i85 to i8 + %255 = trunc i32 %retval.0.i.i85 to i8 %bf.load304.i = load i8, ptr %pkt_space.i, align 8 %bf.clear305.i = and i8 %bf.load304.i, -64 - %bf.set306.i = or disjoint i8 %tobool307.not.i, %256 + %bf.set306.i = or disjoint i8 %tobool307.not.i, %255 %bf.set314.i = or disjoint i8 %bf.set306.i, %bf.value318.i %bf.set321.i = or disjoint i8 %bf.set314.i, %bf.clear305.i store i8 %bf.set321.i, ptr %pkt_space.i, align 8 %time.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %call13.i, i64 0, i32 2 - %257 = load ptr, ptr %now.i, align 8 - %258 = load ptr, ptr %now_arg.i, align 8 - %call334.i = call i64 %257(ptr noundef %258) #10 + %256 = load ptr, ptr %now.i, align 8 + %257 = load ptr, ptr %now_arg.i, align 8 + %call334.i = call i64 %256(ptr noundef %257) #10 store i64 %call334.i, ptr %time.i, align 8 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %can_be_non_inflight.i) - %force_pad = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10348, i32 6 - %259 = load i32, ptr %force_pad, align 8 - %tobool31.not = icmp eq i32 %259, 0 + %force_pad = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10347, i32 6 + %258 = load i32, ptr %force_pad, align 8 + %tobool31.not = icmp eq i32 %258, 0 %spec.select = select i1 %tobool31.not, i32 %need_padding.0545, i32 1 - %260 = load i64, ptr %bytes_appended.i.i, align 16 - %add = add i64 %260, %cond347 - %pkt_overhead = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10348, i32 5, i32 3 - %261 = load i64, ptr %pkt_overhead, align 8 - %add39 = add i64 %add, %261 - store i64 %add39, ptr %hwm13350, align 16 + %259 = load i64, ptr %bytes_appended.i.i, align 16 + %add = add i64 %259, %cond346 + %pkt_overhead = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10347, i32 5, i32 3 + %260 = load i64, ptr %pkt_overhead, align 8 + %add39 = add i64 %add, %260 + store i64 %add39, ptr %hwm13349, align 16 br label %for.inc44 for.inc44: ; preds = %txp_should_try_staging.exit, %if.end28 - %conn_close_enc_level.2355 = phi i32 [ %spec.select402, %if.end28 ], [ %conn_close_enc_level.2, %txp_should_try_staging.exit ] + %conn_close_enc_level.2354 = phi i32 [ %spec.select401, %if.end28 ], [ %conn_close_enc_level.2, %txp_should_try_staging.exit ] %need_padding.2 = phi i32 [ %spec.select, %if.end28 ], [ %need_padding.0545, %txp_should_try_staging.exit ] - %indvars.iv.next671 = add nuw nsw i64 %indvars.iv670, 1 - %exitcond674.not = icmp eq i64 %indvars.iv.next671, 4 - br i1 %exitcond674.not, label %for.end46, label %for.body6, !llvm.loop !15 + %indvars.iv.next672 = add nuw nsw i64 %indvars.iv671, 1 + %exitcond675.not = icmp eq i64 %indvars.iv.next672, 4 + br i1 %exitcond675.not, label %for.end46, label %for.body6, !llvm.loop !15 for.end46: ; preds = %if.then14.i.i, %if.end.i, %if.end27.i.i, %for.inc44, %txp_determine_ppl_from_pl.exit.thread.i.i %need_padding.0516 = phi i32 [ %need_padding.0545, %txp_determine_ppl_from_pl.exit.thread.i.i ], [ %need_padding.2, %for.inc44 ], [ %need_padding.0545, %if.end27.i.i ], [ %need_padding.0545, %if.end.i ], [ %need_padding.0545, %if.then14.i.i ] %h_valid48 = getelementptr inbounds %struct.txp_pkt, ptr %pkt, i64 0, i32 1 - %262 = load i32, ptr %h_valid48, align 16 - %tobool49 = icmp eq i32 %262, 0 + %261 = load i32, ptr %h_valid48, align 16 + %tobool49 = icmp eq i32 %261, 0 %bytes_appended52 = getelementptr inbounds %struct.tx_helper, ptr %pkt, i64 0, i32 2 - %263 = load i64, ptr %bytes_appended52, align 16 - %cmp53 = icmp eq i64 %263, 0 + %262 = load i64, ptr %bytes_appended52, align 16 + %cmp53 = icmp eq i64 %262, 0 %or.cond.not = select i1 %tobool49, i1 true, i1 %cmp53 - %tobool57.not404 = icmp eq i32 %need_padding.0516, 0 - %tobool57.not = select i1 %or.cond.not, i1 %tobool57.not404, i1 false + %tobool57.not403 = icmp eq i32 %need_padding.0516, 0 + %tobool57.not = select i1 %or.cond.not, i1 %tobool57.not403, i1 false br i1 %tobool57.not, label %if.end132, label %for.body62 for.body62: ; preds = %for.end46, %for.inc106 - %indvars.iv675 = phi i64 [ %indvars.iv.next676, %for.inc106 ], [ 0, %for.end46 ] + %indvars.iv676 = phi i64 [ %indvars.iv.next677, %for.inc106 ], [ 0, %for.end46 ] %pad_el.0552 = phi i32 [ %pad_el.2, %for.inc106 ], [ 4, %for.end46 ] %total_dgram_size.0551 = phi i64 [ %total_dgram_size.1, %for.inc106 ], [ 0, %for.end46 ] - %arrayidx64 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675 - %h_valid65 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 1 - %264 = load i32, ptr %h_valid65, align 16 - %tobool66.not = icmp eq i32 %264, 0 + %arrayidx64 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676 + %h_valid65 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 1 + %263 = load i32, ptr %h_valid65, align 16 + %tobool66.not = icmp eq i32 %263, 0 br i1 %tobool66.not, label %for.inc106, label %land.lhs.true67 land.lhs.true67: ; preds = %for.body62 %bytes_appended71 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx64, i64 0, i32 2 - %265 = load i64, ptr %bytes_appended71, align 16 - %cmp72.not = icmp eq i64 %265, 0 + %264 = load i64, ptr %bytes_appended71, align 16 + %cmp72.not = icmp eq i64 %264, 0 br i1 %cmp72.not, label %for.inc106, label %if.then74 if.then74: ; preds = %land.lhs.true67 @@ -3096,72 +3088,72 @@ if.then74: ; preds = %land.lhs.true67 br i1 %cmp75, label %land.lhs.true77, label %if.end91 land.lhs.true77: ; preds = %if.then74 - %adata = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 5, i32 5 + %adata = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 5, i32 5 %bf.load = load i32, ptr %adata, align 4 - %266 = and i32 %bf.load, 16384 - %tobool81.not = icmp eq i32 %266, 0 + %265 = and i32 %bf.load, 16384 + %tobool81.not = icmp eq i32 %265, 0 br i1 %tobool81.not, label %if.end91, label %land.lhs.true82 land.lhs.true82: ; preds = %land.lhs.true77 %done_implicit = getelementptr inbounds %struct.tx_helper, ptr %arrayidx64, i64 0, i32 7 %bf.load86 = load i8, ptr %done_implicit, align 4 - %267 = and i8 %bf.load86, 2 - %tobool89.not = icmp eq i8 %267, 0 - %268 = trunc i64 %indvars.iv675 to i32 - %spec.select73 = select i1 %tobool89.not, i32 %268, i32 4 + %266 = and i8 %bf.load86, 2 + %tobool89.not = icmp eq i8 %266, 0 + %267 = trunc i64 %indvars.iv676 to i32 + %spec.select73 = select i1 %tobool89.not, i32 %267, i32 4 br label %if.end91 if.end91: ; preds = %land.lhs.true82, %land.lhs.true77, %if.then74 %pad_el.1 = phi i32 [ 4, %land.lhs.true77 ], [ %pad_el.0552, %if.then74 ], [ %spec.select73, %land.lhs.true82 ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %ciphertext_len.i) %enc_level.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx64, i64 0, i32 6 - %269 = load i32, ptr %enc_level.i, align 16 - %cmp.i134 = icmp eq i32 %269, 0 - br i1 %cmp.i134, label %txp_pkt_postgen_update_pkt_overhead.exit, label %if.end.i135 - -if.end.i135: ; preds = %if.end91 - %270 = load ptr, ptr %qtx, align 8 - %call.i138 = call i32 @ossl_qtx_calculate_ciphertext_payload_len(ptr noundef %270, i32 noundef %269, i64 noundef %265, ptr noundef nonnull %ciphertext_len.i) #10 - %tobool.not.i139 = icmp eq i32 %call.i138, 0 - br i1 %tobool.not.i139, label %if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, label %if.end5.i140 - -if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge: ; preds = %if.end.i135 - %.pre687 = load i64, ptr %bytes_appended71, align 16 + %268 = load i32, ptr %enc_level.i, align 16 + %cmp.i133 = icmp eq i32 %268, 0 + br i1 %cmp.i133, label %txp_pkt_postgen_update_pkt_overhead.exit, label %if.end.i134 + +if.end.i134: ; preds = %if.end91 + %269 = load ptr, ptr %qtx, align 8 + %call.i137 = call i32 @ossl_qtx_calculate_ciphertext_payload_len(ptr noundef %269, i32 noundef %268, i64 noundef %264, ptr noundef nonnull %ciphertext_len.i) #10 + %tobool.not.i138 = icmp eq i32 %call.i137, 0 + br i1 %tobool.not.i138, label %if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, label %if.end5.i139 + +if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge: ; preds = %if.end.i134 + %.pre688 = load i64, ptr %bytes_appended71, align 16 br label %txp_pkt_postgen_update_pkt_overhead.exit -if.end5.i140: ; preds = %if.end.i135 - %271 = load i64, ptr %ciphertext_len.i, align 8 - %phdr.i141 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 4 - %len.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 4, i32 7 - store i64 %271, ptr %len.i, align 16 - %dst_conn_id.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 4, i32 2 - %272 = load i8, ptr %dst_conn_id.i, align 16 - %conv.i142 = zext i8 %272 to i64 - %call8.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv.i142, ptr noundef nonnull %phdr.i141) #10 +if.end5.i139: ; preds = %if.end.i134 + %270 = load i64, ptr %ciphertext_len.i, align 8 + %phdr.i140 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 4 + %len.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 4, i32 7 + store i64 %270, ptr %len.i, align 16 + %dst_conn_id.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 4, i32 2 + %271 = load i8, ptr %dst_conn_id.i, align 16 + %conv.i141 = zext i8 %271 to i64 + %call8.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv.i141, ptr noundef nonnull %phdr.i140) #10 %conv9.i = sext i32 %call8.i to i64 - %273 = load i64, ptr %ciphertext_len.i, align 8 - %add.i143 = add i64 %273, %conv9.i - %274 = load i64, ptr %bytes_appended71, align 16 - %sub.i = sub i64 %add.i143, %274 - %pkt_overhead.i144 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 5, i32 3 - store i64 %sub.i, ptr %pkt_overhead.i144, align 8 + %272 = load i64, ptr %ciphertext_len.i, align 8 + %add.i142 = add i64 %272, %conv9.i + %273 = load i64, ptr %bytes_appended71, align 16 + %sub.i = sub i64 %add.i142, %273 + %pkt_overhead.i143 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 5, i32 3 + store i64 %sub.i, ptr %pkt_overhead.i143, align 8 br label %txp_pkt_postgen_update_pkt_overhead.exit -txp_pkt_postgen_update_pkt_overhead.exit: ; preds = %if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, %if.end91, %if.end5.i140 - %275 = phi i64 [ %.pre687, %if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge ], [ %265, %if.end91 ], [ %274, %if.end5.i140 ] +txp_pkt_postgen_update_pkt_overhead.exit: ; preds = %if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, %if.end91, %if.end5.i139 + %274 = phi i64 [ %.pre688, %if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge ], [ %264, %if.end91 ], [ %273, %if.end5.i139 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ciphertext_len.i) - %pkt_overhead98 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 5, i32 3 - %276 = load i64, ptr %pkt_overhead98, align 8 - %add103 = add i64 %276, %total_dgram_size.0551 - %add104 = add i64 %add103, %275 + %pkt_overhead98 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 5, i32 3 + %275 = load i64, ptr %pkt_overhead98, align 8 + %add103 = add i64 %275, %total_dgram_size.0551 + %add104 = add i64 %add103, %274 br label %for.inc106 for.inc106: ; preds = %for.body62, %land.lhs.true67, %txp_pkt_postgen_update_pkt_overhead.exit %total_dgram_size.1 = phi i64 [ %add104, %txp_pkt_postgen_update_pkt_overhead.exit ], [ %total_dgram_size.0551, %land.lhs.true67 ], [ %total_dgram_size.0551, %for.body62 ] %pad_el.2 = phi i32 [ %pad_el.1, %txp_pkt_postgen_update_pkt_overhead.exit ], [ %pad_el.0552, %land.lhs.true67 ], [ %pad_el.0552, %for.body62 ] - %indvars.iv.next676 = add nuw nsw i64 %indvars.iv675, 1 - %exitcond678.not = icmp eq i64 %indvars.iv.next676, 4 - br i1 %exitcond678.not, label %for.end108, label %for.body62, !llvm.loop !16 + %indvars.iv.next677 = add nuw nsw i64 %indvars.iv676, 1 + %exitcond679.not = icmp eq i64 %indvars.iv.next677, 4 + br i1 %exitcond679.not, label %for.end108, label %for.body62, !llvm.loop !16 for.end108: ; preds = %for.inc106 %cmp109 = icmp ne i32 %pad_el.2, 4 @@ -3173,42 +3165,42 @@ if.then114: ; preds = %for.end108 %sub115 = sub nuw nsw i64 1200, %total_dgram_size.1 %idxprom116 = zext nneg i32 %pad_el.2 to i64 %arrayidx117 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116 - %h_valid.i146 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 1 - %277 = load i32, ptr %h_valid.i146, align 16 - %cmp1.not.i147 = icmp eq i32 %277, 0 - br i1 %cmp1.not.i147, label %out, label %if.end4.i + %h_valid.i145 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 1 + %276 = load i32, ptr %h_valid.i145, align 16 + %cmp1.not.i146 = icmp eq i32 %276, 0 + br i1 %cmp1.not.i146, label %out, label %if.end4.i if.end4.i: ; preds = %if.then114 - %tpkt.i148 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 2 - %278 = load ptr, ptr %tpkt.i148, align 8 - %cmp5.not.i = icmp eq ptr %278, null + %tpkt.i147 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 2 + %277 = load ptr, ptr %tpkt.i147, align 8 + %cmp5.not.i = icmp eq ptr %277, null br i1 %cmp5.not.i, label %out, label %if.end16.i if.end16.i: ; preds = %if.end4.i - %call.i149 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx117) - %cmp17.i = icmp eq ptr %call.i149, null + %call.i148 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx117) + %cmp17.i = icmp eq ptr %call.i148, null br i1 %cmp17.i, label %out, label %if.end20.i if.end20.i: ; preds = %if.end16.i - %call21.i = call i32 @ossl_quic_wire_encode_padding(ptr noundef nonnull %call.i149, i64 noundef %sub115) #10 - %tobool22.not.i150 = icmp eq i32 %call21.i, 0 - br i1 %tobool22.not.i150, label %if.then23.i, label %if.end25.i + %call21.i = call i32 @ossl_quic_wire_encode_padding(ptr noundef nonnull %call.i148, i64 noundef %sub115) #10 + %tobool22.not.i149 = icmp eq i32 %call21.i, 0 + br i1 %tobool22.not.i149, label %if.then23.i, label %if.end25.i if.then23.i: ; preds = %if.end20.i - %active.i.i155 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 2 - %bf.load.i.i156 = load i8, ptr %active.i.i155, align 8 - %bf.clear.i.i157 = and i8 %bf.load.i.i156, 1 - %tobool.not.i.i158 = icmp eq i8 %bf.clear.i.i157, 0 - br i1 %tobool.not.i.i158, label %out, label %if.end.i.i159 - -if.end.i.i159: ; preds = %if.then23.i - %wpkt2.i.i.i160 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i160) #10 - %txn3.i.i.i161 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8 - %bf.load.i.i.i162 = load i8, ptr %active.i.i155, align 8 - %bf.clear.i.i.i163 = and i8 %bf.load.i.i.i162, -2 - store i8 %bf.clear.i.i.i163, ptr %active.i.i155, align 8 - store ptr null, ptr %txn3.i.i.i161, align 8 + %active.i.i154 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 2 + %bf.load.i.i155 = load i8, ptr %active.i.i154, align 8 + %bf.clear.i.i156 = and i8 %bf.load.i.i155, 1 + %tobool.not.i.i157 = icmp eq i8 %bf.clear.i.i156, 0 + br i1 %tobool.not.i.i157, label %out, label %if.end.i.i158 + +if.end.i.i158: ; preds = %if.then23.i + %wpkt2.i.i.i159 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i159) #10 + %txn3.i.i.i160 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8 + %bf.load.i.i.i161 = load i8, ptr %active.i.i154, align 8 + %bf.clear.i.i.i162 = and i8 %bf.load.i.i.i161, -2 + store i8 %bf.clear.i.i.i162, ptr %active.i.i154, align 8 + store ptr null, ptr %txn3.i.i.i160, align 8 br label %out if.end25.i: ; preds = %if.end20.i @@ -3217,18 +3209,18 @@ if.end25.i: ; preds = %if.end20.i br i1 %tobool28.not.i, label %out, label %if.end127.thread if.end127.thread: ; preds = %if.end25.i - %279 = load ptr, ptr %tpkt.i148, align 8 - %num_bytes32.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %279, i64 0, i32 1 - %280 = load i64, ptr %num_bytes32.i, align 8 - %add.i151 = add i64 %280, %sub115 - store i64 %add.i151, ptr %num_bytes32.i, align 8 - %281 = load ptr, ptr %tpkt.i148, align 8 - %is_inflight.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %281, i64 0, i32 4 - %bf.load.i152 = load i8, ptr %is_inflight.i, align 8 - %bf.set.i153 = or i8 %bf.load.i152, 4 - store i8 %bf.set.i153, ptr %is_inflight.i, align 8 - %282 = load ptr, ptr %tpkt.i148, align 8 - %is_inflight = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %282, i64 0, i32 4 + %278 = load ptr, ptr %tpkt.i147, align 8 + %num_bytes32.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %278, i64 0, i32 1 + %279 = load i64, ptr %num_bytes32.i, align 8 + %add.i150 = add i64 %279, %sub115 + store i64 %add.i150, ptr %num_bytes32.i, align 8 + %280 = load ptr, ptr %tpkt.i147, align 8 + %is_inflight.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %280, i64 0, i32 4 + %bf.load.i151 = load i8, ptr %is_inflight.i, align 8 + %bf.set.i152 = or i8 %bf.load.i151, 4 + store i8 %bf.set.i152, ptr %is_inflight.i, align 8 + %281 = load ptr, ptr %tpkt.i147, align 8 + %is_inflight = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %281, i64 0, i32 4 %bf.load125 = load i8, ptr %is_inflight, align 8 %bf.set = or i8 %bf.load125, 4 store i8 %bf.set, ptr %is_inflight, align 8 @@ -3253,108 +3245,108 @@ if.end132: ; preds = %if.end127.thread, % br label %for.body136 for.body136: ; preds = %if.end132, %for.inc192 - %indvars.iv679 = phi i64 [ 0, %if.end132 ], [ %indvars.iv.next680, %for.inc192 ] + %indvars.iv680 = phi i64 [ 0, %if.end132 ], [ %indvars.iv.next681, %for.inc192 ] %pkts_done.0553 = phi i64 [ 0, %if.end132 ], [ %pkts_done.1, %for.inc192 ] - %arrayidx138 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679 - %h_valid139 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 1 - %283 = load i32, ptr %h_valid139, align 16 - %tobool140.not = icmp eq i32 %283, 0 + %arrayidx138 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680 + %h_valid139 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 1 + %282 = load i32, ptr %h_valid139, align 16 + %tobool140.not = icmp eq i32 %282, 0 br i1 %tobool140.not, label %for.inc192, label %if.end142 if.end142: ; preds = %for.body136 %bytes_appended146 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 2 - %284 = load i64, ptr %bytes_appended146, align 16 - %cmp147 = icmp eq i64 %284, 0 + %283 = load i64, ptr %bytes_appended146, align 16 + %cmp147 = icmp eq i64 %283, 0 br i1 %cmp147, label %for.inc192, label %if.end150 if.end150: ; preds = %if.end142 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %txpkt.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i) - %enc_level1.i164 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 6 - %285 = load i32, ptr %enc_level1.i164, align 16 - %286 = icmp ult i32 %285, 4 - br i1 %286, label %switch.lookup923, label %if.end187.thread - -switch.lookup923: ; preds = %if.end150 - %287 = zext nneg i32 %285 to i64 - %switch.gep924 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %287 - %switch.load925 = load i32, ptr %switch.gep924, align 4 - %tpkt2.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 2 - %288 = load ptr, ptr %tpkt2.i, align 8 - %idxprom.i.i170 = zext nneg i32 %285 to i64 - %arrayidx3.i.i172 = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom.i.i170, i64 %idxprom2.i.i - %289 = load i32, ptr %arrayidx3.i.i172, align 4 - %phdr.i173 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 4 - store ptr %phdr.i173, ptr %txpkt.i, align 8 - %iovec.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i170, i32 2 - %290 = load ptr, ptr %iovec.i, align 8 - store ptr %290, ptr %iovec7.i, align 8 + %enc_level1.i163 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 6 + %284 = load i32, ptr %enc_level1.i163, align 16 + %285 = icmp ult i32 %284, 4 + br i1 %285, label %switch.lookup925, label %if.end187.thread + +switch.lookup925: ; preds = %if.end150 + %286 = zext nneg i32 %284 to i64 + %switch.gep926 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %286 + %switch.load927 = load i32, ptr %switch.gep926, align 4 + %tpkt2.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 2 + %287 = load ptr, ptr %tpkt2.i, align 8 + %idxprom.i.i169 = zext nneg i32 %284 to i64 + %arrayidx3.i.i171 = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom.i.i169, i64 %idxprom2.i.i + %288 = load i32, ptr %arrayidx3.i.i171, align 4 + %phdr.i172 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 4 + store ptr %phdr.i172, ptr %txpkt.i, align 8 + %iovec.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i169, i32 2 + %289 = load ptr, ptr %iovec.i, align 8 + store ptr %289, ptr %iovec7.i, align 8 %num_iovec.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 5 - %291 = load i64, ptr %num_iovec.i, align 8 - store i64 %291, ptr %num_iovec9.i, align 8 + %290 = load i64, ptr %num_iovec.i, align 8 + store i64 %290, ptr %num_iovec9.i, align 8 store ptr null, ptr %local.i, align 8 %call10.i = call i32 @BIO_ADDR_family(ptr noundef nonnull %peer.i) #10 %cmp11.i = icmp eq i32 %call10.i, 0 - %cond.i174 = select i1 %cmp11.i, ptr null, ptr %peer.i - store ptr %cond.i174, ptr %peer14.i, align 8 - %idxprom15.i = zext nneg i32 %switch.load925 to i64 + %cond.i173 = select i1 %cmp11.i, ptr null, ptr %peer.i + store ptr %cond.i173, ptr %peer14.i, align 8 + %idxprom15.i = zext nneg i32 %switch.load927 to i64 %arrayidx16.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 6, i64 %idxprom15.i - %292 = load i64, ptr %arrayidx16.i, align 8 - store i64 %292, ptr %pn.i, align 8 + %291 = load i64, ptr %arrayidx16.i, align 8 + store i64 %291, ptr %pn.i, align 8 store i32 1, ptr %flags.i, align 8 - %stream_head.i175 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 3 - %stream.084.i = load ptr, ptr %stream_head.i175, align 16 + %stream_head.i174 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 3 + %stream.084.i = load ptr, ptr %stream_head.i174, align 16 %cmp17.not85.i = icmp eq ptr %stream.084.i, null - br i1 %cmp17.not85.i, label %for.end.i182, label %for.body.i177 + br i1 %cmp17.not85.i, label %for.end.i181, label %for.body.i176 -for.body.i177: ; preds = %switch.lookup923, %for.inc.i181 - %stream.086.i = phi ptr [ %stream.0.i, %for.inc.i181 ], [ %stream.084.i, %switch.lookup923 ] +for.body.i176: ; preds = %switch.lookup925, %for.inc.i180 + %stream.086.i = phi ptr [ %stream.0.i, %for.inc.i180 ], [ %stream.084.i, %switch.lookup925 ] %txp_sent_stop_sending.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.086.i, i64 0, i32 15 - %bf.load.i178 = load i64, ptr %txp_sent_stop_sending.i, align 8 - %293 = and i64 %bf.load.i178, 1610612736 - %or.cond.i179 = icmp eq i64 %293, 0 - br i1 %or.cond.i179, label %for.inc.i181, label %if.then24.i + %bf.load.i177 = load i64, ptr %txp_sent_stop_sending.i, align 8 + %292 = and i64 %bf.load.i177, 1610612736 + %or.cond.i178 = icmp eq i64 %292, 0 + br i1 %or.cond.i178, label %for.inc.i180, label %if.then24.i -if.then24.i: ; preds = %for.body.i177 +if.then24.i: ; preds = %for.body.i176 %id.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.086.i, i64 0, i32 4 - %294 = load i64, ptr %id.i, align 8 - store i64 %294, ptr %chunk.i, align 8 + %293 = load i64, ptr %id.i, align 8 + store i64 %293, ptr %chunk.i, align 8 store i64 -1, ptr %start.i, align 8 store i64 0, ptr %end.i, align 8 %bf.load25.i = load i8, ptr %has_fin.i, align 8 - %295 = trunc i64 %bf.load.i178 to i32 - %sh.diff.i = lshr i32 %295, 28 + %294 = trunc i64 %bf.load.i177 to i32 + %sh.diff.i = lshr i32 %294, 28 %tr.sh.diff.i = trunc i32 %sh.diff.i to i8 %bf.clear33.i = and i8 %bf.load25.i, -8 - %296 = and i8 %tr.sh.diff.i, 6 - %bf.set44.i = or disjoint i8 %bf.clear33.i, %296 + %295 = and i8 %tr.sh.diff.i, 6 + %bf.set44.i = or disjoint i8 %bf.clear33.i, %295 store i8 %bf.set44.i, ptr %has_fin.i, align 8 - %call46.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %288, ptr noundef nonnull %chunk.i) #10 - %tobool47.not.i180 = icmp eq i32 %call46.i, 0 - br i1 %tobool47.not.i180, label %if.end187.thread, label %for.inc.i181 + %call46.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %287, ptr noundef nonnull %chunk.i) #10 + %tobool47.not.i179 = icmp eq i32 %call46.i, 0 + br i1 %tobool47.not.i179, label %if.end187.thread, label %for.inc.i180 -for.inc.i181: ; preds = %if.then24.i, %for.body.i177 +for.inc.i180: ; preds = %if.then24.i, %for.body.i176 %txp_next.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.086.i, i64 0, i32 3 %stream.0.i = load ptr, ptr %txp_next.i, align 8 %cmp17.not.i = icmp eq ptr %stream.0.i, null - br i1 %cmp17.not.i, label %for.end.i182, label %for.body.i177, !llvm.loop !17 + br i1 %cmp17.not.i, label %for.end.i181, label %for.body.i176, !llvm.loop !17 -for.end.i182: ; preds = %for.inc.i181, %switch.lookup923 - %call51.i = call i32 @ossl_quic_fifd_pkt_commit(ptr noundef nonnull %fifd.i, ptr noundef %288) #10 +for.end.i181: ; preds = %for.inc.i180, %switch.lookup925 + %call51.i = call i32 @ossl_quic_fifd_pkt_commit(ptr noundef nonnull %fifd.i, ptr noundef %287) #10 %tobool52.not.i = icmp eq i32 %call51.i, 0 br i1 %tobool52.not.i, label %if.end187.thread, label %if.end54.i -if.end54.i: ; preds = %for.end.i182 - %297 = load i64, ptr %arrayidx16.i, align 8 - %inc.i = add i64 %297, 1 +if.end54.i: ; preds = %for.end.i181 + %296 = load i64, ptr %arrayidx16.i, align 8 + %inc.i = add i64 %296, 1 store i64 %inc.i, ptr %arrayidx16.i, align 8 - %298 = load ptr, ptr %qtx, align 8 - %call59.i = call i32 @ossl_qtx_write_pkt(ptr noundef %298, ptr noundef nonnull %txpkt.i) #10 + %297 = load ptr, ptr %qtx, align 8 + %call59.i = call i32 @ossl_qtx_write_pkt(ptr noundef %297, ptr noundef nonnull %txpkt.i) #10 %tobool60.not.i = icmp eq i32 %call59.i, 0 - br i1 %tobool60.not.i, label %if.end187.thread397, label %for.cond64.preheader.i + br i1 %tobool60.not.i, label %if.end187.thread396, label %for.cond64.preheader.i for.cond64.preheader.i: ; preds = %if.end54.i - %stream.187.i = load ptr, ptr %stream_head.i175, align 16 + %stream.187.i = load ptr, ptr %stream_head.i174, align 16 %cmp65.not88.i = icmp eq ptr %stream.187.i, null br i1 %cmp65.not88.i, label %for.end127.i, label %for.body66.i @@ -3363,8 +3355,8 @@ for.body66.i: ; preds = %for.cond64.preheade %rc.089.i = phi i32 [ %rc.2.i, %for.inc125.i ], [ 1, %for.cond64.preheader.i ] %txp_sent_fc.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 15 %bf.load67.i = load i64, ptr %txp_sent_fc.i, align 8 - %299 = and i64 %bf.load67.i, 268435456 - %tobool71.not.i = icmp eq i64 %299, 0 + %298 = and i64 %bf.load67.i, 268435456 + %tobool71.not.i = icmp eq i64 %298, 0 br i1 %tobool71.not.i, label %if.end77.i, label %if.then72.i if.then72.i: ; preds = %for.body66.i @@ -3377,66 +3369,66 @@ if.then72.i: ; preds = %for.body66.i if.end77.i: ; preds = %if.then72.i, %for.body66.i %bf.load79.i = phi i64 [ %bf.load79.pre.i, %if.then72.i ], [ %bf.load67.i, %for.body66.i ] - %300 = and i64 %bf.load79.i, 536870912 - %tobool83.not.not.i = icmp eq i64 %300, 0 + %299 = and i64 %bf.load79.i, 536870912 + %tobool83.not.not.i = icmp eq i64 %299, 0 %bf.clear86.i = and i64 %bf.load79.i, -17179869185 %bf.load90.i = select i1 %tobool83.not.not.i, i64 %bf.load79.i, i64 %bf.clear86.i - %301 = and i64 %bf.load90.i, 1073741824 - %302 = or disjoint i64 %301, %300 - %.not.i = icmp eq i64 %302, 0 - br i1 %.not.i, label %304, label %303 + %300 = and i64 %bf.load90.i, 1073741824 + %301 = or disjoint i64 %300, %299 + %.not.i = icmp eq i64 %301, 0 + br i1 %.not.i, label %303, label %302 -303: ; preds = %if.end77.i - %tobool94.not.not.i = icmp eq i64 %301, 0 +302: ; preds = %if.end77.i + %tobool94.not.not.i = icmp eq i64 %300, 0 %bf.clear97.i = and i64 %bf.load90.i, -34359738369 %simplifycfg.merge.i = select i1 %tobool94.not.not.i, i64 %bf.load90.i, i64 %bf.clear97.i store i64 %simplifycfg.merge.i, ptr %txp_sent_fc.i, align 8 - br label %304 + br label %303 -304: ; preds = %303, %if.end77.i +303: ; preds = %302, %if.end77.i %txp_txfc_new_credit_consumed.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 9 - %305 = load i64, ptr %txp_txfc_new_credit_consumed.i, align 8 - %cmp100.not.i = icmp eq i64 %305, 0 + %304 = load i64, ptr %txp_txfc_new_credit_consumed.i, align 8 + %cmp100.not.i = icmp eq i64 %304, 0 br i1 %cmp100.not.i, label %if.end110.i, label %if.then101.i -if.then101.i: ; preds = %304 +if.then101.i: ; preds = %303 %txfc.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 13 - %call103.i = call i32 @ossl_quic_txfc_consume_credit(ptr noundef nonnull %txfc.i, i64 noundef %305) #10 + %call103.i = call i32 @ossl_quic_txfc_consume_credit(ptr noundef nonnull %txfc.i, i64 noundef %304) #10 %cmp104.not.i = icmp eq i32 %call103.i, 0 %spec.select.i = select i1 %cmp104.not.i, i32 0, i32 %rc.089.i store i64 0, ptr %txp_txfc_new_credit_consumed.i, align 8 br label %if.end110.i -if.end110.i: ; preds = %if.then101.i, %304 - %rc.2.i = phi i32 [ %spec.select.i, %if.then101.i ], [ %rc.089.i, %304 ] - %306 = load ptr, ptr %qsm.i, align 8 - call void @ossl_quic_stream_map_update_state(ptr noundef %306, ptr noundef nonnull %stream.190.i) #10 +if.end110.i: ; preds = %if.then101.i, %303 + %rc.2.i = phi i32 [ %spec.select.i, %if.then101.i ], [ %rc.089.i, %303 ] + %305 = load ptr, ptr %qsm.i, align 8 + call void @ossl_quic_stream_map_update_state(ptr noundef %305, ptr noundef nonnull %stream.190.i) #10 %stream.1.val.i = load i64, ptr %txp_sent_fc.i, align 8 - %307 = lshr i64 %stream.1.val.i, 8 - %trunc.i.i = trunc i64 %307 to i8 - %308 = add i8 %trunc.i.i, -4 - %switch.i.i = icmp ult i8 %308, -3 - br i1 %switch.i.i, label %for.inc125.i, label %land.lhs.true.i185 + %306 = lshr i64 %stream.1.val.i, 8 + %trunc.i.i = trunc i64 %306 to i8 + %307 = add i8 %trunc.i.i, -4 + %switch.i.i = icmp ult i8 %307, -3 + br i1 %switch.i.i, label %for.inc125.i, label %land.lhs.true.i184 -land.lhs.true.i185: ; preds = %if.end110.i +land.lhs.true.i184: ; preds = %if.end110.i %sstream.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 11 - %309 = load ptr, ptr %sstream.i, align 8 - %call114.i = call i32 @ossl_quic_sstream_has_pending(ptr noundef %309) #10 + %308 = load ptr, ptr %sstream.i, align 8 + %call114.i = call i32 @ossl_quic_sstream_has_pending(ptr noundef %308) #10 %tobool115.not.i = icmp eq i32 %call114.i, 0 br i1 %tobool115.not.i, label %land.lhs.true116.i, label %for.inc125.i -land.lhs.true116.i: ; preds = %land.lhs.true.i185 - %310 = load ptr, ptr %sstream.i, align 8 - %call118.i200 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %310, ptr noundef null) #10 - %tobool119.not.i201 = icmp eq i32 %call118.i200, 0 - br i1 %tobool119.not.i201, label %for.inc125.i, label %if.then120.i +land.lhs.true116.i: ; preds = %land.lhs.true.i184 + %309 = load ptr, ptr %sstream.i, align 8 + %call118.i199 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %309, ptr noundef null) #10 + %tobool119.not.i200 = icmp eq i32 %call118.i199, 0 + br i1 %tobool119.not.i200, label %for.inc125.i, label %if.then120.i if.then120.i: ; preds = %land.lhs.true116.i - %311 = load ptr, ptr %qsm.i, align 8 - %call123.i = call i32 @ossl_quic_stream_map_notify_all_data_sent(ptr noundef %311, ptr noundef nonnull %stream.190.i) #10 + %310 = load ptr, ptr %qsm.i, align 8 + %call123.i = call i32 @ossl_quic_stream_map_notify_all_data_sent(ptr noundef %310, ptr noundef nonnull %stream.190.i) #10 br label %for.inc125.i -for.inc125.i: ; preds = %if.then120.i, %land.lhs.true116.i, %land.lhs.true.i185, %if.end110.i +for.inc125.i: ; preds = %if.then120.i, %land.lhs.true116.i, %land.lhs.true.i184, %if.end110.i %txp_next126.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 3 %stream.1.i = load ptr, ptr %txp_next126.i, align 8 %cmp65.not.i = icmp eq ptr %stream.1.i, null @@ -3444,26 +3436,26 @@ for.inc125.i: ; preds = %if.then120.i, %land for.end127.i: ; preds = %for.inc125.i, %for.cond64.preheader.i %rc.0.lcssa.i = phi i32 [ 1, %for.cond64.preheader.i ], [ %rc.2.i, %for.inc125.i ] - %is_ack_eliciting.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %288, i64 0, i32 4 + %is_ack_eliciting.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %287, i64 0, i32 4 %bf.load128.i = load i8, ptr %is_ack_eliciting.i, align 8 - %312 = and i8 %bf.load128.i, 8 - %tobool132.not.i = icmp eq i8 %312, 0 + %311 = and i8 %bf.load128.i, 8 + %tobool132.not.i = icmp eq i8 %311, 0 br i1 %tobool132.not.i, label %if.end146.i, label %if.then133.i if.then133.i: ; preds = %for.end127.i - %shl.i186 = shl nuw nsw i32 1, %switch.load925 + %shl.i185 = shl nuw nsw i32 1, %switch.load927 %bf.load134.i = load i16, ptr %want_ack.i, align 8 - %313 = trunc i32 %shl.i186 to i16 - %314 = xor i16 %313, -1 - %315 = shl nsw i16 %314, 7 - %bf.shl14291.i = or i16 %315, -897 + %312 = trunc i32 %shl.i185 to i16 + %313 = xor i16 %312, -1 + %314 = shl nsw i16 %313, 7 + %bf.shl14291.i = or i16 %314, -897 %bf.set144.i = and i16 %bf.load134.i, %bf.shl14291.i store i16 %bf.set144.i, ptr %want_ack.i, align 8 br label %if.end146.i if.end146.i: ; preds = %if.then133.i, %for.end127.i - %had_handshake_done_frame.i188 = getelementptr inbounds %struct.quic_txpim_pkt_st, ptr %288, i64 0, i32 3 - %bf.load147.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %had_handshake_done_frame.i187 = getelementptr inbounds %struct.quic_txpim_pkt_st, ptr %287, i64 0, i32 3 + %bf.load147.i = load i8, ptr %had_handshake_done_frame.i187, align 8 %bf.clear148.i = and i8 %bf.load147.i, 1 %tobool150.not.i = icmp eq i8 %bf.clear148.i, 0 br i1 %tobool150.not.i, label %if.end155.i, label %if.then151.i @@ -3472,76 +3464,76 @@ if.then151.i: ; preds = %if.end146.i %bf.load152.i = load i16, ptr %want_ack.i, align 8 %bf.clear153.i = and i16 %bf.load152.i, -2 store i16 %bf.clear153.i, ptr %want_ack.i, align 8 - %bf.load156.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %bf.load156.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end155.i if.end155.i: ; preds = %if.then151.i, %if.end146.i %bf.load156.i = phi i8 [ %bf.load156.pre.i, %if.then151.i ], [ %bf.load147.i, %if.end146.i ] - %316 = and i8 %bf.load156.i, 2 - %tobool160.not.i = icmp eq i8 %316, 0 + %315 = and i8 %bf.load156.i, 2 + %tobool160.not.i = icmp eq i8 %315, 0 br i1 %tobool160.not.i, label %if.end167.i, label %if.then161.i if.then161.i: ; preds = %if.end155.i %bf.load162.i = load i16, ptr %want_ack.i, align 8 %bf.clear163.i = and i16 %bf.load162.i, -3 store i16 %bf.clear163.i, ptr %want_ack.i, align 8 - %317 = load ptr, ptr %conn_rxfc.i, align 8 - %call166.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %317, i32 noundef 1) #10 - %bf.load168.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %316 = load ptr, ptr %conn_rxfc.i, align 8 + %call166.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %316, i32 noundef 1) #10 + %bf.load168.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end167.i if.end167.i: ; preds = %if.then161.i, %if.end155.i %bf.load168.i = phi i8 [ %bf.load168.pre.i, %if.then161.i ], [ %bf.load156.i, %if.end155.i ] - %318 = and i8 %bf.load168.i, 4 - %tobool172.not.i = icmp eq i8 %318, 0 + %317 = and i8 %bf.load168.i, 4 + %tobool172.not.i = icmp eq i8 %317, 0 br i1 %tobool172.not.i, label %if.end179.i, label %if.then173.i if.then173.i: ; preds = %if.end167.i %bf.load174.i = load i16, ptr %want_ack.i, align 8 %bf.clear175.i = and i16 %bf.load174.i, -5 store i16 %bf.clear175.i, ptr %want_ack.i, align 8 - %319 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 - %call178.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %319, i32 noundef 1) #10 - %bf.load180.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %318 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 + %call178.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %318, i32 noundef 1) #10 + %bf.load180.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end179.i if.end179.i: ; preds = %if.then173.i, %if.end167.i %bf.load180.i = phi i8 [ %bf.load180.pre.i, %if.then173.i ], [ %bf.load168.i, %if.end167.i ] - %320 = and i8 %bf.load180.i, 8 - %tobool184.not.i193 = icmp eq i8 %320, 0 - br i1 %tobool184.not.i193, label %if.end191.i, label %if.then185.i + %319 = and i8 %bf.load180.i, 8 + %tobool184.not.i192 = icmp eq i8 %319, 0 + br i1 %tobool184.not.i192, label %if.end191.i, label %if.then185.i if.then185.i: ; preds = %if.end179.i %bf.load186.i = load i16, ptr %want_ack.i, align 8 %bf.clear187.i = and i16 %bf.load186.i, -9 store i16 %bf.clear187.i, ptr %want_ack.i, align 8 - %321 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 - %call190.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %321, i32 noundef 1) #10 - %bf.load192.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %320 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 + %call190.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %320, i32 noundef 1) #10 + %bf.load192.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end191.i if.end191.i: ; preds = %if.then185.i, %if.end179.i %bf.load192.i = phi i8 [ %bf.load192.pre.i, %if.then185.i ], [ %bf.load180.i, %if.end179.i ] - %322 = and i8 %bf.load192.i, 16 - %tobool196.not.i = icmp eq i8 %322, 0 + %321 = and i8 %bf.load192.i, 16 + %tobool196.not.i = icmp eq i8 %321, 0 br i1 %tobool196.not.i, label %if.end214.i, label %if.then197.i if.then197.i: ; preds = %if.end191.i - %shl199.i = shl nuw nsw i32 1, %switch.load925 + %shl199.i = shl nuw nsw i32 1, %switch.load927 %bf.load201.i = load i16, ptr %want_ack.i, align 8 - %323 = trunc i32 %shl199.i to i16 - %324 = xor i16 %323, -1 - %325 = shl nsw i16 %324, 4 - %bf.shl21092.i = or i16 %325, -113 + %322 = trunc i32 %shl199.i to i16 + %323 = xor i16 %322, -1 + %324 = shl nsw i16 %323, 4 + %bf.shl21092.i = or i16 %324, -113 %bf.set212.i = and i16 %bf.load201.i, %bf.shl21092.i store i16 %bf.set212.i, ptr %want_ack.i, align 8 - %bf.load215.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %bf.load215.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end214.i if.end214.i: ; preds = %if.then197.i, %if.end191.i %bf.load215.i = phi i8 [ %bf.load215.pre.i, %if.then197.i ], [ %bf.load192.i, %if.end191.i ] - %326 = and i8 %bf.load215.i, 32 - %tobool219.not.i = icmp eq i8 %326, 0 + %325 = and i8 %bf.load215.i, 32 + %tobool219.not.i = icmp eq i8 %325, 0 br i1 %tobool219.not.i, label %if.end224.i, label %if.then220.i if.then220.i: ; preds = %if.end214.i @@ -3552,49 +3544,49 @@ if.then220.i: ; preds = %if.end214.i if.end224.i: ; preds = %if.then220.i, %if.end214.i %bf.load227.i = load i8, ptr %is_ack_eliciting.i, align 8 - %327 = and i8 %bf.load227.i, 8 - %tobool231.not.i = icmp eq i8 %327, 0 + %326 = and i8 %bf.load227.i, 8 + %tobool231.not.i = icmp eq i8 %326, 0 br i1 %tobool231.not.i, label %txp_pkt_commit.exit, label %if.then232.i if.then232.i: ; preds = %if.end224.i - %328 = load ptr, ptr %4, align 8 - %call234.i = call ptr @ossl_ackm_get0_probe_request(ptr noundef %328) #10 - switch i32 %285, label %if.end251.i [ + %327 = load ptr, ptr %4, align 8 + %call234.i = call ptr @ossl_ackm_get0_probe_request(ptr noundef %327) #10 + switch i32 %284, label %if.end251.i [ i32 0, label %land.lhs.true237.i i32 1, label %land.lhs.true245.i ] land.lhs.true237.i: ; preds = %if.then232.i - %329 = load i32, ptr %call234.i, align 4 - %cmp238.not.i = icmp eq i32 %329, 0 + %328 = load i32, ptr %call234.i, align 4 + %cmp238.not.i = icmp eq i32 %328, 0 br i1 %cmp238.not.i, label %if.end251.i, label %if.end251.sink.split.i land.lhs.true245.i: ; preds = %if.then232.i - %anti_deadlock_handshake.i198 = getelementptr inbounds %struct.ossl_ackm_probe_info_st, ptr %call234.i, i64 0, i32 1 - %330 = load i32, ptr %anti_deadlock_handshake.i198, align 4 - %cmp246.not.i = icmp eq i32 %330, 0 + %anti_deadlock_handshake.i197 = getelementptr inbounds %struct.ossl_ackm_probe_info_st, ptr %call234.i, i64 0, i32 1 + %329 = load i32, ptr %anti_deadlock_handshake.i197, align 4 + %cmp246.not.i = icmp eq i32 %329, 0 br i1 %cmp246.not.i, label %if.end251.i, label %if.end251.sink.split.i if.end251.sink.split.i: ; preds = %land.lhs.true245.i, %land.lhs.true237.i - %.sink.i = phi i32 [ %329, %land.lhs.true237.i ], [ %330, %land.lhs.true245.i ] - %call234.sink.i = phi ptr [ %call234.i, %land.lhs.true237.i ], [ %anti_deadlock_handshake.i198, %land.lhs.true245.i ] + %.sink.i = phi i32 [ %328, %land.lhs.true237.i ], [ %329, %land.lhs.true245.i ] + %call234.sink.i = phi ptr [ %call234.i, %land.lhs.true237.i ], [ %anti_deadlock_handshake.i197, %land.lhs.true245.i ] %dec.i = add i32 %.sink.i, -1 store i32 %dec.i, ptr %call234.sink.i, align 4 br label %if.end251.i if.end251.i: ; preds = %if.end251.sink.split.i, %land.lhs.true245.i, %land.lhs.true237.i, %if.then232.i - %331 = and i32 %289, 8192 - %tobool255.not.i = icmp eq i32 %331, 0 + %330 = and i32 %288, 8192 + %tobool255.not.i = icmp eq i32 %330, 0 br i1 %tobool255.not.i, label %txp_pkt_commit.exit, label %land.lhs.true256.i land.lhs.true256.i: ; preds = %if.end251.i %arrayidx258.i = getelementptr inbounds %struct.ossl_ackm_probe_info_st, ptr %call234.i, i64 0, i32 2, i64 %idxprom15.i - %332 = load i32, ptr %arrayidx258.i, align 4 - %cmp259.not.i = icmp eq i32 %332, 0 + %331 = load i32, ptr %arrayidx258.i, align 4 + %cmp259.not.i = icmp eq i32 %331, 0 br i1 %cmp259.not.i, label %txp_pkt_commit.exit, label %if.then261.i if.then261.i: ; preds = %land.lhs.true256.i - %dec265.i = add i32 %332, -1 + %dec265.i = add i32 %331, -1 store i32 %dec265.i, ptr %arrayidx258.i, align 4 br label %txp_pkt_commit.exit @@ -3605,47 +3597,47 @@ txp_pkt_commit.exit: ; preds = %if.end224.i, %if.en br i1 %tobool154.not, label %if.end187, label %if.then155 if.then155: ; preds = %txp_pkt_commit.exit - %333 = load i32, ptr %status, align 8 - %tobool156.not = icmp eq i32 %333, 0 + %332 = load i32, ptr %status, align 8 + %tobool156.not = icmp eq i32 %332, 0 br i1 %tobool156.not, label %lor.rhs, label %lor.end lor.rhs: ; preds = %if.then155 - %334 = load ptr, ptr %tpkt2.i, align 8 - %is_ack_eliciting = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %334, i64 0, i32 4 + %333 = load ptr, ptr %tpkt2.i, align 8 + %is_ack_eliciting = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %333, i64 0, i32 4 %bf.load161 = load i8, ptr %is_ack_eliciting, align 8 - %335 = and i8 %bf.load161, 8 - %tobool165 = icmp ne i8 %335, 0 + %334 = and i8 %bf.load161, 8 + %tobool165 = icmp ne i8 %334, 0 br label %lor.end lor.end: ; preds = %lor.rhs, %if.then155 - %336 = phi i1 [ true, %if.then155 ], [ %tobool165, %lor.rhs ] - %lor.ext = zext i1 %336 to i32 + %335 = phi i1 [ true, %if.then155 ], [ %tobool165, %lor.rhs ] + %lor.ext = zext i1 %335 to i32 store i32 %lor.ext, ptr %status, align 8 - %cmp167 = icmp eq i64 %indvars.iv679, 1 + %cmp167 = icmp eq i64 %indvars.iv680, 1 br i1 %cmp167, label %if.then169, label %if.end190 if.then169: ; preds = %lor.end - %337 = load i32, ptr %h_valid139, align 16 - %tobool173.not = icmp eq i32 %337, 0 + %336 = load i32, ptr %h_valid139, align 16 + %tobool173.not = icmp eq i32 %336, 0 br i1 %tobool173.not, label %land.end, label %land.rhs land.rhs: ; preds = %if.then169 - %338 = load i64, ptr %bytes_appended146, align 16 - %cmp178 = icmp ne i64 %338, 0 + %337 = load i64, ptr %bytes_appended146, align 16 + %cmp178 = icmp ne i64 %337, 0 br label %land.end land.end: ; preds = %land.rhs, %if.then169 - %339 = phi i1 [ false, %if.then169 ], [ %cmp178, %land.rhs ] - %land.ext = zext i1 %339 to i32 + %338 = phi i1 [ false, %if.then169 ], [ %cmp178, %land.rhs ] + %land.ext = zext i1 %338 to i32 store i32 %land.ext, ptr %sent_handshake, align 4 br label %if.end190 -if.end187.thread: ; preds = %for.end.i182, %if.end150, %if.then24.i +if.end187.thread: ; preds = %for.end.i181, %if.end150, %if.then24.i call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %txpkt.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i) br label %out -if.end187.thread397: ; preds = %if.end54.i +if.end187.thread396: ; preds = %if.end54.i call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %txpkt.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i) store ptr null, ptr %tpkt2.i, align 8 @@ -3662,60 +3654,60 @@ if.end190: ; preds = %lor.end, %land.end for.inc192: ; preds = %if.end142, %for.body136, %if.end190 %pkts_done.1 = phi i64 [ %pkts_done.0553, %if.end142 ], [ %inc191, %if.end190 ], [ %pkts_done.0553, %for.body136 ] - %indvars.iv.next680 = add nuw nsw i64 %indvars.iv679, 1 - %exitcond682.not = icmp eq i64 %indvars.iv.next680, 4 - br i1 %exitcond682.not, label %out, label %for.body136, !llvm.loop !19 - -out: ; preds = %for.inc192, %if.end.i.i159, %if.then23.i, %if.end25.i, %if.end16.i, %if.end4.i, %if.then114, %if.end187, %if.end187.thread397, %if.end187.thread, %txp_generate_for_el.exit.thread, %if.end127 - %pkts_done.2 = phi i64 [ %pkts_done.0553, %if.end187 ], [ 0, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ %pkts_done.0553, %if.end187.thread ], [ %pkts_done.0553, %if.end187.thread397 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i159 ], [ %pkts_done.1, %for.inc192 ] - %res.0 = phi i32 [ 0, %if.end187 ], [ 1, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ 0, %if.end187.thread ], [ 0, %if.end187.thread397 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i159 ], [ 1, %for.inc192 ] - %340 = load ptr, ptr %qtx, align 8 - call void @ossl_qtx_finish_dgram(ptr noundef %340) #10 + %indvars.iv.next681 = add nuw nsw i64 %indvars.iv680, 1 + %exitcond683.not = icmp eq i64 %indvars.iv.next681, 4 + br i1 %exitcond683.not, label %out, label %for.body136, !llvm.loop !19 + +out: ; preds = %for.inc192, %if.end.i.i158, %if.then23.i, %if.end25.i, %if.end16.i, %if.end4.i, %if.then114, %if.end187, %if.end187.thread396, %if.end187.thread, %txp_generate_for_el.exit.thread, %if.end127 + %pkts_done.2 = phi i64 [ %pkts_done.0553, %if.end187 ], [ 0, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ %pkts_done.0553, %if.end187.thread ], [ %pkts_done.0553, %if.end187.thread396 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i158 ], [ %pkts_done.1, %for.inc192 ] + %res.0 = phi i32 [ 0, %if.end187 ], [ 1, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ 0, %if.end187.thread ], [ 0, %if.end187.thread396 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i158 ], [ 1, %for.inc192 ] + %339 = load ptr, ptr %qtx, align 8 + call void @ossl_qtx_finish_dgram(ptr noundef %339) #10 br label %for.body200 for.body200: ; preds = %out, %txp_pkt_cleanup.exit - %indvars.iv683 = phi i64 [ 0, %out ], [ %indvars.iv.next684, %txp_pkt_cleanup.exit ] - %arrayidx202 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv683 - %h_valid.i203 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv683, i32 1 - %341 = load i32, ptr %h_valid.i203, align 16 - %tobool.not.i204 = icmp eq i32 %341, 0 - br i1 %tobool.not.i204, label %txp_pkt_cleanup.exit, label %if.end.i205 - -if.end.i205: ; preds = %for.body200 - %active.i.i206 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 2 - %bf.load.i.i207 = load i8, ptr %active.i.i206, align 8 - %bf.clear.i.i208 = and i8 %bf.load.i.i207, 1 - %tobool.not.i.i209 = icmp eq i8 %bf.clear.i.i208, 0 - br i1 %tobool.not.i.i209, label %tx_helper_cleanup.exit.i, label %tx_helper_rollback.exit.i.i - -tx_helper_rollback.exit.i.i: ; preds = %if.end.i205 - %wpkt2.i.i.i.i210 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i210) #10 - %txn3.i.i.i.i211 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8 - %bf.load.i.i.i.i212 = load i8, ptr %active.i.i206, align 8 - %bf.clear.i.i.i.i213 = and i8 %bf.load.i.i.i.i212, -2 - store i8 %bf.clear.i.i.i.i213, ptr %active.i.i206, align 8 - store ptr null, ptr %txn3.i.i.i.i211, align 8 + %indvars.iv684 = phi i64 [ 0, %out ], [ %indvars.iv.next685, %txp_pkt_cleanup.exit ] + %arrayidx202 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv684 + %h_valid.i202 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv684, i32 1 + %340 = load i32, ptr %h_valid.i202, align 16 + %tobool.not.i203 = icmp eq i32 %340, 0 + br i1 %tobool.not.i203, label %txp_pkt_cleanup.exit, label %if.end.i204 + +if.end.i204: ; preds = %for.body200 + %active.i.i205 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 2 + %bf.load.i.i206 = load i8, ptr %active.i.i205, align 8 + %bf.clear.i.i207 = and i8 %bf.load.i.i206, 1 + %tobool.not.i.i208 = icmp eq i8 %bf.clear.i.i207, 0 + br i1 %tobool.not.i.i208, label %tx_helper_cleanup.exit.i, label %tx_helper_rollback.exit.i.i + +tx_helper_rollback.exit.i.i: ; preds = %if.end.i204 + %wpkt2.i.i.i.i209 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i209) #10 + %txn3.i.i.i.i210 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8 + %bf.load.i.i.i.i211 = load i8, ptr %active.i.i205, align 8 + %bf.clear.i.i.i.i212 = and i8 %bf.load.i.i.i.i211, -2 + store i8 %bf.clear.i.i.i.i212, ptr %active.i.i205, align 8 + store ptr null, ptr %txn3.i.i.i.i210, align 8 br label %tx_helper_cleanup.exit.i -tx_helper_cleanup.exit.i: ; preds = %tx_helper_rollback.exit.i.i, %if.end.i205 +tx_helper_cleanup.exit.i: ; preds = %tx_helper_rollback.exit.i.i, %if.end.i204 store ptr null, ptr %arrayidx202, align 16 - store i32 0, ptr %h_valid.i203, align 16 - %tpkt.i214 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv683, i32 2 - %342 = load ptr, ptr %tpkt.i214, align 8 - %cmp.not.i215 = icmp eq ptr %342, null - br i1 %cmp.not.i215, label %txp_pkt_cleanup.exit, label %if.then2.i + store i32 0, ptr %h_valid.i202, align 16 + %tpkt.i213 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv684, i32 2 + %341 = load ptr, ptr %tpkt.i213, align 8 + %cmp.not.i214 = icmp eq ptr %341, null + br i1 %cmp.not.i214, label %txp_pkt_cleanup.exit, label %if.then2.i if.then2.i: ; preds = %tx_helper_cleanup.exit.i - %343 = load ptr, ptr %txpim.i, align 8 - call void @ossl_quic_txpim_pkt_release(ptr noundef %343, ptr noundef nonnull %342) #10 - store ptr null, ptr %tpkt.i214, align 8 + %342 = load ptr, ptr %txpim.i, align 8 + call void @ossl_quic_txpim_pkt_release(ptr noundef %342, ptr noundef nonnull %341) #10 + store ptr null, ptr %tpkt.i213, align 8 br label %txp_pkt_cleanup.exit txp_pkt_cleanup.exit: ; preds = %for.body200, %tx_helper_cleanup.exit.i, %if.then2.i - %indvars.iv.next684 = add nuw nsw i64 %indvars.iv683, 1 - %exitcond686.not = icmp eq i64 %indvars.iv.next684, 4 - br i1 %exitcond686.not, label %for.end205, label %for.body200, !llvm.loop !20 + %indvars.iv.next685 = add nuw nsw i64 %indvars.iv684, 1 + %exitcond687.not = icmp eq i64 %indvars.iv.next685, 4 + br i1 %exitcond687.not, label %for.end205, label %for.body200, !llvm.loop !20 for.end205: ; preds = %txp_pkt_cleanup.exit %sent_pkt = getelementptr inbounds %struct.quic_txp_status_st, ptr %status, i64 0, i32 2 diff --git a/bench/openssl/optimized/libssl-shlib-quic_txp.ll b/bench/openssl/optimized/libssl-shlib-quic_txp.ll index 8483146c9ef..41b59d51266 100644 --- a/bench/openssl/optimized/libssl-shlib-quic_txp.ll +++ b/bench/openssl/optimized/libssl-shlib-quic_txp.ll @@ -643,12 +643,12 @@ entry: define noundef i32 @ossl_quic_tx_packetiser_generate(ptr noundef %txp, ptr nocapture noundef %status) local_unnamed_addr #0 { entry: %chunks.i.i = alloca [2 x %struct.chunk_info], align 16 - %chunk.i.i218 = alloca %struct.quic_txpim_chunk_st, align 8 + %chunk.i.i217 = alloca %struct.quic_txpim_chunk_st, align 8 %hdr_len_implicit.i.i = alloca i64, align 8 %payload_len_implicit.i.i = alloca i64, align 8 %hdr_len_explicit.i.i = alloca i64, align 8 %payload_len_explicit.i.i = alloca i64, align 8 - %it.i219 = alloca %struct.quic_stream_iter_st, align 8 + %it.i218 = alloca %struct.quic_stream_iter_st, align 8 %f.i = alloca %struct.ossl_quic_frame_stop_sending_st, align 16 %f37.i = alloca %struct.ossl_quic_frame_reset_stream_st, align 8 %txpkt.i = alloca %struct.ossl_qtx_pkt_st, align 8 @@ -740,38 +740,38 @@ txp_determine_archetype.exit: ; preds = %for.body.i, %for.en %start.i.i = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i, i64 0, i32 1 %end.i.i = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i, i64 0, i32 2 %has_fin.i.i = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i, i64 0, i32 3 - %stream2.i = getelementptr inbounds %struct.quic_stream_iter_st, ptr %it.i219, i64 0, i32 2 + %stream2.i = getelementptr inbounds %struct.quic_stream_iter_st, ptr %it.i218, i64 0, i32 2 %app_error_code57.i = getelementptr inbounds %struct.ossl_quic_frame_reset_stream_st, ptr %f37.i, i64 0, i32 1 %final_size.i = getelementptr inbounds %struct.ossl_quic_frame_reset_stream_st, ptr %f37.i, i64 0, i32 2 %valid.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 0, i32 4 - %start.i.i227 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i218, i64 0, i32 1 - %end.i.i228 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i218, i64 0, i32 2 - %has_fin.i.i229 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i218, i64 0, i32 3 + %start.i.i226 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i217, i64 0, i32 1 + %end.i.i227 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i217, i64 0, i32 2 + %has_fin.i.i228 = getelementptr inbounds %struct.quic_txpim_chunk_st, ptr %chunk.i.i217, i64 0, i32 3 %now.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_args_st, ptr %txp, i64 0, i32 15 %now_arg.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_args_st, ptr %txp, i64 0, i32 16 - %hwm13346 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 0, i32 5, i32 2 + %hwm13345 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 0, i32 5, i32 2 br label %for.body6 for.body6: ; preds = %txp_determine_archetype.exit, %for.inc44 - %indvars.iv670 = phi i64 [ 0, %txp_determine_archetype.exit ], [ %indvars.iv.next671, %for.inc44 ] + %indvars.iv671 = phi i64 [ 0, %txp_determine_archetype.exit ], [ %indvars.iv.next672, %for.inc44 ] %need_padding.0545 = phi i32 [ 0, %txp_determine_archetype.exit ], [ %need_padding.2, %for.inc44 ] - %conn_close_enc_level.0544 = phi i32 [ 4, %txp_determine_archetype.exit ], [ %conn_close_enc_level.2355, %for.inc44 ] - %cmp7.not = icmp eq i64 %indvars.iv670, 0 + %conn_close_enc_level.0544 = phi i32 [ 4, %txp_determine_archetype.exit ], [ %conn_close_enc_level.2354, %for.inc44 ] + %cmp7.not = icmp eq i64 %indvars.iv671, 0 br i1 %cmp7.not, label %cond.end.thread, label %cond.end cond.end.thread: ; preds = %for.body6 - store i64 0, ptr %hwm13346, align 16 + store i64 0, ptr %hwm13345, align 16 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i) br label %ossl_quic_enc_level_to_pn_space.exit.i cond.end: ; preds = %for.body6 - %8 = add nsw i64 %indvars.iv670, -1 + %8 = add nsw i64 %indvars.iv671, -1 %hwm = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %8, i32 5, i32 2 %9 = load i64, ptr %hwm, align 16 - %hwm13 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 2 + %hwm13 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 2 store i64 %9, ptr %hwm13, align 16 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i) - %10 = trunc i64 %indvars.iv670 to i32 + %10 = trunc i64 %indvars.iv671 to i32 switch i32 %10, label %cond.end.unreachabledefault [ i32 3, label %sw.bb2.i.i i32 1, label %ossl_quic_enc_level_to_pn_space.exit.i @@ -790,18 +790,18 @@ sw.default.i.i: ; preds = %cond.end ossl_quic_enc_level_to_pn_space.exit.i: ; preds = %cond.end, %cond.end.thread, %sw.default.i.i, %sw.bb2.i.i %.pre-phi = phi i32 [ %10, %cond.end ], [ 0, %cond.end.thread ], [ 0, %sw.default.i.i ], [ %10, %sw.bb2.i.i ] - %hwm13350 = phi ptr [ %hwm13, %cond.end ], [ %hwm13346, %cond.end.thread ], [ %hwm13, %sw.default.i.i ], [ %hwm13, %sw.bb2.i.i ] - %idxprom10348 = phi i64 [ 1, %cond.end ], [ 0, %cond.end.thread ], [ %indvars.iv670, %sw.default.i.i ], [ %indvars.iv670, %sw.bb2.i.i ] - %cond347 = phi i64 [ %9, %cond.end ], [ 0, %cond.end.thread ], [ %9, %sw.default.i.i ], [ %9, %sw.bb2.i.i ] + %hwm13349 = phi ptr [ %hwm13, %cond.end ], [ %hwm13345, %cond.end.thread ], [ %hwm13, %sw.default.i.i ], [ %hwm13, %sw.bb2.i.i ] + %idxprom10347 = phi i64 [ 1, %cond.end ], [ 0, %cond.end.thread ], [ %indvars.iv671, %sw.default.i.i ], [ %indvars.iv671, %sw.bb2.i.i ] + %cond346 = phi i64 [ %9, %cond.end ], [ 0, %cond.end.thread ], [ %9, %sw.default.i.i ], [ %9, %sw.bb2.i.i ] %retval.0.i.i = phi i32 [ %10, %cond.end ], [ 0, %cond.end.thread ], [ 2, %sw.default.i.i ], [ 2, %sw.bb2.i.i ] - %arrayidx11349 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670 + %arrayidx11348 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671 %11 = load ptr, ptr %qtx, align 8 %call1.i = call i32 @ossl_qtx_is_enc_level_provisioned(ptr noundef %11, i32 noundef %.pre-phi) #10 %tobool.not.i = icmp eq i32 %call1.i, 0 br i1 %tobool.not.i, label %txp_should_try_staging.exit, label %if.end5.i if.end5.i: ; preds = %ossl_quic_enc_level_to_pn_space.exit.i - %arrayidx3.i.i = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom10348, i64 %idxprom2.i.i + %arrayidx3.i.i = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom10347, i64 %idxprom2.i.i %12 = load i32, ptr %arrayidx3.i.i, align 4 %.fr108.i = freeze i32 %12 %13 = and i32 %.fr108.i, 65536 @@ -812,7 +812,7 @@ if.end5.i: ; preds = %ossl_quic_enc_level if.end8.i: ; preds = %if.end5.i %cmp11.not.i = icmp eq i32 %conn_close_enc_level.0544, 3 %14 = call i32 @llvm.umin.i32(i32 %conn_close_enc_level.0544, i32 %.pre-phi) - %spec.select402 = select i1 %cmp11.not.i, i32 3, i32 %14 + %spec.select401 = select i1 %cmp11.not.i, i32 3, i32 %14 %15 = and i32 %.fr108.i, 8192 %tobool17.not.i = icmp eq i32 %15, 0 br i1 %tobool17.not.i, label %if.end31.i, label %if.then18.i @@ -960,13 +960,13 @@ land.lhs.true134.i: ; preds = %if.end129.i %bf.load135.i = load i16, ptr %want_ack.i, align 8 %32 = and i16 %bf.load135.i, 1024 %tobool139.not.i = icmp ne i16 %32, 0 - %33 = zext nneg i32 %spec.select402 to i64 - %cmp141.i = icmp eq i64 %indvars.iv670, %33 - %or.cond403 = select i1 %tobool139.not.i, i1 %cmp141.i, i1 false - br i1 %or.cond403, label %if.end.thread, label %if.end144.i + %33 = zext nneg i32 %spec.select401 to i64 + %cmp141.i = icmp eq i64 %indvars.iv671, %33 + %or.cond402 = select i1 %tobool139.not.i, i1 %cmp141.i, i1 false + br i1 %or.cond402, label %if.end.thread, label %if.end144.i if.end144.i: ; preds = %land.lhs.true134.i, %if.end129.i - %cmp145.not.i = icmp eq i64 %indvars.iv670, 2 + %cmp145.not.i = icmp eq i64 %indvars.iv671, 2 br i1 %cmp145.not.i, label %if.end187.i, label %if.then147.i if.then147.i: ; preds = %if.end144.i @@ -1197,7 +1197,7 @@ if.then198.i: ; preds = %land.lhs.true192.i br i1 %cmp200.not.i, label %txp_should_try_staging.exit, label %if.end txp_should_try_staging.exit: ; preds = %if.end187.i, %land.lhs.true192.i, %if.then198.i, %ossl_quic_enc_level_to_pn_space.exit.i, %if.end5.i - %conn_close_enc_level.2 = phi i32 [ %conn_close_enc_level.0544, %ossl_quic_enc_level_to_pn_space.exit.i ], [ %conn_close_enc_level.0544, %if.end5.i ], [ %spec.select402, %if.then198.i ], [ %spec.select402, %land.lhs.true192.i ], [ %spec.select402, %if.end187.i ] + %conn_close_enc_level.2 = phi i32 [ %conn_close_enc_level.0544, %ossl_quic_enc_level_to_pn_space.exit.i ], [ %conn_close_enc_level.0544, %if.end5.i ], [ %spec.select401, %if.then198.i ], [ %spec.select401, %land.lhs.true192.i ], [ %spec.select401, %if.end187.i ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i) br label %for.inc44 @@ -1210,50 +1210,42 @@ if.end: ; preds = %for.body.us87.i, %f br label %if.end.i.i if.end.i.i: ; preds = %if.end, %if.end.thread - %phdr.i358 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4 - %geom.i359 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5 - %adata.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 5 + %phdr.i357 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4 + %geom.i358 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5 + %adata.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 5 store i32 %.fr108.i, ptr %adata.i.i, align 4 - %45 = icmp ult i32 %.pre-phi, 4 - br i1 %45, label %switch.lookup, label %ossl_quic_enc_level_to_pkt_type.exit.i.i - -switch.lookup: ; preds = %if.end.i.i - %46 = zext nneg i32 %.pre-phi to i64 - %switch.gep = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_generate, i64 0, i64 %46 + %45 = sext i32 %.pre-phi to i64 + %switch.gep = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_generate, i64 0, i64 %45 %switch.load = load i32, ptr %switch.gep, align 4 - br label %ossl_quic_enc_level_to_pkt_type.exit.i.i - -ossl_quic_enc_level_to_pkt_type.exit.i.i: ; preds = %if.end.i.i, %switch.lookup - %retval.0.i37.i.i = phi i32 [ %switch.load, %switch.lookup ], [ 37119, %if.end.i.i ] - %bf.load.i.i = load i32, ptr %phdr.i358, align 8 + %bf.load.i.i = load i32, ptr %phdr.i357, align 8 %bf.clear.i.i = and i32 %bf.load.i.i, -3210752 - %bf.set15.i.i = or disjoint i32 %bf.clear.i.i, %retval.0.i37.i.i - store i32 %bf.set15.i.i, ptr %phdr.i358, align 8 - %version.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 1 + %bf.set15.i.i = or disjoint i32 %bf.clear.i.i, %switch.load + store i32 %bf.set15.i.i, ptr %phdr.i357, align 8 + %version.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 1 store i32 1, ptr %version.i.i, align 4 - %dst_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 2 + %dst_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(21) %dst_conn_id.i.i, ptr noundef nonnull align 1 dereferenceable(21) %cur_dcid.i.i, i64 21, i1 false) - %src_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 3 + %src_conn_id.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 3 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(21) %src_conn_id.i.i, ptr noundef nonnull align 8 dereferenceable(21) %txp, i64 21, i1 false) - %len.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 7 + %len.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 7 store i64 16379, ptr %len.i.i, align 16 br i1 %cmp7.not, label %if.then24.i.i, label %if.end27.i.i -if.then24.i.i: ; preds = %ossl_quic_enc_level_to_pkt_type.exit.i.i - %47 = load ptr, ptr %initial_token.i.i, align 8 - %48 = load i64, ptr %initial_token_len.i.i, align 8 +if.then24.i.i: ; preds = %if.end.i.i + %46 = load ptr, ptr %initial_token.i.i, align 8 + %47 = load i64, ptr %initial_token_len.i.i, align 8 br label %if.end27.i.i -if.end27.i.i: ; preds = %ossl_quic_enc_level_to_pkt_type.exit.i.i, %if.then24.i.i - %.sink = phi ptr [ %47, %if.then24.i.i ], [ null, %ossl_quic_enc_level_to_pkt_type.exit.i.i ] - %.sink.i.i = phi i64 [ %48, %if.then24.i.i ], [ 0, %ossl_quic_enc_level_to_pkt_type.exit.i.i ] - %49 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 5 - store ptr %.sink, ptr %49, align 16 - %50 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 4, i32 6 - store i64 %.sink.i.i, ptr %50, align 8 - %51 = load i8, ptr %dst_conn_id.i.i, align 16 - %conv29.i.i = zext i8 %51 to i64 - %call30.i.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv29.i.i, ptr noundef nonnull %phdr.i358) #10 +if.end27.i.i: ; preds = %if.end.i.i, %if.then24.i.i + %.sink = phi ptr [ %46, %if.then24.i.i ], [ null, %if.end.i.i ] + %.sink.i.i = phi i64 [ %47, %if.then24.i.i ], [ 0, %if.end.i.i ] + %48 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 5 + store ptr %.sink, ptr %48, align 16 + %49 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 4, i32 6 + store i64 %.sink.i.i, ptr %49, align 8 + %50 = load i8, ptr %dst_conn_id.i.i, align 16 + %conv29.i.i = zext i8 %50 to i64 + %call30.i.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv29.i.i, ptr noundef nonnull %phdr.i357) #10 %conv31.i.i = sext i32 %call30.i.i to i64 %cmp32.i.i = icmp eq i32 %call30.i.i, 0 br i1 %cmp32.i.i, label %for.end46, label %if.end35.i.i @@ -1261,8 +1253,8 @@ if.end27.i.i: ; preds = %ossl_quic_enc_level if.end35.i.i: ; preds = %if.end27.i.i %txp.val.i.i = load ptr, ptr %qtx, align 8 %call.i.i.i = call i64 @ossl_qtx_get_mdpl(ptr noundef %txp.val.i.i) #10 - %cmpl.0.i.i = call i64 @llvm.usub.sat.i64(i64 %call.i.i.i, i64 %cond347) - %cmppl.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 1 + %cmpl.0.i.i = call i64 @llvm.usub.sat.i64(i64 %call.i.i.i, i64 %cond346) + %cmppl.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %pl.addr.i.i.i) %cmp.i38.i.i = icmp ult i64 %cmpl.0.i.i, %conv31.i.i br i1 %cmp.i38.i.i, label %txp_determine_ppl_from_pl.exit.thread.i.i, label %if.end.i39.i.i @@ -1270,8 +1262,8 @@ if.end35.i.i: ; preds = %if.end27.i.i if.end.i39.i.i: ; preds = %if.end35.i.i %sub.i.i.i = sub i64 %cmpl.0.i.i, %conv31.i.i store i64 %sub.i.i.i, ptr %pl.addr.i.i.i, align 8 - %52 = load ptr, ptr %qtx, align 8 - %call.i40.i.i = call i32 @ossl_qtx_calculate_plaintext_payload_len(ptr noundef %52, i32 noundef %.pre-phi, i64 noundef %sub.i.i.i, ptr noundef nonnull %pl.addr.i.i.i) #10 + %51 = load ptr, ptr %qtx, align 8 + %call.i40.i.i = call i32 @ossl_qtx_calculate_plaintext_payload_len(ptr noundef %51, i32 noundef %.pre-phi, i64 noundef %sub.i.i.i, ptr noundef nonnull %pl.addr.i.i.i) #10 %tobool.not.i.i.i = icmp eq i32 %call.i40.i.i, 0 br i1 %tobool.not.i.i.i, label %txp_determine_ppl_from_pl.exit.thread.i.i, label %if.end.i @@ -1280,107 +1272,107 @@ txp_determine_ppl_from_pl.exit.thread.i.i: ; preds = %if.end.i39.i.i, %if br label %for.end46 if.end.i: ; preds = %if.end.i39.i.i - %53 = load i64, ptr %pl.addr.i.i.i, align 8 - store i64 %53, ptr %cmppl.i.i, align 8 + %52 = load i64, ptr %pl.addr.i.i.i, align 8 + store i64 %52, ptr %cmppl.i.i, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %pl.addr.i.i.i) - store i64 %cmpl.0.i.i, ptr %geom.i359, align 16 - %sub49.i.i = sub i64 %cmpl.0.i.i, %53 - %pkt_overhead.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 3 + store i64 %cmpl.0.i.i, ptr %geom.i358, align 16 + %sub49.i.i = sub i64 %cmpl.0.i.i, %52 + %pkt_overhead.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 3 store i64 %sub49.i.i, ptr %pkt_overhead.i.i, align 8 - %archetype50.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 5, i32 4 + %archetype50.i.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 5, i32 4 store i32 %retval.0.i, ptr %archetype50.i.i, align 16 %bf.load.i = load i32, ptr %adata.i.i, align 4 - %54 = lshr i32 %bf.load.i, 15 - %.lobit.i = and i32 %54, 1 + %53 = lshr i32 %bf.load.i, 15 + %.lobit.i = and i32 %53, 1 %conv.i79 = zext nneg i32 %.lobit.i to i64 - %cmp.i11.i = icmp ult i64 %53, %conv.i79 + %cmp.i11.i = icmp ult i64 %52, %conv.i79 br i1 %cmp.i11.i, label %for.end46, label %if.end.i12.i if.end.i12.i: ; preds = %if.end.i - store ptr %txp, ptr %arrayidx11349, align 16 - %enc_level2.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 6 + store ptr %txp, ptr %arrayidx11348, align 16 + %enc_level2.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 6 store i32 %.pre-phi, ptr %enc_level2.i.i, align 16 - %max_ppl3.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 1 - store i64 %53, ptr %max_ppl3.i.i, align 8 - %reserve4.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 4 + %max_ppl3.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 1 + store i64 %52, ptr %max_ppl3.i.i, align 8 + %reserve4.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 4 store i64 %conv.i79, ptr %reserve4.i.i, align 16 - %num_iovec.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 5 + %num_iovec.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 5 store i64 0, ptr %num_iovec.i.i, align 8 - %bytes_appended.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 2 - %reserve_allowed.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 7 + %bytes_appended.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 2 + %reserve_allowed.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 7 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %bytes_appended.i.i, i8 0, i64 16, i1 false) %bf.load.i13.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear6.i.i = and i8 %bf.load.i13.i, -4 store i8 %bf.clear6.i.i, ptr %reserve_allowed.i.i, align 4 - %txn.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8 + %txn.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8 store ptr null, ptr %txn.i.i, align 8 - %active.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 2 + %active.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 2 %bf.load9.i.i = load i8, ptr %active.i.i, align 8 %bf.clear10.i.i = and i8 %bf.load9.i.i, -2 store i8 %bf.clear10.i.i, ptr %active.i.i, align 8 - %scratch_len.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10348, i32 1 - %55 = load i64, ptr %scratch_len.i.i, align 8 - %cmp13.i.i = icmp ult i64 %55, %53 + %scratch_len.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10347, i32 1 + %54 = load i64, ptr %scratch_len.i.i, align 8 + %cmp13.i.i = icmp ult i64 %54, %52 br i1 %cmp13.i.i, label %if.then14.i.i, label %if.end20 if.then14.i.i: ; preds = %if.end.i12.i - %arrayidx.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10348 - %56 = load ptr, ptr %arrayidx.i.i, align 8 - %call.i.i81 = call ptr @CRYPTO_realloc(ptr noundef %56, i64 noundef %53, ptr noundef nonnull @.str, i32 noundef 208) #10 + %arrayidx.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom10347 + %55 = load ptr, ptr %arrayidx.i.i, align 8 + %call.i.i81 = call ptr @CRYPTO_realloc(ptr noundef %55, i64 noundef %52, ptr noundef nonnull @.str, i32 noundef 208) #10 %cmp20.i.i = icmp eq ptr %call.i.i81, null br i1 %cmp20.i.i, label %for.end46, label %if.end22.i.i if.end22.i.i: ; preds = %if.then14.i.i - %57 = load ptr, ptr %arrayidx11349, align 16 - %arrayidx26.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %57, i64 0, i32 12, i64 %idxprom10348 + %56 = load ptr, ptr %arrayidx11348, align 16 + %arrayidx26.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %56, i64 0, i32 12, i64 %idxprom10347 store ptr %call.i.i81, ptr %arrayidx26.i.i, align 8 - %58 = load ptr, ptr %arrayidx11349, align 16 - %scratch_len32.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %58, i64 0, i32 12, i64 %idxprom10348, i32 1 - store i64 %53, ptr %scratch_len32.i.i, align 8 + %57 = load ptr, ptr %arrayidx11348, align 16 + %scratch_len32.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %57, i64 0, i32 12, i64 %idxprom10347, i32 1 + store i64 %52, ptr %scratch_len32.i.i, align 8 %.pre = load i32, ptr %enc_level2.i.i, align 16 br label %if.end20 if.end20: ; preds = %if.end22.i.i, %if.end.i12.i - %59 = phi i32 [ %.pre, %if.end22.i.i ], [ %.pre-phi, %if.end.i12.i ] - %h_valid.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 1 + %58 = phi i32 [ %.pre, %if.end22.i.i ], [ %.pre-phi, %if.end.i12.i ] + %h_valid.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 1 store i32 1, ptr %h_valid.i, align 16 - %tpkt.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 2 - %force_pad.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 6 + %tpkt.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 2 + %force_pad.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 6 store i32 0, ptr %force_pad.i, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %tpkt.i, i8 0, i64 16, i1 false) - %60 = zext nneg i32 %spec.select402 to i64 - %cmp23 = icmp eq i64 %indvars.iv670, %60 + %59 = zext nneg i32 %spec.select401 to i64 + %cmp23 = icmp eq i64 %indvars.iv671, %59 %conv = zext i1 %cmp23 to i32 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %can_be_non_inflight.i) - %61 = icmp ult i32 %59, 4 - br i1 %61, label %switch.lookup917, label %ossl_quic_enc_level_to_pn_space.exit.i84 + %60 = icmp ult i32 %58, 4 + br i1 %60, label %switch.lookup, label %ossl_quic_enc_level_to_pn_space.exit.i84 -switch.lookup917: ; preds = %if.end20 - %62 = zext nneg i32 %59 to i64 - %switch.gep918 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %62 - %switch.load919 = load i32, ptr %switch.gep918, align 4 +switch.lookup: ; preds = %if.end20 + %61 = zext nneg i32 %58 to i64 + %switch.gep920 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %61 + %switch.load921 = load i32, ptr %switch.gep920, align 4 br label %ossl_quic_enc_level_to_pn_space.exit.i84 -ossl_quic_enc_level_to_pn_space.exit.i84: ; preds = %if.end20, %switch.lookup917 - %retval.0.i.i85 = phi i32 [ %switch.load919, %switch.lookup917 ], [ 2, %if.end20 ] +ossl_quic_enc_level_to_pn_space.exit.i84: ; preds = %if.end20, %switch.lookup + %retval.0.i.i85 = phi i32 [ %switch.load921, %switch.lookup ], [ 2, %if.end20 ] %a.sroa.0.0.copyload.i = load i32, ptr %adata.i.i, align 4 store i32 1, ptr %can_be_non_inflight.i, align 4 %idxprom.i86 = zext nneg i32 %retval.0.i.i85 to i64 %arrayidx.i87 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 6, i64 %idxprom.i86 - %63 = load i64, ptr %arrayidx.i87, align 8 - %cmp.i.i88 = icmp ugt i64 %63, 4611686018427387903 + %62 = load i64, ptr %arrayidx.i87, align 8 + %cmp.i.i88 = icmp ugt i64 %62, 4611686018427387903 br i1 %cmp.i.i88, label %txp_generate_for_el.exit.thread, label %if.end12.i if.end12.i: ; preds = %ossl_quic_enc_level_to_pn_space.exit.i84 - %64 = load ptr, ptr %txpim.i, align 8 - %call13.i = call ptr @ossl_quic_txpim_pkt_alloc(ptr noundef %64) #10 + %63 = load ptr, ptr %txpim.i, align 8 + %call13.i = call ptr @ossl_quic_txpim_pkt_alloc(ptr noundef %63) #10 store ptr %call13.i, ptr %tpkt.i, align 8 %cmp15.i = icmp eq ptr %call13.i, null br i1 %cmp15.i, label %txp_generate_for_el.exit.thread, label %if.end18.i if.end18.i: ; preds = %if.end12.i - %65 = and i32 %a.sroa.0.0.copyload.i, 8 - %tobool19.not.i = icmp eq i32 %65, 0 + %64 = and i32 %a.sroa.0.0.copyload.i, 8 + %tobool19.not.i = icmp eq i32 %64, 0 br i1 %tobool19.not.i, label %if.end43.i97, label %land.lhs.true.i land.lhs.true.i: ; preds = %if.end18.i @@ -1390,25 +1382,25 @@ land.lhs.true.i: ; preds = %if.end18.i br i1 %tobool22.not.i, label %if.end43.i97, label %land.lhs.true23.i land.lhs.true23.i: ; preds = %land.lhs.true.i - %66 = load i64, ptr %max_ppl3.i.i, align 8 + %65 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i.i94 = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i.i95 = and i8 %bf.load.i.i94, 1 %tobool.not.i.i = icmp eq i8 %bf.clear.i.i95, 0 br i1 %tobool.not.i.i, label %cond.false.i.i, label %tx_helper_get_space_left.exit.i cond.false.i.i: ; preds = %land.lhs.true23.i - %67 = load i64, ptr %reserve4.i.i, align 16 + %66 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit.i tx_helper_get_space_left.exit.i: ; preds = %cond.false.i.i, %land.lhs.true23.i - %cond.i.i = phi i64 [ %67, %cond.false.i.i ], [ 0, %land.lhs.true23.i ] - %68 = load i64, ptr %bytes_appended.i.i, align 16 - %69 = add i64 %68, %cond.i.i - %cmp25.not.i = icmp eq i64 %66, %69 + %cond.i.i = phi i64 [ %66, %cond.false.i.i ], [ 0, %land.lhs.true23.i ] + %67 = load i64, ptr %bytes_appended.i.i, align 16 + %68 = add i64 %67, %cond.i.i + %cmp25.not.i = icmp eq i64 %65, %68 br i1 %cmp25.not.i, label %if.end43.i97, label %if.then27.i if.then27.i: ; preds = %tx_helper_get_space_left.exit.i - %call28.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) + %call28.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp29.i = icmp eq ptr %call28.i, null br i1 %cmp29.i, label %if.then337.i, label %if.end32.i @@ -1422,7 +1414,7 @@ if.then35.i: ; preds = %if.end32.i %bf.load36.i = load i8, ptr %had_handshake_done_frame.i, align 8 %bf.set.i = or i8 %bf.load36.i, 1 store i8 %bf.set.i, ptr %had_handshake_done_frame.i, align 8 - %call38.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call38.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool39.not.i = icmp eq i32 %call38.i, 0 br i1 %tobool39.not.i, label %if.then337.i, label %if.end41.i @@ -1436,10 +1428,10 @@ if.else.i: ; preds = %if.end32.i %bf.load.i108.i = load i8, ptr %active.i.i, align 8 %bf.clear.i109.i = and i8 %bf.load.i108.i, 1 %tobool.not.i110.i = icmp eq i8 %bf.clear.i109.i, 0 - br i1 %tobool.not.i110.i, label %if.end43.i97, label %if.end.i.i131 + br i1 %tobool.not.i110.i, label %if.end43.i97, label %if.end.i.i130 -if.end.i.i131: ; preds = %if.else.i - %wpkt2.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 +if.end.i.i130: ; preds = %if.else.i + %wpkt2.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i) #10 %bf.load.i.i.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i.i = and i8 %bf.load.i.i.i, -2 @@ -1447,47 +1439,47 @@ if.end.i.i131: ; preds = %if.else.i store ptr null, ptr %txn.i.i, align 8 br label %if.end43.i97 -if.end43.i97: ; preds = %if.end.i.i131, %if.else.i, %if.end41.i, %tx_helper_get_space_left.exit.i, %land.lhs.true.i, %if.end18.i - %have_ack_eliciting.promoted271.i = phi i32 [ 0, %if.end.i.i131 ], [ 0, %if.else.i ], [ 1, %if.end41.i ], [ 0, %tx_helper_get_space_left.exit.i ], [ 0, %land.lhs.true.i ], [ 0, %if.end18.i ] - %70 = and i32 %a.sroa.0.0.copyload.i, 512 - %tobool47.not.i = icmp eq i32 %70, 0 +if.end43.i97: ; preds = %if.end.i.i130, %if.else.i, %if.end41.i, %tx_helper_get_space_left.exit.i, %land.lhs.true.i, %if.end18.i + %have_ack_eliciting.promoted271.i = phi i32 [ 0, %if.end.i.i130 ], [ 0, %if.else.i ], [ 1, %if.end41.i ], [ 0, %tx_helper_get_space_left.exit.i ], [ 0, %land.lhs.true.i ], [ 0, %if.end18.i ] + %69 = and i32 %a.sroa.0.0.copyload.i, 512 + %tobool47.not.i = icmp eq i32 %69, 0 br i1 %tobool47.not.i, label %if.end166.i, label %land.lhs.true48.i land.lhs.true48.i: ; preds = %if.end43.i97 %bf.load49.i = load i16, ptr %want_ack.i, align 8 - %71 = and i16 %bf.load49.i, 2 - %tobool53.not.i = icmp eq i16 %71, 0 - br i1 %tobool53.not.i, label %lor.lhs.false.i128, label %land.lhs.true57.i + %70 = and i16 %bf.load49.i, 2 + %tobool53.not.i = icmp eq i16 %70, 0 + br i1 %tobool53.not.i, label %lor.lhs.false.i127, label %land.lhs.true57.i -lor.lhs.false.i128: ; preds = %land.lhs.true48.i - %72 = load ptr, ptr %conn_rxfc.i, align 8 - %call55.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %72, i32 noundef 0) #10 +lor.lhs.false.i127: ; preds = %land.lhs.true48.i + %71 = load ptr, ptr %conn_rxfc.i, align 8 + %call55.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %71, i32 noundef 0) #10 %tobool56.not.i = icmp eq i32 %call55.i, 0 br i1 %tobool56.not.i, label %land.lhs.true88.i, label %land.lhs.true57.i -land.lhs.true57.i: ; preds = %lor.lhs.false.i128, %land.lhs.true48.i - %73 = load i64, ptr %max_ppl3.i.i, align 8 +land.lhs.true57.i: ; preds = %lor.lhs.false.i127, %land.lhs.true48.i + %72 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i113.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i114.i = and i8 %bf.load.i113.i, 1 %tobool.not.i115.i = icmp eq i8 %bf.clear.i114.i, 0 br i1 %tobool.not.i115.i, label %cond.false.i119.i, label %tx_helper_get_space_left.exit121.i cond.false.i119.i: ; preds = %land.lhs.true57.i - %74 = load i64, ptr %reserve4.i.i, align 16 + %73 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit121.i tx_helper_get_space_left.exit121.i: ; preds = %cond.false.i119.i, %land.lhs.true57.i - %cond.i116.i = phi i64 [ %74, %cond.false.i119.i ], [ 0, %land.lhs.true57.i ] - %75 = load i64, ptr %bytes_appended.i.i, align 16 - %76 = add i64 %cond.i116.i, %75 - %sub1.i118.i = sub i64 %73, %76 + %cond.i116.i = phi i64 [ %73, %cond.false.i119.i ], [ 0, %land.lhs.true57.i ] + %74 = load i64, ptr %bytes_appended.i.i, align 16 + %75 = add i64 %cond.i116.i, %74 + %sub1.i118.i = sub i64 %72, %75 %cmp59.i = icmp ugt i64 %sub1.i118.i, 1 br i1 %cmp59.i, label %if.then61.i, label %land.lhs.true88.i if.then61.i: ; preds = %tx_helper_get_space_left.exit121.i - %call63.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %77 = load ptr, ptr %conn_rxfc.i, align 8 - %call66.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %77) #10 + %call63.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %76 = load ptr, ptr %conn_rxfc.i, align 8 + %call66.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %76) #10 %cmp67.i = icmp eq ptr %call63.i, null br i1 %cmp67.i, label %if.then337.i, label %if.end70.i @@ -1501,7 +1493,7 @@ if.then73.i: ; preds = %if.end70.i %bf.load74.i = load i8, ptr %had_max_data_frame.i, align 8 %bf.set76.i = or i8 %bf.load74.i, 2 store i8 %bf.set76.i, ptr %had_max_data_frame.i, align 8 - %call77.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call77.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool78.not.i = icmp eq i32 %call77.i, 0 br i1 %tobool78.not.i, label %if.then337.i, label %if.end80.i @@ -1518,7 +1510,7 @@ if.else81.i: ; preds = %if.end70.i br i1 %tobool.not.i128.i, label %land.lhs.true88.i, label %if.end.i129.i if.end.i129.i: ; preds = %if.else81.i - %wpkt2.i.i130.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i130.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i130.i) #10 %bf.load.i.i132.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i133.i = and i8 %bf.load.i.i132.i, -2 @@ -1526,42 +1518,42 @@ if.end.i129.i: ; preds = %if.else81.i store ptr null, ptr %txn.i.i, align 8 br label %land.lhs.true88.i -land.lhs.true88.i: ; preds = %if.end.i129.i, %if.else81.i, %if.end80.i, %tx_helper_get_space_left.exit121.i, %lor.lhs.false.i128 - %have_ack_eliciting.promoted270.i = phi i32 [ %have_ack_eliciting.promoted271.i, %lor.lhs.false.i128 ], [ %have_ack_eliciting.promoted271.i, %tx_helper_get_space_left.exit121.i ], [ 1, %if.end80.i ], [ %have_ack_eliciting.promoted271.i, %if.else81.i ], [ %have_ack_eliciting.promoted271.i, %if.end.i129.i ] +land.lhs.true88.i: ; preds = %if.end.i129.i, %if.else81.i, %if.end80.i, %tx_helper_get_space_left.exit121.i, %lor.lhs.false.i127 + %have_ack_eliciting.promoted270.i = phi i32 [ %have_ack_eliciting.promoted271.i, %lor.lhs.false.i127 ], [ %have_ack_eliciting.promoted271.i, %tx_helper_get_space_left.exit121.i ], [ 1, %if.end80.i ], [ %have_ack_eliciting.promoted271.i, %if.else81.i ], [ %have_ack_eliciting.promoted271.i, %if.end.i129.i ] %bf.load89.i = load i16, ptr %want_ack.i, align 8 - %78 = and i16 %bf.load89.i, 4 - %tobool93.not.i = icmp eq i16 %78, 0 + %77 = and i16 %bf.load89.i, 4 + %tobool93.not.i = icmp eq i16 %77, 0 br i1 %tobool93.not.i, label %lor.lhs.false94.i, label %land.lhs.true98.i lor.lhs.false94.i: ; preds = %land.lhs.true88.i - %79 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 - %call96.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %79, i32 noundef 0) #10 + %78 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 + %call96.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %78, i32 noundef 0) #10 %tobool97.not.i = icmp eq i32 %call96.i, 0 br i1 %tobool97.not.i, label %land.lhs.true129.i, label %land.lhs.true98.i land.lhs.true98.i: ; preds = %lor.lhs.false94.i, %land.lhs.true88.i - %80 = load i64, ptr %max_ppl3.i.i, align 8 + %79 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i137.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i138.i = and i8 %bf.load.i137.i, 1 %tobool.not.i139.i = icmp eq i8 %bf.clear.i138.i, 0 br i1 %tobool.not.i139.i, label %cond.false.i143.i, label %tx_helper_get_space_left.exit145.i cond.false.i143.i: ; preds = %land.lhs.true98.i - %81 = load i64, ptr %reserve4.i.i, align 16 + %80 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit145.i tx_helper_get_space_left.exit145.i: ; preds = %cond.false.i143.i, %land.lhs.true98.i - %cond.i140.i = phi i64 [ %81, %cond.false.i143.i ], [ 0, %land.lhs.true98.i ] - %82 = load i64, ptr %bytes_appended.i.i, align 16 - %83 = add i64 %cond.i140.i, %82 - %sub1.i142.i = sub i64 %80, %83 + %cond.i140.i = phi i64 [ %80, %cond.false.i143.i ], [ 0, %land.lhs.true98.i ] + %81 = load i64, ptr %bytes_appended.i.i, align 16 + %82 = add i64 %cond.i140.i, %81 + %sub1.i142.i = sub i64 %79, %82 %cmp100.i = icmp ugt i64 %sub1.i142.i, 1 br i1 %cmp100.i, label %if.then102.i, label %land.lhs.true129.i if.then102.i: ; preds = %tx_helper_get_space_left.exit145.i - %call104.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %84 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 - %call107.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %84) #10 + %call104.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %83 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 + %call107.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %83) #10 %cmp108.i = icmp eq ptr %call104.i, null br i1 %cmp108.i, label %if.then337.i, label %if.end111.i @@ -1575,7 +1567,7 @@ if.then114.i: ; preds = %if.end111.i %bf.load115.i = load i8, ptr %had_max_streams_bidi_frame.i, align 8 %bf.set117.i = or i8 %bf.load115.i, 4 store i8 %bf.set117.i, ptr %had_max_streams_bidi_frame.i, align 8 - %call118.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call118.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool119.not.i = icmp eq i32 %call118.i, 0 br i1 %tobool119.not.i, label %if.then337.i, label %if.end121.i @@ -1592,7 +1584,7 @@ if.else122.i: ; preds = %if.end111.i br i1 %tobool.not.i152.i, label %land.lhs.true129.i, label %if.end.i153.i if.end.i153.i: ; preds = %if.else122.i - %wpkt2.i.i154.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i154.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i154.i) #10 %bf.load.i.i156.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i157.i = and i8 %bf.load.i.i156.i, -2 @@ -1603,44 +1595,44 @@ if.end.i153.i: ; preds = %if.else122.i land.lhs.true129.i: ; preds = %if.end.i153.i, %if.else122.i, %if.end121.i, %tx_helper_get_space_left.exit145.i, %lor.lhs.false94.i %have_ack_eliciting.promoted269.i = phi i32 [ %have_ack_eliciting.promoted270.i, %lor.lhs.false94.i ], [ %have_ack_eliciting.promoted270.i, %tx_helper_get_space_left.exit145.i ], [ 1, %if.end121.i ], [ %have_ack_eliciting.promoted270.i, %if.else122.i ], [ %have_ack_eliciting.promoted270.i, %if.end.i153.i ] %bf.load130.i = load i16, ptr %want_ack.i, align 8 - %85 = and i16 %bf.load130.i, 8 - %tobool134.not.i = icmp eq i16 %85, 0 + %84 = and i16 %bf.load130.i, 8 + %tobool134.not.i = icmp eq i16 %84, 0 br i1 %tobool134.not.i, label %lor.lhs.false135.i, label %land.lhs.true139.i lor.lhs.false135.i: ; preds = %land.lhs.true129.i - %86 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 - %call137.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %86, i32 noundef 0) #10 + %85 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 + %call137.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %85, i32 noundef 0) #10 %tobool138.not.i = icmp eq i32 %call137.i, 0 br i1 %tobool138.not.i, label %if.end166.i, label %land.lhs.true139.i land.lhs.true139.i: ; preds = %lor.lhs.false135.i, %land.lhs.true129.i - %87 = load i64, ptr %max_ppl3.i.i, align 8 + %86 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i161.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i162.i = and i8 %bf.load.i161.i, 1 %tobool.not.i163.i = icmp eq i8 %bf.clear.i162.i, 0 br i1 %tobool.not.i163.i, label %cond.false.i167.i, label %tx_helper_get_space_left.exit169.i cond.false.i167.i: ; preds = %land.lhs.true139.i - %88 = load i64, ptr %reserve4.i.i, align 16 + %87 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit169.i tx_helper_get_space_left.exit169.i: ; preds = %cond.false.i167.i, %land.lhs.true139.i - %cond.i164.i = phi i64 [ %88, %cond.false.i167.i ], [ 0, %land.lhs.true139.i ] - %89 = load i64, ptr %bytes_appended.i.i, align 16 - %90 = add i64 %cond.i164.i, %89 - %sub1.i166.i = sub i64 %87, %90 + %cond.i164.i = phi i64 [ %87, %cond.false.i167.i ], [ 0, %land.lhs.true139.i ] + %88 = load i64, ptr %bytes_appended.i.i, align 16 + %89 = add i64 %cond.i164.i, %88 + %sub1.i166.i = sub i64 %86, %89 %cmp141.i99 = icmp ugt i64 %sub1.i166.i, 1 br i1 %cmp141.i99, label %if.then143.i, label %if.end166.i if.then143.i: ; preds = %tx_helper_get_space_left.exit169.i - %call145.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %91 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 - %call149.i125 = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %91) #10 + %call145.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %90 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 + %call149.i124 = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef %90) #10 %cmp150.i = icmp eq ptr %call145.i, null br i1 %cmp150.i, label %if.then337.i, label %if.end153.i if.end153.i: ; preds = %if.then143.i - %call154.i = call i32 @ossl_quic_wire_encode_frame_max_streams(ptr noundef nonnull %call145.i, i8 noundef signext 1, i64 noundef %call149.i125) #10 + %call154.i = call i32 @ossl_quic_wire_encode_frame_max_streams(ptr noundef nonnull %call145.i, i8 noundef signext 1, i64 noundef %call149.i124) #10 %tobool155.not.i = icmp eq i32 %call154.i, 0 br i1 %tobool155.not.i, label %if.else164.i, label %if.then156.i @@ -1649,7 +1641,7 @@ if.then156.i: ; preds = %if.end153.i %bf.load157.i = load i8, ptr %had_max_streams_uni_frame.i, align 8 %bf.set159.i = or i8 %bf.load157.i, 8 store i8 %bf.set159.i, ptr %had_max_streams_uni_frame.i, align 8 - %call160.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call160.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool161.not.i = icmp eq i32 %call160.i, 0 br i1 %tobool161.not.i, label %if.then337.i, label %if.end163.i @@ -1666,7 +1658,7 @@ if.else164.i: ; preds = %if.end153.i br i1 %tobool.not.i176.i, label %if.end166.i, label %if.end.i177.i if.end.i177.i: ; preds = %if.else164.i - %wpkt2.i.i178.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i178.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i178.i) #10 %bf.load.i.i180.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i181.i = and i8 %bf.load.i.i180.i, -2 @@ -1676,28 +1668,28 @@ if.end.i177.i: ; preds = %if.else164.i if.end166.i: ; preds = %if.end.i177.i, %if.else164.i, %if.end163.i, %tx_helper_get_space_left.exit169.i, %lor.lhs.false135.i, %if.end43.i97 %have_ack_eliciting.promoted.i = phi i32 [ %have_ack_eliciting.promoted269.i, %if.end.i177.i ], [ %have_ack_eliciting.promoted269.i, %if.else164.i ], [ %have_ack_eliciting.promoted271.i, %if.end43.i97 ], [ 1, %if.end163.i ], [ %have_ack_eliciting.promoted269.i, %tx_helper_get_space_left.exit169.i ], [ %have_ack_eliciting.promoted269.i, %lor.lhs.false135.i ] - %92 = load ptr, ptr %cfq.i, align 8 - %call168.i = call ptr @ossl_quic_cfq_get_priority_head(ptr noundef %92, i32 noundef %retval.0.i.i85) #10 + %91 = load ptr, ptr %cfq.i, align 8 + %call168.i = call ptr @ossl_quic_cfq_get_priority_head(ptr noundef %91, i32 noundef %retval.0.i.i85) #10 %cmp169.not254.i = icmp eq ptr %call168.i, null br i1 %cmp169.not254.i, label %if.then229.i, label %for.body.lr.ph.i101 for.body.lr.ph.i101: ; preds = %if.end166.i - %93 = and i32 %a.sroa.0.0.copyload.i, 32 - %tobool205.not.i = icmp eq i32 %93, 0 - %94 = insertelement <4 x i32> poison, i32 %a.sroa.0.0.copyload.i, i64 0 - %95 = shufflevector <4 x i32> %94, <4 x i32> poison, <4 x i32> zeroinitializer - %96 = and <4 x i32> %95, - %97 = icmp eq <4 x i32> %96, zeroinitializer - %98 = extractelement <4 x i1> %97, i64 0 - %99 = extractelement <4 x i1> %97, i64 1 - %100 = extractelement <4 x i1> %97, i64 2 - %101 = extractelement <4 x i1> %97, i64 3 + %92 = and i32 %a.sroa.0.0.copyload.i, 32 + %tobool205.not.i = icmp eq i32 %92, 0 + %93 = insertelement <4 x i32> poison, i32 %a.sroa.0.0.copyload.i, i64 0 + %94 = shufflevector <4 x i32> %93, <4 x i32> poison, <4 x i32> zeroinitializer + %95 = and <4 x i32> %94, + %96 = icmp eq <4 x i32> %95, zeroinitializer + %97 = extractelement <4 x i1> %96, i64 0 + %98 = extractelement <4 x i1> %96, i64 1 + %99 = extractelement <4 x i1> %96, i64 2 + %100 = extractelement <4 x i1> %96, i64 3 br label %for.body.i106 for.body.i106: ; preds = %for.inc.i, %for.body.lr.ph.i101 %done_pre_token.0256.i = phi i32 [ 0, %for.body.lr.ph.i101 ], [ %done_pre_token.2.i, %for.inc.i ] %cfq_item.0255.i = phi ptr [ %call168.i, %for.body.lr.ph.i101 ], [ %call227.i, %for.inc.i ] - %102 = phi i32 [ %have_ack_eliciting.promoted.i, %for.body.lr.ph.i101 ], [ %119, %for.inc.i ] + %101 = phi i32 [ %have_ack_eliciting.promoted.i, %for.body.lr.ph.i101 ], [ %118, %for.inc.i ] %call171.i = call i64 @ossl_quic_cfq_item_get_frame_type(ptr noundef nonnull %cfq_item.0255.i) #10 %call172.i = call ptr @ossl_quic_cfq_item_get_encoded(ptr noundef nonnull %cfq_item.0255.i) #10 %call173.i = call i64 @ossl_quic_cfq_item_get_encoded_len(ptr noundef nonnull %cfq_item.0255.i) #10 @@ -1709,20 +1701,20 @@ for.body.i106: ; preds = %for.inc.i, %for.bod ] sw.bb.i: ; preds = %for.body.i106 - br i1 %99, label %for.inc.i, label %sw.epilog.i + br i1 %98, label %for.inc.i, label %sw.epilog.i sw.bb180.i: ; preds = %for.body.i106 - br i1 %100, label %for.inc.i, label %sw.epilog.i + br i1 %99, label %for.inc.i, label %sw.epilog.i sw.bb187.i: ; preds = %for.body.i106 - br i1 %101, label %for.inc.i, label %if.end193.i + br i1 %100, label %for.inc.i, label %if.end193.i if.end193.i: ; preds = %sw.bb187.i %tobool194.not.i = icmp eq i32 %done_pre_token.0256.i, 0 br i1 %tobool194.not.i, label %if.then195.i, label %sw.epilog.i if.then195.i: ; preds = %if.end193.i - %call196.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11349, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 + %call196.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11348, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 br label %sw.epilog.i sw.bb201.i: ; preds = %for.body.i106 @@ -1733,85 +1725,85 @@ if.end207.i: ; preds = %sw.bb201.i br label %sw.epilog.i sw.default.i: ; preds = %for.body.i106 - br i1 %98, label %for.inc.i, label %sw.epilog.i + br i1 %97, label %for.inc.i, label %sw.epilog.i sw.epilog.i: ; preds = %sw.default.i, %if.end207.i, %if.then195.i, %if.end193.i, %sw.bb180.i, %sw.bb.i %done_pre_token.1.i = phi i32 [ %done_pre_token.0256.i, %sw.default.i ], [ %done_pre_token.0256.i, %if.end207.i ], [ 1, %if.end193.i ], [ %done_pre_token.0256.i, %sw.bb180.i ], [ %done_pre_token.0256.i, %sw.bb.i ], [ %call196.i, %if.then195.i ] - %103 = load i64, ptr %max_ppl3.i.i, align 8 + %102 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i185.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i186.i = and i8 %bf.load.i185.i, 1 %tobool.not.i187.i = icmp eq i8 %bf.clear.i186.i, 0 br i1 %tobool.not.i187.i, label %cond.false.i191.i, label %tx_helper_get_space_left.exit193.i cond.false.i191.i: ; preds = %sw.epilog.i - %104 = load i64, ptr %reserve4.i.i, align 16 + %103 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit193.i tx_helper_get_space_left.exit193.i: ; preds = %cond.false.i191.i, %sw.epilog.i - %cond.i188.i = phi i64 [ %104, %cond.false.i191.i ], [ 0, %sw.epilog.i ] - %105 = load i64, ptr %bytes_appended.i.i, align 16 - %106 = add i64 %cond.i188.i, %105 - %sub1.i190.i = sub i64 %103, %106 + %cond.i188.i = phi i64 [ %103, %cond.false.i191.i ], [ 0, %sw.epilog.i ] + %104 = load i64, ptr %bytes_appended.i.i, align 16 + %105 = add i64 %cond.i188.i, %104 + %sub1.i190.i = sub i64 %102, %105 %cmp215.i = icmp ugt i64 %call173.i, %sub1.i190.i br i1 %cmp215.i, label %for.end.i108, label %if.end218.i if.end218.i: ; preds = %tx_helper_get_space_left.exit193.i - %107 = load ptr, ptr %arrayidx11349, align 16 - %108 = load i32, ptr %enc_level2.i.i, align 16 - %idxprom.i.i107 = zext i32 %108 to i64 + %106 = load ptr, ptr %arrayidx11348, align 16 + %107 = load i32, ptr %enc_level2.i.i, align 16 + %idxprom.i.i107 = zext i32 %107 to i64 %cmp.i194.i = icmp eq i64 %call173.i, 0 br i1 %cmp.i194.i, label %if.end222.i, label %if.end.i195.i if.end.i195.i: ; preds = %if.end218.i - %109 = and i8 %bf.load.i185.i, 2 - %tobool.not.i197.i = icmp eq i8 %109, 0 + %108 = and i8 %bf.load.i185.i, 2 + %tobool.not.i197.i = icmp eq i8 %108, 0 br i1 %tobool.not.i197.i, label %if.end9.i.i, label %if.then337.i if.end9.i.i: ; preds = %if.end.i195.i - %110 = load i64, ptr %num_iovec.i.i, align 8 - %add.i.i = add i64 %110, 1 - %alloc_iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 3 - %111 = load i64, ptr %alloc_iovec.i.i.i, align 8 - %cmp.not.i.i.i = icmp ult i64 %111, %add.i.i + %109 = load i64, ptr %num_iovec.i.i, align 8 + %add.i.i = add i64 %109, 1 + %alloc_iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 3 + %110 = load i64, ptr %alloc_iovec.i.i.i, align 8 + %cmp.not.i.i.i = icmp ult i64 %110, %add.i.i br i1 %cmp.not.i.i.i, label %if.end.i.i.i, label %if.end9.if.end12_crit_edge.i.i if.end9.if.end12_crit_edge.i.i: ; preds = %if.end9.i.i - %iovec.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 + %iovec.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 %.pre.i.i = load ptr, ptr %iovec.phi.trans.insert.i.i, align 8 br label %if.end12.i.i if.end.i.i.i: ; preds = %if.end9.i.i - %cmp2.not.i.i.i = icmp eq i64 %111, 0 - %mul.i.i.i = shl i64 %111, 1 + %cmp2.not.i.i.i = icmp eq i64 %110, 0 + %mul.i.i.i = shl i64 %110, 1 %spec.select.i.i.i = select i1 %cmp2.not.i.i.i, i64 8, i64 %mul.i.i.i - %iovec4.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 - %112 = load ptr, ptr %iovec4.i.i.i, align 8 + %iovec4.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 + %111 = load ptr, ptr %iovec4.i.i.i, align 8 %mul5.i.i.i = shl i64 %spec.select.i.i.i, 4 - %call.i.i.i124 = call ptr @CRYPTO_realloc(ptr noundef %112, i64 noundef %mul5.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 - %cmp6.i.i.i = icmp eq ptr %call.i.i.i124, null + %call.i.i.i123 = call ptr @CRYPTO_realloc(ptr noundef %111, i64 noundef %mul5.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %cmp6.i.i.i = icmp eq ptr %call.i.i.i123, null br i1 %cmp6.i.i.i, label %if.then337.i, label %if.end8.i.i.i if.end8.i.i.i: ; preds = %if.end.i.i.i - store ptr %call.i.i.i124, ptr %iovec4.i.i.i, align 8 + store ptr %call.i.i.i123, ptr %iovec4.i.i.i, align 8 store i64 %spec.select.i.i.i, ptr %alloc_iovec.i.i.i, align 8 %.pre14.i.i = load i64, ptr %num_iovec.i.i, align 8 br label %if.end12.i.i if.end12.i.i: ; preds = %if.end8.i.i.i, %if.end9.if.end12_crit_edge.i.i - %113 = phi i64 [ %110, %if.end9.if.end12_crit_edge.i.i ], [ %.pre14.i.i, %if.end8.i.i.i ] - %114 = phi ptr [ %.pre.i.i, %if.end9.if.end12_crit_edge.i.i ], [ %call.i.i.i124, %if.end8.i.i.i ] - %iovec.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %107, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 - %arrayidx14.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %114, i64 %113 + %112 = phi i64 [ %109, %if.end9.if.end12_crit_edge.i.i ], [ %.pre14.i.i, %if.end8.i.i.i ] + %113 = phi ptr [ %.pre.i.i, %if.end9.if.end12_crit_edge.i.i ], [ %call.i.i.i123, %if.end8.i.i.i ] + %iovec.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %106, i64 0, i32 12, i64 %idxprom.i.i107, i32 2 + %arrayidx14.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %113, i64 %112 store ptr %call172.i, ptr %arrayidx14.i.i, align 8 - %115 = load ptr, ptr %iovec.i.i, align 8 - %116 = load i64, ptr %num_iovec.i.i, align 8 - %buf_len19.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %115, i64 %116, i32 1 + %114 = load ptr, ptr %iovec.i.i, align 8 + %115 = load i64, ptr %num_iovec.i.i, align 8 + %buf_len19.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %114, i64 %115, i32 1 store i64 %call173.i, ptr %buf_len19.i.i, align 8 - %117 = load i64, ptr %num_iovec.i.i, align 8 - %inc.i.i = add i64 %117, 1 + %116 = load i64, ptr %num_iovec.i.i, align 8 + %inc.i.i = add i64 %116, 1 store i64 %inc.i.i, ptr %num_iovec.i.i, align 8 - %118 = load i64, ptr %bytes_appended.i.i, align 16 - %add21.i.i = add i64 %118, %call173.i + %117 = load i64, ptr %bytes_appended.i.i, align 16 + %add21.i.i = add i64 %117, %call173.i store i64 %add21.i.i, ptr %bytes_appended.i.i, align 16 br label %if.end222.i @@ -1832,27 +1824,27 @@ if.then225.i: ; preds = %if.end222.i br label %for.inc.i for.inc.i: ; preds = %if.then225.i, %if.end222.i, %if.end222.i, %if.end222.i, %if.end222.i, %if.end222.i, %sw.default.i, %sw.bb201.i, %sw.bb187.i, %sw.bb180.i, %sw.bb.i - %119 = phi i32 [ 1, %if.then225.i ], [ %102, %sw.default.i ], [ %102, %sw.bb201.i ], [ %102, %sw.bb187.i ], [ %102, %sw.bb180.i ], [ %102, %sw.bb.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ], [ %102, %if.end222.i ] + %118 = phi i32 [ 1, %if.then225.i ], [ %101, %sw.default.i ], [ %101, %sw.bb201.i ], [ %101, %sw.bb187.i ], [ %101, %sw.bb180.i ], [ %101, %sw.bb.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ], [ %101, %if.end222.i ] %done_pre_token.2.i = phi i32 [ %done_pre_token.1.i, %if.then225.i ], [ %done_pre_token.0256.i, %sw.default.i ], [ %done_pre_token.0256.i, %sw.bb201.i ], [ %done_pre_token.0256.i, %sw.bb187.i ], [ %done_pre_token.0256.i, %sw.bb180.i ], [ %done_pre_token.0256.i, %sw.bb.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ], [ %done_pre_token.1.i, %if.end222.i ] %call227.i = call ptr @ossl_quic_cfq_item_get_priority_next(ptr noundef nonnull %cfq_item.0255.i, i32 noundef %retval.0.i.i85) #10 %cmp169.not.i = icmp eq ptr %call227.i, null br i1 %cmp169.not.i, label %for.end.i108, label %for.body.i106, !llvm.loop !10 for.end.i108: ; preds = %for.inc.i, %tx_helper_get_space_left.exit193.i - %have_ack_eliciting.promoted260.i = phi i32 [ %119, %for.inc.i ], [ %102, %tx_helper_get_space_left.exit193.i ] + %have_ack_eliciting.promoted260.i = phi i32 [ %118, %for.inc.i ], [ %101, %tx_helper_get_space_left.exit193.i ] %done_pre_token.3.i = phi i32 [ %done_pre_token.2.i, %for.inc.i ], [ %done_pre_token.1.i, %tx_helper_get_space_left.exit193.i ] %tobool228.not.i = icmp eq i32 %done_pre_token.3.i, 0 br i1 %tobool228.not.i, label %if.then229.i, label %if.end234.i if.then229.i: ; preds = %if.end166.i, %for.end.i108 %have_ack_eliciting.i.0 = phi i32 [ %have_ack_eliciting.promoted260.i, %for.end.i108 ], [ %have_ack_eliciting.promoted.i, %if.end166.i ] - %call230.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11349, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 + %call230.i = call fastcc i32 @txp_generate_pre_token(ptr noundef %txp, ptr noundef nonnull %arrayidx11348, i32 noundef %conv, ptr noundef nonnull %can_be_non_inflight.i), !range !9 br label %if.end234.i if.end234.i: ; preds = %if.then229.i, %for.end.i108 %have_ack_eliciting.i.1 = phi i32 [ %have_ack_eliciting.i.0, %if.then229.i ], [ %have_ack_eliciting.promoted260.i, %for.end.i108 ] - %120 = and i32 %a.sroa.0.0.copyload.i, 4 - %tobool238.not.i = icmp eq i32 %120, 0 + %119 = and i32 %a.sroa.0.0.copyload.i, 4 + %tobool238.not.i = icmp eq i32 %119, 0 br i1 %tobool238.not.i, label %if.end244.i, label %if.then239.i if.then239.i: ; preds = %if.end234.i @@ -1862,93 +1854,93 @@ if.then239.i: ; preds = %if.end234.i call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %iov.i.i82) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %hdr_bytes.i.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i.i) - %121 = load i32, ptr %enc_level2.i.i, align 16 - %122 = icmp ult i32 %121, 4 - br i1 %122, label %switch.lookup920, label %ossl_quic_enc_level_to_pn_space.exit.i.i - -switch.lookup920: ; preds = %if.then239.i - %123 = zext nneg i32 %121 to i64 - %switch.gep921 = getelementptr inbounds [4 x i64], ptr @switch.table.ossl_quic_tx_packetiser_generate.11, i64 0, i64 %123 - %switch.load922 = load i64, ptr %switch.gep921, align 8 + %120 = load i32, ptr %enc_level2.i.i, align 16 + %121 = icmp ult i32 %120, 4 + br i1 %121, label %switch.lookup922, label %ossl_quic_enc_level_to_pn_space.exit.i.i + +switch.lookup922: ; preds = %if.then239.i + %122 = zext nneg i32 %120 to i64 + %switch.gep923 = getelementptr inbounds [4 x i64], ptr @switch.table.ossl_quic_tx_packetiser_generate.11, i64 0, i64 %122 + %switch.load924 = load i64, ptr %switch.gep923, align 8 br label %ossl_quic_enc_level_to_pn_space.exit.i.i -ossl_quic_enc_level_to_pn_space.exit.i.i: ; preds = %if.then239.i, %switch.lookup920 - %retval.0.i.i.i = phi i64 [ %switch.load922, %switch.lookup920 ], [ 2, %if.then239.i ] - %124 = load ptr, ptr %tpkt.i, align 8 +ossl_quic_enc_level_to_pn_space.exit.i.i: ; preds = %if.then239.i, %switch.lookup922 + %retval.0.i.i.i = phi i64 [ %switch.load924, %switch.lookup922 ], [ 2, %if.then239.i ] + %123 = load ptr, ptr %tpkt.i, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %shdr.i.i, i8 0, i64 40, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %chdr.i.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %chunk.i.i, i8 0, i64 32, i1 false) %arrayidx.i.i110 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_args_st, ptr %txp, i64 0, i32 17, i64 %retval.0.i.i.i - %idxprom22.i.i = zext i32 %121 to i64 + %idxprom22.i.i = zext i32 %120 to i64 %alloc_iovec.i.i206.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom22.i.i, i32 3 %iovec4.i.i207.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom22.i.i, i32 2 br label %for.cond.i.i for.cond.i.i: ; preds = %for.end.i.i, %ossl_quic_enc_level_to_pn_space.exit.i.i - %125 = phi i32 [ %have_ack_eliciting.i.1, %ossl_quic_enc_level_to_pn_space.exit.i.i ], [ 1, %for.end.i.i ] + %124 = phi i32 [ %have_ack_eliciting.i.1, %ossl_quic_enc_level_to_pn_space.exit.i.i ], [ 1, %for.end.i.i ] %i.0.i.i = phi i64 [ 0, %ossl_quic_enc_level_to_pn_space.exit.i.i ], [ %inc54.i.i, %for.end.i.i ] - %126 = load i64, ptr %max_ppl3.i.i, align 8 + %125 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i.i208.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i.i209.i = and i8 %bf.load.i.i208.i, 1 %tobool.not.i.i.i112 = icmp eq i8 %bf.clear.i.i209.i, 0 br i1 %tobool.not.i.i.i112, label %cond.false.i.i.i, label %tx_helper_get_space_left.exit.i.i cond.false.i.i.i: ; preds = %for.cond.i.i - %127 = load i64, ptr %reserve4.i.i, align 16 + %126 = load i64, ptr %reserve4.i.i, align 16 br label %tx_helper_get_space_left.exit.i.i tx_helper_get_space_left.exit.i.i: ; preds = %cond.false.i.i.i, %for.cond.i.i - %cond.i.i.i = phi i64 [ %127, %cond.false.i.i.i ], [ 0, %for.cond.i.i ] - %128 = load i64, ptr %bytes_appended.i.i, align 16 - %129 = add i64 %cond.i.i.i, %128 - %sub1.i.i.i = sub i64 %126, %129 + %cond.i.i.i = phi i64 [ %126, %cond.false.i.i.i ], [ 0, %for.cond.i.i ] + %127 = load i64, ptr %bytes_appended.i.i, align 16 + %128 = add i64 %cond.i.i.i, %127 + %sub1.i.i.i = sub i64 %125, %128 %cmp.i210.i = icmp ult i64 %sub1.i.i.i, 4 br i1 %cmp.i210.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end.i211.i if.end.i211.i: ; preds = %tx_helper_get_space_left.exit.i.i store i64 2, ptr %num_stream_iovec.i.i, align 8 - %130 = load ptr, ptr %arrayidx.i.i110, align 8 - %call6.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %130, i64 noundef %i.0.i.i, ptr noundef nonnull %shdr.i.i, ptr noundef nonnull %iov.i.i82, ptr noundef nonnull %num_stream_iovec.i.i) #10 + %129 = load ptr, ptr %arrayidx.i.i110, align 8 + %call6.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %129, i64 noundef %i.0.i.i, ptr noundef nonnull %shdr.i.i, ptr noundef nonnull %iov.i.i82, ptr noundef nonnull %num_stream_iovec.i.i) #10 %tobool.not.i212.i = icmp eq i32 %call6.i.i, 0 br i1 %tobool.not.i212.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end8.i.i if.end8.i.i: ; preds = %if.end.i211.i - %131 = load i64, ptr %offset.i.i, align 8 - store i64 %131, ptr %chdr.i.i, align 8 - %132 = load i64, ptr %len.i.i111, align 8 - %cmp12.i.i = icmp eq i64 %132, 0 + %130 = load i64, ptr %offset.i.i, align 8 + store i64 %130, ptr %chdr.i.i, align 8 + %131 = load i64, ptr %len.i.i111, align 8 + %cmp12.i.i = icmp eq i64 %131, 0 br i1 %cmp12.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end14.i.i if.end14.i.i: ; preds = %if.end8.i.i store i64 0, ptr %len10.i.i, align 8 %call.i.i213.i = call i64 @ossl_quic_wire_get_encoded_frame_len_crypto_hdr(ptr noundef nonnull %chdr.i.i) #10 - store i64 %132, ptr %len10.i.i, align 8 + store i64 %131, ptr %len10.i.i, align 8 %cmp5.i.i.i = icmp eq i64 %call.i.i213.i, 0 br i1 %cmp5.i.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %determine_crypto_len.exit.i.i determine_crypto_len.exit.i.i: ; preds = %if.end14.i.i %dec.i.i.i = add i64 %call.i.i213.i, -1 - %call8.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i, i64 noundef %132, i64 noundef %dec.i.i.i, ptr noundef nonnull %hdr_bytes.i.i, ptr noundef nonnull %len10.i.i), !range !9 + %call8.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i, i64 noundef %131, i64 noundef %dec.i.i.i, ptr noundef nonnull %hdr_bytes.i.i, ptr noundef nonnull %len10.i.i), !range !9 %tobool17.not.i.i = icmp eq i32 %call8.i.i.i, 0 br i1 %tobool17.not.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end19.i.i if.end19.i.i: ; preds = %determine_crypto_len.exit.i.i - %133 = load i64, ptr %len10.i.i, align 8 - %134 = load i64, ptr %num_stream_iovec.i.i, align 8 - call void @ossl_quic_sstream_adjust_iov(i64 noundef %133, ptr noundef nonnull %iov.i.i82, i64 noundef %134) #10 - %135 = load i64, ptr %num_iovec.i.i, align 8 - %add.i214.i = add i64 %135, 3 - %136 = load i64, ptr %alloc_iovec.i.i206.i, align 8 - %cmp.not.i.i215.i = icmp ult i64 %136, %add.i214.i + %132 = load i64, ptr %len10.i.i, align 8 + %133 = load i64, ptr %num_stream_iovec.i.i, align 8 + call void @ossl_quic_sstream_adjust_iov(i64 noundef %132, ptr noundef nonnull %iov.i.i82, i64 noundef %133) #10 + %134 = load i64, ptr %num_iovec.i.i, align 8 + %add.i214.i = add i64 %134, 3 + %135 = load i64, ptr %alloc_iovec.i.i206.i, align 8 + %cmp.not.i.i215.i = icmp ult i64 %135, %add.i214.i br i1 %cmp.not.i.i215.i, label %if.end.i.i220.i, label %if.end27.i.i113 if.end.i.i220.i: ; preds = %if.end19.i.i - %cmp2.not.i.i221.i = icmp eq i64 %136, 0 - %mul.i.i222.i = shl i64 %136, 1 + %cmp2.not.i.i221.i = icmp eq i64 %135, 0 + %mul.i.i222.i = shl i64 %135, 1 %spec.select.i.i223.i = select i1 %cmp2.not.i.i221.i, i64 8, i64 %mul.i.i222.i - %137 = load ptr, ptr %iovec4.i.i207.i, align 8 + %136 = load ptr, ptr %iovec4.i.i207.i, align 8 %mul5.i.i224.i = shl i64 %spec.select.i.i223.i, 4 - %call.i21.i.i = call ptr @CRYPTO_realloc(ptr noundef %137, i64 noundef %mul5.i.i224.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %call.i21.i.i = call ptr @CRYPTO_realloc(ptr noundef %136, i64 noundef %mul5.i.i224.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 %cmp6.i.i225.i = icmp eq ptr %call.i21.i.i, null br i1 %cmp6.i.i225.i, label %txp_generate_crypto_frames.exit.i, label %if.end8.i.i226.i @@ -1958,7 +1950,7 @@ if.end8.i.i226.i: ; preds = %if.end.i.i220.i br label %if.end27.i.i113 if.end27.i.i113: ; preds = %if.end8.i.i226.i, %if.end19.i.i - %call28.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) + %call28.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp29.i.i = icmp eq ptr %call28.i.i, null br i1 %cmp29.i.i, label %txp_generate_crypto_frames.exit.i, label %if.end31.i.i @@ -1974,7 +1966,7 @@ if.then34.i.i: ; preds = %if.end31.i.i br i1 %tobool.not.i24.i.i, label %txp_generate_crypto_frames.exit.thread.i, label %if.end.i25.i.i if.end.i25.i.i: ; preds = %if.then34.i.i - %wpkt2.i.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i.i.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i) #10 %bf.load.i.i.i.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i.i.i = and i8 %bf.load.i.i.i.i, -2 @@ -1983,54 +1975,54 @@ if.end.i25.i.i: ; preds = %if.then34.i.i br label %txp_generate_crypto_frames.exit.thread.i if.end35.i.i114: ; preds = %if.end31.i.i - %call36.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call36.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool37.not.i.i = icmp eq i32 %call36.i.i, 0 br i1 %tobool37.not.i.i, label %txp_generate_crypto_frames.exit.i, label %for.cond40.preheader.i.i for.cond40.preheader.i.i: ; preds = %if.end35.i.i114 - %138 = load i64, ptr %num_stream_iovec.i.i, align 8 - %cmp4138.not.i.i = icmp eq i64 %138, 0 + %137 = load i64, ptr %num_stream_iovec.i.i, align 8 + %cmp4138.not.i.i = icmp eq i64 %137, 0 br i1 %cmp4138.not.i.i, label %for.end.i.i, label %for.body.i.i for.body.i.i: ; preds = %for.cond40.preheader.i.i, %tx_helper_append_iovec.exit.i.i %i.139.i.i = phi i64 [ %inc.i216.i, %tx_helper_append_iovec.exit.i.i ], [ 0, %for.cond40.preheader.i.i ] %arrayidx42.i.i = getelementptr inbounds [2 x %struct.ossl_qtx_iovec_st], ptr %iov.i.i82, i64 0, i64 %i.139.i.i - %139 = load ptr, ptr %arrayidx42.i.i, align 16 + %138 = load ptr, ptr %arrayidx42.i.i, align 16 %buf_len.i.i = getelementptr inbounds [2 x %struct.ossl_qtx_iovec_st], ptr %iov.i.i82, i64 0, i64 %i.139.i.i, i32 1 - %140 = load i64, ptr %buf_len.i.i, align 8 - %141 = load ptr, ptr %arrayidx11349, align 16 - %142 = load i32, ptr %enc_level2.i.i, align 16 - %idxprom.i.i.i115 = zext i32 %142 to i64 - %cmp.i.i.i116 = icmp eq i64 %140, 0 + %139 = load i64, ptr %buf_len.i.i, align 8 + %140 = load ptr, ptr %arrayidx11348, align 16 + %141 = load i32, ptr %enc_level2.i.i, align 16 + %idxprom.i.i.i115 = zext i32 %141 to i64 + %cmp.i.i.i116 = icmp eq i64 %139, 0 br i1 %cmp.i.i.i116, label %tx_helper_append_iovec.exit.i.i, label %if.end.i26.i.i if.end.i26.i.i: ; preds = %for.body.i.i %bf.load.i27.i.i = load i8, ptr %reserve_allowed.i.i, align 4 - %143 = and i8 %bf.load.i27.i.i, 2 - %tobool.not.i28.i.i = icmp eq i8 %143, 0 + %142 = and i8 %bf.load.i27.i.i, 2 + %tobool.not.i28.i.i = icmp eq i8 %142, 0 br i1 %tobool.not.i28.i.i, label %if.end9.i.i.i, label %tx_helper_append_iovec.exit.i.i if.end9.i.i.i: ; preds = %if.end.i26.i.i - %144 = load i64, ptr %num_iovec.i.i, align 8 - %add.i.i.i = add i64 %144, 1 - %alloc_iovec.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 3 - %145 = load i64, ptr %alloc_iovec.i.i.i.i, align 8 - %cmp.not.i.i.i.i = icmp ult i64 %145, %add.i.i.i + %143 = load i64, ptr %num_iovec.i.i, align 8 + %add.i.i.i = add i64 %143, 1 + %alloc_iovec.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 3 + %144 = load i64, ptr %alloc_iovec.i.i.i.i, align 8 + %cmp.not.i.i.i.i = icmp ult i64 %144, %add.i.i.i br i1 %cmp.not.i.i.i.i, label %if.end.i.i.i.i, label %if.end9.if.end12_crit_edge.i.i.i if.end9.if.end12_crit_edge.i.i.i: ; preds = %if.end9.i.i.i - %iovec.phi.trans.insert.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 + %iovec.phi.trans.insert.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 %.pre.i.i.i = load ptr, ptr %iovec.phi.trans.insert.i.i.i, align 8 br label %if.end12.i.i.i if.end.i.i.i.i: ; preds = %if.end9.i.i.i - %cmp2.not.i.i.i.i = icmp eq i64 %145, 0 - %mul.i.i.i.i = shl i64 %145, 1 + %cmp2.not.i.i.i.i = icmp eq i64 %144, 0 + %mul.i.i.i.i = shl i64 %144, 1 %spec.select.i.i.i.i = select i1 %cmp2.not.i.i.i.i, i64 8, i64 %mul.i.i.i.i - %iovec4.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 - %146 = load ptr, ptr %iovec4.i.i.i.i, align 8 + %iovec4.i.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 + %145 = load ptr, ptr %iovec4.i.i.i.i, align 8 %mul5.i.i.i.i = shl i64 %spec.select.i.i.i.i, 4 - %call.i.i.i.i = call ptr @CRYPTO_realloc(ptr noundef %146, i64 noundef %mul5.i.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %call.i.i.i.i = call ptr @CRYPTO_realloc(ptr noundef %145, i64 noundef %mul5.i.i.i.i, ptr noundef nonnull @.str, i32 noundef 3041) #10 %cmp6.i.i.i.i = icmp eq ptr %call.i.i.i.i, null br i1 %cmp6.i.i.i.i, label %tx_helper_append_iovec.exit.i.i, label %if.end8.i.i.i.i @@ -2041,27 +2033,27 @@ if.end8.i.i.i.i: ; preds = %if.end.i.i.i.i br label %if.end12.i.i.i if.end12.i.i.i: ; preds = %if.end8.i.i.i.i, %if.end9.if.end12_crit_edge.i.i.i - %147 = phi i64 [ %144, %if.end9.if.end12_crit_edge.i.i.i ], [ %.pre14.i.i.i, %if.end8.i.i.i.i ] - %148 = phi ptr [ %.pre.i.i.i, %if.end9.if.end12_crit_edge.i.i.i ], [ %call.i.i.i.i, %if.end8.i.i.i.i ] - %iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %141, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 - %arrayidx14.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %148, i64 %147 - store ptr %139, ptr %arrayidx14.i.i.i, align 8 - %149 = load ptr, ptr %iovec.i.i.i, align 8 + %146 = phi i64 [ %143, %if.end9.if.end12_crit_edge.i.i.i ], [ %.pre14.i.i.i, %if.end8.i.i.i.i ] + %147 = phi ptr [ %.pre.i.i.i, %if.end9.if.end12_crit_edge.i.i.i ], [ %call.i.i.i.i, %if.end8.i.i.i.i ] + %iovec.i.i.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %140, i64 0, i32 12, i64 %idxprom.i.i.i115, i32 2 + %arrayidx14.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %147, i64 %146 + store ptr %138, ptr %arrayidx14.i.i.i, align 8 + %148 = load ptr, ptr %iovec.i.i.i, align 8 + %149 = load i64, ptr %num_iovec.i.i, align 8 + %buf_len19.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %148, i64 %149, i32 1 + store i64 %139, ptr %buf_len19.i.i.i, align 8 %150 = load i64, ptr %num_iovec.i.i, align 8 - %buf_len19.i.i.i = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %149, i64 %150, i32 1 - store i64 %140, ptr %buf_len19.i.i.i, align 8 - %151 = load i64, ptr %num_iovec.i.i, align 8 - %inc.i.i.i = add i64 %151, 1 + %inc.i.i.i = add i64 %150, 1 store i64 %inc.i.i.i, ptr %num_iovec.i.i, align 8 - %152 = load i64, ptr %bytes_appended.i.i, align 16 - %add21.i.i.i = add i64 %152, %140 + %151 = load i64, ptr %bytes_appended.i.i, align 16 + %add21.i.i.i = add i64 %151, %139 store i64 %add21.i.i.i, ptr %bytes_appended.i.i, align 16 br label %tx_helper_append_iovec.exit.i.i tx_helper_append_iovec.exit.i.i: ; preds = %if.end12.i.i.i, %if.end.i.i.i.i, %if.end.i26.i.i, %for.body.i.i %inc.i216.i = add nuw i64 %i.139.i.i, 1 - %153 = load i64, ptr %num_stream_iovec.i.i, align 8 - %cmp41.i.i = icmp ult i64 %inc.i216.i, %153 + %152 = load i64, ptr %num_stream_iovec.i.i, align 8 + %cmp41.i.i = icmp ult i64 %inc.i216.i, %152 br i1 %cmp41.i.i, label %for.body.i.i, label %for.end.i.i, !llvm.loop !11 for.end.i.i: ; preds = %tx_helper_append_iovec.exit.i.i, %for.cond40.preheader.i.i @@ -2070,16 +2062,16 @@ for.end.i.i: ; preds = %tx_helper_append_io %bf.set.i.i.i = or i8 %bf.load.i32.i.i, 1 store i8 %bf.set.i.i.i, ptr %reserve_allowed.i.i, align 4 store i64 -1, ptr %chunk.i.i, align 8 - %154 = load i64, ptr %chdr.i.i, align 8 - store i64 %154, ptr %start.i.i, align 8 - %155 = load i64, ptr %len10.i.i, align 8 - %add48.i.i = add i64 %154, -1 - %sub.i.i = add i64 %add48.i.i, %155 + %153 = load i64, ptr %chdr.i.i, align 8 + store i64 %153, ptr %start.i.i, align 8 + %154 = load i64, ptr %len10.i.i, align 8 + %add48.i.i = add i64 %153, -1 + %sub.i.i = add i64 %add48.i.i, %154 store i64 %sub.i.i, ptr %end.i.i, align 8 %bf.load.i217.i = load i8, ptr %has_fin.i.i, align 8 %bf.clear.i218.i = and i8 %bf.load.i217.i, -2 store i8 %bf.clear.i218.i, ptr %has_fin.i.i, align 8 - %call49.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %124, ptr noundef nonnull %chunk.i.i) #10 + %call49.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %123, ptr noundef nonnull %chunk.i.i) #10 %tobool50.not.i.i = icmp eq i32 %call49.i.i, 0 %inc54.i.i = add i64 %i.1.lcssa.i.i, 1 br i1 %tobool50.not.i.i, label %txp_generate_crypto_frames.exit.i, label %for.cond.i.i @@ -2103,114 +2095,114 @@ txp_generate_crypto_frames.exit.i: ; preds = %for.end.i.i, %if.en br label %if.then337.i if.end244.i: ; preds = %txp_generate_crypto_frames.exit.thread.i, %if.end234.i - %have_ack_eliciting.i.3 = phi i32 [ %have_ack_eliciting.i.1, %if.end234.i ], [ %125, %txp_generate_crypto_frames.exit.thread.i ] - %156 = and i32 %a.sroa.0.0.copyload.i, 256 - %tobool248.not.i = icmp eq i32 %156, 0 + %have_ack_eliciting.i.3 = phi i32 [ %have_ack_eliciting.i.1, %if.end234.i ], [ %124, %txp_generate_crypto_frames.exit.thread.i ] + %155 = and i32 %a.sroa.0.0.copyload.i, 256 + %tobool248.not.i = icmp eq i32 %155, 0 br i1 %tobool248.not.i, label %if.end260.i, label %land.lhs.true249.i land.lhs.true249.i: ; preds = %if.end244.i %bf.load250.i = load i16, ptr %want_ack.i, align 8 - %157 = and i16 %bf.load250.i, 2048 - %tobool254.not.i = icmp eq i16 %157, 0 + %156 = and i16 %bf.load250.i, 2048 + %tobool254.not.i = icmp eq i16 %156, 0 br i1 %tobool254.not.i, label %if.end260.i, label %if.then255.i if.then255.i: ; preds = %land.lhs.true249.i - %stream_head.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv670, i32 3 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i219) + %stream_head.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv671, i32 3 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %f37.i) - %158 = load ptr, ptr %qsm.i, align 8 - call void @ossl_quic_stream_iter_init(ptr noundef nonnull %it.i219, ptr noundef %158, i32 noundef 1) #10 - %159 = load ptr, ptr %stream2.i, align 8 - %cmp.not160.i = icmp eq ptr %159, null - br i1 %cmp.not160.i, label %txp_generate_stream_related.exit.thread366, label %for.body.i230 - -for.body.i230: ; preds = %if.then255.i, %if.end163.i251 - %have_ack_eliciting.i.4 = phi i32 [ %have_ack_eliciting.i.11, %if.end163.i251 ], [ %have_ack_eliciting.i.3, %if.then255.i ] - %160 = phi ptr [ %241, %if.end163.i251 ], [ %159, %if.then255.i ] - %conn_consumed.0161.i = phi i64 [ %conn_consumed.1.i, %if.end163.i251 ], [ 0, %if.then255.i ] - call void @ossl_quic_stream_iter_next(ptr noundef nonnull %it.i219) #10 - %161 = load ptr, ptr %stream2.i, align 8 - %txp_sent_fc.i231 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 15 - %bf.load.i232 = load i64, ptr %txp_sent_fc.i231, align 8 - %bf.clear12.i = and i64 %bf.load.i232, -6174015489 - store i64 %bf.clear12.i, ptr %txp_sent_fc.i231, align 8 - %txp_txfc_new_credit_consumed.i233 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 9 - store i64 0, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %162 = and i64 %bf.load.i232, 17179869184 - %tobool.not.i234 = icmp eq i64 %162, 0 - br i1 %tobool.not.i234, label %if.end30.i241, label %if.then.i - -if.then.i: ; preds = %for.body.i230 - %call.i235 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %cmp16.i = icmp eq ptr %call.i235, null - br i1 %cmp16.i, label %txp_generate_stream_related.exit.thread, label %if.end.i236 - -if.end.i236: ; preds = %if.then.i - %id.i237 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %163 = load <2 x i64>, ptr %id.i237, align 8 - store <2 x i64> %163, ptr %f.i, align 16 - %call18.i = call i32 @ossl_quic_wire_encode_frame_stop_sending(ptr noundef nonnull %call.i235, ptr noundef nonnull %f.i) #10 - %tobool19.not.i238 = icmp eq i32 %call18.i, 0 - br i1 %tobool19.not.i238, label %if.then20.i, label %if.end21.i - -if.then20.i: ; preds = %if.end.i236 - %bf.load.i.i332 = load i8, ptr %active.i.i, align 8 - %bf.clear.i.i333 = and i8 %bf.load.i.i332, 1 - %tobool.not.i.i334 = icmp eq i8 %bf.clear.i.i333, 0 - br i1 %tobool.not.i.i334, label %txp_generate_stream_related.exit.thread371, label %if.end.i.i335 - -if.end.i.i335: ; preds = %if.then20.i - %wpkt2.i.i.i336 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i336) #10 - %bf.load.i.i.i338 = load i8, ptr %active.i.i, align 8 - %bf.clear.i.i.i339 = and i8 %bf.load.i.i.i338, -2 - store i8 %bf.clear.i.i.i339, ptr %active.i.i, align 8 + %157 = load ptr, ptr %qsm.i, align 8 + call void @ossl_quic_stream_iter_init(ptr noundef nonnull %it.i218, ptr noundef %157, i32 noundef 1) #10 + %158 = load ptr, ptr %stream2.i, align 8 + %cmp.not160.i = icmp eq ptr %158, null + br i1 %cmp.not160.i, label %txp_generate_stream_related.exit.thread365, label %for.body.i229 + +for.body.i229: ; preds = %if.then255.i, %if.end163.i250 + %have_ack_eliciting.i.4 = phi i32 [ %have_ack_eliciting.i.11, %if.end163.i250 ], [ %have_ack_eliciting.i.3, %if.then255.i ] + %159 = phi ptr [ %240, %if.end163.i250 ], [ %158, %if.then255.i ] + %conn_consumed.0161.i = phi i64 [ %conn_consumed.1.i, %if.end163.i250 ], [ 0, %if.then255.i ] + call void @ossl_quic_stream_iter_next(ptr noundef nonnull %it.i218) #10 + %160 = load ptr, ptr %stream2.i, align 8 + %txp_sent_fc.i230 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 15 + %bf.load.i231 = load i64, ptr %txp_sent_fc.i230, align 8 + %bf.clear12.i = and i64 %bf.load.i231, -6174015489 + store i64 %bf.clear12.i, ptr %txp_sent_fc.i230, align 8 + %txp_txfc_new_credit_consumed.i232 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 9 + store i64 0, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %161 = and i64 %bf.load.i231, 17179869184 + %tobool.not.i233 = icmp eq i64 %161, 0 + br i1 %tobool.not.i233, label %if.end30.i240, label %if.then.i + +if.then.i: ; preds = %for.body.i229 + %call.i234 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %cmp16.i = icmp eq ptr %call.i234, null + br i1 %cmp16.i, label %txp_generate_stream_related.exit.thread, label %if.end.i235 + +if.end.i235: ; preds = %if.then.i + %id.i236 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %162 = load <2 x i64>, ptr %id.i236, align 8 + store <2 x i64> %162, ptr %f.i, align 16 + %call18.i = call i32 @ossl_quic_wire_encode_frame_stop_sending(ptr noundef nonnull %call.i234, ptr noundef nonnull %f.i) #10 + %tobool19.not.i237 = icmp eq i32 %call18.i, 0 + br i1 %tobool19.not.i237, label %if.then20.i, label %if.end21.i + +if.then20.i: ; preds = %if.end.i235 + %bf.load.i.i331 = load i8, ptr %active.i.i, align 8 + %bf.clear.i.i332 = and i8 %bf.load.i.i331, 1 + %tobool.not.i.i333 = icmp eq i8 %bf.clear.i.i332, 0 + br i1 %tobool.not.i.i333, label %txp_generate_stream_related.exit.thread370, label %if.end.i.i334 + +if.end.i.i334: ; preds = %if.then20.i + %wpkt2.i.i.i335 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i335) #10 + %bf.load.i.i.i337 = load i8, ptr %active.i.i, align 8 + %bf.clear.i.i.i338 = and i8 %bf.load.i.i.i337, -2 + store i8 %bf.clear.i.i.i338, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 -if.end21.i: ; preds = %if.end.i236 - %call22.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 +if.end21.i: ; preds = %if.end.i235 + %call22.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool23.not.i = icmp eq i32 %call22.i, 0 - br i1 %tobool23.not.i, label %txp_generate_stream_related.exit.thread, label %if.end25.i239 + br i1 %tobool23.not.i, label %txp_generate_stream_related.exit.thread, label %if.end25.i238 -if.end25.i239: ; preds = %if.end21.i +if.end25.i238: ; preds = %if.end21.i %bf.load.i70.i = load i8, ptr %reserve_allowed.i.i, align 4 - %bf.set.i.i240 = or i8 %bf.load.i70.i, 1 - store i8 %bf.set.i.i240, ptr %reserve_allowed.i.i, align 4 - %bf.load27.i = load i64, ptr %txp_sent_fc.i231, align 8 + %bf.set.i.i239 = or i8 %bf.load.i70.i, 1 + store i8 %bf.set.i.i239, ptr %reserve_allowed.i.i, align 4 + %bf.load27.i = load i64, ptr %txp_sent_fc.i230, align 8 %bf.set29.i = or i64 %bf.load27.i, 536870912 - store i64 %bf.set29.i, ptr %txp_sent_fc.i231, align 8 - br label %if.end30.i241 - -if.end30.i241: ; preds = %if.end25.i239, %for.body.i230 - %have_ack_eliciting.i.5 = phi i32 [ %have_ack_eliciting.i.4, %for.body.i230 ], [ 1, %if.end25.i239 ] - %bf.load31.i = phi i64 [ %bf.clear12.i, %for.body.i230 ], [ %bf.set29.i, %if.end25.i239 ] - %164 = and i64 %bf.load31.i, 34359738368 - %tobool35.not.i242 = icmp eq i64 %164, 0 - br i1 %tobool35.not.i242, label %if.end92.i, label %if.then36.i - -if.then36.i: ; preds = %if.end30.i241 - %165 = and i64 %bf.load31.i, 65280 - %cmp42.i = icmp eq i64 %165, 1280 + store i64 %bf.set29.i, ptr %txp_sent_fc.i230, align 8 + br label %if.end30.i240 + +if.end30.i240: ; preds = %if.end25.i238, %for.body.i229 + %have_ack_eliciting.i.5 = phi i32 [ %have_ack_eliciting.i.4, %for.body.i229 ], [ 1, %if.end25.i238 ] + %bf.load31.i = phi i64 [ %bf.clear12.i, %for.body.i229 ], [ %bf.set29.i, %if.end25.i238 ] + %163 = and i64 %bf.load31.i, 34359738368 + %tobool35.not.i241 = icmp eq i64 %163, 0 + br i1 %tobool35.not.i241, label %if.end92.i, label %if.then36.i + +if.then36.i: ; preds = %if.end30.i240 + %164 = and i64 %bf.load31.i, 65280 + %cmp42.i = icmp eq i64 %164, 1280 br i1 %cmp42.i, label %if.end49.i, label %txp_generate_stream_related.exit.thread if.end49.i: ; preds = %if.then36.i - %call50.i244 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %cmp51.i = icmp eq ptr %call50.i244, null - br i1 %cmp51.i, label %txp_generate_stream_related.exit.thread, label %if.end54.i245 - -if.end54.i245: ; preds = %if.end49.i - %id55.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %166 = load i64, ptr %id55.i, align 8 - store i64 %166, ptr %f37.i, align 8 - %reset_stream_aec.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 6 - %167 = load i64, ptr %reset_stream_aec.i, align 8 - store i64 %167, ptr %app_error_code57.i, align 8 - %bf.load.i71.i = load i64, ptr %txp_sent_fc.i231, align 8 - %168 = lshr i64 %bf.load.i71.i, 8 - %trunc.i.i246 = trunc i64 %168 to i8 - switch i8 %trunc.i.i246, label %txp_generate_stream_related.exit.thread [ + %call50.i243 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %cmp51.i = icmp eq ptr %call50.i243, null + br i1 %cmp51.i, label %txp_generate_stream_related.exit.thread, label %if.end54.i244 + +if.end54.i244: ; preds = %if.end49.i + %id55.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %165 = load i64, ptr %id55.i, align 8 + store i64 %165, ptr %f37.i, align 8 + %reset_stream_aec.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 6 + %166 = load i64, ptr %reset_stream_aec.i, align 8 + store i64 %166, ptr %app_error_code57.i, align 8 + %bf.load.i71.i = load i64, ptr %txp_sent_fc.i230, align 8 + %167 = lshr i64 %bf.load.i71.i, 8 + %trunc.i.i245 = trunc i64 %167 to i8 + switch i8 %trunc.i.i245, label %txp_generate_stream_related.exit.thread [ i8 6, label %ossl_quic_stream_send_get_final_size.exit.thread110.i i8 2, label %ossl_quic_stream_send_get_final_size.exit.i i8 3, label %ossl_quic_stream_send_get_final_size.exit.thread110.i @@ -2218,21 +2210,21 @@ if.end54.i245: ; preds = %if.end49.i i8 5, label %ossl_quic_stream_send_get_final_size.exit.thread110.i ] -ossl_quic_stream_send_get_final_size.exit.thread110.i: ; preds = %if.end54.i245, %if.end54.i245, %if.end54.i245, %if.end54.i245 - %send_final_size.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 10 - %169 = load i64, ptr %send_final_size.i.i, align 8 - store i64 %169, ptr %final_size.i, align 8 +ossl_quic_stream_send_get_final_size.exit.thread110.i: ; preds = %if.end54.i244, %if.end54.i244, %if.end54.i244, %if.end54.i244 + %send_final_size.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 10 + %168 = load i64, ptr %send_final_size.i.i, align 8 + store i64 %168, ptr %final_size.i, align 8 br label %if.end61.i -ossl_quic_stream_send_get_final_size.exit.i: ; preds = %if.end54.i245 - %sstream.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 11 - %170 = load ptr, ptr %sstream.i.i, align 8 - %call.i.i330 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %170, ptr noundef nonnull %final_size.i) #10 - %tobool59.not.i = icmp eq i32 %call.i.i330, 0 +ossl_quic_stream_send_get_final_size.exit.i: ; preds = %if.end54.i244 + %sstream.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 11 + %169 = load ptr, ptr %sstream.i.i, align 8 + %call.i.i329 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %169, ptr noundef nonnull %final_size.i) #10 + %tobool59.not.i = icmp eq i32 %call.i.i329, 0 br i1 %tobool59.not.i, label %txp_generate_stream_related.exit.thread, label %if.end61.i if.end61.i: ; preds = %ossl_quic_stream_send_get_final_size.exit.i, %ossl_quic_stream_send_get_final_size.exit.thread110.i - %call62.i = call i32 @ossl_quic_wire_encode_frame_reset_stream(ptr noundef nonnull %call50.i244, ptr noundef nonnull %f37.i) #10 + %call62.i = call i32 @ossl_quic_wire_encode_frame_reset_stream(ptr noundef nonnull %call50.i243, ptr noundef nonnull %f37.i) #10 %tobool63.not.i = icmp eq i32 %call62.i, 0 br i1 %tobool63.not.i, label %if.then64.i, label %if.end65.i @@ -2240,293 +2232,293 @@ if.then64.i: ; preds = %if.end61.i %bf.load.i73.i = load i8, ptr %active.i.i, align 8 %bf.clear.i74.i = and i8 %bf.load.i73.i, 1 %tobool.not.i75.i = icmp eq i8 %bf.clear.i74.i, 0 - br i1 %tobool.not.i75.i, label %txp_generate_stream_related.exit.thread371, label %if.end.i76.i + br i1 %tobool.not.i75.i, label %txp_generate_stream_related.exit.thread370, label %if.end.i76.i if.end.i76.i: ; preds = %if.then64.i - %wpkt2.i.i77.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i77.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i77.i) #10 %bf.load.i.i79.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i80.i = and i8 %bf.load.i.i79.i, -2 store i8 %bf.clear.i.i80.i, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 if.end65.i: ; preds = %if.end61.i - %call66.i247 = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 - %tobool67.not.i = icmp eq i32 %call66.i247, 0 + %call66.i246 = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 + %tobool67.not.i = icmp eq i32 %call66.i246, 0 br i1 %tobool67.not.i, label %txp_generate_stream_related.exit.thread, label %if.end69.i if.end69.i: ; preds = %if.end65.i %bf.load.i84.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.set.i85.i = or i8 %bf.load.i84.i, 1 store i8 %bf.set.i85.i, ptr %reserve_allowed.i.i, align 4 - %bf.load71.i = load i64, ptr %txp_sent_fc.i231, align 8 + %bf.load71.i = load i64, ptr %txp_sent_fc.i230, align 8 %bf.set73.i = or i64 %bf.load71.i, 1073741824 - store i64 %bf.set73.i, ptr %txp_sent_fc.i231, align 8 - %171 = load i64, ptr %final_size.i, align 8 - %txfc.i248 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 13 - %call75.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i248) #10 - %cmp76.not.i = icmp ugt i64 %171, %call75.i + store i64 %bf.set73.i, ptr %txp_sent_fc.i230, align 8 + %170 = load i64, ptr %final_size.i, align 8 + %txfc.i247 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 13 + %call75.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i247) #10 + %cmp76.not.i = icmp ugt i64 %170, %call75.i br i1 %cmp76.not.i, label %txp_generate_stream_related.exit.thread, label %if.end87.i if.end87.i: ; preds = %if.end69.i - %172 = load i64, ptr %final_size.i, align 8 - %call90.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i248) #10 - %sub.i249 = sub i64 %172, %call90.i - store i64 %sub.i249, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %bf.load93.pre.i = load i64, ptr %txp_sent_fc.i231, align 8 + %171 = load i64, ptr %final_size.i, align 8 + %call90.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc.i247) #10 + %sub.i248 = sub i64 %171, %call90.i + store i64 %sub.i248, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %bf.load93.pre.i = load i64, ptr %txp_sent_fc.i230, align 8 br label %if.end92.i -if.end92.i: ; preds = %if.end87.i, %if.end30.i241 - %have_ack_eliciting.i.6 = phi i32 [ %have_ack_eliciting.i.5, %if.end30.i241 ], [ 1, %if.end87.i ] - %bf.load93.i = phi i64 [ %bf.load31.i, %if.end30.i241 ], [ %bf.load93.pre.i, %if.end87.i ] - %173 = and i64 %bf.load93.i, 16711680 - %cmp97.i = icmp eq i64 %173, 65536 - br i1 %cmp97.i, label %land.lhs.true.i319, label %if.end127.i - -land.lhs.true.i319: ; preds = %if.end92.i - %174 = and i64 %bf.load93.i, 8589934592 - %tobool103.not.i = icmp eq i64 %174, 0 - br i1 %tobool103.not.i, label %lor.lhs.false.i327, label %if.then106.i - -lor.lhs.false.i327: ; preds = %land.lhs.true.i319 - %rxfc.i328 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 14 - %call104.i329 = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef nonnull %rxfc.i328, i32 noundef 0) #10 - %tobool105.not.i = icmp eq i32 %call104.i329, 0 +if.end92.i: ; preds = %if.end87.i, %if.end30.i240 + %have_ack_eliciting.i.6 = phi i32 [ %have_ack_eliciting.i.5, %if.end30.i240 ], [ 1, %if.end87.i ] + %bf.load93.i = phi i64 [ %bf.load31.i, %if.end30.i240 ], [ %bf.load93.pre.i, %if.end87.i ] + %172 = and i64 %bf.load93.i, 16711680 + %cmp97.i = icmp eq i64 %172, 65536 + br i1 %cmp97.i, label %land.lhs.true.i318, label %if.end127.i + +land.lhs.true.i318: ; preds = %if.end92.i + %173 = and i64 %bf.load93.i, 8589934592 + %tobool103.not.i = icmp eq i64 %173, 0 + br i1 %tobool103.not.i, label %lor.lhs.false.i326, label %if.then106.i + +lor.lhs.false.i326: ; preds = %land.lhs.true.i318 + %rxfc.i327 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 14 + %call104.i328 = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef nonnull %rxfc.i327, i32 noundef 0) #10 + %tobool105.not.i = icmp eq i32 %call104.i328, 0 br i1 %tobool105.not.i, label %lor.lhs.false.if.end127_crit_edge.i, label %if.then106.i -lor.lhs.false.if.end127_crit_edge.i: ; preds = %lor.lhs.false.i327 - %.val.pre.i = load i64, ptr %txp_sent_fc.i231, align 8 +lor.lhs.false.if.end127_crit_edge.i: ; preds = %lor.lhs.false.i326 + %.val.pre.i = load i64, ptr %txp_sent_fc.i230, align 8 br label %if.end127.i -if.then106.i: ; preds = %lor.lhs.false.i327, %land.lhs.true.i319 - %call107.i320 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) - %cmp108.i321 = icmp eq ptr %call107.i320, null - br i1 %cmp108.i321, label %txp_generate_stream_related.exit.thread, label %if.end111.i322 +if.then106.i: ; preds = %lor.lhs.false.i326, %land.lhs.true.i318 + %call107.i319 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) + %cmp108.i320 = icmp eq ptr %call107.i319, null + br i1 %cmp108.i320, label %txp_generate_stream_related.exit.thread, label %if.end111.i321 -if.end111.i322: ; preds = %if.then106.i - %rxfc112.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 14 +if.end111.i321: ; preds = %if.then106.i + %rxfc112.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 14 %call113.i = call i64 @ossl_quic_rxfc_get_cwm(ptr noundef nonnull %rxfc112.i) #10 - %id114.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %175 = load i64, ptr %id114.i, align 8 - %call115.i323 = call i32 @ossl_quic_wire_encode_frame_max_stream_data(ptr noundef nonnull %call107.i320, i64 noundef %175, i64 noundef %call113.i) #10 - %tobool116.not.i324 = icmp eq i32 %call115.i323, 0 - br i1 %tobool116.not.i324, label %if.then117.i, label %if.end118.i325 + %id114.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %174 = load i64, ptr %id114.i, align 8 + %call115.i322 = call i32 @ossl_quic_wire_encode_frame_max_stream_data(ptr noundef nonnull %call107.i319, i64 noundef %174, i64 noundef %call113.i) #10 + %tobool116.not.i323 = icmp eq i32 %call115.i322, 0 + br i1 %tobool116.not.i323, label %if.then117.i, label %if.end118.i324 -if.then117.i: ; preds = %if.end111.i322 +if.then117.i: ; preds = %if.end111.i321 %bf.load.i87.i = load i8, ptr %active.i.i, align 8 %bf.clear.i88.i = and i8 %bf.load.i87.i, 1 %tobool.not.i89.i = icmp eq i8 %bf.clear.i88.i, 0 - br i1 %tobool.not.i89.i, label %txp_generate_stream_related.exit.thread371, label %if.end.i90.i + br i1 %tobool.not.i89.i, label %txp_generate_stream_related.exit.thread370, label %if.end.i90.i if.end.i90.i: ; preds = %if.then117.i - %wpkt2.i.i91.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 + %wpkt2.i.i91.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i91.i) #10 %bf.load.i.i93.i = load i8, ptr %active.i.i, align 8 %bf.clear.i.i94.i = and i8 %bf.load.i.i93.i, -2 store i8 %bf.clear.i.i94.i, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 -if.end118.i325: ; preds = %if.end111.i322 - %call119.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 +if.end118.i324: ; preds = %if.end111.i321 + %call119.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool120.not.i = icmp eq i32 %call119.i, 0 br i1 %tobool120.not.i, label %txp_generate_stream_related.exit.thread, label %if.end122.i -if.end122.i: ; preds = %if.end118.i325 +if.end122.i: ; preds = %if.end118.i324 %bf.load.i98.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.set.i99.i = or i8 %bf.load.i98.i, 1 store i8 %bf.set.i99.i, ptr %reserve_allowed.i.i, align 4 - %bf.load124.i326 = load i64, ptr %txp_sent_fc.i231, align 8 - %bf.set126.i = or i64 %bf.load124.i326, 268435456 - store i64 %bf.set126.i, ptr %txp_sent_fc.i231, align 8 + %bf.load124.i325 = load i64, ptr %txp_sent_fc.i230, align 8 + %bf.set126.i = or i64 %bf.load124.i325, 268435456 + store i64 %bf.set126.i, ptr %txp_sent_fc.i230, align 8 br label %if.end127.i if.end127.i: ; preds = %if.end122.i, %lor.lhs.false.if.end127_crit_edge.i, %if.end92.i %have_ack_eliciting.i.7 = phi i32 [ %have_ack_eliciting.i.6, %lor.lhs.false.if.end127_crit_edge.i ], [ 1, %if.end122.i ], [ %have_ack_eliciting.i.6, %if.end92.i ] %.val.i = phi i64 [ %.val.pre.i, %lor.lhs.false.if.end127_crit_edge.i ], [ %bf.set126.i, %if.end122.i ], [ %bf.load93.i, %if.end92.i ] - %176 = lshr i64 %.val.i, 8 - %trunc.i100.i = trunc i64 %176 to i8 - %177 = add i8 %trunc.i100.i, -4 - %switch.i.i250 = icmp ult i8 %177, -3 - br i1 %switch.i.i250, label %if.end163.i251, label %land.lhs.true130.i + %175 = lshr i64 %.val.i, 8 + %trunc.i100.i = trunc i64 %175 to i8 + %176 = add i8 %trunc.i100.i, -4 + %switch.i.i249 = icmp ult i8 %176, -3 + br i1 %switch.i.i249, label %if.end163.i250, label %land.lhs.true130.i land.lhs.true130.i: ; preds = %if.end127.i - %178 = trunc i64 %.val.i to i32 - %179 = lshr i32 %178, 8 - %bf.cast.i.i = and i32 %179, 255 - %180 = add nsw i32 %bf.cast.i.i, -7 - %narrow.i.i = icmp ult i32 %180, -2 - br i1 %narrow.i.i, label %if.then133.i253, label %if.end163.i251 - -if.then133.i253: ; preds = %land.lhs.true130.i - %181 = and i64 %.val.i, 34359738368 - %tobool139.not.i254 = icmp eq i64 %181, 0 - br i1 %tobool139.not.i254, label %if.end151.i, label %txp_generate_stream_related.exit.thread - -if.end151.i: ; preds = %if.then133.i253 - %id152.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 4 - %182 = load i64, ptr %id152.i, align 8 - %sstream.i255 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 11 - %183 = load ptr, ptr %sstream.i255, align 8 - %txfc153.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 13 + %177 = trunc i64 %.val.i to i32 + %178 = lshr i32 %177, 8 + %bf.cast.i.i = and i32 %178, 255 + %179 = add nsw i32 %bf.cast.i.i, -7 + %narrow.i.i = icmp ult i32 %179, -2 + br i1 %narrow.i.i, label %if.then133.i252, label %if.end163.i250 + +if.then133.i252: ; preds = %land.lhs.true130.i + %180 = and i64 %.val.i, 34359738368 + %tobool139.not.i253 = icmp eq i64 %180, 0 + br i1 %tobool139.not.i253, label %if.end151.i, label %txp_generate_stream_related.exit.thread + +if.end151.i: ; preds = %if.then133.i252 + %id152.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 4 + %181 = load i64, ptr %id152.i, align 8 + %sstream.i254 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 11 + %182 = load ptr, ptr %sstream.i254, align 8 + %txfc153.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 13 call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(192) %chunks.i.i, i8 0, i64 192, i1 false) - %184 = load i32, ptr %enc_level2.i.i, align 16 - %185 = load ptr, ptr %tpkt.i, align 8 + %183 = load i32, ptr %enc_level2.i.i, align 16 + %184 = load ptr, ptr %tpkt.i, align 8 %call.i101.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc153.i) #10 - br label %for.body.i.i256 + br label %for.body.i.i255 for.cond11.preheader.i.i: ; preds = %if.end.i102.i - %cmp56.not.i.i = icmp eq ptr %161, null - %idxprom.i.i263 = zext i32 %184 to i64 - %alloc_iovec.i.i.i264 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i263, i32 3 - %iovec4.i.i.i265 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i263, i32 2 + %cmp56.not.i.i = icmp eq ptr %160, null + %idxprom.i.i262 = zext i32 %183 to i64 + %alloc_iovec.i.i.i263 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i262, i32 3 + %iovec4.i.i.i264 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i262, i32 2 br label %for.cond11.i.i -for.body.i.i256: ; preds = %land.lhs.true.i.i, %if.end151.i +for.body.i.i255: ; preds = %land.lhs.true.i.i, %if.end151.i %cmp6.i.i = phi i1 [ true, %if.end151.i ], [ false, %land.lhs.true.i.i ] %i.0166.i.i = phi i64 [ 0, %if.end151.i ], [ 1, %land.lhs.true.i.i ] - %arrayidx.i.i257 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i + %arrayidx.i.i256 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i %num_stream_iovec.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 3 store i64 2, ptr %num_stream_iovec.i.i.i, align 16 %iov.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 2 - %call.i.i.i258 = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %183, i64 noundef %i.0166.i.i, ptr noundef nonnull %arrayidx.i.i257, ptr noundef nonnull %iov.i.i.i, ptr noundef nonnull %num_stream_iovec.i.i.i) #10 + %call.i.i.i257 = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %182, i64 noundef %i.0166.i.i, ptr noundef nonnull %arrayidx.i.i256, ptr noundef nonnull %iov.i.i.i, ptr noundef nonnull %num_stream_iovec.i.i.i) #10 %valid.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 4 - store i32 %call.i.i.i258, ptr %valid.i.i.i, align 8 - %tobool.not.i.i.i259 = icmp eq i32 %call.i.i.i258, 0 - br i1 %tobool.not.i.i.i259, label %if.end.i102.i, label %if.end.i.i.i260 - -if.end.i.i.i260: ; preds = %for.body.i.i256 - %len.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 2 - %186 = load i64, ptr %len.i.i.i, align 16 - %cmp.not.i.i.i261 = icmp eq i64 %186, 0 - br i1 %cmp.not.i.i.i261, label %lor.rhs.i.i.i, label %if.end10.i.i.i - -lor.rhs.i.i.i: ; preds = %if.end.i.i.i260 - %is_fin.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 4 + store i32 %call.i.i.i257, ptr %valid.i.i.i, align 8 + %tobool.not.i.i.i258 = icmp eq i32 %call.i.i.i257, 0 + br i1 %tobool.not.i.i.i258, label %if.end.i102.i, label %if.end.i.i.i259 + +if.end.i.i.i259: ; preds = %for.body.i.i255 + %len.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 2 + %185 = load i64, ptr %len.i.i.i, align 16 + %cmp.not.i.i.i260 = icmp eq i64 %185, 0 + br i1 %cmp.not.i.i.i260, label %lor.rhs.i.i.i, label %if.end10.i.i.i + +lor.rhs.i.i.i: ; preds = %if.end.i.i.i259 + %is_fin.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 4 %bf.load.i.i104.i = load i8, ptr %is_fin.i.i.i, align 16 - %187 = and i8 %bf.load.i.i104.i, 2 - %tobool5.not.i.i.i = icmp eq i8 %187, 0 + %186 = and i8 %bf.load.i.i104.i, 2 + %tobool5.not.i.i.i = icmp eq i8 %186, 0 br i1 %tobool5.not.i.i.i, label %txp_generate_stream_related.exit, label %if.end10.i.i.i -if.end10.i.i.i: ; preds = %lor.rhs.i.i.i, %if.end.i.i.i260 +if.end10.i.i.i: ; preds = %lor.rhs.i.i.i, %if.end.i.i.i259 %orig_len.i.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %i.0166.i.i, i32 1 - store i64 %186, ptr %orig_len.i.i.i, align 8 + store i64 %185, ptr %orig_len.i.i.i, align 8 %call13.i.i.i = call i64 @ossl_quic_txfc_get_credit(ptr noundef nonnull %txfc153.i, i64 noundef %conn_consumed.0161.i) #10 %call14.i.i.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc153.i) #10 - %add.i.i.i262 = add i64 %call14.i.i.i, %call13.i.i.i - %188 = load i64, ptr %len.i.i.i, align 16 - %cmp17.not.i.i.i = icmp eq i64 %188, 0 + %add.i.i.i261 = add i64 %call14.i.i.i, %call13.i.i.i + %187 = load i64, ptr %len.i.i.i, align 16 + %cmp17.not.i.i.i = icmp eq i64 %187, 0 br i1 %cmp17.not.i.i.i, label %if.end10.i.land.lhs.true43.i_crit_edge.i.i, label %land.lhs.true.i.i.i if.end10.i.land.lhs.true43.i_crit_edge.i.i: ; preds = %if.end10.i.i.i - %is_fin45.i.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 4 + %is_fin45.i.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 4 %bf.load46.i.pre.i.i = load i8, ptr %is_fin45.i.phi.trans.insert.i.i, align 16 br label %land.lhs.true43.i.i.i land.lhs.true.i.i.i: ; preds = %if.end10.i.i.i - %offset.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 1 - %189 = load i64, ptr %offset.i.i.i, align 8 - %add22.i.i.i = add i64 %189, %188 - %cmp23.i.i.i = icmp ugt i64 %add22.i.i.i, %add.i.i.i262 + %offset.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 1 + %188 = load i64, ptr %offset.i.i.i, align 8 + %add22.i.i.i = add i64 %188, %187 + %cmp23.i.i.i = icmp ugt i64 %add22.i.i.i, %add.i.i.i261 br i1 %cmp23.i.i.i, label %if.end38.i.i.i, label %if.end.i102.i if.end38.i.i.i: ; preds = %land.lhs.true.i.i.i - %spec.select.i.i.i318 = call i64 @llvm.usub.sat.i64(i64 %add.i.i.i262, i64 %189) - store i64 %spec.select.i.i.i318, ptr %len.i.i.i, align 16 - %is_fin35.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i257, i64 0, i32 4 + %spec.select.i.i.i317 = call i64 @llvm.usub.sat.i64(i64 %add.i.i.i261, i64 %188) + store i64 %spec.select.i.i.i317, ptr %len.i.i.i, align 16 + %is_fin35.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx.i.i256, i64 0, i32 4 %bf.load36.i.i.i = load i8, ptr %is_fin35.i.i.i, align 16 %bf.clear37.i.i.i = and i8 %bf.load36.i.i.i, -3 store i8 %bf.clear37.i.i.i, ptr %is_fin35.i.i.i, align 16 - %.not.i.i.i = icmp ugt i64 %add.i.i.i262, %189 + %.not.i.i.i = icmp ugt i64 %add.i.i.i261, %188 br i1 %.not.i.i.i, label %if.end.i102.i, label %land.lhs.true43.i.i.i land.lhs.true43.i.i.i: ; preds = %if.end38.i.i.i, %if.end10.i.land.lhs.true43.i_crit_edge.i.i %bf.load46.i.i.i = phi i8 [ %bf.load46.i.pre.i.i, %if.end10.i.land.lhs.true43.i_crit_edge.i.i ], [ %bf.clear37.i.i.i, %if.end38.i.i.i ] - %190 = and i8 %bf.load46.i.i.i, 2 - %tobool50.not.i.i.i = icmp eq i8 %190, 0 + %189 = and i8 %bf.load46.i.i.i, 2 + %tobool50.not.i.i.i = icmp eq i8 %189, 0 br i1 %tobool50.not.i.i.i, label %if.then51.i.i.i, label %if.end.i102.i if.then51.i.i.i: ; preds = %land.lhs.true43.i.i.i store i32 0, ptr %valid.i.i.i, align 8 br label %if.end.i102.i -if.end.i102.i: ; preds = %if.then51.i.i.i, %land.lhs.true43.i.i.i, %if.end38.i.i.i, %land.lhs.true.i.i.i, %for.body.i.i256 +if.end.i102.i: ; preds = %if.then51.i.i.i, %land.lhs.true43.i.i.i, %if.end38.i.i.i, %land.lhs.true.i.i.i, %for.body.i.i255 br i1 %cmp6.i.i, label %land.lhs.true.i.i, label %for.cond11.preheader.i.i land.lhs.true.i.i: ; preds = %if.end.i102.i - %191 = load i32, ptr %valid.i.i, align 8 - %tobool8.not.i.i = icmp eq i32 %191, 0 - br i1 %tobool8.not.i.i, label %if.end158.thread124.i, label %for.body.i.i256, !llvm.loop !12 + %190 = load i32, ptr %valid.i.i, align 8 + %tobool8.not.i.i = icmp eq i32 %190, 0 + br i1 %tobool8.not.i.i, label %if.end158.thread124.i, label %for.body.i.i255, !llvm.loop !12 if.end158.thread124.i: ; preds = %land.lhs.true.i.i - store i64 0, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 0, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - %192 = load i64, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %add128.i = add i64 %192, %conn_consumed.0161.i - br label %if.end163.i251 + %191 = load i64, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %add128.i = add i64 %191, %conn_consumed.0161.i + br label %if.end163.i250 for.cond11.i.i: ; preds = %if.end203.i.i, %for.cond11.preheader.i.i %have_ack_eliciting.i.8 = phi i32 [ %have_ack_eliciting.i.7, %for.cond11.preheader.i.i ], [ 1, %if.end203.i.i ] %packet_full.0.i = phi i32 [ 0, %for.cond11.preheader.i.i ], [ %packet_full.1.i, %if.end203.i.i ] %i.1.i.i = phi i64 [ 0, %for.cond11.preheader.i.i ], [ %inc210.i.i, %if.end203.i.i ] %fc_new_hwm.0.i.i = phi i64 [ %call.i101.i, %for.cond11.preheader.i.i ], [ %fc_new_hwm.1.i.i, %if.end203.i.i ] - %193 = load i64, ptr %max_ppl3.i.i, align 8 + %192 = load i64, ptr %max_ppl3.i.i, align 8 %bf.load.i79.i.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.clear.i.i103.i = and i8 %bf.load.i79.i.i, 1 %tobool.not.i80.i.i = icmp eq i8 %bf.clear.i.i103.i, 0 - br i1 %tobool.not.i80.i.i, label %cond.false.i.i.i317, label %tx_helper_get_space_left.exit.i.i266 + br i1 %tobool.not.i80.i.i, label %cond.false.i.i.i316, label %tx_helper_get_space_left.exit.i.i265 -cond.false.i.i.i317: ; preds = %for.cond11.i.i - %194 = load i64, ptr %reserve4.i.i, align 16 - br label %tx_helper_get_space_left.exit.i.i266 +cond.false.i.i.i316: ; preds = %for.cond11.i.i + %193 = load i64, ptr %reserve4.i.i, align 16 + br label %tx_helper_get_space_left.exit.i.i265 -tx_helper_get_space_left.exit.i.i266: ; preds = %cond.false.i.i.i317, %for.cond11.i.i - %cond.i.i.i267 = phi i64 [ %194, %cond.false.i.i.i317 ], [ 0, %for.cond11.i.i ] - %195 = load i64, ptr %bytes_appended.i.i, align 16 - %196 = add i64 %cond.i.i.i267, %195 - %sub1.i.i.i268 = sub i64 %193, %196 +tx_helper_get_space_left.exit.i.i265: ; preds = %cond.false.i.i.i316, %for.cond11.i.i + %cond.i.i.i266 = phi i64 [ %193, %cond.false.i.i.i316 ], [ 0, %for.cond11.i.i ] + %194 = load i64, ptr %bytes_appended.i.i, align 16 + %195 = add i64 %cond.i.i.i266, %194 + %sub1.i.i.i267 = sub i64 %192, %195 %rem.i.i = and i64 %i.1.i.i, 1 %arrayidx13.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i %valid14.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 4 - %197 = load i32, ptr %valid14.i.i, align 8 - %tobool15.not.i.i = icmp eq i32 %197, 0 + %196 = load i32, ptr %valid14.i.i, align 8 + %tobool15.not.i.i = icmp eq i32 %196, 0 br i1 %tobool15.not.i.i, label %if.end158.i, label %if.end17.i.i -if.end17.i.i: ; preds = %tx_helper_get_space_left.exit.i.i266 - %cmp18.i.i = icmp ult i64 %sub1.i.i.i268, 3 +if.end17.i.i: ; preds = %tx_helper_get_space_left.exit.i.i265 + %cmp18.i.i = icmp ult i64 %sub1.i.i.i267, 3 br i1 %cmp18.i.i, label %if.end158.thread.i, label %if.end20.i.i if.end20.i.i: ; preds = %if.end17.i.i - %198 = and i8 %bf.load.i79.i.i, 2 - %tobool21.not.i.i = icmp eq i8 %198, 0 + %197 = and i8 %bf.load.i79.i.i, 2 + %tobool21.not.i.i = icmp eq i8 %197, 0 br i1 %tobool21.not.i.i, label %if.end29.i.i, label %txp_generate_stream_related.exit if.end29.i.i: ; preds = %if.end20.i.i %orig_len35.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 1 - %199 = load i64, ptr %orig_len35.i.i, align 8 + %198 = load i64, ptr %orig_len35.i.i, align 8 %cmp36.not.i.i = icmp eq i64 %i.1.i.i, 0 br i1 %cmp36.not.i.i, label %if.end46.i.i, label %if.then38.i.i if.then38.i.i: ; preds = %if.end29.i.i - %add.i.i269 = add i64 %i.1.i.i, 1 - %rem40.i.i = and i64 %add.i.i269, 1 + %add.i.i268 = add i64 %i.1.i.i, 1 + %rem40.i.i = and i64 %add.i.i268, 1 %arrayidx41.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i %num_stream_iovec.i81.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 3 store i64 2, ptr %num_stream_iovec.i81.i.i, align 16 %iov.i82.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 2 - %call.i83.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %183, i64 noundef %add.i.i269, ptr noundef nonnull %arrayidx41.i.i, ptr noundef nonnull %iov.i82.i.i, ptr noundef nonnull %num_stream_iovec.i81.i.i) #10 + %call.i83.i.i = call i32 @ossl_quic_sstream_get_stream_frame(ptr noundef %182, i64 noundef %add.i.i268, ptr noundef nonnull %arrayidx41.i.i, ptr noundef nonnull %iov.i82.i.i, ptr noundef nonnull %num_stream_iovec.i81.i.i) #10 %valid.i84.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 4 store i32 %call.i83.i.i, ptr %valid.i84.i.i, align 8 %tobool.not.i85.i.i = icmp eq i32 %call.i83.i.i, 0 @@ -2534,25 +2526,25 @@ if.then38.i.i: ; preds = %if.end29.i.i if.end.i86.i.i: ; preds = %if.then38.i.i %len.i87.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 2 - %200 = load i64, ptr %len.i87.i.i, align 16 - %cmp.not.i88.i.i = icmp eq i64 %200, 0 + %199 = load i64, ptr %len.i87.i.i, align 16 + %cmp.not.i88.i.i = icmp eq i64 %199, 0 br i1 %cmp.not.i88.i.i, label %lor.rhs.i111.i.i, label %if.end10.i89.i.i lor.rhs.i111.i.i: ; preds = %if.end.i86.i.i %is_fin.i112.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 4 %bf.load.i113.i.i = load i8, ptr %is_fin.i112.i.i, align 16 - %201 = and i8 %bf.load.i113.i.i, 2 - %tobool5.not.i114.i.i = icmp eq i8 %201, 0 + %200 = and i8 %bf.load.i113.i.i, 2 + %tobool5.not.i114.i.i = icmp eq i8 %200, 0 br i1 %tobool5.not.i114.i.i, label %txp_generate_stream_related.exit, label %if.end10.i89.i.i if.end10.i89.i.i: ; preds = %lor.rhs.i111.i.i, %if.end.i86.i.i %orig_len.i90.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem40.i.i, i32 1 - store i64 %200, ptr %orig_len.i90.i.i, align 8 + store i64 %199, ptr %orig_len.i90.i.i, align 8 %call13.i91.i.i = call i64 @ossl_quic_txfc_get_credit(ptr noundef nonnull %txfc153.i, i64 noundef %conn_consumed.0161.i) #10 %call14.i92.i.i = call i64 @ossl_quic_txfc_get_swm(ptr noundef nonnull %txfc153.i) #10 %add.i93.i.i = add i64 %call14.i92.i.i, %call13.i91.i.i - %202 = load i64, ptr %len.i87.i.i, align 16 - %cmp17.not.i94.i.i = icmp eq i64 %202, 0 + %201 = load i64, ptr %len.i87.i.i, align 16 + %cmp17.not.i94.i.i = icmp eq i64 %201, 0 br i1 %cmp17.not.i94.i.i, label %if.end10.i89.land.lhs.true43.i106_crit_edge.i.i, label %land.lhs.true.i95.i.i if.end10.i89.land.lhs.true43.i106_crit_edge.i.i: ; preds = %if.end10.i89.i.i @@ -2562,25 +2554,25 @@ if.end10.i89.land.lhs.true43.i106_crit_edge.i.i: ; preds = %if.end10.i89.i.i land.lhs.true.i95.i.i: ; preds = %if.end10.i89.i.i %offset.i96.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 1 - %203 = load i64, ptr %offset.i96.i.i, align 8 - %add22.i97.i.i = add i64 %203, %202 + %202 = load i64, ptr %offset.i96.i.i, align 8 + %add22.i97.i.i = add i64 %202, %201 %cmp23.i98.i.i = icmp ugt i64 %add22.i97.i.i, %add.i93.i.i br i1 %cmp23.i98.i.i, label %if.end38.i100.i.i, label %if.end46.i.i if.end38.i100.i.i: ; preds = %land.lhs.true.i95.i.i - %spec.select.i101.i.i = call i64 @llvm.usub.sat.i64(i64 %add.i93.i.i, i64 %203) + %spec.select.i101.i.i = call i64 @llvm.usub.sat.i64(i64 %add.i93.i.i, i64 %202) store i64 %spec.select.i101.i.i, ptr %len.i87.i.i, align 16 %is_fin35.i102.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx41.i.i, i64 0, i32 4 %bf.load36.i103.i.i = load i8, ptr %is_fin35.i102.i.i, align 16 %bf.clear37.i104.i.i = and i8 %bf.load36.i103.i.i, -3 store i8 %bf.clear37.i104.i.i, ptr %is_fin35.i102.i.i, align 16 - %.not.i105.i.i = icmp ugt i64 %add.i93.i.i, %203 + %.not.i105.i.i = icmp ugt i64 %add.i93.i.i, %202 br i1 %.not.i105.i.i, label %if.end46.i.i, label %land.lhs.true43.i106.i.i land.lhs.true43.i106.i.i: ; preds = %if.end38.i100.i.i, %if.end10.i89.land.lhs.true43.i106_crit_edge.i.i %bf.load46.i108.i.i = phi i8 [ %bf.load46.i108.pre.i.i, %if.end10.i89.land.lhs.true43.i106_crit_edge.i.i ], [ %bf.clear37.i104.i.i, %if.end38.i100.i.i ] - %204 = and i8 %bf.load46.i108.i.i, 2 - %tobool50.not.i109.i.i = icmp eq i8 %204, 0 + %203 = and i8 %bf.load46.i108.i.i, 2 + %tobool50.not.i109.i.i = icmp eq i8 %203, 0 br i1 %tobool50.not.i109.i.i, label %if.then51.i110.i.i, label %if.end46.i.i if.then51.i110.i.i: ; preds = %land.lhs.true43.i106.i.i @@ -2595,45 +2587,45 @@ if.end46.i.i: ; preds = %if.then51.i110.i.i, store i64 0, ptr %payload_len_implicit.i.i, align 8 store i64 0, ptr %hdr_len_implicit.i.i, align 8 %len1.i.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx13.i.i, i64 0, i32 2 - %205 = load i64, ptr %len1.i.i.i, align 16 + %204 = load i64, ptr %len1.i.i.i, align 16 store i64 0, ptr %len1.i.i.i, align 16 %call.i116.i.i = call i64 @ossl_quic_wire_get_encoded_frame_len_stream_hdr(ptr noundef nonnull %arrayidx13.i.i) #10 - %cmp5.i.i.i270 = icmp eq i64 %call.i116.i.i, 0 - br i1 %cmp5.i.i.i270, label %if.end158.thread.i, label %determine_stream_len.exit.i.i + %cmp5.i.i.i269 = icmp eq i64 %call.i116.i.i, 0 + br i1 %cmp5.i.i.i269, label %if.end158.thread.i, label %determine_stream_len.exit.i.i determine_stream_len.exit.i.i: ; preds = %if.end46.i.i %bf.load.i117.i.i = load i8, ptr %has_explicit_len.i.i, align 16 - %206 = and i8 %bf.load.i117.i.i, 1 - %sext.i.i.i = sub nsw i8 0, %206 - %dec.i.i.i271 = sext i8 %sext.i.i.i to i64 - %spec.select.i118.i.i = add i64 %call.i116.i.i, %dec.i.i.i271 - %call10.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i268, i64 noundef %205, i64 noundef %spec.select.i118.i.i, ptr noundef nonnull %hdr_len_implicit.i.i, ptr noundef nonnull %payload_len_implicit.i.i), !range !9 - %tobool50.not.i.i272 = icmp eq i32 %call10.i.i.i, 0 - br i1 %tobool50.not.i.i272, label %if.end158.thread.i, label %if.end52.i.i + %205 = and i8 %bf.load.i117.i.i, 1 + %sext.i.i.i = sub nsw i8 0, %205 + %dec.i.i.i270 = sext i8 %sext.i.i.i to i64 + %spec.select.i118.i.i = add i64 %call.i116.i.i, %dec.i.i.i270 + %call10.i.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i267, i64 noundef %204, i64 noundef %spec.select.i118.i.i, ptr noundef nonnull %hdr_len_implicit.i.i, ptr noundef nonnull %payload_len_implicit.i.i), !range !9 + %tobool50.not.i.i271 = icmp eq i32 %call10.i.i.i, 0 + br i1 %tobool50.not.i.i271, label %if.end158.thread.i, label %if.end52.i.i if.end52.i.i: ; preds = %determine_stream_len.exit.i.i - %207 = load i64, ptr %hdr_len_implicit.i.i, align 8 - %208 = load i64, ptr %payload_len_implicit.i.i, align 8 - %add53.i.i = add i64 %208, %207 - %cmp54.not.i.i = icmp ult i64 %add53.i.i, %sub1.i.i.i268 + %206 = load i64, ptr %hdr_len_implicit.i.i, align 8 + %207 = load i64, ptr %payload_len_implicit.i.i, align 8 + %add53.i.i = add i64 %207, %206 + %cmp54.not.i.i = icmp ult i64 %add53.i.i, %sub1.i.i.i267 br i1 %cmp56.not.i.i, label %lor.rhs.i.i, label %lor.end.i.i lor.rhs.i.i: ; preds = %if.end52.i.i %rem59.i.i = xor i64 %rem.i.i, 1 %valid61.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem59.i.i, i32 4 - %209 = load i32, ptr %valid61.i.i, align 8 - %tobool62.i.i = icmp ne i32 %209, 0 + %208 = load i32, ptr %valid61.i.i, align 8 + %tobool62.i.i = icmp ne i32 %208, 0 br label %lor.end.i.i lor.end.i.i: ; preds = %lor.rhs.i.i, %if.end52.i.i - %210 = phi i1 [ true, %if.end52.i.i ], [ %tobool62.i.i, %lor.rhs.i.i ] - %or.cond.i.i = select i1 %cmp54.not.i.i, i1 %210, i1 false + %209 = phi i1 [ true, %if.end52.i.i ], [ %tobool62.i.i, %lor.rhs.i.i ] + %or.cond.i.i = select i1 %cmp54.not.i.i, i1 %209, i1 false br i1 %or.cond.i.i, label %if.then71.i.i, label %land.rhs.i.i land.rhs.i.i: ; preds = %lor.end.i.i - %211 = load i32, ptr %force_pad.i, align 8 - %tobool65.not.i.i = icmp eq i32 %211, 0 - br i1 %tobool65.not.i.i, label %if.else.i.i316, label %if.then71.i.i + %210 = load i32, ptr %force_pad.i, align 8 + %tobool65.not.i.i = icmp eq i32 %210, 0 + br i1 %tobool65.not.i.i, label %if.else.i.i315, label %if.then71.i.i if.then71.i.i: ; preds = %land.rhs.i.i, %lor.end.i.i %bf.set75.i.i = or i8 %bf.load.i117.i.i, 1 @@ -2647,30 +2639,30 @@ if.then71.i.i: ; preds = %land.rhs.i.i, %lor. determine_stream_len.exit131.i.i: ; preds = %if.then71.i.i %bf.load.i125.i.i = load i8, ptr %has_explicit_len.i.i, align 16 - %212 = and i8 %bf.load.i125.i.i, 1 - %sext.i126.i.i = sub nsw i8 0, %212 + %211 = and i8 %bf.load.i125.i.i, 1 + %sext.i126.i.i = sub nsw i8 0, %211 %dec.i127.i.i = sext i8 %sext.i126.i.i to i64 %spec.select.i128.i.i = add i64 %call.i121.i.i, %dec.i127.i.i - %call10.i129.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i268, i64 noundef %205, i64 noundef %spec.select.i128.i.i, ptr noundef nonnull %hdr_len_explicit.i.i, ptr noundef nonnull %payload_len_explicit.i.i), !range !9 + %call10.i129.i.i = call fastcc i32 @determine_len(i64 noundef %sub1.i.i.i267, i64 noundef %204, i64 noundef %spec.select.i128.i.i, ptr noundef nonnull %hdr_len_explicit.i.i, ptr noundef nonnull %payload_len_explicit.i.i), !range !9 %tobool77.not.i.i = icmp eq i32 %call10.i129.i.i, 0 br i1 %tobool77.not.i.i, label %if.end158.thread.i, label %if.end79.i.i if.end79.i.i: ; preds = %determine_stream_len.exit131.i.i - %213 = load i64, ptr %payload_len_explicit.i.i, align 8 + %212 = load i64, ptr %payload_len_explicit.i.i, align 8 br label %if.end85.i.i -if.else.i.i316: ; preds = %land.rhs.i.i +if.else.i.i315: ; preds = %land.rhs.i.i %bf.clear82.i.i = and i8 %bf.load.i117.i.i, -2 store i8 %bf.clear82.i.i, ptr %has_explicit_len.i.i, align 16 br label %if.end85.i.i -if.end85.i.i: ; preds = %if.else.i.i316, %if.end79.i.i - %packet_full.1.i = phi i32 [ %packet_full.0.i, %if.end79.i.i ], [ 1, %if.else.i.i316 ] - %bf.load102.i.i = phi i8 [ %bf.load.i125.i.i, %if.end79.i.i ], [ %bf.clear82.i.i, %if.else.i.i316 ] - %214 = phi i64 [ %213, %if.end79.i.i ], [ %208, %if.else.i.i316 ] - store i64 %214, ptr %len1.i.i.i, align 16 - %215 = and i8 %bf.load102.i.i, 2 - %tobool90.not.i.i = icmp eq i8 %215, 0 +if.end85.i.i: ; preds = %if.else.i.i315, %if.end79.i.i + %packet_full.1.i = phi i32 [ %packet_full.0.i, %if.end79.i.i ], [ 1, %if.else.i.i315 ] + %bf.load102.i.i = phi i8 [ %bf.load.i125.i.i, %if.end79.i.i ], [ %bf.clear82.i.i, %if.else.i.i315 ] + %213 = phi i64 [ %212, %if.end79.i.i ], [ %207, %if.else.i.i315 ] + store i64 %213, ptr %len1.i.i.i, align 16 + %214 = and i8 %bf.load102.i.i, 2 + %tobool90.not.i.i = icmp eq i8 %214, 0 br i1 %tobool90.not.i.i, label %if.end96.i.i, label %if.then91.i.i if.then91.i.i: ; preds = %if.end85.i.i @@ -2680,7 +2672,7 @@ if.then91.i.i: ; preds = %if.end85.i.i br label %if.end96.i.i if.end96.i.i: ; preds = %if.then91.i.i, %if.end85.i.i - %cmp98.i.i = icmp ult i64 %214, %199 + %cmp98.i.i = icmp ult i64 %213, %198 br i1 %cmp98.i.i, label %if.then100.i.i, label %if.end105.i.i if.then100.i.i: ; preds = %if.end96.i.i @@ -2689,38 +2681,38 @@ if.then100.i.i: ; preds = %if.end96.i.i br label %if.end105.i.i if.end105.i.i: ; preds = %if.then100.i.i, %if.end96.i.i - %iov.i.i273 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2 - %num_stream_iovec.i.i274 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 3 - %216 = load i64, ptr %num_stream_iovec.i.i274, align 16 - call void @ossl_quic_sstream_adjust_iov(i64 noundef %214, ptr noundef nonnull %iov.i.i273, i64 noundef %216) #10 - %217 = load i64, ptr %num_iovec.i.i, align 8 - %add112.i.i = add i64 %217, 3 - %218 = load i64, ptr %alloc_iovec.i.i.i264, align 8 - %cmp.not.i132.i.i = icmp ult i64 %218, %add112.i.i + %iov.i.i272 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2 + %num_stream_iovec.i.i273 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 3 + %215 = load i64, ptr %num_stream_iovec.i.i273, align 16 + call void @ossl_quic_sstream_adjust_iov(i64 noundef %213, ptr noundef nonnull %iov.i.i272, i64 noundef %215) #10 + %216 = load i64, ptr %num_iovec.i.i, align 8 + %add112.i.i = add i64 %216, 3 + %217 = load i64, ptr %alloc_iovec.i.i.i263, align 8 + %cmp.not.i132.i.i = icmp ult i64 %217, %add112.i.i br i1 %cmp.not.i132.i.i, label %if.end.i134.i.i, label %if.end116.i.i if.end.i134.i.i: ; preds = %if.end105.i.i - %cmp2.not.i.i.i311 = icmp eq i64 %218, 0 - %mul.i.i.i312 = shl i64 %218, 1 - %spec.select.i135.i.i = select i1 %cmp2.not.i.i.i311, i64 8, i64 %mul.i.i.i312 - %219 = load ptr, ptr %iovec4.i.i.i265, align 8 - %mul5.i.i.i313 = shl i64 %spec.select.i135.i.i, 4 - %call.i136.i.i = call ptr @CRYPTO_realloc(ptr noundef %219, i64 noundef %mul5.i.i.i313, ptr noundef nonnull @.str, i32 noundef 3041) #10 - %cmp6.i.i.i314 = icmp eq ptr %call.i136.i.i, null - br i1 %cmp6.i.i.i314, label %txp_generate_stream_related.exit, label %if.end8.i.i.i315 - -if.end8.i.i.i315: ; preds = %if.end.i134.i.i - store ptr %call.i136.i.i, ptr %iovec4.i.i.i265, align 8 - store i64 %spec.select.i135.i.i, ptr %alloc_iovec.i.i.i264, align 8 + %cmp2.not.i.i.i310 = icmp eq i64 %217, 0 + %mul.i.i.i311 = shl i64 %217, 1 + %spec.select.i135.i.i = select i1 %cmp2.not.i.i.i310, i64 8, i64 %mul.i.i.i311 + %218 = load ptr, ptr %iovec4.i.i.i264, align 8 + %mul5.i.i.i312 = shl i64 %spec.select.i135.i.i, 4 + %call.i136.i.i = call ptr @CRYPTO_realloc(ptr noundef %218, i64 noundef %mul5.i.i.i312, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %cmp6.i.i.i313 = icmp eq ptr %call.i136.i.i, null + br i1 %cmp6.i.i.i313, label %txp_generate_stream_related.exit, label %if.end8.i.i.i314 + +if.end8.i.i.i314: ; preds = %if.end.i134.i.i + store ptr %call.i136.i.i, ptr %iovec4.i.i.i264, align 8 + store i64 %spec.select.i135.i.i, ptr %alloc_iovec.i.i.i263, align 8 br label %if.end116.i.i -if.end116.i.i: ; preds = %if.end8.i.i.i315, %if.end105.i.i - %call117.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) +if.end116.i.i: ; preds = %if.end8.i.i.i314, %if.end105.i.i + %call117.i.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp118.i.i = icmp eq ptr %call117.i.i, null br i1 %cmp118.i.i, label %txp_generate_stream_related.exit, label %if.end121.i.i if.end121.i.i: ; preds = %if.end116.i.i - store i64 %182, ptr %arrayidx13.i.i, align 16 + store i64 %181, ptr %arrayidx13.i.i, align 16 %call122.i.i = call i32 @ossl_quic_wire_encode_frame_stream_hdr(ptr noundef nonnull %call117.i.i, ptr noundef nonnull %arrayidx13.i.i) #10 %cmp123.not.i.i = icmp eq i32 %call122.i.i, 0 br i1 %cmp123.not.i.i, label %if.then131.i.i, label %if.end132.i.i @@ -2732,100 +2724,100 @@ if.then131.i.i: ; preds = %if.end121.i.i br i1 %tobool.not.i139.i.i, label %if.end158.thread.i, label %if.end.i140.i.i if.end.i140.i.i: ; preds = %if.then131.i.i - %wpkt2.i.i.i.i307 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11349, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i307) #10 - %bf.load.i.i.i.i309 = load i8, ptr %active.i.i, align 8 - %bf.clear.i.i.i.i310 = and i8 %bf.load.i.i.i.i309, -2 - store i8 %bf.clear.i.i.i.i310, ptr %active.i.i, align 8 + %wpkt2.i.i.i.i306 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx11348, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i306) #10 + %bf.load.i.i.i.i308 = load i8, ptr %active.i.i, align 8 + %bf.clear.i.i.i.i309 = and i8 %bf.load.i.i.i.i308, -2 + store i8 %bf.clear.i.i.i.i309, ptr %active.i.i, align 8 store ptr null, ptr %txn.i.i, align 8 br label %if.end158.thread.i if.end132.i.i: ; preds = %if.end121.i.i - %call133.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call133.i.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool134.not.i.i = icmp eq i32 %call133.i.i, 0 br i1 %tobool134.not.i.i, label %txp_generate_stream_related.exit, label %for.cond137.preheader.i.i for.cond137.preheader.i.i: ; preds = %if.end132.i.i - %220 = load i64, ptr %num_stream_iovec.i.i274, align 16 - %cmp141167.not.i.i = icmp eq i64 %220, 0 + %219 = load i64, ptr %num_stream_iovec.i.i273, align 16 + %cmp141167.not.i.i = icmp eq i64 %219, 0 br i1 %cmp141167.not.i.i, label %for.end155.i.i, label %for.body143.i.i -for.body143.i.i: ; preds = %for.cond137.preheader.i.i, %tx_helper_append_iovec.exit.i.i278 - %j.0168.i.i = phi i64 [ %inc154.i.i, %tx_helper_append_iovec.exit.i.i278 ], [ 0, %for.cond137.preheader.i.i ] +for.body143.i.i: ; preds = %for.cond137.preheader.i.i, %tx_helper_append_iovec.exit.i.i277 + %j.0168.i.i = phi i64 [ %inc154.i.i, %tx_helper_append_iovec.exit.i.i277 ], [ 0, %for.cond137.preheader.i.i ] %arrayidx147.i.i = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2, i64 %j.0168.i.i - %221 = load ptr, ptr %arrayidx147.i.i, align 16 - %buf_len.i.i275 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2, i64 %j.0168.i.i, i32 1 - %222 = load i64, ptr %buf_len.i.i275, align 8 - %223 = load ptr, ptr %arrayidx11349, align 16 - %224 = load i32, ptr %enc_level2.i.i, align 16 - %idxprom.i.i.i276 = zext i32 %224 to i64 - %cmp.i.i.i277 = icmp eq i64 %222, 0 - br i1 %cmp.i.i.i277, label %tx_helper_append_iovec.exit.i.i278, label %if.end.i141.i.i + %220 = load ptr, ptr %arrayidx147.i.i, align 16 + %buf_len.i.i274 = getelementptr inbounds [2 x %struct.chunk_info], ptr %chunks.i.i, i64 0, i64 %rem.i.i, i32 2, i64 %j.0168.i.i, i32 1 + %221 = load i64, ptr %buf_len.i.i274, align 8 + %222 = load ptr, ptr %arrayidx11348, align 16 + %223 = load i32, ptr %enc_level2.i.i, align 16 + %idxprom.i.i.i275 = zext i32 %223 to i64 + %cmp.i.i.i276 = icmp eq i64 %221, 0 + br i1 %cmp.i.i.i276, label %tx_helper_append_iovec.exit.i.i277, label %if.end.i141.i.i if.end.i141.i.i: ; preds = %for.body143.i.i %bf.load.i142.i.i = load i8, ptr %reserve_allowed.i.i, align 4 - %225 = and i8 %bf.load.i142.i.i, 2 - %tobool.not.i143.i.i = icmp eq i8 %225, 0 - br i1 %tobool.not.i143.i.i, label %if.end9.i.i.i284, label %tx_helper_append_iovec.exit.i.i278 - -if.end9.i.i.i284: ; preds = %if.end.i141.i.i - %226 = load i64, ptr %num_iovec.i.i, align 8 - %add.i145.i.i = add i64 %226, 1 - %alloc_iovec.i.i.i.i285 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 3 - %227 = load i64, ptr %alloc_iovec.i.i.i.i285, align 8 - %cmp.not.i.i.i.i286 = icmp ult i64 %227, %add.i145.i.i - br i1 %cmp.not.i.i.i.i286, label %if.end.i.i.i.i296, label %if.end9.if.end12_crit_edge.i.i.i287 - -if.end9.if.end12_crit_edge.i.i.i287: ; preds = %if.end9.i.i.i284 - %iovec.phi.trans.insert.i.i.i288 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 2 - %.pre.i.i.i289 = load ptr, ptr %iovec.phi.trans.insert.i.i.i288, align 8 - br label %if.end12.i.i.i290 - -if.end.i.i.i.i296: ; preds = %if.end9.i.i.i284 - %cmp2.not.i.i.i.i297 = icmp eq i64 %227, 0 - %mul.i.i.i.i298 = shl i64 %227, 1 - %spec.select.i.i.i.i299 = select i1 %cmp2.not.i.i.i.i297, i64 8, i64 %mul.i.i.i.i298 - %iovec4.i.i.i.i300 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 2 - %228 = load ptr, ptr %iovec4.i.i.i.i300, align 8 - %mul5.i.i.i.i301 = shl i64 %spec.select.i.i.i.i299, 4 - %call.i.i.i.i302 = call ptr @CRYPTO_realloc(ptr noundef %228, i64 noundef %mul5.i.i.i.i301, ptr noundef nonnull @.str, i32 noundef 3041) #10 - %cmp6.i.i.i.i303 = icmp eq ptr %call.i.i.i.i302, null - br i1 %cmp6.i.i.i.i303, label %tx_helper_append_iovec.exit.i.i278, label %if.end8.i.i.i.i304 - -if.end8.i.i.i.i304: ; preds = %if.end.i.i.i.i296 - store ptr %call.i.i.i.i302, ptr %iovec4.i.i.i.i300, align 8 - store i64 %spec.select.i.i.i.i299, ptr %alloc_iovec.i.i.i.i285, align 8 - %.pre14.i.i.i305 = load i64, ptr %num_iovec.i.i, align 8 - br label %if.end12.i.i.i290 - -if.end12.i.i.i290: ; preds = %if.end8.i.i.i.i304, %if.end9.if.end12_crit_edge.i.i.i287 - %229 = phi i64 [ %226, %if.end9.if.end12_crit_edge.i.i.i287 ], [ %.pre14.i.i.i305, %if.end8.i.i.i.i304 ] - %230 = phi ptr [ %.pre.i.i.i289, %if.end9.if.end12_crit_edge.i.i.i287 ], [ %call.i.i.i.i302, %if.end8.i.i.i.i304 ] - %iovec.i.i.i291 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %223, i64 0, i32 12, i64 %idxprom.i.i.i276, i32 2 - %arrayidx14.i.i.i292 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %230, i64 %229 - store ptr %221, ptr %arrayidx14.i.i.i292, align 8 - %231 = load ptr, ptr %iovec.i.i.i291, align 8 + %224 = and i8 %bf.load.i142.i.i, 2 + %tobool.not.i143.i.i = icmp eq i8 %224, 0 + br i1 %tobool.not.i143.i.i, label %if.end9.i.i.i283, label %tx_helper_append_iovec.exit.i.i277 + +if.end9.i.i.i283: ; preds = %if.end.i141.i.i + %225 = load i64, ptr %num_iovec.i.i, align 8 + %add.i145.i.i = add i64 %225, 1 + %alloc_iovec.i.i.i.i284 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 3 + %226 = load i64, ptr %alloc_iovec.i.i.i.i284, align 8 + %cmp.not.i.i.i.i285 = icmp ult i64 %226, %add.i145.i.i + br i1 %cmp.not.i.i.i.i285, label %if.end.i.i.i.i295, label %if.end9.if.end12_crit_edge.i.i.i286 + +if.end9.if.end12_crit_edge.i.i.i286: ; preds = %if.end9.i.i.i283 + %iovec.phi.trans.insert.i.i.i287 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 2 + %.pre.i.i.i288 = load ptr, ptr %iovec.phi.trans.insert.i.i.i287, align 8 + br label %if.end12.i.i.i289 + +if.end.i.i.i.i295: ; preds = %if.end9.i.i.i283 + %cmp2.not.i.i.i.i296 = icmp eq i64 %226, 0 + %mul.i.i.i.i297 = shl i64 %226, 1 + %spec.select.i.i.i.i298 = select i1 %cmp2.not.i.i.i.i296, i64 8, i64 %mul.i.i.i.i297 + %iovec4.i.i.i.i299 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 2 + %227 = load ptr, ptr %iovec4.i.i.i.i299, align 8 + %mul5.i.i.i.i300 = shl i64 %spec.select.i.i.i.i298, 4 + %call.i.i.i.i301 = call ptr @CRYPTO_realloc(ptr noundef %227, i64 noundef %mul5.i.i.i.i300, ptr noundef nonnull @.str, i32 noundef 3041) #10 + %cmp6.i.i.i.i302 = icmp eq ptr %call.i.i.i.i301, null + br i1 %cmp6.i.i.i.i302, label %tx_helper_append_iovec.exit.i.i277, label %if.end8.i.i.i.i303 + +if.end8.i.i.i.i303: ; preds = %if.end.i.i.i.i295 + store ptr %call.i.i.i.i301, ptr %iovec4.i.i.i.i299, align 8 + store i64 %spec.select.i.i.i.i298, ptr %alloc_iovec.i.i.i.i284, align 8 + %.pre14.i.i.i304 = load i64, ptr %num_iovec.i.i, align 8 + br label %if.end12.i.i.i289 + +if.end12.i.i.i289: ; preds = %if.end8.i.i.i.i303, %if.end9.if.end12_crit_edge.i.i.i286 + %228 = phi i64 [ %225, %if.end9.if.end12_crit_edge.i.i.i286 ], [ %.pre14.i.i.i304, %if.end8.i.i.i.i303 ] + %229 = phi ptr [ %.pre.i.i.i288, %if.end9.if.end12_crit_edge.i.i.i286 ], [ %call.i.i.i.i301, %if.end8.i.i.i.i303 ] + %iovec.i.i.i290 = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %222, i64 0, i32 12, i64 %idxprom.i.i.i275, i32 2 + %arrayidx14.i.i.i291 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %229, i64 %228 + store ptr %220, ptr %arrayidx14.i.i.i291, align 8 + %230 = load ptr, ptr %iovec.i.i.i290, align 8 + %231 = load i64, ptr %num_iovec.i.i, align 8 + %buf_len19.i.i.i292 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %230, i64 %231, i32 1 + store i64 %221, ptr %buf_len19.i.i.i292, align 8 %232 = load i64, ptr %num_iovec.i.i, align 8 - %buf_len19.i.i.i293 = getelementptr inbounds %struct.ossl_qtx_iovec_st, ptr %231, i64 %232, i32 1 - store i64 %222, ptr %buf_len19.i.i.i293, align 8 - %233 = load i64, ptr %num_iovec.i.i, align 8 - %inc.i.i.i294 = add i64 %233, 1 - store i64 %inc.i.i.i294, ptr %num_iovec.i.i, align 8 - %234 = load i64, ptr %bytes_appended.i.i, align 16 - %add21.i.i.i295 = add i64 %234, %222 - store i64 %add21.i.i.i295, ptr %bytes_appended.i.i, align 16 - br label %tx_helper_append_iovec.exit.i.i278 - -tx_helper_append_iovec.exit.i.i278: ; preds = %if.end12.i.i.i290, %if.end.i.i.i.i296, %if.end.i141.i.i, %for.body143.i.i + %inc.i.i.i293 = add i64 %232, 1 + store i64 %inc.i.i.i293, ptr %num_iovec.i.i, align 8 + %233 = load i64, ptr %bytes_appended.i.i, align 16 + %add21.i.i.i294 = add i64 %233, %221 + store i64 %add21.i.i.i294, ptr %bytes_appended.i.i, align 16 + br label %tx_helper_append_iovec.exit.i.i277 + +tx_helper_append_iovec.exit.i.i277: ; preds = %if.end12.i.i.i289, %if.end.i.i.i.i295, %if.end.i141.i.i, %for.body143.i.i %inc154.i.i = add nuw i64 %j.0168.i.i, 1 - %235 = load i64, ptr %num_stream_iovec.i.i274, align 16 - %cmp141.i.i = icmp ult i64 %inc154.i.i, %235 + %234 = load i64, ptr %num_stream_iovec.i.i273, align 16 + %cmp141.i.i = icmp ult i64 %inc154.i.i, %234 br i1 %cmp141.i.i, label %for.body143.i.i, label %for.end155.i.i, !llvm.loop !13 -for.end155.i.i: ; preds = %tx_helper_append_iovec.exit.i.i278, %for.cond137.preheader.i.i +for.end155.i.i: ; preds = %tx_helper_append_iovec.exit.i.i277, %for.cond137.preheader.i.i %bf.load.i148.i.i = load i8, ptr %reserve_allowed.i.i, align 4 - %bf.set.i.i.i279 = or i8 %bf.load.i148.i.i, 1 - store i8 %bf.set.i.i.i279, ptr %reserve_allowed.i.i, align 4 + %bf.set.i.i.i278 = or i8 %bf.load.i148.i.i, 1 + store i8 %bf.set.i.i.i278, ptr %reserve_allowed.i.i, align 4 %bf.load157.i.i = load i8, ptr %has_explicit_len.i.i, align 16 %bf.clear158.i.i = and i8 %bf.load157.i.i, 1 %tobool160.not.i.i = icmp eq i8 %bf.clear158.i.i, 0 @@ -2837,93 +2829,93 @@ if.then161.i.i: ; preds = %for.end155.i.i br label %if.end166.i.i if.end166.i.i: ; preds = %if.then161.i.i, %for.end155.i.i - %236 = load i64, ptr %len1.i.i.i, align 16 - %cmp168.not.i.i = icmp eq i64 %236, 0 + %235 = load i64, ptr %len1.i.i.i, align 16 + %cmp168.not.i.i = icmp eq i64 %235, 0 %offset182.phi.trans.insert.i.i = getelementptr inbounds %struct.ossl_quic_frame_stream_st, ptr %arrayidx13.i.i, i64 0, i32 1 - %.pre.i.i280 = load i64, ptr %offset182.phi.trans.insert.i.i, align 8 - %add172.i.i = add i64 %.pre.i.i280, %236 + %.pre.i.i279 = load i64, ptr %offset182.phi.trans.insert.i.i, align 8 + %add172.i.i = add i64 %.pre.i.i279, %235 %spec.select.i.i = call i64 @llvm.umax.i64(i64 %add172.i.i, i64 %fc_new_hwm.0.i.i) %fc_new_hwm.1.i.i = select i1 %cmp168.not.i.i, i64 %fc_new_hwm.0.i.i, i64 %spec.select.i.i - %237 = load i64, ptr %arrayidx13.i.i, align 16 - store i64 %237, ptr %chunk.i.i218, align 8 - store i64 %.pre.i.i280, ptr %start.i.i227, align 8 - %sub.i.i281 = add i64 %add172.i.i, -1 - store i64 %sub.i.i281, ptr %end.i.i228, align 8 + %236 = load i64, ptr %arrayidx13.i.i, align 16 + store i64 %236, ptr %chunk.i.i217, align 8 + store i64 %.pre.i.i279, ptr %start.i.i226, align 8 + %sub.i.i280 = add i64 %add172.i.i, -1 + store i64 %sub.i.i280, ptr %end.i.i227, align 8 %bf.lshr188.i.i = lshr i8 %bf.load157.i.i, 1 %bf.clear189.i.i = and i8 %bf.lshr188.i.i, 1 - %bf.load191.i.i = load i8, ptr %has_fin.i.i229, align 8 + %bf.load191.i.i = load i8, ptr %has_fin.i.i228, align 8 %bf.clear192.i.i = and i8 %bf.load191.i.i, -8 %bf.set193.i.i = or disjoint i8 %bf.clear192.i.i, %bf.clear189.i.i - store i8 %bf.set193.i.i, ptr %has_fin.i.i229, align 8 - %call200.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %185, ptr noundef nonnull %chunk.i.i218) #10 + store i8 %bf.set193.i.i, ptr %has_fin.i.i228, align 8 + %call200.i.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %184, ptr noundef nonnull %chunk.i.i217) #10 %tobool201.not.i.i = icmp eq i32 %call200.i.i, 0 br i1 %tobool201.not.i.i, label %txp_generate_stream_related.exit, label %if.end203.i.i if.end203.i.i: ; preds = %if.end166.i.i - %238 = load i64, ptr %len1.i.i.i, align 16 - %cmp205.i.i = icmp ult i64 %238, %199 + %237 = load i64, ptr %len1.i.i.i, align 16 + %cmp205.i.i = icmp ult i64 %237, %198 %inc210.i.i = add i64 %i.1.i.i, 1 br i1 %cmp205.i.i, label %if.end158.i, label %for.cond11.i.i if.end158.thread.i: ; preds = %determine_stream_len.exit131.i.i, %if.then71.i.i, %determine_stream_len.exit.i.i, %if.end46.i.i, %if.end17.i.i, %if.end.i140.i.i, %if.then131.i.i %sub211.i116121.i = sub i64 %fc_new_hwm.0.i.i, %call.i101.i - store i64 %sub211.i116121.i, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 %sub211.i116121.i, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - br label %txp_generate_stream_related.exit.thread371 + br label %txp_generate_stream_related.exit.thread370 -if.end158.i: ; preds = %if.end203.i.i, %tx_helper_get_space_left.exit.i.i266 - %have_ack_eliciting.i.10 = phi i32 [ %have_ack_eliciting.i.8, %tx_helper_get_space_left.exit.i.i266 ], [ 1, %if.end203.i.i ] - %packet_full.2.ph.i = phi i32 [ %packet_full.0.i, %tx_helper_get_space_left.exit.i.i266 ], [ %packet_full.1.i, %if.end203.i.i ] - %fc_new_hwm.2.i.ph.i = phi i64 [ %fc_new_hwm.0.i.i, %tx_helper_get_space_left.exit.i.i266 ], [ %fc_new_hwm.1.i.i, %if.end203.i.i ] +if.end158.i: ; preds = %if.end203.i.i, %tx_helper_get_space_left.exit.i.i265 + %have_ack_eliciting.i.10 = phi i32 [ %have_ack_eliciting.i.8, %tx_helper_get_space_left.exit.i.i265 ], [ 1, %if.end203.i.i ] + %packet_full.2.ph.i = phi i32 [ %packet_full.0.i, %tx_helper_get_space_left.exit.i.i265 ], [ %packet_full.1.i, %if.end203.i.i ] + %fc_new_hwm.2.i.ph.i = phi i64 [ %fc_new_hwm.0.i.i, %tx_helper_get_space_left.exit.i.i265 ], [ %fc_new_hwm.1.i.i, %if.end203.i.i ] %sub211.i116.i = sub i64 %fc_new_hwm.2.i.ph.i, %call.i101.i - store i64 %sub211.i116.i, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 %sub211.i116.i, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - %239 = load i64, ptr %txp_txfc_new_credit_consumed.i233, align 8 - %add.i282 = add i64 %239, %conn_consumed.0161.i - %tobool160.not.i283 = icmp eq i32 %packet_full.2.ph.i, 0 - br i1 %tobool160.not.i283, label %if.end163.i251, label %txp_generate_stream_related.exit.thread371 + %238 = load i64, ptr %txp_txfc_new_credit_consumed.i232, align 8 + %add.i281 = add i64 %238, %conn_consumed.0161.i + %tobool160.not.i282 = icmp eq i32 %packet_full.2.ph.i, 0 + br i1 %tobool160.not.i282, label %if.end163.i250, label %txp_generate_stream_related.exit.thread370 -if.end163.i251: ; preds = %if.end158.i, %if.end158.thread124.i, %land.lhs.true130.i, %if.end127.i +if.end163.i250: ; preds = %if.end158.i, %if.end158.thread124.i, %land.lhs.true130.i, %if.end127.i %have_ack_eliciting.i.11 = phi i32 [ %have_ack_eliciting.i.7, %if.end127.i ], [ %have_ack_eliciting.i.7, %if.end158.thread124.i ], [ %have_ack_eliciting.i.10, %if.end158.i ], [ %have_ack_eliciting.i.7, %land.lhs.true130.i ] - %conn_consumed.1.i = phi i64 [ %conn_consumed.0161.i, %if.end127.i ], [ %add128.i, %if.end158.thread124.i ], [ %add.i282, %if.end158.i ], [ %conn_consumed.0161.i, %land.lhs.true130.i ] - %240 = load ptr, ptr %stream_head.i, align 16 - %txp_next.i107.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 3 - store ptr %240, ptr %txp_next.i107.i, align 8 - store ptr %160, ptr %stream_head.i, align 16 - %241 = load ptr, ptr %stream2.i, align 8 - %cmp.not.i252 = icmp eq ptr %241, null - br i1 %cmp.not.i252, label %txp_generate_stream_related.exit.thread366, label %for.body.i230, !llvm.loop !14 - -txp_generate_stream_related.exit.thread: ; preds = %if.then.i, %if.end21.i, %if.then36.i, %if.end49.i, %ossl_quic_stream_send_get_final_size.exit.i, %if.end65.i, %if.end69.i, %if.then106.i, %if.end118.i325, %if.then133.i253, %if.end54.i245 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) + %conn_consumed.1.i = phi i64 [ %conn_consumed.0161.i, %if.end127.i ], [ %add128.i, %if.end158.thread124.i ], [ %add.i281, %if.end158.i ], [ %conn_consumed.0161.i, %land.lhs.true130.i ] + %239 = load ptr, ptr %stream_head.i, align 16 + %txp_next.i107.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 3 + store ptr %239, ptr %txp_next.i107.i, align 8 + store ptr %159, ptr %stream_head.i, align 16 + %240 = load ptr, ptr %stream2.i, align 8 + %cmp.not.i251 = icmp eq ptr %240, null + br i1 %cmp.not.i251, label %txp_generate_stream_related.exit.thread365, label %for.body.i229, !llvm.loop !14 + +txp_generate_stream_related.exit.thread: ; preds = %if.then.i, %if.end21.i, %if.then36.i, %if.end49.i, %ossl_quic_stream_send_get_final_size.exit.i, %if.end65.i, %if.end69.i, %if.then106.i, %if.end118.i324, %if.then133.i252, %if.end54.i244 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.then337.i -txp_generate_stream_related.exit.thread366: ; preds = %if.end163.i251, %if.then255.i - %have_ack_eliciting.i.13.ph = phi i32 [ %have_ack_eliciting.i.3, %if.then255.i ], [ %have_ack_eliciting.i.11, %if.end163.i251 ] - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) +txp_generate_stream_related.exit.thread365: ; preds = %if.end163.i250, %if.then255.i + %have_ack_eliciting.i.13.ph = phi i32 [ %have_ack_eliciting.i.3, %if.then255.i ], [ %have_ack_eliciting.i.11, %if.end163.i250 ] + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.end260.i -txp_generate_stream_related.exit.thread371: ; preds = %if.end158.i, %if.then20.i, %if.end.i.i335, %if.then64.i, %if.end.i76.i, %if.then117.i, %if.end.i90.i, %if.end158.thread.i - %have_ack_eliciting.i.12.ph = phi i32 [ %have_ack_eliciting.i.4, %if.end.i.i335 ], [ %have_ack_eliciting.i.4, %if.then20.i ], [ %have_ack_eliciting.i.5, %if.end.i76.i ], [ %have_ack_eliciting.i.5, %if.then64.i ], [ %have_ack_eliciting.i.6, %if.end.i90.i ], [ %have_ack_eliciting.i.6, %if.then117.i ], [ %have_ack_eliciting.i.8, %if.end158.thread.i ], [ %have_ack_eliciting.i.10, %if.end158.i ] - %242 = load ptr, ptr %stream_head.i, align 16 - %txp_next.i.i374 = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 3 - store ptr %242, ptr %txp_next.i.i374, align 8 - store ptr %160, ptr %stream_head.i, align 16 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) +txp_generate_stream_related.exit.thread370: ; preds = %if.end158.i, %if.then20.i, %if.end.i.i334, %if.then64.i, %if.end.i76.i, %if.then117.i, %if.end.i90.i, %if.end158.thread.i + %have_ack_eliciting.i.12.ph = phi i32 [ %have_ack_eliciting.i.4, %if.end.i.i334 ], [ %have_ack_eliciting.i.4, %if.then20.i ], [ %have_ack_eliciting.i.5, %if.end.i76.i ], [ %have_ack_eliciting.i.5, %if.then64.i ], [ %have_ack_eliciting.i.6, %if.end.i90.i ], [ %have_ack_eliciting.i.6, %if.then117.i ], [ %have_ack_eliciting.i.8, %if.end158.thread.i ], [ %have_ack_eliciting.i.10, %if.end158.i ] + %241 = load ptr, ptr %stream_head.i, align 16 + %txp_next.i.i373 = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 3 + store ptr %241, ptr %txp_next.i.i373, align 8 + store ptr %159, ptr %stream_head.i, align 16 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.end260.i @@ -2931,29 +2923,29 @@ txp_generate_stream_related.exit.thread371: ; preds = %if.end158.i, %if.th txp_generate_stream_related.exit: ; preds = %lor.rhs.i.i.i, %if.end20.i.i, %lor.rhs.i111.i.i, %if.end.i134.i.i, %if.end116.i.i, %if.end132.i.i, %if.end166.i.i %fc_new_hwm.2.i.i = phi i64 [ %fc_new_hwm.0.i.i, %if.end116.i.i ], [ %fc_new_hwm.1.i.i, %if.end166.i.i ], [ %fc_new_hwm.0.i.i, %if.end132.i.i ], [ %fc_new_hwm.0.i.i, %if.end20.i.i ], [ %fc_new_hwm.0.i.i, %lor.rhs.i111.i.i ], [ %fc_new_hwm.0.i.i, %if.end.i134.i.i ], [ %call.i101.i, %lor.rhs.i.i.i ] %sub211.i.i = sub i64 %fc_new_hwm.2.i.i, %call.i101.i - store i64 %sub211.i.i, ptr %txp_txfc_new_credit_consumed.i233, align 8 + store i64 %sub211.i.i, ptr %txp_txfc_new_credit_consumed.i232, align 8 call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %chunks.i.i) - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i218) + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i.i217) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_implicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %hdr_len_explicit.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %payload_len_explicit.i.i) - %243 = load ptr, ptr %stream_head.i, align 8 - %txp_next.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %160, i64 0, i32 3 - store ptr %243, ptr %txp_next.i.i, align 8 - store ptr %160, ptr %stream_head.i, align 8 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i219) + %242 = load ptr, ptr %stream_head.i, align 8 + %txp_next.i.i = getelementptr inbounds %struct.quic_stream_st, ptr %159, i64 0, i32 3 + store ptr %242, ptr %txp_next.i.i, align 8 + store ptr %159, ptr %stream_head.i, align 8 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %it.i218) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %f.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %f37.i) br label %if.then337.i -if.end260.i: ; preds = %txp_generate_stream_related.exit.thread371, %txp_generate_stream_related.exit.thread366, %land.lhs.true249.i, %if.end244.i - %have_ack_eliciting.i.14 = phi i32 [ %have_ack_eliciting.i.3, %if.end244.i ], [ %have_ack_eliciting.i.3, %land.lhs.true249.i ], [ %have_ack_eliciting.i.13.ph, %txp_generate_stream_related.exit.thread366 ], [ %have_ack_eliciting.i.12.ph, %txp_generate_stream_related.exit.thread371 ] +if.end260.i: ; preds = %txp_generate_stream_related.exit.thread370, %txp_generate_stream_related.exit.thread365, %land.lhs.true249.i, %if.end244.i + %have_ack_eliciting.i.14 = phi i32 [ %have_ack_eliciting.i.3, %if.end244.i ], [ %have_ack_eliciting.i.3, %land.lhs.true249.i ], [ %have_ack_eliciting.i.13.ph, %txp_generate_stream_related.exit.thread365 ], [ %have_ack_eliciting.i.12.ph, %txp_generate_stream_related.exit.thread370 ] %bf.load.i228.i = load i8, ptr %reserve_allowed.i.i, align 4 %bf.set.i229.i = or i8 %bf.load.i228.i, 1 store i8 %bf.set.i229.i, ptr %reserve_allowed.i.i, align 4 - %244 = and i32 %a.sroa.0.0.copyload.i, 32768 - %tobool264.not.i = icmp eq i32 %244, 0 + %243 = and i32 %a.sroa.0.0.copyload.i, 32768 + %tobool264.not.i = icmp eq i32 %243, 0 br i1 %tobool264.not.i, label %lor.lhs.false265.i, label %land.lhs.true273.i lor.lhs.false265.i: ; preds = %if.end260.i @@ -2973,12 +2965,12 @@ land.lhs.true273.i: ; preds = %if.end260.i br i1 %tobool274.old.not.i, label %land.lhs.true275.i, label %if.then296.i land.lhs.true275.i: ; preds = %land.lhs.true273.i, %lor.lhs.false265.i - %245 = and i32 %a.sroa.0.0.copyload.i, 2 - %tobool279.not.i = icmp eq i32 %245, 0 + %244 = and i32 %a.sroa.0.0.copyload.i, 2 + %tobool279.not.i = icmp eq i32 %244, 0 br i1 %tobool279.not.i, label %if.end294.if.end297_crit_edge.i, label %if.then280.i if.then280.i: ; preds = %land.lhs.true275.i - %call282.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11349) + %call282.i = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx11348) %cmp283.i = icmp eq ptr %call282.i, null br i1 %cmp283.i, label %if.then337.i, label %if.end286.i @@ -2988,7 +2980,7 @@ if.end286.i: ; preds = %if.then280.i br i1 %tobool288.not.i, label %if.then337.i, label %lor.lhs.false289.i lor.lhs.false289.i: ; preds = %if.end286.i - %call290.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11349), !range !9 + %call290.i = call fastcc i32 @tx_helper_commit(ptr noundef nonnull %arrayidx11348), !range !9 %tobool291.not.i = icmp eq i32 %call290.i, 0 br i1 %tobool291.not.i, label %if.then337.i, label %if.then296.i @@ -2998,20 +2990,20 @@ if.end294.i: ; preds = %lor.lhs.false265.i if.end294.if.end297_crit_edge.i: ; preds = %if.end294.i, %land.lhs.true275.i %.pre.i = load i32, ptr %can_be_non_inflight.i, align 4 - %246 = icmp eq i32 %.pre.i, 0 - %247 = select i1 %246, i8 4, i8 0 + %245 = icmp eq i32 %.pre.i, 0 + %246 = select i1 %245, i8 4, i8 0 br label %if.end28 if.then296.i: ; preds = %if.end294.i, %lor.lhs.false289.i, %land.lhs.true273.i - %248 = phi i32 [ %have_ack_eliciting.i.14, %if.end294.i ], [ %have_ack_eliciting.i.14, %land.lhs.true273.i ], [ 1, %lor.lhs.false289.i ] - %249 = trunc i32 %248 to i8 - %250 = shl nuw nsw i8 %249, 3 - %251 = and i8 %250, 8 + %247 = phi i32 [ %have_ack_eliciting.i.14, %if.end294.i ], [ %have_ack_eliciting.i.14, %land.lhs.true273.i ], [ 1, %lor.lhs.false289.i ] + %248 = trunc i32 %247 to i8 + %249 = shl nuw nsw i8 %248, 3 + %250 = and i8 %249, 8 br label %if.end28 if.then337.i: ; preds = %lor.lhs.false289.i, %if.end286.i, %if.then280.i, %if.then156.i, %if.then143.i, %if.then114.i, %if.then102.i, %if.then73.i, %if.then61.i, %if.then35.i, %if.then27.i, %if.end.i.i.i, %if.end.i195.i, %txp_generate_stream_related.exit, %txp_generate_stream_related.exit.thread, %txp_generate_crypto_frames.exit.i - %252 = load ptr, ptr %txpim.i, align 8 - call void @ossl_quic_txpim_pkt_release(ptr noundef %252, ptr noundef nonnull %call13.i) #10 + %251 = load ptr, ptr %txpim.i, align 8 + call void @ossl_quic_txpim_pkt_release(ptr noundef %251, ptr noundef nonnull %call13.i) #10 store ptr null, ptr %tpkt.i, align 8 br label %txp_generate_for_el.exit.thread @@ -3020,75 +3012,75 @@ txp_generate_for_el.exit.thread: ; preds = %if.end12.i, %ossl_q br label %out if.end28: ; preds = %if.then296.i, %if.end294.if.end297_crit_edge.i - %tobool307.not.i = phi i8 [ 4, %if.then296.i ], [ %247, %if.end294.if.end297_crit_edge.i ] - %bf.value318.i = phi i8 [ %251, %if.then296.i ], [ 0, %if.end294.if.end297_crit_edge.i ] - %253 = load i64, ptr %bytes_appended.i.i, align 16 - %254 = load i64, ptr %pkt_overhead.i.i, align 8 - %add.i = add i64 %254, %253 + %tobool307.not.i = phi i8 [ 4, %if.then296.i ], [ %246, %if.end294.if.end297_crit_edge.i ] + %bf.value318.i = phi i8 [ %250, %if.then296.i ], [ 0, %if.end294.if.end297_crit_edge.i ] + %252 = load i64, ptr %bytes_appended.i.i, align 16 + %253 = load i64, ptr %pkt_overhead.i.i, align 8 + %add.i = add i64 %253, %252 %num_bytes.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %call13.i, i64 0, i32 1 store i64 %add.i, ptr %num_bytes.i, align 8 - %255 = load i64, ptr %arrayidx.i87, align 8 - store i64 %255, ptr %call13.i, align 8 + %254 = load i64, ptr %arrayidx.i87, align 8 + store i64 %254, ptr %call13.i, align 8 %pkt_space.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %call13.i, i64 0, i32 4 - %256 = trunc i32 %retval.0.i.i85 to i8 + %255 = trunc i32 %retval.0.i.i85 to i8 %bf.load304.i = load i8, ptr %pkt_space.i, align 8 %bf.clear305.i = and i8 %bf.load304.i, -64 - %bf.set306.i = or disjoint i8 %tobool307.not.i, %256 + %bf.set306.i = or disjoint i8 %tobool307.not.i, %255 %bf.set314.i = or disjoint i8 %bf.set306.i, %bf.value318.i %bf.set321.i = or disjoint i8 %bf.set314.i, %bf.clear305.i store i8 %bf.set321.i, ptr %pkt_space.i, align 8 %time.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %call13.i, i64 0, i32 2 - %257 = load ptr, ptr %now.i, align 8 - %258 = load ptr, ptr %now_arg.i, align 8 - %call334.i = call i64 %257(ptr noundef %258) #10 + %256 = load ptr, ptr %now.i, align 8 + %257 = load ptr, ptr %now_arg.i, align 8 + %call334.i = call i64 %256(ptr noundef %257) #10 store i64 %call334.i, ptr %time.i, align 8 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %can_be_non_inflight.i) - %force_pad = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10348, i32 6 - %259 = load i32, ptr %force_pad, align 8 - %tobool31.not = icmp eq i32 %259, 0 + %force_pad = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10347, i32 6 + %258 = load i32, ptr %force_pad, align 8 + %tobool31.not = icmp eq i32 %258, 0 %spec.select = select i1 %tobool31.not, i32 %need_padding.0545, i32 1 - %260 = load i64, ptr %bytes_appended.i.i, align 16 - %add = add i64 %260, %cond347 - %pkt_overhead = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10348, i32 5, i32 3 - %261 = load i64, ptr %pkt_overhead, align 8 - %add39 = add i64 %add, %261 - store i64 %add39, ptr %hwm13350, align 16 + %259 = load i64, ptr %bytes_appended.i.i, align 16 + %add = add i64 %259, %cond346 + %pkt_overhead = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom10347, i32 5, i32 3 + %260 = load i64, ptr %pkt_overhead, align 8 + %add39 = add i64 %add, %260 + store i64 %add39, ptr %hwm13349, align 16 br label %for.inc44 for.inc44: ; preds = %txp_should_try_staging.exit, %if.end28 - %conn_close_enc_level.2355 = phi i32 [ %spec.select402, %if.end28 ], [ %conn_close_enc_level.2, %txp_should_try_staging.exit ] + %conn_close_enc_level.2354 = phi i32 [ %spec.select401, %if.end28 ], [ %conn_close_enc_level.2, %txp_should_try_staging.exit ] %need_padding.2 = phi i32 [ %spec.select, %if.end28 ], [ %need_padding.0545, %txp_should_try_staging.exit ] - %indvars.iv.next671 = add nuw nsw i64 %indvars.iv670, 1 - %exitcond674.not = icmp eq i64 %indvars.iv.next671, 4 - br i1 %exitcond674.not, label %for.end46, label %for.body6, !llvm.loop !15 + %indvars.iv.next672 = add nuw nsw i64 %indvars.iv671, 1 + %exitcond675.not = icmp eq i64 %indvars.iv.next672, 4 + br i1 %exitcond675.not, label %for.end46, label %for.body6, !llvm.loop !15 for.end46: ; preds = %if.then14.i.i, %if.end.i, %if.end27.i.i, %for.inc44, %txp_determine_ppl_from_pl.exit.thread.i.i %need_padding.0516 = phi i32 [ %need_padding.0545, %txp_determine_ppl_from_pl.exit.thread.i.i ], [ %need_padding.2, %for.inc44 ], [ %need_padding.0545, %if.end27.i.i ], [ %need_padding.0545, %if.end.i ], [ %need_padding.0545, %if.then14.i.i ] %h_valid48 = getelementptr inbounds %struct.txp_pkt, ptr %pkt, i64 0, i32 1 - %262 = load i32, ptr %h_valid48, align 16 - %tobool49 = icmp eq i32 %262, 0 + %261 = load i32, ptr %h_valid48, align 16 + %tobool49 = icmp eq i32 %261, 0 %bytes_appended52 = getelementptr inbounds %struct.tx_helper, ptr %pkt, i64 0, i32 2 - %263 = load i64, ptr %bytes_appended52, align 16 - %cmp53 = icmp eq i64 %263, 0 + %262 = load i64, ptr %bytes_appended52, align 16 + %cmp53 = icmp eq i64 %262, 0 %or.cond.not = select i1 %tobool49, i1 true, i1 %cmp53 - %tobool57.not404 = icmp eq i32 %need_padding.0516, 0 - %tobool57.not = select i1 %or.cond.not, i1 %tobool57.not404, i1 false + %tobool57.not403 = icmp eq i32 %need_padding.0516, 0 + %tobool57.not = select i1 %or.cond.not, i1 %tobool57.not403, i1 false br i1 %tobool57.not, label %if.end132, label %for.body62 for.body62: ; preds = %for.end46, %for.inc106 - %indvars.iv675 = phi i64 [ %indvars.iv.next676, %for.inc106 ], [ 0, %for.end46 ] + %indvars.iv676 = phi i64 [ %indvars.iv.next677, %for.inc106 ], [ 0, %for.end46 ] %pad_el.0552 = phi i32 [ %pad_el.2, %for.inc106 ], [ 4, %for.end46 ] %total_dgram_size.0551 = phi i64 [ %total_dgram_size.1, %for.inc106 ], [ 0, %for.end46 ] - %arrayidx64 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675 - %h_valid65 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 1 - %264 = load i32, ptr %h_valid65, align 16 - %tobool66.not = icmp eq i32 %264, 0 + %arrayidx64 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676 + %h_valid65 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 1 + %263 = load i32, ptr %h_valid65, align 16 + %tobool66.not = icmp eq i32 %263, 0 br i1 %tobool66.not, label %for.inc106, label %land.lhs.true67 land.lhs.true67: ; preds = %for.body62 %bytes_appended71 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx64, i64 0, i32 2 - %265 = load i64, ptr %bytes_appended71, align 16 - %cmp72.not = icmp eq i64 %265, 0 + %264 = load i64, ptr %bytes_appended71, align 16 + %cmp72.not = icmp eq i64 %264, 0 br i1 %cmp72.not, label %for.inc106, label %if.then74 if.then74: ; preds = %land.lhs.true67 @@ -3096,72 +3088,72 @@ if.then74: ; preds = %land.lhs.true67 br i1 %cmp75, label %land.lhs.true77, label %if.end91 land.lhs.true77: ; preds = %if.then74 - %adata = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 5, i32 5 + %adata = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 5, i32 5 %bf.load = load i32, ptr %adata, align 4 - %266 = and i32 %bf.load, 16384 - %tobool81.not = icmp eq i32 %266, 0 + %265 = and i32 %bf.load, 16384 + %tobool81.not = icmp eq i32 %265, 0 br i1 %tobool81.not, label %if.end91, label %land.lhs.true82 land.lhs.true82: ; preds = %land.lhs.true77 %done_implicit = getelementptr inbounds %struct.tx_helper, ptr %arrayidx64, i64 0, i32 7 %bf.load86 = load i8, ptr %done_implicit, align 4 - %267 = and i8 %bf.load86, 2 - %tobool89.not = icmp eq i8 %267, 0 - %268 = trunc i64 %indvars.iv675 to i32 - %spec.select73 = select i1 %tobool89.not, i32 %268, i32 4 + %266 = and i8 %bf.load86, 2 + %tobool89.not = icmp eq i8 %266, 0 + %267 = trunc i64 %indvars.iv676 to i32 + %spec.select73 = select i1 %tobool89.not, i32 %267, i32 4 br label %if.end91 if.end91: ; preds = %land.lhs.true82, %land.lhs.true77, %if.then74 %pad_el.1 = phi i32 [ 4, %land.lhs.true77 ], [ %pad_el.0552, %if.then74 ], [ %spec.select73, %land.lhs.true82 ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %ciphertext_len.i) %enc_level.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx64, i64 0, i32 6 - %269 = load i32, ptr %enc_level.i, align 16 - %cmp.i134 = icmp eq i32 %269, 0 - br i1 %cmp.i134, label %txp_pkt_postgen_update_pkt_overhead.exit, label %if.end.i135 - -if.end.i135: ; preds = %if.end91 - %270 = load ptr, ptr %qtx, align 8 - %call.i138 = call i32 @ossl_qtx_calculate_ciphertext_payload_len(ptr noundef %270, i32 noundef %269, i64 noundef %265, ptr noundef nonnull %ciphertext_len.i) #10 - %tobool.not.i139 = icmp eq i32 %call.i138, 0 - br i1 %tobool.not.i139, label %if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, label %if.end5.i140 - -if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge: ; preds = %if.end.i135 - %.pre687 = load i64, ptr %bytes_appended71, align 16 + %268 = load i32, ptr %enc_level.i, align 16 + %cmp.i133 = icmp eq i32 %268, 0 + br i1 %cmp.i133, label %txp_pkt_postgen_update_pkt_overhead.exit, label %if.end.i134 + +if.end.i134: ; preds = %if.end91 + %269 = load ptr, ptr %qtx, align 8 + %call.i137 = call i32 @ossl_qtx_calculate_ciphertext_payload_len(ptr noundef %269, i32 noundef %268, i64 noundef %264, ptr noundef nonnull %ciphertext_len.i) #10 + %tobool.not.i138 = icmp eq i32 %call.i137, 0 + br i1 %tobool.not.i138, label %if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, label %if.end5.i139 + +if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge: ; preds = %if.end.i134 + %.pre688 = load i64, ptr %bytes_appended71, align 16 br label %txp_pkt_postgen_update_pkt_overhead.exit -if.end5.i140: ; preds = %if.end.i135 - %271 = load i64, ptr %ciphertext_len.i, align 8 - %phdr.i141 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 4 - %len.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 4, i32 7 - store i64 %271, ptr %len.i, align 16 - %dst_conn_id.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 4, i32 2 - %272 = load i8, ptr %dst_conn_id.i, align 16 - %conv.i142 = zext i8 %272 to i64 - %call8.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv.i142, ptr noundef nonnull %phdr.i141) #10 +if.end5.i139: ; preds = %if.end.i134 + %270 = load i64, ptr %ciphertext_len.i, align 8 + %phdr.i140 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 4 + %len.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 4, i32 7 + store i64 %270, ptr %len.i, align 16 + %dst_conn_id.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 4, i32 2 + %271 = load i8, ptr %dst_conn_id.i, align 16 + %conv.i141 = zext i8 %271 to i64 + %call8.i = call i32 @ossl_quic_wire_get_encoded_pkt_hdr_len(i64 noundef %conv.i141, ptr noundef nonnull %phdr.i140) #10 %conv9.i = sext i32 %call8.i to i64 - %273 = load i64, ptr %ciphertext_len.i, align 8 - %add.i143 = add i64 %273, %conv9.i - %274 = load i64, ptr %bytes_appended71, align 16 - %sub.i = sub i64 %add.i143, %274 - %pkt_overhead.i144 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 5, i32 3 - store i64 %sub.i, ptr %pkt_overhead.i144, align 8 + %272 = load i64, ptr %ciphertext_len.i, align 8 + %add.i142 = add i64 %272, %conv9.i + %273 = load i64, ptr %bytes_appended71, align 16 + %sub.i = sub i64 %add.i142, %273 + %pkt_overhead.i143 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 5, i32 3 + store i64 %sub.i, ptr %pkt_overhead.i143, align 8 br label %txp_pkt_postgen_update_pkt_overhead.exit -txp_pkt_postgen_update_pkt_overhead.exit: ; preds = %if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, %if.end91, %if.end5.i140 - %275 = phi i64 [ %.pre687, %if.end.i135.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge ], [ %265, %if.end91 ], [ %274, %if.end5.i140 ] +txp_pkt_postgen_update_pkt_overhead.exit: ; preds = %if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge, %if.end91, %if.end5.i139 + %274 = phi i64 [ %.pre688, %if.end.i134.txp_pkt_postgen_update_pkt_overhead.exit_crit_edge ], [ %264, %if.end91 ], [ %273, %if.end5.i139 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ciphertext_len.i) - %pkt_overhead98 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv675, i32 5, i32 3 - %276 = load i64, ptr %pkt_overhead98, align 8 - %add103 = add i64 %276, %total_dgram_size.0551 - %add104 = add i64 %add103, %275 + %pkt_overhead98 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv676, i32 5, i32 3 + %275 = load i64, ptr %pkt_overhead98, align 8 + %add103 = add i64 %275, %total_dgram_size.0551 + %add104 = add i64 %add103, %274 br label %for.inc106 for.inc106: ; preds = %for.body62, %land.lhs.true67, %txp_pkt_postgen_update_pkt_overhead.exit %total_dgram_size.1 = phi i64 [ %add104, %txp_pkt_postgen_update_pkt_overhead.exit ], [ %total_dgram_size.0551, %land.lhs.true67 ], [ %total_dgram_size.0551, %for.body62 ] %pad_el.2 = phi i32 [ %pad_el.1, %txp_pkt_postgen_update_pkt_overhead.exit ], [ %pad_el.0552, %land.lhs.true67 ], [ %pad_el.0552, %for.body62 ] - %indvars.iv.next676 = add nuw nsw i64 %indvars.iv675, 1 - %exitcond678.not = icmp eq i64 %indvars.iv.next676, 4 - br i1 %exitcond678.not, label %for.end108, label %for.body62, !llvm.loop !16 + %indvars.iv.next677 = add nuw nsw i64 %indvars.iv676, 1 + %exitcond679.not = icmp eq i64 %indvars.iv.next677, 4 + br i1 %exitcond679.not, label %for.end108, label %for.body62, !llvm.loop !16 for.end108: ; preds = %for.inc106 %cmp109 = icmp ne i32 %pad_el.2, 4 @@ -3173,42 +3165,42 @@ if.then114: ; preds = %for.end108 %sub115 = sub nuw nsw i64 1200, %total_dgram_size.1 %idxprom116 = zext nneg i32 %pad_el.2 to i64 %arrayidx117 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116 - %h_valid.i146 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 1 - %277 = load i32, ptr %h_valid.i146, align 16 - %cmp1.not.i147 = icmp eq i32 %277, 0 - br i1 %cmp1.not.i147, label %out, label %if.end4.i + %h_valid.i145 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 1 + %276 = load i32, ptr %h_valid.i145, align 16 + %cmp1.not.i146 = icmp eq i32 %276, 0 + br i1 %cmp1.not.i146, label %out, label %if.end4.i if.end4.i: ; preds = %if.then114 - %tpkt.i148 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 2 - %278 = load ptr, ptr %tpkt.i148, align 8 - %cmp5.not.i = icmp eq ptr %278, null + %tpkt.i147 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom116, i32 2 + %277 = load ptr, ptr %tpkt.i147, align 8 + %cmp5.not.i = icmp eq ptr %277, null br i1 %cmp5.not.i, label %out, label %if.end16.i if.end16.i: ; preds = %if.end4.i - %call.i149 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx117) - %cmp17.i = icmp eq ptr %call.i149, null + %call.i148 = call fastcc ptr @tx_helper_begin(ptr noundef nonnull %arrayidx117) + %cmp17.i = icmp eq ptr %call.i148, null br i1 %cmp17.i, label %out, label %if.end20.i if.end20.i: ; preds = %if.end16.i - %call21.i = call i32 @ossl_quic_wire_encode_padding(ptr noundef nonnull %call.i149, i64 noundef %sub115) #10 - %tobool22.not.i150 = icmp eq i32 %call21.i, 0 - br i1 %tobool22.not.i150, label %if.then23.i, label %if.end25.i + %call21.i = call i32 @ossl_quic_wire_encode_padding(ptr noundef nonnull %call.i148, i64 noundef %sub115) #10 + %tobool22.not.i149 = icmp eq i32 %call21.i, 0 + br i1 %tobool22.not.i149, label %if.then23.i, label %if.end25.i if.then23.i: ; preds = %if.end20.i - %active.i.i155 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 2 - %bf.load.i.i156 = load i8, ptr %active.i.i155, align 8 - %bf.clear.i.i157 = and i8 %bf.load.i.i156, 1 - %tobool.not.i.i158 = icmp eq i8 %bf.clear.i.i157, 0 - br i1 %tobool.not.i.i158, label %out, label %if.end.i.i159 - -if.end.i.i159: ; preds = %if.then23.i - %wpkt2.i.i.i160 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i160) #10 - %txn3.i.i.i161 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8 - %bf.load.i.i.i162 = load i8, ptr %active.i.i155, align 8 - %bf.clear.i.i.i163 = and i8 %bf.load.i.i.i162, -2 - store i8 %bf.clear.i.i.i163, ptr %active.i.i155, align 8 - store ptr null, ptr %txn3.i.i.i161, align 8 + %active.i.i154 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 2 + %bf.load.i.i155 = load i8, ptr %active.i.i154, align 8 + %bf.clear.i.i156 = and i8 %bf.load.i.i155, 1 + %tobool.not.i.i157 = icmp eq i8 %bf.clear.i.i156, 0 + br i1 %tobool.not.i.i157, label %out, label %if.end.i.i158 + +if.end.i.i158: ; preds = %if.then23.i + %wpkt2.i.i.i159 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i159) #10 + %txn3.i.i.i160 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx117, i64 0, i32 8 + %bf.load.i.i.i161 = load i8, ptr %active.i.i154, align 8 + %bf.clear.i.i.i162 = and i8 %bf.load.i.i.i161, -2 + store i8 %bf.clear.i.i.i162, ptr %active.i.i154, align 8 + store ptr null, ptr %txn3.i.i.i160, align 8 br label %out if.end25.i: ; preds = %if.end20.i @@ -3217,18 +3209,18 @@ if.end25.i: ; preds = %if.end20.i br i1 %tobool28.not.i, label %out, label %if.end127.thread if.end127.thread: ; preds = %if.end25.i - %279 = load ptr, ptr %tpkt.i148, align 8 - %num_bytes32.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %279, i64 0, i32 1 - %280 = load i64, ptr %num_bytes32.i, align 8 - %add.i151 = add i64 %280, %sub115 - store i64 %add.i151, ptr %num_bytes32.i, align 8 - %281 = load ptr, ptr %tpkt.i148, align 8 - %is_inflight.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %281, i64 0, i32 4 - %bf.load.i152 = load i8, ptr %is_inflight.i, align 8 - %bf.set.i153 = or i8 %bf.load.i152, 4 - store i8 %bf.set.i153, ptr %is_inflight.i, align 8 - %282 = load ptr, ptr %tpkt.i148, align 8 - %is_inflight = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %282, i64 0, i32 4 + %278 = load ptr, ptr %tpkt.i147, align 8 + %num_bytes32.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %278, i64 0, i32 1 + %279 = load i64, ptr %num_bytes32.i, align 8 + %add.i150 = add i64 %279, %sub115 + store i64 %add.i150, ptr %num_bytes32.i, align 8 + %280 = load ptr, ptr %tpkt.i147, align 8 + %is_inflight.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %280, i64 0, i32 4 + %bf.load.i151 = load i8, ptr %is_inflight.i, align 8 + %bf.set.i152 = or i8 %bf.load.i151, 4 + store i8 %bf.set.i152, ptr %is_inflight.i, align 8 + %281 = load ptr, ptr %tpkt.i147, align 8 + %is_inflight = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %281, i64 0, i32 4 %bf.load125 = load i8, ptr %is_inflight, align 8 %bf.set = or i8 %bf.load125, 4 store i8 %bf.set, ptr %is_inflight, align 8 @@ -3253,108 +3245,108 @@ if.end132: ; preds = %if.end127.thread, % br label %for.body136 for.body136: ; preds = %if.end132, %for.inc192 - %indvars.iv679 = phi i64 [ 0, %if.end132 ], [ %indvars.iv.next680, %for.inc192 ] + %indvars.iv680 = phi i64 [ 0, %if.end132 ], [ %indvars.iv.next681, %for.inc192 ] %pkts_done.0553 = phi i64 [ 0, %if.end132 ], [ %pkts_done.1, %for.inc192 ] - %arrayidx138 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679 - %h_valid139 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 1 - %283 = load i32, ptr %h_valid139, align 16 - %tobool140.not = icmp eq i32 %283, 0 + %arrayidx138 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680 + %h_valid139 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 1 + %282 = load i32, ptr %h_valid139, align 16 + %tobool140.not = icmp eq i32 %282, 0 br i1 %tobool140.not, label %for.inc192, label %if.end142 if.end142: ; preds = %for.body136 %bytes_appended146 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 2 - %284 = load i64, ptr %bytes_appended146, align 16 - %cmp147 = icmp eq i64 %284, 0 + %283 = load i64, ptr %bytes_appended146, align 16 + %cmp147 = icmp eq i64 %283, 0 br i1 %cmp147, label %for.inc192, label %if.end150 if.end150: ; preds = %if.end142 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %txpkt.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %chunk.i) - %enc_level1.i164 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 6 - %285 = load i32, ptr %enc_level1.i164, align 16 - %286 = icmp ult i32 %285, 4 - br i1 %286, label %switch.lookup923, label %if.end187.thread - -switch.lookup923: ; preds = %if.end150 - %287 = zext nneg i32 %285 to i64 - %switch.gep924 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %287 - %switch.load925 = load i32, ptr %switch.gep924, align 4 - %tpkt2.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 2 - %288 = load ptr, ptr %tpkt2.i, align 8 - %idxprom.i.i170 = zext nneg i32 %285 to i64 - %arrayidx3.i.i172 = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom.i.i170, i64 %idxprom2.i.i - %289 = load i32, ptr %arrayidx3.i.i172, align 4 - %phdr.i173 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 4 - store ptr %phdr.i173, ptr %txpkt.i, align 8 - %iovec.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i170, i32 2 - %290 = load ptr, ptr %iovec.i, align 8 - store ptr %290, ptr %iovec7.i, align 8 + %enc_level1.i163 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 6 + %284 = load i32, ptr %enc_level1.i163, align 16 + %285 = icmp ult i32 %284, 4 + br i1 %285, label %switch.lookup925, label %if.end187.thread + +switch.lookup925: ; preds = %if.end150 + %286 = zext nneg i32 %284 to i64 + %switch.gep926 = getelementptr inbounds [4 x i32], ptr @switch.table.ossl_quic_tx_packetiser_get_deadline, i64 0, i64 %286 + %switch.load927 = load i32, ptr %switch.gep926, align 4 + %tpkt2.i = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 2 + %287 = load ptr, ptr %tpkt2.i, align 8 + %idxprom.i.i169 = zext nneg i32 %284 to i64 + %arrayidx3.i.i171 = getelementptr inbounds [4 x [3 x %struct.archetype_data]], ptr @archetypes, i64 0, i64 %idxprom.i.i169, i64 %idxprom2.i.i + %288 = load i32, ptr %arrayidx3.i.i171, align 4 + %phdr.i172 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 4 + store ptr %phdr.i172, ptr %txpkt.i, align 8 + %iovec.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 12, i64 %idxprom.i.i169, i32 2 + %289 = load ptr, ptr %iovec.i, align 8 + store ptr %289, ptr %iovec7.i, align 8 %num_iovec.i = getelementptr inbounds %struct.tx_helper, ptr %arrayidx138, i64 0, i32 5 - %291 = load i64, ptr %num_iovec.i, align 8 - store i64 %291, ptr %num_iovec9.i, align 8 + %290 = load i64, ptr %num_iovec.i, align 8 + store i64 %290, ptr %num_iovec9.i, align 8 store ptr null, ptr %local.i, align 8 %call10.i = call i32 @BIO_ADDR_family(ptr noundef nonnull %peer.i) #10 %cmp11.i = icmp eq i32 %call10.i, 0 - %cond.i174 = select i1 %cmp11.i, ptr null, ptr %peer.i - store ptr %cond.i174, ptr %peer14.i, align 8 - %idxprom15.i = zext nneg i32 %switch.load925 to i64 + %cond.i173 = select i1 %cmp11.i, ptr null, ptr %peer.i + store ptr %cond.i173, ptr %peer14.i, align 8 + %idxprom15.i = zext nneg i32 %switch.load927 to i64 %arrayidx16.i = getelementptr inbounds %struct.ossl_quic_tx_packetiser_st, ptr %txp, i64 0, i32 6, i64 %idxprom15.i - %292 = load i64, ptr %arrayidx16.i, align 8 - store i64 %292, ptr %pn.i, align 8 + %291 = load i64, ptr %arrayidx16.i, align 8 + store i64 %291, ptr %pn.i, align 8 store i32 1, ptr %flags.i, align 8 - %stream_head.i175 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv679, i32 3 - %stream.084.i = load ptr, ptr %stream_head.i175, align 16 + %stream_head.i174 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv680, i32 3 + %stream.084.i = load ptr, ptr %stream_head.i174, align 16 %cmp17.not85.i = icmp eq ptr %stream.084.i, null - br i1 %cmp17.not85.i, label %for.end.i182, label %for.body.i177 + br i1 %cmp17.not85.i, label %for.end.i181, label %for.body.i176 -for.body.i177: ; preds = %switch.lookup923, %for.inc.i181 - %stream.086.i = phi ptr [ %stream.0.i, %for.inc.i181 ], [ %stream.084.i, %switch.lookup923 ] +for.body.i176: ; preds = %switch.lookup925, %for.inc.i180 + %stream.086.i = phi ptr [ %stream.0.i, %for.inc.i180 ], [ %stream.084.i, %switch.lookup925 ] %txp_sent_stop_sending.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.086.i, i64 0, i32 15 - %bf.load.i178 = load i64, ptr %txp_sent_stop_sending.i, align 8 - %293 = and i64 %bf.load.i178, 1610612736 - %or.cond.i179 = icmp eq i64 %293, 0 - br i1 %or.cond.i179, label %for.inc.i181, label %if.then24.i + %bf.load.i177 = load i64, ptr %txp_sent_stop_sending.i, align 8 + %292 = and i64 %bf.load.i177, 1610612736 + %or.cond.i178 = icmp eq i64 %292, 0 + br i1 %or.cond.i178, label %for.inc.i180, label %if.then24.i -if.then24.i: ; preds = %for.body.i177 +if.then24.i: ; preds = %for.body.i176 %id.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.086.i, i64 0, i32 4 - %294 = load i64, ptr %id.i, align 8 - store i64 %294, ptr %chunk.i, align 8 + %293 = load i64, ptr %id.i, align 8 + store i64 %293, ptr %chunk.i, align 8 store i64 -1, ptr %start.i, align 8 store i64 0, ptr %end.i, align 8 %bf.load25.i = load i8, ptr %has_fin.i, align 8 - %295 = trunc i64 %bf.load.i178 to i32 - %sh.diff.i = lshr i32 %295, 28 + %294 = trunc i64 %bf.load.i177 to i32 + %sh.diff.i = lshr i32 %294, 28 %tr.sh.diff.i = trunc i32 %sh.diff.i to i8 %bf.clear33.i = and i8 %bf.load25.i, -8 - %296 = and i8 %tr.sh.diff.i, 6 - %bf.set44.i = or disjoint i8 %bf.clear33.i, %296 + %295 = and i8 %tr.sh.diff.i, 6 + %bf.set44.i = or disjoint i8 %bf.clear33.i, %295 store i8 %bf.set44.i, ptr %has_fin.i, align 8 - %call46.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %288, ptr noundef nonnull %chunk.i) #10 - %tobool47.not.i180 = icmp eq i32 %call46.i, 0 - br i1 %tobool47.not.i180, label %if.end187.thread, label %for.inc.i181 + %call46.i = call i32 @ossl_quic_txpim_pkt_append_chunk(ptr noundef %287, ptr noundef nonnull %chunk.i) #10 + %tobool47.not.i179 = icmp eq i32 %call46.i, 0 + br i1 %tobool47.not.i179, label %if.end187.thread, label %for.inc.i180 -for.inc.i181: ; preds = %if.then24.i, %for.body.i177 +for.inc.i180: ; preds = %if.then24.i, %for.body.i176 %txp_next.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.086.i, i64 0, i32 3 %stream.0.i = load ptr, ptr %txp_next.i, align 8 %cmp17.not.i = icmp eq ptr %stream.0.i, null - br i1 %cmp17.not.i, label %for.end.i182, label %for.body.i177, !llvm.loop !17 + br i1 %cmp17.not.i, label %for.end.i181, label %for.body.i176, !llvm.loop !17 -for.end.i182: ; preds = %for.inc.i181, %switch.lookup923 - %call51.i = call i32 @ossl_quic_fifd_pkt_commit(ptr noundef nonnull %fifd.i, ptr noundef %288) #10 +for.end.i181: ; preds = %for.inc.i180, %switch.lookup925 + %call51.i = call i32 @ossl_quic_fifd_pkt_commit(ptr noundef nonnull %fifd.i, ptr noundef %287) #10 %tobool52.not.i = icmp eq i32 %call51.i, 0 br i1 %tobool52.not.i, label %if.end187.thread, label %if.end54.i -if.end54.i: ; preds = %for.end.i182 - %297 = load i64, ptr %arrayidx16.i, align 8 - %inc.i = add i64 %297, 1 +if.end54.i: ; preds = %for.end.i181 + %296 = load i64, ptr %arrayidx16.i, align 8 + %inc.i = add i64 %296, 1 store i64 %inc.i, ptr %arrayidx16.i, align 8 - %298 = load ptr, ptr %qtx, align 8 - %call59.i = call i32 @ossl_qtx_write_pkt(ptr noundef %298, ptr noundef nonnull %txpkt.i) #10 + %297 = load ptr, ptr %qtx, align 8 + %call59.i = call i32 @ossl_qtx_write_pkt(ptr noundef %297, ptr noundef nonnull %txpkt.i) #10 %tobool60.not.i = icmp eq i32 %call59.i, 0 - br i1 %tobool60.not.i, label %if.end187.thread397, label %for.cond64.preheader.i + br i1 %tobool60.not.i, label %if.end187.thread396, label %for.cond64.preheader.i for.cond64.preheader.i: ; preds = %if.end54.i - %stream.187.i = load ptr, ptr %stream_head.i175, align 16 + %stream.187.i = load ptr, ptr %stream_head.i174, align 16 %cmp65.not88.i = icmp eq ptr %stream.187.i, null br i1 %cmp65.not88.i, label %for.end127.i, label %for.body66.i @@ -3363,8 +3355,8 @@ for.body66.i: ; preds = %for.cond64.preheade %rc.089.i = phi i32 [ %rc.2.i, %for.inc125.i ], [ 1, %for.cond64.preheader.i ] %txp_sent_fc.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 15 %bf.load67.i = load i64, ptr %txp_sent_fc.i, align 8 - %299 = and i64 %bf.load67.i, 268435456 - %tobool71.not.i = icmp eq i64 %299, 0 + %298 = and i64 %bf.load67.i, 268435456 + %tobool71.not.i = icmp eq i64 %298, 0 br i1 %tobool71.not.i, label %if.end77.i, label %if.then72.i if.then72.i: ; preds = %for.body66.i @@ -3377,66 +3369,66 @@ if.then72.i: ; preds = %for.body66.i if.end77.i: ; preds = %if.then72.i, %for.body66.i %bf.load79.i = phi i64 [ %bf.load79.pre.i, %if.then72.i ], [ %bf.load67.i, %for.body66.i ] - %300 = and i64 %bf.load79.i, 536870912 - %tobool83.not.not.i = icmp eq i64 %300, 0 + %299 = and i64 %bf.load79.i, 536870912 + %tobool83.not.not.i = icmp eq i64 %299, 0 %bf.clear86.i = and i64 %bf.load79.i, -17179869185 %bf.load90.i = select i1 %tobool83.not.not.i, i64 %bf.load79.i, i64 %bf.clear86.i - %301 = and i64 %bf.load90.i, 1073741824 - %302 = or disjoint i64 %301, %300 - %.not.i = icmp eq i64 %302, 0 - br i1 %.not.i, label %304, label %303 + %300 = and i64 %bf.load90.i, 1073741824 + %301 = or disjoint i64 %300, %299 + %.not.i = icmp eq i64 %301, 0 + br i1 %.not.i, label %303, label %302 -303: ; preds = %if.end77.i - %tobool94.not.not.i = icmp eq i64 %301, 0 +302: ; preds = %if.end77.i + %tobool94.not.not.i = icmp eq i64 %300, 0 %bf.clear97.i = and i64 %bf.load90.i, -34359738369 %simplifycfg.merge.i = select i1 %tobool94.not.not.i, i64 %bf.load90.i, i64 %bf.clear97.i store i64 %simplifycfg.merge.i, ptr %txp_sent_fc.i, align 8 - br label %304 + br label %303 -304: ; preds = %303, %if.end77.i +303: ; preds = %302, %if.end77.i %txp_txfc_new_credit_consumed.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 9 - %305 = load i64, ptr %txp_txfc_new_credit_consumed.i, align 8 - %cmp100.not.i = icmp eq i64 %305, 0 + %304 = load i64, ptr %txp_txfc_new_credit_consumed.i, align 8 + %cmp100.not.i = icmp eq i64 %304, 0 br i1 %cmp100.not.i, label %if.end110.i, label %if.then101.i -if.then101.i: ; preds = %304 +if.then101.i: ; preds = %303 %txfc.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 13 - %call103.i = call i32 @ossl_quic_txfc_consume_credit(ptr noundef nonnull %txfc.i, i64 noundef %305) #10 + %call103.i = call i32 @ossl_quic_txfc_consume_credit(ptr noundef nonnull %txfc.i, i64 noundef %304) #10 %cmp104.not.i = icmp eq i32 %call103.i, 0 %spec.select.i = select i1 %cmp104.not.i, i32 0, i32 %rc.089.i store i64 0, ptr %txp_txfc_new_credit_consumed.i, align 8 br label %if.end110.i -if.end110.i: ; preds = %if.then101.i, %304 - %rc.2.i = phi i32 [ %spec.select.i, %if.then101.i ], [ %rc.089.i, %304 ] - %306 = load ptr, ptr %qsm.i, align 8 - call void @ossl_quic_stream_map_update_state(ptr noundef %306, ptr noundef nonnull %stream.190.i) #10 +if.end110.i: ; preds = %if.then101.i, %303 + %rc.2.i = phi i32 [ %spec.select.i, %if.then101.i ], [ %rc.089.i, %303 ] + %305 = load ptr, ptr %qsm.i, align 8 + call void @ossl_quic_stream_map_update_state(ptr noundef %305, ptr noundef nonnull %stream.190.i) #10 %stream.1.val.i = load i64, ptr %txp_sent_fc.i, align 8 - %307 = lshr i64 %stream.1.val.i, 8 - %trunc.i.i = trunc i64 %307 to i8 - %308 = add i8 %trunc.i.i, -4 - %switch.i.i = icmp ult i8 %308, -3 - br i1 %switch.i.i, label %for.inc125.i, label %land.lhs.true.i185 + %306 = lshr i64 %stream.1.val.i, 8 + %trunc.i.i = trunc i64 %306 to i8 + %307 = add i8 %trunc.i.i, -4 + %switch.i.i = icmp ult i8 %307, -3 + br i1 %switch.i.i, label %for.inc125.i, label %land.lhs.true.i184 -land.lhs.true.i185: ; preds = %if.end110.i +land.lhs.true.i184: ; preds = %if.end110.i %sstream.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 11 - %309 = load ptr, ptr %sstream.i, align 8 - %call114.i = call i32 @ossl_quic_sstream_has_pending(ptr noundef %309) #10 + %308 = load ptr, ptr %sstream.i, align 8 + %call114.i = call i32 @ossl_quic_sstream_has_pending(ptr noundef %308) #10 %tobool115.not.i = icmp eq i32 %call114.i, 0 br i1 %tobool115.not.i, label %land.lhs.true116.i, label %for.inc125.i -land.lhs.true116.i: ; preds = %land.lhs.true.i185 - %310 = load ptr, ptr %sstream.i, align 8 - %call118.i200 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %310, ptr noundef null) #10 - %tobool119.not.i201 = icmp eq i32 %call118.i200, 0 - br i1 %tobool119.not.i201, label %for.inc125.i, label %if.then120.i +land.lhs.true116.i: ; preds = %land.lhs.true.i184 + %309 = load ptr, ptr %sstream.i, align 8 + %call118.i199 = call i32 @ossl_quic_sstream_get_final_size(ptr noundef %309, ptr noundef null) #10 + %tobool119.not.i200 = icmp eq i32 %call118.i199, 0 + br i1 %tobool119.not.i200, label %for.inc125.i, label %if.then120.i if.then120.i: ; preds = %land.lhs.true116.i - %311 = load ptr, ptr %qsm.i, align 8 - %call123.i = call i32 @ossl_quic_stream_map_notify_all_data_sent(ptr noundef %311, ptr noundef nonnull %stream.190.i) #10 + %310 = load ptr, ptr %qsm.i, align 8 + %call123.i = call i32 @ossl_quic_stream_map_notify_all_data_sent(ptr noundef %310, ptr noundef nonnull %stream.190.i) #10 br label %for.inc125.i -for.inc125.i: ; preds = %if.then120.i, %land.lhs.true116.i, %land.lhs.true.i185, %if.end110.i +for.inc125.i: ; preds = %if.then120.i, %land.lhs.true116.i, %land.lhs.true.i184, %if.end110.i %txp_next126.i = getelementptr inbounds %struct.quic_stream_st, ptr %stream.190.i, i64 0, i32 3 %stream.1.i = load ptr, ptr %txp_next126.i, align 8 %cmp65.not.i = icmp eq ptr %stream.1.i, null @@ -3444,26 +3436,26 @@ for.inc125.i: ; preds = %if.then120.i, %land for.end127.i: ; preds = %for.inc125.i, %for.cond64.preheader.i %rc.0.lcssa.i = phi i32 [ 1, %for.cond64.preheader.i ], [ %rc.2.i, %for.inc125.i ] - %is_ack_eliciting.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %288, i64 0, i32 4 + %is_ack_eliciting.i = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %287, i64 0, i32 4 %bf.load128.i = load i8, ptr %is_ack_eliciting.i, align 8 - %312 = and i8 %bf.load128.i, 8 - %tobool132.not.i = icmp eq i8 %312, 0 + %311 = and i8 %bf.load128.i, 8 + %tobool132.not.i = icmp eq i8 %311, 0 br i1 %tobool132.not.i, label %if.end146.i, label %if.then133.i if.then133.i: ; preds = %for.end127.i - %shl.i186 = shl nuw nsw i32 1, %switch.load925 + %shl.i185 = shl nuw nsw i32 1, %switch.load927 %bf.load134.i = load i16, ptr %want_ack.i, align 8 - %313 = trunc i32 %shl.i186 to i16 - %314 = xor i16 %313, -1 - %315 = shl nsw i16 %314, 7 - %bf.shl14291.i = or i16 %315, -897 + %312 = trunc i32 %shl.i185 to i16 + %313 = xor i16 %312, -1 + %314 = shl nsw i16 %313, 7 + %bf.shl14291.i = or i16 %314, -897 %bf.set144.i = and i16 %bf.load134.i, %bf.shl14291.i store i16 %bf.set144.i, ptr %want_ack.i, align 8 br label %if.end146.i if.end146.i: ; preds = %if.then133.i, %for.end127.i - %had_handshake_done_frame.i188 = getelementptr inbounds %struct.quic_txpim_pkt_st, ptr %288, i64 0, i32 3 - %bf.load147.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %had_handshake_done_frame.i187 = getelementptr inbounds %struct.quic_txpim_pkt_st, ptr %287, i64 0, i32 3 + %bf.load147.i = load i8, ptr %had_handshake_done_frame.i187, align 8 %bf.clear148.i = and i8 %bf.load147.i, 1 %tobool150.not.i = icmp eq i8 %bf.clear148.i, 0 br i1 %tobool150.not.i, label %if.end155.i, label %if.then151.i @@ -3472,76 +3464,76 @@ if.then151.i: ; preds = %if.end146.i %bf.load152.i = load i16, ptr %want_ack.i, align 8 %bf.clear153.i = and i16 %bf.load152.i, -2 store i16 %bf.clear153.i, ptr %want_ack.i, align 8 - %bf.load156.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %bf.load156.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end155.i if.end155.i: ; preds = %if.then151.i, %if.end146.i %bf.load156.i = phi i8 [ %bf.load156.pre.i, %if.then151.i ], [ %bf.load147.i, %if.end146.i ] - %316 = and i8 %bf.load156.i, 2 - %tobool160.not.i = icmp eq i8 %316, 0 + %315 = and i8 %bf.load156.i, 2 + %tobool160.not.i = icmp eq i8 %315, 0 br i1 %tobool160.not.i, label %if.end167.i, label %if.then161.i if.then161.i: ; preds = %if.end155.i %bf.load162.i = load i16, ptr %want_ack.i, align 8 %bf.clear163.i = and i16 %bf.load162.i, -3 store i16 %bf.clear163.i, ptr %want_ack.i, align 8 - %317 = load ptr, ptr %conn_rxfc.i, align 8 - %call166.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %317, i32 noundef 1) #10 - %bf.load168.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %316 = load ptr, ptr %conn_rxfc.i, align 8 + %call166.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %316, i32 noundef 1) #10 + %bf.load168.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end167.i if.end167.i: ; preds = %if.then161.i, %if.end155.i %bf.load168.i = phi i8 [ %bf.load168.pre.i, %if.then161.i ], [ %bf.load156.i, %if.end155.i ] - %318 = and i8 %bf.load168.i, 4 - %tobool172.not.i = icmp eq i8 %318, 0 + %317 = and i8 %bf.load168.i, 4 + %tobool172.not.i = icmp eq i8 %317, 0 br i1 %tobool172.not.i, label %if.end179.i, label %if.then173.i if.then173.i: ; preds = %if.end167.i %bf.load174.i = load i16, ptr %want_ack.i, align 8 %bf.clear175.i = and i16 %bf.load174.i, -5 store i16 %bf.clear175.i, ptr %want_ack.i, align 8 - %319 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 - %call178.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %319, i32 noundef 1) #10 - %bf.load180.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %318 = load ptr, ptr %max_streams_bidi_rxfc.i, align 8 + %call178.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %318, i32 noundef 1) #10 + %bf.load180.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end179.i if.end179.i: ; preds = %if.then173.i, %if.end167.i %bf.load180.i = phi i8 [ %bf.load180.pre.i, %if.then173.i ], [ %bf.load168.i, %if.end167.i ] - %320 = and i8 %bf.load180.i, 8 - %tobool184.not.i193 = icmp eq i8 %320, 0 - br i1 %tobool184.not.i193, label %if.end191.i, label %if.then185.i + %319 = and i8 %bf.load180.i, 8 + %tobool184.not.i192 = icmp eq i8 %319, 0 + br i1 %tobool184.not.i192, label %if.end191.i, label %if.then185.i if.then185.i: ; preds = %if.end179.i %bf.load186.i = load i16, ptr %want_ack.i, align 8 %bf.clear187.i = and i16 %bf.load186.i, -9 store i16 %bf.clear187.i, ptr %want_ack.i, align 8 - %321 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 - %call190.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %321, i32 noundef 1) #10 - %bf.load192.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %320 = load ptr, ptr %max_streams_uni_rxfc.i, align 8 + %call190.i = call i32 @ossl_quic_rxfc_has_cwm_changed(ptr noundef %320, i32 noundef 1) #10 + %bf.load192.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end191.i if.end191.i: ; preds = %if.then185.i, %if.end179.i %bf.load192.i = phi i8 [ %bf.load192.pre.i, %if.then185.i ], [ %bf.load180.i, %if.end179.i ] - %322 = and i8 %bf.load192.i, 16 - %tobool196.not.i = icmp eq i8 %322, 0 + %321 = and i8 %bf.load192.i, 16 + %tobool196.not.i = icmp eq i8 %321, 0 br i1 %tobool196.not.i, label %if.end214.i, label %if.then197.i if.then197.i: ; preds = %if.end191.i - %shl199.i = shl nuw nsw i32 1, %switch.load925 + %shl199.i = shl nuw nsw i32 1, %switch.load927 %bf.load201.i = load i16, ptr %want_ack.i, align 8 - %323 = trunc i32 %shl199.i to i16 - %324 = xor i16 %323, -1 - %325 = shl nsw i16 %324, 4 - %bf.shl21092.i = or i16 %325, -113 + %322 = trunc i32 %shl199.i to i16 + %323 = xor i16 %322, -1 + %324 = shl nsw i16 %323, 4 + %bf.shl21092.i = or i16 %324, -113 %bf.set212.i = and i16 %bf.load201.i, %bf.shl21092.i store i16 %bf.set212.i, ptr %want_ack.i, align 8 - %bf.load215.pre.i = load i8, ptr %had_handshake_done_frame.i188, align 8 + %bf.load215.pre.i = load i8, ptr %had_handshake_done_frame.i187, align 8 br label %if.end214.i if.end214.i: ; preds = %if.then197.i, %if.end191.i %bf.load215.i = phi i8 [ %bf.load215.pre.i, %if.then197.i ], [ %bf.load192.i, %if.end191.i ] - %326 = and i8 %bf.load215.i, 32 - %tobool219.not.i = icmp eq i8 %326, 0 + %325 = and i8 %bf.load215.i, 32 + %tobool219.not.i = icmp eq i8 %325, 0 br i1 %tobool219.not.i, label %if.end224.i, label %if.then220.i if.then220.i: ; preds = %if.end214.i @@ -3552,49 +3544,49 @@ if.then220.i: ; preds = %if.end214.i if.end224.i: ; preds = %if.then220.i, %if.end214.i %bf.load227.i = load i8, ptr %is_ack_eliciting.i, align 8 - %327 = and i8 %bf.load227.i, 8 - %tobool231.not.i = icmp eq i8 %327, 0 + %326 = and i8 %bf.load227.i, 8 + %tobool231.not.i = icmp eq i8 %326, 0 br i1 %tobool231.not.i, label %txp_pkt_commit.exit, label %if.then232.i if.then232.i: ; preds = %if.end224.i - %328 = load ptr, ptr %4, align 8 - %call234.i = call ptr @ossl_ackm_get0_probe_request(ptr noundef %328) #10 - switch i32 %285, label %if.end251.i [ + %327 = load ptr, ptr %4, align 8 + %call234.i = call ptr @ossl_ackm_get0_probe_request(ptr noundef %327) #10 + switch i32 %284, label %if.end251.i [ i32 0, label %land.lhs.true237.i i32 1, label %land.lhs.true245.i ] land.lhs.true237.i: ; preds = %if.then232.i - %329 = load i32, ptr %call234.i, align 4 - %cmp238.not.i = icmp eq i32 %329, 0 + %328 = load i32, ptr %call234.i, align 4 + %cmp238.not.i = icmp eq i32 %328, 0 br i1 %cmp238.not.i, label %if.end251.i, label %if.end251.sink.split.i land.lhs.true245.i: ; preds = %if.then232.i - %anti_deadlock_handshake.i198 = getelementptr inbounds %struct.ossl_ackm_probe_info_st, ptr %call234.i, i64 0, i32 1 - %330 = load i32, ptr %anti_deadlock_handshake.i198, align 4 - %cmp246.not.i = icmp eq i32 %330, 0 + %anti_deadlock_handshake.i197 = getelementptr inbounds %struct.ossl_ackm_probe_info_st, ptr %call234.i, i64 0, i32 1 + %329 = load i32, ptr %anti_deadlock_handshake.i197, align 4 + %cmp246.not.i = icmp eq i32 %329, 0 br i1 %cmp246.not.i, label %if.end251.i, label %if.end251.sink.split.i if.end251.sink.split.i: ; preds = %land.lhs.true245.i, %land.lhs.true237.i - %.sink.i = phi i32 [ %329, %land.lhs.true237.i ], [ %330, %land.lhs.true245.i ] - %call234.sink.i = phi ptr [ %call234.i, %land.lhs.true237.i ], [ %anti_deadlock_handshake.i198, %land.lhs.true245.i ] + %.sink.i = phi i32 [ %328, %land.lhs.true237.i ], [ %329, %land.lhs.true245.i ] + %call234.sink.i = phi ptr [ %call234.i, %land.lhs.true237.i ], [ %anti_deadlock_handshake.i197, %land.lhs.true245.i ] %dec.i = add i32 %.sink.i, -1 store i32 %dec.i, ptr %call234.sink.i, align 4 br label %if.end251.i if.end251.i: ; preds = %if.end251.sink.split.i, %land.lhs.true245.i, %land.lhs.true237.i, %if.then232.i - %331 = and i32 %289, 8192 - %tobool255.not.i = icmp eq i32 %331, 0 + %330 = and i32 %288, 8192 + %tobool255.not.i = icmp eq i32 %330, 0 br i1 %tobool255.not.i, label %txp_pkt_commit.exit, label %land.lhs.true256.i land.lhs.true256.i: ; preds = %if.end251.i %arrayidx258.i = getelementptr inbounds %struct.ossl_ackm_probe_info_st, ptr %call234.i, i64 0, i32 2, i64 %idxprom15.i - %332 = load i32, ptr %arrayidx258.i, align 4 - %cmp259.not.i = icmp eq i32 %332, 0 + %331 = load i32, ptr %arrayidx258.i, align 4 + %cmp259.not.i = icmp eq i32 %331, 0 br i1 %cmp259.not.i, label %txp_pkt_commit.exit, label %if.then261.i if.then261.i: ; preds = %land.lhs.true256.i - %dec265.i = add i32 %332, -1 + %dec265.i = add i32 %331, -1 store i32 %dec265.i, ptr %arrayidx258.i, align 4 br label %txp_pkt_commit.exit @@ -3605,47 +3597,47 @@ txp_pkt_commit.exit: ; preds = %if.end224.i, %if.en br i1 %tobool154.not, label %if.end187, label %if.then155 if.then155: ; preds = %txp_pkt_commit.exit - %333 = load i32, ptr %status, align 8 - %tobool156.not = icmp eq i32 %333, 0 + %332 = load i32, ptr %status, align 8 + %tobool156.not = icmp eq i32 %332, 0 br i1 %tobool156.not, label %lor.rhs, label %lor.end lor.rhs: ; preds = %if.then155 - %334 = load ptr, ptr %tpkt2.i, align 8 - %is_ack_eliciting = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %334, i64 0, i32 4 + %333 = load ptr, ptr %tpkt2.i, align 8 + %is_ack_eliciting = getelementptr inbounds %struct.ossl_ackm_tx_pkt_st, ptr %333, i64 0, i32 4 %bf.load161 = load i8, ptr %is_ack_eliciting, align 8 - %335 = and i8 %bf.load161, 8 - %tobool165 = icmp ne i8 %335, 0 + %334 = and i8 %bf.load161, 8 + %tobool165 = icmp ne i8 %334, 0 br label %lor.end lor.end: ; preds = %lor.rhs, %if.then155 - %336 = phi i1 [ true, %if.then155 ], [ %tobool165, %lor.rhs ] - %lor.ext = zext i1 %336 to i32 + %335 = phi i1 [ true, %if.then155 ], [ %tobool165, %lor.rhs ] + %lor.ext = zext i1 %335 to i32 store i32 %lor.ext, ptr %status, align 8 - %cmp167 = icmp eq i64 %indvars.iv679, 1 + %cmp167 = icmp eq i64 %indvars.iv680, 1 br i1 %cmp167, label %if.then169, label %if.end190 if.then169: ; preds = %lor.end - %337 = load i32, ptr %h_valid139, align 16 - %tobool173.not = icmp eq i32 %337, 0 + %336 = load i32, ptr %h_valid139, align 16 + %tobool173.not = icmp eq i32 %336, 0 br i1 %tobool173.not, label %land.end, label %land.rhs land.rhs: ; preds = %if.then169 - %338 = load i64, ptr %bytes_appended146, align 16 - %cmp178 = icmp ne i64 %338, 0 + %337 = load i64, ptr %bytes_appended146, align 16 + %cmp178 = icmp ne i64 %337, 0 br label %land.end land.end: ; preds = %land.rhs, %if.then169 - %339 = phi i1 [ false, %if.then169 ], [ %cmp178, %land.rhs ] - %land.ext = zext i1 %339 to i32 + %338 = phi i1 [ false, %if.then169 ], [ %cmp178, %land.rhs ] + %land.ext = zext i1 %338 to i32 store i32 %land.ext, ptr %sent_handshake, align 4 br label %if.end190 -if.end187.thread: ; preds = %for.end.i182, %if.end150, %if.then24.i +if.end187.thread: ; preds = %for.end.i181, %if.end150, %if.then24.i call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %txpkt.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i) br label %out -if.end187.thread397: ; preds = %if.end54.i +if.end187.thread396: ; preds = %if.end54.i call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %txpkt.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %chunk.i) store ptr null, ptr %tpkt2.i, align 8 @@ -3662,60 +3654,60 @@ if.end190: ; preds = %lor.end, %land.end for.inc192: ; preds = %if.end142, %for.body136, %if.end190 %pkts_done.1 = phi i64 [ %pkts_done.0553, %if.end142 ], [ %inc191, %if.end190 ], [ %pkts_done.0553, %for.body136 ] - %indvars.iv.next680 = add nuw nsw i64 %indvars.iv679, 1 - %exitcond682.not = icmp eq i64 %indvars.iv.next680, 4 - br i1 %exitcond682.not, label %out, label %for.body136, !llvm.loop !19 - -out: ; preds = %for.inc192, %if.end.i.i159, %if.then23.i, %if.end25.i, %if.end16.i, %if.end4.i, %if.then114, %if.end187, %if.end187.thread397, %if.end187.thread, %txp_generate_for_el.exit.thread, %if.end127 - %pkts_done.2 = phi i64 [ %pkts_done.0553, %if.end187 ], [ 0, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ %pkts_done.0553, %if.end187.thread ], [ %pkts_done.0553, %if.end187.thread397 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i159 ], [ %pkts_done.1, %for.inc192 ] - %res.0 = phi i32 [ 0, %if.end187 ], [ 1, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ 0, %if.end187.thread ], [ 0, %if.end187.thread397 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i159 ], [ 1, %for.inc192 ] - %340 = load ptr, ptr %qtx, align 8 - call void @ossl_qtx_finish_dgram(ptr noundef %340) #10 + %indvars.iv.next681 = add nuw nsw i64 %indvars.iv680, 1 + %exitcond683.not = icmp eq i64 %indvars.iv.next681, 4 + br i1 %exitcond683.not, label %out, label %for.body136, !llvm.loop !19 + +out: ; preds = %for.inc192, %if.end.i.i158, %if.then23.i, %if.end25.i, %if.end16.i, %if.end4.i, %if.then114, %if.end187, %if.end187.thread396, %if.end187.thread, %txp_generate_for_el.exit.thread, %if.end127 + %pkts_done.2 = phi i64 [ %pkts_done.0553, %if.end187 ], [ 0, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ %pkts_done.0553, %if.end187.thread ], [ %pkts_done.0553, %if.end187.thread396 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i158 ], [ %pkts_done.1, %for.inc192 ] + %res.0 = phi i32 [ 0, %if.end187 ], [ 1, %if.end127 ], [ 0, %txp_generate_for_el.exit.thread ], [ 0, %if.end187.thread ], [ 0, %if.end187.thread396 ], [ 0, %if.then114 ], [ 0, %if.end4.i ], [ 0, %if.end16.i ], [ 0, %if.end25.i ], [ 0, %if.then23.i ], [ 0, %if.end.i.i158 ], [ 1, %for.inc192 ] + %339 = load ptr, ptr %qtx, align 8 + call void @ossl_qtx_finish_dgram(ptr noundef %339) #10 br label %for.body200 for.body200: ; preds = %out, %txp_pkt_cleanup.exit - %indvars.iv683 = phi i64 [ 0, %out ], [ %indvars.iv.next684, %txp_pkt_cleanup.exit ] - %arrayidx202 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv683 - %h_valid.i203 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv683, i32 1 - %341 = load i32, ptr %h_valid.i203, align 16 - %tobool.not.i204 = icmp eq i32 %341, 0 - br i1 %tobool.not.i204, label %txp_pkt_cleanup.exit, label %if.end.i205 - -if.end.i205: ; preds = %for.body200 - %active.i.i206 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 2 - %bf.load.i.i207 = load i8, ptr %active.i.i206, align 8 - %bf.clear.i.i208 = and i8 %bf.load.i.i207, 1 - %tobool.not.i.i209 = icmp eq i8 %bf.clear.i.i208, 0 - br i1 %tobool.not.i.i209, label %tx_helper_cleanup.exit.i, label %tx_helper_rollback.exit.i.i - -tx_helper_rollback.exit.i.i: ; preds = %if.end.i205 - %wpkt2.i.i.i.i210 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 1 - call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i210) #10 - %txn3.i.i.i.i211 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8 - %bf.load.i.i.i.i212 = load i8, ptr %active.i.i206, align 8 - %bf.clear.i.i.i.i213 = and i8 %bf.load.i.i.i.i212, -2 - store i8 %bf.clear.i.i.i.i213, ptr %active.i.i206, align 8 - store ptr null, ptr %txn3.i.i.i.i211, align 8 + %indvars.iv684 = phi i64 [ 0, %out ], [ %indvars.iv.next685, %txp_pkt_cleanup.exit ] + %arrayidx202 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv684 + %h_valid.i202 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv684, i32 1 + %340 = load i32, ptr %h_valid.i202, align 16 + %tobool.not.i203 = icmp eq i32 %340, 0 + br i1 %tobool.not.i203, label %txp_pkt_cleanup.exit, label %if.end.i204 + +if.end.i204: ; preds = %for.body200 + %active.i.i205 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 2 + %bf.load.i.i206 = load i8, ptr %active.i.i205, align 8 + %bf.clear.i.i207 = and i8 %bf.load.i.i206, 1 + %tobool.not.i.i208 = icmp eq i8 %bf.clear.i.i207, 0 + br i1 %tobool.not.i.i208, label %tx_helper_cleanup.exit.i, label %tx_helper_rollback.exit.i.i + +tx_helper_rollback.exit.i.i: ; preds = %if.end.i204 + %wpkt2.i.i.i.i209 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8, i32 1 + call void @WPACKET_cleanup(ptr noundef nonnull %wpkt2.i.i.i.i209) #10 + %txn3.i.i.i.i210 = getelementptr inbounds %struct.tx_helper, ptr %arrayidx202, i64 0, i32 8 + %bf.load.i.i.i.i211 = load i8, ptr %active.i.i205, align 8 + %bf.clear.i.i.i.i212 = and i8 %bf.load.i.i.i.i211, -2 + store i8 %bf.clear.i.i.i.i212, ptr %active.i.i205, align 8 + store ptr null, ptr %txn3.i.i.i.i210, align 8 br label %tx_helper_cleanup.exit.i -tx_helper_cleanup.exit.i: ; preds = %tx_helper_rollback.exit.i.i, %if.end.i205 +tx_helper_cleanup.exit.i: ; preds = %tx_helper_rollback.exit.i.i, %if.end.i204 store ptr null, ptr %arrayidx202, align 16 - store i32 0, ptr %h_valid.i203, align 16 - %tpkt.i214 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv683, i32 2 - %342 = load ptr, ptr %tpkt.i214, align 8 - %cmp.not.i215 = icmp eq ptr %342, null - br i1 %cmp.not.i215, label %txp_pkt_cleanup.exit, label %if.then2.i + store i32 0, ptr %h_valid.i202, align 16 + %tpkt.i213 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv684, i32 2 + %341 = load ptr, ptr %tpkt.i213, align 8 + %cmp.not.i214 = icmp eq ptr %341, null + br i1 %cmp.not.i214, label %txp_pkt_cleanup.exit, label %if.then2.i if.then2.i: ; preds = %tx_helper_cleanup.exit.i - %343 = load ptr, ptr %txpim.i, align 8 - call void @ossl_quic_txpim_pkt_release(ptr noundef %343, ptr noundef nonnull %342) #10 - store ptr null, ptr %tpkt.i214, align 8 + %342 = load ptr, ptr %txpim.i, align 8 + call void @ossl_quic_txpim_pkt_release(ptr noundef %342, ptr noundef nonnull %341) #10 + store ptr null, ptr %tpkt.i213, align 8 br label %txp_pkt_cleanup.exit txp_pkt_cleanup.exit: ; preds = %for.body200, %tx_helper_cleanup.exit.i, %if.then2.i - %indvars.iv.next684 = add nuw nsw i64 %indvars.iv683, 1 - %exitcond686.not = icmp eq i64 %indvars.iv.next684, 4 - br i1 %exitcond686.not, label %for.end205, label %for.body200, !llvm.loop !20 + %indvars.iv.next685 = add nuw nsw i64 %indvars.iv684, 1 + %exitcond687.not = icmp eq i64 %indvars.iv.next685, 4 + br i1 %exitcond687.not, label %for.end205, label %for.body200, !llvm.loop !20 for.end205: ; preds = %txp_pkt_cleanup.exit %sent_pkt = getelementptr inbounds %struct.quic_txp_status_st, ptr %status, i64 0, i32 2 diff --git a/bench/openssl/optimized/libtestutil-lib-provider.ll b/bench/openssl/optimized/libtestutil-lib-provider.ll index d34c73909be..c54a3b9799b 100644 --- a/bench/openssl/optimized/libtestutil-lib-provider.ll +++ b/bench/openssl/optimized/libtestutil-lib-provider.ll @@ -23,7 +23,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.14 = private unnamed_addr constant [8 x i8] c"version\00", align 1 ; Function Attrs: nounwind uwtable -define i32 @test_get_libctx(ptr noundef writeonly %libctx, ptr noundef writeonly %default_null_prov, ptr noundef %config_file, ptr noundef writeonly %provider, ptr noundef %module_name) local_unnamed_addr #0 { +define noundef i32 @test_get_libctx(ptr noundef writeonly %libctx, ptr noundef writeonly %default_null_prov, ptr noundef %config_file, ptr noundef writeonly %provider, ptr noundef %module_name) local_unnamed_addr #0 { entry: %cmp.not = icmp eq ptr %libctx, null br i1 %cmp.not, label %if.end4, label %if.then @@ -103,7 +103,7 @@ declare i32 @OSSL_LIB_CTX_load_config(ptr noundef, ptr noundef) local_unnamed_ad declare void @ERR_print_errors_fp(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define i32 @test_arg_libctx(ptr noundef %libctx, ptr noundef %default_null_prov, ptr noundef %provider, i32 noundef %argn, ptr noundef %usage) local_unnamed_addr #0 { +define noundef i32 @test_arg_libctx(ptr noundef %libctx, ptr noundef %default_null_prov, ptr noundef %provider, i32 noundef %argn, ptr noundef %usage) local_unnamed_addr #0 { entry: %conv = sext i32 %argn to i64 %call = tail call ptr @test_get_argument(i64 noundef %conv) #8 @@ -415,7 +415,7 @@ return: ; preds = %if.end, %land.rhs, } ; Function Attrs: nounwind uwtable -define i32 @fips_provider_version_match(ptr noundef %libctx, ptr noundef %versions) local_unnamed_addr #0 { +define noundef i32 @fips_provider_version_match(ptr noundef %libctx, ptr noundef %versions) local_unnamed_addr #0 { entry: %prov.i89 = alloca %struct.FIPS_VERSION, align 4 %prov.i71 = alloca %struct.FIPS_VERSION, align 4 @@ -438,34 +438,34 @@ entry: %patch8.i36 = getelementptr inbounds %struct.FIPS_VERSION, ptr %prov.i31, i64 0, i32 2 %minor5.i = getelementptr inbounds %struct.FIPS_VERSION, ptr %prov.i, i64 0, i32 1 %patch8.i = getelementptr inbounds %struct.FIPS_VERSION, ptr %prov.i, i64 0, i32 2 - br label %while.cond + %0 = load i8, ptr %versions, align 1 + %cmp.not164 = icmp eq i8 %0, 0 + br i1 %cmp.not164, label %return, label %for.cond.preheader.preheader -while.cond: ; preds = %if.end100, %entry - %versions.addr.0 = phi ptr [ %versions, %entry ], [ %versions.addr.2.lcssa.ph, %if.end100 ] - %r.0 = phi i32 [ undef, %entry ], [ %r.1, %if.end100 ] - %0 = load i8, ptr %versions.addr.0, align 1 - %cmp.not = icmp eq i8 %0, 0 - br i1 %cmp.not, label %return, label %for.cond.preheader - -for.cond.preheader: ; preds = %while.cond +for.cond.preheader.preheader: ; preds = %entry %call = tail call ptr @__ctype_b_loc() #10 - %1 = load ptr, ptr %call, align 8 - %idxprom112 = zext i8 %0 to i64 - %arrayidx113 = getelementptr inbounds i16, ptr %1, i64 %idxprom112 - %2 = load i16, ptr %arrayidx113, align 2 - %3 = and i16 %2, 8192 - %tobool.not114 = icmp eq i16 %3, 0 - br i1 %tobool.not114, label %land.rhs.preheader, label %for.inc + br label %for.cond.preheader + +for.cond.preheader: ; preds = %for.cond.preheader.preheader, %while.cond.backedge + %1 = phi i8 [ %40, %while.cond.backedge ], [ %0, %for.cond.preheader.preheader ] + %versions.addr.0165 = phi ptr [ %versions.addr.2.lcssa.ph, %while.cond.backedge ], [ %versions, %for.cond.preheader.preheader ] + %2 = load ptr, ptr %call, align 8 + %idxprom114 = zext i8 %1 to i64 + %arrayidx115 = getelementptr inbounds i16, ptr %2, i64 %idxprom114 + %3 = load i16, ptr %arrayidx115, align 2 + %4 = and i16 %3, 8192 + %tobool.not116 = icmp eq i16 %4, 0 + br i1 %tobool.not116, label %land.rhs.preheader, label %for.inc for.inc: ; preds = %for.cond.preheader, %for.inc - %versions.addr.1115 = phi ptr [ %incdec.ptr, %for.inc ], [ %versions.addr.0, %for.cond.preheader ] - %incdec.ptr = getelementptr inbounds i8, ptr %versions.addr.1115, i64 1 + %versions.addr.1117 = phi ptr [ %incdec.ptr, %for.inc ], [ %versions.addr.0165, %for.cond.preheader ] + %incdec.ptr = getelementptr inbounds i8, ptr %versions.addr.1117, i64 1 %.pr = load i8, ptr %incdec.ptr, align 1 %idxprom = zext i8 %.pr to i64 - %arrayidx = getelementptr inbounds i16, ptr %1, i64 %idxprom - %4 = load i16, ptr %arrayidx, align 2 - %5 = and i16 %4, 8192 - %tobool.not = icmp eq i16 %5, 0 + %arrayidx = getelementptr inbounds i16, ptr %2, i64 %idxprom + %5 = load i16, ptr %arrayidx, align 2 + %6 = and i16 %5, 8192 + %tobool.not = icmp eq i16 %6, 0 br i1 %tobool.not, label %for.end, label %for.inc, !llvm.loop !6 for.end: ; preds = %for.inc @@ -473,30 +473,30 @@ for.end: ; preds = %for.inc br i1 %cmp5, label %return, label %land.rhs.preheader land.rhs.preheader: ; preds = %for.cond.preheader, %for.end - %.lcssa129 = phi i16 [ %4, %for.end ], [ %2, %for.cond.preheader ] - %versions.addr.1.lcssa128 = phi ptr [ %incdec.ptr, %for.end ], [ %versions.addr.0, %for.cond.preheader ] - %6 = phi i8 [ %.pr, %for.end ], [ %0, %for.cond.preheader ] + %.lcssa134 = phi i16 [ %5, %for.end ], [ %3, %for.cond.preheader ] + %versions.addr.1.lcssa133 = phi ptr [ %incdec.ptr, %for.end ], [ %versions.addr.0165, %for.cond.preheader ] + %7 = phi i8 [ %.pr, %for.end ], [ %1, %for.cond.preheader ] br label %land.rhs land.rhs: ; preds = %land.rhs.preheader, %for.inc19 - %7 = phi i8 [ %10, %for.inc19 ], [ %6, %land.rhs.preheader ] - %versions.addr.2120 = phi ptr [ %incdec.ptr20, %for.inc19 ], [ %versions.addr.1.lcssa128, %land.rhs.preheader ] - %idxprom13 = zext i8 %7 to i64 - %arrayidx14 = getelementptr inbounds i16, ptr %1, i64 %idxprom13 - %8 = load i16, ptr %arrayidx14, align 2 - %9 = and i16 %8, 8192 - %tobool17.not = icmp eq i16 %9, 0 + %8 = phi i8 [ %11, %for.inc19 ], [ %7, %land.rhs.preheader ] + %versions.addr.2122 = phi ptr [ %incdec.ptr20, %for.inc19 ], [ %versions.addr.1.lcssa133, %land.rhs.preheader ] + %idxprom13 = zext i8 %8 to i64 + %arrayidx14 = getelementptr inbounds i16, ptr %2, i64 %idxprom13 + %9 = load i16, ptr %arrayidx14, align 2 + %10 = and i16 %9, 8192 + %tobool17.not = icmp eq i16 %10, 0 br i1 %tobool17.not, label %for.inc19, label %for.end21 for.inc19: ; preds = %land.rhs - %incdec.ptr20 = getelementptr inbounds i8, ptr %versions.addr.2120, i64 1 - %10 = load i8, ptr %incdec.ptr20, align 1 - %cmp9.not = icmp eq i8 %10, 0 + %incdec.ptr20 = getelementptr inbounds i8, ptr %versions.addr.2122, i64 1 + %11 = load i8, ptr %incdec.ptr20, align 1 + %cmp9.not = icmp eq i8 %11, 0 br i1 %cmp9.not, label %for.end21, label %land.rhs, !llvm.loop !8 for.end21: ; preds = %land.rhs, %for.inc19 - %versions.addr.2.lcssa.ph = phi ptr [ %versions.addr.2120, %land.rhs ], [ %incdec.ptr20, %for.inc19 ] - switch i8 %6, label %if.else64 [ + %versions.addr.2.lcssa.ph = phi ptr [ %versions.addr.2122, %land.rhs ], [ %incdec.ptr20, %for.inc19 ] + switch i8 %7, label %if.else64 [ i8 33, label %if.then25 i8 61, label %if.then30 i8 60, label %land.lhs.true @@ -504,43 +504,43 @@ for.end21: ; preds = %land.rhs, %for.inc1 ] if.then25: ; preds = %for.end21 - %incdec.ptr26 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa128, i64 1 + %incdec.ptr26 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa133, i64 1 br label %if.end80 if.then30: ; preds = %for.end21 - %incdec.ptr31 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa128, i64 1 + %incdec.ptr31 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa133, i64 1 br label %if.end80 land.lhs.true: ; preds = %for.end21 - %arrayidx36 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa128, i64 1 - %11 = load i8, ptr %arrayidx36, align 1 - %cmp38 = icmp eq i8 %11, 61 - %add.ptr = getelementptr inbounds i8, ptr %versions.addr.1.lcssa128, i64 2 + %arrayidx36 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa133, i64 1 + %12 = load i8, ptr %arrayidx36, align 1 + %cmp38 = icmp eq i8 %12, 61 + %add.ptr = getelementptr inbounds i8, ptr %versions.addr.1.lcssa133, i64 2 %spec.select = select i1 %cmp38, ptr %add.ptr, ptr %arrayidx36 - %spec.select131 = select i1 %cmp38, i32 2, i32 3 + %spec.select150 = select i1 %cmp38, i32 2, i32 3 br label %if.end80 land.lhs.true45: ; preds = %for.end21 - %arrayidx46 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa128, i64 1 - %12 = load i8, ptr %arrayidx46, align 1 - %cmp48 = icmp eq i8 %12, 61 - %add.ptr51 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa128, i64 2 - %spec.select132 = select i1 %cmp48, ptr %add.ptr51, ptr %arrayidx46 - %spec.select133 = select i1 %cmp48, i32 5, i32 4 + %arrayidx46 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa133, i64 1 + %13 = load i8, ptr %arrayidx46, align 1 + %cmp48 = icmp eq i8 %13, 61 + %add.ptr51 = getelementptr inbounds i8, ptr %versions.addr.1.lcssa133, i64 2 + %spec.select151 = select i1 %cmp48, ptr %add.ptr51, ptr %arrayidx46 + %spec.select152 = select i1 %cmp48, i32 5, i32 4 br label %if.end80 if.else64: ; preds = %for.end21 - %13 = and i16 %.lcssa129, 2048 - %tobool71.not = icmp eq i16 %13, 0 + %14 = and i16 %.lcssa134, 2048 + %tobool71.not = icmp eq i16 %14, 0 br i1 %tobool71.not, label %if.else73, label %if.end80 if.else73: ; preds = %if.else64 - call void (ptr, i32, ptr, ...) @test_info(ptr noundef nonnull @.str.5, i32 noundef 207, ptr noundef nonnull @.str.9, ptr noundef nonnull %versions.addr.1.lcssa128) #8 + call void (ptr, i32, ptr, ...) @test_info(ptr noundef nonnull @.str.5, i32 noundef 207, ptr noundef nonnull @.str.9, ptr noundef nonnull %versions.addr.1.lcssa133) #8 br label %return if.end80: ; preds = %land.lhs.true45, %land.lhs.true, %if.else64, %if.then30, %if.then25 - %p.0 = phi ptr [ %incdec.ptr26, %if.then25 ], [ %incdec.ptr31, %if.then30 ], [ %versions.addr.1.lcssa128, %if.else64 ], [ %spec.select, %land.lhs.true ], [ %spec.select132, %land.lhs.true45 ] - %mode.0 = phi i32 [ 1, %if.then25 ], [ 0, %if.then30 ], [ 0, %if.else64 ], [ %spec.select131, %land.lhs.true ], [ %spec.select133, %land.lhs.true45 ] + %p.0 = phi ptr [ %incdec.ptr26, %if.then25 ], [ %incdec.ptr31, %if.then30 ], [ %versions.addr.1.lcssa133, %if.else64 ], [ %spec.select, %land.lhs.true ], [ %spec.select151, %land.lhs.true45 ] + %mode.0 = phi i32 [ 1, %if.then25 ], [ 0, %if.then30 ], [ 0, %if.else64 ], [ %spec.select150, %land.lhs.true ], [ %spec.select152, %land.lhs.true45 ] %call81 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull %p.0, ptr noundef nonnull @.str.10, ptr noundef nonnull %major, ptr noundef nonnull %minor, ptr noundef nonnull %patch) #8 %cmp82.not = icmp eq i32 %call81, 3 br i1 %cmp82.not, label %if.end85, label %if.then84 @@ -550,7 +550,10 @@ if.then84: ; preds = %if.end80 br label %return if.end85: ; preds = %if.end80 - switch i32 %mode.0, label %if.end100 [ + %15 = load i32, ptr %major, align 4 + %16 = load i32, ptr %minor, align 4 + %17 = load i32, ptr %patch, align 4 + switch i32 %mode.0, label %default.unreachable129 [ i32 0, label %sw.bb i32 1, label %sw.bb87 i32 2, label %sw.bb89 @@ -560,69 +563,40 @@ if.end85: ; preds = %if.end80 ] sw.bb: ; preds = %if.end85 - %14 = load i32, ptr %major, align 4 - %15 = load i32, ptr %minor, align 4 - %16 = load i32, ptr %patch, align 4 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %prov.i) %call.i = call fastcc i32 @fips_provider_version(ptr noundef %libctx, ptr noundef nonnull %prov.i), !range !5 %cmp.i = icmp slt i32 %call.i, 1 - br i1 %cmp.i, label %if.then.i, label %if.end.i + br i1 %cmp.i, label %if.then.i, label %if.end100 if.then.i: ; preds = %sw.bb %cmp1.i = icmp eq i32 %call.i, 0 - br label %fips_provider_version_eq.exit - -if.end.i: ; preds = %sw.bb - %17 = load i32, ptr %prov.i, align 4 - %cmp3.i = icmp eq i32 %17, %14 - %18 = load i32, ptr %minor5.i, align 4 - %cmp6.i = icmp eq i32 %18, %15 - %or.cond.i = select i1 %cmp3.i, i1 %cmp6.i, i1 false - %19 = load i32, ptr %patch8.i, align 4 - %cmp9.i = icmp eq i32 %19, %16 - %narrow.i = select i1 %or.cond.i, i1 %cmp9.i, i1 false - br label %fips_provider_version_eq.exit - -fips_provider_version_eq.exit: ; preds = %if.then.i, %if.end.i - %retval.0.in.i = phi i1 [ %cmp1.i, %if.then.i ], [ %narrow.i, %if.end.i ] - %retval.0.i = zext i1 %retval.0.in.i to i32 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i) - br label %if.end100 + br i1 %cmp1.i, label %while.cond.backedge, label %return sw.bb87: ; preds = %if.end85 - %20 = load i32, ptr %major, align 4 - %21 = load i32, ptr %minor, align 4 - %22 = load i32, ptr %patch, align 4 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %prov.i31) %call.i32 = call fastcc i32 @fips_provider_version(ptr noundef %libctx, ptr noundef nonnull %prov.i31), !range !5 %cmp.i33 = icmp slt i32 %call.i32, 1 - br i1 %cmp.i33, label %if.then.i41, label %if.end.i34 + br i1 %cmp.i33, label %if.then.i41, label %fips_provider_version_ne.exit if.then.i41: ; preds = %sw.bb87 %cmp1.i42 = icmp eq i32 %call.i32, 0 - br label %fips_provider_version_ne.exit + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i31) + br i1 %cmp1.i42, label %while.cond.backedge, label %return -if.end.i34: ; preds = %sw.bb87 - %23 = load i32, ptr %prov.i31, align 4 - %cmp3.not.i = icmp ne i32 %23, %20 - %24 = load i32, ptr %minor5.i35, align 4 - %cmp6.not.i = icmp ne i32 %24, %21 +fips_provider_version_ne.exit: ; preds = %sw.bb87 + %18 = load i32, ptr %prov.i31, align 4 + %cmp3.not.i = icmp ne i32 %18, %15 + %19 = load i32, ptr %minor5.i35, align 4 + %cmp6.not.i = icmp ne i32 %19, %16 %or.cond.not.i = select i1 %cmp3.not.i, i1 true, i1 %cmp6.not.i - %25 = load i32, ptr %patch8.i36, align 4 - %cmp9.i37 = icmp ne i32 %25, %22 + %20 = load i32, ptr %patch8.i36, align 4 + %cmp9.i37 = icmp ne i32 %20, %17 %narrow.i38 = select i1 %or.cond.not.i, i1 true, i1 %cmp9.i37 - br label %fips_provider_version_ne.exit - -fips_provider_version_ne.exit: ; preds = %if.then.i41, %if.end.i34 - %retval.0.in.i39 = phi i1 [ %cmp1.i42, %if.then.i41 ], [ %narrow.i38, %if.end.i34 ] - %retval.0.i40 = zext i1 %retval.0.in.i39 to i32 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i31) - br label %if.end100 + br i1 %narrow.i38, label %while.cond.backedge, label %return sw.bb89: ; preds = %if.end85 - %26 = load i32, ptr %major, align 4 - %27 = load i32, ptr %minor, align 4 - %28 = load i32, ptr %patch, align 4 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %prov.i43) %call.i44 = call fastcc i32 @fips_provider_version(ptr noundef %libctx, ptr noundef nonnull %prov.i43), !range !5 %cmp.i45 = icmp slt i32 %call.i44, 1 @@ -630,39 +604,40 @@ sw.bb89: ; preds = %if.end85 if.then.i51: ; preds = %sw.bb89 %cmp1.i52 = icmp eq i32 %call.i44, 0 - br label %fips_provider_version_le.exit + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i43) + br i1 %cmp1.i52, label %while.cond.backedge, label %return if.end.i46: ; preds = %sw.bb89 - %29 = load i32, ptr %prov.i43, align 4 - %cmp3.i47 = icmp slt i32 %29, %26 + %21 = load i32, ptr %prov.i43, align 4 + %cmp3.i47 = icmp slt i32 %21, %15 br i1 %cmp3.i47, label %fips_provider_version_le.exit, label %lor.rhs.i lor.rhs.i: ; preds = %if.end.i46 - %cmp6.i48 = icmp eq i32 %29, %26 - br i1 %cmp6.i48, label %land.rhs.i, label %fips_provider_version_le.exit + %cmp6.i48 = icmp eq i32 %21, %15 + br i1 %cmp6.i48, label %land.rhs.i, label %fips_provider_version_le.exit.thread + +fips_provider_version_le.exit.thread: ; preds = %lor.rhs.i + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i43) + br label %return land.rhs.i: ; preds = %lor.rhs.i - %30 = load i32, ptr %minor8.i, align 4 - %cmp9.i50 = icmp slt i32 %30, %27 + %22 = load i32, ptr %minor8.i, align 4 + %cmp9.i50 = icmp slt i32 %22, %16 br i1 %cmp9.i50, label %fips_provider_version_le.exit, label %lor.rhs11.i lor.rhs11.i: ; preds = %land.rhs.i - %cmp13.i = icmp eq i32 %30, %27 - %31 = load i32, ptr %patch16.i, align 4 - %cmp17.i = icmp sle i32 %31, %28 - %32 = select i1 %cmp13.i, i1 %cmp17.i, i1 false - br label %fips_provider_version_le.exit - -fips_provider_version_le.exit: ; preds = %if.then.i51, %if.end.i46, %lor.rhs.i, %land.rhs.i, %lor.rhs11.i - %retval.0.shrunk.i = phi i1 [ %cmp1.i52, %if.then.i51 ], [ true, %if.end.i46 ], [ false, %lor.rhs.i ], [ true, %land.rhs.i ], [ %32, %lor.rhs11.i ] - %retval.0.i49 = zext i1 %retval.0.shrunk.i to i32 + %cmp13.i = icmp eq i32 %22, %16 + %23 = load i32, ptr %patch16.i, align 4 + %cmp17.i = icmp sle i32 %23, %17 + %24 = select i1 %cmp13.i, i1 %cmp17.i, i1 false call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i43) - br label %if.end100 + br i1 %24, label %while.cond.backedge, label %return + +fips_provider_version_le.exit: ; preds = %if.end.i46, %land.rhs.i + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i43) + br label %while.cond.backedge sw.bb91: ; preds = %if.end85 - %33 = load i32, ptr %major, align 4 - %34 = load i32, ptr %minor, align 4 - %35 = load i32, ptr %patch, align 4 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %prov.i53) %call.i54 = call fastcc i32 @fips_provider_version(ptr noundef %libctx, ptr noundef nonnull %prov.i53), !range !5 %cmp.i55 = icmp slt i32 %call.i54, 1 @@ -670,39 +645,40 @@ sw.bb91: ; preds = %if.end85 if.then.i69: ; preds = %sw.bb91 %cmp1.i70 = icmp eq i32 %call.i54, 0 - br label %fips_provider_version_lt.exit + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i53) + br i1 %cmp1.i70, label %while.cond.backedge, label %return if.end.i56: ; preds = %sw.bb91 - %36 = load i32, ptr %prov.i53, align 4 - %cmp3.i57 = icmp slt i32 %36, %33 + %25 = load i32, ptr %prov.i53, align 4 + %cmp3.i57 = icmp slt i32 %25, %15 br i1 %cmp3.i57, label %fips_provider_version_lt.exit, label %lor.rhs.i58 lor.rhs.i58: ; preds = %if.end.i56 - %cmp6.i59 = icmp eq i32 %36, %33 - br i1 %cmp6.i59, label %land.rhs.i62, label %fips_provider_version_lt.exit + %cmp6.i59 = icmp eq i32 %25, %15 + br i1 %cmp6.i59, label %land.rhs.i62, label %fips_provider_version_lt.exit.thread + +fips_provider_version_lt.exit.thread: ; preds = %lor.rhs.i58 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i53) + br label %return land.rhs.i62: ; preds = %lor.rhs.i58 - %37 = load i32, ptr %minor8.i63, align 4 - %cmp9.i64 = icmp slt i32 %37, %34 + %26 = load i32, ptr %minor8.i63, align 4 + %cmp9.i64 = icmp slt i32 %26, %16 br i1 %cmp9.i64, label %fips_provider_version_lt.exit, label %lor.rhs11.i65 lor.rhs11.i65: ; preds = %land.rhs.i62 - %cmp13.i66 = icmp eq i32 %37, %34 - %38 = load i32, ptr %patch16.i67, align 4 - %cmp17.i68 = icmp slt i32 %38, %35 - %39 = select i1 %cmp13.i66, i1 %cmp17.i68, i1 false - br label %fips_provider_version_lt.exit - -fips_provider_version_lt.exit: ; preds = %if.then.i69, %if.end.i56, %lor.rhs.i58, %land.rhs.i62, %lor.rhs11.i65 - %retval.0.shrunk.i60 = phi i1 [ %cmp1.i70, %if.then.i69 ], [ true, %if.end.i56 ], [ false, %lor.rhs.i58 ], [ true, %land.rhs.i62 ], [ %39, %lor.rhs11.i65 ] - %retval.0.i61 = zext i1 %retval.0.shrunk.i60 to i32 + %cmp13.i66 = icmp eq i32 %26, %16 + %27 = load i32, ptr %patch16.i67, align 4 + %cmp17.i68 = icmp slt i32 %27, %17 + %28 = select i1 %cmp13.i66, i1 %cmp17.i68, i1 false + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i53) + br i1 %28, label %while.cond.backedge, label %return + +fips_provider_version_lt.exit: ; preds = %if.end.i56, %land.rhs.i62 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i53) - br label %if.end100 + br label %while.cond.backedge sw.bb93: ; preds = %if.end85 - %40 = load i32, ptr %major, align 4 - %41 = load i32, ptr %minor, align 4 - %42 = load i32, ptr %patch, align 4 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %prov.i71) %call.i72 = call fastcc i32 @fips_provider_version(ptr noundef %libctx, ptr noundef nonnull %prov.i71), !range !5 %cmp.i73 = icmp slt i32 %call.i72, 1 @@ -710,39 +686,40 @@ sw.bb93: ; preds = %if.end85 if.then.i87: ; preds = %sw.bb93 %cmp1.i88 = icmp eq i32 %call.i72, 0 - br label %fips_provider_version_gt.exit + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i71) + br i1 %cmp1.i88, label %while.cond.backedge, label %return if.end.i74: ; preds = %sw.bb93 - %43 = load i32, ptr %prov.i71, align 4 - %cmp3.i75 = icmp sgt i32 %43, %40 + %29 = load i32, ptr %prov.i71, align 4 + %cmp3.i75 = icmp sgt i32 %29, %15 br i1 %cmp3.i75, label %fips_provider_version_gt.exit, label %lor.rhs.i76 lor.rhs.i76: ; preds = %if.end.i74 - %cmp6.i77 = icmp eq i32 %43, %40 - br i1 %cmp6.i77, label %land.rhs.i80, label %fips_provider_version_gt.exit + %cmp6.i77 = icmp eq i32 %29, %15 + br i1 %cmp6.i77, label %land.rhs.i80, label %fips_provider_version_gt.exit.thread + +fips_provider_version_gt.exit.thread: ; preds = %lor.rhs.i76 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i71) + br label %return land.rhs.i80: ; preds = %lor.rhs.i76 - %44 = load i32, ptr %minor8.i81, align 4 - %cmp9.i82 = icmp sgt i32 %44, %41 + %30 = load i32, ptr %minor8.i81, align 4 + %cmp9.i82 = icmp sgt i32 %30, %16 br i1 %cmp9.i82, label %fips_provider_version_gt.exit, label %lor.rhs11.i83 lor.rhs11.i83: ; preds = %land.rhs.i80 - %cmp13.i84 = icmp eq i32 %44, %41 - %45 = load i32, ptr %patch16.i85, align 4 - %cmp17.i86 = icmp sgt i32 %45, %42 - %46 = select i1 %cmp13.i84, i1 %cmp17.i86, i1 false - br label %fips_provider_version_gt.exit - -fips_provider_version_gt.exit: ; preds = %if.then.i87, %if.end.i74, %lor.rhs.i76, %land.rhs.i80, %lor.rhs11.i83 - %retval.0.shrunk.i78 = phi i1 [ %cmp1.i88, %if.then.i87 ], [ true, %if.end.i74 ], [ false, %lor.rhs.i76 ], [ true, %land.rhs.i80 ], [ %46, %lor.rhs11.i83 ] - %retval.0.i79 = zext i1 %retval.0.shrunk.i78 to i32 + %cmp13.i84 = icmp eq i32 %30, %16 + %31 = load i32, ptr %patch16.i85, align 4 + %cmp17.i86 = icmp sgt i32 %31, %17 + %32 = select i1 %cmp13.i84, i1 %cmp17.i86, i1 false call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i71) - br label %if.end100 + br i1 %32, label %while.cond.backedge, label %return + +fips_provider_version_gt.exit: ; preds = %if.end.i74, %land.rhs.i80 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i71) + br label %while.cond.backedge sw.bb95: ; preds = %if.end85 - %47 = load i32, ptr %major, align 4 - %48 = load i32, ptr %minor, align 4 - %49 = load i32, ptr %patch, align 4 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %prov.i89) %call.i90 = call fastcc i32 @fips_provider_version(ptr noundef %libctx, ptr noundef nonnull %prov.i89), !range !5 %cmp.i91 = icmp slt i32 %call.i90, 1 @@ -750,42 +727,61 @@ sw.bb95: ; preds = %if.end85 if.then.i105: ; preds = %sw.bb95 %cmp1.i106 = icmp eq i32 %call.i90, 0 - br label %fips_provider_version_ge.exit + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i89) + br i1 %cmp1.i106, label %while.cond.backedge, label %return if.end.i92: ; preds = %sw.bb95 - %50 = load i32, ptr %prov.i89, align 4 - %cmp3.i93 = icmp sgt i32 %50, %47 + %33 = load i32, ptr %prov.i89, align 4 + %cmp3.i93 = icmp sgt i32 %33, %15 br i1 %cmp3.i93, label %fips_provider_version_ge.exit, label %lor.rhs.i94 lor.rhs.i94: ; preds = %if.end.i92 - %cmp6.i95 = icmp eq i32 %50, %47 - br i1 %cmp6.i95, label %land.rhs.i98, label %fips_provider_version_ge.exit + %cmp6.i95 = icmp eq i32 %33, %15 + br i1 %cmp6.i95, label %land.rhs.i98, label %fips_provider_version_ge.exit.thread + +fips_provider_version_ge.exit.thread: ; preds = %lor.rhs.i94 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i89) + br label %return land.rhs.i98: ; preds = %lor.rhs.i94 - %51 = load i32, ptr %minor8.i99, align 4 - %cmp9.i100 = icmp sgt i32 %51, %48 + %34 = load i32, ptr %minor8.i99, align 4 + %cmp9.i100 = icmp sgt i32 %34, %16 br i1 %cmp9.i100, label %fips_provider_version_ge.exit, label %lor.rhs11.i101 lor.rhs11.i101: ; preds = %land.rhs.i98 - %cmp13.i102 = icmp eq i32 %51, %48 - %52 = load i32, ptr %patch16.i103, align 4 - %cmp17.i104 = icmp sge i32 %52, %49 - %53 = select i1 %cmp13.i102, i1 %cmp17.i104, i1 false - br label %fips_provider_version_ge.exit - -fips_provider_version_ge.exit: ; preds = %if.then.i105, %if.end.i92, %lor.rhs.i94, %land.rhs.i98, %lor.rhs11.i101 - %retval.0.shrunk.i96 = phi i1 [ %cmp1.i106, %if.then.i105 ], [ true, %if.end.i92 ], [ false, %lor.rhs.i94 ], [ true, %land.rhs.i98 ], [ %53, %lor.rhs11.i101 ] - %retval.0.i97 = zext i1 %retval.0.shrunk.i96 to i32 + %cmp13.i102 = icmp eq i32 %34, %16 + %35 = load i32, ptr %patch16.i103, align 4 + %cmp17.i104 = icmp sge i32 %35, %17 + %36 = select i1 %cmp13.i102, i1 %cmp17.i104, i1 false call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i89) - br label %if.end100 + br i1 %36, label %while.cond.backedge, label %return + +fips_provider_version_ge.exit: ; preds = %if.end.i92, %land.rhs.i98 + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i89) + br label %while.cond.backedge + +default.unreachable129: ; preds = %if.end85 + unreachable + +if.end100: ; preds = %sw.bb + %37 = load i32, ptr %prov.i, align 4 + %cmp3.i = icmp eq i32 %37, %15 + %38 = load i32, ptr %minor5.i, align 4 + %cmp6.i = icmp eq i32 %38, %16 + %or.cond.i = select i1 %cmp3.i, i1 %cmp6.i, i1 false + %39 = load i32, ptr %patch8.i, align 4 + %cmp9.i = icmp eq i32 %39, %17 + %narrow.i = select i1 %or.cond.i, i1 %cmp9.i, i1 false + call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %prov.i) + br i1 %narrow.i, label %while.cond.backedge, label %return -if.end100: ; preds = %if.end85, %fips_provider_version_eq.exit, %fips_provider_version_ne.exit, %fips_provider_version_le.exit, %fips_provider_version_lt.exit, %fips_provider_version_gt.exit, %fips_provider_version_ge.exit - %r.1 = phi i32 [ %r.0, %if.end85 ], [ %retval.0.i97, %fips_provider_version_ge.exit ], [ %retval.0.i79, %fips_provider_version_gt.exit ], [ %retval.0.i61, %fips_provider_version_lt.exit ], [ %retval.0.i49, %fips_provider_version_le.exit ], [ %retval.0.i40, %fips_provider_version_ne.exit ], [ %retval.0.i, %fips_provider_version_eq.exit ] - %cmp101 = icmp eq i32 %r.1, 0 - br i1 %cmp101, label %return, label %while.cond, !llvm.loop !9 +while.cond.backedge: ; preds = %if.end100, %fips_provider_version_ne.exit, %if.then.i, %if.then.i41, %if.then.i51, %lor.rhs11.i, %fips_provider_version_le.exit, %if.then.i69, %lor.rhs11.i65, %fips_provider_version_lt.exit, %if.then.i87, %lor.rhs11.i83, %fips_provider_version_gt.exit, %if.then.i105, %lor.rhs11.i101, %fips_provider_version_ge.exit + %40 = load i8, ptr %versions.addr.2.lcssa.ph, align 1 + %cmp.not = icmp eq i8 %40, 0 + br i1 %cmp.not, label %return, label %for.cond.preheader, !llvm.loop !9 -return: ; preds = %while.cond, %for.end, %if.end100, %if.then84, %if.else73 - %retval.0 = phi i32 [ -1, %if.then84 ], [ -1, %if.else73 ], [ 1, %while.cond ], [ 1, %for.end ], [ 0, %if.end100 ] +return: ; preds = %if.then.i, %fips_provider_version_ne.exit, %if.end100, %for.end, %while.cond.backedge, %if.then.i41, %if.then.i51, %lor.rhs11.i, %if.then.i69, %lor.rhs11.i65, %if.then.i87, %lor.rhs11.i83, %if.then.i105, %lor.rhs11.i101, %entry, %fips_provider_version_ge.exit.thread, %fips_provider_version_gt.exit.thread, %fips_provider_version_lt.exit.thread, %fips_provider_version_le.exit.thread, %if.then84, %if.else73 + %retval.0 = phi i32 [ -1, %if.then84 ], [ -1, %if.else73 ], [ 0, %fips_provider_version_le.exit.thread ], [ 0, %fips_provider_version_lt.exit.thread ], [ 0, %fips_provider_version_gt.exit.thread ], [ 0, %fips_provider_version_ge.exit.thread ], [ 1, %entry ], [ 0, %lor.rhs11.i101 ], [ 0, %if.then.i105 ], [ 0, %lor.rhs11.i83 ], [ 0, %if.then.i87 ], [ 0, %lor.rhs11.i65 ], [ 0, %if.then.i69 ], [ 0, %lor.rhs11.i ], [ 0, %if.then.i51 ], [ 0, %if.then.i41 ], [ 1, %while.cond.backedge ], [ 1, %for.end ], [ 0, %if.end100 ], [ 0, %fips_provider_version_ne.exit ], [ 0, %if.then.i ] ret i32 %retval.0 } diff --git a/bench/openssl/optimized/openssl-bin-rsautl.ll b/bench/openssl/optimized/openssl-bin-rsautl.ll index 1e7dee78330..cbb2c38c479 100644 --- a/bench/openssl/optimized/openssl-bin-rsautl.ll +++ b/bench/openssl/optimized/openssl-bin-rsautl.ll @@ -263,11 +263,10 @@ if.then59: ; preds = %if.end56 br label %end if.end61: ; preds = %if.end56 - switch i8 %key_type.0, label %if.end61.unreachabledefault [ + switch i8 %key_type.0, label %default.unreachable149 [ i8 1, label %sw.bb63 i8 2, label %sw.bb65 i8 3, label %sw.bb67 - i8 0, label %return ] sw.bb63: ; preds = %if.end61 @@ -291,6 +290,9 @@ if.then70: ; preds = %sw.bb67 call void @X509_free(ptr noundef nonnull %call68) #2 br label %sw.epilog73 +default.unreachable149: ; preds = %if.end117, %if.end61 + unreachable + sw.epilog73: ; preds = %if.then70, %sw.bb65, %sw.bb63 %pkey.0 = phi ptr [ %call71, %if.then70 ], [ %call66, %sw.bb65 ], [ %call64, %sw.bb63 ] %cmp74 = icmp eq ptr %pkey.0, null @@ -353,7 +355,7 @@ if.end112: ; preds = %for.body, %for.cond br i1 %cmp114, label %end, label %if.end117 if.end117: ; preds = %if.end112 - switch i8 %rsa_mode.0, label %sw.epilog176 [ + switch i8 %rsa_mode.0, label %default.unreachable149 [ i8 2, label %sw.bb119 i8 1, label %sw.bb131 i8 3, label %sw.bb146 @@ -373,8 +375,6 @@ land.lhs.true123: ; preds = %sw.bb119 land.rhs: ; preds = %land.lhs.true123 %call128 = call i32 @EVP_PKEY_verify_recover(ptr noundef nonnull %call113, ptr noundef %call92, ptr noundef nonnull %rsa_outlen, ptr noundef %call90, i64 noundef %conv101) #2 - %cmp129 = icmp sgt i32 %call128, 0 - %10 = zext i1 %cmp129 to i32 br label %sw.epilog176 sw.bb131: ; preds = %if.end117 @@ -390,8 +390,6 @@ land.lhs.true135: ; preds = %sw.bb131 land.rhs140: ; preds = %land.lhs.true135 %call141 = call i32 @EVP_PKEY_sign(ptr noundef nonnull %call113, ptr noundef %call92, ptr noundef nonnull %rsa_outlen, ptr noundef %call90, i64 noundef %conv101) #2 - %cmp142 = icmp sgt i32 %call141, 0 - %11 = zext i1 %cmp142 to i32 br label %sw.epilog176 sw.bb146: ; preds = %if.end117 @@ -407,8 +405,6 @@ land.lhs.true150: ; preds = %sw.bb146 land.rhs155: ; preds = %land.lhs.true150 %call156 = call i32 @EVP_PKEY_encrypt(ptr noundef nonnull %call113, ptr noundef %call92, ptr noundef nonnull %rsa_outlen, ptr noundef %call90, i64 noundef %conv101) #2 - %cmp157 = icmp sgt i32 %call156, 0 - %12 = zext i1 %cmp157 to i32 br label %sw.epilog176 sw.bb161: ; preds = %if.end117 @@ -424,20 +420,18 @@ land.lhs.true165: ; preds = %sw.bb161 land.rhs170: ; preds = %land.lhs.true165 %call171 = call i32 @EVP_PKEY_decrypt(ptr noundef nonnull %call113, ptr noundef %call92, ptr noundef nonnull %rsa_outlen, ptr noundef %call90, i64 noundef %conv101) #2 - %cmp172 = icmp sgt i32 %call171, 0 - %13 = zext i1 %cmp172 to i32 br label %sw.epilog176 -sw.epilog176: ; preds = %land.rhs170, %land.rhs155, %land.rhs140, %land.rhs, %if.end117 - %rv.0 = phi i32 [ %call95, %if.end117 ], [ %10, %land.rhs ], [ %11, %land.rhs140 ], [ %12, %land.rhs155 ], [ %13, %land.rhs170 ] - %tobool177.not = icmp eq i32 %rv.0, 0 - br i1 %tobool177.not, label %if.then178, label %if.end180 +sw.epilog176: ; preds = %land.rhs170, %land.rhs155, %land.rhs140, %land.rhs + %rv.0.in.in = phi i32 [ %call128, %land.rhs ], [ %call141, %land.rhs140 ], [ %call156, %land.rhs155 ], [ %call171, %land.rhs170 ] + %rv.0.in = icmp slt i32 %rv.0.in.in, 1 + br i1 %rv.0.in, label %if.then178, label %if.end180 if.then178: ; preds = %sw.bb161, %land.lhs.true165, %sw.bb146, %land.lhs.true150, %sw.bb131, %land.lhs.true135, %sw.bb119, %land.lhs.true123, %sw.epilog176 - %14 = load ptr, ptr @bio_err, align 8 - %call179 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %14, ptr noundef nonnull @.str.64) #2 - %15 = load ptr, ptr @bio_err, align 8 - call void @ERR_print_errors(ptr noundef %15) #2 + %10 = load ptr, ptr @bio_err, align 8 + %call179 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %10, ptr noundef nonnull @.str.64) #2 + %11 = load ptr, ptr @bio_err, align 8 + call void @ERR_print_errors(ptr noundef %11) #2 br label %end if.end180: ; preds = %sw.epilog176 @@ -445,20 +439,20 @@ if.end180: ; preds = %sw.epilog176 br i1 %tobool181.not, label %if.else, label %if.then182 if.then182: ; preds = %if.end180 - %16 = load i64, ptr %rsa_outlen, align 8 - %call183 = call i32 @ASN1_parse_dump(ptr noundef nonnull %call83, ptr noundef %call92, i64 noundef %16, i32 noundef 1, i32 noundef -1) #2 + %12 = load i64, ptr %rsa_outlen, align 8 + %call183 = call i32 @ASN1_parse_dump(ptr noundef nonnull %call83, ptr noundef %call92, i64 noundef %12, i32 noundef 1, i32 noundef -1) #2 %tobool184.not = icmp eq i32 %call183, 0 br i1 %tobool184.not, label %if.then185, label %end if.then185: ; preds = %if.then182 - %17 = load ptr, ptr @bio_err, align 8 - call void @ERR_print_errors(ptr noundef %17) #2 + %13 = load ptr, ptr @bio_err, align 8 + call void @ERR_print_errors(ptr noundef %13) #2 br label %end if.else: ; preds = %if.end180 %tobool187.not = icmp eq i32 %hexdump.0, 0 - %18 = load i64, ptr %rsa_outlen, align 8 - %conv192 = trunc i64 %18 to i32 + %14 = load i64, ptr %rsa_outlen, align 8 + %conv192 = trunc i64 %14 to i32 br i1 %tobool187.not, label %if.else191, label %if.then188 if.then188: ; preds = %if.else @@ -484,15 +478,12 @@ end: ; preds = %sw.bb38, %sw.bb32, call void @BIO_free_all(ptr noundef %out.0) #2 call void @CRYPTO_free(ptr noundef %rsa_in.0, ptr noundef nonnull @.str.65, i32 noundef 288) #2 call void @CRYPTO_free(ptr noundef %rsa_out.0, ptr noundef nonnull @.str.65, i32 noundef 289) #2 - %19 = load ptr, ptr %passin, align 8 - call void @CRYPTO_free(ptr noundef %19, ptr noundef nonnull @.str.65, i32 noundef 290) #2 + %15 = load ptr, ptr %passin, align 8 + call void @CRYPTO_free(ptr noundef %15, ptr noundef nonnull @.str.65, i32 noundef 290) #2 br label %return -if.end61.unreachabledefault: ; preds = %if.end61 - unreachable - -return: ; preds = %if.end61, %sw.bb67, %sw.epilog73, %end - %retval.0 = phi i32 [ %ret.0, %end ], [ 1, %sw.epilog73 ], [ 1, %if.end61 ], [ 1, %sw.bb67 ] +return: ; preds = %sw.bb67, %sw.epilog73, %end + %retval.0 = phi i32 [ %ret.0, %end ], [ 1, %sw.epilog73 ], [ 1, %sw.bb67 ] ret i32 %retval.0 } diff --git a/bench/openssl/optimized/openssl-bin-s_client.ll b/bench/openssl/optimized/openssl-bin-s_client.ll index 5e2f702144f..5f419632f85 100644 --- a/bench/openssl/optimized/openssl-bin-s_client.ll +++ b/bench/openssl/optimized/openssl-bin-s_client.ll @@ -7180,7 +7180,7 @@ declare i32 @ASN1_get_object(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ; Function Attrs: nounwind uwtable define internal fastcc noundef i32 @user_data_execute(ptr nocapture noundef %user_data, i32 noundef %cmd, ptr noundef %arg) unnamed_addr #0 { entry: - switch i32 %cmd, label %sw.epilog [ + switch i32 %cmd, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb20 i32 2, label %sw.bb22 @@ -7295,7 +7295,10 @@ if.end58: ; preds = %sw.bb53 store i32 1, ptr %isfin, align 4 br label %return -sw.epilog: ; preds = %entry, %sw.bb53, %if.end46, %sw.bb29 +default.unreachable: ; preds = %entry + unreachable + +sw.epilog: ; preds = %sw.bb53, %if.end46, %sw.bb29 %25 = load ptr, ptr @bio_err, align 8 %call59 = tail call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %25, ptr noundef nonnull @.str.520) #16 %26 = load ptr, ptr @bio_err, align 8 diff --git a/bench/openssl/optimized/openssl-bin-storeutl.ll b/bench/openssl/optimized/openssl-bin-storeutl.ll index 45104b8fe1e..8445f371e97 100644 --- a/bench/openssl/optimized/openssl-bin-storeutl.ll +++ b/bench/openssl/optimized/openssl-bin-storeutl.ll @@ -387,11 +387,12 @@ if.end113: ; preds = %while.end br i1 %tobool116.not, label %opthelp, label %if.end118 if.end118: ; preds = %if.end113 - switch i32 %criterion.0, label %if.end148 [ - i32 4, label %sw.bb142 + switch i32 %criterion.0, label %default.unreachable616 [ + i32 0, label %if.end148 i32 1, label %sw.bb121 i32 2, label %sw.bb126 i32 3, label %sw.bb137 + i32 4, label %sw.bb142 ] sw.bb121: ; preds = %if.end118 @@ -446,6 +447,9 @@ if.then145: ; preds = %sw.bb142 call void @ERR_print_errors(ptr noundef %25) #4 br label %end +default.unreachable616: ; preds = %if.end118 + unreachable + if.end148: ; preds = %if.end118, %sw.bb121, %if.end132, %sw.bb137, %sw.bb142 %search.0 = phi ptr [ %call143, %sw.bb142 ], [ %call138, %sw.bb137 ], [ %call133, %if.end132 ], [ %call122, %sw.bb121 ], [ null, %if.end118 ] %call149 = call i32 @app_passwd(ptr noundef %passinarg.0, ptr noundef null, ptr noundef nonnull %passin, ptr noundef null) #4 diff --git a/bench/openssl/optimized/shlibloadtest-bin-shlibloadtest.ll b/bench/openssl/optimized/shlibloadtest-bin-shlibloadtest.ll index b0778c402ff..067e6068733 100644 --- a/bench/openssl/optimized/shlibloadtest-bin-shlibloadtest.ll +++ b/bench/openssl/optimized/shlibloadtest-bin-shlibloadtest.ll @@ -48,7 +48,7 @@ target triple = "x86_64-unknown-linux-gnu" @atexit_handler_done = internal unnamed_addr global i32 0, align 4 ; Function Attrs: nounwind uwtable -define dso_local i32 @main(i32 noundef %argc, ptr nocapture noundef readonly %argv) local_unnamed_addr #0 { +define dso_local noundef i32 @main(i32 noundef %argc, ptr nocapture noundef readonly %argv) local_unnamed_addr #0 { entry: %ssllib.i = alloca ptr, align 8 %cryptolib.i = alloca ptr, align 8 @@ -95,6 +95,7 @@ if.else19: ; preds = %if.else15 if.end25: ; preds = %if.else15, %if.else11, %if.else7, %if.else, %if.end %.sink = phi i32 [ 0, %if.end ], [ 1, %if.else ], [ 2, %if.else7 ], [ 3, %if.else11 ], [ 4, %if.else15 ] + %switch.i = phi i1 [ false, %if.end ], [ true, %if.else ], [ false, %if.else7 ], [ false, %if.else11 ], [ false, %if.else15 ] store i32 %.sink, ptr @test_type, align 4 %arrayidx26 = getelementptr inbounds ptr, ptr %argv, i64 2 %5 = load ptr, ptr %arrayidx26, align 8 @@ -121,15 +122,9 @@ if.end33: ; preds = %if.end25 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %symbols.i) store ptr null, ptr %ssllib.i, align 8 store ptr null, ptr %cryptolib.i, align 8 - switch i32 %.sink, label %if.then36.i [ - i32 2, label %sw.bb.i - i32 3, label %sw.bb.i - i32 4, label %sw.bb.i - i32 0, label %sw.bb.i - i32 1, label %sw.bb4.i - ] - -sw.bb.i: ; preds = %if.end33, %if.end33, %if.end33, %if.end33 + br i1 %switch.i, label %sw.bb4.i, label %sw.bb.i + +sw.bb.i: ; preds = %if.end33 %call.i = call i32 @sd_load(ptr noundef nonnull %5, ptr noundef nonnull %cryptolib.i, i32 noundef 257) #9 %tobool.not.i = icmp eq i32 %call.i, 0 br i1 %tobool.not.i, label %if.then.i, label %if.end.i @@ -216,7 +211,7 @@ if.end31.i: ; preds = %if.end24.if.end31_c %or.cond1.i = icmp ult i32 %28, -3 br i1 %or.cond1.i, label %if.then36.i, label %if.end59.i -if.then36.i: ; preds = %if.end33, %if.end31.i +if.then36.i: ; preds = %if.end31.i %29 = load ptr, ptr %ssllib.i, align 8 %call38.i = call i32 @sd_sym(ptr noundef %29, ptr noundef nonnull @.str.13, ptr noundef nonnull %symbols.i) #9 %tobool39.not.i = icmp eq i32 %call38.i, 0 @@ -415,16 +410,16 @@ if.end142.i: ; preds = %if.then137.i end.i: ; preds = %if.end142.i, %if.then140.i, %if.then131.i, %if.then124.i, %if.then117.i, %if.then105.i, %if.then99.i, %if.then85.i, %if.then79.i, %if.then56.i, %if.then47.i, %if.then28.i, %if.then22.i, %if.then15.i, %if.then7.i, %if.then.i %result.0.ph.i = phi i32 [ 1, %if.end142.i ], [ 0, %if.then.i ], [ 0, %if.then7.i ], [ 0, %if.then15.i ], [ 0, %if.then22.i ], [ 0, %if.then28.i ], [ 0, %if.then47.i ], [ 0, %if.then79.i ], [ 0, %if.then105.i ], [ 0, %if.then117.i ], [ 0, %if.then131.i ], [ 0, %if.then140.i ], [ 0, %if.then124.i ], [ 0, %if.then99.i ], [ 0, %if.then85.i ], [ 0, %if.then56.i ] - %.pr8.i = load ptr, ptr %cryptolib.i, align 8 - %cmp144.not.i = icmp eq ptr %.pr8.i, null + %.pr7.i = load ptr, ptr %cryptolib.i, align 8 + %cmp144.not.i = icmp eq ptr %.pr7.i, null br i1 %cmp144.not.i, label %if.end147.i, label %if.then145.i if.then145.i: ; preds = %end.i - %call146.i = call i32 @sd_close(ptr noundef nonnull %.pr8.i) #9 + %call146.i = call i32 @sd_close(ptr noundef nonnull %.pr7.i) #9 br label %if.end147.i if.end147.i: ; preds = %if.then145.i, %end.i, %if.end133.i - %result.011.i = phi i32 [ %result.0.ph.i, %if.then145.i ], [ %result.0.ph.i, %end.i ], [ 1, %if.end133.i ] + %result.010.i = phi i32 [ %result.0.ph.i, %if.then145.i ], [ %result.0.ph.i, %end.i ], [ 1, %if.end133.i ] %73 = load ptr, ptr %ssllib.i, align 8 %cmp148.not.i = icmp eq ptr %73, null br i1 %cmp148.not.i, label %test_lib.exit, label %if.then149.i @@ -437,7 +432,7 @@ test_lib.exit: ; preds = %if.end147.i, %if.th call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ssllib.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %cryptolib.i) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %symbols.i) - %tobool.not = icmp eq i32 %result.011.i, 0 + %tobool.not = icmp eq i32 %result.010.i, 0 %. = zext i1 %tobool.not to i32 br label %return diff --git a/bench/openssl/optimized/ssl_test-bin-handshake.ll b/bench/openssl/optimized/ssl_test-bin-handshake.ll index 3511251392f..d2893c5b563 100644 --- a/bench/openssl/optimized/ssl_test-bin-handshake.ll +++ b/bench/openssl/optimized/ssl_test-bin-handshake.ll @@ -764,59 +764,58 @@ if.end83: ; preds = %lor.lhs.false77 br label %for.cond.outer.outer.outer for.cond.outer.outer.outer: ; preds = %if.then153, %if.end83 - %.ph239.ph.ph = phi i32 [ %47, %if.then153 ], [ 1, %if.end83 ] + %.ph240.ph.ph = phi i32 [ %45, %if.then153 ], [ 1, %if.end83 ] %.ph241.ph.ph = phi i32 [ 0, %if.then153 ], [ 3, %if.end83 ] - %.ph242.ph.ph = phi i32 [ %49, %if.then153 ], [ 1, %if.end83 ] + %.ph242.ph.ph = phi i32 [ %47, %if.then153 ], [ 1, %if.end83 ] %client_turn_count.0.ph.ph.ph = phi i32 [ %inc, %if.then153 ], [ 0, %if.end83 ] %client_wait_count.0.ph.ph.ph = phi i32 [ %inc154, %if.then153 ], [ 0, %if.end83 ] - %phase.0.ph.ph.ph = phi i32 [ %phase.0.ph.ph.ph254, %if.then153 ], [ 0, %if.end83 ] - br label %for.cond.outer.outer.outer247 - -for.cond.outer.outer.outer247: ; preds = %for.cond.outer.outer.outer, %if.else110 - %.ph239.ph.ph249 = phi i32 [ %.ph239.ph.ph, %for.cond.outer.outer.outer ], [ 1, %if.else110 ] - %.ph241.ph.ph251 = phi i32 [ %.ph241.ph.ph, %for.cond.outer.outer.outer ], [ 1, %if.else110 ] - %.ph242.ph.ph252 = phi i32 [ %.ph242.ph.ph, %for.cond.outer.outer.outer ], [ 1, %if.else110 ] - %client_turn_count.0.ph.ph.ph253 = phi i32 [ %client_turn_count.0.ph.ph.ph, %for.cond.outer.outer.outer ], [ 0, %if.else110 ] - %phase.0.ph.ph.ph254 = phi i32 [ %phase.0.ph.ph.ph, %for.cond.outer.outer.outer ], [ %retval.0.i113.ph, %if.else110 ] + %phase.0.ph.ph.ph = phi i32 [ %phase.0.ph.ph.ph249, %if.then153 ], [ 0, %if.end83 ] + br label %for.cond.outer.outer.outer243 + +for.cond.outer.outer.outer243: ; preds = %for.cond.outer.outer.outer, %if.else110 + %.ph240.ph.ph245 = phi i32 [ %.ph240.ph.ph, %for.cond.outer.outer.outer ], [ 1, %if.else110 ] + %.ph241.ph.ph246 = phi i32 [ %.ph241.ph.ph, %for.cond.outer.outer.outer ], [ 1, %if.else110 ] + %.ph242.ph.ph247 = phi i32 [ %.ph242.ph.ph, %for.cond.outer.outer.outer ], [ 1, %if.else110 ] + %client_turn_count.0.ph.ph.ph248 = phi i32 [ %client_turn_count.0.ph.ph.ph, %for.cond.outer.outer.outer ], [ 0, %if.else110 ] + %phase.0.ph.ph.ph249 = phi i32 [ %phase.0.ph.ph.ph, %for.cond.outer.outer.outer ], [ %retval.0.i113.ph, %if.else110 ] br label %for.cond.outer.outer -for.cond.outer.outer: ; preds = %for.cond.outer.outer.outer247, %if.else160 - %.ph239.ph = phi i32 [ %47, %if.else160 ], [ %.ph239.ph.ph249, %for.cond.outer.outer.outer247 ] - %.ph241.ph = phi i32 [ %46, %if.else160 ], [ %.ph241.ph.ph251, %for.cond.outer.outer.outer247 ] - %.ph242.ph = phi i32 [ %49, %if.else160 ], [ %.ph242.ph.ph252, %for.cond.outer.outer.outer247 ] - %client_turn.0.ph.ph = phi i32 [ %xor161, %if.else160 ], [ 1, %for.cond.outer.outer.outer247 ] - %client_turn_count.0.ph.ph = phi i32 [ %inc, %if.else160 ], [ %client_turn_count.0.ph.ph.ph253, %for.cond.outer.outer.outer247 ] +for.cond.outer.outer: ; preds = %for.cond.outer.outer.outer243, %if.else160 + %.ph240.ph = phi i32 [ %45, %if.else160 ], [ %.ph240.ph.ph245, %for.cond.outer.outer.outer243 ] + %.ph241.ph = phi i32 [ %44, %if.else160 ], [ %.ph241.ph.ph246, %for.cond.outer.outer.outer243 ] + %.ph242.ph = phi i32 [ %47, %if.else160 ], [ %.ph242.ph.ph247, %for.cond.outer.outer.outer243 ] + %client_turn.0.ph.ph = phi i32 [ %xor161, %if.else160 ], [ 1, %for.cond.outer.outer.outer243 ] + %client_turn_count.0.ph.ph = phi i32 [ %inc, %if.else160 ], [ %client_turn_count.0.ph.ph.ph248, %for.cond.outer.outer.outer243 ] br label %for.cond.outer for.cond.outer: ; preds = %for.cond.outer.outer, %if.then140 - %.ph = phi i32 [ %46, %if.then140 ], [ %.ph241.ph, %for.cond.outer.outer ] - %.ph239 = phi i32 [ %47, %if.then140 ], [ %.ph239.ph, %for.cond.outer.outer ] - %.ph241 = phi i32 [ %48, %if.then140 ], [ %.ph241.ph, %for.cond.outer.outer ] - %.ph242 = phi i32 [ %51, %if.then140 ], [ %.ph242.ph, %for.cond.outer.outer ] + %.ph = phi i32 [ %44, %if.then140 ], [ %.ph241.ph, %for.cond.outer.outer ] + %.ph240 = phi i32 [ %45, %if.then140 ], [ %.ph240.ph, %for.cond.outer.outer ] + %.ph241 = phi i32 [ %46, %if.then140 ], [ %.ph241.ph, %for.cond.outer.outer ] + %.ph242 = phi i32 [ %49, %if.then140 ], [ %.ph242.ph, %for.cond.outer.outer ] %client_turn.0.ph = phi i32 [ %xor, %if.then140 ], [ %client_turn.0.ph.ph, %for.cond.outer.outer ] %tobool89 = icmp ne i32 %client_turn.0.ph, 0 %tobool135 = icmp eq i32 %client_turn.0.ph, 0 br label %for.cond -for.cond: ; preds = %for.cond.backedge, %for.cond.outer - %33 = phi i32 [ %.ph, %for.cond.outer ], [ %.be, %for.cond.backedge ] - %34 = phi i32 [ %.ph239, %for.cond.outer ], [ %.be246, %for.cond.backedge ] - %35 = phi i32 [ %.ph241, %for.cond.outer ], [ %.be244, %for.cond.backedge ] - %36 = phi i32 [ %.ph241, %for.cond.outer ], [ %.be245, %for.cond.backedge ] - %37 = phi i32 [ %.ph242, %for.cond.outer ], [ %.be246, %for.cond.backedge ] +for.cond: ; preds = %for.cond.outer, %lor.lhs.false134 + %33 = phi i32 [ %44, %lor.lhs.false134 ], [ %.ph, %for.cond.outer ] + %34 = phi i32 [ %45, %lor.lhs.false134 ], [ %.ph240, %for.cond.outer ] + %35 = phi i32 [ %46, %lor.lhs.false134 ], [ %.ph241, %for.cond.outer ] + %36 = phi i32 [ %45, %lor.lhs.false134 ], [ %.ph242, %for.cond.outer ] br i1 %tobool89, label %if.then90, label %if.else100 if.then90: ; preds = %for.cond - call fastcc void @do_connect_step(ptr noundef %test_ctx, ptr noundef nonnull %client, i32 noundef %phase.0.ph.ph.ph254) - %38 = load i32, ptr %status86, align 4 - switch i32 %38, label %handshake_status.exit [ + call fastcc void @do_connect_step(ptr noundef %test_ctx, ptr noundef nonnull %client, i32 noundef %phase.0.ph.ph.ph249) + %37 = load i32, ptr %status86, align 4 + switch i32 %37, label %handshake_status.exit [ i32 2, label %sw.bb8.i i32 1, label %sw.bb7.i i32 0, label %sw.bb2.i ] sw.bb2.i: ; preds = %if.then90 - switch i32 %36, label %handshake_status.exit [ + switch i32 %35, label %handshake_status.exit [ i32 1, label %sw.bb5.i i32 0, label %sw.bb i32 3, label %sw.bb5.i @@ -829,7 +828,7 @@ sw.bb7.i: ; preds = %if.then90 br label %handshake_status.exit sw.bb8.i: ; preds = %if.then90 - switch i32 %36, label %sw.bb117 [ + switch i32 %35, label %default.unreachable239 [ i32 2, label %sw.bb115 i32 3, label %if.then97 i32 0, label %sw.bb113 @@ -838,7 +837,7 @@ sw.bb8.i: ; preds = %if.then90 handshake_status.exit: ; preds = %if.then90, %sw.bb2.i, %sw.bb5.i, %sw.bb7.i %retval.0.i100 = phi i32 [ 4, %sw.bb7.i ], [ 4, %sw.bb5.i ], [ 3, %sw.bb2.i ], [ 3, %if.then90 ] - %cmp95 = icmp eq i32 %36, 3 + %cmp95 = icmp eq i32 %35, 3 br i1 %cmp95, label %if.then97, label %if.end104 if.then97: ; preds = %sw.bb8.i, %handshake_status.exit @@ -847,34 +846,33 @@ if.then97: ; preds = %sw.bb8.i, %handshak br label %if.end104 if.else100: ; preds = %for.cond - call fastcc void @do_connect_step(ptr noundef %test_ctx, ptr noundef nonnull %server, i32 noundef %phase.0.ph.ph.ph254) - %39 = load i32, ptr %status87, align 4 - switch i32 %39, label %sw.bb117 [ + call fastcc void @do_connect_step(ptr noundef %test_ctx, ptr noundef nonnull %server, i32 noundef %phase.0.ph.ph.ph249) + %38 = load i32, ptr %status87, align 4 + switch i32 %38, label %sw.bb117 [ i32 2, label %sw.bb8.i106 i32 1, label %sw.bb119 i32 0, label %sw.bb2.i101 ] sw.bb2.i101: ; preds = %if.else100 - switch i32 %37, label %sw.bb117 [ + switch i32 %36, label %sw.bb117 [ i32 1, label %sw.bb119 i32 0, label %sw.bb i32 3, label %sw.bb119 ] sw.bb8.i106: ; preds = %if.else100 - switch i32 %37, label %sw.bb117 [ + switch i32 %36, label %sw.bb117 [ i32 2, label %sw.bb113 i32 1, label %sw.bb119 i32 0, label %sw.bb115 ] if.end104: ; preds = %handshake_status.exit, %if.then97 - %40 = phi i32 [ 1, %if.then97 ], [ %33, %handshake_status.exit ] - %41 = phi i32 [ 1, %if.then97 ], [ %35, %handshake_status.exit ] - %42 = phi i32 [ 1, %if.then97 ], [ %36, %handshake_status.exit ] + %39 = phi i32 [ 1, %if.then97 ], [ %33, %handshake_status.exit ] + %40 = phi i32 [ 1, %if.then97 ], [ %35, %handshake_status.exit ] %status.0 = phi i32 [ %retval.0.i100214, %if.then97 ], [ %retval.0.i100, %handshake_status.exit ] - switch i32 %status.0, label %for.cond.backedge [ + switch i32 %status.0, label %default.unreachable239 [ i32 4, label %sw.bb119 i32 1, label %sw.bb113 i32 2, label %sw.bb115 @@ -882,7 +880,7 @@ if.end104: ; preds = %handshake_status.ex ] sw.bb: ; preds = %sw.bb2.i, %sw.bb2.i101 - switch i32 %phase.0.ph.ph.ph254, label %sw.epilog.i117 [ + switch i32 %phase.0.ph.ph.ph249, label %sw.epilog.i117 [ i32 0, label %sw.bb.i i32 1, label %if.else110 i32 2, label %sw.bb4.i115 @@ -893,20 +891,20 @@ sw.bb: ; preds = %sw.bb2.i, %sw.bb2.i sw.bb.i: ; preds = %sw.bb %test_ctx.val.i = load i32, ptr %32, align 4 - %43 = and i32 %test_ctx.val.i, -2 - %switch.i.not.i = icmp eq i32 %43, 2 + %41 = and i32 %test_ctx.val.i, -2 + %switch.i.not.i = icmp eq i32 %41, 2 br i1 %switch.i.not.i, label %if.else110, label %lor.lhs.false.i116 lor.lhs.false.i116: ; preds = %sw.bb.i - %44 = add i32 %test_ctx.val.i, -7 - %switch.i5.i = icmp ult i32 %44, -3 + %42 = add i32 %test_ctx.val.i, -7 + %switch.i5.i = icmp ult i32 %42, -3 %spec.select.i = select i1 %switch.i5.i, i32 4, i32 1 br label %if.else110 sw.bb4.i115: ; preds = %sw.bb %test_ctx.val4.i = load i32, ptr %32, align 4 - %45 = add i32 %test_ctx.val4.i, -7 - %switch.i8.i = icmp ult i32 %45, -3 + %43 = add i32 %test_ctx.val4.i, -7 + %switch.i8.i = icmp ult i32 %43, -3 %..i = select i1 %switch.i8.i, i32 3, i32 4 br label %if.else110 @@ -927,7 +925,7 @@ if.else110: ; preds = %sw.epilog.i117, %sw %retval.0.i113.ph = phi i32 [ %spec.select.i, %lor.lhs.false.i116 ], [ %..i, %sw.bb4.i115 ], [ 2, %sw.bb ], [ 1, %sw.bb.i ], [ 4, %sw.bb9.i ], [ 5, %sw.bb10.i114 ], [ -1, %sw.epilog.i117 ] store i32 1, ptr %status87, align 4 store i32 1, ptr %status86, align 4 - br label %for.cond.outer.outer.outer247 + br label %for.cond.outer.outer.outer243 sw.bb113: ; preds = %sw.bb8.i, %sw.bb8.i106, %if.end104 store i32 2, ptr %call.i, align 8 @@ -937,17 +935,20 @@ sw.bb115: ; preds = %sw.bb8.i, %sw.bb8.i store i32 1, ptr %call.i, align 8 br label %err -sw.bb117: ; preds = %sw.bb8.i, %if.else100, %sw.bb2.i101, %sw.bb8.i106, %if.end104 +default.unreachable239: ; preds = %if.end104, %sw.bb8.i + unreachable + +sw.bb117: ; preds = %if.else100, %sw.bb2.i101, %sw.bb8.i106, %if.end104 store i32 3, ptr %call.i, align 8 br label %err sw.bb119: ; preds = %sw.bb8.i106, %if.end104, %sw.bb8.i, %if.else100, %sw.bb2.i101, %sw.bb2.i101 - %46 = phi i32 [ 2, %sw.bb8.i106 ], [ %40, %if.end104 ], [ %33, %sw.bb8.i ], [ %39, %if.else100 ], [ 0, %sw.bb2.i101 ], [ 0, %sw.bb2.i101 ] - %47 = phi i32 [ %34, %sw.bb8.i106 ], [ %38, %if.end104 ], [ 2, %sw.bb8.i ], [ %34, %if.else100 ], [ %34, %sw.bb2.i101 ], [ %34, %sw.bb2.i101 ] - %48 = phi i32 [ 2, %sw.bb8.i106 ], [ %41, %if.end104 ], [ %35, %sw.bb8.i ], [ %39, %if.else100 ], [ 0, %sw.bb2.i101 ], [ 0, %sw.bb2.i101 ] - %49 = phi i32 [ %37, %sw.bb8.i106 ], [ %38, %if.end104 ], [ 2, %sw.bb8.i ], [ %37, %if.else100 ], [ %37, %sw.bb2.i101 ], [ %37, %sw.bb2.i101 ] - %50 = load i32, ptr %use_sctp, align 8 - %tobool121.not = icmp eq i32 %50, 0 + %44 = phi i32 [ 2, %sw.bb8.i106 ], [ %39, %if.end104 ], [ %33, %sw.bb8.i ], [ %38, %if.else100 ], [ 0, %sw.bb2.i101 ], [ 0, %sw.bb2.i101 ] + %45 = phi i32 [ %34, %sw.bb8.i106 ], [ %37, %if.end104 ], [ 2, %sw.bb8.i ], [ %34, %if.else100 ], [ %34, %sw.bb2.i101 ], [ %34, %sw.bb2.i101 ] + %46 = phi i32 [ 2, %sw.bb8.i106 ], [ %40, %if.end104 ], [ %35, %sw.bb8.i ], [ %38, %if.else100 ], [ 0, %sw.bb2.i101 ], [ 0, %sw.bb2.i101 ] + %47 = phi i32 [ %36, %sw.bb8.i106 ], [ %37, %if.end104 ], [ 2, %sw.bb8.i ], [ %36, %if.else100 ], [ %36, %sw.bb2.i101 ], [ %36, %sw.bb2.i101 ] + %48 = load i32, ptr %use_sctp, align 8 + %tobool121.not = icmp eq i32 %48, 0 br i1 %tobool121.not, label %if.else142, label %if.then122 if.then122: ; preds = %sw.bb119 @@ -961,24 +962,17 @@ if.then126: ; preds = %if.then122 br label %err if.end128: ; preds = %if.then122 - %cmp132 = icmp eq i32 %48, 1 + %cmp132 = icmp eq i32 %46, 1 %or.cond = select i1 %tobool89, i1 %cmp132, i1 false br i1 %or.cond, label %if.then140, label %lor.lhs.false134 lor.lhs.false134: ; preds = %if.end128 - %cmp138 = icmp eq i32 %47, 1 + %cmp138 = icmp eq i32 %45, 1 %or.cond1 = select i1 %tobool135, i1 %cmp138, i1 false - br i1 %or.cond1, label %if.then140, label %for.cond.backedge - -for.cond.backedge: ; preds = %lor.lhs.false134, %if.end104 - %.be = phi i32 [ %40, %if.end104 ], [ %46, %lor.lhs.false134 ] - %.be244 = phi i32 [ %41, %if.end104 ], [ %48, %lor.lhs.false134 ] - %.be245 = phi i32 [ %42, %if.end104 ], [ %48, %lor.lhs.false134 ] - %.be246 = phi i32 [ %38, %if.end104 ], [ %47, %lor.lhs.false134 ] - br label %for.cond + br i1 %or.cond1, label %if.then140, label %for.cond if.then140: ; preds = %lor.lhs.false134, %if.end128 - %51 = phi i32 [ 1, %lor.lhs.false134 ], [ %49, %if.end128 ] + %49 = phi i32 [ 1, %lor.lhs.false134 ], [ %47, %if.end128 ] %xor = xor i32 %client_turn.0.ph, 1 br label %for.cond.outer @@ -992,7 +986,7 @@ if.then145: ; preds = %if.else142 br label %err if.end147: ; preds = %if.else142 - %cmp151 = icmp eq i32 %46, 0 + %cmp151 = icmp eq i32 %44, 0 %or.cond2 = select i1 %tobool89, i1 %cmp151, i1 false br i1 %or.cond2, label %if.then153, label %if.else160 @@ -1011,70 +1005,70 @@ if.else160: ; preds = %if.end147 err: ; preds = %if.end68, %lor.lhs.false72, %lor.lhs.false77, %if.else56, %lor.lhs.false61, %if.end39, %lor.lhs.false42, %land.lhs.true, %lor.lhs.false, %if.then157, %if.then145, %if.then126, %sw.bb117, %sw.bb115, %sw.bb113, %if.then108, %if.then10, %if.then6 %server_alert_sent = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 4 - %52 = load <2 x i32>, ptr %server_ex_data, align 8 - store <2 x i32> %52, ptr %server_alert_sent, align 8 + %50 = load <2 x i32>, ptr %server_ex_data, align 8 + store <2 x i32> %50, ptr %server_alert_sent, align 8 %alert_received = getelementptr inbounds %struct.handshake_ex_data_st, ptr %client_ex_data, i64 0, i32 2 - %53 = load i32, ptr %alert_received, align 8 + %51 = load i32, ptr %alert_received, align 8 %server_alert_received = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 6 - store i32 %53, ptr %server_alert_received, align 8 + store i32 %51, ptr %server_alert_received, align 8 %client_alert_sent = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 1 - %54 = load <2 x i32>, ptr %client_ex_data, align 8 - store <2 x i32> %54, ptr %client_alert_sent, align 4 + %52 = load <2 x i32>, ptr %client_ex_data, align 8 + store <2 x i32> %52, ptr %client_alert_sent, align 4 %alert_received166 = getelementptr inbounds %struct.handshake_ex_data_st, ptr %server_ex_data, i64 0, i32 2 - %55 = load i32, ptr %alert_received166, align 8 + %53 = load i32, ptr %alert_received166, align 8 %client_alert_received = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 3 - store i32 %55, ptr %client_alert_received, align 4 - %56 = load ptr, ptr %server, align 8 - %call168 = call i32 @SSL_version(ptr noundef %56) #10 + store i32 %53, ptr %client_alert_received, align 4 + %54 = load ptr, ptr %server, align 8 + %call168 = call i32 @SSL_version(ptr noundef %54) #10 %server_protocol = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 7 store i32 %call168, ptr %server_protocol, align 4 - %57 = load ptr, ptr %client, align 8 - %call170 = call i32 @SSL_version(ptr noundef %57) #10 + %55 = load ptr, ptr %client, align 8 + %call170 = call i32 @SSL_version(ptr noundef %55) #10 %client_protocol = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 8 store i32 %call170, ptr %client_protocol, align 8 %servername = getelementptr inbounds %struct.handshake_ex_data_st, ptr %server_ex_data, i64 0, i32 4 - %58 = load i32, ptr %servername, align 8 + %56 = load i32, ptr %servername, align 8 %servername171 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 9 - store i32 %58, ptr %servername171, align 4 - %call173 = call ptr @SSL_get_session(ptr noundef %57) #10 + store i32 %56, ptr %servername171, align 4 + %call173 = call ptr @SSL_get_session(ptr noundef %55) #10 %cmp174.not = icmp eq ptr %call173, null br i1 %cmp174.not, label %if.end178, label %if.then176 if.then176: ; preds = %err call void @SSL_SESSION_get0_ticket(ptr noundef nonnull %call173, ptr noundef nonnull %tick, ptr noundef nonnull %tick_len) #10 %call177 = call ptr @SSL_SESSION_get_id(ptr noundef nonnull %call173, ptr noundef nonnull %sess_id_len) #10 - %59 = icmp eq ptr %call177, null + %57 = icmp eq ptr %call177, null br label %if.end178 if.end178: ; preds = %if.then176, %err - %sess_id.0 = phi i1 [ %59, %if.then176 ], [ true, %err ] - %60 = load ptr, ptr %tick, align 8 - %cmp179 = icmp eq ptr %60, null - %61 = load i64, ptr %tick_len, align 8 - %cmp182 = icmp eq i64 %61, 0 + %sess_id.0 = phi i1 [ %57, %if.then176 ], [ true, %err ] + %58 = load ptr, ptr %tick, align 8 + %cmp179 = icmp eq ptr %58, null + %59 = load i64, ptr %tick_len, align 8 + %cmp182 = icmp eq i64 %59, 0 %or.cond3 = select i1 %cmp179, i1 true, i1 %cmp182 %spec.select = select i1 %or.cond3, i32 2, i32 1 - %62 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 10 - store i32 %spec.select, ptr %62, align 8 - %call189 = call ptr @SSL_get_current_compression(ptr noundef %57) #10 + %60 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 10 + store i32 %spec.select, ptr %60, align 8 + %call189 = call ptr @SSL_get_current_compression(ptr noundef %55) #10 %cmp190 = icmp ne ptr %call189, null %cond = zext i1 %cmp190 to i32 %compression = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 11 store i32 %cond, ptr %compression, align 4 - %63 = load i32, ptr %sess_id_len, align 4 - %cmp195 = icmp eq i32 %63, 0 + %61 = load i32, ptr %sess_id_len, align 4 + %cmp195 = icmp eq i32 %61, 0 %or.cond4 = select i1 %sess_id.0, i1 true, i1 %cmp195 %.sink238 = select i1 %or.cond4, i32 2, i32 1 - %64 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 28 - store i32 %.sink238, ptr %64, align 8 + %62 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 28 + store i32 %.sink238, ptr %62, align 8 %session_ticket_do_not_call = getelementptr inbounds %struct.handshake_ex_data_st, ptr %server_ex_data, i64 0, i32 3 - %65 = load i32, ptr %session_ticket_do_not_call, align 4 + %63 = load i32, ptr %session_ticket_do_not_call, align 4 %session_ticket_do_not_call201 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 12 - store i32 %65, ptr %session_ticket_do_not_call201, align 8 - %66 = load i32, ptr %extra, align 8 - %cmp203 = icmp eq i32 %66, 2 - %67 = load i32, ptr @n_retries, align 4 - %cmp206 = icmp ne i32 %67, -1 + store i32 %63, ptr %session_ticket_do_not_call201, align 8 + %64 = load i32, ptr %extra, align 8 + %cmp203 = icmp eq i32 %64, 2 + %65 = load i32, ptr @n_retries, align 4 + %cmp206 = icmp ne i32 %65, -1 %or.cond5 = select i1 %cmp203, i1 %cmp206, i1 false br i1 %or.cond5, label %if.then208, label %if.end210 @@ -1083,21 +1077,21 @@ if.then208: ; preds = %if.end178 br label %if.end210 if.end210: ; preds = %if.then208, %if.end178 - call void @SSL_get0_next_proto_negotiated(ptr noundef %57, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 - %68 = load ptr, ptr %proto, align 8 - %69 = load i32, ptr %proto_len, align 4 - %conv212 = zext i32 %69 to i64 - %cmp.i = icmp eq i32 %69, 0 + call void @SSL_get0_next_proto_negotiated(ptr noundef %55, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 + %66 = load ptr, ptr %proto, align 8 + %67 = load i32, ptr %proto_len, align 4 + %conv212 = zext i32 %67 to i64 + %cmp.i = icmp eq i32 %67, 0 br i1 %cmp.i, label %dup_str.exit, label %if.end.i118 if.end.i118: ; preds = %if.end210 - %call.i119 = call i64 @OPENSSL_strnlen(ptr noundef %68, i64 noundef %conv212) #10 + %call.i119 = call i64 @OPENSSL_strnlen(ptr noundef %66, i64 noundef %conv212) #10 %call1.i120 = call i32 @test_size_t_eq(ptr noundef nonnull @.str, i32 noundef 1250, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.41, i64 noundef %call.i119, i64 noundef %conv212) #10 %tobool.not.i121 = icmp eq i32 %call1.i120, 0 br i1 %tobool.not.i121, label %dup_str.exit, label %if.then2.i if.then2.i: ; preds = %if.end.i118 - %call3.i = call noalias ptr @CRYPTO_strndup(ptr noundef %68, i64 noundef %conv212, ptr noundef nonnull @.str, i32 noundef 1251) #10 + %call3.i = call noalias ptr @CRYPTO_strndup(ptr noundef %66, i64 noundef %conv212, ptr noundef nonnull @.str, i32 noundef 1251) #10 %call4.i122 = call i32 @test_ptr(ptr noundef nonnull @.str, i32 noundef 1251, ptr noundef nonnull @.str.57, ptr noundef %call3.i) #10 br label %dup_str.exit @@ -1105,21 +1099,21 @@ dup_str.exit: ; preds = %if.end210, %if.end. %retval.0.i123 = phi ptr [ null, %if.end210 ], [ %call3.i, %if.then2.i ], [ null, %if.end.i118 ] %client_npn_negotiated = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 13 store ptr %retval.0.i123, ptr %client_npn_negotiated, align 8 - call void @SSL_get0_next_proto_negotiated(ptr noundef %56, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 - %70 = load ptr, ptr %proto, align 8 - %71 = load i32, ptr %proto_len, align 4 - %conv215 = zext i32 %71 to i64 - %cmp.i124 = icmp eq i32 %71, 0 + call void @SSL_get0_next_proto_negotiated(ptr noundef %54, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 + %68 = load ptr, ptr %proto, align 8 + %69 = load i32, ptr %proto_len, align 4 + %conv215 = zext i32 %69 to i64 + %cmp.i124 = icmp eq i32 %69, 0 br i1 %cmp.i124, label %dup_str.exit133, label %if.end.i125 if.end.i125: ; preds = %dup_str.exit - %call.i126 = call i64 @OPENSSL_strnlen(ptr noundef %70, i64 noundef %conv215) #10 + %call.i126 = call i64 @OPENSSL_strnlen(ptr noundef %68, i64 noundef %conv215) #10 %call1.i127 = call i32 @test_size_t_eq(ptr noundef nonnull @.str, i32 noundef 1250, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.41, i64 noundef %call.i126, i64 noundef %conv215) #10 %tobool.not.i128 = icmp eq i32 %call1.i127, 0 br i1 %tobool.not.i128, label %dup_str.exit133, label %if.then2.i129 if.then2.i129: ; preds = %if.end.i125 - %call3.i130 = call noalias ptr @CRYPTO_strndup(ptr noundef %70, i64 noundef %conv215, ptr noundef nonnull @.str, i32 noundef 1251) #10 + %call3.i130 = call noalias ptr @CRYPTO_strndup(ptr noundef %68, i64 noundef %conv215, ptr noundef nonnull @.str, i32 noundef 1251) #10 %call4.i131 = call i32 @test_ptr(ptr noundef nonnull @.str, i32 noundef 1251, ptr noundef nonnull @.str.57, ptr noundef %call3.i130) #10 br label %dup_str.exit133 @@ -1127,21 +1121,21 @@ dup_str.exit133: ; preds = %dup_str.exit, %if.e %retval.0.i132 = phi ptr [ null, %dup_str.exit ], [ %call3.i130, %if.then2.i129 ], [ null, %if.end.i125 ] %server_npn_negotiated = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 14 store ptr %retval.0.i132, ptr %server_npn_negotiated, align 8 - call void @SSL_get0_alpn_selected(ptr noundef %57, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 - %72 = load ptr, ptr %proto, align 8 - %73 = load i32, ptr %proto_len, align 4 - %conv218 = zext i32 %73 to i64 - %cmp.i134 = icmp eq i32 %73, 0 + call void @SSL_get0_alpn_selected(ptr noundef %55, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 + %70 = load ptr, ptr %proto, align 8 + %71 = load i32, ptr %proto_len, align 4 + %conv218 = zext i32 %71 to i64 + %cmp.i134 = icmp eq i32 %71, 0 br i1 %cmp.i134, label %dup_str.exit143, label %if.end.i135 if.end.i135: ; preds = %dup_str.exit133 - %call.i136 = call i64 @OPENSSL_strnlen(ptr noundef %72, i64 noundef %conv218) #10 + %call.i136 = call i64 @OPENSSL_strnlen(ptr noundef %70, i64 noundef %conv218) #10 %call1.i137 = call i32 @test_size_t_eq(ptr noundef nonnull @.str, i32 noundef 1250, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.41, i64 noundef %call.i136, i64 noundef %conv218) #10 %tobool.not.i138 = icmp eq i32 %call1.i137, 0 br i1 %tobool.not.i138, label %dup_str.exit143, label %if.then2.i139 if.then2.i139: ; preds = %if.end.i135 - %call3.i140 = call noalias ptr @CRYPTO_strndup(ptr noundef %72, i64 noundef %conv218, ptr noundef nonnull @.str, i32 noundef 1251) #10 + %call3.i140 = call noalias ptr @CRYPTO_strndup(ptr noundef %70, i64 noundef %conv218, ptr noundef nonnull @.str, i32 noundef 1251) #10 %call4.i141 = call i32 @test_ptr(ptr noundef nonnull @.str, i32 noundef 1251, ptr noundef nonnull @.str.57, ptr noundef %call3.i140) #10 br label %dup_str.exit143 @@ -1149,21 +1143,21 @@ dup_str.exit143: ; preds = %dup_str.exit133, %i %retval.0.i142 = phi ptr [ null, %dup_str.exit133 ], [ %call3.i140, %if.then2.i139 ], [ null, %if.end.i135 ] %client_alpn_negotiated = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 15 store ptr %retval.0.i142, ptr %client_alpn_negotiated, align 8 - call void @SSL_get0_alpn_selected(ptr noundef %56, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 - %74 = load ptr, ptr %proto, align 8 - %75 = load i32, ptr %proto_len, align 4 - %conv221 = zext i32 %75 to i64 - %cmp.i144 = icmp eq i32 %75, 0 + call void @SSL_get0_alpn_selected(ptr noundef %54, ptr noundef nonnull %proto, ptr noundef nonnull %proto_len) #10 + %72 = load ptr, ptr %proto, align 8 + %73 = load i32, ptr %proto_len, align 4 + %conv221 = zext i32 %73 to i64 + %cmp.i144 = icmp eq i32 %73, 0 br i1 %cmp.i144, label %dup_str.exit153, label %if.end.i145 if.end.i145: ; preds = %dup_str.exit143 - %call.i146 = call i64 @OPENSSL_strnlen(ptr noundef %74, i64 noundef %conv221) #10 + %call.i146 = call i64 @OPENSSL_strnlen(ptr noundef %72, i64 noundef %conv221) #10 %call1.i147 = call i32 @test_size_t_eq(ptr noundef nonnull @.str, i32 noundef 1250, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.41, i64 noundef %call.i146, i64 noundef %conv221) #10 %tobool.not.i148 = icmp eq i32 %call1.i147, 0 br i1 %tobool.not.i148, label %dup_str.exit153, label %if.then2.i149 if.then2.i149: ; preds = %if.end.i145 - %call3.i150 = call noalias ptr @CRYPTO_strndup(ptr noundef %74, i64 noundef %conv221, ptr noundef nonnull @.str, i32 noundef 1251) #10 + %call3.i150 = call noalias ptr @CRYPTO_strndup(ptr noundef %72, i64 noundef %conv221, ptr noundef nonnull @.str, i32 noundef 1251) #10 %call4.i151 = call i32 @test_ptr(ptr noundef nonnull @.str, i32 noundef 1251, ptr noundef nonnull @.str.57, ptr noundef %call3.i150) #10 br label %dup_str.exit153 @@ -1171,27 +1165,27 @@ dup_str.exit153: ; preds = %dup_str.exit143, %i %retval.0.i152 = phi ptr [ null, %dup_str.exit143 ], [ %call3.i150, %if.then2.i149 ], [ null, %if.end.i145 ] %server_alpn_negotiated = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 16 store ptr %retval.0.i152, ptr %server_alpn_negotiated, align 8 - %call224 = call ptr @SSL_get_session(ptr noundef %56) #10 + %call224 = call ptr @SSL_get_session(ptr noundef %54) #10 %cmp225.not = icmp eq ptr %call224, null br i1 %cmp225.not, label %if.end230, label %if.then227 if.then227: ; preds = %dup_str.exit153 %call228 = call i32 @SSL_SESSION_get0_ticket_appdata(ptr noundef nonnull %call224, ptr noundef nonnull %tick, ptr noundef nonnull %tick_len) #10 - %76 = load ptr, ptr %tick, align 8 - %77 = load i64, ptr %tick_len, align 8 - %call229 = call noalias ptr @CRYPTO_strndup(ptr noundef %76, i64 noundef %77, ptr noundef nonnull @.str, i32 noundef 1681) #10 + %74 = load ptr, ptr %tick, align 8 + %75 = load i64, ptr %tick_len, align 8 + %call229 = call noalias ptr @CRYPTO_strndup(ptr noundef %74, i64 noundef %75, ptr noundef nonnull @.str, i32 noundef 1681) #10 %result_session_ticket_app_data = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 30 store ptr %call229, ptr %result_session_ticket_app_data, align 8 br label %if.end230 if.end230: ; preds = %if.then227, %dup_str.exit153 - %call232 = call i32 @SSL_session_reused(ptr noundef %57) #10 + %call232 = call i32 @SSL_session_reused(ptr noundef %55) #10 %client_resumed = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 17 store i32 %call232, ptr %client_resumed, align 8 - %call234 = call i32 @SSL_session_reused(ptr noundef %56) #10 + %call234 = call i32 @SSL_session_reused(ptr noundef %54) #10 %server_resumed = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 18 store i32 %call234, ptr %server_resumed, align 4 - %call236 = call ptr @SSL_get_current_cipher(ptr noundef %57) #10 + %call236 = call ptr @SSL_get_current_cipher(ptr noundef %55) #10 %call237 = call ptr @SSL_CIPHER_get_name(ptr noundef %call236) #10 %call238 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %call237) #11 %cmp.i154 = icmp eq i64 %call238, 0 @@ -1216,7 +1210,7 @@ dup_str.exit163: ; preds = %if.end230, %if.end. br i1 %cmp241.not, label %if.end246, label %if.then243 if.then243: ; preds = %dup_str.exit163 - %call245 = call ptr @SSL_get1_session(ptr noundef %57) #10 + %call245 = call ptr @SSL_get1_session(ptr noundef %55) #10 store ptr %call245, ptr %session_out, align 8 br label %if.end246 @@ -1225,7 +1219,7 @@ if.end246: ; preds = %if.then243, %dup_st br i1 %cmp247.not, label %if.end257, label %if.then249 if.then249: ; preds = %if.end246 - %call251 = call ptr @SSL_get_session(ptr noundef %56) #10 + %call251 = call ptr @SSL_get_session(ptr noundef %54) #10 %cmp252.not = icmp eq ptr %call251, null br i1 %cmp252.not, label %if.end257, label %if.then254 @@ -1235,20 +1229,20 @@ if.then254: ; preds = %if.then249 br label %if.end257 if.end257: ; preds = %if.then249, %if.then254, %if.end246 - %call259 = call i64 @SSL_ctrl(ptr noundef %57, i32 noundef 109, i64 noundef 0, ptr noundef nonnull %tmp_key) #10 + %call259 = call i64 @SSL_ctrl(ptr noundef %55, i32 noundef 109, i64 noundef 0, ptr noundef nonnull %tmp_key) #10 %tobool260.not = icmp eq i64 %call259, 0 br i1 %tobool260.not, label %if.end263, label %if.then261 if.then261: ; preds = %if.end257 - %78 = load ptr, ptr %tmp_key, align 8 + %76 = load ptr, ptr %tmp_key, align 8 call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %name.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %name_len.i) - %call.i164 = call i32 @EVP_PKEY_is_a(ptr noundef %78, ptr noundef nonnull @.str.58) #10 + %call.i164 = call i32 @EVP_PKEY_is_a(ptr noundef %76, ptr noundef nonnull @.str.58) #10 %tobool.not.i165 = icmp eq i32 %call.i164, 0 br i1 %tobool.not.i165, label %if.end6.i, label %if.then.i166 if.then.i166: ; preds = %if.then261 - %call1.i167 = call i32 @EVP_PKEY_get_group_name(ptr noundef %78, ptr noundef nonnull %name.i, i64 noundef 80, ptr noundef nonnull %name_len.i) #10 + %call1.i167 = call i32 @EVP_PKEY_get_group_name(ptr noundef %76, ptr noundef nonnull %name.i, i64 noundef 80, ptr noundef nonnull %name_len.i) #10 %tobool2.not.i = icmp eq i32 %call1.i167, 0 br i1 %tobool2.not.i, label %pkey_type.exit, label %if.end.i168 @@ -1257,7 +1251,7 @@ if.end.i168: ; preds = %if.then.i166 br label %pkey_type.exit if.end6.i: ; preds = %if.then261 - %call7.i170 = call i32 @EVP_PKEY_get_id(ptr noundef %78) #10 + %call7.i170 = call i32 @EVP_PKEY_get_id(ptr noundef %76) #10 br label %pkey_type.exit pkey_type.exit: ; preds = %if.then.i166, %if.end.i168, %if.end6.i @@ -1266,20 +1260,20 @@ pkey_type.exit: ; preds = %if.then.i166, %if.e call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %name_len.i) %tmp_key_type = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 19 store i32 %retval.0.i169, ptr %tmp_key_type, align 8 - %79 = load ptr, ptr %tmp_key, align 8 - call void @EVP_PKEY_free(ptr noundef %79) #10 + %77 = load ptr, ptr %tmp_key, align 8 + call void @EVP_PKEY_free(ptr noundef %77) #10 br label %if.end263 if.end263: ; preds = %pkey_type.exit, %if.end257 %server_sign_hash = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 21 - %call265 = call i64 @SSL_ctrl(ptr noundef %57, i32 noundef 108, i64 noundef 0, ptr noundef nonnull %server_sign_hash) #10 + %call265 = call i64 @SSL_ctrl(ptr noundef %55, i32 noundef 108, i64 noundef 0, ptr noundef nonnull %server_sign_hash) #10 %client_sign_hash = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 25 - %call267 = call i64 @SSL_ctrl(ptr noundef %56, i32 noundef 108, i64 noundef 0, ptr noundef nonnull %client_sign_hash) #10 + %call267 = call i64 @SSL_ctrl(ptr noundef %54, i32 noundef 108, i64 noundef 0, ptr noundef nonnull %client_sign_hash) #10 %server_sign_type = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 22 - %call269 = call i32 @SSL_get_peer_signature_type_nid(ptr noundef %57, ptr noundef nonnull %server_sign_type) #10 + %call269 = call i32 @SSL_get_peer_signature_type_nid(ptr noundef %55, ptr noundef nonnull %server_sign_type) #10 %client_sign_type = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 26 - %call271 = call i32 @SSL_get_peer_signature_type_nid(ptr noundef %56, ptr noundef nonnull %client_sign_type) #10 - %call273 = call ptr @SSL_get0_peer_CA_list(ptr noundef %57) #10 + %call271 = call i32 @SSL_get_peer_signature_type_nid(ptr noundef %54, ptr noundef nonnull %client_sign_type) #10 + %call273 = call ptr @SSL_get0_peer_CA_list(ptr noundef %55) #10 %cmp274 = icmp eq ptr %call273, null br i1 %cmp274, label %if.end280, label %if.else277 @@ -1289,9 +1283,9 @@ if.else277: ; preds = %if.end263 if.end280: ; preds = %if.end263, %if.else277 %call278.sink = phi ptr [ %call278, %if.else277 ], [ null, %if.end263 ] - %80 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 27 - store ptr %call278.sink, ptr %80, align 8 - %call282 = call ptr @SSL_get0_peer_CA_list(ptr noundef %56) #10 + %78 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 27 + store ptr %call278.sink, ptr %78, align 8 + %call282 = call ptr @SSL_get0_peer_CA_list(ptr noundef %54) #10 %cmp283 = icmp eq ptr %call282, null br i1 %cmp283, label %if.end289, label %if.else286 @@ -1301,9 +1295,9 @@ if.else286: ; preds = %if.end280 if.end289: ; preds = %if.end280, %if.else286 %call287.sink = phi ptr [ %call287, %if.else286 ], [ null, %if.end280 ] - %81 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 23 - store ptr %call287.sink, ptr %81, align 8 - %call.i171 = call ptr @SSL_get0_peer_certificate(ptr noundef %57) #10 + %79 = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 23 + store ptr %call287.sink, ptr %79, align 8 + %call.i171 = call ptr @SSL_get0_peer_certificate(ptr noundef %55) #10 %cmp.not.i172 = icmp eq ptr %call.i171, null br i1 %cmp.not.i172, label %peer_pkey_type.exit, label %if.then.i173 @@ -1338,7 +1332,7 @@ peer_pkey_type.exit: ; preds = %if.end289, %pkey_ty %retval.0.i175 = phi i32 [ %retval.0.i.i, %pkey_type.exit.i ], [ 0, %if.end289 ] %server_cert_type = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 20 store i32 %retval.0.i175, ptr %server_cert_type, align 4 - %call.i178 = call ptr @SSL_get0_peer_certificate(ptr noundef %56) #10 + %call.i178 = call ptr @SSL_get0_peer_certificate(ptr noundef %54) #10 %cmp.not.i179 = icmp eq ptr %call.i178, null br i1 %cmp.not.i179, label %peer_pkey_type.exit194, label %if.then.i180 @@ -1373,77 +1367,77 @@ peer_pkey_type.exit194: ; preds = %peer_pkey_type.exit %retval.0.i191 = phi i32 [ %retval.0.i.i190, %pkey_type.exit.i189 ], [ 0, %peer_pkey_type.exit ] %client_cert_type = getelementptr inbounds %struct.handshake_result, ptr %call.i, i64 0, i32 24 store i32 %retval.0.i191, ptr %client_cert_type, align 8 - %82 = load ptr, ptr %server_ctx_data, align 8 - call void @CRYPTO_free(ptr noundef %82, ptr noundef nonnull @.str, i32 noundef 66) #10 + %80 = load ptr, ptr %server_ctx_data, align 8 + call void @CRYPTO_free(ptr noundef %80, ptr noundef nonnull @.str, i32 noundef 66) #10 store ptr null, ptr %server_ctx_data, align 8 %alpn_protocols.i195 = getelementptr inbounds %struct.ctx_data_st, ptr %server_ctx_data, i64 0, i32 2 - %83 = load ptr, ptr %alpn_protocols.i195, align 8 - call void @CRYPTO_free(ptr noundef %83, ptr noundef nonnull @.str, i32 noundef 68) #10 + %81 = load ptr, ptr %alpn_protocols.i195, align 8 + call void @CRYPTO_free(ptr noundef %81, ptr noundef nonnull @.str, i32 noundef 68) #10 store ptr null, ptr %alpn_protocols.i195, align 8 %srp_user.i = getelementptr inbounds %struct.ctx_data_st, ptr %server_ctx_data, i64 0, i32 4 - %84 = load ptr, ptr %srp_user.i, align 8 - call void @CRYPTO_free(ptr noundef %84, ptr noundef nonnull @.str, i32 noundef 70) #10 + %82 = load ptr, ptr %srp_user.i, align 8 + call void @CRYPTO_free(ptr noundef %82, ptr noundef nonnull @.str, i32 noundef 70) #10 store ptr null, ptr %srp_user.i, align 8 %srp_password.i = getelementptr inbounds %struct.ctx_data_st, ptr %server_ctx_data, i64 0, i32 5 - %85 = load ptr, ptr %srp_password.i, align 8 - call void @CRYPTO_free(ptr noundef %85, ptr noundef nonnull @.str, i32 noundef 72) #10 + %83 = load ptr, ptr %srp_password.i, align 8 + call void @CRYPTO_free(ptr noundef %83, ptr noundef nonnull @.str, i32 noundef 72) #10 store ptr null, ptr %srp_password.i, align 8 %session_ticket_app_data.i196 = getelementptr inbounds %struct.ctx_data_st, ptr %server_ctx_data, i64 0, i32 6 - %86 = load ptr, ptr %session_ticket_app_data.i196, align 8 - call void @CRYPTO_free(ptr noundef %86, ptr noundef nonnull @.str, i32 noundef 74) #10 + %84 = load ptr, ptr %session_ticket_app_data.i196, align 8 + call void @CRYPTO_free(ptr noundef %84, ptr noundef nonnull @.str, i32 noundef 74) #10 store ptr null, ptr %session_ticket_app_data.i196, align 8 - %87 = load ptr, ptr %server2_ctx_data, align 8 - call void @CRYPTO_free(ptr noundef %87, ptr noundef nonnull @.str, i32 noundef 66) #10 + %85 = load ptr, ptr %server2_ctx_data, align 8 + call void @CRYPTO_free(ptr noundef %85, ptr noundef nonnull @.str, i32 noundef 66) #10 store ptr null, ptr %server2_ctx_data, align 8 %alpn_protocols.i197 = getelementptr inbounds %struct.ctx_data_st, ptr %server2_ctx_data, i64 0, i32 2 - %88 = load ptr, ptr %alpn_protocols.i197, align 8 - call void @CRYPTO_free(ptr noundef %88, ptr noundef nonnull @.str, i32 noundef 68) #10 + %86 = load ptr, ptr %alpn_protocols.i197, align 8 + call void @CRYPTO_free(ptr noundef %86, ptr noundef nonnull @.str, i32 noundef 68) #10 store ptr null, ptr %alpn_protocols.i197, align 8 %srp_user.i198 = getelementptr inbounds %struct.ctx_data_st, ptr %server2_ctx_data, i64 0, i32 4 - %89 = load ptr, ptr %srp_user.i198, align 8 - call void @CRYPTO_free(ptr noundef %89, ptr noundef nonnull @.str, i32 noundef 70) #10 + %87 = load ptr, ptr %srp_user.i198, align 8 + call void @CRYPTO_free(ptr noundef %87, ptr noundef nonnull @.str, i32 noundef 70) #10 store ptr null, ptr %srp_user.i198, align 8 %srp_password.i199 = getelementptr inbounds %struct.ctx_data_st, ptr %server2_ctx_data, i64 0, i32 5 - %90 = load ptr, ptr %srp_password.i199, align 8 - call void @CRYPTO_free(ptr noundef %90, ptr noundef nonnull @.str, i32 noundef 72) #10 + %88 = load ptr, ptr %srp_password.i199, align 8 + call void @CRYPTO_free(ptr noundef %88, ptr noundef nonnull @.str, i32 noundef 72) #10 store ptr null, ptr %srp_password.i199, align 8 %session_ticket_app_data.i200 = getelementptr inbounds %struct.ctx_data_st, ptr %server2_ctx_data, i64 0, i32 6 - %91 = load ptr, ptr %session_ticket_app_data.i200, align 8 - call void @CRYPTO_free(ptr noundef %91, ptr noundef nonnull @.str, i32 noundef 74) #10 + %89 = load ptr, ptr %session_ticket_app_data.i200, align 8 + call void @CRYPTO_free(ptr noundef %89, ptr noundef nonnull @.str, i32 noundef 74) #10 store ptr null, ptr %session_ticket_app_data.i200, align 8 - %92 = load ptr, ptr %client_ctx_data, align 8 - call void @CRYPTO_free(ptr noundef %92, ptr noundef nonnull @.str, i32 noundef 66) #10 + %90 = load ptr, ptr %client_ctx_data, align 8 + call void @CRYPTO_free(ptr noundef %90, ptr noundef nonnull @.str, i32 noundef 66) #10 store ptr null, ptr %client_ctx_data, align 8 %alpn_protocols.i201 = getelementptr inbounds %struct.ctx_data_st, ptr %client_ctx_data, i64 0, i32 2 - %93 = load ptr, ptr %alpn_protocols.i201, align 8 - call void @CRYPTO_free(ptr noundef %93, ptr noundef nonnull @.str, i32 noundef 68) #10 + %91 = load ptr, ptr %alpn_protocols.i201, align 8 + call void @CRYPTO_free(ptr noundef %91, ptr noundef nonnull @.str, i32 noundef 68) #10 store ptr null, ptr %alpn_protocols.i201, align 8 %srp_user.i202 = getelementptr inbounds %struct.ctx_data_st, ptr %client_ctx_data, i64 0, i32 4 - %94 = load ptr, ptr %srp_user.i202, align 8 - call void @CRYPTO_free(ptr noundef %94, ptr noundef nonnull @.str, i32 noundef 70) #10 + %92 = load ptr, ptr %srp_user.i202, align 8 + call void @CRYPTO_free(ptr noundef %92, ptr noundef nonnull @.str, i32 noundef 70) #10 store ptr null, ptr %srp_user.i202, align 8 %srp_password.i203 = getelementptr inbounds %struct.ctx_data_st, ptr %client_ctx_data, i64 0, i32 5 - %95 = load ptr, ptr %srp_password.i203, align 8 - call void @CRYPTO_free(ptr noundef %95, ptr noundef nonnull @.str, i32 noundef 72) #10 + %93 = load ptr, ptr %srp_password.i203, align 8 + call void @CRYPTO_free(ptr noundef %93, ptr noundef nonnull @.str, i32 noundef 72) #10 store ptr null, ptr %srp_password.i203, align 8 %session_ticket_app_data.i204 = getelementptr inbounds %struct.ctx_data_st, ptr %client_ctx_data, i64 0, i32 6 - %96 = load ptr, ptr %session_ticket_app_data.i204, align 8 - call void @CRYPTO_free(ptr noundef %96, ptr noundef nonnull @.str, i32 noundef 74) #10 + %94 = load ptr, ptr %session_ticket_app_data.i204, align 8 + call void @CRYPTO_free(ptr noundef %94, ptr noundef nonnull @.str, i32 noundef 74) #10 store ptr null, ptr %session_ticket_app_data.i204, align 8 - call void @SSL_free(ptr noundef %56) #10 + call void @SSL_free(ptr noundef %54) #10 %write_buf.i = getelementptr inbounds %struct.peer_st, ptr %server, i64 0, i32 1 - %97 = load ptr, ptr %write_buf.i, align 8 - call void @CRYPTO_free(ptr noundef %97, ptr noundef nonnull @.str, i32 noundef 770) #10 + %95 = load ptr, ptr %write_buf.i, align 8 + call void @CRYPTO_free(ptr noundef %95, ptr noundef nonnull @.str, i32 noundef 770) #10 %read_buf.i = getelementptr inbounds %struct.peer_st, ptr %server, i64 0, i32 3 - %98 = load ptr, ptr %read_buf.i, align 8 - call void @CRYPTO_free(ptr noundef %98, ptr noundef nonnull @.str, i32 noundef 771) #10 - call void @SSL_free(ptr noundef %57) #10 + %96 = load ptr, ptr %read_buf.i, align 8 + call void @CRYPTO_free(ptr noundef %96, ptr noundef nonnull @.str, i32 noundef 771) #10 + call void @SSL_free(ptr noundef %55) #10 %write_buf.i205 = getelementptr inbounds %struct.peer_st, ptr %client, i64 0, i32 1 - %99 = load ptr, ptr %write_buf.i205, align 8 - call void @CRYPTO_free(ptr noundef %99, ptr noundef nonnull @.str, i32 noundef 770) #10 + %97 = load ptr, ptr %write_buf.i205, align 8 + call void @CRYPTO_free(ptr noundef %97, ptr noundef nonnull @.str, i32 noundef 770) #10 %read_buf.i206 = getelementptr inbounds %struct.peer_st, ptr %client, i64 0, i32 3 - %100 = load ptr, ptr %read_buf.i206, align 8 - call void @CRYPTO_free(ptr noundef %100, ptr noundef nonnull @.str, i32 noundef 771) #10 + %98 = load ptr, ptr %read_buf.i206, align 8 + call void @CRYPTO_free(ptr noundef %98, ptr noundef nonnull @.str, i32 noundef 771) #10 br label %return return: ; preds = %entry, %peer_pkey_type.exit194, %if.then2 diff --git a/bench/openssl/optimized/sslapitest-bin-sslapitest.ll b/bench/openssl/optimized/sslapitest-bin-sslapitest.ll index 01487943566..915fa4c234d 100644 --- a/bench/openssl/optimized/sslapitest-bin-sslapitest.ll +++ b/bench/openssl/optimized/sslapitest-bin-sslapitest.ll @@ -574,7 +574,6 @@ target triple = "x86_64-unknown-linux-gnu" @__const.early_data_skip_helper.bad_early_data = private unnamed_addr constant [6 x i8] c"\17\03\03\00\01\00", align 1 @.str.489 = private unnamed_addr constant [69 x i8] c"BIO_write_ex(wbio, bad_early_data, sizeof(bad_early_data), &written)\00", align 1 @.str.490 = private unnamed_addr constant [14 x i8] c"SSL_ERROR_SSL\00", align 1 -@.str.491 = private unnamed_addr constant [18 x i8] c"Invalid test type\00", align 1 @.str.492 = private unnamed_addr constant [17 x i8] c"ERR_peek_error()\00", align 1 @.str.493 = private unnamed_addr constant [25 x i8] c"TLS_AES_128_CCM_8_SHA256\00", align 1 @.str.494 = private unnamed_addr constant [23 x i8] c"TLS_AES_128_GCM_SHA256\00", align 1 @@ -19741,7 +19740,7 @@ lor.lhs.false89: ; preds = %lor.lhs.false86 br i1 %tobool92.not, label %end, label %if.end94 if.end94: ; preds = %lor.lhs.false89 - switch i32 %testtype, label %sw.default [ + switch i32 %testtype, label %default.unreachable [ i32 0, label %sw.epilog i32 1, label %sw.bb95 i32 2, label %sw.bb110 @@ -19802,9 +19801,8 @@ lor.lhs.false134: ; preds = %sw.bb127 %tobool137.not = icmp ne i32 %call136, 0 br label %end -sw.default: ; preds = %if.end94 - call void (ptr, i32, ptr, ...) @test_error(ptr noundef nonnull @.str.14, i32 noundef 3992, ptr noundef nonnull @.str.491) #23 - br label %end +default.unreachable: ; preds = %if.end94 + unreachable sw.epilog: ; preds = %lor.lhs.false101, %if.end94 call void @ERR_clear_error() #23 @@ -19850,8 +19848,8 @@ if.end164: ; preds = %lor.lhs.false159 %tobool167.not = icmp ne i32 %call166, 0 br label %end -end: ; preds = %if.end164, %lor.lhs.false134, %sw.epilog, %lor.lhs.false145, %lor.lhs.false148, %lor.lhs.false152, %lor.lhs.false159, %sw.bb127, %if.end118, %sw.bb110, %sw.bb95, %lor.lhs.false101, %if.end82, %lor.lhs.false86, %lor.lhs.false89, %if.end72, %lor.lhs.false78, %land.lhs.true65, %if.else52, %if.then41, %if.end25, %if.end11, %lor.lhs.false, %if.end, %sw.default - %testresult.0.shrunk = phi i1 [ false, %sw.default ], [ false, %sw.bb127 ], [ false, %if.end118 ], [ false, %sw.bb110 ], [ false, %lor.lhs.false159 ], [ false, %lor.lhs.false152 ], [ false, %lor.lhs.false148 ], [ false, %lor.lhs.false145 ], [ false, %sw.epilog ], [ false, %lor.lhs.false101 ], [ false, %sw.bb95 ], [ false, %lor.lhs.false89 ], [ false, %lor.lhs.false86 ], [ false, %if.end82 ], [ false, %lor.lhs.false78 ], [ false, %if.end72 ], [ false, %land.lhs.true65 ], [ false, %if.then41 ], [ false, %if.else52 ], [ false, %if.end25 ], [ false, %lor.lhs.false ], [ false, %if.end11 ], [ false, %if.end ], [ %tobool137.not, %lor.lhs.false134 ], [ %tobool167.not, %if.end164 ] +end: ; preds = %if.end164, %lor.lhs.false134, %sw.epilog, %lor.lhs.false145, %lor.lhs.false148, %lor.lhs.false152, %lor.lhs.false159, %sw.bb127, %if.end118, %sw.bb110, %sw.bb95, %lor.lhs.false101, %if.end82, %lor.lhs.false86, %lor.lhs.false89, %if.end72, %lor.lhs.false78, %land.lhs.true65, %if.else52, %if.then41, %if.end25, %if.end11, %lor.lhs.false, %if.end + %testresult.0.shrunk = phi i1 [ false, %sw.bb127 ], [ false, %if.end118 ], [ false, %sw.bb110 ], [ false, %lor.lhs.false159 ], [ false, %lor.lhs.false152 ], [ false, %lor.lhs.false148 ], [ false, %lor.lhs.false145 ], [ false, %sw.epilog ], [ false, %lor.lhs.false101 ], [ false, %sw.bb95 ], [ false, %lor.lhs.false89 ], [ false, %lor.lhs.false86 ], [ false, %if.end82 ], [ false, %lor.lhs.false78 ], [ false, %if.end72 ], [ false, %land.lhs.true65 ], [ false, %if.then41 ], [ false, %if.else52 ], [ false, %if.end25 ], [ false, %lor.lhs.false ], [ false, %if.end11 ], [ false, %if.end ], [ %tobool137.not, %lor.lhs.false134 ], [ %tobool167.not, %if.end164 ] %testresult.0 = zext i1 %testresult.0.shrunk to i32 %28 = load ptr, ptr @clientpsk, align 8 call void @SSL_SESSION_free(ptr noundef %28) #23 diff --git a/bench/openssl/optimized/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.ll b/bench/openssl/optimized/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.ll index 53ae05f2077..e000c5f9ef4 100644 --- a/bench/openssl/optimized/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.ll +++ b/bench/openssl/optimized/x509_check_cert_pkey_test-bin-x509_check_cert_pkey_test.ll @@ -68,13 +68,13 @@ target triple = "x86_64-unknown-linux-gnu" @.str.50 = private unnamed_addr constant [41 x i8] c"check private key: expected: %d, got: %d\00", align 1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define dso_local nonnull ptr @test_get_options() local_unnamed_addr #0 { +define dso_local noundef nonnull ptr @test_get_options() local_unnamed_addr #0 { entry: ret ptr @test_get_options.test_options } ; Function Attrs: nounwind uwtable -define dso_local i32 @setup_tests() local_unnamed_addr #1 { +define dso_local noundef i32 @setup_tests() local_unnamed_addr #1 { entry: %call = tail call i32 @test_skip_common_options() #5 %tobool.not = icmp eq i32 %call, 0 @@ -217,7 +217,7 @@ return: ; preds = %entry, %for.end } ; Function Attrs: nounwind uwtable -define internal i32 @test_x509_check_cert_pkey() #1 { +define internal noundef i32 @test_x509_check_cert_pkey() #1 { entry: %0 = load ptr, ptr @t, align 8 %call = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %0, ptr noundef nonnull dereferenceable(5) @.str.38) #6 @@ -234,7 +234,6 @@ if.else4: ; preds = %if.else br label %failed if.end5: ; preds = %if.else, %entry - %type.0 = phi i32 [ 1, %entry ], [ 2, %if.else ] %1 = load ptr, ptr @e, align 8 %call6 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1, ptr noundef nonnull dereferenceable(3) @.str.41) #6 %cmp7 = icmp eq i32 %call6, 0 @@ -272,10 +271,7 @@ if.end24: ; preds = %if.end19 br i1 %tobool28.not, label %failed, label %if.end30 if.end30: ; preds = %if.end24 - switch i32 %type.0, label %sw.epilog [ - i32 1, label %sw.bb - i32 2, label %sw.bb36 - ] + br i1 %cmp, label %sw.bb, label %sw.bb36 sw.bb: ; preds = %if.end30 %call31 = tail call ptr @PEM_read_bio_X509(ptr noundef %call26, ptr noundef null, ptr noundef null, ptr noundef null) #5 @@ -303,10 +299,10 @@ if.end40: ; preds = %sw.bb36 %call41 = tail call i32 @X509_REQ_check_private_key(ptr noundef nonnull %call37, ptr noundef %call20) #5 br label %sw.epilog -sw.epilog: ; preds = %if.end30, %if.end40, %if.end34 - %x509.0 = phi ptr [ null, %if.end30 ], [ null, %if.end40 ], [ %call31, %if.end34 ] - %x509_req.0 = phi ptr [ null, %if.end30 ], [ %call37, %if.end40 ], [ null, %if.end34 ] - %result.0 = phi i32 [ 0, %if.end30 ], [ %call41, %if.end40 ], [ %call35, %if.end34 ] +sw.epilog: ; preds = %if.end40, %if.end34 + %x509.0 = phi ptr [ null, %if.end40 ], [ %call31, %if.end34 ] + %x509_req.0 = phi ptr [ %call37, %if.end40 ], [ null, %if.end34 ] + %result.0 = phi i32 [ %call41, %if.end40 ], [ %call35, %if.end34 ] %call42 = tail call i32 @test_int_eq(ptr noundef nonnull @.str.20, i32 noundef 95, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.37, i32 noundef %result.0, i32 noundef %expected.0) #5 %tobool43.not = icmp eq i32 %call42, 0 br i1 %tobool43.not, label %if.then44, label %failed diff --git a/bench/protobuf/optimized/arena.cc.ll b/bench/protobuf/optimized/arena.cc.ll index c85aee965dd..f4f67327717 100644 --- a/bench/protobuf/optimized/arena.cc.ll +++ b/bench/protobuf/optimized/arena.cc.ll @@ -80,6 +80,8 @@ $_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_2023080 @_ZZN6google8protobuf8internal12_GLOBAL__N_116SentryArenaBlockEvE17kSentryArenaBlock = internal constant %"struct.google::protobuf::internal::ArenaBlock" { ptr null, ptr @_ZZN6google8protobuf8internal12_GLOBAL__N_116SentryArenaBlockEvE17kSentryArenaBlock, i64 0 }, align 8 @.str.4 = private unnamed_addr constant [80 x i8] c"min_bytes <= std::numeric_limits::max() - SerialArena::kBlockHeaderSize\00", align 1 @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_arena.cc, ptr null }] +@switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E = private unnamed_addr constant [3 x i64] [i64 16, i64 8, i64 8], align 8 +@switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E.7 = private unnamed_addr constant [3 x i64] [i64 -16, i64 -8, i64 -8], align 8 @_ZN6google8protobuf8internal15ThreadSafeArenaC1Ev = unnamed_addr alias void (ptr), ptr @_ZN6google8protobuf8internal15ThreadSafeArenaC2Ev @_ZN6google8protobuf8internal15ThreadSafeArenaC1EPcm = unnamed_addr alias void (ptr, ptr, i64), ptr @_ZN6google8protobuf8internal15ThreadSafeArenaC2EPcm @@ -1162,347 +1164,299 @@ if.end10: ; preds = %_ZN6google8protobuf define noundef ptr @_ZN6google8protobuf8internal11SerialArena34AllocateAlignedWithCleanupFallbackEmmPFvPvE(ptr nocapture noundef nonnull align 8 dereferenceable(96) %this, i64 noundef %n, i64 noundef %align, ptr noundef %destructor) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { entry: %cmp.i = icmp ult i64 %align, 9 - %add.i40 = add i64 %align, -8 + %add.i36 = add i64 %align, -8 %cmp.i4 = icmp eq ptr %destructor, null %cmp.i69 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv %cmp1.i71 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv - %narrow.not = or i1 %cmp.i69, %cmp1.i71 - %0 = select i1 %narrow.not, i64 8, i64 16 - %cond.i8 = select i1 %cmp.i4, i64 0, i64 %0 + %. = select i1 %cmp1.i71, i64 2, i64 0 + %retval.i67.0 = select i1 %cmp.i69, i64 1, i64 %. %head_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 6 - %parent_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 9 - %limit_.i43 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 1 + %limit_.i39 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 1 %space_used_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 7 + %parent_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 9 %space_allocated_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 8 %prefetch_ptr_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 2 %prefetch_limit_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 3 - %add.i.i46 = add i64 %align, -1 + %add.i.i42 = add i64 %align, -1 %not.i.i = sub i64 0, %align - br i1 %cmp.i, label %tailrecurse.us, label %tailrecurse - -tailrecurse.us: ; preds = %entry, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us - %n.tr.us = phi i64 [ %and.i37.us, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us ], [ %n, %entry ] - %sub.i36.us = add i64 %n.tr.us, 7 - %and.i37.us = and i64 %sub.i36.us, -8 - %add.us = add i64 %and.i37.us, %cond.i8 - %1 = load atomic i64, ptr %head_.i.i monotonic, align 8 - %atomic-temp.i.0.i.i.i.us = inttoptr i64 %1 to ptr - %size.i.i.us = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %atomic-temp.i.0.i.i.i.us, i64 0, i32 2 - %2 = load i64, ptr %size.i.i.us, align 8 - %cmp.i.i.us = icmp eq i64 %2, 0 - br i1 %cmp.i.i.us, label %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us, label %if.then.i42.us - -if.then.i42.us: ; preds = %tailrecurse.us - %3 = load ptr, ptr %limit_.i43, align 8 - %cleanup_nodes.i.us = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %atomic-temp.i.0.i.i.i.us, i64 0, i32 1 - store ptr %3, ptr %cleanup_nodes.i.us, align 8 - %4 = load atomic i64, ptr %this monotonic, align 8 - %add.ptr.i.i.us = getelementptr inbounds i8, ptr %atomic-temp.i.0.i.i.i.us, i64 24 - %sub.ptr.rhs.cast.i.us = ptrtoint ptr %add.ptr.i.i.us to i64 - %sub.ptr.sub.i44.us = sub i64 %4, %sub.ptr.rhs.cast.i.us - %5 = load atomic i64, ptr %space_used_.i.i monotonic, align 8 - %add.i.i.us = add i64 %sub.ptr.sub.i44.us, %5 - store atomic i64 %add.i.i.us, ptr %space_used_.i.i monotonic, align 8 - %.pre.i.us = load i64, ptr %size.i.i.us, align 8 - br label %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us - -_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us: ; preds = %tailrecurse.us, %if.then.i42.us - %6 = phi i64 [ %.pre.i.us, %if.then.i42.us ], [ 0, %tailrecurse.us ] - %7 = load ptr, ptr %parent_.i, align 8 - %alloc_policy_.i.i.us = getelementptr inbounds %"class.google::protobuf::internal::ThreadSafeArena", ptr %7, i64 0, i32 1 - %8 = load i64, ptr %alloc_policy_.i.i.us, align 8 - %and.i.i.i.us = and i64 %8, -8 - %9 = inttoptr i64 %and.i.i.i.us to ptr - %call8.i.us = tail call fastcc { ptr, i64 } @_ZN6google8protobuf8internalL14AllocateMemoryEPKNS1_16AllocationPolicyEmm(ptr noundef %9, i64 noundef %6, i64 noundef %add.us) - %10 = extractvalue { ptr, i64 } %call8.i.us, 0 - %11 = extractvalue { ptr, i64 } %call8.i.us, 1 - %12 = load atomic i64, ptr %space_allocated_.i.i monotonic, align 8 - %add.i15.i.us = add i64 %12, %11 - store atomic i64 %add.i15.i.us, ptr %space_allocated_.i.i monotonic, align 8 - store ptr %atomic-temp.i.0.i.i.i.us, ptr %10, align 8 - %cleanup_nodes.i.i.us = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %10, i64 0, i32 1 - store ptr null, ptr %cleanup_nodes.i.i.us, align 8 - %size3.i.i.us = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %10, i64 0, i32 2 - store i64 %11, ptr %size3.i.i.us, align 8 - %add.ptr.i16.i.us = getelementptr inbounds i8, ptr %10, i64 24 - %and.i.i.us = and i64 %11, -8 - %add.ptr.i.i.i.us = getelementptr inbounds i8, ptr %10, i64 %and.i.i.us - %13 = ptrtoint ptr %add.ptr.i16.i.us to i64 - store atomic i64 %13, ptr %this monotonic, align 8 - store ptr %add.ptr.i16.i.us, ptr %prefetch_ptr_.i.i, align 8 - store ptr %add.ptr.i.i.i.us, ptr %limit_.i43, align 8 - store ptr %add.ptr.i.i.i.us, ptr %prefetch_limit_.i.i, align 8 - %14 = ptrtoint ptr %10 to i64 - store atomic i64 %14, ptr %head_.i.i release, align 8 - %15 = load atomic i64, ptr %this monotonic, align 8 - %sub.i.i.us = add i64 %add.i.i46, %15 - %and.i.i47.us = and i64 %sub.i.i.us, %not.i.i - %add.i.us = add i64 %and.i.i47.us, %and.i37.us - %add6.i.us = add i64 %add.i.us, %cond.i8 - %16 = ptrtoint ptr %add.ptr.i.i.i.us to i64 - %cmp.i15.us = icmp ugt i64 %add6.i.us, %16 - br i1 %cmp.i15.us, label %tailrecurse.us, label %if.end.i - -tailrecurse: ; preds = %entry, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit - %n.tr = phi i64 [ %and.i, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ], [ %n, %entry ] - %sub.i41 = add i64 %add.i40, %n.tr - %add = add i64 %sub.i41, %cond.i8 - %17 = load atomic i64, ptr %head_.i.i monotonic, align 8 - %atomic-temp.i.0.i.i.i = inttoptr i64 %17 to ptr + %switch.gep = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E, i64 0, i64 %retval.i67.0 + %switch.gep75 = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E, i64 0, i64 %retval.i67.0 + br label %tailrecurse + +tailrecurse: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i, %entry + %n.tr = phi i64 [ %n, %entry ], [ %and.i37, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i ] + %sub.i36 = add i64 %n.tr, 7 + %and.i37 = and i64 %sub.i36, -8 + %sub.i37 = add i64 %add.i36, %n.tr + %cond.i = select i1 %cmp.i, i64 %and.i37, i64 %sub.i37 + br i1 %cmp.i4, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit, label %switch.lookup + +switch.lookup: ; preds = %tailrecurse + %switch.load = load i64, ptr %switch.gep, align 8 + br label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit + +_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit: ; preds = %switch.lookup, %tailrecurse + %cond.i8 = phi i64 [ 0, %tailrecurse ], [ %switch.load, %switch.lookup ] + %add = add i64 %cond.i8, %cond.i + %0 = load atomic i64, ptr %head_.i.i monotonic, align 8 + %atomic-temp.i.0.i.i.i = inttoptr i64 %0 to ptr %size.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %atomic-temp.i.0.i.i.i, i64 0, i32 2 - %18 = load i64, ptr %size.i.i, align 8 - %cmp.i.i = icmp eq i64 %18, 0 - br i1 %cmp.i.i, label %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit, label %if.then.i42 + %1 = load i64, ptr %size.i.i, align 8 + %cmp.i.i = icmp eq i64 %1, 0 + br i1 %cmp.i.i, label %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit, label %if.then.i38 -if.then.i42: ; preds = %tailrecurse - %19 = load ptr, ptr %limit_.i43, align 8 +if.then.i38: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit + %2 = load ptr, ptr %limit_.i39, align 8 %cleanup_nodes.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %atomic-temp.i.0.i.i.i, i64 0, i32 1 - store ptr %19, ptr %cleanup_nodes.i, align 8 - %20 = load atomic i64, ptr %this monotonic, align 8 + store ptr %2, ptr %cleanup_nodes.i, align 8 + %3 = load atomic i64, ptr %this monotonic, align 8 %add.ptr.i.i = getelementptr inbounds i8, ptr %atomic-temp.i.0.i.i.i, i64 24 %sub.ptr.rhs.cast.i = ptrtoint ptr %add.ptr.i.i to i64 - %sub.ptr.sub.i44 = sub i64 %20, %sub.ptr.rhs.cast.i - %21 = load atomic i64, ptr %space_used_.i.i monotonic, align 8 - %add.i.i = add i64 %sub.ptr.sub.i44, %21 + %sub.ptr.sub.i40 = sub i64 %3, %sub.ptr.rhs.cast.i + %4 = load atomic i64, ptr %space_used_.i.i monotonic, align 8 + %add.i.i = add i64 %sub.ptr.sub.i40, %4 store atomic i64 %add.i.i, ptr %space_used_.i.i monotonic, align 8 %.pre.i = load i64, ptr %size.i.i, align 8 br label %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit -_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit: ; preds = %tailrecurse, %if.then.i42 - %22 = phi i64 [ %.pre.i, %if.then.i42 ], [ 0, %tailrecurse ] - %23 = load ptr, ptr %parent_.i, align 8 - %alloc_policy_.i.i = getelementptr inbounds %"class.google::protobuf::internal::ThreadSafeArena", ptr %23, i64 0, i32 1 - %24 = load i64, ptr %alloc_policy_.i.i, align 8 - %and.i.i.i = and i64 %24, -8 - %25 = inttoptr i64 %and.i.i.i to ptr - %call8.i = tail call fastcc { ptr, i64 } @_ZN6google8protobuf8internalL14AllocateMemoryEPKNS1_16AllocationPolicyEmm(ptr noundef %25, i64 noundef %22, i64 noundef %add) - %26 = extractvalue { ptr, i64 } %call8.i, 0 - %27 = extractvalue { ptr, i64 } %call8.i, 1 - %28 = load atomic i64, ptr %space_allocated_.i.i monotonic, align 8 - %add.i15.i = add i64 %28, %27 +_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit, %if.then.i38 + %5 = phi i64 [ %.pre.i, %if.then.i38 ], [ 0, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit ] + %6 = load ptr, ptr %parent_.i, align 8 + %alloc_policy_.i.i = getelementptr inbounds %"class.google::protobuf::internal::ThreadSafeArena", ptr %6, i64 0, i32 1 + %7 = load i64, ptr %alloc_policy_.i.i, align 8 + %and.i.i.i = and i64 %7, -8 + %8 = inttoptr i64 %and.i.i.i to ptr + %call8.i = tail call fastcc { ptr, i64 } @_ZN6google8protobuf8internalL14AllocateMemoryEPKNS1_16AllocationPolicyEmm(ptr noundef %8, i64 noundef %5, i64 noundef %add) + %9 = extractvalue { ptr, i64 } %call8.i, 0 + %10 = extractvalue { ptr, i64 } %call8.i, 1 + %11 = load atomic i64, ptr %space_allocated_.i.i monotonic, align 8 + %add.i15.i = add i64 %11, %10 store atomic i64 %add.i15.i, ptr %space_allocated_.i.i monotonic, align 8 - store ptr %atomic-temp.i.0.i.i.i, ptr %26, align 8 - %cleanup_nodes.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %26, i64 0, i32 1 + store ptr %atomic-temp.i.0.i.i.i, ptr %9, align 8 + %cleanup_nodes.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %9, i64 0, i32 1 store ptr null, ptr %cleanup_nodes.i.i, align 8 - %size3.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %26, i64 0, i32 2 - store i64 %27, ptr %size3.i.i, align 8 - %add.ptr.i16.i = getelementptr inbounds i8, ptr %26, i64 24 - %and.i.i = and i64 %27, -8 - %add.ptr.i.i.i = getelementptr inbounds i8, ptr %26, i64 %and.i.i - %29 = ptrtoint ptr %add.ptr.i16.i to i64 - store atomic i64 %29, ptr %this monotonic, align 8 + %size3.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %9, i64 0, i32 2 + store i64 %10, ptr %size3.i.i, align 8 + %add.ptr.i16.i = getelementptr inbounds i8, ptr %9, i64 24 + %and.i.i = and i64 %10, -8 + %add.ptr.i.i.i = getelementptr inbounds i8, ptr %9, i64 %and.i.i + %12 = ptrtoint ptr %add.ptr.i16.i to i64 + store atomic i64 %12, ptr %this monotonic, align 8 store ptr %add.ptr.i16.i, ptr %prefetch_ptr_.i.i, align 8 - store ptr %add.ptr.i.i.i, ptr %limit_.i43, align 8 + store ptr %add.ptr.i.i.i, ptr %limit_.i39, align 8 store ptr %add.ptr.i.i.i, ptr %prefetch_limit_.i.i, align 8 - %30 = ptrtoint ptr %26 to i64 - store atomic i64 %30, ptr %head_.i.i release, align 8 - %sub.i = add i64 %n.tr, 7 - %and.i = and i64 %sub.i, -8 - %31 = load atomic i64, ptr %this monotonic, align 8 - %sub.i.i = add i64 %add.i.i46, %31 - %and.i.i47 = and i64 %sub.i.i, %not.i.i - %add.i = add i64 %and.i.i47, %and.i - %add6.i = add i64 %add.i, %cond.i8 - %32 = ptrtoint ptr %add.ptr.i.i.i to i64 - %cmp.i15 = icmp ugt i64 %add6.i, %32 + %13 = ptrtoint ptr %9 to i64 + store atomic i64 %13, ptr %head_.i.i release, align 8 + %14 = load atomic i64, ptr %this monotonic, align 8 + %sub.i.i = add i64 %add.i.i42, %14 + %and.i.i43 = and i64 %sub.i.i, %not.i.i + %add.i = add i64 %and.i.i43, %and.i37 + br i1 %cmp.i4, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i, label %switch.lookup74 + +switch.lookup74: ; preds = %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit + %switch.load76 = load i64, ptr %switch.gep75, align 8 + br label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i + +_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i: ; preds = %switch.lookup74, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit + %cond.i.i = phi i64 [ 0, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ], [ %switch.load76, %switch.lookup74 ] + %add6.i = add i64 %cond.i.i, %add.i + %15 = ptrtoint ptr %add.ptr.i.i.i to i64 + %cmp.i15 = icmp ugt i64 %add6.i, %15 br i1 %cmp.i15, label %tailrecurse, label %if.end.i -if.end.i: ; preds = %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us - %sub.ptr.rhs.cast.i82.pre-phi = phi i64 [ %16, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us ], [ %32, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ] - %33 = phi ptr [ %add.ptr.i16.i.us, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us ], [ %add.ptr.i16.i, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ] - %34 = phi ptr [ %add.ptr.i.i.i.us, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us ], [ %add.ptr.i.i.i, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ] - %.us-phi = phi i64 [ %and.i.i47.us, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us ], [ %and.i.i47, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ] - %.us-phi66 = phi i64 [ %add.i.us, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit.us ], [ %add.i, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ] - %35 = inttoptr i64 %.us-phi66 to ptr - store atomic i64 %.us-phi66, ptr %this monotonic, align 8 - %.35 = select i1 %cmp1.i71, i64 2, i64 0 - %retval.i53.0 = select i1 %cmp.i69, i64 1, i64 %.35 - %36 = add nsw i64 %retval.i53.0, -1 - %switch.selectcmp39 = icmp ult i64 %36, 2 - %37 = select i1 %switch.selectcmp39, i64 -8, i64 -16 - %add.ptr.i = getelementptr inbounds i8, ptr %34, i64 %37 - store ptr %add.ptr.i, ptr %limit_.i43, align 8 - %sub.ptr.lhs.cast.i81 = ptrtoint ptr %add.ptr.i to i64 - %sub.ptr.sub.i83 = sub i64 %sub.ptr.lhs.cast.i81, %sub.ptr.rhs.cast.i82.pre-phi - %cmp.i84 = icmp slt i64 %sub.ptr.sub.i83, 385 - %cmp3.i87 = icmp ugt ptr %34, %33 - %or.cond76 = select i1 %cmp.i84, i1 %cmp3.i87, i1 false - br i1 %or.cond76, label %if.then4.i88, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit +if.end.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i + %16 = inttoptr i64 %add.i to ptr + store atomic i64 %add.i, ptr %this monotonic, align 8 + %switch.gep78 = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E.7, i64 0, i64 %retval.i67.0 + %switch.load79 = load i64, ptr %switch.gep78, align 8 + %add.ptr.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 %switch.load79 + store ptr %add.ptr.i, ptr %limit_.i39, align 8 + %cmp3.i87 = icmp sgt i64 %and.i.i, 24 + br i1 %cmp3.i87, label %if.then4.i88, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit if.then4.i88: ; preds = %if.end.i - %cmp.i48 = icmp ult ptr %34, %add.ptr.i - %.sroa.speculated62 = select i1 %cmp.i48, ptr %34, ptr %add.ptr.i - %add.ptr.i89 = getelementptr inbounds i8, ptr %.sroa.speculated62, i64 -384 - %cmp.i49 = icmp ult ptr %33, %add.ptr.i89 - %.sroa.speculated59 = select i1 %cmp.i49, ptr %add.ptr.i89, ptr %33 - %cmp10.i67 = icmp ugt ptr %.sroa.speculated62, %.sroa.speculated59 - br i1 %cmp10.i67, label %for.body.i92, label %for.end.i91 + %cmp.i44 = icmp ult ptr %add.ptr.i.i.i, %add.ptr.i + %.sroa.speculated58 = select i1 %cmp.i44, ptr %add.ptr.i.i.i, ptr %add.ptr.i + %add.ptr.i89 = getelementptr inbounds i8, ptr %.sroa.speculated58, i64 -384 + %cmp.i45 = icmp ult ptr %add.ptr.i16.i, %add.ptr.i89 + %.sroa.speculated55 = select i1 %cmp.i45, ptr %add.ptr.i89, ptr %add.ptr.i16.i + %cmp10.i60 = icmp ugt ptr %.sroa.speculated58, %.sroa.speculated55 + br i1 %cmp10.i60, label %for.body.i92, label %for.end.i91 for.body.i92: ; preds = %if.then4.i88, %for.body.i92 - %prefetch_limit.i.068 = phi ptr [ %add.ptr11.i, %for.body.i92 ], [ %.sroa.speculated62, %if.then4.i88 ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.068) #25, !srcloc !7 - %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.068, i64 -64 - %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated59 + %prefetch_limit.i.061 = phi ptr [ %add.ptr11.i, %for.body.i92 ], [ %.sroa.speculated58, %if.then4.i88 ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.061) #25, !srcloc !7 + %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.061, i64 -64 + %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated55 br i1 %cmp10.i, label %for.body.i92, label %for.end.i91.loopexit, !llvm.loop !15 for.end.i91.loopexit: ; preds = %for.body.i92 - %.pre.pre = load ptr, ptr %limit_.i43, align 8 + %.pre.pre = load ptr, ptr %limit_.i39, align 8 br label %for.end.i91 for.end.i91: ; preds = %for.end.i91.loopexit, %if.then4.i88 %.pre = phi ptr [ %add.ptr.i, %if.then4.i88 ], [ %.pre.pre, %for.end.i91.loopexit ] - %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated62, %if.then4.i88 ], [ %add.ptr11.i, %for.end.i91.loopexit ] + %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated58, %if.then4.i88 ], [ %add.ptr11.i, %for.end.i91.loopexit ] store ptr %prefetch_limit.i.0.lcssa, ptr %prefetch_limit_.i.i, align 8 br label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit -_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; preds = %if.end.i, %for.end.i91 - %38 = phi ptr [ %add.ptr.i, %if.end.i ], [ %.pre, %for.end.i91 ] - switch i64 %retval.i53.0, label %sw.default.i98 [ +_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; preds = %for.end.i91, %if.end.i + %17 = phi ptr [ %.pre, %for.end.i91 ], [ %add.ptr.i, %if.end.i ] + switch i64 %retval.i67.0, label %sw.default.i98 [ i64 1, label %sw.bb.i100 i64 2, label %sw.bb2.i99 ] sw.bb.i100: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - %or.i = or i64 %.us-phi, 1 - store i64 %or.i, ptr %38, align 1 + %or.i = or i64 %and.i.i43, 1 + store i64 %or.i, ptr %17, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.bb2.i99: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - %or5.i = or i64 %.us-phi, 2 - store i64 %or5.i, ptr %38, align 1 + %or5.i = or i64 %and.i.i43, 2 + store i64 %or5.i, ptr %17, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.default.i98: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - store i64 %.us-phi, ptr %38, align 1 - %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 8 + store i64 %and.i.i43, ptr %17, align 1 + %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %17, i64 8 store ptr %destructor, ptr %n7.i.sroa.2.0..sroa_idx, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit _ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit: ; preds = %sw.default.i98, %sw.bb2.i99, %sw.bb.i100 - %39 = load ptr, ptr %prefetch_ptr_.i.i, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %39 to i64 - %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %.us-phi66 + %18 = load ptr, ptr %prefetch_ptr_.i.i, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %18 to i64 + %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %add.i %cmp.i26 = icmp slt i64 %sub.ptr.sub.i, 1025 - %40 = load ptr, ptr %prefetch_limit_.i.i, align 8 - %cmp3.i = icmp ult ptr %39, %40 + %19 = load ptr, ptr %prefetch_limit_.i.i, align 8 + %cmp3.i = icmp ult ptr %18, %19 %or.cond = select i1 %cmp.i26, i1 %cmp3.i, i1 false br i1 %or.cond, label %if.then4.i, label %_ZN6google8protobuf8internal11SerialArena26AllocateAlignedWithCleanupEmmPFvPvE.exit if.then4.i: ; preds = %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit - %cmp.i51 = icmp ugt ptr %39, %35 - %.sroa.speculated56 = select i1 %cmp.i51, ptr %39, ptr %35 - %add.ptr.i29 = getelementptr inbounds i8, ptr %.sroa.speculated56, i64 1024 - %cmp.i53 = icmp ult ptr %add.ptr.i29, %40 - %.sroa.speculated = select i1 %cmp.i53, ptr %add.ptr.i29, ptr %40 - %cmp8.i69 = icmp ult ptr %.sroa.speculated56, %.sroa.speculated - br i1 %cmp8.i69, label %for.body.i, label %for.end.i + %cmp.i47 = icmp ugt ptr %18, %16 + %.sroa.speculated52 = select i1 %cmp.i47, ptr %18, ptr %16 + %add.ptr.i29 = getelementptr inbounds i8, ptr %.sroa.speculated52, i64 1024 + %cmp.i49 = icmp ult ptr %add.ptr.i29, %19 + %.sroa.speculated = select i1 %cmp.i49, ptr %add.ptr.i29, ptr %19 + %cmp8.i62 = icmp ult ptr %.sroa.speculated52, %.sroa.speculated + br i1 %cmp8.i62, label %for.body.i, label %for.end.i for.body.i: ; preds = %if.then4.i, %for.body.i - %prefetch_ptr.i.070 = phi ptr [ %add.ptr9.i, %for.body.i ], [ %.sroa.speculated56, %if.then4.i ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr %prefetch_ptr.i.070) #25, !srcloc !7 - %add.ptr9.i = getelementptr inbounds i8, ptr %prefetch_ptr.i.070, i64 64 + %prefetch_ptr.i.063 = phi ptr [ %add.ptr9.i, %for.body.i ], [ %.sroa.speculated52, %if.then4.i ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr %prefetch_ptr.i.063) #25, !srcloc !7 + %add.ptr9.i = getelementptr inbounds i8, ptr %prefetch_ptr.i.063, i64 64 %cmp8.i = icmp ult ptr %add.ptr9.i, %.sroa.speculated br i1 %cmp8.i, label %for.body.i, label %for.end.i, !llvm.loop !8 for.end.i: ; preds = %for.body.i, %if.then4.i - %prefetch_ptr.i.0.lcssa = phi ptr [ %.sroa.speculated56, %if.then4.i ], [ %add.ptr9.i, %for.body.i ] + %prefetch_ptr.i.0.lcssa = phi ptr [ %.sroa.speculated52, %if.then4.i ], [ %add.ptr9.i, %for.body.i ] store ptr %prefetch_ptr.i.0.lcssa, ptr %prefetch_ptr_.i.i, align 8 br label %_ZN6google8protobuf8internal11SerialArena26AllocateAlignedWithCleanupEmmPFvPvE.exit _ZN6google8protobuf8internal11SerialArena26AllocateAlignedWithCleanupEmmPFvPvE.exit: ; preds = %for.end.i, %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit - %41 = inttoptr i64 %.us-phi to ptr - ret ptr %41 + %20 = inttoptr i64 %and.i.i43 to ptr + ret ptr %20 } ; Function Attrs: mustprogress uwtable define void @_ZN6google8protobuf8internal11SerialArena18AddCleanupFallbackEPvPFvS3_E(ptr nocapture noundef nonnull align 8 dereferenceable(96) %this, ptr noundef %elem, ptr noundef %destructor) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { entry: %cmp.i = icmp eq ptr %destructor, null + br i1 %cmp.i, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit, label %cond.false.i + +cond.false.i: ; preds = %entry %cmp.i16 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv %cmp1.i18 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv - %narrow.not = or i1 %cmp.i16, %cmp1.i18 - %0 = select i1 %narrow.not, i64 8, i64 16 - %cond.i = select i1 %cmp.i, i64 0, i64 %0 + %. = select i1 %cmp1.i18, i64 2, i64 0 + %retval.i14.0 = select i1 %cmp.i16, i64 1, i64 %. + %switch.gep = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E, i64 0, i64 %retval.i14.0 + %switch.load = load i64, ptr %switch.gep, align 8 + br label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit + +_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit: ; preds = %cond.false.i, %entry + %cond.i = phi i64 [ 0, %entry ], [ %switch.load, %cond.false.i ] %head_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 6 - %1 = load atomic i64, ptr %head_.i.i monotonic, align 8 - %atomic-temp.i.0.i.i.i = inttoptr i64 %1 to ptr + %0 = load atomic i64, ptr %head_.i.i monotonic, align 8 + %atomic-temp.i.0.i.i.i = inttoptr i64 %0 to ptr %size.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %atomic-temp.i.0.i.i.i, i64 0, i32 2 - %2 = load i64, ptr %size.i.i, align 8 - %cmp.i.i = icmp eq i64 %2, 0 - br i1 %cmp.i.i, label %if.end.i26, label %if.then.i + %1 = load i64, ptr %size.i.i, align 8 + %cmp.i.i = icmp eq i64 %1, 0 + br i1 %cmp.i.i, label %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit, label %if.then.i -if.then.i: ; preds = %entry - %limit_.i18 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 1 - %3 = load ptr, ptr %limit_.i18, align 8 +if.then.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit + %limit_.i16 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 1 + %2 = load ptr, ptr %limit_.i16, align 8 %cleanup_nodes.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %atomic-temp.i.0.i.i.i, i64 0, i32 1 - store ptr %3, ptr %cleanup_nodes.i, align 8 - %4 = load atomic i64, ptr %this monotonic, align 8 + store ptr %2, ptr %cleanup_nodes.i, align 8 + %3 = load atomic i64, ptr %this monotonic, align 8 %add.ptr.i.i = getelementptr inbounds i8, ptr %atomic-temp.i.0.i.i.i, i64 24 - %sub.ptr.rhs.cast.i19 = ptrtoint ptr %add.ptr.i.i to i64 - %sub.ptr.sub.i20 = sub i64 %4, %sub.ptr.rhs.cast.i19 + %sub.ptr.rhs.cast.i17 = ptrtoint ptr %add.ptr.i.i to i64 + %sub.ptr.sub.i18 = sub i64 %3, %sub.ptr.rhs.cast.i17 %space_used_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 7 - %5 = load atomic i64, ptr %space_used_.i.i monotonic, align 8 - %add.i.i = add i64 %sub.ptr.sub.i20, %5 + %4 = load atomic i64, ptr %space_used_.i.i monotonic, align 8 + %add.i.i = add i64 %sub.ptr.sub.i18, %4 store atomic i64 %add.i.i, ptr %space_used_.i.i monotonic, align 8 %.pre.i = load i64, ptr %size.i.i, align 8 - br label %if.end.i26 + br label %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit -if.end.i26: ; preds = %if.then.i, %entry - %6 = phi i64 [ %.pre.i, %if.then.i ], [ 0, %entry ] +_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit, %if.then.i + %5 = phi i64 [ %.pre.i, %if.then.i ], [ 0, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit ] %parent_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 9 - %7 = load ptr, ptr %parent_.i, align 8 - %alloc_policy_.i.i = getelementptr inbounds %"class.google::protobuf::internal::ThreadSafeArena", ptr %7, i64 0, i32 1 - %8 = load i64, ptr %alloc_policy_.i.i, align 8 - %and.i.i.i = and i64 %8, -8 - %9 = inttoptr i64 %and.i.i.i to ptr - %call8.i = tail call fastcc { ptr, i64 } @_ZN6google8protobuf8internalL14AllocateMemoryEPKNS1_16AllocationPolicyEmm(ptr noundef %9, i64 noundef %6, i64 noundef %cond.i) - %10 = extractvalue { ptr, i64 } %call8.i, 0 - %11 = extractvalue { ptr, i64 } %call8.i, 1 + %6 = load ptr, ptr %parent_.i, align 8 + %alloc_policy_.i.i = getelementptr inbounds %"class.google::protobuf::internal::ThreadSafeArena", ptr %6, i64 0, i32 1 + %7 = load i64, ptr %alloc_policy_.i.i, align 8 + %and.i.i.i = and i64 %7, -8 + %8 = inttoptr i64 %and.i.i.i to ptr + %call8.i = tail call fastcc { ptr, i64 } @_ZN6google8protobuf8internalL14AllocateMemoryEPKNS1_16AllocationPolicyEmm(ptr noundef %8, i64 noundef %5, i64 noundef %cond.i) + %9 = extractvalue { ptr, i64 } %call8.i, 0 + %10 = extractvalue { ptr, i64 } %call8.i, 1 %space_allocated_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 8 - %12 = load atomic i64, ptr %space_allocated_.i.i monotonic, align 8 - %add.i15.i = add i64 %12, %11 + %11 = load atomic i64, ptr %space_allocated_.i.i monotonic, align 8 + %add.i15.i = add i64 %11, %10 store atomic i64 %add.i15.i, ptr %space_allocated_.i.i monotonic, align 8 - store ptr %atomic-temp.i.0.i.i.i, ptr %10, align 8 - %cleanup_nodes.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %10, i64 0, i32 1 + store ptr %atomic-temp.i.0.i.i.i, ptr %9, align 8 + %cleanup_nodes.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %9, i64 0, i32 1 store ptr null, ptr %cleanup_nodes.i.i, align 8 - %size3.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %10, i64 0, i32 2 - store i64 %11, ptr %size3.i.i, align 8 - %add.ptr.i16.i = getelementptr inbounds i8, ptr %10, i64 24 - %and.i.i = and i64 %11, -8 - %add.ptr.i.i.i = getelementptr inbounds i8, ptr %10, i64 %and.i.i - %13 = ptrtoint ptr %add.ptr.i16.i to i64 - store atomic i64 %13, ptr %this monotonic, align 8 + %size3.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ArenaBlock", ptr %9, i64 0, i32 2 + store i64 %10, ptr %size3.i.i, align 8 + %add.ptr.i16.i = getelementptr inbounds i8, ptr %9, i64 24 + %and.i.i = and i64 %10, -8 + %add.ptr.i.i.i = getelementptr inbounds i8, ptr %9, i64 %and.i.i + %12 = ptrtoint ptr %add.ptr.i16.i to i64 + store atomic i64 %12, ptr %this monotonic, align 8 %prefetch_ptr_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 2 store ptr %add.ptr.i16.i, ptr %prefetch_ptr_.i.i, align 8 %limit_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 1 store ptr %add.ptr.i.i.i, ptr %limit_.i.i, align 8 %prefetch_limit_.i.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %this, i64 0, i32 3 store ptr %add.ptr.i.i.i, ptr %prefetch_limit_.i.i, align 8 - %14 = ptrtoint ptr %10 to i64 - store atomic i64 %14, ptr %head_.i.i release, align 8 - %.15 = select i1 %cmp1.i18, i64 2, i64 0 - %retval.i11.0 = select i1 %cmp.i16, i64 1, i64 %.15 - %15 = add nsw i64 %retval.i11.0, -1 - %switch.selectcmp17 = icmp ult i64 %15, 2 - %16 = select i1 %switch.selectcmp17, i64 -8, i64 -16 - %add.ptr.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 %16 + %13 = ptrtoint ptr %9 to i64 + store atomic i64 %13, ptr %head_.i.i release, align 8 + %cmp.i13 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv + %cmp1.i = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv + %.15 = select i1 %cmp1.i, i64 2, i64 0 + %retval.i11.0 = select i1 %cmp.i13, i64 1, i64 %.15 + %switch.gep28 = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E.7, i64 0, i64 %retval.i11.0 + %switch.load29 = load i64, ptr %switch.gep28, align 8 + %add.ptr.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 %switch.load29 store ptr %add.ptr.i, ptr %limit_.i.i, align 8 %cmp3.i = icmp sgt i64 %and.i.i, 24 br i1 %cmp3.i, label %if.then4.i, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit -if.then4.i: ; preds = %if.end.i26 - %cmp.i21 = icmp ult ptr %add.ptr.i.i.i, %add.ptr.i - %.sroa.speculated25 = select i1 %cmp.i21, ptr %add.ptr.i.i.i, ptr %add.ptr.i - %add.ptr.i27 = getelementptr inbounds i8, ptr %.sroa.speculated25, i64 -384 - %cmp.i22 = icmp ult ptr %add.ptr.i16.i, %add.ptr.i27 - %.sroa.speculated = select i1 %cmp.i22, ptr %add.ptr.i27, ptr %add.ptr.i16.i - %cmp10.i26 = icmp ugt ptr %.sroa.speculated25, %.sroa.speculated - br i1 %cmp10.i26, label %for.body.i, label %for.end.i +if.then4.i: ; preds = %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit + %cmp.i19 = icmp ult ptr %add.ptr.i.i.i, %add.ptr.i + %.sroa.speculated23 = select i1 %cmp.i19, ptr %add.ptr.i.i.i, ptr %add.ptr.i + %add.ptr.i27 = getelementptr inbounds i8, ptr %.sroa.speculated23, i64 -384 + %cmp.i20 = icmp ult ptr %add.ptr.i16.i, %add.ptr.i27 + %.sroa.speculated = select i1 %cmp.i20, ptr %add.ptr.i27, ptr %add.ptr.i16.i + %cmp10.i24 = icmp ugt ptr %.sroa.speculated23, %.sroa.speculated + br i1 %cmp10.i24, label %for.body.i, label %for.end.i for.body.i: ; preds = %if.then4.i, %for.body.i - %prefetch_limit.i.027 = phi ptr [ %add.ptr11.i, %for.body.i ], [ %.sroa.speculated25, %if.then4.i ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.027) #25, !srcloc !7 - %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.027, i64 -64 + %prefetch_limit.i.025 = phi ptr [ %add.ptr11.i, %for.body.i ], [ %.sroa.speculated23, %if.then4.i ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.025) #25, !srcloc !7 + %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.025, i64 -64 %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated br i1 %cmp10.i, label %for.body.i, label %for.end.i.loopexit, !llvm.loop !15 @@ -1512,31 +1466,31 @@ for.end.i.loopexit: ; preds = %for.body.i for.end.i: ; preds = %for.end.i.loopexit, %if.then4.i %.pre = phi ptr [ %add.ptr.i, %if.then4.i ], [ %.pre.pre, %for.end.i.loopexit ] - %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated25, %if.then4.i ], [ %add.ptr11.i, %for.end.i.loopexit ] + %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated23, %if.then4.i ], [ %add.ptr11.i, %for.end.i.loopexit ] store ptr %prefetch_limit.i.0.lcssa, ptr %prefetch_limit_.i.i, align 8 br label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit -_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; preds = %for.end.i, %if.end.i26 - %17 = phi ptr [ %.pre, %for.end.i ], [ %add.ptr.i, %if.end.i26 ] - %18 = ptrtoint ptr %elem to i64 +_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; preds = %for.end.i, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit + %14 = phi ptr [ %.pre, %for.end.i ], [ %add.ptr.i, %_ZN6google8protobuf8internal11SerialArena16AllocateNewBlockEm.exit ] + %15 = ptrtoint ptr %elem to i64 switch i64 %retval.i11.0, label %sw.default.i32 [ i64 1, label %sw.bb.i34 i64 2, label %sw.bb2.i33 ] sw.bb.i34: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - %or.i = or i64 %18, 1 - store i64 %or.i, ptr %17, align 1 + %or.i = or i64 %15, 1 + store i64 %or.i, ptr %14, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.bb2.i33: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - %or5.i = or i64 %18, 2 - store i64 %or5.i, ptr %17, align 1 + %or5.i = or i64 %15, 2 + store i64 %or5.i, ptr %14, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.default.i32: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - store i64 %18, ptr %17, align 1 - %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %17, i64 8 + store i64 %15, ptr %14, align 1 + %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8 store ptr %destructor, ptr %n7.i.sroa.2.0..sroa_idx, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit @@ -1718,7 +1672,7 @@ while.body: ; preds = %do.body, %_ZN6googl %it.015 = phi ptr [ %add.ptr, %_ZN6google8protobuf8internal7cleanup11DestroyNodeEPKv.exit ], [ %4, %do.body ] %elem.i.0.copyload = load i64, ptr %it.015, align 1 %and.i = and i64 %elem.i.0.copyload, 3 - switch i64 %and.i, label %while.body.unreachabledefault [ + switch i64 %and.i, label %default.unreachable16 [ i64 1, label %sw.bb.i i64 2, label %sw.bb1.i i64 0, label %sw.default.i @@ -1750,7 +1704,7 @@ terminate.lpad.i: ; preds = %if.then.i tail call void @__clang_call_terminate(ptr %10) #27 unreachable -while.body.unreachabledefault: ; preds = %while.body +default.unreachable16: ; preds = %while.body unreachable sw.default.i: ; preds = %while.body, %while.body @@ -2669,7 +2623,7 @@ while.body.i.i: ; preds = %do.body.i.i, %_ZN6g %it.015.i.i = phi ptr [ %add.ptr.i.i, %_ZN6google8protobuf8internal7cleanup11DestroyNodeEPKv.exit.i.i ], [ %11, %do.body.i.i ] %elem.i.0.copyload.i.i = load i64, ptr %it.015.i.i, align 1 %and.i.i.i = and i64 %elem.i.0.copyload.i.i, 3 - switch i64 %and.i.i.i, label %while.body.unreachabledefault.i.i [ + switch i64 %and.i.i.i, label %default.unreachable [ i64 1, label %sw.bb.i.i.i i64 2, label %sw.bb1.i.i.i i64 0, label %sw.default.i.i.i @@ -2701,7 +2655,7 @@ terminate.lpad.i.i.i: ; preds = %if.then.i.i.i tail call void @__clang_call_terminate(ptr %17) #27 unreachable -while.body.unreachabledefault.i.i: ; preds = %while.body.i.i +default.unreachable: ; preds = %while.body.i.i unreachable sw.default.i.i.i: ; preds = %while.body.i.i, %while.body.i.i @@ -3249,60 +3203,69 @@ if.then: ; preds = %entry %5 = inttoptr i64 %and.i.i to ptr %add.i = add i64 %and.i.i, %and.i %cmp.i.i = icmp eq ptr %destructor, null + br i1 %cmp.i.i, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i, label %cond.false.i.i + +cond.false.i.i: ; preds = %if.then %cmp.i44 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv %cmp1.i46 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv - %narrow.not = or i1 %cmp.i44, %cmp1.i46 - %6 = select i1 %narrow.not, i64 8, i64 16 - %cond.i.i = select i1 %cmp.i.i, i64 0, i64 %6 - %add6.i = add i64 %add.i, %cond.i.i + %. = select i1 %cmp1.i46, i64 2, i64 0 + %retval.i42.0 = select i1 %cmp.i44, i64 1, i64 %. + %switch.gep = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E, i64 0, i64 %retval.i42.0 + %switch.load = load i64, ptr %switch.gep, align 8 + br label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i + +_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i: ; preds = %cond.false.i.i, %if.then + %cond.i.i = phi i64 [ 0, %if.then ], [ %switch.load, %cond.false.i.i ] + %add6.i = add i64 %cond.i.i, %add.i %limit_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %3, i64 0, i32 1 - %7 = load ptr, ptr %limit_.i, align 8 - %8 = ptrtoint ptr %7 to i64 - %cmp.i = icmp ugt i64 %add6.i, %8 + %6 = load ptr, ptr %limit_.i, align 8 + %7 = ptrtoint ptr %6 to i64 + %cmp.i = icmp ugt i64 %add6.i, %7 br i1 %cmp.i, label %if.then.i, label %if.end.i -if.then.i: ; preds = %if.then +if.then.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i %call7.i = tail call noundef ptr @_ZN6google8protobuf8internal11SerialArena34AllocateAlignedWithCleanupFallbackEmmPFvPvE(ptr noundef nonnull align 8 dereferenceable(96) %3, i64 noundef %and.i, i64 noundef %align, ptr noundef %destructor) br label %return -if.end.i: ; preds = %if.then - %9 = inttoptr i64 %add.i to ptr +if.end.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i + %8 = inttoptr i64 %add.i to ptr store atomic i64 %add.i, ptr %3 monotonic, align 8 - %.31 = select i1 %cmp1.i46, i64 2, i64 0 - %retval.i37.0 = select i1 %cmp.i44, i64 1, i64 %.31 - %10 = add nsw i64 %retval.i37.0, -1 - %switch.selectcmp33 = icmp ult i64 %10, 2 - %11 = select i1 %switch.selectcmp33, i64 -8, i64 -16 - %add.ptr.i = getelementptr inbounds i8, ptr %7, i64 %11 + %cmp.i39 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv + %cmp1.i = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv + %.31 = select i1 %cmp1.i, i64 2, i64 0 + %retval.i37.0 = select i1 %cmp.i39, i64 1, i64 %.31 + %switch.gep54 = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E.7, i64 0, i64 %retval.i37.0 + %switch.load55 = load i64, ptr %switch.gep54, align 8 + %add.ptr.i = getelementptr inbounds i8, ptr %6, i64 %switch.load55 store ptr %add.ptr.i, ptr %limit_.i, align 8 %prefetch_limit_.i55 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %3, i64 0, i32 3 - %12 = load ptr, ptr %prefetch_limit_.i55, align 8 + %9 = load ptr, ptr %prefetch_limit_.i55, align 8 %sub.ptr.lhs.cast.i56 = ptrtoint ptr %add.ptr.i to i64 - %sub.ptr.rhs.cast.i57 = ptrtoint ptr %12 to i64 + %sub.ptr.rhs.cast.i57 = ptrtoint ptr %9 to i64 %sub.ptr.sub.i58 = sub i64 %sub.ptr.lhs.cast.i56, %sub.ptr.rhs.cast.i57 %cmp.i59 = icmp sgt i64 %sub.ptr.sub.i58, 384 br i1 %cmp.i59, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit, label %if.end.i60 if.end.i60: ; preds = %if.end.i %prefetch_ptr_.i61 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %3, i64 0, i32 2 - %13 = load ptr, ptr %prefetch_ptr_.i61, align 8 - %cmp3.i62 = icmp ugt ptr %12, %13 + %10 = load ptr, ptr %prefetch_ptr_.i61, align 8 + %cmp3.i62 = icmp ugt ptr %9, %10 br i1 %cmp3.i62, label %if.then4.i63, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit if.then4.i63: ; preds = %if.end.i60 - %cmp.i34 = icmp ult ptr %12, %add.ptr.i - %.sroa.speculated49 = select i1 %cmp.i34, ptr %12, ptr %add.ptr.i - %add.ptr.i64 = getelementptr inbounds i8, ptr %.sroa.speculated49, i64 -384 - %cmp.i35 = icmp ult ptr %13, %add.ptr.i64 - %.sroa.speculated46 = select i1 %cmp.i35, ptr %add.ptr.i64, ptr %13 - %cmp10.i50 = icmp ugt ptr %.sroa.speculated49, %.sroa.speculated46 - br i1 %cmp10.i50, label %for.body.i67, label %for.end.i66 + %cmp.i32 = icmp ult ptr %9, %add.ptr.i + %.sroa.speculated46 = select i1 %cmp.i32, ptr %9, ptr %add.ptr.i + %add.ptr.i64 = getelementptr inbounds i8, ptr %.sroa.speculated46, i64 -384 + %cmp.i33 = icmp ult ptr %10, %add.ptr.i64 + %.sroa.speculated43 = select i1 %cmp.i33, ptr %add.ptr.i64, ptr %10 + %cmp10.i47 = icmp ugt ptr %.sroa.speculated46, %.sroa.speculated43 + br i1 %cmp10.i47, label %for.body.i67, label %for.end.i66 for.body.i67: ; preds = %if.then4.i63, %for.body.i67 - %prefetch_limit.i.051 = phi ptr [ %add.ptr11.i, %for.body.i67 ], [ %.sroa.speculated49, %if.then4.i63 ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.051) #25, !srcloc !7 - %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.051, i64 -64 - %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated46 + %prefetch_limit.i.048 = phi ptr [ %add.ptr11.i, %for.body.i67 ], [ %.sroa.speculated46, %if.then4.i63 ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.048) #25, !srcloc !7 + %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.048, i64 -64 + %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated43 br i1 %cmp10.i, label %for.body.i67, label %for.end.i66.loopexit, !llvm.loop !15 for.end.i66.loopexit: ; preds = %for.body.i67 @@ -3311,12 +3274,12 @@ for.end.i66.loopexit: ; preds = %for.body.i67 for.end.i66: ; preds = %for.end.i66.loopexit, %if.then4.i63 %.pre = phi ptr [ %add.ptr.i, %if.then4.i63 ], [ %.pre.pre, %for.end.i66.loopexit ] - %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated49, %if.then4.i63 ], [ %add.ptr11.i, %for.end.i66.loopexit ] + %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated46, %if.then4.i63 ], [ %add.ptr11.i, %for.end.i66.loopexit ] store ptr %prefetch_limit.i.0.lcssa, ptr %prefetch_limit_.i55, align 8 br label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit _ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; preds = %if.end.i, %for.end.i66, %if.end.i60 - %14 = phi ptr [ %add.ptr.i, %if.end.i ], [ %.pre, %for.end.i66 ], [ %add.ptr.i, %if.end.i60 ] + %11 = phi ptr [ %add.ptr.i, %if.end.i ], [ %.pre, %for.end.i66 ], [ %add.ptr.i, %if.end.i60 ] switch i64 %retval.i37.0, label %sw.default.i73 [ i64 1, label %sw.bb.i75 i64 2, label %sw.bb2.i74 @@ -3324,51 +3287,51 @@ _ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; pr sw.bb.i75: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit %or.i = or i64 %and.i.i, 1 - store i64 %or.i, ptr %14, align 1 + store i64 %or.i, ptr %11, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.bb2.i74: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit %or5.i = or i64 %and.i.i, 2 - store i64 %or5.i, ptr %14, align 1 + store i64 %or5.i, ptr %11, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.default.i73: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - store i64 %and.i.i, ptr %14, align 1 - %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8 + store i64 %and.i.i, ptr %11, align 1 + %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8 store ptr %destructor, ptr %n7.i.sroa.2.0..sroa_idx, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit _ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit: ; preds = %sw.default.i73, %sw.bb2.i74, %sw.bb.i75 %prefetch_ptr_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %arena.0, i64 0, i32 2 - %15 = load ptr, ptr %prefetch_ptr_.i, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %15 to i64 + %12 = load ptr, ptr %prefetch_ptr_.i, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %12 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %add.i %cmp.i21 = icmp sgt i64 %sub.ptr.sub.i, 1024 br i1 %cmp.i21, label %return, label %if.end.i22 if.end.i22: ; preds = %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit - %16 = load ptr, ptr %prefetch_limit_.i55, align 8 - %cmp3.i = icmp ult ptr %15, %16 + %13 = load ptr, ptr %prefetch_limit_.i55, align 8 + %cmp3.i = icmp ult ptr %12, %13 br i1 %cmp3.i, label %if.then4.i, label %return if.then4.i: ; preds = %if.end.i22 - %cmp.i37 = icmp ugt ptr %15, %9 - %.sroa.speculated43 = select i1 %cmp.i37, ptr %15, ptr %9 - %add.ptr.i24 = getelementptr inbounds i8, ptr %.sroa.speculated43, i64 1024 - %cmp.i40 = icmp ult ptr %add.ptr.i24, %16 - %.sroa.speculated = select i1 %cmp.i40, ptr %add.ptr.i24, ptr %16 - %cmp8.i52 = icmp ult ptr %.sroa.speculated43, %.sroa.speculated - br i1 %cmp8.i52, label %for.body.i, label %for.end.i + %cmp.i35 = icmp ugt ptr %12, %8 + %.sroa.speculated40 = select i1 %cmp.i35, ptr %12, ptr %8 + %add.ptr.i24 = getelementptr inbounds i8, ptr %.sroa.speculated40, i64 1024 + %cmp.i37 = icmp ult ptr %add.ptr.i24, %13 + %.sroa.speculated = select i1 %cmp.i37, ptr %add.ptr.i24, ptr %13 + %cmp8.i49 = icmp ult ptr %.sroa.speculated40, %.sroa.speculated + br i1 %cmp8.i49, label %for.body.i, label %for.end.i for.body.i: ; preds = %if.then4.i, %for.body.i - %prefetch_ptr.i.053 = phi ptr [ %add.ptr9.i, %for.body.i ], [ %.sroa.speculated43, %if.then4.i ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr %prefetch_ptr.i.053) #25, !srcloc !7 - %add.ptr9.i = getelementptr inbounds i8, ptr %prefetch_ptr.i.053, i64 64 + %prefetch_ptr.i.050 = phi ptr [ %add.ptr9.i, %for.body.i ], [ %.sroa.speculated40, %if.then4.i ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr %prefetch_ptr.i.050) #25, !srcloc !7 + %add.ptr9.i = getelementptr inbounds i8, ptr %prefetch_ptr.i.050, i64 64 %cmp8.i = icmp ult ptr %add.ptr9.i, %.sroa.speculated br i1 %cmp8.i, label %for.body.i, label %for.end.i, !llvm.loop !8 for.end.i: ; preds = %for.body.i, %if.then4.i - %prefetch_ptr.i.0.lcssa = phi ptr [ %.sroa.speculated43, %if.then4.i ], [ %add.ptr9.i, %for.body.i ] + %prefetch_ptr.i.0.lcssa = phi ptr [ %.sroa.speculated40, %if.then4.i ], [ %add.ptr9.i, %for.body.i ] store ptr %prefetch_ptr.i.0.lcssa, ptr %prefetch_ptr_.i, align 8 br label %return @@ -3396,60 +3359,69 @@ entry: %1 = inttoptr i64 %and.i.i to ptr %add.i = add i64 %and.i.i, %and.i %cmp.i.i = icmp eq ptr %destructor, null + br i1 %cmp.i.i, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i, label %cond.false.i.i + +cond.false.i.i: ; preds = %entry %cmp.i36 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv %cmp1.i38 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv - %narrow.not = or i1 %cmp.i36, %cmp1.i38 - %2 = select i1 %narrow.not, i64 8, i64 16 - %cond.i.i = select i1 %cmp.i.i, i64 0, i64 %2 - %add6.i = add i64 %add.i, %cond.i.i + %. = select i1 %cmp1.i38, i64 2, i64 0 + %retval.i34.0 = select i1 %cmp.i36, i64 1, i64 %. + %switch.gep = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E, i64 0, i64 %retval.i34.0 + %switch.load = load i64, ptr %switch.gep, align 8 + br label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i + +_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i: ; preds = %cond.false.i.i, %entry + %cond.i.i = phi i64 [ 0, %entry ], [ %switch.load, %cond.false.i.i ] + %add6.i = add i64 %cond.i.i, %add.i %limit_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %call, i64 0, i32 1 - %3 = load ptr, ptr %limit_.i, align 8 - %4 = ptrtoint ptr %3 to i64 - %cmp.i = icmp ugt i64 %add6.i, %4 + %2 = load ptr, ptr %limit_.i, align 8 + %3 = ptrtoint ptr %2 to i64 + %cmp.i = icmp ugt i64 %add6.i, %3 br i1 %cmp.i, label %if.then.i, label %if.end.i -if.then.i: ; preds = %entry +if.then.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i %call7.i = tail call noundef ptr @_ZN6google8protobuf8internal11SerialArena34AllocateAlignedWithCleanupFallbackEmmPFvPvE(ptr noundef nonnull align 8 dereferenceable(96) %call, i64 noundef %and.i, i64 noundef %align, ptr noundef %destructor) br label %_ZN6google8protobuf8internal11SerialArena26AllocateAlignedWithCleanupEmmPFvPvE.exit -if.end.i: ; preds = %entry - %5 = inttoptr i64 %add.i to ptr +if.end.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i + %4 = inttoptr i64 %add.i to ptr store atomic i64 %add.i, ptr %call monotonic, align 8 - %.28 = select i1 %cmp1.i38, i64 2, i64 0 - %retval.i29.0 = select i1 %cmp.i36, i64 1, i64 %.28 - %6 = add nsw i64 %retval.i29.0, -1 - %switch.selectcmp30 = icmp ult i64 %6, 2 - %7 = select i1 %switch.selectcmp30, i64 -8, i64 -16 - %add.ptr.i = getelementptr inbounds i8, ptr %3, i64 %7 + %cmp.i31 = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv + %cmp1.i = icmp eq ptr %destructor, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv + %.28 = select i1 %cmp1.i, i64 2, i64 0 + %retval.i29.0 = select i1 %cmp.i31, i64 1, i64 %.28 + %switch.gep51 = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E.7, i64 0, i64 %retval.i29.0 + %switch.load52 = load i64, ptr %switch.gep51, align 8 + %add.ptr.i = getelementptr inbounds i8, ptr %2, i64 %switch.load52 store ptr %add.ptr.i, ptr %limit_.i, align 8 %prefetch_limit_.i47 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %call, i64 0, i32 3 - %8 = load ptr, ptr %prefetch_limit_.i47, align 8 + %5 = load ptr, ptr %prefetch_limit_.i47, align 8 %sub.ptr.lhs.cast.i48 = ptrtoint ptr %add.ptr.i to i64 - %sub.ptr.rhs.cast.i49 = ptrtoint ptr %8 to i64 + %sub.ptr.rhs.cast.i49 = ptrtoint ptr %5 to i64 %sub.ptr.sub.i50 = sub i64 %sub.ptr.lhs.cast.i48, %sub.ptr.rhs.cast.i49 %cmp.i51 = icmp sgt i64 %sub.ptr.sub.i50, 384 br i1 %cmp.i51, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit, label %if.end.i52 if.end.i52: ; preds = %if.end.i %prefetch_ptr_.i53 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %call, i64 0, i32 2 - %9 = load ptr, ptr %prefetch_ptr_.i53, align 8 - %cmp3.i54 = icmp ugt ptr %8, %9 + %6 = load ptr, ptr %prefetch_ptr_.i53, align 8 + %cmp3.i54 = icmp ugt ptr %5, %6 br i1 %cmp3.i54, label %if.then4.i55, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit if.then4.i55: ; preds = %if.end.i52 - %cmp.i32 = icmp ult ptr %8, %add.ptr.i - %.sroa.speculated46 = select i1 %cmp.i32, ptr %8, ptr %add.ptr.i - %add.ptr.i56 = getelementptr inbounds i8, ptr %.sroa.speculated46, i64 -384 - %cmp.i33 = icmp ult ptr %9, %add.ptr.i56 - %.sroa.speculated43 = select i1 %cmp.i33, ptr %add.ptr.i56, ptr %9 - %cmp10.i47 = icmp ugt ptr %.sroa.speculated46, %.sroa.speculated43 - br i1 %cmp10.i47, label %for.body.i59, label %for.end.i58 + %cmp.i29 = icmp ult ptr %5, %add.ptr.i + %.sroa.speculated43 = select i1 %cmp.i29, ptr %5, ptr %add.ptr.i + %add.ptr.i56 = getelementptr inbounds i8, ptr %.sroa.speculated43, i64 -384 + %cmp.i30 = icmp ult ptr %6, %add.ptr.i56 + %.sroa.speculated40 = select i1 %cmp.i30, ptr %add.ptr.i56, ptr %6 + %cmp10.i44 = icmp ugt ptr %.sroa.speculated43, %.sroa.speculated40 + br i1 %cmp10.i44, label %for.body.i59, label %for.end.i58 for.body.i59: ; preds = %if.then4.i55, %for.body.i59 - %prefetch_limit.i.048 = phi ptr [ %add.ptr11.i, %for.body.i59 ], [ %.sroa.speculated46, %if.then4.i55 ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.048) #25, !srcloc !7 - %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.048, i64 -64 - %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated43 + %prefetch_limit.i.045 = phi ptr [ %add.ptr11.i, %for.body.i59 ], [ %.sroa.speculated43, %if.then4.i55 ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.045) #25, !srcloc !7 + %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.045, i64 -64 + %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated40 br i1 %cmp10.i, label %for.body.i59, label %for.end.i58.loopexit, !llvm.loop !15 for.end.i58.loopexit: ; preds = %for.body.i59 @@ -3458,12 +3430,12 @@ for.end.i58.loopexit: ; preds = %for.body.i59 for.end.i58: ; preds = %for.end.i58.loopexit, %if.then4.i55 %.pre = phi ptr [ %add.ptr.i, %if.then4.i55 ], [ %.pre.pre, %for.end.i58.loopexit ] - %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated46, %if.then4.i55 ], [ %add.ptr11.i, %for.end.i58.loopexit ] + %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated43, %if.then4.i55 ], [ %add.ptr11.i, %for.end.i58.loopexit ] store ptr %prefetch_limit.i.0.lcssa, ptr %prefetch_limit_.i47, align 8 br label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit _ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; preds = %if.end.i, %for.end.i58, %if.end.i52 - %10 = phi ptr [ %add.ptr.i, %if.end.i ], [ %.pre, %for.end.i58 ], [ %add.ptr.i, %if.end.i52 ] + %7 = phi ptr [ %add.ptr.i, %if.end.i ], [ %.pre, %for.end.i58 ], [ %add.ptr.i, %if.end.i52 ] switch i64 %retval.i29.0, label %sw.default.i65 [ i64 1, label %sw.bb.i67 i64 2, label %sw.bb2.i66 @@ -3471,51 +3443,51 @@ _ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; pr sw.bb.i67: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit %or.i = or i64 %and.i.i, 1 - store i64 %or.i, ptr %10, align 1 + store i64 %or.i, ptr %7, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.bb2.i66: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit %or5.i = or i64 %and.i.i, 2 - store i64 %or5.i, ptr %10, align 1 + store i64 %or5.i, ptr %7, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit sw.default.i65: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - store i64 %and.i.i, ptr %10, align 1 - %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %10, i64 8 + store i64 %and.i.i, ptr %7, align 1 + %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %7, i64 8 store ptr %destructor, ptr %n7.i.sroa.2.0..sroa_idx, align 1 br label %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit _ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit: ; preds = %sw.default.i65, %sw.bb2.i66, %sw.bb.i67 %prefetch_ptr_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %call, i64 0, i32 2 - %11 = load ptr, ptr %prefetch_ptr_.i, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %11 to i64 + %8 = load ptr, ptr %prefetch_ptr_.i, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %8 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %add.i %cmp.i13 = icmp sgt i64 %sub.ptr.sub.i, 1024 br i1 %cmp.i13, label %_ZN6google8protobuf8internal11SerialArena26AllocateAlignedWithCleanupEmmPFvPvE.exit, label %if.end.i14 if.end.i14: ; preds = %_ZN6google8protobuf8internal7cleanup10CreateNodeENS2_3TagEPvPKvPFvS4_E.exit - %12 = load ptr, ptr %prefetch_limit_.i47, align 8 - %cmp3.i = icmp ult ptr %11, %12 + %9 = load ptr, ptr %prefetch_limit_.i47, align 8 + %cmp3.i = icmp ult ptr %8, %9 br i1 %cmp3.i, label %if.then4.i, label %_ZN6google8protobuf8internal11SerialArena26AllocateAlignedWithCleanupEmmPFvPvE.exit if.then4.i: ; preds = %if.end.i14 - %cmp.i35 = icmp ugt ptr %11, %5 - %.sroa.speculated40 = select i1 %cmp.i35, ptr %11, ptr %5 - %add.ptr.i16 = getelementptr inbounds i8, ptr %.sroa.speculated40, i64 1024 - %cmp.i37 = icmp ult ptr %add.ptr.i16, %12 - %.sroa.speculated = select i1 %cmp.i37, ptr %add.ptr.i16, ptr %12 - %cmp8.i49 = icmp ult ptr %.sroa.speculated40, %.sroa.speculated - br i1 %cmp8.i49, label %for.body.i, label %for.end.i + %cmp.i32 = icmp ugt ptr %8, %4 + %.sroa.speculated37 = select i1 %cmp.i32, ptr %8, ptr %4 + %add.ptr.i16 = getelementptr inbounds i8, ptr %.sroa.speculated37, i64 1024 + %cmp.i34 = icmp ult ptr %add.ptr.i16, %9 + %.sroa.speculated = select i1 %cmp.i34, ptr %add.ptr.i16, ptr %9 + %cmp8.i46 = icmp ult ptr %.sroa.speculated37, %.sroa.speculated + br i1 %cmp8.i46, label %for.body.i, label %for.end.i for.body.i: ; preds = %if.then4.i, %for.body.i - %prefetch_ptr.i.050 = phi ptr [ %add.ptr9.i, %for.body.i ], [ %.sroa.speculated40, %if.then4.i ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr %prefetch_ptr.i.050) #25, !srcloc !7 - %add.ptr9.i = getelementptr inbounds i8, ptr %prefetch_ptr.i.050, i64 64 + %prefetch_ptr.i.047 = phi ptr [ %add.ptr9.i, %for.body.i ], [ %.sroa.speculated37, %if.then4.i ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr %prefetch_ptr.i.047) #25, !srcloc !7 + %add.ptr9.i = getelementptr inbounds i8, ptr %prefetch_ptr.i.047, i64 64 %cmp8.i = icmp ult ptr %add.ptr9.i, %.sroa.speculated br i1 %cmp8.i, label %for.body.i, label %for.end.i, !llvm.loop !8 for.end.i: ; preds = %for.body.i, %if.then4.i - %prefetch_ptr.i.0.lcssa = phi ptr [ %.sroa.speculated40, %if.then4.i ], [ %add.ptr9.i, %for.body.i ] + %prefetch_ptr.i.0.lcssa = phi ptr [ %.sroa.speculated37, %if.then4.i ], [ %add.ptr9.i, %for.body.i ] store ptr %prefetch_ptr.i.0.lcssa, ptr %prefetch_ptr_.i, align 8 br label %_ZN6google8protobuf8internal11SerialArena26AllocateAlignedWithCleanupEmmPFvPvE.exit @@ -3534,113 +3506,114 @@ entry: %cmp.i.not.i = icmp eq i64 %1, %2 %last_serial_arena.i.i = getelementptr inbounds %"struct.google::protobuf::internal::ThreadSafeArena::ThreadCache", ptr %0, i64 0, i32 2 %3 = load ptr, ptr %last_serial_arena.i.i, align 16 - br i1 %cmp.i.not.i, label %_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit, label %if.then.i20 + br i1 %cmp.i.not.i, label %_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit, label %if.then.i18 -if.then.i20: ; preds = %entry - %call2.i21 = tail call noundef ptr @_ZN6google8protobuf8internal15ThreadSafeArena22GetSerialArenaFallbackEm(ptr noundef nonnull align 8 dereferenceable(144) %this, i64 noundef 16) +if.then.i18: ; preds = %entry + %call2.i19 = tail call noundef ptr @_ZN6google8protobuf8internal15ThreadSafeArena22GetSerialArenaFallbackEm(ptr noundef nonnull align 8 dereferenceable(144) %this, i64 noundef 16) br label %_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit -_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit: ; preds = %entry, %if.then.i20 - %arena.1.i = phi ptr [ %call2.i21, %if.then.i20 ], [ %3, %entry ] +_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit: ; preds = %entry, %if.then.i18 + %arena.1.i = phi ptr [ %call2.i19, %if.then.i18 ], [ %3, %entry ] %cmp.i.i = icmp eq ptr %cleanup, null - br i1 %cmp.i.i, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i + br i1 %cmp.i.i, label %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread, label %cond.false.i.i _ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread: ; preds = %_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit - %limit_.i29 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %arena.1.i, i64 0, i32 1 - %4 = load ptr, ptr %limit_.i29, align 8 + %limit_.i27 = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %arena.1.i, i64 0, i32 1 + %4 = load ptr, ptr %limit_.i27, align 8 %5 = load atomic i64, ptr %arena.1.i monotonic, align 8 br label %if.end.i -_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i: ; preds = %_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit +cond.false.i.i: ; preds = %_ZN6google8protobuf8internal15ThreadSafeArena14GetSerialArenaEv.exit %cmp.i16 = icmp eq ptr %cleanup, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv %cmp1.i18 = icmp eq ptr %cleanup, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv - %narrow.not = or i1 %cmp.i16, %cmp1.i18 - %6 = select i1 %narrow.not, i64 8, i64 16 + %. = select i1 %cmp1.i18, i64 2, i64 0 + %retval.i14.0 = select i1 %cmp.i16, i64 1, i64 %. + %switch.gep = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E, i64 0, i64 %retval.i14.0 + %switch.load = load i64, ptr %switch.gep, align 8 %limit_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %arena.1.i, i64 0, i32 1 - %7 = load ptr, ptr %limit_.i, align 8 - %8 = load atomic i64, ptr %arena.1.i monotonic, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %7 to i64 - %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %8 - %cmp.i = icmp ugt i64 %6, %sub.ptr.sub.i + %6 = load ptr, ptr %limit_.i, align 8 + %7 = load atomic i64, ptr %arena.1.i monotonic, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %6 to i64 + %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %7 + %cmp.i = icmp ugt i64 %switch.load, %sub.ptr.sub.i br i1 %cmp.i, label %if.then.i, label %if.end.i -if.then.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i +if.then.i: ; preds = %cond.false.i.i tail call void @_ZN6google8protobuf8internal11SerialArena18AddCleanupFallbackEPvPFvS3_E(ptr noundef nonnull align 8 dereferenceable(96) %arena.1.i, ptr noundef %elem, ptr noundef nonnull %cleanup) br label %_ZN6google8protobuf8internal11SerialArena10AddCleanupEPvPFvS3_E.exit -if.end.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i - %9 = phi ptr [ %4, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread ], [ %7, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i ] - %limit_.i34 = phi ptr [ %limit_.i29, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread ], [ %limit_.i, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i ] +if.end.i: ; preds = %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread, %cond.false.i.i + %8 = phi ptr [ %4, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread ], [ %6, %cond.false.i.i ] + %limit_.i32 = phi ptr [ %limit_.i27, %_ZN6google8protobuf8internal7cleanup4SizeEPFvPvE.exit.i.thread ], [ %limit_.i, %cond.false.i.i ] %cmp.i11 = icmp eq ptr %cleanup, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPv %cmp1.i = icmp eq ptr %cleanup, @_ZN6google8protobuf8internal7cleanup21arena_destruct_objectIN4absl12lts_202308024CordEEEvPv %.17 = select i1 %cmp1.i, i64 2, i64 0 %retval.i9.0 = select i1 %cmp.i11, i64 1, i64 %.17 - %10 = add nsw i64 %retval.i9.0, -1 - %switch.selectcmp19 = icmp ult i64 %10, 2 - %11 = select i1 %switch.selectcmp19, i64 -8, i64 -16 - %add.ptr.i.i = getelementptr inbounds i8, ptr %9, i64 %11 - store ptr %add.ptr.i.i, ptr %limit_.i34, align 8 + %switch.gep37 = getelementptr inbounds [3 x i64], ptr @switch.table._ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E.7, i64 0, i64 %retval.i9.0 + %switch.load38 = load i64, ptr %switch.gep37, align 8 + %add.ptr.i.i = getelementptr inbounds i8, ptr %8, i64 %switch.load38 + store ptr %add.ptr.i.i, ptr %limit_.i32, align 8 %prefetch_limit_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %arena.1.i, i64 0, i32 3 - %12 = load ptr, ptr %prefetch_limit_.i, align 8 + %9 = load ptr, ptr %prefetch_limit_.i, align 8 %sub.ptr.lhs.cast.i25 = ptrtoint ptr %add.ptr.i.i to i64 - %sub.ptr.rhs.cast.i26 = ptrtoint ptr %12 to i64 + %sub.ptr.rhs.cast.i26 = ptrtoint ptr %9 to i64 %sub.ptr.sub.i27 = sub i64 %sub.ptr.lhs.cast.i25, %sub.ptr.rhs.cast.i26 %cmp.i28 = icmp sgt i64 %sub.ptr.sub.i27, 384 br i1 %cmp.i28, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit, label %if.end.i29 if.end.i29: ; preds = %if.end.i %prefetch_ptr_.i = getelementptr inbounds %"class.google::protobuf::internal::SerialArena", ptr %arena.1.i, i64 0, i32 2 - %13 = load ptr, ptr %prefetch_ptr_.i, align 8 - %cmp3.i = icmp ugt ptr %12, %13 + %10 = load ptr, ptr %prefetch_ptr_.i, align 8 + %cmp3.i = icmp ugt ptr %9, %10 br i1 %cmp3.i, label %if.then4.i, label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit if.then4.i: ; preds = %if.end.i29 - %cmp.i23 = icmp ult ptr %12, %add.ptr.i.i - %.sroa.speculated27 = select i1 %cmp.i23, ptr %12, ptr %add.ptr.i.i - %add.ptr.i = getelementptr inbounds i8, ptr %.sroa.speculated27, i64 -384 - %cmp.i24 = icmp ult ptr %13, %add.ptr.i - %.sroa.speculated = select i1 %cmp.i24, ptr %add.ptr.i, ptr %13 - %cmp10.i35 = icmp ugt ptr %.sroa.speculated27, %.sroa.speculated - br i1 %cmp10.i35, label %for.body.i, label %for.end.i + %cmp.i21 = icmp ult ptr %9, %add.ptr.i.i + %.sroa.speculated25 = select i1 %cmp.i21, ptr %9, ptr %add.ptr.i.i + %add.ptr.i = getelementptr inbounds i8, ptr %.sroa.speculated25, i64 -384 + %cmp.i22 = icmp ult ptr %10, %add.ptr.i + %.sroa.speculated = select i1 %cmp.i22, ptr %add.ptr.i, ptr %10 + %cmp10.i33 = icmp ugt ptr %.sroa.speculated25, %.sroa.speculated + br i1 %cmp10.i33, label %for.body.i, label %for.end.i for.body.i: ; preds = %if.then4.i, %for.body.i - %prefetch_limit.i.036 = phi ptr [ %add.ptr11.i, %for.body.i ], [ %.sroa.speculated27, %if.then4.i ] - tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.036) #25, !srcloc !7 - %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.036, i64 -64 + %prefetch_limit.i.034 = phi ptr [ %add.ptr11.i, %for.body.i ], [ %.sroa.speculated25, %if.then4.i ] + tail call void asm sideeffect "prefetchw ($0)", "r,~{dirflag},~{fpsr},~{flags}"(ptr nonnull %prefetch_limit.i.034) #25, !srcloc !7 + %add.ptr11.i = getelementptr inbounds i8, ptr %prefetch_limit.i.034, i64 -64 %cmp10.i = icmp ugt ptr %add.ptr11.i, %.sroa.speculated br i1 %cmp10.i, label %for.body.i, label %for.end.i.loopexit, !llvm.loop !15 for.end.i.loopexit: ; preds = %for.body.i - %.pre.pre = load ptr, ptr %limit_.i34, align 8 + %.pre.pre = load ptr, ptr %limit_.i32, align 8 br label %for.end.i for.end.i: ; preds = %for.end.i.loopexit, %if.then4.i %.pre = phi ptr [ %add.ptr.i.i, %if.then4.i ], [ %.pre.pre, %for.end.i.loopexit ] - %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated27, %if.then4.i ], [ %add.ptr11.i, %for.end.i.loopexit ] + %prefetch_limit.i.0.lcssa = phi ptr [ %.sroa.speculated25, %if.then4.i ], [ %add.ptr11.i, %for.end.i.loopexit ] store ptr %prefetch_limit.i.0.lcssa, ptr %prefetch_limit_.i, align 8 br label %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit _ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit: ; preds = %if.end.i, %for.end.i, %if.end.i29 - %14 = phi ptr [ %add.ptr.i.i, %if.end.i ], [ %.pre, %for.end.i ], [ %add.ptr.i.i, %if.end.i29 ] - %15 = ptrtoint ptr %elem to i64 + %11 = phi ptr [ %add.ptr.i.i, %if.end.i ], [ %.pre, %for.end.i ], [ %add.ptr.i.i, %if.end.i29 ] + %12 = ptrtoint ptr %elem to i64 switch i64 %retval.i9.0, label %sw.default.i33 [ i64 1, label %sw.bb.i35 i64 2, label %sw.bb2.i34 ] sw.bb.i35: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - %or.i = or i64 %15, 1 - store i64 %or.i, ptr %14, align 1 + %or.i = or i64 %12, 1 + store i64 %or.i, ptr %11, align 1 br label %_ZN6google8protobuf8internal11SerialArena10AddCleanupEPvPFvS3_E.exit sw.bb2.i34: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - %or5.i = or i64 %15, 2 - store i64 %or5.i, ptr %14, align 1 + %or5.i = or i64 %12, 2 + store i64 %or5.i, ptr %11, align 1 br label %_ZN6google8protobuf8internal11SerialArena10AddCleanupEPvPFvS3_E.exit sw.default.i33: ; preds = %_ZN6google8protobuf8internal11SerialArena22MaybePrefetchBackwardsEPKc.exit - store i64 %15, ptr %14, align 1 - %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8 + store i64 %12, ptr %11, align 1 + %n7.i.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8 store ptr %cleanup, ptr %n7.i.sroa.2.0..sroa_idx, align 1 br label %_ZN6google8protobuf8internal11SerialArena10AddCleanupEPvPFvS3_E.exit diff --git a/bench/protobuf/optimized/command_line_interface.cc.ll b/bench/protobuf/optimized/command_line_interface.cc.ll index dc37318ef15..4c7b9dd6338 100644 --- a/bench/protobuf/optimized/command_line_interface.cc.ll +++ b/bench/protobuf/optimized/command_line_interface.cc.ll @@ -1066,7 +1066,6 @@ $_ZTIZN6google8protobuf2io7Printer8WithVarsIN4absl12lts_2023080213flat_hash_mapI @.str.197 = private unnamed_addr constant [11 x i8] c"enum entry\00", align 1 @.str.198 = private unnamed_addr constant [8 x i8] c"service\00", align 1 @.str.199 = private unnamed_addr constant [7 x i8] c"method\00", align 1 -@.str.200 = private unnamed_addr constant [8 x i8] c"unknown\00", align 1 @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans = linkonce_odr hidden constant [3 x %"struct.absl::lts_20230802::base_internal::SpinLockWaitTransition"] [%"struct.absl::lts_20230802::base_internal::SpinLockWaitTransition" { i32 0, i32 1707250555, i8 1 }, %"struct.absl::lts_20230802::base_internal::SpinLockWaitTransition" { i32 1707250555, i32 94570706, i8 0 }, %"struct.absl::lts_20230802::base_internal::SpinLockWaitTransition" { i32 221, i32 221, i8 1 }], comdat, align 16 @_ZN6google8protobuf30_FileOptions_default_instance_E = external global %"struct.google::protobuf::FileOptionsDefaultTypeInternal", align 1 @_ZN6google8protobuf33_MessageOptions_default_instance_E = external global %"struct.google::protobuf::MessageOptionsDefaultTypeInternal", align 1 @@ -24870,8 +24869,8 @@ invoke.cont1: ; preds = %invoke.cont %2 = load ptr, ptr %fields, align 8 %_M_finish.i = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %fields, i64 0, i32 1 %3 = load ptr, ptr %_M_finish.i, align 8 - %cmp.i.not61 = icmp eq ptr %2, %3 - br i1 %cmp.i.not61, label %for.end58, label %for.body.lr.ph + %cmp.i.not62 = icmp eq ptr %2, %3 + br i1 %cmp.i.not62, label %for.end58, label %for.body.lr.ph for.body.lr.ph: ; preds = %invoke.cont1 %4 = getelementptr inbounds { i64, ptr }, ptr %ref.tmp.i, i64 0, i32 1 @@ -24884,30 +24883,29 @@ for.body.lr.ph: ; preds = %invoke.cont1 %arrayinit.element6.i = getelementptr inbounds %"class.std::basic_string_view", ptr %ref.tmp.i, i64 4 %8 = getelementptr inbounds %"class.std::basic_string_view", ptr %ref.tmp.i, i64 4, i32 1 %9 = getelementptr inbounds { i64, ptr }, ptr %agg.tmp10, i64 0, i32 1 - %switch.tableidx = add i32 %target_type, -1 - %10 = icmp ult i32 %switch.tableidx, 9 - %11 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [9 x ptr], ptr @switch.table._ZN6google8protobuf8compiler12_GLOBAL__N_134ValidateTargetConstraintsRecursiveERKNS0_7MessageERNS0_14DescriptorPool14ErrorCollectorESt17basic_string_viewIcSt11char_traitsIcEENS0_29FieldOptions_OptionTargetTypeE, i64 0, i64 %11 - %12 = zext nneg i32 %switch.tableidx to i64 - %switch.gep81 = getelementptr inbounds [9 x i64], ptr @switch.table._ZN6google8protobuf8compiler12_GLOBAL__N_134ValidateTargetConstraintsRecursiveERKNS0_7MessageERNS0_14DescriptorPool14ErrorCollectorESt17basic_string_viewIcSt11char_traitsIcEENS0_29FieldOptions_OptionTargetTypeE.54, i64 0, i64 %12 + %switch.tableidx = add nsw i32 %target_type, -1 + %10 = sext i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [9 x ptr], ptr @switch.table._ZN6google8protobuf8compiler12_GLOBAL__N_134ValidateTargetConstraintsRecursiveERKNS0_7MessageERNS0_14DescriptorPool14ErrorCollectorESt17basic_string_viewIcSt11char_traitsIcEENS0_29FieldOptions_OptionTargetTypeE, i64 0, i64 %10 + %11 = sext i32 %switch.tableidx to i64 + %switch.gep82 = getelementptr inbounds [9 x i64], ptr @switch.table._ZN6google8protobuf8compiler12_GLOBAL__N_134ValidateTargetConstraintsRecursiveERKNS0_7MessageERNS0_14DescriptorPool14ErrorCollectorESt17basic_string_viewIcSt11char_traitsIcEENS0_29FieldOptions_OptionTargetTypeE.54, i64 0, i64 %11 br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc56 - %success.063 = phi i8 [ 1, %for.body.lr.ph ], [ %success.4, %for.inc56 ] - %__begin3.sroa.0.062 = phi ptr [ %2, %for.body.lr.ph ], [ %incdec.ptr.i, %for.inc56 ] - %13 = load ptr, ptr %__begin3.sroa.0.062, align 8 - %14 = getelementptr i8, ptr %13, i64 56 - %.val = load ptr, ptr %14, align 8 + %success.064 = phi i8 [ 1, %for.body.lr.ph ], [ %success.4, %for.inc56 ] + %__begin3.sroa.0.063 = phi ptr [ %2, %for.body.lr.ph ], [ %incdec.ptr.i, %for.inc56 ] + %12 = load ptr, ptr %__begin3.sroa.0.063, align 8 + %13 = getelementptr i8, ptr %12, i64 56 + %.val = load ptr, ptr %13, align 8 %targets_.i.i.i = getelementptr inbounds %"class.google::protobuf::FieldOptions", ptr %.val, i64 0, i32 1, i32 0, i32 3 - %15 = load i32, ptr %targets_.i.i.i, align 8 - %cmp.i.i = icmp eq i32 %15, 0 + %14 = load i32, ptr %targets_.i.i.i, align 8 + %cmp.i.i = icmp eq i32 %14, 0 br i1 %cmp.i.i, label %if.end, label %lor.rhs.i lor.rhs.i: ; preds = %for.body %arena_or_elements_.i.i.i.i.i.i = getelementptr inbounds %"class.google::protobuf::FieldOptions", ptr %.val, i64 0, i32 1, i32 0, i32 3, i32 2 - %16 = load ptr, ptr %arena_or_elements_.i.i.i.i.i.i, align 8 - %idx.ext.i.i.i.i.i = sext i32 %15 to i64 - %add.ptr.i.i.i.i.i = getelementptr inbounds i32, ptr %16, i64 %idx.ext.i.i.i.i.i + %15 = load ptr, ptr %arena_or_elements_.i.i.i.i.i.i, align 8 + %idx.ext.i.i.i.i.i = sext i32 %14 to i64 + %add.ptr.i.i.i.i.i = getelementptr inbounds i32, ptr %15, i64 %idx.ext.i.i.i.i.i %sub.ptr.lhs.cast.i.i.i.i.i.i.i = ptrtoint ptr %add.ptr.i.i.i.i.i to i64 %shr.i.i.i.i.i.i = ashr i64 %idx.ext.i.i.i.i.i, 2 %cmp46.i.i.i.i.i.i = icmp sgt i64 %shr.i.i.i.i.i.i, 0 @@ -24915,33 +24913,33 @@ lor.rhs.i: ; preds = %for.body for.body.lr.ph.i.i.i.i.i.i: ; preds = %lor.rhs.i %add.ptr.i.i.i.idx.i.i = shl nuw nsw i64 %idx.ext.i.i.i.i.i, 2 - %17 = and i64 %add.ptr.i.i.i.idx.i.i, 9223372036854775792 - %scevgep.i.i.i.i.i.i = getelementptr i8, ptr %16, i64 %17 + %16 = and i64 %add.ptr.i.i.i.idx.i.i, 9223372036854775792 + %scevgep.i.i.i.i.i.i = getelementptr i8, ptr %15, i64 %16 br label %for.body.i.i.i.i.i.i for.body.i.i.i.i.i.i: ; preds = %if.end26.i.i.i.i.i.i, %for.body.lr.ph.i.i.i.i.i.i %__trip_count.048.i.i.i.i.i.i = phi i64 [ %shr.i.i.i.i.i.i, %for.body.lr.ph.i.i.i.i.i.i ], [ %dec.i.i.i.i.i.i, %if.end26.i.i.i.i.i.i ] - %__first.sroa.0.047.i.i.i.i.i.i = phi ptr [ %16, %for.body.lr.ph.i.i.i.i.i.i ], [ %incdec.ptr.i13.i.i.i.i.i.i, %if.end26.i.i.i.i.i.i ] - %18 = load i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, align 4 - %cmp.i.i.i.i.i.i.i = icmp eq i32 %18, %target_type + %__first.sroa.0.047.i.i.i.i.i.i = phi ptr [ %15, %for.body.lr.ph.i.i.i.i.i.i ], [ %incdec.ptr.i13.i.i.i.i.i.i, %if.end26.i.i.i.i.i.i ] + %17 = load i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i = icmp eq i32 %17, %target_type br i1 %cmp.i.i.i.i.i.i.i, label %invoke.cont7, label %if.end.i.i.i.i.i.i if.end.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i %incdec.ptr.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, i64 1 - %19 = load i32, ptr %incdec.ptr.i.i.i.i.i.i.i, align 4 - %cmp.i8.i.i.i.i.i.i = icmp eq i32 %19, %target_type - br i1 %cmp.i8.i.i.i.i.i.i, label %invoke.cont7.loopexit.split.loop.exit71, label %if.end14.i.i.i.i.i.i + %18 = load i32, ptr %incdec.ptr.i.i.i.i.i.i.i, align 4 + %cmp.i8.i.i.i.i.i.i = icmp eq i32 %18, %target_type + br i1 %cmp.i8.i.i.i.i.i.i, label %invoke.cont7.loopexit.split.loop.exit72, label %if.end14.i.i.i.i.i.i if.end14.i.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i %incdec.ptr.i9.i.i.i.i.i.i = getelementptr inbounds i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, i64 2 - %20 = load i32, ptr %incdec.ptr.i9.i.i.i.i.i.i, align 4 - %cmp.i10.i.i.i.i.i.i = icmp eq i32 %20, %target_type - br i1 %cmp.i10.i.i.i.i.i.i, label %invoke.cont7.loopexit.split.loop.exit69, label %if.end20.i.i.i.i.i.i + %19 = load i32, ptr %incdec.ptr.i9.i.i.i.i.i.i, align 4 + %cmp.i10.i.i.i.i.i.i = icmp eq i32 %19, %target_type + br i1 %cmp.i10.i.i.i.i.i.i, label %invoke.cont7.loopexit.split.loop.exit70, label %if.end20.i.i.i.i.i.i if.end20.i.i.i.i.i.i: ; preds = %if.end14.i.i.i.i.i.i %incdec.ptr.i11.i.i.i.i.i.i = getelementptr inbounds i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, i64 3 - %21 = load i32, ptr %incdec.ptr.i11.i.i.i.i.i.i, align 4 - %cmp.i12.i.i.i.i.i.i = icmp eq i32 %21, %target_type + %20 = load i32, ptr %incdec.ptr.i11.i.i.i.i.i.i, align 4 + %cmp.i12.i.i.i.i.i.i = icmp eq i32 %20, %target_type br i1 %cmp.i12.i.i.i.i.i.i, label %invoke.cont7.loopexit.split.loop.exit, label %if.end26.i.i.i.i.i.i if.end26.i.i.i.i.i.i: ; preds = %if.end20.i.i.i.i.i.i @@ -24953,12 +24951,12 @@ if.end26.i.i.i.i.i.i: ; preds = %if.end20.i.i.i.i.i. for.end.loopexit.i.i.i.i.i.i: ; preds = %if.end26.i.i.i.i.i.i %.pre54.i.i.i.i.i.i = ptrtoint ptr %scevgep.i.i.i.i.i.i to i64 %.pre55.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i, %.pre54.i.i.i.i.i.i - %22 = ashr exact i64 %.pre55.i.i.i.i.i.i, 2 + %21 = ashr exact i64 %.pre55.i.i.i.i.i.i, 2 br label %for.end.i.i.i.i.i.i for.end.i.i.i.i.i.i: ; preds = %for.end.loopexit.i.i.i.i.i.i, %lor.rhs.i - %sub.ptr.sub.i16.pre-phi.i.i.i.i.i.i = phi i64 [ %22, %for.end.loopexit.i.i.i.i.i.i ], [ %idx.ext.i.i.i.i.i, %lor.rhs.i ] - %__first.sroa.0.0.lcssa.i.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i.i, %for.end.loopexit.i.i.i.i.i.i ], [ %16, %lor.rhs.i ] + %sub.ptr.sub.i16.pre-phi.i.i.i.i.i.i = phi i64 [ %21, %for.end.loopexit.i.i.i.i.i.i ], [ %idx.ext.i.i.i.i.i, %lor.rhs.i ] + %__first.sroa.0.0.lcssa.i.i.i.i.i.i = phi ptr [ %scevgep.i.i.i.i.i.i, %for.end.loopexit.i.i.i.i.i.i ], [ %15, %lor.rhs.i ] switch i64 %sub.ptr.sub.i16.pre-phi.i.i.i.i.i.i, label %invoke.cont17 [ i64 3, label %sw.bb.i.i.i.i.i.i i64 2, label %sw.bb39.i.i.i.i.i.i @@ -24966,8 +24964,8 @@ for.end.i.i.i.i.i.i: ; preds = %for.end.loopexit.i. ] sw.bb.i.i.i.i.i.i: ; preds = %for.end.i.i.i.i.i.i - %23 = load i32, ptr %__first.sroa.0.0.lcssa.i.i.i.i.i.i, align 4 - %cmp.i18.i.i.i.i.i.i = icmp eq i32 %23, %target_type + %22 = load i32, ptr %__first.sroa.0.0.lcssa.i.i.i.i.i.i, align 4 + %cmp.i18.i.i.i.i.i.i = icmp eq i32 %22, %target_type br i1 %cmp.i18.i.i.i.i.i.i, label %invoke.cont7, label %if.end37.i.i.i.i.i.i if.end37.i.i.i.i.i.i: ; preds = %sw.bb.i.i.i.i.i.i @@ -24976,8 +24974,8 @@ if.end37.i.i.i.i.i.i: ; preds = %sw.bb.i.i.i.i.i.i sw.bb39.i.i.i.i.i.i: ; preds = %if.end37.i.i.i.i.i.i, %for.end.i.i.i.i.i.i %__first.sroa.0.1.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i19.i.i.i.i.i.i, %if.end37.i.i.i.i.i.i ], [ %__first.sroa.0.0.lcssa.i.i.i.i.i.i, %for.end.i.i.i.i.i.i ] - %24 = load i32, ptr %__first.sroa.0.1.i.i.i.i.i.i, align 4 - %cmp.i20.i.i.i.i.i.i = icmp eq i32 %24, %target_type + %23 = load i32, ptr %__first.sroa.0.1.i.i.i.i.i.i, align 4 + %cmp.i20.i.i.i.i.i.i = icmp eq i32 %23, %target_type br i1 %cmp.i20.i.i.i.i.i.i, label %invoke.cont7, label %if.end44.i.i.i.i.i.i if.end44.i.i.i.i.i.i: ; preds = %sw.bb39.i.i.i.i.i.i @@ -24986,8 +24984,8 @@ if.end44.i.i.i.i.i.i: ; preds = %sw.bb39.i.i.i.i.i.i sw.bb46.i.i.i.i.i.i: ; preds = %if.end44.i.i.i.i.i.i, %for.end.i.i.i.i.i.i %__first.sroa.0.2.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i21.i.i.i.i.i.i, %if.end44.i.i.i.i.i.i ], [ %__first.sroa.0.0.lcssa.i.i.i.i.i.i, %for.end.i.i.i.i.i.i ] - %25 = load i32, ptr %__first.sroa.0.2.i.i.i.i.i.i, align 4 - %cmp.i22.i.i.i.i.i.i = icmp eq i32 %25, %target_type + %24 = load i32, ptr %__first.sroa.0.2.i.i.i.i.i.i, align 4 + %cmp.i22.i.i.i.i.i.i = icmp eq i32 %24, %target_type %spec.select.i.i.i.i.i.i = select i1 %cmp.i22.i.i.i.i.i.i, ptr %__first.sroa.0.2.i.i.i.i.i.i, ptr %add.ptr.i.i.i.i.i br label %invoke.cont7 @@ -24995,61 +24993,53 @@ invoke.cont7.loopexit.split.loop.exit: ; preds = %if.end20.i.i.i.i.i. %incdec.ptr.i11.i.i.i.i.i.i.le = getelementptr inbounds i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, i64 3 br label %invoke.cont7 -invoke.cont7.loopexit.split.loop.exit69: ; preds = %if.end14.i.i.i.i.i.i +invoke.cont7.loopexit.split.loop.exit70: ; preds = %if.end14.i.i.i.i.i.i %incdec.ptr.i9.i.i.i.i.i.i.le = getelementptr inbounds i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, i64 2 br label %invoke.cont7 -invoke.cont7.loopexit.split.loop.exit71: ; preds = %if.end.i.i.i.i.i.i +invoke.cont7.loopexit.split.loop.exit72: ; preds = %if.end.i.i.i.i.i.i %incdec.ptr.i.i.i.i.i.i.i.le = getelementptr inbounds i32, ptr %__first.sroa.0.047.i.i.i.i.i.i, i64 1 br label %invoke.cont7 -invoke.cont7: ; preds = %for.body.i.i.i.i.i.i, %invoke.cont7.loopexit.split.loop.exit, %invoke.cont7.loopexit.split.loop.exit69, %invoke.cont7.loopexit.split.loop.exit71, %sw.bb.i.i.i.i.i.i, %sw.bb39.i.i.i.i.i.i, %sw.bb46.i.i.i.i.i.i - %retval.sroa.0.0.i.i.i.i.i.i = phi ptr [ %__first.sroa.0.0.lcssa.i.i.i.i.i.i, %sw.bb.i.i.i.i.i.i ], [ %__first.sroa.0.1.i.i.i.i.i.i, %sw.bb39.i.i.i.i.i.i ], [ %spec.select.i.i.i.i.i.i, %sw.bb46.i.i.i.i.i.i ], [ %incdec.ptr.i11.i.i.i.i.i.i.le, %invoke.cont7.loopexit.split.loop.exit ], [ %incdec.ptr.i9.i.i.i.i.i.i.le, %invoke.cont7.loopexit.split.loop.exit69 ], [ %incdec.ptr.i.i.i.i.i.i.i.le, %invoke.cont7.loopexit.split.loop.exit71 ], [ %__first.sroa.0.047.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ] +invoke.cont7: ; preds = %for.body.i.i.i.i.i.i, %invoke.cont7.loopexit.split.loop.exit, %invoke.cont7.loopexit.split.loop.exit70, %invoke.cont7.loopexit.split.loop.exit72, %sw.bb.i.i.i.i.i.i, %sw.bb39.i.i.i.i.i.i, %sw.bb46.i.i.i.i.i.i + %retval.sroa.0.0.i.i.i.i.i.i = phi ptr [ %__first.sroa.0.0.lcssa.i.i.i.i.i.i, %sw.bb.i.i.i.i.i.i ], [ %__first.sroa.0.1.i.i.i.i.i.i, %sw.bb39.i.i.i.i.i.i ], [ %spec.select.i.i.i.i.i.i, %sw.bb46.i.i.i.i.i.i ], [ %incdec.ptr.i11.i.i.i.i.i.i.le, %invoke.cont7.loopexit.split.loop.exit ], [ %incdec.ptr.i9.i.i.i.i.i.i.le, %invoke.cont7.loopexit.split.loop.exit70 ], [ %incdec.ptr.i.i.i.i.i.i.i.le, %invoke.cont7.loopexit.split.loop.exit72 ], [ %__first.sroa.0.047.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ] %cmp.i.i.i.i.not = icmp eq ptr %retval.sroa.0.0.i.i.i.i.i.i, %add.ptr.i.i.i.i.i br i1 %cmp.i.i.i.i.not, label %invoke.cont17, label %if.end invoke.cont17: ; preds = %for.end.i.i.i.i.i.i, %invoke.cont7 - %all_names_.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %13, i64 0, i32 5 - %26 = load ptr, ptr %all_names_.i, align 8 - %arrayidx.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %26, i64 1 + %all_names_.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %12, i64 0, i32 5 + %25 = load ptr, ptr %all_names_.i, align 8 + %arrayidx.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %25, i64 1 %call.i = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %arrayidx.i) #30 - %27 = extractvalue { i64, ptr } %call.i, 0 - %28 = extractvalue { i64, ptr } %call.i, 1 - br i1 %10, label %switch.lookup, label %invoke.cont24 - -switch.lookup: ; preds = %invoke.cont17 + %26 = extractvalue { i64, ptr } %call.i, 0 + %27 = extractvalue { i64, ptr } %call.i, 1 %switch.load = load ptr, ptr %switch.gep, align 8 - %switch.load82 = load i64, ptr %switch.gep81, align 8 - br label %invoke.cont24 - -invoke.cont24: ; preds = %invoke.cont17, %switch.lookup - %retval.sroa.11.0.i = phi ptr [ %switch.load, %switch.lookup ], [ @.str.200, %invoke.cont17 ] - %retval.sroa.0.0.i = phi i64 [ %switch.load82, %switch.lookup ], [ 7, %invoke.cont17 ] + %switch.load83 = load i64, ptr %switch.gep82, align 8 call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %ref.tmp.i) store i64 7, ptr %ref.tmp.i, align 8, !noalias !375 store ptr @.str.188, ptr %4, align 8, !noalias !375 - store i64 %27, ptr %arrayinit.element.i, align 8, !noalias !375 - store ptr %28, ptr %5, align 8, !noalias !375 + store i64 %26, ptr %arrayinit.element.i, align 8, !noalias !375 + store ptr %27, ptr %5, align 8, !noalias !375 store i64 37, ptr %arrayinit.element2.i, align 8, !noalias !375 store ptr @.str.189, ptr %6, align 8, !noalias !375 - store i64 %retval.sroa.0.0.i, ptr %arrayinit.element4.i, align 8, !noalias !375 - store ptr %retval.sroa.11.0.i, ptr %7, align 8, !noalias !375 + store i64 %switch.load83, ptr %arrayinit.element4.i, align 8, !noalias !375 + store ptr %switch.load, ptr %7, align 8, !noalias !375 store i64 2, ptr %arrayinit.element6.i, align 8, !noalias !375 store ptr @.str.190, ptr %8, align 8, !noalias !375 invoke void @_ZN4absl12lts_2023080216strings_internal9CatPiecesB5cxx11ESt16initializer_listISt17basic_string_viewIcSt11char_traitsIcEEE(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp, ptr nonnull %ref.tmp.i, i64 5) to label %invoke.cont25 unwind label %lpad.loopexit.split-lp.loopexit -invoke.cont25: ; preds = %invoke.cont24 +invoke.cont25: ; preds = %invoke.cont17 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %ref.tmp.i) %call26 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #30 - %29 = extractvalue { i64, ptr } %call26, 0 - store i64 %29, ptr %agg.tmp10, align 8 - %30 = extractvalue { i64, ptr } %call26, 1 - store ptr %30, ptr %9, align 8 + %28 = extractvalue { i64, ptr } %call26, 0 + store i64 %28, ptr %agg.tmp10, align 8 + %29 = extractvalue { i64, ptr } %call26, 1 + store ptr %29, ptr %9, align 8 %vtable = load ptr, ptr %error_collector, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 2 - %31 = load ptr, ptr %vfn, align 8 - invoke void %31(ptr noundef nonnull align 8 dereferenceable(8) %error_collector, i64 %file_name.coerce0, ptr %file_name.coerce1, i64 0, ptr nonnull @.str.5, ptr noundef null, i32 noundef 7, ptr noundef nonnull byval(%"class.std::basic_string_view") align 8 %agg.tmp10) + %30 = load ptr, ptr %vfn, align 8 + invoke void %30(ptr noundef nonnull align 8 dereferenceable(8) %error_collector, i64 %file_name.coerce0, ptr %file_name.coerce1, i64 0, ptr nonnull @.str.5, ptr noundef null, i32 noundef 7, ptr noundef nonnull byval(%"class.std::basic_string_view") align 8 %agg.tmp10) to label %invoke.cont28 unwind label %lpad27 invoke.cont28: ; preds = %invoke.cont25 @@ -25061,7 +25051,7 @@ lpad.loopexit: ; preds = %for.body39, %invoke cleanup br label %ehcleanup -lpad.loopexit.split-lp.loopexit: ; preds = %if.then5.i.i.i, %if.then.i.i.i, %lor.lhs.false.i.i.i, %invoke.cont24, %invoke.cont47, %if.else, %if.then34 +lpad.loopexit.split-lp.loopexit: ; preds = %if.then5.i.i.i, %if.then.i.i.i, %lor.lhs.false.i.i.i, %invoke.cont17, %invoke.cont47, %if.else, %if.then34 %lpad.loopexit43 = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -25072,30 +25062,30 @@ lpad.loopexit.split-lp.loopexit.split-lp: ; preds = %entry, %invoke.cont br label %ehcleanup lpad27: ; preds = %invoke.cont25 - %32 = landingpad { ptr, i32 } + %31 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #30 br label %ehcleanup if.end: ; preds = %for.body, %invoke.cont28, %invoke.cont7 - %success.1 = phi i8 [ %success.063, %invoke.cont7 ], [ 0, %invoke.cont28 ], [ %success.063, %for.body ] - %type_once_.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %13, i64 0, i32 7 - %33 = load ptr, ptr %type_once_.i, align 8 - %tobool.not.i = icmp eq ptr %33, null + %success.1 = phi i8 [ %success.064, %invoke.cont7 ], [ 0, %invoke.cont28 ], [ %success.064, %for.body ] + %type_once_.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %12, i64 0, i32 7 + %32 = load ptr, ptr %type_once_.i, align 8 + %tobool.not.i = icmp eq ptr %32, null br i1 %tobool.not.i, label %invoke.cont29, label %if.then.i if.then.i: ; preds = %if.end - %34 = load atomic i32, ptr %33 acquire, align 4 - %cmp.not.i.i = icmp eq i32 %34, 221 + %33 = load atomic i32, ptr %32 acquire, align 4 + %cmp.not.i.i = icmp eq i32 %33, 221 br i1 %cmp.not.i.i, label %invoke.cont29, label %if.then.i.i if.then.i.i: ; preds = %if.then.i - %35 = cmpxchg ptr %33, i32 0, i32 1707250555 monotonic monotonic, align 4 - %36 = extractvalue { i32, i1 } %35, 1 - br i1 %36, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %34 = cmpxchg ptr %32, i32 0, i32 1707250555 monotonic monotonic, align 4 + %35 = extractvalue { i32, i1 } %34, 1 + br i1 %35, label %if.then.i.i.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %if.then.i.i - %call1.i.i.i29 = invoke noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %33, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) + %call1.i.i.i29 = invoke noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %32, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) to label %call1.i.i.i.noexc unwind label %lpad.loopexit.split-lp.loopexit call1.i.i.i.noexc: ; preds = %lor.lhs.false.i.i.i @@ -25103,43 +25093,43 @@ call1.i.i.i.noexc: ; preds = %lor.lhs.false.i.i.i br i1 %cmp.i.i.i, label %if.then.i.i.i, label %invoke.cont29 if.then.i.i.i: ; preds = %call1.i.i.i.noexc, %if.then.i.i - invoke void @_ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_(ptr noundef nonnull %13) + invoke void @_ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_(ptr noundef nonnull %12) to label %.noexc unwind label %lpad.loopexit.split-lp.loopexit .noexc: ; preds = %if.then.i.i.i - %37 = atomicrmw xchg ptr %33, i32 221 release, align 4 - %cmp4.i.i.i = icmp eq i32 %37, 94570706 + %36 = atomicrmw xchg ptr %32, i32 221 release, align 4 + %cmp4.i.i.i = icmp eq i32 %36, 94570706 br i1 %cmp4.i.i.i, label %if.then5.i.i.i, label %invoke.cont29 if.then5.i.i.i: ; preds = %.noexc - invoke void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %33, i1 noundef zeroext true) + invoke void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %32, i1 noundef zeroext true) to label %invoke.cont29 unwind label %lpad.loopexit.split-lp.loopexit invoke.cont29: ; preds = %.noexc, %call1.i.i.i.noexc, %if.then.i, %if.end, %if.then5.i.i.i - %type_.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %13, i64 0, i32 2 - %38 = load i8, ptr %type_.i, align 2 - %cmp = icmp eq i8 %38, 11 + %type_.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %12, i64 0, i32 2 + %37 = load i8, ptr %type_.i, align 2 + %cmp = icmp eq i8 %37, 11 br i1 %cmp, label %invoke.cont32, label %for.inc56 invoke.cont32: ; preds = %invoke.cont29 - %label_.i.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %13, i64 0, i32 1 + %label_.i.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %12, i64 0, i32 1 %bf.load.i.i = load i8, ptr %label_.i.i, align 1 - %39 = and i8 %bf.load.i.i, 96 - %cmp.i31 = icmp eq i8 %39, 96 + %38 = and i8 %bf.load.i.i, 96 + %cmp.i31 = icmp eq i8 %38, 96 br i1 %cmp.i31, label %if.then34, label %if.else if.then34: ; preds = %invoke.cont32 - %call36 = invoke noundef i32 @_ZNK6google8protobuf10Reflection9FieldSizeERKNS0_7MessageEPKNS0_15FieldDescriptorE(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull %13) + %call36 = invoke noundef i32 @_ZNK6google8protobuf10Reflection9FieldSizeERKNS0_7MessageEPKNS0_15FieldDescriptorE(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull %12) to label %for.cond37.preheader unwind label %lpad.loopexit.split-lp.loopexit for.cond37.preheader: ; preds = %if.then34 - %cmp3858 = icmp sgt i32 %call36, 0 - br i1 %cmp3858, label %for.body39, label %for.inc56 + %cmp3859 = icmp sgt i32 %call36, 0 + br i1 %cmp3859, label %for.body39, label %for.inc56 for.body39: ; preds = %for.cond37.preheader, %invoke.cont43 - %success.260 = phi i8 [ %spec.select, %invoke.cont43 ], [ %success.1, %for.cond37.preheader ] - %i.059 = phi i32 [ %inc, %invoke.cont43 ], [ 0, %for.cond37.preheader ] - %call41 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6google8protobuf10Reflection18GetRepeatedMessageERKNS0_7MessageEPKNS0_15FieldDescriptorEi(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull %13, i32 noundef %i.059) + %success.261 = phi i8 [ %spec.select, %invoke.cont43 ], [ %success.1, %for.cond37.preheader ] + %i.060 = phi i32 [ %inc, %invoke.cont43 ], [ 0, %for.cond37.preheader ] + %call41 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6google8protobuf10Reflection18GetRepeatedMessageERKNS0_7MessageEPKNS0_15FieldDescriptorEi(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull %12, i32 noundef %i.060) to label %invoke.cont40 unwind label %lpad.loopexit invoke.cont40: ; preds = %for.body39 @@ -25147,13 +25137,13 @@ invoke.cont40: ; preds = %for.body39 to label %invoke.cont43 unwind label %lpad.loopexit invoke.cont43: ; preds = %invoke.cont40 - %spec.select = select i1 %call44, i8 %success.260, i8 0 - %inc = add nuw nsw i32 %i.059, 1 + %spec.select = select i1 %call44, i8 %success.261, i8 0 + %inc = add nuw nsw i32 %i.060, 1 %exitcond.not = icmp eq i32 %inc, %call36 br i1 %exitcond.not, label %for.inc56, label %for.body39, !llvm.loop !378 if.else: ; preds = %invoke.cont32 - %call48 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6google8protobuf10Reflection10GetMessageERKNS0_7MessageEPKNS0_15FieldDescriptorEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull %13, ptr noundef null) + %call48 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6google8protobuf10Reflection10GetMessageERKNS0_7MessageEPKNS0_15FieldDescriptorEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull %12, ptr noundef null) to label %invoke.cont47 unwind label %lpad.loopexit.split-lp.loopexit invoke.cont47: ; preds = %if.else @@ -25166,37 +25156,37 @@ invoke.cont50: ; preds = %invoke.cont47 for.inc56: ; preds = %invoke.cont43, %for.cond37.preheader, %invoke.cont50, %invoke.cont29 %success.4 = phi i8 [ %success.1, %invoke.cont29 ], [ %spec.select25, %invoke.cont50 ], [ %success.1, %for.cond37.preheader ], [ %spec.select, %invoke.cont43 ] - %incdec.ptr.i = getelementptr inbounds ptr, ptr %__begin3.sroa.0.062, i64 1 + %incdec.ptr.i = getelementptr inbounds ptr, ptr %__begin3.sroa.0.063, i64 1 %cmp.i.not = icmp eq ptr %incdec.ptr.i, %3 br i1 %cmp.i.not, label %for.end58.loopexit, label %for.body for.end58.loopexit: ; preds = %for.inc56 %.pre = load ptr, ptr %fields, align 8 - %40 = and i8 %success.4, 1 - %41 = icmp ne i8 %40, 0 + %39 = and i8 %success.4, 1 + %40 = icmp ne i8 %39, 0 br label %for.end58 for.end58: ; preds = %for.end58.loopexit, %invoke.cont1 - %42 = phi ptr [ %2, %invoke.cont1 ], [ %.pre, %for.end58.loopexit ] - %success.0.lcssa = phi i1 [ true, %invoke.cont1 ], [ %41, %for.end58.loopexit ] - %tobool.not.i.i.i = icmp eq ptr %42, null + %41 = phi ptr [ %2, %invoke.cont1 ], [ %.pre, %for.end58.loopexit ] + %success.0.lcssa = phi i1 [ true, %invoke.cont1 ], [ %40, %for.end58.loopexit ] + %tobool.not.i.i.i = icmp eq ptr %41, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIPKN6google8protobuf15FieldDescriptorESaIS4_EED2Ev.exit, label %if.then.i.i.i32 if.then.i.i.i32: ; preds = %for.end58 - call void @_ZdlPv(ptr noundef nonnull %42) #32 + call void @_ZdlPv(ptr noundef nonnull %41) #32 br label %_ZNSt6vectorIPKN6google8protobuf15FieldDescriptorESaIS4_EED2Ev.exit _ZNSt6vectorIPKN6google8protobuf15FieldDescriptorESaIS4_EED2Ev.exit: ; preds = %for.end58, %if.then.i.i.i32 ret i1 %success.0.lcssa ehcleanup: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit, %lpad27 - %.pn = phi { ptr, i32 } [ %32, %lpad27 ], [ %lpad.loopexit41, %lpad.loopexit ], [ %lpad.loopexit43, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp44, %lpad.loopexit.split-lp.loopexit.split-lp ] - %43 = load ptr, ptr %fields, align 8 - %tobool.not.i.i.i33 = icmp eq ptr %43, null + %.pn = phi { ptr, i32 } [ %31, %lpad27 ], [ %lpad.loopexit41, %lpad.loopexit ], [ %lpad.loopexit43, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp44, %lpad.loopexit.split-lp.loopexit.split-lp ] + %42 = load ptr, ptr %fields, align 8 + %tobool.not.i.i.i33 = icmp eq ptr %42, null br i1 %tobool.not.i.i.i33, label %_ZNSt6vectorIPKN6google8protobuf15FieldDescriptorESaIS4_EED2Ev.exit35, label %if.then.i.i.i34 if.then.i.i.i34: ; preds = %ehcleanup - call void @_ZdlPv(ptr noundef nonnull %43) #32 + call void @_ZdlPv(ptr noundef nonnull %42) #32 br label %_ZNSt6vectorIPKN6google8protobuf15FieldDescriptorESaIS4_EED2Ev.exit35 _ZNSt6vectorIPKN6google8protobuf15FieldDescriptorESaIS4_EED2Ev.exit35: ; preds = %ehcleanup, %if.then.i.i.i34 diff --git a/bench/protobuf/optimized/descriptor.cc.ll b/bench/protobuf/optimized/descriptor.cc.ll index 83fd5b15a2a..64240dd2274 100644 --- a/bench/protobuf/optimized/descriptor.cc.ll +++ b/bench/protobuf/optimized/descriptor.cc.ll @@ -42273,11 +42273,15 @@ if.end.i.i: ; preds = %if.then.i %call3.i.i = call ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #37, !noalias !695 %call4.i.i = call ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #37, !noalias !695 %cmp.i.not3.i.i = icmp eq ptr %call3.i.i, %call4.i.i - br i1 %cmp.i.not3.i.i, label %sw.bb.i, label %for.body.i.i + br i1 %cmp.i.not3.i.i, label %sw.bb.i, label %for.body.i.i.outer -for.body.i.i: ; preds = %if.end.i.i, %for.inc.i.i - %best.05.i.i = phi i32 [ %best.1.i.i, %for.inc.i.i ], [ 0, %if.end.i.i ] - %__begin3.sroa.0.04.i.i = phi ptr [ %incdec.ptr.i.i.i, %for.inc.i.i ], [ %call3.i.i, %if.end.i.i ] +for.body.i.i.outer: ; preds = %if.end.i.i, %for.inc.i.i.thread + %switch.i = phi i1 [ false, %for.inc.i.i.thread ], [ true, %if.end.i.i ] + %__begin3.sroa.0.04.i.i.ph = phi ptr [ %incdec.ptr.i.i.i292, %for.inc.i.i.thread ], [ %call3.i.i, %if.end.i.i ] + br label %for.body.i.i + +for.body.i.i: ; preds = %for.body.i.i.outer, %for.inc.i.i + %__begin3.sroa.0.04.i.i = phi ptr [ %incdec.ptr.i.i.i, %for.inc.i.i ], [ %__begin3.sroa.0.04.i.i.ph, %for.body.i.i.outer ] %21 = load i8, ptr %__begin3.sroa.0.04.i.i, align 1, !noalias !695 %22 = add i8 %21, -97 %23 = icmp ult i8 %22, 26 @@ -42288,19 +42292,20 @@ for.body.i.i: ; preds = %if.end.i.i, %for.in if.else.i.i: ; preds = %for.body.i.i %cmp.i21.i = icmp eq i8 %21, 95 - br i1 %cmp.i21.i, label %for.inc.i.i, label %if.else.i30.i + br i1 %cmp.i21.i, label %for.inc.i.i.thread, label %if.else.i30.i -for.inc.i.i: ; preds = %if.else.i.i, %for.body.i.i - %best.1.i.i = phi i32 [ %best.05.i.i, %for.body.i.i ], [ 1, %if.else.i.i ] +for.inc.i.i: ; preds = %for.body.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %__begin3.sroa.0.04.i.i, i64 1 %cmp.i.not.i.i = icmp eq ptr %incdec.ptr.i.i.i, %call4.i.i br i1 %cmp.i.not.i.i, label %invoke.cont.i, label %for.body.i.i +for.inc.i.i.thread: ; preds = %if.else.i.i + %incdec.ptr.i.i.i292 = getelementptr inbounds i8, ptr %__begin3.sroa.0.04.i.i, i64 1 + %cmp.i.not.i.i293 = icmp eq ptr %incdec.ptr.i.i.i292, %call4.i.i + br i1 %cmp.i.not.i.i293, label %sw.bb14.i, label %for.body.i.i.outer + invoke.cont.i: ; preds = %for.inc.i.i - switch i32 %best.1.i.i, label %if.else.i30.i [ - i32 0, label %sw.bb.i - i32 1, label %sw.bb14.i - ] + br i1 %switch.i, label %sw.bb.i, label %sw.bb14.i lpad.i: ; preds = %sw.bb14.i, %call.i22.noexc.i, %sw.bb.i %27 = landingpad { ptr, i32 } @@ -42328,7 +42333,7 @@ invoke.cont12.i: ; preds = %call.i22.noexc.i call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp6.i.i), !noalias !695 br label %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE18AllocateFieldNamesERKS8_SN_PSM_.exit -sw.bb14.i: ; preds = %invoke.cont.i +sw.bb14.i: ; preds = %for.inc.i.i.thread, %invoke.cont.i invoke fastcc void @_ZN6google8protobuf12_GLOBAL__N_111ToCamelCaseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noalias nonnull align 8 %ref.tmp16.i, ptr noundef nonnull align 8 dereferenceable(32) %5, i1 noundef zeroext true) to label %invoke.cont17.i unwind label %lpad.i, !noalias !695 @@ -42366,7 +42371,7 @@ lpad18.i: ; preds = %call.i25.noexc.i, % call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp16.i) #37, !noalias !695 br label %common.resume -if.else.i30.i: ; preds = %if.else.i.i, %invoke.cont.i, %if.then.i, %cond.end10.i +if.else.i30.i: ; preds = %if.else.i.i, %if.then.i, %cond.end10.i call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %names.i, i8 0, i64 24, i1 false), !noalias !695 %_M_finish.i.i = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %names.i, i64 0, i32 1 invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %names.i, ptr null, ptr noundef nonnull align 8 dereferenceable(32) %5) @@ -42542,10 +42547,10 @@ common.resume: ; preds = %lpad.i, %lpad18.i, resume { ptr, i32 } %common.resume.op _ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE18AllocateFieldNamesERKS8_SN_PSM_.exit: ; preds = %invoke.cont12.i, %invoke.cont19.i, %invoke.cont.i.i, %if.then.i.i.i.i - %all_names.sroa.13.0 = phi i8 [ 0, %invoke.cont12.i ], [ %conv55.i, %invoke.cont.i.i ], [ %conv55.i, %if.then.i.i.i.i ], [ 2, %invoke.cont19.i ] - %all_names.sroa.9.0 = phi i8 [ 0, %invoke.cont12.i ], [ %conv40.i, %invoke.cont.i.i ], [ %conv40.i, %if.then.i.i.i.i ], [ 2, %invoke.cont19.i ] - %all_names.sroa.5.0 = phi i8 [ 0, %invoke.cont12.i ], [ %conv.i, %invoke.cont.i.i ], [ %conv.i, %if.then.i.i.i.i ], [ 0, %invoke.cont19.i ] - %all_names.sroa.0.0 = phi ptr [ %call.i2223.i, %invoke.cont12.i ], [ %call72.i, %invoke.cont.i.i ], [ %call72.i, %if.then.i.i.i.i ], [ %call.i2527.i, %invoke.cont19.i ] + %all_names.sroa.13.0 = phi i8 [ 0, %invoke.cont12.i ], [ 2, %invoke.cont19.i ], [ %conv55.i, %invoke.cont.i.i ], [ %conv55.i, %if.then.i.i.i.i ] + %all_names.sroa.9.0 = phi i8 [ 0, %invoke.cont12.i ], [ 2, %invoke.cont19.i ], [ %conv40.i, %invoke.cont.i.i ], [ %conv40.i, %if.then.i.i.i.i ] + %all_names.sroa.5.0 = phi i8 [ 0, %invoke.cont12.i ], [ 0, %invoke.cont19.i ], [ %conv.i, %invoke.cont.i.i ], [ %conv.i, %if.then.i.i.i.i ] + %all_names.sroa.0.0 = phi ptr [ %call.i2223.i, %invoke.cont12.i ], [ %call.i2527.i, %invoke.cont19.i ], [ %call72.i, %invoke.cont.i.i ], [ %call72.i, %if.then.i.i.i.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %full_name.i) #37, !noalias !695 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp2.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %full_name.i) @@ -42727,11 +42732,11 @@ if.then77: ; preds = %land.lhs.true75 store ptr @.str.144, ptr %ref.tmp.i, align 8 call void @_ZN6google8protobuf17DescriptorBuilder8AddErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_7MessageENS0_14DescriptorPool14ErrorCollector13ErrorLocationEN4absl12lts_2023080211FunctionRefIFS7_vEEE(ptr noundef nonnull align 8 dereferenceable(356) %this, ptr noundef nonnull align 8 dereferenceable(32) %arrayidx.i86, ptr noundef nonnull align 8 dereferenceable(16) %proto, i32 noundef 4, ptr nonnull %ref.tmp.i, ptr nonnull @"_ZN4absl12lts_2023080219functional_internal12InvokeObjectIZN6google8protobuf17DescriptorBuilder8AddErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS4_7MessageENS4_14DescriptorPool14ErrorCollector13ErrorLocationEPKcE3$_0SB_JEEET0_NS1_7VoidPtrEDpNS1_8ForwardTIT1_E4typeE") call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp.i) - %.pre296 = load i32, ptr %6, align 8 + %.pre310 = load i32, ptr %6, align 8 br label %if.end79 if.end79: ; preds = %if.then77, %land.lhs.true75, %if.end69 - %86 = phi i32 [ %.pre296, %if.then77 ], [ %82, %land.lhs.true75 ], [ %82, %if.end69 ] + %86 = phi i32 [ %.pre310, %if.then77 ], [ %82, %land.lhs.true75 ], [ %82, %if.end69 ] %and.i87 = and i32 %86, 1024 %cmp.i88.not = icmp eq i32 %and.i87, 0 br i1 %cmp.i88.not, label %if.end216, label %if.then81 @@ -43527,29 +43532,29 @@ _ZN6google8protobuf17DescriptorBuilder12MessageHints25RequestHintOnFieldNumbersE br label %if.end234 if.end234: ; preds = %_ZN6google8protobuf17DescriptorBuilder12MessageHints25RequestHintOnFieldNumbersERKNS0_7MessageENS0_14DescriptorPool14ErrorCollector13ErrorLocationEii.exit192, %_ZN6google8protobuf17DescriptorBuilder12MessageHints25RequestHintOnFieldNumbersERKNS0_7MessageENS0_14DescriptorPool14ErrorCollector13ErrorLocationEii.exit - %.pre300.pre = load ptr, ptr %result.addr, align 8 + %.pre314.pre = load ptr, ptr %result.addr, align 8 br i1 %is_extension, label %if.then236, label %if.else245 if.then236: ; preds = %if.else222, %if.end234 - %.pre300 = phi ptr [ %233, %if.else222 ], [ %.pre300.pre, %if.end234 ] + %.pre314 = phi ptr [ %233, %if.else222 ], [ %.pre314.pre, %if.end234 ] %279 = load i32, ptr %6, align 8 %and.i196 = and i32 %279, 2 %cmp.i197.not = icmp eq i32 %and.i196, 0 br i1 %cmp.i197.not, label %if.then238, label %if.end240 if.then238: ; preds = %if.then236 - %all_names_.i198 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %.pre300, i64 0, i32 5 + %all_names_.i198 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %.pre314, i64 0, i32 5 %280 = load ptr, ptr %all_names_.i198, align 8 %arrayidx.i199 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %280, i64 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %ref.tmp.i200) store ptr @.str.152, ptr %ref.tmp.i200, align 8 call void @_ZN6google8protobuf17DescriptorBuilder8AddErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_7MessageENS0_14DescriptorPool14ErrorCollector13ErrorLocationEN4absl12lts_2023080211FunctionRefIFS7_vEEE(ptr noundef nonnull align 8 dereferenceable(356) %this, ptr noundef nonnull align 8 dereferenceable(32) %arrayidx.i199, ptr noundef nonnull align 8 dereferenceable(16) %proto, i32 noundef 3, ptr nonnull %ref.tmp.i200, ptr nonnull @"_ZN4absl12lts_2023080219functional_internal12InvokeObjectIZN6google8protobuf17DescriptorBuilder8AddErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS4_7MessageENS4_14DescriptorPool14ErrorCollector13ErrorLocationEPKcE3$_0SB_JEEET0_NS1_7VoidPtrEDpNS1_8ForwardTIT1_E4typeE") call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp.i200) - %.pre299 = load ptr, ptr %result.addr, align 8 + %.pre313 = load ptr, ptr %result.addr, align 8 br label %if.end240 if.end240: ; preds = %if.then238, %if.then236 - %281 = phi ptr [ %.pre299, %if.then238 ], [ %.pre300, %if.then236 ] + %281 = phi ptr [ %.pre313, %if.then238 ], [ %.pre314, %if.then236 ] %282 = load ptr, ptr %parent.addr, align 8 %scope_ = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %281, i64 0, i32 9 store ptr %282, ptr %scope_, align 8 @@ -43569,25 +43574,25 @@ if.then242: ; preds = %if.end240 br label %if.end273 if.else245: ; preds = %if.end234, %land.lhs.true224 - %.pre298 = phi ptr [ %233, %land.lhs.true224 ], [ %.pre300.pre, %if.end234 ] + %.pre312 = phi ptr [ %233, %land.lhs.true224 ], [ %.pre314.pre, %if.end234 ] %285 = load i32, ptr %6, align 8 %and.i206 = and i32 %285, 2 %cmp.i207.not = icmp eq i32 %and.i206, 0 br i1 %cmp.i207.not, label %if.end249, label %if.then247 if.then247: ; preds = %if.else245 - %all_names_.i208 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %.pre298, i64 0, i32 5 + %all_names_.i208 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %.pre312, i64 0, i32 5 %286 = load ptr, ptr %all_names_.i208, align 8 %arrayidx.i209 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %286, i64 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %ref.tmp.i210) store ptr @.str.154, ptr %ref.tmp.i210, align 8 call void @_ZN6google8protobuf17DescriptorBuilder8AddErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_7MessageENS0_14DescriptorPool14ErrorCollector13ErrorLocationEN4absl12lts_2023080211FunctionRefIFS7_vEEE(ptr noundef nonnull align 8 dereferenceable(356) %this, ptr noundef nonnull align 8 dereferenceable(32) %arrayidx.i209, ptr noundef nonnull align 8 dereferenceable(16) %proto, i32 noundef 3, ptr nonnull %ref.tmp.i210, ptr nonnull @"_ZN4absl12lts_2023080219functional_internal12InvokeObjectIZN6google8protobuf17DescriptorBuilder8AddErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS4_7MessageENS4_14DescriptorPool14ErrorCollector13ErrorLocationEPKcE3$_0SB_JEEET0_NS1_7VoidPtrEDpNS1_8ForwardTIT1_E4typeE") call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp.i210) - %.pre297 = load ptr, ptr %result.addr, align 8 + %.pre311 = load ptr, ptr %result.addr, align 8 br label %if.end249 if.end249: ; preds = %if.then247, %if.else245 - %287 = phi ptr [ %.pre297, %if.then247 ], [ %.pre298, %if.else245 ] + %287 = phi ptr [ %.pre311, %if.then247 ], [ %.pre312, %if.else245 ] %288 = load ptr, ptr %parent.addr, align 8 %containing_type_250 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %287, i64 0, i32 8 store ptr %288, ptr %containing_type_250, align 8 @@ -61447,12 +61452,11 @@ _ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_string %5 = load i32, ptr %current_size_.i.i, align 8 %idx.ext.i = sext i32 %5 to i64 %add.ptr.i = getelementptr inbounds ptr, ptr %cond.i.i.i, i64 %idx.ext.i - %cmp.i.not59 = icmp eq i32 %5, 0 - br i1 %cmp.i.not59, label %for.end, label %for.body.lr.ph + %cmp.i.not69 = icmp eq i32 %5, 0 + br i1 %cmp.i.not69, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE9PlanArrayINS0_15FieldDescriptorEEEvi.exit %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::(anonymous namespace)::FlatAllocatorImpl", ptr %alloc, i64 0, i32 1, i32 0, i32 6 - %add.ptr.i.i15.i = getelementptr inbounds %"class.google::protobuf::(anonymous namespace)::FlatAllocatorImpl", ptr %alloc, i64 0, i32 1, i32 0, i32 1 %6 = getelementptr inbounds { i64, ptr }, ptr %all_names.i, i64 0, i32 1 %arrayinit.element.ptr.i = getelementptr inbounds i8, ptr %all_names.i, i64 16 %7 = getelementptr inbounds %"class.std::basic_string_view", ptr %all_names.i, i64 1, i32 1 @@ -61462,11 +61466,12 @@ for.body.lr.ph: ; preds = %_ZN6google8protobuf %9 = getelementptr inbounds %"class.std::basic_string_view", ptr %all_names.i, i64 3, i32 1 %add.ptr.i31 = getelementptr inbounds %"class.std::basic_string_view", ptr %all_names.i, i64 4 %sub.ptr.rhs.cast.i = ptrtoint ptr %all_names.i to i64 + %add.ptr.i.i23.i = getelementptr inbounds %"class.google::protobuf::(anonymous namespace)::FlatAllocatorImpl", ptr %alloc, i64 0, i32 1, i32 0, i32 1 br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %__begin2.sroa.0.060 = phi ptr [ %cond.i.i.i, %for.body.lr.ph ], [ %incdec.ptr.i, %for.inc ] - %10 = load ptr, ptr %__begin2.sroa.0.060, align 8 + %__begin2.sroa.0.070 = phi ptr [ %cond.i.i.i, %for.body.lr.ph ], [ %incdec.ptr.i, %for.inc ] + %10 = load ptr, ptr %__begin2.sroa.0.070, align 8 %11 = getelementptr inbounds %"class.google::protobuf::FieldDescriptorProto", ptr %10, i64 0, i32 1 %12 = load i32, ptr %11, align 4 %and.i = and i32 %12, 32 @@ -61553,11 +61558,15 @@ if.end.i.i: ; preds = %if.then.i %call3.i.i = call ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #37 %call4.i.i = call ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #37 %cmp.i.not3.i.i = icmp eq ptr %call3.i.i, %call4.i.i - br i1 %cmp.i.not3.i.i, label %sw.bb.i, label %for.body.i.i + br i1 %cmp.i.not3.i.i, label %sw.bb.i, label %for.body.i.i.outer -for.body.i.i: ; preds = %if.end.i.i, %for.inc.i.i - %best.05.i.i = phi i32 [ %best.1.i.i, %for.inc.i.i ], [ 0, %if.end.i.i ] - %__begin3.sroa.0.04.i.i = phi ptr [ %incdec.ptr.i.i.i, %for.inc.i.i ], [ %call3.i.i, %if.end.i.i ] +for.body.i.i.outer: ; preds = %if.end.i.i, %for.inc.i.i.thread + %switch.i = phi i1 [ false, %for.inc.i.i.thread ], [ true, %if.end.i.i ] + %__begin3.sroa.0.04.i.i.ph = phi ptr [ %incdec.ptr.i.i.i58, %for.inc.i.i.thread ], [ %call3.i.i, %if.end.i.i ] + br label %for.body.i.i + +for.body.i.i: ; preds = %for.body.i.i.outer, %for.inc.i.i + %__begin3.sroa.0.04.i.i = phi ptr [ %incdec.ptr.i.i.i, %for.inc.i.i ], [ %__begin3.sroa.0.04.i.i.ph, %for.body.i.i.outer ] %26 = load i8, ptr %__begin3.sroa.0.04.i.i, align 1 %27 = add i8 %26, -97 %28 = icmp ult i8 %27, 26 @@ -61568,19 +61577,20 @@ for.body.i.i: ; preds = %if.end.i.i, %for.in if.else.i.i: ; preds = %for.body.i.i %cmp.i9.i = icmp eq i8 %26, 95 - br i1 %cmp.i9.i, label %for.inc.i.i, label %if.end.i + br i1 %cmp.i9.i, label %for.inc.i.i.thread, label %if.end.i -for.inc.i.i: ; preds = %if.else.i.i, %for.body.i.i - %best.1.i.i = phi i32 [ %best.05.i.i, %for.body.i.i ], [ 1, %if.else.i.i ] +for.inc.i.i: ; preds = %for.body.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %__begin3.sroa.0.04.i.i, i64 1 %cmp.i.not.i.i = icmp eq ptr %incdec.ptr.i.i.i, %call4.i.i br i1 %cmp.i.not.i.i, label %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i, label %for.body.i.i +for.inc.i.i.thread: ; preds = %if.else.i.i + %incdec.ptr.i.i.i58 = getelementptr inbounds i8, ptr %__begin3.sroa.0.04.i.i, i64 1 + %cmp.i.not.i.i59 = icmp eq ptr %incdec.ptr.i.i.i58, %call4.i.i + br i1 %cmp.i.not.i.i59, label %sw.bb9.i, label %for.body.i.i.outer + _ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i: ; preds = %for.inc.i.i - switch i32 %best.1.i.i, label %if.end.i [ - i32 0, label %sw.bb.i - i32 1, label %sw.bb9.i - ] + br i1 %switch.i, label %sw.bb.i, label %sw.bb9.i sw.bb.i: ; preds = %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i, %if.end.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp3.i.i) @@ -61594,13 +61604,13 @@ cond.false.i.i: ; preds = %sw.bb.i unreachable _ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE9PlanArrayIS8_EEvi.exit.i: ; preds = %sw.bb.i - %32 = load i32, ptr %add.ptr.i.i15.i, align 4 + %32 = load i32, ptr %add.ptr.i.i23.i, align 4 %add.i.i = add nsw i32 %32, 2 - store i32 %add.i.i, ptr %add.ptr.i.i15.i, align 4 + store i32 %add.i.i, ptr %add.ptr.i.i23.i, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp3.i.i) br label %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE14PlanFieldNamesERKS8_PSM_.exit -sw.bb9.i: ; preds = %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i +sw.bb9.i: ; preds = %for.inc.i.i.thread, %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp3.i11.i) %this.val.i12.i = load ptr, ptr %alloc, align 8 %cmp.i.not.i13.i = icmp eq ptr %this.val.i12.i, null @@ -61612,15 +61622,15 @@ cond.false.i14.i: ; preds = %sw.bb9.i unreachable _ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE9PlanArrayIS8_EEvi.exit17.i: ; preds = %sw.bb9.i - %33 = load i32, ptr %add.ptr.i.i15.i, align 4 + %33 = load i32, ptr %add.ptr.i.i23.i, align 4 %add.i16.i = add nsw i32 %33, 3 - store i32 %add.i16.i, ptr %add.ptr.i.i15.i, align 4 + store i32 %add.i16.i, ptr %add.ptr.i.i23.i, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp3.i11.i) br label %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE14PlanFieldNamesERKS8_PSM_.exit -if.end.i: ; preds = %if.else.i.i, %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i, %if.then.i, %cleanup.done.i - %cmp.i3055 = phi i1 [ true, %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i ], [ true, %if.then.i ], [ false, %cleanup.done.i ], [ true, %if.else.i.i ] - %cond5053 = phi ptr [ null, %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE16GetFieldNameCaseERKS8_.exit.i ], [ null, %if.then.i ], [ %22, %cleanup.done.i ], [ null, %if.else.i.i ] +if.end.i: ; preds = %if.else.i.i, %if.then.i, %cleanup.done.i + %cmp.i3055 = phi i1 [ true, %if.then.i ], [ false, %cleanup.done.i ], [ true, %if.else.i.i ] + %cond5053 = phi ptr [ null, %if.then.i ], [ %22, %cleanup.done.i ], [ null, %if.else.i.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %lowercase_name.i, ptr noundef nonnull align 8 dereferenceable(32) %19) invoke void @_ZN4absl12lts_2023080215AsciiStrToLowerEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull %lowercase_name.i) to label %invoke.cont11.i unwind label %lpad10.i @@ -61769,9 +61779,9 @@ invoke.cont35.i: ; preds = %invoke.cont32.i %sub.ptr.div.i = lshr exact i64 %sub.ptr.sub.i, 4 %conv.i = trunc i64 %sub.ptr.div.i to i32 %add.i32 = add nsw i32 %conv.i, 1 - %42 = load i32, ptr %add.ptr.i.i15.i, align 4 + %42 = load i32, ptr %add.ptr.i.i23.i, align 4 %add.i24.i = add nsw i32 %add.i32, %42 - store i32 %add.i24.i, ptr %add.ptr.i.i15.i, align 4 + store i32 %add.i24.i, ptr %add.ptr.i.i23.i, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp3.i19.i) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %json_name.i) #37 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %camelcase_name.i) #37 @@ -61844,14 +61854,14 @@ cond.false.i41: ; preds = %if.then16 unreachable _ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE9PlanArrayIS8_EEvi.exit: ; preds = %if.then16 - %48 = load i32, ptr %add.ptr.i.i15.i, align 4 + %48 = load i32, ptr %add.ptr.i.i23.i, align 4 %add.i44 = add nsw i32 %48, 1 - store i32 %add.i44, ptr %add.ptr.i.i15.i, align 4 + store i32 %add.i44, ptr %add.ptr.i.i23.i, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp3.i38) br label %for.inc for.inc: ; preds = %land.lhs.true12, %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE14PlanFieldNamesERKS8_PSM_.exit, %_ZN6google8protobuf12_GLOBAL__N_117FlatAllocatorImplIJcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_14SourceCodeInfoENS0_20FileDescriptorTablesENS0_10FeatureSetENS0_14MessageOptionsENS0_12FieldOptionsENS0_11EnumOptionsENS0_16EnumValueOptionsENS0_21ExtensionRangeOptionsENS0_12OneofOptionsENS0_14ServiceOptionsENS0_13MethodOptionsENS0_11FileOptionsEEE9PlanArrayIS8_EEvi.exit - %incdec.ptr.i = getelementptr inbounds ptr, ptr %__begin2.sroa.0.060, i64 1 + %incdec.ptr.i = getelementptr inbounds ptr, ptr %__begin2.sroa.0.070, i64 1 %cmp.i.not = icmp eq ptr %incdec.ptr.i, %add.ptr.i br i1 %cmp.i.not, label %for.end, label %for.body diff --git a/bench/protobuf/optimized/message_differencer.cc.ll b/bench/protobuf/optimized/message_differencer.cc.ll index 2873a9116e7..f383d796bfe 100644 --- a/bench/protobuf/optimized/message_differencer.cc.ll +++ b/bench/protobuf/optimized/message_differencer.cc.ll @@ -6215,49 +6215,49 @@ _ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE13_M_dea _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145: ; preds = %if.end.i116, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE13_M_deallocateEPS6_m.exit.i138 %fields2.sroa.28.0 = phi ptr [ %add.ptr21.i140, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE13_M_deallocateEPS6_m.exit.i138 ], [ null, %if.end.i116 ] %fields2.sroa.19.0 = phi ptr [ %call5.i.i.i.i144, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE13_M_deallocateEPS6_m.exit.i138 ], [ null, %if.end.i116 ] - %sub.ptr.div.i.i150531 = lshr exact i64 %sub.ptr.sub.i.i, 4 - %conv.i151532 = trunc i64 %sub.ptr.div.i.i150531 to i32 - %cmp13533 = icmp sgt i32 %conv.i151532, 0 - br i1 %cmp13533, label %invoke.cont17, label %for.cond21.preheader + %sub.ptr.div.i.i150532 = lshr exact i64 %sub.ptr.sub.i.i, 4 + %conv.i151533 = trunc i64 %sub.ptr.div.i.i150532 to i32 + %cmp13534 = icmp sgt i32 %conv.i151533, 0 + br i1 %cmp13534, label %invoke.cont17, label %for.cond21.preheader for.cond21.preheader.loopexit: ; preds = %for.inc %.pre = load ptr, ptr %_M_finish.i.i109, align 8 - %.pre609 = load ptr, ptr %unknown_field_set2, align 8 - %.pre611 = ptrtoint ptr %.pre to i64 - %.pre612 = ptrtoint ptr %.pre609 to i64 - %.pre613 = sub i64 %.pre611, %.pre612 + %.pre611 = load ptr, ptr %unknown_field_set2, align 8 + %.pre613 = ptrtoint ptr %.pre to i64 + %.pre614 = ptrtoint ptr %.pre611 to i64 + %.pre615 = sub i64 %.pre613, %.pre614 br label %for.cond21.preheader for.cond21.preheader: ; preds = %for.cond21.preheader.loopexit, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 - %sub.ptr.sub.i.i165541.pre-phi = phi i64 [ %.pre613, %for.cond21.preheader.loopexit ], [ %sub.ptr.sub.i.i112, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] - %7 = phi ptr [ %.pre609, %for.cond21.preheader.loopexit ], [ %6, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] + %sub.ptr.sub.i.i165542.pre-phi = phi i64 [ %.pre615, %for.cond21.preheader.loopexit ], [ %sub.ptr.sub.i.i112, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] + %7 = phi ptr [ %.pre611, %for.cond21.preheader.loopexit ], [ %6, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] %fields1.sroa.21.1.lcssa = phi ptr [ %fields1.sroa.21.2, %for.cond21.preheader.loopexit ], [ %fields1.sroa.21.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] %fields1.sroa.0.1.lcssa = phi ptr [ %fields1.sroa.0.2, %for.cond21.preheader.loopexit ], [ %fields1.sroa.21.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] - %sub.ptr.div.i.i166542 = lshr exact i64 %sub.ptr.sub.i.i165541.pre-phi, 4 - %conv.i167543 = trunc i64 %sub.ptr.div.i.i166542 to i32 - %cmp24544 = icmp sgt i32 %conv.i167543, 0 - br i1 %cmp24544, label %invoke.cont30, label %for.end35 + %sub.ptr.div.i.i166543 = lshr exact i64 %sub.ptr.sub.i.i165542.pre-phi, 4 + %conv.i167544 = trunc i64 %sub.ptr.div.i.i166543 to i32 + %cmp24545 = icmp sgt i32 %conv.i167544, 0 + br i1 %cmp24545, label %invoke.cont30, label %for.end35 invoke.cont17: ; preds = %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] %8 = phi ptr [ %13, %for.inc ], [ %1, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] - %fields1.sroa.0.1536 = phi ptr [ %fields1.sroa.0.2, %for.inc ], [ %fields1.sroa.21.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] - %fields1.sroa.21.1535 = phi ptr [ %fields1.sroa.21.2, %for.inc ], [ %fields1.sroa.21.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] - %fields1.sroa.31.1534 = phi ptr [ %fields1.sroa.31.2, %for.inc ], [ %fields1.sroa.31.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] + %fields1.sroa.0.1537 = phi ptr [ %fields1.sroa.0.2, %for.inc ], [ %fields1.sroa.21.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] + %fields1.sroa.21.1536 = phi ptr [ %fields1.sroa.21.2, %for.inc ], [ %fields1.sroa.21.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] + %fields1.sroa.31.1535 = phi ptr [ %fields1.sroa.31.2, %for.inc ], [ %fields1.sroa.31.0, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE7reserveEm.exit145 ] %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %8, i64 %indvars.iv - %cmp.not.i.i = icmp eq ptr %fields1.sroa.21.1535, %fields1.sroa.31.1534 + %cmp.not.i.i = icmp eq ptr %fields1.sroa.21.1536, %fields1.sroa.31.1535 br i1 %cmp.not.i.i, label %if.else.i.i, label %if.then.i.i155 if.then.i.i155: ; preds = %invoke.cont17 %9 = trunc i64 %indvars.iv to i32 - store i32 %9, ptr %fields1.sroa.21.1535, align 8 - %ref.tmp.sroa.3351.0..sroa_idx = getelementptr inbounds i8, ptr %fields1.sroa.21.1535, i64 8 + store i32 %9, ptr %fields1.sroa.21.1536, align 8 + %ref.tmp.sroa.3351.0..sroa_idx = getelementptr inbounds i8, ptr %fields1.sroa.21.1536, i64 8 store ptr %add.ptr.i.i, ptr %ref.tmp.sroa.3351.0..sroa_idx, align 8 br label %for.inc if.else.i.i: ; preds = %invoke.cont17 - %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %fields1.sroa.21.1535 to i64 - %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %fields1.sroa.0.1536 to i64 + %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %fields1.sroa.21.1536 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %fields1.sroa.0.1537 to i64 %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i %cmp.i.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775792 br i1 %cmp.i.i.i.i, label %if.then.i.i.i.i, label %_ZNKSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE12_M_check_lenEmPKc.exit.i.i.i @@ -6291,25 +6291,25 @@ _ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_all store i32 %11, ptr %add.ptr.i.i.i, align 8 %ref.tmp.sroa.3351.0.add.ptr.i.i.i.sroa_idx = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 8 store ptr %add.ptr.i.i, ptr %ref.tmp.sroa.3351.0.add.ptr.i.i.i.sroa_idx, align 8 - %cmp.not5.i.i.i.i.i.i = icmp eq ptr %fields1.sroa.0.1536, %fields1.sroa.21.1535 + %cmp.not5.i.i.i.i.i.i = icmp eq ptr %fields1.sroa.0.1537, %fields1.sroa.21.1536 br i1 %cmp.not5.i.i.i.i.i.i, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i, label %for.body.i.i.i.i.i.i for.body.i.i.i.i.i.i: ; preds = %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i, %for.body.i.i.i.i.i.i %__cur.07.i.i.i.i.i.i = phi ptr [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %cond.i10.i.i.i, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i ] - %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %fields1.sroa.0.1536, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i ] + %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %fields1.sroa.0.1537, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i ] tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__cur.07.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %__first.addr.06.i.i.i.i.i.i, i64 16, i1 false), !alias.scope !110 %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds %"struct.std::pair.184", ptr %__first.addr.06.i.i.i.i.i.i, i64 1 %incdec.ptr1.i.i.i.i.i.i = getelementptr inbounds %"struct.std::pair.184", ptr %__cur.07.i.i.i.i.i.i, i64 1 - %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %fields1.sroa.21.1535 + %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %fields1.sroa.21.1536 br i1 %cmp.not.i.i.i.i.i.i, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i, label %for.body.i.i.i.i.i.i, !llvm.loop !114 _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i: ; preds = %for.body.i.i.i.i.i.i, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ %cond.i10.i.i.i, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i ], [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ] - %tobool.not.i.i.i.i = icmp eq ptr %fields1.sroa.0.1536, null + %tobool.not.i.i.i.i = icmp eq ptr %fields1.sroa.0.1537, null br i1 %tobool.not.i.i.i.i, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i, label %if.then.i20.i.i.i if.then.i20.i.i.i: ; preds = %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i - tail call void @_ZdlPv(ptr noundef nonnull %fields1.sroa.0.1536) #34 + tail call void @_ZdlPv(ptr noundef nonnull %fields1.sroa.0.1537) #34 br label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i: ; preds = %if.then.i20.i.i.i, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i @@ -6317,9 +6317,9 @@ _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_in br label %for.inc for.inc: ; preds = %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i, %if.then.i.i155 - %fields1.sroa.31.2 = phi ptr [ %add.ptr19.i.i.i, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i ], [ %fields1.sroa.31.1534, %if.then.i.i155 ] - %__cur.0.lcssa.i.i.i.i.i.i.pn = phi ptr [ %__cur.0.lcssa.i.i.i.i.i.i, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i ], [ %fields1.sroa.21.1535, %if.then.i.i155 ] - %fields1.sroa.0.2 = phi ptr [ %cond.i10.i.i.i, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i ], [ %fields1.sroa.0.1536, %if.then.i.i155 ] + %fields1.sroa.31.2 = phi ptr [ %add.ptr19.i.i.i, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i ], [ %fields1.sroa.31.1535, %if.then.i.i155 ] + %__cur.0.lcssa.i.i.i.i.i.i.pn = phi ptr [ %__cur.0.lcssa.i.i.i.i.i.i, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i ], [ %fields1.sroa.21.1536, %if.then.i.i155 ] + %fields1.sroa.0.2 = phi ptr [ %cond.i10.i.i.i, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i ], [ %fields1.sroa.0.1537, %if.then.i.i155 ] %fields1.sroa.21.2 = getelementptr inbounds %"struct.std::pair.184", ptr %__cur.0.lcssa.i.i.i.i.i.i.pn, i64 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %12 = load ptr, ptr %_M_finish.i.i.i, align 8 @@ -6327,8 +6327,8 @@ for.inc: ; preds = %_ZNSt6vectorISt4pai %sub.ptr.lhs.cast.i.i147 = ptrtoint ptr %12 to i64 %sub.ptr.rhs.cast.i.i148 = ptrtoint ptr %13 to i64 %sub.ptr.sub.i.i149 = sub i64 %sub.ptr.lhs.cast.i.i147, %sub.ptr.rhs.cast.i.i148 - %sext614 = shl i64 %sub.ptr.sub.i.i149, 28 - %14 = ashr i64 %sext614, 32 + %sext617 = shl i64 %sub.ptr.sub.i.i149, 28 + %14 = ashr i64 %sext617, 32 %cmp13 = icmp slt i64 %indvars.iv.next, %14 br i1 %cmp13, label %invoke.cont17, label %for.cond21.preheader.loopexit, !llvm.loop !115 @@ -6369,21 +6369,21 @@ lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = % br label %lpad lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i.i326.invoke, %if.then.i.i.i.i208, %if.then.i.i.i.i, %invoke.cont43, %for.end35 - %fields1.sroa.0.1521 = phi ptr [ %fields1.sroa.0.1536, %if.then.i.i.i.i ], [ %fields1.sroa.0.1.lcssa, %if.then.i.i.i.i208 ], [ %fields1.sroa.0.1.lcssa, %invoke.cont43 ], [ %fields1.sroa.0.1.lcssa, %for.end35 ], [ %fields1.sroa.0.1.lcssa, %if.then.i.i.i326.invoke ] - %fields2.sroa.0.1.ph.ph.ph.ph.ph.ph = phi ptr [ %fields2.sroa.19.0, %if.then.i.i.i.i ], [ %fields2.sroa.0.2547, %if.then.i.i.i.i208 ], [ %fields2.sroa.0.2.lcssa, %invoke.cont43 ], [ %fields2.sroa.0.2.lcssa, %for.end35 ], [ %fields2.sroa.0.2.lcssa, %if.then.i.i.i326.invoke ] + %fields1.sroa.0.1522 = phi ptr [ %fields1.sroa.0.1537, %if.then.i.i.i.i ], [ %fields1.sroa.0.1.lcssa, %if.then.i.i.i.i208 ], [ %fields1.sroa.0.1.lcssa, %invoke.cont43 ], [ %fields1.sroa.0.1.lcssa, %for.end35 ], [ %fields1.sroa.0.1.lcssa, %if.then.i.i.i326.invoke ] + %fields2.sroa.0.1.ph.ph.ph.ph.ph.ph = phi ptr [ %fields2.sroa.19.0, %if.then.i.i.i.i ], [ %fields2.sroa.0.2548, %if.then.i.i.i.i208 ], [ %fields2.sroa.0.2.lcssa, %invoke.cont43 ], [ %fields2.sroa.0.2.lcssa, %for.end35 ], [ %fields2.sroa.0.2.lcssa, %if.then.i.i.i326.invoke ] %lpad.loopexit.split-lp465 = landingpad { ptr, i32 } cleanup br label %lpad lpad: ; preds = %lpad.loopexit.split-lp.loopexit.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit - %fields1.sroa.0.1517 = phi ptr [ %fields1.sroa.0.1.lcssa, %lpad.loopexit ], [ %fields1.sroa.0.1.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit ], [ %fields1.sroa.0.1.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %fields1.sroa.0.1.lcssa, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields1.sroa.0.1536, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields1.sroa.0.1521, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - %fields2.sroa.0.1.ph.ph = phi ptr [ %fields2.sroa.0.2.lcssa, %lpad.loopexit ], [ %fields2.sroa.0.2.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit ], [ %fields2.sroa.0.2.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %fields2.sroa.0.2547, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields2.sroa.19.0, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields2.sroa.0.1.ph.ph.ph.ph.ph.ph, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %fields1.sroa.0.1518 = phi ptr [ %fields1.sroa.0.1.lcssa, %lpad.loopexit ], [ %fields1.sroa.0.1.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit ], [ %fields1.sroa.0.1.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %fields1.sroa.0.1.lcssa, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields1.sroa.0.1537, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields1.sroa.0.1522, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %fields2.sroa.0.1.ph.ph = phi ptr [ %fields2.sroa.0.2.lcssa, %lpad.loopexit ], [ %fields2.sroa.0.2.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit ], [ %fields2.sroa.0.2.lcssa, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %fields2.sroa.0.2548, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields2.sroa.19.0, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %fields2.sroa.0.1.ph.ph.ph.ph.ph.ph, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit446, %lpad.loopexit ], [ %lpad.loopexit452, %lpad.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp453, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %lpad.loopexit461, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit464, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp465, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] %tobool.not.i.i.i = icmp eq ptr %fields2.sroa.0.1.ph.ph, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EED2Ev.exit, label %if.then.i.i.i if.then.i.i.i: ; preds = %lpad.thread412, %lpad - %fields1.sroa.0.1523 = phi ptr [ %fields1.sroa.0.1.lcssa, %lpad.thread412 ], [ %fields1.sroa.0.1517, %lpad ] + %fields1.sroa.0.1524 = phi ptr [ %fields1.sroa.0.1.lcssa, %lpad.thread412 ], [ %fields1.sroa.0.1518, %lpad ] %lpad.phi417 = phi { ptr, i32 } [ %lpad.thr_comm410, %lpad.thread412 ], [ %lpad.phi, %lpad ] %fields2.sroa.0.1.ph416 = phi ptr [ %fields2.sroa.0.2.lcssa, %lpad.thread412 ], [ %fields2.sroa.0.1.ph.ph, %lpad ] call void @_ZdlPv(ptr noundef nonnull %fields2.sroa.0.1.ph416) #34 @@ -6391,7 +6391,7 @@ if.then.i.i.i: ; preds = %lpad.thread412, %lp _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EED2Ev.exit: ; preds = %lpad.thread, %lpad, %if.then.i.i.i %lpad.phi407 = phi { ptr, i32 } [ %lpad.thr_comm400, %lpad.thread ], [ %lpad.phi, %lpad ], [ %lpad.phi417, %if.then.i.i.i ] - %fields1.sroa.0.3406 = phi ptr [ %fields1.sroa.0.3.ph, %lpad.thread ], [ %fields1.sroa.0.1517, %lpad ], [ %fields1.sroa.0.1523, %if.then.i.i.i ] + %fields1.sroa.0.3406 = phi ptr [ %fields1.sroa.0.3.ph, %lpad.thread ], [ %fields1.sroa.0.1518, %lpad ], [ %fields1.sroa.0.1524, %if.then.i.i.i ] %tobool.not.i.i.i159 = icmp eq ptr %fields1.sroa.0.3406, null br i1 %tobool.not.i.i.i159, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EED2Ev.exit161, label %if.then.i.i.i160 @@ -6403,25 +6403,25 @@ _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EED2Ev.exit161: ; resume { ptr, i32 } %lpad.phi407 invoke.cont30: ; preds = %for.cond21.preheader, %for.inc33 - %indvars.iv606 = phi i64 [ %indvars.iv.next607, %for.inc33 ], [ 0, %for.cond21.preheader ] + %indvars.iv608 = phi i64 [ %indvars.iv.next609, %for.inc33 ], [ 0, %for.cond21.preheader ] %15 = phi ptr [ %20, %for.inc33 ], [ %7, %for.cond21.preheader ] - %fields2.sroa.0.2547 = phi ptr [ %fields2.sroa.0.3, %for.inc33 ], [ %fields2.sroa.19.0, %for.cond21.preheader ] - %fields2.sroa.19.1546 = phi ptr [ %fields2.sroa.19.2, %for.inc33 ], [ %fields2.sroa.19.0, %for.cond21.preheader ] - %fields2.sroa.28.1545 = phi ptr [ %fields2.sroa.28.2, %for.inc33 ], [ %fields2.sroa.28.0, %for.cond21.preheader ] - %add.ptr.i.i169 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %15, i64 %indvars.iv606 - %cmp.not.i.i174 = icmp eq ptr %fields2.sroa.19.1546, %fields2.sroa.28.1545 + %fields2.sroa.0.2548 = phi ptr [ %fields2.sroa.0.3, %for.inc33 ], [ %fields2.sroa.19.0, %for.cond21.preheader ] + %fields2.sroa.19.1547 = phi ptr [ %fields2.sroa.19.2, %for.inc33 ], [ %fields2.sroa.19.0, %for.cond21.preheader ] + %fields2.sroa.28.1546 = phi ptr [ %fields2.sroa.28.2, %for.inc33 ], [ %fields2.sroa.28.0, %for.cond21.preheader ] + %add.ptr.i.i169 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %15, i64 %indvars.iv608 + %cmp.not.i.i174 = icmp eq ptr %fields2.sroa.19.1547, %fields2.sroa.28.1546 br i1 %cmp.not.i.i174, label %if.else.i.i177, label %if.then.i.i175 if.then.i.i175: ; preds = %invoke.cont30 - %16 = trunc i64 %indvars.iv606 to i32 - store i32 %16, ptr %fields2.sroa.19.1546, align 8 - %ref.tmp26.sroa.3345.0..sroa_idx = getelementptr inbounds i8, ptr %fields2.sroa.19.1546, i64 8 + %16 = trunc i64 %indvars.iv608 to i32 + store i32 %16, ptr %fields2.sroa.19.1547, align 8 + %ref.tmp26.sroa.3345.0..sroa_idx = getelementptr inbounds i8, ptr %fields2.sroa.19.1547, i64 8 store ptr %add.ptr.i.i169, ptr %ref.tmp26.sroa.3345.0..sroa_idx, align 8 br label %for.inc33 if.else.i.i177: ; preds = %invoke.cont30 - %sub.ptr.lhs.cast.i.i.i.i.i178 = ptrtoint ptr %fields2.sroa.19.1546 to i64 - %sub.ptr.rhs.cast.i.i.i.i.i179 = ptrtoint ptr %fields2.sroa.0.2547 to i64 + %sub.ptr.lhs.cast.i.i.i.i.i178 = ptrtoint ptr %fields2.sroa.19.1547 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i179 = ptrtoint ptr %fields2.sroa.0.2548 to i64 %sub.ptr.sub.i.i.i.i.i180 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i178, %sub.ptr.rhs.cast.i.i.i.i.i179 %cmp.i.i.i.i181 = icmp eq i64 %sub.ptr.sub.i.i.i.i.i180, 9223372036854775792 br i1 %cmp.i.i.i.i181, label %if.then.i.i.i.i208, label %_ZNKSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE12_M_check_lenEmPKc.exit.i.i.i182 @@ -6451,29 +6451,29 @@ cond.true.i.i.i.i189: ; preds = %_ZNKSt6vectorISt4pa _ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i191: ; preds = %cond.true.i.i.i.i189, %_ZNKSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE12_M_check_lenEmPKc.exit.i.i.i182 %cond.i10.i.i.i192 = phi ptr [ null, %_ZNKSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE12_M_check_lenEmPKc.exit.i.i.i182 ], [ %call5.i.i.i.i.i.i211, %cond.true.i.i.i.i189 ] %add.ptr.i.i.i193 = getelementptr inbounds %"struct.std::pair.184", ptr %cond.i10.i.i.i192, i64 %sub.ptr.div.i.i.i.i.i183 - %18 = trunc i64 %indvars.iv606 to i32 + %18 = trunc i64 %indvars.iv608 to i32 store i32 %18, ptr %add.ptr.i.i.i193, align 8 %ref.tmp26.sroa.3345.0.add.ptr.i.i.i193.sroa_idx = getelementptr inbounds i8, ptr %add.ptr.i.i.i193, i64 8 store ptr %add.ptr.i.i169, ptr %ref.tmp26.sroa.3345.0.add.ptr.i.i.i193.sroa_idx, align 8 - %cmp.not5.i.i.i.i.i.i194 = icmp eq ptr %fields2.sroa.0.2547, %fields2.sroa.19.1546 + %cmp.not5.i.i.i.i.i.i194 = icmp eq ptr %fields2.sroa.0.2548, %fields2.sroa.19.1547 br i1 %cmp.not5.i.i.i.i.i.i194, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i201, label %for.body.i.i.i.i.i.i195 for.body.i.i.i.i.i.i195: ; preds = %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i191, %for.body.i.i.i.i.i.i195 %__cur.07.i.i.i.i.i.i196 = phi ptr [ %incdec.ptr1.i.i.i.i.i.i199, %for.body.i.i.i.i.i.i195 ], [ %cond.i10.i.i.i192, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i191 ] - %__first.addr.06.i.i.i.i.i.i197 = phi ptr [ %incdec.ptr.i.i.i.i.i.i198, %for.body.i.i.i.i.i.i195 ], [ %fields2.sroa.0.2547, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i191 ] + %__first.addr.06.i.i.i.i.i.i197 = phi ptr [ %incdec.ptr.i.i.i.i.i.i198, %for.body.i.i.i.i.i.i195 ], [ %fields2.sroa.0.2548, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i191 ] tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__cur.07.i.i.i.i.i.i196, ptr noundef nonnull align 8 dereferenceable(16) %__first.addr.06.i.i.i.i.i.i197, i64 16, i1 false), !alias.scope !116 %incdec.ptr.i.i.i.i.i.i198 = getelementptr inbounds %"struct.std::pair.184", ptr %__first.addr.06.i.i.i.i.i.i197, i64 1 %incdec.ptr1.i.i.i.i.i.i199 = getelementptr inbounds %"struct.std::pair.184", ptr %__cur.07.i.i.i.i.i.i196, i64 1 - %cmp.not.i.i.i.i.i.i200 = icmp eq ptr %incdec.ptr.i.i.i.i.i.i198, %fields2.sroa.19.1546 + %cmp.not.i.i.i.i.i.i200 = icmp eq ptr %incdec.ptr.i.i.i.i.i.i198, %fields2.sroa.19.1547 br i1 %cmp.not.i.i.i.i.i.i200, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i201, label %for.body.i.i.i.i.i.i195, !llvm.loop !114 _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i201: ; preds = %for.body.i.i.i.i.i.i195, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i191 %__cur.0.lcssa.i.i.i.i.i.i202 = phi ptr [ %cond.i10.i.i.i192, %_ZNSt12_Vector_baseISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_M_allocateEm.exit.i.i.i191 ], [ %incdec.ptr1.i.i.i.i.i.i199, %for.body.i.i.i.i.i.i195 ] - %tobool.not.i.i.i.i204 = icmp eq ptr %fields2.sroa.0.2547, null + %tobool.not.i.i.i.i204 = icmp eq ptr %fields2.sroa.0.2548, null br i1 %tobool.not.i.i.i.i204, label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206, label %if.then.i20.i.i.i205 if.then.i20.i.i.i205: ; preds = %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i201 - tail call void @_ZdlPv(ptr noundef nonnull %fields2.sroa.0.2547) #34 + tail call void @_ZdlPv(ptr noundef nonnull %fields2.sroa.0.2548) #34 br label %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206 _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206: ; preds = %if.then.i20.i.i.i205, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE11_S_relocateEPS6_S9_S9_RS7_.exit19.i.i.i201 @@ -6481,19 +6481,19 @@ _ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_in br label %for.inc33 for.inc33: ; preds = %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206, %if.then.i.i175 - %fields2.sroa.28.2 = phi ptr [ %add.ptr19.i.i.i207, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206 ], [ %fields2.sroa.28.1545, %if.then.i.i175 ] - %__cur.0.lcssa.i.i.i.i.i.i202.pn = phi ptr [ %__cur.0.lcssa.i.i.i.i.i.i202, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206 ], [ %fields2.sroa.19.1546, %if.then.i.i175 ] - %fields2.sroa.0.3 = phi ptr [ %cond.i10.i.i.i192, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206 ], [ %fields2.sroa.0.2547, %if.then.i.i175 ] + %fields2.sroa.28.2 = phi ptr [ %add.ptr19.i.i.i207, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206 ], [ %fields2.sroa.28.1546, %if.then.i.i175 ] + %__cur.0.lcssa.i.i.i.i.i.i202.pn = phi ptr [ %__cur.0.lcssa.i.i.i.i.i.i202, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206 ], [ %fields2.sroa.19.1547, %if.then.i.i175 ] + %fields2.sroa.0.3 = phi ptr [ %cond.i10.i.i.i192, %_ZNSt6vectorISt4pairIiPKN6google8protobuf12UnknownFieldEESaIS6_EE17_M_realloc_insertIJS6_EEEvN9__gnu_cxx17__normal_iteratorIPS6_S8_EEDpOT_.exit.i.i206 ], [ %fields2.sroa.0.2548, %if.then.i.i175 ] %fields2.sroa.19.2 = getelementptr inbounds %"struct.std::pair.184", ptr %__cur.0.lcssa.i.i.i.i.i.i202.pn, i64 1 - %indvars.iv.next607 = add nuw nsw i64 %indvars.iv606, 1 + %indvars.iv.next609 = add nuw nsw i64 %indvars.iv608, 1 %19 = load ptr, ptr %_M_finish.i.i109, align 8 %20 = load ptr, ptr %unknown_field_set2, align 8 %sub.ptr.lhs.cast.i.i163 = ptrtoint ptr %19 to i64 %sub.ptr.rhs.cast.i.i164 = ptrtoint ptr %20 to i64 %sub.ptr.sub.i.i165 = sub i64 %sub.ptr.lhs.cast.i.i163, %sub.ptr.rhs.cast.i.i164 - %sext615 = shl i64 %sub.ptr.sub.i.i165, 28 - %21 = ashr i64 %sext615, 32 - %cmp24 = icmp slt i64 %indvars.iv.next607, %21 + %sext618 = shl i64 %sub.ptr.sub.i.i165, 28 + %21 = ashr i64 %sext618, 32 + %cmp24 = icmp slt i64 %indvars.iv.next609, %21 br i1 %cmp24, label %invoke.cont30, label %for.end35, !llvm.loop !120 for.end35: ; preds = %for.inc33, %for.cond21.preheader @@ -6654,18 +6654,18 @@ invoke.cont65: ; preds = %if.end.i233 br i1 %cmp15.i, label %if.then67, label %if.else if.then67: ; preds = %while.body.us, %land.lhs.true62.us, %invoke.cont65.us, %while.body, %invoke.cont65, %land.lhs.true62 - %.us-phi551 = phi i64 [ %index2.0.ph460, %land.lhs.true62 ], [ %index2.0.ph460, %invoke.cont65 ], [ %sub.ptr.div.i219, %while.body ], [ %index2.0.us, %invoke.cont65.us ], [ %index2.0.us, %land.lhs.true62.us ], [ %index2.0.us, %while.body.us ] + %.us-phi552 = phi i64 [ %index2.0.ph460, %land.lhs.true62 ], [ %index2.0.ph460, %invoke.cont65 ], [ %sub.ptr.div.i219, %while.body ], [ %index2.0.us, %invoke.cont65.us ], [ %index2.0.us, %land.lhs.true62.us ], [ %index2.0.us, %while.body.us ] %40 = load ptr, ptr %23, align 8 br label %if.end136 if.else: ; preds = %lor.rhs, %if.end.i233, %invoke.cont65 %second82.phi.trans.insert = getelementptr %"struct.std::pair.184", ptr %fields2.sroa.0.2.lcssa, i64 %index2.0.ph460, i32 1 - %.pre610 = load ptr, ptr %second82.phi.trans.insert, align 8 + %.pre612 = load ptr, ptr %second82.phi.trans.insert, align 8 br i1 %cmp70, label %if.end136, label %lor.lhs.false71 lor.lhs.false71: ; preds = %if.else %call73.val = load ptr, ptr %23, align 8 - %41 = load i32, ptr %.pre610, align 8 + %41 = load i32, ptr %.pre612, align 8 %42 = load i32, ptr %call73.val, align 8 %cmp.i242 = icmp slt i32 %41, %42 br i1 %cmp.i242, label %if.end136, label %if.end.i243 @@ -6675,7 +6675,7 @@ if.end.i243: ; preds = %lor.lhs.false71 br i1 %cmp8.i244, label %if.else83, label %invoke.cont74 invoke.cont74: ; preds = %if.end.i243 - %type_.i.i246 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.pre610, i64 0, i32 1 + %type_.i.i246 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.pre612, i64 0, i32 1 %43 = load i32, ptr %type_.i.i246, align 4 %type_.i5.i247 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %call73.val, i64 0, i32 1 %44 = load i32, ptr %type_.i5.i247, align 4 @@ -6683,10 +6683,10 @@ invoke.cont74: ; preds = %if.end.i243 br i1 %cmp15.i248, label %if.end136, label %if.else83 if.else83: ; preds = %if.end.i243.us, %invoke.cont74.us, %invoke.cont74, %if.end.i243 - %.us-phi552 = phi i64 [ %index2.0.ph460, %if.end.i243 ], [ %index2.0.ph460, %invoke.cont74 ], [ %index2.0.us, %invoke.cont74.us ], [ %index2.0.us, %if.end.i243.us ] - %.us-phi553 = phi ptr [ %.pre610, %if.end.i243 ], [ %.pre610, %invoke.cont74 ], [ %call72.val.us, %invoke.cont74.us ], [ %call72.val.us, %if.end.i243.us ] - %.us-phi554 = phi ptr [ %call73.val, %if.end.i243 ], [ %call73.val, %invoke.cont74 ], [ %call73.val.us, %invoke.cont74.us ], [ %call73.val.us, %if.end.i243.us ] - %type_.i = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 1 + %.us-phi553 = phi i64 [ %index2.0.ph460, %if.end.i243 ], [ %index2.0.ph460, %invoke.cont74 ], [ %index2.0.us, %invoke.cont74.us ], [ %index2.0.us, %if.end.i243.us ] + %.us-phi554 = phi ptr [ %.pre612, %if.end.i243 ], [ %.pre612, %invoke.cont74 ], [ %call72.val.us, %invoke.cont74.us ], [ %call72.val.us, %if.end.i243.us ] + %.us-phi555 = phi ptr [ %call73.val, %if.end.i243 ], [ %call73.val, %invoke.cont74 ], [ %call73.val.us, %invoke.cont74.us ], [ %call73.val.us, %if.end.i243.us ] + %type_.i = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi555, i64 0, i32 1 %45 = load i32, ptr %type_.i, align 4 switch i32 %45, label %sw.epilog [ i32 0, label %sw.bb @@ -6697,33 +6697,33 @@ if.else83: ; preds = %if.end.i243.us, %in ] sw.bb: ; preds = %if.else83 - %data_.i = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 + %data_.i = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi555, i64 0, i32 2 %46 = load i64, ptr %data_.i, align 8 - %data_.i255 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi553, i64 0, i32 2 + %data_.i255 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 %47 = load i64, ptr %data_.i255, align 8 %cmp96 = icmp eq i64 %46, %47 br label %sw.epilog sw.bb97: ; preds = %if.else83 - %data_.i257 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 + %data_.i257 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi555, i64 0, i32 2 %48 = load i32, ptr %data_.i257, align 8 - %data_.i259 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi553, i64 0, i32 2 + %data_.i259 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 %49 = load i32, ptr %data_.i259, align 8 %cmp106 = icmp eq i32 %48, %49 br label %sw.epilog sw.bb108: ; preds = %if.else83 - %data_.i261 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 + %data_.i261 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi555, i64 0, i32 2 %50 = load i64, ptr %data_.i261, align 8 - %data_.i263 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi553, i64 0, i32 2 + %data_.i263 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 %51 = load i64, ptr %data_.i263, align 8 %cmp117 = icmp eq i64 %50, %51 br label %sw.epilog sw.bb119: ; preds = %if.else83 - %data_.i265 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 + %data_.i265 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi555, i64 0, i32 2 %52 = load ptr, ptr %data_.i265, align 8 - %data_.i267 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi553, i64 0, i32 2 + %data_.i267 = getelementptr inbounds %"class.google::protobuf::UnknownField", ptr %.us-phi554, i64 0, i32 2 %53 = load ptr, ptr %data_.i267, align 8 %call.i = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %52) #35 %call1.i = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %53) #35 @@ -6754,9 +6754,9 @@ sw.epilog: ; preds = %if.end.i.i, %land.r br label %if.end136 if.end136: ; preds = %if.else, %invoke.cont74, %lor.lhs.false71, %sw.epilog, %if.then67 - %index2.0470 = phi i64 [ %.us-phi551, %if.then67 ], [ %.us-phi552, %sw.epilog ], [ %index2.0.ph460, %lor.lhs.false71 ], [ %index2.0.ph460, %invoke.cont74 ], [ %index2.0.ph460, %if.else ] + %index2.0470 = phi i64 [ %.us-phi552, %if.then67 ], [ %.us-phi553, %sw.epilog ], [ %index2.0.ph460, %lor.lhs.false71 ], [ %index2.0.ph460, %invoke.cont74 ], [ %index2.0.ph460, %if.else ] %change_type.1 = phi i32 [ 1, %if.then67 ], [ %spec.store.select, %sw.epilog ], [ 0, %lor.lhs.false71 ], [ 0, %invoke.cont74 ], [ 0, %if.else ] - %focus_field.0 = phi ptr [ %40, %if.then67 ], [ %.us-phi554, %sw.epilog ], [ %.pre610, %lor.lhs.false71 ], [ %.pre610, %invoke.cont74 ], [ %.pre610, %if.else ] + %focus_field.0 = phi ptr [ %40, %if.then67 ], [ %.us-phi555, %sw.epilog ], [ %.pre612, %lor.lhs.false71 ], [ %.pre612, %invoke.cont74 ], [ %.pre612, %if.else ] %cmp137 = icmp eq ptr %current_repeated.0.ph456, null br i1 %cmp137, label %if.then150, label %lor.lhs.false138 @@ -7057,7 +7057,7 @@ _ZNSt6vectorIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EE1 br label %invoke.cont227 invoke.cont227: ; preds = %_ZNSt6vectorIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EE17_M_realloc_insertIJRKS4_EEEvN9__gnu_cxx17__normal_iteratorIPS4_S6_EEDpOT_.exit.i324, %if.then.i292 - switch i32 %change_type.1, label %sw.epilog280 [ + switch i32 %change_type.1, label %default.unreachable616 [ i32 0, label %sw.bb228 i32 1, label %sw.bb234 i32 2, label %sw.bb240 @@ -7150,10 +7150,13 @@ if.then274: ; preds = %sw.bb270 invoke void %104(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(16) %message1, ptr noundef nonnull align 8 dereferenceable(16) %message2, ptr noundef nonnull align 8 dereferenceable(24) %parent_field) to label %sw.epilog280 unwind label %lpad.loopexit.split-lp.loopexit.loopexit.split-lp -sw.epilog280: ; preds = %sw.bb270, %if.then274, %if.end267, %invoke.cont244, %invoke.cont238, %invoke.cont232, %invoke.cont227 - %is_different.3 = phi i8 [ %is_different.1, %invoke.cont227 ], [ %is_different.1, %if.then274 ], [ %is_different.1, %sw.bb270 ], [ %is_different.2, %if.end267 ], [ %is_different.1, %invoke.cont244 ], [ %is_different.1, %invoke.cont238 ], [ %is_different.1, %invoke.cont232 ] - %index1.2 = phi i64 [ %index1.0.ph459, %invoke.cont227 ], [ %inc271, %if.then274 ], [ %inc271, %sw.bb270 ], [ %inc268, %if.end267 ], [ %inc245, %invoke.cont244 ], [ %inc239, %invoke.cont238 ], [ %index1.0.ph459, %invoke.cont232 ] - %index2.2 = phi i64 [ %index2.0470, %invoke.cont227 ], [ %inc272, %if.then274 ], [ %inc272, %sw.bb270 ], [ %inc269, %if.end267 ], [ %inc246, %invoke.cont244 ], [ %index2.0470, %invoke.cont238 ], [ %inc233, %invoke.cont232 ] +default.unreachable616: ; preds = %invoke.cont227 + unreachable + +sw.epilog280: ; preds = %sw.bb270, %if.then274, %if.end267, %invoke.cont244, %invoke.cont238, %invoke.cont232 + %is_different.3 = phi i8 [ %is_different.1, %if.then274 ], [ %is_different.1, %sw.bb270 ], [ %is_different.2, %if.end267 ], [ %is_different.1, %invoke.cont244 ], [ %is_different.1, %invoke.cont238 ], [ %is_different.1, %invoke.cont232 ] + %index1.2 = phi i64 [ %inc271, %if.then274 ], [ %inc271, %sw.bb270 ], [ %inc268, %if.end267 ], [ %inc245, %invoke.cont244 ], [ %inc239, %invoke.cont238 ], [ %index1.0.ph459, %invoke.cont232 ] + %index2.2 = phi i64 [ %inc272, %if.then274 ], [ %inc272, %sw.bb270 ], [ %inc269, %if.end267 ], [ %inc246, %invoke.cont244 ], [ %index2.0470, %invoke.cont238 ], [ %inc233, %invoke.cont232 ] %105 = load ptr, ptr %_M_finish.i277, align 8 %incdec.ptr.i336 = getelementptr inbounds %"struct.google::protobuf::util::MessageDifferencer::SpecificField", ptr %105, i64 -1 store ptr %incdec.ptr.i336, ptr %_M_finish.i277, align 8 diff --git a/bench/qemu/optimized/block_file-posix.c.ll b/bench/qemu/optimized/block_file-posix.c.ll index 8f727dccd66..d2bee609c8d 100644 --- a/bench/qemu/optimized/block_file-posix.c.ll +++ b/bench/qemu/optimized/block_file-posix.c.ll @@ -3709,7 +3709,7 @@ if.end: ; preds = %entry br i1 %tobool1.not, label %if.end3, label %return if.end3: ; preds = %if.end - switch i32 %op, label %return [ + switch i32 %op, label %default.unreachable [ i32 0, label %sw.bb i32 2, label %sw.bb24 i32 1, label %sw.bb33 @@ -3766,14 +3766,17 @@ sw.bb33: ; preds = %if.end3 %tobool37.not = icmp eq ptr %12, null br i1 %tobool37.not, label %return, label %return.sink.split +default.unreachable: ; preds = %if.end3 + unreachable + return.sink.split: ; preds = %sw.bb33, %sw.bb24 %.sink = phi ptr [ %10, %sw.bb24 ], [ %12, %sw.bb33 ] %retval.0.ph = phi i32 [ %ret.0, %sw.bb24 ], [ 0, %sw.bb33 ] call void @warn_report_err(ptr noundef nonnull %.sink) #17 br label %return -return: ; preds = %return.sink.split, %sw.bb, %if.end3, %sw.bb24, %sw.bb33, %if.then17, %if.end, %entry - %retval.0 = phi i32 [ 0, %entry ], [ 0, %if.end ], [ 0, %if.then17 ], [ 0, %if.end3 ], [ 0, %sw.bb33 ], [ %ret.0, %sw.bb24 ], [ 0, %sw.bb ], [ %retval.0.ph, %return.sink.split ] +return: ; preds = %return.sink.split, %sw.bb, %sw.bb24, %sw.bb33, %if.then17, %if.end, %entry + %retval.0 = phi i32 [ 0, %entry ], [ 0, %if.end ], [ 0, %if.then17 ], [ 0, %sw.bb33 ], [ %ret.0, %sw.bb24 ], [ 0, %sw.bb ], [ %retval.0.ph, %return.sink.split ] ret i32 %retval.0 } diff --git a/bench/qemu/optimized/block_mirror.c.ll b/bench/qemu/optimized/block_mirror.c.ll index f526dbb9c47..d874f08fdf3 100644 --- a/bench/qemu/optimized/block_mirror.c.ll +++ b/bench/qemu/optimized/block_mirror.c.ll @@ -1118,7 +1118,7 @@ declare void @qemu_vfree(ptr noundef) local_unnamed_addr #1 declare zeroext i1 @job_is_cancelled(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define internal ptr @active_write_prepare(ptr noundef %s, i64 noundef %offset, i64 noundef %bytes) #0 { +define internal noundef ptr @active_write_prepare(ptr noundef %s, i64 noundef %offset, i64 noundef %bytes) #0 { entry: %.compoundliteral.sroa.9 = alloca [21 x i8], align 1 %granularity = getelementptr inbounds %struct.MirrorBlockJob, ptr %s, i64 0, i32 16 @@ -1332,7 +1332,7 @@ if.else66: ; preds = %sw.epilog %14 = load i64, ptr %granularity, align 8 %.fr75 = freeze i64 %14 %15 = urem i64 %offset.addr.0, %.fr75 - %mul70 = sub i64 %offset.addr.0, %15 + %mul70 = sub nuw i64 %offset.addr.0, %15 %add73 = add i64 %add35.fr, -1 %sub74 = add i64 %add73, %.fr75 %16 = urem i64 %sub74, %.fr75 @@ -2563,7 +2563,7 @@ if.end: ; preds = %entry } ; Function Attrs: nounwind sspstrong uwtable -define internal zeroext i1 @mirror_cancel(ptr noundef %job, i1 noundef zeroext %force) #0 { +define internal noundef zeroext i1 @mirror_cancel(ptr noundef %job, i1 noundef zeroext %force) #0 { entry: %target1 = getelementptr inbounds %struct.MirrorBlockJob, ptr %job, i64 0, i32 1 %0 = load ptr, ptr %target1, align 8 @@ -3690,16 +3690,8 @@ entry: call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.compoundliteral.sroa.6.0..sroa_idx, i8 0, i64 56, i1 false) %waiting_requests = getelementptr inbounds %struct.MirrorOp, ptr %call, i64 0, i32 8 call void @qemu_co_queue_init(ptr noundef nonnull %waiting_requests) #11 - %0 = icmp ult i32 %mirror_method, 3 - br i1 %0, label %switch.lookup, label %sw.default - -sw.default: ; preds = %entry - call void @abort() #12 - unreachable - -switch.lookup: ; preds = %entry - %1 = zext nneg i32 %mirror_method to i64 - %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table.mirror_perform, i64 0, i64 %1 + %0 = sext i32 %mirror_method to i64 + %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table.mirror_perform, i64 0, i64 %0 %switch.load = load ptr, ptr %switch.gep, align 8 %call10 = call ptr @qemu_coroutine_create(ptr noundef nonnull %switch.load, ptr noundef nonnull %call) #11 %co11 = getelementptr inbounds %struct.MirrorOp, ptr %call, i64 0, i32 9 @@ -3707,22 +3699,22 @@ switch.lookup: ; preds = %entry %next = getelementptr inbounds %struct.MirrorOp, ptr %call, i64 0, i32 11 store ptr null, ptr %next, align 8 %tql_prev = getelementptr inbounds %struct.MirrorBlockJob, ptr %s, i64 0, i32 29, i32 0, i32 1 - %2 = load ptr, ptr %tql_prev, align 8 + %1 = load ptr, ptr %tql_prev, align 8 %tql_prev13 = getelementptr inbounds %struct.MirrorOp, ptr %call, i64 0, i32 11, i32 0, i32 1 - store ptr %2, ptr %tql_prev13, align 8 - store ptr %call, ptr %2, align 8 + store ptr %1, ptr %tql_prev13, align 8 + store ptr %call, ptr %1, align 8 store ptr %next, ptr %tql_prev, align 8 call void @qemu_coroutine_enter(ptr noundef %call10) #11 - %3 = load i64, ptr %bytes_handled, align 8 - %cmp = icmp sgt i64 %3, -1 + %2 = load i64, ptr %bytes_handled, align 8 + %cmp = icmp sgt i64 %2, -1 br i1 %cmp, label %if.end, label %if.else -if.else: ; preds = %switch.lookup +if.else: ; preds = %entry call void @__assert_fail(ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef nonnull @__PRETTY_FUNCTION__.mirror_perform) #12 unreachable -if.end: ; preds = %switch.lookup - %cmp20 = icmp ult i64 %3, 4294967296 +if.end: ; preds = %entry + %cmp20 = icmp ult i64 %2, 4294967296 br i1 %cmp20, label %if.end24, label %if.else23 if.else23: ; preds = %if.end @@ -3730,12 +3722,12 @@ if.else23: ; preds = %if.end unreachable if.end24: ; preds = %if.end - %conv25 = trunc i64 %3 to i32 + %conv25 = trunc i64 %2 to i32 ret i32 %conv25 } ; Function Attrs: nounwind sspstrong uwtable -define internal ptr @graph_lockable_auto_lock(ptr noundef readnone returned %x) #0 { +define internal noundef ptr @graph_lockable_auto_lock(ptr noundef readnone returned %x) #0 { entry: tail call void @bdrv_graph_co_rdlock() #11 ret ptr %x diff --git a/bench/qemu/optimized/block_qcow2-cluster.c.ll b/bench/qemu/optimized/block_qcow2-cluster.c.ll index a4f45ad16b8..21c7d5ecbec 100644 --- a/bench/qemu/optimized/block_qcow2-cluster.c.ll +++ b/bench/qemu/optimized/block_qcow2-cluster.c.ll @@ -763,7 +763,7 @@ if.then40: ; preds = %if.end32 br label %fail if.end41: ; preds = %if.end32 - switch i32 %call33, label %if.end41.unreachabledefault [ + switch i32 %call33, label %default.unreachable158 [ i32 6, label %sw.epilog i32 5, label %sw.bb42 i32 2, label %sw.epilog @@ -821,10 +821,10 @@ if.then60: ; preds = %if.end54 call void (ptr, i1, i64, i64, ptr, ...) @qcow2_signal_corruption(ptr noundef nonnull %bs, i1 noundef zeroext true, i64 noundef -1, i64 noundef -1, ptr noundef nonnull @.str.6, i64 noundef %and48, i64 noundef %sub62, i32 noundef %conv1.i105) #13 br label %fail -if.end41.unreachabledefault: ; preds = %if.end41 +default.unreachable158: ; preds = %if.end41 unreachable -sw.epilog: ; preds = %if.end41, %if.end41, %if.end41, %if.end54, %if.end45 +sw.epilog: ; preds = %if.end54, %if.end41, %if.end41, %if.end41, %if.end45 %conv64 = trunc i64 %shr.i118 to i32 %35 = load ptr, ptr %l2_slice, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %type.i) @@ -2941,12 +2941,12 @@ trace_qcow2_handle_copied.exit: ; preds = %entry, %land.lhs.tr %.phi.trans.insert = getelementptr i8, ptr %0, i64 4 %.val59.pre = load i32, ptr %.phi.trans.insert, align 4 %.pre = add i32 %.val59.pre, -1 - %.pre97 = sext i32 %.pre to i64 + %.pre100 = sext i32 %.pre to i64 br i1 %cmp, label %if.end, label %lor.lhs.false lor.lhs.false: ; preds = %trace_qcow2_handle_copied.exit %11 = xor i64 %10, %guest_offset - %12 = and i64 %11, %.pre97 + %12 = and i64 %11, %.pre100 %cmp3 = icmp eq i64 %12, 0 br i1 %cmp3, label %if.end, label %if.else @@ -2956,10 +2956,10 @@ if.else: ; preds = %lor.lhs.false if.end: ; preds = %trace_qcow2_handle_copied.exit, %lor.lhs.false %13 = getelementptr i8, ptr %0, i64 4 - %and.i72 = and i64 %.pre97, %guest_offset + %and.i72 = and i64 %.pre100, %guest_offset %14 = load i64, ptr %bytes, align 8 %.val65 = load i32, ptr %0, align 8 - %add = add i64 %14, %.pre97 + %add = add i64 %14, %.pre100 %add.i = add i64 %add, %and.i72 %sh_prom.i = zext nneg i32 %.val65 to i64 %shr.i = lshr i64 %add.i, %sh_prom.i @@ -3012,13 +3012,11 @@ land.lhs.true.i.i: ; preds = %if.else.i.i79 if.then3.i.i: ; preds = %land.lhs.true.i.i %tobool5.not.i.i = icmp eq i64 %and, 0 - %tobool.not.i = icmp sgt i64 %24, -1 - %or.cond.i = or i1 %tobool.not.i, %tobool5.not.i.i - br i1 %or.cond.i, label %out.thread, label %if.then23 + br label %cluster_needs_new_alloc.exit if.else7.i.i: ; preds = %land.lhs.true.i.i, %if.else.i.i79 %tobool9.not.i.i = icmp eq i64 %and, 0 - br i1 %tobool9.not.i.i, label %if.then10.i.i, label %sw.bb.i + br i1 %tobool9.not.i.i, label %if.then10.i.i, label %cluster_needs_new_alloc.exit if.then10.i.i: ; preds = %if.else7.i.i %27 = getelementptr i8, ptr %bs, i64 16840 @@ -3028,13 +3026,15 @@ if.then10.i.i: ; preds = %if.else7.i.i %cmp.i.not.i.i81 = icmp eq ptr %bs.val.val.i.i, %bs.val6.i.i %tobool14.not.i.i = icmp sgt i64 %24, -1 %or.cond.i.i82 = or i1 %tobool14.not.i.i, %cmp.i.not.i.i81 - br i1 %or.cond.i.i82, label %out.thread, label %if.then23 + br label %cluster_needs_new_alloc.exit -sw.bb.i: ; preds = %if.else7.i.i - %tobool.not.old.i = icmp sgt i64 %24, -1 - br i1 %tobool.not.old.i, label %out.thread, label %if.then23 +cluster_needs_new_alloc.exit: ; preds = %if.then3.i.i, %if.else7.i.i, %if.then10.i.i + %retval.0.i.i = phi i1 [ %tobool5.not.i.i, %if.then3.i.i ], [ false, %if.else7.i.i ], [ %or.cond.i.i82, %if.then10.i.i ] + %tobool.not.i = icmp sgt i64 %24, -1 + %or.cond.i = or i1 %tobool.not.i, %retval.0.i.i + br i1 %or.cond.i, label %out.thread, label %if.then23 -if.then23: ; preds = %sw.bb.i, %if.then10.i.i, %if.then3.i.i +if.then23: ; preds = %cluster_needs_new_alloc.exit %.val58 = load i32, ptr %13, align 4 %sub.i83 = add i32 %.val58, -1 %conv.i84 = sext i32 %sub.i83 to i64 @@ -3093,10 +3093,10 @@ if.end58: ; preds = %if.end43 %cmp61 = icmp slt i32 %call60, 0 br i1 %cmp61, label %out.thread, label %if.then69 -out.thread: ; preds = %if.then25, %if.then34, %if.end20, %if.then3.i.i, %if.then10.i.i, %sw.bb.i, %if.end58 - %ret.0.ph = phi i32 [ 0, %sw.bb.i ], [ 0, %if.then10.i.i ], [ 0, %if.then3.i.i ], [ 0, %if.end20 ], [ 0, %if.then34 ], [ -5, %if.then25 ], [ %call60, %if.end58 ] - %l2_table_cache94 = getelementptr inbounds %struct.BDRVQcow2State, ptr %0, i64 0, i32 17 - %32 = load ptr, ptr %l2_table_cache94, align 8 +out.thread: ; preds = %if.then25, %if.then34, %cluster_needs_new_alloc.exit, %if.end20, %if.end58 + %ret.0.ph = phi i32 [ 0, %cluster_needs_new_alloc.exit ], [ 0, %if.then34 ], [ -5, %if.then25 ], [ 0, %if.end20 ], [ %call60, %if.end58 ] + %l2_table_cache97 = getelementptr inbounds %struct.BDRVQcow2State, ptr %0, i64 0, i32 17 + %32 = load ptr, ptr %l2_table_cache97, align 8 call void @qcow2_cache_put(ptr noundef %32, ptr noundef nonnull %l2_slice) #13 br label %return @@ -5097,13 +5097,17 @@ for.body.lr.ph: ; preds = %entry %7 = getelementptr i8, ptr %bs, i64 16840 %8 = getelementptr i8, ptr %0, i64 480 %cluster_size = getelementptr inbounds %struct.BDRVQcow2State, ptr %0, i64 0, i32 1 - br i1 %tobool.i.not.i.i, label %for.body.lr.ph.split, label %for.body.lr.ph.split.us + br i1 %new_alloc, label %for.body.lr.ph.split.us.split, label %for.body.lr.ph.split -for.body.lr.ph.split.us: ; preds = %for.body.lr.ph - br i1 %new_alloc, label %for.body.us.us, label %for.body.us +for.body.lr.ph.split.us.split: ; preds = %for.body.lr.ph + br i1 %tobool.i.not.i.i, label %for.body.us.preheader, label %for.body.us.us -for.body.us.us: ; preds = %for.body.lr.ph.split.us, %cluster_needs_new_alloc.exit.us.us - %i.022.us.us = phi i32 [ %inc.us.us, %cluster_needs_new_alloc.exit.us.us ], [ 0, %for.body.lr.ph.split.us ] +for.body.us.preheader: ; preds = %for.body.lr.ph.split.us.split + %wide.trip.count83 = zext nneg i32 %nb_clusters to i64 + br label %for.body.us + +for.body.us.us: ; preds = %for.body.lr.ph.split.us.split, %for.inc.us.us + %i.022.us.us = phi i32 [ %inc.us.us, %for.inc.us.us ], [ 0, %for.body.lr.ph.split.us.split ] %add.us.us = add i32 %i.022.us.us, %l2_index %conv1.i16.us.us = shl i32 %add.us.us, %4 %idxprom.i17.us.us = sext i32 %conv1.i16.us.us to i64 @@ -5112,16 +5116,12 @@ for.body.us.us: ; preds = %for.body.lr.ph.spli %10 = tail call noundef i64 @llvm.bswap.i64(i64 %9) %and.i.i.us.us = and i64 %10, 4611686018427387904 %tobool.not.i.i.us.us = icmp eq i64 %and.i.i.us.us, 0 - br i1 %tobool.not.i.i.us.us, label %if.else.i.i.us.us, label %cluster_needs_new_alloc.exit.us.us + br i1 %tobool.not.i.i.us.us, label %if.else.i.i.us.us, label %for.inc.us.us if.else.i.i.us.us: ; preds = %for.body.us.us %and8.i.i.us.us = and i64 %10, 72057594037927424 %tobool9.not.i.i.us.us = icmp eq i64 %and8.i.i.us.us, 0 - br i1 %tobool9.not.i.i.us.us, label %if.then10.i.i.us.us, label %sw.bb.i.us.us - -sw.bb.i.us.us: ; preds = %if.else.i.i.us.us - %tobool.not.old.i.us.us = icmp sgt i64 %10, -1 - br i1 %tobool.not.old.i.us.us, label %cluster_needs_new_alloc.exit.us.us, label %for.end + br i1 %tobool9.not.i.i.us.us, label %if.then10.i.i.us.us, label %cluster_needs_new_alloc.exit.us.us if.then10.i.i.us.us: ; preds = %if.else.i.i.us.us %bs.val6.i.i.us.us = load ptr, ptr %7, align 8 @@ -5129,158 +5129,154 @@ if.then10.i.i.us.us: ; preds = %if.else.i.i.us.us %cmp.i.not.i.i.us.us = icmp eq ptr %bs.val.val.i.i.us.us, %bs.val6.i.i.us.us %tobool14.not.i.i.us.us = icmp sgt i64 %10, -1 %or.cond.i.i.us.us = or i1 %tobool14.not.i.i.us.us, %cmp.i.not.i.i.us.us - br i1 %or.cond.i.i.us.us, label %cluster_needs_new_alloc.exit.us.us, label %for.end + br label %cluster_needs_new_alloc.exit.us.us -cluster_needs_new_alloc.exit.us.us: ; preds = %if.then10.i.i.us.us, %sw.bb.i.us.us, %for.body.us.us +cluster_needs_new_alloc.exit.us.us: ; preds = %if.then10.i.i.us.us, %if.else.i.i.us.us + %retval.0.i.i.us.us = phi i1 [ false, %if.else.i.i.us.us ], [ %or.cond.i.i.us.us, %if.then10.i.i.us.us ] + %tobool.not.i.us.us = icmp sgt i64 %10, -1 + %or.cond.i.us.us = or i1 %tobool.not.i.us.us, %retval.0.i.i.us.us + br i1 %or.cond.i.us.us, label %for.inc.us.us, label %for.end + +for.inc.us.us: ; preds = %cluster_needs_new_alloc.exit.us.us, %for.body.us.us %inc.us.us = add nuw nsw i32 %i.022.us.us, 1 - %exitcond76.not = icmp eq i32 %inc.us.us, %nb_clusters - br i1 %exitcond76.not, label %if.end19, label %for.body.us.us, !llvm.loop !31 - -for.body.us: ; preds = %for.body.lr.ph.split.us, %if.end12.us - %i.022.us = phi i32 [ %inc.us, %if.end12.us ], [ 0, %for.body.lr.ph.split.us ] - %expected_offset.021.us = phi i64 [ %add14.us, %if.end12.us ], [ %and, %for.body.lr.ph.split.us ] - %add.us = add i32 %i.022.us, %l2_index - %conv1.i16.us = shl i32 %add.us, %4 - %idxprom.i17.us = sext i32 %conv1.i16.us to i64 + %exitcond79.not = icmp eq i32 %inc.us.us, %nb_clusters + br i1 %exitcond79.not, label %if.end19, label %for.body.us.us, !llvm.loop !31 + +for.body.us: ; preds = %for.body.us.preheader, %for.inc.us + %indvars.iv80 = phi i64 [ 0, %for.body.us.preheader ], [ %indvars.iv.next81, %for.inc.us ] + %11 = trunc i64 %indvars.iv80 to i32 + %add.us = add i32 %11, %l2_index + %idxprom.i17.us = sext i32 %add.us to i64 %arrayidx.i18.us = getelementptr i64, ptr %l2_slice, i64 %idxprom.i17.us - %11 = load i64, ptr %arrayidx.i18.us, align 8 - %12 = tail call noundef i64 @llvm.bswap.i64(i64 %11) - %and.i.i.us = and i64 %12, 4611686018427387904 + %12 = load i64, ptr %arrayidx.i18.us, align 8 + %13 = tail call noundef i64 @llvm.bswap.i64(i64 %12) + %and.i.i.us = and i64 %13, 4611686018427387904 %tobool.not.i.i.us = icmp eq i64 %and.i.i.us, 0 - br i1 %tobool.not.i.i.us, label %if.else.i.i.us, label %for.end + br i1 %tobool.not.i.i.us, label %if.else.i.i.us, label %for.inc.us if.else.i.i.us: ; preds = %for.body.us - %and8.i.i.us = and i64 %12, 72057594037927424 - %tobool9.not.i.i.us = icmp eq i64 %and8.i.i.us, 0 - br i1 %tobool9.not.i.i.us, label %if.then10.i.i.us, label %sw.bb.i.us - -sw.bb.i.us: ; preds = %if.else.i.i.us - %tobool.not.old.i.us = icmp slt i64 %12, 0 - %cmp9.not.us.not.old = icmp eq i64 %expected_offset.021.us, %and8.i.i.us - %or.cond98 = select i1 %tobool.not.old.i.us, i1 %cmp9.not.us.not.old, i1 false - br i1 %or.cond98, label %if.end12.us, label %for.end + %14 = and i64 %13, 72057594037927425 + %brmerge99.not = icmp eq i64 %14, 0 + %15 = and i64 %13, 72057594037927425 + %tobool9.not.i.i.us.mux = icmp eq i64 %15, 1 + br i1 %brmerge99.not, label %if.then10.i.i.us, label %cluster_needs_new_alloc.exit.us if.then10.i.i.us: ; preds = %if.else.i.i.us %bs.val6.i.i.us = load ptr, ptr %7, align 8 %bs.val.val.i.i.us = load ptr, ptr %8, align 8 - %cmp.i.not.i.i.us = icmp ne ptr %bs.val.val.i.i.us, %bs.val6.i.i.us - %tobool14.not.i.i.us = icmp slt i64 %12, 0 - %or.cond.i.i.us.not99 = and i1 %tobool14.not.i.i.us, %cmp.i.not.i.i.us - %cmp9.not.us.not = icmp eq i64 %expected_offset.021.us, %and8.i.i.us - %or.cond = select i1 %or.cond.i.i.us.not99, i1 %cmp9.not.us.not, i1 false - br i1 %or.cond, label %if.end12.us, label %for.end - -if.end12.us: ; preds = %sw.bb.i.us, %if.then10.i.i.us - %13 = load i32, ptr %cluster_size, align 4 - %conv13.us = sext i32 %13 to i64 - %add14.us = add nsw i64 %expected_offset.021.us, %conv13.us - %inc.us = add nuw nsw i32 %i.022.us, 1 - %exitcond.not = icmp eq i32 %inc.us, %nb_clusters - br i1 %exitcond.not, label %if.end19, label %for.body.us, !llvm.loop !31 + %cmp.i.not.i.i.us = icmp eq ptr %bs.val.val.i.i.us, %bs.val6.i.i.us + %tobool14.not.i.i.us = icmp sgt i64 %13, -1 + %or.cond.i.i.us = or i1 %tobool14.not.i.i.us, %cmp.i.not.i.i.us + br label %cluster_needs_new_alloc.exit.us + +cluster_needs_new_alloc.exit.us: ; preds = %if.else.i.i.us, %if.then10.i.i.us + %retval.0.i.i.us = phi i1 [ %or.cond.i.i.us, %if.then10.i.i.us ], [ %tobool9.not.i.i.us.mux, %if.else.i.i.us ] + %tobool.not.i.us = icmp sgt i64 %13, -1 + %or.cond.i.us = or i1 %tobool.not.i.us, %retval.0.i.i.us + br i1 %or.cond.i.us, label %for.inc.us, label %for.end + +for.inc.us: ; preds = %cluster_needs_new_alloc.exit.us, %for.body.us + %indvars.iv.next81 = add nuw nsw i64 %indvars.iv80, 1 + %exitcond84.not = icmp eq i64 %indvars.iv.next81, %wide.trip.count83 + br i1 %exitcond84.not, label %if.end19, label %for.body.us, !llvm.loop !31 for.body.lr.ph.split: ; preds = %for.body.lr.ph - %wide.trip.count82 = zext nneg i32 %nb_clusters to i64 - br i1 %new_alloc, label %for.body.us27, label %for.body - -for.body.us27: ; preds = %for.body.lr.ph.split, %cluster_needs_new_alloc.exit.us52 - %indvars.iv79 = phi i64 [ %indvars.iv.next80, %cluster_needs_new_alloc.exit.us52 ], [ 0, %for.body.lr.ph.split ] - %14 = trunc i64 %indvars.iv79 to i32 - %add.us30 = add i32 %14, %l2_index - %idxprom.i17.us32 = sext i32 %add.us30 to i64 - %arrayidx.i18.us33 = getelementptr i64, ptr %l2_slice, i64 %idxprom.i17.us32 - %15 = load i64, ptr %arrayidx.i18.us33, align 8 - %16 = tail call noundef i64 @llvm.bswap.i64(i64 %15) - %and.i.i.us34 = and i64 %16, 4611686018427387904 - %tobool.not.i.i.us35 = icmp eq i64 %and.i.i.us34, 0 - br i1 %tobool.not.i.i.us35, label %if.else.i.i.us36, label %cluster_needs_new_alloc.exit.us52 - -if.else.i.i.us36: ; preds = %for.body.us27 - %and1.i.i.us = and i64 %16, 1 - %tobool2.not.i.i.us.not = icmp eq i64 %and1.i.i.us, 0 - %and8.i.i.us38 = and i64 %16, 72057594037927424 - %tobool9.not.i.i.us39 = icmp eq i64 %and8.i.i.us38, 0 - br i1 %tobool2.not.i.i.us.not, label %if.else7.i.i.us37, label %if.then3.i.i.us - -if.else7.i.i.us37: ; preds = %if.else.i.i.us36 - br i1 %tobool9.not.i.i.us39, label %if.then10.i.i.us42, label %sw.bb.i.us40 - -sw.bb.i.us40: ; preds = %if.else7.i.i.us37 - %tobool.not.old.i.us41 = icmp sgt i64 %16, -1 - br i1 %tobool.not.old.i.us41, label %cluster_needs_new_alloc.exit.us52, label %for.end - -if.then10.i.i.us42: ; preds = %if.else7.i.i.us37 - %bs.val6.i.i.us43 = load ptr, ptr %7, align 8 - %bs.val.val.i.i.us44 = load ptr, ptr %8, align 8 - %cmp.i.not.i.i.us45 = icmp eq ptr %bs.val.val.i.i.us44, %bs.val6.i.i.us43 - %tobool14.not.i.i.us46 = icmp sgt i64 %16, -1 - %or.cond.i.i.us47 = or i1 %tobool14.not.i.i.us46, %cmp.i.not.i.i.us45 - br i1 %or.cond.i.i.us47, label %cluster_needs_new_alloc.exit.us52, label %for.end - -if.then3.i.i.us: ; preds = %if.else.i.i.us36 - %tobool.not.i.us = icmp sgt i64 %16, -1 - %or.cond.i.us = or i1 %tobool.not.i.us, %tobool9.not.i.i.us39 - br i1 %or.cond.i.us, label %cluster_needs_new_alloc.exit.us52, label %for.end - -cluster_needs_new_alloc.exit.us52: ; preds = %if.then3.i.i.us, %if.then10.i.i.us42, %sw.bb.i.us40, %for.body.us27 - %indvars.iv.next80 = add nuw nsw i64 %indvars.iv79, 1 - %exitcond83.not = icmp eq i64 %indvars.iv.next80, %wide.trip.count82 - br i1 %exitcond83.not, label %if.end19, label %for.body.us27, !llvm.loop !31 - -for.body: ; preds = %for.body.lr.ph.split, %if.end12 - %indvars.iv = phi i64 [ %indvars.iv.next, %if.end12 ], [ 0, %for.body.lr.ph.split ] - %expected_offset.021 = phi i64 [ %add14, %if.end12 ], [ %and, %for.body.lr.ph.split ] - %17 = trunc i64 %indvars.iv to i32 - %add = add i32 %17, %l2_index + br i1 %tobool.i.not.i.i, label %for.body.preheader, label %for.body.us28 + +for.body.preheader: ; preds = %for.body.lr.ph.split + %wide.trip.count = zext nneg i32 %nb_clusters to i64 + br label %for.body + +for.body.us28: ; preds = %for.body.lr.ph.split, %if.end12.us + %i.022.us29 = phi i32 [ %inc.us58, %if.end12.us ], [ 0, %for.body.lr.ph.split ] + %expected_offset.021.us30 = phi i64 [ %add14.us, %if.end12.us ], [ %and, %for.body.lr.ph.split ] + %add.us31 = add i32 %i.022.us29, %l2_index + %conv1.i16.us32 = shl i32 %add.us31, %4 + %idxprom.i17.us33 = sext i32 %conv1.i16.us32 to i64 + %arrayidx.i18.us34 = getelementptr i64, ptr %l2_slice, i64 %idxprom.i17.us33 + %16 = load i64, ptr %arrayidx.i18.us34, align 8 + %17 = tail call noundef i64 @llvm.bswap.i64(i64 %16) + %and.i.i.us35 = and i64 %17, 4611686018427387904 + %tobool.not.i.i.us36 = icmp eq i64 %and.i.i.us35, 0 + br i1 %tobool.not.i.i.us36, label %if.else.i.i.us38, label %for.end + +if.else.i.i.us38: ; preds = %for.body.us28 + %and8.i.i.us43 = and i64 %17, 72057594037927424 + %tobool9.not.i.i.us44 = icmp eq i64 %and8.i.i.us43, 0 + br i1 %tobool9.not.i.i.us44, label %if.then10.i.i.us45, label %cluster_needs_new_alloc.exit.us51 + +if.then10.i.i.us45: ; preds = %if.else.i.i.us38 + %bs.val6.i.i.us46 = load ptr, ptr %7, align 8 + %bs.val.val.i.i.us47 = load ptr, ptr %8, align 8 + %cmp.i.not.i.i.us48 = icmp eq ptr %bs.val.val.i.i.us47, %bs.val6.i.i.us46 + %tobool14.not.i.i.us49 = icmp sgt i64 %17, -1 + %or.cond.i.i.us50 = or i1 %tobool14.not.i.i.us49, %cmp.i.not.i.i.us48 + br label %cluster_needs_new_alloc.exit.us51 + +cluster_needs_new_alloc.exit.us51: ; preds = %if.then10.i.i.us45, %if.else.i.i.us38 + %retval.0.i.i.us52 = phi i1 [ false, %if.else.i.i.us38 ], [ %or.cond.i.i.us50, %if.then10.i.i.us45 ] + %tobool.not.i.us53 = icmp sgt i64 %17, -1 + %or.cond.i.us54 = or i1 %tobool.not.i.us53, %retval.0.i.i.us52 + %cmp9.not.us = icmp ne i64 %expected_offset.021.us30, %and8.i.i.us43 + %or.cond.not = select i1 %or.cond.i.us54, i1 true, i1 %cmp9.not.us + br i1 %or.cond.not, label %for.end, label %if.end12.us + +if.end12.us: ; preds = %cluster_needs_new_alloc.exit.us51 + %18 = load i32, ptr %cluster_size, align 4 + %conv13.us = sext i32 %18 to i64 + %add14.us = add nsw i64 %expected_offset.021.us30, %conv13.us + %inc.us58 = add nuw nsw i32 %i.022.us29, 1 + %exitcond.not = icmp eq i32 %inc.us58, %nb_clusters + br i1 %exitcond.not, label %if.end19, label %for.body.us28, !llvm.loop !31 + +for.body: ; preds = %for.body.preheader, %if.end12 + %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %if.end12 ] + %expected_offset.021 = phi i64 [ %and, %for.body.preheader ], [ %add14, %if.end12 ] + %19 = trunc i64 %indvars.iv to i32 + %add = add i32 %19, %l2_index %idxprom.i17 = sext i32 %add to i64 %arrayidx.i18 = getelementptr i64, ptr %l2_slice, i64 %idxprom.i17 - %18 = load i64, ptr %arrayidx.i18, align 8 - %19 = tail call noundef i64 @llvm.bswap.i64(i64 %18) - %and.i.i = and i64 %19, 4611686018427387904 + %20 = load i64, ptr %arrayidx.i18, align 8 + %21 = tail call noundef i64 @llvm.bswap.i64(i64 %20) + %and.i.i = and i64 %21, 4611686018427387904 %tobool.not.i.i = icmp eq i64 %and.i.i, 0 br i1 %tobool.not.i.i, label %if.else.i.i, label %for.end if.else.i.i: ; preds = %for.body - %and1.i.i = and i64 %19, 1 - %tobool2.not.i.i.not = icmp eq i64 %and1.i.i, 0 - %and8.i.i = and i64 %19, 72057594037927424 - %tobool9.not.i.i = icmp eq i64 %and8.i.i, 0 - br i1 %tobool2.not.i.i.not, label %if.else7.i.i, label %if.then3.i.i - -if.then3.i.i: ; preds = %if.else.i.i - %tobool.not.i = icmp sgt i64 %19, -1 - %or.cond.i = or i1 %tobool.not.i, %tobool9.not.i.i - br i1 %or.cond.i, label %for.end, label %cluster_needs_new_alloc.exit.thr_comm - -if.else7.i.i: ; preds = %if.else.i.i - br i1 %tobool9.not.i.i, label %if.then10.i.i, label %sw.bb.i - -if.then10.i.i: ; preds = %if.else7.i.i + %and8.i.i = and i64 %21, 72057594037927424 + %22 = and i64 %21, 72057594037927425 + %brmerge.not = icmp eq i64 %22, 0 + %23 = and i64 %21, 72057594037927425 + %tobool9.not.i.i.mux = icmp eq i64 %23, 1 + br i1 %brmerge.not, label %if.then10.i.i, label %cluster_needs_new_alloc.exit + +if.then10.i.i: ; preds = %if.else.i.i %bs.val6.i.i = load ptr, ptr %7, align 8 %bs.val.val.i.i = load ptr, ptr %8, align 8 %cmp.i.not.i.i = icmp eq ptr %bs.val.val.i.i, %bs.val6.i.i - %tobool14.not.i.i = icmp sgt i64 %19, -1 + %tobool14.not.i.i = icmp sgt i64 %21, -1 %or.cond.i.i = or i1 %tobool14.not.i.i, %cmp.i.not.i.i - br i1 %or.cond.i.i, label %for.end, label %cluster_needs_new_alloc.exit.thr_comm - -sw.bb.i: ; preds = %if.else7.i.i - %tobool.not.old.i = icmp sgt i64 %19, -1 - br i1 %tobool.not.old.i, label %for.end, label %cluster_needs_new_alloc.exit.thr_comm - -cluster_needs_new_alloc.exit.thr_comm: ; preds = %if.then3.i.i, %if.then10.i.i, %sw.bb.i - %and8.pre-phi = phi i64 [ %and8.i.i, %if.then3.i.i ], [ 0, %if.then10.i.i ], [ %and8.i.i, %sw.bb.i ] - %cmp9.not.not = icmp eq i64 %expected_offset.021, %and8.pre-phi - br i1 %cmp9.not.not, label %if.end12, label %for.end - -if.end12: ; preds = %cluster_needs_new_alloc.exit.thr_comm - %20 = load i32, ptr %cluster_size, align 4 - %conv13 = sext i32 %20 to i64 + br label %cluster_needs_new_alloc.exit + +cluster_needs_new_alloc.exit: ; preds = %if.else.i.i, %if.then10.i.i + %and8.pre-phi = phi i64 [ 0, %if.then10.i.i ], [ %and8.i.i, %if.else.i.i ] + %retval.0.i.i = phi i1 [ %or.cond.i.i, %if.then10.i.i ], [ %tobool9.not.i.i.mux, %if.else.i.i ] + %tobool.not.i = icmp sgt i64 %21, -1 + %or.cond.i = or i1 %tobool.not.i, %retval.0.i.i + %cmp9.not = icmp ne i64 %expected_offset.021, %and8.pre-phi + %or.cond70.not = select i1 %or.cond.i, i1 true, i1 %cmp9.not + br i1 %or.cond70.not, label %for.end, label %if.end12 + +if.end12: ; preds = %cluster_needs_new_alloc.exit + %24 = load i32, ptr %cluster_size, align 4 + %conv13 = sext i32 %24 to i64 %add14 = add nsw i64 %expected_offset.021, %conv13 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond78.not = icmp eq i64 %indvars.iv.next, %wide.trip.count82 + %exitcond78.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond78.not, label %if.end19, label %for.body, !llvm.loop !31 -for.end: ; preds = %if.then10.i.i.us, %sw.bb.i.us, %for.body.us, %if.then10.i.i.us.us, %sw.bb.i.us.us, %for.body, %if.then3.i.i, %if.then10.i.i, %sw.bb.i, %cluster_needs_new_alloc.exit.thr_comm, %if.then3.i.i.us, %if.then10.i.i.us42, %sw.bb.i.us40, %entry - %i.0.lcssa = phi i32 [ 0, %entry ], [ %14, %sw.bb.i.us40 ], [ %14, %if.then10.i.i.us42 ], [ %14, %if.then3.i.i.us ], [ %17, %cluster_needs_new_alloc.exit.thr_comm ], [ %17, %sw.bb.i ], [ %17, %if.then10.i.i ], [ %17, %if.then3.i.i ], [ %17, %for.body ], [ %i.022.us.us, %sw.bb.i.us.us ], [ %i.022.us.us, %if.then10.i.i.us.us ], [ %i.022.us, %for.body.us ], [ %i.022.us, %sw.bb.i.us ], [ %i.022.us, %if.then10.i.i.us ] +for.end: ; preds = %cluster_needs_new_alloc.exit.us51, %for.body.us28, %cluster_needs_new_alloc.exit, %for.body, %cluster_needs_new_alloc.exit.us.us, %cluster_needs_new_alloc.exit.us, %entry + %i.0.lcssa = phi i32 [ 0, %entry ], [ %11, %cluster_needs_new_alloc.exit.us ], [ %i.022.us.us, %cluster_needs_new_alloc.exit.us.us ], [ %19, %for.body ], [ %19, %cluster_needs_new_alloc.exit ], [ %i.022.us29, %for.body.us28 ], [ %i.022.us29, %cluster_needs_new_alloc.exit.us51 ] %cmp16.not = icmp sgt i32 %i.0.lcssa, %nb_clusters br i1 %cmp16.not, label %if.else, label %if.end19 @@ -5288,9 +5284,9 @@ if.else: ; preds = %for.end tail call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 1386, ptr noundef nonnull @__PRETTY_FUNCTION__.count_single_write_clusters) #15 unreachable -if.end19: ; preds = %if.end12.us, %cluster_needs_new_alloc.exit.us.us, %if.end12, %cluster_needs_new_alloc.exit.us52, %for.end - %i.0.lcssa86 = phi i32 [ %i.0.lcssa, %for.end ], [ %nb_clusters, %cluster_needs_new_alloc.exit.us52 ], [ %nb_clusters, %if.end12 ], [ %nb_clusters, %cluster_needs_new_alloc.exit.us.us ], [ %nb_clusters, %if.end12.us ] - ret i32 %i.0.lcssa86 +if.end19: ; preds = %if.end12.us, %if.end12, %for.inc.us.us, %for.inc.us, %for.end + %i.0.lcssa87 = phi i32 [ %i.0.lcssa, %for.end ], [ %nb_clusters, %for.inc.us ], [ %nb_clusters, %for.inc.us.us ], [ %nb_clusters, %if.end12 ], [ %nb_clusters, %if.end12.us ] + ret i32 %i.0.lcssa87 } ; Function Attrs: nounwind sspstrong uwtable diff --git a/bench/qemu/optimized/block_qcow2-refcount.c.ll b/bench/qemu/optimized/block_qcow2-refcount.c.ll index f8b3be068ba..c47f5b9f6cc 100644 --- a/bench/qemu/optimized/block_qcow2-refcount.c.ll +++ b/bench/qemu/optimized/block_qcow2-refcount.c.ll @@ -2293,7 +2293,7 @@ if.then3: ; preds = %if.then br label %sw.epilog if.end5: ; preds = %qcow2_get_cluster_type.exit - switch i32 %retval.0.i, label %sw.default [ + switch i32 %retval.0.i, label %default.unreachable38 [ i32 4, label %sw.bb i32 3, label %sw.bb7 i32 2, label %sw.bb7 @@ -2363,8 +2363,7 @@ if.then3.i33: ; preds = %do.end.i30 %call5.i36 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17, ptr noundef nonnull @.str.16, ptr noundef %call4.i35) #19 br label %sw.epilog -sw.default: ; preds = %if.end5 - tail call void @abort() #15 +default.unreachable38: ; preds = %if.end5 unreachable sw.epilog: ; preds = %if.then3.i33, %do.end.i30, %if.then3.i24, %do.end.i, %if.end5, %if.end5, %if.then11, %if.then, %if.then3 @@ -2373,9 +2372,6 @@ sw.epilog: ; preds = %if.then3.i33, %do.e declare void @qcow2_parse_compressed_l2_entry(ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3 -; Function Attrs: noreturn nounwind -declare void @abort() local_unnamed_addr #1 - ; Function Attrs: nounwind sspstrong uwtable define dso_local i32 @qcow2_write_caches(ptr noundef %bs) local_unnamed_addr #0 { entry: @@ -6999,7 +6995,7 @@ if.then14: ; preds = %qcow2_get_cluster_t br label %if.end18 if.end18: ; preds = %if.then14, %qcow2_get_cluster_type.exit - switch i32 %retval.0.i87, label %if.end18.unreachabledefault [ + switch i32 %retval.0.i87, label %default.unreachable112 [ i32 0, label %sw.bb131 i32 2, label %sw.bb55 i32 3, label %sw.bb55 @@ -7188,7 +7184,7 @@ if.then134: ; preds = %sw.bb131 %52 = call i64 @fwrite(ptr nonnull @.str.75, i64 66, i64 1, ptr %51) #19 br label %for.inc -if.end18.unreachabledefault: ; preds = %if.end18 +default.unreachable112: ; preds = %if.end18 unreachable for.inc: ; preds = %if.then29, %if.then35, %if.then48, %if.end45, %if.then117, %if.end115, %sw.bb126, %if.then134, %sw.bb131, %if.end90 diff --git a/bench/qemu/optimized/block_vmdk.c.ll b/bench/qemu/optimized/block_vmdk.c.ll index 661284640c6..87417ea7eda 100644 --- a/bench/qemu/optimized/block_vmdk.c.ll +++ b/bench/qemu/optimized/block_vmdk.c.ll @@ -1321,16 +1321,13 @@ if.end: ; preds = %while.body.i %mul1.neg.i = shl i64 %sub.neg.i, 9 %sub2.i = add i64 %mul1.neg.i, %offset %rem.i = urem i64 %sub2.i, %mul.i - switch i32 %call1, label %sw.epilog [ - i32 -1, label %sw.bb + switch i32 %call1, label %default.unreachable25 [ + i32 -1, label %sw.epilog i32 -2, label %sw.bb4 i32 -3, label %sw.bb5 i32 0, label %sw.bb6 ] -sw.bb: ; preds = %if.end - br label %sw.epilog - sw.bb4: ; preds = %if.end br label %sw.epilog @@ -1364,9 +1361,12 @@ if.end14: ; preds = %if.then8, %sw.bb6 %.pre24 = shl i64 %.pre, 9 br label %sw.epilog -sw.epilog: ; preds = %if.end14, %sw.bb5, %sw.bb4, %sw.bb, %if.end - %mul.pre-phi = phi i64 [ %.pre24, %if.end14 ], [ %mul.i, %sw.bb5 ], [ %mul.i, %sw.bb4 ], [ %mul.i, %sw.bb ], [ %mul.i, %if.end ] - %ret.1 = phi i32 [ %ret.0, %if.end14 ], [ 2, %sw.bb5 ], [ 0, %sw.bb4 ], [ -5, %sw.bb ], [ %call1, %if.end ] +default.unreachable25: ; preds = %if.end + unreachable + +sw.epilog: ; preds = %if.end, %if.end14, %sw.bb5, %sw.bb4 + %mul.pre-phi = phi i64 [ %mul.i, %if.end ], [ %.pre24, %if.end14 ], [ %mul.i, %sw.bb5 ], [ %mul.i, %sw.bb4 ] + %ret.1 = phi i32 [ -5, %if.end ], [ %ret.0, %if.end14 ], [ 2, %sw.bb5 ], [ 0, %sw.bb4 ] %sub = sub i64 %mul.pre-phi, %rem.i %cond = tail call i64 @llvm.smin.i64(i64 %sub, i64 %bytes) store i64 %cond, ptr %pnum, align 8 diff --git a/bench/qemu/optimized/disas_riscv.c.ll b/bench/qemu/optimized/disas_riscv.c.ll index 52c3fdc0cde..5799f7a073e 100644 --- a/bench/qemu/optimized/disas_riscv.c.ll +++ b/bench/qemu/optimized/disas_riscv.c.ll @@ -1473,12 +1473,12 @@ entry: br label %for.body for.body: ; preds = %for.body.backedge, %entry - %i.068 = phi i64 [ 0, %entry ], [ %i.068.be, %for.body.backedge ] - %arrayidx = getelementptr [13 x %struct.anon], ptr @disasm_inst.decoders, i64 0, i64 %i.068 + %i.069 = phi i64 [ 0, %entry ], [ %i.069.be, %for.body.backedge ] + %arrayidx = getelementptr [13 x %struct.anon], ptr @disasm_inst.decoders, i64 0, i64 %i.069 %1 = load ptr, ptr %arrayidx, align 8 - %opcode_data6 = getelementptr [13 x %struct.anon], ptr @disasm_inst.decoders, i64 0, i64 %i.068, i32 1 + %opcode_data6 = getelementptr [13 x %struct.anon], ptr @disasm_inst.decoders, i64 0, i64 %i.069, i32 1 %2 = load ptr, ptr %opcode_data6, align 8 - %decode_func8 = getelementptr [13 x %struct.anon], ptr @disasm_inst.decoders, i64 0, i64 %i.068, i32 2 + %decode_func8 = getelementptr [13 x %struct.anon], ptr @disasm_inst.decoders, i64 0, i64 %i.069, i32 2 %3 = load ptr, ptr %decode_func8, align 8 %call = call zeroext i1 %1(ptr noundef %cfg) #12 br i1 %call, label %if.then, label %for.inc @@ -1488,12 +1488,12 @@ if.then: ; preds = %for.body call void %3(ptr noundef nonnull %dec, i32 noundef %isa) #12 %4 = load i16, ptr %op, align 8 %cmp10.not = icmp eq i16 %4, 0 - %cmp = icmp ult i64 %i.068, 12 - %or.cond69 = and i1 %cmp10.not, %cmp - br i1 %or.cond69, label %for.body.backedge, label %for.end + %cmp = icmp ult i64 %i.069, 12 + %or.cond70 = and i1 %cmp10.not, %cmp + br i1 %or.cond70, label %for.body.backedge, label %for.end for.inc: ; preds = %for.body - %cmp.old = icmp ult i64 %i.068, 12 + %cmp.old = icmp ult i64 %i.069, 12 br i1 %cmp.old, label %for.body.backedge, label %for.inc.for.end_crit_edge for.inc.for.end_crit_edge: ; preds = %for.inc @@ -1501,7 +1501,7 @@ for.inc.for.end_crit_edge: ; preds = %for.inc br label %for.end for.body.backedge: ; preds = %for.inc, %if.then - %i.068.be = add nuw nsw i64 %i.068, 1 + %i.069.be = add nuw nsw i64 %i.069, 1 br label %for.body, !llvm.loop !7 for.end: ; preds = %if.then, %for.inc.for.end_crit_edge @@ -1510,7 +1510,7 @@ for.end: ; preds = %if.then, %for.inc.f br i1 %cmp16, label %if.then18, label %for.end.if.end20_crit_edge for.end.if.end20_crit_edge: ; preds = %for.end - %.pre74 = load ptr, ptr %opcode_data9, align 8 + %.pre75 = load ptr, ptr %opcode_data9, align 8 br label %if.end20 if.then18: ; preds = %for.end @@ -1518,7 +1518,7 @@ if.then18: ; preds = %for.end br label %if.end20 if.end20: ; preds = %for.end.if.end20_crit_edge, %if.then18 - %6 = phi ptr [ %.pre74, %for.end.if.end20_crit_edge ], [ @rvi_opcode_data, %if.then18 ] + %6 = phi ptr [ %.pre75, %for.end.if.end20_crit_edge ], [ @rvi_opcode_data, %if.then18 ] %7 = load i64, ptr %inst2, align 8 %idxprom.i = zext i16 %5 to i64 %codec.i = getelementptr %struct.rv_opcode_data, ptr %6, i64 %idxprom.i, i32 1 @@ -3028,7 +3028,7 @@ sw.bb624.i: ; preds = %if.end20 br label %decode_inst_operands.exit decode_inst_operands.exit: ; preds = %if.end20, %sw.bb.i, %sw.bb6.i, %sw.bb13.i, %sw.bb21.i, %sw.bb31.i, %sw.bb41.i, %sw.bb51.i, %sw.bb61.i, %sw.bb71.i, %sw.bb81.i, %sw.bb91.i, %sw.bb102.i, %sw.bb115.i, %sw.bb131.i, %sw.bb146.i, %sw.bb161.i, %sw.bb170.i, %sw.bb178.i, %sw.bb187.i, %operand_cimmshr6.exit.i, %sw.bb205.i, %sw.bb213.i, %sw.bb221.i, %sw.bb229.i, %sw.bb235.i, %sw.bb243.i, %sw.bb251.i, %sw.bb259.i, %sw.bb267.i, %sw.bb275.i, %sw.bb280.i, %sw.bb289.i, %sw.bb295.i, %sw.bb301.i, %sw.bb313.i, %sw.bb325.i, %sw.bb337.i, %sw.bb346.i, %sw.bb355.i, %sw.bb362.i, %sw.bb369.i, %sw.bb380.i, %sw.bb392.i, %sw.bb404.i, %sw.bb416.i, %sw.bb424.i, %sw.bb432.i, %sw.bb440.i, %sw.bb449.i, %sw.bb458.i, %sw.bb470.i, %sw.bb480.i, %sw.bb492.i, %sw.bb504.i, %sw.bb512.i, %sw.bb520.i, %sw.bb531.i, %sw.bb542.i, %sw.bb547.i, %sw.bb556.i, %sw.bb561.i, %sw.bb568.i, %sw.bb571.i, %sw.bb577.i, %sw.bb586.i, %sw.bb593.i, %sw.bb602.i, %sw.bb614.i, %sw.bb624.i - switch i32 %isa, label %decode_inst_decompress.exit [ + switch i32 %isa, label %default.unreachable.i [ i32 0, label %sw.bb.i8 i32 1, label %sw.bb1.i i32 2, label %sw.bb2.i @@ -3078,8 +3078,8 @@ if.then.i7.i: ; preds = %sw.bb1.i %imm.i11.i = getelementptr inbounds %struct.rv_decode, ptr %dec, i64 0, i32 4 %384 = load i32, ptr %imm.i11.i, align 8 %cmp7.i12.i = icmp eq i32 %384, 0 - %or.cond62 = select i1 %tobool.not.i9.i, i1 %cmp7.i12.i, i1 false - br i1 %or.cond62, label %if.then9.i18.i, label %if.else.i13.i + %or.cond63 = select i1 %tobool.not.i9.i, i1 %cmp7.i12.i, i1 false + br i1 %or.cond63, label %if.then9.i18.i, label %if.else.i13.i if.then9.i18.i: ; preds = %if.then.i7.i store i16 0, ptr %op, align 8 @@ -3108,8 +3108,8 @@ if.then.i23.i: ; preds = %sw.bb2.i %imm.i27.i = getelementptr inbounds %struct.rv_decode, ptr %dec, i64 0, i32 4 %389 = load i32, ptr %imm.i27.i, align 8 %cmp7.i28.i = icmp eq i32 %389, 0 - %or.cond63 = select i1 %tobool.not.i25.i, i1 %cmp7.i28.i, i1 false - br i1 %or.cond63, label %if.then9.i34.i, label %if.else.i29.i + %or.cond64 = select i1 %tobool.not.i25.i, i1 %cmp7.i28.i, i1 false + br i1 %or.cond64, label %if.then9.i34.i, label %if.else.i29.i if.then9.i34.i: ; preds = %if.then.i23.i store i16 0, ptr %op, align 8 @@ -3124,8 +3124,11 @@ if.else.i29.i: ; preds = %if.then.i23.i store i8 %conv15.i32.i, ptr %codec3.i, align 2 br label %decode_inst_decompress.exit -decode_inst_decompress.exit: ; preds = %decode_inst_operands.exit, %sw.bb.i8, %if.then9.i.i, %if.else.i.i, %sw.bb1.i, %if.then9.i18.i, %if.else.i13.i, %sw.bb2.i, %if.then9.i34.i, %if.else.i29.i - %391 = phi i16 [ %5, %decode_inst_operands.exit ], [ %5, %sw.bb.i8 ], [ 0, %if.then9.i.i ], [ %376, %if.else.i.i ], [ %5, %sw.bb1.i ], [ 0, %if.then9.i18.i ], [ %381, %if.else.i13.i ], [ %5, %sw.bb2.i ], [ 0, %if.then9.i34.i ], [ %386, %if.else.i29.i ] +default.unreachable.i: ; preds = %decode_inst_operands.exit + unreachable + +decode_inst_decompress.exit: ; preds = %sw.bb.i8, %if.then9.i.i, %if.else.i.i, %sw.bb1.i, %if.then9.i18.i, %if.else.i13.i, %sw.bb2.i, %if.then9.i34.i, %if.else.i29.i + %391 = phi i16 [ %5, %sw.bb.i8 ], [ 0, %if.then9.i.i ], [ %376, %if.else.i.i ], [ %5, %sw.bb1.i ], [ 0, %if.then9.i18.i ], [ %381, %if.else.i13.i ], [ %5, %sw.bb2.i ], [ 0, %if.then9.i34.i ], [ %386, %if.else.i29.i ] %idxprom.i13 = zext i16 %391 to i64 %pseudo.i = getelementptr %struct.rv_opcode_data, ptr %6, i64 %idxprom.i13, i32 3 %392 = load ptr, ptr %pseudo.i, align 8 @@ -3268,7 +3271,7 @@ if.then4.i: ; preds = %while.body.i, %sw.e %conv10.i = trunc i32 %403 to i8 store i8 %conv10.i, ptr %codec3.i, align 2 %conv.i15.mask = and i32 %402, 65535 - %.pre75 = zext nneg i32 %conv.i15.mask to i64 + %.pre76 = zext nneg i32 %conv.i15.mask to i64 br label %decode_inst_lift_pseudo.exit if.end12.i: ; preds = %sw.bb93.i.i, %sw.bb88.i.i, %sw.bb83.i.i, %sw.bb78.i.i, %sw.bb73.i.i, %sw.bb68.i.i, %sw.bb63.i.i, %sw.bb58.i.i, %sw.bb53.i.i, %sw.bb48.i.i, %sw.bb43.i.i, %sw.bb38.i.i, %sw.bb32.i.i, %sw.bb25.i.i, %sw.bb19.i.i, %sw.bb13.i.i, %sw.bb7.i.i, %sw.bb.i.i @@ -3279,7 +3282,7 @@ if.end12.i: ; preds = %sw.bb93.i.i, %sw.bb br i1 %tobool2.not.i, label %decode_inst_lift_pseudo.exit, label %while.body.i, !llvm.loop !9 decode_inst_lift_pseudo.exit: ; preds = %if.end12.i, %decode_inst_decompress.exit, %while.cond.preheader.i, %if.then4.i - %idxprom.i19.pre-phi = phi i64 [ %idxprom.i13, %decode_inst_decompress.exit ], [ %idxprom.i13, %while.cond.preheader.i ], [ %.pre75, %if.then4.i ], [ %idxprom.i13, %if.end12.i ] + %idxprom.i19.pre-phi = phi i64 [ %idxprom.i13, %decode_inst_decompress.exit ], [ %idxprom.i13, %while.cond.preheader.i ], [ %.pre76, %if.then4.i ], [ %idxprom.i13, %if.end12.i ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %tmp.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %nbuf.i) %format.i = getelementptr %struct.rv_opcode_data, ptr %6, i64 %idxprom.i19.pre-phi, i32 2 @@ -3307,15 +3310,15 @@ while.cond.i: ; preds = %sw.epilog321.i, %de %406 = load i8, ptr %fmt.0.i, align 1 switch i8 %406, label %sw.epilog321.i [ i8 0, label %format_inst.exit - i8 79, label %sw.bb.i59 + i8 79, label %sw.bb.i60 i8 40, label %sw.bb5.i - i8 44, label %sw.bb6.i58 + i8 44, label %sw.bb6.i59 i8 41, label %sw.bb7.i i8 45, label %sw.bb8.i i8 98, label %sw.bb9.i i8 110, label %sw.bb12.i i8 48, label %sw.bb17.i - i8 49, label %sw.bb21.i56 + i8 49, label %sw.bb21.i57 i8 50, label %sw.bb25.i i8 51, label %sw.bb29.i i8 52, label %sw.bb40.i @@ -3332,14 +3335,14 @@ while.cond.i: ; preds = %sw.epilog321.i, %de i8 112, label %sw.bb166.i i8 115, label %sw.bb190.i i8 9, label %while.cond215.preheader.i - i8 65, label %sw.bb221.i34 + i8 65, label %sw.bb221.i35 i8 82, label %sw.bb225.i - i8 108, label %sw.bb229.i33 + i8 108, label %sw.bb229.i34 i8 109, label %sw.bb230.i i8 68, label %sw.bb236.i i8 69, label %sw.bb241.i i8 70, label %sw.bb246.i - i8 71, label %sw.bb251.i32 + i8 71, label %sw.bb251.i33 i8 118, label %sw.bb256.i i8 120, label %sw.bb297.i i8 104, label %sw.bb315.i @@ -3350,12 +3353,12 @@ while.cond215.preheader.i: ; preds = %while.cond.i %cmp217552.i = icmp ult i64 %call216551.i, 24 br i1 %cmp217552.i, label %append.exit433.i, label %sw.epilog321.i -sw.bb.i59: ; preds = %while.cond.i +sw.bb.i60: ; preds = %while.cond.i %call.i.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 - %cmp.not.i.i60 = icmp eq i64 %call.i.i, 127 - br i1 %cmp.not.i.i60, label %sw.epilog321.i, label %if.then.i.i61 + %cmp.not.i.i61 = icmp eq i64 %call.i.i, 127 + br i1 %cmp.not.i.i61, label %sw.epilog321.i, label %if.then.i.i62 -if.then.i.i61: ; preds = %sw.bb.i59 +if.then.i.i62: ; preds = %sw.bb.i60 %407 = load i16, ptr %op, align 8 %idxprom3.i = zext i16 %407 to i64 %arrayidx4.i = getelementptr %struct.rv_opcode_data, ptr %6, i64 %idxprom3.i @@ -3374,12 +3377,12 @@ if.then.i190.i: ; preds = %sw.bb5.i %call3.i192.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef nonnull @.str.954, i64 noundef %sub.i191.i) #12 br label %sw.epilog321.i -sw.bb6.i58: ; preds = %while.cond.i +sw.bb6.i59: ; preds = %while.cond.i %call.i194.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i195.i = icmp eq i64 %call.i194.i, 127 br i1 %cmp.not.i195.i, label %sw.epilog321.i, label %if.then.i196.i -if.then.i196.i: ; preds = %sw.bb6.i58 +if.then.i196.i: ; preds = %sw.bb6.i59 %sub.i197.i = sub i64 128, %call.i194.i %call3.i198.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef nonnull @.str.955, i64 noundef %sub.i197.i) #12 br label %sw.epilog321.i @@ -3406,8 +3409,8 @@ if.then.i208.i: ; preds = %sw.bb8.i sw.bb9.i: ; preds = %while.cond.i %409 = load i8, ptr %bs.i30, align 4 - %conv10.i57 = zext i8 %409 to i32 - %call.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %tmp.i, i64 noundef 64, ptr noundef nonnull @.str.958, i32 noundef %conv10.i57) #12 + %conv10.i58 = zext i8 %409 to i32 + %call.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %tmp.i, i64 noundef 64, ptr noundef nonnull @.str.958, i32 noundef %conv10.i58) #12 %call.i212.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i213.i = icmp eq i64 %call.i212.i, 127 br i1 %cmp.not.i213.i, label %sw.epilog321.i, label %if.then.i214.i @@ -3443,12 +3446,12 @@ if.then.i226.i: ; preds = %sw.bb17.i %call3.i228.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef %arrayidx19.i, i64 noundef %sub.i227.i) #12 br label %sw.epilog321.i -sw.bb21.i56: ; preds = %while.cond.i +sw.bb21.i57: ; preds = %while.cond.i %call.i230.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i231.i = icmp eq i64 %call.i230.i, 127 br i1 %cmp.not.i231.i, label %sw.epilog321.i, label %if.then.i232.i -if.then.i232.i: ; preds = %sw.bb21.i56 +if.then.i232.i: ; preds = %sw.bb21.i57 %412 = load i8, ptr %rs1242.i, align 4 %idxprom22.i = zext i8 %412 to i64 %arrayidx23.i = getelementptr [32 x [5 x i8]], ptr @rv_ireg_name_sym, i64 0, i64 %idxprom22.i @@ -3547,8 +3550,8 @@ if.then.i262.i: ; preds = %sw.bb74.i sw.bb90.i: ; preds = %while.cond.i %430 = load i8, ptr %rs1242.i, align 4 - %conv93.i55 = zext i8 %430 to i32 - %call94.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %tmp.i, i64 noundef 64, ptr noundef nonnull @.str.958, i32 noundef %conv93.i55) #12 + %conv93.i56 = zext i8 %430 to i32 + %call94.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %tmp.i, i64 noundef 64, ptr noundef nonnull @.str.958, i32 noundef %conv93.i56) #12 %call.i266.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i267.i = icmp eq i64 %call.i266.i, 127 br i1 %cmp.not.i267.i, label %sw.epilog321.i, label %if.then.i268.i @@ -3623,8 +3626,8 @@ append.exit301.i: ; preds = %append.exit295.i, % while.end.i: ; preds = %append.exit301.i, %append.exit295.i %435 = load i64, ptr %pc1, align 8 %436 = load i32, ptr %imm316.i, align 8 - %conv120.i54 = sext i32 %436 to i64 - %add.i = add i64 %435, %conv120.i54 + %conv120.i55 = sext i32 %436 to i64 + %add.i = add i64 %435, %conv120.i55 %call121.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %tmp.i, i64 noundef 64, ptr noundef nonnull @.str.961, i64 noundef %add.i) #12 %call.i302.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i303.i = icmp eq i64 %call.i302.i, 127 @@ -3636,7 +3639,7 @@ if.then.i304.i: ; preds = %while.end.i br label %sw.epilog321.i sw.bb123.i: ; preds = %while.cond.i - %incdec.ptr.i53 = getelementptr i8, ptr %fmt.0.i, i64 1 + %incdec.ptr.i54 = getelementptr i8, ptr %fmt.0.i, i64 1 %437 = load i32, ptr %imm316.i, align 8 %shr.i = ashr i32 %437, 12 %call126.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %tmp.i, i64 noundef 64, ptr noundef nonnull @.str.958, i32 noundef %shr.i) #12 @@ -3650,7 +3653,7 @@ if.then.i310.i: ; preds = %sw.bb123.i br label %append.exit313.i append.exit313.i: ; preds = %if.then.i310.i, %sw.bb123.i - %438 = load i8, ptr %incdec.ptr.i53, align 1 + %438 = load i8, ptr %incdec.ptr.i54, align 1 %cmp129.i = icmp eq i8 %438, 111 br i1 %cmp129.i, label %while.cond131.preheader.i, label %sw.epilog321.i @@ -3693,93 +3696,93 @@ sw.bb145.i: ; preds = %while.cond.i i32 4, label %sw.bb4.i.i i32 5, label %sw.bb5.i.i i32 8, label %sw.bb6.i.i - i32 9, label %sw.bb7.i.i52 + i32 9, label %sw.bb7.i.i53 i32 10, label %sw.bb8.i.i i32 15, label %sw.bb9.i.i i32 21, label %sw.bb10.i.i i32 23, label %sw.bb11.i.i i32 64, label %sw.bb12.i.i - i32 65, label %sw.bb13.i.i51 + i32 65, label %sw.bb13.i.i52 i32 66, label %sw.bb14.i.i i32 67, label %sw.bb15.i.i i32 68, label %sw.bb16.i.i i32 256, label %sw.bb17.i.i i32 260, label %sw.bb18.i.i - i32 261, label %sw.bb19.i.i50 + i32 261, label %sw.bb19.i.i51 i32 262, label %sw.bb20.i.i i32 320, label %sw.bb21.i.i i32 321, label %sw.bb22.i.i i32 322, label %sw.bb23.i.i i32 323, label %sw.bb24.i.i - i32 324, label %sw.bb25.i.i49 + i32 324, label %sw.bb25.i.i50 i32 384, label %sw.bb26.i.i i32 512, label %sw.bb27.i.i i32 514, label %sw.bb28.i.i i32 515, label %sw.bb29.i.i i32 516, label %sw.bb30.i.i i32 517, label %sw.bb31.i.i - i32 576, label %sw.bb32.i.i48 + i32 576, label %sw.bb32.i.i49 i32 577, label %sw.bb33.i.i i32 578, label %sw.bb34.i.i i32 579, label %sw.bb35.i.i i32 580, label %sw.bb36.i.i i32 768, label %sw.bb37.i.i - i32 769, label %sw.bb38.i.i47 + i32 769, label %sw.bb38.i.i48 i32 770, label %sw.bb39.i.i i32 771, label %sw.bb40.i.i i32 772, label %sw.bb41.i.i i32 773, label %sw.bb42.i.i - i32 774, label %sw.bb43.i.i46 + i32 774, label %sw.bb43.i.i47 i32 800, label %sw.bb44.i.i i32 801, label %sw.bb45.i.i i32 802, label %sw.bb46.i.i i32 803, label %sw.bb47.i.i - i32 804, label %sw.bb48.i.i45 + i32 804, label %sw.bb48.i.i46 i32 805, label %sw.bb49.i.i i32 806, label %sw.bb50.i.i i32 807, label %sw.bb51.i.i i32 808, label %sw.bb52.i.i - i32 809, label %sw.bb53.i.i44 + i32 809, label %sw.bb53.i.i45 i32 810, label %sw.bb54.i.i i32 811, label %sw.bb55.i.i i32 812, label %sw.bb56.i.i i32 813, label %sw.bb57.i.i - i32 814, label %sw.bb58.i.i43 + i32 814, label %sw.bb58.i.i44 i32 815, label %sw.bb59.i.i i32 816, label %sw.bb60.i.i i32 817, label %sw.bb61.i.i i32 818, label %sw.bb62.i.i - i32 819, label %sw.bb63.i.i42 + i32 819, label %sw.bb63.i.i43 i32 820, label %sw.bb64.i.i i32 821, label %sw.bb65.i.i i32 822, label %sw.bb66.i.i i32 823, label %sw.bb67.i.i - i32 824, label %sw.bb68.i.i41 + i32 824, label %sw.bb68.i.i42 i32 825, label %sw.bb69.i.i i32 826, label %sw.bb70.i.i i32 827, label %sw.bb71.i.i i32 828, label %sw.bb72.i.i - i32 829, label %sw.bb73.i.i40 + i32 829, label %sw.bb73.i.i41 i32 830, label %sw.bb74.i.i i32 831, label %sw.bb75.i.i i32 832, label %sw.bb76.i.i i32 833, label %sw.bb77.i.i - i32 834, label %sw.bb78.i.i39 + i32 834, label %sw.bb78.i.i40 i32 835, label %sw.bb79.i.i i32 836, label %sw.bb80.i.i i32 896, label %sw.bb81.i.i i32 897, label %sw.bb82.i.i - i32 898, label %sw.bb83.i.i38 + i32 898, label %sw.bb83.i.i39 i32 899, label %sw.bb84.i.i i32 900, label %sw.bb85.i.i i32 901, label %sw.bb86.i.i i32 928, label %sw.bb87.i.i - i32 944, label %sw.bb88.i.i37 + i32 944, label %sw.bb88.i.i38 i32 945, label %sw.bb89.i.i i32 946, label %sw.bb90.i.i i32 947, label %sw.bb91.i.i i32 948, label %sw.bb92.i.i - i32 949, label %sw.bb93.i.i36 + i32 949, label %sw.bb93.i.i37 i32 950, label %sw.bb94.i.i i32 951, label %sw.bb95.i.i i32 952, label %sw.bb96.i.i @@ -3911,7 +3914,7 @@ sw.bb5.i.i: ; preds = %sw.bb145.i sw.bb6.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb7.i.i52: ; preds = %sw.bb145.i +sw.bb7.i.i53: ; preds = %sw.bb145.i br label %if.then151.i sw.bb8.i.i: ; preds = %sw.bb145.i @@ -3929,7 +3932,7 @@ sw.bb11.i.i: ; preds = %sw.bb145.i sw.bb12.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb13.i.i51: ; preds = %sw.bb145.i +sw.bb13.i.i52: ; preds = %sw.bb145.i br label %if.then151.i sw.bb14.i.i: ; preds = %sw.bb145.i @@ -3947,7 +3950,7 @@ sw.bb17.i.i: ; preds = %sw.bb145.i sw.bb18.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb19.i.i50: ; preds = %sw.bb145.i +sw.bb19.i.i51: ; preds = %sw.bb145.i br label %if.then151.i sw.bb20.i.i: ; preds = %sw.bb145.i @@ -3965,7 +3968,7 @@ sw.bb23.i.i: ; preds = %sw.bb145.i sw.bb24.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb25.i.i49: ; preds = %sw.bb145.i +sw.bb25.i.i50: ; preds = %sw.bb145.i br label %if.then151.i sw.bb26.i.i: ; preds = %sw.bb145.i @@ -3986,7 +3989,7 @@ sw.bb30.i.i: ; preds = %sw.bb145.i sw.bb31.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb32.i.i48: ; preds = %sw.bb145.i +sw.bb32.i.i49: ; preds = %sw.bb145.i br label %if.then151.i sw.bb33.i.i: ; preds = %sw.bb145.i @@ -4004,7 +4007,7 @@ sw.bb36.i.i: ; preds = %sw.bb145.i sw.bb37.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb38.i.i47: ; preds = %sw.bb145.i +sw.bb38.i.i48: ; preds = %sw.bb145.i br label %if.then151.i sw.bb39.i.i: ; preds = %sw.bb145.i @@ -4019,7 +4022,7 @@ sw.bb41.i.i: ; preds = %sw.bb145.i sw.bb42.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb43.i.i46: ; preds = %sw.bb145.i +sw.bb43.i.i47: ; preds = %sw.bb145.i br label %if.then151.i sw.bb44.i.i: ; preds = %sw.bb145.i @@ -4034,7 +4037,7 @@ sw.bb46.i.i: ; preds = %sw.bb145.i sw.bb47.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb48.i.i45: ; preds = %sw.bb145.i +sw.bb48.i.i46: ; preds = %sw.bb145.i br label %if.then151.i sw.bb49.i.i: ; preds = %sw.bb145.i @@ -4049,7 +4052,7 @@ sw.bb51.i.i: ; preds = %sw.bb145.i sw.bb52.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb53.i.i44: ; preds = %sw.bb145.i +sw.bb53.i.i45: ; preds = %sw.bb145.i br label %if.then151.i sw.bb54.i.i: ; preds = %sw.bb145.i @@ -4064,7 +4067,7 @@ sw.bb56.i.i: ; preds = %sw.bb145.i sw.bb57.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb58.i.i43: ; preds = %sw.bb145.i +sw.bb58.i.i44: ; preds = %sw.bb145.i br label %if.then151.i sw.bb59.i.i: ; preds = %sw.bb145.i @@ -4079,7 +4082,7 @@ sw.bb61.i.i: ; preds = %sw.bb145.i sw.bb62.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb63.i.i42: ; preds = %sw.bb145.i +sw.bb63.i.i43: ; preds = %sw.bb145.i br label %if.then151.i sw.bb64.i.i: ; preds = %sw.bb145.i @@ -4094,7 +4097,7 @@ sw.bb66.i.i: ; preds = %sw.bb145.i sw.bb67.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb68.i.i41: ; preds = %sw.bb145.i +sw.bb68.i.i42: ; preds = %sw.bb145.i br label %if.then151.i sw.bb69.i.i: ; preds = %sw.bb145.i @@ -4109,7 +4112,7 @@ sw.bb71.i.i: ; preds = %sw.bb145.i sw.bb72.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb73.i.i40: ; preds = %sw.bb145.i +sw.bb73.i.i41: ; preds = %sw.bb145.i br label %if.then151.i sw.bb74.i.i: ; preds = %sw.bb145.i @@ -4124,7 +4127,7 @@ sw.bb76.i.i: ; preds = %sw.bb145.i sw.bb77.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb78.i.i39: ; preds = %sw.bb145.i +sw.bb78.i.i40: ; preds = %sw.bb145.i br label %if.then151.i sw.bb79.i.i: ; preds = %sw.bb145.i @@ -4139,7 +4142,7 @@ sw.bb81.i.i: ; preds = %sw.bb145.i sw.bb82.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb83.i.i38: ; preds = %sw.bb145.i +sw.bb83.i.i39: ; preds = %sw.bb145.i br label %if.then151.i sw.bb84.i.i: ; preds = %sw.bb145.i @@ -4154,7 +4157,7 @@ sw.bb86.i.i: ; preds = %sw.bb145.i sw.bb87.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb88.i.i37: ; preds = %sw.bb145.i +sw.bb88.i.i38: ; preds = %sw.bb145.i br label %if.then151.i sw.bb89.i.i: ; preds = %sw.bb145.i @@ -4169,7 +4172,7 @@ sw.bb91.i.i: ; preds = %sw.bb145.i sw.bb92.i.i: ; preds = %sw.bb145.i br label %if.then151.i -sw.bb93.i.i36: ; preds = %sw.bb145.i +sw.bb93.i.i37: ; preds = %sw.bb145.i br label %if.then151.i sw.bb94.i.i: ; preds = %sw.bb145.i @@ -4505,8 +4508,8 @@ sw.bb203.i.i: ; preds = %sw.bb145.i sw.bb204.i.i: ; preds = %sw.bb145.i br label %if.then151.i -if.then151.i: ; preds = %sw.bb204.i.i, %sw.bb203.i.i, %sw.bb202.i.i, %sw.bb201.i.i, %sw.bb200.i.i, %sw.bb199.i.i, %sw.bb198.i.i, %sw.bb197.i.i, %sw.bb196.i.i, %sw.bb195.i.i, %sw.bb194.i.i, %sw.bb193.i.i, %sw.bb192.i.i, %sw.bb191.i.i, %sw.bb190.i.i, %sw.bb189.i.i, %sw.bb188.i.i, %sw.bb187.i.i, %sw.bb186.i.i, %sw.bb185.i.i, %sw.bb184.i.i, %sw.bb183.i.i, %sw.bb182.i.i, %sw.bb181.i.i, %sw.bb180.i.i, %sw.bb179.i.i, %sw.bb178.i.i, %sw.bb177.i.i, %sw.bb176.i.i, %sw.bb175.i.i, %sw.bb174.i.i, %sw.bb173.i.i, %sw.bb172.i.i, %sw.bb171.i.i, %sw.bb170.i.i, %sw.bb169.i.i, %sw.bb168.i.i, %sw.bb167.i.i, %sw.bb166.i.i, %sw.bb165.i.i, %sw.bb164.i.i, %sw.bb163.i.i, %sw.bb162.i.i, %sw.bb161.i.i, %sw.bb160.i.i, %sw.bb159.i.i, %sw.bb158.i.i, %sw.bb157.i.i, %sw.bb156.i.i, %sw.bb155.i.i, %sw.bb154.i.i, %sw.bb153.i.i, %sw.bb152.i.i, %sw.bb151.i.i, %sw.bb150.i.i, %sw.bb149.i.i, %sw.bb148.i.i, %sw.bb147.i.i, %sw.bb146.i.i, %sw.bb145.i.i, %sw.bb144.i.i, %sw.bb143.i.i, %sw.bb142.i.i, %sw.bb141.i.i, %sw.bb140.i.i, %sw.bb139.i.i, %sw.bb138.i.i, %sw.bb137.i.i, %sw.bb136.i.i, %sw.bb135.i.i, %sw.bb134.i.i, %sw.bb133.i.i, %sw.bb132.i.i, %sw.bb131.i.i, %sw.bb130.i.i, %sw.bb129.i.i, %sw.bb128.i.i, %sw.bb127.i.i, %sw.bb126.i.i, %sw.bb125.i.i, %sw.bb124.i.i, %sw.bb123.i.i, %sw.bb122.i.i, %sw.bb121.i.i, %sw.bb120.i.i, %sw.bb119.i.i, %sw.bb118.i.i, %sw.bb117.i.i, %sw.bb116.i.i, %sw.bb115.i.i, %sw.bb114.i.i, %sw.bb113.i.i, %sw.bb112.i.i, %sw.bb111.i.i, %sw.bb110.i.i, %sw.bb109.i.i, %sw.bb108.i.i, %sw.bb107.i.i, %sw.bb106.i.i, %sw.bb105.i.i, %sw.bb104.i.i, %sw.bb103.i.i, %sw.bb102.i.i, %sw.bb101.i.i, %sw.bb100.i.i, %sw.bb99.i.i, %sw.bb98.i.i, %sw.bb97.i.i, %sw.bb96.i.i, %sw.bb95.i.i, %sw.bb94.i.i, %sw.bb93.i.i36, %sw.bb92.i.i, %sw.bb91.i.i, %sw.bb90.i.i, %sw.bb89.i.i, %sw.bb88.i.i37, %sw.bb87.i.i, %sw.bb86.i.i, %sw.bb85.i.i, %sw.bb84.i.i, %sw.bb83.i.i38, %sw.bb82.i.i, %sw.bb81.i.i, %sw.bb80.i.i, %sw.bb79.i.i, %sw.bb78.i.i39, %sw.bb77.i.i, %sw.bb76.i.i, %sw.bb75.i.i, %sw.bb74.i.i, %sw.bb73.i.i40, %sw.bb72.i.i, %sw.bb71.i.i, %sw.bb70.i.i, %sw.bb69.i.i, %sw.bb68.i.i41, %sw.bb67.i.i, %sw.bb66.i.i, %sw.bb65.i.i, %sw.bb64.i.i, %sw.bb63.i.i42, %sw.bb62.i.i, %sw.bb61.i.i, %sw.bb60.i.i, %sw.bb59.i.i, %sw.bb58.i.i43, %sw.bb57.i.i, %sw.bb56.i.i, %sw.bb55.i.i, %sw.bb54.i.i, %sw.bb53.i.i44, %sw.bb52.i.i, %sw.bb51.i.i, %sw.bb50.i.i, %sw.bb49.i.i, %sw.bb48.i.i45, %sw.bb47.i.i, %sw.bb46.i.i, %sw.bb45.i.i, %sw.bb44.i.i, %sw.bb43.i.i46, %sw.bb42.i.i, %sw.bb41.i.i, %sw.bb40.i.i, %sw.bb39.i.i, %sw.bb38.i.i47, %sw.bb37.i.i, %sw.bb36.i.i, %sw.bb35.i.i, %sw.bb34.i.i, %sw.bb33.i.i, %sw.bb32.i.i48, %sw.bb31.i.i, %sw.bb30.i.i, %sw.bb29.i.i, %sw.bb28.i.i, %sw.bb27.i.i, %sw.bb26.i.i, %sw.bb25.i.i49, %sw.bb24.i.i, %sw.bb23.i.i, %sw.bb22.i.i, %sw.bb21.i.i, %sw.bb20.i.i, %sw.bb19.i.i50, %sw.bb18.i.i, %sw.bb17.i.i, %sw.bb16.i.i, %sw.bb15.i.i, %sw.bb14.i.i, %sw.bb13.i.i51, %sw.bb12.i.i, %sw.bb11.i.i, %sw.bb10.i.i, %sw.bb9.i.i, %sw.bb8.i.i, %sw.bb7.i.i52, %sw.bb6.i.i, %sw.bb5.i.i, %sw.bb4.i.i, %sw.bb3.i.i, %sw.bb2.i.i, %sw.bb1.i.i, %sw.bb145.i - %retval.0.i.ph.i = phi ptr [ @.str.991, %sw.bb145.i ], [ @.str.992, %sw.bb1.i.i ], [ @.str.993, %sw.bb2.i.i ], [ @.str.994, %sw.bb3.i.i ], [ @.str.995, %sw.bb4.i.i ], [ @.str.996, %sw.bb5.i.i ], [ @.str.997, %sw.bb6.i.i ], [ @.str.998, %sw.bb7.i.i52 ], [ @.str.999, %sw.bb8.i.i ], [ @.str.1000, %sw.bb9.i.i ], [ @.str.1001, %sw.bb10.i.i ], [ @.str.1002, %sw.bb11.i.i ], [ @.str.1003, %sw.bb12.i.i ], [ @.str.1004, %sw.bb13.i.i51 ], [ @.str.1005, %sw.bb14.i.i ], [ @.str.1006, %sw.bb15.i.i ], [ @.str.1007, %sw.bb16.i.i ], [ @.str.1008, %sw.bb17.i.i ], [ @.str.1009, %sw.bb18.i.i ], [ @.str.1010, %sw.bb19.i.i50 ], [ @.str.1011, %sw.bb20.i.i ], [ @.str.1012, %sw.bb21.i.i ], [ @.str.1013, %sw.bb22.i.i ], [ @.str.1014, %sw.bb23.i.i ], [ @.str.1015, %sw.bb24.i.i ], [ @.str.1016, %sw.bb25.i.i49 ], [ @.str.1017, %sw.bb26.i.i ], [ @.str.1018, %sw.bb27.i.i ], [ @.str.1019, %sw.bb28.i.i ], [ @.str.1020, %sw.bb29.i.i ], [ @.str.1021, %sw.bb30.i.i ], [ @.str.1022, %sw.bb31.i.i ], [ @.str.1023, %sw.bb32.i.i48 ], [ @.str.1024, %sw.bb33.i.i ], [ @.str.1025, %sw.bb34.i.i ], [ @.str.1026, %sw.bb35.i.i ], [ @.str.1027, %sw.bb36.i.i ], [ @.str.1028, %sw.bb37.i.i ], [ @.str.1029, %sw.bb38.i.i47 ], [ @.str.1030, %sw.bb39.i.i ], [ @.str.1031, %sw.bb40.i.i ], [ @.str.1032, %sw.bb41.i.i ], [ @.str.1033, %sw.bb42.i.i ], [ @.str.1034, %sw.bb43.i.i46 ], [ @.str.1035, %sw.bb44.i.i ], [ @.str.1036, %sw.bb45.i.i ], [ @.str.1037, %sw.bb46.i.i ], [ @.str.1038, %sw.bb47.i.i ], [ @.str.1039, %sw.bb48.i.i45 ], [ @.str.1040, %sw.bb49.i.i ], [ @.str.1041, %sw.bb50.i.i ], [ @.str.1042, %sw.bb51.i.i ], [ @.str.1043, %sw.bb52.i.i ], [ @.str.1044, %sw.bb53.i.i44 ], [ @.str.1045, %sw.bb54.i.i ], [ @.str.1046, %sw.bb55.i.i ], [ @.str.1047, %sw.bb56.i.i ], [ @.str.1048, %sw.bb57.i.i ], [ @.str.1049, %sw.bb58.i.i43 ], [ @.str.1050, %sw.bb59.i.i ], [ @.str.1051, %sw.bb60.i.i ], [ @.str.1052, %sw.bb61.i.i ], [ @.str.1053, %sw.bb62.i.i ], [ @.str.1054, %sw.bb63.i.i42 ], [ @.str.1055, %sw.bb64.i.i ], [ @.str.1056, %sw.bb65.i.i ], [ @.str.1057, %sw.bb66.i.i ], [ @.str.1058, %sw.bb67.i.i ], [ @.str.1059, %sw.bb68.i.i41 ], [ @.str.1060, %sw.bb69.i.i ], [ @.str.1061, %sw.bb70.i.i ], [ @.str.1062, %sw.bb71.i.i ], [ @.str.1063, %sw.bb72.i.i ], [ @.str.1064, %sw.bb73.i.i40 ], [ @.str.1065, %sw.bb74.i.i ], [ @.str.1066, %sw.bb75.i.i ], [ @.str.1067, %sw.bb76.i.i ], [ @.str.1068, %sw.bb77.i.i ], [ @.str.1069, %sw.bb78.i.i39 ], [ @.str.1070, %sw.bb79.i.i ], [ @.str.1071, %sw.bb80.i.i ], [ @.str.1072, %sw.bb81.i.i ], [ @.str.1073, %sw.bb82.i.i ], [ @.str.1074, %sw.bb83.i.i38 ], [ @.str.1075, %sw.bb84.i.i ], [ @.str.1076, %sw.bb85.i.i ], [ @.str.1077, %sw.bb86.i.i ], [ @.str.1078, %sw.bb87.i.i ], [ @.str.1079, %sw.bb88.i.i37 ], [ @.str.1080, %sw.bb89.i.i ], [ @.str.1081, %sw.bb90.i.i ], [ @.str.1082, %sw.bb91.i.i ], [ @.str.1083, %sw.bb92.i.i ], [ @.str.1084, %sw.bb93.i.i36 ], [ @.str.1085, %sw.bb94.i.i ], [ @.str.1086, %sw.bb95.i.i ], [ @.str.1087, %sw.bb96.i.i ], [ @.str.1088, %sw.bb97.i.i ], [ @.str.1089, %sw.bb98.i.i ], [ @.str.1090, %sw.bb99.i.i ], [ @.str.1091, %sw.bb100.i.i ], [ @.str.1092, %sw.bb101.i.i ], [ @.str.1093, %sw.bb102.i.i ], [ @.str.1094, %sw.bb103.i.i ], [ @.str.1095, %sw.bb104.i.i ], [ @.str.1096, %sw.bb105.i.i ], [ @.str.1097, %sw.bb106.i.i ], [ @.str.1098, %sw.bb107.i.i ], [ @.str.1099, %sw.bb108.i.i ], [ @.str.1100, %sw.bb109.i.i ], [ @.str.1101, %sw.bb110.i.i ], [ @.str.1102, %sw.bb111.i.i ], [ @.str.1103, %sw.bb112.i.i ], [ @.str.1104, %sw.bb113.i.i ], [ @.str.1105, %sw.bb114.i.i ], [ @.str.1106, %sw.bb115.i.i ], [ @.str.1107, %sw.bb116.i.i ], [ @.str.1108, %sw.bb117.i.i ], [ @.str.1109, %sw.bb118.i.i ], [ @.str.1110, %sw.bb119.i.i ], [ @.str.1111, %sw.bb120.i.i ], [ @.str.1112, %sw.bb121.i.i ], [ @.str.1113, %sw.bb122.i.i ], [ @.str.1114, %sw.bb123.i.i ], [ @.str.1115, %sw.bb124.i.i ], [ @.str.1116, %sw.bb125.i.i ], [ @.str.1117, %sw.bb126.i.i ], [ @.str.1118, %sw.bb127.i.i ], [ @.str.1119, %sw.bb128.i.i ], [ @.str.1120, %sw.bb129.i.i ], [ @.str.1121, %sw.bb130.i.i ], [ @.str.1122, %sw.bb131.i.i ], [ @.str.1123, %sw.bb132.i.i ], [ @.str.1124, %sw.bb133.i.i ], [ @.str.1125, %sw.bb134.i.i ], [ @.str.1126, %sw.bb135.i.i ], [ @.str.1127, %sw.bb136.i.i ], [ @.str.1128, %sw.bb137.i.i ], [ @.str.1129, %sw.bb138.i.i ], [ @.str.1130, %sw.bb139.i.i ], [ @.str.1131, %sw.bb140.i.i ], [ @.str.1132, %sw.bb141.i.i ], [ @.str.1133, %sw.bb142.i.i ], [ @.str.1134, %sw.bb143.i.i ], [ @.str.1135, %sw.bb144.i.i ], [ @.str.1136, %sw.bb145.i.i ], [ @.str.1137, %sw.bb146.i.i ], [ @.str.1138, %sw.bb147.i.i ], [ @.str.1139, %sw.bb148.i.i ], [ @.str.1140, %sw.bb149.i.i ], [ @.str.1141, %sw.bb150.i.i ], [ @.str.1142, %sw.bb151.i.i ], [ @.str.1143, %sw.bb152.i.i ], [ @.str.1144, %sw.bb153.i.i ], [ @.str.1145, %sw.bb154.i.i ], [ @.str.1146, %sw.bb155.i.i ], [ @.str.1147, %sw.bb156.i.i ], [ @.str.1148, %sw.bb157.i.i ], [ @.str.1149, %sw.bb158.i.i ], [ @.str.1150, %sw.bb159.i.i ], [ @.str.1151, %sw.bb160.i.i ], [ @.str.1152, %sw.bb161.i.i ], [ @.str.1153, %sw.bb162.i.i ], [ @.str.1154, %sw.bb163.i.i ], [ @.str.1155, %sw.bb164.i.i ], [ @.str.1156, %sw.bb165.i.i ], [ @.str.1157, %sw.bb166.i.i ], [ @.str.1158, %sw.bb167.i.i ], [ @.str.1159, %sw.bb168.i.i ], [ @.str.1160, %sw.bb169.i.i ], [ @.str.1161, %sw.bb170.i.i ], [ @.str.1162, %sw.bb171.i.i ], [ @.str.1163, %sw.bb172.i.i ], [ @.str.1164, %sw.bb173.i.i ], [ @.str.1165, %sw.bb174.i.i ], [ @.str.1166, %sw.bb175.i.i ], [ @.str.1167, %sw.bb176.i.i ], [ @.str.1168, %sw.bb177.i.i ], [ @.str.1169, %sw.bb178.i.i ], [ @.str.1170, %sw.bb179.i.i ], [ @.str.1171, %sw.bb180.i.i ], [ @.str.1172, %sw.bb181.i.i ], [ @.str.1173, %sw.bb182.i.i ], [ @.str.1174, %sw.bb183.i.i ], [ @.str.1175, %sw.bb184.i.i ], [ @.str.1176, %sw.bb185.i.i ], [ @.str.1177, %sw.bb186.i.i ], [ @.str.1178, %sw.bb187.i.i ], [ @.str.1179, %sw.bb188.i.i ], [ @.str.1180, %sw.bb189.i.i ], [ @.str.1181, %sw.bb190.i.i ], [ @.str.1182, %sw.bb191.i.i ], [ @.str.1183, %sw.bb192.i.i ], [ @.str.1184, %sw.bb193.i.i ], [ @.str.1185, %sw.bb194.i.i ], [ @.str.1186, %sw.bb195.i.i ], [ @.str.1187, %sw.bb196.i.i ], [ @.str.1188, %sw.bb197.i.i ], [ @.str.1189, %sw.bb198.i.i ], [ @.str.1190, %sw.bb199.i.i ], [ @.str.1191, %sw.bb200.i.i ], [ @.str.1192, %sw.bb201.i.i ], [ @.str.1193, %sw.bb202.i.i ], [ @.str.1194, %sw.bb203.i.i ], [ @.str.1195, %sw.bb204.i.i ] +if.then151.i: ; preds = %sw.bb204.i.i, %sw.bb203.i.i, %sw.bb202.i.i, %sw.bb201.i.i, %sw.bb200.i.i, %sw.bb199.i.i, %sw.bb198.i.i, %sw.bb197.i.i, %sw.bb196.i.i, %sw.bb195.i.i, %sw.bb194.i.i, %sw.bb193.i.i, %sw.bb192.i.i, %sw.bb191.i.i, %sw.bb190.i.i, %sw.bb189.i.i, %sw.bb188.i.i, %sw.bb187.i.i, %sw.bb186.i.i, %sw.bb185.i.i, %sw.bb184.i.i, %sw.bb183.i.i, %sw.bb182.i.i, %sw.bb181.i.i, %sw.bb180.i.i, %sw.bb179.i.i, %sw.bb178.i.i, %sw.bb177.i.i, %sw.bb176.i.i, %sw.bb175.i.i, %sw.bb174.i.i, %sw.bb173.i.i, %sw.bb172.i.i, %sw.bb171.i.i, %sw.bb170.i.i, %sw.bb169.i.i, %sw.bb168.i.i, %sw.bb167.i.i, %sw.bb166.i.i, %sw.bb165.i.i, %sw.bb164.i.i, %sw.bb163.i.i, %sw.bb162.i.i, %sw.bb161.i.i, %sw.bb160.i.i, %sw.bb159.i.i, %sw.bb158.i.i, %sw.bb157.i.i, %sw.bb156.i.i, %sw.bb155.i.i, %sw.bb154.i.i, %sw.bb153.i.i, %sw.bb152.i.i, %sw.bb151.i.i, %sw.bb150.i.i, %sw.bb149.i.i, %sw.bb148.i.i, %sw.bb147.i.i, %sw.bb146.i.i, %sw.bb145.i.i, %sw.bb144.i.i, %sw.bb143.i.i, %sw.bb142.i.i, %sw.bb141.i.i, %sw.bb140.i.i, %sw.bb139.i.i, %sw.bb138.i.i, %sw.bb137.i.i, %sw.bb136.i.i, %sw.bb135.i.i, %sw.bb134.i.i, %sw.bb133.i.i, %sw.bb132.i.i, %sw.bb131.i.i, %sw.bb130.i.i, %sw.bb129.i.i, %sw.bb128.i.i, %sw.bb127.i.i, %sw.bb126.i.i, %sw.bb125.i.i, %sw.bb124.i.i, %sw.bb123.i.i, %sw.bb122.i.i, %sw.bb121.i.i, %sw.bb120.i.i, %sw.bb119.i.i, %sw.bb118.i.i, %sw.bb117.i.i, %sw.bb116.i.i, %sw.bb115.i.i, %sw.bb114.i.i, %sw.bb113.i.i, %sw.bb112.i.i, %sw.bb111.i.i, %sw.bb110.i.i, %sw.bb109.i.i, %sw.bb108.i.i, %sw.bb107.i.i, %sw.bb106.i.i, %sw.bb105.i.i, %sw.bb104.i.i, %sw.bb103.i.i, %sw.bb102.i.i, %sw.bb101.i.i, %sw.bb100.i.i, %sw.bb99.i.i, %sw.bb98.i.i, %sw.bb97.i.i, %sw.bb96.i.i, %sw.bb95.i.i, %sw.bb94.i.i, %sw.bb93.i.i37, %sw.bb92.i.i, %sw.bb91.i.i, %sw.bb90.i.i, %sw.bb89.i.i, %sw.bb88.i.i38, %sw.bb87.i.i, %sw.bb86.i.i, %sw.bb85.i.i, %sw.bb84.i.i, %sw.bb83.i.i39, %sw.bb82.i.i, %sw.bb81.i.i, %sw.bb80.i.i, %sw.bb79.i.i, %sw.bb78.i.i40, %sw.bb77.i.i, %sw.bb76.i.i, %sw.bb75.i.i, %sw.bb74.i.i, %sw.bb73.i.i41, %sw.bb72.i.i, %sw.bb71.i.i, %sw.bb70.i.i, %sw.bb69.i.i, %sw.bb68.i.i42, %sw.bb67.i.i, %sw.bb66.i.i, %sw.bb65.i.i, %sw.bb64.i.i, %sw.bb63.i.i43, %sw.bb62.i.i, %sw.bb61.i.i, %sw.bb60.i.i, %sw.bb59.i.i, %sw.bb58.i.i44, %sw.bb57.i.i, %sw.bb56.i.i, %sw.bb55.i.i, %sw.bb54.i.i, %sw.bb53.i.i45, %sw.bb52.i.i, %sw.bb51.i.i, %sw.bb50.i.i, %sw.bb49.i.i, %sw.bb48.i.i46, %sw.bb47.i.i, %sw.bb46.i.i, %sw.bb45.i.i, %sw.bb44.i.i, %sw.bb43.i.i47, %sw.bb42.i.i, %sw.bb41.i.i, %sw.bb40.i.i, %sw.bb39.i.i, %sw.bb38.i.i48, %sw.bb37.i.i, %sw.bb36.i.i, %sw.bb35.i.i, %sw.bb34.i.i, %sw.bb33.i.i, %sw.bb32.i.i49, %sw.bb31.i.i, %sw.bb30.i.i, %sw.bb29.i.i, %sw.bb28.i.i, %sw.bb27.i.i, %sw.bb26.i.i, %sw.bb25.i.i50, %sw.bb24.i.i, %sw.bb23.i.i, %sw.bb22.i.i, %sw.bb21.i.i, %sw.bb20.i.i, %sw.bb19.i.i51, %sw.bb18.i.i, %sw.bb17.i.i, %sw.bb16.i.i, %sw.bb15.i.i, %sw.bb14.i.i, %sw.bb13.i.i52, %sw.bb12.i.i, %sw.bb11.i.i, %sw.bb10.i.i, %sw.bb9.i.i, %sw.bb8.i.i, %sw.bb7.i.i53, %sw.bb6.i.i, %sw.bb5.i.i, %sw.bb4.i.i, %sw.bb3.i.i, %sw.bb2.i.i, %sw.bb1.i.i, %sw.bb145.i + %retval.0.i.ph.i = phi ptr [ @.str.991, %sw.bb145.i ], [ @.str.992, %sw.bb1.i.i ], [ @.str.993, %sw.bb2.i.i ], [ @.str.994, %sw.bb3.i.i ], [ @.str.995, %sw.bb4.i.i ], [ @.str.996, %sw.bb5.i.i ], [ @.str.997, %sw.bb6.i.i ], [ @.str.998, %sw.bb7.i.i53 ], [ @.str.999, %sw.bb8.i.i ], [ @.str.1000, %sw.bb9.i.i ], [ @.str.1001, %sw.bb10.i.i ], [ @.str.1002, %sw.bb11.i.i ], [ @.str.1003, %sw.bb12.i.i ], [ @.str.1004, %sw.bb13.i.i52 ], [ @.str.1005, %sw.bb14.i.i ], [ @.str.1006, %sw.bb15.i.i ], [ @.str.1007, %sw.bb16.i.i ], [ @.str.1008, %sw.bb17.i.i ], [ @.str.1009, %sw.bb18.i.i ], [ @.str.1010, %sw.bb19.i.i51 ], [ @.str.1011, %sw.bb20.i.i ], [ @.str.1012, %sw.bb21.i.i ], [ @.str.1013, %sw.bb22.i.i ], [ @.str.1014, %sw.bb23.i.i ], [ @.str.1015, %sw.bb24.i.i ], [ @.str.1016, %sw.bb25.i.i50 ], [ @.str.1017, %sw.bb26.i.i ], [ @.str.1018, %sw.bb27.i.i ], [ @.str.1019, %sw.bb28.i.i ], [ @.str.1020, %sw.bb29.i.i ], [ @.str.1021, %sw.bb30.i.i ], [ @.str.1022, %sw.bb31.i.i ], [ @.str.1023, %sw.bb32.i.i49 ], [ @.str.1024, %sw.bb33.i.i ], [ @.str.1025, %sw.bb34.i.i ], [ @.str.1026, %sw.bb35.i.i ], [ @.str.1027, %sw.bb36.i.i ], [ @.str.1028, %sw.bb37.i.i ], [ @.str.1029, %sw.bb38.i.i48 ], [ @.str.1030, %sw.bb39.i.i ], [ @.str.1031, %sw.bb40.i.i ], [ @.str.1032, %sw.bb41.i.i ], [ @.str.1033, %sw.bb42.i.i ], [ @.str.1034, %sw.bb43.i.i47 ], [ @.str.1035, %sw.bb44.i.i ], [ @.str.1036, %sw.bb45.i.i ], [ @.str.1037, %sw.bb46.i.i ], [ @.str.1038, %sw.bb47.i.i ], [ @.str.1039, %sw.bb48.i.i46 ], [ @.str.1040, %sw.bb49.i.i ], [ @.str.1041, %sw.bb50.i.i ], [ @.str.1042, %sw.bb51.i.i ], [ @.str.1043, %sw.bb52.i.i ], [ @.str.1044, %sw.bb53.i.i45 ], [ @.str.1045, %sw.bb54.i.i ], [ @.str.1046, %sw.bb55.i.i ], [ @.str.1047, %sw.bb56.i.i ], [ @.str.1048, %sw.bb57.i.i ], [ @.str.1049, %sw.bb58.i.i44 ], [ @.str.1050, %sw.bb59.i.i ], [ @.str.1051, %sw.bb60.i.i ], [ @.str.1052, %sw.bb61.i.i ], [ @.str.1053, %sw.bb62.i.i ], [ @.str.1054, %sw.bb63.i.i43 ], [ @.str.1055, %sw.bb64.i.i ], [ @.str.1056, %sw.bb65.i.i ], [ @.str.1057, %sw.bb66.i.i ], [ @.str.1058, %sw.bb67.i.i ], [ @.str.1059, %sw.bb68.i.i42 ], [ @.str.1060, %sw.bb69.i.i ], [ @.str.1061, %sw.bb70.i.i ], [ @.str.1062, %sw.bb71.i.i ], [ @.str.1063, %sw.bb72.i.i ], [ @.str.1064, %sw.bb73.i.i41 ], [ @.str.1065, %sw.bb74.i.i ], [ @.str.1066, %sw.bb75.i.i ], [ @.str.1067, %sw.bb76.i.i ], [ @.str.1068, %sw.bb77.i.i ], [ @.str.1069, %sw.bb78.i.i40 ], [ @.str.1070, %sw.bb79.i.i ], [ @.str.1071, %sw.bb80.i.i ], [ @.str.1072, %sw.bb81.i.i ], [ @.str.1073, %sw.bb82.i.i ], [ @.str.1074, %sw.bb83.i.i39 ], [ @.str.1075, %sw.bb84.i.i ], [ @.str.1076, %sw.bb85.i.i ], [ @.str.1077, %sw.bb86.i.i ], [ @.str.1078, %sw.bb87.i.i ], [ @.str.1079, %sw.bb88.i.i38 ], [ @.str.1080, %sw.bb89.i.i ], [ @.str.1081, %sw.bb90.i.i ], [ @.str.1082, %sw.bb91.i.i ], [ @.str.1083, %sw.bb92.i.i ], [ @.str.1084, %sw.bb93.i.i37 ], [ @.str.1085, %sw.bb94.i.i ], [ @.str.1086, %sw.bb95.i.i ], [ @.str.1087, %sw.bb96.i.i ], [ @.str.1088, %sw.bb97.i.i ], [ @.str.1089, %sw.bb98.i.i ], [ @.str.1090, %sw.bb99.i.i ], [ @.str.1091, %sw.bb100.i.i ], [ @.str.1092, %sw.bb101.i.i ], [ @.str.1093, %sw.bb102.i.i ], [ @.str.1094, %sw.bb103.i.i ], [ @.str.1095, %sw.bb104.i.i ], [ @.str.1096, %sw.bb105.i.i ], [ @.str.1097, %sw.bb106.i.i ], [ @.str.1098, %sw.bb107.i.i ], [ @.str.1099, %sw.bb108.i.i ], [ @.str.1100, %sw.bb109.i.i ], [ @.str.1101, %sw.bb110.i.i ], [ @.str.1102, %sw.bb111.i.i ], [ @.str.1103, %sw.bb112.i.i ], [ @.str.1104, %sw.bb113.i.i ], [ @.str.1105, %sw.bb114.i.i ], [ @.str.1106, %sw.bb115.i.i ], [ @.str.1107, %sw.bb116.i.i ], [ @.str.1108, %sw.bb117.i.i ], [ @.str.1109, %sw.bb118.i.i ], [ @.str.1110, %sw.bb119.i.i ], [ @.str.1111, %sw.bb120.i.i ], [ @.str.1112, %sw.bb121.i.i ], [ @.str.1113, %sw.bb122.i.i ], [ @.str.1114, %sw.bb123.i.i ], [ @.str.1115, %sw.bb124.i.i ], [ @.str.1116, %sw.bb125.i.i ], [ @.str.1117, %sw.bb126.i.i ], [ @.str.1118, %sw.bb127.i.i ], [ @.str.1119, %sw.bb128.i.i ], [ @.str.1120, %sw.bb129.i.i ], [ @.str.1121, %sw.bb130.i.i ], [ @.str.1122, %sw.bb131.i.i ], [ @.str.1123, %sw.bb132.i.i ], [ @.str.1124, %sw.bb133.i.i ], [ @.str.1125, %sw.bb134.i.i ], [ @.str.1126, %sw.bb135.i.i ], [ @.str.1127, %sw.bb136.i.i ], [ @.str.1128, %sw.bb137.i.i ], [ @.str.1129, %sw.bb138.i.i ], [ @.str.1130, %sw.bb139.i.i ], [ @.str.1131, %sw.bb140.i.i ], [ @.str.1132, %sw.bb141.i.i ], [ @.str.1133, %sw.bb142.i.i ], [ @.str.1134, %sw.bb143.i.i ], [ @.str.1135, %sw.bb144.i.i ], [ @.str.1136, %sw.bb145.i.i ], [ @.str.1137, %sw.bb146.i.i ], [ @.str.1138, %sw.bb147.i.i ], [ @.str.1139, %sw.bb148.i.i ], [ @.str.1140, %sw.bb149.i.i ], [ @.str.1141, %sw.bb150.i.i ], [ @.str.1142, %sw.bb151.i.i ], [ @.str.1143, %sw.bb152.i.i ], [ @.str.1144, %sw.bb153.i.i ], [ @.str.1145, %sw.bb154.i.i ], [ @.str.1146, %sw.bb155.i.i ], [ @.str.1147, %sw.bb156.i.i ], [ @.str.1148, %sw.bb157.i.i ], [ @.str.1149, %sw.bb158.i.i ], [ @.str.1150, %sw.bb159.i.i ], [ @.str.1151, %sw.bb160.i.i ], [ @.str.1152, %sw.bb161.i.i ], [ @.str.1153, %sw.bb162.i.i ], [ @.str.1154, %sw.bb163.i.i ], [ @.str.1155, %sw.bb164.i.i ], [ @.str.1156, %sw.bb165.i.i ], [ @.str.1157, %sw.bb166.i.i ], [ @.str.1158, %sw.bb167.i.i ], [ @.str.1159, %sw.bb168.i.i ], [ @.str.1160, %sw.bb169.i.i ], [ @.str.1161, %sw.bb170.i.i ], [ @.str.1162, %sw.bb171.i.i ], [ @.str.1163, %sw.bb172.i.i ], [ @.str.1164, %sw.bb173.i.i ], [ @.str.1165, %sw.bb174.i.i ], [ @.str.1166, %sw.bb175.i.i ], [ @.str.1167, %sw.bb176.i.i ], [ @.str.1168, %sw.bb177.i.i ], [ @.str.1169, %sw.bb178.i.i ], [ @.str.1170, %sw.bb179.i.i ], [ @.str.1171, %sw.bb180.i.i ], [ @.str.1172, %sw.bb181.i.i ], [ @.str.1173, %sw.bb182.i.i ], [ @.str.1174, %sw.bb183.i.i ], [ @.str.1175, %sw.bb184.i.i ], [ @.str.1176, %sw.bb185.i.i ], [ @.str.1177, %sw.bb186.i.i ], [ @.str.1178, %sw.bb187.i.i ], [ @.str.1179, %sw.bb188.i.i ], [ @.str.1180, %sw.bb189.i.i ], [ @.str.1181, %sw.bb190.i.i ], [ @.str.1182, %sw.bb191.i.i ], [ @.str.1183, %sw.bb192.i.i ], [ @.str.1184, %sw.bb193.i.i ], [ @.str.1185, %sw.bb194.i.i ], [ @.str.1186, %sw.bb195.i.i ], [ @.str.1187, %sw.bb196.i.i ], [ @.str.1188, %sw.bb197.i.i ], [ @.str.1189, %sw.bb198.i.i ], [ @.str.1190, %sw.bb199.i.i ], [ @.str.1191, %sw.bb200.i.i ], [ @.str.1192, %sw.bb201.i.i ], [ @.str.1193, %sw.bb202.i.i ], [ @.str.1194, %sw.bb203.i.i ], [ @.str.1195, %sw.bb204.i.i ] %call.i326.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i327.i = icmp eq i64 %call.i326.i, 127 br i1 %cmp.not.i327.i, label %sw.epilog321.i, label %if.then.i328.i @@ -4533,7 +4536,7 @@ sw.bb158.i: ; preds = %while.cond.i %cmp.not.i375.i = icmp eq i64 %call.i374.i, 127 switch i8 %442, label %sw.default.i [ i8 0, label %sw.bb160.i - i8 1, label %sw.bb161.i35 + i8 1, label %sw.bb161.i36 i8 2, label %sw.bb162.i i8 3, label %sw.bb163.i i8 4, label %sw.bb164.i @@ -4548,10 +4551,10 @@ if.then.i340.i: ; preds = %sw.bb160.i %call3.i342.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef nonnull @.str.963, i64 noundef %sub.i341.i) #12 br label %sw.epilog321.i -sw.bb161.i35: ; preds = %sw.bb158.i +sw.bb161.i36: ; preds = %sw.bb158.i br i1 %cmp.not.i375.i, label %sw.epilog321.i, label %if.then.i346.i -if.then.i346.i: ; preds = %sw.bb161.i35 +if.then.i346.i: ; preds = %sw.bb161.i36 %sub.i347.i = sub i64 128, %call.i374.i %call3.i348.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef nonnull @.str.964, i64 noundef %sub.i347.i) #12 br label %sw.epilog321.i @@ -4726,12 +4729,12 @@ append.exit433.i: ; preds = %while.cond215.prehe %cmp217.i = icmp ult i64 %call216.i, 24 br i1 %cmp217.i, label %append.exit433.i, label %sw.epilog321.i, !llvm.loop !12 -sw.bb221.i34: ; preds = %while.cond.i +sw.bb221.i35: ; preds = %while.cond.i %453 = load i8, ptr %aq.i24, align 2 %tobool222.not.i = icmp eq i8 %453, 0 br i1 %tobool222.not.i, label %sw.epilog321.i, label %if.then223.i -if.then223.i: ; preds = %sw.bb221.i34 +if.then223.i: ; preds = %sw.bb221.i35 %call.i434.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i435.i = icmp eq i64 %call.i434.i, 127 br i1 %cmp.not.i435.i, label %sw.epilog321.i, label %if.then.i436.i @@ -4756,12 +4759,12 @@ if.then.i442.i: ; preds = %if.then227.i %call3.i444.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef nonnull @.str.975, i64 noundef %sub.i443.i) #12 br label %sw.epilog321.i -sw.bb229.i33: ; preds = %while.cond.i +sw.bb229.i34: ; preds = %while.cond.i %call.i446.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i447.i = icmp eq i64 %call.i446.i, 127 br i1 %cmp.not.i447.i, label %sw.epilog321.i, label %if.then.i448.i -if.then.i448.i: ; preds = %sw.bb229.i33 +if.then.i448.i: ; preds = %sw.bb229.i34 %sub.i449.i = sub i64 128, %call.i446.i %call3.i450.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef nonnull @.str.976, i64 noundef %sub.i449.i) #12 br label %sw.epilog321.i @@ -4820,12 +4823,12 @@ if.then.i472.i: ; preds = %sw.bb246.i %call3.i474.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef %arrayidx249.i, i64 noundef %sub.i473.i) #12 br label %sw.epilog321.i -sw.bb251.i32: ; preds = %while.cond.i +sw.bb251.i33: ; preds = %while.cond.i %call.i476.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #13 %cmp.not.i477.i = icmp eq i64 %call.i476.i, 127 br i1 %cmp.not.i477.i, label %sw.epilog321.i, label %if.then.i478.i -if.then.i478.i: ; preds = %sw.bb251.i32 +if.then.i478.i: ; preds = %sw.bb251.i33 %459 = load i8, ptr %rs3252.i, align 2 %idxprom253.i = zext i8 %459 to i64 %arrayidx254.i = getelementptr [32 x [4 x i8]], ptr @rv_vreg_name_sym, i64 0, i64 %idxprom253.i @@ -4883,7 +4886,7 @@ append.exit499.i: ; preds = %if.then.i496.i, %ap br i1 %tobool278.not.i, label %if.else291.i, label %if.then279.i if.then279.i: ; preds = %append.exit499.i - switch i32 %and263.i, label %if.then279.unreachabledefault.i [ + switch i32 %and263.i, label %default.unreachable [ i32 3, label %sw.bb280.i31 i32 2, label %sw.bb283.i i32 1, label %sw.bb286.i @@ -4902,7 +4905,7 @@ sw.bb286.i: ; preds = %if.then279.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(3) %nbuf.i, ptr noundef nonnull align 1 dereferenceable(3) @.str.986, i64 3, i1 false) br label %sw.epilog289.i -if.then279.unreachabledefault.i: ; preds = %if.then279.i +default.unreachable: ; preds = %if.then279.i unreachable sw.epilog289.i: ; preds = %sw.bb286.i, %sw.bb283.i, %sw.bb280.i31, %if.then279.i @@ -5012,8 +5015,8 @@ if.then.i544.i: ; preds = %sw.bb315.i %call3.i546.i = call ptr @strncat(ptr noundef nonnull dereferenceable(1) %buf, ptr noundef %arrayidx318.i, i64 noundef %sub.i545.i) #12 br label %sw.epilog321.i -sw.epilog321.i: ; preds = %append.exit433.i, %if.then.i544.i, %sw.bb315.i, %if.then.i538.i, %sw.epilog313.i, %if.then.i532.i, %append.exit529.i, %if.then.i478.i, %sw.bb251.i32, %if.then.i472.i, %sw.bb246.i, %if.then.i466.i, %sw.bb241.i, %if.then.i460.i, %sw.bb236.i, %if.then.i454.i, %if.then234.i, %sw.bb230.i, %if.then.i448.i, %sw.bb229.i33, %if.then.i442.i, %if.then227.i, %sw.bb225.i, %if.then.i436.i, %if.then223.i, %sw.bb221.i34, %if.then.i424.i, %if.then212.i, %if.end207.i, %if.then.i400.i, %if.then188.i, %if.end183.i, %if.then.i376.i, %sw.default.i, %if.then.i370.i, %sw.bb165.i, %if.then.i364.i, %sw.bb164.i, %if.then.i358.i, %sw.bb163.i, %if.then.i352.i, %sw.bb162.i, %if.then.i346.i, %sw.bb161.i35, %if.then.i340.i, %sw.bb160.i, %if.then.i334.i, %if.else.i, %if.then.i328.i, %if.then151.i, %if.then.i322.i, %while.end137.i, %append.exit313.i, %if.then.i304.i, %while.end.i, %if.then.i286.i, %sw.bb105.i, %if.then.i280.i, %sw.bb100.i, %if.then.i274.i, %sw.bb96.i, %if.then.i268.i, %sw.bb90.i, %if.then.i262.i, %sw.bb74.i, %if.then.i256.i, %sw.bb57.i, %if.then.i250.i, %sw.bb40.i, %if.then.i244.i, %sw.bb29.i, %if.then.i238.i, %sw.bb25.i, %if.then.i232.i, %sw.bb21.i56, %if.then.i226.i, %sw.bb17.i, %if.then.i220.i, %sw.bb12.i, %if.then.i214.i, %sw.bb9.i, %if.then.i208.i, %sw.bb8.i, %if.then.i202.i, %sw.bb7.i, %if.then.i196.i, %sw.bb6.i58, %if.then.i190.i, %sw.bb5.i, %if.then.i.i61, %sw.bb.i59, %while.cond215.preheader.i, %while.cond.i - %fmt.1.i = phi ptr [ %fmt.0.i, %sw.bb230.i ], [ %fmt.0.i, %sw.bb225.i ], [ %fmt.0.i, %sw.bb221.i34 ], [ %fmt.0.i, %if.end207.i ], [ %fmt.0.i, %if.end183.i ], [ %incdec.ptr.i53, %append.exit313.i ], [ %fmt.0.i, %while.cond.i ], [ %fmt.0.i, %sw.bb.i59 ], [ %fmt.0.i, %if.then.i.i61 ], [ %fmt.0.i, %sw.bb5.i ], [ %fmt.0.i, %if.then.i190.i ], [ %fmt.0.i, %sw.bb6.i58 ], [ %fmt.0.i, %if.then.i196.i ], [ %fmt.0.i, %sw.bb7.i ], [ %fmt.0.i, %if.then.i202.i ], [ %fmt.0.i, %sw.bb8.i ], [ %fmt.0.i, %if.then.i208.i ], [ %fmt.0.i, %sw.bb9.i ], [ %fmt.0.i, %if.then.i214.i ], [ %fmt.0.i, %sw.bb12.i ], [ %fmt.0.i, %if.then.i220.i ], [ %fmt.0.i, %sw.bb17.i ], [ %fmt.0.i, %if.then.i226.i ], [ %fmt.0.i, %sw.bb21.i56 ], [ %fmt.0.i, %if.then.i232.i ], [ %fmt.0.i, %sw.bb25.i ], [ %fmt.0.i, %if.then.i238.i ], [ %fmt.0.i, %sw.bb29.i ], [ %fmt.0.i, %if.then.i244.i ], [ %fmt.0.i, %sw.bb40.i ], [ %fmt.0.i, %if.then.i250.i ], [ %fmt.0.i, %sw.bb57.i ], [ %fmt.0.i, %if.then.i256.i ], [ %fmt.0.i, %sw.bb74.i ], [ %fmt.0.i, %if.then.i262.i ], [ %fmt.0.i, %sw.bb90.i ], [ %fmt.0.i, %if.then.i268.i ], [ %fmt.0.i, %sw.bb96.i ], [ %fmt.0.i, %if.then.i274.i ], [ %fmt.0.i, %sw.bb100.i ], [ %fmt.0.i, %if.then.i280.i ], [ %fmt.0.i, %sw.bb105.i ], [ %fmt.0.i, %if.then.i286.i ], [ %fmt.0.i, %while.end.i ], [ %fmt.0.i, %if.then.i304.i ], [ %incdec.ptr.i53, %while.end137.i ], [ %incdec.ptr.i53, %if.then.i322.i ], [ %fmt.0.i, %if.then151.i ], [ %fmt.0.i, %if.then.i328.i ], [ %fmt.0.i, %if.else.i ], [ %fmt.0.i, %if.then.i334.i ], [ %fmt.0.i, %sw.bb160.i ], [ %fmt.0.i, %if.then.i340.i ], [ %fmt.0.i, %sw.bb161.i35 ], [ %fmt.0.i, %if.then.i346.i ], [ %fmt.0.i, %sw.bb162.i ], [ %fmt.0.i, %if.then.i352.i ], [ %fmt.0.i, %sw.bb163.i ], [ %fmt.0.i, %if.then.i358.i ], [ %fmt.0.i, %sw.bb164.i ], [ %fmt.0.i, %if.then.i364.i ], [ %fmt.0.i, %sw.bb165.i ], [ %fmt.0.i, %if.then.i370.i ], [ %fmt.0.i, %sw.default.i ], [ %fmt.0.i, %if.then.i376.i ], [ %fmt.0.i, %if.then188.i ], [ %fmt.0.i, %if.then.i400.i ], [ %fmt.0.i, %if.then212.i ], [ %fmt.0.i, %if.then.i424.i ], [ %fmt.0.i, %if.then223.i ], [ %fmt.0.i, %if.then.i436.i ], [ %fmt.0.i, %if.then227.i ], [ %fmt.0.i, %if.then.i442.i ], [ %fmt.0.i, %sw.bb229.i33 ], [ %fmt.0.i, %if.then.i448.i ], [ %fmt.0.i, %if.then234.i ], [ %fmt.0.i, %if.then.i454.i ], [ %fmt.0.i, %sw.bb236.i ], [ %fmt.0.i, %if.then.i460.i ], [ %fmt.0.i, %sw.bb241.i ], [ %fmt.0.i, %if.then.i466.i ], [ %fmt.0.i, %sw.bb246.i ], [ %fmt.0.i, %if.then.i472.i ], [ %fmt.0.i, %sw.bb251.i32 ], [ %fmt.0.i, %if.then.i478.i ], [ %fmt.0.i, %append.exit529.i ], [ %fmt.0.i, %if.then.i532.i ], [ %fmt.0.i, %sw.epilog313.i ], [ %fmt.0.i, %if.then.i538.i ], [ %fmt.0.i, %sw.bb315.i ], [ %fmt.0.i, %if.then.i544.i ], [ %fmt.0.i, %while.cond215.preheader.i ], [ %fmt.0.i, %append.exit433.i ] +sw.epilog321.i: ; preds = %append.exit433.i, %if.then.i544.i, %sw.bb315.i, %if.then.i538.i, %sw.epilog313.i, %if.then.i532.i, %append.exit529.i, %if.then.i478.i, %sw.bb251.i33, %if.then.i472.i, %sw.bb246.i, %if.then.i466.i, %sw.bb241.i, %if.then.i460.i, %sw.bb236.i, %if.then.i454.i, %if.then234.i, %sw.bb230.i, %if.then.i448.i, %sw.bb229.i34, %if.then.i442.i, %if.then227.i, %sw.bb225.i, %if.then.i436.i, %if.then223.i, %sw.bb221.i35, %if.then.i424.i, %if.then212.i, %if.end207.i, %if.then.i400.i, %if.then188.i, %if.end183.i, %if.then.i376.i, %sw.default.i, %if.then.i370.i, %sw.bb165.i, %if.then.i364.i, %sw.bb164.i, %if.then.i358.i, %sw.bb163.i, %if.then.i352.i, %sw.bb162.i, %if.then.i346.i, %sw.bb161.i36, %if.then.i340.i, %sw.bb160.i, %if.then.i334.i, %if.else.i, %if.then.i328.i, %if.then151.i, %if.then.i322.i, %while.end137.i, %append.exit313.i, %if.then.i304.i, %while.end.i, %if.then.i286.i, %sw.bb105.i, %if.then.i280.i, %sw.bb100.i, %if.then.i274.i, %sw.bb96.i, %if.then.i268.i, %sw.bb90.i, %if.then.i262.i, %sw.bb74.i, %if.then.i256.i, %sw.bb57.i, %if.then.i250.i, %sw.bb40.i, %if.then.i244.i, %sw.bb29.i, %if.then.i238.i, %sw.bb25.i, %if.then.i232.i, %sw.bb21.i57, %if.then.i226.i, %sw.bb17.i, %if.then.i220.i, %sw.bb12.i, %if.then.i214.i, %sw.bb9.i, %if.then.i208.i, %sw.bb8.i, %if.then.i202.i, %sw.bb7.i, %if.then.i196.i, %sw.bb6.i59, %if.then.i190.i, %sw.bb5.i, %if.then.i.i62, %sw.bb.i60, %while.cond215.preheader.i, %while.cond.i + %fmt.1.i = phi ptr [ %fmt.0.i, %sw.bb230.i ], [ %fmt.0.i, %sw.bb225.i ], [ %fmt.0.i, %sw.bb221.i35 ], [ %fmt.0.i, %if.end207.i ], [ %fmt.0.i, %if.end183.i ], [ %incdec.ptr.i54, %append.exit313.i ], [ %fmt.0.i, %while.cond.i ], [ %fmt.0.i, %sw.bb.i60 ], [ %fmt.0.i, %if.then.i.i62 ], [ %fmt.0.i, %sw.bb5.i ], [ %fmt.0.i, %if.then.i190.i ], [ %fmt.0.i, %sw.bb6.i59 ], [ %fmt.0.i, %if.then.i196.i ], [ %fmt.0.i, %sw.bb7.i ], [ %fmt.0.i, %if.then.i202.i ], [ %fmt.0.i, %sw.bb8.i ], [ %fmt.0.i, %if.then.i208.i ], [ %fmt.0.i, %sw.bb9.i ], [ %fmt.0.i, %if.then.i214.i ], [ %fmt.0.i, %sw.bb12.i ], [ %fmt.0.i, %if.then.i220.i ], [ %fmt.0.i, %sw.bb17.i ], [ %fmt.0.i, %if.then.i226.i ], [ %fmt.0.i, %sw.bb21.i57 ], [ %fmt.0.i, %if.then.i232.i ], [ %fmt.0.i, %sw.bb25.i ], [ %fmt.0.i, %if.then.i238.i ], [ %fmt.0.i, %sw.bb29.i ], [ %fmt.0.i, %if.then.i244.i ], [ %fmt.0.i, %sw.bb40.i ], [ %fmt.0.i, %if.then.i250.i ], [ %fmt.0.i, %sw.bb57.i ], [ %fmt.0.i, %if.then.i256.i ], [ %fmt.0.i, %sw.bb74.i ], [ %fmt.0.i, %if.then.i262.i ], [ %fmt.0.i, %sw.bb90.i ], [ %fmt.0.i, %if.then.i268.i ], [ %fmt.0.i, %sw.bb96.i ], [ %fmt.0.i, %if.then.i274.i ], [ %fmt.0.i, %sw.bb100.i ], [ %fmt.0.i, %if.then.i280.i ], [ %fmt.0.i, %sw.bb105.i ], [ %fmt.0.i, %if.then.i286.i ], [ %fmt.0.i, %while.end.i ], [ %fmt.0.i, %if.then.i304.i ], [ %incdec.ptr.i54, %while.end137.i ], [ %incdec.ptr.i54, %if.then.i322.i ], [ %fmt.0.i, %if.then151.i ], [ %fmt.0.i, %if.then.i328.i ], [ %fmt.0.i, %if.else.i ], [ %fmt.0.i, %if.then.i334.i ], [ %fmt.0.i, %sw.bb160.i ], [ %fmt.0.i, %if.then.i340.i ], [ %fmt.0.i, %sw.bb161.i36 ], [ %fmt.0.i, %if.then.i346.i ], [ %fmt.0.i, %sw.bb162.i ], [ %fmt.0.i, %if.then.i352.i ], [ %fmt.0.i, %sw.bb163.i ], [ %fmt.0.i, %if.then.i358.i ], [ %fmt.0.i, %sw.bb164.i ], [ %fmt.0.i, %if.then.i364.i ], [ %fmt.0.i, %sw.bb165.i ], [ %fmt.0.i, %if.then.i370.i ], [ %fmt.0.i, %sw.default.i ], [ %fmt.0.i, %if.then.i376.i ], [ %fmt.0.i, %if.then188.i ], [ %fmt.0.i, %if.then.i400.i ], [ %fmt.0.i, %if.then212.i ], [ %fmt.0.i, %if.then.i424.i ], [ %fmt.0.i, %if.then223.i ], [ %fmt.0.i, %if.then.i436.i ], [ %fmt.0.i, %if.then227.i ], [ %fmt.0.i, %if.then.i442.i ], [ %fmt.0.i, %sw.bb229.i34 ], [ %fmt.0.i, %if.then.i448.i ], [ %fmt.0.i, %if.then234.i ], [ %fmt.0.i, %if.then.i454.i ], [ %fmt.0.i, %sw.bb236.i ], [ %fmt.0.i, %if.then.i460.i ], [ %fmt.0.i, %sw.bb241.i ], [ %fmt.0.i, %if.then.i466.i ], [ %fmt.0.i, %sw.bb246.i ], [ %fmt.0.i, %if.then.i472.i ], [ %fmt.0.i, %sw.bb251.i33 ], [ %fmt.0.i, %if.then.i478.i ], [ %fmt.0.i, %append.exit529.i ], [ %fmt.0.i, %if.then.i532.i ], [ %fmt.0.i, %sw.epilog313.i ], [ %fmt.0.i, %if.then.i538.i ], [ %fmt.0.i, %sw.bb315.i ], [ %fmt.0.i, %if.then.i544.i ], [ %fmt.0.i, %while.cond215.preheader.i ], [ %fmt.0.i, %append.exit433.i ] %incdec.ptr322.i = getelementptr i8, ptr %fmt.1.i, i64 1 br label %while.cond.i, !llvm.loop !13 @@ -5035,7 +5038,7 @@ entry: %inst1 = getelementptr inbounds %struct.rv_decode, ptr %dec, i64 0, i32 2 %0 = load i64, ptr %inst1, align 8 %and = and i64 %0, 3 - switch i64 %and, label %entry.unreachabledefault [ + switch i64 %and, label %default.unreachable349 [ i64 0, label %sw.bb i64 1, label %sw.bb42 i64 2, label %sw.bb96 @@ -5045,7 +5048,7 @@ entry: sw.bb: ; preds = %entry %shr2 = lshr i64 %0, 13 %and3 = and i64 %shr2, 7 - switch i64 %and3, label %sw.bb.unreachabledefault [ + switch i64 %and3, label %default.unreachable349 [ i64 0, label %sw.epilog1655 i64 1, label %sw.bb5 i64 2, label %sw.bb6 @@ -5110,13 +5113,10 @@ sw.bb36: ; preds = %sw.bb %.249 = select i1 %cmp37, i16 233, i16 265 br label %sw.epilog1655 -sw.bb.unreachabledefault: ; preds = %sw.bb - unreachable - sw.bb42: ; preds = %entry %shr43 = lshr i64 %0, 13 %and44 = and i64 %shr43, 7 - switch i64 %and44, label %sw.bb42.unreachabledefault [ + switch i64 %and44, label %default.unreachable349 [ i64 0, label %sw.bb45 i64 1, label %sw.bb50 i64 2, label %sw.epilog1655 @@ -5147,7 +5147,7 @@ sw.bb56: ; preds = %sw.bb42 sw.bb62: ; preds = %sw.bb42 %shr63 = lshr i64 %0, 10 %and64 = and i64 %shr63, 3 - switch i64 %and64, label %sw.bb62.unreachabledefault [ + switch i64 %and64, label %default.unreachable349 [ i64 0, label %sw.epilog1655 i64 1, label %sw.bb66 i64 2, label %sw.bb67 @@ -5165,7 +5165,7 @@ sw.bb68: ; preds = %sw.bb62 %shr71 = lshr i64 %0, 5 %and72 = and i64 %shr71, 3 %or = or disjoint i64 %and70, %and72 - switch i64 %or, label %sw.bb68.unreachabledefault [ + switch i64 %or, label %default.unreachable349 [ i64 0, label %sw.epilog1655 i64 1, label %sw.bb74 i64 2, label %sw.bb75 @@ -5200,12 +5200,6 @@ sw.bb80: ; preds = %sw.bb68 %5 = icmp ult i64 %and82, 6 br i1 %5, label %switch.lookup, label %sw.epilog1655 -sw.bb68.unreachabledefault: ; preds = %sw.bb68 - unreachable - -sw.bb62.unreachabledefault: ; preds = %sw.bb62 - unreachable - sw.bb92: ; preds = %sw.bb42 br label %sw.epilog1655 @@ -5215,13 +5209,10 @@ sw.bb93: ; preds = %sw.bb42 sw.bb94: ; preds = %sw.bb42 br label %sw.epilog1655 -sw.bb42.unreachabledefault: ; preds = %sw.bb42 - unreachable - sw.bb96: ; preds = %entry %shr97 = lshr i64 %0, 13 %and98 = and i64 %shr97, 7 - switch i64 %and98, label %sw.bb96.unreachabledefault [ + switch i64 %and98, label %default.unreachable349 [ i64 0, label %sw.epilog1655 i64 1, label %sw.bb100 i64 2, label %sw.bb105 @@ -5253,7 +5244,7 @@ sw.bb111: ; preds = %sw.bb96 br i1 %trunc245.not, label %sw.bb114, label %sw.bb120 sw.bb114: ; preds = %sw.bb111 - %.256 = select i1 %cond29, i16 256, i16 257 + %.255 = select i1 %cond29, i16 256, i16 257 br label %sw.epilog1655 sw.bb120: ; preds = %sw.bb111 @@ -5262,7 +5253,7 @@ sw.bb120: ; preds = %sw.bb111 sw.bb123: ; preds = %sw.bb120 %8 = and i64 %0, 3968 %cond28 = icmp eq i64 %8, 0 - %.257 = select i1 %cond28, i16 258, i16 259 + %.256 = select i1 %cond28, i16 258, i16 259 br label %sw.epilog1655 sw.bb132: ; preds = %sw.bb96 @@ -5293,25 +5284,25 @@ if.then139: ; preds = %if.else135 sw.bb142: ; preds = %if.then139 %13 = and i64 %0, 192 %cmp145.not = icmp eq i64 %13, 0 - %spec.select258 = select i1 %cmp145.not, i16 261, i16 781 + %spec.select257 = select i1 %cmp145.not, i16 261, i16 781 br label %sw.epilog1655 sw.bb148: ; preds = %if.then139 %14 = and i64 %0, 192 %cmp151.not = icmp eq i64 %14, 0 - %spec.select259 = select i1 %cmp151.not, i16 261, i16 782 + %spec.select258 = select i1 %cmp151.not, i16 261, i16 782 br label %sw.epilog1655 sw.bb154: ; preds = %if.then139 %15 = and i64 %0, 192 %cmp157.not = icmp eq i64 %15, 0 - %spec.select260 = select i1 %cmp157.not, i16 261, i16 784 + %spec.select259 = select i1 %cmp157.not, i16 261, i16 784 br label %sw.epilog1655 sw.bb160: ; preds = %if.then139 %16 = and i64 %0, 192 %cmp163.not = icmp eq i64 %16, 0 - %spec.select261 = select i1 %cmp163.not, i16 261, i16 783 + %spec.select260 = select i1 %cmp163.not, i16 261, i16 783 br label %sw.epilog1655 if.else167: ; preds = %if.else135 @@ -5332,7 +5323,7 @@ sw.bb170: ; preds = %if.else167 if.end174: ; preds = %sw.bb170 %19 = and i64 %0, 896 %cmp177.not = icmp eq i64 %19, 0 - %.262 = select i1 %cmp177.not, i16 787, i16 788 + %.261 = select i1 %cmp177.not, i16 787, i16 788 br label %sw.epilog1655 sw.bb181: ; preds = %if.else167 @@ -5343,8 +5334,8 @@ if.end186: ; preds = %sw.bb181 %and188 = and i64 %shr187, 3 %switch.selectcmp = icmp eq i64 %and188, 3 %switch.select = select i1 %switch.selectcmp, i16 785, i16 261 - %switch.selectcmp263 = icmp eq i64 %and188, 1 - %switch.select264 = select i1 %switch.selectcmp263, i16 786, i16 %switch.select + %switch.selectcmp262 = icmp eq i64 %and188, 1 + %switch.select263 = select i1 %switch.selectcmp262, i16 786, i16 %switch.select br label %sw.epilog1655 sw.bb195: ; preds = %sw.bb96 @@ -5352,12 +5343,9 @@ sw.bb195: ; preds = %sw.bb96 sw.bb196: ; preds = %sw.bb96 %cmp197 = icmp eq i32 %isa, 0 - %.265 = select i1 %cmp197, i16 263, i16 268 + %.264 = select i1 %cmp197, i16 263, i16 268 br label %sw.epilog1655 -sw.bb96.unreachabledefault: ; preds = %sw.bb96 - unreachable - sw.bb202: ; preds = %entry %shr203 = lshr i64 %0, 2 %and204 = and i64 %shr203, 31 @@ -5399,7 +5387,7 @@ sw.bb205: ; preds = %sw.bb202 sw.bb217: ; preds = %sw.bb202 %shr218 = lshr i64 %0, 12 %and219 = and i64 %shr218, 7 - switch i64 %and219, label %sw.bb217.unreachabledefault [ + switch i64 %and219, label %default.unreachable349 [ i64 0, label %sw.bb220 i64 1, label %sw.epilog1655 i64 2, label %sw.bb242 @@ -5607,9 +5595,6 @@ sw.bb302: ; preds = %sw.epilog292 sw.bb303: ; preds = %sw.epilog292 br label %sw.epilog1655 -sw.bb217.unreachabledefault: ; preds = %sw.bb217 - unreachable - sw.bb306: ; preds = %sw.bb202 %shr307 = lshr i64 %0, 12 %and308 = and i64 %shr307, 7 @@ -5619,7 +5604,7 @@ sw.bb306: ; preds = %sw.bb202 sw.bb313: ; preds = %sw.bb202 %shr314 = lshr i64 %0, 12 %and315 = and i64 %shr314, 7 - switch i64 %and315, label %sw.bb313.unreachabledefault [ + switch i64 %and315, label %default.unreachable349 [ i64 0, label %sw.epilog1655 i64 1, label %sw.bb317 i64 2, label %sw.bb364 @@ -5650,7 +5635,7 @@ sw.bb320: ; preds = %sw.bb317 sw.bb321: ; preds = %sw.bb317 %33 = and i64 %0, 133169152 %cond26 = icmp eq i64 %33, 15728640 - %spec.select266 = select i1 %cond26, i16 396, i16 0 + %spec.select265 = select i1 %cond26, i16 396, i16 0 br label %sw.epilog1655 sw.bb326: ; preds = %sw.bb317 @@ -5670,7 +5655,7 @@ sw.bb341: ; preds = %sw.bb317 sw.default345: ; preds = %sw.bb341 %36 = and i64 %0, 117440512 %cmp348 = icmp eq i64 %36, 16777216 - %spec.select267 = select i1 %cmp348, i16 366, i16 0 + %spec.select266 = select i1 %cmp348, i16 366, i16 0 br label %sw.epilog1655 sw.bb352: ; preds = %sw.bb317 @@ -5713,7 +5698,7 @@ sw.bb370: ; preds = %sw.bb367 sw.bb371: ; preds = %sw.bb367 %38 = and i64 %0, 133169152 %cond24 = icmp eq i64 %38, 15728640 - %spec.select268 = select i1 %cond24, i16 395, i16 0 + %spec.select267 = select i1 %cond24, i16 395, i16 0 br label %sw.epilog1655 sw.bb376: ; preds = %sw.bb367 @@ -5752,9 +5737,6 @@ sw.bb388: ; preds = %sw.bb313 sw.bb389: ; preds = %sw.bb313 br label %sw.epilog1655 -sw.bb313.unreachabledefault: ; preds = %sw.bb313 - unreachable - sw.bb391: ; preds = %sw.bb202 br label %sw.epilog1655 @@ -5818,7 +5800,7 @@ sw.bb417: ; preds = %sw.bb202 sw.bb426: ; preds = %sw.bb202 %shr427 = lshr i64 %0, 12 %and428 = and i64 %shr427, 7 - switch i64 %and428, label %sw.bb426.unreachabledefault [ + switch i64 %and428, label %default.unreachable349 [ i64 0, label %sw.bb429 i64 1, label %sw.epilog1655 i64 2, label %sw.bb450 @@ -5897,7 +5879,7 @@ sw.bb453: ; preds = %sw.bb426 sw.bb456: ; preds = %sw.bb453 %44 = and i64 %0, 32505856 %cond23 = icmp eq i64 %44, 0 - %spec.select269 = select i1 %cond23, i16 404, i16 0 + %spec.select268 = select i1 %cond23, i16 404, i16 0 br label %sw.epilog1655 sw.bb461: ; preds = %sw.bb453 @@ -5922,7 +5904,7 @@ sw.bb465: ; preds = %sw.bb426 sw.bb468: ; preds = %sw.bb465 %45 = and i64 %0, 32505856 %cond22 = icmp eq i64 %45, 0 - %spec.select270 = select i1 %cond22, i16 405, i16 0 + %spec.select269 = select i1 %cond22, i16 405, i16 0 br label %sw.epilog1655 sw.bb473: ; preds = %sw.bb465 @@ -5947,7 +5929,7 @@ sw.bb477: ; preds = %sw.bb426 sw.bb480: ; preds = %sw.bb477 %46 = and i64 %0, 32505856 %cond21 = icmp eq i64 %46, 0 - %spec.select271 = select i1 %cond21, i16 406, i16 0 + %spec.select270 = select i1 %cond21, i16 406, i16 0 br label %sw.epilog1655 sw.bb485: ; preds = %sw.bb477 @@ -5959,9 +5941,6 @@ sw.bb486: ; preds = %sw.bb477 sw.bb487: ; preds = %sw.bb477 br label %sw.epilog1655 -sw.bb426.unreachabledefault: ; preds = %sw.bb426 - unreachable - sw.bb490: ; preds = %sw.bb202 %shr491 = lshr i64 %0, 24 %and492 = and i64 %shr491, 248 @@ -6026,19 +6005,19 @@ sw.bb501: ; preds = %sw.bb490 sw.bb502: ; preds = %sw.bb490 %47 = and i64 %0, 32505856 %cond20 = icmp eq i64 %47, 0 - %spec.select272 = select i1 %cond20, i16 82, i16 0 + %spec.select271 = select i1 %cond20, i16 82, i16 0 br label %sw.epilog1655 sw.bb507: ; preds = %sw.bb490 %48 = and i64 %0, 32505856 %cond19 = icmp eq i64 %48, 0 - %spec.select273 = select i1 %cond19, i16 93, i16 0 + %spec.select272 = select i1 %cond19, i16 93, i16 0 br label %sw.epilog1655 sw.bb512: ; preds = %sw.bb490 %49 = and i64 %0, 32505856 %cond18 = icmp eq i64 %49, 0 - %spec.select274 = select i1 %cond18, i16 104, i16 0 + %spec.select273 = select i1 %cond18, i16 104, i16 0 br label %sw.epilog1655 sw.bb517: ; preds = %sw.bb490 @@ -6227,7 +6206,7 @@ sw.bb563: ; preds = %sw.bb542 sw.bb564: ; preds = %sw.bb542 %50 = and i64 %0, 32505856 %cond17 = icmp eq i64 %50, 0 - %.275 = select i1 %cond17, i16 355, i16 392 + %.274 = select i1 %cond17, i16 355, i16 392 br label %sw.epilog607 sw.bb570: ; preds = %sw.bb542 @@ -6342,7 +6321,7 @@ sw.bb606: ; preds = %sw.bb542 br label %sw.epilog607 sw.epilog607: ; preds = %sw.bb564, %sw.bb606, %sw.bb605, %sw.bb604, %sw.bb603, %sw.bb602, %sw.bb601, %sw.bb600, %sw.bb599, %sw.bb598, %sw.bb597, %sw.bb596, %sw.bb595, %sw.bb594, %sw.bb593, %sw.bb592, %sw.bb591, %sw.bb590, %sw.bb589, %sw.bb588, %sw.bb587, %sw.bb586, %sw.bb585, %sw.bb584, %sw.bb583, %sw.bb582, %sw.bb581, %sw.bb580, %sw.bb579, %sw.bb578, %sw.bb577, %sw.bb576, %sw.bb575, %sw.bb574, %sw.bb573, %sw.bb572, %sw.bb571, %sw.bb570, %sw.bb563, %sw.bb562, %sw.bb561, %sw.bb560, %sw.bb559, %sw.bb558, %sw.bb557, %sw.bb556, %sw.bb555, %sw.bb554, %sw.bb553, %sw.bb552, %sw.bb551, %sw.bb550, %sw.bb549, %sw.bb548, %sw.bb542 - %op.5 = phi i16 [ 0, %sw.bb542 ], [ 367, %sw.bb606 ], [ 360, %sw.bb605 ], [ 333, %sw.bb604 ], [ 332, %sw.bb603 ], [ 386, %sw.bb602 ], [ 384, %sw.bb601 ], [ 385, %sw.bb600 ], [ 383, %sw.bb599 ], [ 382, %sw.bb598 ], [ 381, %sw.bb597 ], [ 361, %sw.bb596 ], [ 359, %sw.bb595 ], [ 331, %sw.bb594 ], [ 330, %sw.bb593 ], [ 35, %sw.bb592 ], [ 329, %sw.bb591 ], [ 29, %sw.bb590 ], [ 371, %sw.bb589 ], [ 372, %sw.bb588 ], [ 369, %sw.bb587 ], [ 370, %sw.bb586 ], [ 398, %sw.bb585 ], [ 397, %sw.bb584 ], [ 358, %sw.bb583 ], [ 336, %sw.bb582 ], [ 335, %sw.bb581 ], [ 334, %sw.bb580 ], [ 790, %sw.bb579 ], [ 789, %sw.bb578 ], [ 346, %sw.bb577 ], [ 345, %sw.bb576 ], [ 344, %sw.bb575 ], [ 343, %sw.bb574 ], [ 342, %sw.bb573 ], [ 341, %sw.bb572 ], [ 340, %sw.bb571 ], [ 393, %sw.bb570 ], [ 71, %sw.bb563 ], [ 70, %sw.bb562 ], [ 69, %sw.bb561 ], [ 68, %sw.bb560 ], [ 67, %sw.bb559 ], [ 66, %sw.bb558 ], [ 65, %sw.bb557 ], [ 64, %sw.bb556 ], [ 37, %sw.bb555 ], [ 36, %sw.bb554 ], [ 34, %sw.bb553 ], [ 33, %sw.bb552 ], [ 32, %sw.bb551 ], [ 31, %sw.bb550 ], [ 30, %sw.bb549 ], [ 28, %sw.bb548 ], [ %.275, %sw.bb564 ] + %op.5 = phi i16 [ 0, %sw.bb542 ], [ 367, %sw.bb606 ], [ 360, %sw.bb605 ], [ 333, %sw.bb604 ], [ 332, %sw.bb603 ], [ 386, %sw.bb602 ], [ 384, %sw.bb601 ], [ 385, %sw.bb600 ], [ 383, %sw.bb599 ], [ 382, %sw.bb598 ], [ 381, %sw.bb597 ], [ 361, %sw.bb596 ], [ 359, %sw.bb595 ], [ 331, %sw.bb594 ], [ 330, %sw.bb593 ], [ 35, %sw.bb592 ], [ 329, %sw.bb591 ], [ 29, %sw.bb590 ], [ 371, %sw.bb589 ], [ 372, %sw.bb588 ], [ 369, %sw.bb587 ], [ 370, %sw.bb586 ], [ 398, %sw.bb585 ], [ 397, %sw.bb584 ], [ 358, %sw.bb583 ], [ 336, %sw.bb582 ], [ 335, %sw.bb581 ], [ 334, %sw.bb580 ], [ 790, %sw.bb579 ], [ 789, %sw.bb578 ], [ 346, %sw.bb577 ], [ 345, %sw.bb576 ], [ 344, %sw.bb575 ], [ 343, %sw.bb574 ], [ 342, %sw.bb573 ], [ 341, %sw.bb572 ], [ 340, %sw.bb571 ], [ 393, %sw.bb570 ], [ 71, %sw.bb563 ], [ 70, %sw.bb562 ], [ 69, %sw.bb561 ], [ 68, %sw.bb560 ], [ 67, %sw.bb559 ], [ 66, %sw.bb558 ], [ 65, %sw.bb557 ], [ 64, %sw.bb556 ], [ 37, %sw.bb555 ], [ 36, %sw.bb554 ], [ 34, %sw.bb553 ], [ 33, %sw.bb552 ], [ 32, %sw.bb551 ], [ 31, %sw.bb550 ], [ 30, %sw.bb549 ], [ 28, %sw.bb548 ], [ %.274, %sw.bb564 ] %shr608 = lshr i64 %0, 25 %and609 = and i64 %shr608, 31 %switch.tableidx = add nsw i64 %and609, -17 @@ -6408,7 +6387,7 @@ sw.bb632: ; preds = %sw.bb618 sw.bb633: ; preds = %sw.bb618 %52 = and i64 %0, 32505856 %cond16 = icmp eq i64 %52, 0 - %.276 = select i1 %cond16, i16 355, i16 394 + %.275 = select i1 %cond16, i16 355, i16 394 br label %sw.epilog1655 sw.bb639: ; preds = %sw.bb618 @@ -6581,10 +6560,10 @@ sw.bb719: ; preds = %sw.bb675 sw.bb727: ; preds = %sw.bb675 %shr728 = lshr i64 %0, 12 %and729 = and i64 %shr728, 7 - %switch.selectcmp277 = icmp eq i64 %and729, 3 - %switch.select278 = select i1 %switch.selectcmp277, i16 812, i16 0 - %switch.selectcmp279 = icmp eq i64 %and729, 2 - %switch.select280 = select i1 %switch.selectcmp279, i16 811, i16 %switch.select278 + %switch.selectcmp276 = icmp eq i64 %and729, 3 + %switch.select277 = select i1 %switch.selectcmp276, i16 812, i16 0 + %switch.selectcmp278 = icmp eq i64 %and729, 2 + %switch.select279 = select i1 %switch.selectcmp278, i16 811, i16 %switch.select277 br label %sw.epilog1655 sw.bb733: ; preds = %sw.bb675 @@ -6622,19 +6601,19 @@ sw.bb765: ; preds = %sw.bb675 sw.bb773: ; preds = %sw.bb675 %67 = and i64 %0, 32505856 %cond15 = icmp eq i64 %67, 0 - %spec.select281 = select i1 %cond15, i16 146, i16 0 + %spec.select280 = select i1 %cond15, i16 146, i16 0 br label %sw.epilog1655 sw.bb778: ; preds = %sw.bb675 %68 = and i64 %0, 32505856 %cond14 = icmp eq i64 %68, 0 - %spec.select282 = select i1 %cond14, i16 178, i16 0 + %spec.select281 = select i1 %cond14, i16 178, i16 0 br label %sw.epilog1655 sw.bb783: ; preds = %sw.bb675 %69 = and i64 %0, 32505856 %cond13 = icmp eq i64 %69, 0 - %spec.select283 = select i1 %cond13, i16 212, i16 0 + %spec.select282 = select i1 %cond13, i16 212, i16 0 br label %sw.epilog1655 sw.bb788: ; preds = %sw.bb675 @@ -6652,10 +6631,10 @@ sw.bb797: ; preds = %sw.bb675 sw.bb806: ; preds = %sw.bb675 %shr807 = lshr i64 %0, 12 %and808 = and i64 %shr807, 7 - %switch.selectcmp284 = icmp eq i64 %and808, 5 - %switch.select285 = select i1 %switch.selectcmp284, i16 833, i16 0 - %switch.selectcmp286 = icmp eq i64 %and808, 4 - %switch.select287 = select i1 %switch.selectcmp286, i16 832, i16 %switch.select285 + %switch.selectcmp283 = icmp eq i64 %and808, 5 + %switch.select284 = select i1 %switch.selectcmp283, i16 833, i16 0 + %switch.selectcmp285 = icmp eq i64 %and808, 4 + %switch.select286 = select i1 %switch.selectcmp285, i16 832, i16 %switch.select284 br label %sw.epilog1655 sw.bb812: ; preds = %sw.bb675 @@ -6667,13 +6646,13 @@ sw.bb812: ; preds = %sw.bb675 sw.bb821: ; preds = %sw.bb675 %73 = and i64 %0, 28672 %cond12 = icmp eq i64 %73, 0 - %spec.select288 = select i1 %cond12, i16 823, i16 0 + %spec.select287 = select i1 %cond12, i16 823, i16 0 br label %sw.epilog1655 sw.bb826: ; preds = %sw.bb675 %74 = and i64 %0, 28672 %cond11 = icmp eq i64 %74, 0 - %spec.select289 = select i1 %cond11, i16 825, i16 0 + %spec.select288 = select i1 %cond11, i16 825, i16 0 br label %sw.epilog1655 sw.bb831: ; preds = %sw.bb675 @@ -6719,10 +6698,10 @@ sw.bb880: ; preds = %sw.bb675 %and884 = and i64 %shr883, 7 %or885 = or disjoint i64 %and882, %and884 %trunc243 = trunc i64 %or885 to i8 - %switch.selectcmp290 = icmp eq i8 %trunc243, 1 - %switch.select291 = select i1 %switch.selectcmp290, i16 155, i16 0 - %switch.selectcmp292 = icmp eq i8 %trunc243, 0 - %switch.select293 = select i1 %switch.selectcmp292, i16 154, i16 %switch.select291 + %switch.selectcmp289 = icmp eq i8 %trunc243, 1 + %switch.select290 = select i1 %switch.selectcmp289, i16 155, i16 0 + %switch.selectcmp291 = icmp eq i8 %trunc243, 0 + %switch.select292 = select i1 %switch.selectcmp291, i16 154, i16 %switch.select290 br label %sw.epilog1655 sw.bb889: ; preds = %sw.bb675 @@ -6754,7 +6733,7 @@ sw.bb899: ; preds = %sw.bb675 %and903 = and i64 %shr902, 7 %or904 = or disjoint i64 %and901, %and903 %cond10 = icmp eq i64 %or904, 0 - %spec.select294 = select i1 %cond10, i16 800, i16 0 + %spec.select293 = select i1 %cond10, i16 800, i16 0 br label %sw.epilog1655 sw.bb907: ; preds = %sw.bb675 @@ -6786,10 +6765,10 @@ sw.bb917: ; preds = %sw.bb675 %and921 = and i64 %shr920, 7 %or922 = or disjoint i64 %and919, %and921 %trunc240 = trunc i64 %or922 to i8 - %switch.selectcmp295 = icmp eq i8 %trunc240, 8 - %switch.select296 = select i1 %switch.selectcmp295, i16 801, i16 0 - %switch.selectcmp297 = icmp eq i8 %trunc240, 0 - %switch.select298 = select i1 %switch.selectcmp297, i16 156, i16 %switch.select296 + %switch.selectcmp294 = icmp eq i8 %trunc240, 8 + %switch.select295 = select i1 %switch.selectcmp294, i16 801, i16 0 + %switch.selectcmp296 = icmp eq i8 %trunc240, 0 + %switch.select297 = select i1 %switch.selectcmp296, i16 156, i16 %switch.select295 br label %sw.epilog1655 sw.bb926: ; preds = %sw.bb675 @@ -6799,10 +6778,10 @@ sw.bb926: ; preds = %sw.bb675 %and930 = and i64 %shr929, 7 %or931 = or disjoint i64 %and928, %and930 %trunc239 = trunc i64 %or931 to i8 - %switch.selectcmp299 = icmp eq i8 %trunc239, 8 - %switch.select300 = select i1 %switch.selectcmp299, i16 802, i16 0 - %switch.selectcmp301 = icmp eq i8 %trunc239, 0 - %switch.select302 = select i1 %switch.selectcmp301, i16 192, i16 %switch.select300 + %switch.selectcmp298 = icmp eq i8 %trunc239, 8 + %switch.select299 = select i1 %switch.selectcmp298, i16 802, i16 0 + %switch.selectcmp300 = icmp eq i8 %trunc239, 0 + %switch.select301 = select i1 %switch.selectcmp300, i16 192, i16 %switch.select299 br label %sw.epilog1655 sw.bb935: ; preds = %sw.bb675 @@ -6812,10 +6791,10 @@ sw.bb935: ; preds = %sw.bb675 %and939 = and i64 %shr938, 7 %or940 = or disjoint i64 %and937, %and939 %trunc238 = trunc i64 %or940 to i8 - %switch.selectcmp303 = icmp eq i8 %trunc238, 8 - %switch.select304 = select i1 %switch.selectcmp303, i16 804, i16 0 - %switch.selectcmp305 = icmp eq i8 %trunc238, 0 - %switch.select306 = select i1 %switch.selectcmp305, i16 799, i16 %switch.select304 + %switch.selectcmp302 = icmp eq i8 %trunc238, 8 + %switch.select303 = select i1 %switch.selectcmp302, i16 804, i16 0 + %switch.selectcmp304 = icmp eq i8 %trunc238, 0 + %switch.select305 = select i1 %switch.selectcmp304, i16 799, i16 %switch.select303 br label %sw.epilog1655 sw.bb944: ; preds = %sw.bb675 @@ -6825,16 +6804,16 @@ sw.bb944: ; preds = %sw.bb675 %and948 = and i64 %shr947, 7 %or949 = or disjoint i64 %and946, %and948 %trunc = trunc i64 %or949 to i8 - %switch.selectcmp307 = icmp eq i8 %trunc, 8 - %switch.select308 = select i1 %switch.selectcmp307, i16 803, i16 0 - %switch.selectcmp309 = icmp eq i8 %trunc, 0 - %switch.select310 = select i1 %switch.selectcmp309, i16 226, i16 %switch.select308 + %switch.selectcmp306 = icmp eq i8 %trunc, 8 + %switch.select307 = select i1 %switch.selectcmp306, i16 803, i16 0 + %switch.selectcmp308 = icmp eq i8 %trunc, 0 + %switch.select309 = select i1 %switch.selectcmp308, i16 226, i16 %switch.select307 br label %sw.epilog1655 sw.bb954: ; preds = %sw.bb202 %shr955 = lshr i64 %0, 12 %and956 = and i64 %shr955, 7 - switch i64 %and956, label %sw.bb954.unreachabledefault [ + switch i64 %and956, label %default.unreachable349 [ i64 0, label %sw.bb957 i64 1, label %sw.bb1024 i64 2, label %sw.bb1110 @@ -6932,7 +6911,7 @@ sw.bb971: ; preds = %sw.bb957 sw.bb972: ; preds = %sw.bb957 %81 = and i64 %0, 33554432 %cmp975 = icmp eq i64 %81, 0 - %spec.select311 = select i1 %cmp975, i16 480, i16 0 + %spec.select310 = select i1 %cmp975, i16 480, i16 0 br label %sw.epilog1655 sw.bb978: ; preds = %sw.bb957 @@ -6941,7 +6920,7 @@ sw.bb978: ; preds = %sw.bb957 sw.bb979: ; preds = %sw.bb957 %82 = and i64 %0, 33554432 %cmp982 = icmp eq i64 %82, 0 - %spec.select312 = select i1 %cmp982, i16 486, i16 0 + %spec.select311 = select i1 %cmp982, i16 486, i16 0 br label %sw.epilog1655 sw.bb985: ; preds = %sw.bb957 @@ -6961,7 +6940,7 @@ sw.bb988: ; preds = %sw.bb957 if.else993: ; preds = %sw.bb988 %84 = and i64 %0, 33554432 %cmp996 = icmp eq i64 %84, 0 - %spec.select313 = select i1 %cmp996, i16 582, i16 0 + %spec.select312 = select i1 %cmp996, i16 582, i16 0 br label %sw.epilog1655 sw.bb1000: ; preds = %sw.bb957 @@ -7114,8 +7093,8 @@ sw.bb1037: ; preds = %sw.bb1024 sw.bb1038: ; preds = %sw.bb1024 %85 = and i64 %0, 34570240 - %or.cond314.not = icmp eq i64 %85, 33554432 - %spec.select347 = select i1 %or.cond314.not, i16 743, i16 0 + %or.cond313.not = icmp eq i64 %85, 33554432 + %spec.select346 = select i1 %or.cond313.not, i16 743, i16 0 br label %sw.epilog1655 sw.bb1048: ; preds = %sw.bb1024 @@ -7336,7 +7315,7 @@ sw.bb1127: ; preds = %sw.bb1110 sw.bb1130: ; preds = %sw.bb1127 %87 = and i64 %0, 33554432 %tobool1133.not = icmp eq i64 %87, 0 - %spec.select315 = select i1 %tobool1133.not, i16 0, i16 741 + %spec.select314 = select i1 %tobool1133.not, i16 0, i16 741 br label %sw.epilog1655 sw.bb1136: ; preds = %sw.bb1127 @@ -7378,61 +7357,61 @@ sw.bb1161: ; preds = %sw.bb1155 sw.bb1162: ; preds = %sw.bb1155 %89 = and i64 %0, 32505856 %cmp1165 = icmp eq i64 %89, 0 - %spec.select316 = select i1 %cmp1165, i16 740, i16 0 + %spec.select315 = select i1 %cmp1165, i16 740, i16 0 br label %sw.epilog1655 sw.bb1169: ; preds = %sw.bb1110 %90 = and i64 %0, 33554432 %tobool1172.not = icmp eq i64 %90, 0 - %spec.select317 = select i1 %tobool1172.not, i16 0, i16 755 + %spec.select316 = select i1 %tobool1172.not, i16 0, i16 755 br label %sw.epilog1655 sw.bb1175: ; preds = %sw.bb1110 %91 = and i64 %0, 33554432 %tobool1178.not = icmp eq i64 %91, 0 - %spec.select318 = select i1 %tobool1178.not, i16 0, i16 728 + %spec.select317 = select i1 %tobool1178.not, i16 0, i16 728 br label %sw.epilog1655 sw.bb1181: ; preds = %sw.bb1110 %92 = and i64 %0, 33554432 %tobool1184.not = icmp eq i64 %92, 0 - %spec.select319 = select i1 %tobool1184.not, i16 0, i16 726 + %spec.select318 = select i1 %tobool1184.not, i16 0, i16 726 br label %sw.epilog1655 sw.bb1187: ; preds = %sw.bb1110 %93 = and i64 %0, 33554432 %tobool1190.not = icmp eq i64 %93, 0 - %spec.select320 = select i1 %tobool1190.not, i16 0, i16 730 + %spec.select319 = select i1 %tobool1190.not, i16 0, i16 730 br label %sw.epilog1655 sw.bb1193: ; preds = %sw.bb1110 %94 = and i64 %0, 33554432 %tobool1196.not = icmp eq i64 %94, 0 - %spec.select321 = select i1 %tobool1196.not, i16 0, i16 729 + %spec.select320 = select i1 %tobool1196.not, i16 0, i16 729 br label %sw.epilog1655 sw.bb1199: ; preds = %sw.bb1110 %95 = and i64 %0, 33554432 %tobool1202.not = icmp eq i64 %95, 0 - %spec.select322 = select i1 %tobool1202.not, i16 0, i16 732 + %spec.select321 = select i1 %tobool1202.not, i16 0, i16 732 br label %sw.epilog1655 sw.bb1205: ; preds = %sw.bb1110 %96 = and i64 %0, 33554432 %tobool1208.not = icmp eq i64 %96, 0 - %spec.select323 = select i1 %tobool1208.not, i16 0, i16 727 + %spec.select322 = select i1 %tobool1208.not, i16 0, i16 727 br label %sw.epilog1655 sw.bb1211: ; preds = %sw.bb1110 %97 = and i64 %0, 33554432 %tobool1214.not = icmp eq i64 %97, 0 - %spec.select324 = select i1 %tobool1214.not, i16 0, i16 731 + %spec.select323 = select i1 %tobool1214.not, i16 0, i16 731 br label %sw.epilog1655 sw.bb1217: ; preds = %sw.bb1110 %98 = and i64 %0, 33554432 %tobool1220.not = icmp eq i64 %98, 0 - %spec.select325 = select i1 %tobool1220.not, i16 0, i16 733 + %spec.select324 = select i1 %tobool1220.not, i16 0, i16 733 br label %sw.epilog1655 sw.bb1223: ; preds = %sw.bb1110 @@ -7578,7 +7557,7 @@ sw.bb1260: ; preds = %sw.bb1250 sw.bb1261: ; preds = %sw.bb1250 %99 = and i64 %0, 33554432 %cmp1264 = icmp eq i64 %99, 0 - %spec.select326 = select i1 %cmp1264, i16 482, i16 0 + %spec.select325 = select i1 %cmp1264, i16 482, i16 0 br label %sw.epilog1655 sw.bb1267: ; preds = %sw.bb1250 @@ -7595,7 +7574,7 @@ sw.bb1269: ; preds = %sw.bb1250 if.else1274: ; preds = %sw.bb1269 %101 = and i64 %0, 33554432 %cmp1277 = icmp eq i64 %101, 0 - %spec.select327 = select i1 %cmp1277, i16 584, i16 0 + %spec.select326 = select i1 %cmp1277, i16 584, i16 0 br label %sw.epilog1655 sw.bb1281: ; preds = %sw.bb1250 @@ -7753,7 +7732,7 @@ sw.bb1324: ; preds = %sw.bb1308 sw.bb1325: ; preds = %sw.bb1308 %103 = and i64 %0, 33554432 %cmp1328 = icmp eq i64 %103, 0 - %spec.select328 = select i1 %cmp1328, i16 481, i16 0 + %spec.select327 = select i1 %cmp1328, i16 481, i16 0 br label %sw.epilog1655 sw.bb1331: ; preds = %sw.bb1308 @@ -7762,7 +7741,7 @@ sw.bb1331: ; preds = %sw.bb1308 sw.bb1332: ; preds = %sw.bb1308 %104 = and i64 %0, 33554432 %cmp1335 = icmp eq i64 %104, 0 - %spec.select329 = select i1 %cmp1335, i16 487, i16 0 + %spec.select328 = select i1 %cmp1335, i16 487, i16 0 br label %sw.epilog1655 sw.bb1338: ; preds = %sw.bb1308 @@ -7782,7 +7761,7 @@ sw.bb1341: ; preds = %sw.bb1308 if.else1346: ; preds = %sw.bb1341 %106 = and i64 %0, 33554432 %cmp1349 = icmp eq i64 %106, 0 - %spec.select330 = select i1 %cmp1349, i16 583, i16 0 + %spec.select329 = select i1 %cmp1349, i16 583, i16 0 br label %sw.epilog1655 sw.bb1353: ; preds = %sw.bb1308 @@ -7928,8 +7907,8 @@ sw.bb1388: ; preds = %sw.bb1377 sw.bb1389: ; preds = %sw.bb1377 %107 = and i64 %0, 66060288 - %or.cond331.not = icmp eq i64 %107, 33554432 - %spec.select348 = select i1 %or.cond331.not, i16 744, i16 0 + %or.cond330.not = icmp eq i64 %107, 33554432 + %spec.select347 = select i1 %or.cond330.not, i16 744, i16 0 br label %sw.epilog1655 sw.bb1399: ; preds = %sw.bb1377 @@ -7940,7 +7919,7 @@ sw.bb1399: ; preds = %sw.bb1377 if.else1404: ; preds = %sw.bb1399 %109 = and i64 %0, 66060288 %cmp1407 = icmp eq i64 %109, 33554432 - %spec.select332 = select i1 %cmp1407, i16 688, i16 0 + %spec.select331 = select i1 %cmp1407, i16 688, i16 0 br label %sw.epilog1655 sw.bb1411: ; preds = %sw.bb1377 @@ -8095,8 +8074,8 @@ sw.bb1450: ; preds = %sw.bb1440 sw.bb1451: ; preds = %sw.bb1440 %110 = and i64 %0, 66060288 - %or.cond333.not = icmp eq i64 %110, 33554432 - %spec.select349 = select i1 %or.cond333.not, i16 742, i16 0 + %or.cond332.not = icmp eq i64 %110, 33554432 + %spec.select348 = select i1 %or.cond332.not, i16 742, i16 0 br label %sw.epilog1655 sw.bb1461: ; preds = %sw.bb1440 @@ -8193,12 +8172,9 @@ if.else1494: ; preds = %sw.bb1489 if.else1499: ; preds = %if.else1494 %113 = and i64 %0, 1040187392 %cmp1502 = icmp eq i64 %113, 0 - %spec.select334 = select i1 %cmp1502, i16 768, i16 0 + %spec.select333 = select i1 %cmp1502, i16 768, i16 0 br label %sw.epilog1655 -sw.bb954.unreachabledefault: ; preds = %sw.bb954 - unreachable - sw.bb1508: ; preds = %sw.bb202 %shr1509 = lshr i64 %0, 12 %and1510 = and i64 %shr1509, 7 @@ -8214,22 +8190,22 @@ sw.bb1511: ; preds = %sw.bb1508 sw.bb1512: ; preds = %sw.bb1508 %114 = and i64 %0, 4227858432 %cond6 = icmp eq i64 %114, 0 - %spec.select335 = select i1 %cond6, i16 56, i16 0 + %spec.select334 = select i1 %cond6, i16 56, i16 0 br label %sw.epilog1655 sw.bb1517: ; preds = %sw.bb1508 %shr1518 = lshr i64 %0, 26 %and1519 = and i64 %shr1518, 63 - %switch.selectcmp336 = icmp eq i64 %and1519, 16 - %switch.select337 = select i1 %switch.selectcmp336, i16 58, i16 0 - %switch.selectcmp338 = icmp eq i64 %and1519, 0 - %switch.select339 = select i1 %switch.selectcmp338, i16 57, i16 %switch.select337 + %switch.selectcmp335 = icmp eq i64 %and1519, 16 + %switch.select336 = select i1 %switch.selectcmp335, i16 58, i16 0 + %switch.selectcmp337 = icmp eq i64 %and1519, 0 + %switch.select338 = select i1 %switch.selectcmp337, i16 57, i16 %switch.select336 br label %sw.epilog1655 sw.bb1534: ; preds = %sw.bb202 %115 = and i64 %0, 28672 %cond5 = icmp eq i64 %115, 0 - %spec.select340 = select i1 %cond5, i16 4, i16 0 + %spec.select339 = select i1 %cond5, i16 4, i16 0 br label %sw.epilog1655 sw.bb1539: ; preds = %sw.bb202 @@ -8238,7 +8214,7 @@ sw.bb1539: ; preds = %sw.bb202 sw.bb1540: ; preds = %sw.bb202 %shr1541 = lshr i64 %0, 12 %and1542 = and i64 %shr1541, 7 - switch i64 %and1542, label %sw.bb1540.unreachabledefault [ + switch i64 %and1542, label %default.unreachable349 [ i64 0, label %sw.bb1543 i64 1, label %sw.bb1588 i64 2, label %sw.bb1589 @@ -8293,7 +8269,7 @@ sw.bb1556: ; preds = %sw.bb1543 sw.bb1559: ; preds = %sw.bb1556 %116 = and i64 %0, 1015808 %cond4 = icmp eq i64 %116, 0 - %spec.select341 = select i1 %cond4, i16 118, i16 0 + %spec.select340 = select i1 %cond4, i16 118, i16 0 br label %sw.epilog1655 sw.bb1564: ; preds = %sw.bb1556 @@ -8302,7 +8278,7 @@ sw.bb1564: ; preds = %sw.bb1556 sw.bb1565: ; preds = %sw.bb1556 %117 = and i64 %0, 1015808 %cond3 = icmp eq i64 %117, 0 - %spec.select342 = select i1 %cond3, i16 124, i16 0 + %spec.select341 = select i1 %cond3, i16 124, i16 0 br label %sw.epilog1655 sw.bb1571: ; preds = %sw.bb1543 @@ -8311,19 +8287,19 @@ sw.bb1571: ; preds = %sw.bb1543 sw.bb1572: ; preds = %sw.bb1543 %118 = and i64 %0, 33521664 %cond2 = icmp eq i64 %118, 2097152 - %spec.select343 = select i1 %cond2, i16 119, i16 0 + %spec.select342 = select i1 %cond2, i16 119, i16 0 br label %sw.epilog1655 sw.bb1577: ; preds = %sw.bb1543 %119 = and i64 %0, 33521664 %cond1 = icmp eq i64 %119, 2097152 - %spec.select344 = select i1 %cond1, i16 120, i16 0 + %spec.select343 = select i1 %cond1, i16 120, i16 0 br label %sw.epilog1655 sw.bb1582: ; preds = %sw.bb1543 %120 = and i64 %0, 33521664 %cond = icmp eq i64 %120, 18874368 - %spec.select345 = select i1 %cond, i16 121, i16 0 + %spec.select344 = select i1 %cond, i16 121, i16 0 br label %sw.epilog1655 sw.bb1588: ; preds = %sw.bb1540 @@ -8344,13 +8320,10 @@ sw.bb1592: ; preds = %sw.bb1540 sw.bb1593: ; preds = %sw.bb1540 br label %sw.epilog1655 -sw.bb1540.unreachabledefault: ; preds = %sw.bb1540 - unreachable - sw.bb1595: ; preds = %sw.bb202 %121 = and i64 %0, 33583104 - %or.cond346 = icmp eq i64 %121, 33562624 - br i1 %or.cond346, label %if.then1603, label %sw.epilog1655 + %or.cond345 = icmp eq i64 %121, 33562624 + br i1 %or.cond345, label %if.then1603, label %sw.epilog1655 if.then1603: ; preds = %sw.bb1595 %shr1604 = lshr i64 %0, 26 @@ -8505,7 +8478,7 @@ sw.bb1651: ; preds = %sw.bb1637 sw.bb1652: ; preds = %sw.bb1637 br label %sw.epilog1655 -entry.unreachabledefault: ; preds = %entry +default.unreachable349: ; preds = %sw.bb1540, %sw.bb954, %sw.bb426, %sw.bb313, %sw.bb217, %sw.bb96, %sw.bb68, %sw.bb62, %sw.bb42, %sw.bb, %entry unreachable switch.lookup: ; preds = %sw.bb80 @@ -8678,7 +8651,7 @@ switch.lookup476: ; preds = %sw.bb202 br label %sw.epilog1655 sw.epilog1655: ; preds = %switch.lookup476, %switch.lookup473, %sw.bb1290, %switch.lookup469, %sw.bb1139, %switch.lookup466, %sw.bb1048, %switch.lookup462, %sw.bb872, %switch.lookup458, %sw.bb864, %switch.lookup454, %sw.bb856, %switch.lookup450, %sw.bb848, %switch.lookup447, %sw.bb839, %switch.lookup443, %sw.bb831, %switch.lookup440, %sw.bb812, %switch.lookup437, %sw.bb797, %switch.lookup434, %sw.bb788, %switch.lookup431, %sw.bb765, %switch.lookup427, %sw.bb758, %switch.lookup424, %sw.bb750, %switch.lookup420, %sw.bb741, %switch.lookup416, %sw.bb733, %switch.lookup412, %sw.bb719, %switch.lookup408, %sw.bb711, %switch.lookup405, %sw.bb704, %switch.lookup402, %sw.bb697, %switch.lookup399, %sw.bb690, %sw.bb668, %sw.bb661, %sw.bb654, %sw.bb647, %switch.lookup380, %switch.hole_check, %sw.epilog607, %switch.lookup373, %sw.bb417, %switch.lookup370, %sw.bb401, %switch.lookup367, %sw.bb354, %switch.lookup364, %sw.bb326, %switch.lookup363, %sw.bb306, %sw.bb205, %switch.lookup, %sw.bb80, %sw.bb1451, %sw.bb1389, %sw.bb1038, %sw.bb1582, %sw.bb1577, %sw.bb1572, %sw.bb1565, %sw.bb1559, %sw.bb1534, %sw.bb1512, %if.else1499, %if.else1404, %if.else1346, %sw.bb1332, %sw.bb1325, %if.else1274, %sw.bb1261, %sw.bb1217, %sw.bb1211, %sw.bb1205, %sw.bb1199, %sw.bb1193, %sw.bb1187, %sw.bb1181, %sw.bb1175, %sw.bb1169, %sw.bb1162, %sw.bb1130, %if.else993, %sw.bb979, %sw.bb972, %sw.bb899, %sw.bb826, %sw.bb821, %sw.bb783, %sw.bb778, %sw.bb773, %sw.bb512, %sw.bb507, %sw.bb502, %sw.bb480, %sw.bb468, %sw.bb456, %sw.bb371, %sw.default345, %sw.bb321, %sw.bb160, %sw.bb154, %sw.bb148, %sw.bb142, %sw.bb24, %sw.bb1517, %if.else1494, %sw.bb1489, %sw.bb1399, %sw.bb1341, %sw.bb1269, %sw.bb988, %sw.bb944, %sw.bb935, %sw.bb926, %sw.bb917, %sw.bb880, %sw.bb806, %sw.bb727, %sw.bb633, %sw.bb426, %sw.bb341, %sw.bb313, %sw.bb217, %sw.bb196, %if.end186, %if.end174, %sw.bb132, %sw.bb120, %sw.bb123, %sw.bb114, %sw.bb106, %sw.bb100, %sw.bb96, %sw.bb68, %sw.bb62, %sw.bb56, %sw.bb42, %sw.bb50, %sw.bb45, %sw.bb36, %sw.bb30, %sw.bb16, %sw.bb7, %sw.bb5, %sw.bb, %sw.bb202, %sw.bb391, %sw.bb617, %sw.bb1539, %sw.epilog292, %sw.bb301, %sw.bb302, %sw.bb303, %sw.bb299, %sw.bb298, %sw.bb295, %sw.epilog272, %sw.bb281, %sw.bb282, %sw.bb283, %sw.bb279, %sw.bb278, %sw.bb275, %sw.epilog252, %sw.bb261, %sw.bb262, %sw.bb263, %sw.bb259, %sw.bb258, %sw.bb255, %sw.epilog227, %sw.bb237, %sw.bb238, %sw.bb239, %sw.bb235, %sw.bb234, %sw.bb233, %sw.bb230, %sw.bb244, %sw.bb243, %sw.bb242, %sw.bb367, %sw.bb370, %sw.bb376, %sw.bb377, %sw.bb378, %sw.bb379, %sw.bb385, %sw.bb384, %sw.bb383, %sw.bb380, %sw.bb317, %sw.bb320, %sw.bb340, %sw.bb352, %sw.bb353, %sw.bb389, %sw.bb388, %sw.bb366, %sw.bb365, %sw.bb364, %sw.bb409, %sw.bb412, %sw.bb413, %sw.bb414, %sw.bb396, %sw.bb399, %sw.bb400, %sw.bb395, %sw.bb392, %sw.bb477, %sw.bb485, %sw.bb486, %sw.bb487, %sw.bb465, %sw.bb473, %sw.bb474, %sw.bb475, %sw.bb453, %sw.bb461, %sw.bb462, %sw.bb463, %sw.epilog436, %sw.bb445, %sw.bb446, %sw.bb447, %sw.bb443, %sw.bb442, %sw.bb439, %sw.bb452, %sw.bb451, %sw.bb450, %sw.bb540, %sw.bb539, %sw.bb538, %sw.bb537, %sw.bb536, %sw.bb535, %sw.bb534, %sw.bb533, %sw.bb532, %sw.bb531, %sw.bb530, %sw.bb529, %sw.bb528, %sw.bb527, %sw.bb526, %sw.bb525, %sw.bb524, %sw.bb523, %sw.bb522, %sw.bb521, %sw.bb520, %sw.bb519, %sw.bb518, %sw.bb517, %sw.bb501, %sw.bb500, %sw.bb499, %sw.bb498, %sw.bb497, %sw.bb496, %sw.bb490, %sw.bb645, %sw.bb644, %sw.bb643, %sw.bb642, %sw.bb641, %sw.bb640, %sw.bb639, %sw.bb632, %sw.bb631, %sw.bb630, %sw.bb629, %sw.bb628, %sw.bb627, %sw.bb626, %sw.bb625, %sw.bb624, %sw.bb618, %sw.bb907, %sw.bb913, %sw.bb914, %sw.bb915, %sw.bb889, %sw.bb895, %sw.bb896, %sw.bb897, %sw.bb689, %sw.bb688, %sw.bb687, %sw.bb686, %sw.bb685, %sw.bb684, %sw.bb683, %sw.bb682, %sw.bb681, %sw.bb680, %sw.bb679, %sw.bb678, %sw.bb675, %sw.bb1440, %sw.bb1443, %sw.bb1444, %sw.bb1445, %sw.bb1446, %sw.bb1447, %sw.bb1448, %sw.bb1449, %sw.bb1450, %sw.bb1461, %sw.bb1462, %sw.bb1463, %sw.bb1464, %sw.bb1465, %sw.bb1466, %sw.bb1467, %sw.bb1468, %sw.bb1469, %sw.bb1470, %sw.bb1471, %sw.bb1472, %sw.bb1473, %sw.bb1474, %sw.bb1475, %sw.bb1476, %sw.bb1477, %sw.bb1478, %sw.bb1479, %sw.bb1480, %sw.bb1481, %sw.bb1482, %sw.bb1483, %sw.bb1484, %sw.bb1485, %sw.bb1486, %sw.bb1487, %sw.bb1377, %sw.bb1380, %sw.bb1381, %sw.bb1382, %sw.bb1383, %sw.bb1384, %sw.bb1385, %sw.bb1386, %sw.bb1387, %sw.bb1388, %sw.bb1411, %sw.bb1412, %sw.bb1413, %sw.bb1414, %sw.bb1415, %sw.bb1416, %sw.bb1417, %sw.bb1418, %sw.bb1419, %sw.bb1420, %sw.bb1421, %sw.bb1422, %sw.bb1423, %sw.bb1424, %sw.bb1425, %sw.bb1426, %sw.bb1427, %sw.bb1428, %sw.bb1429, %sw.bb1430, %sw.bb1431, %sw.bb1432, %sw.bb1433, %sw.bb1434, %sw.bb1435, %sw.bb1436, %sw.bb1437, %sw.bb1438, %sw.bb1308, %sw.bb1311, %sw.bb1312, %sw.bb1313, %sw.bb1314, %sw.bb1315, %sw.bb1316, %sw.bb1317, %sw.bb1318, %sw.bb1319, %sw.bb1320, %sw.bb1321, %sw.bb1322, %sw.bb1323, %sw.bb1324, %sw.bb1331, %sw.bb1338, %sw.bb1339, %sw.bb1340, %sw.bb1353, %sw.bb1354, %sw.bb1355, %sw.bb1356, %sw.bb1357, %sw.bb1358, %sw.bb1359, %sw.bb1360, %sw.bb1361, %sw.bb1362, %sw.bb1363, %sw.bb1364, %sw.bb1365, %sw.bb1366, %sw.bb1367, %sw.bb1368, %sw.bb1369, %sw.bb1370, %sw.bb1371, %sw.bb1372, %sw.bb1373, %sw.bb1374, %sw.bb1375, %sw.bb1250, %sw.bb1253, %sw.bb1254, %sw.bb1255, %sw.bb1256, %sw.bb1257, %sw.bb1258, %sw.bb1259, %sw.bb1260, %sw.bb1267, %sw.bb1268, %sw.bb1281, %sw.bb1282, %sw.bb1283, %sw.bb1284, %sw.bb1285, %sw.bb1286, %sw.bb1287, %sw.bb1288, %sw.bb1289, %sw.bb1298, %sw.bb1299, %sw.bb1300, %sw.bb1301, %sw.bb1302, %sw.bb1303, %sw.bb1304, %sw.bb1305, %sw.bb1306, %sw.bb1110, %sw.bb1113, %sw.bb1114, %sw.bb1115, %sw.bb1116, %sw.bb1117, %sw.bb1118, %sw.bb1119, %sw.bb1120, %sw.bb1121, %sw.bb1122, %sw.bb1123, %sw.bb1124, %sw.bb1125, %sw.bb1126, %sw.bb1223, %sw.bb1224, %sw.bb1225, %sw.bb1226, %sw.bb1227, %sw.bb1228, %sw.bb1229, %sw.bb1230, %sw.bb1231, %sw.bb1232, %sw.bb1233, %sw.bb1234, %sw.bb1235, %sw.bb1236, %sw.bb1237, %sw.bb1238, %sw.bb1239, %sw.bb1240, %sw.bb1241, %sw.bb1242, %sw.bb1243, %sw.bb1244, %sw.bb1245, %sw.bb1246, %sw.bb1247, %sw.bb1248, %sw.bb1137, %sw.bb1136, %sw.bb1127, %sw.bb1161, %sw.bb1160, %sw.bb1159, %sw.bb1158, %sw.bb1155, %sw.bb1024, %sw.bb1027, %sw.bb1028, %sw.bb1029, %sw.bb1030, %sw.bb1031, %sw.bb1032, %sw.bb1033, %sw.bb1034, %sw.bb1035, %sw.bb1036, %sw.bb1037, %sw.bb1083, %sw.bb1084, %sw.bb1085, %sw.bb1086, %sw.bb1087, %sw.bb1088, %sw.bb1089, %sw.bb1090, %sw.bb1091, %sw.bb1092, %sw.bb1093, %sw.bb1094, %sw.bb1095, %sw.bb1096, %sw.bb1097, %sw.bb1098, %sw.bb1099, %sw.bb1100, %sw.bb1101, %sw.bb1102, %sw.bb1103, %sw.bb1104, %sw.bb1105, %sw.bb1106, %sw.bb1107, %sw.bb1108, %sw.bb1081, %sw.bb1080, %sw.bb1079, %sw.bb1078, %sw.bb1075, %sw.bb957, %sw.bb960, %sw.bb961, %sw.bb962, %sw.bb963, %sw.bb964, %sw.bb965, %sw.bb966, %sw.bb967, %sw.bb968, %sw.bb969, %sw.bb970, %sw.bb971, %sw.bb978, %sw.bb985, %sw.bb986, %sw.bb987, %sw.bb1000, %sw.bb1001, %sw.bb1002, %sw.bb1003, %sw.bb1004, %sw.bb1005, %sw.bb1006, %sw.bb1007, %sw.bb1008, %sw.bb1009, %sw.bb1010, %sw.bb1011, %sw.bb1012, %sw.bb1013, %sw.bb1014, %sw.bb1015, %sw.bb1016, %sw.bb1017, %sw.bb1018, %sw.bb1019, %sw.bb1020, %sw.bb1021, %sw.bb1022, %sw.bb1511, %sw.bb1508, %sw.bb1543, %sw.bb1571, %sw.bb1554, %sw.bb1553, %sw.bb1552, %sw.bb1549, %sw.bb1564, %sw.bb1556, %sw.bb1540, %sw.bb1593, %sw.bb1592, %sw.bb1591, %sw.bb1590, %sw.bb1589, %sw.bb1588, %if.then1603, %sw.bb1606, %sw.bb1607, %sw.bb1608, %sw.bb1629, %sw.bb1630, %sw.bb1631, %sw.bb1632, %sw.bb1633, %sw.bb1634, %sw.bb1617, %sw.bb1616, %sw.bb1615, %sw.bb1614, %sw.bb1613, %sw.bb1612, %sw.bb1609, %sw.bb1627, %sw.bb1626, %sw.bb1625, %sw.bb1624, %sw.bb1623, %sw.bb1622, %sw.bb1619, %sw.bb1595, %sw.bb1652, %sw.bb1651, %sw.bb1650, %sw.bb1649, %sw.bb1648, %sw.bb1647, %sw.bb1646, %sw.bb1645, %sw.bb1644, %sw.bb1643, %sw.bb1637, %sw.bb105, %sw.bb195, %if.then139, %sw.bb181, %sw.bb170, %if.else167, %sw.bb92, %sw.bb93, %sw.bb94, %sw.bb74, %sw.bb75, %sw.bb76, %sw.bb77, %sw.bb78, %sw.bb79, %sw.bb67, %sw.bb66, %sw.bb6, %sw.bb35, %sw.bb23, %sw.bb15, %sw.bb12 - %op.6 = phi i16 [ 0, %sw.bb202 ], [ 0, %sw.bb1637 ], [ 63, %sw.bb1652 ], [ 60, %sw.bb1651 ], [ 81, %sw.bb1650 ], [ 80, %sw.bb1649 ], [ 79, %sw.bb1648 ], [ 78, %sw.bb1647 ], [ 77, %sw.bb1646 ], [ 62, %sw.bb1645 ], [ 61, %sw.bb1644 ], [ 59, %sw.bb1643 ], [ 0, %if.then1603 ], [ 865, %sw.bb1634 ], [ 864, %sw.bb1633 ], [ 866, %sw.bb1632 ], [ 856, %sw.bb1631 ], [ 867, %sw.bb1630 ], [ 843, %sw.bb1629 ], [ 0, %sw.bb1619 ], [ 871, %sw.bb1627 ], [ 844, %sw.bb1626 ], [ 839, %sw.bb1625 ], [ 841, %sw.bb1624 ], [ 835, %sw.bb1623 ], [ 837, %sw.bb1622 ], [ 0, %sw.bb1609 ], [ 857, %sw.bb1617 ], [ 870, %sw.bb1616 ], [ 838, %sw.bb1615 ], [ 840, %sw.bb1614 ], [ 834, %sw.bb1613 ], [ 836, %sw.bb1612 ], [ 842, %sw.bb1608 ], [ 869, %sw.bb1607 ], [ 868, %sw.bb1606 ], [ 0, %sw.bb1595 ], [ 0, %sw.bb1540 ], [ 130, %sw.bb1593 ], [ 129, %sw.bb1592 ], [ 128, %sw.bb1591 ], [ 127, %sw.bb1590 ], [ 126, %sw.bb1589 ], [ 125, %sw.bb1588 ], [ 0, %sw.bb1543 ], [ 123, %sw.bb1571 ], [ 0, %sw.bb1556 ], [ 122, %sw.bb1564 ], [ 0, %sw.bb1549 ], [ 117, %sw.bb1554 ], [ 116, %sw.bb1553 ], [ 115, %sw.bb1552 ], [ 3, %sw.bb1539 ], [ 0, %sw.bb1508 ], [ 55, %sw.bb1511 ], [ 0, %sw.bb1440 ], [ 577, %sw.bb1487 ], [ 578, %sw.bb1486 ], [ 575, %sw.bb1485 ], [ 573, %sw.bb1484 ], [ 563, %sw.bb1483 ], [ 561, %sw.bb1482 ], [ 559, %sw.bb1481 ], [ 479, %sw.bb1480 ], [ 477, %sw.bb1479 ], [ 475, %sw.bb1478 ], [ 473, %sw.bb1477 ], [ 471, %sw.bb1476 ], [ 469, %sw.bb1475 ], [ 467, %sw.bb1474 ], [ 465, %sw.bb1473 ], [ 567, %sw.bb1472 ], [ 565, %sw.bb1471 ], [ 571, %sw.bb1470 ], [ 569, %sw.bb1469 ], [ 545, %sw.bb1468 ], [ 549, %sw.bb1467 ], [ 543, %sw.bb1466 ], [ 547, %sw.bb1465 ], [ 557, %sw.bb1464 ], [ 555, %sw.bb1463 ], [ 553, %sw.bb1462 ], [ 551, %sw.bb1461 ], [ 750, %sw.bb1450 ], [ 747, %sw.bb1449 ], [ 852, %sw.bb1448 ], [ 850, %sw.bb1447 ], [ 600, %sw.bb1446 ], [ 602, %sw.bb1445 ], [ 596, %sw.bb1444 ], [ 598, %sw.bb1443 ], [ 0, %sw.bb1377 ], [ 660, %sw.bb1438 ], [ 658, %sw.bb1437 ], [ 656, %sw.bb1436 ], [ 654, %sw.bb1435 ], [ 796, %sw.bb1434 ], [ 636, %sw.bb1433 ], [ 629, %sw.bb1432 ], [ 625, %sw.bb1431 ], [ 627, %sw.bb1430 ], [ 623, %sw.bb1429 ], [ 644, %sw.bb1428 ], [ 642, %sw.bb1427 ], [ 640, %sw.bb1426 ], [ 638, %sw.bb1425 ], [ 652, %sw.bb1424 ], [ 650, %sw.bb1423 ], [ 648, %sw.bb1422 ], [ 646, %sw.bb1421 ], [ 621, %sw.bb1420 ], [ 631, %sw.bb1419 ], [ 634, %sw.bb1418 ], [ 633, %sw.bb1417 ], [ 685, %sw.bb1416 ], [ 684, %sw.bb1415 ], [ 679, %sw.bb1414 ], [ 681, %sw.bb1413 ], [ 683, %sw.bb1412 ], [ 677, %sw.bb1411 ], [ 675, %sw.bb1388 ], [ 674, %sw.bb1387 ], [ 673, %sw.bb1386 ], [ 671, %sw.bb1385 ], [ 669, %sw.bb1384 ], [ 667, %sw.bb1383 ], [ 665, %sw.bb1382 ], [ 620, %sw.bb1381 ], [ 618, %sw.bb1380 ], [ 0, %sw.bb1308 ], [ 873, %sw.bb1375 ], [ 615, %sw.bb1374 ], [ 612, %sw.bb1373 ], [ 512, %sw.bb1372 ], [ 509, %sw.bb1371 ], [ 609, %sw.bb1370 ], [ 606, %sw.bb1369 ], [ 506, %sw.bb1368 ], [ 503, %sw.bb1367 ], [ 604, %sw.bb1366 ], [ 500, %sw.bb1365 ], [ 594, %sw.bb1364 ], [ 592, %sw.bb1363 ], [ 589, %sw.bb1362 ], [ 586, %sw.bb1361 ], [ 532, %sw.bb1360 ], [ 530, %sw.bb1359 ], [ 528, %sw.bb1358 ], [ 525, %sw.bb1357 ], [ 523, %sw.bb1356 ], [ 521, %sw.bb1355 ], [ 518, %sw.bb1354 ], [ 515, %sw.bb1353 ], [ 860, %sw.bb1340 ], [ 862, %sw.bb1339 ], [ 489, %sw.bb1338 ], [ 484, %sw.bb1331 ], [ 748, %sw.bb1324 ], [ 745, %sw.bb1323 ], [ 753, %sw.bb1322 ], [ 497, %sw.bb1321 ], [ 494, %sw.bb1320 ], [ 491, %sw.bb1319 ], [ 541, %sw.bb1318 ], [ 539, %sw.bb1317 ], [ 537, %sw.bb1316 ], [ 535, %sw.bb1315 ], [ 462, %sw.bb1314 ], [ 461, %sw.bb1313 ], [ 846, %sw.bb1312 ], [ 458, %sw.bb1311 ], [ 0, %sw.bb1250 ], [ 874, %sw.bb1306 ], [ 616, %sw.bb1305 ], [ 613, %sw.bb1304 ], [ 513, %sw.bb1303 ], [ 510, %sw.bb1302 ], [ 610, %sw.bb1301 ], [ 607, %sw.bb1300 ], [ 507, %sw.bb1299 ], [ 504, %sw.bb1298 ], [ 0, %sw.bb1290 ], [ 501, %sw.bb1289 ], [ 590, %sw.bb1288 ], [ 587, %sw.bb1287 ], [ 533, %sw.bb1286 ], [ 531, %sw.bb1285 ], [ 529, %sw.bb1284 ], [ 526, %sw.bb1283 ], [ 519, %sw.bb1282 ], [ 516, %sw.bb1281 ], [ 863, %sw.bb1268 ], [ 485, %sw.bb1267 ], [ 749, %sw.bb1260 ], [ 746, %sw.bb1259 ], [ 754, %sw.bb1258 ], [ 498, %sw.bb1257 ], [ 495, %sw.bb1256 ], [ 492, %sw.bb1255 ], [ 463, %sw.bb1254 ], [ 459, %sw.bb1253 ], [ 0, %sw.bb1110 ], [ 576, %sw.bb1248 ], [ 574, %sw.bb1247 ], [ 572, %sw.bb1246 ], [ 562, %sw.bb1245 ], [ 560, %sw.bb1244 ], [ 558, %sw.bb1243 ], [ 478, %sw.bb1242 ], [ 476, %sw.bb1241 ], [ 474, %sw.bb1240 ], [ 472, %sw.bb1239 ], [ 470, %sw.bb1238 ], [ 468, %sw.bb1237 ], [ 466, %sw.bb1236 ], [ 464, %sw.bb1235 ], [ 566, %sw.bb1234 ], [ 564, %sw.bb1233 ], [ 570, %sw.bb1232 ], [ 568, %sw.bb1231 ], [ 544, %sw.bb1230 ], [ 548, %sw.bb1229 ], [ 542, %sw.bb1228 ], [ 546, %sw.bb1227 ], [ 556, %sw.bb1226 ], [ 554, %sw.bb1225 ], [ 552, %sw.bb1224 ], [ 550, %sw.bb1223 ], [ 0, %sw.bb1155 ], [ 739, %sw.bb1161 ], [ 737, %sw.bb1160 ], [ 738, %sw.bb1159 ], [ 736, %sw.bb1158 ], [ 0, %sw.bb1139 ], [ 0, %sw.bb1127 ], [ 735, %sw.bb1137 ], [ 734, %sw.bb1136 ], [ 851, %sw.bb1126 ], [ 849, %sw.bb1125 ], [ 599, %sw.bb1124 ], [ 601, %sw.bb1123 ], [ 595, %sw.bb1122 ], [ 597, %sw.bb1121 ], [ 717, %sw.bb1120 ], [ 716, %sw.bb1119 ], [ 715, %sw.bb1118 ], [ 714, %sw.bb1117 ], [ 713, %sw.bb1116 ], [ 712, %sw.bb1115 ], [ 711, %sw.bb1114 ], [ 710, %sw.bb1113 ], [ 0, %sw.bb1024 ], [ 659, %sw.bb1108 ], [ 657, %sw.bb1107 ], [ 655, %sw.bb1106 ], [ 653, %sw.bb1105 ], [ 795, %sw.bb1104 ], [ 635, %sw.bb1103 ], [ 628, %sw.bb1102 ], [ 624, %sw.bb1101 ], [ 725, %sw.bb1100 ], [ 626, %sw.bb1099 ], [ 724, %sw.bb1098 ], [ 622, %sw.bb1097 ], [ 643, %sw.bb1096 ], [ 641, %sw.bb1095 ], [ 639, %sw.bb1094 ], [ 637, %sw.bb1093 ], [ 651, %sw.bb1092 ], [ 649, %sw.bb1091 ], [ 647, %sw.bb1090 ], [ 645, %sw.bb1089 ], [ 630, %sw.bb1088 ], [ 632, %sw.bb1087 ], [ 678, %sw.bb1086 ], [ 680, %sw.bb1085 ], [ 682, %sw.bb1084 ], [ 676, %sw.bb1083 ], [ 0, %sw.bb1075 ], [ 686, %sw.bb1081 ], [ 663, %sw.bb1080 ], [ 662, %sw.bb1079 ], [ 661, %sw.bb1078 ], [ 0, %sw.bb1048 ], [ 672, %sw.bb1037 ], [ 670, %sw.bb1036 ], [ 668, %sw.bb1035 ], [ 723, %sw.bb1034 ], [ 666, %sw.bb1033 ], [ 722, %sw.bb1032 ], [ 664, %sw.bb1031 ], [ 721, %sw.bb1030 ], [ 619, %sw.bb1029 ], [ 720, %sw.bb1028 ], [ 617, %sw.bb1027 ], [ 0, %sw.bb957 ], [ 872, %sw.bb1022 ], [ 719, %sw.bb1021 ], [ 718, %sw.bb1020 ], [ 614, %sw.bb1019 ], [ 611, %sw.bb1018 ], [ 511, %sw.bb1017 ], [ 508, %sw.bb1016 ], [ 608, %sw.bb1015 ], [ 605, %sw.bb1014 ], [ 505, %sw.bb1013 ], [ 502, %sw.bb1012 ], [ 603, %sw.bb1011 ], [ 499, %sw.bb1010 ], [ 593, %sw.bb1009 ], [ 591, %sw.bb1008 ], [ 588, %sw.bb1007 ], [ 585, %sw.bb1006 ], [ 527, %sw.bb1005 ], [ 524, %sw.bb1004 ], [ 522, %sw.bb1003 ], [ 520, %sw.bb1002 ], [ 517, %sw.bb1001 ], [ 514, %sw.bb1000 ], [ 859, %sw.bb987 ], [ 861, %sw.bb986 ], [ 488, %sw.bb985 ], [ 483, %sw.bb978 ], [ 752, %sw.bb971 ], [ 751, %sw.bb970 ], [ 496, %sw.bb969 ], [ 493, %sw.bb968 ], [ 490, %sw.bb967 ], [ 540, %sw.bb966 ], [ 538, %sw.bb965 ], [ 536, %sw.bb964 ], [ 534, %sw.bb963 ], [ 460, %sw.bb962 ], [ 845, %sw.bb961 ], [ 457, %sw.bb960 ], [ 0, %sw.bb675 ], [ 0, %sw.bb907 ], [ 824, %sw.bb915 ], [ 220, %sw.bb914 ], [ 225, %sw.bb913 ], [ 0, %sw.bb889 ], [ 822, %sw.bb897 ], [ 186, %sw.bb896 ], [ 189, %sw.bb895 ], [ 0, %sw.bb872 ], [ 0, %sw.bb864 ], [ 0, %sw.bb856 ], [ 0, %sw.bb848 ], [ 0, %sw.bb839 ], [ 0, %sw.bb831 ], [ 0, %sw.bb812 ], [ 0, %sw.bb797 ], [ 0, %sw.bb788 ], [ 0, %sw.bb765 ], [ 0, %sw.bb758 ], [ 0, %sw.bb750 ], [ 0, %sw.bb741 ], [ 0, %sw.bb733 ], [ 0, %sw.bb719 ], [ 0, %sw.bb711 ], [ 0, %sw.bb704 ], [ 0, %sw.bb697 ], [ 0, %sw.bb690 ], [ 202, %sw.bb689 ], [ 170, %sw.bb688 ], [ 140, %sw.bb687 ], [ 201, %sw.bb686 ], [ 169, %sw.bb685 ], [ 139, %sw.bb684 ], [ 200, %sw.bb683 ], [ 168, %sw.bb682 ], [ 138, %sw.bb681 ], [ 199, %sw.bb680 ], [ 167, %sw.bb679 ], [ 137, %sw.bb678 ], [ 0, %sw.bb618 ], [ 353, %sw.bb645 ], [ 352, %sw.bb644 ], [ 51, %sw.bb643 ], [ 48, %sw.bb642 ], [ 339, %sw.bb641 ], [ 338, %sw.bb640 ], [ 337, %sw.bb639 ], [ 351, %sw.bb632 ], [ 76, %sw.bb631 ], [ 75, %sw.bb630 ], [ 74, %sw.bb629 ], [ 73, %sw.bb628 ], [ 72, %sw.bb627 ], [ 50, %sw.bb626 ], [ 49, %sw.bb625 ], [ 47, %sw.bb624 ], [ 1, %sw.bb617 ], [ %op.5, %sw.epilog607 ], [ 0, %sw.bb490 ], [ 114, %sw.bb540 ], [ 103, %sw.bb539 ], [ 92, %sw.bb538 ], [ 113, %sw.bb537 ], [ 102, %sw.bb536 ], [ 91, %sw.bb535 ], [ 112, %sw.bb534 ], [ 101, %sw.bb533 ], [ 90, %sw.bb532 ], [ 111, %sw.bb531 ], [ 100, %sw.bb530 ], [ 89, %sw.bb529 ], [ 110, %sw.bb528 ], [ 99, %sw.bb527 ], [ 88, %sw.bb526 ], [ 109, %sw.bb525 ], [ 98, %sw.bb524 ], [ 87, %sw.bb523 ], [ 108, %sw.bb522 ], [ 97, %sw.bb521 ], [ 86, %sw.bb520 ], [ 105, %sw.bb519 ], [ 94, %sw.bb518 ], [ 83, %sw.bb517 ], [ 106, %sw.bb501 ], [ 95, %sw.bb500 ], [ 84, %sw.bb499 ], [ 107, %sw.bb498 ], [ 96, %sw.bb497 ], [ 85, %sw.bb496 ], [ 0, %sw.bb477 ], [ 432, %sw.bb487 ], [ 416, %sw.bb486 ], [ 428, %sw.bb485 ], [ 0, %sw.bb465 ], [ 431, %sw.bb475 ], [ 415, %sw.bb474 ], [ 427, %sw.bb473 ], [ 0, %sw.bb453 ], [ 430, %sw.bb463 ], [ 414, %sw.bb462 ], [ 426, %sw.bb461 ], [ 194, %sw.bb452 ], [ 162, %sw.bb451 ], [ 132, %sw.bb450 ], [ %op.4, %sw.epilog436 ], [ 429, %sw.bb447 ], [ 413, %sw.bb446 ], [ 425, %sw.bb445 ], [ %op.4, %sw.bb439 ], [ 408, %sw.bb443 ], [ 403, %sw.bb442 ], [ 0, %sw.bb417 ], [ 0, %sw.bb392 ], [ 0, %sw.bb409 ], [ 356, %sw.bb414 ], [ 46, %sw.bb413 ], [ 45, %sw.bb412 ], [ 0, %sw.bb396 ], [ 0, %sw.bb401 ], [ 350, %sw.bb400 ], [ 44, %sw.bb399 ], [ 43, %sw.bb395 ], [ 2, %sw.bb391 ], [ 24, %sw.bb389 ], [ 23, %sw.bb388 ], [ 0, %sw.bb367 ], [ 0, %sw.bb380 ], [ 391, %sw.bb385 ], [ 354, %sw.bb384 ], [ 354, %sw.bb383 ], [ 323, %sw.bb379 ], [ 322, %sw.bb378 ], [ 27, %sw.bb377 ], [ 357, %sw.bb376 ], [ 26, %sw.bb370 ], [ 22, %sw.bb366 ], [ 21, %sw.bb365 ], [ 20, %sw.bb364 ], [ 0, %sw.bb317 ], [ 0, %sw.bb354 ], [ 321, %sw.bb353 ], [ 320, %sw.bb352 ], [ 319, %sw.bb340 ], [ 0, %sw.bb326 ], [ 25, %sw.bb320 ], [ 0, %sw.bb306 ], [ %op.3, %sw.epilog292 ], [ 424, %sw.bb303 ], [ 412, %sw.bb302 ], [ 420, %sw.bb301 ], [ %op.3, %sw.bb295 ], [ 436, %sw.bb299 ], [ 402, %sw.bb298 ], [ %op.2, %sw.epilog272 ], [ 423, %sw.bb283 ], [ 411, %sw.bb282 ], [ 419, %sw.bb281 ], [ %op.2, %sw.bb275 ], [ 435, %sw.bb279 ], [ 401, %sw.bb278 ], [ %op.1, %sw.epilog252 ], [ 422, %sw.bb263 ], [ 410, %sw.bb262 ], [ 418, %sw.bb261 ], [ %op.1, %sw.bb255 ], [ 434, %sw.bb259 ], [ 400, %sw.bb258 ], [ 193, %sw.bb244 ], [ 161, %sw.bb243 ], [ 131, %sw.bb242 ], [ %op.0, %sw.epilog227 ], [ 421, %sw.bb239 ], [ 409, %sw.bb238 ], [ 417, %sw.bb237 ], [ %op.0, %sw.bb230 ], [ 433, %sw.bb235 ], [ 407, %sw.bb234 ], [ 399, %sw.bb233 ], [ 262, %sw.bb195 ], [ 261, %if.then139 ], [ 261, %if.else167 ], [ 261, %sw.bb181 ], [ 261, %sw.bb170 ], [ 254, %sw.bb105 ], [ 251, %sw.bb94 ], [ 250, %sw.bb93 ], [ 249, %sw.bb92 ], [ 0, %sw.bb80 ], [ 775, %sw.bb79 ], [ 248, %sw.bb78 ], [ 247, %sw.bb77 ], [ 246, %sw.bb76 ], [ 245, %sw.bb75 ], [ 244, %sw.bb74 ], [ 242, %sw.bb67 ], [ 241, %sw.bb66 ], [ 232, %sw.bb35 ], [ 0, %sw.bb12 ], [ 779, %sw.bb23 ], [ 776, %sw.bb15 ], [ 229, %sw.bb6 ], [ 227, %sw.bb ], [ %., %sw.bb5 ], [ %.246, %sw.bb7 ], [ %.247, %sw.bb16 ], [ %spec.select, %sw.bb24 ], [ %.248, %sw.bb30 ], [ %.249, %sw.bb36 ], [ %.250, %sw.bb45 ], [ %.251, %sw.bb50 ], [ 237, %sw.bb42 ], [ %.252, %sw.bb56 ], [ 240, %sw.bb62 ], [ 243, %sw.bb68 ], [ 252, %sw.bb96 ], [ %.253, %sw.bb100 ], [ %.254, %sw.bb106 ], [ %.256, %sw.bb114 ], [ %.257, %sw.bb123 ], [ 260, %sw.bb120 ], [ 272, %sw.bb132 ], [ %spec.select258, %sw.bb142 ], [ %spec.select259, %sw.bb148 ], [ %spec.select260, %sw.bb154 ], [ %spec.select261, %sw.bb160 ], [ %.262, %if.end174 ], [ %switch.select264, %if.end186 ], [ %.265, %sw.bb196 ], [ 797, %sw.bb217 ], [ 19, %sw.bb313 ], [ %spec.select266, %sw.bb321 ], [ 368, %sw.bb341 ], [ %spec.select267, %sw.default345 ], [ %spec.select268, %sw.bb371 ], [ 798, %sw.bb426 ], [ %spec.select269, %sw.bb456 ], [ %spec.select270, %sw.bb468 ], [ %spec.select271, %sw.bb480 ], [ %spec.select272, %sw.bb502 ], [ %spec.select273, %sw.bb507 ], [ %spec.select274, %sw.bb512 ], [ %.276, %sw.bb633 ], [ %switch.select280, %sw.bb727 ], [ %spec.select281, %sw.bb773 ], [ %spec.select282, %sw.bb778 ], [ %spec.select283, %sw.bb783 ], [ %switch.select287, %sw.bb806 ], [ %spec.select288, %sw.bb821 ], [ %spec.select289, %sw.bb826 ], [ %switch.select293, %sw.bb880 ], [ %spec.select294, %sw.bb899 ], [ %switch.select298, %sw.bb917 ], [ %switch.select302, %sw.bb926 ], [ %switch.select306, %sw.bb935 ], [ %switch.select310, %sw.bb944 ], [ %spec.select311, %sw.bb972 ], [ %spec.select312, %sw.bb979 ], [ 579, %sw.bb988 ], [ %spec.select313, %if.else993 ], [ %spec.select315, %sw.bb1130 ], [ %spec.select316, %sw.bb1162 ], [ %spec.select317, %sw.bb1169 ], [ %spec.select318, %sw.bb1175 ], [ %spec.select319, %sw.bb1181 ], [ %spec.select320, %sw.bb1187 ], [ %spec.select321, %sw.bb1193 ], [ %spec.select322, %sw.bb1199 ], [ %spec.select323, %sw.bb1205 ], [ %spec.select324, %sw.bb1211 ], [ %spec.select325, %sw.bb1217 ], [ %spec.select326, %sw.bb1261 ], [ 581, %sw.bb1269 ], [ %spec.select327, %if.else1274 ], [ %spec.select328, %sw.bb1325 ], [ %spec.select329, %sw.bb1332 ], [ 580, %sw.bb1341 ], [ %spec.select330, %if.else1346 ], [ 687, %sw.bb1399 ], [ %spec.select332, %if.else1404 ], [ 766, %sw.bb1489 ], [ 767, %if.else1494 ], [ %spec.select334, %if.else1499 ], [ %spec.select335, %sw.bb1512 ], [ %switch.select339, %sw.bb1517 ], [ %spec.select340, %sw.bb1534 ], [ %spec.select341, %sw.bb1559 ], [ %spec.select342, %sw.bb1565 ], [ %spec.select343, %sw.bb1572 ], [ %spec.select344, %sw.bb1577 ], [ %spec.select345, %sw.bb1582 ], [ %spec.select347, %sw.bb1038 ], [ %spec.select348, %sw.bb1389 ], [ %spec.select349, %sw.bb1451 ], [ %switch.offset, %switch.lookup ], [ %switch.load, %sw.bb205 ], [ %switch.masked, %switch.lookup363 ], [ %switch.load366, %switch.lookup364 ], [ %switch.load369, %switch.lookup367 ], [ %switch.offset372, %switch.lookup370 ], [ %switch.load375, %switch.lookup373 ], [ %op.5, %switch.hole_check ], [ %switch.load382, %switch.lookup380 ], [ %switch.masked386, %sw.bb647 ], [ %switch.masked390, %sw.bb654 ], [ %switch.masked394, %sw.bb661 ], [ %switch.masked398, %sw.bb668 ], [ %switch.offset401, %switch.lookup399 ], [ %switch.offset404, %switch.lookup402 ], [ %switch.offset407, %switch.lookup405 ], [ %switch.masked411, %switch.lookup408 ], [ %switch.masked415, %switch.lookup412 ], [ %switch.masked419, %switch.lookup416 ], [ %switch.load423, %switch.lookup420 ], [ %switch.load426, %switch.lookup424 ], [ %switch.load430, %switch.lookup427 ], [ %switch.load433, %switch.lookup431 ], [ %switch.load436, %switch.lookup434 ], [ %switch.load439, %switch.lookup437 ], [ %switch.load442, %switch.lookup440 ], [ %switch.masked446, %switch.lookup443 ], [ %switch.load449, %switch.lookup447 ], [ %switch.masked453, %switch.lookup450 ], [ %switch.masked457, %switch.lookup454 ], [ %switch.masked461, %switch.lookup458 ], [ %switch.masked465, %switch.lookup462 ], [ %switch.load468, %switch.lookup466 ], [ %switch.load472, %switch.lookup469 ], [ %switch.load475, %switch.lookup473 ], [ %switch.load478, %switch.lookup476 ] + %op.6 = phi i16 [ 0, %sw.bb202 ], [ 0, %sw.bb1637 ], [ 63, %sw.bb1652 ], [ 60, %sw.bb1651 ], [ 81, %sw.bb1650 ], [ 80, %sw.bb1649 ], [ 79, %sw.bb1648 ], [ 78, %sw.bb1647 ], [ 77, %sw.bb1646 ], [ 62, %sw.bb1645 ], [ 61, %sw.bb1644 ], [ 59, %sw.bb1643 ], [ 0, %if.then1603 ], [ 865, %sw.bb1634 ], [ 864, %sw.bb1633 ], [ 866, %sw.bb1632 ], [ 856, %sw.bb1631 ], [ 867, %sw.bb1630 ], [ 843, %sw.bb1629 ], [ 0, %sw.bb1619 ], [ 871, %sw.bb1627 ], [ 844, %sw.bb1626 ], [ 839, %sw.bb1625 ], [ 841, %sw.bb1624 ], [ 835, %sw.bb1623 ], [ 837, %sw.bb1622 ], [ 0, %sw.bb1609 ], [ 857, %sw.bb1617 ], [ 870, %sw.bb1616 ], [ 838, %sw.bb1615 ], [ 840, %sw.bb1614 ], [ 834, %sw.bb1613 ], [ 836, %sw.bb1612 ], [ 842, %sw.bb1608 ], [ 869, %sw.bb1607 ], [ 868, %sw.bb1606 ], [ 0, %sw.bb1595 ], [ 0, %sw.bb1540 ], [ 130, %sw.bb1593 ], [ 129, %sw.bb1592 ], [ 128, %sw.bb1591 ], [ 127, %sw.bb1590 ], [ 126, %sw.bb1589 ], [ 125, %sw.bb1588 ], [ 0, %sw.bb1543 ], [ 123, %sw.bb1571 ], [ 0, %sw.bb1556 ], [ 122, %sw.bb1564 ], [ 0, %sw.bb1549 ], [ 117, %sw.bb1554 ], [ 116, %sw.bb1553 ], [ 115, %sw.bb1552 ], [ 3, %sw.bb1539 ], [ 0, %sw.bb1508 ], [ 55, %sw.bb1511 ], [ 0, %sw.bb1440 ], [ 577, %sw.bb1487 ], [ 578, %sw.bb1486 ], [ 575, %sw.bb1485 ], [ 573, %sw.bb1484 ], [ 563, %sw.bb1483 ], [ 561, %sw.bb1482 ], [ 559, %sw.bb1481 ], [ 479, %sw.bb1480 ], [ 477, %sw.bb1479 ], [ 475, %sw.bb1478 ], [ 473, %sw.bb1477 ], [ 471, %sw.bb1476 ], [ 469, %sw.bb1475 ], [ 467, %sw.bb1474 ], [ 465, %sw.bb1473 ], [ 567, %sw.bb1472 ], [ 565, %sw.bb1471 ], [ 571, %sw.bb1470 ], [ 569, %sw.bb1469 ], [ 545, %sw.bb1468 ], [ 549, %sw.bb1467 ], [ 543, %sw.bb1466 ], [ 547, %sw.bb1465 ], [ 557, %sw.bb1464 ], [ 555, %sw.bb1463 ], [ 553, %sw.bb1462 ], [ 551, %sw.bb1461 ], [ 750, %sw.bb1450 ], [ 747, %sw.bb1449 ], [ 852, %sw.bb1448 ], [ 850, %sw.bb1447 ], [ 600, %sw.bb1446 ], [ 602, %sw.bb1445 ], [ 596, %sw.bb1444 ], [ 598, %sw.bb1443 ], [ 0, %sw.bb1377 ], [ 660, %sw.bb1438 ], [ 658, %sw.bb1437 ], [ 656, %sw.bb1436 ], [ 654, %sw.bb1435 ], [ 796, %sw.bb1434 ], [ 636, %sw.bb1433 ], [ 629, %sw.bb1432 ], [ 625, %sw.bb1431 ], [ 627, %sw.bb1430 ], [ 623, %sw.bb1429 ], [ 644, %sw.bb1428 ], [ 642, %sw.bb1427 ], [ 640, %sw.bb1426 ], [ 638, %sw.bb1425 ], [ 652, %sw.bb1424 ], [ 650, %sw.bb1423 ], [ 648, %sw.bb1422 ], [ 646, %sw.bb1421 ], [ 621, %sw.bb1420 ], [ 631, %sw.bb1419 ], [ 634, %sw.bb1418 ], [ 633, %sw.bb1417 ], [ 685, %sw.bb1416 ], [ 684, %sw.bb1415 ], [ 679, %sw.bb1414 ], [ 681, %sw.bb1413 ], [ 683, %sw.bb1412 ], [ 677, %sw.bb1411 ], [ 675, %sw.bb1388 ], [ 674, %sw.bb1387 ], [ 673, %sw.bb1386 ], [ 671, %sw.bb1385 ], [ 669, %sw.bb1384 ], [ 667, %sw.bb1383 ], [ 665, %sw.bb1382 ], [ 620, %sw.bb1381 ], [ 618, %sw.bb1380 ], [ 0, %sw.bb1308 ], [ 873, %sw.bb1375 ], [ 615, %sw.bb1374 ], [ 612, %sw.bb1373 ], [ 512, %sw.bb1372 ], [ 509, %sw.bb1371 ], [ 609, %sw.bb1370 ], [ 606, %sw.bb1369 ], [ 506, %sw.bb1368 ], [ 503, %sw.bb1367 ], [ 604, %sw.bb1366 ], [ 500, %sw.bb1365 ], [ 594, %sw.bb1364 ], [ 592, %sw.bb1363 ], [ 589, %sw.bb1362 ], [ 586, %sw.bb1361 ], [ 532, %sw.bb1360 ], [ 530, %sw.bb1359 ], [ 528, %sw.bb1358 ], [ 525, %sw.bb1357 ], [ 523, %sw.bb1356 ], [ 521, %sw.bb1355 ], [ 518, %sw.bb1354 ], [ 515, %sw.bb1353 ], [ 860, %sw.bb1340 ], [ 862, %sw.bb1339 ], [ 489, %sw.bb1338 ], [ 484, %sw.bb1331 ], [ 748, %sw.bb1324 ], [ 745, %sw.bb1323 ], [ 753, %sw.bb1322 ], [ 497, %sw.bb1321 ], [ 494, %sw.bb1320 ], [ 491, %sw.bb1319 ], [ 541, %sw.bb1318 ], [ 539, %sw.bb1317 ], [ 537, %sw.bb1316 ], [ 535, %sw.bb1315 ], [ 462, %sw.bb1314 ], [ 461, %sw.bb1313 ], [ 846, %sw.bb1312 ], [ 458, %sw.bb1311 ], [ 0, %sw.bb1250 ], [ 874, %sw.bb1306 ], [ 616, %sw.bb1305 ], [ 613, %sw.bb1304 ], [ 513, %sw.bb1303 ], [ 510, %sw.bb1302 ], [ 610, %sw.bb1301 ], [ 607, %sw.bb1300 ], [ 507, %sw.bb1299 ], [ 504, %sw.bb1298 ], [ 0, %sw.bb1290 ], [ 501, %sw.bb1289 ], [ 590, %sw.bb1288 ], [ 587, %sw.bb1287 ], [ 533, %sw.bb1286 ], [ 531, %sw.bb1285 ], [ 529, %sw.bb1284 ], [ 526, %sw.bb1283 ], [ 519, %sw.bb1282 ], [ 516, %sw.bb1281 ], [ 863, %sw.bb1268 ], [ 485, %sw.bb1267 ], [ 749, %sw.bb1260 ], [ 746, %sw.bb1259 ], [ 754, %sw.bb1258 ], [ 498, %sw.bb1257 ], [ 495, %sw.bb1256 ], [ 492, %sw.bb1255 ], [ 463, %sw.bb1254 ], [ 459, %sw.bb1253 ], [ 0, %sw.bb1110 ], [ 576, %sw.bb1248 ], [ 574, %sw.bb1247 ], [ 572, %sw.bb1246 ], [ 562, %sw.bb1245 ], [ 560, %sw.bb1244 ], [ 558, %sw.bb1243 ], [ 478, %sw.bb1242 ], [ 476, %sw.bb1241 ], [ 474, %sw.bb1240 ], [ 472, %sw.bb1239 ], [ 470, %sw.bb1238 ], [ 468, %sw.bb1237 ], [ 466, %sw.bb1236 ], [ 464, %sw.bb1235 ], [ 566, %sw.bb1234 ], [ 564, %sw.bb1233 ], [ 570, %sw.bb1232 ], [ 568, %sw.bb1231 ], [ 544, %sw.bb1230 ], [ 548, %sw.bb1229 ], [ 542, %sw.bb1228 ], [ 546, %sw.bb1227 ], [ 556, %sw.bb1226 ], [ 554, %sw.bb1225 ], [ 552, %sw.bb1224 ], [ 550, %sw.bb1223 ], [ 0, %sw.bb1155 ], [ 739, %sw.bb1161 ], [ 737, %sw.bb1160 ], [ 738, %sw.bb1159 ], [ 736, %sw.bb1158 ], [ 0, %sw.bb1139 ], [ 0, %sw.bb1127 ], [ 735, %sw.bb1137 ], [ 734, %sw.bb1136 ], [ 851, %sw.bb1126 ], [ 849, %sw.bb1125 ], [ 599, %sw.bb1124 ], [ 601, %sw.bb1123 ], [ 595, %sw.bb1122 ], [ 597, %sw.bb1121 ], [ 717, %sw.bb1120 ], [ 716, %sw.bb1119 ], [ 715, %sw.bb1118 ], [ 714, %sw.bb1117 ], [ 713, %sw.bb1116 ], [ 712, %sw.bb1115 ], [ 711, %sw.bb1114 ], [ 710, %sw.bb1113 ], [ 0, %sw.bb1024 ], [ 659, %sw.bb1108 ], [ 657, %sw.bb1107 ], [ 655, %sw.bb1106 ], [ 653, %sw.bb1105 ], [ 795, %sw.bb1104 ], [ 635, %sw.bb1103 ], [ 628, %sw.bb1102 ], [ 624, %sw.bb1101 ], [ 725, %sw.bb1100 ], [ 626, %sw.bb1099 ], [ 724, %sw.bb1098 ], [ 622, %sw.bb1097 ], [ 643, %sw.bb1096 ], [ 641, %sw.bb1095 ], [ 639, %sw.bb1094 ], [ 637, %sw.bb1093 ], [ 651, %sw.bb1092 ], [ 649, %sw.bb1091 ], [ 647, %sw.bb1090 ], [ 645, %sw.bb1089 ], [ 630, %sw.bb1088 ], [ 632, %sw.bb1087 ], [ 678, %sw.bb1086 ], [ 680, %sw.bb1085 ], [ 682, %sw.bb1084 ], [ 676, %sw.bb1083 ], [ 0, %sw.bb1075 ], [ 686, %sw.bb1081 ], [ 663, %sw.bb1080 ], [ 662, %sw.bb1079 ], [ 661, %sw.bb1078 ], [ 0, %sw.bb1048 ], [ 672, %sw.bb1037 ], [ 670, %sw.bb1036 ], [ 668, %sw.bb1035 ], [ 723, %sw.bb1034 ], [ 666, %sw.bb1033 ], [ 722, %sw.bb1032 ], [ 664, %sw.bb1031 ], [ 721, %sw.bb1030 ], [ 619, %sw.bb1029 ], [ 720, %sw.bb1028 ], [ 617, %sw.bb1027 ], [ 0, %sw.bb957 ], [ 872, %sw.bb1022 ], [ 719, %sw.bb1021 ], [ 718, %sw.bb1020 ], [ 614, %sw.bb1019 ], [ 611, %sw.bb1018 ], [ 511, %sw.bb1017 ], [ 508, %sw.bb1016 ], [ 608, %sw.bb1015 ], [ 605, %sw.bb1014 ], [ 505, %sw.bb1013 ], [ 502, %sw.bb1012 ], [ 603, %sw.bb1011 ], [ 499, %sw.bb1010 ], [ 593, %sw.bb1009 ], [ 591, %sw.bb1008 ], [ 588, %sw.bb1007 ], [ 585, %sw.bb1006 ], [ 527, %sw.bb1005 ], [ 524, %sw.bb1004 ], [ 522, %sw.bb1003 ], [ 520, %sw.bb1002 ], [ 517, %sw.bb1001 ], [ 514, %sw.bb1000 ], [ 859, %sw.bb987 ], [ 861, %sw.bb986 ], [ 488, %sw.bb985 ], [ 483, %sw.bb978 ], [ 752, %sw.bb971 ], [ 751, %sw.bb970 ], [ 496, %sw.bb969 ], [ 493, %sw.bb968 ], [ 490, %sw.bb967 ], [ 540, %sw.bb966 ], [ 538, %sw.bb965 ], [ 536, %sw.bb964 ], [ 534, %sw.bb963 ], [ 460, %sw.bb962 ], [ 845, %sw.bb961 ], [ 457, %sw.bb960 ], [ 0, %sw.bb675 ], [ 0, %sw.bb907 ], [ 824, %sw.bb915 ], [ 220, %sw.bb914 ], [ 225, %sw.bb913 ], [ 0, %sw.bb889 ], [ 822, %sw.bb897 ], [ 186, %sw.bb896 ], [ 189, %sw.bb895 ], [ 0, %sw.bb872 ], [ 0, %sw.bb864 ], [ 0, %sw.bb856 ], [ 0, %sw.bb848 ], [ 0, %sw.bb839 ], [ 0, %sw.bb831 ], [ 0, %sw.bb812 ], [ 0, %sw.bb797 ], [ 0, %sw.bb788 ], [ 0, %sw.bb765 ], [ 0, %sw.bb758 ], [ 0, %sw.bb750 ], [ 0, %sw.bb741 ], [ 0, %sw.bb733 ], [ 0, %sw.bb719 ], [ 0, %sw.bb711 ], [ 0, %sw.bb704 ], [ 0, %sw.bb697 ], [ 0, %sw.bb690 ], [ 202, %sw.bb689 ], [ 170, %sw.bb688 ], [ 140, %sw.bb687 ], [ 201, %sw.bb686 ], [ 169, %sw.bb685 ], [ 139, %sw.bb684 ], [ 200, %sw.bb683 ], [ 168, %sw.bb682 ], [ 138, %sw.bb681 ], [ 199, %sw.bb680 ], [ 167, %sw.bb679 ], [ 137, %sw.bb678 ], [ 0, %sw.bb618 ], [ 353, %sw.bb645 ], [ 352, %sw.bb644 ], [ 51, %sw.bb643 ], [ 48, %sw.bb642 ], [ 339, %sw.bb641 ], [ 338, %sw.bb640 ], [ 337, %sw.bb639 ], [ 351, %sw.bb632 ], [ 76, %sw.bb631 ], [ 75, %sw.bb630 ], [ 74, %sw.bb629 ], [ 73, %sw.bb628 ], [ 72, %sw.bb627 ], [ 50, %sw.bb626 ], [ 49, %sw.bb625 ], [ 47, %sw.bb624 ], [ 1, %sw.bb617 ], [ %op.5, %sw.epilog607 ], [ 0, %sw.bb490 ], [ 114, %sw.bb540 ], [ 103, %sw.bb539 ], [ 92, %sw.bb538 ], [ 113, %sw.bb537 ], [ 102, %sw.bb536 ], [ 91, %sw.bb535 ], [ 112, %sw.bb534 ], [ 101, %sw.bb533 ], [ 90, %sw.bb532 ], [ 111, %sw.bb531 ], [ 100, %sw.bb530 ], [ 89, %sw.bb529 ], [ 110, %sw.bb528 ], [ 99, %sw.bb527 ], [ 88, %sw.bb526 ], [ 109, %sw.bb525 ], [ 98, %sw.bb524 ], [ 87, %sw.bb523 ], [ 108, %sw.bb522 ], [ 97, %sw.bb521 ], [ 86, %sw.bb520 ], [ 105, %sw.bb519 ], [ 94, %sw.bb518 ], [ 83, %sw.bb517 ], [ 106, %sw.bb501 ], [ 95, %sw.bb500 ], [ 84, %sw.bb499 ], [ 107, %sw.bb498 ], [ 96, %sw.bb497 ], [ 85, %sw.bb496 ], [ 0, %sw.bb477 ], [ 432, %sw.bb487 ], [ 416, %sw.bb486 ], [ 428, %sw.bb485 ], [ 0, %sw.bb465 ], [ 431, %sw.bb475 ], [ 415, %sw.bb474 ], [ 427, %sw.bb473 ], [ 0, %sw.bb453 ], [ 430, %sw.bb463 ], [ 414, %sw.bb462 ], [ 426, %sw.bb461 ], [ 194, %sw.bb452 ], [ 162, %sw.bb451 ], [ 132, %sw.bb450 ], [ %op.4, %sw.epilog436 ], [ 429, %sw.bb447 ], [ 413, %sw.bb446 ], [ 425, %sw.bb445 ], [ %op.4, %sw.bb439 ], [ 408, %sw.bb443 ], [ 403, %sw.bb442 ], [ 0, %sw.bb417 ], [ 0, %sw.bb392 ], [ 0, %sw.bb409 ], [ 356, %sw.bb414 ], [ 46, %sw.bb413 ], [ 45, %sw.bb412 ], [ 0, %sw.bb396 ], [ 0, %sw.bb401 ], [ 350, %sw.bb400 ], [ 44, %sw.bb399 ], [ 43, %sw.bb395 ], [ 2, %sw.bb391 ], [ 24, %sw.bb389 ], [ 23, %sw.bb388 ], [ 0, %sw.bb367 ], [ 0, %sw.bb380 ], [ 391, %sw.bb385 ], [ 354, %sw.bb384 ], [ 354, %sw.bb383 ], [ 323, %sw.bb379 ], [ 322, %sw.bb378 ], [ 27, %sw.bb377 ], [ 357, %sw.bb376 ], [ 26, %sw.bb370 ], [ 22, %sw.bb366 ], [ 21, %sw.bb365 ], [ 20, %sw.bb364 ], [ 0, %sw.bb317 ], [ 0, %sw.bb354 ], [ 321, %sw.bb353 ], [ 320, %sw.bb352 ], [ 319, %sw.bb340 ], [ 0, %sw.bb326 ], [ 25, %sw.bb320 ], [ 0, %sw.bb306 ], [ %op.3, %sw.epilog292 ], [ 424, %sw.bb303 ], [ 412, %sw.bb302 ], [ 420, %sw.bb301 ], [ %op.3, %sw.bb295 ], [ 436, %sw.bb299 ], [ 402, %sw.bb298 ], [ %op.2, %sw.epilog272 ], [ 423, %sw.bb283 ], [ 411, %sw.bb282 ], [ 419, %sw.bb281 ], [ %op.2, %sw.bb275 ], [ 435, %sw.bb279 ], [ 401, %sw.bb278 ], [ %op.1, %sw.epilog252 ], [ 422, %sw.bb263 ], [ 410, %sw.bb262 ], [ 418, %sw.bb261 ], [ %op.1, %sw.bb255 ], [ 434, %sw.bb259 ], [ 400, %sw.bb258 ], [ 193, %sw.bb244 ], [ 161, %sw.bb243 ], [ 131, %sw.bb242 ], [ %op.0, %sw.epilog227 ], [ 421, %sw.bb239 ], [ 409, %sw.bb238 ], [ 417, %sw.bb237 ], [ %op.0, %sw.bb230 ], [ 433, %sw.bb235 ], [ 407, %sw.bb234 ], [ 399, %sw.bb233 ], [ 262, %sw.bb195 ], [ 261, %if.then139 ], [ 261, %if.else167 ], [ 261, %sw.bb181 ], [ 261, %sw.bb170 ], [ 254, %sw.bb105 ], [ 251, %sw.bb94 ], [ 250, %sw.bb93 ], [ 249, %sw.bb92 ], [ 0, %sw.bb80 ], [ 775, %sw.bb79 ], [ 248, %sw.bb78 ], [ 247, %sw.bb77 ], [ 246, %sw.bb76 ], [ 245, %sw.bb75 ], [ 244, %sw.bb74 ], [ 242, %sw.bb67 ], [ 241, %sw.bb66 ], [ 232, %sw.bb35 ], [ 0, %sw.bb12 ], [ 779, %sw.bb23 ], [ 776, %sw.bb15 ], [ 229, %sw.bb6 ], [ 227, %sw.bb ], [ %., %sw.bb5 ], [ %.246, %sw.bb7 ], [ %.247, %sw.bb16 ], [ %spec.select, %sw.bb24 ], [ %.248, %sw.bb30 ], [ %.249, %sw.bb36 ], [ %.250, %sw.bb45 ], [ %.251, %sw.bb50 ], [ 237, %sw.bb42 ], [ %.252, %sw.bb56 ], [ 240, %sw.bb62 ], [ 243, %sw.bb68 ], [ 252, %sw.bb96 ], [ %.253, %sw.bb100 ], [ %.254, %sw.bb106 ], [ %.255, %sw.bb114 ], [ %.256, %sw.bb123 ], [ 260, %sw.bb120 ], [ 272, %sw.bb132 ], [ %spec.select257, %sw.bb142 ], [ %spec.select258, %sw.bb148 ], [ %spec.select259, %sw.bb154 ], [ %spec.select260, %sw.bb160 ], [ %.261, %if.end174 ], [ %switch.select263, %if.end186 ], [ %.264, %sw.bb196 ], [ 797, %sw.bb217 ], [ 19, %sw.bb313 ], [ %spec.select265, %sw.bb321 ], [ 368, %sw.bb341 ], [ %spec.select266, %sw.default345 ], [ %spec.select267, %sw.bb371 ], [ 798, %sw.bb426 ], [ %spec.select268, %sw.bb456 ], [ %spec.select269, %sw.bb468 ], [ %spec.select270, %sw.bb480 ], [ %spec.select271, %sw.bb502 ], [ %spec.select272, %sw.bb507 ], [ %spec.select273, %sw.bb512 ], [ %.275, %sw.bb633 ], [ %switch.select279, %sw.bb727 ], [ %spec.select280, %sw.bb773 ], [ %spec.select281, %sw.bb778 ], [ %spec.select282, %sw.bb783 ], [ %switch.select286, %sw.bb806 ], [ %spec.select287, %sw.bb821 ], [ %spec.select288, %sw.bb826 ], [ %switch.select292, %sw.bb880 ], [ %spec.select293, %sw.bb899 ], [ %switch.select297, %sw.bb917 ], [ %switch.select301, %sw.bb926 ], [ %switch.select305, %sw.bb935 ], [ %switch.select309, %sw.bb944 ], [ %spec.select310, %sw.bb972 ], [ %spec.select311, %sw.bb979 ], [ 579, %sw.bb988 ], [ %spec.select312, %if.else993 ], [ %spec.select314, %sw.bb1130 ], [ %spec.select315, %sw.bb1162 ], [ %spec.select316, %sw.bb1169 ], [ %spec.select317, %sw.bb1175 ], [ %spec.select318, %sw.bb1181 ], [ %spec.select319, %sw.bb1187 ], [ %spec.select320, %sw.bb1193 ], [ %spec.select321, %sw.bb1199 ], [ %spec.select322, %sw.bb1205 ], [ %spec.select323, %sw.bb1211 ], [ %spec.select324, %sw.bb1217 ], [ %spec.select325, %sw.bb1261 ], [ 581, %sw.bb1269 ], [ %spec.select326, %if.else1274 ], [ %spec.select327, %sw.bb1325 ], [ %spec.select328, %sw.bb1332 ], [ 580, %sw.bb1341 ], [ %spec.select329, %if.else1346 ], [ 687, %sw.bb1399 ], [ %spec.select331, %if.else1404 ], [ 766, %sw.bb1489 ], [ 767, %if.else1494 ], [ %spec.select333, %if.else1499 ], [ %spec.select334, %sw.bb1512 ], [ %switch.select338, %sw.bb1517 ], [ %spec.select339, %sw.bb1534 ], [ %spec.select340, %sw.bb1559 ], [ %spec.select341, %sw.bb1565 ], [ %spec.select342, %sw.bb1572 ], [ %spec.select343, %sw.bb1577 ], [ %spec.select344, %sw.bb1582 ], [ %spec.select346, %sw.bb1038 ], [ %spec.select347, %sw.bb1389 ], [ %spec.select348, %sw.bb1451 ], [ %switch.offset, %switch.lookup ], [ %switch.load, %sw.bb205 ], [ %switch.masked, %switch.lookup363 ], [ %switch.load366, %switch.lookup364 ], [ %switch.load369, %switch.lookup367 ], [ %switch.offset372, %switch.lookup370 ], [ %switch.load375, %switch.lookup373 ], [ %op.5, %switch.hole_check ], [ %switch.load382, %switch.lookup380 ], [ %switch.masked386, %sw.bb647 ], [ %switch.masked390, %sw.bb654 ], [ %switch.masked394, %sw.bb661 ], [ %switch.masked398, %sw.bb668 ], [ %switch.offset401, %switch.lookup399 ], [ %switch.offset404, %switch.lookup402 ], [ %switch.offset407, %switch.lookup405 ], [ %switch.masked411, %switch.lookup408 ], [ %switch.masked415, %switch.lookup412 ], [ %switch.masked419, %switch.lookup416 ], [ %switch.load423, %switch.lookup420 ], [ %switch.load426, %switch.lookup424 ], [ %switch.load430, %switch.lookup427 ], [ %switch.load433, %switch.lookup431 ], [ %switch.load436, %switch.lookup434 ], [ %switch.load439, %switch.lookup437 ], [ %switch.load442, %switch.lookup440 ], [ %switch.masked446, %switch.lookup443 ], [ %switch.load449, %switch.lookup447 ], [ %switch.masked453, %switch.lookup450 ], [ %switch.masked457, %switch.lookup454 ], [ %switch.masked461, %switch.lookup458 ], [ %switch.masked465, %switch.lookup462 ], [ %switch.load468, %switch.lookup466 ], [ %switch.load472, %switch.lookup469 ], [ %switch.load475, %switch.lookup473 ], [ %switch.load478, %switch.lookup476 ] %op1656 = getelementptr inbounds %struct.rv_decode, ptr %dec, i64 0, i32 6 store i16 %op.6, ptr %op1656, align 8 ret void diff --git a/bench/qemu/optimized/fpu_softfloat.c.ll b/bench/qemu/optimized/fpu_softfloat.c.ll index cdcb9c00a21..2304520db50 100644 --- a/bench/qemu/optimized/fpu_softfloat.c.ll +++ b/bench/qemu/optimized/fpu_softfloat.c.ll @@ -48,7 +48,6 @@ target triple = "x86_64-unknown-linux-gnu" @__func__.parts64_modrem = private unnamed_addr constant [15 x i8] c"parts64_modrem\00", align 1 @.str.14 = private unnamed_addr constant [56 x i8] c"b->cls == float_class_inf || a->cls == float_class_zero\00", align 1 @__func__.parts128_modrem = private unnamed_addr constant [16 x i8] c"parts128_modrem\00", align 1 -@__func__.parts_float_to_ahp = private unnamed_addr constant [19 x i8] c"parts_float_to_ahp\00", align 1 @__func__.parts128_return_nan = private unnamed_addr constant [20 x i8] c"parts128_return_nan\00", align 1 @__func__.parts64_round_to_int_normal = private unnamed_addr constant [28 x i8] c"parts64_round_to_int_normal\00", align 1 @__func__.parts128_round_to_int = private unnamed_addr constant [22 x i8] c"parts128_round_to_int\00", align 1 @@ -77,7 +76,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @float16_is_quiet_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @float16_is_quiet_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %0 = and i16 %a_, 32256 %cmp11 = icmp eq i16 %0, 32256 @@ -85,7 +84,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @bfloat16_is_quiet_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @bfloat16_is_quiet_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %0 = and i16 %a_, 32704 %cmp11 = icmp eq i16 %0, 32704 @@ -93,7 +92,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @float16_is_signaling_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @float16_is_signaling_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %conv5 = zext i16 %a_ to i32 %0 = and i32 %conv5, 32256 @@ -105,7 +104,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @bfloat16_is_signaling_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @bfloat16_is_signaling_nan(i16 noundef zeroext %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %conv5 = zext i16 %a_ to i32 %0 = and i32 %conv5, 32704 @@ -117,7 +116,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @float32_is_quiet_nan(i32 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @float32_is_quiet_nan(i32 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %shl = shl i32 %a_, 1 %cmp6 = icmp ugt i32 %shl, -8388609 @@ -125,7 +124,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @float32_is_signaling_nan(i32 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @float32_is_signaling_nan(i32 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %0 = and i32 %a_, 2143289344 %cmp4 = icmp eq i32 %0, 2139095040 @@ -136,7 +135,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @float64_is_quiet_nan(i64 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @float64_is_quiet_nan(i64 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %shl = shl i64 %a_, 1 %cmp6 = icmp ugt i64 %shl, -4503599627370497 @@ -144,7 +143,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @float64_is_signaling_nan(i64 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @float64_is_signaling_nan(i64 noundef %a_, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %0 = and i64 %a_, 9221120237041090560 %cmp4 = icmp eq i64 %0, 9218868437227405312 @@ -3446,7 +3445,7 @@ parts64_mul.exit: ; preds = %lor.lhs.false.i.i79 } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc ptr @parts64_mul(ptr noundef %a, ptr noundef %b, ptr nocapture noundef %s) unnamed_addr #3 { +define internal fastcc noundef ptr @parts64_mul(ptr noundef %a, ptr noundef %b, ptr nocapture noundef %s) unnamed_addr #3 { entry: %0 = load i8, ptr %a, align 8 %conv = zext nneg i8 %0 to i32 @@ -6462,7 +6461,7 @@ parts64_muladd.exit: ; preds = %finish_sign.i, %if. } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc ptr @parts64_muladd(ptr noundef returned %a, ptr nocapture noundef readonly %b, ptr nocapture noundef %c, i32 noundef %flags, ptr nocapture noundef %s) unnamed_addr #3 { +define internal fastcc noundef ptr @parts64_muladd(ptr noundef returned %a, ptr nocapture noundef readonly %b, ptr nocapture noundef %c, i32 noundef %flags, ptr nocapture noundef %s) unnamed_addr #3 { entry: %p_widen = alloca %struct.FloatParts128, align 8 %c_widen = alloca %struct.FloatParts128, align 8 @@ -9226,7 +9225,7 @@ float16a_unpack_canonical.exit39: ; preds = %if.then8.i.i38, %if } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc ptr @parts64_div(ptr noundef %a, ptr noundef %b, ptr nocapture noundef %s) unnamed_addr #3 { +define internal fastcc noundef ptr @parts64_div(ptr noundef %a, ptr noundef %b, ptr nocapture noundef %s) unnamed_addr #3 { entry: %0 = load i8, ptr %a, align 8 %conv = zext nneg i8 %0 to i32 @@ -11522,7 +11521,7 @@ float32_unpack_canonical.exit36: ; preds = %if.then8.i.i31, %if } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc ptr @parts64_modrem(ptr noundef %a, ptr noundef %b, ptr nocapture noundef %s) unnamed_addr #3 { +define internal fastcc noundef ptr @parts64_modrem(ptr noundef %a, ptr noundef %b, ptr nocapture noundef %s) unnamed_addr #3 { entry: %0 = load i8, ptr %a, align 8 %conv = zext nneg i8 %0 to i32 @@ -12224,7 +12223,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc ptr @parts128_modrem(ptr noundef %a, ptr noundef %b, ptr noundef writeonly %mod_quot, ptr nocapture noundef %s) unnamed_addr #3 { +define internal fastcc noundef ptr @parts128_modrem(ptr noundef %a, ptr noundef %b, ptr noundef writeonly %mod_quot, ptr nocapture noundef %s) unnamed_addr #3 { entry: %0 = load i8, ptr %a, align 8 %conv = zext nneg i8 %0 to i32 @@ -13460,7 +13459,7 @@ do.body.i.i: ; preds = %if.then.i unreachable if.else: ; preds = %float32_unpack_canonical.exit - switch i8 %6, label %do.body.i [ + switch i8 %6, label %default.unreachable [ i8 5, label %sw.bb.i i8 4, label %entry.sw.bb1_crit_edge.i i8 3, label %sw.bb3.i @@ -13493,8 +13492,7 @@ sw.bb3.i: ; preds = %if.else store i64 -9007199254740992, ptr %.compoundliteral.i.sroa.4.0..sroa_idx.i.i, align 8 br label %if.end -do.body.i: ; preds = %if.else - tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.2, i32 noundef 2700, ptr noundef nonnull @__func__.parts_float_to_ahp, ptr noundef null) #16 +default.unreachable: ; preds = %if.else unreachable if.end: ; preds = %sw.bb3.i, %sw.bb1.i, %if.else, %if.else, %if.then4.i.i, %sw.bb1.i.i, %if.else.i.i8, %if.then.i.i7, %if.then @@ -13814,7 +13812,7 @@ do.body.i.i: ; preds = %if.then.i unreachable if.else: ; preds = %float64_unpack_canonical.exit - switch i8 %6, label %do.body.i [ + switch i8 %6, label %default.unreachable [ i8 5, label %sw.bb.i i8 4, label %entry.sw.bb1_crit_edge.i i8 3, label %sw.bb3.i @@ -13847,8 +13845,7 @@ sw.bb3.i: ; preds = %if.else store i64 -9007199254740992, ptr %.compoundliteral.i.sroa.4.0..sroa_idx.i.i, align 8 br label %if.end -do.body.i: ; preds = %if.else - tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.2, i32 noundef 2700, ptr noundef nonnull @__func__.parts_float_to_ahp, ptr noundef null) #16 +default.unreachable: ; preds = %if.else unreachable if.end: ; preds = %sw.bb3.i, %sw.bb1.i, %if.else, %if.else, %if.then4.i.i, %sw.bb1.i.i, %if.else.i.i8, %if.then.i.i7, %if.then @@ -31102,19 +31099,19 @@ float64_unpack_canonical.exit: ; preds = %if.then8.i.i, %if.t } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i16 @float16_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i16 @float16_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: ret i16 32256 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local i32 @float32_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef i32 @float32_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: ret i32 2143289344 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local i64 @float64_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef i64 @float64_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: ret i64 9221120237041090560 } @@ -31129,34 +31126,34 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i16 @bfloat16_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i16 @bfloat16_default_nan(ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: ret i16 32704 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i16 @float16_silence_nan(i16 noundef zeroext %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i16 @float16_silence_nan(i16 noundef zeroext %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %or.i10.i6 = or i16 %a, 512 ret i16 %or.i10.i6 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local i32 @float32_silence_nan(i32 noundef %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef i32 @float32_silence_nan(i32 noundef %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %or.i10.i5 = or i32 %a, 4194304 ret i32 %or.i10.i5 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local i64 @float64_silence_nan(i64 noundef %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef i64 @float64_silence_nan(i64 noundef %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %or.i10.i = or i64 %a, 2251799813685248 ret i64 %or.i10.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i16 @bfloat16_silence_nan(i16 noundef zeroext %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { +define dso_local noundef zeroext i16 @bfloat16_silence_nan(i16 noundef zeroext %a, ptr nocapture noundef readnone %status) local_unnamed_addr #0 { entry: %or.i10.i6 = or i16 %a, 64 ret i16 %or.i10.i6 @@ -31180,7 +31177,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable -define dso_local zeroext i16 @float16_squash_input_denormal(i16 noundef zeroext %a, ptr nocapture noundef %status) local_unnamed_addr #2 { +define dso_local noundef zeroext i16 @float16_squash_input_denormal(i16 noundef zeroext %a, ptr nocapture noundef %status) local_unnamed_addr #2 { entry: %flush_inputs_to_zero = getelementptr inbounds %struct.float_status, ptr %status, i64 0, i32 5 %0 = load i8, ptr %flush_inputs_to_zero, align 2 @@ -31209,7 +31206,7 @@ return: ; preds = %if.then, %entry, %i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable -define dso_local i32 @float32_squash_input_denormal(i32 noundef %a, ptr nocapture noundef %status) local_unnamed_addr #2 { +define dso_local noundef i32 @float32_squash_input_denormal(i32 noundef %a, ptr nocapture noundef %status) local_unnamed_addr #2 { entry: %flush_inputs_to_zero = getelementptr inbounds %struct.float_status, ptr %status, i64 0, i32 5 %0 = load i8, ptr %flush_inputs_to_zero, align 2 @@ -31238,7 +31235,7 @@ return: ; preds = %if.then, %entry, %i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable -define dso_local i64 @float64_squash_input_denormal(i64 noundef %a, ptr nocapture noundef %status) local_unnamed_addr #2 { +define dso_local noundef i64 @float64_squash_input_denormal(i64 noundef %a, ptr nocapture noundef %status) local_unnamed_addr #2 { entry: %flush_inputs_to_zero = getelementptr inbounds %struct.float_status, ptr %status, i64 0, i32 5 %0 = load i8, ptr %flush_inputs_to_zero, align 2 @@ -31267,7 +31264,7 @@ return: ; preds = %if.then, %entry, %i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable -define dso_local zeroext i16 @bfloat16_squash_input_denormal(i16 noundef zeroext %a, ptr nocapture noundef %status) local_unnamed_addr #2 { +define dso_local noundef zeroext i16 @bfloat16_squash_input_denormal(i16 noundef zeroext %a, ptr nocapture noundef %status) local_unnamed_addr #2 { entry: %flush_inputs_to_zero = getelementptr inbounds %struct.float_status, ptr %status, i64 0, i32 5 %0 = load i8, ptr %flush_inputs_to_zero, align 2 @@ -33180,7 +33177,7 @@ parts64_addsub.exit: ; preds = %lor.lhs.false.i.i, } ; Function Attrs: nounwind sspstrong memory(argmem: readwrite) uwtable -define internal fastcc zeroext i1 @parts128_sub_normal(ptr nocapture noundef %a, ptr nocapture noundef %b) unnamed_addr #11 { +define internal fastcc noundef zeroext i1 @parts128_sub_normal(ptr nocapture noundef %a, ptr nocapture noundef %b) unnamed_addr #11 { entry: %exp = getelementptr inbounds %struct.FloatParts128, ptr %a, i64 0, i32 2 %0 = load i32, ptr %exp, align 4 @@ -34932,7 +34929,7 @@ if.end10: ; preds = %if.then8, %if.end7 } ; Function Attrs: nounwind sspstrong memory(argmem: readwrite) uwtable -define internal fastcc zeroext i1 @parts256_sub_normal(ptr nocapture noundef %a, ptr nocapture noundef %b) unnamed_addr #11 { +define internal fastcc noundef zeroext i1 @parts256_sub_normal(ptr nocapture noundef %a, ptr nocapture noundef %b) unnamed_addr #11 { entry: %exp = getelementptr inbounds %struct.FloatParts256, ptr %a, i64 0, i32 2 %0 = load i32, ptr %exp, align 4 @@ -35365,7 +35362,7 @@ return: ; preds = %if.end29, %if.then2 } ; Function Attrs: nounwind sspstrong memory(argmem: readwrite) uwtable -define internal fastcc zeroext i1 @frac128_div(ptr nocapture noundef %a, i64 %b.8.val, i64 %b.16.val) unnamed_addr #11 { +define internal fastcc noundef zeroext i1 @frac128_div(ptr nocapture noundef %a, i64 %b.8.val, i64 %b.16.val) unnamed_addr #11 { entry: %frac_hi = getelementptr inbounds %struct.FloatParts128, ptr %a, i64 0, i32 3 %0 = load i64, ptr %frac_hi, align 8 @@ -35659,7 +35656,7 @@ while.end10: ; preds = %while.body8, %estim } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc zeroext i1 @parts64_round_to_int_normal(ptr nocapture noundef %a, i8 noundef zeroext %rmode, i32 noundef %scale, i32 noundef %frac_size) unnamed_addr #3 { +define internal fastcc noundef zeroext i1 @parts64_round_to_int_normal(ptr nocapture noundef %a, i8 noundef zeroext %rmode, i32 noundef %scale, i32 noundef %frac_size) unnamed_addr #3 { entry: %cond = tail call i32 @llvm.smax.i32(i32 %scale, i32 -65536) %cond6 = tail call i32 @llvm.smin.i32(i32 %cond, i32 65536) @@ -35831,7 +35828,7 @@ return: ; preds = %if.end38, %if.end33 } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc zeroext i1 @parts128_round_to_int_normal(ptr nocapture noundef %a, i8 noundef zeroext %rmode, i32 noundef %frac_size) unnamed_addr #3 { +define internal fastcc noundef zeroext i1 @parts128_round_to_int_normal(ptr nocapture noundef %a, i8 noundef zeroext %rmode, i32 noundef %frac_size) unnamed_addr #3 { entry: %exp = getelementptr inbounds %struct.FloatParts128, ptr %a, i64 0, i32 2 %0 = load i32, ptr %exp, align 4 diff --git a/bench/qemu/optimized/hotpages.ll b/bench/qemu/optimized/hotpages.ll index c4d0d9dc87d..a5b0e8600fe 100644 --- a/bench/qemu/optimized/hotpages.ll +++ b/bench/qemu/optimized/hotpages.ll @@ -27,11 +27,9 @@ target triple = "x86_64-unknown-linux-gnu" @lock = internal global %union._GMutex zeroinitializer, align 8 @.str.10 = private unnamed_addr constant [35 x i8] c"Addr, RCPUs, Reads, WCPUs, Writes\0A\00", align 1 @.str.11 = private unnamed_addr constant [36 x i8] c"0x%016lx, 0x%04x, %ld, 0x%04x, %ld\0A\00", align 1 -@.str.12 = private unnamed_addr constant [105 x i8] c"/home/dtcxzyw/WorkSpace/Projects/compilers/llvm-opt-benchmark/bench/qemu/qemu/contrib/plugins/hotpages.c\00", align 1 -@__func__.cmp_access_count = private unnamed_addr constant [17 x i8] c"cmp_access_count\00", align 1 ; Function Attrs: nounwind uwtable -define i32 @qemu_plugin_install(i64 noundef %id, ptr nocapture noundef readnone %info, i32 noundef %argc, ptr nocapture noundef readonly %argv) local_unnamed_addr #0 { +define noundef i32 @qemu_plugin_install(i64 noundef %id, ptr nocapture noundef readnone %info, i32 noundef %argc, ptr nocapture noundef readonly %argv) local_unnamed_addr #0 { entry: %cmp20 = icmp sgt i32 %argc, 0 br i1 %cmp20, label %for.body.preheader, label %for.end @@ -358,11 +356,11 @@ declare ptr @g_hash_table_get_values(ptr noundef) local_unnamed_addr #1 declare ptr @g_list_sort(ptr noundef, ptr noundef) local_unnamed_addr #1 -; Function Attrs: nounwind uwtable -define internal i32 @cmp_access_count(ptr nocapture noundef readonly %a, ptr nocapture noundef readonly %b) #0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable +define internal i32 @cmp_access_count(ptr nocapture noundef readonly %a, ptr nocapture noundef readonly %b) #5 { entry: %0 = load i32, ptr @sort_by, align 4 - switch i32 %0, label %do.body [ + switch i32 %0, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb4 i32 2, label %sw.bb9 @@ -405,8 +403,7 @@ sw.bb14: ; preds = %entry %cmp16 = icmp ugt i64 %9, %10 br label %sw.epilog -do.body: ; preds = %entry - tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.12, i32 noundef 70, ptr noundef nonnull @__func__.cmp_access_count, ptr noundef null) #9 +default.unreachable: ; preds = %entry unreachable sw.epilog: ; preds = %sw.bb14, %sw.bb9, %sw.bb4, %sw.bb @@ -423,19 +420,15 @@ declare void @qemu_plugin_outs(ptr noundef) local_unnamed_addr #1 declare ptr @g_string_free(ptr noundef, i32 noundef) local_unnamed_addr #1 -; Function Attrs: noreturn -declare void @g_assertion_message_expr(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #5 - attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nofree nosync nounwind willreturn memory(none) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { allocsize(0,1) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { noreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { nounwind } attributes #7 = { cold } attributes #8 = { nounwind allocsize(0,1) } -attributes #9 = { noreturn nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/qemu/optimized/hw_9pfs_9p-proxy.c.ll b/bench/qemu/optimized/hw_9pfs_9p-proxy.c.ll index 71c15b51f46..4e8c645a7a2 100644 --- a/bench/qemu/optimized/hw_9pfs_9p-proxy.c.ll +++ b/bench/qemu/optimized/hw_9pfs_9p-proxy.c.ll @@ -64,7 +64,6 @@ target triple = "x86_64-unknown-linux-gnu" @.str.20 = private unnamed_addr constant [4 x i8] c"dss\00", align 1 @.str.21 = private unnamed_addr constant [3 x i8] c"ds\00", align 1 @.str.22 = private unnamed_addr constant [6 x i8] c"sssdd\00", align 1 -@.str.23 = private unnamed_addr constant [16 x i8] c"Invalid type %d\00", align 1 @.str.24 = private unnamed_addr constant [3 x i8] c"dd\00", align 1 @.str.25 = private unnamed_addr constant [16 x i8] c"retval == 4 * 2\00", align 1 @__PRETTY_FUNCTION__.v9fs_request = private unnamed_addr constant [48 x i8] c"int v9fs_request(V9fsProxy *, int, void *, ...)\00", align 1 @@ -83,7 +82,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.36 = private unnamed_addr constant [3 x i8] c"%s\00", align 1 ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @proxy_parse_opts(ptr noundef %opts, ptr nocapture noundef %fs, ptr noundef %errp) #0 { +define internal noundef i32 @proxy_parse_opts(ptr noundef %opts, ptr nocapture noundef %fs, ptr noundef %errp) #0 { entry: %call = tail call ptr @qemu_opt_get(ptr noundef %opts, ptr noundef nonnull @.str) #19 %call1 = tail call ptr @qemu_opt_get(ptr noundef %opts, ptr noundef nonnull @.str.1) #19 @@ -133,7 +132,7 @@ return: ; preds = %if.then9, %if.else, } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @proxy_init(ptr nocapture noundef %ctx, ptr noundef %errp) #0 { +define internal noundef i32 @proxy_init(ptr nocapture noundef %ctx, ptr noundef %errp) #0 { entry: %helper.i = alloca %struct.sockaddr_un, align 2 %call = tail call noalias dereferenceable_or_null(88) ptr @g_malloc_n(i64 noundef 1, i64 noundef 88) #20 @@ -518,7 +517,7 @@ entry: } ; Function Attrs: nofree nounwind sspstrong uwtable -define internal i32 @proxy_closedir(ptr nocapture readnone %ctx, ptr nocapture noundef readonly %fs) #1 { +define internal noundef i32 @proxy_closedir(ptr nocapture readnone %ctx, ptr nocapture noundef readonly %fs) #1 { entry: %0 = load ptr, ptr %fs, align 8 %call = tail call i32 @closedir(ptr noundef %0) @@ -526,7 +525,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @proxy_opendir(ptr nocapture noundef readonly %ctx, ptr noundef %fs_path, ptr nocapture noundef writeonly %fs) #0 { +define internal noundef i32 @proxy_opendir(ptr nocapture noundef readonly %ctx, ptr noundef %fs_path, ptr nocapture noundef writeonly %fs) #0 { entry: store ptr null, ptr %fs, align 8 %private = getelementptr inbounds %struct.FsContext, ptr %ctx, i64 0, i32 6 @@ -715,7 +714,7 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @proxy_fstat(ptr nocapture readnone %fs_ctx, i32 noundef %fid_type, ptr nocapture noundef readonly %fs, ptr nocapture noundef %stbuf) #0 { +define internal noundef i32 @proxy_fstat(ptr nocapture readnone %fs_ctx, i32 noundef %fid_type, ptr nocapture noundef readonly %fs, ptr nocapture noundef %stbuf) #0 { entry: %cmp = icmp eq i32 %fid_type, 2 br i1 %cmp, label %if.then, label %if.else @@ -767,7 +766,7 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @proxy_truncate(ptr nocapture noundef readonly %ctx, ptr noundef %fs_path, i64 noundef %size) #0 { +define internal noundef i32 @proxy_truncate(ptr nocapture noundef readonly %ctx, ptr noundef %fs_path, i64 noundef %size) #0 { entry: %private = getelementptr inbounds %struct.FsContext, ptr %ctx, i64 0, i32 6 %0 = load ptr, ptr %private, align 8 @@ -944,7 +943,7 @@ if.end: ; preds = %if.then, %entry } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @proxy_name_to_path(ptr nocapture readnone %ctx, ptr noundef readonly %dir_path, ptr noundef %name, ptr noundef %target) #0 { +define internal noundef i32 @proxy_name_to_path(ptr nocapture readnone %ctx, ptr noundef readonly %dir_path, ptr noundef %name, ptr noundef %target) #0 { entry: %tobool.not = icmp eq ptr %dir_path, null br i1 %tobool.not, label %if.else, label %if.then @@ -1120,7 +1119,7 @@ if.end: ; preds = %entry %out_iovec = getelementptr inbounds %struct.V9fsProxy, ptr %proxy, i64 0, i32 3 %in_iovec = getelementptr inbounds %struct.V9fsProxy, ptr %proxy, i64 0, i32 2 call void @llvm.va_start(ptr nonnull %ap) - switch i32 %type, label %sw.epilog.thread [ + switch i32 %type, label %default.unreachable [ i32 2, label %sw.bb i32 3, label %sw.bb21 i32 4, label %sw.bb90 @@ -2460,22 +2459,19 @@ vaarg.end819: ; preds = %vaarg.in_mem815, %v store i32 %conv822, ptr %retval1, align 4 br label %sw.epilog -sw.epilog.thread: ; preds = %if.end - call void (ptr, ...) @error_report(ptr noundef nonnull @.str.23, i32 noundef %type) #19 - store i32 -22, ptr %retval1, align 4 - call void @llvm.va_end(ptr nonnull %ap) - br label %err_out +default.unreachable: ; preds = %if.end854, %if.end + unreachable sw.epilog: ; preds = %vaarg.end819, %vaarg.end798, %vaarg.end765, %vaarg.end696, %vaarg.end663, %vaarg.end618, %vaarg.end597, %vaarg.end554, %vaarg.end482, %vaarg.end449, %vaarg.end404, %vaarg.end371, %vaarg.end350, %vaarg.end317, %vaarg.end296, %vaarg.end263, %vaarg.end206, %vaarg.end149, %vaarg.end80, %vaarg.end13 - %conv822.sink247 = phi i32 [ %conv822, %vaarg.end819 ], [ %conv801, %vaarg.end798 ], [ %conv768, %vaarg.end765 ], [ %conv699, %vaarg.end696 ], [ %conv666, %vaarg.end663 ], [ %conv621, %vaarg.end618 ], [ %conv600, %vaarg.end597 ], [ %conv567, %vaarg.end554 ], [ %conv485, %vaarg.end482 ], [ %conv452, %vaarg.end449 ], [ %conv407, %vaarg.end404 ], [ %conv374, %vaarg.end371 ], [ %conv353, %vaarg.end350 ], [ %conv320, %vaarg.end317 ], [ %conv299, %vaarg.end296 ], [ %conv266, %vaarg.end263 ], [ %conv209, %vaarg.end206 ], [ %conv152, %vaarg.end149 ], [ %conv83, %vaarg.end80 ], [ %conv, %vaarg.end13 ] + %conv822.sink243 = phi i32 [ %conv822, %vaarg.end819 ], [ %conv801, %vaarg.end798 ], [ %conv768, %vaarg.end765 ], [ %conv699, %vaarg.end696 ], [ %conv666, %vaarg.end663 ], [ %conv621, %vaarg.end618 ], [ %conv600, %vaarg.end597 ], [ %conv567, %vaarg.end554 ], [ %conv485, %vaarg.end482 ], [ %conv452, %vaarg.end449 ], [ %conv407, %vaarg.end404 ], [ %conv374, %vaarg.end371 ], [ %conv353, %vaarg.end350 ], [ %conv320, %vaarg.end317 ], [ %conv299, %vaarg.end296 ], [ %conv266, %vaarg.end263 ], [ %conv209, %vaarg.end206 ], [ %conv152, %vaarg.end149 ], [ %conv83, %vaarg.end80 ], [ %conv, %vaarg.end13 ] %size.0 = phi i32 [ 0, %vaarg.end819 ], [ 0, %vaarg.end798 ], [ %376, %vaarg.end765 ], [ %336, %vaarg.end696 ], [ %323, %vaarg.end663 ], [ 0, %vaarg.end618 ], [ 0, %vaarg.end597 ], [ 0, %vaarg.end554 ], [ 0, %vaarg.end482 ], [ 0, %vaarg.end449 ], [ 0, %vaarg.end404 ], [ 0, %vaarg.end371 ], [ %196, %vaarg.end350 ], [ 0, %vaarg.end317 ], [ 0, %vaarg.end296 ], [ 0, %vaarg.end263 ], [ 0, %vaarg.end206 ], [ 0, %vaarg.end149 ], [ 0, %vaarg.end80 ], [ 0, %vaarg.end13 ] - %spec.select122 = call i32 @llvm.smax.i32(i32 %conv822.sink247, i32 0) + %spec.select122 = call i32 @llvm.smax.i32(i32 %conv822.sink243, i32 0) call void @llvm.va_end(ptr nonnull %ap) - %cmp830 = icmp slt i32 %conv822.sink247, 0 + %cmp830 = icmp slt i32 %conv822.sink243, 0 br i1 %cmp830, label %err_out, label %if.end833 if.end833: ; preds = %sw.epilog - %cmp823.not = icmp eq i32 %conv822.sink247, 0 + %cmp823.not = icmp eq i32 %conv822.sink243, 0 %spec.select123 = select i1 %cmp823.not, i32 0, i32 %type %call836 = call i64 (ptr, i32, i64, i32, ptr, ...) @v9fs_iov_marshal(ptr noundef nonnull %out_iovec, i32 noundef 1, i64 noundef 0, i32 noundef 0, ptr noundef nonnull @.str.24, i32 noundef %spec.select123, i32 noundef %spec.select122) #19 %399 = and i64 %call836, 4294967295 @@ -2498,7 +2494,7 @@ if.end841: ; preds = %if.end833 br i1 %cmp851.not, label %if.end854, label %close_error if.end854: ; preds = %if.end841 - switch i32 %type, label %err_out [ + switch i32 %type, label %default.unreachable [ i32 2, label %sw.bb855 i32 3, label %sw.bb855 i32 4, label %sw.bb862 @@ -2551,7 +2547,7 @@ if.else881: ; preds = %sw.bb874 %cmp883 = icmp slt i32 %call882, 0 br i1 %cmp883, label %close_error, label %err_out -err_out: ; preds = %sw.epilog.thread, %if.end854, %sw.bb855, %sw.bb862, %sw.bb868, %if.else881, %if.then875, %sw.epilog, %if.then +err_out: ; preds = %sw.bb855, %sw.bb862, %sw.bb868, %if.else881, %if.then875, %sw.epilog, %if.then call void @qemu_mutex_unlock_impl(ptr noundef nonnull %mutex, ptr noundef nonnull @.str.2, i32 noundef 626) #19 %403 = load i32, ptr %retval1, align 4 br label %return @@ -2576,8 +2572,6 @@ declare void @llvm.va_start(ptr) #12 declare i64 @v9fs_iov_marshal(ptr noundef, i32 noundef, i64 noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #2 -declare void @error_report(ptr noundef, ...) local_unnamed_addr #2 - ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn declare void @llvm.va_end(ptr) #12 @@ -3159,7 +3153,7 @@ declare i64 @v9fs_iov_unmarshal(ptr noundef, i32 noundef, i64 noundef, i32 nound ; Function Attrs: nofree declare noundef i64 @read(i32 noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #14 -; Function Attrs: mustprogress nofree nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable define internal fastcc void @prstat_to_stat(ptr nocapture noundef writeonly %stbuf, ptr nocapture noundef readonly %prstat) unnamed_addr #15 { entry: tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(144) %stbuf, i8 0, i64 144, i1 false) @@ -3302,7 +3296,7 @@ attributes #11 = { mustprogress nocallback nofree nounwind willreturn memory(arg attributes #12 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #13 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { nofree "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #15 = { mustprogress nofree nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #15 = { mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #16 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #17 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #18 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/qemu/optimized/hw_audio_ac97.c.ll b/bench/qemu/optimized/hw_audio_ac97.c.ll index 84725719933..8ec1660e705 100644 --- a/bench/qemu/optimized/hw_audio_ac97.c.ll +++ b/bench/qemu/optimized/hw_audio_ac97.c.ll @@ -107,7 +107,7 @@ target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: nounwind sspstrong uwtable define internal void @do_qemu_init_ac97_register_types() #0 { entry: - tail call void @register_module_init(ptr noundef nonnull @ac97_register_types, i32 noundef 3) #8 + tail call void @register_module_init(ptr noundef nonnull @ac97_register_types, i32 noundef 3) #7 ret void } @@ -116,8 +116,8 @@ declare void @register_module_init(ptr noundef, i32 noundef) local_unnamed_addr ; Function Attrs: nounwind sspstrong uwtable define internal void @ac97_register_types() #0 { entry: - %call = tail call ptr @type_register_static(ptr noundef nonnull @ac97_info) #8 - tail call void @deprecated_register_soundhw(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 0, ptr noundef nonnull @.str.2) #8 + %call = tail call ptr @type_register_static(ptr noundef nonnull @ac97_info) #7 + tail call void @deprecated_register_soundhw(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 0, ptr noundef nonnull @.str.2) #7 ret void } @@ -128,8 +128,8 @@ declare void @deprecated_register_soundhw(ptr noundef, ptr noundef, i32 noundef, ; Function Attrs: nounwind sspstrong uwtable define internal void @ac97_class_init(ptr noundef %klass, ptr nocapture readnone %data) #0 { entry: - %call.i = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE_CLASS) #8 - %call.i11 = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.7, i32 noundef 10, ptr noundef nonnull @__func__.PCI_DEVICE_CLASS) #8 + %call.i = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE_CLASS) #7 + %call.i11 = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.7, i32 noundef 10, ptr noundef nonnull @__func__.PCI_DEVICE_CLASS) #7 %realize = getelementptr inbounds %struct.PCIDeviceClass, ptr %call.i11, i64 0, i32 1 store ptr @ac97_realize, ptr %realize, align 8 %exit = getelementptr inbounds %struct.PCIDeviceClass, ptr %call.i11, i64 0, i32 2 @@ -150,7 +150,7 @@ entry: store ptr @.str.1, ptr %desc, align 8 %vmsd = getelementptr inbounds %struct.DeviceClass, ptr %call.i, i64 0, i32 10 store ptr @vmstate_ac97, ptr %vmsd, align 8 - tail call void @device_class_set_props(ptr noundef %call.i, ptr noundef nonnull @ac97_properties) #8 + tail call void @device_class_set_props(ptr noundef %call.i, ptr noundef nonnull @ac97_properties) #7 %reset = getelementptr inbounds %struct.DeviceClass, ptr %call.i, i64 0, i32 7 store ptr @ac97_on_reset, ptr %reset, align 8 ret void @@ -159,11 +159,11 @@ entry: ; Function Attrs: nounwind sspstrong uwtable define internal void @ac97_realize(ptr noundef %dev, ptr noundef %errp) #0 { entry: - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #8 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #7 %config = getelementptr inbounds %struct.PCIDevice, ptr %call.i, i64 0, i32 3 %0 = load ptr, ptr %config, align 8 %card = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 1 - %call2 = tail call zeroext i1 @AUD_register_card(ptr noundef nonnull @.str, ptr noundef nonnull %card, ptr noundef %errp) #8 + %call2 = tail call zeroext i1 @AUD_register_card(ptr noundef nonnull @.str, ptr noundef nonnull %card, ptr noundef %errp) #7 br i1 %call2, label %if.end, label %return if.end: ; preds = %entry @@ -178,13 +178,13 @@ if.end: ; preds = %entry %arrayidx16 = getelementptr i8, ptr %0, i64 61 store i8 1, ptr %arrayidx16, align 1 %io_nam = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 14 - tail call void @memory_region_init_io(ptr noundef nonnull %io_nam, ptr noundef nonnull %call.i, ptr noundef nonnull @ac97_io_nam_ops, ptr noundef nonnull %call.i, ptr noundef nonnull @.str.8, i64 noundef 1024) #8 + tail call void @memory_region_init_io(ptr noundef nonnull %io_nam, ptr noundef nonnull %call.i, ptr noundef nonnull @ac97_io_nam_ops, ptr noundef nonnull %call.i, ptr noundef nonnull @.str.8, i64 noundef 1024) #7 %io_nabm = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 15 - tail call void @memory_region_init_io(ptr noundef nonnull %io_nabm, ptr noundef nonnull %call.i, ptr noundef nonnull @ac97_io_nabm_ops, ptr noundef nonnull %call.i, ptr noundef nonnull @.str.9, i64 noundef 256) #8 - tail call void @pci_register_bar(ptr noundef nonnull %call.i, i32 noundef 0, i8 noundef zeroext 1, ptr noundef nonnull %io_nam) #8 - tail call void @pci_register_bar(ptr noundef nonnull %call.i, i32 noundef 1, i8 noundef zeroext 1, ptr noundef nonnull %io_nabm) #8 - %call.i27 = tail call ptr @object_dynamic_cast_assert(ptr noundef nonnull %call.i, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #8 - %call.i.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %call.i27, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #8 + tail call void @memory_region_init_io(ptr noundef nonnull %io_nabm, ptr noundef nonnull %call.i, ptr noundef nonnull @ac97_io_nabm_ops, ptr noundef nonnull %call.i, ptr noundef nonnull @.str.9, i64 noundef 256) #7 + tail call void @pci_register_bar(ptr noundef nonnull %call.i, i32 noundef 0, i8 noundef zeroext 1, ptr noundef nonnull %io_nam) #7 + tail call void @pci_register_bar(ptr noundef nonnull %call.i, i32 noundef 1, i8 noundef zeroext 1, ptr noundef nonnull %io_nabm) #7 + %call.i27 = tail call ptr @object_dynamic_cast_assert(ptr noundef nonnull %call.i, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #7 + %call.i.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %call.i27, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #7 %bm_regs.i = getelementptr inbounds %struct.AC97LinkState, ptr %call.i.i, i64 0, i32 6 tail call fastcc void @reset_bm_regs(ptr noundef %call.i.i, ptr noundef nonnull %bm_regs.i) %arrayidx2.i = getelementptr %struct.AC97LinkState, ptr %call.i.i, i64 0, i32 6, i64 1 @@ -201,18 +201,18 @@ return: ; preds = %entry, %if.end ; Function Attrs: nounwind sspstrong uwtable define internal void @ac97_exit(ptr noundef %dev) #0 { entry: - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #8 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #7 %card = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 1 %voice_pi = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 8 %0 = load ptr, ptr %voice_pi, align 8 - tail call void @AUD_close_in(ptr noundef nonnull %card, ptr noundef %0) #8 + tail call void @AUD_close_in(ptr noundef nonnull %card, ptr noundef %0) #7 %voice_po = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 9 %1 = load ptr, ptr %voice_po, align 16 - tail call void @AUD_close_out(ptr noundef nonnull %card, ptr noundef %1) #8 + tail call void @AUD_close_out(ptr noundef nonnull %card, ptr noundef %1) #7 %voice_mc = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 10 %2 = load ptr, ptr %voice_mc, align 8 - tail call void @AUD_close_in(ptr noundef nonnull %card, ptr noundef %2) #8 - tail call void @AUD_remove_card(ptr noundef nonnull %card) #8 + tail call void @AUD_close_in(ptr noundef nonnull %card, ptr noundef %2) #7 + tail call void @AUD_remove_card(ptr noundef nonnull %card) #7 ret void } @@ -221,7 +221,7 @@ declare void @device_class_set_props(ptr noundef, ptr noundef) local_unnamed_add ; Function Attrs: nounwind sspstrong uwtable define internal void @ac97_on_reset(ptr noundef %dev) #0 { entry: - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #8 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.10, i32 noundef 89, ptr noundef nonnull @.str.2) #7 %bm_regs = getelementptr inbounds %struct.AC97LinkState, ptr %call.i, i64 0, i32 6 tail call fastcc void @reset_bm_regs(ptr noundef %call.i, ptr noundef nonnull %bm_regs) %arrayidx2 = getelementptr %struct.AC97LinkState, ptr %call.i, i64 0, i32 6, i64 1 @@ -428,7 +428,7 @@ sw.bb.i.i: ; preds = %sw.bb4.i %conv8.i.i.i = trunc i16 %div7.i.i.i to i8 %voice_po.i.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 9 %14 = load ptr, ptr %voice_po.i.i.i, align 16 - tail call void @AUD_set_volume_out(ptr noundef %14, i32 noundef %or.i.i.i, i8 noundef zeroext %conv3.i14.i.i, i8 noundef zeroext %conv8.i.i.i) #8 + tail call void @AUD_set_volume_out(ptr noundef %14, i32 noundef %or.i.i.i, i8 noundef zeroext %conv3.i14.i.i, i8 noundef zeroext %conv8.i.i.i) #7 br label %sw.epilog sw.bb1.i.i: ; preds = %sw.bb4.i @@ -474,7 +474,7 @@ sw.bb1.i.i: ; preds = %sw.bb4.i %conv8.i48.i.i = trunc i16 %div7.i47.i.i to i8 %voice_po.i49.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 9 %21 = load ptr, ptr %voice_po.i49.i.i, align 16 - tail call void @AUD_set_volume_out(ptr noundef %21, i32 noundef %or.i38.i.i, i8 noundef zeroext %conv3.i43.i.i, i8 noundef zeroext %conv8.i48.i.i) #8 + tail call void @AUD_set_volume_out(ptr noundef %21, i32 noundef %or.i38.i.i, i8 noundef zeroext %conv3.i43.i.i, i8 noundef zeroext %conv8.i48.i.i) #7 br label %sw.epilog sw.bb4.i.i: ; preds = %sw.bb4.i @@ -494,7 +494,7 @@ sw.bb4.i.i: ; preds = %sw.bb4.i %div12.i.i57.i.i = mul nuw i8 %and9.i.i56.i.i, 17 %voice_pi.i.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 8 %25 = load ptr, ptr %voice_pi.i.i.i, align 8 - tail call void @AUD_set_volume_in(ptr noundef %25, i32 noundef %shr.i.i.i.i, i8 noundef zeroext %div12.i.i57.i.i, i8 noundef zeroext %narrow.i.i.i) #8 + tail call void @AUD_set_volume_in(ptr noundef %25, i32 noundef %shr.i.i.i.i, i8 noundef zeroext %div12.i.i57.i.i, i8 noundef zeroext %narrow.i.i.i) #7 br label %sw.epilog sw.bb5.i: ; preds = %sw.bb4 @@ -719,7 +719,7 @@ entry: %conv8.i.i = xor i8 %6, -1 %voice_po.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 9 %7 = load ptr, ptr %voice_po.i.i, align 16 - tail call void @AUD_set_volume_out(ptr noundef %7, i32 noundef 1, i8 noundef zeroext %conv3.i14.i, i8 noundef zeroext %conv8.i.i) #8 + tail call void @AUD_set_volume_out(ptr noundef %7, i32 noundef 1, i8 noundef zeroext %conv3.i14.i, i8 noundef zeroext %conv8.i.i) #7 store i8 8, ptr %arrayidx.i3.i.i, align 1 store i8 -120, ptr %arrayidx7.i5.i.i, align 1 %8 = load i8, ptr %arrayidx.i.i76, align 1 @@ -741,14 +741,14 @@ entry: %div7.i47.i = udiv i16 %mul6.i46.i, 255 %conv8.i48.i = trunc i16 %div7.i47.i to i8 %12 = load ptr, ptr %voice_po.i.i, align 16 - tail call void @AUD_set_volume_out(ptr noundef %12, i32 noundef 1, i8 noundef zeroext %conv3.i43.i, i8 noundef zeroext %conv8.i48.i) #8 + tail call void @AUD_set_volume_out(ptr noundef %12, i32 noundef 1, i8 noundef zeroext %conv3.i43.i, i8 noundef zeroext %conv8.i48.i) #7 %arrayidx.i51.i = getelementptr %struct.AC97LinkState, ptr %s, i64 0, i32 7, i64 28 store i8 8, ptr %arrayidx.i51.i, align 1 %arrayidx10.i53.i = getelementptr %struct.AC97LinkState, ptr %s, i64 0, i32 7, i64 29 store i8 -120, ptr %arrayidx10.i53.i, align 1 %voice_pi.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 8 %13 = load ptr, ptr %voice_pi.i.i, align 8 - tail call void @AUD_set_volume_in(ptr noundef %13, i32 noundef 1, i8 noundef zeroext -120, i8 noundef zeroext -120) #8 + tail call void @AUD_set_volume_in(ptr noundef %13, i32 noundef 1, i8 noundef zeroext -120, i8 noundef zeroext -120) #7 call fastcc void @reset_voices(ptr noundef %s, ptr noundef nonnull %active) ret void } @@ -771,7 +771,7 @@ entry: if.then: ; preds = %entry store i32 0, ptr %arrayidx, align 4 - switch i32 %index, label %if.end [ + switch i32 %index, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb3 i32 2, label %sw.bb7 @@ -781,7 +781,7 @@ sw.bb: ; preds = %if.then %card = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 1 %voice_pi = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 8 %0 = load ptr, ptr %voice_pi, align 8 - %call = call ptr @AUD_open_in(ptr noundef nonnull %card, ptr noundef %0, ptr noundef nonnull @.str.11, ptr noundef nonnull %s, ptr noundef nonnull @pi_callback, ptr noundef nonnull %as) #8 + %call = call ptr @AUD_open_in(ptr noundef nonnull %card, ptr noundef %0, ptr noundef nonnull @.str.11, ptr noundef nonnull %s, ptr noundef nonnull @pi_callback, ptr noundef nonnull %as) #7 store ptr %call, ptr %voice_pi, align 8 br label %if.end @@ -789,7 +789,7 @@ sw.bb3: ; preds = %if.then %card4 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 1 %voice_po = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 9 %1 = load ptr, ptr %voice_po, align 16 - %call5 = call ptr @AUD_open_out(ptr noundef nonnull %card4, ptr noundef %1, ptr noundef nonnull @.str.12, ptr noundef nonnull %s, ptr noundef nonnull @po_callback, ptr noundef nonnull %as) #8 + %call5 = call ptr @AUD_open_out(ptr noundef nonnull %card4, ptr noundef %1, ptr noundef nonnull @.str.12, ptr noundef nonnull %s, ptr noundef nonnull @po_callback, ptr noundef nonnull %as) #7 store ptr %call5, ptr %voice_po, align 16 br label %if.end @@ -797,13 +797,13 @@ sw.bb7: ; preds = %if.then %card8 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 1 %voice_mc = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 10 %2 = load ptr, ptr %voice_mc, align 8 - %call9 = call ptr @AUD_open_in(ptr noundef nonnull %card8, ptr noundef %2, ptr noundef nonnull @.str.13, ptr noundef nonnull %s, ptr noundef nonnull @mc_callback, ptr noundef nonnull %as) #8 + %call9 = call ptr @AUD_open_in(ptr noundef nonnull %card8, ptr noundef %2, ptr noundef nonnull @.str.13, ptr noundef nonnull %s, ptr noundef nonnull @mc_callback, ptr noundef nonnull %as) #7 store ptr %call9, ptr %voice_mc, align 8 br label %if.end if.else: ; preds = %entry store i32 %freq, ptr %arrayidx, align 4 - switch i32 %index, label %if.end [ + switch i32 %index, label %default.unreachable [ i32 0, label %sw.bb14 i32 1, label %sw.bb18 i32 2, label %sw.bb22 @@ -813,7 +813,7 @@ sw.bb14: ; preds = %if.else %card15 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 1 %voice_pi16 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 8 %3 = load ptr, ptr %voice_pi16, align 8 - tail call void @AUD_close_in(ptr noundef nonnull %card15, ptr noundef %3) #8 + tail call void @AUD_close_in(ptr noundef nonnull %card15, ptr noundef %3) #7 store ptr null, ptr %voice_pi16, align 8 br label %if.end @@ -821,7 +821,7 @@ sw.bb18: ; preds = %if.else %card19 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 1 %voice_po20 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 9 %4 = load ptr, ptr %voice_po20, align 16 - tail call void @AUD_close_out(ptr noundef nonnull %card19, ptr noundef %4) #8 + tail call void @AUD_close_out(ptr noundef nonnull %card19, ptr noundef %4) #7 store ptr null, ptr %voice_po20, align 16 br label %if.end @@ -829,11 +829,14 @@ sw.bb22: ; preds = %if.else %card23 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 1 %voice_mc24 = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 10 %5 = load ptr, ptr %voice_mc24, align 8 - tail call void @AUD_close_in(ptr noundef nonnull %card23, ptr noundef %5) #8 + tail call void @AUD_close_in(ptr noundef nonnull %card23, ptr noundef %5) #7 store ptr null, ptr %voice_mc24, align 8 br label %if.end -if.end: ; preds = %if.else, %sw.bb14, %sw.bb18, %sw.bb22, %if.then, %sw.bb, %sw.bb3, %sw.bb7 +default.unreachable: ; preds = %if.else, %if.then + unreachable + +if.end: ; preds = %sw.bb14, %sw.bb18, %sw.bb22, %sw.bb, %sw.bb3, %sw.bb7 ret void } @@ -871,11 +874,11 @@ entry: br i1 %cmp.i.not, label %if.else.i, label %if.then.i if.then.i: ; preds = %entry - %call.i = call ptr @AUD_open_in(ptr noundef nonnull %card15.i, ptr noundef %2, ptr noundef nonnull @.str.11, ptr noundef nonnull %s, ptr noundef nonnull @pi_callback, ptr noundef nonnull %as.i) #8 + %call.i = call ptr @AUD_open_in(ptr noundef nonnull %card15.i, ptr noundef %2, ptr noundef nonnull @.str.11, ptr noundef nonnull %s, ptr noundef nonnull @pi_callback, ptr noundef nonnull %as.i) #7 br label %open_voice.exit if.else.i: ; preds = %entry - tail call void @AUD_close_in(ptr noundef nonnull %card15.i, ptr noundef %2) #8 + tail call void @AUD_close_in(ptr noundef nonnull %card15.i, ptr noundef %2) #7 br label %open_voice.exit open_voice.exit: ; preds = %if.then.i, %if.else.i @@ -884,7 +887,7 @@ open_voice.exit: ; preds = %if.then.i, %if.else call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %as.i) %3 = load i8, ptr %active, align 1 %conv1 = zext i8 %3 to i32 - call void @AUD_set_active_in(ptr noundef %call.i.sink, i32 noundef %conv1) #8 + call void @AUD_set_active_in(ptr noundef %call.i.sink, i32 noundef %conv1) #7 %arrayidx.i15 = getelementptr %struct.AC97LinkState, ptr %s, i64 0, i32 7, i64 44 %4 = load i8, ptr %arrayidx.i15, align 1 %conv3.i16 = zext i8 %4 to i32 @@ -910,11 +913,11 @@ open_voice.exit: ; preds = %if.then.i, %if.else br i1 %cmp.i25.not, label %if.else.i27, label %if.then.i28 if.then.i28: ; preds = %open_voice.exit - %call5.i = call ptr @AUD_open_out(ptr noundef nonnull %card19.i, ptr noundef %6, ptr noundef nonnull @.str.12, ptr noundef nonnull %s, ptr noundef nonnull @po_callback, ptr noundef nonnull %as.i21) #8 + %call5.i = call ptr @AUD_open_out(ptr noundef nonnull %card19.i, ptr noundef %6, ptr noundef nonnull @.str.12, ptr noundef nonnull %s, ptr noundef nonnull @po_callback, ptr noundef nonnull %as.i21) #7 br label %open_voice.exit29 if.else.i27: ; preds = %open_voice.exit - call void @AUD_close_out(ptr noundef nonnull %card19.i, ptr noundef %6) #8 + call void @AUD_close_out(ptr noundef nonnull %card19.i, ptr noundef %6) #7 br label %open_voice.exit29 open_voice.exit29: ; preds = %if.then.i28, %if.else.i27 @@ -924,7 +927,7 @@ open_voice.exit29: ; preds = %if.then.i28, %if.el %arrayidx4 = getelementptr i8, ptr %active, i64 1 %7 = load i8, ptr %arrayidx4, align 1 %conv5 = zext i8 %7 to i32 - call void @AUD_set_active_out(ptr noundef %call5.i.sink, i32 noundef %conv5) #8 + call void @AUD_set_active_out(ptr noundef %call5.i.sink, i32 noundef %conv5) #7 %arrayidx.i31 = getelementptr %struct.AC97LinkState, ptr %s, i64 0, i32 7, i64 52 %8 = load i8, ptr %arrayidx.i31, align 1 %conv3.i32 = zext i8 %8 to i32 @@ -950,11 +953,11 @@ open_voice.exit29: ; preds = %if.then.i28, %if.el br i1 %cmp.i41.not, label %if.else.i43, label %if.then.i44 if.then.i44: ; preds = %open_voice.exit29 - %call9.i = call ptr @AUD_open_in(ptr noundef nonnull %card23.i, ptr noundef %10, ptr noundef nonnull @.str.13, ptr noundef nonnull %s, ptr noundef nonnull @mc_callback, ptr noundef nonnull %as.i37) #8 + %call9.i = call ptr @AUD_open_in(ptr noundef nonnull %card23.i, ptr noundef %10, ptr noundef nonnull @.str.13, ptr noundef nonnull %s, ptr noundef nonnull @mc_callback, ptr noundef nonnull %as.i37) #7 br label %open_voice.exit45 if.else.i43: ; preds = %open_voice.exit29 - call void @AUD_close_in(ptr noundef nonnull %card23.i, ptr noundef %10) #8 + call void @AUD_close_in(ptr noundef nonnull %card23.i, ptr noundef %10) #7 br label %open_voice.exit45 open_voice.exit45: ; preds = %if.then.i44, %if.else.i43 @@ -964,7 +967,7 @@ open_voice.exit45: ; preds = %if.then.i44, %if.el %arrayidx8 = getelementptr i8, ptr %active, i64 2 %11 = load i8, ptr %arrayidx8, align 1 %conv9 = zext i8 %11 to i32 - call void @AUD_set_active_in(ptr noundef %call9.i.sink, i32 noundef %conv9) #8 + call void @AUD_set_active_in(ptr noundef %call9.i.sink, i32 noundef %conv9) #7 ret void } @@ -1021,7 +1024,7 @@ entry: br i1 %tobool.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.14, i32 noundef %index, i32 noundef %0) #8 + tail call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.14, i32 noundef %index, i32 noundef %0) #7 br label %while.end if.end: ; preds = %entry @@ -1032,8 +1035,8 @@ if.end: ; preds = %entry br i1 %tobool6.not, label %while.cond.preheader, label %if.then7 while.cond.preheader: ; preds = %if.end - %tobool14148 = icmp ugt i32 %elapsed, 1 - br i1 %tobool14148, label %while.body.lr.ph, label %while.end + %tobool14144 = icmp ugt i32 %elapsed, 1 + br i1 %tobool14144, label %while.body.lr.ph, label %while.end while.body.lr.ph: ; preds = %while.cond.preheader %bd_valid = getelementptr %struct.AC97LinkState, ptr %s, i64 0, i32 6, i64 %idxprom, i32 7 @@ -1043,6 +1046,7 @@ while.body.lr.ph: ; preds = %while.cond.preheade %arrayidx3.i = getelementptr inbounds [8 x i8], ptr %b.i, i64 0, i64 4 %ctl_len.i = getelementptr %struct.AC97LinkState, ptr %s, i64 0, i32 6, i64 %idxprom, i32 8, i32 1 %picb.i = getelementptr %struct.AC97LinkState, ptr %s, i64 0, i32 6, i64 %idxprom, i32 4 + %switch = icmp eq i32 %index, 1 %cmp.i = icmp eq i32 %index, 2 %voice_mc.i = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 10 %voice_pi.i = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 8 @@ -1131,7 +1135,7 @@ while.body17.i: ; preds = %if.end24.i, %while. %temp.022.i = phi i32 [ %7, %while.body.i ], [ %sub.i, %if.end24.i ] %8 = load ptr, ptr %voice_po.i, align 16 %conv20.i = sext i32 %temp.022.i to i64 - %call.i = tail call i64 @AUD_write(ptr noundef %8, ptr noundef nonnull %silence18.i, i64 noundef %conv20.i) #8 + %call.i = tail call i64 @AUD_write(ptr noundef %8, ptr noundef nonnull %silence18.i, i64 noundef %conv20.i) #7 %conv21.i = trunc i64 %call.i to i32 %tobool22.not.i = icmp eq i32 %conv21.i, 0 br i1 %tobool22.not.i, label %while.end, label %if.end24.i @@ -1143,7 +1147,7 @@ if.end24.i: ; preds = %while.body17.i br i1 %tobool16.not.i, label %while.cond.loopexit.i, label %while.body17.i, !llvm.loop !8 while.body: ; preds = %while.body.lr.ph, %if.end87 - %elapsed.addr.0150 = phi i32 [ %elapsed, %while.body.lr.ph ], [ %elapsed.addr.1140, %if.end87 ] + %elapsed.addr.0146 = phi i32 [ %elapsed, %while.body.lr.ph ], [ %elapsed.addr.1, %if.end87 ] %9 = load i32, ptr %bd_valid, align 4 %tobool16.not = icmp eq i32 %9, 0 br i1 %tobool16.not, label %if.then17, label %while.body.if.end18_crit_edge @@ -1160,9 +1164,9 @@ if.then17: ; preds = %while.body %mul.i = shl nuw nsw i32 %conv.i, 3 %add.i = add i32 %mul.i, %10 %conv1.i = zext i32 %add.i to i64 - call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #8, !srcloc !9 + call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #7, !srcloc !9 fence seq_cst - %call.i.i.i.i.i = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv1.i, i32 1, ptr noundef nonnull %b.i, i64 noundef 8, i1 noundef zeroext false) #8 + %call.i.i.i.i.i = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv1.i, i32 1, ptr noundef nonnull %b.i, i64 noundef 8, i1 noundef zeroext false) #7 store i32 1, ptr %bd_valid, align 4 %12 = load i32, ptr %b.i, align 4 %and.i57 = and i32 %12, -4 @@ -1206,9 +1210,9 @@ if.end28: ; preds = %if.then20 %mul.i61 = shl nuw nsw i32 %conv.i60, 3 %add.i62 = add i32 %mul.i61, %23 %conv1.i63 = zext i32 %add.i62 to i64 - call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #8, !srcloc !9 + call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #7, !srcloc !9 fence seq_cst - %call.i.i.i.i.i65 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv1.i63, i32 1, ptr noundef nonnull %b.i58, i64 noundef 8, i1 noundef zeroext false) #8 + %call.i.i.i.i.i65 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv1.i63, i32 1, ptr noundef nonnull %b.i58, i64 noundef 8, i1 noundef zeroext false) #7 store i32 1, ptr %bd_valid, align 4 %24 = load i32, ptr %b.i58, align 4 %and.i67 = and i32 %24, -4 @@ -1222,17 +1226,13 @@ if.end28: ; preds = %if.then20 br label %while.end if.end38: ; preds = %if.end18 - switch i32 %index, label %if.end87 [ - i32 1, label %while.cond.preheader.i - i32 0, label %while.cond.preheader.i94 - i32 2, label %while.cond.preheader.i94 - ] + br i1 %switch, label %while.cond.preheader.i, label %while.cond.preheader.i94 while.cond.preheader.i: ; preds = %if.end38 call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %tmpbuf.i) %conv.i75 = zext i16 %14 to i32 %shl.i = shl nuw nsw i32 %conv.i75, 1 - %cond.i = call i32 @llvm.umin.i32(i32 %shl.i, i32 %elapsed.addr.0150) + %cond.i = call i32 @llvm.umin.i32(i32 %shl.i, i32 %elapsed.addr.0146) %26 = load i32, ptr %bd.i, align 4 br label %while.body.i79 @@ -1243,11 +1243,11 @@ while.body.i79: ; preds = %if.end21.i, %while. %27 = call i32 @llvm.umin.i32(i32 %temp.033.i, i32 4096) %conv13.i = zext i32 %addr.034.i to i64 %conv14.i = zext nneg i32 %27 to i64 - call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #8, !srcloc !9 + call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #7, !srcloc !9 fence seq_cst - %call.i.i.i.i.i80 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv13.i, i32 1, ptr noundef nonnull %tmpbuf.i, i64 noundef %conv14.i, i1 noundef zeroext false) #8 + %call.i.i.i.i.i80 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv13.i, i32 1, ptr noundef nonnull %tmpbuf.i, i64 noundef %conv14.i, i1 noundef zeroext false) #7 %28 = load ptr, ptr %voice_po.i78, align 16 - %call17.i = call i64 @AUD_write(ptr noundef %28, ptr noundef nonnull %tmpbuf.i, i64 noundef %conv14.i) #8 + %call17.i = call i64 @AUD_write(ptr noundef %28, ptr noundef nonnull %tmpbuf.i, i64 noundef %conv14.i) #7 %conv18.i = trunc i64 %call17.i to i32 %tobool19.not.i = icmp eq i32 %conv18.i, 0 br i1 %tobool19.not.i, label %write_audio.exit, label %if.end21.i @@ -1280,16 +1280,16 @@ write_audio.exit: ; preds = %while.body.i79, %wr %written.030.i = phi i32 [ %add22.i, %write_audio.exit.sink.split ], [ %written.032.i, %while.body.i79 ] %addr.028.i = phi i32 [ %add.i82, %write_audio.exit.sink.split ], [ %addr.034.i, %while.body.i79 ] store i32 %addr.028.i, ptr %bd.i, align 4 - %.pre158 = load i16, ptr %picb.i, align 4 + %.pre155 = load i16, ptr %picb.i, align 4 call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %tmpbuf.i) br label %sw.epilog53 -while.cond.preheader.i94: ; preds = %if.end38, %if.end38 +while.cond.preheader.i94: ; preds = %if.end38 call void @llvm.lifetime.start.p0(i64 4096, ptr nonnull %tmpbuf.i87) %cond.i92 = load ptr, ptr %cond.in.i, align 8 %conv.i90 = zext i16 %14 to i32 %shl.i91 = shl nuw nsw i32 %conv.i90, 1 - %cond8.i = call i32 @llvm.umin.i32(i32 %shl.i91, i32 %elapsed.addr.0150) + %cond8.i = call i32 @llvm.umin.i32(i32 %shl.i91, i32 %elapsed.addr.0146) %30 = load i32, ptr %bd.i, align 4 br label %while.body.i96 @@ -1299,7 +1299,7 @@ while.body.i96: ; preds = %if.end24.i101, %whi %nread.027.i = phi i32 [ 0, %while.cond.preheader.i94 ], [ %add29.i, %if.end24.i101 ] %31 = call i32 @llvm.umin.i32(i32 %temp.028.i, i32 4096) %conv20.i97 = zext nneg i32 %31 to i64 - %call.i98 = call i64 @AUD_read(ptr noundef %cond.i92, ptr noundef nonnull %tmpbuf.i87, i64 noundef %conv20.i97) #8 + %call.i98 = call i64 @AUD_read(ptr noundef %cond.i92, ptr noundef nonnull %tmpbuf.i87, i64 noundef %conv20.i97) #7 %conv21.i99 = trunc i64 %call.i98 to i32 %tobool22.not.i100 = icmp eq i32 %conv21.i99, 0 br i1 %tobool22.not.i100, label %read_audio.exit, label %if.end24.i101 @@ -1308,9 +1308,9 @@ if.end24.i101: ; preds = %while.body.i96 %conv25.i = zext i32 %addr.029.i to i64 %sext.i = shl i64 %call.i98, 32 %conv27.i = ashr exact i64 %sext.i, 32 - call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #8, !srcloc !9 + call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #7, !srcloc !9 fence seq_cst - %call.i.i.i.i.i102 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv25.i, i32 1, ptr noundef nonnull %tmpbuf.i87, i64 noundef %conv27.i, i1 noundef zeroext true) #8 + %call.i.i.i.i.i102 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv25.i, i32 1, ptr noundef nonnull %tmpbuf.i87, i64 noundef %conv27.i, i1 noundef zeroext true) #7 %sub.i103 = sub i32 %temp.028.i, %conv21.i99 %add.i104 = add i32 %addr.029.i, %conv21.i99 %add29.i = add i32 %nread.027.i, %conv21.i99 @@ -1322,20 +1322,20 @@ read_audio.exit: ; preds = %if.end24.i101, %whi %nread.026.i = phi i32 [ %add29.i, %if.end24.i101 ], [ %nread.027.i, %while.body.i96 ] %addr.024.i = phi i32 [ %add.i104, %if.end24.i101 ], [ %addr.029.i, %while.body.i96 ] store i32 %addr.024.i, ptr %bd.i, align 4 - %.pre157 = load i16, ptr %picb.i, align 4 + %.pre154 = load i16, ptr %picb.i, align 4 call void @llvm.lifetime.end.p0(i64 4096, ptr nonnull %tmpbuf.i87) br label %sw.epilog53 sw.epilog53: ; preds = %read_audio.exit, %write_audio.exit %nread.026.i.sink = phi i32 [ %nread.026.i, %read_audio.exit ], [ %written.030.i, %write_audio.exit ] - %.pre157.sink = phi i16 [ %.pre157, %read_audio.exit ], [ %.pre158, %write_audio.exit ] + %.pre154.sink = phi i16 [ %.pre154, %read_audio.exit ], [ %.pre155, %write_audio.exit ] %stop.5 = phi i32 [ %stop.3, %read_audio.exit ], [ %stop.1, %write_audio.exit ] %shr48 = lshr i32 %nread.026.i.sink, 1 %32 = trunc i32 %shr48 to i16 - %conv52 = sub i16 %.pre157.sink, %32 - %elapsed.addr.1 = sub i32 %elapsed.addr.0150, %nread.026.i.sink + %conv52 = sub i16 %.pre154.sink, %32 + %elapsed.addr.1 = sub i32 %elapsed.addr.0146, %nread.026.i.sink store i16 %conv52, ptr %picb.i, align 4 - %tobool55.not = icmp eq i16 %.pre157.sink, %32 + %tobool55.not = icmp eq i16 %.pre154.sink, %32 br i1 %tobool55.not, label %if.then56, label %if.end87 if.then56: ; preds = %sw.epilog53 @@ -1370,9 +1370,9 @@ if.else: ; preds = %if.then56 %mul.i111 = shl nuw nsw i32 %conv.i110, 3 %add.i112 = add i32 %mul.i111, %43 %conv1.i113 = zext i32 %add.i112 to i64 - call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #8, !srcloc !9 + call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #7, !srcloc !9 fence seq_cst - %call.i.i.i.i.i115 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv1.i113, i32 1, ptr noundef nonnull %b.i108, i64 noundef 8, i1 noundef zeroext false) #8 + %call.i.i.i.i.i115 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i, i64 noundef %conv1.i113, i32 1, ptr noundef nonnull %b.i108, i64 noundef 8, i1 noundef zeroext false) #7 store i32 1, ptr %bd_valid, align 4 %44 = load i32, ptr %b.i108, align 4 %and.i117 = and i32 %44, -4 @@ -1411,7 +1411,7 @@ if.end25.thread.i: ; preds = %if.then.i125 %49 = load i32, ptr %glob_sta.i, align 4 %and37.i = and i32 %49, %not.i store i32 %and37.i, ptr %glob_sta.i, align 4 - call void @pci_set_irq(ptr noundef nonnull %s, i32 noundef 0) #8 + call void @pci_set_irq(ptr noundef nonnull %s, i32 noundef 0) #7 br label %if.end87 if.else.i126: ; preds = %if.then.i125 @@ -1452,13 +1452,12 @@ if.then27.i129: ; preds = %if.end20.i, %if.end %56 = load i32, ptr %glob_sta.i, align 4 %or.i135 = or i32 %56, %55 store i32 %or.i135, ptr %glob_sta.i, align 4 - call void @pci_set_irq(ptr noundef nonnull %s, i32 noundef 1) #8 + call void @pci_set_irq(ptr noundef nonnull %s, i32 noundef 1) #7 br label %if.end87 -if.end87: ; preds = %if.end38, %if.then27.i129, %if.end20.i, %if.end25.thread.i, %if.end20.thread.i, %sw.epilog53 - %elapsed.addr.1140 = phi i32 [ %elapsed.addr.1, %sw.epilog53 ], [ %elapsed.addr.1, %if.end20.thread.i ], [ %elapsed.addr.1, %if.end25.thread.i ], [ %elapsed.addr.1, %if.end20.i ], [ %elapsed.addr.1, %if.then27.i129 ], [ %elapsed.addr.0150, %if.end38 ] - %stop.7 = phi i32 [ %stop.5, %sw.epilog53 ], [ %stop.6, %if.end20.thread.i ], [ %stop.6, %if.end25.thread.i ], [ %stop.6, %if.end20.i ], [ %stop.6, %if.then27.i129 ], [ 0, %if.end38 ] - %tobool14 = icmp ugt i32 %elapsed.addr.1140, 1 +if.end87: ; preds = %if.then27.i129, %if.end20.i, %if.end25.thread.i, %if.end20.thread.i, %sw.epilog53 + %stop.7 = phi i32 [ %stop.5, %sw.epilog53 ], [ %stop.6, %if.end20.thread.i ], [ %stop.6, %if.end25.thread.i ], [ %stop.6, %if.end20.i ], [ %stop.6, %if.then27.i129 ] + %tobool14 = icmp ugt i32 %elapsed.addr.1, 1 %tobool15.not = icmp eq i32 %stop.7, 0 %57 = and i1 %tobool14, %tobool15.not br i1 %57, label %while.body, label %while.end, !llvm.loop !12 @@ -1477,8 +1476,8 @@ declare i64 @AUD_read(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr declare void @pci_set_irq(ptr noundef, i32 noundef) local_unnamed_addr #1 -; Function Attrs: mustprogress nofree nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable -define internal i64 @nabm_read(ptr nocapture noundef %opaque, i64 noundef %addr, i32 noundef %size) #4 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable +define internal i64 @nabm_read(ptr nocapture noundef %opaque, i64 noundef %addr, i32 noundef %size) #2 { entry: %conv = zext i32 %size to i64 %div = udiv i64 %addr, %conv @@ -1739,9 +1738,9 @@ if.then.i: ; preds = %land.lhs.true.i %add.i.i = add i32 %7, %mul.i.i %conv1.i.i = zext i32 %add.i.i to i64 %bus_master_as.i.i.i.i.i = getelementptr inbounds %struct.PCIDevice, ptr %opaque, i64 0, i32 12 - tail call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #8, !srcloc !9 + tail call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #7, !srcloc !9 fence seq_cst - %call.i.i.i.i.i.i = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i.i, i64 noundef %conv1.i.i, i32 1, ptr noundef nonnull %b.i.i, i64 noundef 8, i1 noundef zeroext false) #8 + %call.i.i.i.i.i.i = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i.i, i64 noundef %conv1.i.i, i32 1, ptr noundef nonnull %b.i.i, i64 noundef 8, i1 noundef zeroext false) #7 %bd_valid.i.i = getelementptr %struct.AC97LinkState, ptr %opaque, i64 0, i32 6, i64 %idxprom.i, i32 7 store i32 1, ptr %bd_valid.i.i, align 4 %8 = load i32, ptr %b.i.i, align 4 @@ -1796,23 +1795,23 @@ if.then31.i: ; preds = %if.else.i sw.bb.i.i: ; preds = %if.then31.i %voice_pi.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 8 %12 = load ptr, ptr %voice_pi.i.i, align 8 - tail call void @AUD_set_active_in(ptr noundef %12, i32 noundef 0) #8 + tail call void @AUD_set_active_in(ptr noundef %12, i32 noundef 0) #7 br label %voice_set_active.exit.i sw.bb1.i.i: ; preds = %if.then31.i %voice_po.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 9 %13 = load ptr, ptr %voice_po.i.i, align 16 - tail call void @AUD_set_active_out(ptr noundef %13, i32 noundef 0) #8 + tail call void @AUD_set_active_out(ptr noundef %13, i32 noundef 0) #7 br label %voice_set_active.exit.i sw.bb2.i.i: ; preds = %if.then31.i %voice_mc.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 10 %14 = load ptr, ptr %voice_mc.i.i, align 8 - tail call void @AUD_set_active_in(ptr noundef %14, i32 noundef 0) #8 + tail call void @AUD_set_active_in(ptr noundef %14, i32 noundef 0) #7 br label %voice_set_active.exit.i sw.default.i.i: ; preds = %if.then31.i - tail call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.15, i32 noundef %shr17.i) #8 + tail call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.15, i32 noundef %shr17.i) #7 br label %voice_set_active.exit.i voice_set_active.exit.i: ; preds = %sw.default.i.i, %sw.bb2.i.i, %sw.bb1.i.i, %sw.bb.i.i @@ -1837,9 +1836,9 @@ if.else37.i: ; preds = %if.else.i %add.i45.i = add i32 %20, %mul.i44.i %conv1.i46.i = zext i32 %add.i45.i to i64 %bus_master_as.i.i.i.i47.i = getelementptr inbounds %struct.PCIDevice, ptr %opaque, i64 0, i32 12 - tail call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #8, !srcloc !9 + tail call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #7, !srcloc !9 fence seq_cst - %call.i.i.i.i.i48.i = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i47.i, i64 noundef %conv1.i46.i, i32 1, ptr noundef nonnull %b.i41.i, i64 noundef 8, i1 noundef zeroext false) #8 + %call.i.i.i.i.i48.i = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i.i47.i, i64 noundef %conv1.i46.i, i32 1, ptr noundef nonnull %b.i41.i, i64 noundef 8, i1 noundef zeroext false) #7 %bd_valid.i49.i = getelementptr %struct.AC97LinkState, ptr %opaque, i64 0, i32 6, i64 %idxprom19.i, i32 7 store i32 1, ptr %bd_valid.i49.i, align 4 %21 = load i32, ptr %b.i41.i, align 4 @@ -1867,23 +1866,23 @@ if.else37.i: ; preds = %if.else.i sw.bb.i60.i: ; preds = %if.else37.i %voice_pi.i61.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 8 %25 = load ptr, ptr %voice_pi.i61.i, align 8 - call void @AUD_set_active_in(ptr noundef %25, i32 noundef 1) #8 + call void @AUD_set_active_in(ptr noundef %25, i32 noundef 1) #7 br label %sw.epilog sw.bb1.i58.i: ; preds = %if.else37.i %voice_po.i59.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 9 %26 = load ptr, ptr %voice_po.i59.i, align 16 - call void @AUD_set_active_out(ptr noundef %26, i32 noundef 1) #8 + call void @AUD_set_active_out(ptr noundef %26, i32 noundef 1) #7 br label %sw.epilog sw.bb2.i56.i: ; preds = %if.else37.i %voice_mc.i57.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 10 %27 = load ptr, ptr %voice_mc.i57.i, align 8 - call void @AUD_set_active_in(ptr noundef %27, i32 noundef 1) #8 + call void @AUD_set_active_in(ptr noundef %27, i32 noundef 1) #7 br label %sw.epilog sw.default.i62.i: ; preds = %if.else37.i - call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.15, i32 noundef %shr17.i) #8 + call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.15, i32 noundef %shr17.i) #7 br label %sw.epilog sw.bb59.i: ; preds = %sw.bb, %sw.bb, %sw.bb @@ -1923,7 +1922,7 @@ if.end25.thread.i.i: ; preds = %if.then.i.i %33 = load i32, ptr %glob_sta36.i.i, align 4 %and37.i.i = and i32 %33, %not.i.i store i32 %and37.i.i, ptr %glob_sta36.i.i, align 4 - tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 0) #8 + tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 0) #7 br label %sw.epilog if.else.i.i: ; preds = %if.then.i.i @@ -1968,7 +1967,7 @@ if.then27.i.i: ; preds = %if.end20.i.i, %if.e %40 = load i32, ptr %glob_sta.i.i, align 4 %or.i.i = or i32 %40, %39 store i32 %or.i.i, ptr %glob_sta.i.i, align 4 - tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 1) #8 + tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 1) #7 br label %sw.epilog sw.bb4: ; preds = %if.end @@ -2017,7 +2016,7 @@ if.end25.thread.i.i39: ; preds = %if.then.i.i17 %46 = load i32, ptr %glob_sta36.i.i43, align 4 %and37.i.i44 = and i32 %46, %not.i.i42 store i32 %and37.i.i44, ptr %glob_sta36.i.i43, align 4 - tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 0) #8 + tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 0) #7 br label %sw.epilog if.else.i.i19: ; preds = %if.then.i.i17 @@ -2062,7 +2061,7 @@ if.then27.i.i33: ; preds = %if.end20.i.i37, %if %53 = load i32, ptr %glob_sta.i.i35, align 4 %or.i.i36 = or i32 %53, %52 store i32 %or.i.i36, ptr %glob_sta.i.i35, align 4 - tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 1) #8 + tail call void @pci_set_irq(ptr noundef nonnull %opaque, i32 noundef 1) #7 br label %sw.epilog sw.bb7: ; preds = %if.end @@ -2142,7 +2141,7 @@ if.then.i: ; preds = %entry %3 = load i32, ptr %glob_sta36.i, align 4 %and37.i = and i32 %3, %not.i store i32 %and37.i, ptr %glob_sta36.i, align 4 - tail call void @pci_set_irq(ptr noundef %s, i32 noundef 0) #8 + tail call void @pci_set_irq(ptr noundef %s, i32 noundef 0) #7 br label %update_sr.exit update_sr.exit: ; preds = %if.end20.thread.i, %if.then.i @@ -2171,23 +2170,23 @@ update_sr.exit: ; preds = %if.end20.thread.i, sw.bb.i: ; preds = %update_sr.exit %voice_pi.i = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 8 %6 = load ptr, ptr %voice_pi.i, align 8 - tail call void @AUD_set_active_in(ptr noundef %6, i32 noundef 0) #8 + tail call void @AUD_set_active_in(ptr noundef %6, i32 noundef 0) #7 br label %voice_set_active.exit sw.bb1.i: ; preds = %update_sr.exit %voice_po.i = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 9 %7 = load ptr, ptr %voice_po.i, align 16 - tail call void @AUD_set_active_out(ptr noundef %7, i32 noundef 0) #8 + tail call void @AUD_set_active_out(ptr noundef %7, i32 noundef 0) #7 br label %voice_set_active.exit sw.bb2.i: ; preds = %update_sr.exit %voice_mc.i = getelementptr inbounds %struct.AC97LinkState, ptr %s, i64 0, i32 10 %8 = load ptr, ptr %voice_mc.i, align 8 - tail call void @AUD_set_active_in(ptr noundef %8, i32 noundef 0) #8 + tail call void @AUD_set_active_in(ptr noundef %8, i32 noundef 0) #7 br label %voice_set_active.exit sw.default.i: ; preds = %update_sr.exit - tail call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.15, i32 noundef %conv3) #8 + tail call void (ptr, ptr, ...) @AUD_log(ptr noundef nonnull @.str, ptr noundef nonnull @.str.15, i32 noundef %conv3) #7 br label %voice_set_active.exit voice_set_active.exit: ; preds = %sw.bb.i, %sw.bb1.i, %sw.bb2.i, %sw.default.i @@ -2199,7 +2198,7 @@ voice_set_active.exit: ; preds = %sw.bb.i, %sw.bb1.i, declare void @AUD_remove_card(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @ac97_post_load(ptr noundef %opaque, i32 %version_id) #0 { +define internal noundef i32 @ac97_post_load(ptr noundef %opaque, i32 %version_id) #0 { entry: %active = alloca [3 x i8], align 1 %arrayidx.i = getelementptr %struct.AC97LinkState, ptr %opaque, i64 0, i32 7, i64 26 @@ -2258,7 +2257,7 @@ entry: %conv8.i.i = trunc i16 %div7.i.i to i8 %voice_po.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 9 %9 = load ptr, ptr %voice_po.i.i, align 16 - tail call void @AUD_set_volume_out(ptr noundef %9, i32 noundef %or.i.i, i8 noundef zeroext %conv3.i14.i, i8 noundef zeroext %conv8.i.i) #8 + tail call void @AUD_set_volume_out(ptr noundef %9, i32 noundef %or.i.i, i8 noundef zeroext %conv3.i14.i, i8 noundef zeroext %conv8.i.i) #7 %10 = load i8, ptr %arrayidx.i3.i.i, align 1 %conv3.i25 = zext i8 %10 to i16 %11 = load i8, ptr %arrayidx7.i5.i.i, align 1 @@ -2301,7 +2300,7 @@ entry: %div7.i47.i = udiv i16 %mul6.i46.i, 255 %conv8.i48.i = trunc i16 %div7.i47.i to i8 %17 = load ptr, ptr %voice_po.i.i, align 16 - tail call void @AUD_set_volume_out(ptr noundef %17, i32 noundef %or.i38.i, i8 noundef zeroext %conv3.i43.i, i8 noundef zeroext %conv8.i48.i) #8 + tail call void @AUD_set_volume_out(ptr noundef %17, i32 noundef %or.i38.i, i8 noundef zeroext %conv3.i43.i, i8 noundef zeroext %conv8.i48.i) #7 %arrayidx.i31 = getelementptr %struct.AC97LinkState, ptr %opaque, i64 0, i32 7, i64 28 %18 = load i16, ptr %arrayidx.i31, align 1 %arrayidx7.i33 = getelementptr %struct.AC97LinkState, ptr %opaque, i64 0, i32 7, i64 29 @@ -2318,7 +2317,7 @@ entry: %div12.i.i57.i = mul nuw i8 %and9.i.i56.i, 17 %voice_pi.i.i = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 8 %21 = load ptr, ptr %voice_pi.i.i, align 8 - tail call void @AUD_set_volume_in(ptr noundef %21, i32 noundef %shr.i.i.i, i8 noundef zeroext %div12.i.i57.i, i8 noundef zeroext %narrow.i.i) #8 + tail call void @AUD_set_volume_in(ptr noundef %21, i32 noundef %shr.i.i.i, i8 noundef zeroext %div12.i.i57.i, i8 noundef zeroext %narrow.i.i) #7 %cr = getelementptr inbounds %struct.AC97LinkState, ptr %opaque, i64 0, i32 6, i64 0, i32 6 %22 = load i8, ptr %cr, align 1 %23 = and i8 %22, 1 @@ -2342,33 +2341,32 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define internal zeroext i1 @is_version_2(ptr nocapture readnone %opaque, i32 noundef %version_id) #5 { +define internal noundef zeroext i1 @is_version_2(ptr nocapture readnone %opaque, i32 noundef %version_id) #4 { entry: %cmp = icmp eq i32 %version_id, 2 ret i1 %cmp } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.fshl.i32(i32, i32, i32) #6 +declare i32 @llvm.fshl.i32(i32, i32, i32) #5 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #6 +declare i32 @llvm.umin.i32(i32, i32) #5 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #7 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #6 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #7 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #6 attributes #0 = { nounwind sspstrong uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #4 = { mustprogress nofree nosync nounwind sspstrong willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #7 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #8 = { nounwind } +attributes #4 = { mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #6 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #7 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/qemu/optimized/hw_nvme_ctrl.c.ll b/bench/qemu/optimized/hw_nvme_ctrl.c.ll index a198bf511cd..e7d7f1961b8 100644 --- a/bench/qemu/optimized/hw_nvme_ctrl.c.ll +++ b/bench/qemu/optimized/hw_nvme_ctrl.c.ll @@ -945,7 +945,7 @@ entry: %flags = getelementptr inbounds %struct.NvmeCmd, ptr %cmd, i64 0, i32 1 %0 = load i8, ptr %flags, align 1 %1 = lshr i8 %0, 6 - switch i8 %1, label %entry.unreachabledefault [ + switch i8 %1, label %default.unreachable22 [ i8 0, label %sw.bb i8 1, label %sw.bb7 i8 2, label %sw.bb7 @@ -1335,7 +1335,7 @@ sw.bb7: ; preds = %entry, %entry %call9 = tail call fastcc zeroext i16 @nvme_map_sgl(ptr noundef %n, ptr noundef %sg, i64 %58, i64 %60, i64 noundef %len) br label %return -entry.unreachabledefault: ; preds = %entry +default.unreachable22: ; preds = %entry unreachable return: ; preds = %if.end5.i.i, %unmap.i, %if.end128.i, %cleanup.i, %if.end.i, %entry, %sw.bb7 @@ -15851,7 +15851,7 @@ entry: %shl = add i32 %add, 4 %cdw13 = getelementptr inbounds %struct.NvmeRequest, ptr %req, i64 0, i32 6, i32 10 %2 = load i32, ptr %cdw13, align 1 - %.fr116 = freeze i32 %2 + %.fr112 = freeze i32 %2 %status4 = getelementptr inbounds %struct.NvmeRequest, ptr %req, i64 0, i32 3 store i16 0, ptr %status4, align 8 %call5 = call fastcc zeroext i16 @nvme_get_mgmt_zone_slba_idx(ptr noundef %0, ptr noundef nonnull %cmd1, ptr noundef nonnull %slba, ptr noundef nonnull %zone_idx), !range !48 @@ -15859,7 +15859,7 @@ entry: br i1 %tobool.not, label %if.end, label %return if.end: ; preds = %entry - %and = and i32 %.fr116, 255 + %and = and i32 %.fr112, 255 %or.cond = icmp ugt i32 %and, 1 br i1 %or.cond, label %return, label %if.end8 @@ -15874,7 +15874,7 @@ land.lhs.true10: ; preds = %if.end8 br i1 %tobool11.not, label %return, label %if.end13 if.end13: ; preds = %land.lhs.true10, %if.end8 - %shr = lshr i32 %.fr116, 8 + %shr = lshr i32 %.fr112, 8 %and14 = and i32 %shr, 255 %cmp15 = icmp ugt i32 %and14, 7 br i1 %cmp15, label %return, label %if.end17 @@ -15955,8 +15955,8 @@ if.end36: ; preds = %if.then31, %if.end2 %14 = load i32, ptr %zone_idx, align 4 %num_zones = getelementptr inbounds %struct.NvmeNamespace, ptr %0, i64 0, i32 23 %15 = load i32, ptr %num_zones, align 8 - %cmp40107 = icmp ult i32 %14, %15 - br i1 %cmp40107, label %for.body.lr.ph, label %for.end.thread + %cmp40103 = icmp ult i32 %14, %15 + br i1 %cmp40103, label %for.body.lr.ph, label %for.end.thread for.end.thread: ; preds = %if.end36 store i64 0, ptr %call39, align 1 @@ -15966,20 +15966,20 @@ for.body.lr.ph: ; preds = %if.end36 %16 = load ptr, ptr %zone_array, align 8 %idxprom = zext i32 %14 to i64 %arrayidx = getelementptr %struct.NvmeZone, ptr %16, i64 %idxprom - %17 = and i32 %.fr116, 65536 + %17 = and i32 %.fr112, 65536 %tobool42.not = icmp eq i32 %17, 0 br i1 %tobool42.not, label %for.body.us, label %for.body -for.body.us: ; preds = %for.body.lr.ph, %nvme_zone_matches_filter.exit.thread88.us - %i.0110.us = phi i32 [ %inc51.us, %nvme_zone_matches_filter.exit.thread88.us ], [ %14, %for.body.lr.ph ] - %zone.0109.us = phi ptr [ %incdec.ptr.us, %nvme_zone_matches_filter.exit.thread88.us ], [ %arrayidx, %for.body.lr.ph ] - %nr_zones.0108.us = phi i64 [ %20, %nvme_zone_matches_filter.exit.thread88.us ], [ 0, %for.body.lr.ph ] - %incdec.ptr.us = getelementptr %struct.NvmeZone, ptr %zone.0109.us, i64 1 - %18 = getelementptr i8, ptr %zone.0109.us, i64 1 +for.body.us: ; preds = %for.body.lr.ph, %for.cond.us + %i.0106.us = phi i32 [ %inc51.us, %for.cond.us ], [ %14, %for.body.lr.ph ] + %zone.0105.us = phi ptr [ %incdec.ptr.us, %for.cond.us ], [ %arrayidx, %for.body.lr.ph ] + %nr_zones.0104.us = phi i64 [ %20, %for.cond.us ], [ 0, %for.body.lr.ph ] + %incdec.ptr.us = getelementptr %struct.NvmeZone, ptr %zone.0105.us, i64 1 + %18 = getelementptr i8, ptr %zone.0105.us, i64 1 %zone.0.val.us = load i8, ptr %18, align 1 %zone.0.val.fr.us = freeze i8 %zone.0.val.us %19 = lshr i8 %zone.0.val.fr.us, 4 - switch i32 %and14, label %nvme_zone_matches_filter.exit.thread88.us [ + switch i32 %and14, label %sw.bb12.i.us [ i32 0, label %nvme_zone_matches_filter.exit.thread.us i32 1, label %nvme_zone_matches_filter.exit.us i32 2, label %sw.bb2.i.us @@ -15987,61 +15987,60 @@ for.body.us: ; preds = %for.body.lr.ph, %nv i32 4, label %sw.bb6.i.us i32 5, label %sw.bb8.i.us i32 6, label %sw.bb10.i.us - i32 7, label %sw.bb12.i.us ] sw.bb12.i.us: ; preds = %for.body.us %cmp13.i.us = icmp eq i8 %19, 15 - br i1 %cmp13.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %nvme_zone_matches_filter.exit.thread88.us + br i1 %cmp13.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %for.cond.us sw.bb10.i.us: ; preds = %for.body.us %cmp11.i.us = icmp eq i8 %19, 13 - br i1 %cmp11.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %nvme_zone_matches_filter.exit.thread88.us + br i1 %cmp11.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %for.cond.us sw.bb8.i.us: ; preds = %for.body.us %cmp9.i.us = icmp eq i8 %19, 14 - br i1 %cmp9.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %nvme_zone_matches_filter.exit.thread88.us + br i1 %cmp9.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %for.cond.us sw.bb6.i.us: ; preds = %for.body.us %cmp7.i.us = icmp eq i8 %19, 4 - br i1 %cmp7.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %nvme_zone_matches_filter.exit.thread88.us + br i1 %cmp7.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %for.cond.us sw.bb4.i.us: ; preds = %for.body.us %cmp5.i.us = icmp eq i8 %19, 3 - br i1 %cmp5.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %nvme_zone_matches_filter.exit.thread88.us + br i1 %cmp5.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %for.cond.us sw.bb2.i.us: ; preds = %for.body.us %cmp3.i.us = icmp eq i8 %19, 2 - br i1 %cmp3.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %nvme_zone_matches_filter.exit.thread88.us + br i1 %cmp3.i.us, label %nvme_zone_matches_filter.exit.thread.us, label %for.cond.us nvme_zone_matches_filter.exit.us: ; preds = %for.body.us %cmp.i63.us = icmp eq i8 %19, 1 - br i1 %cmp.i63.us, label %nvme_zone_matches_filter.exit.thread.us, label %nvme_zone_matches_filter.exit.thread88.us + br i1 %cmp.i63.us, label %nvme_zone_matches_filter.exit.thread.us, label %for.cond.us nvme_zone_matches_filter.exit.thread.us: ; preds = %nvme_zone_matches_filter.exit.us, %sw.bb2.i.us, %sw.bb4.i.us, %sw.bb6.i.us, %sw.bb8.i.us, %sw.bb10.i.us, %sw.bb12.i.us, %for.body.us - %inc87.us = add i64 %nr_zones.0108.us, 1 - br label %nvme_zone_matches_filter.exit.thread88.us - -nvme_zone_matches_filter.exit.thread88.us: ; preds = %nvme_zone_matches_filter.exit.thread.us, %nvme_zone_matches_filter.exit.us, %sw.bb2.i.us, %sw.bb4.i.us, %sw.bb6.i.us, %sw.bb8.i.us, %sw.bb10.i.us, %sw.bb12.i.us, %for.body.us - %20 = phi i64 [ %inc87.us, %nvme_zone_matches_filter.exit.thread.us ], [ %nr_zones.0108.us, %nvme_zone_matches_filter.exit.us ], [ %nr_zones.0108.us, %sw.bb12.i.us ], [ %nr_zones.0108.us, %sw.bb10.i.us ], [ %nr_zones.0108.us, %sw.bb8.i.us ], [ %nr_zones.0108.us, %sw.bb6.i.us ], [ %nr_zones.0108.us, %sw.bb4.i.us ], [ %nr_zones.0108.us, %sw.bb2.i.us ], [ %nr_zones.0108.us, %for.body.us ] - %inc51.us = add nuw i32 %i.0110.us, 1 - %exitcond118.not = icmp eq i32 %inc51.us, %15 - br i1 %exitcond118.not, label %for.end, label %for.body.us, !llvm.loop !52 - -for.body: ; preds = %for.body.lr.ph, %nvme_zone_matches_filter.exit.thread88 - %i.0110 = phi i32 [ %inc51, %nvme_zone_matches_filter.exit.thread88 ], [ %14, %for.body.lr.ph ] - %zone.0109 = phi ptr [ %incdec.ptr, %nvme_zone_matches_filter.exit.thread88 ], [ %arrayidx, %for.body.lr.ph ] - %nr_zones.0108 = phi i64 [ %23, %nvme_zone_matches_filter.exit.thread88 ], [ 0, %for.body.lr.ph ] - %cmp44.not = icmp ult i64 %nr_zones.0108, %div + %inc87.us = add i64 %nr_zones.0104.us, 1 + br label %for.cond.us + +for.cond.us: ; preds = %nvme_zone_matches_filter.exit.thread.us, %nvme_zone_matches_filter.exit.us, %sw.bb2.i.us, %sw.bb4.i.us, %sw.bb6.i.us, %sw.bb8.i.us, %sw.bb10.i.us, %sw.bb12.i.us + %20 = phi i64 [ %inc87.us, %nvme_zone_matches_filter.exit.thread.us ], [ %nr_zones.0104.us, %nvme_zone_matches_filter.exit.us ], [ %nr_zones.0104.us, %sw.bb12.i.us ], [ %nr_zones.0104.us, %sw.bb10.i.us ], [ %nr_zones.0104.us, %sw.bb8.i.us ], [ %nr_zones.0104.us, %sw.bb6.i.us ], [ %nr_zones.0104.us, %sw.bb4.i.us ], [ %nr_zones.0104.us, %sw.bb2.i.us ] + %inc51.us = add nuw i32 %i.0106.us, 1 + %exitcond114.not = icmp eq i32 %inc51.us, %15 + br i1 %exitcond114.not, label %for.end, label %for.body.us, !llvm.loop !52 + +for.body: ; preds = %for.body.lr.ph, %for.cond + %i.0106 = phi i32 [ %inc51, %for.cond ], [ %14, %for.body.lr.ph ] + %zone.0105 = phi ptr [ %incdec.ptr, %for.cond ], [ %arrayidx, %for.body.lr.ph ] + %nr_zones.0104 = phi i64 [ %23, %for.cond ], [ 0, %for.body.lr.ph ] + %cmp44.not = icmp ult i64 %nr_zones.0104, %div br i1 %cmp44.not, label %if.end47, label %for.end if.end47: ; preds = %for.body - %incdec.ptr = getelementptr %struct.NvmeZone, ptr %zone.0109, i64 1 - %21 = getelementptr i8, ptr %zone.0109, i64 1 + %incdec.ptr = getelementptr %struct.NvmeZone, ptr %zone.0105, i64 1 + %21 = getelementptr i8, ptr %zone.0105, i64 1 %zone.0.val = load i8, ptr %21, align 1 %zone.0.val.fr = freeze i8 %zone.0.val %22 = lshr i8 %zone.0.val.fr, 4 - switch i32 %and14, label %nvme_zone_matches_filter.exit.thread88 [ + switch i32 %and14, label %default.unreachable.i [ i32 0, label %nvme_zone_matches_filter.exit.thread i32 1, label %nvme_zone_matches_filter.exit i32 2, label %sw.bb2.i @@ -16054,47 +16053,50 @@ if.end47: ; preds = %for.body sw.bb2.i: ; preds = %if.end47 %cmp3.i = icmp eq i8 %22, 2 - br i1 %cmp3.i, label %nvme_zone_matches_filter.exit.thread, label %nvme_zone_matches_filter.exit.thread88 + br i1 %cmp3.i, label %nvme_zone_matches_filter.exit.thread, label %for.cond sw.bb4.i: ; preds = %if.end47 %cmp5.i = icmp eq i8 %22, 3 - br i1 %cmp5.i, label %nvme_zone_matches_filter.exit.thread, label %nvme_zone_matches_filter.exit.thread88 + br i1 %cmp5.i, label %nvme_zone_matches_filter.exit.thread, label %for.cond sw.bb6.i: ; preds = %if.end47 %cmp7.i = icmp eq i8 %22, 4 - br i1 %cmp7.i, label %nvme_zone_matches_filter.exit.thread, label %nvme_zone_matches_filter.exit.thread88 + br i1 %cmp7.i, label %nvme_zone_matches_filter.exit.thread, label %for.cond sw.bb8.i: ; preds = %if.end47 %cmp9.i = icmp eq i8 %22, 14 - br i1 %cmp9.i, label %nvme_zone_matches_filter.exit.thread, label %nvme_zone_matches_filter.exit.thread88 + br i1 %cmp9.i, label %nvme_zone_matches_filter.exit.thread, label %for.cond sw.bb10.i: ; preds = %if.end47 %cmp11.i = icmp eq i8 %22, 13 - br i1 %cmp11.i, label %nvme_zone_matches_filter.exit.thread, label %nvme_zone_matches_filter.exit.thread88 + br i1 %cmp11.i, label %nvme_zone_matches_filter.exit.thread, label %for.cond sw.bb12.i: ; preds = %if.end47 %cmp13.i = icmp eq i8 %22, 15 - br i1 %cmp13.i, label %nvme_zone_matches_filter.exit.thread, label %nvme_zone_matches_filter.exit.thread88 + br i1 %cmp13.i, label %nvme_zone_matches_filter.exit.thread, label %for.cond + +default.unreachable.i: ; preds = %if.end47 + unreachable nvme_zone_matches_filter.exit: ; preds = %if.end47 %cmp.i63 = icmp eq i8 %22, 1 - br i1 %cmp.i63, label %nvme_zone_matches_filter.exit.thread, label %nvme_zone_matches_filter.exit.thread88 + br i1 %cmp.i63, label %nvme_zone_matches_filter.exit.thread, label %for.cond nvme_zone_matches_filter.exit.thread: ; preds = %if.end47, %sw.bb2.i, %sw.bb4.i, %sw.bb6.i, %sw.bb8.i, %sw.bb10.i, %sw.bb12.i, %nvme_zone_matches_filter.exit - %inc87 = add nuw i64 %nr_zones.0108, 1 - br label %nvme_zone_matches_filter.exit.thread88 + %inc87 = add nuw i64 %nr_zones.0104, 1 + br label %for.cond -nvme_zone_matches_filter.exit.thread88: ; preds = %if.end47, %sw.bb2.i, %sw.bb4.i, %sw.bb6.i, %sw.bb8.i, %sw.bb10.i, %sw.bb12.i, %nvme_zone_matches_filter.exit, %nvme_zone_matches_filter.exit.thread - %23 = phi i64 [ %inc87, %nvme_zone_matches_filter.exit.thread ], [ %nr_zones.0108, %nvme_zone_matches_filter.exit ], [ %nr_zones.0108, %sw.bb12.i ], [ %nr_zones.0108, %sw.bb10.i ], [ %nr_zones.0108, %sw.bb8.i ], [ %nr_zones.0108, %sw.bb6.i ], [ %nr_zones.0108, %sw.bb4.i ], [ %nr_zones.0108, %sw.bb2.i ], [ %nr_zones.0108, %if.end47 ] - %inc51 = add nuw i32 %i.0110, 1 +for.cond: ; preds = %sw.bb2.i, %sw.bb4.i, %sw.bb6.i, %sw.bb8.i, %sw.bb10.i, %sw.bb12.i, %nvme_zone_matches_filter.exit, %nvme_zone_matches_filter.exit.thread + %23 = phi i64 [ %inc87, %nvme_zone_matches_filter.exit.thread ], [ %nr_zones.0104, %nvme_zone_matches_filter.exit ], [ %nr_zones.0104, %sw.bb12.i ], [ %nr_zones.0104, %sw.bb10.i ], [ %nr_zones.0104, %sw.bb8.i ], [ %nr_zones.0104, %sw.bb6.i ], [ %nr_zones.0104, %sw.bb4.i ], [ %nr_zones.0104, %sw.bb2.i ] + %inc51 = add nuw i32 %i.0106, 1 %exitcond.not = icmp eq i32 %inc51, %15 br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !52 -for.end: ; preds = %nvme_zone_matches_filter.exit.thread88, %for.body, %nvme_zone_matches_filter.exit.thread88.us - %nr_zones.0.lcssa = phi i64 [ %20, %nvme_zone_matches_filter.exit.thread88.us ], [ %nr_zones.0108, %for.body ], [ %23, %nvme_zone_matches_filter.exit.thread88 ] +for.end: ; preds = %for.cond, %for.body, %for.cond.us + %nr_zones.0.lcssa = phi i64 [ %20, %for.cond.us ], [ %nr_zones.0104, %for.body ], [ %23, %for.cond ] store i64 %nr_zones.0.lcssa, ptr %call39, align 1 - %cmp58113 = icmp ule i64 %zone_entry_sz.0, %sub - %24 = select i1 %cmp40107, i1 %cmp58113, i1 false + %cmp58109 = icmp ule i64 %zone_entry_sz.0, %sub + %24 = select i1 %cmp40103, i1 %cmp58109, i1 false br i1 %24, label %for.body60.lr.ph, label %for.end107 for.body60.lr.ph: ; preds = %for.end @@ -16106,15 +16108,15 @@ for.body60.lr.ph: ; preds = %for.end for.body60: ; preds = %for.body60.lr.ph, %for.inc105 %27 = phi i32 [ %15, %for.body60.lr.ph ], [ %44, %for.inc105 ] %28 = phi i32 [ %14, %for.body60.lr.ph ], [ %inc106, %for.inc105 ] - %buf_p.0115 = phi ptr [ %add.ptr, %for.body60.lr.ph ], [ %buf_p.2, %for.inc105 ] - %max_zones.0114 = phi i64 [ %div, %for.body60.lr.ph ], [ %max_zones.1, %for.inc105 ] + %buf_p.0111 = phi ptr [ %add.ptr, %for.body60.lr.ph ], [ %buf_p.2, %for.inc105 ] + %max_zones.0110 = phi i64 [ %div, %for.body60.lr.ph ], [ %max_zones.1, %for.inc105 ] %29 = load ptr, ptr %zone_array, align 8 %idxprom62 = zext i32 %28 to i64 %arrayidx63 = getelementptr %struct.NvmeZone, ptr %29, i64 %idxprom62 %30 = getelementptr i8, ptr %arrayidx63, i64 1 %arrayidx63.val = load i8, ptr %30, align 1 %31 = lshr i8 %arrayidx63.val, 4 - switch i32 %and14, label %for.inc105 [ + switch i32 %and14, label %default.unreachable.i79 [ i32 0, label %if.then65 i32 1, label %nvme_zone_matches_filter.exit80 i32 2, label %sw.bb2.i75 @@ -16149,28 +16151,31 @@ sw.bb12.i64: ; preds = %for.body60 %cmp13.i65 = icmp eq i8 %31, 15 br i1 %cmp13.i65, label %if.then65, label %for.inc105 +default.unreachable.i79: ; preds = %for.body60 + unreachable + nvme_zone_matches_filter.exit80: ; preds = %for.body60 %cmp.i78 = icmp eq i8 %31, 1 br i1 %cmp.i78, label %if.then65, label %for.inc105 if.then65: ; preds = %for.body60, %sw.bb2.i75, %sw.bb4.i73, %sw.bb6.i71, %sw.bb8.i69, %sw.bb10.i67, %sw.bb12.i64, %nvme_zone_matches_filter.exit80 - %add.ptr66 = getelementptr i8, ptr %buf_p.0115, i64 64 + %add.ptr66 = getelementptr i8, ptr %buf_p.0111, i64 64 %32 = load i8, ptr %arrayidx63, align 8 - store i8 %32, ptr %buf_p.0115, align 1 + store i8 %32, ptr %buf_p.0111, align 1 %33 = load i8, ptr %30, align 1 - %zs69 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0115, i64 0, i32 1 + %zs69 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0111, i64 0, i32 1 store i8 %33, ptr %zs69, align 1 %zcap = getelementptr inbounds %struct.NvmeZoneDescr, ptr %arrayidx63, i64 0, i32 4 %34 = load i64, ptr %zcap, align 8 - %zcap72 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0115, i64 0, i32 4 + %zcap72 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0111, i64 0, i32 4 store i64 %34, ptr %zcap72, align 1 %zslba = getelementptr inbounds %struct.NvmeZoneDescr, ptr %arrayidx63, i64 0, i32 5 %35 = load i64, ptr %zslba, align 8 - %zslba75 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0115, i64 0, i32 5 + %zslba75 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0111, i64 0, i32 5 store i64 %35, ptr %zslba75, align 1 %za = getelementptr inbounds %struct.NvmeZoneDescr, ptr %arrayidx63, i64 0, i32 2 %36 = load i8, ptr %za, align 2 - %za77 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0115, i64 0, i32 2 + %za77 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0111, i64 0, i32 2 store i8 %36, ptr %za77, align 1 %arrayidx63.val61 = load i8, ptr %30, align 1 %37 = lshr i8 %arrayidx63.val61, 4 @@ -16188,7 +16193,7 @@ if.then79: ; preds = %if.then65 if.end85: ; preds = %if.then65, %if.then79 %.sink = phi i64 [ %39, %if.then79 ], [ -1, %if.then65 ] - %40 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0115, i64 0, i32 6 + %40 = getelementptr inbounds %struct.NvmeZoneDescr, ptr %buf_p.0111, i64 0, i32 6 store i64 %.sink, ptr %40, align 1 br i1 %cmp9, label %if.then88, label %if.end103 @@ -16216,16 +16221,16 @@ if.end99: ; preds = %if.then94, %if.then if.end103: ; preds = %if.end99, %if.end85 %buf_p.1 = phi ptr [ %add.ptr102, %if.end99 ], [ %add.ptr66, %if.end85 ] - %dec = add nsw i64 %max_zones.0114, -1 + %dec = add nsw i64 %max_zones.0110, -1 %.pre = load i32, ptr %zone_idx, align 4 - %.pre119 = load i32, ptr %num_zones, align 8 + %.pre115 = load i32, ptr %num_zones, align 8 br label %for.inc105 -for.inc105: ; preds = %for.body60, %sw.bb2.i75, %sw.bb4.i73, %sw.bb6.i71, %sw.bb8.i69, %sw.bb10.i67, %sw.bb12.i64, %nvme_zone_matches_filter.exit80, %if.end103 - %44 = phi i32 [ %.pre119, %if.end103 ], [ %27, %nvme_zone_matches_filter.exit80 ], [ %27, %sw.bb12.i64 ], [ %27, %sw.bb10.i67 ], [ %27, %sw.bb8.i69 ], [ %27, %sw.bb6.i71 ], [ %27, %sw.bb4.i73 ], [ %27, %sw.bb2.i75 ], [ %27, %for.body60 ] - %45 = phi i32 [ %.pre, %if.end103 ], [ %28, %nvme_zone_matches_filter.exit80 ], [ %28, %sw.bb12.i64 ], [ %28, %sw.bb10.i67 ], [ %28, %sw.bb8.i69 ], [ %28, %sw.bb6.i71 ], [ %28, %sw.bb4.i73 ], [ %28, %sw.bb2.i75 ], [ %28, %for.body60 ] - %max_zones.1 = phi i64 [ %dec, %if.end103 ], [ %max_zones.0114, %nvme_zone_matches_filter.exit80 ], [ %max_zones.0114, %sw.bb12.i64 ], [ %max_zones.0114, %sw.bb10.i67 ], [ %max_zones.0114, %sw.bb8.i69 ], [ %max_zones.0114, %sw.bb6.i71 ], [ %max_zones.0114, %sw.bb4.i73 ], [ %max_zones.0114, %sw.bb2.i75 ], [ %max_zones.0114, %for.body60 ] - %buf_p.2 = phi ptr [ %buf_p.1, %if.end103 ], [ %buf_p.0115, %nvme_zone_matches_filter.exit80 ], [ %buf_p.0115, %sw.bb12.i64 ], [ %buf_p.0115, %sw.bb10.i67 ], [ %buf_p.0115, %sw.bb8.i69 ], [ %buf_p.0115, %sw.bb6.i71 ], [ %buf_p.0115, %sw.bb4.i73 ], [ %buf_p.0115, %sw.bb2.i75 ], [ %buf_p.0115, %for.body60 ] +for.inc105: ; preds = %sw.bb2.i75, %sw.bb4.i73, %sw.bb6.i71, %sw.bb8.i69, %sw.bb10.i67, %sw.bb12.i64, %nvme_zone_matches_filter.exit80, %if.end103 + %44 = phi i32 [ %.pre115, %if.end103 ], [ %27, %nvme_zone_matches_filter.exit80 ], [ %27, %sw.bb12.i64 ], [ %27, %sw.bb10.i67 ], [ %27, %sw.bb8.i69 ], [ %27, %sw.bb6.i71 ], [ %27, %sw.bb4.i73 ], [ %27, %sw.bb2.i75 ] + %45 = phi i32 [ %.pre, %if.end103 ], [ %28, %nvme_zone_matches_filter.exit80 ], [ %28, %sw.bb12.i64 ], [ %28, %sw.bb10.i67 ], [ %28, %sw.bb8.i69 ], [ %28, %sw.bb6.i71 ], [ %28, %sw.bb4.i73 ], [ %28, %sw.bb2.i75 ] + %max_zones.1 = phi i64 [ %dec, %if.end103 ], [ %max_zones.0110, %nvme_zone_matches_filter.exit80 ], [ %max_zones.0110, %sw.bb12.i64 ], [ %max_zones.0110, %sw.bb10.i67 ], [ %max_zones.0110, %sw.bb8.i69 ], [ %max_zones.0110, %sw.bb6.i71 ], [ %max_zones.0110, %sw.bb4.i73 ], [ %max_zones.0110, %sw.bb2.i75 ] + %buf_p.2 = phi ptr [ %buf_p.1, %if.end103 ], [ %buf_p.0111, %nvme_zone_matches_filter.exit80 ], [ %buf_p.0111, %sw.bb12.i64 ], [ %buf_p.0111, %sw.bb10.i67 ], [ %buf_p.0111, %sw.bb8.i69 ], [ %buf_p.0111, %sw.bb6.i71 ], [ %buf_p.0111, %sw.bb4.i73 ], [ %buf_p.0111, %sw.bb2.i75 ] %inc106 = add i32 %45, 1 store i32 %inc106, ptr %zone_idx, align 4 %cmp56 = icmp ult i32 %inc106, %44 diff --git a/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll b/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll index 4727c915f3e..d18569f4b27 100644 --- a/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll +++ b/bench/qemu/optimized/hw_scsi_lsi53c895a.c.ll @@ -4037,8 +4037,8 @@ entry: %1 = load i8, ptr %istat1, align 1 %2 = or i8 %1, 2 store i8 %2, ptr %istat1, align 1 - %cmp4883 = icmp sgt i32 %inc, 8 - br i1 %cmp4883, label %if.then, label %if.end14.lr.ph + %cmp4885 = icmp sgt i32 %inc, 8 + br i1 %cmp4885, label %if.then, label %if.end14.lr.ph if.end14.lr.ph: ; preds = %entry %dsp = getelementptr inbounds %struct.LSIState, ptr %s, i64 0, i32 40 @@ -4204,7 +4204,7 @@ trace_lsi_execute_script_stop.exit: ; preds = %if.end13, %land.lhs br label %return if.end14: ; preds = %if.end14.lr.ph, %again.backedge - %inc2884 = phi i32 [ 1, %if.end14.lr.ph ], [ %inc2, %again.backedge ] + %inc2886 = phi i32 [ 1, %if.end14.lr.ph ], [ %inc2, %again.backedge ] %18 = load i32, ptr %dsp, align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %buf.i) %call.i.i = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %s, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.5, i32 noundef 10, ptr noundef nonnull @__func__.PCI_DEVICE) #11 @@ -4225,8 +4225,8 @@ if.then17: ; preds = %if.end14 br label %again.backedge again.backedge: ; preds = %if.then17, %if.then645 - %inc2 = add nuw nsw i32 %inc2884, 1 - %cmp = icmp ugt i32 %inc2884, 9999 + %inc2 = add nuw nsw i32 %inc2886, 1 + %cmp = icmp ugt i32 %inc2886, 9999 %21 = load i32, ptr @lsi_execute_script.reentrancy_level, align 4 %cmp4 = icmp sgt i32 %21, 8 %or.cond = select i1 %cmp, i1 true, i1 %cmp4 @@ -4285,7 +4285,7 @@ trace_lsi_execute_script.exit: ; preds = %if.end19, %land.lhs %add26 = add i32 %31, 8 store i32 %add26, ptr %dsp, align 4 %shr27 = lshr i32 %19, 30 - switch i32 %shr27, label %if.end19.unreachabledefault [ + switch i32 %shr27, label %default.unreachable899 [ i32 0, label %sw.bb i32 1, label %sw.bb171 i32 2, label %sw.bb470 @@ -5919,7 +5919,7 @@ if.then190: ; preds = %if.end185 if.end194: ; preds = %if.then190, %if.end185 %addr.1 = phi i32 [ %add193, %if.then190 ], [ %22, %if.end185 ] store i32 %addr.1, ptr %dnad195, align 8 - switch i32 %and173, label %sw.epilog636 [ + switch i32 %and173, label %default.unreachable [ i32 0, label %sw.bb196 i32 1, label %sw.bb238 i32 2, label %sw.bb250 @@ -6428,7 +6428,7 @@ if.else.i.i615: ; preds = %if.then.i.i608 trace_lsi_execute_script_io_opcode.exit: ; preds = %if.else354, %land.lhs.true5.i.i605, %if.then8.i.i610, %if.else.i.i615 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i601) - switch i32 %and173, label %sw.epilog393 [ + switch i32 %and173, label %default.unreachable [ i32 5, label %sw.bb375 i32 6, label %sw.bb377 i32 7, label %sw.bb382 @@ -6462,10 +6462,10 @@ if.then389: ; preds = %if.end386 %472 = load i8, ptr %sfbr529, align 1 br label %sw.epilog393 -sw.epilog393: ; preds = %if.end386, %if.then379, %if.then389, %sw.bb375, %trace_lsi_execute_script_io_opcode.exit - %op1.0 = phi i8 [ 0, %trace_lsi_execute_script_io_opcode.exit ], [ %472, %if.then389 ], [ %conv361, %sw.bb375 ], [ %conv361, %if.then379 ], [ %conv361, %if.end386 ] - %op0.2 = phi i8 [ 0, %trace_lsi_execute_script_io_opcode.exit ], [ %op0.1, %if.then389 ], [ %471, %sw.bb375 ], [ %call380, %if.then379 ], [ %op0.1, %if.end386 ] - switch i32 %and365, label %sw.epilog393.unreachabledefault [ +sw.epilog393: ; preds = %if.end386, %if.then379, %if.then389, %sw.bb375 + %op1.0 = phi i8 [ %472, %if.then389 ], [ %conv361, %sw.bb375 ], [ %conv361, %if.then379 ], [ %conv361, %if.end386 ] + %op0.2 = phi i8 [ %op0.1, %if.then389 ], [ %471, %sw.bb375 ], [ %call380, %if.then379 ], [ %op0.1, %if.end386 ] + switch i32 %and365, label %default.unreachable899 [ i32 0, label %sw.epilog464 i32 1, label %sw.bb395 i32 2, label %sw.bb406 @@ -6535,24 +6535,18 @@ if.else457: ; preds = %sw.bb442 store i32 %conv461, ptr %carry491, align 8 br label %sw.epilog464 -sw.epilog393.unreachabledefault: ; preds = %sw.epilog393 - unreachable - sw.epilog464: ; preds = %sw.epilog393, %if.then451, %if.else457, %sw.bb432, %sw.bb420, %sw.bb415, %sw.bb411, %sw.bb406, %sw.bb395 %op0.3 = phi i8 [ %conv448, %if.then451 ], [ %conv448, %if.else457 ], [ %add435, %sw.bb432 ], [ %conv429, %sw.bb420 ], [ %and418306, %sw.bb415 ], [ %xor307, %sw.bb411 ], [ %or409308, %sw.bb406 ], [ %conv403, %sw.bb395 ], [ %op1.0, %sw.epilog393 ] - switch i32 %and173, label %sw.epilog636 [ - i32 5, label %sw.bb465 - i32 7, label %sw.bb465 - i32 6, label %sw.bb466 - ] + %switch = icmp eq i32 %and173, 6 + br i1 %switch, label %sw.bb466, label %sw.bb465 -sw.bb465: ; preds = %sw.epilog464, %sw.epilog464 +sw.bb465: ; preds = %sw.epilog464 call fastcc void @lsi_reg_writeb(ptr noundef nonnull %s, i32 noundef %or358, i8 noundef zeroext %op0.3) br label %sw.epilog636 sw.bb466: ; preds = %sw.bb377, %sw.epilog464 - %op0.3875 = phi i8 [ %op0.3, %sw.epilog464 ], [ %conv361, %sw.bb377 ] - store i8 %op0.3875, ptr %sfbr529, align 1 + %op0.3877 = phi i8 [ %op0.3, %sw.epilog464 ], [ %conv361, %sw.bb377 ] + store i8 %op0.3877, ptr %sfbr529, align 1 br label %sw.epilog636 sw.bb470: ; preds = %trace_lsi_execute_script.exit @@ -7263,8 +7257,8 @@ if.else.i.i836: ; preds = %if.then.i.i830 trace_lsi_execute_script_mm_load.exit: ; preds = %if.then606, %land.lhs.true5.i.i827, %if.then8.i.i832, %if.else.i.i836 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i823) - %cmp612879.not = icmp eq i32 %and601, 0 - br i1 %cmp612879.not, label %sw.epilog636, label %for.body + %cmp612881.not = icmp eq i32 %and601, 0 + br i1 %cmp612881.not, label %sw.epilog636, label %for.body for.body: ; preds = %trace_lsi_execute_script_mm_load.exit, %for.body %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %trace_lsi_execute_script_mm_load.exit ] @@ -7312,36 +7306,39 @@ if.else.i.i850: ; preds = %if.then.i.i844 trace_lsi_execute_script_mm_store.exit: ; preds = %if.else618, %land.lhs.true5.i.i841, %if.then8.i.i846, %if.else.i.i850 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i837) - %cmp620881.not = icmp eq i32 %and601, 0 - br i1 %cmp620881.not, label %for.end629, label %for.body622.preheader + %cmp620883.not = icmp eq i32 %and601, 0 + br i1 %cmp620883.not, label %for.end629, label %for.body622.preheader for.body622.preheader: ; preds = %trace_lsi_execute_script_mm_store.exit - %wide.trip.count894 = zext nneg i32 %and601 to i64 + %wide.trip.count896 = zext nneg i32 %and601 to i64 br label %for.body622 for.body622: ; preds = %for.body622.preheader, %for.body622 - %indvars.iv890 = phi i64 [ 0, %for.body622.preheader ], [ %indvars.iv.next891, %for.body622 ] - %608 = trunc i64 %indvars.iv890 to i32 + %indvars.iv892 = phi i64 [ 0, %for.body622.preheader ], [ %indvars.iv.next893, %for.body622 ] + %608 = trunc i64 %indvars.iv892 to i32 %609 = add i32 %and603, %608 %call624 = call fastcc zeroext i8 @lsi_reg_readb(ptr noundef %s, i32 noundef %609) - %arrayidx626 = getelementptr [7 x i8], ptr %data, i64 0, i64 %indvars.iv890 + %arrayidx626 = getelementptr [7 x i8], ptr %data, i64 0, i64 %indvars.iv892 store i8 %call624, ptr %arrayidx626, align 1 - %indvars.iv.next891 = add nuw nsw i64 %indvars.iv890, 1 - %exitcond895.not = icmp eq i64 %indvars.iv.next891, %wide.trip.count894 - br i1 %exitcond895.not, label %for.end629, label %for.body622, !llvm.loop !13 + %indvars.iv.next893 = add nuw nsw i64 %indvars.iv892, 1 + %exitcond897.not = icmp eq i64 %indvars.iv.next893, %wide.trip.count896 + br i1 %exitcond897.not, label %for.end629, label %for.body622, !llvm.loop !13 for.end629: ; preds = %for.body622, %trace_lsi_execute_script_mm_store.exit - %conv632.pre-phi = phi i64 [ 0, %trace_lsi_execute_script_mm_store.exit ], [ %wide.trip.count894, %for.body622 ] + %conv632.pre-phi = phi i64 [ 0, %trace_lsi_execute_script_mm_store.exit ], [ %wide.trip.count896, %for.body622 ] %conv630 = zext i32 %addr.3 to i64 call void asm sideeffect "", "~{memory},~{dirflag},~{fpsr},~{flags}"() #11, !srcloc !7 fence seq_cst %call.i.i.i.i852 = call i32 @address_space_rw(ptr noundef nonnull %bus_master_as.i.i.i821, i64 noundef %conv630, i32 1, ptr noundef nonnull %data, i64 noundef %conv632.pre-phi, i1 noundef zeroext true) #11 br label %sw.epilog636 -if.end19.unreachabledefault: ; preds = %trace_lsi_execute_script.exit +default.unreachable899: ; preds = %sw.epilog393, %trace_lsi_execute_script.exit + unreachable + +default.unreachable: ; preds = %trace_lsi_execute_script_io_opcode.exit, %if.end194 unreachable -sw.epilog636: ; preds = %for.body, %for.inc.i535, %trace_lsi_execute_script_mm_load.exit, %if.then244, %if.then5.i, %if.end3.i, %trace_lsi_wait_reselect.exit.i, %lsi_memcpy.exit, %for.end629, %trace_lsi_execute_script_tc_cc_failed.exit, %if.then571, %if.else576, %trace_lsi_execute_script_tc_illegal.exit, %trace_lsi_execute_script_tc_return.exit, %trace_lsi_execute_script_tc_call.exit, %trace_lsi_execute_script_tc_jump.exit, %if.end347, %if.then350, %if.end310, %if.then313, %if.then254, %lsi_irq_on_rsl.exit, %trace_lsi_execute_script_io_disconnect.exit, %if.then247, %if.end232, %if.then214, %trace_lsi_execute_script_io_alreadyreselected.exit, %if.end194, %sw.bb466, %sw.bb465, %sw.epilog464, %trace_lsi_execute_script_tc_delayedselect_timeout.exit, %trace_lsi_execute_script_tc_nop.exit, %sw.epilog153, %trace_lsi_execute_script_blockmove_badphase.exit, %trace_lsi_execute_script_blockmove_delayed.exit +sw.epilog636: ; preds = %for.body, %for.inc.i535, %trace_lsi_execute_script_mm_load.exit, %if.then244, %if.then5.i, %if.end3.i, %trace_lsi_wait_reselect.exit.i, %lsi_memcpy.exit, %for.end629, %trace_lsi_execute_script_tc_cc_failed.exit, %if.then571, %if.else576, %trace_lsi_execute_script_tc_illegal.exit, %trace_lsi_execute_script_tc_return.exit, %trace_lsi_execute_script_tc_call.exit, %trace_lsi_execute_script_tc_jump.exit, %if.end347, %if.then350, %if.end310, %if.then313, %if.then254, %lsi_irq_on_rsl.exit, %trace_lsi_execute_script_io_disconnect.exit, %if.then247, %if.end232, %if.then214, %trace_lsi_execute_script_io_alreadyreselected.exit, %sw.bb466, %sw.bb465, %trace_lsi_execute_script_tc_delayedselect_timeout.exit, %trace_lsi_execute_script_tc_nop.exit, %sw.epilog153, %trace_lsi_execute_script_blockmove_badphase.exit, %trace_lsi_execute_script_blockmove_delayed.exit %610 = load i8, ptr %istat1, align 1 %611 = and i8 %610, 2 %tobool640.not = icmp eq i8 %611, 0 diff --git a/bench/qemu/optimized/hw_usb_hcd-uhci.c.ll b/bench/qemu/optimized/hw_usb_hcd-uhci.c.ll index 38772549235..076d294294b 100644 --- a/bench/qemu/optimized/hw_usb_hcd-uhci.c.ll +++ b/bench/qemu/optimized/hw_usb_hcd-uhci.c.ll @@ -107,9 +107,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.13 = private unnamed_addr constant [7 x i8] c"device\00", align 1 @.str.14 = private unnamed_addr constant [101 x i8] c"/home/dtcxzyw/WorkSpace/Projects/compilers/llvm-opt-benchmark/bench/qemu/qemu/include/hw/qdev-core.h\00", align 1 @__func__.DEVICE = private unnamed_addr constant [7 x i8] c"DEVICE\00", align 1 -@.str.15 = private unnamed_addr constant [23 x i8] c"!\22unknown return code\22\00", align 1 @.str.16 = private unnamed_addr constant [26 x i8] c"../qemu/hw/usb/hcd-uhci.c\00", align 1 -@__PRETTY_FUNCTION__.uhci_process_frame = private unnamed_addr constant [37 x i8] c"void uhci_process_frame(UHCIState *)\00", align 1 @_TRACE_USB_UHCI_FRAME_STOP_BANDWIDTH_DSTATE = external local_unnamed_addr global i16, align 2 @.str.17 = private unnamed_addr constant [45 x i8] c"%d@%zu.%06zu:usb_uhci_frame_stop_bandwidth \0A\00", align 1 @.str.18 = private unnamed_addr constant [32 x i8] c"usb_uhci_frame_stop_bandwidth \0A\00", align 1 @@ -2149,7 +2147,7 @@ if.then40: ; preds = %trace_usb_uhci_td_l br label %if.end48 if.end48: ; preds = %if.then40, %trace_usb_uhci_td_load.exit - switch i32 %call36, label %sw.default [ + switch i32 %call36, label %default.unreachable162 [ i32 10, label %out i32 12, label %sw.bb49 i32 14, label %sw.bb49 @@ -2312,8 +2310,7 @@ if.then86: ; preds = %if.then75 store i32 %94, ptr %link, align 4 br label %for.inc -sw.default: ; preds = %if.end48 - call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 1063, ptr noundef nonnull @__PRETTY_FUNCTION__.uhci_process_frame) #12 +default.unreachable162: ; preds = %if.end48 unreachable for.inc: ; preds = %if.then75, %if.then86, %trace_usb_uhci_td_complete.exit, %if.then27, %if.else29, %trace_usb_uhci_td_async.exit, %trace_usb_uhci_td_nextqh.exit @@ -2337,7 +2334,7 @@ out: ; preds = %if.end48, %for.inc, } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @uhci_handle_td(ptr noundef %s, ptr noundef %q, i32 noundef %qh_addr, ptr nocapture noundef %td, i32 noundef %td_addr, ptr nocapture noundef %int_mask) unnamed_addr #0 { +define internal fastcc noundef i32 @uhci_handle_td(ptr noundef %s, ptr noundef %q, i32 noundef %qh_addr, ptr nocapture noundef %td, i32 noundef %td_addr, ptr nocapture noundef %int_mask) unnamed_addr #0 { entry: %_now.i.i24.i = alloca %struct.timeval, align 8 %_now.i.i.i162 = alloca %struct.timeval, align 8 @@ -3123,7 +3120,7 @@ while.end: ; preds = %trace_usb_uhci_td_q } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @uhci_handle_td_error(ptr nocapture noundef %s, ptr nocapture noundef %td, i32 noundef %td_addr, i32 noundef %status, ptr nocapture noundef %int_mask) unnamed_addr #0 { +define internal fastcc noundef i32 @uhci_handle_td_error(ptr nocapture noundef %s, ptr nocapture noundef %td, i32 noundef %td_addr, i32 noundef %status, ptr nocapture noundef %int_mask) unnamed_addr #0 { entry: %_now.i.i27 = alloca %struct.timeval, align 8 %_now.i.i13 = alloca %struct.timeval, align 8 @@ -3365,7 +3362,7 @@ return: ; preds = %uhci_update_irq.exi declare ptr @usb_ep_get(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc ptr @uhci_queue_new(ptr noundef %s, i32 noundef %qh_addr, ptr nocapture noundef readonly %td, ptr noundef %ep) unnamed_addr #0 { +define internal fastcc noundef ptr @uhci_queue_new(ptr noundef %s, i32 noundef %qh_addr, ptr nocapture noundef readonly %td, ptr noundef %ep) unnamed_addr #0 { entry: %_now.i.i = alloca %struct.timeval, align 8 %call = tail call noalias dereferenceable_or_null(64) ptr @g_malloc0_n(i64 noundef 1, i64 noundef 64) #11 @@ -4233,7 +4230,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @uhci_post_load(ptr nocapture noundef writeonly %opaque, i32 noundef %version_id) #0 { +define internal noundef i32 @uhci_post_load(ptr nocapture noundef writeonly %opaque, i32 noundef %version_id) #0 { entry: %cmp = icmp slt i32 %version_id, 2 br i1 %cmp, label %if.then, label %if.end diff --git a/bench/qemu/optimized/migration_migration.c.ll b/bench/qemu/optimized/migration_migration.c.ll index b8f98d7c729..ad8823bc549 100644 --- a/bench/qemu/optimized/migration_migration.c.ll +++ b/bench/qemu/optimized/migration_migration.c.ll @@ -927,7 +927,7 @@ declare void @compress_threads_load_cleanup() local_unnamed_addr #1 define dso_local void @migrate_send_rp_shut(ptr noundef %mis, i32 noundef %value) local_unnamed_addr #0 { entry: %buf = alloca i32, align 4 - %0 = tail call i32 @llvm.bswap.i32(i32 %value) + %0 = tail call noundef i32 @llvm.bswap.i32(i32 %value) store i32 %0, ptr %buf, align 4 %call1 = call fastcc i32 @migrate_send_rp_message(ptr noundef %mis, i32 noundef 1, i16 noundef zeroext 4, ptr noundef nonnull %buf) ret void @@ -955,10 +955,10 @@ define dso_local i32 @migrate_send_rp_message_req_pages(ptr noundef %mis, ptr no entry: %bufc = alloca [268 x i8], align 16 %call = tail call i64 @qemu_ram_pagesize(ptr noundef %rb) #18 - %0 = tail call i64 @llvm.bswap.i64(i64 %start) + %0 = tail call noundef i64 @llvm.bswap.i64(i64 %start) store i64 %0, ptr %bufc, align 16 %conv = trunc i64 %call to i32 - %1 = tail call i32 @llvm.bswap.i32(i32 %conv) + %1 = tail call noundef i32 @llvm.bswap.i32(i32 %conv) %add.ptr = getelementptr inbounds i8, ptr %bufc, i64 8 store i32 %1, ptr %add.ptr, align 8 %last_rb = getelementptr inbounds %struct.MigrationIncomingState, ptr %mis, i64 0, i32 17 @@ -1145,10 +1145,10 @@ if.end10: ; preds = %land.lhs.true.us, % tail call void @qemu_mutex_unlock_impl(ptr noundef nonnull %page_request_mutex, ptr noundef nonnull @.str.53, i32 noundef 132) #18 call void @llvm.lifetime.start.p0(i64 268, ptr nonnull %bufc.i) %call.i = tail call i64 @qemu_ram_pagesize(ptr noundef %rb) #18 - %14 = tail call i64 @llvm.bswap.i64(i64 %start) + %14 = tail call noundef i64 @llvm.bswap.i64(i64 %start) store i64 %14, ptr %bufc.i, align 16 %conv.i = trunc i64 %call.i to i32 - %15 = tail call i32 @llvm.bswap.i32(i32 %conv.i) + %15 = tail call noundef i32 @llvm.bswap.i32(i32 %conv.i) %add.ptr.i = getelementptr inbounds i8, ptr %bufc.i, i64 8 store i32 %15, ptr %add.ptr.i, align 8 %last_rb.i = getelementptr inbounds %struct.MigrationIncomingState, ptr %mis, i64 0, i32 17 @@ -1220,7 +1220,7 @@ entry: declare i32 @ram_block_discard_disable(i1 noundef zeroext) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @migration_incoming_enable_colo() local_unnamed_addr #0 { +define dso_local noundef i32 @migration_incoming_enable_colo() local_unnamed_addr #0 { entry: %call = tail call zeroext i1 @migrate_colo() #18 br i1 %call, label %if.end, label %if.then @@ -1282,7 +1282,7 @@ declare ptr @qapi_clone(ptr noundef, ptr noundef) local_unnamed_addr #1 declare zeroext i1 @visit_type_SocketAddress(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @migrate_uri_parse(ptr noundef %uri, ptr nocapture noundef writeonly %channel, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @migrate_uri_parse(ptr noundef %uri, ptr nocapture noundef writeonly %channel, ptr noundef %errp) local_unnamed_addr #0 { entry: %call = tail call noalias dereferenceable_or_null(16) ptr @g_malloc0_n(i64 noundef 1, i64 noundef 16) #20 %call1 = tail call noalias dereferenceable_or_null(48) ptr @g_malloc0_n(i64 noundef 1, i64 noundef 48) #20 @@ -1686,7 +1686,7 @@ return: ; preds = %migration_incoming_ } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc zeroext i1 @postcopy_try_recover() unnamed_addr #0 { +define internal fastcc noundef zeroext i1 @postcopy_try_recover() unnamed_addr #0 { entry: %0 = load ptr, ptr @current_incoming, align 8 %tobool.not.i = icmp eq ptr %0, null @@ -1986,7 +1986,7 @@ entry: define dso_local void @migrate_send_rp_pong(ptr noundef %mis, i32 noundef %value) local_unnamed_addr #0 { entry: %buf = alloca i32, align 4 - %0 = tail call i32 @llvm.bswap.i32(i32 %value) + %0 = tail call noundef i32 @llvm.bswap.i32(i32 %value) store i32 %0, ptr %buf, align 4 %call1 = call fastcc i32 @migrate_send_rp_message(ptr noundef %mis, i32 noundef 2, i16 noundef zeroext 4, ptr noundef nonnull %buf) ret void @@ -2077,14 +2077,14 @@ declare void @qemu_mutex_unlock_impl(ptr noundef, ptr noundef, i32 noundef) loca define dso_local void @migrate_send_rp_resume_ack(ptr noundef %mis, i32 noundef %value) local_unnamed_addr #0 { entry: %buf = alloca i32, align 4 - %0 = tail call i32 @llvm.bswap.i32(i32 %value) + %0 = tail call noundef i32 @llvm.bswap.i32(i32 %value) store i32 %0, ptr %buf, align 4 %call1 = call fastcc i32 @migrate_send_rp_message(ptr noundef %mis, i32 noundef 6, i16 noundef zeroext 4, ptr noundef nonnull %buf) ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @migration_is_setup_or_active(i32 noundef %state) local_unnamed_addr #4 { +define dso_local noundef zeroext i1 @migration_is_setup_or_active(i32 noundef %state) local_unnamed_addr #4 { entry: %0 = icmp ult i32 %state, 14 %switch.cast = trunc i32 %state to i14 @@ -2096,7 +2096,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @migration_is_running(i32 noundef %state) local_unnamed_addr #4 { +define dso_local noundef zeroext i1 @migration_is_running(i32 noundef %state) local_unnamed_addr #4 { entry: %0 = icmp ult i32 %state, 14 %switch.cast = trunc i32 %state to i14 @@ -2108,7 +2108,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define dso_local ptr @qmp_query_migrate(ptr nocapture noundef readnone %errp) local_unnamed_addr #0 { +define dso_local noundef ptr @qmp_query_migrate(ptr nocapture noundef readnone %errp) local_unnamed_addr #0 { entry: %call = tail call noalias dereferenceable_or_null(224) ptr @g_malloc0(i64 noundef 224) #22 %0 = load ptr, ptr @current_incoming, align 8 @@ -2658,7 +2658,7 @@ migrate_get_current.exit: ; preds = %entry } ; Function Attrs: mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(none) uwtable -define dso_local zeroext i1 @migration_postcopy_is_alive(i32 noundef %state) local_unnamed_addr #4 { +define dso_local noundef zeroext i1 @migration_postcopy_is_alive(i32 noundef %state) local_unnamed_addr #4 { entry: %0 = add i32 %state, -5 %switch.and = and i32 %0, -3 @@ -2717,7 +2717,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @migration_in_bg_snapshot() local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @migration_in_bg_snapshot() local_unnamed_addr #0 { entry: %0 = load ptr, ptr @current_migration, align 8 %tobool.not.i = icmp eq ptr %0, null @@ -2752,7 +2752,7 @@ land.end: ; preds = %land.rhs, %switch.l declare zeroext i1 @migrate_background_snapshot() local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @migration_is_idle() local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @migration_is_idle() local_unnamed_addr #0 { entry: %0 = load ptr, ptr @current_migration, align 8 %tobool.not = icmp eq ptr %0, null @@ -2868,14 +2868,14 @@ declare void @error_free(ptr noundef) local_unnamed_addr #1 declare void @migration_reset_vfio_bytes_transferred() local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @migrate_add_blocker(ptr nocapture noundef %reasonp, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef i32 @migrate_add_blocker(ptr nocapture noundef %reasonp, ptr noundef %errp) local_unnamed_addr #0 { entry: %call = tail call i32 (ptr, ptr, i32, ...) @migrate_add_blocker_modes(ptr noundef %reasonp, ptr noundef %errp, i32 noundef 2), !range !8 ret i32 %call } ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @migrate_add_blocker_modes(ptr nocapture noundef %reasonp, ptr noundef %errp, i32 noundef %mode, ...) local_unnamed_addr #0 { +define dso_local noundef i32 @migrate_add_blocker_modes(ptr nocapture noundef %reasonp, ptr noundef %errp, i32 noundef %mode, ...) local_unnamed_addr #0 { entry: %_auto_errp_prop.i6 = alloca %struct.ErrorPropagator, align 8 %_auto_errp_prop.i = alloca %struct.ErrorPropagator, align 8 @@ -3039,7 +3039,7 @@ return: ; preds = %for.inc.i, %is_busy } ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @migrate_add_blocker_normal(ptr nocapture noundef %reasonp, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef i32 @migrate_add_blocker_normal(ptr nocapture noundef %reasonp, ptr noundef %errp) local_unnamed_addr #0 { entry: %call = tail call i32 (ptr, ptr, i32, ...) @migrate_add_blocker_modes(ptr noundef %reasonp, ptr noundef %errp, i32 noundef 0, i32 noundef -1), !range !8 ret i32 %call @@ -3052,7 +3052,7 @@ declare void @llvm.va_start(ptr) #12 declare void @llvm.va_end(ptr) #12 ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @migrate_add_blocker_internal(ptr nocapture noundef %reasonp, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef i32 @migrate_add_blocker_internal(ptr nocapture noundef %reasonp, ptr noundef %errp) local_unnamed_addr #0 { entry: %_auto_errp_prop.i = alloca %struct.ErrorPropagator, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_auto_errp_prop.i) @@ -3509,7 +3509,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @migration_is_blocked(ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @migration_is_blocked(ptr noundef %errp) local_unnamed_addr #0 { entry: %call = tail call i32 @migrate_mode() #18 %idxprom = zext i32 %call to i64 @@ -4045,7 +4045,7 @@ migrate_get_current.exit: ; preds = %entry } ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @migration_rate_limit() local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @migration_rate_limit() local_unnamed_addr #0 { entry: %_now.i.i9 = alloca %struct.timeval, align 8 %_now.i.i = alloca %struct.timeval, align 8 @@ -4722,7 +4722,7 @@ declare i32 @multifd_save_setup(ptr noundef) local_unnamed_addr #1 declare void @qemu_thread_create(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define internal noalias ptr @bg_migration_thread(ptr noundef %opaque) #0 { +define internal noalias noundef ptr @bg_migration_thread(ptr noundef %opaque) #0 { entry: %_now.i.i35 = alloca %struct.timeval, align 8 %_now.i.i.i.i = alloca %struct.timeval, align 8 @@ -5027,7 +5027,7 @@ bg_migration_iteration_finish.exit: ; preds = %if.end38, %if.end38 } ; Function Attrs: nounwind sspstrong uwtable -define internal ptr @migration_thread(ptr noundef %opaque) #0 { +define internal noundef ptr @migration_thread(ptr noundef %opaque) #0 { entry: %_now.i.i34 = alloca %struct.timeval, align 8 %_now.i.i50.i.i = alloca %struct.timeval, align 8 @@ -6796,7 +6796,7 @@ return: ; preds = %entry, %trace_migra } ; Function Attrs: nounwind sspstrong uwtable -define internal ptr @source_return_path_thread(ptr noundef %opaque) #0 { +define internal noundef ptr @source_return_path_thread(ptr noundef %opaque) #0 { entry: %_now.i.i129 = alloca %struct.timeval, align 8 %_now.i.i115 = alloca %struct.timeval, align 8 @@ -6977,7 +6977,7 @@ if.then43: ; preds = %if.end36 br label %out if.end46: ; preds = %if.end36 - switch i32 %conv6, label %while.cond.backedge [ + switch i32 %conv6, label %default.unreachable [ i32 1, label %sw.bb i32 2, label %sw.bb53 i32 4, label %sw.bb57 @@ -7193,7 +7193,7 @@ migrate_handle_rp_resume_ack.exit.thread: ; preds = %trace_source_return call void @qemu_sem_post(ptr noundef nonnull %rp_sem.i.i) #18 br label %while.cond.backedge -while.cond.backedge: ; preds = %migrate_handle_rp_resume_ack.exit.thread, %if.end46, %migrate_handle_rp_recv_bitmap.exit, %trace_source_return_path_thread_switchover_acked.exit, %trace_source_return_path_thread_pong.exit +while.cond.backedge: ; preds = %migrate_handle_rp_resume_ack.exit.thread, %migrate_handle_rp_recv_bitmap.exit, %trace_source_return_path_thread_switchover_acked.exit, %trace_source_return_path_thread_pong.exit br label %while.cond, !llvm.loop !15 migrate_handle_rp_resume_ack.exit: ; preds = %trace_source_return_path_thread_resume_ack.exit.i @@ -7238,6 +7238,9 @@ trace_source_return_path_thread_switchover_acked.exit: ; preds = %sw.bb116, %lan call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i99) br label %while.cond.backedge +default.unreachable: ; preds = %if.end46 + unreachable + out: ; preds = %while.cond, %migrate_handle_rp_recv_bitmap.exit, %migrate_handle_rp_resume_ack.exit, %migrate_handle_rp_recv_bitmap.exit.thread, %trace_source_return_path_thread_shut.exit, %if.then51, %if.then98, %if.then87, %if.then43, %if.then28, %if.then11, %if.then %.pr = load ptr, ptr %err, align 8 %tobool117.not = icmp eq ptr %.pr, null @@ -7582,7 +7585,7 @@ entry: } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc i32 @migration_detect_error(ptr noundef %s) unnamed_addr #0 { +define internal fastcc noundef i32 @migration_detect_error(ptr noundef %s) unnamed_addr #0 { entry: %_now.i.i = alloca %struct.timeval, align 8 %_now.i.i.i = alloca %struct.timeval, align 8 diff --git a/bench/qemu/optimized/migration_savevm.c.ll b/bench/qemu/optimized/migration_savevm.c.ll index 7d48e5cc526..e13098554c2 100644 --- a/bench/qemu/optimized/migration_savevm.c.ll +++ b/bench/qemu/optimized/migration_savevm.c.ll @@ -523,7 +523,7 @@ declare void @timer_mod_ns(ptr noundef, i64 noundef) local_unnamed_addr #1 declare void @timer_del(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @get_timer(ptr noundef %f, ptr noundef %pv, i64 %size, ptr nocapture readnone %field) #0 { +define internal noundef i32 @get_timer(ptr noundef %f, ptr noundef %pv, i64 %size, ptr nocapture readnone %field) #0 { entry: %call.i = tail call i64 @qemu_get_be64(ptr noundef %f) #16 %cmp.not.i = icmp eq i64 %call.i, -1 @@ -542,7 +542,7 @@ timer_get.exit: ; preds = %if.then.i, %if.else } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @put_timer(ptr noundef %f, ptr noundef %pv, i64 %size, ptr nocapture readnone %field, ptr nocapture readnone %vmdesc) #0 { +define internal noundef i32 @put_timer(ptr noundef %f, ptr noundef %pv, i64 %size, ptr nocapture readnone %field, ptr nocapture readnone %vmdesc) #0 { entry: %call.i = tail call i64 @timer_expire_time_ns(ptr noundef %pv) #16 tail call void @qemu_put_be64(ptr noundef %f, i64 noundef %call.i) #16 @@ -804,7 +804,7 @@ declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #2 declare void @g_slist_free(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @register_savevm_live(ptr noundef %idstr, i32 noundef %instance_id, i32 noundef %version_id, ptr noundef %ops, ptr noundef %opaque) local_unnamed_addr #0 { +define dso_local noundef i32 @register_savevm_live(ptr noundef %idstr, i32 noundef %instance_id, i32 noundef %version_id, ptr noundef %ops, ptr noundef %opaque) local_unnamed_addr #0 { entry: %call = tail call noalias dereferenceable_or_null(336) ptr @g_malloc0_n(i64 noundef 1, i64 noundef 336) #18 %version_id1 = getelementptr inbounds %struct.SaveStateEntry, ptr %call, i64 0, i32 4 @@ -1180,7 +1180,7 @@ declare void @g_free(ptr noundef) local_unnamed_addr #1 declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #6 ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @vmstate_replace_hack_for_ppc(ptr noundef %obj, i32 noundef %instance_id, ptr noundef %vmsd, ptr noundef %opaque) local_unnamed_addr #0 { +define dso_local noundef i32 @vmstate_replace_hack_for_ppc(ptr noundef %obj, i32 noundef %instance_id, ptr noundef %vmsd, ptr noundef %opaque) local_unnamed_addr #0 { entry: %0 = load ptr, ptr %vmsd, align 8 %se.017.i = load ptr, ptr @savevm_state, align 8 @@ -1301,12 +1301,12 @@ savevm_state_handler_remove.exit: ; preds = %save_state_priority br label %if.end if.end: ; preds = %for.inc.i, %entry, %savevm_state_handler_remove.exit - %call.i7 = tail call i32 @vmstate_register_with_alias_id(ptr noundef %obj, i32 noundef %instance_id, ptr noundef nonnull %vmsd, ptr noundef %opaque, i32 noundef -1, i32 noundef 0, ptr noundef null), !range !13 + %call.i7 = tail call noundef i32 @vmstate_register_with_alias_id(ptr noundef %obj, i32 noundef %instance_id, ptr noundef nonnull %vmsd, ptr noundef %opaque, i32 noundef -1, i32 noundef 0, ptr noundef null), !range !13 ret i32 %call.i7 } ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @vmstate_register_with_alias_id(ptr noundef %obj, i32 noundef %instance_id, ptr noundef %vmsd, ptr noundef %opaque, i32 noundef %alias_id, i32 noundef %required_for_version, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef i32 @vmstate_register_with_alias_id(ptr noundef %obj, i32 noundef %instance_id, ptr noundef %vmsd, ptr noundef %opaque, i32 noundef %alias_id, i32 noundef %required_for_version, ptr noundef %errp) local_unnamed_addr #0 { entry: %cmp = icmp eq i32 %alias_id, -1 br i1 %cmp, label %if.end, label %lor.lhs.false @@ -1812,7 +1812,7 @@ if.else.i.i: ; preds = %if.then.i.i trace_savevm_send_ping.exit: ; preds = %entry, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i) - %7 = tail call i32 @llvm.bswap.i32(i32 %value) + %7 = tail call noundef i32 @llvm.bswap.i32(i32 %value) store i32 %7, ptr %buf, align 4 call fastcc void @qemu_savevm_command_send(ptr noundef %f, i32 noundef 2, i16 noundef zeroext 4, ptr noundef nonnull %buf) ret void @@ -1862,7 +1862,7 @@ trace_savevm_send_open_return_path.exit: ; preds = %entry, %land.lhs.tr } ; Function Attrs: nounwind sspstrong uwtable -define dso_local i32 @qemu_savevm_send_packaged(ptr noundef %f, ptr noundef %buf, i64 noundef %len) local_unnamed_addr #0 { +define dso_local noundef i32 @qemu_savevm_send_packaged(ptr noundef %f, ptr noundef %buf, i64 noundef %len) local_unnamed_addr #0 { entry: %_now.i.i = alloca %struct.timeval, align 8 %tmp = alloca i32, align 4 @@ -1882,7 +1882,7 @@ if.then: ; preds = %entry if.end: ; preds = %entry %conv = trunc i64 %len to i32 - %2 = tail call i32 @llvm.bswap.i32(i32 %conv) + %2 = tail call noundef i32 @llvm.bswap.i32(i32 %conv) store i32 %2, ptr %tmp, align 4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i) %3 = load i32, ptr @trace_events_enabled_count, align 4 @@ -1946,10 +1946,10 @@ entry: if.then: ; preds = %entry %call1 = tail call i64 @ram_pagesize_summary() #16 - %0 = tail call i64 @llvm.bswap.i64(i64 %call1) + %0 = tail call noundef i64 @llvm.bswap.i64(i64 %call1) store i64 %0, ptr %tmp, align 16 %call3 = tail call i64 @qemu_target_page_size() #16 - %1 = tail call i64 @llvm.bswap.i64(i64 %call3) + %1 = tail call noundef i64 @llvm.bswap.i64(i64 %call3) %arrayidx5 = getelementptr inbounds [2 x i64], ptr %tmp, i64 0, i64 1 store i64 %1, ptr %arrayidx5, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i) @@ -2291,7 +2291,7 @@ trace_savevm_send_recv_bitmap.exit: ; preds = %entry, %land.lhs.tr } ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @qemu_savevm_state_blocked(ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @qemu_savevm_state_blocked(ptr noundef %errp) local_unnamed_addr #0 { entry: %se.08 = load ptr, ptr @savevm_state, align 8 %tobool.not9.not = icmp eq ptr %se.08, null @@ -2452,7 +2452,7 @@ declare i32 @vmstate_save_state(ptr noundef, ptr noundef, ptr noundef, ptr nound declare void @json_writer_end_object(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @qemu_savevm_state_guest_unplug_pending() local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @qemu_savevm_state_guest_unplug_pending() local_unnamed_addr #0 { entry: %se.07 = load ptr, ptr @savevm_state, align 8 %tobool.not8.not = icmp eq ptr %se.07, null @@ -4417,16 +4417,16 @@ entry: retry: ; preds = %postcopy_pause_incoming.exit, %entry %f.addr.0 = phi ptr [ %f, %entry ], [ %214, %postcopy_pause_incoming.exit ] - %call429 = call i32 @qemu_get_byte(ptr noundef %f.addr.0) #16 + %call431 = call i32 @qemu_get_byte(ptr noundef %f.addr.0) #16 %0 = load ptr, ptr %postcopy_qemufile_dst, align 8 - %call1431 = call i32 @qemu_file_get_error_obj_any(ptr noundef %f.addr.0, ptr noundef %0, ptr noundef null) #16 - %tobool.not432 = icmp eq i32 %call1431, 0 - br i1 %tobool.not432, label %if.end, label %out + %call1433 = call i32 @qemu_file_get_error_obj_any(ptr noundef %f.addr.0, ptr noundef %0, ptr noundef null) #16 + %tobool.not434 = icmp eq i32 %call1433, 0 + br i1 %tobool.not434, label %if.end, label %out if.end: ; preds = %retry, %sw.epilog - %call433 = phi i32 [ %call, %sw.epilog ], [ %call429, %retry ] - %conv434 = trunc i32 %call433 to i8 - %conv2 = and i32 %call433, 255 + %call435 = phi i32 [ %call, %sw.epilog ], [ %call431, %retry ] + %conv436 = trunc i32 %call435 to i8 + %conv2 = and i32 %call435, 255 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i) %1 = load i32, ptr @trace_events_enabled_count, align 4 %tobool.i.i = icmp ne i32 %1, 0 @@ -4461,7 +4461,7 @@ if.else.i.i: ; preds = %if.then.i.i trace_qemu_loadvm_state_section.exit: ; preds = %if.end, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i) - switch i8 %conv434, label %sw.default [ + switch i8 %conv436, label %sw.default [ i8 1, label %sw.bb i8 4, label %sw.bb i8 2, label %sw.bb8 @@ -4472,7 +4472,7 @@ trace_qemu_loadvm_state_section.exit: ; preds = %if.end, %land.lhs.t sw.bb: ; preds = %trace_qemu_loadvm_state_section.exit, %trace_qemu_loadvm_state_section.exit call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %idstr.i) - %cmp.i = icmp eq i8 %conv434, 4 + %cmp.i = icmp eq i8 %conv436, 4 %call.i = call i32 @qemu_get_be32(ptr noundef %f.addr.0) #16 %call2.i = call i64 @qemu_get_counted_string(ptr noundef %f.addr.0, ptr noundef nonnull %idstr.i) #16 %tobool.not.i = icmp eq i64 %call2.i, 0 @@ -4696,7 +4696,7 @@ qemu_loadvm_section_start_full.exit: ; preds = %if.end.i br i1 %cmp, label %if.then26, label %sw.epilog sw.bb8: ; preds = %trace_qemu_loadvm_state_section.exit, %trace_qemu_loadvm_state_section.exit - %cmp.i23 = icmp eq i8 %conv434, 3 + %cmp.i23 = icmp eq i8 %conv436, 3 %call.i24 = call i32 @qemu_get_be32(ptr noundef %f.addr.0) #16 %call2.i25 = call i32 @qemu_file_get_error(ptr noundef %f.addr.0) #16 %tobool.not.i26 = icmp eq i32 %call2.i25, 0 @@ -4906,7 +4906,7 @@ if.then26.i: ; preds = %trace_loadvm_proces br label %loadvm_process_command.exit if.end34.i: ; preds = %trace_loadvm_process_command.exit - switch i32 %conv6.i, label %loadvm_process_command.exit [ + switch i32 %conv6.i, label %default.unreachable.i [ i32 1, label %sw.bb.i i32 2, label %sw.bb56.i i32 7, label %sw.bb62.i @@ -5823,8 +5823,11 @@ if.then3.i: ; preds = %if.then.i118 call void @migration_incoming_disable_colo() #16 br label %loadvm_process_command.exit -loadvm_process_command.exit: ; preds = %if.then3.i, %if.then.i118, %sw.bb76.i, %if.end4.i155, %trace_loadvm_postcopy_handle_resume.exit.i, %if.then.i147, %if.end.i198, %if.then.i196, %trace_loadvm_handle_cmd_packaged_main.exit.i, %if.then11.i287, %if.then.i56, %if.then11.i62, %if.then26.i, %if.end34.i, %if.then37.i60, %if.then43.i, %if.end44.i, %land.lhs.true47.i, %if.then49.i, %if.then52.i, %if.then60.i, %if.end61.i, %loadvm_postcopy_handle_advise.exit, %loadvm_postcopy_handle_listen.exit, %loadvm_postcopy_ram_handle_discard.exit, %loadvm_handle_recv_bitmap.exit - %retval.0.i58 = phi i32 [ %call5.i57, %if.then.i56 ], [ -22, %if.then11.i62 ], [ -34, %if.then26.i ], [ %retval.0.i128, %loadvm_handle_recv_bitmap.exit ], [ %retval.0.i173, %loadvm_postcopy_ram_handle_discard.exit ], [ %retval.0.i220, %loadvm_postcopy_handle_listen.exit ], [ %retval.0.i248, %loadvm_postcopy_handle_advise.exit ], [ -1, %if.then60.i ], [ 0, %if.then37.i60 ], [ %call50.i, %if.then52.i ], [ -1, %if.then43.i ], [ 0, %if.end44.i ], [ 0, %land.lhs.true47.i ], [ 0, %if.then49.i ], [ 0, %if.end61.i ], [ 0, %if.end34.i ], [ %cond.i288, %if.then11.i287 ], [ %call17.i296, %trace_loadvm_handle_cmd_packaged_main.exit.i ], [ -1, %if.then.i196 ], [ 1, %if.end.i198 ], [ 0, %if.then.i147 ], [ 0, %trace_loadvm_postcopy_handle_resume.exit.i ], [ 0, %if.end4.i155 ], [ %call.i115, %sw.bb76.i ], [ %call1.i119, %if.then3.i ], [ 0, %if.then.i118 ] +default.unreachable.i: ; preds = %if.end34.i + unreachable + +loadvm_process_command.exit: ; preds = %if.then3.i, %if.then.i118, %sw.bb76.i, %if.end4.i155, %trace_loadvm_postcopy_handle_resume.exit.i, %if.then.i147, %if.end.i198, %if.then.i196, %trace_loadvm_handle_cmd_packaged_main.exit.i, %if.then11.i287, %if.then.i56, %if.then11.i62, %if.then26.i, %if.then37.i60, %if.then43.i, %if.end44.i, %land.lhs.true47.i, %if.then49.i, %if.then52.i, %if.then60.i, %if.end61.i, %loadvm_postcopy_handle_advise.exit, %loadvm_postcopy_handle_listen.exit, %loadvm_postcopy_ram_handle_discard.exit, %loadvm_handle_recv_bitmap.exit + %retval.0.i58 = phi i32 [ %call5.i57, %if.then.i56 ], [ -22, %if.then11.i62 ], [ -34, %if.then26.i ], [ %retval.0.i128, %loadvm_handle_recv_bitmap.exit ], [ %retval.0.i173, %loadvm_postcopy_ram_handle_discard.exit ], [ %retval.0.i220, %loadvm_postcopy_handle_listen.exit ], [ %retval.0.i248, %loadvm_postcopy_handle_advise.exit ], [ -1, %if.then60.i ], [ 0, %if.then37.i60 ], [ %call50.i, %if.then52.i ], [ -1, %if.then43.i ], [ 0, %if.end44.i ], [ 0, %land.lhs.true47.i ], [ 0, %if.then49.i ], [ 0, %if.end61.i ], [ %cond.i288, %if.then11.i287 ], [ %call17.i296, %trace_loadvm_handle_cmd_packaged_main.exit.i ], [ -1, %if.then.i196 ], [ 1, %if.end.i198 ], [ 0, %if.then.i147 ], [ 0, %trace_loadvm_postcopy_handle_resume.exit.i ], [ 0, %if.end4.i155 ], [ %call.i115, %sw.bb76.i ], [ %call1.i119, %if.then3.i ], [ 0, %if.then.i118 ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i63) %174 = load i32, ptr @trace_events_enabled_count, align 4 %tobool.i.i64 = icmp ne i32 %174, 0 @@ -5876,7 +5879,7 @@ sw.epilog: ; preds = %if.end27.i, %qemu_l br i1 %tobool.not, label %if.end, label %out out: ; preds = %trace_qemu_loadvm_state_section_command.exit, %sw.epilog, %retry - %ret.0 = phi i32 [ %call1431, %retry ], [ %call1, %sw.epilog ], [ %retval.0.i58, %trace_qemu_loadvm_state_section_command.exit ] + %ret.0 = phi i32 [ %call1433, %retry ], [ %call1, %sw.epilog ], [ %retval.0.i58, %trace_qemu_loadvm_state_section_command.exit ] %cmp24 = icmp slt i32 %ret.0, 0 br i1 %cmp24, label %if.then26, label %if.end37 @@ -6527,7 +6530,7 @@ return: ; preds = %trace_loadvm_approv declare i32 @migrate_send_rp_switchover_ack(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @save_snapshot(ptr noundef %name, i1 noundef zeroext %overwrite, ptr noundef %vmstate, i1 noundef zeroext %has_devices, ptr noundef %devices, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @save_snapshot(ptr noundef %name, i1 noundef zeroext %overwrite, ptr noundef %vmstate, i1 noundef zeroext %has_devices, ptr noundef %devices, ptr noundef %errp) local_unnamed_addr #0 { entry: %sn1 = alloca %struct.QEMUSnapshotInfo, align 8 %call = tail call ptr @g_date_time_new_now_local() #16 @@ -6919,7 +6922,7 @@ declare ptr @qemu_file_new_input(ptr noundef) local_unnamed_addr #1 declare void @migration_incoming_state_destroy() local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @load_snapshot(ptr noundef %name, ptr noundef %vmstate, i1 noundef zeroext %has_devices, ptr noundef %devices, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @load_snapshot(ptr noundef %name, ptr noundef %vmstate, i1 noundef zeroext %has_devices, ptr noundef %devices, ptr noundef %errp) local_unnamed_addr #0 { entry: %sn = alloca %struct.QEMUSnapshotInfo, align 8 %.compoundliteral = alloca %struct.YankInstance, align 8 @@ -7215,7 +7218,7 @@ declare i32 @llvm.bswap.i32(i32) #11 declare i64 @llvm.bswap.i64(i64) #11 ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @configuration_pre_load(ptr nocapture noundef writeonly %opaque) #0 { +define internal noundef i32 @configuration_pre_load(ptr nocapture noundef writeonly %opaque) #0 { entry: %call = tail call i32 @qemu_target_page_bits_min() #16 %target_page_bits = getelementptr inbounds %struct.SaveState, ptr %opaque, i64 0, i32 5 @@ -7259,7 +7262,7 @@ if.then9: ; preds = %if.end if.end12: ; preds = %if.end %call.i14 = tail call ptr @migrate_get_current() #16 - %call.i.i.i = tail call noalias dereferenceable_or_null(8) ptr @g_try_malloc0(i64 noundef 8) #20 + %call.i.i.i = tail call noalias noundef dereferenceable_or_null(8) ptr @g_try_malloc0(i64 noundef 8) #20 %cmp.i.i = icmp eq ptr %call.i.i.i, null br i1 %cmp.i.i, label %if.then.i.i, label %for.cond.preheader.i @@ -7354,7 +7357,7 @@ out: ; preds = %configuration_valid } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @configuration_pre_save(ptr nocapture noundef %opaque) #0 { +define internal noundef i32 @configuration_pre_save(ptr nocapture noundef %opaque) #0 { entry: %0 = load ptr, ptr @current_machine, align 8 %call.i = tail call ptr @object_get_class(ptr noundef %0) #16 @@ -7438,7 +7441,7 @@ for.end: ; preds = %for.inc } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @configuration_post_save(ptr nocapture noundef %opaque) #0 { +define internal noundef i32 @configuration_post_save(ptr nocapture noundef %opaque) #0 { entry: %capabilities = getelementptr inbounds %struct.SaveState, ptr %opaque, i64 0, i32 7 %0 = load ptr, ptr %capabilities, align 8 @@ -7504,7 +7507,7 @@ get_validatable_capabilities_count.exit: ; preds = %for.inc.i } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @get_capability(ptr noundef %f, ptr nocapture noundef writeonly %pv, i64 %size, ptr nocapture readnone %field) #0 { +define internal noundef i32 @get_capability(ptr noundef %f, ptr nocapture noundef writeonly %pv, i64 %size, ptr nocapture readnone %field) #0 { entry: %capability_str = alloca [256 x i8], align 16 %call = tail call i32 @qemu_get_byte(ptr noundef %f) #16 @@ -7541,7 +7544,7 @@ return: ; preds = %for.end, %if.then } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @put_capability(ptr noundef %f, ptr nocapture noundef readonly %pv, i64 %size, ptr nocapture readnone %field, ptr nocapture readnone %vmdesc) #0 { +define internal noundef i32 @put_capability(ptr noundef %f, ptr nocapture noundef readonly %pv, i64 %size, ptr nocapture readnone %field, ptr nocapture readnone %vmdesc) #0 { entry: %0 = load i32, ptr %pv, align 4 %call = tail call ptr @qapi_enum_lookup(ptr noundef nonnull @MigrationCapability_lookup, i32 noundef %0) #16 @@ -7561,7 +7564,7 @@ if.end: ; preds = %entry } ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @vmstate_uuid_post_load(ptr noundef %opaque, i32 %version_id) #0 { +define internal noundef i32 @vmstate_uuid_post_load(ptr noundef %opaque, i32 %version_id) #0 { entry: %uuid_src = alloca [37 x i8], align 16 %uuid_dst = alloca [37 x i8], align 16 @@ -7713,7 +7716,7 @@ return: ; preds = %if.end, %if.then } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc zeroext i1 @check_section_footer(ptr noundef %f, ptr noundef %se) unnamed_addr #0 { +define internal fastcc noundef zeroext i1 @check_section_footer(ptr noundef %f, ptr noundef %se) unnamed_addr #0 { entry: %call = tail call ptr @migrate_get_current() #16 %send_section_footer = getelementptr inbounds %struct.MigrationState, ptr %call, i64 0, i32 42 @@ -7789,7 +7792,7 @@ declare i32 @postcopy_ram_incoming_cleanup(ptr noundef) local_unnamed_addr #1 declare void @postcopy_thread_create(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define internal noalias ptr @postcopy_ram_listen_thread(ptr nocapture readnone %opaque) #0 { +define internal noalias noundef ptr @postcopy_ram_listen_thread(ptr nocapture readnone %opaque) #0 { entry: %_now.i.i19 = alloca %struct.timeval, align 8 %_now.i.i = alloca %struct.timeval, align 8 @@ -8271,7 +8274,7 @@ declare void @qemu_sem_wait(ptr noundef) local_unnamed_addr #1 declare void @g_tree_foreach(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable -define internal i32 @postcopy_sync_page_req(ptr noundef %key, ptr nocapture readnone %value, ptr noundef %data) #0 { +define internal noundef i32 @postcopy_sync_page_req(ptr noundef %key, ptr nocapture readnone %value, ptr noundef %data) #0 { entry: %_now.i.i = alloca %struct.timeval, align 8 %rb_offset = alloca i64, align 8 diff --git a/bench/qemu/optimized/qobject_block-qdict.c.ll b/bench/qemu/optimized/qobject_block-qdict.c.ll index 8efcbb6d84a..ae0c0ead8cc 100644 --- a/bench/qemu/optimized/qobject_block-qdict.c.ll +++ b/bench/qemu/optimized/qobject_block-qdict.c.ll @@ -1140,7 +1140,7 @@ while.end: ; preds = %if.end, %qobject_re } ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @qdict_rename_keys(ptr noundef %qdict, ptr nocapture noundef readonly %renames, ptr noundef %errp) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @qdict_rename_keys(ptr noundef %qdict, ptr nocapture noundef readonly %renames, ptr noundef %errp) local_unnamed_addr #0 { entry: %0 = load ptr, ptr %renames, align 8 %tobool.not18 = icmp eq ptr %0, null @@ -1223,7 +1223,7 @@ if.else.i.i: ; preds = %for.body.i unreachable qobject_type.exit.i: ; preds = %for.body.i - switch i32 %.val.i, label %sw.default.i [ + switch i32 %.val.i, label %default.unreachable.i [ i32 1, label %for.inc.i i32 3, label %for.inc.i i32 2, label %qobject_check_type.exit.i @@ -1241,8 +1241,7 @@ qobject_check_type.exit23.i: ; preds = %qobject_type.exit.i %cond.i = select i1 %call10.i, ptr @.str.22, ptr @.str.23 br label %sw.epilog.i -sw.default.i: ; preds = %qobject_type.exit.i - tail call void @abort() #8 +default.unreachable.i: ; preds = %qobject_type.exit.i unreachable sw.epilog.i: ; preds = %qobject_check_type.exit23.i, %qobject_check_type.exit.i @@ -1435,9 +1434,6 @@ declare ptr @qnum_to_string(ptr noundef) local_unnamed_addr #1 declare zeroext i1 @qbool_get_bool(ptr noundef) local_unnamed_addr #1 -; Function Attrs: noreturn nounwind -declare void @abort() local_unnamed_addr #3 - declare ptr @qdict_clone_shallow(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) diff --git a/bench/qemu/optimized/qobject_qjson.c.ll b/bench/qemu/optimized/qobject_qjson.c.ll index 7f00992633a..43f952bc66d 100644 --- a/bench/qemu/optimized/qobject_qjson.c.ll +++ b/bench/qemu/optimized/qobject_qjson.c.ll @@ -230,7 +230,7 @@ if.else.i: ; preds = %entry unreachable qobject_type.exit: ; preds = %entry - switch i32 %obj.val, label %sw.default34 [ + switch i32 %obj.val, label %default.unreachable [ i32 1, label %sw.bb i32 2, label %qobject_check_type.exit i32 3, label %qobject_check_type.exit43 @@ -323,8 +323,7 @@ qobject_check_type.exit73: ; preds = %qobject_type.exit tail call void @json_writer_bool(ptr noundef %writer, ptr noundef %name, i1 noundef zeroext %call33) #7 br label %sw.epilog35 -sw.default34: ; preds = %qobject_type.exit - tail call void @abort() #9 +default.unreachable: ; preds = %qobject_type.exit unreachable sw.epilog35: ; preds = %sw.bb3, %sw.bb4, %sw.bb6, %qobject_check_type.exit73, %for.end29, %for.end, %qobject_check_type.exit43, %sw.bb diff --git a/bench/qemu/optimized/replay_replay.c.ll b/bench/qemu/optimized/replay_replay.c.ll index 300c4c5c813..5611d3a1cd6 100644 --- a/bench/qemu/optimized/replay_replay.c.ll +++ b/bench/qemu/optimized/replay_replay.c.ll @@ -51,7 +51,6 @@ target triple = "x86_64-unknown-linux-gnu" @.str.17 = private unnamed_addr constant [3 x i8] c"wb\00", align 1 @.str.18 = private unnamed_addr constant [3 x i8] c"rb\00", align 1 @stderr = external local_unnamed_addr global ptr, align 8 -@.str.19 = private unnamed_addr constant [45 x i8] c"Replay: internal error: invalid replay mode\0A\00", align 1 @.str.20 = private unnamed_addr constant [21 x i8] c"Replay: open %s: %s\0A\00", align 1 @.str.21 = private unnamed_addr constant [40 x i8] c"Replay: invalid input log file version\0A\00", align 1 @@ -242,7 +241,7 @@ if.end6: ; preds = %do.end, %if.then3, declare void @replay_advance_current_icount(i64 noundef) local_unnamed_addr #2 ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @replay_exception() local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @replay_exception() local_unnamed_addr #0 { entry: %0 = load i32, ptr @replay_mode, align 4 switch i32 %0, label %return [ @@ -375,7 +374,7 @@ if.end3: ; preds = %sw.default.i, %if.t } ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @replay_interrupt() local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @replay_interrupt() local_unnamed_addr #0 { entry: %0 = load i32, ptr @replay_mode, align 4 switch i32 %0, label %return [ @@ -529,7 +528,7 @@ if.end2: ; preds = %do.end, %entry } ; Function Attrs: nounwind sspstrong uwtable -define dso_local zeroext i1 @replay_checkpoint(i32 noundef %checkpoint) local_unnamed_addr #0 { +define dso_local noundef zeroext i1 @replay_checkpoint(i32 noundef %checkpoint) local_unnamed_addr #0 { entry: %add = add i32 %checkpoint, 30 %cmp = icmp ult i32 %add, 39 @@ -778,38 +777,23 @@ if.else.i: ; preds = %if.end18 unreachable if.end.i: ; preds = %if.end18 - switch i32 %mode.0, label %sw.default.i [ - i32 1, label %sw.epilog.i - i32 2, label %sw.bb1.i - ] - -sw.bb1.i: ; preds = %if.end.i - br label %sw.epilog.i - -sw.default.i: ; preds = %if.end.i - %1 = load ptr, ptr @stderr, align 8 - %2 = call i64 @fwrite(ptr nonnull @.str.19, i64 44, i64 1, ptr %1) #13 - call void @exit(i32 noundef 1) #10 - unreachable - -sw.epilog.i: ; preds = %sw.bb1.i, %if.end.i - %fmode.0.i = phi ptr [ @.str.18, %sw.bb1.i ], [ @.str.17, %if.end.i ] + %.str.17..str.18.i = select i1 %tobool5.not, ptr @.str.17, ptr @.str.18 %call2.i = call i32 @atexit(ptr noundef nonnull @replay_finish) #11 - %call3.i = call noalias ptr @fopen64(ptr noundef nonnull %call15, ptr noundef nonnull %fmode.0.i) + %call3.i = call noalias ptr @fopen64(ptr noundef nonnull %call15, ptr noundef nonnull %.str.17..str.18.i) store ptr %call3.i, ptr @replay_file, align 8 %cmp.i = icmp eq ptr %call3.i, null br i1 %cmp.i, label %if.then4.i, label %if.end8.i -if.then4.i: ; preds = %sw.epilog.i - %3 = load ptr, ptr @stderr, align 8 - %call5.i = tail call ptr @__errno_location() #14 - %4 = load i32, ptr %call5.i, align 4 - %call6.i = call ptr @strerror(i32 noundef %4) #11 - %call7.i = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str.20, ptr noundef nonnull %call15, ptr noundef %call6.i) #13 +if.then4.i: ; preds = %if.end.i + %1 = load ptr, ptr @stderr, align 8 + %call5.i = tail call ptr @__errno_location() #13 + %2 = load i32, ptr %call5.i, align 4 + %call6.i = call ptr @strerror(i32 noundef %2) #11 + %call7.i = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1, ptr noundef nonnull @.str.20, ptr noundef nonnull %call15, ptr noundef %call6.i) #14 call void @exit(i32 noundef 1) #10 unreachable -if.end8.i: ; preds = %sw.epilog.i +if.end8.i: ; preds = %if.end.i %call9.i = call noalias ptr @g_strdup(ptr noundef nonnull %call15) #11 store ptr %call9.i, ptr @replay_filename, align 8 store i32 %mode.0, ptr @replay_mode, align 4 @@ -818,15 +802,15 @@ if.end8.i: ; preds = %sw.epilog.i store i32 0, ptr getelementptr inbounds (%struct.ReplayState, ptr @replay_state, i64 0, i32 2), align 8 store i64 0, ptr getelementptr inbounds (%struct.ReplayState, ptr @replay_state, i64 0, i32 1), align 8 store i32 0, ptr getelementptr inbounds (%struct.ReplayState, ptr @replay_state, i64 0, i32 4), align 8 - %5 = load i32, ptr @replay_mode, align 4 - switch i32 %5, label %replay_enable.exit [ + %3 = load i32, ptr @replay_mode, align 4 + switch i32 %3, label %replay_enable.exit [ i32 1, label %if.then11.i i32 2, label %if.then15.i ] if.then11.i: ; preds = %if.end8.i - %6 = load ptr, ptr @replay_file, align 8 - %call12.i = call i32 @fseek(ptr noundef %6, i64 noundef 12, i32 noundef 0) + %4 = load ptr, ptr @replay_file, align 8 + %call12.i = call i32 @fseek(ptr noundef %4, i64 noundef 12, i32 noundef 0) br label %replay_enable.exit if.then15.i: ; preds = %if.end8.i @@ -835,14 +819,14 @@ if.then15.i: ; preds = %if.end8.i br i1 %cmp17.not.i, label %if.end20.i, label %if.then18.i if.then18.i: ; preds = %if.then15.i - %7 = load ptr, ptr @stderr, align 8 - %8 = call i64 @fwrite(ptr nonnull @.str.21, i64 39, i64 1, ptr %7) #13 + %5 = load ptr, ptr @stderr, align 8 + %6 = call i64 @fwrite(ptr nonnull @.str.21, i64 39, i64 1, ptr %5) #14 call void @exit(i32 noundef 1) #10 unreachable if.end20.i: ; preds = %if.then15.i - %9 = load ptr, ptr @replay_file, align 8 - %call21.i = call i32 @fseek(ptr noundef %9, i64 noundef 12, i32 noundef 0) + %7 = load ptr, ptr @replay_file, align 8 + %call21.i = call i32 @fseek(ptr noundef %7, i64 noundef 12, i32 noundef 0) call void @replay_fetch_data_kind() #11 br label %replay_enable.exit @@ -1049,8 +1033,8 @@ attributes #9 = { nofree nounwind } attributes #10 = { noreturn nounwind } attributes #11 = { nounwind } attributes #12 = { nounwind willreturn memory(read) } -attributes #13 = { cold } -attributes #14 = { nounwind willreturn memory(none) } +attributes #13 = { nounwind willreturn memory(none) } +attributes #14 = { cold } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/qemu/optimized/system_rtc.c.ll b/bench/qemu/optimized/system_rtc.c.ll index 646d65d83a3..7ff270f1ce6 100644 --- a/bench/qemu/optimized/system_rtc.c.ll +++ b/bench/qemu/optimized/system_rtc.c.ll @@ -56,7 +56,7 @@ sw.bb1.i: ; preds = %sw.bb.i, %entry %value.0.i = phi i64 [ %div.i, %entry ], [ %sub.i, %sw.bb.i ] %2 = load i64, ptr @rtc_ref_start_datetime, align 8 %add.i = add i64 %2, %value.0.i - %.pr.pre = load i32, ptr @rtc_base_type, align 4 + %.pre = load i32, ptr @rtc_base_type, align 4 br label %qemu_ref_timedate.exit sw.bb2.i: ; preds = %entry @@ -68,8 +68,8 @@ qemu_ref_timedate.exit.thread: ; preds = %sw.bb2.i %4 = load i32, ptr @rtc_host_datetime_offset, align 4 %conv4.i = sext i32 %4 to i64 %sub5.i = sub nsw i64 %div.i, %conv4.i - %add4 = add i64 %sub5.i, %offset - store i64 %add4, ptr %ti, align 8 + %add3 = add i64 %sub5.i, %offset + store i64 %add3, ptr %ti, align 8 br label %sw.bb sw.default.i: ; preds = %entry @@ -77,17 +77,14 @@ sw.default.i: ; preds = %entry unreachable qemu_ref_timedate.exit: ; preds = %sw.bb1.i, %sw.bb2.i - %5 = phi i32 [ %3, %sw.bb2.i ], [ %.pr.pre, %sw.bb1.i ] + %5 = phi i32 [ %3, %sw.bb2.i ], [ %.pre, %sw.bb1.i ] %value.1.i = phi i64 [ %div.i, %sw.bb2.i ], [ %add.i, %sw.bb1.i ] %add = add i64 %value.1.i, %offset store i64 %add, ptr %ti, align 8 - switch i32 %5, label %sw.epilog [ - i32 2, label %sw.bb - i32 0, label %sw.bb - i32 1, label %sw.bb2 - ] + %switch = icmp eq i32 %5, 1 + br i1 %switch, label %sw.bb2, label %sw.bb -sw.bb: ; preds = %qemu_ref_timedate.exit.thread, %qemu_ref_timedate.exit, %qemu_ref_timedate.exit +sw.bb: ; preds = %qemu_ref_timedate.exit.thread, %qemu_ref_timedate.exit %call1 = call ptr @gmtime_r(ptr noundef nonnull %ti, ptr noundef %tm) #9 br label %sw.epilog @@ -95,7 +92,7 @@ sw.bb2: ; preds = %qemu_ref_timedate.e %call3 = call ptr @localtime_r(ptr noundef nonnull %ti, ptr noundef %tm) #9 br label %sw.epilog -sw.epilog: ; preds = %sw.bb2, %sw.bb, %qemu_ref_timedate.exit +sw.epilog: ; preds = %sw.bb2, %sw.bb ret void } @@ -110,13 +107,10 @@ define dso_local i64 @qemu_timedate_diff(ptr noundef %tm) local_unnamed_addr #0 entry: %tmp = alloca %struct.tm, align 8 %0 = load i32, ptr @rtc_base_type, align 4 - switch i32 %0, label %sw.default [ - i32 2, label %sw.bb - i32 0, label %sw.bb - i32 1, label %sw.bb1 - ] + %switch = icmp eq i32 %0, 1 + br i1 %switch, label %sw.bb1, label %sw.bb -sw.bb: ; preds = %entry, %entry +sw.bb: ; preds = %entry %call = tail call i64 @mktimegm(ptr noundef %tm) #9 br label %sw.epilog @@ -127,10 +121,6 @@ sw.bb1: ; preds = %entry %call2 = call i64 @mktime(ptr noundef nonnull %tmp) #9 br label %sw.epilog -sw.default: ; preds = %entry - tail call void @abort() #10 - unreachable - sw.epilog: ; preds = %sw.bb1, %sw.bb %seconds.0 = phi i64 [ %call2, %sw.bb1 ], [ %call, %sw.bb ] %call.i.i = tail call i64 @qemu_clock_get_ns(i32 noundef 2) #9 @@ -153,9 +143,6 @@ declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias ; Function Attrs: mustprogress nofree nounwind willreturn declare noundef i64 @mktime(ptr nocapture noundef) local_unnamed_addr #4 -; Function Attrs: noreturn nounwind -declare void @abort() local_unnamed_addr #5 - ; Function Attrs: nounwind sspstrong uwtable define dso_local void @configure_rtc(ptr noundef %opts) local_unnamed_addr #0 { entry: @@ -304,14 +291,14 @@ if.end49: ; preds = %if.then40, %if.then declare ptr @qemu_opt_get(ptr noundef, ptr noundef) local_unnamed_addr #2 ; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read) -declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #6 +declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #5 declare void @replay_add_blocker(ptr noundef) local_unnamed_addr #2 declare void @error_report(ptr noundef, ...) local_unnamed_addr #2 ; Function Attrs: noreturn nounwind -declare void @exit(i32 noundef) local_unnamed_addr #5 +declare void @exit(i32 noundef) local_unnamed_addr #6 declare void @object_register_sugar_prop(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2 @@ -320,7 +307,7 @@ declare ptr @object_class_by_name(ptr noundef) local_unnamed_addr #2 declare void @warn_report(ptr noundef, ...) local_unnamed_addr #2 ; Function Attrs: noreturn nounwind -declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #5 +declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #6 declare i64 @qemu_clock_get_ns(i32 noundef) local_unnamed_addr #2 @@ -340,8 +327,8 @@ attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stac attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #4 = { mustprogress nofree nounwind willreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { mustprogress nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { nofree nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #9 = { nounwind } diff --git a/bench/qemu/optimized/target_riscv_translate.c.ll b/bench/qemu/optimized/target_riscv_translate.c.ll index 7c2ccf524fa..562b26f323c 100644 --- a/bench/qemu/optimized/target_riscv_translate.c.ll +++ b/bench/qemu/optimized/target_riscv_translate.c.ll @@ -2536,7 +2536,6 @@ target triple = "x86_64-unknown-linux-gnu" @trans_viota_m.fns = internal unnamed_addr constant [4 x ptr] [ptr @gen_helper_viota_m_b, ptr @gen_helper_viota_m_h, ptr @gen_helper_viota_m_w, ptr @gen_helper_viota_m_d], align 16 @trans_vid_v.fns = internal unnamed_addr constant [4 x ptr] [ptr @gen_helper_vid_v_b, ptr @gen_helper_vid_v_h, ptr @gen_helper_vid_v_w, ptr @gen_helper_vid_v_d], align 16 @trans_vcompress_vm.fns = internal unnamed_addr constant [4 x ptr] [ptr @gen_helper_vcompress_vm_b, ptr @gen_helper_vcompress_vm_h, ptr @gen_helper_vcompress_vm_w, ptr @gen_helper_vcompress_vm_d], align 16 -@__func__.extract_imm = private unnamed_addr constant [12 x i8] c"extract_imm\00", align 1 @.str.1177 = private unnamed_addr constant [49 x i8] c"start >= 0 && length > 0 && length <= 64 - start\00", align 1 @__PRETTY_FUNCTION__.extract64 = private unnamed_addr constant [39 x i8] c"uint64_t extract64(uint64_t, int, int)\00", align 1 @tcg_gen_gvec_rsubs.vecop_list = internal constant [2 x i32] [i32 156, i32 0], align 4 @@ -5398,58 +5397,58 @@ if.end5.i.i: ; preds = %sw.bb.i.i br i1 %call.i.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb9.i.i: ; preds = %land.lhs.true.i - %shr.i.i229.i.i = lshr i32 %conv11.i, 2 - %and.i.i230.i.i = and i32 %shr.i.i229.i.i, 31 + %shr.i.i227.i.i = lshr i32 %conv11.i, 2 + %and.i.i228.i.i = and i32 %shr.i.i227.i.i, 31 %shl.i.mask.i.i.i = and i32 %conv11.i, 4096 %isneg.not.i.i.i = icmp eq i32 %shl.i.mask.i.i.i, 0 %shl57.i.i.i.i = select i1 %isneg.not.i.i.i, i32 0, i32 -32 - %or.i.i231.i.i = or disjoint i32 %shl57.i.i.i.i, %and.i.i230.i.i - store i32 %or.i.i231.i.i, ptr %u.i.i, align 4 + %or.i.i229.i.i = or disjoint i32 %shl57.i.i.i.i, %and.i.i228.i.i + store i32 %or.i.i229.i.i, ptr %u.i.i, align 4 %shr.i7.i.i.i = lshr i32 %conv11.i, 7 %and.i8.i.i.i = and i32 %shr.i7.i.i.i, 31 - %rs1.i232.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i8.i.i.i, ptr %rs1.i232.i.i, align 4 - %rd.i233.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i8.i.i.i, ptr %rd.i233.i.i, align 4 - %call.i234.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) - br i1 %call.i234.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i + %rs1.i230.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i8.i.i.i, ptr %rs1.i230.i.i, align 4 + %rd.i231.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i8.i.i.i, ptr %rd.i231.i.i, align 4 + %call.i232.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) + br i1 %call.i232.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb13.i.i: ; preds = %land.lhs.true.i - %shr.i.i236.i.i = lshr i32 %conv11.i, 2 - %and.i.i237.i.i = and i32 %shr.i.i236.i.i, 31 + %shr.i.i234.i.i = lshr i32 %conv11.i, 2 + %and.i.i235.i.i = and i32 %shr.i.i234.i.i, 31 %10 = lshr i32 %conv11.i, 7 - %and6.i.i238.i.i = and i32 %10, 32 - %or.i.i239.i.i = or disjoint i32 %and.i.i237.i.i, %and6.i.i238.i.i + %and6.i.i236.i.i = and i32 %10, 32 + %or.i.i237.i.i = or disjoint i32 %and.i.i235.i.i, %and6.i.i236.i.i %cmp.i.i.i.i = icmp eq i32 %1, 3 - %tobool.not.i.i.i.i = icmp eq i32 %or.i.i239.i.i, 0 + %tobool.not.i.i.i.i = icmp eq i32 %or.i.i237.i.i, 0 %11 = and i1 %cmp.i.i.i.i, %tobool.not.i.i.i.i - %imm.addr.0.i.i.i.i = select i1 %11, i32 64, i32 %or.i.i239.i.i + %imm.addr.0.i.i.i.i = select i1 %11, i32 64, i32 %or.i.i237.i.i store i32 %imm.addr.0.i.i.i.i, ptr %u.i.i, align 4 %and.i9.i.i.i = and i32 %10, 31 - %rs1.i240.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i9.i.i.i, ptr %rs1.i240.i.i, align 4 - %rd.i241.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i9.i.i.i, ptr %rd.i241.i.i, align 4 + %rs1.i238.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i9.i.i.i, ptr %rs1.i238.i.i, align 4 + %rd.i239.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i9.i.i.i, ptr %rd.i239.i.i, align 4 %call14.i.i = call fastcc zeroext i1 @trans_slli(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call14.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb17.i.i: ; preds = %land.lhs.true.i %shr.i16.i.i.i = lshr i32 %conv11.i, 7 %and.i17.i.i.i = and i32 %shr.i16.i.i.i, 7 - %add.i.i248.i.i = or disjoint i32 %and.i17.i.i.i, 8 - %rs1.i249.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + %add.i.i246.i.i = or disjoint i32 %and.i17.i.i.i, 8 + %rs1.i247.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 %shr.i18.i.i.i = lshr i32 %conv11.i, 2 %and.i19.i.i.i = and i32 %shr.i18.i.i.i, 7 %add.i20.i.i.i = or disjoint i32 %and.i19.i.i.i, 8 - %rd.i250.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - %shr.i.i252.i.i = lshr i32 %conv11.i, 10 - %and.i.i253.i.i = and i32 %shr.i.i252.i.i, 7 - %and6.i.i254.i.i = and i32 %shr.i18.i.i.i, 24 - %or.i.i255.i.i = or disjoint i32 %and.i.i253.i.i, %and6.i.i254.i.i - %shl.i.i256.i.i = shl nuw nsw i32 %or.i.i255.i.i, 3 - store i32 %shl.i.i256.i.i, ptr %u.i.i, align 4 - store i32 %add.i.i248.i.i, ptr %rs1.i249.i.i, align 4 - store i32 %add.i20.i.i.i, ptr %rd.i250.i.i, align 4 + %rd.i248.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + %shr.i.i250.i.i = lshr i32 %conv11.i, 10 + %and.i.i251.i.i = and i32 %shr.i.i250.i.i, 7 + %and6.i.i252.i.i = and i32 %shr.i18.i.i.i, 24 + %or.i.i253.i.i = or disjoint i32 %and.i.i251.i.i, %and6.i.i252.i.i + %shl.i.i254.i.i = shl nuw nsw i32 %or.i.i253.i.i, 3 + store i32 %shl.i.i254.i.i, ptr %u.i.i, align 4 + store i32 %add.i.i246.i.i, ptr %rs1.i247.i.i, align 4 + store i32 %add.i20.i.i.i, ptr %rd.i248.i.i, align 4 %call21.i.i = call fastcc zeroext i1 @trans_c_fld(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call21.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i @@ -5463,22 +5462,22 @@ if.then29.i.i: ; preds = %sw.bb24.i.i br label %decode_insn16.exit.thread.i if.end33.i.i: ; preds = %sw.bb24.i.i - %shr.i.i261.i.i = lshr i32 %conv11.i, 2 - %and.i.i262.i.i = and i32 %shr.i.i261.i.i, 31 - %shl.i.mask.i263.i.i = and i32 %conv11.i, 4096 - %isneg.not.i264.i.i = icmp eq i32 %shl.i.mask.i263.i.i, 0 - %shl57.i.i265.i.i = select i1 %isneg.not.i264.i.i, i32 0, i32 -32 - %or.i.i266.i.i = or disjoint i32 %shl57.i.i265.i.i, %and.i.i262.i.i - store i32 %or.i.i266.i.i, ptr %u.i.i, align 4 - %shr.i7.i267.i.i = lshr i32 %conv11.i, 7 - %and.i8.i268.i.i = and i32 %shr.i7.i267.i.i, 31 - %rs1.i269.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i8.i268.i.i, ptr %rs1.i269.i.i, align 4 - %rd.i270.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i8.i268.i.i, ptr %rd.i270.i.i, align 4 + %shr.i.i259.i.i = lshr i32 %conv11.i, 2 + %and.i.i260.i.i = and i32 %shr.i.i259.i.i, 31 + %shl.i.mask.i261.i.i = and i32 %conv11.i, 4096 + %isneg.not.i262.i.i = icmp eq i32 %shl.i.mask.i261.i.i, 0 + %shl57.i.i263.i.i = select i1 %isneg.not.i262.i.i, i32 0, i32 -32 + %or.i.i264.i.i = or disjoint i32 %shl57.i.i263.i.i, %and.i.i260.i.i + store i32 %or.i.i264.i.i, ptr %u.i.i, align 4 + %shr.i7.i265.i.i = lshr i32 %conv11.i, 7 + %and.i8.i266.i.i = and i32 %shr.i7.i265.i.i, 31 + %rs1.i267.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i8.i266.i.i, ptr %rs1.i267.i.i, align 4 + %rd.i268.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i8.i266.i.i, ptr %rd.i268.i.i, align 4 store i32 1, ptr %ol, align 8 - %call.i271.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef null) - br i1 %call.i271.i.i, label %decode_insn16.exit.thread.i, label %if.end36.i.i + %call.i269.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef null) + br i1 %call.i269.i.i, label %decode_insn16.exit.thread.i, label %if.end36.i.i if.end36.i.i: ; preds = %if.end33.i.i call fastcc void @decode_insn16_extract_cj(ptr noundef nonnull %u.i.i, i16 noundef zeroext %call2) @@ -5487,65 +5486,65 @@ if.end36.i.i: ; preds = %if.end33.i.i br label %decode_insn16.exit.thread.i sw.bb40.i.i: ; preds = %land.lhs.true.i - %rs1.i279.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + %rs1.i277.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 %shr.i13.i.i.i = lshr i32 %conv11.i, 7 %and.i14.i.i.i = and i32 %shr.i13.i.i.i, 31 - %rd.i280.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - %shr.i.i282.i.i = lshr i32 %conv11.i, 5 - %and.i.i283.i.i = and i32 %shr.i.i282.i.i, 3 + %rd.i278.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + %shr.i.i280.i.i = lshr i32 %conv11.i, 5 + %and.i.i281.i.i = and i32 %shr.i.i280.i.i, 3 %12 = lshr i32 %conv11.i, 10 - %and6.i.i284.i.i = and i32 %12, 4 - %or.i.i285.i.i = or disjoint i32 %and.i.i283.i.i, %and6.i.i284.i.i + %and6.i.i282.i.i = and i32 %12, 4 + %or.i.i283.i.i = or disjoint i32 %and.i.i281.i.i, %and6.i.i282.i.i %13 = shl nuw nsw i32 %conv11.i, 1 %and6.i11.i.i.i = and i32 %13, 56 - %or.i12.i286.i.i = or disjoint i32 %or.i.i285.i.i, %and6.i11.i.i.i - %shl.i.i287.i.i = shl nuw nsw i32 %or.i12.i286.i.i, 3 - store i32 %shl.i.i287.i.i, ptr %u.i.i, align 4 - store i32 2, ptr %rs1.i279.i.i, align 4 - store i32 %and.i14.i.i.i, ptr %rd.i280.i.i, align 4 + %or.i12.i284.i.i = or disjoint i32 %or.i.i283.i.i, %and6.i11.i.i.i + %shl.i.i285.i.i = shl nuw nsw i32 %or.i12.i284.i.i, 3 + store i32 %shl.i.i285.i.i, ptr %u.i.i, align 4 + store i32 2, ptr %rs1.i277.i.i, align 4 + store i32 %and.i14.i.i.i, ptr %rd.i278.i.i, align 4 %call44.i.i = call fastcc zeroext i1 @trans_c_fld(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call44.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb47.i.i: ; preds = %land.lhs.true.i - %shr.i.i293.i.i = lshr i32 %conv11.i, 6 - %and.i.i294.i.i = and i32 %shr.i.i293.i.i, 1 + %shr.i.i291.i.i = lshr i32 %conv11.i, 6 + %and.i.i292.i.i = and i32 %shr.i.i291.i.i, 1 %14 = lshr i32 %conv11.i, 9 - %and6.i.i295.i.i = and i32 %14, 14 - %or.i.i296.i.i = or disjoint i32 %and.i.i294.i.i, %and6.i.i295.i.i + %and6.i.i293.i.i = and i32 %14, 14 + %or.i.i294.i.i = or disjoint i32 %and.i.i292.i.i, %and6.i.i293.i.i %15 = lshr i32 %conv11.i, 1 - %and6.i14.i297.i.i = and i32 %15, 16 - %or.i15.i298.i.i = or disjoint i32 %or.i.i296.i.i, %and6.i14.i297.i.i - %shl.i.i299.i.i = shl nuw nsw i32 %or.i15.i298.i.i, 2 - store i32 %shl.i.i299.i.i, ptr %u.i.i, align 4 - %shr.i16.i300.i.i = lshr i32 %conv11.i, 7 - %and.i17.i301.i.i = and i32 %shr.i16.i300.i.i, 7 - %add.i.i302.i.i = or disjoint i32 %and.i17.i301.i.i, 8 - %rs1.i303.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i302.i.i, ptr %rs1.i303.i.i, align 4 - %shr.i18.i304.i.i = lshr i32 %conv11.i, 2 - %and.i19.i305.i.i = and i32 %shr.i18.i304.i.i, 7 - %add.i20.i306.i.i = or disjoint i32 %and.i19.i305.i.i, 8 - %rd.i307.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i20.i306.i.i, ptr %rd.i307.i.i, align 4 + %and6.i14.i295.i.i = and i32 %15, 16 + %or.i15.i296.i.i = or disjoint i32 %or.i.i294.i.i, %and6.i14.i295.i.i + %shl.i.i297.i.i = shl nuw nsw i32 %or.i15.i296.i.i, 2 + store i32 %shl.i.i297.i.i, ptr %u.i.i, align 4 + %shr.i16.i298.i.i = lshr i32 %conv11.i, 7 + %and.i17.i299.i.i = and i32 %shr.i16.i298.i.i, 7 + %add.i.i300.i.i = or disjoint i32 %and.i17.i299.i.i, 8 + %rs1.i301.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i300.i.i, ptr %rs1.i301.i.i, align 4 + %shr.i18.i302.i.i = lshr i32 %conv11.i, 2 + %and.i19.i303.i.i = and i32 %shr.i18.i302.i.i, 7 + %add.i20.i304.i.i = or disjoint i32 %and.i19.i303.i.i, 8 + %rd.i305.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i20.i304.i.i, ptr %rd.i305.i.i, align 4 call fastcc void @gen_load(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 10) br label %decode_insn16.exit.thread.i sw.bb51.i.i: ; preds = %land.lhs.true.i - %shr.i.i310.i.i = lshr i32 %conv11.i, 2 - %and.i.i311.i.i = and i32 %shr.i.i310.i.i, 31 - %shl.i.mask.i312.i.i = and i32 %conv11.i, 4096 - %isneg.not.i313.i.i = icmp eq i32 %shl.i.mask.i312.i.i, 0 - %shl57.i.i314.i.i = select i1 %isneg.not.i313.i.i, i32 0, i32 -32 - %or.i.i315.i.i = or disjoint i32 %shl57.i.i314.i.i, %and.i.i311.i.i - store i32 %or.i.i315.i.i, ptr %u.i.i, align 4 - %rs1.i316.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 0, ptr %rs1.i316.i.i, align 4 + %shr.i.i308.i.i = lshr i32 %conv11.i, 2 + %and.i.i309.i.i = and i32 %shr.i.i308.i.i, 31 + %shl.i.mask.i310.i.i = and i32 %conv11.i, 4096 + %isneg.not.i311.i.i = icmp eq i32 %shl.i.mask.i310.i.i, 0 + %shl57.i.i312.i.i = select i1 %isneg.not.i311.i.i, i32 0, i32 -32 + %or.i.i313.i.i = or disjoint i32 %shl57.i.i312.i.i, %and.i.i309.i.i + store i32 %or.i.i313.i.i, ptr %u.i.i, align 4 + %rs1.i314.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 0, ptr %rs1.i314.i.i, align 4 %shr.i6.i.i.i = lshr i32 %conv11.i, 7 %and.i7.i.i.i = and i32 %shr.i6.i.i.i, 31 - %rd.i317.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i7.i.i.i, ptr %rd.i317.i.i, align 4 - %call.i318.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) - br i1 %call.i318.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i + %rd.i315.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i7.i.i.i, ptr %rd.i315.i.i, align 4 + %call.i316.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) + br i1 %call.i316.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb55.i.i: ; preds = %land.lhs.true.i %and57.i.i = and i32 %conv11.i, 3968 @@ -5557,42 +5556,42 @@ if.then60.i.i: ; preds = %sw.bb55.i.i br label %decode_insn16.exit.thread.i if.end64.i.i: ; preds = %sw.bb55.i.i - %shr.i.i320.i.i = lshr i32 %conv11.i, 4 - %and.i.i321.i.i = and i32 %shr.i.i320.i.i, 7 + %shr.i.i318.i.i = lshr i32 %conv11.i, 4 + %and.i.i319.i.i = and i32 %shr.i.i318.i.i, 7 %16 = lshr i32 %conv11.i, 9 - %and6.i.i322.i.i = and i32 %16, 8 - %or.i.i323.i.i = or disjoint i32 %and.i.i321.i.i, %and6.i.i322.i.i + %and6.i.i320.i.i = and i32 %16, 8 + %or.i.i321.i.i = or disjoint i32 %and.i.i319.i.i, %and6.i.i320.i.i %17 = shl nuw nsw i32 %conv11.i, 2 - %and6.i11.i324.i.i = and i32 %17, 48 - %or.i12.i325.i.i = or disjoint i32 %or.i.i323.i.i, %and6.i11.i324.i.i - %shl.i.i326.i.i = shl nuw nsw i32 %or.i12.i325.i.i, 2 - store i32 %shl.i.i326.i.i, ptr %u.i.i, align 4 - %rs1.i327.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 2, ptr %rs1.i327.i.i, align 4 - %shr.i13.i328.i.i = lshr i32 %conv11.i, 7 - %and.i14.i329.i.i = and i32 %shr.i13.i328.i.i, 31 - %rd.i330.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i14.i329.i.i, ptr %rd.i330.i.i, align 4 + %and6.i11.i322.i.i = and i32 %17, 48 + %or.i12.i323.i.i = or disjoint i32 %or.i.i321.i.i, %and6.i11.i322.i.i + %shl.i.i324.i.i = shl nuw nsw i32 %or.i12.i323.i.i, 2 + store i32 %shl.i.i324.i.i, ptr %u.i.i, align 4 + %rs1.i325.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 2, ptr %rs1.i325.i.i, align 4 + %shr.i13.i326.i.i = lshr i32 %conv11.i, 7 + %and.i14.i327.i.i = and i32 %shr.i13.i326.i.i, 31 + %rd.i328.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i14.i327.i.i, ptr %rd.i328.i.i, align 4 call fastcc void @gen_load(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 10) br label %decode_insn16.exit.thread.i sw.bb68.i.i: ; preds = %land.lhs.true.i - %shr.i.i333.i.i = lshr i32 %conv11.i, 10 - %and.i.i334.i.i = and i32 %shr.i.i333.i.i, 7 + %shr.i.i331.i.i = lshr i32 %conv11.i, 10 + %and.i.i332.i.i = and i32 %shr.i.i331.i.i, 7 %18 = lshr i32 %conv11.i, 2 - %and6.i.i335.i.i = and i32 %18, 24 - %or.i.i336.i.i = or disjoint i32 %and.i.i334.i.i, %and6.i.i335.i.i - %shl.i.i337.i.i = shl nuw nsw i32 %or.i.i336.i.i, 3 - store i32 %shl.i.i337.i.i, ptr %u.i.i, align 4 - %shr.i10.i338.i.i = lshr i32 %conv11.i, 7 - %and.i11.i339.i.i = and i32 %shr.i10.i338.i.i, 7 - %add.i.i340.i.i = or disjoint i32 %and.i11.i339.i.i, 8 - %rs1.i341.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i340.i.i, ptr %rs1.i341.i.i, align 4 - %and.i13.i342.i.i = and i32 %18, 7 - %add.i14.i343.i.i = or disjoint i32 %and.i13.i342.i.i, 8 - %rd.i344.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i14.i343.i.i, ptr %rd.i344.i.i, align 4 + %and6.i.i333.i.i = and i32 %18, 24 + %or.i.i334.i.i = or disjoint i32 %and.i.i332.i.i, %and6.i.i333.i.i + %shl.i.i335.i.i = shl nuw nsw i32 %or.i.i334.i.i, 3 + store i32 %shl.i.i335.i.i, ptr %u.i.i, align 4 + %shr.i10.i336.i.i = lshr i32 %conv11.i, 7 + %and.i11.i337.i.i = and i32 %shr.i10.i336.i.i, 7 + %add.i.i338.i.i = or disjoint i32 %and.i11.i337.i.i, 8 + %rs1.i339.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i338.i.i, ptr %rs1.i339.i.i, align 4 + %and.i13.i340.i.i = and i32 %18, 7 + %add.i14.i341.i.i = or disjoint i32 %and.i13.i340.i.i, 8 + %rd.i342.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i14.i341.i.i, ptr %rd.i342.i.i, align 4 call fastcc void @gen_load(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 11) br label %decode_insn16.exit.thread.i @@ -5615,40 +5614,40 @@ if.end84.if.end93_crit_edge.i.i: ; preds = %if.end84.i.i br label %if.end93.i.i if.then89.i.i: ; preds = %if.end84.i.i - %shr.i.i347.i.i = lshr i32 %conv11.i, 6 - %and.i.i348.i.i = and i32 %shr.i.i347.i.i, 1 + %shr.i.i345.i.i = lshr i32 %conv11.i, 6 + %and.i.i346.i.i = and i32 %shr.i.i345.i.i, 1 %19 = lshr i32 %conv11.i, 1 - %and6.i.i349.i.i = and i32 %19, 2 + %and6.i.i347.i.i = and i32 %19, 2 %20 = lshr i32 %conv11.i, 3 %and6.i12.i.i.i = and i32 %20, 4 %and.i15.i.i.i = and i32 %conv11.i, 24 - %shl.i.mask.i350.i.i = and i32 %conv11.i, 4096 - %isneg.not.i351.i.i = icmp eq i32 %shl.i.mask.i350.i.i, 0 - %shl57.i.i352.i.i = select i1 %isneg.not.i351.i.i, i32 0, i32 268435424 - %or.i18.i.i.i = or disjoint i32 %and6.i.i349.i.i, %and.i15.i.i.i - %or.i.i353.i.i = or disjoint i32 %or.i18.i.i.i, %and.i.i348.i.i - %or.i13.i.i.i = or disjoint i32 %or.i.i353.i.i, %and6.i12.i.i.i - %or.i22.i.i.i = or disjoint i32 %or.i13.i.i.i, %shl57.i.i352.i.i + %shl.i.mask.i348.i.i = and i32 %conv11.i, 4096 + %isneg.not.i349.i.i = icmp eq i32 %shl.i.mask.i348.i.i, 0 + %shl57.i.i350.i.i = select i1 %isneg.not.i349.i.i, i32 0, i32 268435424 + %or.i18.i.i.i = or disjoint i32 %and6.i.i347.i.i, %and.i15.i.i.i + %or.i.i351.i.i = or disjoint i32 %or.i18.i.i.i, %and.i.i346.i.i + %or.i13.i.i.i = or disjoint i32 %or.i.i351.i.i, %and6.i12.i.i.i + %or.i22.i.i.i = or disjoint i32 %or.i13.i.i.i, %shl57.i.i350.i.i %shl.i23.i.i.i = shl nuw i32 %or.i22.i.i.i, 4 store i32 %shl.i23.i.i.i, ptr %u.i.i, align 4 - %rs1.i354.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 2, ptr %rs1.i354.i.i, align 4 - %rd.i355.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 2, ptr %rd.i355.i.i, align 4 - %call.i356.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) - br i1 %call.i356.i.i, label %decode_insn16.exit.thread.i, label %if.end93.i.i + %rs1.i352.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 2, ptr %rs1.i352.i.i, align 4 + %rd.i353.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 2, ptr %rd.i353.i.i, align 4 + %call.i354.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) + br i1 %call.i354.i.i, label %decode_insn16.exit.thread.i, label %if.end93.i.i if.end93.i.i: ; preds = %if.then89.i.i, %if.end84.if.end93_crit_edge.i.i - %shl.i.mask.i360.pre-phi.i.i = phi i32 [ %.pre.i.i, %if.end84.if.end93_crit_edge.i.i ], [ %shl.i.mask.i350.i.i, %if.then89.i.i ] - %shr.i.i358.i.i = lshr i32 %conv11.i, 2 - %and.i.i359.i.i = and i32 %shr.i.i358.i.i, 31 - %isneg.not.i361.i.i = icmp eq i32 %shl.i.mask.i360.pre-phi.i.i, 0 - %shl57.i.i362.i.i = select i1 %isneg.not.i361.i.i, i32 0, i32 1048544 - %or.i.i363.i.i = or disjoint i32 %shl57.i.i362.i.i, %and.i.i359.i.i - %shl.i5.i.i.i = shl nuw i32 %or.i.i363.i.i, 12 - %shr.i6.i364.i.i = lshr i32 %conv11.i, 7 - %and.i7.i365.i.i = and i32 %shr.i6.i364.i.i, 31 - tail call fastcc void @trans_lui(ptr noundef nonnull %dcbase, i32 %shl.i5.i.i.i, i32 %and.i7.i365.i.i) + %shl.i.mask.i358.pre-phi.i.i = phi i32 [ %.pre.i.i, %if.end84.if.end93_crit_edge.i.i ], [ %shl.i.mask.i348.i.i, %if.then89.i.i ] + %shr.i.i356.i.i = lshr i32 %conv11.i, 2 + %and.i.i357.i.i = and i32 %shr.i.i356.i.i, 31 + %isneg.not.i359.i.i = icmp eq i32 %shl.i.mask.i358.pre-phi.i.i, 0 + %shl57.i.i360.i.i = select i1 %isneg.not.i359.i.i, i32 0, i32 1048544 + %or.i.i361.i.i = or disjoint i32 %shl57.i.i360.i.i, %and.i.i357.i.i + %shl.i5.i.i.i = shl nuw i32 %or.i.i361.i.i, 12 + %shr.i6.i362.i.i = lshr i32 %conv11.i, 7 + %and.i7.i363.i.i = and i32 %shr.i6.i362.i.i, 31 + tail call fastcc void @trans_lui(ptr noundef nonnull %dcbase, i32 %shl.i5.i.i.i, i32 %and.i7.i363.i.i) br label %decode_insn16.exit.thread.i sw.bb97.i.i: ; preds = %land.lhs.true.i @@ -5661,22 +5660,22 @@ if.then102.i.i: ; preds = %sw.bb97.i.i br label %decode_insn16.exit.thread.i if.end106.i.i: ; preds = %sw.bb97.i.i - %shr.i.i368.i.i = lshr i32 %conv11.i, 5 - %and.i.i369.i.i = and i32 %shr.i.i368.i.i, 3 + %shr.i.i366.i.i = lshr i32 %conv11.i, 5 + %and.i.i367.i.i = and i32 %shr.i.i366.i.i, 3 %21 = lshr i32 %conv11.i, 10 - %and6.i.i370.i.i = and i32 %21, 4 - %or.i.i371.i.i = or disjoint i32 %and.i.i369.i.i, %and6.i.i370.i.i + %and6.i.i368.i.i = and i32 %21, 4 + %or.i.i369.i.i = or disjoint i32 %and.i.i367.i.i, %and6.i.i368.i.i %22 = shl nuw nsw i32 %conv11.i, 1 - %and6.i11.i372.i.i = and i32 %22, 56 - %or.i12.i373.i.i = or disjoint i32 %or.i.i371.i.i, %and6.i11.i372.i.i - %shl.i.i374.i.i = shl nuw nsw i32 %or.i12.i373.i.i, 3 - store i32 %shl.i.i374.i.i, ptr %u.i.i, align 4 - %rs1.i375.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 2, ptr %rs1.i375.i.i, align 4 - %shr.i13.i376.i.i = lshr i32 %conv11.i, 7 - %and.i14.i377.i.i = and i32 %shr.i13.i376.i.i, 31 - %rd.i378.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i14.i377.i.i, ptr %rd.i378.i.i, align 4 + %and6.i11.i370.i.i = and i32 %22, 56 + %or.i12.i371.i.i = or disjoint i32 %or.i.i369.i.i, %and6.i11.i370.i.i + %shl.i.i372.i.i = shl nuw nsw i32 %or.i12.i371.i.i, 3 + store i32 %shl.i.i372.i.i, ptr %u.i.i, align 4 + %rs1.i373.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 2, ptr %rs1.i373.i.i, align 4 + %shr.i13.i374.i.i = lshr i32 %conv11.i, 7 + %and.i14.i375.i.i = and i32 %shr.i13.i374.i.i, 31 + %rd.i376.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i14.i375.i.i, ptr %rd.i376.i.i, align 4 call fastcc void @gen_load(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 11) br label %decode_insn16.exit.thread.i @@ -5691,22 +5690,22 @@ sw.bb113.i.i: ; preds = %land.lhs.true.i ] sw.bb116.i.i: ; preds = %sw.bb113.i.i - %shr.i.i381.i.i = lshr i32 %conv11.i, 6 - %and.i.i382.i.i = and i32 %shr.i.i381.i.i, 1 + %shr.i.i379.i.i = lshr i32 %conv11.i, 6 + %and.i.i380.i.i = and i32 %shr.i.i379.i.i, 1 %23 = lshr i32 %conv11.i, 4 - %and6.i.i383.i.i = and i32 %23, 2 - %or.i.i384.i.i = or disjoint i32 %and.i.i382.i.i, %and6.i.i383.i.i - store i32 %or.i.i384.i.i, ptr %u.i.i, align 4 + %and6.i.i381.i.i = and i32 %23, 2 + %or.i.i382.i.i = or disjoint i32 %and.i.i380.i.i, %and6.i.i381.i.i + store i32 %or.i.i382.i.i, ptr %u.i.i, align 4 %shr.i9.i.i.i = lshr i32 %conv11.i, 7 %and.i10.i.i.i = and i32 %shr.i9.i.i.i, 7 - %add.i.i385.i.i = or disjoint i32 %and.i10.i.i.i, 8 - %rs1.i386.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i385.i.i, ptr %rs1.i386.i.i, align 4 + %add.i.i383.i.i = or disjoint i32 %and.i10.i.i.i, 8 + %rs1.i384.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i383.i.i, ptr %rs1.i384.i.i, align 4 %shr.i11.i.i.i = lshr i32 %conv11.i, 2 %and.i12.i.i.i = and i32 %shr.i11.i.i.i, 7 %add.i13.i.i.i = or disjoint i32 %and.i12.i.i.i, 8 - %rd.i387.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i13.i.i.i, ptr %rd.i387.i.i, align 4 + %rd.i385.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i13.i.i.i, ptr %rd.i385.i.i, align 4 %cfg_ptr.i.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 17 %24 = load ptr, ptr %cfg_ptr.i.i.i, align 8 %ext_zcb.i.i.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %24, i64 0, i32 8 @@ -5721,97 +5720,100 @@ trans_c_lbu.exit.thread.i.i: ; preds = %sw.bb116.i.i sw.bb120.i.i: ; preds = %sw.bb113.i.i %27 = lshr i32 %conv11.i, 4 - %shl.i.i390.i.i = and i32 %27, 2 - store i32 %shl.i.i390.i.i, ptr %u.i.i, align 4 - %shr.i7.i391.i.i = lshr i32 %conv11.i, 7 - %and.i8.i392.i.i = and i32 %shr.i7.i391.i.i, 7 - %add.i.i393.i.i = or disjoint i32 %and.i8.i392.i.i, 8 - %rs1.i394.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i393.i.i, ptr %rs1.i394.i.i, align 4 - %shr.i9.i395.i.i = lshr i32 %conv11.i, 2 - %and.i10.i396.i.i = and i32 %shr.i9.i395.i.i, 7 - %add.i11.i.i.i = or disjoint i32 %and.i10.i396.i.i, 8 - %rd.i397.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i11.i.i.i, ptr %rd.i397.i.i, align 4 + %shl.i.i388.i.i = and i32 %27, 2 + store i32 %shl.i.i388.i.i, ptr %u.i.i, align 4 + %shr.i7.i389.i.i = lshr i32 %conv11.i, 7 + %and.i8.i390.i.i = and i32 %shr.i7.i389.i.i, 7 + %add.i.i391.i.i = or disjoint i32 %and.i8.i390.i.i, 8 + %rs1.i392.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i391.i.i, ptr %rs1.i392.i.i, align 4 + %shr.i9.i393.i.i = lshr i32 %conv11.i, 2 + %and.i10.i394.i.i = and i32 %shr.i9.i393.i.i, 7 + %add.i11.i.i.i = or disjoint i32 %and.i10.i394.i.i, 8 + %rd.i395.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i11.i.i.i, ptr %rd.i395.i.i, align 4 %28 = and i32 %conv11.i, 64 %trunc213.not.i.i = icmp eq i32 %28, 0 - %cfg_ptr.i398.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 17 - %29 = load ptr, ptr %cfg_ptr.i398.i.i, align 8 - %ext_zcb.i399.i.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %29, i64 0, i32 8 - %30 = load i8, ptr %ext_zcb.i399.i.i, align 8 + %cfg_ptr.i396.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 17 + %29 = load ptr, ptr %cfg_ptr.i396.i.i, align 8 + %ext_zcb.i397.i.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %29, i64 0, i32 8 + %30 = load i8, ptr %ext_zcb.i397.i.i, align 8 %31 = and i8 %30, 1 - %tobool.not.i400.not.i.i = icmp eq i8 %31, 0 + %tobool.not.i398.not.i.i = icmp eq i8 %31, 0 br i1 %trunc213.not.i.i, label %sw.bb124.i.i, label %sw.bb128.i.i sw.bb124.i.i: ; preds = %sw.bb120.i.i - br i1 %tobool.not.i400.not.i.i, label %decode_insn16.exit.i, label %trans_c_lhu.exit.thread.i.i + br i1 %tobool.not.i398.not.i.i, label %decode_insn16.exit.i, label %trans_c_lhu.exit.thread.i.i trans_c_lhu.exit.thread.i.i: ; preds = %sw.bb124.i.i call fastcc void @gen_load(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 1) br label %decode_insn16.exit.thread.i sw.bb128.i.i: ; preds = %sw.bb120.i.i - br i1 %tobool.not.i400.not.i.i, label %decode_insn16.exit.i, label %trans_c_lh.exit.thread.i.i + br i1 %tobool.not.i398.not.i.i, label %decode_insn16.exit.i, label %trans_c_lh.exit.thread.i.i trans_c_lh.exit.thread.i.i: ; preds = %sw.bb128.i.i call fastcc void @gen_load(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 9) br label %decode_insn16.exit.thread.i +default.unreachable: ; preds = %sw.bb146.i.i + unreachable + sw.bb132.i.i: ; preds = %sw.bb113.i.i - %shr.i.i409.i.i = lshr i32 %conv11.i, 2 - %and.i.i410.i.i = and i32 %shr.i.i409.i.i, 7 - %add.i.i411.i.i = or disjoint i32 %and.i.i410.i.i, 8 + %shr.i.i407.i.i = lshr i32 %conv11.i, 2 + %and.i.i408.i.i = and i32 %shr.i.i407.i.i, 7 + %add.i.i409.i.i = or disjoint i32 %and.i.i408.i.i, 8 %rs2.i.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i411.i.i, ptr %rs2.i.i.i, align 4 - %shr.i7.i412.i.i = lshr i32 %conv11.i, 6 - %and.i8.i413.i.i = and i32 %shr.i7.i412.i.i, 1 + store i32 %add.i.i409.i.i, ptr %rs2.i.i.i, align 4 + %shr.i7.i410.i.i = lshr i32 %conv11.i, 6 + %and.i8.i411.i.i = and i32 %shr.i7.i410.i.i, 1 %32 = lshr i32 %conv11.i, 4 - %and6.i.i414.i.i = and i32 %32, 2 - %or.i.i415.i.i = or disjoint i32 %and.i8.i413.i.i, %and6.i.i414.i.i - store i32 %or.i.i415.i.i, ptr %u.i.i, align 4 - %shr.i11.i416.i.i = lshr i32 %conv11.i, 7 - %and.i12.i417.i.i = and i32 %shr.i11.i416.i.i, 7 - %add.i13.i418.i.i = or disjoint i32 %and.i12.i417.i.i, 8 - %rs1.i419.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i13.i418.i.i, ptr %rs1.i419.i.i, align 4 - %cfg_ptr.i420.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 17 - %33 = load ptr, ptr %cfg_ptr.i420.i.i, align 8 - %ext_zcb.i421.i.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %33, i64 0, i32 8 - %34 = load i8, ptr %ext_zcb.i421.i.i, align 8 + %and6.i.i412.i.i = and i32 %32, 2 + %or.i.i413.i.i = or disjoint i32 %and.i8.i411.i.i, %and6.i.i412.i.i + store i32 %or.i.i413.i.i, ptr %u.i.i, align 4 + %shr.i11.i414.i.i = lshr i32 %conv11.i, 7 + %and.i12.i415.i.i = and i32 %shr.i11.i414.i.i, 7 + %add.i13.i416.i.i = or disjoint i32 %and.i12.i415.i.i, 8 + %rs1.i417.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i13.i416.i.i, ptr %rs1.i417.i.i, align 4 + %cfg_ptr.i418.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 17 + %33 = load ptr, ptr %cfg_ptr.i418.i.i, align 8 + %ext_zcb.i419.i.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %33, i64 0, i32 8 + %34 = load i8, ptr %ext_zcb.i419.i.i, align 8 %35 = and i8 %34, 1 - %tobool.not.i422.not.i.i = icmp eq i8 %35, 0 - br i1 %tobool.not.i422.not.i.i, label %decode_insn16.exit.i, label %trans_c_sb.exit.thread.i.i + %tobool.not.i420.not.i.i = icmp eq i8 %35, 0 + br i1 %tobool.not.i420.not.i.i, label %decode_insn16.exit.i, label %trans_c_sb.exit.thread.i.i trans_c_sb.exit.thread.i.i: ; preds = %sw.bb132.i.i call fastcc void @gen_store(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 0) br label %decode_insn16.exit.thread.i sw.bb136.i.i: ; preds = %sw.bb113.i.i - %shr.i.i426.i.i = lshr i32 %conv11.i, 2 - %and.i.i427.i.i = and i32 %shr.i.i426.i.i, 7 - %add.i.i428.i.i = or disjoint i32 %and.i.i427.i.i, 8 - %rs2.i429.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i428.i.i, ptr %rs2.i429.i.i, align 4 + %shr.i.i424.i.i = lshr i32 %conv11.i, 2 + %and.i.i425.i.i = and i32 %shr.i.i424.i.i, 7 + %add.i.i426.i.i = or disjoint i32 %and.i.i425.i.i, 8 + %rs2.i427.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i426.i.i, ptr %rs2.i427.i.i, align 4 %36 = lshr i32 %conv11.i, 4 - %shl.i.i430.i.i = and i32 %36, 2 - store i32 %shl.i.i430.i.i, ptr %u.i.i, align 4 - %shr.i9.i431.i.i = lshr i32 %conv11.i, 7 - %and.i10.i432.i.i = and i32 %shr.i9.i431.i.i, 7 - %add.i11.i433.i.i = or disjoint i32 %and.i10.i432.i.i, 8 - %rs1.i434.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i11.i433.i.i, ptr %rs1.i434.i.i, align 4 + %shl.i.i428.i.i = and i32 %36, 2 + store i32 %shl.i.i428.i.i, ptr %u.i.i, align 4 + %shr.i9.i429.i.i = lshr i32 %conv11.i, 7 + %and.i10.i430.i.i = and i32 %shr.i9.i429.i.i, 7 + %add.i11.i431.i.i = or disjoint i32 %and.i10.i430.i.i, 8 + %rs1.i432.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i11.i431.i.i, ptr %rs1.i432.i.i, align 4 %37 = and i32 %conv11.i, 64 %cond.i22.i = icmp eq i32 %37, 0 br i1 %cond.i22.i, label %sw.bb140.i.i, label %decode_insn16.exit.i sw.bb140.i.i: ; preds = %sw.bb136.i.i - %cfg_ptr.i435.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 17 - %38 = load ptr, ptr %cfg_ptr.i435.i.i, align 8 - %ext_zcb.i436.i.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %38, i64 0, i32 8 - %39 = load i8, ptr %ext_zcb.i436.i.i, align 8 + %cfg_ptr.i433.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 17 + %38 = load ptr, ptr %cfg_ptr.i433.i.i, align 8 + %ext_zcb.i434.i.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %38, i64 0, i32 8 + %39 = load i8, ptr %ext_zcb.i434.i.i, align 8 %40 = and i8 %39, 1 - %tobool.not.i437.not.i.i = icmp eq i8 %40, 0 - br i1 %tobool.not.i437.not.i.i, label %decode_insn16.exit.i, label %trans_c_sh.exit.thread.i.i + %tobool.not.i435.not.i.i = icmp eq i8 %40, 0 + br i1 %tobool.not.i435.not.i.i, label %decode_insn16.exit.i, label %trans_c_sh.exit.thread.i.i trans_c_sh.exit.thread.i.i: ; preds = %sw.bb140.i.i call fastcc void @gen_store(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 1) @@ -5820,7 +5822,7 @@ trans_c_sh.exit.thread.i.i: ; preds = %sw.bb140.i.i sw.bb146.i.i: ; preds = %land.lhs.true.i %shr148.i.i = lshr i32 %conv11.i, 10 %and149.i.i = and i32 %shr148.i.i, 3 - switch i32 %and149.i.i, label %sw.bb146.unreachabledefault.i.i [ + switch i32 %and149.i.i, label %default.unreachable [ i32 0, label %sw.bb150.i.i i32 1, label %sw.bb154.i.i i32 2, label %sw.bb158.i.i @@ -5828,78 +5830,78 @@ sw.bb146.i.i: ; preds = %land.lhs.true.i ] sw.bb150.i.i: ; preds = %sw.bb146.i.i - %shr.i.i441.i.i = lshr i32 %conv11.i, 2 - %and.i.i442.i.i = and i32 %shr.i.i441.i.i, 31 + %shr.i.i439.i.i = lshr i32 %conv11.i, 2 + %and.i.i440.i.i = and i32 %shr.i.i439.i.i, 31 %41 = lshr i32 %conv11.i, 7 - %and6.i.i443.i.i = and i32 %41, 32 - %or.i.i444.i.i = or disjoint i32 %and.i.i442.i.i, %and6.i.i443.i.i - %cmp.i.i445.i.i = icmp eq i32 %1, 3 - br i1 %cmp.i.i445.i.i, label %if.then.i.i.i.i, label %decode_insn16_extract_c_shift.exit.i.i + %and6.i.i441.i.i = and i32 %41, 32 + %or.i.i442.i.i = or disjoint i32 %and.i.i440.i.i, %and6.i.i441.i.i + %cmp.i.i443.i.i = icmp eq i32 %1, 3 + br i1 %cmp.i.i443.i.i, label %if.then.i.i.i.i, label %decode_insn16_extract_c_shift.exit.i.i if.then.i.i.i.i: ; preds = %sw.bb150.i.i - %and.i10.i451.i.i = shl nuw nsw i32 %41, 1 - %shl.i.i452.i.i = and i32 %and.i10.i451.i.i, 64 - %or.i11.i.i.i = or disjoint i32 %shl.i.i452.i.i, %or.i.i444.i.i - %tobool.not.i.i453.i.i = icmp eq i32 %or.i11.i.i.i, 0 - %cond.i.i.i.i = select i1 %tobool.not.i.i453.i.i, i32 64, i32 %or.i11.i.i.i + %and.i10.i449.i.i = shl nuw nsw i32 %41, 1 + %shl.i.i450.i.i = and i32 %and.i10.i449.i.i, 64 + %or.i11.i.i.i = or disjoint i32 %shl.i.i450.i.i, %or.i.i442.i.i + %tobool.not.i.i451.i.i = icmp eq i32 %or.i11.i.i.i, 0 + %cond.i.i.i.i = select i1 %tobool.not.i.i451.i.i, i32 64, i32 %or.i11.i.i.i br label %decode_insn16_extract_c_shift.exit.i.i decode_insn16_extract_c_shift.exit.i.i: ; preds = %if.then.i.i.i.i, %sw.bb150.i.i - %imm.addr.0.i.i446.i.i = phi i32 [ %cond.i.i.i.i, %if.then.i.i.i.i ], [ %or.i.i444.i.i, %sw.bb150.i.i ] - store i32 %imm.addr.0.i.i446.i.i, ptr %u.i.i, align 4 - %and.i13.i447.i.i = and i32 %41, 7 - %add.i.i448.i.i = or disjoint i32 %and.i13.i447.i.i, 8 - %rs1.i449.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i448.i.i, ptr %rs1.i449.i.i, align 4 - %rd.i450.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i448.i.i, ptr %rd.i450.i.i, align 4 + %imm.addr.0.i.i444.i.i = phi i32 [ %cond.i.i.i.i, %if.then.i.i.i.i ], [ %or.i.i442.i.i, %sw.bb150.i.i ] + store i32 %imm.addr.0.i.i444.i.i, ptr %u.i.i, align 4 + %and.i13.i445.i.i = and i32 %41, 7 + %add.i.i446.i.i = or disjoint i32 %and.i13.i445.i.i, 8 + %rs1.i447.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i446.i.i, ptr %rs1.i447.i.i, align 4 + %rd.i448.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i446.i.i, ptr %rd.i448.i.i, align 4 %call151.i.i = call fastcc zeroext i1 @trans_srli(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call151.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb154.i.i: ; preds = %sw.bb146.i.i - %shr.i.i455.i.i = lshr i32 %conv11.i, 2 - %and.i.i456.i.i = and i32 %shr.i.i455.i.i, 31 + %shr.i.i453.i.i = lshr i32 %conv11.i, 2 + %and.i.i454.i.i = and i32 %shr.i.i453.i.i, 31 %42 = lshr i32 %conv11.i, 7 - %and6.i.i457.i.i = and i32 %42, 32 - %or.i.i458.i.i = or disjoint i32 %and.i.i456.i.i, %and6.i.i457.i.i - %cmp.i.i459.i.i = icmp eq i32 %1, 3 - br i1 %cmp.i.i459.i.i, label %if.then.i.i465.i.i, label %decode_insn16_extract_c_shift.exit471.i.i - -if.then.i.i465.i.i: ; preds = %sw.bb154.i.i - %and.i10.i466.i.i = shl nuw nsw i32 %42, 1 - %shl.i.i467.i.i = and i32 %and.i10.i466.i.i, 64 - %or.i11.i468.i.i = or disjoint i32 %shl.i.i467.i.i, %or.i.i458.i.i - %tobool.not.i.i469.i.i = icmp eq i32 %or.i11.i468.i.i, 0 - %cond.i.i470.i.i = select i1 %tobool.not.i.i469.i.i, i32 64, i32 %or.i11.i468.i.i - br label %decode_insn16_extract_c_shift.exit471.i.i - -decode_insn16_extract_c_shift.exit471.i.i: ; preds = %if.then.i.i465.i.i, %sw.bb154.i.i - %imm.addr.0.i.i460.i.i = phi i32 [ %cond.i.i470.i.i, %if.then.i.i465.i.i ], [ %or.i.i458.i.i, %sw.bb154.i.i ] - store i32 %imm.addr.0.i.i460.i.i, ptr %u.i.i, align 4 - %and.i13.i461.i.i = and i32 %42, 7 - %add.i.i462.i.i = or disjoint i32 %and.i13.i461.i.i, 8 - %rs1.i463.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i462.i.i, ptr %rs1.i463.i.i, align 4 - %rd.i464.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i462.i.i, ptr %rd.i464.i.i, align 4 + %and6.i.i455.i.i = and i32 %42, 32 + %or.i.i456.i.i = or disjoint i32 %and.i.i454.i.i, %and6.i.i455.i.i + %cmp.i.i457.i.i = icmp eq i32 %1, 3 + br i1 %cmp.i.i457.i.i, label %if.then.i.i463.i.i, label %decode_insn16_extract_c_shift.exit469.i.i + +if.then.i.i463.i.i: ; preds = %sw.bb154.i.i + %and.i10.i464.i.i = shl nuw nsw i32 %42, 1 + %shl.i.i465.i.i = and i32 %and.i10.i464.i.i, 64 + %or.i11.i466.i.i = or disjoint i32 %shl.i.i465.i.i, %or.i.i456.i.i + %tobool.not.i.i467.i.i = icmp eq i32 %or.i11.i466.i.i, 0 + %cond.i.i468.i.i = select i1 %tobool.not.i.i467.i.i, i32 64, i32 %or.i11.i466.i.i + br label %decode_insn16_extract_c_shift.exit469.i.i + +decode_insn16_extract_c_shift.exit469.i.i: ; preds = %if.then.i.i463.i.i, %sw.bb154.i.i + %imm.addr.0.i.i458.i.i = phi i32 [ %cond.i.i468.i.i, %if.then.i.i463.i.i ], [ %or.i.i456.i.i, %sw.bb154.i.i ] + store i32 %imm.addr.0.i.i458.i.i, ptr %u.i.i, align 4 + %and.i13.i459.i.i = and i32 %42, 7 + %add.i.i460.i.i = or disjoint i32 %and.i13.i459.i.i, 8 + %rs1.i461.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i460.i.i, ptr %rs1.i461.i.i, align 4 + %rd.i462.i.i = getelementptr inbounds %struct.arg_shift, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i460.i.i, ptr %rd.i462.i.i, align 4 %call155.i.i = call fastcc zeroext i1 @trans_srai(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call155.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb158.i.i: ; preds = %sw.bb146.i.i - %shr.i.i473.i.i = lshr i32 %conv11.i, 2 - %and.i.i474.i.i = and i32 %shr.i.i473.i.i, 31 - %shl.i.mask.i475.i.i = and i32 %conv11.i, 4096 - %isneg.not.i476.i.i = icmp eq i32 %shl.i.mask.i475.i.i, 0 - %shl57.i.i477.i.i = select i1 %isneg.not.i476.i.i, i32 0, i32 -32 - %or.i.i478.i.i = or disjoint i32 %shl57.i.i477.i.i, %and.i.i474.i.i - store i32 %or.i.i478.i.i, ptr %u.i.i, align 4 + %shr.i.i471.i.i = lshr i32 %conv11.i, 2 + %and.i.i472.i.i = and i32 %shr.i.i471.i.i, 31 + %shl.i.mask.i473.i.i = and i32 %conv11.i, 4096 + %isneg.not.i474.i.i = icmp eq i32 %shl.i.mask.i473.i.i, 0 + %shl57.i.i475.i.i = select i1 %isneg.not.i474.i.i, i32 0, i32 -32 + %or.i.i476.i.i = or disjoint i32 %shl57.i.i475.i.i, %and.i.i472.i.i + store i32 %or.i.i476.i.i, ptr %u.i.i, align 4 %shr.i8.i.i.i = lshr i32 %conv11.i, 7 - %and.i9.i479.i.i = and i32 %shr.i8.i.i.i, 7 - %add.i.i480.i.i = or disjoint i32 %and.i9.i479.i.i, 8 - %rs1.i481.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i480.i.i, ptr %rs1.i481.i.i, align 4 - %rd.i482.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i480.i.i, ptr %rd.i482.i.i, align 4 + %and.i9.i477.i.i = and i32 %shr.i8.i.i.i, 7 + %add.i.i478.i.i = or disjoint i32 %and.i9.i477.i.i, 8 + %rs1.i479.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i478.i.i, ptr %rs1.i479.i.i, align 4 + %rd.i480.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i478.i.i, ptr %rd.i480.i.i, align 4 call fastcc void @trans_andi(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br label %decode_insn16.exit.thread.i @@ -5917,107 +5919,107 @@ sw.bb162.i.i: ; preds = %sw.bb146.i.i ] sw.bb165.i.i: ; preds = %sw.bb162.i.i - %shr.i.i484.i.i = lshr i32 %conv11.i, 2 - %and.i.i485.i.i = and i32 %shr.i.i484.i.i, 7 - %add.i.i486.i.i = or disjoint i32 %and.i.i485.i.i, 8 - %rs2.i487.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i486.i.i, ptr %rs2.i487.i.i, align 4 - %shr.i7.i488.i.i = lshr i32 %conv11.i, 7 - %and.i8.i489.i.i = and i32 %shr.i7.i488.i.i, 7 - %add.i9.i.i.i = or disjoint i32 %and.i8.i489.i.i, 8 - %rs1.i490.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i9.i.i.i, ptr %rs1.i490.i.i, align 4 + %shr.i.i482.i.i = lshr i32 %conv11.i, 2 + %and.i.i483.i.i = and i32 %shr.i.i482.i.i, 7 + %add.i.i484.i.i = or disjoint i32 %and.i.i483.i.i, 8 + %rs2.i485.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i484.i.i, ptr %rs2.i485.i.i, align 4 + %shr.i7.i486.i.i = lshr i32 %conv11.i, 7 + %and.i8.i487.i.i = and i32 %shr.i7.i486.i.i, 7 + %add.i9.i.i.i = or disjoint i32 %and.i8.i487.i.i, 8 + %rs1.i488.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i9.i.i.i, ptr %rs1.i488.i.i, align 4 store i32 %add.i9.i.i.i, ptr %u.i.i, align 4 %call166.i.i = call fastcc zeroext i1 @trans_sub(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call166.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb169.i.i: ; preds = %sw.bb162.i.i - %shr.i.i492.i.i = lshr i32 %conv11.i, 2 - %and.i.i493.i.i = and i32 %shr.i.i492.i.i, 7 - %add.i.i494.i.i = or disjoint i32 %and.i.i493.i.i, 8 - %rs2.i495.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i494.i.i, ptr %rs2.i495.i.i, align 4 - %shr.i7.i496.i.i = lshr i32 %conv11.i, 7 - %and.i8.i497.i.i = and i32 %shr.i7.i496.i.i, 7 - %add.i9.i498.i.i = or disjoint i32 %and.i8.i497.i.i, 8 - %rs1.i499.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i9.i498.i.i, ptr %rs1.i499.i.i, align 4 - store i32 %add.i9.i498.i.i, ptr %u.i.i, align 4 + %shr.i.i490.i.i = lshr i32 %conv11.i, 2 + %and.i.i491.i.i = and i32 %shr.i.i490.i.i, 7 + %add.i.i492.i.i = or disjoint i32 %and.i.i491.i.i, 8 + %rs2.i493.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i492.i.i, ptr %rs2.i493.i.i, align 4 + %shr.i7.i494.i.i = lshr i32 %conv11.i, 7 + %and.i8.i495.i.i = and i32 %shr.i7.i494.i.i, 7 + %add.i9.i496.i.i = or disjoint i32 %and.i8.i495.i.i, 8 + %rs1.i497.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i9.i496.i.i, ptr %rs1.i497.i.i, align 4 + store i32 %add.i9.i496.i.i, ptr %u.i.i, align 4 call fastcc void @trans_xor(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br label %decode_insn16.exit.thread.i sw.bb173.i.i: ; preds = %sw.bb162.i.i - %shr.i.i501.i.i = lshr i32 %conv11.i, 2 - %and.i.i502.i.i = and i32 %shr.i.i501.i.i, 7 - %add.i.i503.i.i = or disjoint i32 %and.i.i502.i.i, 8 - %rs2.i504.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i503.i.i, ptr %rs2.i504.i.i, align 4 - %shr.i7.i505.i.i = lshr i32 %conv11.i, 7 - %and.i8.i506.i.i = and i32 %shr.i7.i505.i.i, 7 - %add.i9.i507.i.i = or disjoint i32 %and.i8.i506.i.i, 8 - %rs1.i508.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i9.i507.i.i, ptr %rs1.i508.i.i, align 4 - store i32 %add.i9.i507.i.i, ptr %u.i.i, align 4 + %shr.i.i499.i.i = lshr i32 %conv11.i, 2 + %and.i.i500.i.i = and i32 %shr.i.i499.i.i, 7 + %add.i.i501.i.i = or disjoint i32 %and.i.i500.i.i, 8 + %rs2.i502.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i501.i.i, ptr %rs2.i502.i.i, align 4 + %shr.i7.i503.i.i = lshr i32 %conv11.i, 7 + %and.i8.i504.i.i = and i32 %shr.i7.i503.i.i, 7 + %add.i9.i505.i.i = or disjoint i32 %and.i8.i504.i.i, 8 + %rs1.i506.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i9.i505.i.i, ptr %rs1.i506.i.i, align 4 + store i32 %add.i9.i505.i.i, ptr %u.i.i, align 4 call fastcc void @trans_or(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br label %decode_insn16.exit.thread.i sw.bb177.i.i: ; preds = %sw.bb162.i.i - %shr.i.i510.i.i = lshr i32 %conv11.i, 2 - %and.i.i511.i.i = and i32 %shr.i.i510.i.i, 7 - %add.i.i512.i.i = or disjoint i32 %and.i.i511.i.i, 8 - %rs2.i513.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i512.i.i, ptr %rs2.i513.i.i, align 4 - %shr.i7.i514.i.i = lshr i32 %conv11.i, 7 - %and.i8.i515.i.i = and i32 %shr.i7.i514.i.i, 7 - %add.i9.i516.i.i = or disjoint i32 %and.i8.i515.i.i, 8 - %rs1.i517.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i9.i516.i.i, ptr %rs1.i517.i.i, align 4 - store i32 %add.i9.i516.i.i, ptr %u.i.i, align 4 + %shr.i.i508.i.i = lshr i32 %conv11.i, 2 + %and.i.i509.i.i = and i32 %shr.i.i508.i.i, 7 + %add.i.i510.i.i = or disjoint i32 %and.i.i509.i.i, 8 + %rs2.i511.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i510.i.i, ptr %rs2.i511.i.i, align 4 + %shr.i7.i512.i.i = lshr i32 %conv11.i, 7 + %and.i8.i513.i.i = and i32 %shr.i7.i512.i.i, 7 + %add.i9.i514.i.i = or disjoint i32 %and.i8.i513.i.i, 8 + %rs1.i515.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i9.i514.i.i, ptr %rs1.i515.i.i, align 4 + store i32 %add.i9.i514.i.i, ptr %u.i.i, align 4 call fastcc void @trans_and(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br label %decode_insn16.exit.thread.i sw.bb181.i.i: ; preds = %sw.bb162.i.i - %shr.i.i519.i.i = lshr i32 %conv11.i, 2 - %and.i.i520.i.i = and i32 %shr.i.i519.i.i, 7 - %add.i.i521.i.i = or disjoint i32 %and.i.i520.i.i, 8 - %rs2.i522.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i521.i.i, ptr %rs2.i522.i.i, align 4 - %shr.i7.i523.i.i = lshr i32 %conv11.i, 7 - %and.i8.i524.i.i = and i32 %shr.i7.i523.i.i, 7 - %add.i9.i525.i.i = or disjoint i32 %and.i8.i524.i.i, 8 - %rs1.i526.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i9.i525.i.i, ptr %rs1.i526.i.i, align 4 - store i32 %add.i9.i525.i.i, ptr %u.i.i, align 4 + %shr.i.i517.i.i = lshr i32 %conv11.i, 2 + %and.i.i518.i.i = and i32 %shr.i.i517.i.i, 7 + %add.i.i519.i.i = or disjoint i32 %and.i.i518.i.i, 8 + %rs2.i520.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i519.i.i, ptr %rs2.i520.i.i, align 4 + %shr.i7.i521.i.i = lshr i32 %conv11.i, 7 + %and.i8.i522.i.i = and i32 %shr.i7.i521.i.i, 7 + %add.i9.i523.i.i = or disjoint i32 %and.i8.i522.i.i, 8 + %rs1.i524.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i9.i523.i.i, ptr %rs1.i524.i.i, align 4 + store i32 %add.i9.i523.i.i, ptr %u.i.i, align 4 %call182.i.i = call fastcc zeroext i1 @trans_subw(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call182.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb185.i.i: ; preds = %sw.bb162.i.i - %shr.i.i528.i.i = lshr i32 %conv11.i, 2 - %and.i.i529.i.i = and i32 %shr.i.i528.i.i, 7 - %add.i.i530.i.i = or disjoint i32 %and.i.i529.i.i, 8 - %rs2.i531.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i530.i.i, ptr %rs2.i531.i.i, align 4 - %shr.i7.i532.i.i = lshr i32 %conv11.i, 7 - %and.i8.i533.i.i = and i32 %shr.i7.i532.i.i, 7 - %add.i9.i534.i.i = or disjoint i32 %and.i8.i533.i.i, 8 - %rs1.i535.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i9.i534.i.i, ptr %rs1.i535.i.i, align 4 - store i32 %add.i9.i534.i.i, ptr %u.i.i, align 4 + %shr.i.i526.i.i = lshr i32 %conv11.i, 2 + %and.i.i527.i.i = and i32 %shr.i.i526.i.i, 7 + %add.i.i528.i.i = or disjoint i32 %and.i.i527.i.i, 8 + %rs2.i529.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i528.i.i, ptr %rs2.i529.i.i, align 4 + %shr.i7.i530.i.i = lshr i32 %conv11.i, 7 + %and.i8.i531.i.i = and i32 %shr.i7.i530.i.i, 7 + %add.i9.i532.i.i = or disjoint i32 %and.i8.i531.i.i, 8 + %rs1.i533.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i9.i532.i.i, ptr %rs1.i533.i.i, align 4 + store i32 %add.i9.i532.i.i, ptr %u.i.i, align 4 %call186.i.i = call fastcc zeroext i1 @trans_addw(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call186.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb189.i.i: ; preds = %sw.bb162.i.i - %shr.i.i537.i.i = lshr i32 %conv11.i, 2 - %and.i.i538.i.i = and i32 %shr.i.i537.i.i, 7 - %add.i.i539.i.i = or disjoint i32 %and.i.i538.i.i, 8 - %rs2.i540.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i539.i.i, ptr %rs2.i540.i.i, align 4 - %shr.i7.i541.i.i = lshr i32 %conv11.i, 7 - %and.i8.i542.i.i = and i32 %shr.i7.i541.i.i, 7 - %add.i9.i543.i.i = or disjoint i32 %and.i8.i542.i.i, 8 - %rs1.i544.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i9.i543.i.i, ptr %rs1.i544.i.i, align 4 - store i32 %add.i9.i543.i.i, ptr %u.i.i, align 4 + %shr.i.i535.i.i = lshr i32 %conv11.i, 2 + %and.i.i536.i.i = and i32 %shr.i.i535.i.i, 7 + %add.i.i537.i.i = or disjoint i32 %and.i.i536.i.i, 8 + %rs2.i538.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i537.i.i, ptr %rs2.i538.i.i, align 4 + %shr.i7.i539.i.i = lshr i32 %conv11.i, 7 + %and.i8.i540.i.i = and i32 %shr.i7.i539.i.i, 7 + %add.i9.i541.i.i = or disjoint i32 %and.i8.i540.i.i, 8 + %rs1.i542.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i9.i541.i.i, ptr %rs1.i542.i.i, align 4 + store i32 %add.i9.i541.i.i, ptr %u.i.i, align 4 %call190.i.i = call fastcc zeroext i1 @trans_c_mul(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call190.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i @@ -6025,10 +6027,10 @@ sw.bb193.i.i: ; preds = %sw.bb162.i.i %43 = lshr i16 %call2, 7 %44 = and i16 %43, 7 %45 = or disjoint i16 %44, 8 - %add.i.i545.i.i = zext nneg i16 %45 to i32 - %rs1.i546.i.i = getelementptr inbounds %struct.arg_r2, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i545.i.i, ptr %rs1.i546.i.i, align 4 - store i32 %add.i.i545.i.i, ptr %u.i.i, align 4 + %add.i.i543.i.i = zext nneg i16 %45 to i32 + %rs1.i544.i.i = getelementptr inbounds %struct.arg_r2, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i543.i.i, ptr %rs1.i544.i.i, align 4 + store i32 %add.i.i543.i.i, ptr %u.i.i, align 4 %shr195.i.i = lshr i32 %conv11.i, 2 %and196.i.i = and i32 %shr195.i.i, 7 switch i32 %and196.i.i, label %decode_insn16.exit.i [ @@ -6067,9 +6069,6 @@ sw.bb217.i.i: ; preds = %sw.bb193.i.i sw.bb162.unreachabledefault.i.i: ; preds = %sw.bb162.i.i unreachable -sw.bb146.unreachabledefault.i.i: ; preds = %sw.bb146.i.i - unreachable - sw.bb224.i.i: ; preds = %land.lhs.true.i %46 = and i32 %conv11.i, 4096 %trunc.not.i.i = icmp eq i32 %46, 0 @@ -6093,25 +6092,25 @@ if.end237.i.i: ; preds = %sw.bb228.i.i if.then242.i.i: ; preds = %if.end237.i.i %47 = lshr i16 %call2, 7 %48 = and i16 %47, 31 - %and.i.i547.i.i = zext nneg i16 %48 to i32 - %rs1.i548.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i.i547.i.i, ptr %rs1.i548.i.i, align 4 + %and.i.i545.i.i = zext nneg i16 %48 to i32 + %rs1.i546.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i.i545.i.i, ptr %rs1.i546.i.i, align 4 %rd243.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 store i32 0, ptr %rd243.i.i, align 4 call fastcc void @trans_jalr(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br label %decode_insn16.exit.thread.i if.end247.i.i: ; preds = %if.end237.i.i - %shr.i.i550.i.i = lshr i32 %conv11.i, 2 - %and.i.i551.i.i = and i32 %shr.i.i550.i.i, 31 - %rs1.i552.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i.i551.i.i, ptr %rs1.i552.i.i, align 4 + %shr.i.i548.i.i = lshr i32 %conv11.i, 2 + %and.i.i549.i.i = and i32 %shr.i.i548.i.i, 31 + %rs1.i550.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i.i549.i.i, ptr %rs1.i550.i.i, align 4 %shr.i4.i.i.i = lshr i32 %conv11.i, 7 %and.i5.i.i.i = and i32 %shr.i4.i.i.i, 31 - %rd.i553.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i5.i.i.i, ptr %rd.i553.i.i, align 4 - %call.i554.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) - br i1 %call.i554.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i + %rd.i551.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i5.i.i.i, ptr %rd.i551.i.i, align 4 + %call.i552.i.i = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, ptr noundef nonnull @gen_addi2_i128) + br i1 %call.i552.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb251.i.i: ; preds = %sw.bb224.i.i br i1 %cmp231.i.i, label %if.then256.i.i, label %if.end260.i.i @@ -6129,92 +6128,92 @@ if.then265.i.i: ; preds = %if.end260.i.i store i32 0, ptr %u.i.i, align 4 %49 = lshr i16 %call2, 7 %50 = and i16 %49, 31 - %and.i.i555.i.i = zext nneg i16 %50 to i32 - %rs1.i556.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i.i555.i.i, ptr %rs1.i556.i.i, align 4 + %and.i.i553.i.i = zext nneg i16 %50 to i32 + %rs1.i554.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i.i553.i.i, ptr %rs1.i554.i.i, align 4 %rd266.i.i = getelementptr inbounds %struct.arg_i, ptr %u.i.i, i64 0, i32 2 store i32 1, ptr %rd266.i.i, align 4 call fastcc void @trans_jalr(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br label %decode_insn16.exit.thread.i if.end270.i.i: ; preds = %if.end260.i.i - %shr.i.i558.i.i = lshr i32 %conv11.i, 2 - %and.i.i559.i.i = and i32 %shr.i.i558.i.i, 31 - %rs2.i560.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i.i559.i.i, ptr %rs2.i560.i.i, align 4 + %shr.i.i556.i.i = lshr i32 %conv11.i, 2 + %and.i.i557.i.i = and i32 %shr.i.i556.i.i, 31 + %rs2.i558.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i.i557.i.i, ptr %rs2.i558.i.i, align 4 %shr.i5.i.i.i = lshr i32 %conv11.i, 7 %and.i6.i.i.i = and i32 %shr.i5.i.i.i, 31 - %rs1.i561.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i6.i.i.i, ptr %rs1.i561.i.i, align 4 + %rs1.i559.i.i = getelementptr inbounds %struct.arg_r, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i6.i.i.i, ptr %rs1.i559.i.i, align 4 store i32 %and.i6.i.i.i, ptr %u.i.i, align 4 %call271.i.i = call fastcc zeroext i1 @trans_add(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call271.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb275.i.i: ; preds = %land.lhs.true.i - %shr.i.i563.i.i = lshr i32 %conv11.i, 2 - %and.i.i564.i.i = and i32 %shr.i.i563.i.i, 7 - %add.i.i565.i.i = or disjoint i32 %and.i.i564.i.i, 8 - %rs2.i566.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 - %shr.i18.i572.i.i = lshr i32 %conv11.i, 7 - %and.i19.i573.i.i = and i32 %shr.i18.i572.i.i, 7 - %add.i20.i574.i.i = or disjoint i32 %and.i19.i573.i.i, 8 - %rs1.i575.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i.i565.i.i, ptr %rs2.i566.i.i, align 4 - %shr.i8.i581.i.i = lshr i32 %conv11.i, 10 - %and.i9.i582.i.i = and i32 %shr.i8.i581.i.i, 7 - %and6.i.i583.i.i = and i32 %shr.i.i563.i.i, 24 - %or.i.i584.i.i = or disjoint i32 %and.i9.i582.i.i, %and6.i.i583.i.i - %shl.i.i585.i.i = shl nuw nsw i32 %or.i.i584.i.i, 3 - store i32 %shl.i.i585.i.i, ptr %u.i.i, align 4 - store i32 %add.i20.i574.i.i, ptr %rs1.i575.i.i, align 4 + %shr.i.i561.i.i = lshr i32 %conv11.i, 2 + %and.i.i562.i.i = and i32 %shr.i.i561.i.i, 7 + %add.i.i563.i.i = or disjoint i32 %and.i.i562.i.i, 8 + %rs2.i564.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 + %shr.i18.i570.i.i = lshr i32 %conv11.i, 7 + %and.i19.i571.i.i = and i32 %shr.i18.i570.i.i, 7 + %add.i20.i572.i.i = or disjoint i32 %and.i19.i571.i.i, 8 + %rs1.i573.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i.i563.i.i, ptr %rs2.i564.i.i, align 4 + %shr.i8.i579.i.i = lshr i32 %conv11.i, 10 + %and.i9.i580.i.i = and i32 %shr.i8.i579.i.i, 7 + %and6.i.i581.i.i = and i32 %shr.i.i561.i.i, 24 + %or.i.i582.i.i = or disjoint i32 %and.i9.i580.i.i, %and6.i.i581.i.i + %shl.i.i583.i.i = shl nuw nsw i32 %or.i.i582.i.i, 3 + store i32 %shl.i.i583.i.i, ptr %u.i.i, align 4 + store i32 %add.i20.i572.i.i, ptr %rs1.i573.i.i, align 4 %call279.i.i = call fastcc zeroext i1 @trans_c_fsd(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call279.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb282.i.i: ; preds = %land.lhs.true.i - %shr.i.i590.i.i = lshr i32 %conv11.i, 3 - %and.i.i591.i.i = and i32 %shr.i.i590.i.i, 7 + %shr.i.i588.i.i = lshr i32 %conv11.i, 3 + %and.i.i589.i.i = and i32 %shr.i.i588.i.i, 7 %51 = lshr i32 %conv11.i, 8 - %and6.i.i592.i.i = and i32 %51, 8 + %and6.i.i590.i.i = and i32 %51, 8 %52 = shl nuw nsw i32 %conv11.i, 2 - %and6.i13.i593.i.i = and i32 %52, 16 + %and6.i13.i591.i.i = and i32 %52, 16 %53 = lshr i32 %conv11.i, 2 - %and.i21.i594.i.i = and i32 %conv11.i, 64 + %and.i21.i592.i.i = and i32 %conv11.i, 64 %54 = shl nuw nsw i32 %conv11.i, 1 %and6.i33.i.i.i = and i32 %54, 512 - %shl.i.mask.i595.i.i = and i32 %conv11.i, 4096 - %isneg.not.i596.i.i = icmp eq i32 %shl.i.mask.i595.i.i, 0 - %shl57.i.i597.i.i = select i1 %isneg.not.i596.i.i, i32 0, i32 2147482624 + %shl.i.mask.i593.i.i = and i32 %conv11.i, 4096 + %isneg.not.i594.i.i = icmp eq i32 %shl.i.mask.i593.i.i, 0 + %shl57.i.i595.i.i = select i1 %isneg.not.i594.i.i, i32 0, i32 2147482624 %55 = and i32 %53, 416 - %or.i14.i599.i.i = or disjoint i32 %and6.i.i592.i.i, %and.i21.i594.i.i - %or.i.i598.i.i = or disjoint i32 %or.i14.i599.i.i, %and.i.i591.i.i - %or.i19.i600.i.i = or disjoint i32 %or.i.i598.i.i, %and6.i13.i593.i.i - %and.i36.i.i.i = or disjoint i32 %or.i19.i600.i.i, %55 + %or.i14.i597.i.i = or disjoint i32 %and6.i.i590.i.i, %and.i21.i592.i.i + %or.i.i596.i.i = or disjoint i32 %or.i14.i597.i.i, %and.i.i589.i.i + %or.i19.i598.i.i = or disjoint i32 %or.i.i596.i.i, %and6.i13.i591.i.i + %and.i36.i.i.i = or disjoint i32 %or.i19.i598.i.i, %55 %and.i32.i.i.i = or disjoint i32 %and.i36.i.i.i, %and6.i33.i.i.i - %or.i38.i.i.i = or disjoint i32 %and.i32.i.i.i, %shl57.i.i597.i.i + %or.i38.i.i.i = or disjoint i32 %and.i32.i.i.i, %shl57.i.i595.i.i %shl.i39.i.i.i = shl nuw i32 %or.i38.i.i.i, 1 tail call fastcc void @trans_jal(ptr noundef nonnull %dcbase, i32 %shl.i39.i.i.i, i32 0) br label %decode_insn16.exit.thread.i sw.bb287.i.i: ; preds = %land.lhs.true.i - %shr.i.i602.i.i = lshr i32 %conv11.i, 2 - %and.i.i603.i.i = and i32 %shr.i.i602.i.i, 31 - %rs2.i604.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 + %shr.i.i600.i.i = lshr i32 %conv11.i, 2 + %and.i.i601.i.i = and i32 %shr.i.i600.i.i, 31 + %rs2.i602.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 %56 = lshr i32 %conv11.i, 5 - %rs1.i610.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 %and.i.i603.i.i, ptr %rs2.i604.i.i, align 4 - %shr.i5.i615.i.i = lshr i32 %conv11.i, 10 - %and.i6.i616.i.i = and i32 %shr.i5.i615.i.i, 7 + %rs1.i608.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 %and.i.i601.i.i, ptr %rs2.i602.i.i, align 4 + %shr.i5.i613.i.i = lshr i32 %conv11.i, 10 + %and.i6.i614.i.i = and i32 %shr.i5.i613.i.i, 7 %57 = lshr i32 %conv11.i, 4 - %and6.i.i617.i.i = and i32 %57, 56 - %or.i.i618.i.i = or disjoint i32 %and.i6.i616.i.i, %and6.i.i617.i.i - %shl.i.i619.i.i = shl nuw nsw i32 %or.i.i618.i.i, 3 - store i32 %shl.i.i619.i.i, ptr %u.i.i, align 4 - store i32 2, ptr %rs1.i610.i.i, align 4 + %and6.i.i615.i.i = and i32 %57, 56 + %or.i.i616.i.i = or disjoint i32 %and.i6.i614.i.i, %and6.i.i615.i.i + %shl.i.i617.i.i = shl nuw nsw i32 %or.i.i616.i.i, 3 + store i32 %shl.i.i617.i.i, ptr %u.i.i, align 4 + store i32 2, ptr %rs1.i608.i.i, align 4 %call291.i.i = call fastcc zeroext i1 @trans_c_fsd(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call291.i.i, label %decode_insn16.exit.thread.i, label %if.end293.i.i if.end293.i.i: ; preds = %sw.bb287.i.i - switch i32 %and.i6.i616.i.i, label %decode_insn16.exit.i [ + switch i32 %and.i6.i614.i.i, label %decode_insn16.exit.i [ i32 0, label %sw.bb297.i.i i32 3, label %sw.bb301.i.i i32 6, label %sw.bb314.i.i @@ -6224,22 +6223,22 @@ if.end293.i.i: ; preds = %sw.bb287.i.i sw.bb297.i.i: ; preds = %if.end293.i.i %58 = lshr i16 %call2, 2 %59 = and i16 %58, 255 - %and.i.i621.i.i = zext nneg i16 %59 to i32 - store i32 %and.i.i621.i.i, ptr %u.i.i, align 4 + %and.i.i619.i.i = zext nneg i16 %59 to i32 + store i32 %and.i.i619.i.i, ptr %u.i.i, align 4 %call298.i.i = call fastcc zeroext i1 @trans_cm_jalt(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i) br i1 %call298.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb301.i.i: ; preds = %if.end293.i.i - %and.i.i624.i.i = and i32 %shr.i.i602.i.i, 7 - %cmp.i.i625.i.i = icmp ult i32 %and.i.i624.i.i, 2 - %cond.v.i.i.i.i = select i1 %cmp.i.i625.i.i, i32 8, i32 16 - %cond.i.i626.i.i = or disjoint i32 %cond.v.i.i.i.i, %and.i.i624.i.i - store i32 %cond.i.i626.i.i, ptr %rs1.i610.i.i, align 4 - %shr.i4.i628.i.i = lshr i32 %conv11.i, 7 - %and.i5.i629.i.i = and i32 %shr.i4.i628.i.i, 7 - %cmp.i6.i.i.i = icmp ult i32 %and.i5.i629.i.i, 2 + %and.i.i622.i.i = and i32 %shr.i.i600.i.i, 7 + %cmp.i.i623.i.i = icmp ult i32 %and.i.i622.i.i, 2 + %cond.v.i.i.i.i = select i1 %cmp.i.i623.i.i, i32 8, i32 16 + %cond.i.i624.i.i = or disjoint i32 %cond.v.i.i.i.i, %and.i.i622.i.i + store i32 %cond.i.i624.i.i, ptr %rs1.i608.i.i, align 4 + %shr.i4.i626.i.i = lshr i32 %conv11.i, 7 + %and.i5.i627.i.i = and i32 %shr.i4.i626.i.i, 7 + %cmp.i6.i.i.i = icmp ult i32 %and.i5.i627.i.i, 2 %cond.v.i7.i.i.i = select i1 %cmp.i6.i.i.i, i32 8, i32 16 - %cond.i8.i.i.i = or disjoint i32 %cond.v.i7.i.i.i, %and.i5.i629.i.i + %cond.i8.i.i.i = or disjoint i32 %cond.v.i7.i.i.i, %and.i5.i627.i.i store i32 %cond.i8.i.i.i, ptr %u.i.i, align 4 %and304.i.i = and i32 %56, 3 switch i32 %and304.i.i, label %decode_insn16.exit.i [ @@ -6252,15 +6251,15 @@ sw.bb305.i.i: ; preds = %sw.bb301.i.i br i1 %call306.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb309.i.i: ; preds = %sw.bb301.i.i - %call310.i.i = tail call fastcc zeroext i1 @trans_cm_mva01s(ptr noundef nonnull %dcbase, i32 %cond.i8.i.i.i, i32 %cond.i.i626.i.i) + %call310.i.i = tail call fastcc zeroext i1 @trans_cm_mva01s(ptr noundef nonnull %dcbase, i32 %cond.i8.i.i.i, i32 %cond.i.i624.i.i) br i1 %call310.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb314.i.i: ; preds = %if.end293.i.i - %and.i.i632.i.i = and i32 %57, 15 - store i32 %and.i.i632.i.i, ptr %u.i.i, align 4 + %and.i.i630.i.i = and i32 %57, 15 + store i32 %and.i.i630.i.i, ptr %u.i.i, align 4 %60 = shl nuw nsw i32 %conv11.i, 2 - %shl.i.i633.i.i = and i32 %60, 48 - store i32 %shl.i.i633.i.i, ptr %rs1.i610.i.i, align 4 + %shl.i.i631.i.i = and i32 %60, 48 + store i32 %shl.i.i631.i.i, ptr %rs1.i608.i.i, align 4 %shr316.i.i = lshr i32 %conv11.i, 8 %and317.i.i = and i32 %shr316.i.i, 3 switch i32 %and317.i.i, label %decode_insn16.exit.i [ @@ -6269,19 +6268,19 @@ sw.bb314.i.i: ; preds = %if.end293.i.i ] sw.bb318.i.i: ; preds = %sw.bb314.i.i - %call319.i.i = tail call fastcc zeroext i1 @trans_cm_push(ptr noundef nonnull %dcbase, i32 %and.i.i632.i.i, i32 %shl.i.i633.i.i) + %call319.i.i = tail call fastcc zeroext i1 @trans_cm_push(ptr noundef nonnull %dcbase, i32 %and.i.i630.i.i, i32 %shl.i.i631.i.i) br i1 %call319.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb322.i.i: ; preds = %sw.bb314.i.i - %call.i634.i.i = call fastcc noundef zeroext i1 @gen_pop(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i1 noundef zeroext false, i1 noundef zeroext false) - br i1 %call.i634.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i + %call.i632.i.i = call fastcc noundef zeroext i1 @gen_pop(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i1 noundef zeroext false, i1 noundef zeroext false) + br i1 %call.i632.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb327.i.i: ; preds = %if.end293.i.i - %and.i.i637.i.i = and i32 %57, 15 - store i32 %and.i.i637.i.i, ptr %u.i.i, align 4 + %and.i.i635.i.i = and i32 %57, 15 + store i32 %and.i.i635.i.i, ptr %u.i.i, align 4 %61 = shl nuw nsw i32 %conv11.i, 2 - %shl.i.i638.i.i = and i32 %61, 48 - store i32 %shl.i.i638.i.i, ptr %rs1.i610.i.i, align 4 + %shl.i.i636.i.i = and i32 %61, 48 + store i32 %shl.i.i636.i.i, ptr %rs1.i608.i.i, align 4 %shr329.i.i = lshr i32 %conv11.i, 8 %and330.i.i = and i32 %shr329.i.i, 3 switch i32 %and330.i.i, label %decode_insn16.exit.i [ @@ -6290,34 +6289,34 @@ sw.bb327.i.i: ; preds = %if.end293.i.i ] sw.bb331.i.i: ; preds = %sw.bb327.i.i - %call.i640.i.i = call fastcc noundef zeroext i1 @gen_pop(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i1 noundef zeroext true, i1 noundef zeroext true) - br i1 %call.i640.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i + %call.i638.i.i = call fastcc noundef zeroext i1 @gen_pop(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i1 noundef zeroext true, i1 noundef zeroext true) + br i1 %call.i638.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb335.i.i: ; preds = %sw.bb327.i.i - %call.i641.i.i = call fastcc noundef zeroext i1 @gen_pop(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i1 noundef zeroext true, i1 noundef zeroext false) - br i1 %call.i641.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i + %call.i639.i.i = call fastcc noundef zeroext i1 @gen_pop(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i1 noundef zeroext true, i1 noundef zeroext false) + br i1 %call.i639.i.i, label %decode_insn16.exit.thread.i, label %decode_insn16.exit.i sw.bb341.i.i: ; preds = %land.lhs.true.i - %shr.i.i643.i.i = lshr i32 %conv11.i, 2 - %and.i.i644.i.i = and i32 %shr.i.i643.i.i, 7 - %add.i.i645.i.i = or disjoint i32 %and.i.i644.i.i, 8 - %rs2.i646.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i645.i.i, ptr %rs2.i646.i.i, align 4 - %shr.i9.i647.i.i = lshr i32 %conv11.i, 6 - %and.i10.i648.i.i = and i32 %shr.i9.i647.i.i, 1 + %shr.i.i641.i.i = lshr i32 %conv11.i, 2 + %and.i.i642.i.i = and i32 %shr.i.i641.i.i, 7 + %add.i.i643.i.i = or disjoint i32 %and.i.i642.i.i, 8 + %rs2.i644.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i643.i.i, ptr %rs2.i644.i.i, align 4 + %shr.i9.i645.i.i = lshr i32 %conv11.i, 6 + %and.i10.i646.i.i = and i32 %shr.i9.i645.i.i, 1 %62 = lshr i32 %conv11.i, 9 - %and6.i.i649.i.i = and i32 %62, 14 - %or.i.i650.i.i = or disjoint i32 %and.i10.i648.i.i, %and6.i.i649.i.i + %and6.i.i647.i.i = and i32 %62, 14 + %or.i.i648.i.i = or disjoint i32 %and.i10.i646.i.i, %and6.i.i647.i.i %63 = lshr i32 %conv11.i, 1 - %and6.i16.i651.i.i = and i32 %63, 16 - %or.i17.i652.i.i = or disjoint i32 %or.i.i650.i.i, %and6.i16.i651.i.i - %shl.i.i653.i.i = shl nuw nsw i32 %or.i17.i652.i.i, 2 - store i32 %shl.i.i653.i.i, ptr %u.i.i, align 4 - %shr.i18.i654.i.i = lshr i32 %conv11.i, 7 - %and.i19.i655.i.i = and i32 %shr.i18.i654.i.i, 7 - %add.i20.i656.i.i = or disjoint i32 %and.i19.i655.i.i, 8 - %rs1.i657.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i20.i656.i.i, ptr %rs1.i657.i.i, align 4 + %and6.i16.i649.i.i = and i32 %63, 16 + %or.i17.i650.i.i = or disjoint i32 %or.i.i648.i.i, %and6.i16.i649.i.i + %shl.i.i651.i.i = shl nuw nsw i32 %or.i17.i650.i.i, 2 + store i32 %shl.i.i651.i.i, ptr %u.i.i, align 4 + %shr.i18.i652.i.i = lshr i32 %conv11.i, 7 + %and.i19.i653.i.i = and i32 %shr.i18.i652.i.i, 7 + %add.i20.i654.i.i = or disjoint i32 %and.i19.i653.i.i, 8 + %rs1.i655.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i20.i654.i.i, ptr %rs1.i655.i.i, align 4 %insn_start.i.i.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 32 %64 = load ptr, ptr %insn_start.i.i.i.i, align 8 %cmp.not.i.i.i.i = icmp eq ptr %64, null @@ -6332,10 +6331,10 @@ decode_save_opc.exit.i.i.i: ; preds = %sw.bb341.i.i %arrayidx.i.i.i.i.i.i = getelementptr %struct.TCGOp, ptr %64, i64 0, i32 4, i64 1 store i64 %conv.i.i.i.i, ptr %arrayidx.i.i.i.i.i.i, align 8 store ptr null, ptr %insn_start.i.i.i.i, align 8 - %65 = load i32, ptr %rs1.i657.i.i, align 4 + %65 = load i32, ptr %rs1.i655.i.i, align 4 %66 = load i32, ptr %u.i.i, align 4 %call.i.i.i.i = tail call fastcc ptr @get_address(ptr noundef nonnull %dcbase, i32 noundef %65, i32 noundef %66) - %67 = load i32, ptr %rs2.i646.i.i, align 4 + %67 = load i32, ptr %rs2.i644.i.i, align 4 %cmp.i.i.i.i.i = icmp eq i32 %67, 0 br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i.i, label %if.end.i.i.i.i.i @@ -6372,268 +6371,268 @@ gen_store.exit.i.i: ; preds = %sw.epilog11.i.i.i.i br label %decode_insn16.exit.thread.i sw.bb345.i.i: ; preds = %land.lhs.true.i - %rs2.i659.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 1 - store i32 0, ptr %rs2.i659.i.i, align 4 - %shr.i.i661.i.i = lshr i32 %conv11.i, 3 - %and.i.i662.i.i = and i32 %shr.i.i661.i.i, 3 + %rs2.i657.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 1 + store i32 0, ptr %rs2.i657.i.i, align 4 + %shr.i.i659.i.i = lshr i32 %conv11.i, 3 + %and.i.i660.i.i = and i32 %shr.i.i659.i.i, 3 %73 = lshr i32 %conv11.i, 8 - %and6.i.i663.i.i = and i32 %73, 12 + %and6.i.i661.i.i = and i32 %73, 12 %74 = shl nuw nsw i32 %conv11.i, 2 - %and6.i14.i664.i.i = and i32 %74, 16 - %and.i17.i665.i.i = and i32 %conv11.i, 96 - %shl.i.mask.i666.i.i = and i32 %conv11.i, 4096 - %isneg.not.i667.i.i = icmp eq i32 %shl.i.mask.i666.i.i, 0 - %shl57.i.i668.i.i = select i1 %isneg.not.i667.i.i, i32 0, i32 2147483520 - %or.i20.i.i.i = or disjoint i32 %and6.i.i663.i.i, %and.i17.i665.i.i - %or.i.i669.i.i = or disjoint i32 %or.i20.i.i.i, %and.i.i662.i.i - %or.i15.i670.i.i = or disjoint i32 %or.i.i669.i.i, %and6.i14.i664.i.i - %or.i24.i.i.i = or disjoint i32 %or.i15.i670.i.i, %shl57.i.i668.i.i + %and6.i14.i662.i.i = and i32 %74, 16 + %and.i17.i663.i.i = and i32 %conv11.i, 96 + %shl.i.mask.i664.i.i = and i32 %conv11.i, 4096 + %isneg.not.i665.i.i = icmp eq i32 %shl.i.mask.i664.i.i, 0 + %shl57.i.i666.i.i = select i1 %isneg.not.i665.i.i, i32 0, i32 2147483520 + %or.i20.i.i.i = or disjoint i32 %and6.i.i661.i.i, %and.i17.i663.i.i + %or.i.i667.i.i = or disjoint i32 %or.i20.i.i.i, %and.i.i660.i.i + %or.i15.i668.i.i = or disjoint i32 %or.i.i667.i.i, %and6.i14.i662.i.i + %or.i24.i.i.i = or disjoint i32 %or.i15.i668.i.i, %shl57.i.i666.i.i %shl.i25.i.i.i = shl nuw i32 %or.i24.i.i.i, 1 store i32 %shl.i25.i.i.i, ptr %u.i.i, align 4 %shr.i26.i.i.i = lshr i32 %conv11.i, 7 %and.i27.i.i.i = and i32 %shr.i26.i.i.i, 7 - %add.i.i671.i.i = or disjoint i32 %and.i27.i.i.i, 8 - %rs1.i672.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i671.i.i, ptr %rs1.i672.i.i, align 4 + %add.i.i669.i.i = or disjoint i32 %and.i27.i.i.i, 8 + %rs1.i670.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i669.i.i, ptr %rs1.i670.i.i, align 4 call fastcc void @gen_branch(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 8) br label %decode_insn16.exit.thread.i sw.bb349.i.i: ; preds = %land.lhs.true.i - %shr.i.i675.i.i = lshr i32 %conv11.i, 2 - %and.i.i676.i.i = and i32 %shr.i.i675.i.i, 31 - %rs2.i677.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i.i676.i.i, ptr %rs2.i677.i.i, align 4 - %shr.i5.i678.i.i = lshr i32 %conv11.i, 9 - %and.i6.i679.i.i = and i32 %shr.i5.i678.i.i, 15 + %shr.i.i673.i.i = lshr i32 %conv11.i, 2 + %and.i.i674.i.i = and i32 %shr.i.i673.i.i, 31 + %rs2.i675.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i.i674.i.i, ptr %rs2.i675.i.i, align 4 + %shr.i5.i676.i.i = lshr i32 %conv11.i, 9 + %and.i6.i677.i.i = and i32 %shr.i5.i676.i.i, 15 %75 = lshr i32 %conv11.i, 3 - %and6.i.i680.i.i = and i32 %75, 48 - %or.i.i681.i.i = or disjoint i32 %and.i6.i679.i.i, %and6.i.i680.i.i - %shl.i.i682.i.i = shl nuw nsw i32 %or.i.i681.i.i, 2 - store i32 %shl.i.i682.i.i, ptr %u.i.i, align 4 - %rs1.i683.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 2, ptr %rs1.i683.i.i, align 4 - %insn_start.i.i731.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 32 - %76 = load ptr, ptr %insn_start.i.i731.i.i, align 8 - %cmp.not.i.i732.i.i = icmp eq ptr %76, null - br i1 %cmp.not.i.i732.i.i, label %if.else.i.i756.i.i, label %decode_save_opc.exit.i733.i.i - -if.else.i.i756.i.i: ; preds = %sw.bb349.i.i + %and6.i.i678.i.i = and i32 %75, 48 + %or.i.i679.i.i = or disjoint i32 %and.i6.i677.i.i, %and6.i.i678.i.i + %shl.i.i680.i.i = shl nuw nsw i32 %or.i.i679.i.i, 2 + store i32 %shl.i.i680.i.i, ptr %u.i.i, align 4 + %rs1.i681.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 2, ptr %rs1.i681.i.i, align 4 + %insn_start.i.i729.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 32 + %76 = load ptr, ptr %insn_start.i.i729.i.i, align 8 + %cmp.not.i.i730.i.i = icmp eq ptr %76, null + br i1 %cmp.not.i.i730.i.i, label %if.else.i.i754.i.i, label %decode_save_opc.exit.i731.i.i + +if.else.i.i754.i.i: ; preds = %sw.bb349.i.i tail call void @__assert_fail(ptr noundef nonnull @.str.1168, ptr noundef nonnull @.str.1169, i32 noundef 208, ptr noundef nonnull @__PRETTY_FUNCTION__.decode_save_opc) #14 unreachable -decode_save_opc.exit.i733.i.i: ; preds = %sw.bb349.i.i - %conv.i.i735.i.i = zext i16 %call2 to i64 - %arrayidx.i.i.i.i736.i.i = getelementptr %struct.TCGOp, ptr %76, i64 0, i32 4, i64 1 - store i64 %conv.i.i735.i.i, ptr %arrayidx.i.i.i.i736.i.i, align 8 - store ptr null, ptr %insn_start.i.i731.i.i, align 8 - %77 = load i32, ptr %rs1.i683.i.i, align 4 +decode_save_opc.exit.i731.i.i: ; preds = %sw.bb349.i.i + %conv.i.i733.i.i = zext i16 %call2 to i64 + %arrayidx.i.i.i.i734.i.i = getelementptr %struct.TCGOp, ptr %76, i64 0, i32 4, i64 1 + store i64 %conv.i.i733.i.i, ptr %arrayidx.i.i.i.i734.i.i, align 8 + store ptr null, ptr %insn_start.i.i729.i.i, align 8 + %77 = load i32, ptr %rs1.i681.i.i, align 4 %78 = load i32, ptr %u.i.i, align 4 - %call.i.i738.i.i = tail call fastcc ptr @get_address(ptr noundef nonnull %dcbase, i32 noundef %77, i32 noundef %78) - %79 = load i32, ptr %rs2.i677.i.i, align 4 - %cmp.i.i.i740.i.i = icmp eq i32 %79, 0 - br i1 %cmp.i.i.i740.i.i, label %if.then.i.i.i754.i.i, label %if.end.i.i.i741.i.i + %call.i.i736.i.i = tail call fastcc ptr @get_address(ptr noundef nonnull %dcbase, i32 noundef %77, i32 noundef %78) + %79 = load i32, ptr %rs2.i675.i.i, align 4 + %cmp.i.i.i738.i.i = icmp eq i32 %79, 0 + br i1 %cmp.i.i.i738.i.i, label %if.then.i.i.i752.i.i, label %if.end.i.i.i739.i.i -if.then.i.i.i754.i.i: ; preds = %decode_save_opc.exit.i733.i.i - %zero.i.i.i755.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 27 - br label %gen_store.exit757.i.i +if.then.i.i.i752.i.i: ; preds = %decode_save_opc.exit.i731.i.i + %zero.i.i.i753.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 27 + br label %gen_store.exit755.i.i -if.end.i.i.i741.i.i: ; preds = %decode_save_opc.exit.i733.i.i +if.end.i.i.i739.i.i: ; preds = %decode_save_opc.exit.i731.i.i %80 = load i32, ptr %ol, align 8 - %.off.i.i743.i.i = add i32 %80, -1 - %switch.i.i744.i.i = icmp ult i32 %.off.i.i743.i.i, 3 - br i1 %switch.i.i744.i.i, label %sw.epilog11.i.i.i746.i.i, label %do.body9.i.i.i745.i.i + %.off.i.i741.i.i = add i32 %80, -1 + %switch.i.i742.i.i = icmp ult i32 %.off.i.i741.i.i, 3 + br i1 %switch.i.i742.i.i, label %sw.epilog11.i.i.i744.i.i, label %do.body9.i.i.i743.i.i -do.body9.i.i.i745.i.i: ; preds = %if.end.i.i.i741.i.i +do.body9.i.i.i743.i.i: ; preds = %if.end.i.i.i739.i.i tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1169, i32 noundef 350, ptr noundef nonnull @__func__.get_gpr, ptr noundef null) #14 unreachable -sw.epilog11.i.i.i746.i.i: ; preds = %if.end.i.i.i741.i.i - %idxprom12.i.i.i747.i.i = sext i32 %79 to i64 - %arrayidx13.i.i.i748.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i747.i.i - br label %gen_store.exit757.i.i +sw.epilog11.i.i.i744.i.i: ; preds = %if.end.i.i.i739.i.i + %idxprom12.i.i.i745.i.i = sext i32 %79 to i64 + %arrayidx13.i.i.i746.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i745.i.i + br label %gen_store.exit755.i.i -gen_store.exit757.i.i: ; preds = %sw.epilog11.i.i.i746.i.i, %if.then.i.i.i754.i.i - %retval.0.i.in.i.i749.i.i = phi ptr [ %zero.i.i.i755.i.i, %if.then.i.i.i754.i.i ], [ %arrayidx13.i.i.i748.i.i, %sw.epilog11.i.i.i746.i.i ] - %retval.0.i.i.i750.i.i = load ptr, ptr %retval.0.i.in.i.i749.i.i, align 8 - %mem_idx.i.i751.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 11 - %81 = load i32, ptr %mem_idx.i.i751.i.i, align 4 - %conv.i2.i752.i.i = zext i32 %81 to i64 +gen_store.exit755.i.i: ; preds = %sw.epilog11.i.i.i744.i.i, %if.then.i.i.i752.i.i + %retval.0.i.in.i.i747.i.i = phi ptr [ %zero.i.i.i753.i.i, %if.then.i.i.i752.i.i ], [ %arrayidx13.i.i.i746.i.i, %sw.epilog11.i.i.i744.i.i ] + %retval.0.i.i.i748.i.i = load ptr, ptr %retval.0.i.in.i.i747.i.i, align 8 + %mem_idx.i.i749.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 11 + %81 = load i32, ptr %mem_idx.i.i749.i.i, align 4 + %conv.i2.i750.i.i = zext i32 %81 to i64 %82 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %83 = load ptr, ptr %82, align 8 - %84 = ptrtoint ptr %call.i.i738.i.i to i64 - %add.ptr.i.i.i.i.i753.i.i = getelementptr i8, ptr %83, i64 %84 - tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %retval.0.i.i.i750.i.i, ptr noundef %add.ptr.i.i.i.i.i753.i.i, i64 noundef %conv.i2.i752.i.i, i32 noundef 10, i32 noundef 1) #13 + %84 = ptrtoint ptr %call.i.i736.i.i to i64 + %add.ptr.i.i.i.i.i751.i.i = getelementptr i8, ptr %83, i64 %84 + tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %retval.0.i.i.i748.i.i, ptr noundef %add.ptr.i.i.i.i.i751.i.i, i64 noundef %conv.i2.i750.i.i, i32 noundef 10, i32 noundef 1) #13 br label %decode_insn16.exit.thread.i sw.bb353.i.i: ; preds = %land.lhs.true.i - %shr.i.i686.i.i = lshr i32 %conv11.i, 2 - %and.i.i687.i.i = and i32 %shr.i.i686.i.i, 7 - %add.i.i688.i.i = or disjoint i32 %and.i.i687.i.i, 8 - %rs2.i689.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i688.i.i, ptr %rs2.i689.i.i, align 4 - %shr.i8.i690.i.i = lshr i32 %conv11.i, 10 - %and.i9.i691.i.i = and i32 %shr.i8.i690.i.i, 7 - %and6.i.i692.i.i = and i32 %shr.i.i686.i.i, 24 - %or.i.i693.i.i = or disjoint i32 %and.i9.i691.i.i, %and6.i.i692.i.i - %shl.i.i694.i.i = shl nuw nsw i32 %or.i.i693.i.i, 3 - store i32 %shl.i.i694.i.i, ptr %u.i.i, align 4 - %shr.i12.i695.i.i = lshr i32 %conv11.i, 7 - %and.i13.i696.i.i = and i32 %shr.i12.i695.i.i, 7 - %add.i14.i697.i.i = or disjoint i32 %and.i13.i696.i.i, 8 - %rs1.i698.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 %add.i14.i697.i.i, ptr %rs1.i698.i.i, align 4 - %insn_start.i.i758.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 32 - %85 = load ptr, ptr %insn_start.i.i758.i.i, align 8 - %cmp.not.i.i759.i.i = icmp eq ptr %85, null - br i1 %cmp.not.i.i759.i.i, label %if.else.i.i783.i.i, label %decode_save_opc.exit.i760.i.i - -if.else.i.i783.i.i: ; preds = %sw.bb353.i.i + %shr.i.i684.i.i = lshr i32 %conv11.i, 2 + %and.i.i685.i.i = and i32 %shr.i.i684.i.i, 7 + %add.i.i686.i.i = or disjoint i32 %and.i.i685.i.i, 8 + %rs2.i687.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i686.i.i, ptr %rs2.i687.i.i, align 4 + %shr.i8.i688.i.i = lshr i32 %conv11.i, 10 + %and.i9.i689.i.i = and i32 %shr.i8.i688.i.i, 7 + %and6.i.i690.i.i = and i32 %shr.i.i684.i.i, 24 + %or.i.i691.i.i = or disjoint i32 %and.i9.i689.i.i, %and6.i.i690.i.i + %shl.i.i692.i.i = shl nuw nsw i32 %or.i.i691.i.i, 3 + store i32 %shl.i.i692.i.i, ptr %u.i.i, align 4 + %shr.i12.i693.i.i = lshr i32 %conv11.i, 7 + %and.i13.i694.i.i = and i32 %shr.i12.i693.i.i, 7 + %add.i14.i695.i.i = or disjoint i32 %and.i13.i694.i.i, 8 + %rs1.i696.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 %add.i14.i695.i.i, ptr %rs1.i696.i.i, align 4 + %insn_start.i.i756.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 32 + %85 = load ptr, ptr %insn_start.i.i756.i.i, align 8 + %cmp.not.i.i757.i.i = icmp eq ptr %85, null + br i1 %cmp.not.i.i757.i.i, label %if.else.i.i781.i.i, label %decode_save_opc.exit.i758.i.i + +if.else.i.i781.i.i: ; preds = %sw.bb353.i.i tail call void @__assert_fail(ptr noundef nonnull @.str.1168, ptr noundef nonnull @.str.1169, i32 noundef 208, ptr noundef nonnull @__PRETTY_FUNCTION__.decode_save_opc) #14 unreachable -decode_save_opc.exit.i760.i.i: ; preds = %sw.bb353.i.i - %conv.i.i762.i.i = zext i16 %call2 to i64 - %arrayidx.i.i.i.i763.i.i = getelementptr %struct.TCGOp, ptr %85, i64 0, i32 4, i64 1 - store i64 %conv.i.i762.i.i, ptr %arrayidx.i.i.i.i763.i.i, align 8 - store ptr null, ptr %insn_start.i.i758.i.i, align 8 - %86 = load i32, ptr %rs1.i698.i.i, align 4 +decode_save_opc.exit.i758.i.i: ; preds = %sw.bb353.i.i + %conv.i.i760.i.i = zext i16 %call2 to i64 + %arrayidx.i.i.i.i761.i.i = getelementptr %struct.TCGOp, ptr %85, i64 0, i32 4, i64 1 + store i64 %conv.i.i760.i.i, ptr %arrayidx.i.i.i.i761.i.i, align 8 + store ptr null, ptr %insn_start.i.i756.i.i, align 8 + %86 = load i32, ptr %rs1.i696.i.i, align 4 %87 = load i32, ptr %u.i.i, align 4 - %call.i.i765.i.i = tail call fastcc ptr @get_address(ptr noundef nonnull %dcbase, i32 noundef %86, i32 noundef %87) - %88 = load i32, ptr %rs2.i689.i.i, align 4 - %cmp.i.i.i767.i.i = icmp eq i32 %88, 0 - br i1 %cmp.i.i.i767.i.i, label %if.then.i.i.i781.i.i, label %if.end.i.i.i768.i.i + %call.i.i763.i.i = tail call fastcc ptr @get_address(ptr noundef nonnull %dcbase, i32 noundef %86, i32 noundef %87) + %88 = load i32, ptr %rs2.i687.i.i, align 4 + %cmp.i.i.i765.i.i = icmp eq i32 %88, 0 + br i1 %cmp.i.i.i765.i.i, label %if.then.i.i.i779.i.i, label %if.end.i.i.i766.i.i -if.then.i.i.i781.i.i: ; preds = %decode_save_opc.exit.i760.i.i - %zero.i.i.i782.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 27 - br label %gen_store.exit784.i.i +if.then.i.i.i779.i.i: ; preds = %decode_save_opc.exit.i758.i.i + %zero.i.i.i780.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 27 + br label %gen_store.exit782.i.i -if.end.i.i.i768.i.i: ; preds = %decode_save_opc.exit.i760.i.i +if.end.i.i.i766.i.i: ; preds = %decode_save_opc.exit.i758.i.i %89 = load i32, ptr %ol, align 8 - %.off.i.i770.i.i = add i32 %89, -1 - %switch.i.i771.i.i = icmp ult i32 %.off.i.i770.i.i, 3 - br i1 %switch.i.i771.i.i, label %sw.epilog11.i.i.i773.i.i, label %do.body9.i.i.i772.i.i + %.off.i.i768.i.i = add i32 %89, -1 + %switch.i.i769.i.i = icmp ult i32 %.off.i.i768.i.i, 3 + br i1 %switch.i.i769.i.i, label %sw.epilog11.i.i.i771.i.i, label %do.body9.i.i.i770.i.i -do.body9.i.i.i772.i.i: ; preds = %if.end.i.i.i768.i.i +do.body9.i.i.i770.i.i: ; preds = %if.end.i.i.i766.i.i tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1169, i32 noundef 350, ptr noundef nonnull @__func__.get_gpr, ptr noundef null) #14 unreachable -sw.epilog11.i.i.i773.i.i: ; preds = %if.end.i.i.i768.i.i - %idxprom12.i.i.i774.i.i = sext i32 %88 to i64 - %arrayidx13.i.i.i775.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i774.i.i - br label %gen_store.exit784.i.i +sw.epilog11.i.i.i771.i.i: ; preds = %if.end.i.i.i766.i.i + %idxprom12.i.i.i772.i.i = sext i32 %88 to i64 + %arrayidx13.i.i.i773.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i772.i.i + br label %gen_store.exit782.i.i -gen_store.exit784.i.i: ; preds = %sw.epilog11.i.i.i773.i.i, %if.then.i.i.i781.i.i - %retval.0.i.in.i.i776.i.i = phi ptr [ %zero.i.i.i782.i.i, %if.then.i.i.i781.i.i ], [ %arrayidx13.i.i.i775.i.i, %sw.epilog11.i.i.i773.i.i ] - %retval.0.i.i.i777.i.i = load ptr, ptr %retval.0.i.in.i.i776.i.i, align 8 - %mem_idx.i.i778.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 11 - %90 = load i32, ptr %mem_idx.i.i778.i.i, align 4 - %conv.i2.i779.i.i = zext i32 %90 to i64 +gen_store.exit782.i.i: ; preds = %sw.epilog11.i.i.i771.i.i, %if.then.i.i.i779.i.i + %retval.0.i.in.i.i774.i.i = phi ptr [ %zero.i.i.i780.i.i, %if.then.i.i.i779.i.i ], [ %arrayidx13.i.i.i773.i.i, %sw.epilog11.i.i.i771.i.i ] + %retval.0.i.i.i775.i.i = load ptr, ptr %retval.0.i.in.i.i774.i.i, align 8 + %mem_idx.i.i776.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 11 + %90 = load i32, ptr %mem_idx.i.i776.i.i, align 4 + %conv.i2.i777.i.i = zext i32 %90 to i64 %91 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %92 = load ptr, ptr %91, align 8 - %93 = ptrtoint ptr %call.i.i765.i.i to i64 - %add.ptr.i.i.i.i.i780.i.i = getelementptr i8, ptr %92, i64 %93 - tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %retval.0.i.i.i777.i.i, ptr noundef %add.ptr.i.i.i.i.i780.i.i, i64 noundef %conv.i2.i779.i.i, i32 noundef 3, i32 noundef 1) #13 + %93 = ptrtoint ptr %call.i.i763.i.i to i64 + %add.ptr.i.i.i.i.i778.i.i = getelementptr i8, ptr %92, i64 %93 + tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %retval.0.i.i.i775.i.i, ptr noundef %add.ptr.i.i.i.i.i778.i.i, i64 noundef %conv.i2.i777.i.i, i32 noundef 3, i32 noundef 1) #13 br label %decode_insn16.exit.thread.i sw.bb360.i.i: ; preds = %land.lhs.true.i - %rs2.i700.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 1 - store i32 0, ptr %rs2.i700.i.i, align 4 - %shr.i.i702.i.i = lshr i32 %conv11.i, 3 - %and.i.i703.i.i = and i32 %shr.i.i702.i.i, 3 + %rs2.i698.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 1 + store i32 0, ptr %rs2.i698.i.i, align 4 + %shr.i.i700.i.i = lshr i32 %conv11.i, 3 + %and.i.i701.i.i = and i32 %shr.i.i700.i.i, 3 %94 = lshr i32 %conv11.i, 8 - %and6.i.i704.i.i = and i32 %94, 12 + %and6.i.i702.i.i = and i32 %94, 12 %95 = shl nuw nsw i32 %conv11.i, 2 - %and6.i14.i705.i.i = and i32 %95, 16 - %and.i17.i706.i.i = and i32 %conv11.i, 96 - %shl.i.mask.i707.i.i = and i32 %conv11.i, 4096 - %isneg.not.i708.i.i = icmp eq i32 %shl.i.mask.i707.i.i, 0 - %shl57.i.i709.i.i = select i1 %isneg.not.i708.i.i, i32 0, i32 2147483520 - %or.i20.i710.i.i = or disjoint i32 %and6.i.i704.i.i, %and.i17.i706.i.i - %or.i.i711.i.i = or disjoint i32 %or.i20.i710.i.i, %and.i.i703.i.i - %or.i15.i712.i.i = or disjoint i32 %or.i.i711.i.i, %and6.i14.i705.i.i - %or.i24.i713.i.i = or disjoint i32 %or.i15.i712.i.i, %shl57.i.i709.i.i - %shl.i25.i714.i.i = shl nuw i32 %or.i24.i713.i.i, 1 - store i32 %shl.i25.i714.i.i, ptr %u.i.i, align 4 - %shr.i26.i715.i.i = lshr i32 %conv11.i, 7 - %and.i27.i716.i.i = and i32 %shr.i26.i715.i.i, 7 - %add.i.i717.i.i = or disjoint i32 %and.i27.i716.i.i, 8 - %rs1.i718.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 2 - store i32 %add.i.i717.i.i, ptr %rs1.i718.i.i, align 4 + %and6.i14.i703.i.i = and i32 %95, 16 + %and.i17.i704.i.i = and i32 %conv11.i, 96 + %shl.i.mask.i705.i.i = and i32 %conv11.i, 4096 + %isneg.not.i706.i.i = icmp eq i32 %shl.i.mask.i705.i.i, 0 + %shl57.i.i707.i.i = select i1 %isneg.not.i706.i.i, i32 0, i32 2147483520 + %or.i20.i708.i.i = or disjoint i32 %and6.i.i702.i.i, %and.i17.i704.i.i + %or.i.i709.i.i = or disjoint i32 %or.i20.i708.i.i, %and.i.i701.i.i + %or.i15.i710.i.i = or disjoint i32 %or.i.i709.i.i, %and6.i14.i703.i.i + %or.i24.i711.i.i = or disjoint i32 %or.i15.i710.i.i, %shl57.i.i707.i.i + %shl.i25.i712.i.i = shl nuw i32 %or.i24.i711.i.i, 1 + store i32 %shl.i25.i712.i.i, ptr %u.i.i, align 4 + %shr.i26.i713.i.i = lshr i32 %conv11.i, 7 + %and.i27.i714.i.i = and i32 %shr.i26.i713.i.i, 7 + %add.i.i715.i.i = or disjoint i32 %and.i27.i714.i.i, 8 + %rs1.i716.i.i = getelementptr inbounds %struct.arg_b, ptr %u.i.i, i64 0, i32 2 + store i32 %add.i.i715.i.i, ptr %rs1.i716.i.i, align 4 call fastcc void @gen_branch(ptr noundef nonnull %dcbase, ptr noundef nonnull %u.i.i, i32 noundef 9) br label %decode_insn16.exit.thread.i sw.bb364.i.i: ; preds = %land.lhs.true.i - %shr.i.i721.i.i = lshr i32 %conv11.i, 2 - %and.i.i722.i.i = and i32 %shr.i.i721.i.i, 31 - %rs2.i723.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 - store i32 %and.i.i722.i.i, ptr %rs2.i723.i.i, align 4 - %shr.i5.i724.i.i = lshr i32 %conv11.i, 10 - %and.i6.i725.i.i = and i32 %shr.i5.i724.i.i, 7 + %shr.i.i719.i.i = lshr i32 %conv11.i, 2 + %and.i.i720.i.i = and i32 %shr.i.i719.i.i, 31 + %rs2.i721.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 2 + store i32 %and.i.i720.i.i, ptr %rs2.i721.i.i, align 4 + %shr.i5.i722.i.i = lshr i32 %conv11.i, 10 + %and.i6.i723.i.i = and i32 %shr.i5.i722.i.i, 7 %96 = lshr i32 %conv11.i, 4 - %and6.i.i726.i.i = and i32 %96, 56 - %or.i.i727.i.i = or disjoint i32 %and.i6.i725.i.i, %and6.i.i726.i.i - %shl.i.i728.i.i = shl nuw nsw i32 %or.i.i727.i.i, 3 - store i32 %shl.i.i728.i.i, ptr %u.i.i, align 4 - %rs1.i729.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 - store i32 2, ptr %rs1.i729.i.i, align 4 - %insn_start.i.i785.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 32 - %97 = load ptr, ptr %insn_start.i.i785.i.i, align 8 - %cmp.not.i.i786.i.i = icmp eq ptr %97, null - br i1 %cmp.not.i.i786.i.i, label %if.else.i.i810.i.i, label %decode_save_opc.exit.i787.i.i - -if.else.i.i810.i.i: ; preds = %sw.bb364.i.i + %and6.i.i724.i.i = and i32 %96, 56 + %or.i.i725.i.i = or disjoint i32 %and.i6.i723.i.i, %and6.i.i724.i.i + %shl.i.i726.i.i = shl nuw nsw i32 %or.i.i725.i.i, 3 + store i32 %shl.i.i726.i.i, ptr %u.i.i, align 4 + %rs1.i727.i.i = getelementptr inbounds %struct.arg_s, ptr %u.i.i, i64 0, i32 1 + store i32 2, ptr %rs1.i727.i.i, align 4 + %insn_start.i.i783.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 32 + %97 = load ptr, ptr %insn_start.i.i783.i.i, align 8 + %cmp.not.i.i784.i.i = icmp eq ptr %97, null + br i1 %cmp.not.i.i784.i.i, label %if.else.i.i808.i.i, label %decode_save_opc.exit.i785.i.i + +if.else.i.i808.i.i: ; preds = %sw.bb364.i.i tail call void @__assert_fail(ptr noundef nonnull @.str.1168, ptr noundef nonnull @.str.1169, i32 noundef 208, ptr noundef nonnull @__PRETTY_FUNCTION__.decode_save_opc) #14 unreachable -decode_save_opc.exit.i787.i.i: ; preds = %sw.bb364.i.i - %conv.i.i789.i.i = zext i16 %call2 to i64 - %arrayidx.i.i.i.i790.i.i = getelementptr %struct.TCGOp, ptr %97, i64 0, i32 4, i64 1 - store i64 %conv.i.i789.i.i, ptr %arrayidx.i.i.i.i790.i.i, align 8 - store ptr null, ptr %insn_start.i.i785.i.i, align 8 - %98 = load i32, ptr %rs1.i729.i.i, align 4 +decode_save_opc.exit.i785.i.i: ; preds = %sw.bb364.i.i + %conv.i.i787.i.i = zext i16 %call2 to i64 + %arrayidx.i.i.i.i788.i.i = getelementptr %struct.TCGOp, ptr %97, i64 0, i32 4, i64 1 + store i64 %conv.i.i787.i.i, ptr %arrayidx.i.i.i.i788.i.i, align 8 + store ptr null, ptr %insn_start.i.i783.i.i, align 8 + %98 = load i32, ptr %rs1.i727.i.i, align 4 %99 = load i32, ptr %u.i.i, align 4 - %call.i.i792.i.i = tail call fastcc ptr @get_address(ptr noundef nonnull %dcbase, i32 noundef %98, i32 noundef %99) - %100 = load i32, ptr %rs2.i723.i.i, align 4 - %cmp.i.i.i794.i.i = icmp eq i32 %100, 0 - br i1 %cmp.i.i.i794.i.i, label %if.then.i.i.i808.i.i, label %if.end.i.i.i795.i.i + %call.i.i790.i.i = tail call fastcc ptr @get_address(ptr noundef nonnull %dcbase, i32 noundef %98, i32 noundef %99) + %100 = load i32, ptr %rs2.i721.i.i, align 4 + %cmp.i.i.i792.i.i = icmp eq i32 %100, 0 + br i1 %cmp.i.i.i792.i.i, label %if.then.i.i.i806.i.i, label %if.end.i.i.i793.i.i -if.then.i.i.i808.i.i: ; preds = %decode_save_opc.exit.i787.i.i - %zero.i.i.i809.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 27 - br label %gen_store.exit811.i.i +if.then.i.i.i806.i.i: ; preds = %decode_save_opc.exit.i785.i.i + %zero.i.i.i807.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 27 + br label %gen_store.exit809.i.i -if.end.i.i.i795.i.i: ; preds = %decode_save_opc.exit.i787.i.i +if.end.i.i.i793.i.i: ; preds = %decode_save_opc.exit.i785.i.i %101 = load i32, ptr %ol, align 8 - %.off.i.i797.i.i = add i32 %101, -1 - %switch.i.i798.i.i = icmp ult i32 %.off.i.i797.i.i, 3 - br i1 %switch.i.i798.i.i, label %sw.epilog11.i.i.i800.i.i, label %do.body9.i.i.i799.i.i + %.off.i.i795.i.i = add i32 %101, -1 + %switch.i.i796.i.i = icmp ult i32 %.off.i.i795.i.i, 3 + br i1 %switch.i.i796.i.i, label %sw.epilog11.i.i.i798.i.i, label %do.body9.i.i.i797.i.i -do.body9.i.i.i799.i.i: ; preds = %if.end.i.i.i795.i.i +do.body9.i.i.i797.i.i: ; preds = %if.end.i.i.i793.i.i tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1169, i32 noundef 350, ptr noundef nonnull @__func__.get_gpr, ptr noundef null) #14 unreachable -sw.epilog11.i.i.i800.i.i: ; preds = %if.end.i.i.i795.i.i - %idxprom12.i.i.i801.i.i = sext i32 %100 to i64 - %arrayidx13.i.i.i802.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i801.i.i - br label %gen_store.exit811.i.i +sw.epilog11.i.i.i798.i.i: ; preds = %if.end.i.i.i793.i.i + %idxprom12.i.i.i799.i.i = sext i32 %100 to i64 + %arrayidx13.i.i.i800.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i799.i.i + br label %gen_store.exit809.i.i -gen_store.exit811.i.i: ; preds = %sw.epilog11.i.i.i800.i.i, %if.then.i.i.i808.i.i - %retval.0.i.in.i.i803.i.i = phi ptr [ %zero.i.i.i809.i.i, %if.then.i.i.i808.i.i ], [ %arrayidx13.i.i.i802.i.i, %sw.epilog11.i.i.i800.i.i ] - %retval.0.i.i.i804.i.i = load ptr, ptr %retval.0.i.in.i.i803.i.i, align 8 - %mem_idx.i.i805.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 11 - %102 = load i32, ptr %mem_idx.i.i805.i.i, align 4 - %conv.i2.i806.i.i = zext i32 %102 to i64 +gen_store.exit809.i.i: ; preds = %sw.epilog11.i.i.i798.i.i, %if.then.i.i.i806.i.i + %retval.0.i.in.i.i801.i.i = phi ptr [ %zero.i.i.i807.i.i, %if.then.i.i.i806.i.i ], [ %arrayidx13.i.i.i800.i.i, %sw.epilog11.i.i.i798.i.i ] + %retval.0.i.i.i802.i.i = load ptr, ptr %retval.0.i.in.i.i801.i.i, align 8 + %mem_idx.i.i803.i.i = getelementptr inbounds %struct.DisasContext, ptr %dcbase, i64 0, i32 11 + %102 = load i32, ptr %mem_idx.i.i803.i.i, align 4 + %conv.i2.i804.i.i = zext i32 %102 to i64 %103 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %104 = load ptr, ptr %103, align 8 - %105 = ptrtoint ptr %call.i.i792.i.i to i64 - %add.ptr.i.i.i.i.i807.i.i = getelementptr i8, ptr %104, i64 %105 - tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %retval.0.i.i.i804.i.i, ptr noundef %add.ptr.i.i.i.i.i807.i.i, i64 noundef %conv.i2.i806.i.i, i32 noundef 3, i32 noundef 1) #13 + %105 = ptrtoint ptr %call.i.i790.i.i to i64 + %add.ptr.i.i.i.i.i805.i.i = getelementptr i8, ptr %104, i64 %105 + tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %retval.0.i.i.i802.i.i, ptr noundef %add.ptr.i.i.i.i.i805.i.i, i64 noundef %conv.i2.i804.i.i, i32 noundef 3, i32 noundef 1) #13 br label %decode_insn16.exit.thread.i -decode_insn16.exit.thread.i: ; preds = %gen_store.exit811.i.i, %sw.bb360.i.i, %gen_store.exit784.i.i, %gen_store.exit757.i.i, %sw.bb345.i.i, %gen_store.exit.i.i, %sw.bb335.i.i, %sw.bb331.i.i, %sw.bb322.i.i, %sw.bb318.i.i, %sw.bb309.i.i, %sw.bb305.i.i, %sw.bb297.i.i, %sw.bb287.i.i, %sw.bb282.i.i, %sw.bb275.i.i, %if.end270.i.i, %if.then265.i.i, %if.then256.i.i, %if.end247.i.i, %if.then242.i.i, %if.then233.i.i, %sw.bb217.i.i, %sw.bb213.i.i, %sw.bb209.i.i, %sw.bb205.i.i, %sw.bb201.i.i, %sw.bb197.i.i, %sw.bb189.i.i, %sw.bb185.i.i, %sw.bb181.i.i, %sw.bb177.i.i, %sw.bb173.i.i, %sw.bb169.i.i, %sw.bb165.i.i, %sw.bb158.i.i, %decode_insn16_extract_c_shift.exit471.i.i, %decode_insn16_extract_c_shift.exit.i.i, %trans_c_sh.exit.thread.i.i, %trans_c_sb.exit.thread.i.i, %trans_c_lh.exit.thread.i.i, %trans_c_lhu.exit.thread.i.i, %trans_c_lbu.exit.thread.i.i, %if.end106.i.i, %if.then102.i.i, %if.end93.i.i, %if.then89.i.i, %if.then80.i.i, %sw.bb68.i.i, %if.end64.i.i, %if.then60.i.i, %sw.bb51.i.i, %sw.bb47.i.i, %sw.bb40.i.i, %if.end36.i.i, %if.end33.i.i, %if.then29.i.i, %sw.bb17.i.i, %sw.bb13.i.i, %sw.bb9.i.i, %if.end5.i.i, %if.then.i.i +decode_insn16.exit.thread.i: ; preds = %gen_store.exit809.i.i, %sw.bb360.i.i, %gen_store.exit782.i.i, %gen_store.exit755.i.i, %sw.bb345.i.i, %gen_store.exit.i.i, %sw.bb335.i.i, %sw.bb331.i.i, %sw.bb322.i.i, %sw.bb318.i.i, %sw.bb309.i.i, %sw.bb305.i.i, %sw.bb297.i.i, %sw.bb287.i.i, %sw.bb282.i.i, %sw.bb275.i.i, %if.end270.i.i, %if.then265.i.i, %if.then256.i.i, %if.end247.i.i, %if.then242.i.i, %if.then233.i.i, %sw.bb217.i.i, %sw.bb213.i.i, %sw.bb209.i.i, %sw.bb205.i.i, %sw.bb201.i.i, %sw.bb197.i.i, %sw.bb189.i.i, %sw.bb185.i.i, %sw.bb181.i.i, %sw.bb177.i.i, %sw.bb173.i.i, %sw.bb169.i.i, %sw.bb165.i.i, %sw.bb158.i.i, %decode_insn16_extract_c_shift.exit469.i.i, %decode_insn16_extract_c_shift.exit.i.i, %trans_c_sh.exit.thread.i.i, %trans_c_sb.exit.thread.i.i, %trans_c_lh.exit.thread.i.i, %trans_c_lhu.exit.thread.i.i, %trans_c_lbu.exit.thread.i.i, %if.end106.i.i, %if.then102.i.i, %if.end93.i.i, %if.then89.i.i, %if.then80.i.i, %sw.bb68.i.i, %if.end64.i.i, %if.then60.i.i, %sw.bb51.i.i, %sw.bb47.i.i, %sw.bb40.i.i, %if.end36.i.i, %if.end33.i.i, %if.then29.i.i, %sw.bb17.i.i, %sw.bb13.i.i, %sw.bb9.i.i, %if.end5.i.i, %if.then.i.i call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %u.i.i) br label %decode_opc.exit -decode_insn16.exit.i: ; preds = %sw.bb335.i.i, %sw.bb331.i.i, %sw.bb327.i.i, %sw.bb322.i.i, %sw.bb318.i.i, %sw.bb314.i.i, %sw.bb309.i.i, %sw.bb305.i.i, %sw.bb301.i.i, %sw.bb297.i.i, %if.end293.i.i, %sw.bb275.i.i, %if.end270.i.i, %if.end247.i.i, %sw.bb217.i.i, %sw.bb213.i.i, %sw.bb209.i.i, %sw.bb205.i.i, %sw.bb201.i.i, %sw.bb197.i.i, %sw.bb193.i.i, %sw.bb189.i.i, %sw.bb185.i.i, %sw.bb181.i.i, %sw.bb165.i.i, %decode_insn16_extract_c_shift.exit471.i.i, %decode_insn16_extract_c_shift.exit.i.i, %sw.bb140.i.i, %sw.bb136.i.i, %sw.bb132.i.i, %sw.bb128.i.i, %sw.bb124.i.i, %sw.bb116.i.i, %sw.bb113.i.i, %sw.bb51.i.i, %sw.bb40.i.i, %sw.bb17.i.i, %sw.bb13.i.i, %sw.bb9.i.i, %if.end5.i.i, %land.lhs.true.i +decode_insn16.exit.i: ; preds = %sw.bb335.i.i, %sw.bb331.i.i, %sw.bb327.i.i, %sw.bb322.i.i, %sw.bb318.i.i, %sw.bb314.i.i, %sw.bb309.i.i, %sw.bb305.i.i, %sw.bb301.i.i, %sw.bb297.i.i, %if.end293.i.i, %sw.bb275.i.i, %if.end270.i.i, %if.end247.i.i, %sw.bb217.i.i, %sw.bb213.i.i, %sw.bb209.i.i, %sw.bb205.i.i, %sw.bb201.i.i, %sw.bb197.i.i, %sw.bb193.i.i, %sw.bb189.i.i, %sw.bb185.i.i, %sw.bb181.i.i, %sw.bb165.i.i, %decode_insn16_extract_c_shift.exit469.i.i, %decode_insn16_extract_c_shift.exit.i.i, %sw.bb140.i.i, %sw.bb136.i.i, %sw.bb132.i.i, %sw.bb128.i.i, %sw.bb124.i.i, %sw.bb116.i.i, %sw.bb113.i.i, %sw.bb51.i.i, %sw.bb40.i.i, %sw.bb17.i.i, %sw.bb13.i.i, %sw.bb9.i.i, %if.end5.i.i, %land.lhs.true.i call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %u.i.i) br label %if.end28.i @@ -6840,7 +6839,7 @@ sw.bb: ; preds = %entry store i32 %and.i7.i, ptr %rs1.i, align 4 %shr = lshr i32 %insn, 12 %and1 = and i32 %shr, 7 - switch i32 %and1, label %sw.bb.unreachabledefault [ + switch i32 %and1, label %default.unreachable6487 [ i32 0, label %sw.bb2 i32 1, label %sw.bb3 i32 2, label %sw.bb7 @@ -6879,13 +6878,13 @@ sw.bb23: ; preds = %sw.bb call fastcc void @gen_load(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 2) br label %return -sw.bb.unreachabledefault: ; preds = %sw.bb +default.unreachable6487: ; preds = %sw.bb3519, %sw.bb1360, %sw.bb1344, %sw.bb1328, %sw.bb1312, %sw.bb559, %sw.bb283, %sw.bb31, %sw.bb unreachable sw.bb31: ; preds = %entry %shr32 = lshr i32 %insn, 12 %and33 = and i32 %shr32, 7 - switch i32 %and33, label %sw.bb31.unreachabledefault [ + switch i32 %and33, label %default.unreachable6487 [ i32 0, label %sw.bb34 i32 1, label %sw.bb87 i32 2, label %sw.bb91 @@ -6919,17 +6918,17 @@ sw.bb39: ; preds = %sw.bb36 ] sw.bb42: ; preds = %sw.bb39 - %shr.i.i2057 = lshr i32 %insn, 15 - %and.i.i2058 = and i32 %shr.i.i2057, 31 - %rs1.i2059 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2058, ptr %rs1.i2059, align 4 + %shr.i.i2039 = lshr i32 %insn, 15 + %and.i.i2040 = and i32 %shr.i.i2039, 31 + %rs1.i2041 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2040, ptr %rs1.i2041, align 4 %shr.i7.i = lshr i32 %insn, 25 %and.i8.i = and i32 %shr.i7.i, 1 store i32 %and.i8.i, ptr %u, align 4 %shr.i9.i = lshr i32 %insn, 7 %and.i10.i = and i32 %shr.i9.i, 31 - %rd.i2060 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i, ptr %rd.i2060, align 4 + %rd.i2042 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i, ptr %rd.i2042, align 4 %shr.i11.i = lshr i32 %insn, 29 %add.i.i = add nuw nsw i32 %shr.i11.i, 1 %nf.i = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 @@ -6938,8 +6937,8 @@ sw.bb42: ; preds = %sw.bb39 br i1 %call43, label %return, label %sw.epilog3868 sw.bb46: ; preds = %sw.bb39 - %shr.i.i2061 = lshr i32 %insn, 7 - %and.i.i2062 = and i32 %shr.i.i2061, 31 + %shr.i.i2043 = lshr i32 %insn, 7 + %and.i.i2044 = and i32 %shr.i.i2043, 31 %shr.i3.i = lshr i32 %insn, 15 %and.i4.i = and i32 %shr.i3.i, 31 %and47 = and i32 %insn, -503316480 @@ -6959,19 +6958,19 @@ sw.bb48: ; preds = %sw.bb46 br i1 %cmp.i.i.not, label %sw.epilog3868, label %trans_vl1re8_v.exit.thread trans_vl1re8_v.exit.thread: ; preds = %sw.bb48 - tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2062, i32 noundef %and.i4.i, i32 noundef 1, i32 noundef 1, ptr noundef nonnull @gen_helper_vl1re8_v, ptr noundef nonnull %ctx) + tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2044, i32 noundef %and.i4.i, i32 noundef 1, i32 noundef 1, ptr noundef nonnull @gen_helper_vl1re8_v, ptr noundef nonnull %ctx) br label %return sw.bb52: ; preds = %sw.bb46 - %call53 = tail call fastcc zeroext i1 @trans_vl2re8_v(ptr noundef %ctx, i32 %and.i.i2062, i32 %and.i4.i) + %call53 = tail call fastcc zeroext i1 @trans_vl2re8_v(ptr noundef %ctx, i32 %and.i.i2044, i32 %and.i4.i) br i1 %call53, label %return, label %sw.epilog3868 sw.bb56: ; preds = %sw.bb46 - %call57 = tail call fastcc zeroext i1 @trans_vl4re8_v(ptr noundef %ctx, i32 %and.i.i2062, i32 %and.i4.i) + %call57 = tail call fastcc zeroext i1 @trans_vl4re8_v(ptr noundef %ctx, i32 %and.i.i2044, i32 %and.i4.i) br i1 %call57, label %return, label %sw.epilog3868 sw.bb60: ; preds = %sw.bb46 - %call61 = tail call fastcc zeroext i1 @trans_vl8re8_v(ptr noundef %ctx, i32 %and.i.i2062, i32 %and.i4.i) + %call61 = tail call fastcc zeroext i1 @trans_vl8re8_v(ptr noundef %ctx, i32 %and.i.i2044, i32 %and.i4.i) br i1 %call61, label %return, label %sw.epilog3868 sw.bb65: ; preds = %sw.bb39 @@ -6980,48 +6979,48 @@ sw.bb65: ; preds = %sw.bb39 br i1 %cond85, label %sw.bb67, label %sw.epilog3868 sw.bb67: ; preds = %sw.bb65 - %shr.i3.i2066 = lshr i32 %insn, 15 - %and.i4.i2067 = and i32 %shr.i3.i2066, 31 - %shr.i.i2064 = lshr i32 %insn, 7 - %and.i.i2065 = and i32 %shr.i.i2064, 31 - %call68 = tail call fastcc zeroext i1 @trans_vlm_v(ptr noundef %ctx, i32 %and.i.i2065, i32 %and.i4.i2067) + %shr.i3.i2048 = lshr i32 %insn, 15 + %and.i4.i2049 = and i32 %shr.i3.i2048, 31 + %shr.i.i2046 = lshr i32 %insn, 7 + %and.i.i2047 = and i32 %shr.i.i2046, 31 + %call68 = tail call fastcc zeroext i1 @trans_vlm_v(ptr noundef %ctx, i32 %and.i.i2047, i32 %and.i4.i2049) br i1 %call68, label %return, label %sw.epilog3868 sw.bb72: ; preds = %sw.bb39 - %shr.i.i2069 = lshr i32 %insn, 15 - %and.i.i2070 = and i32 %shr.i.i2069, 31 - %rs1.i2071 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2070, ptr %rs1.i2071, align 4 - %shr.i7.i2072 = lshr i32 %insn, 25 - %and.i8.i2073 = and i32 %shr.i7.i2072, 1 - store i32 %and.i8.i2073, ptr %u, align 4 - %shr.i9.i2074 = lshr i32 %insn, 7 - %and.i10.i2075 = and i32 %shr.i9.i2074, 31 - %rd.i2076 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2075, ptr %rd.i2076, align 4 - %shr.i11.i2077 = lshr i32 %insn, 29 - %add.i.i2078 = add nuw nsw i32 %shr.i11.i2077, 1 - %nf.i2079 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2078, ptr %nf.i2079, align 4 + %shr.i.i2051 = lshr i32 %insn, 15 + %and.i.i2052 = and i32 %shr.i.i2051, 31 + %rs1.i2053 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2052, ptr %rs1.i2053, align 4 + %shr.i7.i2054 = lshr i32 %insn, 25 + %and.i8.i2055 = and i32 %shr.i7.i2054, 1 + store i32 %and.i8.i2055, ptr %u, align 4 + %shr.i9.i2056 = lshr i32 %insn, 7 + %and.i10.i2057 = and i32 %shr.i9.i2056, 31 + %rd.i2058 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2057, ptr %rd.i2058, align 4 + %shr.i11.i2059 = lshr i32 %insn, 29 + %add.i.i2060 = add nuw nsw i32 %shr.i11.i2059, 1 + %nf.i2061 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2060, ptr %nf.i2061, align 4 %call73 = call fastcc zeroext i1 @trans_vle8ff_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call73, label %return, label %sw.epilog3868 sw.bb77: ; preds = %sw.bb36 - %shr.i.i2080 = lshr i32 %insn, 7 - %and.i.i2081 = and i32 %shr.i.i2080, 31 - %rd.i2082 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2081, ptr %rd.i2082, align 4 - %shr.i9.i2083 = lshr i32 %insn, 25 - %and.i10.i2084 = and i32 %shr.i9.i2083, 1 - store i32 %and.i10.i2084, ptr %u, align 4 - %shr.i11.i2085 = lshr i32 %insn, 29 - %add.i.i2086 = add nuw nsw i32 %shr.i11.i2085, 1 - %nf.i2087 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2086, ptr %nf.i2087, align 4 + %shr.i.i2062 = lshr i32 %insn, 7 + %and.i.i2063 = and i32 %shr.i.i2062, 31 + %rd.i2064 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2063, ptr %rd.i2064, align 4 + %shr.i9.i2065 = lshr i32 %insn, 25 + %and.i10.i2066 = and i32 %shr.i9.i2065, 1 + store i32 %and.i10.i2066, ptr %u, align 4 + %shr.i11.i2067 = lshr i32 %insn, 29 + %add.i.i2068 = add nuw nsw i32 %shr.i11.i2067, 1 + %nf.i2069 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2068, ptr %nf.i2069, align 4 %shr.i12.i = lshr i32 %insn, 15 %and.i13.i = and i32 %shr.i12.i, 31 - %rs1.i2088 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i, ptr %rs1.i2088, align 4 + %rs1.i2070 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i, ptr %rs1.i2070, align 4 %shr.i14.i = lshr i32 %insn, 20 %and.i15.i = and i32 %shr.i14.i, 31 %rs2.i = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 @@ -7030,67 +7029,67 @@ sw.bb77: ; preds = %sw.bb36 br i1 %call78, label %return, label %sw.epilog3868 sw.bb82: ; preds = %sw.bb34 - %shr.i.i2089 = lshr i32 %insn, 7 - %and.i.i2090 = and i32 %shr.i.i2089, 31 - %rd.i2091 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2090, ptr %rd.i2091, align 4 - %shr.i9.i2092 = lshr i32 %insn, 25 - %and.i10.i2093 = and i32 %shr.i9.i2092, 1 - store i32 %and.i10.i2093, ptr %u, align 4 - %shr.i11.i2094 = lshr i32 %insn, 29 - %add.i.i2095 = add nuw nsw i32 %shr.i11.i2094, 1 - %nf.i2096 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2095, ptr %nf.i2096, align 4 - %shr.i12.i2097 = lshr i32 %insn, 15 - %and.i13.i2098 = and i32 %shr.i12.i2097, 31 - %rs1.i2099 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2098, ptr %rs1.i2099, align 4 - %shr.i14.i2100 = lshr i32 %insn, 20 - %and.i15.i2101 = and i32 %shr.i14.i2100, 31 - %rs2.i2102 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2101, ptr %rs2.i2102, align 4 + %shr.i.i2071 = lshr i32 %insn, 7 + %and.i.i2072 = and i32 %shr.i.i2071, 31 + %rd.i2073 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2072, ptr %rd.i2073, align 4 + %shr.i9.i2074 = lshr i32 %insn, 25 + %and.i10.i2075 = and i32 %shr.i9.i2074, 1 + store i32 %and.i10.i2075, ptr %u, align 4 + %shr.i11.i2076 = lshr i32 %insn, 29 + %add.i.i2077 = add nuw nsw i32 %shr.i11.i2076, 1 + %nf.i2078 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2077, ptr %nf.i2078, align 4 + %shr.i12.i2079 = lshr i32 %insn, 15 + %and.i13.i2080 = and i32 %shr.i12.i2079, 31 + %rs1.i2081 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2080, ptr %rs1.i2081, align 4 + %shr.i14.i2082 = lshr i32 %insn, 20 + %and.i15.i2083 = and i32 %shr.i14.i2082, 31 + %rs2.i2084 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2083, ptr %rs2.i2084, align 4 %call83 = call fastcc zeroext i1 @trans_vlxei8_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call83, label %return, label %sw.epilog3868 sw.bb87: ; preds = %sw.bb31 - %shr.i.i2103 = ashr i32 %insn, 20 - store i32 %shr.i.i2103, ptr %u, align 4 - %shr.i5.i2104 = lshr i32 %insn, 7 - %and.i.i2105 = and i32 %shr.i5.i2104, 31 - %rd.i2106 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2105, ptr %rd.i2106, align 4 - %shr.i6.i2107 = lshr i32 %insn, 15 - %and.i7.i2108 = and i32 %shr.i6.i2107, 31 - %rs1.i2109 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2108, ptr %rs1.i2109, align 4 + %shr.i.i2085 = ashr i32 %insn, 20 + store i32 %shr.i.i2085, ptr %u, align 4 + %shr.i5.i2086 = lshr i32 %insn, 7 + %and.i.i2087 = and i32 %shr.i5.i2086, 31 + %rd.i2088 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2087, ptr %rd.i2088, align 4 + %shr.i6.i2089 = lshr i32 %insn, 15 + %and.i7.i2090 = and i32 %shr.i6.i2089, 31 + %rs1.i2091 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2090, ptr %rs1.i2091, align 4 %call88 = call fastcc zeroext i1 @trans_flh(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call88, label %return, label %sw.epilog3868 sw.bb91: ; preds = %sw.bb31 - %shr.i.i2110 = ashr i32 %insn, 20 - store i32 %shr.i.i2110, ptr %u, align 4 - %shr.i5.i2111 = lshr i32 %insn, 7 - %and.i.i2112 = and i32 %shr.i5.i2111, 31 - %rd.i2113 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2112, ptr %rd.i2113, align 4 - %shr.i6.i2114 = lshr i32 %insn, 15 - %and.i7.i2115 = and i32 %shr.i6.i2114, 31 - %rs1.i2116 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2115, ptr %rs1.i2116, align 4 + %shr.i.i2092 = ashr i32 %insn, 20 + store i32 %shr.i.i2092, ptr %u, align 4 + %shr.i5.i2093 = lshr i32 %insn, 7 + %and.i.i2094 = and i32 %shr.i5.i2093, 31 + %rd.i2095 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2094, ptr %rd.i2095, align 4 + %shr.i6.i2096 = lshr i32 %insn, 15 + %and.i7.i2097 = and i32 %shr.i6.i2096, 31 + %rs1.i2098 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2097, ptr %rs1.i2098, align 4 %call92 = call fastcc zeroext i1 @trans_flw(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call92, label %return, label %sw.epilog3868 sw.bb95: ; preds = %sw.bb31 - %shr.i.i2117 = ashr i32 %insn, 20 - store i32 %shr.i.i2117, ptr %u, align 4 - %shr.i5.i2118 = lshr i32 %insn, 7 - %and.i.i2119 = and i32 %shr.i5.i2118, 31 - %rd.i2120 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2119, ptr %rd.i2120, align 4 - %shr.i6.i2121 = lshr i32 %insn, 15 - %and.i7.i2122 = and i32 %shr.i6.i2121, 31 - %rs1.i2123 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2122, ptr %rs1.i2123, align 4 + %shr.i.i2099 = ashr i32 %insn, 20 + store i32 %shr.i.i2099, ptr %u, align 4 + %shr.i5.i2100 = lshr i32 %insn, 7 + %and.i.i2101 = and i32 %shr.i5.i2100, 31 + %rd.i2102 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2101, ptr %rd.i2102, align 4 + %shr.i6.i2103 = lshr i32 %insn, 15 + %and.i7.i2104 = and i32 %shr.i6.i2103, 31 + %rs1.i2105 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2104, ptr %rs1.i2105, align 4 %call96 = call fastcc zeroext i1 @trans_fld(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call96, label %return, label %sw.epilog3868 @@ -7116,29 +7115,29 @@ sw.bb104: ; preds = %sw.bb101 ] sw.bb107: ; preds = %sw.bb104 - %shr.i.i2124 = lshr i32 %insn, 15 - %and.i.i2125 = and i32 %shr.i.i2124, 31 - %rs1.i2126 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2125, ptr %rs1.i2126, align 4 - %shr.i7.i2127 = lshr i32 %insn, 25 - %and.i8.i2128 = and i32 %shr.i7.i2127, 1 - store i32 %and.i8.i2128, ptr %u, align 4 - %shr.i9.i2129 = lshr i32 %insn, 7 - %and.i10.i2130 = and i32 %shr.i9.i2129, 31 - %rd.i2131 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2130, ptr %rd.i2131, align 4 - %shr.i11.i2132 = lshr i32 %insn, 29 - %add.i.i2133 = add nuw nsw i32 %shr.i11.i2132, 1 - %nf.i2134 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2133, ptr %nf.i2134, align 4 + %shr.i.i2106 = lshr i32 %insn, 15 + %and.i.i2107 = and i32 %shr.i.i2106, 31 + %rs1.i2108 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2107, ptr %rs1.i2108, align 4 + %shr.i7.i2109 = lshr i32 %insn, 25 + %and.i8.i2110 = and i32 %shr.i7.i2109, 1 + store i32 %and.i8.i2110, ptr %u, align 4 + %shr.i9.i2111 = lshr i32 %insn, 7 + %and.i10.i2112 = and i32 %shr.i9.i2111, 31 + %rd.i2113 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2112, ptr %rd.i2113, align 4 + %shr.i11.i2114 = lshr i32 %insn, 29 + %add.i.i2115 = add nuw nsw i32 %shr.i11.i2114, 1 + %nf.i2116 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2115, ptr %nf.i2116, align 4 %call108 = call fastcc zeroext i1 @trans_vle16_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call108, label %return, label %sw.epilog3868 sw.bb111: ; preds = %sw.bb104 - %shr.i.i2135 = lshr i32 %insn, 7 - %and.i.i2136 = and i32 %shr.i.i2135, 31 - %shr.i3.i2137 = lshr i32 %insn, 15 - %and.i4.i2138 = and i32 %shr.i3.i2137, 31 + %shr.i.i2117 = lshr i32 %insn, 7 + %and.i.i2118 = and i32 %shr.i.i2117, 31 + %shr.i3.i2119 = lshr i32 %insn, 15 + %and.i4.i2120 = and i32 %shr.i3.i2119, 31 %and112 = and i32 %insn, -503316480 %7 = add i32 %and112, 503316480 %8 = tail call i32 @llvm.fshl.i32(i32 %7, i32 %7, i32 3) @@ -7151,88 +7150,88 @@ sw.bb111: ; preds = %sw.bb104 sw.bb113: ; preds = %sw.bb111 %9 = getelementptr i8, ptr %ctx, i64 104 - %s.val.i2140 = load i32, ptr %9, align 8 - %cmp.i.i2141.not = icmp eq i32 %s.val.i2140, 0 - br i1 %cmp.i.i2141.not, label %sw.epilog3868, label %trans_vl1re16_v.exit.thread + %s.val.i2122 = load i32, ptr %9, align 8 + %cmp.i.i2123.not = icmp eq i32 %s.val.i2122, 0 + br i1 %cmp.i.i2123.not, label %sw.epilog3868, label %trans_vl1re16_v.exit.thread trans_vl1re16_v.exit.thread: ; preds = %sw.bb113 - tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2136, i32 noundef %and.i4.i2138, i32 noundef 1, i32 noundef 2, ptr noundef nonnull @gen_helper_vl1re16_v, ptr noundef nonnull %ctx) + tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2118, i32 noundef %and.i4.i2120, i32 noundef 1, i32 noundef 2, ptr noundef nonnull @gen_helper_vl1re16_v, ptr noundef nonnull %ctx) br label %return sw.bb117: ; preds = %sw.bb111 - %call118 = tail call fastcc zeroext i1 @trans_vl2re16_v(ptr noundef %ctx, i32 %and.i.i2136, i32 %and.i4.i2138) + %call118 = tail call fastcc zeroext i1 @trans_vl2re16_v(ptr noundef %ctx, i32 %and.i.i2118, i32 %and.i4.i2120) br i1 %call118, label %return, label %sw.epilog3868 sw.bb121: ; preds = %sw.bb111 - %call122 = tail call fastcc zeroext i1 @trans_vl4re16_v(ptr noundef %ctx, i32 %and.i.i2136, i32 %and.i4.i2138) + %call122 = tail call fastcc zeroext i1 @trans_vl4re16_v(ptr noundef %ctx, i32 %and.i.i2118, i32 %and.i4.i2120) br i1 %call122, label %return, label %sw.epilog3868 sw.bb125: ; preds = %sw.bb111 - %call126 = tail call fastcc zeroext i1 @trans_vl8re16_v(ptr noundef %ctx, i32 %and.i.i2136, i32 %and.i4.i2138) + %call126 = tail call fastcc zeroext i1 @trans_vl8re16_v(ptr noundef %ctx, i32 %and.i.i2118, i32 %and.i4.i2120) br i1 %call126, label %return, label %sw.epilog3868 sw.bb130: ; preds = %sw.bb104 - %shr.i.i2144 = lshr i32 %insn, 15 - %and.i.i2145 = and i32 %shr.i.i2144, 31 - %rs1.i2146 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2145, ptr %rs1.i2146, align 4 - %shr.i7.i2147 = lshr i32 %insn, 25 - %and.i8.i2148 = and i32 %shr.i7.i2147, 1 - store i32 %and.i8.i2148, ptr %u, align 4 - %shr.i9.i2149 = lshr i32 %insn, 7 - %and.i10.i2150 = and i32 %shr.i9.i2149, 31 - %rd.i2151 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2150, ptr %rd.i2151, align 4 - %shr.i11.i2152 = lshr i32 %insn, 29 - %add.i.i2153 = add nuw nsw i32 %shr.i11.i2152, 1 - %nf.i2154 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2153, ptr %nf.i2154, align 4 + %shr.i.i2126 = lshr i32 %insn, 15 + %and.i.i2127 = and i32 %shr.i.i2126, 31 + %rs1.i2128 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2127, ptr %rs1.i2128, align 4 + %shr.i7.i2129 = lshr i32 %insn, 25 + %and.i8.i2130 = and i32 %shr.i7.i2129, 1 + store i32 %and.i8.i2130, ptr %u, align 4 + %shr.i9.i2131 = lshr i32 %insn, 7 + %and.i10.i2132 = and i32 %shr.i9.i2131, 31 + %rd.i2133 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2132, ptr %rd.i2133, align 4 + %shr.i11.i2134 = lshr i32 %insn, 29 + %add.i.i2135 = add nuw nsw i32 %shr.i11.i2134, 1 + %nf.i2136 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2135, ptr %nf.i2136, align 4 %call131 = call fastcc zeroext i1 @trans_vle16ff_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call131, label %return, label %sw.epilog3868 sw.bb135: ; preds = %sw.bb101 - %shr.i.i2155 = lshr i32 %insn, 7 - %and.i.i2156 = and i32 %shr.i.i2155, 31 - %rd.i2157 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2156, ptr %rd.i2157, align 4 - %shr.i9.i2158 = lshr i32 %insn, 25 - %and.i10.i2159 = and i32 %shr.i9.i2158, 1 - store i32 %and.i10.i2159, ptr %u, align 4 - %shr.i11.i2160 = lshr i32 %insn, 29 - %add.i.i2161 = add nuw nsw i32 %shr.i11.i2160, 1 - %nf.i2162 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2161, ptr %nf.i2162, align 4 - %shr.i12.i2163 = lshr i32 %insn, 15 - %and.i13.i2164 = and i32 %shr.i12.i2163, 31 - %rs1.i2165 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2164, ptr %rs1.i2165, align 4 - %shr.i14.i2166 = lshr i32 %insn, 20 - %and.i15.i2167 = and i32 %shr.i14.i2166, 31 - %rs2.i2168 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2167, ptr %rs2.i2168, align 4 + %shr.i.i2137 = lshr i32 %insn, 7 + %and.i.i2138 = and i32 %shr.i.i2137, 31 + %rd.i2139 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2138, ptr %rd.i2139, align 4 + %shr.i9.i2140 = lshr i32 %insn, 25 + %and.i10.i2141 = and i32 %shr.i9.i2140, 1 + store i32 %and.i10.i2141, ptr %u, align 4 + %shr.i11.i2142 = lshr i32 %insn, 29 + %add.i.i2143 = add nuw nsw i32 %shr.i11.i2142, 1 + %nf.i2144 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2143, ptr %nf.i2144, align 4 + %shr.i12.i2145 = lshr i32 %insn, 15 + %and.i13.i2146 = and i32 %shr.i12.i2145, 31 + %rs1.i2147 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2146, ptr %rs1.i2147, align 4 + %shr.i14.i2148 = lshr i32 %insn, 20 + %and.i15.i2149 = and i32 %shr.i14.i2148, 31 + %rs2.i2150 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2149, ptr %rs2.i2150, align 4 %call136 = call fastcc zeroext i1 @trans_vlse16_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call136, label %return, label %sw.epilog3868 sw.bb140: ; preds = %sw.bb99 - %shr.i.i2169 = lshr i32 %insn, 7 - %and.i.i2170 = and i32 %shr.i.i2169, 31 - %rd.i2171 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2170, ptr %rd.i2171, align 4 - %shr.i9.i2172 = lshr i32 %insn, 25 - %and.i10.i2173 = and i32 %shr.i9.i2172, 1 - store i32 %and.i10.i2173, ptr %u, align 4 - %shr.i11.i2174 = lshr i32 %insn, 29 - %add.i.i2175 = add nuw nsw i32 %shr.i11.i2174, 1 - %nf.i2176 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2175, ptr %nf.i2176, align 4 - %shr.i12.i2177 = lshr i32 %insn, 15 - %and.i13.i2178 = and i32 %shr.i12.i2177, 31 - %rs1.i2179 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2178, ptr %rs1.i2179, align 4 - %shr.i14.i2180 = lshr i32 %insn, 20 - %and.i15.i2181 = and i32 %shr.i14.i2180, 31 - %rs2.i2182 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2181, ptr %rs2.i2182, align 4 + %shr.i.i2151 = lshr i32 %insn, 7 + %and.i.i2152 = and i32 %shr.i.i2151, 31 + %rd.i2153 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2152, ptr %rd.i2153, align 4 + %shr.i9.i2154 = lshr i32 %insn, 25 + %and.i10.i2155 = and i32 %shr.i9.i2154, 1 + store i32 %and.i10.i2155, ptr %u, align 4 + %shr.i11.i2156 = lshr i32 %insn, 29 + %add.i.i2157 = add nuw nsw i32 %shr.i11.i2156, 1 + %nf.i2158 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2157, ptr %nf.i2158, align 4 + %shr.i12.i2159 = lshr i32 %insn, 15 + %and.i13.i2160 = and i32 %shr.i12.i2159, 31 + %rs1.i2161 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2160, ptr %rs1.i2161, align 4 + %shr.i14.i2162 = lshr i32 %insn, 20 + %and.i15.i2163 = and i32 %shr.i14.i2162, 31 + %rs2.i2164 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2163, ptr %rs2.i2164, align 4 %call141 = call fastcc zeroext i1 @trans_vlxei16_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call141, label %return, label %sw.epilog3868 @@ -7258,29 +7257,29 @@ sw.bb150: ; preds = %sw.bb147 ] sw.bb153: ; preds = %sw.bb150 - %shr.i.i2183 = lshr i32 %insn, 15 - %and.i.i2184 = and i32 %shr.i.i2183, 31 - %rs1.i2185 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2184, ptr %rs1.i2185, align 4 - %shr.i7.i2186 = lshr i32 %insn, 25 - %and.i8.i2187 = and i32 %shr.i7.i2186, 1 - store i32 %and.i8.i2187, ptr %u, align 4 - %shr.i9.i2188 = lshr i32 %insn, 7 - %and.i10.i2189 = and i32 %shr.i9.i2188, 31 - %rd.i2190 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2189, ptr %rd.i2190, align 4 - %shr.i11.i2191 = lshr i32 %insn, 29 - %add.i.i2192 = add nuw nsw i32 %shr.i11.i2191, 1 - %nf.i2193 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2192, ptr %nf.i2193, align 4 + %shr.i.i2165 = lshr i32 %insn, 15 + %and.i.i2166 = and i32 %shr.i.i2165, 31 + %rs1.i2167 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2166, ptr %rs1.i2167, align 4 + %shr.i7.i2168 = lshr i32 %insn, 25 + %and.i8.i2169 = and i32 %shr.i7.i2168, 1 + store i32 %and.i8.i2169, ptr %u, align 4 + %shr.i9.i2170 = lshr i32 %insn, 7 + %and.i10.i2171 = and i32 %shr.i9.i2170, 31 + %rd.i2172 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2171, ptr %rd.i2172, align 4 + %shr.i11.i2173 = lshr i32 %insn, 29 + %add.i.i2174 = add nuw nsw i32 %shr.i11.i2173, 1 + %nf.i2175 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2174, ptr %nf.i2175, align 4 %call154 = call fastcc zeroext i1 @trans_vle32_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call154, label %return, label %sw.epilog3868 sw.bb157: ; preds = %sw.bb150 - %shr.i.i2194 = lshr i32 %insn, 7 - %and.i.i2195 = and i32 %shr.i.i2194, 31 - %shr.i3.i2196 = lshr i32 %insn, 15 - %and.i4.i2197 = and i32 %shr.i3.i2196, 31 + %shr.i.i2176 = lshr i32 %insn, 7 + %and.i.i2177 = and i32 %shr.i.i2176, 31 + %shr.i3.i2178 = lshr i32 %insn, 15 + %and.i4.i2179 = and i32 %shr.i3.i2178, 31 %and158 = and i32 %insn, -503316480 %11 = add i32 %and158, 503316480 %12 = tail call i32 @llvm.fshl.i32(i32 %11, i32 %11, i32 3) @@ -7293,88 +7292,88 @@ sw.bb157: ; preds = %sw.bb150 sw.bb159: ; preds = %sw.bb157 %13 = getelementptr i8, ptr %ctx, i64 104 - %s.val.i2199 = load i32, ptr %13, align 8 - %cmp.i.i2200.not = icmp eq i32 %s.val.i2199, 0 - br i1 %cmp.i.i2200.not, label %sw.epilog3868, label %trans_vl1re32_v.exit.thread + %s.val.i2181 = load i32, ptr %13, align 8 + %cmp.i.i2182.not = icmp eq i32 %s.val.i2181, 0 + br i1 %cmp.i.i2182.not, label %sw.epilog3868, label %trans_vl1re32_v.exit.thread trans_vl1re32_v.exit.thread: ; preds = %sw.bb159 - tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2195, i32 noundef %and.i4.i2197, i32 noundef 1, i32 noundef 4, ptr noundef nonnull @gen_helper_vl1re32_v, ptr noundef nonnull %ctx) + tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2177, i32 noundef %and.i4.i2179, i32 noundef 1, i32 noundef 4, ptr noundef nonnull @gen_helper_vl1re32_v, ptr noundef nonnull %ctx) br label %return sw.bb163: ; preds = %sw.bb157 - %call164 = tail call fastcc zeroext i1 @trans_vl2re32_v(ptr noundef %ctx, i32 %and.i.i2195, i32 %and.i4.i2197) + %call164 = tail call fastcc zeroext i1 @trans_vl2re32_v(ptr noundef %ctx, i32 %and.i.i2177, i32 %and.i4.i2179) br i1 %call164, label %return, label %sw.epilog3868 sw.bb167: ; preds = %sw.bb157 - %call168 = tail call fastcc zeroext i1 @trans_vl4re32_v(ptr noundef %ctx, i32 %and.i.i2195, i32 %and.i4.i2197) + %call168 = tail call fastcc zeroext i1 @trans_vl4re32_v(ptr noundef %ctx, i32 %and.i.i2177, i32 %and.i4.i2179) br i1 %call168, label %return, label %sw.epilog3868 sw.bb171: ; preds = %sw.bb157 - %call172 = tail call fastcc zeroext i1 @trans_vl8re32_v(ptr noundef %ctx, i32 %and.i.i2195, i32 %and.i4.i2197) + %call172 = tail call fastcc zeroext i1 @trans_vl8re32_v(ptr noundef %ctx, i32 %and.i.i2177, i32 %and.i4.i2179) br i1 %call172, label %return, label %sw.epilog3868 sw.bb176: ; preds = %sw.bb150 - %shr.i.i2203 = lshr i32 %insn, 15 - %and.i.i2204 = and i32 %shr.i.i2203, 31 - %rs1.i2205 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2204, ptr %rs1.i2205, align 4 - %shr.i7.i2206 = lshr i32 %insn, 25 - %and.i8.i2207 = and i32 %shr.i7.i2206, 1 - store i32 %and.i8.i2207, ptr %u, align 4 - %shr.i9.i2208 = lshr i32 %insn, 7 - %and.i10.i2209 = and i32 %shr.i9.i2208, 31 - %rd.i2210 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2209, ptr %rd.i2210, align 4 - %shr.i11.i2211 = lshr i32 %insn, 29 - %add.i.i2212 = add nuw nsw i32 %shr.i11.i2211, 1 - %nf.i2213 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2212, ptr %nf.i2213, align 4 + %shr.i.i2185 = lshr i32 %insn, 15 + %and.i.i2186 = and i32 %shr.i.i2185, 31 + %rs1.i2187 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2186, ptr %rs1.i2187, align 4 + %shr.i7.i2188 = lshr i32 %insn, 25 + %and.i8.i2189 = and i32 %shr.i7.i2188, 1 + store i32 %and.i8.i2189, ptr %u, align 4 + %shr.i9.i2190 = lshr i32 %insn, 7 + %and.i10.i2191 = and i32 %shr.i9.i2190, 31 + %rd.i2192 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2191, ptr %rd.i2192, align 4 + %shr.i11.i2193 = lshr i32 %insn, 29 + %add.i.i2194 = add nuw nsw i32 %shr.i11.i2193, 1 + %nf.i2195 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2194, ptr %nf.i2195, align 4 %call177 = call fastcc zeroext i1 @trans_vle32ff_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call177, label %return, label %sw.epilog3868 sw.bb181: ; preds = %sw.bb147 - %shr.i.i2214 = lshr i32 %insn, 7 - %and.i.i2215 = and i32 %shr.i.i2214, 31 - %rd.i2216 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2215, ptr %rd.i2216, align 4 - %shr.i9.i2217 = lshr i32 %insn, 25 - %and.i10.i2218 = and i32 %shr.i9.i2217, 1 - store i32 %and.i10.i2218, ptr %u, align 4 - %shr.i11.i2219 = lshr i32 %insn, 29 - %add.i.i2220 = add nuw nsw i32 %shr.i11.i2219, 1 - %nf.i2221 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2220, ptr %nf.i2221, align 4 - %shr.i12.i2222 = lshr i32 %insn, 15 - %and.i13.i2223 = and i32 %shr.i12.i2222, 31 - %rs1.i2224 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2223, ptr %rs1.i2224, align 4 - %shr.i14.i2225 = lshr i32 %insn, 20 - %and.i15.i2226 = and i32 %shr.i14.i2225, 31 - %rs2.i2227 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2226, ptr %rs2.i2227, align 4 + %shr.i.i2196 = lshr i32 %insn, 7 + %and.i.i2197 = and i32 %shr.i.i2196, 31 + %rd.i2198 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2197, ptr %rd.i2198, align 4 + %shr.i9.i2199 = lshr i32 %insn, 25 + %and.i10.i2200 = and i32 %shr.i9.i2199, 1 + store i32 %and.i10.i2200, ptr %u, align 4 + %shr.i11.i2201 = lshr i32 %insn, 29 + %add.i.i2202 = add nuw nsw i32 %shr.i11.i2201, 1 + %nf.i2203 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2202, ptr %nf.i2203, align 4 + %shr.i12.i2204 = lshr i32 %insn, 15 + %and.i13.i2205 = and i32 %shr.i12.i2204, 31 + %rs1.i2206 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2205, ptr %rs1.i2206, align 4 + %shr.i14.i2207 = lshr i32 %insn, 20 + %and.i15.i2208 = and i32 %shr.i14.i2207, 31 + %rs2.i2209 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2208, ptr %rs2.i2209, align 4 %call182 = call fastcc zeroext i1 @trans_vlse32_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call182, label %return, label %sw.epilog3868 sw.bb186: ; preds = %sw.bb145 - %shr.i.i2228 = lshr i32 %insn, 7 - %and.i.i2229 = and i32 %shr.i.i2228, 31 - %rd.i2230 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2229, ptr %rd.i2230, align 4 - %shr.i9.i2231 = lshr i32 %insn, 25 - %and.i10.i2232 = and i32 %shr.i9.i2231, 1 - store i32 %and.i10.i2232, ptr %u, align 4 - %shr.i11.i2233 = lshr i32 %insn, 29 - %add.i.i2234 = add nuw nsw i32 %shr.i11.i2233, 1 - %nf.i2235 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2234, ptr %nf.i2235, align 4 - %shr.i12.i2236 = lshr i32 %insn, 15 - %and.i13.i2237 = and i32 %shr.i12.i2236, 31 - %rs1.i2238 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2237, ptr %rs1.i2238, align 4 - %shr.i14.i2239 = lshr i32 %insn, 20 - %and.i15.i2240 = and i32 %shr.i14.i2239, 31 - %rs2.i2241 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2240, ptr %rs2.i2241, align 4 + %shr.i.i2210 = lshr i32 %insn, 7 + %and.i.i2211 = and i32 %shr.i.i2210, 31 + %rd.i2212 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2211, ptr %rd.i2212, align 4 + %shr.i9.i2213 = lshr i32 %insn, 25 + %and.i10.i2214 = and i32 %shr.i9.i2213, 1 + store i32 %and.i10.i2214, ptr %u, align 4 + %shr.i11.i2215 = lshr i32 %insn, 29 + %add.i.i2216 = add nuw nsw i32 %shr.i11.i2215, 1 + %nf.i2217 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2216, ptr %nf.i2217, align 4 + %shr.i12.i2218 = lshr i32 %insn, 15 + %and.i13.i2219 = and i32 %shr.i12.i2218, 31 + %rs1.i2220 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2219, ptr %rs1.i2220, align 4 + %shr.i14.i2221 = lshr i32 %insn, 20 + %and.i15.i2222 = and i32 %shr.i14.i2221, 31 + %rs2.i2223 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2222, ptr %rs2.i2223, align 4 %call187 = call fastcc zeroext i1 @trans_vlxei32_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call187, label %return, label %sw.epilog3868 @@ -7400,29 +7399,29 @@ sw.bb196: ; preds = %sw.bb193 ] sw.bb199: ; preds = %sw.bb196 - %shr.i.i2242 = lshr i32 %insn, 15 - %and.i.i2243 = and i32 %shr.i.i2242, 31 - %rs1.i2244 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2243, ptr %rs1.i2244, align 4 - %shr.i7.i2245 = lshr i32 %insn, 25 - %and.i8.i2246 = and i32 %shr.i7.i2245, 1 - store i32 %and.i8.i2246, ptr %u, align 4 - %shr.i9.i2247 = lshr i32 %insn, 7 - %and.i10.i2248 = and i32 %shr.i9.i2247, 31 - %rd.i2249 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2248, ptr %rd.i2249, align 4 - %shr.i11.i2250 = lshr i32 %insn, 29 - %add.i.i2251 = add nuw nsw i32 %shr.i11.i2250, 1 - %nf.i2252 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2251, ptr %nf.i2252, align 4 + %shr.i.i2224 = lshr i32 %insn, 15 + %and.i.i2225 = and i32 %shr.i.i2224, 31 + %rs1.i2226 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2225, ptr %rs1.i2226, align 4 + %shr.i7.i2227 = lshr i32 %insn, 25 + %and.i8.i2228 = and i32 %shr.i7.i2227, 1 + store i32 %and.i8.i2228, ptr %u, align 4 + %shr.i9.i2229 = lshr i32 %insn, 7 + %and.i10.i2230 = and i32 %shr.i9.i2229, 31 + %rd.i2231 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2230, ptr %rd.i2231, align 4 + %shr.i11.i2232 = lshr i32 %insn, 29 + %add.i.i2233 = add nuw nsw i32 %shr.i11.i2232, 1 + %nf.i2234 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2233, ptr %nf.i2234, align 4 %call200 = call fastcc zeroext i1 @trans_vle64_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call200, label %return, label %sw.epilog3868 sw.bb203: ; preds = %sw.bb196 - %shr.i.i2253 = lshr i32 %insn, 7 - %and.i.i2254 = and i32 %shr.i.i2253, 31 - %shr.i3.i2255 = lshr i32 %insn, 15 - %and.i4.i2256 = and i32 %shr.i3.i2255, 31 + %shr.i.i2235 = lshr i32 %insn, 7 + %and.i.i2236 = and i32 %shr.i.i2235, 31 + %shr.i3.i2237 = lshr i32 %insn, 15 + %and.i4.i2238 = and i32 %shr.i3.i2237, 31 %and204 = and i32 %insn, -503316480 %15 = add i32 %and204, 503316480 %16 = tail call i32 @llvm.fshl.i32(i32 %15, i32 %15, i32 3) @@ -7435,94 +7434,91 @@ sw.bb203: ; preds = %sw.bb196 sw.bb205: ; preds = %sw.bb203 %17 = getelementptr i8, ptr %ctx, i64 104 - %s.val.i2258 = load i32, ptr %17, align 8 - %cmp.i.i2259.not = icmp eq i32 %s.val.i2258, 0 - br i1 %cmp.i.i2259.not, label %sw.epilog3868, label %trans_vl1re64_v.exit.thread + %s.val.i2240 = load i32, ptr %17, align 8 + %cmp.i.i2241.not = icmp eq i32 %s.val.i2240, 0 + br i1 %cmp.i.i2241.not, label %sw.epilog3868, label %trans_vl1re64_v.exit.thread trans_vl1re64_v.exit.thread: ; preds = %sw.bb205 - tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2254, i32 noundef %and.i4.i2256, i32 noundef 1, i32 noundef 8, ptr noundef nonnull @gen_helper_vl1re64_v, ptr noundef nonnull %ctx) + tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2236, i32 noundef %and.i4.i2238, i32 noundef 1, i32 noundef 8, ptr noundef nonnull @gen_helper_vl1re64_v, ptr noundef nonnull %ctx) br label %return sw.bb209: ; preds = %sw.bb203 - %call210 = tail call fastcc zeroext i1 @trans_vl2re64_v(ptr noundef %ctx, i32 %and.i.i2254, i32 %and.i4.i2256) + %call210 = tail call fastcc zeroext i1 @trans_vl2re64_v(ptr noundef %ctx, i32 %and.i.i2236, i32 %and.i4.i2238) br i1 %call210, label %return, label %sw.epilog3868 sw.bb213: ; preds = %sw.bb203 - %call214 = tail call fastcc zeroext i1 @trans_vl4re64_v(ptr noundef %ctx, i32 %and.i.i2254, i32 %and.i4.i2256) + %call214 = tail call fastcc zeroext i1 @trans_vl4re64_v(ptr noundef %ctx, i32 %and.i.i2236, i32 %and.i4.i2238) br i1 %call214, label %return, label %sw.epilog3868 sw.bb217: ; preds = %sw.bb203 - %call218 = tail call fastcc zeroext i1 @trans_vl8re64_v(ptr noundef %ctx, i32 %and.i.i2254, i32 %and.i4.i2256) + %call218 = tail call fastcc zeroext i1 @trans_vl8re64_v(ptr noundef %ctx, i32 %and.i.i2236, i32 %and.i4.i2238) br i1 %call218, label %return, label %sw.epilog3868 sw.bb222: ; preds = %sw.bb196 - %shr.i.i2262 = lshr i32 %insn, 15 - %and.i.i2263 = and i32 %shr.i.i2262, 31 - %rs1.i2264 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2263, ptr %rs1.i2264, align 4 - %shr.i7.i2265 = lshr i32 %insn, 25 - %and.i8.i2266 = and i32 %shr.i7.i2265, 1 - store i32 %and.i8.i2266, ptr %u, align 4 - %shr.i9.i2267 = lshr i32 %insn, 7 - %and.i10.i2268 = and i32 %shr.i9.i2267, 31 - %rd.i2269 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2268, ptr %rd.i2269, align 4 - %shr.i11.i2270 = lshr i32 %insn, 29 - %add.i.i2271 = add nuw nsw i32 %shr.i11.i2270, 1 - %nf.i2272 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2271, ptr %nf.i2272, align 4 + %shr.i.i2244 = lshr i32 %insn, 15 + %and.i.i2245 = and i32 %shr.i.i2244, 31 + %rs1.i2246 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2245, ptr %rs1.i2246, align 4 + %shr.i7.i2247 = lshr i32 %insn, 25 + %and.i8.i2248 = and i32 %shr.i7.i2247, 1 + store i32 %and.i8.i2248, ptr %u, align 4 + %shr.i9.i2249 = lshr i32 %insn, 7 + %and.i10.i2250 = and i32 %shr.i9.i2249, 31 + %rd.i2251 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2250, ptr %rd.i2251, align 4 + %shr.i11.i2252 = lshr i32 %insn, 29 + %add.i.i2253 = add nuw nsw i32 %shr.i11.i2252, 1 + %nf.i2254 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2253, ptr %nf.i2254, align 4 %call223 = call fastcc zeroext i1 @trans_vle64ff_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call223, label %return, label %sw.epilog3868 sw.bb227: ; preds = %sw.bb193 - %shr.i.i2273 = lshr i32 %insn, 7 - %and.i.i2274 = and i32 %shr.i.i2273, 31 - %rd.i2275 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2274, ptr %rd.i2275, align 4 - %shr.i9.i2276 = lshr i32 %insn, 25 - %and.i10.i2277 = and i32 %shr.i9.i2276, 1 - store i32 %and.i10.i2277, ptr %u, align 4 - %shr.i11.i2278 = lshr i32 %insn, 29 - %add.i.i2279 = add nuw nsw i32 %shr.i11.i2278, 1 - %nf.i2280 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2279, ptr %nf.i2280, align 4 - %shr.i12.i2281 = lshr i32 %insn, 15 - %and.i13.i2282 = and i32 %shr.i12.i2281, 31 - %rs1.i2283 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2282, ptr %rs1.i2283, align 4 - %shr.i14.i2284 = lshr i32 %insn, 20 - %and.i15.i2285 = and i32 %shr.i14.i2284, 31 - %rs2.i2286 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2285, ptr %rs2.i2286, align 4 + %shr.i.i2255 = lshr i32 %insn, 7 + %and.i.i2256 = and i32 %shr.i.i2255, 31 + %rd.i2257 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2256, ptr %rd.i2257, align 4 + %shr.i9.i2258 = lshr i32 %insn, 25 + %and.i10.i2259 = and i32 %shr.i9.i2258, 1 + store i32 %and.i10.i2259, ptr %u, align 4 + %shr.i11.i2260 = lshr i32 %insn, 29 + %add.i.i2261 = add nuw nsw i32 %shr.i11.i2260, 1 + %nf.i2262 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2261, ptr %nf.i2262, align 4 + %shr.i12.i2263 = lshr i32 %insn, 15 + %and.i13.i2264 = and i32 %shr.i12.i2263, 31 + %rs1.i2265 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2264, ptr %rs1.i2265, align 4 + %shr.i14.i2266 = lshr i32 %insn, 20 + %and.i15.i2267 = and i32 %shr.i14.i2266, 31 + %rs2.i2268 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2267, ptr %rs2.i2268, align 4 %call228 = call fastcc zeroext i1 @trans_vlse64_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call228, label %return, label %sw.epilog3868 sw.bb232: ; preds = %sw.bb191 - %shr.i.i2287 = lshr i32 %insn, 7 - %and.i.i2288 = and i32 %shr.i.i2287, 31 - %rd.i2289 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2288, ptr %rd.i2289, align 4 - %shr.i9.i2290 = lshr i32 %insn, 25 - %and.i10.i2291 = and i32 %shr.i9.i2290, 1 - store i32 %and.i10.i2291, ptr %u, align 4 - %shr.i11.i2292 = lshr i32 %insn, 29 - %add.i.i2293 = add nuw nsw i32 %shr.i11.i2292, 1 - %nf.i2294 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2293, ptr %nf.i2294, align 4 - %shr.i12.i2295 = lshr i32 %insn, 15 - %and.i13.i2296 = and i32 %shr.i12.i2295, 31 - %rs1.i2297 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2296, ptr %rs1.i2297, align 4 - %shr.i14.i2298 = lshr i32 %insn, 20 - %and.i15.i2299 = and i32 %shr.i14.i2298, 31 - %rs2.i2300 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2299, ptr %rs2.i2300, align 4 + %shr.i.i2269 = lshr i32 %insn, 7 + %and.i.i2270 = and i32 %shr.i.i2269, 31 + %rd.i2271 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2270, ptr %rd.i2271, align 4 + %shr.i9.i2272 = lshr i32 %insn, 25 + %and.i10.i2273 = and i32 %shr.i9.i2272, 1 + store i32 %and.i10.i2273, ptr %u, align 4 + %shr.i11.i2274 = lshr i32 %insn, 29 + %add.i.i2275 = add nuw nsw i32 %shr.i11.i2274, 1 + %nf.i2276 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2275, ptr %nf.i2276, align 4 + %shr.i12.i2277 = lshr i32 %insn, 15 + %and.i13.i2278 = and i32 %shr.i12.i2277, 31 + %rs1.i2279 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2278, ptr %rs1.i2279, align 4 + %shr.i14.i2280 = lshr i32 %insn, 20 + %and.i15.i2281 = and i32 %shr.i14.i2280, 31 + %rs2.i2282 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2281, ptr %rs2.i2282, align 4 %call233 = call fastcc zeroext i1 @trans_vlxei64_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call233, label %return, label %sw.epilog3868 -sw.bb31.unreachabledefault: ; preds = %sw.bb31 - unreachable - sw.bb238: ; preds = %entry %shr239 = lshr i32 %insn, 12 %and240 = and i32 %shr239, 7 @@ -7555,9 +7551,9 @@ sw.bb255: ; preds = %sw.bb238 br i1 %cmp257, label %if.then258, label %sw.epilog3868 if.then258: ; preds = %sw.bb255 - %shr.i.i2305 = lshr i32 %insn, 15 - %and.i.i2306 = and i32 %shr.i.i2305, 31 - store i32 %and.i.i2306, ptr %u, align 4 + %shr.i.i2287 = lshr i32 %insn, 15 + %and.i.i2288 = and i32 %shr.i.i2287, 31 + store i32 %and.i.i2288, ptr %u, align 4 %shr259 = lshr i32 %insn, 20 switch i32 %shr259, label %sw.epilog3868 [ i32 0, label %sw.bb261 @@ -7571,37 +7567,37 @@ sw.bb261: ; preds = %if.then258 %ctx.val = load ptr, ptr %18, align 8 %19 = getelementptr i8, ptr %ctx.val, i64 27 %ctx.val.val = load i8, ptr %19, align 1 - %call262 = tail call fastcc zeroext i1 @trans_cbo_inval(i8 %ctx.val.val, i32 %and.i.i2306) + %call262 = tail call fastcc zeroext i1 @trans_cbo_inval(i8 %ctx.val.val, i32 %and.i.i2288) br i1 %call262, label %return, label %sw.epilog3868 sw.bb265: ; preds = %if.then258 %20 = getelementptr i8, ptr %ctx, i64 128 - %ctx.val2016 = load ptr, ptr %20, align 8 - %21 = getelementptr i8, ptr %ctx.val2016, i64 27 - %ctx.val2016.val = load i8, ptr %21, align 1 - %call266 = tail call fastcc zeroext i1 @trans_cbo_clean(i8 %ctx.val2016.val, i32 %and.i.i2306) + %ctx.val1998 = load ptr, ptr %20, align 8 + %21 = getelementptr i8, ptr %ctx.val1998, i64 27 + %ctx.val1998.val = load i8, ptr %21, align 1 + %call266 = tail call fastcc zeroext i1 @trans_cbo_clean(i8 %ctx.val1998.val, i32 %and.i.i2288) br i1 %call266, label %return, label %sw.epilog3868 sw.bb269: ; preds = %if.then258 %22 = getelementptr i8, ptr %ctx, i64 128 - %ctx.val2018 = load ptr, ptr %22, align 8 - %23 = getelementptr i8, ptr %ctx.val2018, i64 27 - %ctx.val2018.val = load i8, ptr %23, align 1 - %call270 = tail call fastcc zeroext i1 @trans_cbo_flush(i8 %ctx.val2018.val, i32 %and.i.i2306) + %ctx.val2000 = load ptr, ptr %22, align 8 + %23 = getelementptr i8, ptr %ctx.val2000, i64 27 + %ctx.val2000.val = load i8, ptr %23, align 1 + %call270 = tail call fastcc zeroext i1 @trans_cbo_flush(i8 %ctx.val2000.val, i32 %and.i.i2288) br i1 %call270, label %return, label %sw.epilog3868 sw.bb273: ; preds = %if.then258 %24 = getelementptr i8, ptr %ctx, i64 128 - %ctx.val2020 = load ptr, ptr %24, align 8 - %25 = getelementptr i8, ptr %ctx.val2020, i64 28 - %ctx.val2020.val = load i8, ptr %25, align 4 - %call274 = tail call fastcc zeroext i1 @trans_cbo_zero(i8 %ctx.val2020.val, i32 %and.i.i2306) + %ctx.val2002 = load ptr, ptr %24, align 8 + %25 = getelementptr i8, ptr %ctx.val2002, i64 28 + %ctx.val2002.val = load i8, ptr %25, align 4 + %call274 = tail call fastcc zeroext i1 @trans_cbo_zero(i8 %ctx.val2002.val, i32 %and.i.i2288) br i1 %call274, label %return, label %sw.epilog3868 sw.bb283: ; preds = %entry %shr284 = lshr i32 %insn, 12 %and285 = and i32 %shr284, 7 - switch i32 %and285, label %sw.bb283.unreachabledefault [ + switch i32 %and285, label %default.unreachable6487 [ i32 0, label %sw.bb286 i32 1, label %sw.bb290 i32 2, label %sw.bb402 @@ -7613,18 +7609,18 @@ sw.bb283: ; preds = %entry ] sw.bb286: ; preds = %sw.bb283 - %shr.i.i2314 = ashr i32 %insn, 20 - store i32 %shr.i.i2314, ptr %u, align 4 - %shr.i5.i2315 = lshr i32 %insn, 7 - %and.i.i2316 = and i32 %shr.i5.i2315, 31 - %rd.i2317 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2316, ptr %rd.i2317, align 4 - %shr.i6.i2318 = lshr i32 %insn, 15 - %and.i7.i2319 = and i32 %shr.i6.i2318, 31 - %rs1.i2320 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2319, ptr %rs1.i2320, align 4 - %call.i2321 = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_addi2_i128) - br i1 %call.i2321, label %return, label %sw.epilog3868 + %shr.i.i2296 = ashr i32 %insn, 20 + store i32 %shr.i.i2296, ptr %u, align 4 + %shr.i5.i2297 = lshr i32 %insn, 7 + %and.i.i2298 = and i32 %shr.i5.i2297, 31 + %rd.i2299 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2298, ptr %rd.i2299, align 4 + %shr.i6.i2300 = lshr i32 %insn, 15 + %and.i7.i2301 = and i32 %shr.i6.i2300, 31 + %rs1.i2302 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2301, ptr %rs1.i2302, align 4 + %call.i2303 = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_addi2_i128) + br i1 %call.i2303, label %return, label %sw.epilog3868 sw.bb290: ; preds = %sw.bb283 %shr291 = lshr i32 %insn, 27 @@ -7639,28 +7635,28 @@ sw.bb290: ; preds = %sw.bb283 ] sw.bb293: ; preds = %sw.bb290 - %shr.i.i2322 = lshr i32 %insn, 20 - %and.i.i2323 = and i32 %shr.i.i2322, 127 - store i32 %and.i.i2323, ptr %u, align 4 - %shr.i5.i2324 = lshr i32 %insn, 7 - %and.i6.i = and i32 %shr.i5.i2324, 31 - %rd.i2325 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i, ptr %rd.i2325, align 4 - %shr.i7.i2326 = lshr i32 %insn, 15 - %and.i8.i2327 = and i32 %shr.i7.i2326, 31 - %rs1.i2328 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2327, ptr %rs1.i2328, align 4 + %shr.i.i2304 = lshr i32 %insn, 20 + %and.i.i2305 = and i32 %shr.i.i2304, 127 + store i32 %and.i.i2305, ptr %u, align 4 + %shr.i5.i2306 = lshr i32 %insn, 7 + %and.i6.i = and i32 %shr.i5.i2306, 31 + %rd.i2307 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i, ptr %rd.i2307, align 4 + %shr.i7.i2308 = lshr i32 %insn, 15 + %and.i8.i2309 = and i32 %shr.i7.i2308, 31 + %rs1.i2310 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2309, ptr %rs1.i2310, align 4 %call294 = call fastcc zeroext i1 @trans_slli(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call294, label %return, label %sw.epilog3868 sw.bb305: ; preds = %sw.bb290 - %shr.i.i2334 = lshr i32 %insn, 7 - %and.i.i2335 = and i32 %shr.i.i2334, 31 - store i32 %and.i.i2335, ptr %u, align 4 - %shr.i3.i2336 = lshr i32 %insn, 15 - %and.i4.i2337 = and i32 %shr.i3.i2336, 31 - %rs1.i2338 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i2337, ptr %rs1.i2338, align 4 + %shr.i.i2316 = lshr i32 %insn, 7 + %and.i.i2317 = and i32 %shr.i.i2316, 31 + store i32 %and.i.i2317, ptr %u, align 4 + %shr.i3.i2318 = lshr i32 %insn, 15 + %and.i4.i2319 = and i32 %shr.i3.i2318, 31 + %rs1.i2320 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i2319, ptr %rs1.i2320, align 4 %shr306 = lshr i32 %insn, 20 %and307 = and i32 %shr306, 127 switch i32 %and307, label %sw.epilog3868 [ @@ -7722,41 +7718,41 @@ trans_sm3p0.exit.thread: ; preds = %sw.bb340 br label %return sw.bb344: ; preds = %sw.bb305 - %cfg_ptr.i2340 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %29 = load ptr, ptr %cfg_ptr.i2340, align 8 - %ext_zksh.i2341 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %29, i64 0, i32 22 - %30 = load i8, ptr %ext_zksh.i2341, align 2 + %cfg_ptr.i2322 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %29 = load ptr, ptr %cfg_ptr.i2322, align 8 + %ext_zksh.i2323 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %29, i64 0, i32 22 + %30 = load i8, ptr %ext_zksh.i2323, align 2 %31 = and i8 %30, 1 - %tobool.not.i2342.not = icmp eq i8 %31, 0 - br i1 %tobool.not.i2342.not, label %sw.epilog3868, label %trans_sm3p1.exit.thread + %tobool.not.i2324.not = icmp eq i8 %31, 0 + br i1 %tobool.not.i2324.not, label %sw.epilog3868, label %trans_sm3p1.exit.thread trans_sm3p1.exit.thread: ; preds = %sw.bb344 call fastcc void @gen_sm3(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 15, i32 noundef 23) br label %return sw.bb349: ; preds = %sw.bb290 - %shr.i.i2345 = lshr i32 %insn, 20 - %and.i.i2346 = and i32 %shr.i.i2345, 127 - store i32 %and.i.i2346, ptr %u, align 4 - %shr.i5.i2347 = lshr i32 %insn, 7 - %and.i6.i2348 = and i32 %shr.i5.i2347, 31 - %rd.i2349 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2348, ptr %rd.i2349, align 4 - %shr.i7.i2350 = lshr i32 %insn, 15 - %and.i8.i2351 = and i32 %shr.i7.i2350, 31 - %rs1.i2352 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2351, ptr %rs1.i2352, align 4 - %cfg_ptr.i2353 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %32 = load ptr, ptr %cfg_ptr.i2353, align 8 + %shr.i.i2327 = lshr i32 %insn, 20 + %and.i.i2328 = and i32 %shr.i.i2327, 127 + store i32 %and.i.i2328, ptr %u, align 4 + %shr.i5.i2329 = lshr i32 %insn, 7 + %and.i6.i2330 = and i32 %shr.i5.i2329, 31 + %rd.i2331 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2330, ptr %rd.i2331, align 4 + %shr.i7.i2332 = lshr i32 %insn, 15 + %and.i8.i2333 = and i32 %shr.i7.i2332, 31 + %rs1.i2334 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2333, ptr %rs1.i2334, align 4 + %cfg_ptr.i2335 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %32 = load ptr, ptr %cfg_ptr.i2335, align 8 %ext_zbs.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %32, i64 0, i32 6 %33 = load i8, ptr %ext_zbs.i, align 2 %34 = and i8 %33, 1 - %tobool.not.i2354 = icmp eq i8 %34, 0 - br i1 %tobool.not.i2354, label %sw.epilog3868, label %trans_bseti.exit + %tobool.not.i2336 = icmp eq i8 %34, 0 + br i1 %tobool.not.i2336, label %sw.epilog3868, label %trans_bseti.exit trans_bseti.exit: ; preds = %sw.bb349 - %call.i2356 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bset) - br i1 %call.i2356, label %return, label %sw.epilog3868 + %call.i2338 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bset) + br i1 %call.i2338, label %return, label %sw.epilog3868 sw.bb353: ; preds = %sw.bb290 %shr354 = lshr i32 %insn, 24 @@ -7767,13 +7763,13 @@ sw.bb353: ; preds = %sw.bb290 ] sw.bb356: ; preds = %sw.bb353 - %shr.i.i2357 = lshr i32 %insn, 7 - %and.i.i2358 = and i32 %shr.i.i2357, 31 - store i32 %and.i.i2358, ptr %u, align 4 - %shr.i3.i2359 = lshr i32 %insn, 15 - %and.i4.i2360 = and i32 %shr.i3.i2359, 31 - %rs1.i2361 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i2360, ptr %rs1.i2361, align 4 + %shr.i.i2339 = lshr i32 %insn, 7 + %and.i.i2340 = and i32 %shr.i.i2339, 31 + store i32 %and.i.i2340, ptr %u, align 4 + %shr.i3.i2341 = lshr i32 %insn, 15 + %and.i4.i2342 = and i32 %shr.i3.i2341, 31 + %rs1.i2343 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i2342, ptr %rs1.i2343, align 4 %35 = and i32 %insn, 15728640 %cond83 = icmp eq i32 %35, 0 br i1 %cond83, label %sw.bb359, label %sw.epilog3868 @@ -7783,52 +7779,52 @@ sw.bb359: ; preds = %sw.bb356 br i1 %call360, label %return, label %sw.epilog3868 sw.bb364: ; preds = %sw.bb353 - %shr.i.i2362 = lshr i32 %insn, 20 - %and.i.i2363 = and i32 %shr.i.i2362, 15 - store i32 %and.i.i2363, ptr %u, align 4 - %shr.i5.i2364 = lshr i32 %insn, 7 - %and.i6.i2365 = and i32 %shr.i5.i2364, 31 - %rd.i2366 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2365, ptr %rd.i2366, align 4 - %shr.i7.i2367 = lshr i32 %insn, 15 - %and.i8.i2368 = and i32 %shr.i7.i2367, 31 - %rs1.i2369 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2368, ptr %rs1.i2369, align 4 + %shr.i.i2344 = lshr i32 %insn, 20 + %and.i.i2345 = and i32 %shr.i.i2344, 15 + store i32 %and.i.i2345, ptr %u, align 4 + %shr.i5.i2346 = lshr i32 %insn, 7 + %and.i6.i2347 = and i32 %shr.i5.i2346, 31 + %rd.i2348 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2347, ptr %rd.i2348, align 4 + %shr.i7.i2349 = lshr i32 %insn, 15 + %and.i8.i2350 = and i32 %shr.i7.i2349, 31 + %rs1.i2351 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2350, ptr %rs1.i2351, align 4 %call365 = call fastcc zeroext i1 @trans_aes64ks1i(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call365, label %return, label %sw.epilog3868 sw.bb369: ; preds = %sw.bb290 - %shr.i.i2370 = lshr i32 %insn, 20 - %and.i.i2371 = and i32 %shr.i.i2370, 127 - store i32 %and.i.i2371, ptr %u, align 4 - %shr.i5.i2372 = lshr i32 %insn, 7 - %and.i6.i2373 = and i32 %shr.i5.i2372, 31 - %rd.i2374 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2373, ptr %rd.i2374, align 4 - %shr.i7.i2375 = lshr i32 %insn, 15 - %and.i8.i2376 = and i32 %shr.i7.i2375, 31 - %rs1.i2377 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2376, ptr %rs1.i2377, align 4 - %cfg_ptr.i2378 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %36 = load ptr, ptr %cfg_ptr.i2378, align 8 - %ext_zbs.i2379 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %36, i64 0, i32 6 - %37 = load i8, ptr %ext_zbs.i2379, align 2 + %shr.i.i2352 = lshr i32 %insn, 20 + %and.i.i2353 = and i32 %shr.i.i2352, 127 + store i32 %and.i.i2353, ptr %u, align 4 + %shr.i5.i2354 = lshr i32 %insn, 7 + %and.i6.i2355 = and i32 %shr.i5.i2354, 31 + %rd.i2356 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2355, ptr %rd.i2356, align 4 + %shr.i7.i2357 = lshr i32 %insn, 15 + %and.i8.i2358 = and i32 %shr.i7.i2357, 31 + %rs1.i2359 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2358, ptr %rs1.i2359, align 4 + %cfg_ptr.i2360 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %36 = load ptr, ptr %cfg_ptr.i2360, align 8 + %ext_zbs.i2361 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %36, i64 0, i32 6 + %37 = load i8, ptr %ext_zbs.i2361, align 2 %38 = and i8 %37, 1 - %tobool.not.i2380 = icmp eq i8 %38, 0 - br i1 %tobool.not.i2380, label %sw.epilog3868, label %trans_bclri.exit + %tobool.not.i2362 = icmp eq i8 %38, 0 + br i1 %tobool.not.i2362, label %sw.epilog3868, label %trans_bclri.exit trans_bclri.exit: ; preds = %sw.bb369 - %call.i2382 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bclr) - br i1 %call.i2382, label %return, label %sw.epilog3868 + %call.i2364 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bclr) + br i1 %call.i2364, label %return, label %sw.epilog3868 sw.bb373: ; preds = %sw.bb290 - %shr.i.i2384 = lshr i32 %insn, 7 - %and.i.i2385 = and i32 %shr.i.i2384, 31 - store i32 %and.i.i2385, ptr %u, align 4 - %shr.i3.i2386 = lshr i32 %insn, 15 - %and.i4.i2387 = and i32 %shr.i3.i2386, 31 - %rs1.i2388 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i2387, ptr %rs1.i2388, align 4 + %shr.i.i2366 = lshr i32 %insn, 7 + %and.i.i2367 = and i32 %shr.i.i2366, 31 + store i32 %and.i.i2367, ptr %u, align 4 + %shr.i3.i2368 = lshr i32 %insn, 15 + %and.i4.i2369 = and i32 %shr.i3.i2368, 31 + %rs1.i2370 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i2369, ptr %rs1.i2370, align 4 %shr374 = lshr i32 %insn, 20 %and375 = and i32 %shr374, 127 switch i32 %and375, label %sw.epilog3868 [ @@ -7860,68 +7856,68 @@ sw.bb392: ; preds = %sw.bb373 br i1 %call393, label %return, label %sw.epilog3868 sw.bb397: ; preds = %sw.bb290 - %shr.i.i2389 = lshr i32 %insn, 20 - %and.i.i2390 = and i32 %shr.i.i2389, 127 - store i32 %and.i.i2390, ptr %u, align 4 - %shr.i5.i2391 = lshr i32 %insn, 7 - %and.i6.i2392 = and i32 %shr.i5.i2391, 31 - %rd.i2393 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2392, ptr %rd.i2393, align 4 - %shr.i7.i2394 = lshr i32 %insn, 15 - %and.i8.i2395 = and i32 %shr.i7.i2394, 31 - %rs1.i2396 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2395, ptr %rs1.i2396, align 4 - %cfg_ptr.i2397 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %39 = load ptr, ptr %cfg_ptr.i2397, align 8 - %ext_zbs.i2398 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %39, i64 0, i32 6 - %40 = load i8, ptr %ext_zbs.i2398, align 2 + %shr.i.i2371 = lshr i32 %insn, 20 + %and.i.i2372 = and i32 %shr.i.i2371, 127 + store i32 %and.i.i2372, ptr %u, align 4 + %shr.i5.i2373 = lshr i32 %insn, 7 + %and.i6.i2374 = and i32 %shr.i5.i2373, 31 + %rd.i2375 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2374, ptr %rd.i2375, align 4 + %shr.i7.i2376 = lshr i32 %insn, 15 + %and.i8.i2377 = and i32 %shr.i7.i2376, 31 + %rs1.i2378 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2377, ptr %rs1.i2378, align 4 + %cfg_ptr.i2379 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %39 = load ptr, ptr %cfg_ptr.i2379, align 8 + %ext_zbs.i2380 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %39, i64 0, i32 6 + %40 = load i8, ptr %ext_zbs.i2380, align 2 %41 = and i8 %40, 1 - %tobool.not.i2399 = icmp eq i8 %41, 0 - br i1 %tobool.not.i2399, label %sw.epilog3868, label %trans_binvi.exit + %tobool.not.i2381 = icmp eq i8 %41, 0 + br i1 %tobool.not.i2381, label %sw.epilog3868, label %trans_binvi.exit trans_binvi.exit: ; preds = %sw.bb397 - %call.i2401 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_binv) - br i1 %call.i2401, label %return, label %sw.epilog3868 + %call.i2383 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_binv) + br i1 %call.i2383, label %return, label %sw.epilog3868 sw.bb402: ; preds = %sw.bb283 - %shr.i.i2403 = ashr i32 %insn, 20 - store i32 %shr.i.i2403, ptr %u, align 4 - %shr.i5.i2404 = lshr i32 %insn, 7 - %and.i.i2405 = and i32 %shr.i5.i2404, 31 - %rd.i2406 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2405, ptr %rd.i2406, align 4 - %shr.i6.i2407 = lshr i32 %insn, 15 - %and.i7.i2408 = and i32 %shr.i6.i2407, 31 - %rs1.i2409 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2408, ptr %rs1.i2409, align 4 - %call.i2410 = call fastcc noundef zeroext i1 @gen_arith_imm_tl(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_slt, ptr noundef nonnull @gen_slt_i128) - br i1 %call.i2410, label %return, label %sw.epilog3868 + %shr.i.i2385 = ashr i32 %insn, 20 + store i32 %shr.i.i2385, ptr %u, align 4 + %shr.i5.i2386 = lshr i32 %insn, 7 + %and.i.i2387 = and i32 %shr.i5.i2386, 31 + %rd.i2388 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2387, ptr %rd.i2388, align 4 + %shr.i6.i2389 = lshr i32 %insn, 15 + %and.i7.i2390 = and i32 %shr.i6.i2389, 31 + %rs1.i2391 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2390, ptr %rs1.i2391, align 4 + %call.i2392 = call fastcc noundef zeroext i1 @gen_arith_imm_tl(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_slt, ptr noundef nonnull @gen_slt_i128) + br i1 %call.i2392, label %return, label %sw.epilog3868 sw.bb406: ; preds = %sw.bb283 - %shr.i.i2411 = ashr i32 %insn, 20 - store i32 %shr.i.i2411, ptr %u, align 4 - %shr.i5.i2412 = lshr i32 %insn, 7 - %and.i.i2413 = and i32 %shr.i5.i2412, 31 - %rd.i2414 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2413, ptr %rd.i2414, align 4 - %shr.i6.i2415 = lshr i32 %insn, 15 - %and.i7.i2416 = and i32 %shr.i6.i2415, 31 - %rs1.i2417 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2416, ptr %rs1.i2417, align 4 - %call.i2418 = call fastcc noundef zeroext i1 @gen_arith_imm_tl(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_sltu, ptr noundef nonnull @gen_sltu_i128) - br i1 %call.i2418, label %return, label %sw.epilog3868 + %shr.i.i2393 = ashr i32 %insn, 20 + store i32 %shr.i.i2393, ptr %u, align 4 + %shr.i5.i2394 = lshr i32 %insn, 7 + %and.i.i2395 = and i32 %shr.i5.i2394, 31 + %rd.i2396 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2395, ptr %rd.i2396, align 4 + %shr.i6.i2397 = lshr i32 %insn, 15 + %and.i7.i2398 = and i32 %shr.i6.i2397, 31 + %rs1.i2399 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2398, ptr %rs1.i2399, align 4 + %call.i2400 = call fastcc noundef zeroext i1 @gen_arith_imm_tl(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_sltu, ptr noundef nonnull @gen_sltu_i128) + br i1 %call.i2400, label %return, label %sw.epilog3868 sw.bb410: ; preds = %sw.bb283 - %shr.i.i2419 = ashr i32 %insn, 20 - store i32 %shr.i.i2419, ptr %u, align 4 - %shr.i5.i2420 = lshr i32 %insn, 7 - %and.i.i2421 = and i32 %shr.i5.i2420, 31 - %rd.i2422 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2421, ptr %rd.i2422, align 4 - %shr.i6.i2423 = lshr i32 %insn, 15 - %and.i7.i2424 = and i32 %shr.i6.i2423, 31 - %rs1.i2425 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2424, ptr %rs1.i2425, align 4 + %shr.i.i2401 = ashr i32 %insn, 20 + store i32 %shr.i.i2401, ptr %u, align 4 + %shr.i5.i2402 = lshr i32 %insn, 7 + %and.i.i2403 = and i32 %shr.i5.i2402, 31 + %rd.i2404 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2403, ptr %rd.i2404, align 4 + %shr.i6.i2405 = lshr i32 %insn, 15 + %and.i7.i2406 = and i32 %shr.i6.i2405, 31 + %rs1.i2407 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2406, ptr %rs1.i2407, align 4 call fastcc void @trans_xori(ptr noundef %ctx, ptr noundef nonnull %u) br label %return @@ -7937,107 +7933,107 @@ sw.bb414: ; preds = %sw.bb283 ] sw.bb417: ; preds = %sw.bb414 - %shr.i.i2426 = lshr i32 %insn, 20 - %and.i.i2427 = and i32 %shr.i.i2426, 127 - store i32 %and.i.i2427, ptr %u, align 4 - %shr.i5.i2428 = lshr i32 %insn, 7 - %and.i6.i2429 = and i32 %shr.i5.i2428, 31 - %rd.i2430 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2429, ptr %rd.i2430, align 4 - %shr.i7.i2431 = lshr i32 %insn, 15 - %and.i8.i2432 = and i32 %shr.i7.i2431, 31 - %rs1.i2433 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2432, ptr %rs1.i2433, align 4 + %shr.i.i2408 = lshr i32 %insn, 20 + %and.i.i2409 = and i32 %shr.i.i2408, 127 + store i32 %and.i.i2409, ptr %u, align 4 + %shr.i5.i2410 = lshr i32 %insn, 7 + %and.i6.i2411 = and i32 %shr.i5.i2410, 31 + %rd.i2412 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2411, ptr %rd.i2412, align 4 + %shr.i7.i2413 = lshr i32 %insn, 15 + %and.i8.i2414 = and i32 %shr.i7.i2413, 31 + %rs1.i2415 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2414, ptr %rs1.i2415, align 4 %call418 = call fastcc zeroext i1 @trans_srli(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call418, label %return, label %sw.epilog3868 sw.bb429: ; preds = %sw.bb414 - %shr.i.i2439 = lshr i32 %insn, 7 - %and.i.i2440 = and i32 %shr.i.i2439, 31 - store i32 %and.i.i2440, ptr %u, align 4 - %shr.i3.i2441 = lshr i32 %insn, 15 - %and.i4.i2442 = and i32 %shr.i3.i2441, 31 - %rs1.i2443 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i2442, ptr %rs1.i2443, align 4 + %shr.i.i2421 = lshr i32 %insn, 7 + %and.i.i2422 = and i32 %shr.i.i2421, 31 + store i32 %and.i.i2422, ptr %u, align 4 + %shr.i3.i2423 = lshr i32 %insn, 15 + %and.i4.i2424 = and i32 %shr.i3.i2423, 31 + %rs1.i2425 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i2424, ptr %rs1.i2425, align 4 %42 = and i32 %insn, 133169152 %cond81 = icmp eq i32 %42, 7340032 br i1 %cond81, label %sw.bb432, label %sw.epilog3868 sw.bb432: ; preds = %sw.bb429 - %cfg_ptr.i2444 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %43 = load ptr, ptr %cfg_ptr.i2444, align 8 + %cfg_ptr.i2426 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %43 = load ptr, ptr %cfg_ptr.i2426, align 8 %ext_zbb.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %43, i64 0, i32 1 %44 = load i8, ptr %ext_zbb.i, align 1 %45 = and i8 %44, 1 - %tobool.not.i2445.not = icmp eq i8 %45, 0 - br i1 %tobool.not.i2445.not, label %sw.epilog3868, label %trans_orc_b.exit.thread + %tobool.not.i2427.not = icmp eq i8 %45, 0 + br i1 %tobool.not.i2427.not, label %sw.epilog3868, label %trans_orc_b.exit.thread trans_orc_b.exit.thread: ; preds = %sw.bb432 call fastcc void @gen_unary(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_orc_b) br label %return sw.bb437: ; preds = %sw.bb414 - %shr.i.i2448 = lshr i32 %insn, 20 - %and.i.i2449 = and i32 %shr.i.i2448, 127 - store i32 %and.i.i2449, ptr %u, align 4 - %shr.i5.i2450 = lshr i32 %insn, 7 - %and.i6.i2451 = and i32 %shr.i5.i2450, 31 - %rd.i2452 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2451, ptr %rd.i2452, align 4 - %shr.i7.i2453 = lshr i32 %insn, 15 - %and.i8.i2454 = and i32 %shr.i7.i2453, 31 - %rs1.i2455 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2454, ptr %rs1.i2455, align 4 + %shr.i.i2430 = lshr i32 %insn, 20 + %and.i.i2431 = and i32 %shr.i.i2430, 127 + store i32 %and.i.i2431, ptr %u, align 4 + %shr.i5.i2432 = lshr i32 %insn, 7 + %and.i6.i2433 = and i32 %shr.i5.i2432, 31 + %rd.i2434 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2433, ptr %rd.i2434, align 4 + %shr.i7.i2435 = lshr i32 %insn, 15 + %and.i8.i2436 = and i32 %shr.i7.i2435, 31 + %rs1.i2437 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2436, ptr %rs1.i2437, align 4 %call438 = call fastcc zeroext i1 @trans_srai(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call438, label %return, label %sw.epilog3868 sw.bb441: ; preds = %sw.bb414 - %shr.i.i2456 = lshr i32 %insn, 20 - %and.i.i2457 = and i32 %shr.i.i2456, 127 - store i32 %and.i.i2457, ptr %u, align 4 - %shr.i5.i2458 = lshr i32 %insn, 7 - %and.i6.i2459 = and i32 %shr.i5.i2458, 31 - %rd.i2460 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2459, ptr %rd.i2460, align 4 - %shr.i7.i2461 = lshr i32 %insn, 15 - %and.i8.i2462 = and i32 %shr.i7.i2461, 31 - %rs1.i2463 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2462, ptr %rs1.i2463, align 4 - %cfg_ptr.i2464 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %46 = load ptr, ptr %cfg_ptr.i2464, align 8 - %ext_zbs.i2465 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %46, i64 0, i32 6 - %47 = load i8, ptr %ext_zbs.i2465, align 2 + %shr.i.i2438 = lshr i32 %insn, 20 + %and.i.i2439 = and i32 %shr.i.i2438, 127 + store i32 %and.i.i2439, ptr %u, align 4 + %shr.i5.i2440 = lshr i32 %insn, 7 + %and.i6.i2441 = and i32 %shr.i5.i2440, 31 + %rd.i2442 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2441, ptr %rd.i2442, align 4 + %shr.i7.i2443 = lshr i32 %insn, 15 + %and.i8.i2444 = and i32 %shr.i7.i2443, 31 + %rs1.i2445 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2444, ptr %rs1.i2445, align 4 + %cfg_ptr.i2446 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %46 = load ptr, ptr %cfg_ptr.i2446, align 8 + %ext_zbs.i2447 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %46, i64 0, i32 6 + %47 = load i8, ptr %ext_zbs.i2447, align 2 %48 = and i8 %47, 1 - %tobool.not.i2466 = icmp eq i8 %48, 0 - br i1 %tobool.not.i2466, label %sw.epilog3868, label %trans_bexti.exit + %tobool.not.i2448 = icmp eq i8 %48, 0 + br i1 %tobool.not.i2448, label %sw.epilog3868, label %trans_bexti.exit trans_bexti.exit: ; preds = %sw.bb441 - %call.i2468 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bext) - br i1 %call.i2468, label %return, label %sw.epilog3868 + %call.i2450 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bext) + br i1 %call.i2450, label %return, label %sw.epilog3868 sw.bb445: ; preds = %sw.bb414 - %shr.i.i2470 = lshr i32 %insn, 20 - %and.i.i2471 = and i32 %shr.i.i2470, 127 - store i32 %and.i.i2471, ptr %u, align 4 - %shr.i5.i2472 = lshr i32 %insn, 7 - %and.i6.i2473 = and i32 %shr.i5.i2472, 31 - %rd.i2474 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2473, ptr %rd.i2474, align 4 - %shr.i7.i2475 = lshr i32 %insn, 15 - %and.i8.i2476 = and i32 %shr.i7.i2475, 31 - %rs1.i2477 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2476, ptr %rs1.i2477, align 4 + %shr.i.i2452 = lshr i32 %insn, 20 + %and.i.i2453 = and i32 %shr.i.i2452, 127 + store i32 %and.i.i2453, ptr %u, align 4 + %shr.i5.i2454 = lshr i32 %insn, 7 + %and.i6.i2455 = and i32 %shr.i5.i2454, 31 + %rd.i2456 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2455, ptr %rd.i2456, align 4 + %shr.i7.i2457 = lshr i32 %insn, 15 + %and.i8.i2458 = and i32 %shr.i7.i2457, 31 + %rs1.i2459 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2458, ptr %rs1.i2459, align 4 %call446 = call fastcc zeroext i1 @trans_rori(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call446, label %return, label %sw.epilog3868 sw.bb449: ; preds = %sw.bb414 - %shr.i.i2478 = lshr i32 %insn, 7 - %and.i.i2479 = and i32 %shr.i.i2478, 31 - store i32 %and.i.i2479, ptr %u, align 4 - %shr.i3.i2480 = lshr i32 %insn, 15 - %and.i4.i2481 = and i32 %shr.i3.i2480, 31 - %rs1.i2482 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i2481, ptr %rs1.i2482, align 4 + %shr.i.i2460 = lshr i32 %insn, 7 + %and.i.i2461 = and i32 %shr.i.i2460, 31 + store i32 %and.i.i2461, ptr %u, align 4 + %shr.i3.i2462 = lshr i32 %insn, 15 + %and.i4.i2463 = and i32 %shr.i3.i2462, 31 + %rs1.i2464 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i2463, ptr %rs1.i2464, align 4 %shr450 = lshr i32 %insn, 20 %and451 = and i32 %shr450, 127 switch i32 %and451, label %sw.epilog3868 [ @@ -8054,45 +8050,42 @@ sw.bb460: ; preds = %sw.bb449 br i1 %call461, label %return, label %sw.epilog3868 sw.bb466: ; preds = %sw.bb283 - %shr.i.i2483 = ashr i32 %insn, 20 - store i32 %shr.i.i2483, ptr %u, align 4 - %shr.i5.i2484 = lshr i32 %insn, 7 - %and.i.i2485 = and i32 %shr.i5.i2484, 31 - %rd.i2486 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2485, ptr %rd.i2486, align 4 - %shr.i6.i2487 = lshr i32 %insn, 15 - %and.i7.i2488 = and i32 %shr.i6.i2487, 31 - %rs1.i2489 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2488, ptr %rs1.i2489, align 4 + %shr.i.i2465 = ashr i32 %insn, 20 + store i32 %shr.i.i2465, ptr %u, align 4 + %shr.i5.i2466 = lshr i32 %insn, 7 + %and.i.i2467 = and i32 %shr.i5.i2466, 31 + %rd.i2468 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2467, ptr %rd.i2468, align 4 + %shr.i6.i2469 = lshr i32 %insn, 15 + %and.i7.i2470 = and i32 %shr.i6.i2469, 31 + %rs1.i2471 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2470, ptr %rs1.i2471, align 4 call fastcc void @trans_ori(ptr noundef %ctx, ptr noundef nonnull %u) br label %return sw.bb470: ; preds = %sw.bb283 - %shr.i.i2490 = ashr i32 %insn, 20 - store i32 %shr.i.i2490, ptr %u, align 4 - %shr.i5.i2491 = lshr i32 %insn, 7 - %and.i.i2492 = and i32 %shr.i5.i2491, 31 - %rd.i2493 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2492, ptr %rd.i2493, align 4 - %shr.i6.i2494 = lshr i32 %insn, 15 - %and.i7.i2495 = and i32 %shr.i6.i2494, 31 - %rs1.i2496 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2495, ptr %rs1.i2496, align 4 + %shr.i.i2472 = ashr i32 %insn, 20 + store i32 %shr.i.i2472, ptr %u, align 4 + %shr.i5.i2473 = lshr i32 %insn, 7 + %and.i.i2474 = and i32 %shr.i5.i2473, 31 + %rd.i2475 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2474, ptr %rd.i2475, align 4 + %shr.i6.i2476 = lshr i32 %insn, 15 + %and.i7.i2477 = and i32 %shr.i6.i2476, 31 + %rs1.i2478 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2477, ptr %rs1.i2478, align 4 call fastcc void @trans_andi(ptr noundef %ctx, ptr noundef nonnull %u) br label %return -sw.bb283.unreachabledefault: ; preds = %sw.bb283 - unreachable - sw.bb475: ; preds = %entry %shl.i.i = and i32 %insn, -4096 store i32 %shl.i.i, ptr %u, align 4 - %shr.i3.i2497 = lshr i32 %insn, 7 - %and.i.i2498 = and i32 %shr.i3.i2497, 31 - %rd.i2499 = getelementptr inbounds %struct.arg_u, ptr %u, i64 0, i32 1 - store i32 %and.i.i2498, ptr %rd.i2499, align 4 - %cmp.i.i2501 = icmp eq i32 %and.i.i2498, 0 - br i1 %cmp.i.i2501, label %if.then.i.i, label %lor.lhs.false.i.i + %shr.i3.i2479 = lshr i32 %insn, 7 + %and.i.i2480 = and i32 %shr.i3.i2479, 31 + %rd.i2481 = getelementptr inbounds %struct.arg_u, ptr %u, i64 0, i32 1 + store i32 %and.i.i2480, ptr %rd.i2481, align 4 + %cmp.i.i2483 = icmp eq i32 %and.i.i2480, 0 + br i1 %cmp.i.i2483, label %if.then.i.i, label %lor.lhs.false.i.i lor.lhs.false.i.i: ; preds = %sw.bb475 %49 = getelementptr i8, ptr %ctx, i64 120 @@ -8106,7 +8099,7 @@ if.then.i.i: ; preds = %lor.lhs.false.i.i, br label %dest_gpr.exit.i if.end.i.i: ; preds = %lor.lhs.false.i.i - %idxprom.i.i = zext nneg i32 %and.i.i2498 to i64 + %idxprom.i.i = zext nneg i32 %and.i.i2480 to i64 %arrayidx.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom.i.i %50 = load ptr, ptr %arrayidx.i.i, align 8 br label %dest_gpr.exit.i @@ -8116,7 +8109,7 @@ dest_gpr.exit.i: ; preds = %if.end.i.i, %if.the %conv.i = sext i32 %shl.i.i to i64 %pc_next.i.i = getelementptr inbounds %struct.DisasContextBase, ptr %ctx, i64 0, i32 2 %51 = load i64, ptr %pc_next.i.i, align 8 - %add.i.i2502 = add i64 %51, %conv.i + %add.i.i2484 = add i64 %51, %conv.i %pc_save.i.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 2 %52 = load i64, ptr %pc_save.i.i, align 8 %cmp.not.i.i = icmp eq i64 %52, -1 @@ -8130,22 +8123,22 @@ if.end.i6.i: ; preds = %dest_gpr.exit.i %53 = load ptr, ptr %ctx, align 8 %cflags.i.i.i = getelementptr inbounds %struct.TranslationBlock, ptr %53, i64 0, i32 3 %54 = load atomic i32, ptr %cflags.i.i.i monotonic, align 4 - %and.i.i2503 = and i32 %54, 131072 - %tobool.not.i.i = icmp eq i32 %and.i.i2503, 0 + %and.i.i2485 = and i32 %54, 131072 + %tobool.not.i.i = icmp eq i32 %and.i.i2485, 0 br i1 %tobool.not.i.i, label %if.else4.i.i, label %if.then2.i.i if.then2.i.i: ; preds = %if.end.i6.i %55 = load ptr, ptr @cpu_pc, align 8 - %sub.i.i = sub i64 %add.i.i2502, %52 + %sub.i.i = sub i64 %add.i.i2484, %52 tail call void @tcg_gen_addi_i64(ptr noundef %retval.0.i.i, ptr noundef %55, i64 noundef %sub.i.i) #13 br label %gen_pc_plus_diff.exit.i if.else4.i.i: ; preds = %if.end.i6.i - tail call void @tcg_gen_movi_i64(ptr noundef %retval.0.i.i, i64 noundef %add.i.i2502) #13 + tail call void @tcg_gen_movi_i64(ptr noundef %retval.0.i.i, i64 noundef %add.i.i2484) #13 br label %gen_pc_plus_diff.exit.i gen_pc_plus_diff.exit.i: ; preds = %if.else4.i.i, %if.then2.i.i - br i1 %cmp.i.i2501, label %return, label %if.then.i8.i + br i1 %cmp.i.i2483, label %return, label %if.then.i8.i if.then.i8.i: ; preds = %gen_pc_plus_diff.exit.i %ol.i.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 @@ -8157,14 +8150,14 @@ if.then.i8.i: ; preds = %gen_pc_plus_diff.ex ] sw.bb.i.i: ; preds = %if.then.i8.i - %idxprom.i9.i = zext nneg i32 %and.i.i2498 to i64 + %idxprom.i9.i = zext nneg i32 %and.i.i2480 to i64 %arrayidx.i10.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom.i9.i %57 = load ptr, ptr %arrayidx.i10.i, align 8 tail call void @tcg_gen_ext32s_i64(ptr noundef %57, ptr noundef %retval.0.i.i) #13 br label %sw.epilog.i.i sw.bb1.i.i: ; preds = %if.then.i8.i, %if.then.i8.i - %idxprom2.i.i = zext nneg i32 %and.i.i2498 to i64 + %idxprom2.i.i = zext nneg i32 %and.i.i2480 to i64 %arrayidx3.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom2.i.i %58 = load ptr, ptr %arrayidx3.i.i, align 8 tail call void @tcg_gen_mov_i64(ptr noundef %58, ptr noundef %retval.0.i.i) #13 @@ -8181,7 +8174,7 @@ sw.epilog.i.i: ; preds = %sw.bb1.i.i, %sw.bb. br i1 %cmp4.i.i, label %if.then5.i.i, label %return if.then5.i.i: ; preds = %sw.epilog.i.i - %idxprom6.i.i = zext nneg i32 %and.i.i2498 to i64 + %idxprom6.i.i = zext nneg i32 %and.i.i2480 to i64 %arrayidx7.i.i = getelementptr [32 x ptr], ptr @cpu_gprh, i64 0, i64 %idxprom6.i.i %60 = load ptr, ptr %arrayidx7.i.i, align 8 %arrayidx9.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom6.i.i @@ -8199,20 +8192,20 @@ sw.bb479: ; preds = %entry ] sw.bb482: ; preds = %sw.bb479 - %shr.i.i2504 = ashr i32 %insn, 20 - store i32 %shr.i.i2504, ptr %u, align 4 - %shr.i5.i2505 = lshr i32 %insn, 7 - %and.i.i2506 = and i32 %shr.i5.i2505, 31 - %rd.i2507 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i2506, ptr %rd.i2507, align 4 - %shr.i6.i2508 = lshr i32 %insn, 15 - %and.i7.i2509 = and i32 %shr.i6.i2508, 31 - %rs1.i2510 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i2509, ptr %rs1.i2510, align 4 + %shr.i.i2486 = ashr i32 %insn, 20 + store i32 %shr.i.i2486, ptr %u, align 4 + %shr.i5.i2487 = lshr i32 %insn, 7 + %and.i.i2488 = and i32 %shr.i5.i2487, 31 + %rd.i2489 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i2488, ptr %rd.i2489, align 4 + %shr.i6.i2490 = lshr i32 %insn, 15 + %and.i7.i2491 = and i32 %shr.i6.i2490, 31 + %rs1.i2492 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i2491, ptr %rs1.i2492, align 4 %ol.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 store i32 1, ptr %ol.i, align 8 - %call.i2511 = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef null) - br i1 %call.i2511, label %return, label %sw.epilog3868 + %call.i2493 = call fastcc noundef zeroext i1 @gen_arith_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef null) + br i1 %call.i2493, label %return, label %sw.epilog3868 sw.bb486: ; preds = %sw.bb479 %shr487 = lshr i32 %insn, 27 @@ -8223,17 +8216,17 @@ sw.bb486: ; preds = %sw.bb479 ] sw.bb489: ; preds = %sw.bb486 - %shr.i.i2512 = lshr i32 %insn, 20 - %and.i.i2513 = and i32 %shr.i.i2512, 31 - store i32 %and.i.i2513, ptr %u, align 4 - %shr.i5.i2514 = lshr i32 %insn, 7 - %and.i6.i2515 = and i32 %shr.i5.i2514, 31 - %rd.i2516 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2515, ptr %rd.i2516, align 4 - %shr.i7.i2517 = lshr i32 %insn, 15 - %and.i8.i2518 = and i32 %shr.i7.i2517, 31 - %rs1.i2519 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2518, ptr %rs1.i2519, align 4 + %shr.i.i2494 = lshr i32 %insn, 20 + %and.i.i2495 = and i32 %shr.i.i2494, 31 + store i32 %and.i.i2495, ptr %u, align 4 + %shr.i5.i2496 = lshr i32 %insn, 7 + %and.i6.i2497 = and i32 %shr.i5.i2496, 31 + %rd.i2498 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2497, ptr %rd.i2498, align 4 + %shr.i7.i2499 = lshr i32 %insn, 15 + %and.i8.i2500 = and i32 %shr.i7.i2499, 31 + %rs1.i2501 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2500, ptr %rs1.i2501, align 4 %62 = and i32 %insn, 100663296 %cond80 = icmp eq i32 %62, 0 br i1 %cond80, label %sw.bb492, label %sw.epilog3868 @@ -8243,36 +8236,36 @@ sw.bb492: ; preds = %sw.bb489 br i1 %call493, label %return, label %sw.epilog3868 sw.bb497: ; preds = %sw.bb486 - %shr.i.i2520 = lshr i32 %insn, 20 - %and.i.i2521 = and i32 %shr.i.i2520, 127 - store i32 %and.i.i2521, ptr %u, align 4 - %shr.i5.i2522 = lshr i32 %insn, 7 - %and.i6.i2523 = and i32 %shr.i5.i2522, 31 - %rd.i2524 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2523, ptr %rd.i2524, align 4 - %shr.i7.i2525 = lshr i32 %insn, 15 - %and.i8.i2526 = and i32 %shr.i7.i2525, 31 - %rs1.i2527 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2526, ptr %rs1.i2527, align 4 - %cfg_ptr.i2528 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %63 = load ptr, ptr %cfg_ptr.i2528, align 8 + %shr.i.i2502 = lshr i32 %insn, 20 + %and.i.i2503 = and i32 %shr.i.i2502, 127 + store i32 %and.i.i2503, ptr %u, align 4 + %shr.i5.i2504 = lshr i32 %insn, 7 + %and.i6.i2505 = and i32 %shr.i5.i2504, 31 + %rd.i2506 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2505, ptr %rd.i2506, align 4 + %shr.i7.i2507 = lshr i32 %insn, 15 + %and.i8.i2508 = and i32 %shr.i7.i2507, 31 + %rs1.i2509 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2508, ptr %rs1.i2509, align 4 + %cfg_ptr.i2510 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %63 = load ptr, ptr %cfg_ptr.i2510, align 8 %64 = load i8, ptr %63, align 8 %65 = and i8 %64, 1 - %tobool.not.i2529 = icmp eq i8 %65, 0 - br i1 %tobool.not.i2529, label %sw.epilog3868, label %trans_slli_uw.exit + %tobool.not.i2511 = icmp eq i8 %65, 0 + br i1 %tobool.not.i2511, label %sw.epilog3868, label %trans_slli_uw.exit trans_slli_uw.exit: ; preds = %sw.bb497 - %call.i2530 = call fastcc zeroext i1 @gen_shift_imm_fn(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_slli_uw) - br i1 %call.i2530, label %return, label %sw.epilog3868 + %call.i2512 = call fastcc zeroext i1 @gen_shift_imm_fn(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_slli_uw) + br i1 %call.i2512, label %return, label %sw.epilog3868 sw.bb501: ; preds = %sw.bb486 - %shr.i.i2532 = lshr i32 %insn, 7 - %and.i.i2533 = and i32 %shr.i.i2532, 31 - store i32 %and.i.i2533, ptr %u, align 4 - %shr.i3.i2534 = lshr i32 %insn, 15 - %and.i4.i2535 = and i32 %shr.i3.i2534, 31 - %rs1.i2536 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i2535, ptr %rs1.i2536, align 4 + %shr.i.i2514 = lshr i32 %insn, 7 + %and.i.i2515 = and i32 %shr.i.i2514, 31 + store i32 %and.i.i2515, ptr %u, align 4 + %shr.i3.i2516 = lshr i32 %insn, 15 + %and.i4.i2517 = and i32 %shr.i3.i2516, 31 + %rs1.i2518 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i2517, ptr %rs1.i2518, align 4 %shr502 = lshr i32 %insn, 20 %and503 = and i32 %shr502, 127 switch i32 %and503, label %sw.epilog3868 [ @@ -8282,13 +8275,13 @@ sw.bb501: ; preds = %sw.bb486 ] sw.bb504: ; preds = %sw.bb501 - %cfg_ptr.i2537 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %66 = load ptr, ptr %cfg_ptr.i2537, align 8 - %ext_zbb.i2538 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %66, i64 0, i32 1 - %67 = load i8, ptr %ext_zbb.i2538, align 1 + %cfg_ptr.i2519 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %66 = load ptr, ptr %cfg_ptr.i2519, align 8 + %ext_zbb.i2520 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %66, i64 0, i32 1 + %67 = load i8, ptr %ext_zbb.i2520, align 1 %68 = and i8 %67, 1 - %tobool.not.i2539.not = icmp eq i8 %68, 0 - br i1 %tobool.not.i2539.not, label %sw.epilog3868, label %trans_clzw.exit.thread + %tobool.not.i2521.not = icmp eq i8 %68, 0 + br i1 %tobool.not.i2521.not, label %sw.epilog3868, label %trans_clzw.exit.thread trans_clzw.exit.thread: ; preds = %sw.bb504 call fastcc void @gen_unary(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_clzw) @@ -8303,17 +8296,17 @@ sw.bb512: ; preds = %sw.bb501 br i1 %call513, label %return, label %sw.epilog3868 sw.bb518: ; preds = %sw.bb479 - %shr.i.i2542 = lshr i32 %insn, 20 - %and.i.i2543 = and i32 %shr.i.i2542, 31 - store i32 %and.i.i2543, ptr %u, align 4 - %shr.i5.i2544 = lshr i32 %insn, 7 - %and.i6.i2545 = and i32 %shr.i5.i2544, 31 - %rd.i2546 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i6.i2545, ptr %rd.i2546, align 4 - %shr.i7.i2547 = lshr i32 %insn, 15 - %and.i8.i2548 = and i32 %shr.i7.i2547, 31 - %rs1.i2549 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i8.i2548, ptr %rs1.i2549, align 4 + %shr.i.i2524 = lshr i32 %insn, 20 + %and.i.i2525 = and i32 %shr.i.i2524, 31 + store i32 %and.i.i2525, ptr %u, align 4 + %shr.i5.i2526 = lshr i32 %insn, 7 + %and.i6.i2527 = and i32 %shr.i5.i2526, 31 + %rd.i2528 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i6.i2527, ptr %rd.i2528, align 4 + %shr.i7.i2529 = lshr i32 %insn, 15 + %and.i8.i2530 = and i32 %shr.i7.i2529, 31 + %rs1.i2531 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i8.i2530, ptr %rs1.i2531, align 4 %shr519 = lshr i32 %insn, 25 switch i32 %shr519, label %sw.epilog3868 [ i32 0, label %sw.bb521 @@ -8322,36 +8315,36 @@ sw.bb518: ; preds = %sw.bb479 ] sw.bb521: ; preds = %sw.bb518 - %ol.i2550 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i2550, align 8 - %call.i2551 = call fastcc noundef zeroext i1 @gen_shift_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_srliw) - br i1 %call.i2551, label %return, label %sw.epilog3868 + %ol.i2532 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i2532, align 8 + %call.i2533 = call fastcc noundef zeroext i1 @gen_shift_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_srliw) + br i1 %call.i2533, label %return, label %sw.epilog3868 sw.bb525: ; preds = %sw.bb518 - %ol.i2552 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i2552, align 8 - %call.i2553 = call fastcc noundef zeroext i1 @gen_shift_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_sraiw) - br i1 %call.i2553, label %return, label %sw.epilog3868 + %ol.i2534 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i2534, align 8 + %call.i2535 = call fastcc noundef zeroext i1 @gen_shift_imm_fn(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_sraiw) + br i1 %call.i2535, label %return, label %sw.epilog3868 sw.bb529: ; preds = %sw.bb518 %call530 = call fastcc zeroext i1 @trans_roriw(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call530, label %return, label %sw.epilog3868 sw.bb535: ; preds = %entry - %shr.i.i2554 = lshr i32 %insn, 20 - %and.i.i2555 = and i32 %shr.i.i2554, 31 - %rs2.i2556 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 - store i32 %and.i.i2555, ptr %rs2.i2556, align 4 - %shr.i6.i2557 = lshr i32 %insn, 7 - %and.i7.i2558 = and i32 %shr.i6.i2557, 31 + %shr.i.i2536 = lshr i32 %insn, 20 + %and.i.i2537 = and i32 %shr.i.i2536, 31 + %rs2.i2538 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 + store i32 %and.i.i2537, ptr %rs2.i2538, align 4 + %shr.i6.i2539 = lshr i32 %insn, 7 + %and.i7.i2540 = and i32 %shr.i6.i2539, 31 %69 = ashr i32 %insn, 20 %shl57.i.i = and i32 %69, -32 - %or.i.i = or disjoint i32 %and.i7.i2558, %shl57.i.i + %or.i.i = or disjoint i32 %and.i7.i2540, %shl57.i.i store i32 %or.i.i, ptr %u, align 4 - %shr.i9.i2559 = lshr i32 %insn, 15 - %and.i10.i2560 = and i32 %shr.i9.i2559, 31 - %rs1.i2561 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2560, ptr %rs1.i2561, align 4 + %shr.i9.i2541 = lshr i32 %insn, 15 + %and.i10.i2542 = and i32 %shr.i9.i2541, 31 + %rs1.i2543 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2542, ptr %rs1.i2543, align 4 %shr536 = lshr i32 %insn, 12 %and537 = and i32 %shr536, 7 switch i32 %and537, label %sw.epilog3868 [ @@ -8380,7 +8373,7 @@ sw.bb550: ; preds = %sw.bb535 sw.bb559: ; preds = %entry %shr560 = lshr i32 %insn, 12 %and561 = and i32 %shr560, 7 - switch i32 %and561, label %sw.bb559.unreachabledefault [ + switch i32 %and561, label %default.unreachable6487 [ i32 0, label %sw.bb562 i32 1, label %sw.bb611 i32 2, label %sw.bb615 @@ -8413,29 +8406,29 @@ sw.bb567: ; preds = %sw.bb564 ] sw.bb570: ; preds = %sw.bb567 - %shr.i.i2566 = lshr i32 %insn, 15 - %and.i.i2567 = and i32 %shr.i.i2566, 31 - %rs1.i2568 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2567, ptr %rs1.i2568, align 4 - %shr.i7.i2569 = lshr i32 %insn, 25 - %and.i8.i2570 = and i32 %shr.i7.i2569, 1 - store i32 %and.i8.i2570, ptr %u, align 4 - %shr.i9.i2571 = lshr i32 %insn, 7 - %and.i10.i2572 = and i32 %shr.i9.i2571, 31 - %rd.i2573 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2572, ptr %rd.i2573, align 4 - %shr.i11.i2574 = lshr i32 %insn, 29 - %add.i.i2575 = add nuw nsw i32 %shr.i11.i2574, 1 - %nf.i2576 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2575, ptr %nf.i2576, align 4 + %shr.i.i2548 = lshr i32 %insn, 15 + %and.i.i2549 = and i32 %shr.i.i2548, 31 + %rs1.i2550 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2549, ptr %rs1.i2550, align 4 + %shr.i7.i2551 = lshr i32 %insn, 25 + %and.i8.i2552 = and i32 %shr.i7.i2551, 1 + store i32 %and.i8.i2552, ptr %u, align 4 + %shr.i9.i2553 = lshr i32 %insn, 7 + %and.i10.i2554 = and i32 %shr.i9.i2553, 31 + %rd.i2555 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2554, ptr %rd.i2555, align 4 + %shr.i11.i2556 = lshr i32 %insn, 29 + %add.i.i2557 = add nuw nsw i32 %shr.i11.i2556, 1 + %nf.i2558 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2557, ptr %nf.i2558, align 4 %call571 = call fastcc zeroext i1 @trans_vse8_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call571, label %return, label %sw.epilog3868 sw.bb574: ; preds = %sw.bb567 - %shr.i.i2577 = lshr i32 %insn, 7 - %and.i.i2578 = and i32 %shr.i.i2577, 31 - %shr.i3.i2579 = lshr i32 %insn, 15 - %and.i4.i2580 = and i32 %shr.i3.i2579, 31 + %shr.i.i2559 = lshr i32 %insn, 7 + %and.i.i2560 = and i32 %shr.i.i2559, 31 + %shr.i3.i2561 = lshr i32 %insn, 15 + %and.i4.i2562 = and i32 %shr.i3.i2561, 31 %and575 = and i32 %insn, -503316480 %71 = add i32 %and575, 503316480 %72 = tail call i32 @llvm.fshl.i32(i32 %71, i32 %71, i32 3) @@ -8448,24 +8441,24 @@ sw.bb574: ; preds = %sw.bb567 sw.bb576: ; preds = %sw.bb574 %73 = getelementptr i8, ptr %ctx, i64 104 - %s.val.i2582 = load i32, ptr %73, align 8 - %cmp.i.i2583.not = icmp eq i32 %s.val.i2582, 0 - br i1 %cmp.i.i2583.not, label %sw.epilog3868, label %trans_vs1r_v.exit.thread + %s.val.i2564 = load i32, ptr %73, align 8 + %cmp.i.i2565.not = icmp eq i32 %s.val.i2564, 0 + br i1 %cmp.i.i2565.not, label %sw.epilog3868, label %trans_vs1r_v.exit.thread trans_vs1r_v.exit.thread: ; preds = %sw.bb576 - tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2578, i32 noundef %and.i4.i2580, i32 noundef 1, i32 noundef 1, ptr noundef nonnull @gen_helper_vs1r_v, ptr noundef nonnull %ctx) + tail call fastcc void @ldst_whole_trans(i32 noundef %and.i.i2560, i32 noundef %and.i4.i2562, i32 noundef 1, i32 noundef 1, ptr noundef nonnull @gen_helper_vs1r_v, ptr noundef nonnull %ctx) br label %return sw.bb580: ; preds = %sw.bb574 - %call581 = tail call fastcc zeroext i1 @trans_vs2r_v(ptr noundef %ctx, i32 %and.i.i2578, i32 %and.i4.i2580) + %call581 = tail call fastcc zeroext i1 @trans_vs2r_v(ptr noundef %ctx, i32 %and.i.i2560, i32 %and.i4.i2562) br i1 %call581, label %return, label %sw.epilog3868 sw.bb584: ; preds = %sw.bb574 - %call585 = tail call fastcc zeroext i1 @trans_vs4r_v(ptr noundef %ctx, i32 %and.i.i2578, i32 %and.i4.i2580) + %call585 = tail call fastcc zeroext i1 @trans_vs4r_v(ptr noundef %ctx, i32 %and.i.i2560, i32 %and.i4.i2562) br i1 %call585, label %return, label %sw.epilog3868 sw.bb588: ; preds = %sw.bb574 - %call589 = tail call fastcc zeroext i1 @trans_vs8r_v(ptr noundef %ctx, i32 %and.i.i2578, i32 %and.i4.i2580) + %call589 = tail call fastcc zeroext i1 @trans_vs8r_v(ptr noundef %ctx, i32 %and.i.i2560, i32 %and.i4.i2562) br i1 %call589, label %return, label %sw.epilog3868 sw.bb593: ; preds = %sw.bb567 @@ -8474,110 +8467,110 @@ sw.bb593: ; preds = %sw.bb567 br i1 %cond79, label %sw.bb595, label %sw.epilog3868 sw.bb595: ; preds = %sw.bb593 - %shr.i3.i2588 = lshr i32 %insn, 15 - %and.i4.i2589 = and i32 %shr.i3.i2588, 31 - %shr.i.i2586 = lshr i32 %insn, 7 - %and.i.i2587 = and i32 %shr.i.i2586, 31 - %call596 = tail call fastcc zeroext i1 @trans_vsm_v(ptr noundef %ctx, i32 %and.i.i2587, i32 %and.i4.i2589) + %shr.i3.i2570 = lshr i32 %insn, 15 + %and.i4.i2571 = and i32 %shr.i3.i2570, 31 + %shr.i.i2568 = lshr i32 %insn, 7 + %and.i.i2569 = and i32 %shr.i.i2568, 31 + %call596 = tail call fastcc zeroext i1 @trans_vsm_v(ptr noundef %ctx, i32 %and.i.i2569, i32 %and.i4.i2571) br i1 %call596, label %return, label %sw.epilog3868 sw.bb601: ; preds = %sw.bb564 - %shr.i.i2591 = lshr i32 %insn, 7 - %and.i.i2592 = and i32 %shr.i.i2591, 31 - %rd.i2593 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2592, ptr %rd.i2593, align 4 - %shr.i9.i2594 = lshr i32 %insn, 25 - %and.i10.i2595 = and i32 %shr.i9.i2594, 1 - store i32 %and.i10.i2595, ptr %u, align 4 - %shr.i11.i2596 = lshr i32 %insn, 29 - %add.i.i2597 = add nuw nsw i32 %shr.i11.i2596, 1 - %nf.i2598 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2597, ptr %nf.i2598, align 4 - %shr.i12.i2599 = lshr i32 %insn, 15 - %and.i13.i2600 = and i32 %shr.i12.i2599, 31 - %rs1.i2601 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2600, ptr %rs1.i2601, align 4 - %shr.i14.i2602 = lshr i32 %insn, 20 - %and.i15.i2603 = and i32 %shr.i14.i2602, 31 - %rs2.i2604 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2603, ptr %rs2.i2604, align 4 + %shr.i.i2573 = lshr i32 %insn, 7 + %and.i.i2574 = and i32 %shr.i.i2573, 31 + %rd.i2575 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2574, ptr %rd.i2575, align 4 + %shr.i9.i2576 = lshr i32 %insn, 25 + %and.i10.i2577 = and i32 %shr.i9.i2576, 1 + store i32 %and.i10.i2577, ptr %u, align 4 + %shr.i11.i2578 = lshr i32 %insn, 29 + %add.i.i2579 = add nuw nsw i32 %shr.i11.i2578, 1 + %nf.i2580 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2579, ptr %nf.i2580, align 4 + %shr.i12.i2581 = lshr i32 %insn, 15 + %and.i13.i2582 = and i32 %shr.i12.i2581, 31 + %rs1.i2583 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2582, ptr %rs1.i2583, align 4 + %shr.i14.i2584 = lshr i32 %insn, 20 + %and.i15.i2585 = and i32 %shr.i14.i2584, 31 + %rs2.i2586 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2585, ptr %rs2.i2586, align 4 %call602 = call fastcc zeroext i1 @trans_vsse8_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call602, label %return, label %sw.epilog3868 sw.bb606: ; preds = %sw.bb562 - %shr.i.i2605 = lshr i32 %insn, 7 - %and.i.i2606 = and i32 %shr.i.i2605, 31 - %rd.i2607 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2606, ptr %rd.i2607, align 4 - %shr.i9.i2608 = lshr i32 %insn, 25 - %and.i10.i2609 = and i32 %shr.i9.i2608, 1 - store i32 %and.i10.i2609, ptr %u, align 4 - %shr.i11.i2610 = lshr i32 %insn, 29 - %add.i.i2611 = add nuw nsw i32 %shr.i11.i2610, 1 - %nf.i2612 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2611, ptr %nf.i2612, align 4 - %shr.i12.i2613 = lshr i32 %insn, 15 - %and.i13.i2614 = and i32 %shr.i12.i2613, 31 - %rs1.i2615 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2614, ptr %rs1.i2615, align 4 - %shr.i14.i2616 = lshr i32 %insn, 20 - %and.i15.i2617 = and i32 %shr.i14.i2616, 31 - %rs2.i2618 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2617, ptr %rs2.i2618, align 4 + %shr.i.i2587 = lshr i32 %insn, 7 + %and.i.i2588 = and i32 %shr.i.i2587, 31 + %rd.i2589 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2588, ptr %rd.i2589, align 4 + %shr.i9.i2590 = lshr i32 %insn, 25 + %and.i10.i2591 = and i32 %shr.i9.i2590, 1 + store i32 %and.i10.i2591, ptr %u, align 4 + %shr.i11.i2592 = lshr i32 %insn, 29 + %add.i.i2593 = add nuw nsw i32 %shr.i11.i2592, 1 + %nf.i2594 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2593, ptr %nf.i2594, align 4 + %shr.i12.i2595 = lshr i32 %insn, 15 + %and.i13.i2596 = and i32 %shr.i12.i2595, 31 + %rs1.i2597 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2596, ptr %rs1.i2597, align 4 + %shr.i14.i2598 = lshr i32 %insn, 20 + %and.i15.i2599 = and i32 %shr.i14.i2598, 31 + %rs2.i2600 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2599, ptr %rs2.i2600, align 4 %call607 = call fastcc zeroext i1 @trans_vsxei8_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call607, label %return, label %sw.epilog3868 sw.bb611: ; preds = %sw.bb559 - %shr.i.i2619 = lshr i32 %insn, 20 - %and.i.i2620 = and i32 %shr.i.i2619, 31 - %rs2.i2621 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 - store i32 %and.i.i2620, ptr %rs2.i2621, align 4 - %shr.i6.i2622 = lshr i32 %insn, 7 - %and.i7.i2623 = and i32 %shr.i6.i2622, 31 + %shr.i.i2601 = lshr i32 %insn, 20 + %and.i.i2602 = and i32 %shr.i.i2601, 31 + %rs2.i2603 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 + store i32 %and.i.i2602, ptr %rs2.i2603, align 4 + %shr.i6.i2604 = lshr i32 %insn, 7 + %and.i7.i2605 = and i32 %shr.i6.i2604, 31 %74 = ashr i32 %insn, 20 - %shl57.i.i2624 = and i32 %74, -32 - %or.i.i2625 = or disjoint i32 %and.i7.i2623, %shl57.i.i2624 - store i32 %or.i.i2625, ptr %u, align 4 - %shr.i9.i2626 = lshr i32 %insn, 15 - %and.i10.i2627 = and i32 %shr.i9.i2626, 31 - %rs1.i2628 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2627, ptr %rs1.i2628, align 4 + %shl57.i.i2606 = and i32 %74, -32 + %or.i.i2607 = or disjoint i32 %and.i7.i2605, %shl57.i.i2606 + store i32 %or.i.i2607, ptr %u, align 4 + %shr.i9.i2608 = lshr i32 %insn, 15 + %and.i10.i2609 = and i32 %shr.i9.i2608, 31 + %rs1.i2610 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2609, ptr %rs1.i2610, align 4 %call612 = call fastcc zeroext i1 @trans_fsh(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call612, label %return, label %sw.epilog3868 sw.bb615: ; preds = %sw.bb559 - %shr.i.i2629 = lshr i32 %insn, 20 - %and.i.i2630 = and i32 %shr.i.i2629, 31 - %rs2.i2631 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 - store i32 %and.i.i2630, ptr %rs2.i2631, align 4 - %shr.i6.i2632 = lshr i32 %insn, 7 - %and.i7.i2633 = and i32 %shr.i6.i2632, 31 + %shr.i.i2611 = lshr i32 %insn, 20 + %and.i.i2612 = and i32 %shr.i.i2611, 31 + %rs2.i2613 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 + store i32 %and.i.i2612, ptr %rs2.i2613, align 4 + %shr.i6.i2614 = lshr i32 %insn, 7 + %and.i7.i2615 = and i32 %shr.i6.i2614, 31 %75 = ashr i32 %insn, 20 - %shl57.i.i2634 = and i32 %75, -32 - %or.i.i2635 = or disjoint i32 %and.i7.i2633, %shl57.i.i2634 - store i32 %or.i.i2635, ptr %u, align 4 - %shr.i9.i2636 = lshr i32 %insn, 15 - %and.i10.i2637 = and i32 %shr.i9.i2636, 31 - %rs1.i2638 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2637, ptr %rs1.i2638, align 4 + %shl57.i.i2616 = and i32 %75, -32 + %or.i.i2617 = or disjoint i32 %and.i7.i2615, %shl57.i.i2616 + store i32 %or.i.i2617, ptr %u, align 4 + %shr.i9.i2618 = lshr i32 %insn, 15 + %and.i10.i2619 = and i32 %shr.i9.i2618, 31 + %rs1.i2620 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2619, ptr %rs1.i2620, align 4 %call616 = call fastcc zeroext i1 @trans_fsw(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call616, label %return, label %sw.epilog3868 sw.bb619: ; preds = %sw.bb559 - %shr.i.i2639 = lshr i32 %insn, 20 - %and.i.i2640 = and i32 %shr.i.i2639, 31 - %rs2.i2641 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 - store i32 %and.i.i2640, ptr %rs2.i2641, align 4 - %shr.i6.i2642 = lshr i32 %insn, 7 - %and.i7.i2643 = and i32 %shr.i6.i2642, 31 + %shr.i.i2621 = lshr i32 %insn, 20 + %and.i.i2622 = and i32 %shr.i.i2621, 31 + %rs2.i2623 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 2 + store i32 %and.i.i2622, ptr %rs2.i2623, align 4 + %shr.i6.i2624 = lshr i32 %insn, 7 + %and.i7.i2625 = and i32 %shr.i6.i2624, 31 %76 = ashr i32 %insn, 20 - %shl57.i.i2644 = and i32 %76, -32 - %or.i.i2645 = or disjoint i32 %and.i7.i2643, %shl57.i.i2644 - store i32 %or.i.i2645, ptr %u, align 4 - %shr.i9.i2646 = lshr i32 %insn, 15 - %and.i10.i2647 = and i32 %shr.i9.i2646, 31 - %rs1.i2648 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2647, ptr %rs1.i2648, align 4 + %shl57.i.i2626 = and i32 %76, -32 + %or.i.i2627 = or disjoint i32 %and.i7.i2625, %shl57.i.i2626 + store i32 %or.i.i2627, ptr %u, align 4 + %shr.i9.i2628 = lshr i32 %insn, 15 + %and.i10.i2629 = and i32 %shr.i9.i2628, 31 + %rs1.i2630 = getelementptr inbounds %struct.arg_s, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2629, ptr %rs1.i2630, align 4 %call620 = call fastcc zeroext i1 @trans_fsd(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call620, label %return, label %sw.epilog3868 @@ -8591,24 +8584,24 @@ sw.bb623: ; preds = %sw.bb559 sw.bb625: ; preds = %sw.bb623 %77 = and i32 %insn, 134217728 %trunc1937.not = icmp eq i32 %77, 0 - %shr.i7.i2652 = lshr i32 %insn, 25 - %and.i8.i2653 = and i32 %shr.i7.i2652, 1 + %shr.i7.i2634 = lshr i32 %insn, 25 + %and.i8.i2635 = and i32 %shr.i7.i2634, 1 br i1 %trunc1937.not, label %sw.bb628, label %sw.bb636 sw.bb628: ; preds = %sw.bb625 - %shr.i.i2649 = lshr i32 %insn, 15 - %and.i.i2650 = and i32 %shr.i.i2649, 31 - %rs1.i2651 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2650, ptr %rs1.i2651, align 4 - store i32 %and.i8.i2653, ptr %u, align 4 - %shr.i9.i2654 = lshr i32 %insn, 7 - %and.i10.i2655 = and i32 %shr.i9.i2654, 31 - %rd.i2656 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2655, ptr %rd.i2656, align 4 - %shr.i11.i2657 = lshr i32 %insn, 29 - %add.i.i2658 = add nuw nsw i32 %shr.i11.i2657, 1 - %nf.i2659 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2658, ptr %nf.i2659, align 4 + %shr.i.i2631 = lshr i32 %insn, 15 + %and.i.i2632 = and i32 %shr.i.i2631, 31 + %rs1.i2633 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2632, ptr %rs1.i2633, align 4 + store i32 %and.i8.i2635, ptr %u, align 4 + %shr.i9.i2636 = lshr i32 %insn, 7 + %and.i10.i2637 = and i32 %shr.i9.i2636, 31 + %rd.i2638 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2637, ptr %rd.i2638, align 4 + %shr.i11.i2639 = lshr i32 %insn, 29 + %add.i.i2640 = add nuw nsw i32 %shr.i11.i2639, 1 + %nf.i2641 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2640, ptr %nf.i2641, align 4 %78 = and i32 %insn, 32505856 %cond78 = icmp eq i32 %78, 0 br i1 %cond78, label %sw.bb631, label %sw.epilog3868 @@ -8618,46 +8611,46 @@ sw.bb631: ; preds = %sw.bb628 br i1 %call632, label %return, label %sw.epilog3868 sw.bb636: ; preds = %sw.bb625 - %shr.i.i2660 = lshr i32 %insn, 7 - %and.i.i2661 = and i32 %shr.i.i2660, 31 - %rd.i2662 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2661, ptr %rd.i2662, align 4 - store i32 %and.i8.i2653, ptr %u, align 4 - %shr.i11.i2665 = lshr i32 %insn, 29 - %add.i.i2666 = add nuw nsw i32 %shr.i11.i2665, 1 - %nf.i2667 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2666, ptr %nf.i2667, align 4 - %shr.i12.i2668 = lshr i32 %insn, 15 - %and.i13.i2669 = and i32 %shr.i12.i2668, 31 - %rs1.i2670 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2669, ptr %rs1.i2670, align 4 - %shr.i14.i2671 = lshr i32 %insn, 20 - %and.i15.i2672 = and i32 %shr.i14.i2671, 31 - %rs2.i2673 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2672, ptr %rs2.i2673, align 4 + %shr.i.i2642 = lshr i32 %insn, 7 + %and.i.i2643 = and i32 %shr.i.i2642, 31 + %rd.i2644 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2643, ptr %rd.i2644, align 4 + store i32 %and.i8.i2635, ptr %u, align 4 + %shr.i11.i2647 = lshr i32 %insn, 29 + %add.i.i2648 = add nuw nsw i32 %shr.i11.i2647, 1 + %nf.i2649 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2648, ptr %nf.i2649, align 4 + %shr.i12.i2650 = lshr i32 %insn, 15 + %and.i13.i2651 = and i32 %shr.i12.i2650, 31 + %rs1.i2652 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2651, ptr %rs1.i2652, align 4 + %shr.i14.i2653 = lshr i32 %insn, 20 + %and.i15.i2654 = and i32 %shr.i14.i2653, 31 + %rs2.i2655 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2654, ptr %rs2.i2655, align 4 %call637 = call fastcc zeroext i1 @trans_vsse16_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call637, label %return, label %sw.epilog3868 sw.bb641: ; preds = %sw.bb623 - %shr.i.i2674 = lshr i32 %insn, 7 - %and.i.i2675 = and i32 %shr.i.i2674, 31 - %rd.i2676 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2675, ptr %rd.i2676, align 4 - %shr.i9.i2677 = lshr i32 %insn, 25 - %and.i10.i2678 = and i32 %shr.i9.i2677, 1 - store i32 %and.i10.i2678, ptr %u, align 4 - %shr.i11.i2679 = lshr i32 %insn, 29 - %add.i.i2680 = add nuw nsw i32 %shr.i11.i2679, 1 - %nf.i2681 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2680, ptr %nf.i2681, align 4 - %shr.i12.i2682 = lshr i32 %insn, 15 - %and.i13.i2683 = and i32 %shr.i12.i2682, 31 - %rs1.i2684 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2683, ptr %rs1.i2684, align 4 - %shr.i14.i2685 = lshr i32 %insn, 20 - %and.i15.i2686 = and i32 %shr.i14.i2685, 31 - %rs2.i2687 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2686, ptr %rs2.i2687, align 4 + %shr.i.i2656 = lshr i32 %insn, 7 + %and.i.i2657 = and i32 %shr.i.i2656, 31 + %rd.i2658 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2657, ptr %rd.i2658, align 4 + %shr.i9.i2659 = lshr i32 %insn, 25 + %and.i10.i2660 = and i32 %shr.i9.i2659, 1 + store i32 %and.i10.i2660, ptr %u, align 4 + %shr.i11.i2661 = lshr i32 %insn, 29 + %add.i.i2662 = add nuw nsw i32 %shr.i11.i2661, 1 + %nf.i2663 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2662, ptr %nf.i2663, align 4 + %shr.i12.i2664 = lshr i32 %insn, 15 + %and.i13.i2665 = and i32 %shr.i12.i2664, 31 + %rs1.i2666 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2665, ptr %rs1.i2666, align 4 + %shr.i14.i2667 = lshr i32 %insn, 20 + %and.i15.i2668 = and i32 %shr.i14.i2667, 31 + %rs2.i2669 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2668, ptr %rs2.i2669, align 4 %call642 = call fastcc zeroext i1 @trans_vsxei16_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call642, label %return, label %sw.epilog3868 @@ -8671,24 +8664,24 @@ sw.bb646: ; preds = %sw.bb559 sw.bb648: ; preds = %sw.bb646 %79 = and i32 %insn, 134217728 %trunc1936.not = icmp eq i32 %79, 0 - %shr.i7.i2691 = lshr i32 %insn, 25 - %and.i8.i2692 = and i32 %shr.i7.i2691, 1 + %shr.i7.i2673 = lshr i32 %insn, 25 + %and.i8.i2674 = and i32 %shr.i7.i2673, 1 br i1 %trunc1936.not, label %sw.bb651, label %sw.bb659 sw.bb651: ; preds = %sw.bb648 - %shr.i.i2688 = lshr i32 %insn, 15 - %and.i.i2689 = and i32 %shr.i.i2688, 31 - %rs1.i2690 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2689, ptr %rs1.i2690, align 4 - store i32 %and.i8.i2692, ptr %u, align 4 - %shr.i9.i2693 = lshr i32 %insn, 7 - %and.i10.i2694 = and i32 %shr.i9.i2693, 31 - %rd.i2695 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2694, ptr %rd.i2695, align 4 - %shr.i11.i2696 = lshr i32 %insn, 29 - %add.i.i2697 = add nuw nsw i32 %shr.i11.i2696, 1 - %nf.i2698 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2697, ptr %nf.i2698, align 4 + %shr.i.i2670 = lshr i32 %insn, 15 + %and.i.i2671 = and i32 %shr.i.i2670, 31 + %rs1.i2672 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2671, ptr %rs1.i2672, align 4 + store i32 %and.i8.i2674, ptr %u, align 4 + %shr.i9.i2675 = lshr i32 %insn, 7 + %and.i10.i2676 = and i32 %shr.i9.i2675, 31 + %rd.i2677 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2676, ptr %rd.i2677, align 4 + %shr.i11.i2678 = lshr i32 %insn, 29 + %add.i.i2679 = add nuw nsw i32 %shr.i11.i2678, 1 + %nf.i2680 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2679, ptr %nf.i2680, align 4 %80 = and i32 %insn, 32505856 %cond77 = icmp eq i32 %80, 0 br i1 %cond77, label %sw.bb654, label %sw.epilog3868 @@ -8698,46 +8691,46 @@ sw.bb654: ; preds = %sw.bb651 br i1 %call655, label %return, label %sw.epilog3868 sw.bb659: ; preds = %sw.bb648 - %shr.i.i2699 = lshr i32 %insn, 7 - %and.i.i2700 = and i32 %shr.i.i2699, 31 - %rd.i2701 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2700, ptr %rd.i2701, align 4 - store i32 %and.i8.i2692, ptr %u, align 4 - %shr.i11.i2704 = lshr i32 %insn, 29 - %add.i.i2705 = add nuw nsw i32 %shr.i11.i2704, 1 - %nf.i2706 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2705, ptr %nf.i2706, align 4 - %shr.i12.i2707 = lshr i32 %insn, 15 - %and.i13.i2708 = and i32 %shr.i12.i2707, 31 - %rs1.i2709 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2708, ptr %rs1.i2709, align 4 - %shr.i14.i2710 = lshr i32 %insn, 20 - %and.i15.i2711 = and i32 %shr.i14.i2710, 31 - %rs2.i2712 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2711, ptr %rs2.i2712, align 4 + %shr.i.i2681 = lshr i32 %insn, 7 + %and.i.i2682 = and i32 %shr.i.i2681, 31 + %rd.i2683 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2682, ptr %rd.i2683, align 4 + store i32 %and.i8.i2674, ptr %u, align 4 + %shr.i11.i2686 = lshr i32 %insn, 29 + %add.i.i2687 = add nuw nsw i32 %shr.i11.i2686, 1 + %nf.i2688 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2687, ptr %nf.i2688, align 4 + %shr.i12.i2689 = lshr i32 %insn, 15 + %and.i13.i2690 = and i32 %shr.i12.i2689, 31 + %rs1.i2691 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2690, ptr %rs1.i2691, align 4 + %shr.i14.i2692 = lshr i32 %insn, 20 + %and.i15.i2693 = and i32 %shr.i14.i2692, 31 + %rs2.i2694 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2693, ptr %rs2.i2694, align 4 %call660 = call fastcc zeroext i1 @trans_vsse32_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call660, label %return, label %sw.epilog3868 sw.bb664: ; preds = %sw.bb646 - %shr.i.i2713 = lshr i32 %insn, 7 - %and.i.i2714 = and i32 %shr.i.i2713, 31 - %rd.i2715 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2714, ptr %rd.i2715, align 4 - %shr.i9.i2716 = lshr i32 %insn, 25 - %and.i10.i2717 = and i32 %shr.i9.i2716, 1 - store i32 %and.i10.i2717, ptr %u, align 4 - %shr.i11.i2718 = lshr i32 %insn, 29 - %add.i.i2719 = add nuw nsw i32 %shr.i11.i2718, 1 - %nf.i2720 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2719, ptr %nf.i2720, align 4 - %shr.i12.i2721 = lshr i32 %insn, 15 - %and.i13.i2722 = and i32 %shr.i12.i2721, 31 - %rs1.i2723 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2722, ptr %rs1.i2723, align 4 - %shr.i14.i2724 = lshr i32 %insn, 20 - %and.i15.i2725 = and i32 %shr.i14.i2724, 31 - %rs2.i2726 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2725, ptr %rs2.i2726, align 4 + %shr.i.i2695 = lshr i32 %insn, 7 + %and.i.i2696 = and i32 %shr.i.i2695, 31 + %rd.i2697 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2696, ptr %rd.i2697, align 4 + %shr.i9.i2698 = lshr i32 %insn, 25 + %and.i10.i2699 = and i32 %shr.i9.i2698, 1 + store i32 %and.i10.i2699, ptr %u, align 4 + %shr.i11.i2700 = lshr i32 %insn, 29 + %add.i.i2701 = add nuw nsw i32 %shr.i11.i2700, 1 + %nf.i2702 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2701, ptr %nf.i2702, align 4 + %shr.i12.i2703 = lshr i32 %insn, 15 + %and.i13.i2704 = and i32 %shr.i12.i2703, 31 + %rs1.i2705 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2704, ptr %rs1.i2705, align 4 + %shr.i14.i2706 = lshr i32 %insn, 20 + %and.i15.i2707 = and i32 %shr.i14.i2706, 31 + %rs2.i2708 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2707, ptr %rs2.i2708, align 4 %call665 = call fastcc zeroext i1 @trans_vsxei32_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call665, label %return, label %sw.epilog3868 @@ -8751,24 +8744,24 @@ sw.bb669: ; preds = %sw.bb559 sw.bb671: ; preds = %sw.bb669 %81 = and i32 %insn, 134217728 %trunc1935.not = icmp eq i32 %81, 0 - %shr.i7.i2730 = lshr i32 %insn, 25 - %and.i8.i2731 = and i32 %shr.i7.i2730, 1 + %shr.i7.i2712 = lshr i32 %insn, 25 + %and.i8.i2713 = and i32 %shr.i7.i2712, 1 br i1 %trunc1935.not, label %sw.bb674, label %sw.bb682 sw.bb674: ; preds = %sw.bb671 - %shr.i.i2727 = lshr i32 %insn, 15 - %and.i.i2728 = and i32 %shr.i.i2727, 31 - %rs1.i2729 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 - store i32 %and.i.i2728, ptr %rs1.i2729, align 4 - store i32 %and.i8.i2731, ptr %u, align 4 - %shr.i9.i2732 = lshr i32 %insn, 7 - %and.i10.i2733 = and i32 %shr.i9.i2732, 31 - %rd.i2734 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 - store i32 %and.i10.i2733, ptr %rd.i2734, align 4 - %shr.i11.i2735 = lshr i32 %insn, 29 - %add.i.i2736 = add nuw nsw i32 %shr.i11.i2735, 1 - %nf.i2737 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 - store i32 %add.i.i2736, ptr %nf.i2737, align 4 + %shr.i.i2709 = lshr i32 %insn, 15 + %and.i.i2710 = and i32 %shr.i.i2709, 31 + %rs1.i2711 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 2 + store i32 %and.i.i2710, ptr %rs1.i2711, align 4 + store i32 %and.i8.i2713, ptr %u, align 4 + %shr.i9.i2714 = lshr i32 %insn, 7 + %and.i10.i2715 = and i32 %shr.i9.i2714, 31 + %rd.i2716 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 1 + store i32 %and.i10.i2715, ptr %rd.i2716, align 4 + %shr.i11.i2717 = lshr i32 %insn, 29 + %add.i.i2718 = add nuw nsw i32 %shr.i11.i2717, 1 + %nf.i2719 = getelementptr inbounds %struct.arg_r2nfvm, ptr %u, i64 0, i32 3 + store i32 %add.i.i2718, ptr %nf.i2719, align 4 %82 = and i32 %insn, 32505856 %cond76 = icmp eq i32 %82, 0 br i1 %cond76, label %sw.bb677, label %sw.epilog3868 @@ -8778,52 +8771,49 @@ sw.bb677: ; preds = %sw.bb674 br i1 %call678, label %return, label %sw.epilog3868 sw.bb682: ; preds = %sw.bb671 - %shr.i.i2738 = lshr i32 %insn, 7 - %and.i.i2739 = and i32 %shr.i.i2738, 31 - %rd.i2740 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2739, ptr %rd.i2740, align 4 - store i32 %and.i8.i2731, ptr %u, align 4 - %shr.i11.i2743 = lshr i32 %insn, 29 - %add.i.i2744 = add nuw nsw i32 %shr.i11.i2743, 1 - %nf.i2745 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2744, ptr %nf.i2745, align 4 - %shr.i12.i2746 = lshr i32 %insn, 15 - %and.i13.i2747 = and i32 %shr.i12.i2746, 31 - %rs1.i2748 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2747, ptr %rs1.i2748, align 4 - %shr.i14.i2749 = lshr i32 %insn, 20 - %and.i15.i2750 = and i32 %shr.i14.i2749, 31 - %rs2.i2751 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2750, ptr %rs2.i2751, align 4 + %shr.i.i2720 = lshr i32 %insn, 7 + %and.i.i2721 = and i32 %shr.i.i2720, 31 + %rd.i2722 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2721, ptr %rd.i2722, align 4 + store i32 %and.i8.i2713, ptr %u, align 4 + %shr.i11.i2725 = lshr i32 %insn, 29 + %add.i.i2726 = add nuw nsw i32 %shr.i11.i2725, 1 + %nf.i2727 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2726, ptr %nf.i2727, align 4 + %shr.i12.i2728 = lshr i32 %insn, 15 + %and.i13.i2729 = and i32 %shr.i12.i2728, 31 + %rs1.i2730 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2729, ptr %rs1.i2730, align 4 + %shr.i14.i2731 = lshr i32 %insn, 20 + %and.i15.i2732 = and i32 %shr.i14.i2731, 31 + %rs2.i2733 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2732, ptr %rs2.i2733, align 4 %call683 = call fastcc zeroext i1 @trans_vsse64_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call683, label %return, label %sw.epilog3868 sw.bb687: ; preds = %sw.bb669 - %shr.i.i2752 = lshr i32 %insn, 7 - %and.i.i2753 = and i32 %shr.i.i2752, 31 - %rd.i2754 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 - store i32 %and.i.i2753, ptr %rd.i2754, align 4 - %shr.i9.i2755 = lshr i32 %insn, 25 - %and.i10.i2756 = and i32 %shr.i9.i2755, 1 - store i32 %and.i10.i2756, ptr %u, align 4 - %shr.i11.i2757 = lshr i32 %insn, 29 - %add.i.i2758 = add nuw nsw i32 %shr.i11.i2757, 1 - %nf.i2759 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 - store i32 %add.i.i2758, ptr %nf.i2759, align 4 - %shr.i12.i2760 = lshr i32 %insn, 15 - %and.i13.i2761 = and i32 %shr.i12.i2760, 31 - %rs1.i2762 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 - store i32 %and.i13.i2761, ptr %rs1.i2762, align 4 - %shr.i14.i2763 = lshr i32 %insn, 20 - %and.i15.i2764 = and i32 %shr.i14.i2763, 31 - %rs2.i2765 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 - store i32 %and.i15.i2764, ptr %rs2.i2765, align 4 + %shr.i.i2734 = lshr i32 %insn, 7 + %and.i.i2735 = and i32 %shr.i.i2734, 31 + %rd.i2736 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 1 + store i32 %and.i.i2735, ptr %rd.i2736, align 4 + %shr.i9.i2737 = lshr i32 %insn, 25 + %and.i10.i2738 = and i32 %shr.i9.i2737, 1 + store i32 %and.i10.i2738, ptr %u, align 4 + %shr.i11.i2739 = lshr i32 %insn, 29 + %add.i.i2740 = add nuw nsw i32 %shr.i11.i2739, 1 + %nf.i2741 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 4 + store i32 %add.i.i2740, ptr %nf.i2741, align 4 + %shr.i12.i2742 = lshr i32 %insn, 15 + %and.i13.i2743 = and i32 %shr.i12.i2742, 31 + %rs1.i2744 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 2 + store i32 %and.i13.i2743, ptr %rs1.i2744, align 4 + %shr.i14.i2745 = lshr i32 %insn, 20 + %and.i15.i2746 = and i32 %shr.i14.i2745, 31 + %rs2.i2747 = getelementptr inbounds %struct.arg_rnfvm, ptr %u, i64 0, i32 3 + store i32 %and.i15.i2746, ptr %rs2.i2747, align 4 %call688 = call fastcc zeroext i1 @trans_vsxei64_v(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call688, label %return, label %sw.epilog3868 -sw.bb559.unreachabledefault: ; preds = %sw.bb559 - unreachable - sw.bb693: ; preds = %entry %and694 = and i32 %insn, -134189056 switch i32 %and694, label %sw.epilog3868 [ @@ -8852,29 +8842,29 @@ sw.bb693: ; preds = %entry ] sw.bb695: ; preds = %sw.bb693 - %shr.i.i2766 = lshr i32 %insn, 7 - %and.i.i2767 = and i32 %shr.i.i2766, 31 - %rd.i2768 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2767, ptr %rd.i2768, align 4 - %shr.i9.i2769 = lshr i32 %insn, 26 - %and.i10.i2770 = and i32 %shr.i9.i2769, 1 - store i32 %and.i10.i2770, ptr %u, align 4 - %shr.i11.i2771 = lshr i32 %insn, 15 - %and.i12.i = and i32 %shr.i11.i2771, 31 - %rs1.i2772 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i, ptr %rs1.i2772, align 4 + %shr.i.i2748 = lshr i32 %insn, 7 + %and.i.i2749 = and i32 %shr.i.i2748, 31 + %rd.i2750 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2749, ptr %rd.i2750, align 4 + %shr.i9.i2751 = lshr i32 %insn, 26 + %and.i10.i2752 = and i32 %shr.i9.i2751, 1 + store i32 %and.i10.i2752, ptr %u, align 4 + %shr.i11.i2753 = lshr i32 %insn, 15 + %and.i12.i = and i32 %shr.i11.i2753, 31 + %rs1.i2754 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i, ptr %rs1.i2754, align 4 %shr.i13.i = lshr i32 %insn, 20 %and.i14.i = and i32 %shr.i13.i, 31 - %rs2.i2773 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i, ptr %rs2.i2773, align 4 + %rs2.i2755 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i, ptr %rs2.i2755, align 4 %shr.i15.i = lshr i32 %insn, 25 %and.i16.i = and i32 %shr.i15.i, 1 %rl.i = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 store i32 %and.i16.i, ptr %rl.i, align 4 %83 = getelementptr i8, ptr %ctx, i64 92 %ctx.val.i = load i32, ptr %83, align 4 - %and.i.i2774 = and i32 %ctx.val.i, 1 - %tobool.i.i.not = icmp eq i32 %and.i.i2774, 0 + %and.i.i2756 = and i32 %ctx.val.i, 1 + %tobool.i.i.not = icmp eq i32 %and.i.i2756, 0 br i1 %tobool.i.i.not, label %sw.epilog3868, label %trans_amoadd_w.exit.thread trans_amoadd_w.exit.thread: ; preds = %sw.bb695 @@ -8882,132 +8872,132 @@ trans_amoadd_w.exit.thread: ; preds = %sw.bb695 br label %return sw.bb699: ; preds = %sw.bb693 - %shr.i.i2776 = lshr i32 %insn, 7 - %and.i.i2777 = and i32 %shr.i.i2776, 31 - %rd.i2778 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2777, ptr %rd.i2778, align 4 - %shr.i9.i2779 = lshr i32 %insn, 26 - %and.i10.i2780 = and i32 %shr.i9.i2779, 1 - store i32 %and.i10.i2780, ptr %u, align 4 - %shr.i11.i2781 = lshr i32 %insn, 15 - %and.i12.i2782 = and i32 %shr.i11.i2781, 31 - %rs1.i2783 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2782, ptr %rs1.i2783, align 4 - %shr.i13.i2784 = lshr i32 %insn, 20 - %and.i14.i2785 = and i32 %shr.i13.i2784, 31 - %rs2.i2786 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2785, ptr %rs2.i2786, align 4 - %shr.i15.i2787 = lshr i32 %insn, 25 - %and.i16.i2788 = and i32 %shr.i15.i2787, 1 - %rl.i2789 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2788, ptr %rl.i2789, align 4 + %shr.i.i2758 = lshr i32 %insn, 7 + %and.i.i2759 = and i32 %shr.i.i2758, 31 + %rd.i2760 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2759, ptr %rd.i2760, align 4 + %shr.i9.i2761 = lshr i32 %insn, 26 + %and.i10.i2762 = and i32 %shr.i9.i2761, 1 + store i32 %and.i10.i2762, ptr %u, align 4 + %shr.i11.i2763 = lshr i32 %insn, 15 + %and.i12.i2764 = and i32 %shr.i11.i2763, 31 + %rs1.i2765 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2764, ptr %rs1.i2765, align 4 + %shr.i13.i2766 = lshr i32 %insn, 20 + %and.i14.i2767 = and i32 %shr.i13.i2766, 31 + %rs2.i2768 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2767, ptr %rs2.i2768, align 4 + %shr.i15.i2769 = lshr i32 %insn, 25 + %and.i16.i2770 = and i32 %shr.i15.i2769, 1 + %rl.i2771 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2770, ptr %rl.i2771, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_add_i64, i32 noundef 227) br label %return sw.bb703: ; preds = %sw.bb693 - %shr.i.i2791 = lshr i32 %insn, 7 - %and.i.i2792 = and i32 %shr.i.i2791, 31 - %rd.i2793 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2792, ptr %rd.i2793, align 4 - %shr.i9.i2794 = lshr i32 %insn, 26 - %and.i10.i2795 = and i32 %shr.i9.i2794, 1 - store i32 %and.i10.i2795, ptr %u, align 4 - %shr.i11.i2796 = lshr i32 %insn, 15 - %and.i12.i2797 = and i32 %shr.i11.i2796, 31 - %rs1.i2798 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2797, ptr %rs1.i2798, align 4 - %shr.i13.i2799 = lshr i32 %insn, 20 - %and.i14.i2800 = and i32 %shr.i13.i2799, 31 - %rs2.i2801 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2800, ptr %rs2.i2801, align 4 - %shr.i15.i2802 = lshr i32 %insn, 25 - %and.i16.i2803 = and i32 %shr.i15.i2802, 1 - %rl.i2804 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2803, ptr %rl.i2804, align 4 + %shr.i.i2773 = lshr i32 %insn, 7 + %and.i.i2774 = and i32 %shr.i.i2773, 31 + %rd.i2775 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2774, ptr %rd.i2775, align 4 + %shr.i9.i2776 = lshr i32 %insn, 26 + %and.i10.i2777 = and i32 %shr.i9.i2776, 1 + store i32 %and.i10.i2777, ptr %u, align 4 + %shr.i11.i2778 = lshr i32 %insn, 15 + %and.i12.i2779 = and i32 %shr.i11.i2778, 31 + %rs1.i2780 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2779, ptr %rs1.i2780, align 4 + %shr.i13.i2781 = lshr i32 %insn, 20 + %and.i14.i2782 = and i32 %shr.i13.i2781, 31 + %rs2.i2783 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2782, ptr %rs2.i2783, align 4 + %shr.i15.i2784 = lshr i32 %insn, 25 + %and.i16.i2785 = and i32 %shr.i15.i2784, 1 + %rl.i2786 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2785, ptr %rl.i2786, align 4 %84 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i2805 = load i32, ptr %84, align 4 - %and.i.i2806 = and i32 %ctx.val.i2805, 1 - %tobool.i.i2807.not = icmp eq i32 %and.i.i2806, 0 - br i1 %tobool.i.i2807.not, label %sw.epilog3868, label %trans_amoswap_w.exit.thread + %ctx.val.i2787 = load i32, ptr %84, align 4 + %and.i.i2788 = and i32 %ctx.val.i2787, 1 + %tobool.i.i2789.not = icmp eq i32 %and.i.i2788, 0 + br i1 %tobool.i.i2789.not, label %sw.epilog3868, label %trans_amoswap_w.exit.thread trans_amoswap_w.exit.thread: ; preds = %sw.bb703 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_xchg_i64, i32 noundef 234) br label %return sw.bb707: ; preds = %sw.bb693 - %shr.i.i2810 = lshr i32 %insn, 7 - %and.i.i2811 = and i32 %shr.i.i2810, 31 - %rd.i2812 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2811, ptr %rd.i2812, align 4 - %shr.i9.i2813 = lshr i32 %insn, 26 - %and.i10.i2814 = and i32 %shr.i9.i2813, 1 - store i32 %and.i10.i2814, ptr %u, align 4 - %shr.i11.i2815 = lshr i32 %insn, 15 - %and.i12.i2816 = and i32 %shr.i11.i2815, 31 - %rs1.i2817 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2816, ptr %rs1.i2817, align 4 - %shr.i13.i2818 = lshr i32 %insn, 20 - %and.i14.i2819 = and i32 %shr.i13.i2818, 31 - %rs2.i2820 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2819, ptr %rs2.i2820, align 4 - %shr.i15.i2821 = lshr i32 %insn, 25 - %and.i16.i2822 = and i32 %shr.i15.i2821, 1 - %rl.i2823 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2822, ptr %rl.i2823, align 4 + %shr.i.i2792 = lshr i32 %insn, 7 + %and.i.i2793 = and i32 %shr.i.i2792, 31 + %rd.i2794 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2793, ptr %rd.i2794, align 4 + %shr.i9.i2795 = lshr i32 %insn, 26 + %and.i10.i2796 = and i32 %shr.i9.i2795, 1 + store i32 %and.i10.i2796, ptr %u, align 4 + %shr.i11.i2797 = lshr i32 %insn, 15 + %and.i12.i2798 = and i32 %shr.i11.i2797, 31 + %rs1.i2799 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2798, ptr %rs1.i2799, align 4 + %shr.i13.i2800 = lshr i32 %insn, 20 + %and.i14.i2801 = and i32 %shr.i13.i2800, 31 + %rs2.i2802 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2801, ptr %rs2.i2802, align 4 + %shr.i15.i2803 = lshr i32 %insn, 25 + %and.i16.i2804 = and i32 %shr.i15.i2803, 1 + %rl.i2805 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2804, ptr %rl.i2805, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_xchg_i64, i32 noundef 227) br label %return sw.bb711: ; preds = %sw.bb693 - %shr.i.i2825 = lshr i32 %insn, 7 - %and.i.i2826 = and i32 %shr.i.i2825, 31 - %rd.i2827 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2826, ptr %rd.i2827, align 4 + %shr.i.i2807 = lshr i32 %insn, 7 + %and.i.i2808 = and i32 %shr.i.i2807, 31 + %rd.i2809 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2808, ptr %rd.i2809, align 4 %shr.i8.i = lshr i32 %insn, 26 %and.i9.i = and i32 %shr.i8.i, 1 store i32 %and.i9.i, ptr %u, align 4 %shr.i10.i = lshr i32 %insn, 15 %and.i11.i = and i32 %shr.i10.i, 31 - %rs1.i2828 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i11.i, ptr %rs1.i2828, align 4 - %rs2.i2829 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 0, ptr %rs2.i2829, align 4 - %shr.i12.i2830 = lshr i32 %insn, 25 - %and.i13.i2831 = and i32 %shr.i12.i2830, 1 - %rl.i2832 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i13.i2831, ptr %rl.i2832, align 4 + %rs1.i2810 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i11.i, ptr %rs1.i2810, align 4 + %rs2.i2811 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 0, ptr %rs2.i2811, align 4 + %shr.i12.i2812 = lshr i32 %insn, 25 + %and.i13.i2813 = and i32 %shr.i12.i2812, 1 + %rl.i2814 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i13.i2813, ptr %rl.i2814, align 4 %85 = and i32 %insn, 32505856 %cond75 = icmp eq i32 %85, 0 br i1 %cond75, label %sw.bb714, label %sw.epilog3868 sw.bb714: ; preds = %sw.bb711 %86 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i2833 = load i32, ptr %86, align 4 - %and.i.i2834 = and i32 %ctx.val.i2833, 1 - %tobool.i.i2835.not = icmp eq i32 %and.i.i2834, 0 - br i1 %tobool.i.i2835.not, label %sw.epilog3868, label %trans_lr_w.exit.thread + %ctx.val.i2815 = load i32, ptr %86, align 4 + %and.i.i2816 = and i32 %ctx.val.i2815, 1 + %tobool.i.i2817.not = icmp eq i32 %and.i.i2816, 0 + br i1 %tobool.i.i2817.not, label %sw.epilog3868, label %trans_lr_w.exit.thread trans_lr_w.exit.thread: ; preds = %sw.bb714 call fastcc void @gen_lr(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 234) br label %return sw.bb719: ; preds = %sw.bb693 - %shr.i.i2838 = lshr i32 %insn, 7 - %and.i.i2839 = and i32 %shr.i.i2838, 31 - %rd.i2840 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2839, ptr %rd.i2840, align 4 - %shr.i8.i2841 = lshr i32 %insn, 26 - %and.i9.i2842 = and i32 %shr.i8.i2841, 1 - store i32 %and.i9.i2842, ptr %u, align 4 - %shr.i10.i2843 = lshr i32 %insn, 15 - %and.i11.i2844 = and i32 %shr.i10.i2843, 31 - %rs1.i2845 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i11.i2844, ptr %rs1.i2845, align 4 - %rs2.i2846 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 0, ptr %rs2.i2846, align 4 - %shr.i12.i2847 = lshr i32 %insn, 25 - %and.i13.i2848 = and i32 %shr.i12.i2847, 1 - %rl.i2849 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i13.i2848, ptr %rl.i2849, align 4 + %shr.i.i2820 = lshr i32 %insn, 7 + %and.i.i2821 = and i32 %shr.i.i2820, 31 + %rd.i2822 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2821, ptr %rd.i2822, align 4 + %shr.i8.i2823 = lshr i32 %insn, 26 + %and.i9.i2824 = and i32 %shr.i8.i2823, 1 + store i32 %and.i9.i2824, ptr %u, align 4 + %shr.i10.i2825 = lshr i32 %insn, 15 + %and.i11.i2826 = and i32 %shr.i10.i2825, 31 + %rs1.i2827 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i11.i2826, ptr %rs1.i2827, align 4 + %rs2.i2828 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 0, ptr %rs2.i2828, align 4 + %shr.i12.i2829 = lshr i32 %insn, 25 + %and.i13.i2830 = and i32 %shr.i12.i2829, 1 + %rl.i2831 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i13.i2830, ptr %rl.i2831, align 4 %87 = and i32 %insn, 32505856 %cond74 = icmp eq i32 %87, 0 br i1 %cond74, label %sw.bb722, label %sw.epilog3868 @@ -9017,426 +9007,426 @@ sw.bb722: ; preds = %sw.bb719 br label %return sw.bb727: ; preds = %sw.bb693 - %shr.i.i2851 = lshr i32 %insn, 7 - %and.i.i2852 = and i32 %shr.i.i2851, 31 - %rd.i2853 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2852, ptr %rd.i2853, align 4 - %shr.i9.i2854 = lshr i32 %insn, 26 - %and.i10.i2855 = and i32 %shr.i9.i2854, 1 - store i32 %and.i10.i2855, ptr %u, align 4 - %shr.i11.i2856 = lshr i32 %insn, 15 - %and.i12.i2857 = and i32 %shr.i11.i2856, 31 - %rs1.i2858 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2857, ptr %rs1.i2858, align 4 - %shr.i13.i2859 = lshr i32 %insn, 20 - %and.i14.i2860 = and i32 %shr.i13.i2859, 31 - %rs2.i2861 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2860, ptr %rs2.i2861, align 4 - %shr.i15.i2862 = lshr i32 %insn, 25 - %and.i16.i2863 = and i32 %shr.i15.i2862, 1 - %rl.i2864 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2863, ptr %rl.i2864, align 4 + %shr.i.i2833 = lshr i32 %insn, 7 + %and.i.i2834 = and i32 %shr.i.i2833, 31 + %rd.i2835 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2834, ptr %rd.i2835, align 4 + %shr.i9.i2836 = lshr i32 %insn, 26 + %and.i10.i2837 = and i32 %shr.i9.i2836, 1 + store i32 %and.i10.i2837, ptr %u, align 4 + %shr.i11.i2838 = lshr i32 %insn, 15 + %and.i12.i2839 = and i32 %shr.i11.i2838, 31 + %rs1.i2840 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2839, ptr %rs1.i2840, align 4 + %shr.i13.i2841 = lshr i32 %insn, 20 + %and.i14.i2842 = and i32 %shr.i13.i2841, 31 + %rs2.i2843 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2842, ptr %rs2.i2843, align 4 + %shr.i15.i2844 = lshr i32 %insn, 25 + %and.i16.i2845 = and i32 %shr.i15.i2844, 1 + %rl.i2846 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2845, ptr %rl.i2846, align 4 %88 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i2865 = load i32, ptr %88, align 4 - %and.i.i2866 = and i32 %ctx.val.i2865, 1 - %tobool.i.i2867.not = icmp eq i32 %and.i.i2866, 0 - br i1 %tobool.i.i2867.not, label %sw.epilog3868, label %trans_sc_w.exit.thread + %ctx.val.i2847 = load i32, ptr %88, align 4 + %and.i.i2848 = and i32 %ctx.val.i2847, 1 + %tobool.i.i2849.not = icmp eq i32 %and.i.i2848, 0 + br i1 %tobool.i.i2849.not, label %sw.epilog3868, label %trans_sc_w.exit.thread trans_sc_w.exit.thread: ; preds = %sw.bb727 call fastcc void @gen_sc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 234) br label %return sw.bb731: ; preds = %sw.bb693 - %shr.i.i2870 = lshr i32 %insn, 7 - %and.i.i2871 = and i32 %shr.i.i2870, 31 - %rd.i2872 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2871, ptr %rd.i2872, align 4 - %shr.i9.i2873 = lshr i32 %insn, 26 - %and.i10.i2874 = and i32 %shr.i9.i2873, 1 - store i32 %and.i10.i2874, ptr %u, align 4 - %shr.i11.i2875 = lshr i32 %insn, 15 - %and.i12.i2876 = and i32 %shr.i11.i2875, 31 - %rs1.i2877 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2876, ptr %rs1.i2877, align 4 - %shr.i13.i2878 = lshr i32 %insn, 20 - %and.i14.i2879 = and i32 %shr.i13.i2878, 31 - %rs2.i2880 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2879, ptr %rs2.i2880, align 4 - %shr.i15.i2881 = lshr i32 %insn, 25 - %and.i16.i2882 = and i32 %shr.i15.i2881, 1 - %rl.i2883 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2882, ptr %rl.i2883, align 4 + %shr.i.i2852 = lshr i32 %insn, 7 + %and.i.i2853 = and i32 %shr.i.i2852, 31 + %rd.i2854 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2853, ptr %rd.i2854, align 4 + %shr.i9.i2855 = lshr i32 %insn, 26 + %and.i10.i2856 = and i32 %shr.i9.i2855, 1 + store i32 %and.i10.i2856, ptr %u, align 4 + %shr.i11.i2857 = lshr i32 %insn, 15 + %and.i12.i2858 = and i32 %shr.i11.i2857, 31 + %rs1.i2859 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2858, ptr %rs1.i2859, align 4 + %shr.i13.i2860 = lshr i32 %insn, 20 + %and.i14.i2861 = and i32 %shr.i13.i2860, 31 + %rs2.i2862 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2861, ptr %rs2.i2862, align 4 + %shr.i15.i2863 = lshr i32 %insn, 25 + %and.i16.i2864 = and i32 %shr.i15.i2863, 1 + %rl.i2865 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2864, ptr %rl.i2865, align 4 call fastcc void @gen_sc(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 227) br label %return sw.bb735: ; preds = %sw.bb693 - %shr.i.i2885 = lshr i32 %insn, 7 - %and.i.i2886 = and i32 %shr.i.i2885, 31 - %rd.i2887 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2886, ptr %rd.i2887, align 4 - %shr.i9.i2888 = lshr i32 %insn, 26 - %and.i10.i2889 = and i32 %shr.i9.i2888, 1 - store i32 %and.i10.i2889, ptr %u, align 4 - %shr.i11.i2890 = lshr i32 %insn, 15 - %and.i12.i2891 = and i32 %shr.i11.i2890, 31 - %rs1.i2892 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2891, ptr %rs1.i2892, align 4 - %shr.i13.i2893 = lshr i32 %insn, 20 - %and.i14.i2894 = and i32 %shr.i13.i2893, 31 - %rs2.i2895 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2894, ptr %rs2.i2895, align 4 - %shr.i15.i2896 = lshr i32 %insn, 25 - %and.i16.i2897 = and i32 %shr.i15.i2896, 1 - %rl.i2898 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2897, ptr %rl.i2898, align 4 + %shr.i.i2867 = lshr i32 %insn, 7 + %and.i.i2868 = and i32 %shr.i.i2867, 31 + %rd.i2869 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2868, ptr %rd.i2869, align 4 + %shr.i9.i2870 = lshr i32 %insn, 26 + %and.i10.i2871 = and i32 %shr.i9.i2870, 1 + store i32 %and.i10.i2871, ptr %u, align 4 + %shr.i11.i2872 = lshr i32 %insn, 15 + %and.i12.i2873 = and i32 %shr.i11.i2872, 31 + %rs1.i2874 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2873, ptr %rs1.i2874, align 4 + %shr.i13.i2875 = lshr i32 %insn, 20 + %and.i14.i2876 = and i32 %shr.i13.i2875, 31 + %rs2.i2877 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2876, ptr %rs2.i2877, align 4 + %shr.i15.i2878 = lshr i32 %insn, 25 + %and.i16.i2879 = and i32 %shr.i15.i2878, 1 + %rl.i2880 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2879, ptr %rl.i2880, align 4 %89 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i2899 = load i32, ptr %89, align 4 - %and.i.i2900 = and i32 %ctx.val.i2899, 1 - %tobool.i.i2901.not = icmp eq i32 %and.i.i2900, 0 - br i1 %tobool.i.i2901.not, label %sw.epilog3868, label %trans_amoxor_w.exit.thread + %ctx.val.i2881 = load i32, ptr %89, align 4 + %and.i.i2882 = and i32 %ctx.val.i2881, 1 + %tobool.i.i2883.not = icmp eq i32 %and.i.i2882, 0 + br i1 %tobool.i.i2883.not, label %sw.epilog3868, label %trans_amoxor_w.exit.thread trans_amoxor_w.exit.thread: ; preds = %sw.bb735 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_xor_i64, i32 noundef 234) br label %return sw.bb739: ; preds = %sw.bb693 - %shr.i.i2904 = lshr i32 %insn, 7 - %and.i.i2905 = and i32 %shr.i.i2904, 31 - %rd.i2906 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2905, ptr %rd.i2906, align 4 - %shr.i9.i2907 = lshr i32 %insn, 26 - %and.i10.i2908 = and i32 %shr.i9.i2907, 1 - store i32 %and.i10.i2908, ptr %u, align 4 - %shr.i11.i2909 = lshr i32 %insn, 15 - %and.i12.i2910 = and i32 %shr.i11.i2909, 31 - %rs1.i2911 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2910, ptr %rs1.i2911, align 4 - %shr.i13.i2912 = lshr i32 %insn, 20 - %and.i14.i2913 = and i32 %shr.i13.i2912, 31 - %rs2.i2914 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2913, ptr %rs2.i2914, align 4 - %shr.i15.i2915 = lshr i32 %insn, 25 - %and.i16.i2916 = and i32 %shr.i15.i2915, 1 - %rl.i2917 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2916, ptr %rl.i2917, align 4 + %shr.i.i2886 = lshr i32 %insn, 7 + %and.i.i2887 = and i32 %shr.i.i2886, 31 + %rd.i2888 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2887, ptr %rd.i2888, align 4 + %shr.i9.i2889 = lshr i32 %insn, 26 + %and.i10.i2890 = and i32 %shr.i9.i2889, 1 + store i32 %and.i10.i2890, ptr %u, align 4 + %shr.i11.i2891 = lshr i32 %insn, 15 + %and.i12.i2892 = and i32 %shr.i11.i2891, 31 + %rs1.i2893 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2892, ptr %rs1.i2893, align 4 + %shr.i13.i2894 = lshr i32 %insn, 20 + %and.i14.i2895 = and i32 %shr.i13.i2894, 31 + %rs2.i2896 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2895, ptr %rs2.i2896, align 4 + %shr.i15.i2897 = lshr i32 %insn, 25 + %and.i16.i2898 = and i32 %shr.i15.i2897, 1 + %rl.i2899 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2898, ptr %rl.i2899, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_xor_i64, i32 noundef 227) br label %return sw.bb743: ; preds = %sw.bb693 - %shr.i.i2919 = lshr i32 %insn, 7 - %and.i.i2920 = and i32 %shr.i.i2919, 31 - %rd.i2921 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2920, ptr %rd.i2921, align 4 - %shr.i9.i2922 = lshr i32 %insn, 26 - %and.i10.i2923 = and i32 %shr.i9.i2922, 1 - store i32 %and.i10.i2923, ptr %u, align 4 - %shr.i11.i2924 = lshr i32 %insn, 15 - %and.i12.i2925 = and i32 %shr.i11.i2924, 31 - %rs1.i2926 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2925, ptr %rs1.i2926, align 4 - %shr.i13.i2927 = lshr i32 %insn, 20 - %and.i14.i2928 = and i32 %shr.i13.i2927, 31 - %rs2.i2929 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2928, ptr %rs2.i2929, align 4 - %shr.i15.i2930 = lshr i32 %insn, 25 - %and.i16.i2931 = and i32 %shr.i15.i2930, 1 - %rl.i2932 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2931, ptr %rl.i2932, align 4 + %shr.i.i2901 = lshr i32 %insn, 7 + %and.i.i2902 = and i32 %shr.i.i2901, 31 + %rd.i2903 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2902, ptr %rd.i2903, align 4 + %shr.i9.i2904 = lshr i32 %insn, 26 + %and.i10.i2905 = and i32 %shr.i9.i2904, 1 + store i32 %and.i10.i2905, ptr %u, align 4 + %shr.i11.i2906 = lshr i32 %insn, 15 + %and.i12.i2907 = and i32 %shr.i11.i2906, 31 + %rs1.i2908 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2907, ptr %rs1.i2908, align 4 + %shr.i13.i2909 = lshr i32 %insn, 20 + %and.i14.i2910 = and i32 %shr.i13.i2909, 31 + %rs2.i2911 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2910, ptr %rs2.i2911, align 4 + %shr.i15.i2912 = lshr i32 %insn, 25 + %and.i16.i2913 = and i32 %shr.i15.i2912, 1 + %rl.i2914 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2913, ptr %rl.i2914, align 4 %90 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i2933 = load i32, ptr %90, align 4 - %and.i.i2934 = and i32 %ctx.val.i2933, 1 - %tobool.i.i2935.not = icmp eq i32 %and.i.i2934, 0 - br i1 %tobool.i.i2935.not, label %sw.epilog3868, label %trans_amoor_w.exit.thread + %ctx.val.i2915 = load i32, ptr %90, align 4 + %and.i.i2916 = and i32 %ctx.val.i2915, 1 + %tobool.i.i2917.not = icmp eq i32 %and.i.i2916, 0 + br i1 %tobool.i.i2917.not, label %sw.epilog3868, label %trans_amoor_w.exit.thread trans_amoor_w.exit.thread: ; preds = %sw.bb743 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_or_i64, i32 noundef 234) br label %return sw.bb747: ; preds = %sw.bb693 - %shr.i.i2938 = lshr i32 %insn, 7 - %and.i.i2939 = and i32 %shr.i.i2938, 31 - %rd.i2940 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2939, ptr %rd.i2940, align 4 - %shr.i9.i2941 = lshr i32 %insn, 26 - %and.i10.i2942 = and i32 %shr.i9.i2941, 1 - store i32 %and.i10.i2942, ptr %u, align 4 - %shr.i11.i2943 = lshr i32 %insn, 15 - %and.i12.i2944 = and i32 %shr.i11.i2943, 31 - %rs1.i2945 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2944, ptr %rs1.i2945, align 4 - %shr.i13.i2946 = lshr i32 %insn, 20 - %and.i14.i2947 = and i32 %shr.i13.i2946, 31 - %rs2.i2948 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2947, ptr %rs2.i2948, align 4 - %shr.i15.i2949 = lshr i32 %insn, 25 - %and.i16.i2950 = and i32 %shr.i15.i2949, 1 - %rl.i2951 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2950, ptr %rl.i2951, align 4 + %shr.i.i2920 = lshr i32 %insn, 7 + %and.i.i2921 = and i32 %shr.i.i2920, 31 + %rd.i2922 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2921, ptr %rd.i2922, align 4 + %shr.i9.i2923 = lshr i32 %insn, 26 + %and.i10.i2924 = and i32 %shr.i9.i2923, 1 + store i32 %and.i10.i2924, ptr %u, align 4 + %shr.i11.i2925 = lshr i32 %insn, 15 + %and.i12.i2926 = and i32 %shr.i11.i2925, 31 + %rs1.i2927 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2926, ptr %rs1.i2927, align 4 + %shr.i13.i2928 = lshr i32 %insn, 20 + %and.i14.i2929 = and i32 %shr.i13.i2928, 31 + %rs2.i2930 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2929, ptr %rs2.i2930, align 4 + %shr.i15.i2931 = lshr i32 %insn, 25 + %and.i16.i2932 = and i32 %shr.i15.i2931, 1 + %rl.i2933 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2932, ptr %rl.i2933, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_or_i64, i32 noundef 227) br label %return sw.bb751: ; preds = %sw.bb693 - %shr.i.i2953 = lshr i32 %insn, 7 - %and.i.i2954 = and i32 %shr.i.i2953, 31 - %rd.i2955 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2954, ptr %rd.i2955, align 4 - %shr.i9.i2956 = lshr i32 %insn, 26 - %and.i10.i2957 = and i32 %shr.i9.i2956, 1 - store i32 %and.i10.i2957, ptr %u, align 4 - %shr.i11.i2958 = lshr i32 %insn, 15 - %and.i12.i2959 = and i32 %shr.i11.i2958, 31 - %rs1.i2960 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2959, ptr %rs1.i2960, align 4 - %shr.i13.i2961 = lshr i32 %insn, 20 - %and.i14.i2962 = and i32 %shr.i13.i2961, 31 - %rs2.i2963 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2962, ptr %rs2.i2963, align 4 - %shr.i15.i2964 = lshr i32 %insn, 25 - %and.i16.i2965 = and i32 %shr.i15.i2964, 1 - %rl.i2966 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2965, ptr %rl.i2966, align 4 + %shr.i.i2935 = lshr i32 %insn, 7 + %and.i.i2936 = and i32 %shr.i.i2935, 31 + %rd.i2937 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2936, ptr %rd.i2937, align 4 + %shr.i9.i2938 = lshr i32 %insn, 26 + %and.i10.i2939 = and i32 %shr.i9.i2938, 1 + store i32 %and.i10.i2939, ptr %u, align 4 + %shr.i11.i2940 = lshr i32 %insn, 15 + %and.i12.i2941 = and i32 %shr.i11.i2940, 31 + %rs1.i2942 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2941, ptr %rs1.i2942, align 4 + %shr.i13.i2943 = lshr i32 %insn, 20 + %and.i14.i2944 = and i32 %shr.i13.i2943, 31 + %rs2.i2945 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2944, ptr %rs2.i2945, align 4 + %shr.i15.i2946 = lshr i32 %insn, 25 + %and.i16.i2947 = and i32 %shr.i15.i2946, 1 + %rl.i2948 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2947, ptr %rl.i2948, align 4 %91 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i2967 = load i32, ptr %91, align 4 - %and.i.i2968 = and i32 %ctx.val.i2967, 1 - %tobool.i.i2969.not = icmp eq i32 %and.i.i2968, 0 - br i1 %tobool.i.i2969.not, label %sw.epilog3868, label %trans_amoand_w.exit.thread + %ctx.val.i2949 = load i32, ptr %91, align 4 + %and.i.i2950 = and i32 %ctx.val.i2949, 1 + %tobool.i.i2951.not = icmp eq i32 %and.i.i2950, 0 + br i1 %tobool.i.i2951.not, label %sw.epilog3868, label %trans_amoand_w.exit.thread trans_amoand_w.exit.thread: ; preds = %sw.bb751 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_and_i64, i32 noundef 234) br label %return sw.bb755: ; preds = %sw.bb693 - %shr.i.i2972 = lshr i32 %insn, 7 - %and.i.i2973 = and i32 %shr.i.i2972, 31 - %rd.i2974 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2973, ptr %rd.i2974, align 4 - %shr.i9.i2975 = lshr i32 %insn, 26 - %and.i10.i2976 = and i32 %shr.i9.i2975, 1 - store i32 %and.i10.i2976, ptr %u, align 4 - %shr.i11.i2977 = lshr i32 %insn, 15 - %and.i12.i2978 = and i32 %shr.i11.i2977, 31 - %rs1.i2979 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2978, ptr %rs1.i2979, align 4 - %shr.i13.i2980 = lshr i32 %insn, 20 - %and.i14.i2981 = and i32 %shr.i13.i2980, 31 - %rs2.i2982 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2981, ptr %rs2.i2982, align 4 - %shr.i15.i2983 = lshr i32 %insn, 25 - %and.i16.i2984 = and i32 %shr.i15.i2983, 1 - %rl.i2985 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2984, ptr %rl.i2985, align 4 + %shr.i.i2954 = lshr i32 %insn, 7 + %and.i.i2955 = and i32 %shr.i.i2954, 31 + %rd.i2956 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2955, ptr %rd.i2956, align 4 + %shr.i9.i2957 = lshr i32 %insn, 26 + %and.i10.i2958 = and i32 %shr.i9.i2957, 1 + store i32 %and.i10.i2958, ptr %u, align 4 + %shr.i11.i2959 = lshr i32 %insn, 15 + %and.i12.i2960 = and i32 %shr.i11.i2959, 31 + %rs1.i2961 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2960, ptr %rs1.i2961, align 4 + %shr.i13.i2962 = lshr i32 %insn, 20 + %and.i14.i2963 = and i32 %shr.i13.i2962, 31 + %rs2.i2964 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2963, ptr %rs2.i2964, align 4 + %shr.i15.i2965 = lshr i32 %insn, 25 + %and.i16.i2966 = and i32 %shr.i15.i2965, 1 + %rl.i2967 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2966, ptr %rl.i2967, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_and_i64, i32 noundef 227) br label %return sw.bb759: ; preds = %sw.bb693 - %shr.i.i2987 = lshr i32 %insn, 7 - %and.i.i2988 = and i32 %shr.i.i2987, 31 - %rd.i2989 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i2988, ptr %rd.i2989, align 4 - %shr.i9.i2990 = lshr i32 %insn, 26 - %and.i10.i2991 = and i32 %shr.i9.i2990, 1 - store i32 %and.i10.i2991, ptr %u, align 4 - %shr.i11.i2992 = lshr i32 %insn, 15 - %and.i12.i2993 = and i32 %shr.i11.i2992, 31 - %rs1.i2994 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i2993, ptr %rs1.i2994, align 4 - %shr.i13.i2995 = lshr i32 %insn, 20 - %and.i14.i2996 = and i32 %shr.i13.i2995, 31 - %rs2.i2997 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i2996, ptr %rs2.i2997, align 4 - %shr.i15.i2998 = lshr i32 %insn, 25 - %and.i16.i2999 = and i32 %shr.i15.i2998, 1 - %rl.i3000 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i2999, ptr %rl.i3000, align 4 + %shr.i.i2969 = lshr i32 %insn, 7 + %and.i.i2970 = and i32 %shr.i.i2969, 31 + %rd.i2971 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2970, ptr %rd.i2971, align 4 + %shr.i9.i2972 = lshr i32 %insn, 26 + %and.i10.i2973 = and i32 %shr.i9.i2972, 1 + store i32 %and.i10.i2973, ptr %u, align 4 + %shr.i11.i2974 = lshr i32 %insn, 15 + %and.i12.i2975 = and i32 %shr.i11.i2974, 31 + %rs1.i2976 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2975, ptr %rs1.i2976, align 4 + %shr.i13.i2977 = lshr i32 %insn, 20 + %and.i14.i2978 = and i32 %shr.i13.i2977, 31 + %rs2.i2979 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2978, ptr %rs2.i2979, align 4 + %shr.i15.i2980 = lshr i32 %insn, 25 + %and.i16.i2981 = and i32 %shr.i15.i2980, 1 + %rl.i2982 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i2981, ptr %rl.i2982, align 4 %92 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3001 = load i32, ptr %92, align 4 - %and.i.i3002 = and i32 %ctx.val.i3001, 1 - %tobool.i.i3003.not = icmp eq i32 %and.i.i3002, 0 - br i1 %tobool.i.i3003.not, label %sw.epilog3868, label %trans_amomin_w.exit.thread + %ctx.val.i2983 = load i32, ptr %92, align 4 + %and.i.i2984 = and i32 %ctx.val.i2983, 1 + %tobool.i.i2985.not = icmp eq i32 %and.i.i2984, 0 + br i1 %tobool.i.i2985.not, label %sw.epilog3868, label %trans_amomin_w.exit.thread trans_amomin_w.exit.thread: ; preds = %sw.bb759 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_smin_i64, i32 noundef 234) br label %return sw.bb763: ; preds = %sw.bb693 - %shr.i.i3006 = lshr i32 %insn, 7 - %and.i.i3007 = and i32 %shr.i.i3006, 31 - %rd.i3008 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i3007, ptr %rd.i3008, align 4 - %shr.i9.i3009 = lshr i32 %insn, 26 - %and.i10.i3010 = and i32 %shr.i9.i3009, 1 - store i32 %and.i10.i3010, ptr %u, align 4 - %shr.i11.i3011 = lshr i32 %insn, 15 - %and.i12.i3012 = and i32 %shr.i11.i3011, 31 - %rs1.i3013 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i3012, ptr %rs1.i3013, align 4 - %shr.i13.i3014 = lshr i32 %insn, 20 - %and.i14.i3015 = and i32 %shr.i13.i3014, 31 - %rs2.i3016 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i3015, ptr %rs2.i3016, align 4 - %shr.i15.i3017 = lshr i32 %insn, 25 - %and.i16.i3018 = and i32 %shr.i15.i3017, 1 - %rl.i3019 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i3018, ptr %rl.i3019, align 4 + %shr.i.i2988 = lshr i32 %insn, 7 + %and.i.i2989 = and i32 %shr.i.i2988, 31 + %rd.i2990 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i2989, ptr %rd.i2990, align 4 + %shr.i9.i2991 = lshr i32 %insn, 26 + %and.i10.i2992 = and i32 %shr.i9.i2991, 1 + store i32 %and.i10.i2992, ptr %u, align 4 + %shr.i11.i2993 = lshr i32 %insn, 15 + %and.i12.i2994 = and i32 %shr.i11.i2993, 31 + %rs1.i2995 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i2994, ptr %rs1.i2995, align 4 + %shr.i13.i2996 = lshr i32 %insn, 20 + %and.i14.i2997 = and i32 %shr.i13.i2996, 31 + %rs2.i2998 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i2997, ptr %rs2.i2998, align 4 + %shr.i15.i2999 = lshr i32 %insn, 25 + %and.i16.i3000 = and i32 %shr.i15.i2999, 1 + %rl.i3001 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i3000, ptr %rl.i3001, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_smin_i64, i32 noundef 227) br label %return sw.bb767: ; preds = %sw.bb693 - %shr.i.i3021 = lshr i32 %insn, 7 - %and.i.i3022 = and i32 %shr.i.i3021, 31 - %rd.i3023 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i3022, ptr %rd.i3023, align 4 - %shr.i9.i3024 = lshr i32 %insn, 26 - %and.i10.i3025 = and i32 %shr.i9.i3024, 1 - store i32 %and.i10.i3025, ptr %u, align 4 - %shr.i11.i3026 = lshr i32 %insn, 15 - %and.i12.i3027 = and i32 %shr.i11.i3026, 31 - %rs1.i3028 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i3027, ptr %rs1.i3028, align 4 - %shr.i13.i3029 = lshr i32 %insn, 20 - %and.i14.i3030 = and i32 %shr.i13.i3029, 31 - %rs2.i3031 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i3030, ptr %rs2.i3031, align 4 - %shr.i15.i3032 = lshr i32 %insn, 25 - %and.i16.i3033 = and i32 %shr.i15.i3032, 1 - %rl.i3034 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i3033, ptr %rl.i3034, align 4 + %shr.i.i3003 = lshr i32 %insn, 7 + %and.i.i3004 = and i32 %shr.i.i3003, 31 + %rd.i3005 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i3004, ptr %rd.i3005, align 4 + %shr.i9.i3006 = lshr i32 %insn, 26 + %and.i10.i3007 = and i32 %shr.i9.i3006, 1 + store i32 %and.i10.i3007, ptr %u, align 4 + %shr.i11.i3008 = lshr i32 %insn, 15 + %and.i12.i3009 = and i32 %shr.i11.i3008, 31 + %rs1.i3010 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i3009, ptr %rs1.i3010, align 4 + %shr.i13.i3011 = lshr i32 %insn, 20 + %and.i14.i3012 = and i32 %shr.i13.i3011, 31 + %rs2.i3013 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i3012, ptr %rs2.i3013, align 4 + %shr.i15.i3014 = lshr i32 %insn, 25 + %and.i16.i3015 = and i32 %shr.i15.i3014, 1 + %rl.i3016 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i3015, ptr %rl.i3016, align 4 %93 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3035 = load i32, ptr %93, align 4 - %and.i.i3036 = and i32 %ctx.val.i3035, 1 - %tobool.i.i3037.not = icmp eq i32 %and.i.i3036, 0 - br i1 %tobool.i.i3037.not, label %sw.epilog3868, label %trans_amomax_w.exit.thread + %ctx.val.i3017 = load i32, ptr %93, align 4 + %and.i.i3018 = and i32 %ctx.val.i3017, 1 + %tobool.i.i3019.not = icmp eq i32 %and.i.i3018, 0 + br i1 %tobool.i.i3019.not, label %sw.epilog3868, label %trans_amomax_w.exit.thread trans_amomax_w.exit.thread: ; preds = %sw.bb767 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_smax_i64, i32 noundef 234) br label %return sw.bb771: ; preds = %sw.bb693 - %shr.i.i3040 = lshr i32 %insn, 7 - %and.i.i3041 = and i32 %shr.i.i3040, 31 - %rd.i3042 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i3041, ptr %rd.i3042, align 4 - %shr.i9.i3043 = lshr i32 %insn, 26 - %and.i10.i3044 = and i32 %shr.i9.i3043, 1 - store i32 %and.i10.i3044, ptr %u, align 4 - %shr.i11.i3045 = lshr i32 %insn, 15 - %and.i12.i3046 = and i32 %shr.i11.i3045, 31 - %rs1.i3047 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i3046, ptr %rs1.i3047, align 4 - %shr.i13.i3048 = lshr i32 %insn, 20 - %and.i14.i3049 = and i32 %shr.i13.i3048, 31 - %rs2.i3050 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i3049, ptr %rs2.i3050, align 4 - %shr.i15.i3051 = lshr i32 %insn, 25 - %and.i16.i3052 = and i32 %shr.i15.i3051, 1 - %rl.i3053 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i3052, ptr %rl.i3053, align 4 + %shr.i.i3022 = lshr i32 %insn, 7 + %and.i.i3023 = and i32 %shr.i.i3022, 31 + %rd.i3024 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i3023, ptr %rd.i3024, align 4 + %shr.i9.i3025 = lshr i32 %insn, 26 + %and.i10.i3026 = and i32 %shr.i9.i3025, 1 + store i32 %and.i10.i3026, ptr %u, align 4 + %shr.i11.i3027 = lshr i32 %insn, 15 + %and.i12.i3028 = and i32 %shr.i11.i3027, 31 + %rs1.i3029 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i3028, ptr %rs1.i3029, align 4 + %shr.i13.i3030 = lshr i32 %insn, 20 + %and.i14.i3031 = and i32 %shr.i13.i3030, 31 + %rs2.i3032 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i3031, ptr %rs2.i3032, align 4 + %shr.i15.i3033 = lshr i32 %insn, 25 + %and.i16.i3034 = and i32 %shr.i15.i3033, 1 + %rl.i3035 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i3034, ptr %rl.i3035, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_smax_i64, i32 noundef 227) br label %return sw.bb775: ; preds = %sw.bb693 - %shr.i.i3055 = lshr i32 %insn, 7 - %and.i.i3056 = and i32 %shr.i.i3055, 31 - %rd.i3057 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i3056, ptr %rd.i3057, align 4 - %shr.i9.i3058 = lshr i32 %insn, 26 - %and.i10.i3059 = and i32 %shr.i9.i3058, 1 - store i32 %and.i10.i3059, ptr %u, align 4 - %shr.i11.i3060 = lshr i32 %insn, 15 - %and.i12.i3061 = and i32 %shr.i11.i3060, 31 - %rs1.i3062 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i3061, ptr %rs1.i3062, align 4 - %shr.i13.i3063 = lshr i32 %insn, 20 - %and.i14.i3064 = and i32 %shr.i13.i3063, 31 - %rs2.i3065 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i3064, ptr %rs2.i3065, align 4 - %shr.i15.i3066 = lshr i32 %insn, 25 - %and.i16.i3067 = and i32 %shr.i15.i3066, 1 - %rl.i3068 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i3067, ptr %rl.i3068, align 4 + %shr.i.i3037 = lshr i32 %insn, 7 + %and.i.i3038 = and i32 %shr.i.i3037, 31 + %rd.i3039 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i3038, ptr %rd.i3039, align 4 + %shr.i9.i3040 = lshr i32 %insn, 26 + %and.i10.i3041 = and i32 %shr.i9.i3040, 1 + store i32 %and.i10.i3041, ptr %u, align 4 + %shr.i11.i3042 = lshr i32 %insn, 15 + %and.i12.i3043 = and i32 %shr.i11.i3042, 31 + %rs1.i3044 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i3043, ptr %rs1.i3044, align 4 + %shr.i13.i3045 = lshr i32 %insn, 20 + %and.i14.i3046 = and i32 %shr.i13.i3045, 31 + %rs2.i3047 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i3046, ptr %rs2.i3047, align 4 + %shr.i15.i3048 = lshr i32 %insn, 25 + %and.i16.i3049 = and i32 %shr.i15.i3048, 1 + %rl.i3050 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i3049, ptr %rl.i3050, align 4 %94 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3069 = load i32, ptr %94, align 4 - %and.i.i3070 = and i32 %ctx.val.i3069, 1 - %tobool.i.i3071.not = icmp eq i32 %and.i.i3070, 0 - br i1 %tobool.i.i3071.not, label %sw.epilog3868, label %trans_amominu_w.exit.thread + %ctx.val.i3051 = load i32, ptr %94, align 4 + %and.i.i3052 = and i32 %ctx.val.i3051, 1 + %tobool.i.i3053.not = icmp eq i32 %and.i.i3052, 0 + br i1 %tobool.i.i3053.not, label %sw.epilog3868, label %trans_amominu_w.exit.thread trans_amominu_w.exit.thread: ; preds = %sw.bb775 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_umin_i64, i32 noundef 234) br label %return sw.bb779: ; preds = %sw.bb693 - %shr.i.i3074 = lshr i32 %insn, 7 - %and.i.i3075 = and i32 %shr.i.i3074, 31 - %rd.i3076 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i3075, ptr %rd.i3076, align 4 - %shr.i9.i3077 = lshr i32 %insn, 26 - %and.i10.i3078 = and i32 %shr.i9.i3077, 1 - store i32 %and.i10.i3078, ptr %u, align 4 - %shr.i11.i3079 = lshr i32 %insn, 15 - %and.i12.i3080 = and i32 %shr.i11.i3079, 31 - %rs1.i3081 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i3080, ptr %rs1.i3081, align 4 - %shr.i13.i3082 = lshr i32 %insn, 20 - %and.i14.i3083 = and i32 %shr.i13.i3082, 31 - %rs2.i3084 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i3083, ptr %rs2.i3084, align 4 - %shr.i15.i3085 = lshr i32 %insn, 25 - %and.i16.i3086 = and i32 %shr.i15.i3085, 1 - %rl.i3087 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i3086, ptr %rl.i3087, align 4 + %shr.i.i3056 = lshr i32 %insn, 7 + %and.i.i3057 = and i32 %shr.i.i3056, 31 + %rd.i3058 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i3057, ptr %rd.i3058, align 4 + %shr.i9.i3059 = lshr i32 %insn, 26 + %and.i10.i3060 = and i32 %shr.i9.i3059, 1 + store i32 %and.i10.i3060, ptr %u, align 4 + %shr.i11.i3061 = lshr i32 %insn, 15 + %and.i12.i3062 = and i32 %shr.i11.i3061, 31 + %rs1.i3063 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i3062, ptr %rs1.i3063, align 4 + %shr.i13.i3064 = lshr i32 %insn, 20 + %and.i14.i3065 = and i32 %shr.i13.i3064, 31 + %rs2.i3066 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i3065, ptr %rs2.i3066, align 4 + %shr.i15.i3067 = lshr i32 %insn, 25 + %and.i16.i3068 = and i32 %shr.i15.i3067, 1 + %rl.i3069 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i3068, ptr %rl.i3069, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_umin_i64, i32 noundef 227) br label %return sw.bb783: ; preds = %sw.bb693 - %shr.i.i3089 = lshr i32 %insn, 7 - %and.i.i3090 = and i32 %shr.i.i3089, 31 - %rd.i3091 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i3090, ptr %rd.i3091, align 4 - %shr.i9.i3092 = lshr i32 %insn, 26 - %and.i10.i3093 = and i32 %shr.i9.i3092, 1 - store i32 %and.i10.i3093, ptr %u, align 4 - %shr.i11.i3094 = lshr i32 %insn, 15 - %and.i12.i3095 = and i32 %shr.i11.i3094, 31 - %rs1.i3096 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i3095, ptr %rs1.i3096, align 4 - %shr.i13.i3097 = lshr i32 %insn, 20 - %and.i14.i3098 = and i32 %shr.i13.i3097, 31 - %rs2.i3099 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i3098, ptr %rs2.i3099, align 4 - %shr.i15.i3100 = lshr i32 %insn, 25 - %and.i16.i3101 = and i32 %shr.i15.i3100, 1 - %rl.i3102 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i3101, ptr %rl.i3102, align 4 + %shr.i.i3071 = lshr i32 %insn, 7 + %and.i.i3072 = and i32 %shr.i.i3071, 31 + %rd.i3073 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i3072, ptr %rd.i3073, align 4 + %shr.i9.i3074 = lshr i32 %insn, 26 + %and.i10.i3075 = and i32 %shr.i9.i3074, 1 + store i32 %and.i10.i3075, ptr %u, align 4 + %shr.i11.i3076 = lshr i32 %insn, 15 + %and.i12.i3077 = and i32 %shr.i11.i3076, 31 + %rs1.i3078 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i3077, ptr %rs1.i3078, align 4 + %shr.i13.i3079 = lshr i32 %insn, 20 + %and.i14.i3080 = and i32 %shr.i13.i3079, 31 + %rs2.i3081 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i3080, ptr %rs2.i3081, align 4 + %shr.i15.i3082 = lshr i32 %insn, 25 + %and.i16.i3083 = and i32 %shr.i15.i3082, 1 + %rl.i3084 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i3083, ptr %rl.i3084, align 4 %95 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3103 = load i32, ptr %95, align 4 - %and.i.i3104 = and i32 %ctx.val.i3103, 1 - %tobool.i.i3105.not = icmp eq i32 %and.i.i3104, 0 - br i1 %tobool.i.i3105.not, label %sw.epilog3868, label %trans_amomaxu_w.exit.thread + %ctx.val.i3085 = load i32, ptr %95, align 4 + %and.i.i3086 = and i32 %ctx.val.i3085, 1 + %tobool.i.i3087.not = icmp eq i32 %and.i.i3086, 0 + br i1 %tobool.i.i3087.not, label %sw.epilog3868, label %trans_amomaxu_w.exit.thread trans_amomaxu_w.exit.thread: ; preds = %sw.bb783 call fastcc void @gen_amo(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_umax_i64, i32 noundef 234) br label %return sw.bb787: ; preds = %sw.bb693 - %shr.i.i3108 = lshr i32 %insn, 7 - %and.i.i3109 = and i32 %shr.i.i3108, 31 - %rd.i3110 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 - store i32 %and.i.i3109, ptr %rd.i3110, align 4 - %shr.i9.i3111 = lshr i32 %insn, 26 - %and.i10.i3112 = and i32 %shr.i9.i3111, 1 - store i32 %and.i10.i3112, ptr %u, align 4 - %shr.i11.i3113 = lshr i32 %insn, 15 - %and.i12.i3114 = and i32 %shr.i11.i3113, 31 - %rs1.i3115 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 - store i32 %and.i12.i3114, ptr %rs1.i3115, align 4 - %shr.i13.i3116 = lshr i32 %insn, 20 - %and.i14.i3117 = and i32 %shr.i13.i3116, 31 - %rs2.i3118 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 - store i32 %and.i14.i3117, ptr %rs2.i3118, align 4 - %shr.i15.i3119 = lshr i32 %insn, 25 - %and.i16.i3120 = and i32 %shr.i15.i3119, 1 - %rl.i3121 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 - store i32 %and.i16.i3120, ptr %rl.i3121, align 4 + %shr.i.i3090 = lshr i32 %insn, 7 + %and.i.i3091 = and i32 %shr.i.i3090, 31 + %rd.i3092 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 4 + store i32 %and.i.i3091, ptr %rd.i3092, align 4 + %shr.i9.i3093 = lshr i32 %insn, 26 + %and.i10.i3094 = and i32 %shr.i9.i3093, 1 + store i32 %and.i10.i3094, ptr %u, align 4 + %shr.i11.i3095 = lshr i32 %insn, 15 + %and.i12.i3096 = and i32 %shr.i11.i3095, 31 + %rs1.i3097 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 3 + store i32 %and.i12.i3096, ptr %rs1.i3097, align 4 + %shr.i13.i3098 = lshr i32 %insn, 20 + %and.i14.i3099 = and i32 %shr.i13.i3098, 31 + %rs2.i3100 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 2 + store i32 %and.i14.i3099, ptr %rs2.i3100, align 4 + %shr.i15.i3101 = lshr i32 %insn, 25 + %and.i16.i3102 = and i32 %shr.i15.i3101, 1 + %rl.i3103 = getelementptr inbounds %struct.arg_atomic, ptr %u, i64 0, i32 1 + store i32 %and.i16.i3102, ptr %rl.i3103, align 4 call fastcc void @gen_amo(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_atomic_fetch_umax_i64, i32 noundef 227) br label %return @@ -9489,17 +9479,17 @@ sw.bb792: ; preds = %entry ] sw.bb794: ; preds = %sw.bb792 - %shr.i.i3123 = lshr i32 %insn, 20 - %and.i.i3124 = and i32 %shr.i.i3123, 31 - %rs2.i3125 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3124, ptr %rs2.i3125, align 4 - %shr.i5.i3126 = lshr i32 %insn, 7 - %and.i6.i3127 = and i32 %shr.i5.i3126, 31 - store i32 %and.i6.i3127, ptr %u, align 4 - %shr.i7.i3128 = lshr i32 %insn, 15 - %and.i8.i3129 = and i32 %shr.i7.i3128, 31 - %rs1.i3130 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3129, ptr %rs1.i3130, align 4 + %shr.i.i3105 = lshr i32 %insn, 20 + %and.i.i3106 = and i32 %shr.i.i3105, 31 + %rs2.i3107 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3106, ptr %rs2.i3107, align 4 + %shr.i5.i3108 = lshr i32 %insn, 7 + %and.i6.i3109 = and i32 %shr.i5.i3108, 31 + store i32 %and.i6.i3109, ptr %u, align 4 + %shr.i7.i3110 = lshr i32 %insn, 15 + %and.i8.i3111 = and i32 %shr.i7.i3110, 31 + %rs1.i3112 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3111, ptr %rs1.i3112, align 4 %shr795 = lshr i32 %insn, 30 switch i32 %shr795, label %sw.epilog3868 [ i32 0, label %sw.bb797 @@ -9515,6 +9505,44 @@ sw.bb801: ; preds = %sw.bb794 br i1 %call802, label %return, label %sw.epilog3868 sw.bb806: ; preds = %sw.bb792 + %shr.i.i3113 = lshr i32 %insn, 20 + %and.i.i3114 = and i32 %shr.i.i3113, 31 + %rs2.i3115 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3114, ptr %rs2.i3115, align 4 + %shr.i5.i3116 = lshr i32 %insn, 7 + %and.i6.i3117 = and i32 %shr.i5.i3116, 31 + store i32 %and.i6.i3117, ptr %u, align 4 + %shr.i7.i3118 = lshr i32 %insn, 15 + %and.i8.i3119 = and i32 %shr.i7.i3118, 31 + %rs1.i3120 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3119, ptr %rs1.i3120, align 4 + %cond73 = icmp ult i32 %insn, 1073741824 + br i1 %cond73, label %sw.bb809, label %sw.epilog3868 + +sw.bb809: ; preds = %sw.bb806 + %call.i3121 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @tcg_gen_shl_i64) + br i1 %call.i3121, label %return, label %sw.epilog3868 + +sw.bb814: ; preds = %sw.bb792 + %shr.i.i3122 = lshr i32 %insn, 20 + %and.i.i3123 = and i32 %shr.i.i3122, 31 + %rs2.i3124 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3123, ptr %rs2.i3124, align 4 + %shr.i5.i3125 = lshr i32 %insn, 7 + %and.i6.i3126 = and i32 %shr.i5.i3125, 31 + store i32 %and.i6.i3126, ptr %u, align 4 + %shr.i7.i3127 = lshr i32 %insn, 15 + %and.i8.i3128 = and i32 %shr.i7.i3127, 31 + %rs1.i3129 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3128, ptr %rs1.i3129, align 4 + %cond72 = icmp ult i32 %insn, 1073741824 + br i1 %cond72, label %sw.bb817, label %sw.epilog3868 + +sw.bb817: ; preds = %sw.bb814 + %call.i3130 = call fastcc noundef zeroext i1 @gen_arith(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_slt, ptr noundef nonnull @gen_slt_i128) + br i1 %call.i3130, label %return, label %sw.epilog3868 + +sw.bb822: ; preds = %sw.bb792 %shr.i.i3131 = lshr i32 %insn, 20 %and.i.i3132 = and i32 %shr.i.i3131, 31 %rs2.i3133 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 @@ -9526,14 +9554,14 @@ sw.bb806: ; preds = %sw.bb792 %and.i8.i3137 = and i32 %shr.i7.i3136, 31 %rs1.i3138 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 store i32 %and.i8.i3137, ptr %rs1.i3138, align 4 - %cond73 = icmp ult i32 %insn, 1073741824 - br i1 %cond73, label %sw.bb809, label %sw.epilog3868 + %cond71 = icmp ult i32 %insn, 1073741824 + br i1 %cond71, label %sw.bb825, label %sw.epilog3868 -sw.bb809: ; preds = %sw.bb806 - %call.i3139 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @tcg_gen_shl_i64) +sw.bb825: ; preds = %sw.bb822 + %call.i3139 = call fastcc noundef zeroext i1 @gen_arith(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_sltu, ptr noundef nonnull @gen_sltu_i128) br i1 %call.i3139, label %return, label %sw.epilog3868 -sw.bb814: ; preds = %sw.bb792 +sw.bb830: ; preds = %sw.bb792 %shr.i.i3140 = lshr i32 %insn, 20 %and.i.i3141 = and i32 %shr.i.i3140, 31 %rs2.i3142 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 @@ -9545,44 +9573,6 @@ sw.bb814: ; preds = %sw.bb792 %and.i8.i3146 = and i32 %shr.i7.i3145, 31 %rs1.i3147 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 store i32 %and.i8.i3146, ptr %rs1.i3147, align 4 - %cond72 = icmp ult i32 %insn, 1073741824 - br i1 %cond72, label %sw.bb817, label %sw.epilog3868 - -sw.bb817: ; preds = %sw.bb814 - %call.i3148 = call fastcc noundef zeroext i1 @gen_arith(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_slt, ptr noundef nonnull @gen_slt_i128) - br i1 %call.i3148, label %return, label %sw.epilog3868 - -sw.bb822: ; preds = %sw.bb792 - %shr.i.i3149 = lshr i32 %insn, 20 - %and.i.i3150 = and i32 %shr.i.i3149, 31 - %rs2.i3151 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3150, ptr %rs2.i3151, align 4 - %shr.i5.i3152 = lshr i32 %insn, 7 - %and.i6.i3153 = and i32 %shr.i5.i3152, 31 - store i32 %and.i6.i3153, ptr %u, align 4 - %shr.i7.i3154 = lshr i32 %insn, 15 - %and.i8.i3155 = and i32 %shr.i7.i3154, 31 - %rs1.i3156 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3155, ptr %rs1.i3156, align 4 - %cond71 = icmp ult i32 %insn, 1073741824 - br i1 %cond71, label %sw.bb825, label %sw.epilog3868 - -sw.bb825: ; preds = %sw.bb822 - %call.i3157 = call fastcc noundef zeroext i1 @gen_arith(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_sltu, ptr noundef nonnull @gen_sltu_i128) - br i1 %call.i3157, label %return, label %sw.epilog3868 - -sw.bb830: ; preds = %sw.bb792 - %shr.i.i3158 = lshr i32 %insn, 20 - %and.i.i3159 = and i32 %shr.i.i3158, 31 - %rs2.i3160 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3159, ptr %rs2.i3160, align 4 - %shr.i5.i3161 = lshr i32 %insn, 7 - %and.i6.i3162 = and i32 %shr.i5.i3161, 31 - store i32 %and.i6.i3162, ptr %u, align 4 - %shr.i7.i3163 = lshr i32 %insn, 15 - %and.i8.i3164 = and i32 %shr.i7.i3163, 31 - %rs1.i3165 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3164, ptr %rs1.i3165, align 4 %shr831 = lshr i32 %insn, 30 switch i32 %shr831, label %sw.epilog3868 [ i32 0, label %sw.bb833 @@ -9598,17 +9588,17 @@ sw.bb837: ; preds = %sw.bb830 br i1 %call838, label %return, label %sw.epilog3868 sw.bb842: ; preds = %sw.bb792 - %shr.i.i3166 = lshr i32 %insn, 20 - %and.i.i3167 = and i32 %shr.i.i3166, 31 - %rs2.i3168 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3167, ptr %rs2.i3168, align 4 - %shr.i5.i3169 = lshr i32 %insn, 7 - %and.i6.i3170 = and i32 %shr.i5.i3169, 31 - store i32 %and.i6.i3170, ptr %u, align 4 - %shr.i7.i3171 = lshr i32 %insn, 15 - %and.i8.i3172 = and i32 %shr.i7.i3171, 31 - %rs1.i3173 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3172, ptr %rs1.i3173, align 4 + %shr.i.i3148 = lshr i32 %insn, 20 + %and.i.i3149 = and i32 %shr.i.i3148, 31 + %rs2.i3150 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3149, ptr %rs2.i3150, align 4 + %shr.i5.i3151 = lshr i32 %insn, 7 + %and.i6.i3152 = and i32 %shr.i5.i3151, 31 + store i32 %and.i6.i3152, ptr %u, align 4 + %shr.i7.i3153 = lshr i32 %insn, 15 + %and.i8.i3154 = and i32 %shr.i7.i3153, 31 + %rs1.i3155 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3154, ptr %rs1.i3155, align 4 %shr843 = lshr i32 %insn, 30 switch i32 %shr843, label %sw.epilog3868 [ i32 0, label %sw.bb845 @@ -9616,25 +9606,25 @@ sw.bb842: ; preds = %sw.bb792 ] sw.bb845: ; preds = %sw.bb842 - %call.i3174 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @tcg_gen_shr_i64) - br i1 %call.i3174, label %return, label %sw.epilog3868 + %call.i3156 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @tcg_gen_shr_i64) + br i1 %call.i3156, label %return, label %sw.epilog3868 sw.bb849: ; preds = %sw.bb842 - %call.i3175 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @tcg_gen_sar_i64) - br i1 %call.i3175, label %return, label %sw.epilog3868 + %call.i3157 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @tcg_gen_sar_i64) + br i1 %call.i3157, label %return, label %sw.epilog3868 sw.bb854: ; preds = %sw.bb792 - %shr.i.i3176 = lshr i32 %insn, 20 - %and.i.i3177 = and i32 %shr.i.i3176, 31 - %rs2.i3178 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3177, ptr %rs2.i3178, align 4 - %shr.i5.i3179 = lshr i32 %insn, 7 - %and.i6.i3180 = and i32 %shr.i5.i3179, 31 - store i32 %and.i6.i3180, ptr %u, align 4 - %shr.i7.i3181 = lshr i32 %insn, 15 - %and.i8.i3182 = and i32 %shr.i7.i3181, 31 - %rs1.i3183 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3182, ptr %rs1.i3183, align 4 + %shr.i.i3158 = lshr i32 %insn, 20 + %and.i.i3159 = and i32 %shr.i.i3158, 31 + %rs2.i3160 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3159, ptr %rs2.i3160, align 4 + %shr.i5.i3161 = lshr i32 %insn, 7 + %and.i6.i3162 = and i32 %shr.i5.i3161, 31 + store i32 %and.i6.i3162, ptr %u, align 4 + %shr.i7.i3163 = lshr i32 %insn, 15 + %and.i8.i3164 = and i32 %shr.i7.i3163, 31 + %rs1.i3165 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3164, ptr %rs1.i3165, align 4 %shr855 = lshr i32 %insn, 30 switch i32 %shr855, label %sw.epilog3868 [ i32 0, label %sw.bb857 @@ -9650,17 +9640,17 @@ sw.bb861: ; preds = %sw.bb854 br i1 %call862, label %return, label %sw.epilog3868 sw.bb866: ; preds = %sw.bb792 - %shr.i.i3184 = lshr i32 %insn, 20 - %and.i.i3185 = and i32 %shr.i.i3184, 31 - %rs2.i3186 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3185, ptr %rs2.i3186, align 4 - %shr.i5.i3187 = lshr i32 %insn, 7 - %and.i6.i3188 = and i32 %shr.i5.i3187, 31 - store i32 %and.i6.i3188, ptr %u, align 4 - %shr.i7.i3189 = lshr i32 %insn, 15 - %and.i8.i3190 = and i32 %shr.i7.i3189, 31 - %rs1.i3191 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3190, ptr %rs1.i3191, align 4 + %shr.i.i3166 = lshr i32 %insn, 20 + %and.i.i3167 = and i32 %shr.i.i3166, 31 + %rs2.i3168 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3167, ptr %rs2.i3168, align 4 + %shr.i5.i3169 = lshr i32 %insn, 7 + %and.i6.i3170 = and i32 %shr.i5.i3169, 31 + store i32 %and.i6.i3170, ptr %u, align 4 + %shr.i7.i3171 = lshr i32 %insn, 15 + %and.i8.i3172 = and i32 %shr.i7.i3171, 31 + %rs1.i3173 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3172, ptr %rs1.i3173, align 4 %shr867 = lshr i32 %insn, 30 switch i32 %shr867, label %sw.epilog3868 [ i32 0, label %sw.bb869 @@ -9676,17 +9666,17 @@ sw.bb873: ; preds = %sw.bb866 br i1 %call874, label %return, label %sw.epilog3868 sw.bb878: ; preds = %sw.bb792 - %shr.i.i3192 = lshr i32 %insn, 20 - %and.i.i3193 = and i32 %shr.i.i3192, 31 - %rs2.i3194 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3193, ptr %rs2.i3194, align 4 - %shr.i5.i3195 = lshr i32 %insn, 7 - %and.i6.i3196 = and i32 %shr.i5.i3195, 31 - store i32 %and.i6.i3196, ptr %u, align 4 - %shr.i7.i3197 = lshr i32 %insn, 15 - %and.i8.i3198 = and i32 %shr.i7.i3197, 31 - %rs1.i3199 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3198, ptr %rs1.i3199, align 4 + %shr.i.i3174 = lshr i32 %insn, 20 + %and.i.i3175 = and i32 %shr.i.i3174, 31 + %rs2.i3176 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3175, ptr %rs2.i3176, align 4 + %shr.i5.i3177 = lshr i32 %insn, 7 + %and.i6.i3178 = and i32 %shr.i5.i3177, 31 + store i32 %and.i6.i3178, ptr %u, align 4 + %shr.i7.i3179 = lshr i32 %insn, 15 + %and.i8.i3180 = and i32 %shr.i7.i3179, 31 + %rs1.i3181 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3180, ptr %rs1.i3181, align 4 %cond70 = icmp ult i32 %insn, 1073741824 br i1 %cond70, label %sw.bb881, label %sw.epilog3868 @@ -9695,17 +9685,17 @@ sw.bb881: ; preds = %sw.bb878 br i1 %call882, label %return, label %sw.epilog3868 sw.bb886: ; preds = %sw.bb792 - %shr.i.i3200 = lshr i32 %insn, 20 - %and.i.i3201 = and i32 %shr.i.i3200, 31 - %rs2.i3202 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3201, ptr %rs2.i3202, align 4 - %shr.i5.i3203 = lshr i32 %insn, 7 - %and.i6.i3204 = and i32 %shr.i5.i3203, 31 - store i32 %and.i6.i3204, ptr %u, align 4 - %shr.i7.i3205 = lshr i32 %insn, 15 - %and.i8.i3206 = and i32 %shr.i7.i3205, 31 - %rs1.i3207 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3206, ptr %rs1.i3207, align 4 + %shr.i.i3182 = lshr i32 %insn, 20 + %and.i.i3183 = and i32 %shr.i.i3182, 31 + %rs2.i3184 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3183, ptr %rs2.i3184, align 4 + %shr.i5.i3185 = lshr i32 %insn, 7 + %and.i6.i3186 = and i32 %shr.i5.i3185, 31 + store i32 %and.i6.i3186, ptr %u, align 4 + %shr.i7.i3187 = lshr i32 %insn, 15 + %and.i8.i3188 = and i32 %shr.i7.i3187, 31 + %rs1.i3189 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3188, ptr %rs1.i3189, align 4 %cond69 = icmp ult i32 %insn, 1073741824 br i1 %cond69, label %sw.bb889, label %sw.epilog3868 @@ -9714,17 +9704,17 @@ sw.bb889: ; preds = %sw.bb886 br i1 %call890, label %return, label %sw.epilog3868 sw.bb894: ; preds = %sw.bb792 - %shr.i.i3208 = lshr i32 %insn, 20 - %and.i.i3209 = and i32 %shr.i.i3208, 31 - %rs2.i3210 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3209, ptr %rs2.i3210, align 4 - %shr.i5.i3211 = lshr i32 %insn, 7 - %and.i6.i3212 = and i32 %shr.i5.i3211, 31 - store i32 %and.i6.i3212, ptr %u, align 4 - %shr.i7.i3213 = lshr i32 %insn, 15 - %and.i8.i3214 = and i32 %shr.i7.i3213, 31 - %rs1.i3215 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3214, ptr %rs1.i3215, align 4 + %shr.i.i3190 = lshr i32 %insn, 20 + %and.i.i3191 = and i32 %shr.i.i3190, 31 + %rs2.i3192 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3191, ptr %rs2.i3192, align 4 + %shr.i5.i3193 = lshr i32 %insn, 7 + %and.i6.i3194 = and i32 %shr.i5.i3193, 31 + store i32 %and.i6.i3194, ptr %u, align 4 + %shr.i7.i3195 = lshr i32 %insn, 15 + %and.i8.i3196 = and i32 %shr.i7.i3195, 31 + %rs1.i3197 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3196, ptr %rs1.i3197, align 4 %cond68 = icmp ult i32 %insn, 1073741824 br i1 %cond68, label %sw.bb897, label %sw.epilog3868 @@ -9733,17 +9723,17 @@ sw.bb897: ; preds = %sw.bb894 br i1 %call898, label %return, label %sw.epilog3868 sw.bb902: ; preds = %sw.bb792 - %shr.i.i3216 = lshr i32 %insn, 20 - %and.i.i3217 = and i32 %shr.i.i3216, 31 - %rs2.i3218 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3217, ptr %rs2.i3218, align 4 - %shr.i5.i3219 = lshr i32 %insn, 7 - %and.i6.i3220 = and i32 %shr.i5.i3219, 31 - store i32 %and.i6.i3220, ptr %u, align 4 - %shr.i7.i3221 = lshr i32 %insn, 15 - %and.i8.i3222 = and i32 %shr.i7.i3221, 31 - %rs1.i3223 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3222, ptr %rs1.i3223, align 4 + %shr.i.i3198 = lshr i32 %insn, 20 + %and.i.i3199 = and i32 %shr.i.i3198, 31 + %rs2.i3200 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3199, ptr %rs2.i3200, align 4 + %shr.i5.i3201 = lshr i32 %insn, 7 + %and.i6.i3202 = and i32 %shr.i5.i3201, 31 + store i32 %and.i6.i3202, ptr %u, align 4 + %shr.i7.i3203 = lshr i32 %insn, 15 + %and.i8.i3204 = and i32 %shr.i7.i3203, 31 + %rs1.i3205 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3204, ptr %rs1.i3205, align 4 %cond67 = icmp ult i32 %insn, 1073741824 br i1 %cond67, label %sw.bb905, label %sw.epilog3868 @@ -9752,235 +9742,235 @@ sw.bb905: ; preds = %sw.bb902 br i1 %call906, label %return, label %sw.epilog3868 sw.bb910: ; preds = %sw.bb792 - %shr.i.i3224 = lshr i32 %insn, 20 - %and.i.i3225 = and i32 %shr.i.i3224, 31 - %rs2.i3226 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3225, ptr %rs2.i3226, align 4 - %shr.i5.i3227 = lshr i32 %insn, 7 - %and.i6.i3228 = and i32 %shr.i5.i3227, 31 - store i32 %and.i6.i3228, ptr %u, align 4 - %shr.i7.i3229 = lshr i32 %insn, 15 - %and.i8.i3230 = and i32 %shr.i7.i3229, 31 - %rs1.i3231 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3230, ptr %rs1.i3231, align 4 + %shr.i.i3206 = lshr i32 %insn, 20 + %and.i.i3207 = and i32 %shr.i.i3206, 31 + %rs2.i3208 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3207, ptr %rs2.i3208, align 4 + %shr.i5.i3209 = lshr i32 %insn, 7 + %and.i6.i3210 = and i32 %shr.i5.i3209, 31 + store i32 %and.i6.i3210, ptr %u, align 4 + %shr.i7.i3211 = lshr i32 %insn, 15 + %and.i8.i3212 = and i32 %shr.i7.i3211, 31 + %rs1.i3213 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3212, ptr %rs1.i3213, align 4 %cond66 = icmp ult i32 %insn, 1073741824 br i1 %cond66, label %sw.bb913, label %sw.epilog3868 sw.bb913: ; preds = %sw.bb910 %96 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3232 = load i32, ptr %96, align 4 - %and.i.i3233 = and i32 %ctx.val.i3232, 4096 - %tobool.i.not.i = icmp eq i32 %and.i.i3233, 0 + %ctx.val.i3214 = load i32, ptr %96, align 4 + %and.i.i3215 = and i32 %ctx.val.i3214, 4096 + %tobool.i.not.i = icmp eq i32 %and.i.i3215, 0 br i1 %tobool.i.not.i, label %sw.epilog3868, label %trans_div.exit trans_div.exit: ; preds = %sw.bb913 - %call1.i3235 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_div, ptr noundef nonnull @gen_div_i128) - br i1 %call1.i3235, label %return, label %sw.epilog3868 + %call1.i3217 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_div, ptr noundef nonnull @gen_div_i128) + br i1 %call1.i3217, label %return, label %sw.epilog3868 sw.bb918: ; preds = %sw.bb792 - %shr.i.i3237 = lshr i32 %insn, 20 - %and.i.i3238 = and i32 %shr.i.i3237, 31 - %rs2.i3239 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3238, ptr %rs2.i3239, align 4 - %shr.i5.i3240 = lshr i32 %insn, 7 - %and.i6.i3241 = and i32 %shr.i5.i3240, 31 - store i32 %and.i6.i3241, ptr %u, align 4 - %shr.i7.i3242 = lshr i32 %insn, 15 - %and.i8.i3243 = and i32 %shr.i7.i3242, 31 - %rs1.i3244 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3243, ptr %rs1.i3244, align 4 + %shr.i.i3219 = lshr i32 %insn, 20 + %and.i.i3220 = and i32 %shr.i.i3219, 31 + %rs2.i3221 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3220, ptr %rs2.i3221, align 4 + %shr.i5.i3222 = lshr i32 %insn, 7 + %and.i6.i3223 = and i32 %shr.i5.i3222, 31 + store i32 %and.i6.i3223, ptr %u, align 4 + %shr.i7.i3224 = lshr i32 %insn, 15 + %and.i8.i3225 = and i32 %shr.i7.i3224, 31 + %rs1.i3226 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3225, ptr %rs1.i3226, align 4 %cond65 = icmp ult i32 %insn, 1073741824 br i1 %cond65, label %sw.bb921, label %sw.epilog3868 sw.bb921: ; preds = %sw.bb918 %97 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3245 = load i32, ptr %97, align 4 - %and.i.i3246 = and i32 %ctx.val.i3245, 4096 - %tobool.i.not.i3247 = icmp eq i32 %and.i.i3246, 0 - br i1 %tobool.i.not.i3247, label %sw.epilog3868, label %trans_divu.exit + %ctx.val.i3227 = load i32, ptr %97, align 4 + %and.i.i3228 = and i32 %ctx.val.i3227, 4096 + %tobool.i.not.i3229 = icmp eq i32 %and.i.i3228, 0 + br i1 %tobool.i.not.i3229, label %sw.epilog3868, label %trans_divu.exit trans_divu.exit: ; preds = %sw.bb921 - %call1.i3249 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_divu, ptr noundef nonnull @gen_divu_i128) - br i1 %call1.i3249, label %return, label %sw.epilog3868 + %call1.i3231 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_divu, ptr noundef nonnull @gen_divu_i128) + br i1 %call1.i3231, label %return, label %sw.epilog3868 sw.bb926: ; preds = %sw.bb792 - %shr.i.i3251 = lshr i32 %insn, 20 - %and.i.i3252 = and i32 %shr.i.i3251, 31 - %rs2.i3253 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3252, ptr %rs2.i3253, align 4 - %shr.i5.i3254 = lshr i32 %insn, 7 - %and.i6.i3255 = and i32 %shr.i5.i3254, 31 - store i32 %and.i6.i3255, ptr %u, align 4 - %shr.i7.i3256 = lshr i32 %insn, 15 - %and.i8.i3257 = and i32 %shr.i7.i3256, 31 - %rs1.i3258 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3257, ptr %rs1.i3258, align 4 + %shr.i.i3233 = lshr i32 %insn, 20 + %and.i.i3234 = and i32 %shr.i.i3233, 31 + %rs2.i3235 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3234, ptr %rs2.i3235, align 4 + %shr.i5.i3236 = lshr i32 %insn, 7 + %and.i6.i3237 = and i32 %shr.i5.i3236, 31 + store i32 %and.i6.i3237, ptr %u, align 4 + %shr.i7.i3238 = lshr i32 %insn, 15 + %and.i8.i3239 = and i32 %shr.i7.i3238, 31 + %rs1.i3240 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3239, ptr %rs1.i3240, align 4 %cond64 = icmp ult i32 %insn, 1073741824 br i1 %cond64, label %sw.bb929, label %sw.epilog3868 sw.bb929: ; preds = %sw.bb926 %98 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3259 = load i32, ptr %98, align 4 - %and.i.i3260 = and i32 %ctx.val.i3259, 4096 - %tobool.i.not.i3261 = icmp eq i32 %and.i.i3260, 0 - br i1 %tobool.i.not.i3261, label %sw.epilog3868, label %trans_rem.exit + %ctx.val.i3241 = load i32, ptr %98, align 4 + %and.i.i3242 = and i32 %ctx.val.i3241, 4096 + %tobool.i.not.i3243 = icmp eq i32 %and.i.i3242, 0 + br i1 %tobool.i.not.i3243, label %sw.epilog3868, label %trans_rem.exit trans_rem.exit: ; preds = %sw.bb929 - %call1.i3263 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_rem, ptr noundef nonnull @gen_rem_i128) - br i1 %call1.i3263, label %return, label %sw.epilog3868 + %call1.i3245 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_rem, ptr noundef nonnull @gen_rem_i128) + br i1 %call1.i3245, label %return, label %sw.epilog3868 sw.bb934: ; preds = %sw.bb792 - %shr.i.i3265 = lshr i32 %insn, 20 - %and.i.i3266 = and i32 %shr.i.i3265, 31 - %rs2.i3267 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3266, ptr %rs2.i3267, align 4 - %shr.i5.i3268 = lshr i32 %insn, 7 - %and.i6.i3269 = and i32 %shr.i5.i3268, 31 - store i32 %and.i6.i3269, ptr %u, align 4 - %shr.i7.i3270 = lshr i32 %insn, 15 - %and.i8.i3271 = and i32 %shr.i7.i3270, 31 - %rs1.i3272 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3271, ptr %rs1.i3272, align 4 + %shr.i.i3247 = lshr i32 %insn, 20 + %and.i.i3248 = and i32 %shr.i.i3247, 31 + %rs2.i3249 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3248, ptr %rs2.i3249, align 4 + %shr.i5.i3250 = lshr i32 %insn, 7 + %and.i6.i3251 = and i32 %shr.i5.i3250, 31 + store i32 %and.i6.i3251, ptr %u, align 4 + %shr.i7.i3252 = lshr i32 %insn, 15 + %and.i8.i3253 = and i32 %shr.i7.i3252, 31 + %rs1.i3254 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3253, ptr %rs1.i3254, align 4 %cond63 = icmp ult i32 %insn, 1073741824 br i1 %cond63, label %sw.bb937, label %sw.epilog3868 sw.bb937: ; preds = %sw.bb934 %99 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3273 = load i32, ptr %99, align 4 - %and.i.i3274 = and i32 %ctx.val.i3273, 4096 - %tobool.i.not.i3275 = icmp eq i32 %and.i.i3274, 0 - br i1 %tobool.i.not.i3275, label %sw.epilog3868, label %trans_remu.exit + %ctx.val.i3255 = load i32, ptr %99, align 4 + %and.i.i3256 = and i32 %ctx.val.i3255, 4096 + %tobool.i.not.i3257 = icmp eq i32 %and.i.i3256, 0 + br i1 %tobool.i.not.i3257, label %sw.epilog3868, label %trans_remu.exit trans_remu.exit: ; preds = %sw.bb937 - %call1.i3277 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_remu, ptr noundef nonnull @gen_remu_i128) - br i1 %call1.i3277, label %return, label %sw.epilog3868 + %call1.i3259 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_remu, ptr noundef nonnull @gen_remu_i128) + br i1 %call1.i3259, label %return, label %sw.epilog3868 sw.bb942: ; preds = %sw.bb792 - %shr.i.i3279 = lshr i32 %insn, 20 - %and.i.i3280 = and i32 %shr.i.i3279, 31 - %rs2.i3281 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3280, ptr %rs2.i3281, align 4 - %shr.i5.i3282 = lshr i32 %insn, 7 - %and.i6.i3283 = and i32 %shr.i5.i3282, 31 - store i32 %and.i6.i3283, ptr %u, align 4 - %shr.i7.i3284 = lshr i32 %insn, 15 - %and.i8.i3285 = and i32 %shr.i7.i3284, 31 - %rs1.i3286 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3285, ptr %rs1.i3286, align 4 + %shr.i.i3261 = lshr i32 %insn, 20 + %and.i.i3262 = and i32 %shr.i.i3261, 31 + %rs2.i3263 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3262, ptr %rs2.i3263, align 4 + %shr.i5.i3264 = lshr i32 %insn, 7 + %and.i6.i3265 = and i32 %shr.i5.i3264, 31 + store i32 %and.i6.i3265, ptr %u, align 4 + %shr.i7.i3266 = lshr i32 %insn, 15 + %and.i8.i3267 = and i32 %shr.i7.i3266, 31 + %rs1.i3268 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3267, ptr %rs1.i3268, align 4 %shr943.mask = and i32 %insn, -1073741824 %cond62 = icmp eq i32 %shr943.mask, 1073741824 br i1 %cond62, label %sw.bb945, label %sw.epilog3868 sw.bb945: ; preds = %sw.bb942 - %cfg_ptr.i3287 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %100 = load ptr, ptr %cfg_ptr.i3287, align 8 - %ext_zbs.i3288 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %100, i64 0, i32 6 - %101 = load i8, ptr %ext_zbs.i3288, align 2 + %cfg_ptr.i3269 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %100 = load ptr, ptr %cfg_ptr.i3269, align 8 + %ext_zbs.i3270 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %100, i64 0, i32 6 + %101 = load i8, ptr %ext_zbs.i3270, align 2 %102 = and i8 %101, 1 - %tobool.not.i3289 = icmp eq i8 %102, 0 - br i1 %tobool.not.i3289, label %sw.epilog3868, label %trans_bclr.exit + %tobool.not.i3271 = icmp eq i8 %102, 0 + br i1 %tobool.not.i3271, label %sw.epilog3868, label %trans_bclr.exit trans_bclr.exit: ; preds = %sw.bb945 - %call.i3291 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_bclr) - br i1 %call.i3291, label %return, label %sw.epilog3868 + %call.i3273 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_bclr) + br i1 %call.i3273, label %return, label %sw.epilog3868 sw.bb950: ; preds = %sw.bb792 %cond61 = icmp ult i32 %insn, 1073741824 br i1 %cond61, label %sw.bb953, label %sw.epilog3868 sw.bb953: ; preds = %sw.bb950 - %shr.i.i3293 = lshr i32 %insn, 7 - %and.i.i3294 = and i32 %shr.i.i3293, 31 - %shr.i3.i3295 = lshr i32 %insn, 15 - %and.i4.i3296 = and i32 %shr.i3.i3295, 31 - %shr.i.i3298 = lshr i32 %insn, 20 - %and.i.i3299 = and i32 %shr.i.i3298, 31 - %rs2.i3300 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3299, ptr %rs2.i3300, align 4 - store i32 %and.i.i3294, ptr %u, align 4 - %rs1.i3305 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i4.i3296, ptr %rs1.i3305, align 4 - %cfg_ptr.i3306 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %103 = load ptr, ptr %cfg_ptr.i3306, align 8 + %shr.i.i3275 = lshr i32 %insn, 7 + %and.i.i3276 = and i32 %shr.i.i3275, 31 + %shr.i3.i3277 = lshr i32 %insn, 15 + %and.i4.i3278 = and i32 %shr.i3.i3277, 31 + %shr.i.i3280 = lshr i32 %insn, 20 + %and.i.i3281 = and i32 %shr.i.i3280, 31 + %rs2.i3282 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3281, ptr %rs2.i3282, align 4 + store i32 %and.i.i3276, ptr %u, align 4 + %rs1.i3287 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i4.i3278, ptr %rs1.i3287, align 4 + %cfg_ptr.i3288 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %103 = load ptr, ptr %cfg_ptr.i3288, align 8 %ext_zbkb.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %103, i64 0, i32 3 %104 = load i8, ptr %ext_zbkb.i, align 1 %105 = and i8 %104, 1 - %tobool.not.i3307 = icmp eq i8 %105, 0 - br i1 %tobool.not.i3307, label %sw.epilog3868, label %trans_pack.exit + %tobool.not.i3289 = icmp eq i8 %105, 0 + br i1 %tobool.not.i3289, label %sw.epilog3868, label %trans_pack.exit trans_pack.exit: ; preds = %sw.bb953 - %call.i3309 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_pack, ptr noundef null) - br i1 %call.i3309, label %return, label %sw.epilog3868 + %call.i3291 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_pack, ptr noundef null) + br i1 %call.i3291, label %return, label %sw.epilog3868 sw.bb965: ; preds = %sw.bb792 - %shr.i.i3311 = lshr i32 %insn, 20 - %and.i.i3312 = and i32 %shr.i.i3311, 31 - %rs2.i3313 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3312, ptr %rs2.i3313, align 4 - %shr.i5.i3314 = lshr i32 %insn, 7 - %and.i6.i3315 = and i32 %shr.i5.i3314, 31 - store i32 %and.i6.i3315, ptr %u, align 4 - %shr.i7.i3316 = lshr i32 %insn, 15 - %and.i8.i3317 = and i32 %shr.i7.i3316, 31 - %rs1.i3318 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3317, ptr %rs1.i3318, align 4 + %shr.i.i3293 = lshr i32 %insn, 20 + %and.i.i3294 = and i32 %shr.i.i3293, 31 + %rs2.i3295 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3294, ptr %rs2.i3295, align 4 + %shr.i5.i3296 = lshr i32 %insn, 7 + %and.i6.i3297 = and i32 %shr.i5.i3296, 31 + store i32 %and.i6.i3297, ptr %u, align 4 + %shr.i7.i3298 = lshr i32 %insn, 15 + %and.i8.i3299 = and i32 %shr.i7.i3298, 31 + %rs1.i3300 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3299, ptr %rs1.i3300, align 4 %shr966.mask = and i32 %insn, -1073741824 %cond60 = icmp eq i32 %shr966.mask, 1073741824 br i1 %cond60, label %sw.bb968, label %sw.epilog3868 sw.bb968: ; preds = %sw.bb965 - %cfg_ptr.i3319 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %106 = load ptr, ptr %cfg_ptr.i3319, align 8 - %ext_zbs.i3320 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %106, i64 0, i32 6 - %107 = load i8, ptr %ext_zbs.i3320, align 2 + %cfg_ptr.i3301 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %106 = load ptr, ptr %cfg_ptr.i3301, align 8 + %ext_zbs.i3302 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %106, i64 0, i32 6 + %107 = load i8, ptr %ext_zbs.i3302, align 2 %108 = and i8 %107, 1 - %tobool.not.i3321 = icmp eq i8 %108, 0 - br i1 %tobool.not.i3321, label %sw.epilog3868, label %trans_bext.exit + %tobool.not.i3303 = icmp eq i8 %108, 0 + br i1 %tobool.not.i3303, label %sw.epilog3868, label %trans_bext.exit trans_bext.exit: ; preds = %sw.bb968 - %call.i3323 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_bext) - br i1 %call.i3323, label %return, label %sw.epilog3868 + %call.i3305 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_bext) + br i1 %call.i3305, label %return, label %sw.epilog3868 sw.bb973: ; preds = %sw.bb792 - %shr.i.i3325 = lshr i32 %insn, 20 - %and.i.i3326 = and i32 %shr.i.i3325, 31 - %rs2.i3327 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3326, ptr %rs2.i3327, align 4 - %shr.i5.i3328 = lshr i32 %insn, 7 - %and.i6.i3329 = and i32 %shr.i5.i3328, 31 - store i32 %and.i6.i3329, ptr %u, align 4 - %shr.i7.i3330 = lshr i32 %insn, 15 - %and.i8.i3331 = and i32 %shr.i7.i3330, 31 - %rs1.i3332 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3331, ptr %rs1.i3332, align 4 + %shr.i.i3307 = lshr i32 %insn, 20 + %and.i.i3308 = and i32 %shr.i.i3307, 31 + %rs2.i3309 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3308, ptr %rs2.i3309, align 4 + %shr.i5.i3310 = lshr i32 %insn, 7 + %and.i6.i3311 = and i32 %shr.i5.i3310, 31 + store i32 %and.i6.i3311, ptr %u, align 4 + %shr.i7.i3312 = lshr i32 %insn, 15 + %and.i8.i3313 = and i32 %shr.i7.i3312, 31 + %rs1.i3314 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3313, ptr %rs1.i3314, align 4 %cond59 = icmp ult i32 %insn, 1073741824 br i1 %cond59, label %sw.bb976, label %sw.epilog3868 sw.bb976: ; preds = %sw.bb973 - %cfg_ptr.i3333 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %109 = load ptr, ptr %cfg_ptr.i3333, align 8 - %ext_zbkb.i3334 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %109, i64 0, i32 3 - %110 = load i8, ptr %ext_zbkb.i3334, align 1 + %cfg_ptr.i3315 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %109 = load ptr, ptr %cfg_ptr.i3315, align 8 + %ext_zbkb.i3316 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %109, i64 0, i32 3 + %110 = load i8, ptr %ext_zbkb.i3316, align 1 %111 = and i8 %110, 1 - %tobool.not.i3335 = icmp eq i8 %111, 0 - br i1 %tobool.not.i3335, label %sw.epilog3868, label %trans_packh.exit + %tobool.not.i3317 = icmp eq i8 %111, 0 + br i1 %tobool.not.i3317, label %sw.epilog3868, label %trans_packh.exit trans_packh.exit: ; preds = %sw.bb976 - %call.i3337 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_packh, ptr noundef null) - br i1 %call.i3337, label %return, label %sw.epilog3868 + %call.i3319 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_packh, ptr noundef null) + br i1 %call.i3319, label %return, label %sw.epilog3868 sw.bb981: ; preds = %sw.bb792 - %shr.i.i3339 = lshr i32 %insn, 20 - %and.i.i3340 = and i32 %shr.i.i3339, 31 - %rs2.i3341 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3340, ptr %rs2.i3341, align 4 - %shr.i5.i3342 = lshr i32 %insn, 7 - %and.i6.i3343 = and i32 %shr.i5.i3342, 31 - store i32 %and.i6.i3343, ptr %u, align 4 - %shr.i7.i3344 = lshr i32 %insn, 15 - %and.i8.i3345 = and i32 %shr.i7.i3344, 31 - %rs1.i3346 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3345, ptr %rs1.i3346, align 4 + %shr.i.i3321 = lshr i32 %insn, 20 + %and.i.i3322 = and i32 %shr.i.i3321, 31 + %rs2.i3323 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3322, ptr %rs2.i3323, align 4 + %shr.i5.i3324 = lshr i32 %insn, 7 + %and.i6.i3325 = and i32 %shr.i5.i3324, 31 + store i32 %and.i6.i3325, ptr %u, align 4 + %shr.i7.i3326 = lshr i32 %insn, 15 + %and.i8.i3327 = and i32 %shr.i7.i3326, 31 + %rs1.i3328 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3327, ptr %rs1.i3328, align 4 %cond58 = icmp ult i32 %insn, 1073741824 br i1 %cond58, label %sw.bb984, label %sw.epilog3868 @@ -9989,45 +9979,45 @@ sw.bb984: ; preds = %sw.bb981 br i1 %call985, label %return, label %sw.epilog3868 sw.bb989: ; preds = %sw.bb792 - %shr.i.i3347 = lshr i32 %insn, 20 - %and.i.i3348 = and i32 %shr.i.i3347, 31 - %rs2.i3349 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3348, ptr %rs2.i3349, align 4 - %shr.i5.i3350 = lshr i32 %insn, 7 - %and.i6.i3351 = and i32 %shr.i5.i3350, 31 - store i32 %and.i6.i3351, ptr %u, align 4 - %shr.i7.i3352 = lshr i32 %insn, 15 - %and.i8.i3353 = and i32 %shr.i7.i3352, 31 - %rs1.i3354 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3353, ptr %rs1.i3354, align 4 + %shr.i.i3329 = lshr i32 %insn, 20 + %and.i.i3330 = and i32 %shr.i.i3329, 31 + %rs2.i3331 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3330, ptr %rs2.i3331, align 4 + %shr.i5.i3332 = lshr i32 %insn, 7 + %and.i6.i3333 = and i32 %shr.i5.i3332, 31 + store i32 %and.i6.i3333, ptr %u, align 4 + %shr.i7.i3334 = lshr i32 %insn, 15 + %and.i8.i3335 = and i32 %shr.i7.i3334, 31 + %rs1.i3336 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3335, ptr %rs1.i3336, align 4 %cond57 = icmp ult i32 %insn, 1073741824 br i1 %cond57, label %sw.bb992, label %sw.epilog3868 sw.bb992: ; preds = %sw.bb989 - %cfg_ptr.i3355 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %112 = load ptr, ptr %cfg_ptr.i3355, align 8 + %cfg_ptr.i3337 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %112 = load ptr, ptr %cfg_ptr.i3337, align 8 %ext_zbc.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %112, i64 0, i32 2 %113 = load i8, ptr %ext_zbc.i, align 2 %114 = and i8 %113, 1 - %tobool.not.i3356 = icmp eq i8 %114, 0 - br i1 %tobool.not.i3356, label %sw.epilog3868, label %trans_clmulr.exit + %tobool.not.i3338 = icmp eq i8 %114, 0 + br i1 %tobool.not.i3338, label %sw.epilog3868, label %trans_clmulr.exit trans_clmulr.exit: ; preds = %sw.bb992 - %call.i3358 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_clmulr, ptr noundef null) - br i1 %call.i3358, label %return, label %sw.epilog3868 + %call.i3340 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_clmulr, ptr noundef null) + br i1 %call.i3340, label %return, label %sw.epilog3868 sw.bb997: ; preds = %sw.bb792 - %shr.i.i3360 = lshr i32 %insn, 20 - %and.i.i3361 = and i32 %shr.i.i3360, 31 - %rs2.i3362 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3361, ptr %rs2.i3362, align 4 - %shr.i5.i3363 = lshr i32 %insn, 7 - %and.i6.i3364 = and i32 %shr.i5.i3363, 31 - store i32 %and.i6.i3364, ptr %u, align 4 - %shr.i7.i3365 = lshr i32 %insn, 15 - %and.i8.i3366 = and i32 %shr.i7.i3365, 31 - %rs1.i3367 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3366, ptr %rs1.i3367, align 4 + %shr.i.i3342 = lshr i32 %insn, 20 + %and.i.i3343 = and i32 %shr.i.i3342, 31 + %rs2.i3344 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3343, ptr %rs2.i3344, align 4 + %shr.i5.i3345 = lshr i32 %insn, 7 + %and.i6.i3346 = and i32 %shr.i5.i3345, 31 + store i32 %and.i6.i3346, ptr %u, align 4 + %shr.i7.i3347 = lshr i32 %insn, 15 + %and.i8.i3348 = and i32 %shr.i7.i3347, 31 + %rs1.i3349 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3348, ptr %rs1.i3349, align 4 %cond56 = icmp ult i32 %insn, 1073741824 br i1 %cond56, label %sw.bb1000, label %sw.epilog3868 @@ -10036,17 +10026,17 @@ sw.bb1000: ; preds = %sw.bb997 br i1 %call1001, label %return, label %sw.epilog3868 sw.bb1005: ; preds = %sw.bb792 - %shr.i.i3368 = lshr i32 %insn, 20 - %and.i.i3369 = and i32 %shr.i.i3368, 31 - %rs2.i3370 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3369, ptr %rs2.i3370, align 4 - %shr.i5.i3371 = lshr i32 %insn, 7 - %and.i6.i3372 = and i32 %shr.i5.i3371, 31 - store i32 %and.i6.i3372, ptr %u, align 4 - %shr.i7.i3373 = lshr i32 %insn, 15 - %and.i8.i3374 = and i32 %shr.i7.i3373, 31 - %rs1.i3375 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3374, ptr %rs1.i3375, align 4 + %shr.i.i3350 = lshr i32 %insn, 20 + %and.i.i3351 = and i32 %shr.i.i3350, 31 + %rs2.i3352 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3351, ptr %rs2.i3352, align 4 + %shr.i5.i3353 = lshr i32 %insn, 7 + %and.i6.i3354 = and i32 %shr.i5.i3353, 31 + store i32 %and.i6.i3354, ptr %u, align 4 + %shr.i7.i3355 = lshr i32 %insn, 15 + %and.i8.i3356 = and i32 %shr.i7.i3355, 31 + %rs1.i3357 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3356, ptr %rs1.i3357, align 4 %cond55 = icmp ult i32 %insn, 1073741824 br i1 %cond55, label %sw.bb1008, label %sw.epilog3868 @@ -10055,17 +10045,17 @@ sw.bb1008: ; preds = %sw.bb1005 br i1 %call1009, label %return, label %sw.epilog3868 sw.bb1013: ; preds = %sw.bb792 - %shr.i.i3376 = lshr i32 %insn, 20 - %and.i.i3377 = and i32 %shr.i.i3376, 31 - %rs2.i3378 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3377, ptr %rs2.i3378, align 4 - %shr.i5.i3379 = lshr i32 %insn, 7 - %and.i6.i3380 = and i32 %shr.i5.i3379, 31 - store i32 %and.i6.i3380, ptr %u, align 4 - %shr.i7.i3381 = lshr i32 %insn, 15 - %and.i8.i3382 = and i32 %shr.i7.i3381, 31 - %rs1.i3383 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3382, ptr %rs1.i3383, align 4 + %shr.i.i3358 = lshr i32 %insn, 20 + %and.i.i3359 = and i32 %shr.i.i3358, 31 + %rs2.i3360 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3359, ptr %rs2.i3360, align 4 + %shr.i5.i3361 = lshr i32 %insn, 7 + %and.i6.i3362 = and i32 %shr.i5.i3361, 31 + store i32 %and.i6.i3362, ptr %u, align 4 + %shr.i7.i3363 = lshr i32 %insn, 15 + %and.i8.i3364 = and i32 %shr.i7.i3363, 31 + %rs1.i3365 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3364, ptr %rs1.i3365, align 4 %cond54 = icmp ult i32 %insn, 1073741824 br i1 %cond54, label %sw.bb1016, label %sw.epilog3868 @@ -10074,17 +10064,17 @@ sw.bb1016: ; preds = %sw.bb1013 br i1 %call1017, label %return, label %sw.epilog3868 sw.bb1021: ; preds = %sw.bb792 - %shr.i.i3384 = lshr i32 %insn, 20 - %and.i.i3385 = and i32 %shr.i.i3384, 31 - %rs2.i3386 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3385, ptr %rs2.i3386, align 4 - %shr.i5.i3387 = lshr i32 %insn, 7 - %and.i6.i3388 = and i32 %shr.i5.i3387, 31 - store i32 %and.i6.i3388, ptr %u, align 4 - %shr.i7.i3389 = lshr i32 %insn, 15 - %and.i8.i3390 = and i32 %shr.i7.i3389, 31 - %rs1.i3391 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3390, ptr %rs1.i3391, align 4 + %shr.i.i3366 = lshr i32 %insn, 20 + %and.i.i3367 = and i32 %shr.i.i3366, 31 + %rs2.i3368 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3367, ptr %rs2.i3368, align 4 + %shr.i5.i3369 = lshr i32 %insn, 7 + %and.i6.i3370 = and i32 %shr.i5.i3369, 31 + store i32 %and.i6.i3370, ptr %u, align 4 + %shr.i7.i3371 = lshr i32 %insn, 15 + %and.i8.i3372 = and i32 %shr.i7.i3371, 31 + %rs1.i3373 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3372, ptr %rs1.i3373, align 4 %cond53 = icmp ult i32 %insn, 1073741824 br i1 %cond53, label %sw.bb1024, label %sw.epilog3868 @@ -10093,17 +10083,17 @@ sw.bb1024: ; preds = %sw.bb1021 br i1 %call1025, label %return, label %sw.epilog3868 sw.bb1029: ; preds = %sw.bb792 - %shr.i.i3392 = lshr i32 %insn, 20 - %and.i.i3393 = and i32 %shr.i.i3392, 31 - %rs2.i3394 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3393, ptr %rs2.i3394, align 4 - %shr.i5.i3395 = lshr i32 %insn, 7 - %and.i6.i3396 = and i32 %shr.i5.i3395, 31 - store i32 %and.i6.i3396, ptr %u, align 4 - %shr.i7.i3397 = lshr i32 %insn, 15 - %and.i8.i3398 = and i32 %shr.i7.i3397, 31 - %rs1.i3399 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3398, ptr %rs1.i3399, align 4 + %shr.i.i3374 = lshr i32 %insn, 20 + %and.i.i3375 = and i32 %shr.i.i3374, 31 + %rs2.i3376 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3375, ptr %rs2.i3376, align 4 + %shr.i5.i3377 = lshr i32 %insn, 7 + %and.i6.i3378 = and i32 %shr.i5.i3377, 31 + store i32 %and.i6.i3378, ptr %u, align 4 + %shr.i7.i3379 = lshr i32 %insn, 15 + %and.i8.i3380 = and i32 %shr.i7.i3379, 31 + %rs1.i3381 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3380, ptr %rs1.i3381, align 4 %cond52 = icmp ult i32 %insn, 1073741824 br i1 %cond52, label %sw.bb1032, label %sw.epilog3868 @@ -10112,73 +10102,73 @@ sw.bb1032: ; preds = %sw.bb1029 br i1 %call1033, label %return, label %sw.epilog3868 sw.bb1037: ; preds = %sw.bb792 - %shr.i.i3400 = lshr i32 %insn, 20 - %and.i.i3401 = and i32 %shr.i.i3400, 31 - %rs2.i3402 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3401, ptr %rs2.i3402, align 4 - %shr.i5.i3403 = lshr i32 %insn, 7 - %and.i6.i3404 = and i32 %shr.i5.i3403, 31 - store i32 %and.i6.i3404, ptr %u, align 4 - %shr.i7.i3405 = lshr i32 %insn, 15 - %and.i8.i3406 = and i32 %shr.i7.i3405, 31 - %rs1.i3407 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3406, ptr %rs1.i3407, align 4 + %shr.i.i3382 = lshr i32 %insn, 20 + %and.i.i3383 = and i32 %shr.i.i3382, 31 + %rs2.i3384 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3383, ptr %rs2.i3384, align 4 + %shr.i5.i3385 = lshr i32 %insn, 7 + %and.i6.i3386 = and i32 %shr.i5.i3385, 31 + store i32 %and.i6.i3386, ptr %u, align 4 + %shr.i7.i3387 = lshr i32 %insn, 15 + %and.i8.i3388 = and i32 %shr.i7.i3387, 31 + %rs1.i3389 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3388, ptr %rs1.i3389, align 4 %cond51 = icmp ult i32 %insn, 1073741824 br i1 %cond51, label %sw.bb1040, label %sw.epilog3868 sw.bb1040: ; preds = %sw.bb1037 - %cfg_ptr.i3408 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %115 = load ptr, ptr %cfg_ptr.i3408, align 8 + %cfg_ptr.i3390 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %115 = load ptr, ptr %cfg_ptr.i3390, align 8 %ext_zicond.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %115, i64 0, i32 29 %116 = load i8, ptr %ext_zicond.i, align 1 %117 = and i8 %116, 1 - %tobool.not.i3409.not = icmp eq i8 %117, 0 - br i1 %tobool.not.i3409.not, label %sw.epilog3868, label %trans_czero_eqz.exit.thread + %tobool.not.i3391.not = icmp eq i8 %117, 0 + br i1 %tobool.not.i3391.not, label %sw.epilog3868, label %trans_czero_eqz.exit.thread trans_czero_eqz.exit.thread: ; preds = %sw.bb1040 call fastcc void @gen_logic(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_czero_eqz) br label %return sw.bb1045: ; preds = %sw.bb792 - %shr.i.i3412 = lshr i32 %insn, 20 - %and.i.i3413 = and i32 %shr.i.i3412, 31 - %rs2.i3414 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3413, ptr %rs2.i3414, align 4 - %shr.i5.i3415 = lshr i32 %insn, 7 - %and.i6.i3416 = and i32 %shr.i5.i3415, 31 - store i32 %and.i6.i3416, ptr %u, align 4 - %shr.i7.i3417 = lshr i32 %insn, 15 - %and.i8.i3418 = and i32 %shr.i7.i3417, 31 - %rs1.i3419 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3418, ptr %rs1.i3419, align 4 + %shr.i.i3394 = lshr i32 %insn, 20 + %and.i.i3395 = and i32 %shr.i.i3394, 31 + %rs2.i3396 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3395, ptr %rs2.i3396, align 4 + %shr.i5.i3397 = lshr i32 %insn, 7 + %and.i6.i3398 = and i32 %shr.i5.i3397, 31 + store i32 %and.i6.i3398, ptr %u, align 4 + %shr.i7.i3399 = lshr i32 %insn, 15 + %and.i8.i3400 = and i32 %shr.i7.i3399, 31 + %rs1.i3401 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3400, ptr %rs1.i3401, align 4 %cond50 = icmp ult i32 %insn, 1073741824 br i1 %cond50, label %sw.bb1048, label %sw.epilog3868 sw.bb1048: ; preds = %sw.bb1045 - %cfg_ptr.i3420 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %118 = load ptr, ptr %cfg_ptr.i3420, align 8 - %ext_zicond.i3421 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %118, i64 0, i32 29 - %119 = load i8, ptr %ext_zicond.i3421, align 1 + %cfg_ptr.i3402 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %118 = load ptr, ptr %cfg_ptr.i3402, align 8 + %ext_zicond.i3403 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %118, i64 0, i32 29 + %119 = load i8, ptr %ext_zicond.i3403, align 1 %120 = and i8 %119, 1 - %tobool.not.i3422.not = icmp eq i8 %120, 0 - br i1 %tobool.not.i3422.not, label %sw.epilog3868, label %trans_czero_nez.exit.thread + %tobool.not.i3404.not = icmp eq i8 %120, 0 + br i1 %tobool.not.i3404.not, label %sw.epilog3868, label %trans_czero_nez.exit.thread trans_czero_nez.exit.thread: ; preds = %sw.bb1048 call fastcc void @gen_logic(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_czero_nez) br label %return sw.bb1101: ; preds = %sw.bb792 - %shr.i.i3473 = lshr i32 %insn, 20 - %and.i.i3474 = and i32 %shr.i.i3473, 31 - %rs2.i3475 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3474, ptr %rs2.i3475, align 4 - %shr.i5.i3476 = lshr i32 %insn, 7 - %and.i6.i3477 = and i32 %shr.i5.i3476, 31 - store i32 %and.i6.i3477, ptr %u, align 4 - %shr.i7.i3478 = lshr i32 %insn, 15 - %and.i8.i3479 = and i32 %shr.i7.i3478, 31 - %rs1.i3480 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3479, ptr %rs1.i3480, align 4 + %shr.i.i3455 = lshr i32 %insn, 20 + %and.i.i3456 = and i32 %shr.i.i3455, 31 + %rs2.i3457 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3456, ptr %rs2.i3457, align 4 + %shr.i5.i3458 = lshr i32 %insn, 7 + %and.i6.i3459 = and i32 %shr.i5.i3458, 31 + store i32 %and.i6.i3459, ptr %u, align 4 + %shr.i7.i3460 = lshr i32 %insn, 15 + %and.i8.i3461 = and i32 %shr.i7.i3460, 31 + %rs1.i3462 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3461, ptr %rs1.i3462, align 4 %shr1102.mask = and i32 %insn, -1073741824 %cond43 = icmp eq i32 %shr1102.mask, 1073741824 br i1 %cond43, label %sw.bb1104, label %sw.epilog3868 @@ -10188,71 +10178,71 @@ sw.bb1104: ; preds = %sw.bb1101 br i1 %call1105, label %return, label %sw.epilog3868 sw.bb1109: ; preds = %sw.bb792 - %shr.i.i3481 = lshr i32 %insn, 20 - %and.i.i3482 = and i32 %shr.i.i3481, 31 - %rs2.i3483 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3482, ptr %rs2.i3483, align 4 - %shr.i5.i3484 = lshr i32 %insn, 7 - %and.i6.i3485 = and i32 %shr.i5.i3484, 31 - store i32 %and.i6.i3485, ptr %u, align 4 - %shr.i7.i3486 = lshr i32 %insn, 15 - %and.i8.i3487 = and i32 %shr.i7.i3486, 31 - %rs1.i3488 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3487, ptr %rs1.i3488, align 4 + %shr.i.i3463 = lshr i32 %insn, 20 + %and.i.i3464 = and i32 %shr.i.i3463, 31 + %rs2.i3465 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3464, ptr %rs2.i3465, align 4 + %shr.i5.i3466 = lshr i32 %insn, 7 + %and.i6.i3467 = and i32 %shr.i5.i3466, 31 + store i32 %and.i6.i3467, ptr %u, align 4 + %shr.i7.i3468 = lshr i32 %insn, 15 + %and.i8.i3469 = and i32 %shr.i7.i3468, 31 + %rs1.i3470 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3469, ptr %rs1.i3470, align 4 %cond42 = icmp ult i32 %insn, 1073741824 br i1 %cond42, label %sw.bb1112, label %sw.epilog3868 sw.bb1112: ; preds = %sw.bb1109 - %cfg_ptr.i3489 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %121 = load ptr, ptr %cfg_ptr.i3489, align 8 + %cfg_ptr.i3471 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %121 = load ptr, ptr %cfg_ptr.i3471, align 8 %122 = load i8, ptr %121, align 8 %123 = and i8 %122, 1 - %tobool.not.i3490 = icmp eq i8 %123, 0 - br i1 %tobool.not.i3490, label %sw.epilog3868, label %trans_sh1add.exit + %tobool.not.i3472 = icmp eq i8 %123, 0 + br i1 %tobool.not.i3472, label %sw.epilog3868, label %trans_sh1add.exit trans_sh1add.exit: ; preds = %sw.bb1112 - %call.i3492 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh1add, ptr noundef null) - br i1 %call.i3492, label %return, label %sw.epilog3868 + %call.i3474 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh1add, ptr noundef null) + br i1 %call.i3474, label %return, label %sw.epilog3868 sw.bb1117: ; preds = %sw.bb792 - %shr.i.i3494 = lshr i32 %insn, 20 - %and.i.i3495 = and i32 %shr.i.i3494, 31 - %rs2.i3496 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3495, ptr %rs2.i3496, align 4 - %shr.i5.i3497 = lshr i32 %insn, 7 - %and.i6.i3498 = and i32 %shr.i5.i3497, 31 - store i32 %and.i6.i3498, ptr %u, align 4 - %shr.i7.i3499 = lshr i32 %insn, 15 - %and.i8.i3500 = and i32 %shr.i7.i3499, 31 - %rs1.i3501 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3500, ptr %rs1.i3501, align 4 + %shr.i.i3476 = lshr i32 %insn, 20 + %and.i.i3477 = and i32 %shr.i.i3476, 31 + %rs2.i3478 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3477, ptr %rs2.i3478, align 4 + %shr.i5.i3479 = lshr i32 %insn, 7 + %and.i6.i3480 = and i32 %shr.i5.i3479, 31 + store i32 %and.i6.i3480, ptr %u, align 4 + %shr.i7.i3481 = lshr i32 %insn, 15 + %and.i8.i3482 = and i32 %shr.i7.i3481, 31 + %rs1.i3483 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3482, ptr %rs1.i3483, align 4 %cond41 = icmp ult i32 %insn, 1073741824 br i1 %cond41, label %sw.bb1120, label %sw.epilog3868 sw.bb1120: ; preds = %sw.bb1117 - %cfg_ptr.i3502 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %124 = load ptr, ptr %cfg_ptr.i3502, align 8 + %cfg_ptr.i3484 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %124 = load ptr, ptr %cfg_ptr.i3484, align 8 %125 = load i8, ptr %124, align 8 %126 = and i8 %125, 1 - %tobool.not.i3503 = icmp eq i8 %126, 0 - br i1 %tobool.not.i3503, label %sw.epilog3868, label %trans_sh2add.exit + %tobool.not.i3485 = icmp eq i8 %126, 0 + br i1 %tobool.not.i3485, label %sw.epilog3868, label %trans_sh2add.exit trans_sh2add.exit: ; preds = %sw.bb1120 - %call.i3505 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh2add, ptr noundef null) - br i1 %call.i3505, label %return, label %sw.epilog3868 + %call.i3487 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh2add, ptr noundef null) + br i1 %call.i3487, label %return, label %sw.epilog3868 sw.bb1125: ; preds = %sw.bb792 - %shr.i.i3507 = lshr i32 %insn, 20 - %and.i.i3508 = and i32 %shr.i.i3507, 31 - %rs2.i3509 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3508, ptr %rs2.i3509, align 4 - %shr.i5.i3510 = lshr i32 %insn, 7 - %and.i6.i3511 = and i32 %shr.i5.i3510, 31 - store i32 %and.i6.i3511, ptr %u, align 4 - %shr.i7.i3512 = lshr i32 %insn, 15 - %and.i8.i3513 = and i32 %shr.i7.i3512, 31 - %rs1.i3514 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3513, ptr %rs1.i3514, align 4 + %shr.i.i3489 = lshr i32 %insn, 20 + %and.i.i3490 = and i32 %shr.i.i3489, 31 + %rs2.i3491 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3490, ptr %rs2.i3491, align 4 + %shr.i5.i3492 = lshr i32 %insn, 7 + %and.i6.i3493 = and i32 %shr.i5.i3492, 31 + store i32 %and.i6.i3493, ptr %u, align 4 + %shr.i7.i3494 = lshr i32 %insn, 15 + %and.i8.i3495 = and i32 %shr.i7.i3494, 31 + %rs1.i3496 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3495, ptr %rs1.i3496, align 4 %shr1126.mask = and i32 %insn, -1073741824 %cond40 = icmp eq i32 %shr1126.mask, 1073741824 br i1 %cond40, label %sw.bb1128, label %sw.epilog3868 @@ -10262,44 +10252,44 @@ sw.bb1128: ; preds = %sw.bb1125 br i1 %call1129, label %return, label %sw.epilog3868 sw.bb1133: ; preds = %sw.bb792 - %shr.i.i3515 = lshr i32 %insn, 20 - %and.i.i3516 = and i32 %shr.i.i3515, 31 - %rs2.i3517 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3516, ptr %rs2.i3517, align 4 - %shr.i5.i3518 = lshr i32 %insn, 7 - %and.i6.i3519 = and i32 %shr.i5.i3518, 31 - store i32 %and.i6.i3519, ptr %u, align 4 - %shr.i7.i3520 = lshr i32 %insn, 15 - %and.i8.i3521 = and i32 %shr.i7.i3520, 31 - %rs1.i3522 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3521, ptr %rs1.i3522, align 4 + %shr.i.i3497 = lshr i32 %insn, 20 + %and.i.i3498 = and i32 %shr.i.i3497, 31 + %rs2.i3499 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3498, ptr %rs2.i3499, align 4 + %shr.i5.i3500 = lshr i32 %insn, 7 + %and.i6.i3501 = and i32 %shr.i5.i3500, 31 + store i32 %and.i6.i3501, ptr %u, align 4 + %shr.i7.i3502 = lshr i32 %insn, 15 + %and.i8.i3503 = and i32 %shr.i7.i3502, 31 + %rs1.i3504 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3503, ptr %rs1.i3504, align 4 %cond39 = icmp ult i32 %insn, 1073741824 br i1 %cond39, label %sw.bb1136, label %sw.epilog3868 sw.bb1136: ; preds = %sw.bb1133 - %cfg_ptr.i3523 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %127 = load ptr, ptr %cfg_ptr.i3523, align 8 + %cfg_ptr.i3505 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %127 = load ptr, ptr %cfg_ptr.i3505, align 8 %128 = load i8, ptr %127, align 8 %129 = and i8 %128, 1 - %tobool.not.i3524 = icmp eq i8 %129, 0 - br i1 %tobool.not.i3524, label %sw.epilog3868, label %trans_sh3add.exit + %tobool.not.i3506 = icmp eq i8 %129, 0 + br i1 %tobool.not.i3506, label %sw.epilog3868, label %trans_sh3add.exit trans_sh3add.exit: ; preds = %sw.bb1136 - %call.i3526 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh3add, ptr noundef null) - br i1 %call.i3526, label %return, label %sw.epilog3868 + %call.i3508 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh3add, ptr noundef null) + br i1 %call.i3508, label %return, label %sw.epilog3868 sw.bb1149: ; preds = %sw.bb792 - %shr.i.i3548 = lshr i32 %insn, 20 - %and.i.i3549 = and i32 %shr.i.i3548, 31 - %rs2.i3550 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3549, ptr %rs2.i3550, align 4 - %shr.i5.i3551 = lshr i32 %insn, 7 - %and.i6.i3552 = and i32 %shr.i5.i3551, 31 - store i32 %and.i6.i3552, ptr %u, align 4 - %shr.i7.i3553 = lshr i32 %insn, 15 - %and.i8.i3554 = and i32 %shr.i7.i3553, 31 - %rs1.i3555 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3554, ptr %rs1.i3555, align 4 + %shr.i.i3530 = lshr i32 %insn, 20 + %and.i.i3531 = and i32 %shr.i.i3530, 31 + %rs2.i3532 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3531, ptr %rs2.i3532, align 4 + %shr.i5.i3533 = lshr i32 %insn, 7 + %and.i6.i3534 = and i32 %shr.i5.i3533, 31 + store i32 %and.i6.i3534, ptr %u, align 4 + %shr.i7.i3535 = lshr i32 %insn, 15 + %and.i8.i3536 = and i32 %shr.i7.i3535, 31 + %rs1.i3537 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3536, ptr %rs1.i3537, align 4 %shr1150 = lshr i32 %insn, 30 switch i32 %shr1150, label %sw.epilog3868 [ i32 0, label %sw.bb1152 @@ -10307,239 +10297,239 @@ sw.bb1149: ; preds = %sw.bb792 ] sw.bb1152: ; preds = %sw.bb1149 - %cfg_ptr.i3556 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %130 = load ptr, ptr %cfg_ptr.i3556, align 8 - %ext_zbs.i3557 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %130, i64 0, i32 6 - %131 = load i8, ptr %ext_zbs.i3557, align 2 + %cfg_ptr.i3538 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %130 = load ptr, ptr %cfg_ptr.i3538, align 8 + %ext_zbs.i3539 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %130, i64 0, i32 6 + %131 = load i8, ptr %ext_zbs.i3539, align 2 %132 = and i8 %131, 1 - %tobool.not.i3558 = icmp eq i8 %132, 0 - br i1 %tobool.not.i3558, label %sw.epilog3868, label %trans_bset.exit + %tobool.not.i3540 = icmp eq i8 %132, 0 + br i1 %tobool.not.i3540, label %sw.epilog3868, label %trans_bset.exit trans_bset.exit: ; preds = %sw.bb1152 - %call.i3560 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_bset) - br i1 %call.i3560, label %return, label %sw.epilog3868 + %call.i3542 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_bset) + br i1 %call.i3542, label %return, label %sw.epilog3868 sw.bb1156: ; preds = %sw.bb1149 - %cfg_ptr.i3562 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %133 = load ptr, ptr %cfg_ptr.i3562, align 8 - %ext_zbs.i3563 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %133, i64 0, i32 6 - %134 = load i8, ptr %ext_zbs.i3563, align 2 + %cfg_ptr.i3544 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %133 = load ptr, ptr %cfg_ptr.i3544, align 8 + %ext_zbs.i3545 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %133, i64 0, i32 6 + %134 = load i8, ptr %ext_zbs.i3545, align 2 %135 = and i8 %134, 1 - %tobool.not.i3564 = icmp eq i8 %135, 0 - br i1 %tobool.not.i3564, label %sw.epilog3868, label %trans_binv.exit + %tobool.not.i3546 = icmp eq i8 %135, 0 + br i1 %tobool.not.i3546, label %sw.epilog3868, label %trans_binv.exit trans_binv.exit: ; preds = %sw.bb1156 - %call.i3566 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_binv) - br i1 %call.i3566, label %return, label %sw.epilog3868 + %call.i3548 = call fastcc zeroext i1 @gen_shift(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_binv) + br i1 %call.i3548, label %return, label %sw.epilog3868 sw.bb1161: ; preds = %sw.bb792 - %shr.i.i3568 = lshr i32 %insn, 20 - %and.i.i3569 = and i32 %shr.i.i3568, 31 - %rs2.i3570 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3569, ptr %rs2.i3570, align 4 - %shr.i5.i3571 = lshr i32 %insn, 7 - %and.i6.i3572 = and i32 %shr.i5.i3571, 31 - store i32 %and.i6.i3572, ptr %u, align 4 - %shr.i7.i3573 = lshr i32 %insn, 15 - %and.i8.i3574 = and i32 %shr.i7.i3573, 31 - %rs1.i3575 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3574, ptr %rs1.i3575, align 4 + %shr.i.i3550 = lshr i32 %insn, 20 + %and.i.i3551 = and i32 %shr.i.i3550, 31 + %rs2.i3552 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3551, ptr %rs2.i3552, align 4 + %shr.i5.i3553 = lshr i32 %insn, 7 + %and.i6.i3554 = and i32 %shr.i5.i3553, 31 + store i32 %and.i6.i3554, ptr %u, align 4 + %shr.i7.i3555 = lshr i32 %insn, 15 + %and.i8.i3556 = and i32 %shr.i7.i3555, 31 + %rs1.i3557 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3556, ptr %rs1.i3557, align 4 %cond38 = icmp ult i32 %insn, 1073741824 br i1 %cond38, label %sw.bb1164, label %sw.epilog3868 sw.bb1164: ; preds = %sw.bb1161 - %cfg_ptr.i3576 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %136 = load ptr, ptr %cfg_ptr.i3576, align 8 + %cfg_ptr.i3558 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %136 = load ptr, ptr %cfg_ptr.i3558, align 8 %ext_zbkx.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %136, i64 0, i32 5 %137 = load i8, ptr %ext_zbkx.i, align 1 %138 = and i8 %137, 1 - %tobool.not.i3577 = icmp eq i8 %138, 0 - br i1 %tobool.not.i3577, label %sw.epilog3868, label %trans_xperm4.exit + %tobool.not.i3559 = icmp eq i8 %138, 0 + br i1 %tobool.not.i3559, label %sw.epilog3868, label %trans_xperm4.exit trans_xperm4.exit: ; preds = %sw.bb1164 - %call.i3579 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_xperm4, ptr noundef null) - br i1 %call.i3579, label %return, label %sw.epilog3868 + %call.i3561 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_xperm4, ptr noundef null) + br i1 %call.i3561, label %return, label %sw.epilog3868 sw.bb1169: ; preds = %sw.bb792 - %shr.i.i3581 = lshr i32 %insn, 20 - %and.i.i3582 = and i32 %shr.i.i3581, 31 - %rs2.i3583 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3582, ptr %rs2.i3583, align 4 - %shr.i5.i3584 = lshr i32 %insn, 7 - %and.i6.i3585 = and i32 %shr.i5.i3584, 31 - store i32 %and.i6.i3585, ptr %u, align 4 - %shr.i7.i3586 = lshr i32 %insn, 15 - %and.i8.i3587 = and i32 %shr.i7.i3586, 31 - %rs1.i3588 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3587, ptr %rs1.i3588, align 4 + %shr.i.i3563 = lshr i32 %insn, 20 + %and.i.i3564 = and i32 %shr.i.i3563, 31 + %rs2.i3565 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3564, ptr %rs2.i3565, align 4 + %shr.i5.i3566 = lshr i32 %insn, 7 + %and.i6.i3567 = and i32 %shr.i5.i3566, 31 + store i32 %and.i6.i3567, ptr %u, align 4 + %shr.i7.i3568 = lshr i32 %insn, 15 + %and.i8.i3569 = and i32 %shr.i7.i3568, 31 + %rs1.i3570 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3569, ptr %rs1.i3570, align 4 %cond37 = icmp ult i32 %insn, 1073741824 br i1 %cond37, label %sw.bb1172, label %sw.epilog3868 sw.bb1172: ; preds = %sw.bb1169 - %cfg_ptr.i3589 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %139 = load ptr, ptr %cfg_ptr.i3589, align 8 - %ext_zbkx.i3590 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %139, i64 0, i32 5 - %140 = load i8, ptr %ext_zbkx.i3590, align 1 + %cfg_ptr.i3571 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %139 = load ptr, ptr %cfg_ptr.i3571, align 8 + %ext_zbkx.i3572 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %139, i64 0, i32 5 + %140 = load i8, ptr %ext_zbkx.i3572, align 1 %141 = and i8 %140, 1 - %tobool.not.i3591 = icmp eq i8 %141, 0 - br i1 %tobool.not.i3591, label %sw.epilog3868, label %trans_xperm8.exit + %tobool.not.i3573 = icmp eq i8 %141, 0 + br i1 %tobool.not.i3573, label %sw.epilog3868, label %trans_xperm8.exit trans_xperm8.exit: ; preds = %sw.bb1172 - %call.i3593 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_xperm8, ptr noundef null) - br i1 %call.i3593, label %return, label %sw.epilog3868 + %call.i3575 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_xperm8, ptr noundef null) + br i1 %call.i3575, label %return, label %sw.epilog3868 sw.bb1185: ; preds = %sw.bb792 - %shr.i.i3615 = lshr i32 %insn, 20 - %and.i.i3616 = and i32 %shr.i.i3615, 31 - %rs2.i3617 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 1 - store i32 %and.i.i3616, ptr %rs2.i3617, align 4 + %shr.i.i3597 = lshr i32 %insn, 20 + %and.i.i3598 = and i32 %shr.i.i3597, 31 + %rs2.i3599 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 1 + store i32 %and.i.i3598, ptr %rs2.i3599, align 4 %142 = lshr i32 %insn, 27 - %shl.i.i3618 = and i32 %142, 24 - store i32 %shl.i.i3618, ptr %u, align 4 - %shr.i8.i3619 = lshr i32 %insn, 7 - %and.i9.i3620 = and i32 %shr.i8.i3619, 31 - %rd.i3621 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 3 - store i32 %and.i9.i3620, ptr %rd.i3621, align 4 - %shr.i10.i3622 = lshr i32 %insn, 15 - %and.i11.i3623 = and i32 %shr.i10.i3622, 31 - %rs1.i3624 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 2 - store i32 %and.i11.i3623, ptr %rs1.i3624, align 4 - %cfg_ptr.i3625 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %143 = load ptr, ptr %cfg_ptr.i3625, align 8 + %shl.i.i3600 = and i32 %142, 24 + store i32 %shl.i.i3600, ptr %u, align 4 + %shr.i8.i3601 = lshr i32 %insn, 7 + %and.i9.i3602 = and i32 %shr.i8.i3601, 31 + %rd.i3603 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 3 + store i32 %and.i9.i3602, ptr %rd.i3603, align 4 + %shr.i10.i3604 = lshr i32 %insn, 15 + %and.i11.i3605 = and i32 %shr.i10.i3604, 31 + %rs1.i3606 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 2 + store i32 %and.i11.i3605, ptr %rs1.i3606, align 4 + %cfg_ptr.i3607 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %143 = load ptr, ptr %cfg_ptr.i3607, align 8 %ext_zksed.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %143, i64 0, i32 21 %144 = load i8, ptr %ext_zksed.i, align 1 %145 = and i8 %144, 1 - %tobool.not.i3626.not = icmp eq i8 %145, 0 - br i1 %tobool.not.i3626.not, label %sw.epilog3868, label %trans_sm4ed.exit.thread + %tobool.not.i3608.not = icmp eq i8 %145, 0 + br i1 %tobool.not.i3608.not, label %sw.epilog3868, label %trans_sm4ed.exit.thread trans_sm4ed.exit.thread: ; preds = %sw.bb1185 call fastcc void @gen_aes32_sm4(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_helper_sm4ed) br label %return sw.bb1189: ; preds = %sw.bb792 - %shr.i.i3629 = lshr i32 %insn, 20 - %and.i.i3630 = and i32 %shr.i.i3629, 31 - %rs2.i3631 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3630, ptr %rs2.i3631, align 4 - %shr.i5.i3632 = lshr i32 %insn, 7 - %and.i6.i3633 = and i32 %shr.i5.i3632, 31 - store i32 %and.i6.i3633, ptr %u, align 4 - %shr.i7.i3634 = lshr i32 %insn, 15 - %and.i8.i3635 = and i32 %shr.i7.i3634, 31 - %rs1.i3636 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3635, ptr %rs1.i3636, align 4 + %shr.i.i3611 = lshr i32 %insn, 20 + %and.i.i3612 = and i32 %shr.i.i3611, 31 + %rs2.i3613 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3612, ptr %rs2.i3613, align 4 + %shr.i5.i3614 = lshr i32 %insn, 7 + %and.i6.i3615 = and i32 %shr.i5.i3614, 31 + store i32 %and.i6.i3615, ptr %u, align 4 + %shr.i7.i3616 = lshr i32 %insn, 15 + %and.i8.i3617 = and i32 %shr.i7.i3616, 31 + %rs1.i3618 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3617, ptr %rs1.i3618, align 4 %cond36 = icmp ult i32 %insn, 1073741824 br i1 %cond36, label %sw.bb1192, label %sw.epilog3868 sw.bb1192: ; preds = %sw.bb1189 - %cfg_ptr.i3637 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %146 = load ptr, ptr %cfg_ptr.i3637, align 8 + %cfg_ptr.i3619 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %146 = load ptr, ptr %cfg_ptr.i3619, align 8 %ext_zkne.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %146, i64 0, i32 17 %147 = load i8, ptr %ext_zkne.i, align 1 %148 = and i8 %147, 1 - %tobool.not.i3638 = icmp eq i8 %148, 0 - br i1 %tobool.not.i3638, label %sw.epilog3868, label %trans_aes64es.exit + %tobool.not.i3620 = icmp eq i8 %148, 0 + br i1 %tobool.not.i3620, label %sw.epilog3868, label %trans_aes64es.exit trans_aes64es.exit: ; preds = %sw.bb1192 - %call.i3640 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64es, ptr noundef null) - br i1 %call.i3640, label %return, label %sw.epilog3868 + %call.i3622 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64es, ptr noundef null) + br i1 %call.i3622, label %return, label %sw.epilog3868 sw.bb1197: ; preds = %sw.bb792 - %shr.i.i3642 = lshr i32 %insn, 20 - %and.i.i3643 = and i32 %shr.i.i3642, 31 - %rs2.i3644 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 1 - store i32 %and.i.i3643, ptr %rs2.i3644, align 4 + %shr.i.i3624 = lshr i32 %insn, 20 + %and.i.i3625 = and i32 %shr.i.i3624, 31 + %rs2.i3626 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 1 + store i32 %and.i.i3625, ptr %rs2.i3626, align 4 %149 = lshr i32 %insn, 27 - %shl.i.i3645 = and i32 %149, 24 - store i32 %shl.i.i3645, ptr %u, align 4 - %shr.i8.i3646 = lshr i32 %insn, 7 - %and.i9.i3647 = and i32 %shr.i8.i3646, 31 - %rd.i3648 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 3 - store i32 %and.i9.i3647, ptr %rd.i3648, align 4 - %shr.i10.i3649 = lshr i32 %insn, 15 - %and.i11.i3650 = and i32 %shr.i10.i3649, 31 - %rs1.i3651 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 2 - store i32 %and.i11.i3650, ptr %rs1.i3651, align 4 - %cfg_ptr.i3652 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %150 = load ptr, ptr %cfg_ptr.i3652, align 8 - %ext_zksed.i3653 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %150, i64 0, i32 21 - %151 = load i8, ptr %ext_zksed.i3653, align 1 + %shl.i.i3627 = and i32 %149, 24 + store i32 %shl.i.i3627, ptr %u, align 4 + %shr.i8.i3628 = lshr i32 %insn, 7 + %and.i9.i3629 = and i32 %shr.i8.i3628, 31 + %rd.i3630 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 3 + store i32 %and.i9.i3629, ptr %rd.i3630, align 4 + %shr.i10.i3631 = lshr i32 %insn, 15 + %and.i11.i3632 = and i32 %shr.i10.i3631, 31 + %rs1.i3633 = getelementptr inbounds %struct.arg_k_aes, ptr %u, i64 0, i32 2 + store i32 %and.i11.i3632, ptr %rs1.i3633, align 4 + %cfg_ptr.i3634 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %150 = load ptr, ptr %cfg_ptr.i3634, align 8 + %ext_zksed.i3635 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %150, i64 0, i32 21 + %151 = load i8, ptr %ext_zksed.i3635, align 1 %152 = and i8 %151, 1 - %tobool.not.i3654.not = icmp eq i8 %152, 0 - br i1 %tobool.not.i3654.not, label %sw.epilog3868, label %trans_sm4ks.exit.thread + %tobool.not.i3636.not = icmp eq i8 %152, 0 + br i1 %tobool.not.i3636.not, label %sw.epilog3868, label %trans_sm4ks.exit.thread trans_sm4ks.exit.thread: ; preds = %sw.bb1197 call fastcc void @gen_aes32_sm4(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_helper_sm4ks) br label %return sw.bb1201: ; preds = %sw.bb792 - %shr.i.i3657 = lshr i32 %insn, 20 - %and.i.i3658 = and i32 %shr.i.i3657, 31 - %rs2.i3659 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3658, ptr %rs2.i3659, align 4 - %shr.i5.i3660 = lshr i32 %insn, 7 - %and.i6.i3661 = and i32 %shr.i5.i3660, 31 - store i32 %and.i6.i3661, ptr %u, align 4 - %shr.i7.i3662 = lshr i32 %insn, 15 - %and.i8.i3663 = and i32 %shr.i7.i3662, 31 - %rs1.i3664 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3663, ptr %rs1.i3664, align 4 + %shr.i.i3639 = lshr i32 %insn, 20 + %and.i.i3640 = and i32 %shr.i.i3639, 31 + %rs2.i3641 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3640, ptr %rs2.i3641, align 4 + %shr.i5.i3642 = lshr i32 %insn, 7 + %and.i6.i3643 = and i32 %shr.i5.i3642, 31 + store i32 %and.i6.i3643, ptr %u, align 4 + %shr.i7.i3644 = lshr i32 %insn, 15 + %and.i8.i3645 = and i32 %shr.i7.i3644, 31 + %rs1.i3646 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3645, ptr %rs1.i3646, align 4 %cond35 = icmp ult i32 %insn, 1073741824 br i1 %cond35, label %sw.bb1204, label %sw.epilog3868 sw.bb1204: ; preds = %sw.bb1201 - %cfg_ptr.i3665 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %153 = load ptr, ptr %cfg_ptr.i3665, align 8 - %ext_zkne.i3666 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %153, i64 0, i32 17 - %154 = load i8, ptr %ext_zkne.i3666, align 1 + %cfg_ptr.i3647 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %153 = load ptr, ptr %cfg_ptr.i3647, align 8 + %ext_zkne.i3648 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %153, i64 0, i32 17 + %154 = load i8, ptr %ext_zkne.i3648, align 1 %155 = and i8 %154, 1 - %tobool.not.i3667 = icmp eq i8 %155, 0 - br i1 %tobool.not.i3667, label %sw.epilog3868, label %trans_aes64esm.exit + %tobool.not.i3649 = icmp eq i8 %155, 0 + br i1 %tobool.not.i3649, label %sw.epilog3868, label %trans_aes64esm.exit trans_aes64esm.exit: ; preds = %sw.bb1204 - %call.i3669 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64esm, ptr noundef null) - br i1 %call.i3669, label %return, label %sw.epilog3868 + %call.i3651 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64esm, ptr noundef null) + br i1 %call.i3651, label %return, label %sw.epilog3868 sw.bb1209: ; preds = %sw.bb792 - %shr.i.i3671 = lshr i32 %insn, 20 - %and.i.i3672 = and i32 %shr.i.i3671, 31 - %rs2.i3673 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3672, ptr %rs2.i3673, align 4 - %shr.i5.i3674 = lshr i32 %insn, 7 - %and.i6.i3675 = and i32 %shr.i5.i3674, 31 - store i32 %and.i6.i3675, ptr %u, align 4 - %shr.i7.i3676 = lshr i32 %insn, 15 - %and.i8.i3677 = and i32 %shr.i7.i3676, 31 - %rs1.i3678 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3677, ptr %rs1.i3678, align 4 + %shr.i.i3653 = lshr i32 %insn, 20 + %and.i.i3654 = and i32 %shr.i.i3653, 31 + %rs2.i3655 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3654, ptr %rs2.i3655, align 4 + %shr.i5.i3656 = lshr i32 %insn, 7 + %and.i6.i3657 = and i32 %shr.i5.i3656, 31 + store i32 %and.i6.i3657, ptr %u, align 4 + %shr.i7.i3658 = lshr i32 %insn, 15 + %and.i8.i3659 = and i32 %shr.i7.i3658, 31 + %rs1.i3660 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3659, ptr %rs1.i3660, align 4 %cond34 = icmp ult i32 %insn, 1073741824 br i1 %cond34, label %sw.bb1212, label %sw.epilog3868 sw.bb1212: ; preds = %sw.bb1209 - %cfg_ptr.i3679 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %156 = load ptr, ptr %cfg_ptr.i3679, align 8 + %cfg_ptr.i3661 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %156 = load ptr, ptr %cfg_ptr.i3661, align 8 %ext_zknd.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %156, i64 0, i32 16 %157 = load i8, ptr %ext_zknd.i, align 8 %158 = and i8 %157, 1 - %tobool.not.i3680 = icmp eq i8 %158, 0 - br i1 %tobool.not.i3680, label %sw.epilog3868, label %trans_aes64ds.exit + %tobool.not.i3662 = icmp eq i8 %158, 0 + br i1 %tobool.not.i3662, label %sw.epilog3868, label %trans_aes64ds.exit trans_aes64ds.exit: ; preds = %sw.bb1212 - %call.i3682 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64ds, ptr noundef null) - br i1 %call.i3682, label %return, label %sw.epilog3868 + %call.i3664 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64ds, ptr noundef null) + br i1 %call.i3664, label %return, label %sw.epilog3868 sw.bb1217: ; preds = %sw.bb792 - %shr.i.i3684 = lshr i32 %insn, 20 - %and.i.i3685 = and i32 %shr.i.i3684, 31 - %rs2.i3686 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3685, ptr %rs2.i3686, align 4 - %shr.i5.i3687 = lshr i32 %insn, 7 - %and.i6.i3688 = and i32 %shr.i5.i3687, 31 - store i32 %and.i6.i3688, ptr %u, align 4 - %shr.i7.i3689 = lshr i32 %insn, 15 - %and.i8.i3690 = and i32 %shr.i7.i3689, 31 - %rs1.i3691 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3690, ptr %rs1.i3691, align 4 + %shr.i.i3666 = lshr i32 %insn, 20 + %and.i.i3667 = and i32 %shr.i.i3666, 31 + %rs2.i3668 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3667, ptr %rs2.i3668, align 4 + %shr.i5.i3669 = lshr i32 %insn, 7 + %and.i6.i3670 = and i32 %shr.i5.i3669, 31 + store i32 %and.i6.i3670, ptr %u, align 4 + %shr.i7.i3671 = lshr i32 %insn, 15 + %and.i8.i3672 = and i32 %shr.i7.i3671, 31 + %rs1.i3673 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3672, ptr %rs1.i3673, align 4 %shr1218 = lshr i32 %insn, 30 switch i32 %shr1218, label %sw.epilog3868 [ i32 0, label %sw.bb1220 @@ -10547,55 +10537,55 @@ sw.bb1217: ; preds = %sw.bb792 ] sw.bb1220: ; preds = %sw.bb1217 - %cfg_ptr.i3692 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %159 = load ptr, ptr %cfg_ptr.i3692, align 8 - %ext_zknd.i3693 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %159, i64 0, i32 16 - %160 = load i8, ptr %ext_zknd.i3693, align 8 + %cfg_ptr.i3674 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %159 = load ptr, ptr %cfg_ptr.i3674, align 8 + %ext_zknd.i3675 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %159, i64 0, i32 16 + %160 = load i8, ptr %ext_zknd.i3675, align 8 %161 = and i8 %160, 1 - %tobool.not.i3694 = icmp eq i8 %161, 0 - br i1 %tobool.not.i3694, label %sw.epilog3868, label %trans_aes64dsm.exit + %tobool.not.i3676 = icmp eq i8 %161, 0 + br i1 %tobool.not.i3676, label %sw.epilog3868, label %trans_aes64dsm.exit trans_aes64dsm.exit: ; preds = %sw.bb1220 - %call.i3696 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64dsm, ptr noundef null) - br i1 %call.i3696, label %return, label %sw.epilog3868 + %call.i3678 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_helper_aes64dsm, ptr noundef null) + br i1 %call.i3678, label %return, label %sw.epilog3868 sw.bb1224: ; preds = %sw.bb1217 %call1225 = call fastcc zeroext i1 @trans_aes64ks2(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1225, label %return, label %sw.epilog3868 sw.bb1230: ; preds = %entry - %shl.i.i3698 = and i32 %insn, -4096 - %shr.i3.i3699 = lshr i32 %insn, 7 - %and.i.i3700 = and i32 %shr.i3.i3699, 31 - %conv.i3702 = sext i32 %shl.i.i3698 to i64 - %cmp.not.i.i3703 = icmp eq i32 %and.i.i3700, 0 - br i1 %cmp.not.i.i3703, label %return, label %if.then.i.i3704 - -if.then.i.i3704: ; preds = %sw.bb1230 - %ol.i.i3705 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - %162 = load i32, ptr %ol.i.i3705, align 8 + %shl.i.i3680 = and i32 %insn, -4096 + %shr.i3.i3681 = lshr i32 %insn, 7 + %and.i.i3682 = and i32 %shr.i3.i3681, 31 + %conv.i3684 = sext i32 %shl.i.i3680 to i64 + %cmp.not.i.i3685 = icmp eq i32 %and.i.i3682, 0 + br i1 %cmp.not.i.i3685, label %return, label %if.then.i.i3686 + +if.then.i.i3686: ; preds = %sw.bb1230 + %ol.i.i3687 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + %162 = load i32, ptr %ol.i.i3687, align 8 %.off.i = add i32 %162, -1 %switch.i = icmp ult i32 %.off.i, 3 - br i1 %switch.i, label %sw.epilog.i.i3707, label %do.body.i.i3706 + br i1 %switch.i, label %sw.epilog.i.i3689, label %do.body.i.i3688 -do.body.i.i3706: ; preds = %if.then.i.i3704 +do.body.i.i3688: ; preds = %if.then.i.i3686 tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1169, i32 noundef 413, ptr noundef nonnull @__func__.gen_set_gpri, ptr noundef null) #14 unreachable -sw.epilog.i.i3707: ; preds = %if.then.i.i3704 - %idxprom3.i.i = zext nneg i32 %and.i.i3700 to i64 +sw.epilog.i.i3689: ; preds = %if.then.i.i3686 + %idxprom3.i.i = zext nneg i32 %and.i.i3682 to i64 %arrayidx4.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom3.i.i %163 = load ptr, ptr %arrayidx4.i.i, align 8 - tail call void @tcg_gen_movi_i64(ptr noundef %163, i64 noundef %conv.i3702) #13 - %misa_mxl_max.i.i3708 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 4 - %164 = load i32, ptr %misa_mxl_max.i.i3708, align 8 + tail call void @tcg_gen_movi_i64(ptr noundef %163, i64 noundef %conv.i3684) #13 + %misa_mxl_max.i.i3690 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 4 + %164 = load i32, ptr %misa_mxl_max.i.i3690, align 8 %cmp5.i.i = icmp eq i32 %164, 3 br i1 %cmp5.i.i, label %if.then7.i.i, label %return -if.then7.i.i: ; preds = %sw.epilog.i.i3707 - %arrayidx9.i.i3709 = getelementptr [32 x ptr], ptr @cpu_gprh, i64 0, i64 %idxprom3.i.i - %165 = load ptr, ptr %arrayidx9.i.i3709, align 8 - %imm.lobit.neg.i.i = ashr i64 %conv.i3702, 63 +if.then7.i.i: ; preds = %sw.epilog.i.i3689 + %arrayidx9.i.i3691 = getelementptr [32 x ptr], ptr @cpu_gprh, i64 0, i64 %idxprom3.i.i + %165 = load ptr, ptr %arrayidx9.i.i3691, align 8 + %imm.lobit.neg.i.i = ashr i64 %conv.i3684, 63 tail call void @tcg_gen_movi_i64(ptr noundef %165, i64 noundef %imm.lobit.neg.i.i) #13 br label %return @@ -10622,6 +10612,38 @@ sw.bb1234: ; preds = %entry ] sw.bb1236: ; preds = %sw.bb1234 + %shr.i.i3692 = lshr i32 %insn, 20 + %and.i.i3693 = and i32 %shr.i.i3692, 31 + %rs2.i3694 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3693, ptr %rs2.i3694, align 4 + %shr.i5.i3695 = lshr i32 %insn, 7 + %and.i6.i3696 = and i32 %shr.i5.i3695, 31 + store i32 %and.i6.i3696, ptr %u, align 4 + %shr.i7.i3697 = lshr i32 %insn, 15 + %and.i8.i3698 = and i32 %shr.i7.i3697, 31 + %rs1.i3699 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3698, ptr %rs1.i3699, align 4 + %call1237 = call fastcc zeroext i1 @trans_addw(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call1237, label %return, label %sw.epilog3868 + +sw.bb1240: ; preds = %sw.bb1234 + %shr.i.i3700 = lshr i32 %insn, 20 + %and.i.i3701 = and i32 %shr.i.i3700, 31 + %rs2.i3702 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3701, ptr %rs2.i3702, align 4 + %shr.i5.i3703 = lshr i32 %insn, 7 + %and.i6.i3704 = and i32 %shr.i5.i3703, 31 + store i32 %and.i6.i3704, ptr %u, align 4 + %shr.i7.i3705 = lshr i32 %insn, 15 + %and.i8.i3706 = and i32 %shr.i7.i3705, 31 + %rs1.i3707 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3706, ptr %rs1.i3707, align 4 + %ol.i3708 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i3708, align 8 + %call.i3709 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @tcg_gen_shl_i64) + br i1 %call.i3709, label %return, label %sw.epilog3868 + +sw.bb1244: ; preds = %sw.bb1234 %shr.i.i3710 = lshr i32 %insn, 20 %and.i.i3711 = and i32 %shr.i.i3710, 31 %rs2.i3712 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 @@ -10633,27 +10655,27 @@ sw.bb1236: ; preds = %sw.bb1234 %and.i8.i3716 = and i32 %shr.i7.i3715, 31 %rs1.i3717 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 store i32 %and.i8.i3716, ptr %rs1.i3717, align 4 - %call1237 = call fastcc zeroext i1 @trans_addw(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call1237, label %return, label %sw.epilog3868 + %ol.i3718 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i3718, align 8 + %call.i3719 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @tcg_gen_shr_i64) + br i1 %call.i3719, label %return, label %sw.epilog3868 -sw.bb1240: ; preds = %sw.bb1234 - %shr.i.i3718 = lshr i32 %insn, 20 - %and.i.i3719 = and i32 %shr.i.i3718, 31 - %rs2.i3720 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3719, ptr %rs2.i3720, align 4 - %shr.i5.i3721 = lshr i32 %insn, 7 - %and.i6.i3722 = and i32 %shr.i5.i3721, 31 - store i32 %and.i6.i3722, ptr %u, align 4 - %shr.i7.i3723 = lshr i32 %insn, 15 - %and.i8.i3724 = and i32 %shr.i7.i3723, 31 - %rs1.i3725 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3724, ptr %rs1.i3725, align 4 - %ol.i3726 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i3726, align 8 - %call.i3727 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @tcg_gen_shl_i64) - br i1 %call.i3727, label %return, label %sw.epilog3868 +sw.bb1248: ; preds = %sw.bb1234 + %shr.i.i3720 = lshr i32 %insn, 20 + %and.i.i3721 = and i32 %shr.i.i3720, 31 + %rs2.i3722 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3721, ptr %rs2.i3722, align 4 + %shr.i5.i3723 = lshr i32 %insn, 7 + %and.i6.i3724 = and i32 %shr.i5.i3723, 31 + store i32 %and.i6.i3724, ptr %u, align 4 + %shr.i7.i3725 = lshr i32 %insn, 15 + %and.i8.i3726 = and i32 %shr.i7.i3725, 31 + %rs1.i3727 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3726, ptr %rs1.i3727, align 4 + %call1249 = call fastcc zeroext i1 @trans_mulw(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call1249, label %return, label %sw.epilog3868 -sw.bb1244: ; preds = %sw.bb1234 +sw.bb1252: ; preds = %sw.bb1234 %shr.i.i3728 = lshr i32 %insn, 20 %and.i.i3729 = and i32 %shr.i.i3728, 31 %rs2.i3730 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 @@ -10665,257 +10687,257 @@ sw.bb1244: ; preds = %sw.bb1234 %and.i8.i3734 = and i32 %shr.i7.i3733, 31 %rs1.i3735 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 store i32 %and.i8.i3734, ptr %rs1.i3735, align 4 - %ol.i3736 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i3736, align 8 - %call.i3737 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @tcg_gen_shr_i64) - br i1 %call.i3737, label %return, label %sw.epilog3868 - -sw.bb1248: ; preds = %sw.bb1234 - %shr.i.i3738 = lshr i32 %insn, 20 - %and.i.i3739 = and i32 %shr.i.i3738, 31 - %rs2.i3740 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3739, ptr %rs2.i3740, align 4 - %shr.i5.i3741 = lshr i32 %insn, 7 - %and.i6.i3742 = and i32 %shr.i5.i3741, 31 - store i32 %and.i6.i3742, ptr %u, align 4 - %shr.i7.i3743 = lshr i32 %insn, 15 - %and.i8.i3744 = and i32 %shr.i7.i3743, 31 - %rs1.i3745 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3744, ptr %rs1.i3745, align 4 - %call1249 = call fastcc zeroext i1 @trans_mulw(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call1249, label %return, label %sw.epilog3868 - -sw.bb1252: ; preds = %sw.bb1234 - %shr.i.i3746 = lshr i32 %insn, 20 - %and.i.i3747 = and i32 %shr.i.i3746, 31 - %rs2.i3748 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3747, ptr %rs2.i3748, align 4 - %shr.i5.i3749 = lshr i32 %insn, 7 - %and.i6.i3750 = and i32 %shr.i5.i3749, 31 - store i32 %and.i6.i3750, ptr %u, align 4 - %shr.i7.i3751 = lshr i32 %insn, 15 - %and.i8.i3752 = and i32 %shr.i7.i3751, 31 - %rs1.i3753 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3752, ptr %rs1.i3753, align 4 %166 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3754 = load i32, ptr %166, align 4 - %and.i.i3755 = and i32 %ctx.val.i3754, 4096 - %tobool.i.not.i3756 = icmp eq i32 %and.i.i3755, 0 - br i1 %tobool.i.not.i3756, label %sw.epilog3868, label %trans_divw.exit + %ctx.val.i3736 = load i32, ptr %166, align 4 + %and.i.i3737 = and i32 %ctx.val.i3736, 4096 + %tobool.i.not.i3738 = icmp eq i32 %and.i.i3737, 0 + br i1 %tobool.i.not.i3738, label %sw.epilog3868, label %trans_divw.exit trans_divw.exit: ; preds = %sw.bb1252 - %ol.i3758 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i3758, align 8 + %ol.i3740 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i3740, align 8 %call3.i = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_div, ptr noundef null) br i1 %call3.i, label %return, label %sw.epilog3868 sw.bb1256: ; preds = %sw.bb1234 - %shr.i.i3760 = lshr i32 %insn, 20 - %and.i.i3761 = and i32 %shr.i.i3760, 31 - %rs2.i3762 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3761, ptr %rs2.i3762, align 4 - %shr.i5.i3763 = lshr i32 %insn, 7 - %and.i6.i3764 = and i32 %shr.i5.i3763, 31 - store i32 %and.i6.i3764, ptr %u, align 4 - %shr.i7.i3765 = lshr i32 %insn, 15 - %and.i8.i3766 = and i32 %shr.i7.i3765, 31 - %rs1.i3767 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3766, ptr %rs1.i3767, align 4 + %shr.i.i3742 = lshr i32 %insn, 20 + %and.i.i3743 = and i32 %shr.i.i3742, 31 + %rs2.i3744 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3743, ptr %rs2.i3744, align 4 + %shr.i5.i3745 = lshr i32 %insn, 7 + %and.i6.i3746 = and i32 %shr.i5.i3745, 31 + store i32 %and.i6.i3746, ptr %u, align 4 + %shr.i7.i3747 = lshr i32 %insn, 15 + %and.i8.i3748 = and i32 %shr.i7.i3747, 31 + %rs1.i3749 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3748, ptr %rs1.i3749, align 4 %167 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3768 = load i32, ptr %167, align 4 - %and.i.i3769 = and i32 %ctx.val.i3768, 4096 - %tobool.i.not.i3770 = icmp eq i32 %and.i.i3769, 0 - br i1 %tobool.i.not.i3770, label %sw.epilog3868, label %trans_divuw.exit + %ctx.val.i3750 = load i32, ptr %167, align 4 + %and.i.i3751 = and i32 %ctx.val.i3750, 4096 + %tobool.i.not.i3752 = icmp eq i32 %and.i.i3751, 0 + br i1 %tobool.i.not.i3752, label %sw.epilog3868, label %trans_divuw.exit trans_divuw.exit: ; preds = %sw.bb1256 - %ol.i3772 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i3772, align 8 - %call3.i3773 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_divu, ptr noundef null) - br i1 %call3.i3773, label %return, label %sw.epilog3868 + %ol.i3754 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i3754, align 8 + %call3.i3755 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_divu, ptr noundef null) + br i1 %call3.i3755, label %return, label %sw.epilog3868 sw.bb1260: ; preds = %sw.bb1234 - %shr.i.i3775 = lshr i32 %insn, 20 - %and.i.i3776 = and i32 %shr.i.i3775, 31 - %rs2.i3777 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3776, ptr %rs2.i3777, align 4 - %shr.i5.i3778 = lshr i32 %insn, 7 - %and.i6.i3779 = and i32 %shr.i5.i3778, 31 - store i32 %and.i6.i3779, ptr %u, align 4 - %shr.i7.i3780 = lshr i32 %insn, 15 - %and.i8.i3781 = and i32 %shr.i7.i3780, 31 - %rs1.i3782 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3781, ptr %rs1.i3782, align 4 + %shr.i.i3757 = lshr i32 %insn, 20 + %and.i.i3758 = and i32 %shr.i.i3757, 31 + %rs2.i3759 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3758, ptr %rs2.i3759, align 4 + %shr.i5.i3760 = lshr i32 %insn, 7 + %and.i6.i3761 = and i32 %shr.i5.i3760, 31 + store i32 %and.i6.i3761, ptr %u, align 4 + %shr.i7.i3762 = lshr i32 %insn, 15 + %and.i8.i3763 = and i32 %shr.i7.i3762, 31 + %rs1.i3764 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3763, ptr %rs1.i3764, align 4 %168 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3783 = load i32, ptr %168, align 4 - %and.i.i3784 = and i32 %ctx.val.i3783, 4096 - %tobool.i.not.i3785 = icmp eq i32 %and.i.i3784, 0 - br i1 %tobool.i.not.i3785, label %sw.epilog3868, label %trans_remw.exit + %ctx.val.i3765 = load i32, ptr %168, align 4 + %and.i.i3766 = and i32 %ctx.val.i3765, 4096 + %tobool.i.not.i3767 = icmp eq i32 %and.i.i3766, 0 + br i1 %tobool.i.not.i3767, label %sw.epilog3868, label %trans_remw.exit trans_remw.exit: ; preds = %sw.bb1260 - %ol.i3787 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i3787, align 8 - %call3.i3788 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_rem, ptr noundef null) - br i1 %call3.i3788, label %return, label %sw.epilog3868 + %ol.i3769 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i3769, align 8 + %call3.i3770 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @gen_rem, ptr noundef null) + br i1 %call3.i3770, label %return, label %sw.epilog3868 sw.bb1264: ; preds = %sw.bb1234 - %shr.i.i3790 = lshr i32 %insn, 20 - %and.i.i3791 = and i32 %shr.i.i3790, 31 - %rs2.i3792 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3791, ptr %rs2.i3792, align 4 - %shr.i5.i3793 = lshr i32 %insn, 7 - %and.i6.i3794 = and i32 %shr.i5.i3793, 31 - store i32 %and.i6.i3794, ptr %u, align 4 - %shr.i7.i3795 = lshr i32 %insn, 15 - %and.i8.i3796 = and i32 %shr.i7.i3795, 31 - %rs1.i3797 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3796, ptr %rs1.i3797, align 4 + %shr.i.i3772 = lshr i32 %insn, 20 + %and.i.i3773 = and i32 %shr.i.i3772, 31 + %rs2.i3774 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3773, ptr %rs2.i3774, align 4 + %shr.i5.i3775 = lshr i32 %insn, 7 + %and.i6.i3776 = and i32 %shr.i5.i3775, 31 + store i32 %and.i6.i3776, ptr %u, align 4 + %shr.i7.i3777 = lshr i32 %insn, 15 + %and.i8.i3778 = and i32 %shr.i7.i3777, 31 + %rs1.i3779 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3778, ptr %rs1.i3779, align 4 %169 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i3798 = load i32, ptr %169, align 4 - %and.i.i3799 = and i32 %ctx.val.i3798, 4096 - %tobool.i.not.i3800 = icmp eq i32 %and.i.i3799, 0 - br i1 %tobool.i.not.i3800, label %sw.epilog3868, label %trans_remuw.exit + %ctx.val.i3780 = load i32, ptr %169, align 4 + %and.i.i3781 = and i32 %ctx.val.i3780, 4096 + %tobool.i.not.i3782 = icmp eq i32 %and.i.i3781, 0 + br i1 %tobool.i.not.i3782, label %sw.epilog3868, label %trans_remuw.exit trans_remuw.exit: ; preds = %sw.bb1264 - %ol.i3802 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i3802, align 8 - %call3.i3803 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_remu, ptr noundef null) - br i1 %call3.i3803, label %return, label %sw.epilog3868 + %ol.i3784 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i3784, align 8 + %call3.i3785 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_remu, ptr noundef null) + br i1 %call3.i3785, label %return, label %sw.epilog3868 sw.bb1268: ; preds = %sw.bb1234 - %shr.i.i3805 = lshr i32 %insn, 20 - %and.i.i3806 = and i32 %shr.i.i3805, 31 - %rs2.i3807 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3806, ptr %rs2.i3807, align 4 - %shr.i5.i3808 = lshr i32 %insn, 7 - %and.i6.i3809 = and i32 %shr.i5.i3808, 31 - store i32 %and.i6.i3809, ptr %u, align 4 - %shr.i7.i3810 = lshr i32 %insn, 15 - %and.i8.i3811 = and i32 %shr.i7.i3810, 31 - %rs1.i3812 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3811, ptr %rs1.i3812, align 4 - %cfg_ptr.i3813 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %170 = load ptr, ptr %cfg_ptr.i3813, align 8 + %shr.i.i3787 = lshr i32 %insn, 20 + %and.i.i3788 = and i32 %shr.i.i3787, 31 + %rs2.i3789 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3788, ptr %rs2.i3789, align 4 + %shr.i5.i3790 = lshr i32 %insn, 7 + %and.i6.i3791 = and i32 %shr.i5.i3790, 31 + store i32 %and.i6.i3791, ptr %u, align 4 + %shr.i7.i3792 = lshr i32 %insn, 15 + %and.i8.i3793 = and i32 %shr.i7.i3792, 31 + %rs1.i3794 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3793, ptr %rs1.i3794, align 4 + %cfg_ptr.i3795 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %170 = load ptr, ptr %cfg_ptr.i3795, align 8 %171 = load i8, ptr %170, align 8 %172 = and i8 %171, 1 - %tobool.not.i3814 = icmp eq i8 %172, 0 - br i1 %tobool.not.i3814, label %sw.epilog3868, label %trans_add_uw.exit + %tobool.not.i3796 = icmp eq i8 %172, 0 + br i1 %tobool.not.i3796, label %sw.epilog3868, label %trans_add_uw.exit trans_add_uw.exit: ; preds = %sw.bb1268 - %call.i3816 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_add_uw, ptr noundef null) - br i1 %call.i3816, label %return, label %sw.epilog3868 + %call.i3798 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_add_uw, ptr noundef null) + br i1 %call.i3798, label %return, label %sw.epilog3868 sw.bb1272: ; preds = %sw.bb1234 %and1273 = and i32 %insn, 32505856 %cmp1274 = icmp eq i32 %and1273, 0 - %shr.i.i3818 = lshr i32 %insn, 7 - %and.i.i3819 = and i32 %shr.i.i3818, 31 + %shr.i.i3800 = lshr i32 %insn, 7 + %and.i.i3801 = and i32 %shr.i.i3800, 31 br i1 %cmp1274, label %if.then1275, label %sw.bb1272.if.end1279_crit_edge sw.bb1272.if.end1279_crit_edge: ; preds = %sw.bb1272 - %.pre6503 = lshr i32 %insn, 15 - %.pre6504 = and i32 %.pre6503, 31 + %.pre6485 = lshr i32 %insn, 15 + %.pre6486 = and i32 %.pre6485, 31 br label %if.end1279 if.then1275: ; preds = %sw.bb1272 - store i32 %and.i.i3819, ptr %u, align 4 - %shr.i3.i3820 = lshr i32 %insn, 15 - %and.i4.i3821 = and i32 %shr.i3.i3820, 31 - %rs1.i3822 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i3821, ptr %rs1.i3822, align 4 + store i32 %and.i.i3801, ptr %u, align 4 + %shr.i3.i3802 = lshr i32 %insn, 15 + %and.i4.i3803 = and i32 %shr.i3.i3802, 31 + %rs1.i3804 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i3803, ptr %rs1.i3804, align 4 %call1276 = call fastcc zeroext i1 @trans_zext_h_64(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1276, label %return, label %if.end1279 if.end1279: ; preds = %sw.bb1272.if.end1279_crit_edge, %if.then1275 - %and.i8.i3829.pre-phi = phi i32 [ %.pre6504, %sw.bb1272.if.end1279_crit_edge ], [ %and.i4.i3821, %if.then1275 ] - %shr.i.i3823 = lshr i32 %insn, 20 - %and.i.i3824 = and i32 %shr.i.i3823, 31 - %rs2.i3825 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3824, ptr %rs2.i3825, align 4 - store i32 %and.i.i3819, ptr %u, align 4 - %rs1.i3830 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3829.pre-phi, ptr %rs1.i3830, align 4 - %cfg_ptr.i3831 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %173 = load ptr, ptr %cfg_ptr.i3831, align 8 - %ext_zbkb.i3832 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %173, i64 0, i32 3 - %174 = load i8, ptr %ext_zbkb.i3832, align 1 + %and.i8.i3811.pre-phi = phi i32 [ %.pre6486, %sw.bb1272.if.end1279_crit_edge ], [ %and.i4.i3803, %if.then1275 ] + %shr.i.i3805 = lshr i32 %insn, 20 + %and.i.i3806 = and i32 %shr.i.i3805, 31 + %rs2.i3807 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3806, ptr %rs2.i3807, align 4 + store i32 %and.i.i3801, ptr %u, align 4 + %rs1.i3812 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3811.pre-phi, ptr %rs1.i3812, align 4 + %cfg_ptr.i3813 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %173 = load ptr, ptr %cfg_ptr.i3813, align 8 + %ext_zbkb.i3814 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %173, i64 0, i32 3 + %174 = load i8, ptr %ext_zbkb.i3814, align 1 %175 = and i8 %174, 1 - %tobool.not.i3833 = icmp eq i8 %175, 0 - br i1 %tobool.not.i3833, label %sw.epilog3868, label %trans_packw.exit + %tobool.not.i3815 = icmp eq i8 %175, 0 + br i1 %tobool.not.i3815, label %sw.epilog3868, label %trans_packw.exit trans_packw.exit: ; preds = %if.end1279 - %call.i3835 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_packw, ptr noundef null) - br i1 %call.i3835, label %return, label %sw.epilog3868 + %call.i3817 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_packw, ptr noundef null) + br i1 %call.i3817, label %return, label %sw.epilog3868 sw.bb1283: ; preds = %sw.bb1234 - %shr.i.i3837 = lshr i32 %insn, 20 - %and.i.i3838 = and i32 %shr.i.i3837, 31 - %rs2.i3839 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3838, ptr %rs2.i3839, align 4 - %shr.i5.i3840 = lshr i32 %insn, 7 - %and.i6.i3841 = and i32 %shr.i5.i3840, 31 - store i32 %and.i6.i3841, ptr %u, align 4 - %shr.i7.i3842 = lshr i32 %insn, 15 - %and.i8.i3843 = and i32 %shr.i7.i3842, 31 - %rs1.i3844 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3843, ptr %rs1.i3844, align 4 - %cfg_ptr.i3845 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %176 = load ptr, ptr %cfg_ptr.i3845, align 8 + %shr.i.i3819 = lshr i32 %insn, 20 + %and.i.i3820 = and i32 %shr.i.i3819, 31 + %rs2.i3821 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3820, ptr %rs2.i3821, align 4 + %shr.i5.i3822 = lshr i32 %insn, 7 + %and.i6.i3823 = and i32 %shr.i5.i3822, 31 + store i32 %and.i6.i3823, ptr %u, align 4 + %shr.i7.i3824 = lshr i32 %insn, 15 + %and.i8.i3825 = and i32 %shr.i7.i3824, 31 + %rs1.i3826 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3825, ptr %rs1.i3826, align 4 + %cfg_ptr.i3827 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %176 = load ptr, ptr %cfg_ptr.i3827, align 8 %177 = load i8, ptr %176, align 8 %178 = and i8 %177, 1 - %tobool.not.i3846 = icmp eq i8 %178, 0 - br i1 %tobool.not.i3846, label %sw.epilog3868, label %trans_sh1add_uw.exit + %tobool.not.i3828 = icmp eq i8 %178, 0 + br i1 %tobool.not.i3828, label %sw.epilog3868, label %trans_sh1add_uw.exit trans_sh1add_uw.exit: ; preds = %sw.bb1283 - %call.i3848 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh1add_uw, ptr noundef null) - br i1 %call.i3848, label %return, label %sw.epilog3868 + %call.i3830 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh1add_uw, ptr noundef null) + br i1 %call.i3830, label %return, label %sw.epilog3868 sw.bb1287: ; preds = %sw.bb1234 - %shr.i.i3850 = lshr i32 %insn, 20 - %and.i.i3851 = and i32 %shr.i.i3850, 31 - %rs2.i3852 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3851, ptr %rs2.i3852, align 4 - %shr.i5.i3853 = lshr i32 %insn, 7 - %and.i6.i3854 = and i32 %shr.i5.i3853, 31 - store i32 %and.i6.i3854, ptr %u, align 4 - %shr.i7.i3855 = lshr i32 %insn, 15 - %and.i8.i3856 = and i32 %shr.i7.i3855, 31 - %rs1.i3857 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3856, ptr %rs1.i3857, align 4 - %cfg_ptr.i3858 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %179 = load ptr, ptr %cfg_ptr.i3858, align 8 + %shr.i.i3832 = lshr i32 %insn, 20 + %and.i.i3833 = and i32 %shr.i.i3832, 31 + %rs2.i3834 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3833, ptr %rs2.i3834, align 4 + %shr.i5.i3835 = lshr i32 %insn, 7 + %and.i6.i3836 = and i32 %shr.i5.i3835, 31 + store i32 %and.i6.i3836, ptr %u, align 4 + %shr.i7.i3837 = lshr i32 %insn, 15 + %and.i8.i3838 = and i32 %shr.i7.i3837, 31 + %rs1.i3839 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3838, ptr %rs1.i3839, align 4 + %cfg_ptr.i3840 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %179 = load ptr, ptr %cfg_ptr.i3840, align 8 %180 = load i8, ptr %179, align 8 %181 = and i8 %180, 1 - %tobool.not.i3859 = icmp eq i8 %181, 0 - br i1 %tobool.not.i3859, label %sw.epilog3868, label %trans_sh2add_uw.exit + %tobool.not.i3841 = icmp eq i8 %181, 0 + br i1 %tobool.not.i3841, label %sw.epilog3868, label %trans_sh2add_uw.exit trans_sh2add_uw.exit: ; preds = %sw.bb1287 - %call.i3861 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh2add_uw, ptr noundef null) - br i1 %call.i3861, label %return, label %sw.epilog3868 + %call.i3843 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh2add_uw, ptr noundef null) + br i1 %call.i3843, label %return, label %sw.epilog3868 sw.bb1291: ; preds = %sw.bb1234 - %shr.i.i3863 = lshr i32 %insn, 20 - %and.i.i3864 = and i32 %shr.i.i3863, 31 - %rs2.i3865 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3864, ptr %rs2.i3865, align 4 - %shr.i5.i3866 = lshr i32 %insn, 7 - %and.i6.i3867 = and i32 %shr.i5.i3866, 31 - store i32 %and.i6.i3867, ptr %u, align 4 - %shr.i7.i3868 = lshr i32 %insn, 15 - %and.i8.i3869 = and i32 %shr.i7.i3868, 31 - %rs1.i3870 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3869, ptr %rs1.i3870, align 4 - %cfg_ptr.i3871 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %182 = load ptr, ptr %cfg_ptr.i3871, align 8 + %shr.i.i3845 = lshr i32 %insn, 20 + %and.i.i3846 = and i32 %shr.i.i3845, 31 + %rs2.i3847 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3846, ptr %rs2.i3847, align 4 + %shr.i5.i3848 = lshr i32 %insn, 7 + %and.i6.i3849 = and i32 %shr.i5.i3848, 31 + store i32 %and.i6.i3849, ptr %u, align 4 + %shr.i7.i3850 = lshr i32 %insn, 15 + %and.i8.i3851 = and i32 %shr.i7.i3850, 31 + %rs1.i3852 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3851, ptr %rs1.i3852, align 4 + %cfg_ptr.i3853 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %182 = load ptr, ptr %cfg_ptr.i3853, align 8 %183 = load i8, ptr %182, align 8 %184 = and i8 %183, 1 - %tobool.not.i3872 = icmp eq i8 %184, 0 - br i1 %tobool.not.i3872, label %sw.epilog3868, label %trans_sh3add_uw.exit + %tobool.not.i3854 = icmp eq i8 %184, 0 + br i1 %tobool.not.i3854, label %sw.epilog3868, label %trans_sh3add_uw.exit trans_sh3add_uw.exit: ; preds = %sw.bb1291 - %call.i3874 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh3add_uw, ptr noundef null) - br i1 %call.i3874, label %return, label %sw.epilog3868 + %call.i3856 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_sh3add_uw, ptr noundef null) + br i1 %call.i3856, label %return, label %sw.epilog3868 sw.bb1295: ; preds = %sw.bb1234 + %shr.i.i3858 = lshr i32 %insn, 20 + %and.i.i3859 = and i32 %shr.i.i3858, 31 + %rs2.i3860 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3859, ptr %rs2.i3860, align 4 + %shr.i5.i3861 = lshr i32 %insn, 7 + %and.i6.i3862 = and i32 %shr.i5.i3861, 31 + store i32 %and.i6.i3862, ptr %u, align 4 + %shr.i7.i3863 = lshr i32 %insn, 15 + %and.i8.i3864 = and i32 %shr.i7.i3863, 31 + %rs1.i3865 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3864, ptr %rs1.i3865, align 4 + %call1296 = call fastcc zeroext i1 @trans_subw(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call1296, label %return, label %sw.epilog3868 + +sw.bb1299: ; preds = %sw.bb1234 + %shr.i.i3866 = lshr i32 %insn, 20 + %and.i.i3867 = and i32 %shr.i.i3866, 31 + %rs2.i3868 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i3867, ptr %rs2.i3868, align 4 + %shr.i5.i3869 = lshr i32 %insn, 7 + %and.i6.i3870 = and i32 %shr.i5.i3869, 31 + store i32 %and.i6.i3870, ptr %u, align 4 + %shr.i7.i3871 = lshr i32 %insn, 15 + %and.i8.i3872 = and i32 %shr.i7.i3871, 31 + %rs1.i3873 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i3872, ptr %rs1.i3873, align 4 + %ol.i3874 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i3874, align 8 + %call.i3875 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @tcg_gen_sar_i64) + br i1 %call.i3875, label %return, label %sw.epilog3868 + +sw.bb1303: ; preds = %sw.bb1234 %shr.i.i3876 = lshr i32 %insn, 20 %and.i.i3877 = and i32 %shr.i.i3876, 31 %rs2.i3878 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 @@ -10927,10 +10949,10 @@ sw.bb1295: ; preds = %sw.bb1234 %and.i8.i3882 = and i32 %shr.i7.i3881, 31 %rs1.i3883 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 store i32 %and.i8.i3882, ptr %rs1.i3883, align 4 - %call1296 = call fastcc zeroext i1 @trans_subw(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call1296, label %return, label %sw.epilog3868 + %call1304 = call fastcc zeroext i1 @trans_rolw(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call1304, label %return, label %sw.epilog3868 -sw.bb1299: ; preds = %sw.bb1234 +sw.bb1307: ; preds = %sw.bb1234 %shr.i.i3884 = lshr i32 %insn, 20 %and.i.i3885 = and i32 %shr.i.i3884, 31 %rs2.i3886 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 @@ -10942,63 +10964,31 @@ sw.bb1299: ; preds = %sw.bb1234 %and.i8.i3890 = and i32 %shr.i7.i3889, 31 %rs1.i3891 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 store i32 %and.i8.i3890, ptr %rs1.i3891, align 4 - %ol.i3892 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i3892, align 8 - %call.i3893 = call fastcc noundef zeroext i1 @gen_shift(ptr noundef %ctx, ptr noundef nonnull %u, i32 noundef 1, ptr noundef nonnull @tcg_gen_sar_i64) - br i1 %call.i3893, label %return, label %sw.epilog3868 - -sw.bb1303: ; preds = %sw.bb1234 - %shr.i.i3894 = lshr i32 %insn, 20 - %and.i.i3895 = and i32 %shr.i.i3894, 31 - %rs2.i3896 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3895, ptr %rs2.i3896, align 4 - %shr.i5.i3897 = lshr i32 %insn, 7 - %and.i6.i3898 = and i32 %shr.i5.i3897, 31 - store i32 %and.i6.i3898, ptr %u, align 4 - %shr.i7.i3899 = lshr i32 %insn, 15 - %and.i8.i3900 = and i32 %shr.i7.i3899, 31 - %rs1.i3901 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3900, ptr %rs1.i3901, align 4 - %call1304 = call fastcc zeroext i1 @trans_rolw(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call1304, label %return, label %sw.epilog3868 - -sw.bb1307: ; preds = %sw.bb1234 - %shr.i.i3902 = lshr i32 %insn, 20 - %and.i.i3903 = and i32 %shr.i.i3902, 31 - %rs2.i3904 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i3903, ptr %rs2.i3904, align 4 - %shr.i5.i3905 = lshr i32 %insn, 7 - %and.i6.i3906 = and i32 %shr.i5.i3905, 31 - store i32 %and.i6.i3906, ptr %u, align 4 - %shr.i7.i3907 = lshr i32 %insn, 15 - %and.i8.i3908 = and i32 %shr.i7.i3907, 31 - %rs1.i3909 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i3908, ptr %rs1.i3909, align 4 %call1308 = call fastcc zeroext i1 @trans_rorw(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1308, label %return, label %sw.epilog3868 sw.bb1312: ; preds = %entry - %shr.i.i3910 = lshr i32 %insn, 7 - %and.i.i3911 = and i32 %shr.i.i3910, 31 - %rd.i3912 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 - store i32 %and.i.i3911, ptr %rd.i3912, align 4 - %shr.i9.i3913 = lshr i32 %insn, 12 - %and.i10.i3914 = and i32 %shr.i9.i3913, 7 + %shr.i.i3892 = lshr i32 %insn, 7 + %and.i.i3893 = and i32 %shr.i.i3892, 31 + %rd.i3894 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 + store i32 %and.i.i3893, ptr %rd.i3894, align 4 + %shr.i9.i3895 = lshr i32 %insn, 12 + %and.i10.i3896 = and i32 %shr.i9.i3895, 7 %rm.i = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 3 - store i32 %and.i10.i3914, ptr %rm.i, align 4 - %shr.i11.i3915 = lshr i32 %insn, 27 - store i32 %shr.i11.i3915, ptr %u, align 4 - %shr.i12.i3916 = lshr i32 %insn, 15 - %and.i13.i3917 = and i32 %shr.i12.i3916, 31 - %rs1.i3918 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 - store i32 %and.i13.i3917, ptr %rs1.i3918, align 4 - %shr.i14.i3919 = lshr i32 %insn, 20 - %and.i15.i3920 = and i32 %shr.i14.i3919, 31 - %rs2.i3921 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 - store i32 %and.i15.i3920, ptr %rs2.i3921, align 4 + store i32 %and.i10.i3896, ptr %rm.i, align 4 + %shr.i11.i3897 = lshr i32 %insn, 27 + store i32 %shr.i11.i3897, ptr %u, align 4 + %shr.i12.i3898 = lshr i32 %insn, 15 + %and.i13.i3899 = and i32 %shr.i12.i3898, 31 + %rs1.i3900 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 + store i32 %and.i13.i3899, ptr %rs1.i3900, align 4 + %shr.i14.i3901 = lshr i32 %insn, 20 + %and.i15.i3902 = and i32 %shr.i14.i3901, 31 + %rs2.i3903 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 + store i32 %and.i15.i3902, ptr %rs2.i3903, align 4 %shr1313 = lshr i32 %insn, 25 %and1314 = and i32 %shr1313, 3 - switch i32 %and1314, label %sw.bb1312.unreachabledefault [ + switch i32 %and1314, label %default.unreachable6487 [ i32 0, label %sw.bb1315 i32 1, label %sw.bb1319 i32 2, label %sw.bb1323 @@ -11017,31 +11007,28 @@ sw.bb1323: ; preds = %sw.bb1312 %call1324 = call fastcc zeroext i1 @trans_fmadd_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1324, label %return, label %sw.epilog3868 -sw.bb1312.unreachabledefault: ; preds = %sw.bb1312 - unreachable - sw.bb1328: ; preds = %entry - %shr.i.i3922 = lshr i32 %insn, 7 - %and.i.i3923 = and i32 %shr.i.i3922, 31 - %rd.i3924 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 - store i32 %and.i.i3923, ptr %rd.i3924, align 4 - %shr.i9.i3925 = lshr i32 %insn, 12 - %and.i10.i3926 = and i32 %shr.i9.i3925, 7 - %rm.i3927 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 3 - store i32 %and.i10.i3926, ptr %rm.i3927, align 4 - %shr.i11.i3928 = lshr i32 %insn, 27 - store i32 %shr.i11.i3928, ptr %u, align 4 - %shr.i12.i3929 = lshr i32 %insn, 15 - %and.i13.i3930 = and i32 %shr.i12.i3929, 31 - %rs1.i3931 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 - store i32 %and.i13.i3930, ptr %rs1.i3931, align 4 - %shr.i14.i3932 = lshr i32 %insn, 20 - %and.i15.i3933 = and i32 %shr.i14.i3932, 31 - %rs2.i3934 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 - store i32 %and.i15.i3933, ptr %rs2.i3934, align 4 + %shr.i.i3904 = lshr i32 %insn, 7 + %and.i.i3905 = and i32 %shr.i.i3904, 31 + %rd.i3906 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 + store i32 %and.i.i3905, ptr %rd.i3906, align 4 + %shr.i9.i3907 = lshr i32 %insn, 12 + %and.i10.i3908 = and i32 %shr.i9.i3907, 7 + %rm.i3909 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3908, ptr %rm.i3909, align 4 + %shr.i11.i3910 = lshr i32 %insn, 27 + store i32 %shr.i11.i3910, ptr %u, align 4 + %shr.i12.i3911 = lshr i32 %insn, 15 + %and.i13.i3912 = and i32 %shr.i12.i3911, 31 + %rs1.i3913 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 + store i32 %and.i13.i3912, ptr %rs1.i3913, align 4 + %shr.i14.i3914 = lshr i32 %insn, 20 + %and.i15.i3915 = and i32 %shr.i14.i3914, 31 + %rs2.i3916 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 + store i32 %and.i15.i3915, ptr %rs2.i3916, align 4 %shr1329 = lshr i32 %insn, 25 %and1330 = and i32 %shr1329, 3 - switch i32 %and1330, label %sw.bb1328.unreachabledefault [ + switch i32 %and1330, label %default.unreachable6487 [ i32 0, label %sw.bb1331 i32 1, label %sw.bb1335 i32 2, label %sw.bb1339 @@ -11060,31 +11047,28 @@ sw.bb1339: ; preds = %sw.bb1328 %call1340 = call fastcc zeroext i1 @trans_fmsub_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1340, label %return, label %sw.epilog3868 -sw.bb1328.unreachabledefault: ; preds = %sw.bb1328 - unreachable - sw.bb1344: ; preds = %entry - %shr.i.i3935 = lshr i32 %insn, 7 - %and.i.i3936 = and i32 %shr.i.i3935, 31 - %rd.i3937 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 - store i32 %and.i.i3936, ptr %rd.i3937, align 4 - %shr.i9.i3938 = lshr i32 %insn, 12 - %and.i10.i3939 = and i32 %shr.i9.i3938, 7 - %rm.i3940 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 3 - store i32 %and.i10.i3939, ptr %rm.i3940, align 4 - %shr.i11.i3941 = lshr i32 %insn, 27 - store i32 %shr.i11.i3941, ptr %u, align 4 - %shr.i12.i3942 = lshr i32 %insn, 15 - %and.i13.i3943 = and i32 %shr.i12.i3942, 31 - %rs1.i3944 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 - store i32 %and.i13.i3943, ptr %rs1.i3944, align 4 - %shr.i14.i3945 = lshr i32 %insn, 20 - %and.i15.i3946 = and i32 %shr.i14.i3945, 31 - %rs2.i3947 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 - store i32 %and.i15.i3946, ptr %rs2.i3947, align 4 + %shr.i.i3917 = lshr i32 %insn, 7 + %and.i.i3918 = and i32 %shr.i.i3917, 31 + %rd.i3919 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 + store i32 %and.i.i3918, ptr %rd.i3919, align 4 + %shr.i9.i3920 = lshr i32 %insn, 12 + %and.i10.i3921 = and i32 %shr.i9.i3920, 7 + %rm.i3922 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3921, ptr %rm.i3922, align 4 + %shr.i11.i3923 = lshr i32 %insn, 27 + store i32 %shr.i11.i3923, ptr %u, align 4 + %shr.i12.i3924 = lshr i32 %insn, 15 + %and.i13.i3925 = and i32 %shr.i12.i3924, 31 + %rs1.i3926 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 + store i32 %and.i13.i3925, ptr %rs1.i3926, align 4 + %shr.i14.i3927 = lshr i32 %insn, 20 + %and.i15.i3928 = and i32 %shr.i14.i3927, 31 + %rs2.i3929 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 + store i32 %and.i15.i3928, ptr %rs2.i3929, align 4 %shr1345 = lshr i32 %insn, 25 %and1346 = and i32 %shr1345, 3 - switch i32 %and1346, label %sw.bb1344.unreachabledefault [ + switch i32 %and1346, label %default.unreachable6487 [ i32 0, label %sw.bb1347 i32 1, label %sw.bb1351 i32 2, label %sw.bb1355 @@ -11103,31 +11087,28 @@ sw.bb1355: ; preds = %sw.bb1344 %call1356 = call fastcc zeroext i1 @trans_fnmsub_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1356, label %return, label %sw.epilog3868 -sw.bb1344.unreachabledefault: ; preds = %sw.bb1344 - unreachable - sw.bb1360: ; preds = %entry - %shr.i.i3948 = lshr i32 %insn, 7 - %and.i.i3949 = and i32 %shr.i.i3948, 31 - %rd.i3950 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 - store i32 %and.i.i3949, ptr %rd.i3950, align 4 - %shr.i9.i3951 = lshr i32 %insn, 12 - %and.i10.i3952 = and i32 %shr.i9.i3951, 7 - %rm.i3953 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 3 - store i32 %and.i10.i3952, ptr %rm.i3953, align 4 - %shr.i11.i3954 = lshr i32 %insn, 27 - store i32 %shr.i11.i3954, ptr %u, align 4 - %shr.i12.i3955 = lshr i32 %insn, 15 - %and.i13.i3956 = and i32 %shr.i12.i3955, 31 - %rs1.i3957 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 - store i32 %and.i13.i3956, ptr %rs1.i3957, align 4 - %shr.i14.i3958 = lshr i32 %insn, 20 - %and.i15.i3959 = and i32 %shr.i14.i3958, 31 - %rs2.i3960 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 - store i32 %and.i15.i3959, ptr %rs2.i3960, align 4 + %shr.i.i3930 = lshr i32 %insn, 7 + %and.i.i3931 = and i32 %shr.i.i3930, 31 + %rd.i3932 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 4 + store i32 %and.i.i3931, ptr %rd.i3932, align 4 + %shr.i9.i3933 = lshr i32 %insn, 12 + %and.i10.i3934 = and i32 %shr.i9.i3933, 7 + %rm.i3935 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3934, ptr %rm.i3935, align 4 + %shr.i11.i3936 = lshr i32 %insn, 27 + store i32 %shr.i11.i3936, ptr %u, align 4 + %shr.i12.i3937 = lshr i32 %insn, 15 + %and.i13.i3938 = and i32 %shr.i12.i3937, 31 + %rs1.i3939 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 2 + store i32 %and.i13.i3938, ptr %rs1.i3939, align 4 + %shr.i14.i3940 = lshr i32 %insn, 20 + %and.i15.i3941 = and i32 %shr.i14.i3940, 31 + %rs2.i3942 = getelementptr inbounds %struct.arg_decode_insn3217, ptr %u, i64 0, i32 1 + store i32 %and.i15.i3941, ptr %rs2.i3942, align 4 %shr1361 = lshr i32 %insn, 25 %and1362 = and i32 %shr1361, 3 - switch i32 %and1362, label %sw.bb1360.unreachabledefault [ + switch i32 %and1362, label %default.unreachable6487 [ i32 0, label %sw.bb1363 i32 1, label %sw.bb1367 i32 2, label %sw.bb1371 @@ -11146,9 +11127,6 @@ sw.bb1371: ; preds = %sw.bb1360 %call1372 = call fastcc zeroext i1 @trans_fnmadd_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1372, label %return, label %sw.epilog3868 -sw.bb1360.unreachabledefault: ; preds = %sw.bb1360 - unreachable - sw.bb1376: ; preds = %entry %shr1377 = lshr i32 %insn, 25 switch i32 %shr1377, label %sw.epilog3868 [ @@ -11195,245 +11173,245 @@ sw.bb1376: ; preds = %entry ] sw.bb1379: ; preds = %sw.bb1376 - %shr.i.i3961 = lshr i32 %insn, 20 - %and.i.i3962 = and i32 %shr.i.i3961, 31 - store i32 %and.i.i3962, ptr %u, align 4 - %shr.i7.i3963 = lshr i32 %insn, 12 - %and.i8.i3964 = and i32 %shr.i7.i3963, 7 - %rm.i3965 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i3964, ptr %rm.i3965, align 4 - %shr.i9.i3966 = lshr i32 %insn, 7 - %and.i10.i3967 = and i32 %shr.i9.i3966, 31 - %rd.i3968 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i3967, ptr %rd.i3968, align 4 - %shr.i11.i3969 = lshr i32 %insn, 15 - %and.i12.i3970 = and i32 %shr.i11.i3969, 31 - %rs1.i3971 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i3970, ptr %rs1.i3971, align 4 + %shr.i.i3943 = lshr i32 %insn, 20 + %and.i.i3944 = and i32 %shr.i.i3943, 31 + store i32 %and.i.i3944, ptr %u, align 4 + %shr.i7.i3945 = lshr i32 %insn, 12 + %and.i8.i3946 = and i32 %shr.i7.i3945, 7 + %rm.i3947 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i3946, ptr %rm.i3947, align 4 + %shr.i9.i3948 = lshr i32 %insn, 7 + %and.i10.i3949 = and i32 %shr.i9.i3948, 31 + %rd.i3950 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3949, ptr %rd.i3950, align 4 + %shr.i11.i3951 = lshr i32 %insn, 15 + %and.i12.i3952 = and i32 %shr.i11.i3951, 31 + %rs1.i3953 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i3952, ptr %rs1.i3953, align 4 %call1380 = call fastcc zeroext i1 @trans_fadd_s(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1380, label %return, label %sw.epilog3868 sw.bb1383: ; preds = %sw.bb1376 - %shr.i.i3972 = lshr i32 %insn, 20 - %and.i.i3973 = and i32 %shr.i.i3972, 31 - store i32 %and.i.i3973, ptr %u, align 4 - %shr.i7.i3974 = lshr i32 %insn, 12 - %and.i8.i3975 = and i32 %shr.i7.i3974, 7 - %rm.i3976 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i3975, ptr %rm.i3976, align 4 - %shr.i9.i3977 = lshr i32 %insn, 7 - %and.i10.i3978 = and i32 %shr.i9.i3977, 31 - %rd.i3979 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i3978, ptr %rd.i3979, align 4 - %shr.i11.i3980 = lshr i32 %insn, 15 - %and.i12.i3981 = and i32 %shr.i11.i3980, 31 - %rs1.i3982 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i3981, ptr %rs1.i3982, align 4 + %shr.i.i3954 = lshr i32 %insn, 20 + %and.i.i3955 = and i32 %shr.i.i3954, 31 + store i32 %and.i.i3955, ptr %u, align 4 + %shr.i7.i3956 = lshr i32 %insn, 12 + %and.i8.i3957 = and i32 %shr.i7.i3956, 7 + %rm.i3958 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i3957, ptr %rm.i3958, align 4 + %shr.i9.i3959 = lshr i32 %insn, 7 + %and.i10.i3960 = and i32 %shr.i9.i3959, 31 + %rd.i3961 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3960, ptr %rd.i3961, align 4 + %shr.i11.i3962 = lshr i32 %insn, 15 + %and.i12.i3963 = and i32 %shr.i11.i3962, 31 + %rs1.i3964 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i3963, ptr %rs1.i3964, align 4 %call1384 = call fastcc zeroext i1 @trans_fadd_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1384, label %return, label %sw.epilog3868 sw.bb1387: ; preds = %sw.bb1376 - %shr.i.i3983 = lshr i32 %insn, 20 - %and.i.i3984 = and i32 %shr.i.i3983, 31 - store i32 %and.i.i3984, ptr %u, align 4 - %shr.i7.i3985 = lshr i32 %insn, 12 - %and.i8.i3986 = and i32 %shr.i7.i3985, 7 - %rm.i3987 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i3986, ptr %rm.i3987, align 4 - %shr.i9.i3988 = lshr i32 %insn, 7 - %and.i10.i3989 = and i32 %shr.i9.i3988, 31 - %rd.i3990 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i3989, ptr %rd.i3990, align 4 - %shr.i11.i3991 = lshr i32 %insn, 15 - %and.i12.i3992 = and i32 %shr.i11.i3991, 31 - %rs1.i3993 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i3992, ptr %rs1.i3993, align 4 + %shr.i.i3965 = lshr i32 %insn, 20 + %and.i.i3966 = and i32 %shr.i.i3965, 31 + store i32 %and.i.i3966, ptr %u, align 4 + %shr.i7.i3967 = lshr i32 %insn, 12 + %and.i8.i3968 = and i32 %shr.i7.i3967, 7 + %rm.i3969 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i3968, ptr %rm.i3969, align 4 + %shr.i9.i3970 = lshr i32 %insn, 7 + %and.i10.i3971 = and i32 %shr.i9.i3970, 31 + %rd.i3972 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3971, ptr %rd.i3972, align 4 + %shr.i11.i3973 = lshr i32 %insn, 15 + %and.i12.i3974 = and i32 %shr.i11.i3973, 31 + %rs1.i3975 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i3974, ptr %rs1.i3975, align 4 %call1388 = call fastcc zeroext i1 @trans_fadd_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1388, label %return, label %sw.epilog3868 sw.bb1391: ; preds = %sw.bb1376 - %shr.i.i3994 = lshr i32 %insn, 20 - %and.i.i3995 = and i32 %shr.i.i3994, 31 - store i32 %and.i.i3995, ptr %u, align 4 - %shr.i7.i3996 = lshr i32 %insn, 12 - %and.i8.i3997 = and i32 %shr.i7.i3996, 7 - %rm.i3998 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i3997, ptr %rm.i3998, align 4 - %shr.i9.i3999 = lshr i32 %insn, 7 - %and.i10.i4000 = and i32 %shr.i9.i3999, 31 - %rd.i4001 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4000, ptr %rd.i4001, align 4 - %shr.i11.i4002 = lshr i32 %insn, 15 - %and.i12.i4003 = and i32 %shr.i11.i4002, 31 - %rs1.i4004 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4003, ptr %rs1.i4004, align 4 + %shr.i.i3976 = lshr i32 %insn, 20 + %and.i.i3977 = and i32 %shr.i.i3976, 31 + store i32 %and.i.i3977, ptr %u, align 4 + %shr.i7.i3978 = lshr i32 %insn, 12 + %and.i8.i3979 = and i32 %shr.i7.i3978, 7 + %rm.i3980 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i3979, ptr %rm.i3980, align 4 + %shr.i9.i3981 = lshr i32 %insn, 7 + %and.i10.i3982 = and i32 %shr.i9.i3981, 31 + %rd.i3983 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3982, ptr %rd.i3983, align 4 + %shr.i11.i3984 = lshr i32 %insn, 15 + %and.i12.i3985 = and i32 %shr.i11.i3984, 31 + %rs1.i3986 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i3985, ptr %rs1.i3986, align 4 %call1392 = call fastcc zeroext i1 @trans_fsub_s(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1392, label %return, label %sw.epilog3868 sw.bb1395: ; preds = %sw.bb1376 - %shr.i.i4005 = lshr i32 %insn, 20 - %and.i.i4006 = and i32 %shr.i.i4005, 31 - store i32 %and.i.i4006, ptr %u, align 4 - %shr.i7.i4007 = lshr i32 %insn, 12 - %and.i8.i4008 = and i32 %shr.i7.i4007, 7 - %rm.i4009 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4008, ptr %rm.i4009, align 4 - %shr.i9.i4010 = lshr i32 %insn, 7 - %and.i10.i4011 = and i32 %shr.i9.i4010, 31 - %rd.i4012 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4011, ptr %rd.i4012, align 4 - %shr.i11.i4013 = lshr i32 %insn, 15 - %and.i12.i4014 = and i32 %shr.i11.i4013, 31 - %rs1.i4015 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4014, ptr %rs1.i4015, align 4 + %shr.i.i3987 = lshr i32 %insn, 20 + %and.i.i3988 = and i32 %shr.i.i3987, 31 + store i32 %and.i.i3988, ptr %u, align 4 + %shr.i7.i3989 = lshr i32 %insn, 12 + %and.i8.i3990 = and i32 %shr.i7.i3989, 7 + %rm.i3991 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i3990, ptr %rm.i3991, align 4 + %shr.i9.i3992 = lshr i32 %insn, 7 + %and.i10.i3993 = and i32 %shr.i9.i3992, 31 + %rd.i3994 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i3993, ptr %rd.i3994, align 4 + %shr.i11.i3995 = lshr i32 %insn, 15 + %and.i12.i3996 = and i32 %shr.i11.i3995, 31 + %rs1.i3997 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i3996, ptr %rs1.i3997, align 4 %call1396 = call fastcc zeroext i1 @trans_fsub_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1396, label %return, label %sw.epilog3868 sw.bb1399: ; preds = %sw.bb1376 - %shr.i.i4016 = lshr i32 %insn, 20 - %and.i.i4017 = and i32 %shr.i.i4016, 31 - store i32 %and.i.i4017, ptr %u, align 4 - %shr.i7.i4018 = lshr i32 %insn, 12 - %and.i8.i4019 = and i32 %shr.i7.i4018, 7 - %rm.i4020 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4019, ptr %rm.i4020, align 4 - %shr.i9.i4021 = lshr i32 %insn, 7 - %and.i10.i4022 = and i32 %shr.i9.i4021, 31 - %rd.i4023 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4022, ptr %rd.i4023, align 4 - %shr.i11.i4024 = lshr i32 %insn, 15 - %and.i12.i4025 = and i32 %shr.i11.i4024, 31 - %rs1.i4026 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4025, ptr %rs1.i4026, align 4 + %shr.i.i3998 = lshr i32 %insn, 20 + %and.i.i3999 = and i32 %shr.i.i3998, 31 + store i32 %and.i.i3999, ptr %u, align 4 + %shr.i7.i4000 = lshr i32 %insn, 12 + %and.i8.i4001 = and i32 %shr.i7.i4000, 7 + %rm.i4002 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i4001, ptr %rm.i4002, align 4 + %shr.i9.i4003 = lshr i32 %insn, 7 + %and.i10.i4004 = and i32 %shr.i9.i4003, 31 + %rd.i4005 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i4004, ptr %rd.i4005, align 4 + %shr.i11.i4006 = lshr i32 %insn, 15 + %and.i12.i4007 = and i32 %shr.i11.i4006, 31 + %rs1.i4008 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i4007, ptr %rs1.i4008, align 4 %call1400 = call fastcc zeroext i1 @trans_fsub_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1400, label %return, label %sw.epilog3868 sw.bb1403: ; preds = %sw.bb1376 - %shr.i.i4027 = lshr i32 %insn, 20 - %and.i.i4028 = and i32 %shr.i.i4027, 31 - store i32 %and.i.i4028, ptr %u, align 4 - %shr.i7.i4029 = lshr i32 %insn, 12 - %and.i8.i4030 = and i32 %shr.i7.i4029, 7 - %rm.i4031 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4030, ptr %rm.i4031, align 4 - %shr.i9.i4032 = lshr i32 %insn, 7 - %and.i10.i4033 = and i32 %shr.i9.i4032, 31 - %rd.i4034 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4033, ptr %rd.i4034, align 4 - %shr.i11.i4035 = lshr i32 %insn, 15 - %and.i12.i4036 = and i32 %shr.i11.i4035, 31 - %rs1.i4037 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4036, ptr %rs1.i4037, align 4 + %shr.i.i4009 = lshr i32 %insn, 20 + %and.i.i4010 = and i32 %shr.i.i4009, 31 + store i32 %and.i.i4010, ptr %u, align 4 + %shr.i7.i4011 = lshr i32 %insn, 12 + %and.i8.i4012 = and i32 %shr.i7.i4011, 7 + %rm.i4013 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i4012, ptr %rm.i4013, align 4 + %shr.i9.i4014 = lshr i32 %insn, 7 + %and.i10.i4015 = and i32 %shr.i9.i4014, 31 + %rd.i4016 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i4015, ptr %rd.i4016, align 4 + %shr.i11.i4017 = lshr i32 %insn, 15 + %and.i12.i4018 = and i32 %shr.i11.i4017, 31 + %rs1.i4019 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i4018, ptr %rs1.i4019, align 4 %call1404 = call fastcc zeroext i1 @trans_fmul_s(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1404, label %return, label %sw.epilog3868 sw.bb1407: ; preds = %sw.bb1376 - %shr.i.i4038 = lshr i32 %insn, 20 - %and.i.i4039 = and i32 %shr.i.i4038, 31 - store i32 %and.i.i4039, ptr %u, align 4 - %shr.i7.i4040 = lshr i32 %insn, 12 - %and.i8.i4041 = and i32 %shr.i7.i4040, 7 - %rm.i4042 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4041, ptr %rm.i4042, align 4 - %shr.i9.i4043 = lshr i32 %insn, 7 - %and.i10.i4044 = and i32 %shr.i9.i4043, 31 - %rd.i4045 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4044, ptr %rd.i4045, align 4 - %shr.i11.i4046 = lshr i32 %insn, 15 - %and.i12.i4047 = and i32 %shr.i11.i4046, 31 - %rs1.i4048 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4047, ptr %rs1.i4048, align 4 + %shr.i.i4020 = lshr i32 %insn, 20 + %and.i.i4021 = and i32 %shr.i.i4020, 31 + store i32 %and.i.i4021, ptr %u, align 4 + %shr.i7.i4022 = lshr i32 %insn, 12 + %and.i8.i4023 = and i32 %shr.i7.i4022, 7 + %rm.i4024 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i4023, ptr %rm.i4024, align 4 + %shr.i9.i4025 = lshr i32 %insn, 7 + %and.i10.i4026 = and i32 %shr.i9.i4025, 31 + %rd.i4027 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i4026, ptr %rd.i4027, align 4 + %shr.i11.i4028 = lshr i32 %insn, 15 + %and.i12.i4029 = and i32 %shr.i11.i4028, 31 + %rs1.i4030 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i4029, ptr %rs1.i4030, align 4 %call1408 = call fastcc zeroext i1 @trans_fmul_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1408, label %return, label %sw.epilog3868 sw.bb1411: ; preds = %sw.bb1376 - %shr.i.i4049 = lshr i32 %insn, 20 - %and.i.i4050 = and i32 %shr.i.i4049, 31 - store i32 %and.i.i4050, ptr %u, align 4 - %shr.i7.i4051 = lshr i32 %insn, 12 - %and.i8.i4052 = and i32 %shr.i7.i4051, 7 - %rm.i4053 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4052, ptr %rm.i4053, align 4 - %shr.i9.i4054 = lshr i32 %insn, 7 - %and.i10.i4055 = and i32 %shr.i9.i4054, 31 - %rd.i4056 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4055, ptr %rd.i4056, align 4 - %shr.i11.i4057 = lshr i32 %insn, 15 - %and.i12.i4058 = and i32 %shr.i11.i4057, 31 - %rs1.i4059 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4058, ptr %rs1.i4059, align 4 + %shr.i.i4031 = lshr i32 %insn, 20 + %and.i.i4032 = and i32 %shr.i.i4031, 31 + store i32 %and.i.i4032, ptr %u, align 4 + %shr.i7.i4033 = lshr i32 %insn, 12 + %and.i8.i4034 = and i32 %shr.i7.i4033, 7 + %rm.i4035 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i4034, ptr %rm.i4035, align 4 + %shr.i9.i4036 = lshr i32 %insn, 7 + %and.i10.i4037 = and i32 %shr.i9.i4036, 31 + %rd.i4038 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i4037, ptr %rd.i4038, align 4 + %shr.i11.i4039 = lshr i32 %insn, 15 + %and.i12.i4040 = and i32 %shr.i11.i4039, 31 + %rs1.i4041 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i4040, ptr %rs1.i4041, align 4 %call1412 = call fastcc zeroext i1 @trans_fmul_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1412, label %return, label %sw.epilog3868 sw.bb1415: ; preds = %sw.bb1376 - %shr.i.i4060 = lshr i32 %insn, 20 - %and.i.i4061 = and i32 %shr.i.i4060, 31 - store i32 %and.i.i4061, ptr %u, align 4 - %shr.i7.i4062 = lshr i32 %insn, 12 - %and.i8.i4063 = and i32 %shr.i7.i4062, 7 - %rm.i4064 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4063, ptr %rm.i4064, align 4 - %shr.i9.i4065 = lshr i32 %insn, 7 - %and.i10.i4066 = and i32 %shr.i9.i4065, 31 - %rd.i4067 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4066, ptr %rd.i4067, align 4 - %shr.i11.i4068 = lshr i32 %insn, 15 - %and.i12.i4069 = and i32 %shr.i11.i4068, 31 - %rs1.i4070 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4069, ptr %rs1.i4070, align 4 + %shr.i.i4042 = lshr i32 %insn, 20 + %and.i.i4043 = and i32 %shr.i.i4042, 31 + store i32 %and.i.i4043, ptr %u, align 4 + %shr.i7.i4044 = lshr i32 %insn, 12 + %and.i8.i4045 = and i32 %shr.i7.i4044, 7 + %rm.i4046 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i4045, ptr %rm.i4046, align 4 + %shr.i9.i4047 = lshr i32 %insn, 7 + %and.i10.i4048 = and i32 %shr.i9.i4047, 31 + %rd.i4049 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i4048, ptr %rd.i4049, align 4 + %shr.i11.i4050 = lshr i32 %insn, 15 + %and.i12.i4051 = and i32 %shr.i11.i4050, 31 + %rs1.i4052 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i4051, ptr %rs1.i4052, align 4 %call1416 = call fastcc zeroext i1 @trans_fdiv_s(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1416, label %return, label %sw.epilog3868 sw.bb1419: ; preds = %sw.bb1376 - %shr.i.i4071 = lshr i32 %insn, 20 - %and.i.i4072 = and i32 %shr.i.i4071, 31 - store i32 %and.i.i4072, ptr %u, align 4 - %shr.i7.i4073 = lshr i32 %insn, 12 - %and.i8.i4074 = and i32 %shr.i7.i4073, 7 - %rm.i4075 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4074, ptr %rm.i4075, align 4 - %shr.i9.i4076 = lshr i32 %insn, 7 - %and.i10.i4077 = and i32 %shr.i9.i4076, 31 - %rd.i4078 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4077, ptr %rd.i4078, align 4 - %shr.i11.i4079 = lshr i32 %insn, 15 - %and.i12.i4080 = and i32 %shr.i11.i4079, 31 - %rs1.i4081 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4080, ptr %rs1.i4081, align 4 + %shr.i.i4053 = lshr i32 %insn, 20 + %and.i.i4054 = and i32 %shr.i.i4053, 31 + store i32 %and.i.i4054, ptr %u, align 4 + %shr.i7.i4055 = lshr i32 %insn, 12 + %and.i8.i4056 = and i32 %shr.i7.i4055, 7 + %rm.i4057 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i4056, ptr %rm.i4057, align 4 + %shr.i9.i4058 = lshr i32 %insn, 7 + %and.i10.i4059 = and i32 %shr.i9.i4058, 31 + %rd.i4060 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i4059, ptr %rd.i4060, align 4 + %shr.i11.i4061 = lshr i32 %insn, 15 + %and.i12.i4062 = and i32 %shr.i11.i4061, 31 + %rs1.i4063 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i4062, ptr %rs1.i4063, align 4 %call1420 = call fastcc zeroext i1 @trans_fdiv_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1420, label %return, label %sw.epilog3868 sw.bb1423: ; preds = %sw.bb1376 - %shr.i.i4082 = lshr i32 %insn, 20 - %and.i.i4083 = and i32 %shr.i.i4082, 31 - store i32 %and.i.i4083, ptr %u, align 4 - %shr.i7.i4084 = lshr i32 %insn, 12 - %and.i8.i4085 = and i32 %shr.i7.i4084, 7 - %rm.i4086 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 - store i32 %and.i8.i4085, ptr %rm.i4086, align 4 - %shr.i9.i4087 = lshr i32 %insn, 7 - %and.i10.i4088 = and i32 %shr.i9.i4087, 31 - %rd.i4089 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 - store i32 %and.i10.i4088, ptr %rd.i4089, align 4 - %shr.i11.i4090 = lshr i32 %insn, 15 - %and.i12.i4091 = and i32 %shr.i11.i4090, 31 - %rs1.i4092 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 - store i32 %and.i12.i4091, ptr %rs1.i4092, align 4 + %shr.i.i4064 = lshr i32 %insn, 20 + %and.i.i4065 = and i32 %shr.i.i4064, 31 + store i32 %and.i.i4065, ptr %u, align 4 + %shr.i7.i4066 = lshr i32 %insn, 12 + %and.i8.i4067 = and i32 %shr.i7.i4066, 7 + %rm.i4068 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 2 + store i32 %and.i8.i4067, ptr %rm.i4068, align 4 + %shr.i9.i4069 = lshr i32 %insn, 7 + %and.i10.i4070 = and i32 %shr.i9.i4069, 31 + %rd.i4071 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 3 + store i32 %and.i10.i4070, ptr %rd.i4071, align 4 + %shr.i11.i4072 = lshr i32 %insn, 15 + %and.i12.i4073 = and i32 %shr.i11.i4072, 31 + %rs1.i4074 = getelementptr inbounds %struct.arg_decode_insn3218, ptr %u, i64 0, i32 1 + store i32 %and.i12.i4073, ptr %rs1.i4074, align 4 %call1424 = call fastcc zeroext i1 @trans_fdiv_h(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1424, label %return, label %sw.epilog3868 sw.bb1427: ; preds = %sw.bb1376 - %shr.i.i4093 = lshr i32 %insn, 20 - %and.i.i4094 = and i32 %shr.i.i4093, 31 - %rs2.i4095 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4094, ptr %rs2.i4095, align 4 - %shr.i5.i4096 = lshr i32 %insn, 7 - %and.i6.i4097 = and i32 %shr.i5.i4096, 31 - store i32 %and.i6.i4097, ptr %u, align 4 - %shr.i7.i4098 = lshr i32 %insn, 15 - %and.i8.i4099 = and i32 %shr.i7.i4098, 31 - %rs1.i4100 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4099, ptr %rs1.i4100, align 4 + %shr.i.i4075 = lshr i32 %insn, 20 + %and.i.i4076 = and i32 %shr.i.i4075, 31 + %rs2.i4077 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4076, ptr %rs2.i4077, align 4 + %shr.i5.i4078 = lshr i32 %insn, 7 + %and.i6.i4079 = and i32 %shr.i5.i4078, 31 + store i32 %and.i6.i4079, ptr %u, align 4 + %shr.i7.i4080 = lshr i32 %insn, 15 + %and.i8.i4081 = and i32 %shr.i7.i4080, 31 + %rs1.i4082 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4081, ptr %rs1.i4082, align 4 %shr1428 = lshr i32 %insn, 12 %and1429 = and i32 %shr1428, 7 switch i32 %and1429, label %sw.epilog3868 [ @@ -11455,17 +11433,17 @@ sw.bb1438: ; preds = %sw.bb1427 br i1 %call1439, label %return, label %sw.epilog3868 sw.bb1443: ; preds = %sw.bb1376 - %shr.i.i4101 = lshr i32 %insn, 20 - %and.i.i4102 = and i32 %shr.i.i4101, 31 - %rs2.i4103 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4102, ptr %rs2.i4103, align 4 - %shr.i5.i4104 = lshr i32 %insn, 7 - %and.i6.i4105 = and i32 %shr.i5.i4104, 31 - store i32 %and.i6.i4105, ptr %u, align 4 - %shr.i7.i4106 = lshr i32 %insn, 15 - %and.i8.i4107 = and i32 %shr.i7.i4106, 31 - %rs1.i4108 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4107, ptr %rs1.i4108, align 4 + %shr.i.i4083 = lshr i32 %insn, 20 + %and.i.i4084 = and i32 %shr.i.i4083, 31 + %rs2.i4085 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4084, ptr %rs2.i4085, align 4 + %shr.i5.i4086 = lshr i32 %insn, 7 + %and.i6.i4087 = and i32 %shr.i5.i4086, 31 + store i32 %and.i6.i4087, ptr %u, align 4 + %shr.i7.i4088 = lshr i32 %insn, 15 + %and.i8.i4089 = and i32 %shr.i7.i4088, 31 + %rs1.i4090 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4089, ptr %rs1.i4090, align 4 %shr1444 = lshr i32 %insn, 12 %and1445 = and i32 %shr1444, 7 switch i32 %and1445, label %sw.epilog3868 [ @@ -11487,17 +11465,17 @@ sw.bb1454: ; preds = %sw.bb1443 br i1 %call1455, label %return, label %sw.epilog3868 sw.bb1459: ; preds = %sw.bb1376 - %shr.i.i4109 = lshr i32 %insn, 20 - %and.i.i4110 = and i32 %shr.i.i4109, 31 - %rs2.i4111 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4110, ptr %rs2.i4111, align 4 - %shr.i5.i4112 = lshr i32 %insn, 7 - %and.i6.i4113 = and i32 %shr.i5.i4112, 31 - store i32 %and.i6.i4113, ptr %u, align 4 - %shr.i7.i4114 = lshr i32 %insn, 15 - %and.i8.i4115 = and i32 %shr.i7.i4114, 31 - %rs1.i4116 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4115, ptr %rs1.i4116, align 4 + %shr.i.i4091 = lshr i32 %insn, 20 + %and.i.i4092 = and i32 %shr.i.i4091, 31 + %rs2.i4093 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4092, ptr %rs2.i4093, align 4 + %shr.i5.i4094 = lshr i32 %insn, 7 + %and.i6.i4095 = and i32 %shr.i5.i4094, 31 + store i32 %and.i6.i4095, ptr %u, align 4 + %shr.i7.i4096 = lshr i32 %insn, 15 + %and.i8.i4097 = and i32 %shr.i7.i4096, 31 + %rs1.i4098 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4097, ptr %rs1.i4098, align 4 %shr1460 = lshr i32 %insn, 12 %and1461 = and i32 %shr1460, 7 switch i32 %and1461, label %sw.epilog3868 [ @@ -11519,17 +11497,17 @@ sw.bb1470: ; preds = %sw.bb1459 br i1 %call1471, label %return, label %sw.epilog3868 sw.bb1475: ; preds = %sw.bb1376 - %shr.i.i4117 = lshr i32 %insn, 20 - %and.i.i4118 = and i32 %shr.i.i4117, 31 - %rs2.i4119 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4118, ptr %rs2.i4119, align 4 - %shr.i5.i4120 = lshr i32 %insn, 7 - %and.i6.i4121 = and i32 %shr.i5.i4120, 31 - store i32 %and.i6.i4121, ptr %u, align 4 - %shr.i7.i4122 = lshr i32 %insn, 15 - %and.i8.i4123 = and i32 %shr.i7.i4122, 31 - %rs1.i4124 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4123, ptr %rs1.i4124, align 4 + %shr.i.i4099 = lshr i32 %insn, 20 + %and.i.i4100 = and i32 %shr.i.i4099, 31 + %rs2.i4101 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4100, ptr %rs2.i4101, align 4 + %shr.i5.i4102 = lshr i32 %insn, 7 + %and.i6.i4103 = and i32 %shr.i5.i4102, 31 + store i32 %and.i6.i4103, ptr %u, align 4 + %shr.i7.i4104 = lshr i32 %insn, 15 + %and.i8.i4105 = and i32 %shr.i7.i4104, 31 + %rs1.i4106 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4105, ptr %rs1.i4106, align 4 %shr1476 = lshr i32 %insn, 12 %and1477 = and i32 %shr1476, 7 switch i32 %and1477, label %sw.epilog3868 [ @@ -11556,17 +11534,17 @@ sw.bb1490: ; preds = %sw.bb1475 br i1 %call1491, label %return, label %sw.epilog3868 sw.bb1495: ; preds = %sw.bb1376 - %shr.i.i4125 = lshr i32 %insn, 20 - %and.i.i4126 = and i32 %shr.i.i4125, 31 - %rs2.i4127 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4126, ptr %rs2.i4127, align 4 - %shr.i5.i4128 = lshr i32 %insn, 7 - %and.i6.i4129 = and i32 %shr.i5.i4128, 31 - store i32 %and.i6.i4129, ptr %u, align 4 - %shr.i7.i4130 = lshr i32 %insn, 15 - %and.i8.i4131 = and i32 %shr.i7.i4130, 31 - %rs1.i4132 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4131, ptr %rs1.i4132, align 4 + %shr.i.i4107 = lshr i32 %insn, 20 + %and.i.i4108 = and i32 %shr.i.i4107, 31 + %rs2.i4109 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4108, ptr %rs2.i4109, align 4 + %shr.i5.i4110 = lshr i32 %insn, 7 + %and.i6.i4111 = and i32 %shr.i5.i4110, 31 + store i32 %and.i6.i4111, ptr %u, align 4 + %shr.i7.i4112 = lshr i32 %insn, 15 + %and.i8.i4113 = and i32 %shr.i7.i4112, 31 + %rs1.i4114 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4113, ptr %rs1.i4114, align 4 %shr1496 = lshr i32 %insn, 12 %and1497 = and i32 %shr1496, 7 switch i32 %and1497, label %sw.epilog3868 [ @@ -11593,17 +11571,17 @@ sw.bb1510: ; preds = %sw.bb1495 br i1 %call1511, label %return, label %sw.epilog3868 sw.bb1515: ; preds = %sw.bb1376 - %shr.i.i4133 = lshr i32 %insn, 20 - %and.i.i4134 = and i32 %shr.i.i4133, 31 - %rs2.i4135 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4134, ptr %rs2.i4135, align 4 - %shr.i5.i4136 = lshr i32 %insn, 7 - %and.i6.i4137 = and i32 %shr.i5.i4136, 31 - store i32 %and.i6.i4137, ptr %u, align 4 - %shr.i7.i4138 = lshr i32 %insn, 15 - %and.i8.i4139 = and i32 %shr.i7.i4138, 31 - %rs1.i4140 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4139, ptr %rs1.i4140, align 4 + %shr.i.i4115 = lshr i32 %insn, 20 + %and.i.i4116 = and i32 %shr.i.i4115, 31 + %rs2.i4117 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4116, ptr %rs2.i4117, align 4 + %shr.i5.i4118 = lshr i32 %insn, 7 + %and.i6.i4119 = and i32 %shr.i5.i4118, 31 + store i32 %and.i6.i4119, ptr %u, align 4 + %shr.i7.i4120 = lshr i32 %insn, 15 + %and.i8.i4121 = and i32 %shr.i7.i4120, 31 + %rs1.i4122 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4121, ptr %rs1.i4122, align 4 %shr1516 = lshr i32 %insn, 12 %and1517 = and i32 %shr1516, 7 switch i32 %and1517, label %sw.epilog3868 [ @@ -11630,17 +11608,17 @@ sw.bb1530: ; preds = %sw.bb1515 br i1 %call1531, label %return, label %sw.epilog3868 sw.bb1535: ; preds = %sw.bb1376 - %shr.i.i4141 = lshr i32 %insn, 12 - %and.i.i4142 = and i32 %shr.i.i4141, 7 - %rm.i4143 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4142, ptr %rm.i4143, align 4 - %shr.i5.i4144 = lshr i32 %insn, 7 - %and.i6.i4145 = and i32 %shr.i5.i4144, 31 - %rd.i4146 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4145, ptr %rd.i4146, align 4 - %shr.i7.i4147 = lshr i32 %insn, 15 - %and.i8.i4148 = and i32 %shr.i7.i4147, 31 - store i32 %and.i8.i4148, ptr %u, align 4 + %shr.i.i4123 = lshr i32 %insn, 12 + %and.i.i4124 = and i32 %shr.i.i4123, 7 + %rm.i4125 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4124, ptr %rm.i4125, align 4 + %shr.i5.i4126 = lshr i32 %insn, 7 + %and.i6.i4127 = and i32 %shr.i5.i4126, 31 + %rd.i4128 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4127, ptr %rd.i4128, align 4 + %shr.i7.i4129 = lshr i32 %insn, 15 + %and.i8.i4130 = and i32 %shr.i7.i4129, 31 + store i32 %and.i8.i4130, ptr %u, align 4 %shr1536 = lshr i32 %insn, 20 %and1537 = and i32 %shr1536, 31 switch i32 %and1537, label %sw.epilog3868 [ @@ -11672,17 +11650,17 @@ sw.bb1554: ; preds = %sw.bb1535 br i1 %call1555, label %return, label %sw.epilog3868 sw.bb1559: ; preds = %sw.bb1376 - %shr.i.i4149 = lshr i32 %insn, 12 - %and.i.i4150 = and i32 %shr.i.i4149, 7 - %rm.i4151 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4150, ptr %rm.i4151, align 4 - %shr.i5.i4152 = lshr i32 %insn, 7 - %and.i6.i4153 = and i32 %shr.i5.i4152, 31 - %rd.i4154 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4153, ptr %rd.i4154, align 4 - %shr.i7.i4155 = lshr i32 %insn, 15 - %and.i8.i4156 = and i32 %shr.i7.i4155, 31 - store i32 %and.i8.i4156, ptr %u, align 4 + %shr.i.i4131 = lshr i32 %insn, 12 + %and.i.i4132 = and i32 %shr.i.i4131, 7 + %rm.i4133 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4132, ptr %rm.i4133, align 4 + %shr.i5.i4134 = lshr i32 %insn, 7 + %and.i6.i4135 = and i32 %shr.i5.i4134, 31 + %rd.i4136 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4135, ptr %rd.i4136, align 4 + %shr.i7.i4137 = lshr i32 %insn, 15 + %and.i8.i4138 = and i32 %shr.i7.i4137, 31 + store i32 %and.i8.i4138, ptr %u, align 4 %shr1560 = lshr i32 %insn, 20 %and1561 = and i32 %shr1560, 31 switch i32 %and1561, label %sw.epilog3868 [ @@ -11709,17 +11687,17 @@ sw.bb1574: ; preds = %sw.bb1559 br i1 %call1575, label %return, label %sw.epilog3868 sw.bb1579: ; preds = %sw.bb1376 - %shr.i.i4157 = lshr i32 %insn, 12 - %and.i.i4158 = and i32 %shr.i.i4157, 7 - %rm.i4159 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4158, ptr %rm.i4159, align 4 - %shr.i5.i4160 = lshr i32 %insn, 7 - %and.i6.i4161 = and i32 %shr.i5.i4160, 31 - %rd.i4162 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4161, ptr %rd.i4162, align 4 - %shr.i7.i4163 = lshr i32 %insn, 15 - %and.i8.i4164 = and i32 %shr.i7.i4163, 31 - store i32 %and.i8.i4164, ptr %u, align 4 + %shr.i.i4139 = lshr i32 %insn, 12 + %and.i.i4140 = and i32 %shr.i.i4139, 7 + %rm.i4141 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4140, ptr %rm.i4141, align 4 + %shr.i5.i4142 = lshr i32 %insn, 7 + %and.i6.i4143 = and i32 %shr.i5.i4142, 31 + %rd.i4144 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4143, ptr %rd.i4144, align 4 + %shr.i7.i4145 = lshr i32 %insn, 15 + %and.i8.i4146 = and i32 %shr.i7.i4145, 31 + store i32 %and.i8.i4146, ptr %u, align 4 %shr1580 = lshr i32 %insn, 20 %and1581 = and i32 %shr1580, 31 switch i32 %and1581, label %sw.epilog3868 [ @@ -11751,17 +11729,17 @@ sw.bb1598: ; preds = %sw.bb1579 br i1 %call1599, label %return, label %sw.epilog3868 sw.bb1603: ; preds = %sw.bb1376 - %shr.i.i4165 = lshr i32 %insn, 12 - %and.i.i4166 = and i32 %shr.i.i4165, 7 - %rm.i4167 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4166, ptr %rm.i4167, align 4 - %shr.i5.i4168 = lshr i32 %insn, 7 - %and.i6.i4169 = and i32 %shr.i5.i4168, 31 - %rd.i4170 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4169, ptr %rd.i4170, align 4 - %shr.i7.i4171 = lshr i32 %insn, 15 - %and.i8.i4172 = and i32 %shr.i7.i4171, 31 - store i32 %and.i8.i4172, ptr %u, align 4 + %shr.i.i4147 = lshr i32 %insn, 12 + %and.i.i4148 = and i32 %shr.i.i4147, 7 + %rm.i4149 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4148, ptr %rm.i4149, align 4 + %shr.i5.i4150 = lshr i32 %insn, 7 + %and.i6.i4151 = and i32 %shr.i5.i4150, 31 + %rd.i4152 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4151, ptr %rd.i4152, align 4 + %shr.i7.i4153 = lshr i32 %insn, 15 + %and.i8.i4154 = and i32 %shr.i7.i4153, 31 + store i32 %and.i8.i4154, ptr %u, align 4 %185 = and i32 %insn, 32505856 %cond33 = icmp eq i32 %185, 0 br i1 %cond33, label %sw.bb1606, label %sw.epilog3868 @@ -11771,17 +11749,17 @@ sw.bb1606: ; preds = %sw.bb1603 br i1 %call1607, label %return, label %sw.epilog3868 sw.bb1611: ; preds = %sw.bb1376 - %shr.i.i4173 = lshr i32 %insn, 12 - %and.i.i4174 = and i32 %shr.i.i4173, 7 - %rm.i4175 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4174, ptr %rm.i4175, align 4 - %shr.i5.i4176 = lshr i32 %insn, 7 - %and.i6.i4177 = and i32 %shr.i5.i4176, 31 - %rd.i4178 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4177, ptr %rd.i4178, align 4 - %shr.i7.i4179 = lshr i32 %insn, 15 - %and.i8.i4180 = and i32 %shr.i7.i4179, 31 - store i32 %and.i8.i4180, ptr %u, align 4 + %shr.i.i4155 = lshr i32 %insn, 12 + %and.i.i4156 = and i32 %shr.i.i4155, 7 + %rm.i4157 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4156, ptr %rm.i4157, align 4 + %shr.i5.i4158 = lshr i32 %insn, 7 + %and.i6.i4159 = and i32 %shr.i5.i4158, 31 + %rd.i4160 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4159, ptr %rd.i4160, align 4 + %shr.i7.i4161 = lshr i32 %insn, 15 + %and.i8.i4162 = and i32 %shr.i7.i4161, 31 + store i32 %and.i8.i4162, ptr %u, align 4 %186 = and i32 %insn, 32505856 %cond32 = icmp eq i32 %186, 0 br i1 %cond32, label %sw.bb1614, label %sw.epilog3868 @@ -11791,17 +11769,17 @@ sw.bb1614: ; preds = %sw.bb1611 br i1 %call1615, label %return, label %sw.epilog3868 sw.bb1619: ; preds = %sw.bb1376 - %shr.i.i4181 = lshr i32 %insn, 12 - %and.i.i4182 = and i32 %shr.i.i4181, 7 - %rm.i4183 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4182, ptr %rm.i4183, align 4 - %shr.i5.i4184 = lshr i32 %insn, 7 - %and.i6.i4185 = and i32 %shr.i5.i4184, 31 - %rd.i4186 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4185, ptr %rd.i4186, align 4 - %shr.i7.i4187 = lshr i32 %insn, 15 - %and.i8.i4188 = and i32 %shr.i7.i4187, 31 - store i32 %and.i8.i4188, ptr %u, align 4 + %shr.i.i4163 = lshr i32 %insn, 12 + %and.i.i4164 = and i32 %shr.i.i4163, 7 + %rm.i4165 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4164, ptr %rm.i4165, align 4 + %shr.i5.i4166 = lshr i32 %insn, 7 + %and.i6.i4167 = and i32 %shr.i5.i4166, 31 + %rd.i4168 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4167, ptr %rd.i4168, align 4 + %shr.i7.i4169 = lshr i32 %insn, 15 + %and.i8.i4170 = and i32 %shr.i7.i4169, 31 + store i32 %and.i8.i4170, ptr %u, align 4 %187 = and i32 %insn, 32505856 %cond31 = icmp eq i32 %187, 0 br i1 %cond31, label %sw.bb1622, label %sw.epilog3868 @@ -11811,17 +11789,17 @@ sw.bb1622: ; preds = %sw.bb1619 br i1 %call1623, label %return, label %sw.epilog3868 sw.bb1627: ; preds = %sw.bb1376 - %shr.i.i4189 = lshr i32 %insn, 20 - %and.i.i4190 = and i32 %shr.i.i4189, 31 - %rs2.i4191 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4190, ptr %rs2.i4191, align 4 - %shr.i5.i4192 = lshr i32 %insn, 7 - %and.i6.i4193 = and i32 %shr.i5.i4192, 31 - store i32 %and.i6.i4193, ptr %u, align 4 - %shr.i7.i4194 = lshr i32 %insn, 15 - %and.i8.i4195 = and i32 %shr.i7.i4194, 31 - %rs1.i4196 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4195, ptr %rs1.i4196, align 4 + %shr.i.i4171 = lshr i32 %insn, 20 + %and.i.i4172 = and i32 %shr.i.i4171, 31 + %rs2.i4173 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4172, ptr %rs2.i4173, align 4 + %shr.i5.i4174 = lshr i32 %insn, 7 + %and.i6.i4175 = and i32 %shr.i5.i4174, 31 + store i32 %and.i6.i4175, ptr %u, align 4 + %shr.i7.i4176 = lshr i32 %insn, 15 + %and.i8.i4177 = and i32 %shr.i7.i4176, 31 + %rs1.i4178 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4177, ptr %rs1.i4178, align 4 %shr1628 = lshr i32 %insn, 12 %and1629 = and i32 %shr1628, 7 switch i32 %and1629, label %sw.epilog3868 [ @@ -11853,17 +11831,17 @@ sw.bb1646: ; preds = %sw.bb1627 br i1 %call1647, label %return, label %sw.epilog3868 sw.bb1651: ; preds = %sw.bb1376 - %shr.i.i4197 = lshr i32 %insn, 20 - %and.i.i4198 = and i32 %shr.i.i4197, 31 - %rs2.i4199 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4198, ptr %rs2.i4199, align 4 - %shr.i5.i4200 = lshr i32 %insn, 7 - %and.i6.i4201 = and i32 %shr.i5.i4200, 31 - store i32 %and.i6.i4201, ptr %u, align 4 - %shr.i7.i4202 = lshr i32 %insn, 15 - %and.i8.i4203 = and i32 %shr.i7.i4202, 31 - %rs1.i4204 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4203, ptr %rs1.i4204, align 4 + %shr.i.i4179 = lshr i32 %insn, 20 + %and.i.i4180 = and i32 %shr.i.i4179, 31 + %rs2.i4181 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4180, ptr %rs2.i4181, align 4 + %shr.i5.i4182 = lshr i32 %insn, 7 + %and.i6.i4183 = and i32 %shr.i5.i4182, 31 + store i32 %and.i6.i4183, ptr %u, align 4 + %shr.i7.i4184 = lshr i32 %insn, 15 + %and.i8.i4185 = and i32 %shr.i7.i4184, 31 + %rs1.i4186 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4185, ptr %rs1.i4186, align 4 %shr1652 = lshr i32 %insn, 12 %and1653 = and i32 %shr1652, 7 switch i32 %and1653, label %sw.epilog3868 [ @@ -11895,17 +11873,17 @@ sw.bb1670: ; preds = %sw.bb1651 br i1 %call1671, label %return, label %sw.epilog3868 sw.bb1675: ; preds = %sw.bb1376 - %shr.i.i4205 = lshr i32 %insn, 20 - %and.i.i4206 = and i32 %shr.i.i4205, 31 - %rs2.i4207 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i4206, ptr %rs2.i4207, align 4 - %shr.i5.i4208 = lshr i32 %insn, 7 - %and.i6.i4209 = and i32 %shr.i5.i4208, 31 - store i32 %and.i6.i4209, ptr %u, align 4 - %shr.i7.i4210 = lshr i32 %insn, 15 - %and.i8.i4211 = and i32 %shr.i7.i4210, 31 - %rs1.i4212 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4211, ptr %rs1.i4212, align 4 + %shr.i.i4187 = lshr i32 %insn, 20 + %and.i.i4188 = and i32 %shr.i.i4187, 31 + %rs2.i4189 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i4188, ptr %rs2.i4189, align 4 + %shr.i5.i4190 = lshr i32 %insn, 7 + %and.i6.i4191 = and i32 %shr.i5.i4190, 31 + store i32 %and.i6.i4191, ptr %u, align 4 + %shr.i7.i4192 = lshr i32 %insn, 15 + %and.i8.i4193 = and i32 %shr.i7.i4192, 31 + %rs1.i4194 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4193, ptr %rs1.i4194, align 4 %shr1676 = lshr i32 %insn, 12 %and1677 = and i32 %shr1676, 7 switch i32 %and1677, label %sw.epilog3868 [ @@ -11945,27 +11923,27 @@ sw.bb1702: ; preds = %sw.bb1699 %mstatus_fs.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 %189 = load i32, ptr %mstatus_fs.i, align 4 %cmp.i = icmp eq i32 %189, 0 - br i1 %cmp.i, label %if.then.i4221, label %sw.epilog3868 + br i1 %cmp.i, label %if.then.i4203, label %sw.epilog3868 -if.then.i4221: ; preds = %sw.bb1702 +if.then.i4203: ; preds = %sw.bb1702 %virt_enabled.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 %190 = load i8, ptr %virt_enabled.i, align 1 %191 = and i8 %190, 1 - %tobool.not.i4222 = icmp eq i8 %191, 0 - br i1 %tobool.not.i4222, label %sw.epilog3868.sink.split, label %sw.epilog3868.sink.split.sink.split + %tobool.not.i4204 = icmp eq i8 %191, 0 + br i1 %tobool.not.i4204, label %sw.epilog3868.sink.split, label %sw.epilog3868.sink.split.sink.split sw.bb1707: ; preds = %sw.bb1376 - %shr.i.i4224 = lshr i32 %insn, 12 - %and.i.i4225 = and i32 %shr.i.i4224, 7 - %rm.i4226 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4225, ptr %rm.i4226, align 4 - %shr.i5.i4227 = lshr i32 %insn, 7 - %and.i6.i4228 = and i32 %shr.i5.i4227, 31 - %rd.i4229 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4228, ptr %rd.i4229, align 4 - %shr.i7.i4230 = lshr i32 %insn, 15 - %and.i8.i4231 = and i32 %shr.i7.i4230, 31 - store i32 %and.i8.i4231, ptr %u, align 4 + %shr.i.i4206 = lshr i32 %insn, 12 + %and.i.i4207 = and i32 %shr.i.i4206, 7 + %rm.i4208 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4207, ptr %rm.i4208, align 4 + %shr.i5.i4209 = lshr i32 %insn, 7 + %and.i6.i4210 = and i32 %shr.i5.i4209, 31 + %rd.i4211 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4210, ptr %rd.i4211, align 4 + %shr.i7.i4212 = lshr i32 %insn, 15 + %and.i8.i4213 = and i32 %shr.i7.i4212, 31 + store i32 %and.i8.i4213, ptr %u, align 4 %shr1708 = lshr i32 %insn, 20 %and1709 = and i32 %shr1708, 31 switch i32 %and1709, label %sw.epilog3868 [ @@ -12003,73 +11981,73 @@ sw.bb1727: ; preds = %sw.bb1376 ] sw.bb1730: ; preds = %sw.bb1727 - %shr.i.i4232 = lshr i32 %insn, 12 - %and.i.i4233 = and i32 %shr.i.i4232, 7 - %rm.i4234 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4233, ptr %rm.i4234, align 4 - %shr.i5.i4235 = lshr i32 %insn, 7 - %and.i6.i4236 = and i32 %shr.i5.i4235, 31 - %rd.i4237 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4236, ptr %rd.i4237, align 4 - %shr.i7.i4238 = lshr i32 %insn, 15 - %and.i8.i4239 = and i32 %shr.i7.i4238, 31 - store i32 %and.i8.i4239, ptr %u, align 4 + %shr.i.i4214 = lshr i32 %insn, 12 + %and.i.i4215 = and i32 %shr.i.i4214, 7 + %rm.i4216 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4215, ptr %rm.i4216, align 4 + %shr.i5.i4217 = lshr i32 %insn, 7 + %and.i6.i4218 = and i32 %shr.i5.i4217, 31 + %rd.i4219 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4218, ptr %rd.i4219, align 4 + %shr.i7.i4220 = lshr i32 %insn, 15 + %and.i8.i4221 = and i32 %shr.i7.i4220, 31 + store i32 %and.i8.i4221, ptr %u, align 4 %call1731 = call fastcc zeroext i1 @trans_fcvt_w_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1731, label %return, label %sw.epilog3868 sw.bb1734: ; preds = %sw.bb1727 - %shr.i.i4240 = lshr i32 %insn, 12 - %and.i.i4241 = and i32 %shr.i.i4240, 7 - %rm.i4242 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4241, ptr %rm.i4242, align 4 - %shr.i5.i4243 = lshr i32 %insn, 7 - %and.i6.i4244 = and i32 %shr.i5.i4243, 31 - %rd.i4245 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4244, ptr %rd.i4245, align 4 - %shr.i7.i4246 = lshr i32 %insn, 15 - %and.i8.i4247 = and i32 %shr.i7.i4246, 31 - store i32 %and.i8.i4247, ptr %u, align 4 + %shr.i.i4222 = lshr i32 %insn, 12 + %and.i.i4223 = and i32 %shr.i.i4222, 7 + %rm.i4224 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4223, ptr %rm.i4224, align 4 + %shr.i5.i4225 = lshr i32 %insn, 7 + %and.i6.i4226 = and i32 %shr.i5.i4225, 31 + %rd.i4227 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4226, ptr %rd.i4227, align 4 + %shr.i7.i4228 = lshr i32 %insn, 15 + %and.i8.i4229 = and i32 %shr.i7.i4228, 31 + store i32 %and.i8.i4229, ptr %u, align 4 %call1735 = call fastcc zeroext i1 @trans_fcvt_wu_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1735, label %return, label %sw.epilog3868 sw.bb1738: ; preds = %sw.bb1727 - %shr.i.i4248 = lshr i32 %insn, 12 - %and.i.i4249 = and i32 %shr.i.i4248, 7 - %rm.i4250 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4249, ptr %rm.i4250, align 4 - %shr.i5.i4251 = lshr i32 %insn, 7 - %and.i6.i4252 = and i32 %shr.i5.i4251, 31 - %rd.i4253 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4252, ptr %rd.i4253, align 4 - %shr.i7.i4254 = lshr i32 %insn, 15 - %and.i8.i4255 = and i32 %shr.i7.i4254, 31 - store i32 %and.i8.i4255, ptr %u, align 4 + %shr.i.i4230 = lshr i32 %insn, 12 + %and.i.i4231 = and i32 %shr.i.i4230, 7 + %rm.i4232 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4231, ptr %rm.i4232, align 4 + %shr.i5.i4233 = lshr i32 %insn, 7 + %and.i6.i4234 = and i32 %shr.i5.i4233, 31 + %rd.i4235 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4234, ptr %rd.i4235, align 4 + %shr.i7.i4236 = lshr i32 %insn, 15 + %and.i8.i4237 = and i32 %shr.i7.i4236, 31 + store i32 %and.i8.i4237, ptr %u, align 4 %call1739 = call fastcc zeroext i1 @trans_fcvt_l_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1739, label %return, label %sw.epilog3868 sw.bb1742: ; preds = %sw.bb1727 - %shr.i.i4256 = lshr i32 %insn, 12 - %and.i.i4257 = and i32 %shr.i.i4256, 7 - %rm.i4258 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4257, ptr %rm.i4258, align 4 - %shr.i5.i4259 = lshr i32 %insn, 7 - %and.i6.i4260 = and i32 %shr.i5.i4259, 31 - %rd.i4261 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4260, ptr %rd.i4261, align 4 - %shr.i7.i4262 = lshr i32 %insn, 15 - %and.i8.i4263 = and i32 %shr.i7.i4262, 31 - store i32 %and.i8.i4263, ptr %u, align 4 + %shr.i.i4238 = lshr i32 %insn, 12 + %and.i.i4239 = and i32 %shr.i.i4238, 7 + %rm.i4240 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4239, ptr %rm.i4240, align 4 + %shr.i5.i4241 = lshr i32 %insn, 7 + %and.i6.i4242 = and i32 %shr.i5.i4241, 31 + %rd.i4243 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4242, ptr %rd.i4243, align 4 + %shr.i7.i4244 = lshr i32 %insn, 15 + %and.i8.i4245 = and i32 %shr.i7.i4244, 31 + store i32 %and.i8.i4245, ptr %u, align 4 %call1743 = call fastcc zeroext i1 @trans_fcvt_lu_d(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1743, label %return, label %sw.epilog3868 sw.bb1746: ; preds = %sw.bb1727 - %shr.i.i4264 = lshr i32 %insn, 7 - %and.i.i4265 = and i32 %shr.i.i4264, 31 - store i32 %and.i.i4265, ptr %u, align 4 - %shr.i3.i4266 = lshr i32 %insn, 15 - %and.i4.i4267 = and i32 %shr.i3.i4266, 31 - %rs1.i4268 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4267, ptr %rs1.i4268, align 4 + %shr.i.i4246 = lshr i32 %insn, 7 + %and.i.i4247 = and i32 %shr.i.i4246, 31 + store i32 %and.i.i4247, ptr %u, align 4 + %shr.i3.i4248 = lshr i32 %insn, 15 + %and.i4.i4249 = and i32 %shr.i3.i4248, 31 + %rs1.i4250 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4249, ptr %rs1.i4250, align 4 %192 = and i32 %insn, 28672 %cond29 = icmp eq i32 %192, 4096 br i1 %cond29, label %sw.bb1749, label %sw.epilog3868 @@ -12079,17 +12057,17 @@ sw.bb1749: ; preds = %sw.bb1746 br i1 %call1750, label %return, label %sw.epilog3868 sw.bb1755: ; preds = %sw.bb1376 - %shr.i.i4269 = lshr i32 %insn, 12 - %and.i.i4270 = and i32 %shr.i.i4269, 7 - %rm.i4271 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4270, ptr %rm.i4271, align 4 - %shr.i5.i4272 = lshr i32 %insn, 7 - %and.i6.i4273 = and i32 %shr.i5.i4272, 31 - %rd.i4274 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4273, ptr %rd.i4274, align 4 - %shr.i7.i4275 = lshr i32 %insn, 15 - %and.i8.i4276 = and i32 %shr.i7.i4275, 31 - store i32 %and.i8.i4276, ptr %u, align 4 + %shr.i.i4251 = lshr i32 %insn, 12 + %and.i.i4252 = and i32 %shr.i.i4251, 7 + %rm.i4253 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4252, ptr %rm.i4253, align 4 + %shr.i5.i4254 = lshr i32 %insn, 7 + %and.i6.i4255 = and i32 %shr.i5.i4254, 31 + %rd.i4256 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4255, ptr %rd.i4256, align 4 + %shr.i7.i4257 = lshr i32 %insn, 15 + %and.i8.i4258 = and i32 %shr.i7.i4257, 31 + store i32 %and.i8.i4258, ptr %u, align 4 %shr1756 = lshr i32 %insn, 20 %and1757 = and i32 %shr1756, 31 switch i32 %and1757, label %sw.epilog3868 [ @@ -12116,17 +12094,17 @@ sw.bb1770: ; preds = %sw.bb1755 br i1 %call1771, label %return, label %sw.epilog3868 sw.bb1775: ; preds = %sw.bb1376 - %shr.i.i4277 = lshr i32 %insn, 12 - %and.i.i4278 = and i32 %shr.i.i4277, 7 - %rm.i4279 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4278, ptr %rm.i4279, align 4 - %shr.i5.i4280 = lshr i32 %insn, 7 - %and.i6.i4281 = and i32 %shr.i5.i4280, 31 - %rd.i4282 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4281, ptr %rd.i4282, align 4 - %shr.i7.i4283 = lshr i32 %insn, 15 - %and.i8.i4284 = and i32 %shr.i7.i4283, 31 - store i32 %and.i8.i4284, ptr %u, align 4 + %shr.i.i4259 = lshr i32 %insn, 12 + %and.i.i4260 = and i32 %shr.i.i4259, 7 + %rm.i4261 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4260, ptr %rm.i4261, align 4 + %shr.i5.i4262 = lshr i32 %insn, 7 + %and.i6.i4263 = and i32 %shr.i5.i4262, 31 + %rd.i4264 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4263, ptr %rd.i4264, align 4 + %shr.i7.i4265 = lshr i32 %insn, 15 + %and.i8.i4266 = and i32 %shr.i7.i4265, 31 + store i32 %and.i8.i4266, ptr %u, align 4 %shr1776 = lshr i32 %insn, 20 %and1777 = and i32 %shr1776, 31 switch i32 %and1777, label %sw.epilog3868 [ @@ -12153,17 +12131,17 @@ sw.bb1790: ; preds = %sw.bb1775 br i1 %call1791, label %return, label %sw.epilog3868 sw.bb1795: ; preds = %sw.bb1376 - %shr.i.i4285 = lshr i32 %insn, 12 - %and.i.i4286 = and i32 %shr.i.i4285, 7 - %rm.i4287 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4286, ptr %rm.i4287, align 4 - %shr.i5.i4288 = lshr i32 %insn, 7 - %and.i6.i4289 = and i32 %shr.i5.i4288, 31 - %rd.i4290 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4289, ptr %rd.i4290, align 4 - %shr.i7.i4291 = lshr i32 %insn, 15 - %and.i8.i4292 = and i32 %shr.i7.i4291, 31 - store i32 %and.i8.i4292, ptr %u, align 4 + %shr.i.i4267 = lshr i32 %insn, 12 + %and.i.i4268 = and i32 %shr.i.i4267, 7 + %rm.i4269 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4268, ptr %rm.i4269, align 4 + %shr.i5.i4270 = lshr i32 %insn, 7 + %and.i6.i4271 = and i32 %shr.i5.i4270, 31 + %rd.i4272 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4271, ptr %rd.i4272, align 4 + %shr.i7.i4273 = lshr i32 %insn, 15 + %and.i8.i4274 = and i32 %shr.i7.i4273, 31 + store i32 %and.i8.i4274, ptr %u, align 4 %shr1796 = lshr i32 %insn, 20 %and1797 = and i32 %shr1796, 31 switch i32 %and1797, label %sw.epilog3868 [ @@ -12190,17 +12168,17 @@ sw.bb1810: ; preds = %sw.bb1795 br i1 %call1811, label %return, label %sw.epilog3868 sw.bb1815: ; preds = %sw.bb1376 - %shr.i.i4293 = lshr i32 %insn, 12 - %and.i.i4294 = and i32 %shr.i.i4293, 7 - %rm.i4295 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 - store i32 %and.i.i4294, ptr %rm.i4295, align 4 - %shr.i5.i4296 = lshr i32 %insn, 7 - %and.i6.i4297 = and i32 %shr.i5.i4296, 31 - %rd.i4298 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 - store i32 %and.i6.i4297, ptr %rd.i4298, align 4 - %shr.i7.i4299 = lshr i32 %insn, 15 - %and.i8.i4300 = and i32 %shr.i7.i4299, 31 - store i32 %and.i8.i4300, ptr %u, align 4 + %shr.i.i4275 = lshr i32 %insn, 12 + %and.i.i4276 = and i32 %shr.i.i4275, 7 + %rm.i4277 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 1 + store i32 %and.i.i4276, ptr %rm.i4277, align 4 + %shr.i5.i4278 = lshr i32 %insn, 7 + %and.i6.i4279 = and i32 %shr.i5.i4278, 31 + %rd.i4280 = getelementptr inbounds %struct.arg_decode_insn3219, ptr %u, i64 0, i32 2 + store i32 %and.i6.i4279, ptr %rd.i4280, align 4 + %shr.i7.i4281 = lshr i32 %insn, 15 + %and.i8.i4282 = and i32 %shr.i7.i4281, 31 + store i32 %and.i8.i4282, ptr %u, align 4 %shr1816 = lshr i32 %insn, 20 %and1817 = and i32 %shr1816, 31 switch i32 %and1817, label %sw.epilog3868 [ @@ -12227,13 +12205,13 @@ sw.bb1830: ; preds = %sw.bb1815 br i1 %call1831, label %return, label %sw.epilog3868 sw.bb1835: ; preds = %sw.bb1376 - %shr.i.i4301 = lshr i32 %insn, 7 - %and.i.i4302 = and i32 %shr.i.i4301, 31 - store i32 %and.i.i4302, ptr %u, align 4 - %shr.i3.i4303 = lshr i32 %insn, 15 - %and.i4.i4304 = and i32 %shr.i3.i4303, 31 - %rs1.i4305 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4304, ptr %rs1.i4305, align 4 + %shr.i.i4283 = lshr i32 %insn, 7 + %and.i.i4284 = and i32 %shr.i.i4283, 31 + store i32 %and.i.i4284, ptr %u, align 4 + %shr.i3.i4285 = lshr i32 %insn, 15 + %and.i4.i4286 = and i32 %shr.i3.i4285, 31 + %rs1.i4287 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4286, ptr %rs1.i4287, align 4 %and1836 = and i32 %insn, 32534528 switch i32 %and1836, label %sw.epilog3868 [ i32 0, label %sw.bb1837 @@ -12249,13 +12227,13 @@ sw.bb1841: ; preds = %sw.bb1835 br i1 %call1842, label %return, label %sw.epilog3868 sw.bb1846: ; preds = %sw.bb1376 - %shr.i.i4306 = lshr i32 %insn, 7 - %and.i.i4307 = and i32 %shr.i.i4306, 31 - store i32 %and.i.i4307, ptr %u, align 4 - %shr.i3.i4308 = lshr i32 %insn, 15 - %and.i4.i4309 = and i32 %shr.i3.i4308, 31 - %rs1.i4310 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4309, ptr %rs1.i4310, align 4 + %shr.i.i4288 = lshr i32 %insn, 7 + %and.i.i4289 = and i32 %shr.i.i4288, 31 + store i32 %and.i.i4289, ptr %u, align 4 + %shr.i3.i4290 = lshr i32 %insn, 15 + %and.i4.i4291 = and i32 %shr.i3.i4290, 31 + %rs1.i4292 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4291, ptr %rs1.i4292, align 4 %and1847 = and i32 %insn, 32534528 switch i32 %and1847, label %sw.epilog3868 [ i32 0, label %sw.bb1848 @@ -12264,7 +12242,7 @@ sw.bb1846: ; preds = %sw.bb1376 ] sw.bb1848: ; preds = %sw.bb1846 - %call1849 = tail call fastcc zeroext i1 @trans_fmv_x_d(ptr noundef %ctx, i32 %and.i.i4307, i32 %and.i4.i4309) + %call1849 = tail call fastcc zeroext i1 @trans_fmv_x_d(ptr noundef %ctx, i32 %and.i.i4289, i32 %and.i4.i4291) br i1 %call1849, label %return, label %sw.epilog3868 sw.bb1852: ; preds = %sw.bb1846 @@ -12272,26 +12250,26 @@ sw.bb1852: ; preds = %sw.bb1846 br i1 %call1853, label %return, label %sw.epilog3868 sw.bb1856: ; preds = %sw.bb1846 - %mstatus_fs.i4311 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %193 = load i32, ptr %mstatus_fs.i4311, align 4 - %cmp.i4312 = icmp eq i32 %193, 0 - br i1 %cmp.i4312, label %if.then.i4313, label %sw.epilog3868 - -if.then.i4313: ; preds = %sw.bb1856 - %virt_enabled.i4314 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %194 = load i8, ptr %virt_enabled.i4314, align 1 + %mstatus_fs.i4293 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %193 = load i32, ptr %mstatus_fs.i4293, align 4 + %cmp.i4294 = icmp eq i32 %193, 0 + br i1 %cmp.i4294, label %if.then.i4295, label %sw.epilog3868 + +if.then.i4295: ; preds = %sw.bb1856 + %virt_enabled.i4296 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %194 = load i8, ptr %virt_enabled.i4296, align 1 %195 = and i8 %194, 1 - %tobool.not.i4315 = icmp eq i8 %195, 0 - br i1 %tobool.not.i4315, label %sw.epilog3868.sink.split, label %sw.epilog3868.sink.split.sink.split + %tobool.not.i4297 = icmp eq i8 %195, 0 + br i1 %tobool.not.i4297, label %sw.epilog3868.sink.split, label %sw.epilog3868.sink.split.sink.split sw.bb1861: ; preds = %sw.bb1376 - %shr.i.i4322 = lshr i32 %insn, 7 - %and.i.i4323 = and i32 %shr.i.i4322, 31 - store i32 %and.i.i4323, ptr %u, align 4 - %shr.i3.i4324 = lshr i32 %insn, 15 - %and.i4.i4325 = and i32 %shr.i3.i4324, 31 - %rs1.i4326 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4325, ptr %rs1.i4326, align 4 + %shr.i.i4304 = lshr i32 %insn, 7 + %and.i.i4305 = and i32 %shr.i.i4304, 31 + store i32 %and.i.i4305, ptr %u, align 4 + %shr.i3.i4306 = lshr i32 %insn, 15 + %and.i4.i4307 = and i32 %shr.i3.i4306, 31 + %rs1.i4308 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4307, ptr %rs1.i4308, align 4 %and1862 = and i32 %insn, 32534528 switch i32 %and1862, label %sw.epilog3868 [ i32 0, label %sw.bb1863 @@ -12307,13 +12285,13 @@ sw.bb1867: ; preds = %sw.bb1861 br i1 %call1868, label %return, label %sw.epilog3868 sw.bb1872: ; preds = %sw.bb1376 - %shr.i.i4327 = lshr i32 %insn, 7 - %and.i.i4328 = and i32 %shr.i.i4327, 31 - store i32 %and.i.i4328, ptr %u, align 4 - %shr.i3.i4329 = lshr i32 %insn, 15 - %and.i4.i4330 = and i32 %shr.i3.i4329, 31 - %rs1.i4331 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4330, ptr %rs1.i4331, align 4 + %shr.i.i4309 = lshr i32 %insn, 7 + %and.i.i4310 = and i32 %shr.i.i4309, 31 + store i32 %and.i.i4310, ptr %u, align 4 + %shr.i3.i4311 = lshr i32 %insn, 15 + %and.i4.i4312 = and i32 %shr.i3.i4311, 31 + %rs1.i4313 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4312, ptr %rs1.i4313, align 4 %and1873 = and i32 %insn, 32534528 switch i32 %and1873, label %sw.epilog3868 [ i32 0, label %sw.bb1874 @@ -12329,13 +12307,13 @@ sw.bb1878: ; preds = %sw.bb1872 br i1 %call1879, label %return, label %sw.epilog3868 sw.bb1883: ; preds = %sw.bb1376 - %shr.i.i4332 = lshr i32 %insn, 7 - %and.i.i4333 = and i32 %shr.i.i4332, 31 - store i32 %and.i.i4333, ptr %u, align 4 - %shr.i3.i4334 = lshr i32 %insn, 15 - %and.i4.i4335 = and i32 %shr.i3.i4334, 31 - %rs1.i4336 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4335, ptr %rs1.i4336, align 4 + %shr.i.i4314 = lshr i32 %insn, 7 + %and.i.i4315 = and i32 %shr.i.i4314, 31 + store i32 %and.i.i4315, ptr %u, align 4 + %shr.i3.i4316 = lshr i32 %insn, 15 + %and.i4.i4317 = and i32 %shr.i3.i4316, 31 + %rs1.i4318 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4317, ptr %rs1.i4318, align 4 %and1884 = and i32 %insn, 32534528 switch i32 %and1884, label %sw.epilog3868 [ i32 0, label %sw.bb1885 @@ -12343,7 +12321,7 @@ sw.bb1883: ; preds = %sw.bb1376 ] sw.bb1885: ; preds = %sw.bb1883 - %call1886 = tail call fastcc zeroext i1 @trans_fmv_d_x(ptr noundef %ctx, i32 %and.i.i4333, i32 %and.i4.i4335) + %call1886 = tail call fastcc zeroext i1 @trans_fmv_d_x(ptr noundef %ctx, i32 %and.i.i4315, i32 %and.i4.i4317) br i1 %call1886, label %return, label %sw.epilog3868 sw.bb1889: ; preds = %sw.bb1883 @@ -12351,13 +12329,13 @@ sw.bb1889: ; preds = %sw.bb1883 br i1 %call1890, label %return, label %sw.epilog3868 sw.bb1894: ; preds = %sw.bb1376 - %shr.i.i4337 = lshr i32 %insn, 7 - %and.i.i4338 = and i32 %shr.i.i4337, 31 - store i32 %and.i.i4338, ptr %u, align 4 - %shr.i3.i4339 = lshr i32 %insn, 15 - %and.i4.i4340 = and i32 %shr.i3.i4339, 31 - %rs1.i4341 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4340, ptr %rs1.i4341, align 4 + %shr.i.i4319 = lshr i32 %insn, 7 + %and.i.i4320 = and i32 %shr.i.i4319, 31 + store i32 %and.i.i4320, ptr %u, align 4 + %shr.i3.i4321 = lshr i32 %insn, 15 + %and.i4.i4322 = and i32 %shr.i3.i4321, 31 + %rs1.i4323 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4322, ptr %rs1.i4323, align 4 %and1895 = and i32 %insn, 32534528 switch i32 %and1895, label %sw.epilog3868 [ i32 0, label %sw.bb1896 @@ -12425,247 +12403,247 @@ sw.bb1908: ; preds = %sw.bb1906 ] sw.bb1911: ; preds = %sw.bb1908 - %shr.i.i4342 = lshr i32 %insn, 20 - %and.i.i4343 = and i32 %shr.i.i4342, 31 - %rs2.i4344 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4343, ptr %rs2.i4344, align 4 - %shr.i7.i4345 = lshr i32 %insn, 25 - %and.i8.i4346 = and i32 %shr.i7.i4345, 1 - store i32 %and.i8.i4346, ptr %u, align 4 - %shr.i9.i4347 = lshr i32 %insn, 7 - %and.i10.i4348 = and i32 %shr.i9.i4347, 31 - %rd.i4349 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4348, ptr %rd.i4349, align 4 - %shr.i11.i4350 = lshr i32 %insn, 15 - %and.i12.i4351 = and i32 %shr.i11.i4350, 31 - %rs1.i4352 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4351, ptr %rs1.i4352, align 4 + %shr.i.i4324 = lshr i32 %insn, 20 + %and.i.i4325 = and i32 %shr.i.i4324, 31 + %rs2.i4326 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4325, ptr %rs2.i4326, align 4 + %shr.i7.i4327 = lshr i32 %insn, 25 + %and.i8.i4328 = and i32 %shr.i7.i4327, 1 + store i32 %and.i8.i4328, ptr %u, align 4 + %shr.i9.i4329 = lshr i32 %insn, 7 + %and.i10.i4330 = and i32 %shr.i9.i4329, 31 + %rd.i4331 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4330, ptr %rd.i4331, align 4 + %shr.i11.i4332 = lshr i32 %insn, 15 + %and.i12.i4333 = and i32 %shr.i11.i4332, 31 + %rs1.i4334 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4333, ptr %rs1.i4334, align 4 %call1912 = call fastcc zeroext i1 @trans_vadd_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1912, label %return, label %sw.epilog3868 sw.bb1915: ; preds = %sw.bb1908 - %shr.i.i4353 = lshr i32 %insn, 20 - %and.i.i4354 = and i32 %shr.i.i4353, 31 - %rs2.i4355 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4354, ptr %rs2.i4355, align 4 - %shr.i7.i4356 = lshr i32 %insn, 25 - %and.i8.i4357 = and i32 %shr.i7.i4356, 1 - store i32 %and.i8.i4357, ptr %u, align 4 - %shr.i9.i4358 = lshr i32 %insn, 7 - %and.i10.i4359 = and i32 %shr.i9.i4358, 31 - %rd.i4360 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4359, ptr %rd.i4360, align 4 - %shr.i11.i4361 = lshr i32 %insn, 15 - %and.i12.i4362 = and i32 %shr.i11.i4361, 31 - %rs1.i4363 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4362, ptr %rs1.i4363, align 4 + %shr.i.i4335 = lshr i32 %insn, 20 + %and.i.i4336 = and i32 %shr.i.i4335, 31 + %rs2.i4337 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4336, ptr %rs2.i4337, align 4 + %shr.i7.i4338 = lshr i32 %insn, 25 + %and.i8.i4339 = and i32 %shr.i7.i4338, 1 + store i32 %and.i8.i4339, ptr %u, align 4 + %shr.i9.i4340 = lshr i32 %insn, 7 + %and.i10.i4341 = and i32 %shr.i9.i4340, 31 + %rd.i4342 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4341, ptr %rd.i4342, align 4 + %shr.i11.i4343 = lshr i32 %insn, 15 + %and.i12.i4344 = and i32 %shr.i11.i4343, 31 + %rs1.i4345 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4344, ptr %rs1.i4345, align 4 %call1916 = call fastcc zeroext i1 @trans_vandn_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1916, label %return, label %sw.epilog3868 sw.bb1919: ; preds = %sw.bb1908 - %shr.i.i4364 = lshr i32 %insn, 20 - %and.i.i4365 = and i32 %shr.i.i4364, 31 - %rs2.i4366 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4365, ptr %rs2.i4366, align 4 - %shr.i7.i4367 = lshr i32 %insn, 25 - %and.i8.i4368 = and i32 %shr.i7.i4367, 1 - store i32 %and.i8.i4368, ptr %u, align 4 - %shr.i9.i4369 = lshr i32 %insn, 7 - %and.i10.i4370 = and i32 %shr.i9.i4369, 31 - %rd.i4371 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4370, ptr %rd.i4371, align 4 - %shr.i11.i4372 = lshr i32 %insn, 15 - %and.i12.i4373 = and i32 %shr.i11.i4372, 31 - %rs1.i4374 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4373, ptr %rs1.i4374, align 4 + %shr.i.i4346 = lshr i32 %insn, 20 + %and.i.i4347 = and i32 %shr.i.i4346, 31 + %rs2.i4348 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4347, ptr %rs2.i4348, align 4 + %shr.i7.i4349 = lshr i32 %insn, 25 + %and.i8.i4350 = and i32 %shr.i7.i4349, 1 + store i32 %and.i8.i4350, ptr %u, align 4 + %shr.i9.i4351 = lshr i32 %insn, 7 + %and.i10.i4352 = and i32 %shr.i9.i4351, 31 + %rd.i4353 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4352, ptr %rd.i4353, align 4 + %shr.i11.i4354 = lshr i32 %insn, 15 + %and.i12.i4355 = and i32 %shr.i11.i4354, 31 + %rs1.i4356 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4355, ptr %rs1.i4356, align 4 %call1920 = call fastcc zeroext i1 @trans_vsub_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1920, label %return, label %sw.epilog3868 sw.bb1923: ; preds = %sw.bb1908 - %shr.i.i4375 = lshr i32 %insn, 20 - %and.i.i4376 = and i32 %shr.i.i4375, 31 - %rs2.i4377 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4376, ptr %rs2.i4377, align 4 - %shr.i7.i4378 = lshr i32 %insn, 25 - %and.i8.i4379 = and i32 %shr.i7.i4378, 1 - store i32 %and.i8.i4379, ptr %u, align 4 - %shr.i9.i4380 = lshr i32 %insn, 7 - %and.i10.i4381 = and i32 %shr.i9.i4380, 31 - %rd.i4382 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4381, ptr %rd.i4382, align 4 - %shr.i11.i4383 = lshr i32 %insn, 15 - %and.i12.i4384 = and i32 %shr.i11.i4383, 31 - %rs1.i4385 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4384, ptr %rs1.i4385, align 4 + %shr.i.i4357 = lshr i32 %insn, 20 + %and.i.i4358 = and i32 %shr.i.i4357, 31 + %rs2.i4359 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4358, ptr %rs2.i4359, align 4 + %shr.i7.i4360 = lshr i32 %insn, 25 + %and.i8.i4361 = and i32 %shr.i7.i4360, 1 + store i32 %and.i8.i4361, ptr %u, align 4 + %shr.i9.i4362 = lshr i32 %insn, 7 + %and.i10.i4363 = and i32 %shr.i9.i4362, 31 + %rd.i4364 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4363, ptr %rd.i4364, align 4 + %shr.i11.i4365 = lshr i32 %insn, 15 + %and.i12.i4366 = and i32 %shr.i11.i4365, 31 + %rs1.i4367 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4366, ptr %rs1.i4367, align 4 %call1924 = call fastcc zeroext i1 @trans_vminu_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1924, label %return, label %sw.epilog3868 sw.bb1927: ; preds = %sw.bb1908 - %shr.i.i4386 = lshr i32 %insn, 20 - %and.i.i4387 = and i32 %shr.i.i4386, 31 - %rs2.i4388 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4387, ptr %rs2.i4388, align 4 - %shr.i7.i4389 = lshr i32 %insn, 25 - %and.i8.i4390 = and i32 %shr.i7.i4389, 1 - store i32 %and.i8.i4390, ptr %u, align 4 - %shr.i9.i4391 = lshr i32 %insn, 7 - %and.i10.i4392 = and i32 %shr.i9.i4391, 31 - %rd.i4393 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4392, ptr %rd.i4393, align 4 - %shr.i11.i4394 = lshr i32 %insn, 15 - %and.i12.i4395 = and i32 %shr.i11.i4394, 31 - %rs1.i4396 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4395, ptr %rs1.i4396, align 4 + %shr.i.i4368 = lshr i32 %insn, 20 + %and.i.i4369 = and i32 %shr.i.i4368, 31 + %rs2.i4370 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4369, ptr %rs2.i4370, align 4 + %shr.i7.i4371 = lshr i32 %insn, 25 + %and.i8.i4372 = and i32 %shr.i7.i4371, 1 + store i32 %and.i8.i4372, ptr %u, align 4 + %shr.i9.i4373 = lshr i32 %insn, 7 + %and.i10.i4374 = and i32 %shr.i9.i4373, 31 + %rd.i4375 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4374, ptr %rd.i4375, align 4 + %shr.i11.i4376 = lshr i32 %insn, 15 + %and.i12.i4377 = and i32 %shr.i11.i4376, 31 + %rs1.i4378 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4377, ptr %rs1.i4378, align 4 %call1928 = call fastcc zeroext i1 @trans_vmin_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1928, label %return, label %sw.epilog3868 sw.bb1931: ; preds = %sw.bb1908 - %shr.i.i4397 = lshr i32 %insn, 20 - %and.i.i4398 = and i32 %shr.i.i4397, 31 - %rs2.i4399 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4398, ptr %rs2.i4399, align 4 - %shr.i7.i4400 = lshr i32 %insn, 25 - %and.i8.i4401 = and i32 %shr.i7.i4400, 1 - store i32 %and.i8.i4401, ptr %u, align 4 - %shr.i9.i4402 = lshr i32 %insn, 7 - %and.i10.i4403 = and i32 %shr.i9.i4402, 31 - %rd.i4404 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4403, ptr %rd.i4404, align 4 - %shr.i11.i4405 = lshr i32 %insn, 15 - %and.i12.i4406 = and i32 %shr.i11.i4405, 31 - %rs1.i4407 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4406, ptr %rs1.i4407, align 4 + %shr.i.i4379 = lshr i32 %insn, 20 + %and.i.i4380 = and i32 %shr.i.i4379, 31 + %rs2.i4381 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4380, ptr %rs2.i4381, align 4 + %shr.i7.i4382 = lshr i32 %insn, 25 + %and.i8.i4383 = and i32 %shr.i7.i4382, 1 + store i32 %and.i8.i4383, ptr %u, align 4 + %shr.i9.i4384 = lshr i32 %insn, 7 + %and.i10.i4385 = and i32 %shr.i9.i4384, 31 + %rd.i4386 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4385, ptr %rd.i4386, align 4 + %shr.i11.i4387 = lshr i32 %insn, 15 + %and.i12.i4388 = and i32 %shr.i11.i4387, 31 + %rs1.i4389 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4388, ptr %rs1.i4389, align 4 %call1932 = call fastcc zeroext i1 @trans_vmaxu_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1932, label %return, label %sw.epilog3868 sw.bb1935: ; preds = %sw.bb1908 - %shr.i.i4408 = lshr i32 %insn, 20 - %and.i.i4409 = and i32 %shr.i.i4408, 31 - %rs2.i4410 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4409, ptr %rs2.i4410, align 4 - %shr.i7.i4411 = lshr i32 %insn, 25 - %and.i8.i4412 = and i32 %shr.i7.i4411, 1 - store i32 %and.i8.i4412, ptr %u, align 4 - %shr.i9.i4413 = lshr i32 %insn, 7 - %and.i10.i4414 = and i32 %shr.i9.i4413, 31 - %rd.i4415 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4414, ptr %rd.i4415, align 4 - %shr.i11.i4416 = lshr i32 %insn, 15 - %and.i12.i4417 = and i32 %shr.i11.i4416, 31 - %rs1.i4418 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4417, ptr %rs1.i4418, align 4 + %shr.i.i4390 = lshr i32 %insn, 20 + %and.i.i4391 = and i32 %shr.i.i4390, 31 + %rs2.i4392 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4391, ptr %rs2.i4392, align 4 + %shr.i7.i4393 = lshr i32 %insn, 25 + %and.i8.i4394 = and i32 %shr.i7.i4393, 1 + store i32 %and.i8.i4394, ptr %u, align 4 + %shr.i9.i4395 = lshr i32 %insn, 7 + %and.i10.i4396 = and i32 %shr.i9.i4395, 31 + %rd.i4397 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4396, ptr %rd.i4397, align 4 + %shr.i11.i4398 = lshr i32 %insn, 15 + %and.i12.i4399 = and i32 %shr.i11.i4398, 31 + %rs1.i4400 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4399, ptr %rs1.i4400, align 4 %call1936 = call fastcc zeroext i1 @trans_vmax_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1936, label %return, label %sw.epilog3868 sw.bb1939: ; preds = %sw.bb1908 - %shr.i.i4419 = lshr i32 %insn, 20 - %and.i.i4420 = and i32 %shr.i.i4419, 31 - %rs2.i4421 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4420, ptr %rs2.i4421, align 4 - %shr.i7.i4422 = lshr i32 %insn, 25 - %and.i8.i4423 = and i32 %shr.i7.i4422, 1 - store i32 %and.i8.i4423, ptr %u, align 4 - %shr.i9.i4424 = lshr i32 %insn, 7 - %and.i10.i4425 = and i32 %shr.i9.i4424, 31 - %rd.i4426 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4425, ptr %rd.i4426, align 4 - %shr.i11.i4427 = lshr i32 %insn, 15 - %and.i12.i4428 = and i32 %shr.i11.i4427, 31 - %rs1.i4429 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4428, ptr %rs1.i4429, align 4 + %shr.i.i4401 = lshr i32 %insn, 20 + %and.i.i4402 = and i32 %shr.i.i4401, 31 + %rs2.i4403 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4402, ptr %rs2.i4403, align 4 + %shr.i7.i4404 = lshr i32 %insn, 25 + %and.i8.i4405 = and i32 %shr.i7.i4404, 1 + store i32 %and.i8.i4405, ptr %u, align 4 + %shr.i9.i4406 = lshr i32 %insn, 7 + %and.i10.i4407 = and i32 %shr.i9.i4406, 31 + %rd.i4408 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4407, ptr %rd.i4408, align 4 + %shr.i11.i4409 = lshr i32 %insn, 15 + %and.i12.i4410 = and i32 %shr.i11.i4409, 31 + %rs1.i4411 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4410, ptr %rs1.i4411, align 4 %call1940 = call fastcc zeroext i1 @trans_vand_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1940, label %return, label %sw.epilog3868 sw.bb1943: ; preds = %sw.bb1908 - %shr.i.i4430 = lshr i32 %insn, 20 - %and.i.i4431 = and i32 %shr.i.i4430, 31 - %rs2.i4432 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4431, ptr %rs2.i4432, align 4 - %shr.i7.i4433 = lshr i32 %insn, 25 - %and.i8.i4434 = and i32 %shr.i7.i4433, 1 - store i32 %and.i8.i4434, ptr %u, align 4 - %shr.i9.i4435 = lshr i32 %insn, 7 - %and.i10.i4436 = and i32 %shr.i9.i4435, 31 - %rd.i4437 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4436, ptr %rd.i4437, align 4 - %shr.i11.i4438 = lshr i32 %insn, 15 - %and.i12.i4439 = and i32 %shr.i11.i4438, 31 - %rs1.i4440 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4439, ptr %rs1.i4440, align 4 + %shr.i.i4412 = lshr i32 %insn, 20 + %and.i.i4413 = and i32 %shr.i.i4412, 31 + %rs2.i4414 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4413, ptr %rs2.i4414, align 4 + %shr.i7.i4415 = lshr i32 %insn, 25 + %and.i8.i4416 = and i32 %shr.i7.i4415, 1 + store i32 %and.i8.i4416, ptr %u, align 4 + %shr.i9.i4417 = lshr i32 %insn, 7 + %and.i10.i4418 = and i32 %shr.i9.i4417, 31 + %rd.i4419 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4418, ptr %rd.i4419, align 4 + %shr.i11.i4420 = lshr i32 %insn, 15 + %and.i12.i4421 = and i32 %shr.i11.i4420, 31 + %rs1.i4422 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4421, ptr %rs1.i4422, align 4 %call1944 = call fastcc zeroext i1 @trans_vor_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1944, label %return, label %sw.epilog3868 sw.bb1947: ; preds = %sw.bb1908 - %shr.i.i4441 = lshr i32 %insn, 20 - %and.i.i4442 = and i32 %shr.i.i4441, 31 - %rs2.i4443 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4442, ptr %rs2.i4443, align 4 - %shr.i7.i4444 = lshr i32 %insn, 25 - %and.i8.i4445 = and i32 %shr.i7.i4444, 1 - store i32 %and.i8.i4445, ptr %u, align 4 - %shr.i9.i4446 = lshr i32 %insn, 7 - %and.i10.i4447 = and i32 %shr.i9.i4446, 31 - %rd.i4448 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4447, ptr %rd.i4448, align 4 - %shr.i11.i4449 = lshr i32 %insn, 15 - %and.i12.i4450 = and i32 %shr.i11.i4449, 31 - %rs1.i4451 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4450, ptr %rs1.i4451, align 4 + %shr.i.i4423 = lshr i32 %insn, 20 + %and.i.i4424 = and i32 %shr.i.i4423, 31 + %rs2.i4425 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4424, ptr %rs2.i4425, align 4 + %shr.i7.i4426 = lshr i32 %insn, 25 + %and.i8.i4427 = and i32 %shr.i7.i4426, 1 + store i32 %and.i8.i4427, ptr %u, align 4 + %shr.i9.i4428 = lshr i32 %insn, 7 + %and.i10.i4429 = and i32 %shr.i9.i4428, 31 + %rd.i4430 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4429, ptr %rd.i4430, align 4 + %shr.i11.i4431 = lshr i32 %insn, 15 + %and.i12.i4432 = and i32 %shr.i11.i4431, 31 + %rs1.i4433 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4432, ptr %rs1.i4433, align 4 %call1948 = call fastcc zeroext i1 @trans_vxor_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1948, label %return, label %sw.epilog3868 sw.bb1951: ; preds = %sw.bb1908 - %shr.i.i4452 = lshr i32 %insn, 20 - %and.i.i4453 = and i32 %shr.i.i4452, 31 - %rs2.i4454 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4453, ptr %rs2.i4454, align 4 - %shr.i7.i4455 = lshr i32 %insn, 25 - %and.i8.i4456 = and i32 %shr.i7.i4455, 1 - store i32 %and.i8.i4456, ptr %u, align 4 - %shr.i9.i4457 = lshr i32 %insn, 7 - %and.i10.i4458 = and i32 %shr.i9.i4457, 31 - %rd.i4459 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4458, ptr %rd.i4459, align 4 - %shr.i11.i4460 = lshr i32 %insn, 15 - %and.i12.i4461 = and i32 %shr.i11.i4460, 31 - %rs1.i4462 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4461, ptr %rs1.i4462, align 4 + %shr.i.i4434 = lshr i32 %insn, 20 + %and.i.i4435 = and i32 %shr.i.i4434, 31 + %rs2.i4436 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4435, ptr %rs2.i4436, align 4 + %shr.i7.i4437 = lshr i32 %insn, 25 + %and.i8.i4438 = and i32 %shr.i7.i4437, 1 + store i32 %and.i8.i4438, ptr %u, align 4 + %shr.i9.i4439 = lshr i32 %insn, 7 + %and.i10.i4440 = and i32 %shr.i9.i4439, 31 + %rd.i4441 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4440, ptr %rd.i4441, align 4 + %shr.i11.i4442 = lshr i32 %insn, 15 + %and.i12.i4443 = and i32 %shr.i11.i4442, 31 + %rs1.i4444 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4443, ptr %rs1.i4444, align 4 %call1952 = call fastcc zeroext i1 @trans_vrgather_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1952, label %return, label %sw.epilog3868 sw.bb1955: ; preds = %sw.bb1908 - %shr.i.i4463 = lshr i32 %insn, 20 - %and.i.i4464 = and i32 %shr.i.i4463, 31 - %rs2.i4465 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4464, ptr %rs2.i4465, align 4 - %shr.i7.i4466 = lshr i32 %insn, 25 - %and.i8.i4467 = and i32 %shr.i7.i4466, 1 - store i32 %and.i8.i4467, ptr %u, align 4 - %shr.i9.i4468 = lshr i32 %insn, 7 - %and.i10.i4469 = and i32 %shr.i9.i4468, 31 - %rd.i4470 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4469, ptr %rd.i4470, align 4 - %shr.i11.i4471 = lshr i32 %insn, 15 - %and.i12.i4472 = and i32 %shr.i11.i4471, 31 - %rs1.i4473 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4472, ptr %rs1.i4473, align 4 + %shr.i.i4445 = lshr i32 %insn, 20 + %and.i.i4446 = and i32 %shr.i.i4445, 31 + %rs2.i4447 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4446, ptr %rs2.i4447, align 4 + %shr.i7.i4448 = lshr i32 %insn, 25 + %and.i8.i4449 = and i32 %shr.i7.i4448, 1 + store i32 %and.i8.i4449, ptr %u, align 4 + %shr.i9.i4450 = lshr i32 %insn, 7 + %and.i10.i4451 = and i32 %shr.i9.i4450, 31 + %rd.i4452 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4451, ptr %rd.i4452, align 4 + %shr.i11.i4453 = lshr i32 %insn, 15 + %and.i12.i4454 = and i32 %shr.i11.i4453, 31 + %rs1.i4455 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4454, ptr %rs1.i4455, align 4 %call1956 = call fastcc zeroext i1 @trans_vrgatherei16_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1956, label %return, label %sw.epilog3868 sw.bb1959: ; preds = %sw.bb1908 - %shr.i.i4474 = lshr i32 %insn, 20 - %and.i.i4475 = and i32 %shr.i.i4474, 31 - %rs2.i4476 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4475, ptr %rs2.i4476, align 4 + %shr.i.i4456 = lshr i32 %insn, 20 + %and.i.i4457 = and i32 %shr.i.i4456, 31 + %rs2.i4458 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4457, ptr %rs2.i4458, align 4 store i32 1, ptr %u, align 4 - %shr.i6.i4477 = lshr i32 %insn, 7 - %and.i7.i4478 = and i32 %shr.i6.i4477, 31 - %rd.i4479 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i4478, ptr %rd.i4479, align 4 - %shr.i8.i4480 = lshr i32 %insn, 15 - %and.i9.i4481 = and i32 %shr.i8.i4480, 31 - %rs1.i4482 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i4481, ptr %rs1.i4482, align 4 + %shr.i6.i4459 = lshr i32 %insn, 7 + %and.i7.i4460 = and i32 %shr.i6.i4459, 31 + %rd.i4461 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i4460, ptr %rd.i4461, align 4 + %shr.i8.i4462 = lshr i32 %insn, 15 + %and.i9.i4463 = and i32 %shr.i8.i4462, 31 + %rs1.i4464 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i4463, ptr %rs1.i4464, align 4 %196 = and i32 %insn, 33554432 %cond28 = icmp eq i32 %196, 0 br i1 %cond28, label %sw.bb1962, label %sw.epilog3868 @@ -12675,38 +12653,38 @@ sw.bb1962: ; preds = %sw.bb1959 br i1 %call1963, label %return, label %sw.epilog3868 sw.bb1967: ; preds = %sw.bb1908 - %shr.i.i4483 = lshr i32 %insn, 20 - %and.i.i4484 = and i32 %shr.i.i4483, 31 - %rs2.i4485 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4484, ptr %rs2.i4485, align 4 - %shr.i7.i4486 = lshr i32 %insn, 25 - %and.i8.i4487 = and i32 %shr.i7.i4486, 1 - store i32 %and.i8.i4487, ptr %u, align 4 - %shr.i9.i4488 = lshr i32 %insn, 7 - %and.i10.i4489 = and i32 %shr.i9.i4488, 31 - %rd.i4490 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4489, ptr %rd.i4490, align 4 - %shr.i11.i4491 = lshr i32 %insn, 15 - %and.i12.i4492 = and i32 %shr.i11.i4491, 31 - %rs1.i4493 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4492, ptr %rs1.i4493, align 4 + %shr.i.i4465 = lshr i32 %insn, 20 + %and.i.i4466 = and i32 %shr.i.i4465, 31 + %rs2.i4467 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4466, ptr %rs2.i4467, align 4 + %shr.i7.i4468 = lshr i32 %insn, 25 + %and.i8.i4469 = and i32 %shr.i7.i4468, 1 + store i32 %and.i8.i4469, ptr %u, align 4 + %shr.i9.i4470 = lshr i32 %insn, 7 + %and.i10.i4471 = and i32 %shr.i9.i4470, 31 + %rd.i4472 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4471, ptr %rd.i4472, align 4 + %shr.i11.i4473 = lshr i32 %insn, 15 + %and.i12.i4474 = and i32 %shr.i11.i4473, 31 + %rs1.i4475 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4474, ptr %rs1.i4475, align 4 %call1968 = call fastcc zeroext i1 @trans_vmadc_vvm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1968, label %return, label %sw.epilog3868 sw.bb1971: ; preds = %sw.bb1908 - %shr.i.i4494 = lshr i32 %insn, 20 - %and.i.i4495 = and i32 %shr.i.i4494, 31 - %rs2.i4496 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4495, ptr %rs2.i4496, align 4 + %shr.i.i4476 = lshr i32 %insn, 20 + %and.i.i4477 = and i32 %shr.i.i4476, 31 + %rs2.i4478 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4477, ptr %rs2.i4478, align 4 store i32 1, ptr %u, align 4 - %shr.i6.i4497 = lshr i32 %insn, 7 - %and.i7.i4498 = and i32 %shr.i6.i4497, 31 - %rd.i4499 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i4498, ptr %rd.i4499, align 4 - %shr.i8.i4500 = lshr i32 %insn, 15 - %and.i9.i4501 = and i32 %shr.i8.i4500, 31 - %rs1.i4502 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i4501, ptr %rs1.i4502, align 4 + %shr.i6.i4479 = lshr i32 %insn, 7 + %and.i7.i4480 = and i32 %shr.i6.i4479, 31 + %rd.i4481 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i4480, ptr %rd.i4481, align 4 + %shr.i8.i4482 = lshr i32 %insn, 15 + %and.i9.i4483 = and i32 %shr.i8.i4482, 31 + %rs1.i4484 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i4483, ptr %rs1.i4484, align 4 %197 = and i32 %insn, 33554432 %cond27 = icmp eq i32 %197, 0 br i1 %cond27, label %sw.bb1974, label %sw.epilog3868 @@ -12716,59 +12694,59 @@ sw.bb1974: ; preds = %sw.bb1971 br i1 %call1975, label %return, label %sw.epilog3868 sw.bb1979: ; preds = %sw.bb1908 - %shr.i.i4503 = lshr i32 %insn, 20 - %and.i.i4504 = and i32 %shr.i.i4503, 31 - %rs2.i4505 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4504, ptr %rs2.i4505, align 4 - %shr.i7.i4506 = lshr i32 %insn, 25 - %and.i8.i4507 = and i32 %shr.i7.i4506, 1 - store i32 %and.i8.i4507, ptr %u, align 4 - %shr.i9.i4508 = lshr i32 %insn, 7 - %and.i10.i4509 = and i32 %shr.i9.i4508, 31 - %rd.i4510 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4509, ptr %rd.i4510, align 4 - %shr.i11.i4511 = lshr i32 %insn, 15 - %and.i12.i4512 = and i32 %shr.i11.i4511, 31 - %rs1.i4513 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4512, ptr %rs1.i4513, align 4 + %shr.i.i4485 = lshr i32 %insn, 20 + %and.i.i4486 = and i32 %shr.i.i4485, 31 + %rs2.i4487 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4486, ptr %rs2.i4487, align 4 + %shr.i7.i4488 = lshr i32 %insn, 25 + %and.i8.i4489 = and i32 %shr.i7.i4488, 1 + store i32 %and.i8.i4489, ptr %u, align 4 + %shr.i9.i4490 = lshr i32 %insn, 7 + %and.i10.i4491 = and i32 %shr.i9.i4490, 31 + %rd.i4492 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4491, ptr %rd.i4492, align 4 + %shr.i11.i4493 = lshr i32 %insn, 15 + %and.i12.i4494 = and i32 %shr.i11.i4493, 31 + %rs1.i4495 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4494, ptr %rs1.i4495, align 4 %call1980 = call fastcc zeroext i1 @trans_vmsbc_vvm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1980, label %return, label %sw.epilog3868 sw.bb1983: ; preds = %sw.bb1908 - %shr.i.i4514 = lshr i32 %insn, 20 - %and.i.i4515 = and i32 %shr.i.i4514, 31 - %rs2.i4516 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4515, ptr %rs2.i4516, align 4 - %shr.i7.i4517 = lshr i32 %insn, 25 - %and.i8.i4518 = and i32 %shr.i7.i4517, 1 - store i32 %and.i8.i4518, ptr %u, align 4 - %shr.i9.i4519 = lshr i32 %insn, 7 - %and.i10.i4520 = and i32 %shr.i9.i4519, 31 - %rd.i4521 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4520, ptr %rd.i4521, align 4 - %shr.i11.i4522 = lshr i32 %insn, 15 - %and.i12.i4523 = and i32 %shr.i11.i4522, 31 - %rs1.i4524 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4523, ptr %rs1.i4524, align 4 + %shr.i.i4496 = lshr i32 %insn, 20 + %and.i.i4497 = and i32 %shr.i.i4496, 31 + %rs2.i4498 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4497, ptr %rs2.i4498, align 4 + %shr.i7.i4499 = lshr i32 %insn, 25 + %and.i8.i4500 = and i32 %shr.i7.i4499, 1 + store i32 %and.i8.i4500, ptr %u, align 4 + %shr.i9.i4501 = lshr i32 %insn, 7 + %and.i10.i4502 = and i32 %shr.i9.i4501, 31 + %rd.i4503 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4502, ptr %rd.i4503, align 4 + %shr.i11.i4504 = lshr i32 %insn, 15 + %and.i12.i4505 = and i32 %shr.i11.i4504, 31 + %rs1.i4506 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4505, ptr %rs1.i4506, align 4 %call1984 = call fastcc zeroext i1 @trans_vror_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1984, label %return, label %sw.epilog3868 sw.bb1987: ; preds = %sw.bb1908 - %shr.i.i4525 = lshr i32 %insn, 20 - %and.i.i4526 = and i32 %shr.i.i4525, 31 - %rs2.i4527 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4526, ptr %rs2.i4527, align 4 - %shr.i7.i4528 = lshr i32 %insn, 25 - %and.i8.i4529 = and i32 %shr.i7.i4528, 1 - store i32 %and.i8.i4529, ptr %u, align 4 - %shr.i9.i4530 = lshr i32 %insn, 7 - %and.i10.i4531 = and i32 %shr.i9.i4530, 31 - %rd.i4532 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4531, ptr %rd.i4532, align 4 - %shr.i11.i4533 = lshr i32 %insn, 15 - %and.i12.i4534 = and i32 %shr.i11.i4533, 31 - %rs1.i4535 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4534, ptr %rs1.i4535, align 4 + %shr.i.i4507 = lshr i32 %insn, 20 + %and.i.i4508 = and i32 %shr.i.i4507, 31 + %rs2.i4509 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4508, ptr %rs2.i4509, align 4 + %shr.i7.i4510 = lshr i32 %insn, 25 + %and.i8.i4511 = and i32 %shr.i7.i4510, 1 + store i32 %and.i8.i4511, ptr %u, align 4 + %shr.i9.i4512 = lshr i32 %insn, 7 + %and.i10.i4513 = and i32 %shr.i9.i4512, 31 + %rd.i4514 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4513, ptr %rd.i4514, align 4 + %shr.i11.i4515 = lshr i32 %insn, 15 + %and.i12.i4516 = and i32 %shr.i11.i4515, 31 + %rs1.i4517 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4516, ptr %rs1.i4517, align 4 %call1988 = call fastcc zeroext i1 @trans_vrol_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1988, label %return, label %sw.epilog3868 @@ -12778,30 +12756,30 @@ sw.bb1991: ; preds = %sw.bb1908 br i1 %trunc1934.not, label %sw.bb1994, label %sw.bb1998 sw.bb1994: ; preds = %sw.bb1991 - %shr.i.i4536 = lshr i32 %insn, 20 - %and.i.i4537 = and i32 %shr.i.i4536, 31 - %rs2.i4538 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4537, ptr %rs2.i4538, align 4 + %shr.i.i4518 = lshr i32 %insn, 20 + %and.i.i4519 = and i32 %shr.i.i4518, 31 + %rs2.i4520 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4519, ptr %rs2.i4520, align 4 store i32 0, ptr %u, align 4 - %shr.i6.i4539 = lshr i32 %insn, 7 - %and.i7.i4540 = and i32 %shr.i6.i4539, 31 - %rd.i4541 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i4540, ptr %rd.i4541, align 4 - %shr.i8.i4542 = lshr i32 %insn, 15 - %and.i9.i4543 = and i32 %shr.i8.i4542, 31 - %rs1.i4544 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i4543, ptr %rs1.i4544, align 4 + %shr.i6.i4521 = lshr i32 %insn, 7 + %and.i7.i4522 = and i32 %shr.i6.i4521, 31 + %rd.i4523 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i4522, ptr %rd.i4523, align 4 + %shr.i8.i4524 = lshr i32 %insn, 15 + %and.i9.i4525 = and i32 %shr.i8.i4524, 31 + %rs1.i4526 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i4525, ptr %rs1.i4526, align 4 %call1995 = call fastcc zeroext i1 @trans_vmerge_vvm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call1995, label %return, label %sw.epilog3868 sw.bb1998: ; preds = %sw.bb1991 - %shr.i.i4545 = lshr i32 %insn, 7 - %and.i.i4546 = and i32 %shr.i.i4545, 31 - store i32 %and.i.i4546, ptr %u, align 4 - %shr.i3.i4547 = lshr i32 %insn, 15 - %and.i4.i4548 = and i32 %shr.i3.i4547, 31 - %rs1.i4549 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4548, ptr %rs1.i4549, align 4 + %shr.i.i4527 = lshr i32 %insn, 7 + %and.i.i4528 = and i32 %shr.i.i4527, 31 + store i32 %and.i.i4528, ptr %u, align 4 + %shr.i3.i4529 = lshr i32 %insn, 15 + %and.i4.i4530 = and i32 %shr.i3.i4529, 31 + %rs1.i4531 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4530, ptr %rs1.i4531, align 4 %199 = and i32 %insn, 32505856 %cond26 = icmp eq i32 %199, 0 br i1 %cond26, label %sw.bb2001, label %sw.epilog3868 @@ -12811,116 +12789,116 @@ sw.bb2001: ; preds = %sw.bb1998 br i1 %call2002, label %return, label %sw.epilog3868 sw.bb2007: ; preds = %sw.bb1908 - %shr.i.i4550 = lshr i32 %insn, 20 - %and.i.i4551 = and i32 %shr.i.i4550, 31 - %rs2.i4552 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4551, ptr %rs2.i4552, align 4 - %shr.i7.i4553 = lshr i32 %insn, 25 - %and.i8.i4554 = and i32 %shr.i7.i4553, 1 - store i32 %and.i8.i4554, ptr %u, align 4 - %shr.i9.i4555 = lshr i32 %insn, 7 - %and.i10.i4556 = and i32 %shr.i9.i4555, 31 - %rd.i4557 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4556, ptr %rd.i4557, align 4 - %shr.i11.i4558 = lshr i32 %insn, 15 - %and.i12.i4559 = and i32 %shr.i11.i4558, 31 - %rs1.i4560 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4559, ptr %rs1.i4560, align 4 + %shr.i.i4532 = lshr i32 %insn, 20 + %and.i.i4533 = and i32 %shr.i.i4532, 31 + %rs2.i4534 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4533, ptr %rs2.i4534, align 4 + %shr.i7.i4535 = lshr i32 %insn, 25 + %and.i8.i4536 = and i32 %shr.i7.i4535, 1 + store i32 %and.i8.i4536, ptr %u, align 4 + %shr.i9.i4537 = lshr i32 %insn, 7 + %and.i10.i4538 = and i32 %shr.i9.i4537, 31 + %rd.i4539 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4538, ptr %rd.i4539, align 4 + %shr.i11.i4540 = lshr i32 %insn, 15 + %and.i12.i4541 = and i32 %shr.i11.i4540, 31 + %rs1.i4542 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4541, ptr %rs1.i4542, align 4 %call2008 = call fastcc zeroext i1 @trans_vmseq_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2008, label %return, label %sw.epilog3868 sw.bb2011: ; preds = %sw.bb1908 - %shr.i.i4561 = lshr i32 %insn, 20 - %and.i.i4562 = and i32 %shr.i.i4561, 31 - %rs2.i4563 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4562, ptr %rs2.i4563, align 4 - %shr.i7.i4564 = lshr i32 %insn, 25 - %and.i8.i4565 = and i32 %shr.i7.i4564, 1 - store i32 %and.i8.i4565, ptr %u, align 4 - %shr.i9.i4566 = lshr i32 %insn, 7 - %and.i10.i4567 = and i32 %shr.i9.i4566, 31 - %rd.i4568 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4567, ptr %rd.i4568, align 4 - %shr.i11.i4569 = lshr i32 %insn, 15 - %and.i12.i4570 = and i32 %shr.i11.i4569, 31 - %rs1.i4571 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4570, ptr %rs1.i4571, align 4 + %shr.i.i4543 = lshr i32 %insn, 20 + %and.i.i4544 = and i32 %shr.i.i4543, 31 + %rs2.i4545 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4544, ptr %rs2.i4545, align 4 + %shr.i7.i4546 = lshr i32 %insn, 25 + %and.i8.i4547 = and i32 %shr.i7.i4546, 1 + store i32 %and.i8.i4547, ptr %u, align 4 + %shr.i9.i4548 = lshr i32 %insn, 7 + %and.i10.i4549 = and i32 %shr.i9.i4548, 31 + %rd.i4550 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4549, ptr %rd.i4550, align 4 + %shr.i11.i4551 = lshr i32 %insn, 15 + %and.i12.i4552 = and i32 %shr.i11.i4551, 31 + %rs1.i4553 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4552, ptr %rs1.i4553, align 4 %call2012 = call fastcc zeroext i1 @trans_vmsne_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2012, label %return, label %sw.epilog3868 sw.bb2015: ; preds = %sw.bb1908 - %shr.i.i4572 = lshr i32 %insn, 20 - %and.i.i4573 = and i32 %shr.i.i4572, 31 - %rs2.i4574 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4573, ptr %rs2.i4574, align 4 - %shr.i7.i4575 = lshr i32 %insn, 25 - %and.i8.i4576 = and i32 %shr.i7.i4575, 1 - store i32 %and.i8.i4576, ptr %u, align 4 - %shr.i9.i4577 = lshr i32 %insn, 7 - %and.i10.i4578 = and i32 %shr.i9.i4577, 31 - %rd.i4579 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4578, ptr %rd.i4579, align 4 - %shr.i11.i4580 = lshr i32 %insn, 15 - %and.i12.i4581 = and i32 %shr.i11.i4580, 31 - %rs1.i4582 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4581, ptr %rs1.i4582, align 4 + %shr.i.i4554 = lshr i32 %insn, 20 + %and.i.i4555 = and i32 %shr.i.i4554, 31 + %rs2.i4556 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4555, ptr %rs2.i4556, align 4 + %shr.i7.i4557 = lshr i32 %insn, 25 + %and.i8.i4558 = and i32 %shr.i7.i4557, 1 + store i32 %and.i8.i4558, ptr %u, align 4 + %shr.i9.i4559 = lshr i32 %insn, 7 + %and.i10.i4560 = and i32 %shr.i9.i4559, 31 + %rd.i4561 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4560, ptr %rd.i4561, align 4 + %shr.i11.i4562 = lshr i32 %insn, 15 + %and.i12.i4563 = and i32 %shr.i11.i4562, 31 + %rs1.i4564 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4563, ptr %rs1.i4564, align 4 %call2016 = call fastcc zeroext i1 @trans_vmsltu_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2016, label %return, label %sw.epilog3868 sw.bb2019: ; preds = %sw.bb1908 - %shr.i.i4583 = lshr i32 %insn, 20 - %and.i.i4584 = and i32 %shr.i.i4583, 31 - %rs2.i4585 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4584, ptr %rs2.i4585, align 4 - %shr.i7.i4586 = lshr i32 %insn, 25 - %and.i8.i4587 = and i32 %shr.i7.i4586, 1 - store i32 %and.i8.i4587, ptr %u, align 4 - %shr.i9.i4588 = lshr i32 %insn, 7 - %and.i10.i4589 = and i32 %shr.i9.i4588, 31 - %rd.i4590 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4589, ptr %rd.i4590, align 4 - %shr.i11.i4591 = lshr i32 %insn, 15 - %and.i12.i4592 = and i32 %shr.i11.i4591, 31 - %rs1.i4593 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4592, ptr %rs1.i4593, align 4 + %shr.i.i4565 = lshr i32 %insn, 20 + %and.i.i4566 = and i32 %shr.i.i4565, 31 + %rs2.i4567 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4566, ptr %rs2.i4567, align 4 + %shr.i7.i4568 = lshr i32 %insn, 25 + %and.i8.i4569 = and i32 %shr.i7.i4568, 1 + store i32 %and.i8.i4569, ptr %u, align 4 + %shr.i9.i4570 = lshr i32 %insn, 7 + %and.i10.i4571 = and i32 %shr.i9.i4570, 31 + %rd.i4572 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4571, ptr %rd.i4572, align 4 + %shr.i11.i4573 = lshr i32 %insn, 15 + %and.i12.i4574 = and i32 %shr.i11.i4573, 31 + %rs1.i4575 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4574, ptr %rs1.i4575, align 4 %call2020 = call fastcc zeroext i1 @trans_vmslt_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2020, label %return, label %sw.epilog3868 sw.bb2023: ; preds = %sw.bb1908 - %shr.i.i4594 = lshr i32 %insn, 20 - %and.i.i4595 = and i32 %shr.i.i4594, 31 - %rs2.i4596 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4595, ptr %rs2.i4596, align 4 - %shr.i7.i4597 = lshr i32 %insn, 25 - %and.i8.i4598 = and i32 %shr.i7.i4597, 1 - store i32 %and.i8.i4598, ptr %u, align 4 - %shr.i9.i4599 = lshr i32 %insn, 7 - %and.i10.i4600 = and i32 %shr.i9.i4599, 31 - %rd.i4601 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4600, ptr %rd.i4601, align 4 - %shr.i11.i4602 = lshr i32 %insn, 15 - %and.i12.i4603 = and i32 %shr.i11.i4602, 31 - %rs1.i4604 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4603, ptr %rs1.i4604, align 4 + %shr.i.i4576 = lshr i32 %insn, 20 + %and.i.i4577 = and i32 %shr.i.i4576, 31 + %rs2.i4578 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4577, ptr %rs2.i4578, align 4 + %shr.i7.i4579 = lshr i32 %insn, 25 + %and.i8.i4580 = and i32 %shr.i7.i4579, 1 + store i32 %and.i8.i4580, ptr %u, align 4 + %shr.i9.i4581 = lshr i32 %insn, 7 + %and.i10.i4582 = and i32 %shr.i9.i4581, 31 + %rd.i4583 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4582, ptr %rd.i4583, align 4 + %shr.i11.i4584 = lshr i32 %insn, 15 + %and.i12.i4585 = and i32 %shr.i11.i4584, 31 + %rs1.i4586 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4585, ptr %rs1.i4586, align 4 %call2024 = call fastcc zeroext i1 @trans_vmsleu_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2024, label %return, label %sw.epilog3868 sw.bb2027: ; preds = %sw.bb1908 - %shr.i.i4605 = lshr i32 %insn, 20 - %and.i.i4606 = and i32 %shr.i.i4605, 31 - %rs2.i4607 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4606, ptr %rs2.i4607, align 4 - %shr.i7.i4608 = lshr i32 %insn, 25 - %and.i8.i4609 = and i32 %shr.i7.i4608, 1 - store i32 %and.i8.i4609, ptr %u, align 4 - %shr.i9.i4610 = lshr i32 %insn, 7 - %and.i10.i4611 = and i32 %shr.i9.i4610, 31 - %rd.i4612 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4611, ptr %rd.i4612, align 4 - %shr.i11.i4613 = lshr i32 %insn, 15 - %and.i12.i4614 = and i32 %shr.i11.i4613, 31 - %rs1.i4615 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4614, ptr %rs1.i4615, align 4 + %shr.i.i4587 = lshr i32 %insn, 20 + %and.i.i4588 = and i32 %shr.i.i4587, 31 + %rs2.i4589 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4588, ptr %rs2.i4589, align 4 + %shr.i7.i4590 = lshr i32 %insn, 25 + %and.i8.i4591 = and i32 %shr.i7.i4590, 1 + store i32 %and.i8.i4591, ptr %u, align 4 + %shr.i9.i4592 = lshr i32 %insn, 7 + %and.i10.i4593 = and i32 %shr.i9.i4592, 31 + %rd.i4594 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4593, ptr %rd.i4594, align 4 + %shr.i11.i4595 = lshr i32 %insn, 15 + %and.i12.i4596 = and i32 %shr.i11.i4595, 31 + %rs1.i4597 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4596, ptr %rs1.i4597, align 4 %call2028 = call fastcc zeroext i1 @trans_vmsle_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2028, label %return, label %sw.epilog3868 @@ -12949,222 +12927,222 @@ sw.bb2032: ; preds = %sw.bb1906 ] sw.bb2035: ; preds = %sw.bb2032 - %shr.i.i4616 = lshr i32 %insn, 20 - %and.i.i4617 = and i32 %shr.i.i4616, 31 - %rs2.i4618 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4617, ptr %rs2.i4618, align 4 - %shr.i7.i4619 = lshr i32 %insn, 25 - %and.i8.i4620 = and i32 %shr.i7.i4619, 1 - store i32 %and.i8.i4620, ptr %u, align 4 - %shr.i9.i4621 = lshr i32 %insn, 7 - %and.i10.i4622 = and i32 %shr.i9.i4621, 31 - %rd.i4623 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4622, ptr %rd.i4623, align 4 - %shr.i11.i4624 = lshr i32 %insn, 15 - %and.i12.i4625 = and i32 %shr.i11.i4624, 31 - %rs1.i4626 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4625, ptr %rs1.i4626, align 4 + %shr.i.i4598 = lshr i32 %insn, 20 + %and.i.i4599 = and i32 %shr.i.i4598, 31 + %rs2.i4600 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4599, ptr %rs2.i4600, align 4 + %shr.i7.i4601 = lshr i32 %insn, 25 + %and.i8.i4602 = and i32 %shr.i7.i4601, 1 + store i32 %and.i8.i4602, ptr %u, align 4 + %shr.i9.i4603 = lshr i32 %insn, 7 + %and.i10.i4604 = and i32 %shr.i9.i4603, 31 + %rd.i4605 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4604, ptr %rd.i4605, align 4 + %shr.i11.i4606 = lshr i32 %insn, 15 + %and.i12.i4607 = and i32 %shr.i11.i4606, 31 + %rs1.i4608 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4607, ptr %rs1.i4608, align 4 %call2036 = call fastcc zeroext i1 @trans_vfadd_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2036, label %return, label %sw.epilog3868 sw.bb2039: ; preds = %sw.bb2032 - %shr.i.i4627 = lshr i32 %insn, 20 - %and.i.i4628 = and i32 %shr.i.i4627, 31 - %rs2.i4629 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4628, ptr %rs2.i4629, align 4 - %shr.i7.i4630 = lshr i32 %insn, 25 - %and.i8.i4631 = and i32 %shr.i7.i4630, 1 - store i32 %and.i8.i4631, ptr %u, align 4 - %shr.i9.i4632 = lshr i32 %insn, 7 - %and.i10.i4633 = and i32 %shr.i9.i4632, 31 - %rd.i4634 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4633, ptr %rd.i4634, align 4 - %shr.i11.i4635 = lshr i32 %insn, 15 - %and.i12.i4636 = and i32 %shr.i11.i4635, 31 - %rs1.i4637 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4636, ptr %rs1.i4637, align 4 + %shr.i.i4609 = lshr i32 %insn, 20 + %and.i.i4610 = and i32 %shr.i.i4609, 31 + %rs2.i4611 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4610, ptr %rs2.i4611, align 4 + %shr.i7.i4612 = lshr i32 %insn, 25 + %and.i8.i4613 = and i32 %shr.i7.i4612, 1 + store i32 %and.i8.i4613, ptr %u, align 4 + %shr.i9.i4614 = lshr i32 %insn, 7 + %and.i10.i4615 = and i32 %shr.i9.i4614, 31 + %rd.i4616 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4615, ptr %rd.i4616, align 4 + %shr.i11.i4617 = lshr i32 %insn, 15 + %and.i12.i4618 = and i32 %shr.i11.i4617, 31 + %rs1.i4619 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4618, ptr %rs1.i4619, align 4 %call2040 = call fastcc zeroext i1 @trans_vfredusum_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2040, label %return, label %sw.epilog3868 sw.bb2043: ; preds = %sw.bb2032 - %shr.i.i4638 = lshr i32 %insn, 20 - %and.i.i4639 = and i32 %shr.i.i4638, 31 - %rs2.i4640 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4639, ptr %rs2.i4640, align 4 - %shr.i7.i4641 = lshr i32 %insn, 25 - %and.i8.i4642 = and i32 %shr.i7.i4641, 1 - store i32 %and.i8.i4642, ptr %u, align 4 - %shr.i9.i4643 = lshr i32 %insn, 7 - %and.i10.i4644 = and i32 %shr.i9.i4643, 31 - %rd.i4645 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4644, ptr %rd.i4645, align 4 - %shr.i11.i4646 = lshr i32 %insn, 15 - %and.i12.i4647 = and i32 %shr.i11.i4646, 31 - %rs1.i4648 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4647, ptr %rs1.i4648, align 4 + %shr.i.i4620 = lshr i32 %insn, 20 + %and.i.i4621 = and i32 %shr.i.i4620, 31 + %rs2.i4622 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4621, ptr %rs2.i4622, align 4 + %shr.i7.i4623 = lshr i32 %insn, 25 + %and.i8.i4624 = and i32 %shr.i7.i4623, 1 + store i32 %and.i8.i4624, ptr %u, align 4 + %shr.i9.i4625 = lshr i32 %insn, 7 + %and.i10.i4626 = and i32 %shr.i9.i4625, 31 + %rd.i4627 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4626, ptr %rd.i4627, align 4 + %shr.i11.i4628 = lshr i32 %insn, 15 + %and.i12.i4629 = and i32 %shr.i11.i4628, 31 + %rs1.i4630 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4629, ptr %rs1.i4630, align 4 %call2044 = call fastcc zeroext i1 @trans_vfsub_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2044, label %return, label %sw.epilog3868 sw.bb2047: ; preds = %sw.bb2032 - %shr.i.i4649 = lshr i32 %insn, 20 - %and.i.i4650 = and i32 %shr.i.i4649, 31 - %rs2.i4651 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4650, ptr %rs2.i4651, align 4 - %shr.i7.i4652 = lshr i32 %insn, 25 - %and.i8.i4653 = and i32 %shr.i7.i4652, 1 - store i32 %and.i8.i4653, ptr %u, align 4 - %shr.i9.i4654 = lshr i32 %insn, 7 - %and.i10.i4655 = and i32 %shr.i9.i4654, 31 - %rd.i4656 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4655, ptr %rd.i4656, align 4 - %shr.i11.i4657 = lshr i32 %insn, 15 - %and.i12.i4658 = and i32 %shr.i11.i4657, 31 - %rs1.i4659 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4658, ptr %rs1.i4659, align 4 + %shr.i.i4631 = lshr i32 %insn, 20 + %and.i.i4632 = and i32 %shr.i.i4631, 31 + %rs2.i4633 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4632, ptr %rs2.i4633, align 4 + %shr.i7.i4634 = lshr i32 %insn, 25 + %and.i8.i4635 = and i32 %shr.i7.i4634, 1 + store i32 %and.i8.i4635, ptr %u, align 4 + %shr.i9.i4636 = lshr i32 %insn, 7 + %and.i10.i4637 = and i32 %shr.i9.i4636, 31 + %rd.i4638 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4637, ptr %rd.i4638, align 4 + %shr.i11.i4639 = lshr i32 %insn, 15 + %and.i12.i4640 = and i32 %shr.i11.i4639, 31 + %rs1.i4641 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4640, ptr %rs1.i4641, align 4 %call2048 = call fastcc zeroext i1 @trans_vfredosum_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2048, label %return, label %sw.epilog3868 sw.bb2051: ; preds = %sw.bb2032 - %shr.i.i4660 = lshr i32 %insn, 20 - %and.i.i4661 = and i32 %shr.i.i4660, 31 - %rs2.i4662 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4661, ptr %rs2.i4662, align 4 - %shr.i7.i4663 = lshr i32 %insn, 25 - %and.i8.i4664 = and i32 %shr.i7.i4663, 1 - store i32 %and.i8.i4664, ptr %u, align 4 - %shr.i9.i4665 = lshr i32 %insn, 7 - %and.i10.i4666 = and i32 %shr.i9.i4665, 31 - %rd.i4667 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4666, ptr %rd.i4667, align 4 - %shr.i11.i4668 = lshr i32 %insn, 15 - %and.i12.i4669 = and i32 %shr.i11.i4668, 31 - %rs1.i4670 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4669, ptr %rs1.i4670, align 4 + %shr.i.i4642 = lshr i32 %insn, 20 + %and.i.i4643 = and i32 %shr.i.i4642, 31 + %rs2.i4644 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4643, ptr %rs2.i4644, align 4 + %shr.i7.i4645 = lshr i32 %insn, 25 + %and.i8.i4646 = and i32 %shr.i7.i4645, 1 + store i32 %and.i8.i4646, ptr %u, align 4 + %shr.i9.i4647 = lshr i32 %insn, 7 + %and.i10.i4648 = and i32 %shr.i9.i4647, 31 + %rd.i4649 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4648, ptr %rd.i4649, align 4 + %shr.i11.i4650 = lshr i32 %insn, 15 + %and.i12.i4651 = and i32 %shr.i11.i4650, 31 + %rs1.i4652 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4651, ptr %rs1.i4652, align 4 %call2052 = call fastcc zeroext i1 @trans_vfmin_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2052, label %return, label %sw.epilog3868 sw.bb2055: ; preds = %sw.bb2032 - %shr.i.i4671 = lshr i32 %insn, 20 - %and.i.i4672 = and i32 %shr.i.i4671, 31 - %rs2.i4673 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4672, ptr %rs2.i4673, align 4 - %shr.i7.i4674 = lshr i32 %insn, 25 - %and.i8.i4675 = and i32 %shr.i7.i4674, 1 - store i32 %and.i8.i4675, ptr %u, align 4 - %shr.i9.i4676 = lshr i32 %insn, 7 - %and.i10.i4677 = and i32 %shr.i9.i4676, 31 - %rd.i4678 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4677, ptr %rd.i4678, align 4 - %shr.i11.i4679 = lshr i32 %insn, 15 - %and.i12.i4680 = and i32 %shr.i11.i4679, 31 - %rs1.i4681 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4680, ptr %rs1.i4681, align 4 + %shr.i.i4653 = lshr i32 %insn, 20 + %and.i.i4654 = and i32 %shr.i.i4653, 31 + %rs2.i4655 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4654, ptr %rs2.i4655, align 4 + %shr.i7.i4656 = lshr i32 %insn, 25 + %and.i8.i4657 = and i32 %shr.i7.i4656, 1 + store i32 %and.i8.i4657, ptr %u, align 4 + %shr.i9.i4658 = lshr i32 %insn, 7 + %and.i10.i4659 = and i32 %shr.i9.i4658, 31 + %rd.i4660 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4659, ptr %rd.i4660, align 4 + %shr.i11.i4661 = lshr i32 %insn, 15 + %and.i12.i4662 = and i32 %shr.i11.i4661, 31 + %rs1.i4663 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4662, ptr %rs1.i4663, align 4 %call2056 = call fastcc zeroext i1 @trans_vfredmin_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2056, label %return, label %sw.epilog3868 sw.bb2059: ; preds = %sw.bb2032 - %shr.i.i4682 = lshr i32 %insn, 20 - %and.i.i4683 = and i32 %shr.i.i4682, 31 - %rs2.i4684 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4683, ptr %rs2.i4684, align 4 - %shr.i7.i4685 = lshr i32 %insn, 25 - %and.i8.i4686 = and i32 %shr.i7.i4685, 1 - store i32 %and.i8.i4686, ptr %u, align 4 - %shr.i9.i4687 = lshr i32 %insn, 7 - %and.i10.i4688 = and i32 %shr.i9.i4687, 31 - %rd.i4689 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4688, ptr %rd.i4689, align 4 - %shr.i11.i4690 = lshr i32 %insn, 15 - %and.i12.i4691 = and i32 %shr.i11.i4690, 31 - %rs1.i4692 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4691, ptr %rs1.i4692, align 4 + %shr.i.i4664 = lshr i32 %insn, 20 + %and.i.i4665 = and i32 %shr.i.i4664, 31 + %rs2.i4666 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4665, ptr %rs2.i4666, align 4 + %shr.i7.i4667 = lshr i32 %insn, 25 + %and.i8.i4668 = and i32 %shr.i7.i4667, 1 + store i32 %and.i8.i4668, ptr %u, align 4 + %shr.i9.i4669 = lshr i32 %insn, 7 + %and.i10.i4670 = and i32 %shr.i9.i4669, 31 + %rd.i4671 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4670, ptr %rd.i4671, align 4 + %shr.i11.i4672 = lshr i32 %insn, 15 + %and.i12.i4673 = and i32 %shr.i11.i4672, 31 + %rs1.i4674 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4673, ptr %rs1.i4674, align 4 %call2060 = call fastcc zeroext i1 @trans_vfmax_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2060, label %return, label %sw.epilog3868 sw.bb2063: ; preds = %sw.bb2032 - %shr.i.i4693 = lshr i32 %insn, 20 - %and.i.i4694 = and i32 %shr.i.i4693, 31 - %rs2.i4695 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4694, ptr %rs2.i4695, align 4 - %shr.i7.i4696 = lshr i32 %insn, 25 - %and.i8.i4697 = and i32 %shr.i7.i4696, 1 - store i32 %and.i8.i4697, ptr %u, align 4 - %shr.i9.i4698 = lshr i32 %insn, 7 - %and.i10.i4699 = and i32 %shr.i9.i4698, 31 - %rd.i4700 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4699, ptr %rd.i4700, align 4 - %shr.i11.i4701 = lshr i32 %insn, 15 - %and.i12.i4702 = and i32 %shr.i11.i4701, 31 - %rs1.i4703 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4702, ptr %rs1.i4703, align 4 + %shr.i.i4675 = lshr i32 %insn, 20 + %and.i.i4676 = and i32 %shr.i.i4675, 31 + %rs2.i4677 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4676, ptr %rs2.i4677, align 4 + %shr.i7.i4678 = lshr i32 %insn, 25 + %and.i8.i4679 = and i32 %shr.i7.i4678, 1 + store i32 %and.i8.i4679, ptr %u, align 4 + %shr.i9.i4680 = lshr i32 %insn, 7 + %and.i10.i4681 = and i32 %shr.i9.i4680, 31 + %rd.i4682 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4681, ptr %rd.i4682, align 4 + %shr.i11.i4683 = lshr i32 %insn, 15 + %and.i12.i4684 = and i32 %shr.i11.i4683, 31 + %rs1.i4685 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4684, ptr %rs1.i4685, align 4 %call2064 = call fastcc zeroext i1 @trans_vfredmax_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2064, label %return, label %sw.epilog3868 sw.bb2067: ; preds = %sw.bb2032 - %shr.i.i4704 = lshr i32 %insn, 20 - %and.i.i4705 = and i32 %shr.i.i4704, 31 - %rs2.i4706 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4705, ptr %rs2.i4706, align 4 - %shr.i7.i4707 = lshr i32 %insn, 25 - %and.i8.i4708 = and i32 %shr.i7.i4707, 1 - store i32 %and.i8.i4708, ptr %u, align 4 - %shr.i9.i4709 = lshr i32 %insn, 7 - %and.i10.i4710 = and i32 %shr.i9.i4709, 31 - %rd.i4711 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4710, ptr %rd.i4711, align 4 - %shr.i11.i4712 = lshr i32 %insn, 15 - %and.i12.i4713 = and i32 %shr.i11.i4712, 31 - %rs1.i4714 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4713, ptr %rs1.i4714, align 4 + %shr.i.i4686 = lshr i32 %insn, 20 + %and.i.i4687 = and i32 %shr.i.i4686, 31 + %rs2.i4688 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4687, ptr %rs2.i4688, align 4 + %shr.i7.i4689 = lshr i32 %insn, 25 + %and.i8.i4690 = and i32 %shr.i7.i4689, 1 + store i32 %and.i8.i4690, ptr %u, align 4 + %shr.i9.i4691 = lshr i32 %insn, 7 + %and.i10.i4692 = and i32 %shr.i9.i4691, 31 + %rd.i4693 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4692, ptr %rd.i4693, align 4 + %shr.i11.i4694 = lshr i32 %insn, 15 + %and.i12.i4695 = and i32 %shr.i11.i4694, 31 + %rs1.i4696 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4695, ptr %rs1.i4696, align 4 %call2068 = call fastcc zeroext i1 @trans_vfsgnj_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2068, label %return, label %sw.epilog3868 sw.bb2071: ; preds = %sw.bb2032 - %shr.i.i4715 = lshr i32 %insn, 20 - %and.i.i4716 = and i32 %shr.i.i4715, 31 - %rs2.i4717 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4716, ptr %rs2.i4717, align 4 - %shr.i7.i4718 = lshr i32 %insn, 25 - %and.i8.i4719 = and i32 %shr.i7.i4718, 1 - store i32 %and.i8.i4719, ptr %u, align 4 - %shr.i9.i4720 = lshr i32 %insn, 7 - %and.i10.i4721 = and i32 %shr.i9.i4720, 31 - %rd.i4722 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4721, ptr %rd.i4722, align 4 - %shr.i11.i4723 = lshr i32 %insn, 15 - %and.i12.i4724 = and i32 %shr.i11.i4723, 31 - %rs1.i4725 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4724, ptr %rs1.i4725, align 4 + %shr.i.i4697 = lshr i32 %insn, 20 + %and.i.i4698 = and i32 %shr.i.i4697, 31 + %rs2.i4699 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4698, ptr %rs2.i4699, align 4 + %shr.i7.i4700 = lshr i32 %insn, 25 + %and.i8.i4701 = and i32 %shr.i7.i4700, 1 + store i32 %and.i8.i4701, ptr %u, align 4 + %shr.i9.i4702 = lshr i32 %insn, 7 + %and.i10.i4703 = and i32 %shr.i9.i4702, 31 + %rd.i4704 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4703, ptr %rd.i4704, align 4 + %shr.i11.i4705 = lshr i32 %insn, 15 + %and.i12.i4706 = and i32 %shr.i11.i4705, 31 + %rs1.i4707 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4706, ptr %rs1.i4707, align 4 %call2072 = call fastcc zeroext i1 @trans_vfsgnjn_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2072, label %return, label %sw.epilog3868 sw.bb2075: ; preds = %sw.bb2032 - %shr.i.i4726 = lshr i32 %insn, 20 - %and.i.i4727 = and i32 %shr.i.i4726, 31 - %rs2.i4728 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4727, ptr %rs2.i4728, align 4 - %shr.i7.i4729 = lshr i32 %insn, 25 - %and.i8.i4730 = and i32 %shr.i7.i4729, 1 - store i32 %and.i8.i4730, ptr %u, align 4 - %shr.i9.i4731 = lshr i32 %insn, 7 - %and.i10.i4732 = and i32 %shr.i9.i4731, 31 - %rd.i4733 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4732, ptr %rd.i4733, align 4 - %shr.i11.i4734 = lshr i32 %insn, 15 - %and.i12.i4735 = and i32 %shr.i11.i4734, 31 - %rs1.i4736 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4735, ptr %rs1.i4736, align 4 + %shr.i.i4708 = lshr i32 %insn, 20 + %and.i.i4709 = and i32 %shr.i.i4708, 31 + %rs2.i4710 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4709, ptr %rs2.i4710, align 4 + %shr.i7.i4711 = lshr i32 %insn, 25 + %and.i8.i4712 = and i32 %shr.i7.i4711, 1 + store i32 %and.i8.i4712, ptr %u, align 4 + %shr.i9.i4713 = lshr i32 %insn, 7 + %and.i10.i4714 = and i32 %shr.i9.i4713, 31 + %rd.i4715 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4714, ptr %rd.i4715, align 4 + %shr.i11.i4716 = lshr i32 %insn, 15 + %and.i12.i4717 = and i32 %shr.i11.i4716, 31 + %rs1.i4718 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4717, ptr %rs1.i4718, align 4 %call2076 = call fastcc zeroext i1 @trans_vfsgnjx_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2076, label %return, label %sw.epilog3868 sw.bb2079: ; preds = %sw.bb2032 - %shr.i.i4737 = lshr i32 %insn, 20 - %and.i.i4738 = and i32 %shr.i.i4737, 31 - store i32 %and.i.i4738, ptr %u, align 4 - %shr.i3.i4739 = lshr i32 %insn, 7 - %and.i4.i4740 = and i32 %shr.i3.i4739, 31 - %rd.i4741 = getelementptr inbounds %struct.arg_decode_insn3221, ptr %u, i64 0, i32 1 - store i32 %and.i4.i4740, ptr %rd.i4741, align 4 + %shr.i.i4719 = lshr i32 %insn, 20 + %and.i.i4720 = and i32 %shr.i.i4719, 31 + store i32 %and.i.i4720, ptr %u, align 4 + %shr.i3.i4721 = lshr i32 %insn, 7 + %and.i4.i4722 = and i32 %shr.i3.i4721, 31 + %rd.i4723 = getelementptr inbounds %struct.arg_decode_insn3221, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4722, ptr %rd.i4723, align 4 %and2080 = and i32 %insn, 34570240 %cond25 = icmp eq i32 %and2080, 33554432 br i1 %cond25, label %sw.bb2081, label %sw.epilog3868 @@ -13174,17 +13152,17 @@ sw.bb2081: ; preds = %sw.bb2079 br i1 %call2082, label %return, label %sw.epilog3868 sw.bb2086: ; preds = %sw.bb2032 - %shr.i.i4742 = lshr i32 %insn, 20 - %and.i.i4743 = and i32 %shr.i.i4742, 31 - %rs2.i4744 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i4743, ptr %rs2.i4744, align 4 - %shr.i5.i4745 = lshr i32 %insn, 25 - %and.i6.i4746 = and i32 %shr.i5.i4745, 1 - store i32 %and.i6.i4746, ptr %u, align 4 - %shr.i7.i4747 = lshr i32 %insn, 7 - %and.i8.i4748 = and i32 %shr.i7.i4747, 31 - %rd.i4749 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4748, ptr %rd.i4749, align 4 + %shr.i.i4724 = lshr i32 %insn, 20 + %and.i.i4725 = and i32 %shr.i.i4724, 31 + %rs2.i4726 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i4725, ptr %rs2.i4726, align 4 + %shr.i5.i4727 = lshr i32 %insn, 25 + %and.i6.i4728 = and i32 %shr.i5.i4727, 1 + store i32 %and.i6.i4728, ptr %u, align 4 + %shr.i7.i4729 = lshr i32 %insn, 7 + %and.i8.i4730 = and i32 %shr.i7.i4729, 31 + %rd.i4731 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4730, ptr %rd.i4731, align 4 %shr2087 = lshr i32 %insn, 15 %and2088 = and i32 %shr2087, 31 switch i32 %and2088, label %sw.epilog3868 [ @@ -13216,62 +13194,62 @@ sw.bb2086: ; preds = %sw.bb2032 sw.bb2089: ; preds = %sw.bb2086 %sew.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 %200 = load i8, ptr %sew.i, align 2 - %conv.i4750 = zext i8 %200 to i64 - %sub.i = add nsw i64 %conv.i4750, -1 + %conv.i4732 = zext i8 %200 to i64 + %sub.i = add nsw i64 %conv.i4732, -1 %arrayidx.i = getelementptr [3 x ptr], ptr @trans_vfcvt_rtz_xu_f_v.fns, i64 0, i64 %sub.i %201 = load ptr, ptr %arrayidx.i, align 8 - %call.i4751 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %201, i32 noundef 7) - br i1 %call.i4751, label %return, label %sw.epilog3868 + %call.i4733 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %201, i32 noundef 7) + br i1 %call.i4733, label %return, label %sw.epilog3868 sw.bb2093: ; preds = %sw.bb2086 - %sew.i4752 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %202 = load i8, ptr %sew.i4752, align 2 - %conv.i4753 = zext i8 %202 to i64 - %sub.i4754 = add nsw i64 %conv.i4753, -1 - %arrayidx.i4755 = getelementptr [3 x ptr], ptr @trans_vfcvt_rtz_x_f_v.fns, i64 0, i64 %sub.i4754 - %203 = load ptr, ptr %arrayidx.i4755, align 8 - %call.i4756 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %203, i32 noundef 7) - br i1 %call.i4756, label %return, label %sw.epilog3868 + %sew.i4734 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %202 = load i8, ptr %sew.i4734, align 2 + %conv.i4735 = zext i8 %202 to i64 + %sub.i4736 = add nsw i64 %conv.i4735, -1 + %arrayidx.i4737 = getelementptr [3 x ptr], ptr @trans_vfcvt_rtz_x_f_v.fns, i64 0, i64 %sub.i4736 + %203 = load ptr, ptr %arrayidx.i4737, align 8 + %call.i4738 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %203, i32 noundef 7) + br i1 %call.i4738, label %return, label %sw.epilog3868 sw.bb2097: ; preds = %sw.bb2086 - %sew.i4757 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %204 = load i8, ptr %sew.i4757, align 2 - %conv.i4758 = zext i8 %204 to i64 - %sub.i4759 = add nsw i64 %conv.i4758, -1 - %arrayidx.i4760 = getelementptr [3 x ptr], ptr @trans_vfcvt_f_xu_v.fns, i64 0, i64 %sub.i4759 - %205 = load ptr, ptr %arrayidx.i4760, align 8 - %call.i4761 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %205, i32 noundef 7) - br i1 %call.i4761, label %return, label %sw.epilog3868 + %sew.i4739 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %204 = load i8, ptr %sew.i4739, align 2 + %conv.i4740 = zext i8 %204 to i64 + %sub.i4741 = add nsw i64 %conv.i4740, -1 + %arrayidx.i4742 = getelementptr [3 x ptr], ptr @trans_vfcvt_f_xu_v.fns, i64 0, i64 %sub.i4741 + %205 = load ptr, ptr %arrayidx.i4742, align 8 + %call.i4743 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %205, i32 noundef 7) + br i1 %call.i4743, label %return, label %sw.epilog3868 sw.bb2101: ; preds = %sw.bb2086 - %sew.i4762 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %206 = load i8, ptr %sew.i4762, align 2 - %conv.i4763 = zext i8 %206 to i64 - %sub.i4764 = add nsw i64 %conv.i4763, -1 - %arrayidx.i4765 = getelementptr [3 x ptr], ptr @trans_vfcvt_f_x_v.fns, i64 0, i64 %sub.i4764 - %207 = load ptr, ptr %arrayidx.i4765, align 8 - %call.i4766 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %207, i32 noundef 7) - br i1 %call.i4766, label %return, label %sw.epilog3868 + %sew.i4744 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %206 = load i8, ptr %sew.i4744, align 2 + %conv.i4745 = zext i8 %206 to i64 + %sub.i4746 = add nsw i64 %conv.i4745, -1 + %arrayidx.i4747 = getelementptr [3 x ptr], ptr @trans_vfcvt_f_x_v.fns, i64 0, i64 %sub.i4746 + %207 = load ptr, ptr %arrayidx.i4747, align 8 + %call.i4748 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %207, i32 noundef 7) + br i1 %call.i4748, label %return, label %sw.epilog3868 sw.bb2105: ; preds = %sw.bb2086 - %sew.i4767 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %208 = load i8, ptr %sew.i4767, align 2 - %conv.i4768 = zext i8 %208 to i64 - %sub.i4769 = add nsw i64 %conv.i4768, -1 - %arrayidx.i4770 = getelementptr [3 x ptr], ptr @trans_vfcvt_rtz_xu_f_v.fns, i64 0, i64 %sub.i4769 - %209 = load ptr, ptr %arrayidx.i4770, align 8 - %call.i4771 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %209, i32 noundef 1) - br i1 %call.i4771, label %return, label %sw.epilog3868 + %sew.i4749 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %208 = load i8, ptr %sew.i4749, align 2 + %conv.i4750 = zext i8 %208 to i64 + %sub.i4751 = add nsw i64 %conv.i4750, -1 + %arrayidx.i4752 = getelementptr [3 x ptr], ptr @trans_vfcvt_rtz_xu_f_v.fns, i64 0, i64 %sub.i4751 + %209 = load ptr, ptr %arrayidx.i4752, align 8 + %call.i4753 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %209, i32 noundef 1) + br i1 %call.i4753, label %return, label %sw.epilog3868 sw.bb2109: ; preds = %sw.bb2086 - %sew.i4772 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %210 = load i8, ptr %sew.i4772, align 2 - %conv.i4773 = zext i8 %210 to i64 - %sub.i4774 = add nsw i64 %conv.i4773, -1 - %arrayidx.i4775 = getelementptr [3 x ptr], ptr @trans_vfcvt_rtz_x_f_v.fns, i64 0, i64 %sub.i4774 - %211 = load ptr, ptr %arrayidx.i4775, align 8 - %call.i4776 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %211, i32 noundef 1) - br i1 %call.i4776, label %return, label %sw.epilog3868 + %sew.i4754 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %210 = load i8, ptr %sew.i4754, align 2 + %conv.i4755 = zext i8 %210 to i64 + %sub.i4756 = add nsw i64 %conv.i4755, -1 + %arrayidx.i4757 = getelementptr [3 x ptr], ptr @trans_vfcvt_rtz_x_f_v.fns, i64 0, i64 %sub.i4756 + %211 = load ptr, ptr %arrayidx.i4757, align 8 + %call.i4758 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %211, i32 noundef 1) + br i1 %call.i4758, label %return, label %sw.epilog3868 sw.bb2113: ; preds = %sw.bb2086 %call2114 = call fastcc zeroext i1 @trans_vfwcvt_xu_f_v(ptr noundef %ctx, ptr noundef nonnull %u) @@ -13342,17 +13320,17 @@ sw.bb2177: ; preds = %sw.bb2086 br i1 %call2178, label %return, label %sw.epilog3868 sw.bb2182: ; preds = %sw.bb2032 - %shr.i.i4777 = lshr i32 %insn, 20 - %and.i.i4778 = and i32 %shr.i.i4777, 31 - %rs2.i4779 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i4778, ptr %rs2.i4779, align 4 - %shr.i5.i4780 = lshr i32 %insn, 25 - %and.i6.i4781 = and i32 %shr.i5.i4780, 1 - store i32 %and.i6.i4781, ptr %u, align 4 - %shr.i7.i4782 = lshr i32 %insn, 7 - %and.i8.i4783 = and i32 %shr.i7.i4782, 31 - %rd.i4784 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i4783, ptr %rd.i4784, align 4 + %shr.i.i4759 = lshr i32 %insn, 20 + %and.i.i4760 = and i32 %shr.i.i4759, 31 + %rs2.i4761 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i4760, ptr %rs2.i4761, align 4 + %shr.i5.i4762 = lshr i32 %insn, 25 + %and.i6.i4763 = and i32 %shr.i5.i4762, 1 + store i32 %and.i6.i4763, ptr %u, align 4 + %shr.i7.i4764 = lshr i32 %insn, 7 + %and.i8.i4765 = and i32 %shr.i7.i4764, 31 + %rd.i4766 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4765, ptr %rd.i4766, align 4 %shr2183 = lshr i32 %insn, 15 %and2184 = and i32 %shr2183, 31 switch i32 %and2184, label %sw.epilog3868 [ @@ -13363,118 +13341,118 @@ sw.bb2182: ; preds = %sw.bb2032 ] sw.bb2185: ; preds = %sw.bb2182 - %sew.i4785 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %212 = load i8, ptr %sew.i4785, align 2 - %conv.i4786 = zext i8 %212 to i64 - %sub.i4787 = add nsw i64 %conv.i4786, -1 - %arrayidx.i4788 = getelementptr [3 x ptr], ptr @trans_vfsqrt_v.fns, i64 0, i64 %sub.i4787 - %213 = load ptr, ptr %arrayidx.i4788, align 8 - %call.i4789 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %213, i32 noundef 7) - br i1 %call.i4789, label %return, label %sw.epilog3868 + %sew.i4767 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %212 = load i8, ptr %sew.i4767, align 2 + %conv.i4768 = zext i8 %212 to i64 + %sub.i4769 = add nsw i64 %conv.i4768, -1 + %arrayidx.i4770 = getelementptr [3 x ptr], ptr @trans_vfsqrt_v.fns, i64 0, i64 %sub.i4769 + %213 = load ptr, ptr %arrayidx.i4770, align 8 + %call.i4771 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %213, i32 noundef 7) + br i1 %call.i4771, label %return, label %sw.epilog3868 sw.bb2189: ; preds = %sw.bb2182 - %sew.i4790 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %214 = load i8, ptr %sew.i4790, align 2 - %conv.i4791 = zext i8 %214 to i64 - %sub.i4792 = add nsw i64 %conv.i4791, -1 - %arrayidx.i4793 = getelementptr [3 x ptr], ptr @trans_vfrsqrt7_v.fns, i64 0, i64 %sub.i4792 - %215 = load ptr, ptr %arrayidx.i4793, align 8 - %call.i4794 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %215, i32 noundef 7) - br i1 %call.i4794, label %return, label %sw.epilog3868 + %sew.i4772 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %214 = load i8, ptr %sew.i4772, align 2 + %conv.i4773 = zext i8 %214 to i64 + %sub.i4774 = add nsw i64 %conv.i4773, -1 + %arrayidx.i4775 = getelementptr [3 x ptr], ptr @trans_vfrsqrt7_v.fns, i64 0, i64 %sub.i4774 + %215 = load ptr, ptr %arrayidx.i4775, align 8 + %call.i4776 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %215, i32 noundef 7) + br i1 %call.i4776, label %return, label %sw.epilog3868 sw.bb2193: ; preds = %sw.bb2182 - %sew.i4795 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %216 = load i8, ptr %sew.i4795, align 2 - %conv.i4796 = zext i8 %216 to i64 - %sub.i4797 = add nsw i64 %conv.i4796, -1 - %arrayidx.i4798 = getelementptr [3 x ptr], ptr @trans_vfrec7_v.fns, i64 0, i64 %sub.i4797 - %217 = load ptr, ptr %arrayidx.i4798, align 8 - %call.i4799 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %217, i32 noundef 7) - br i1 %call.i4799, label %return, label %sw.epilog3868 + %sew.i4777 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %216 = load i8, ptr %sew.i4777, align 2 + %conv.i4778 = zext i8 %216 to i64 + %sub.i4779 = add nsw i64 %conv.i4778, -1 + %arrayidx.i4780 = getelementptr [3 x ptr], ptr @trans_vfrec7_v.fns, i64 0, i64 %sub.i4779 + %217 = load ptr, ptr %arrayidx.i4780, align 8 + %call.i4781 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %217, i32 noundef 7) + br i1 %call.i4781, label %return, label %sw.epilog3868 sw.bb2197: ; preds = %sw.bb2182 - %sew.i4800 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %218 = load i8, ptr %sew.i4800, align 2 - %conv.i4801 = zext i8 %218 to i64 - %sub.i4802 = add nsw i64 %conv.i4801, -1 - %arrayidx.i4803 = getelementptr [3 x ptr], ptr @trans_vfclass_v.fns, i64 0, i64 %sub.i4802 - %219 = load ptr, ptr %arrayidx.i4803, align 8 - %call.i4804 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %219, i32 noundef 7) - br i1 %call.i4804, label %return, label %sw.epilog3868 + %sew.i4782 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %218 = load i8, ptr %sew.i4782, align 2 + %conv.i4783 = zext i8 %218 to i64 + %sub.i4784 = add nsw i64 %conv.i4783, -1 + %arrayidx.i4785 = getelementptr [3 x ptr], ptr @trans_vfclass_v.fns, i64 0, i64 %sub.i4784 + %219 = load ptr, ptr %arrayidx.i4785, align 8 + %call.i4786 = call fastcc noundef zeroext i1 @do_opfv(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %219, i32 noundef 7) + br i1 %call.i4786, label %return, label %sw.epilog3868 sw.bb2202: ; preds = %sw.bb2032 - %shr.i.i4805 = lshr i32 %insn, 20 - %and.i.i4806 = and i32 %shr.i.i4805, 31 - %rs2.i4807 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4806, ptr %rs2.i4807, align 4 - %shr.i7.i4808 = lshr i32 %insn, 25 - %and.i8.i4809 = and i32 %shr.i7.i4808, 1 - store i32 %and.i8.i4809, ptr %u, align 4 - %shr.i9.i4810 = lshr i32 %insn, 7 - %and.i10.i4811 = and i32 %shr.i9.i4810, 31 - %rd.i4812 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4811, ptr %rd.i4812, align 4 - %shr.i11.i4813 = lshr i32 %insn, 15 - %and.i12.i4814 = and i32 %shr.i11.i4813, 31 - %rs1.i4815 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4814, ptr %rs1.i4815, align 4 + %shr.i.i4787 = lshr i32 %insn, 20 + %and.i.i4788 = and i32 %shr.i.i4787, 31 + %rs2.i4789 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4788, ptr %rs2.i4789, align 4 + %shr.i7.i4790 = lshr i32 %insn, 25 + %and.i8.i4791 = and i32 %shr.i7.i4790, 1 + store i32 %and.i8.i4791, ptr %u, align 4 + %shr.i9.i4792 = lshr i32 %insn, 7 + %and.i10.i4793 = and i32 %shr.i9.i4792, 31 + %rd.i4794 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4793, ptr %rd.i4794, align 4 + %shr.i11.i4795 = lshr i32 %insn, 15 + %and.i12.i4796 = and i32 %shr.i11.i4795, 31 + %rs1.i4797 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4796, ptr %rs1.i4797, align 4 %call2203 = call fastcc zeroext i1 @trans_vmfeq_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2203, label %return, label %sw.epilog3868 sw.bb2206: ; preds = %sw.bb2032 - %shr.i.i4816 = lshr i32 %insn, 20 - %and.i.i4817 = and i32 %shr.i.i4816, 31 - %rs2.i4818 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4817, ptr %rs2.i4818, align 4 - %shr.i7.i4819 = lshr i32 %insn, 25 - %and.i8.i4820 = and i32 %shr.i7.i4819, 1 - store i32 %and.i8.i4820, ptr %u, align 4 - %shr.i9.i4821 = lshr i32 %insn, 7 - %and.i10.i4822 = and i32 %shr.i9.i4821, 31 - %rd.i4823 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4822, ptr %rd.i4823, align 4 - %shr.i11.i4824 = lshr i32 %insn, 15 - %and.i12.i4825 = and i32 %shr.i11.i4824, 31 - %rs1.i4826 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4825, ptr %rs1.i4826, align 4 + %shr.i.i4798 = lshr i32 %insn, 20 + %and.i.i4799 = and i32 %shr.i.i4798, 31 + %rs2.i4800 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4799, ptr %rs2.i4800, align 4 + %shr.i7.i4801 = lshr i32 %insn, 25 + %and.i8.i4802 = and i32 %shr.i7.i4801, 1 + store i32 %and.i8.i4802, ptr %u, align 4 + %shr.i9.i4803 = lshr i32 %insn, 7 + %and.i10.i4804 = and i32 %shr.i9.i4803, 31 + %rd.i4805 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4804, ptr %rd.i4805, align 4 + %shr.i11.i4806 = lshr i32 %insn, 15 + %and.i12.i4807 = and i32 %shr.i11.i4806, 31 + %rs1.i4808 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4807, ptr %rs1.i4808, align 4 %call2207 = call fastcc zeroext i1 @trans_vmfle_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2207, label %return, label %sw.epilog3868 sw.bb2210: ; preds = %sw.bb2032 - %shr.i.i4827 = lshr i32 %insn, 20 - %and.i.i4828 = and i32 %shr.i.i4827, 31 - %rs2.i4829 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4828, ptr %rs2.i4829, align 4 - %shr.i7.i4830 = lshr i32 %insn, 25 - %and.i8.i4831 = and i32 %shr.i7.i4830, 1 - store i32 %and.i8.i4831, ptr %u, align 4 - %shr.i9.i4832 = lshr i32 %insn, 7 - %and.i10.i4833 = and i32 %shr.i9.i4832, 31 - %rd.i4834 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4833, ptr %rd.i4834, align 4 - %shr.i11.i4835 = lshr i32 %insn, 15 - %and.i12.i4836 = and i32 %shr.i11.i4835, 31 - %rs1.i4837 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4836, ptr %rs1.i4837, align 4 + %shr.i.i4809 = lshr i32 %insn, 20 + %and.i.i4810 = and i32 %shr.i.i4809, 31 + %rs2.i4811 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4810, ptr %rs2.i4811, align 4 + %shr.i7.i4812 = lshr i32 %insn, 25 + %and.i8.i4813 = and i32 %shr.i7.i4812, 1 + store i32 %and.i8.i4813, ptr %u, align 4 + %shr.i9.i4814 = lshr i32 %insn, 7 + %and.i10.i4815 = and i32 %shr.i9.i4814, 31 + %rd.i4816 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4815, ptr %rd.i4816, align 4 + %shr.i11.i4817 = lshr i32 %insn, 15 + %and.i12.i4818 = and i32 %shr.i11.i4817, 31 + %rs1.i4819 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4818, ptr %rs1.i4819, align 4 %call2211 = call fastcc zeroext i1 @trans_vmflt_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2211, label %return, label %sw.epilog3868 sw.bb2214: ; preds = %sw.bb2032 - %shr.i.i4838 = lshr i32 %insn, 20 - %and.i.i4839 = and i32 %shr.i.i4838, 31 - %rs2.i4840 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4839, ptr %rs2.i4840, align 4 - %shr.i7.i4841 = lshr i32 %insn, 25 - %and.i8.i4842 = and i32 %shr.i7.i4841, 1 - store i32 %and.i8.i4842, ptr %u, align 4 - %shr.i9.i4843 = lshr i32 %insn, 7 - %and.i10.i4844 = and i32 %shr.i9.i4843, 31 - %rd.i4845 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4844, ptr %rd.i4845, align 4 - %shr.i11.i4846 = lshr i32 %insn, 15 - %and.i12.i4847 = and i32 %shr.i11.i4846, 31 - %rs1.i4848 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4847, ptr %rs1.i4848, align 4 + %shr.i.i4820 = lshr i32 %insn, 20 + %and.i.i4821 = and i32 %shr.i.i4820, 31 + %rs2.i4822 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4821, ptr %rs2.i4822, align 4 + %shr.i7.i4823 = lshr i32 %insn, 25 + %and.i8.i4824 = and i32 %shr.i7.i4823, 1 + store i32 %and.i8.i4824, ptr %u, align 4 + %shr.i9.i4825 = lshr i32 %insn, 7 + %and.i10.i4826 = and i32 %shr.i9.i4825, 31 + %rd.i4827 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4826, ptr %rd.i4827, align 4 + %shr.i11.i4828 = lshr i32 %insn, 15 + %and.i12.i4829 = and i32 %shr.i11.i4828, 31 + %rs1.i4830 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4829, ptr %rs1.i4830, align 4 %call2215 = call fastcc zeroext i1 @trans_vmfne_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2215, label %return, label %sw.epilog3868 @@ -13511,268 +13489,268 @@ sw.bb2219: ; preds = %sw.bb1906 ] sw.bb2222: ; preds = %sw.bb2219 - %shr.i.i4849 = lshr i32 %insn, 20 - %and.i.i4850 = and i32 %shr.i.i4849, 31 - %rs2.i4851 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4850, ptr %rs2.i4851, align 4 - %shr.i7.i4852 = lshr i32 %insn, 25 - %and.i8.i4853 = and i32 %shr.i7.i4852, 1 - store i32 %and.i8.i4853, ptr %u, align 4 - %shr.i9.i4854 = lshr i32 %insn, 7 - %and.i10.i4855 = and i32 %shr.i9.i4854, 31 - %rd.i4856 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4855, ptr %rd.i4856, align 4 - %shr.i11.i4857 = lshr i32 %insn, 15 - %and.i12.i4858 = and i32 %shr.i11.i4857, 31 - %rs1.i4859 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4858, ptr %rs1.i4859, align 4 + %shr.i.i4831 = lshr i32 %insn, 20 + %and.i.i4832 = and i32 %shr.i.i4831, 31 + %rs2.i4833 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4832, ptr %rs2.i4833, align 4 + %shr.i7.i4834 = lshr i32 %insn, 25 + %and.i8.i4835 = and i32 %shr.i7.i4834, 1 + store i32 %and.i8.i4835, ptr %u, align 4 + %shr.i9.i4836 = lshr i32 %insn, 7 + %and.i10.i4837 = and i32 %shr.i9.i4836, 31 + %rd.i4838 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4837, ptr %rd.i4838, align 4 + %shr.i11.i4839 = lshr i32 %insn, 15 + %and.i12.i4840 = and i32 %shr.i11.i4839, 31 + %rs1.i4841 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4840, ptr %rs1.i4841, align 4 %call2223 = call fastcc zeroext i1 @trans_vredsum_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2223, label %return, label %sw.epilog3868 sw.bb2226: ; preds = %sw.bb2219 - %shr.i.i4860 = lshr i32 %insn, 20 - %and.i.i4861 = and i32 %shr.i.i4860, 31 - %rs2.i4862 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4861, ptr %rs2.i4862, align 4 - %shr.i7.i4863 = lshr i32 %insn, 25 - %and.i8.i4864 = and i32 %shr.i7.i4863, 1 - store i32 %and.i8.i4864, ptr %u, align 4 - %shr.i9.i4865 = lshr i32 %insn, 7 - %and.i10.i4866 = and i32 %shr.i9.i4865, 31 - %rd.i4867 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4866, ptr %rd.i4867, align 4 - %shr.i11.i4868 = lshr i32 %insn, 15 - %and.i12.i4869 = and i32 %shr.i11.i4868, 31 - %rs1.i4870 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4869, ptr %rs1.i4870, align 4 + %shr.i.i4842 = lshr i32 %insn, 20 + %and.i.i4843 = and i32 %shr.i.i4842, 31 + %rs2.i4844 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4843, ptr %rs2.i4844, align 4 + %shr.i7.i4845 = lshr i32 %insn, 25 + %and.i8.i4846 = and i32 %shr.i7.i4845, 1 + store i32 %and.i8.i4846, ptr %u, align 4 + %shr.i9.i4847 = lshr i32 %insn, 7 + %and.i10.i4848 = and i32 %shr.i9.i4847, 31 + %rd.i4849 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4848, ptr %rd.i4849, align 4 + %shr.i11.i4850 = lshr i32 %insn, 15 + %and.i12.i4851 = and i32 %shr.i11.i4850, 31 + %rs1.i4852 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4851, ptr %rs1.i4852, align 4 %call2227 = call fastcc zeroext i1 @trans_vredand_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2227, label %return, label %sw.epilog3868 sw.bb2230: ; preds = %sw.bb2219 - %shr.i.i4871 = lshr i32 %insn, 20 - %and.i.i4872 = and i32 %shr.i.i4871, 31 - %rs2.i4873 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4872, ptr %rs2.i4873, align 4 - %shr.i7.i4874 = lshr i32 %insn, 25 - %and.i8.i4875 = and i32 %shr.i7.i4874, 1 - store i32 %and.i8.i4875, ptr %u, align 4 - %shr.i9.i4876 = lshr i32 %insn, 7 - %and.i10.i4877 = and i32 %shr.i9.i4876, 31 - %rd.i4878 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4877, ptr %rd.i4878, align 4 - %shr.i11.i4879 = lshr i32 %insn, 15 - %and.i12.i4880 = and i32 %shr.i11.i4879, 31 - %rs1.i4881 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4880, ptr %rs1.i4881, align 4 + %shr.i.i4853 = lshr i32 %insn, 20 + %and.i.i4854 = and i32 %shr.i.i4853, 31 + %rs2.i4855 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4854, ptr %rs2.i4855, align 4 + %shr.i7.i4856 = lshr i32 %insn, 25 + %and.i8.i4857 = and i32 %shr.i7.i4856, 1 + store i32 %and.i8.i4857, ptr %u, align 4 + %shr.i9.i4858 = lshr i32 %insn, 7 + %and.i10.i4859 = and i32 %shr.i9.i4858, 31 + %rd.i4860 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4859, ptr %rd.i4860, align 4 + %shr.i11.i4861 = lshr i32 %insn, 15 + %and.i12.i4862 = and i32 %shr.i11.i4861, 31 + %rs1.i4863 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4862, ptr %rs1.i4863, align 4 %call2231 = call fastcc zeroext i1 @trans_vredor_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2231, label %return, label %sw.epilog3868 sw.bb2234: ; preds = %sw.bb2219 - %shr.i.i4882 = lshr i32 %insn, 20 - %and.i.i4883 = and i32 %shr.i.i4882, 31 - %rs2.i4884 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4883, ptr %rs2.i4884, align 4 - %shr.i7.i4885 = lshr i32 %insn, 25 - %and.i8.i4886 = and i32 %shr.i7.i4885, 1 - store i32 %and.i8.i4886, ptr %u, align 4 - %shr.i9.i4887 = lshr i32 %insn, 7 - %and.i10.i4888 = and i32 %shr.i9.i4887, 31 - %rd.i4889 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4888, ptr %rd.i4889, align 4 - %shr.i11.i4890 = lshr i32 %insn, 15 - %and.i12.i4891 = and i32 %shr.i11.i4890, 31 - %rs1.i4892 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4891, ptr %rs1.i4892, align 4 + %shr.i.i4864 = lshr i32 %insn, 20 + %and.i.i4865 = and i32 %shr.i.i4864, 31 + %rs2.i4866 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4865, ptr %rs2.i4866, align 4 + %shr.i7.i4867 = lshr i32 %insn, 25 + %and.i8.i4868 = and i32 %shr.i7.i4867, 1 + store i32 %and.i8.i4868, ptr %u, align 4 + %shr.i9.i4869 = lshr i32 %insn, 7 + %and.i10.i4870 = and i32 %shr.i9.i4869, 31 + %rd.i4871 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4870, ptr %rd.i4871, align 4 + %shr.i11.i4872 = lshr i32 %insn, 15 + %and.i12.i4873 = and i32 %shr.i11.i4872, 31 + %rs1.i4874 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4873, ptr %rs1.i4874, align 4 %call2235 = call fastcc zeroext i1 @trans_vredxor_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2235, label %return, label %sw.epilog3868 sw.bb2238: ; preds = %sw.bb2219 - %shr.i.i4893 = lshr i32 %insn, 20 - %and.i.i4894 = and i32 %shr.i.i4893, 31 - %rs2.i4895 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4894, ptr %rs2.i4895, align 4 - %shr.i7.i4896 = lshr i32 %insn, 25 - %and.i8.i4897 = and i32 %shr.i7.i4896, 1 - store i32 %and.i8.i4897, ptr %u, align 4 - %shr.i9.i4898 = lshr i32 %insn, 7 - %and.i10.i4899 = and i32 %shr.i9.i4898, 31 - %rd.i4900 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4899, ptr %rd.i4900, align 4 - %shr.i11.i4901 = lshr i32 %insn, 15 - %and.i12.i4902 = and i32 %shr.i11.i4901, 31 - %rs1.i4903 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4902, ptr %rs1.i4903, align 4 + %shr.i.i4875 = lshr i32 %insn, 20 + %and.i.i4876 = and i32 %shr.i.i4875, 31 + %rs2.i4877 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4876, ptr %rs2.i4877, align 4 + %shr.i7.i4878 = lshr i32 %insn, 25 + %and.i8.i4879 = and i32 %shr.i7.i4878, 1 + store i32 %and.i8.i4879, ptr %u, align 4 + %shr.i9.i4880 = lshr i32 %insn, 7 + %and.i10.i4881 = and i32 %shr.i9.i4880, 31 + %rd.i4882 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4881, ptr %rd.i4882, align 4 + %shr.i11.i4883 = lshr i32 %insn, 15 + %and.i12.i4884 = and i32 %shr.i11.i4883, 31 + %rs1.i4885 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4884, ptr %rs1.i4885, align 4 %call2239 = call fastcc zeroext i1 @trans_vredminu_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2239, label %return, label %sw.epilog3868 sw.bb2242: ; preds = %sw.bb2219 - %shr.i.i4904 = lshr i32 %insn, 20 - %and.i.i4905 = and i32 %shr.i.i4904, 31 - %rs2.i4906 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4905, ptr %rs2.i4906, align 4 - %shr.i7.i4907 = lshr i32 %insn, 25 - %and.i8.i4908 = and i32 %shr.i7.i4907, 1 - store i32 %and.i8.i4908, ptr %u, align 4 - %shr.i9.i4909 = lshr i32 %insn, 7 - %and.i10.i4910 = and i32 %shr.i9.i4909, 31 - %rd.i4911 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4910, ptr %rd.i4911, align 4 - %shr.i11.i4912 = lshr i32 %insn, 15 - %and.i12.i4913 = and i32 %shr.i11.i4912, 31 - %rs1.i4914 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4913, ptr %rs1.i4914, align 4 + %shr.i.i4886 = lshr i32 %insn, 20 + %and.i.i4887 = and i32 %shr.i.i4886, 31 + %rs2.i4888 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4887, ptr %rs2.i4888, align 4 + %shr.i7.i4889 = lshr i32 %insn, 25 + %and.i8.i4890 = and i32 %shr.i7.i4889, 1 + store i32 %and.i8.i4890, ptr %u, align 4 + %shr.i9.i4891 = lshr i32 %insn, 7 + %and.i10.i4892 = and i32 %shr.i9.i4891, 31 + %rd.i4893 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4892, ptr %rd.i4893, align 4 + %shr.i11.i4894 = lshr i32 %insn, 15 + %and.i12.i4895 = and i32 %shr.i11.i4894, 31 + %rs1.i4896 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4895, ptr %rs1.i4896, align 4 %call2243 = call fastcc zeroext i1 @trans_vredmin_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2243, label %return, label %sw.epilog3868 sw.bb2246: ; preds = %sw.bb2219 - %shr.i.i4915 = lshr i32 %insn, 20 - %and.i.i4916 = and i32 %shr.i.i4915, 31 - %rs2.i4917 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4916, ptr %rs2.i4917, align 4 - %shr.i7.i4918 = lshr i32 %insn, 25 - %and.i8.i4919 = and i32 %shr.i7.i4918, 1 - store i32 %and.i8.i4919, ptr %u, align 4 - %shr.i9.i4920 = lshr i32 %insn, 7 - %and.i10.i4921 = and i32 %shr.i9.i4920, 31 - %rd.i4922 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4921, ptr %rd.i4922, align 4 - %shr.i11.i4923 = lshr i32 %insn, 15 - %and.i12.i4924 = and i32 %shr.i11.i4923, 31 - %rs1.i4925 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4924, ptr %rs1.i4925, align 4 + %shr.i.i4897 = lshr i32 %insn, 20 + %and.i.i4898 = and i32 %shr.i.i4897, 31 + %rs2.i4899 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4898, ptr %rs2.i4899, align 4 + %shr.i7.i4900 = lshr i32 %insn, 25 + %and.i8.i4901 = and i32 %shr.i7.i4900, 1 + store i32 %and.i8.i4901, ptr %u, align 4 + %shr.i9.i4902 = lshr i32 %insn, 7 + %and.i10.i4903 = and i32 %shr.i9.i4902, 31 + %rd.i4904 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4903, ptr %rd.i4904, align 4 + %shr.i11.i4905 = lshr i32 %insn, 15 + %and.i12.i4906 = and i32 %shr.i11.i4905, 31 + %rs1.i4907 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4906, ptr %rs1.i4907, align 4 %call2247 = call fastcc zeroext i1 @trans_vredmaxu_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2247, label %return, label %sw.epilog3868 sw.bb2250: ; preds = %sw.bb2219 - %shr.i.i4926 = lshr i32 %insn, 20 - %and.i.i4927 = and i32 %shr.i.i4926, 31 - %rs2.i4928 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4927, ptr %rs2.i4928, align 4 - %shr.i7.i4929 = lshr i32 %insn, 25 - %and.i8.i4930 = and i32 %shr.i7.i4929, 1 - store i32 %and.i8.i4930, ptr %u, align 4 - %shr.i9.i4931 = lshr i32 %insn, 7 - %and.i10.i4932 = and i32 %shr.i9.i4931, 31 - %rd.i4933 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4932, ptr %rd.i4933, align 4 - %shr.i11.i4934 = lshr i32 %insn, 15 - %and.i12.i4935 = and i32 %shr.i11.i4934, 31 - %rs1.i4936 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4935, ptr %rs1.i4936, align 4 + %shr.i.i4908 = lshr i32 %insn, 20 + %and.i.i4909 = and i32 %shr.i.i4908, 31 + %rs2.i4910 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4909, ptr %rs2.i4910, align 4 + %shr.i7.i4911 = lshr i32 %insn, 25 + %and.i8.i4912 = and i32 %shr.i7.i4911, 1 + store i32 %and.i8.i4912, ptr %u, align 4 + %shr.i9.i4913 = lshr i32 %insn, 7 + %and.i10.i4914 = and i32 %shr.i9.i4913, 31 + %rd.i4915 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4914, ptr %rd.i4915, align 4 + %shr.i11.i4916 = lshr i32 %insn, 15 + %and.i12.i4917 = and i32 %shr.i11.i4916, 31 + %rs1.i4918 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4917, ptr %rs1.i4918, align 4 %call2251 = call fastcc zeroext i1 @trans_vredmax_vs(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2251, label %return, label %sw.epilog3868 sw.bb2254: ; preds = %sw.bb2219 - %shr.i.i4937 = lshr i32 %insn, 20 - %and.i.i4938 = and i32 %shr.i.i4937, 31 - %rs2.i4939 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4938, ptr %rs2.i4939, align 4 - %shr.i7.i4940 = lshr i32 %insn, 25 - %and.i8.i4941 = and i32 %shr.i7.i4940, 1 - store i32 %and.i8.i4941, ptr %u, align 4 - %shr.i9.i4942 = lshr i32 %insn, 7 - %and.i10.i4943 = and i32 %shr.i9.i4942, 31 - %rd.i4944 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4943, ptr %rd.i4944, align 4 - %shr.i11.i4945 = lshr i32 %insn, 15 - %and.i12.i4946 = and i32 %shr.i11.i4945, 31 - %rs1.i4947 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4946, ptr %rs1.i4947, align 4 + %shr.i.i4919 = lshr i32 %insn, 20 + %and.i.i4920 = and i32 %shr.i.i4919, 31 + %rs2.i4921 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4920, ptr %rs2.i4921, align 4 + %shr.i7.i4922 = lshr i32 %insn, 25 + %and.i8.i4923 = and i32 %shr.i7.i4922, 1 + store i32 %and.i8.i4923, ptr %u, align 4 + %shr.i9.i4924 = lshr i32 %insn, 7 + %and.i10.i4925 = and i32 %shr.i9.i4924, 31 + %rd.i4926 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4925, ptr %rd.i4926, align 4 + %shr.i11.i4927 = lshr i32 %insn, 15 + %and.i12.i4928 = and i32 %shr.i11.i4927, 31 + %rs1.i4929 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4928, ptr %rs1.i4929, align 4 %call2255 = call fastcc zeroext i1 @trans_vaaddu_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2255, label %return, label %sw.epilog3868 sw.bb2258: ; preds = %sw.bb2219 - %shr.i.i4948 = lshr i32 %insn, 20 - %and.i.i4949 = and i32 %shr.i.i4948, 31 - %rs2.i4950 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4949, ptr %rs2.i4950, align 4 - %shr.i7.i4951 = lshr i32 %insn, 25 - %and.i8.i4952 = and i32 %shr.i7.i4951, 1 - store i32 %and.i8.i4952, ptr %u, align 4 - %shr.i9.i4953 = lshr i32 %insn, 7 - %and.i10.i4954 = and i32 %shr.i9.i4953, 31 - %rd.i4955 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4954, ptr %rd.i4955, align 4 - %shr.i11.i4956 = lshr i32 %insn, 15 - %and.i12.i4957 = and i32 %shr.i11.i4956, 31 - %rs1.i4958 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4957, ptr %rs1.i4958, align 4 + %shr.i.i4930 = lshr i32 %insn, 20 + %and.i.i4931 = and i32 %shr.i.i4930, 31 + %rs2.i4932 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4931, ptr %rs2.i4932, align 4 + %shr.i7.i4933 = lshr i32 %insn, 25 + %and.i8.i4934 = and i32 %shr.i7.i4933, 1 + store i32 %and.i8.i4934, ptr %u, align 4 + %shr.i9.i4935 = lshr i32 %insn, 7 + %and.i10.i4936 = and i32 %shr.i9.i4935, 31 + %rd.i4937 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4936, ptr %rd.i4937, align 4 + %shr.i11.i4938 = lshr i32 %insn, 15 + %and.i12.i4939 = and i32 %shr.i11.i4938, 31 + %rs1.i4940 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4939, ptr %rs1.i4940, align 4 %call2259 = call fastcc zeroext i1 @trans_vaadd_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2259, label %return, label %sw.epilog3868 sw.bb2262: ; preds = %sw.bb2219 - %shr.i.i4959 = lshr i32 %insn, 20 - %and.i.i4960 = and i32 %shr.i.i4959, 31 - %rs2.i4961 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4960, ptr %rs2.i4961, align 4 - %shr.i7.i4962 = lshr i32 %insn, 25 - %and.i8.i4963 = and i32 %shr.i7.i4962, 1 - store i32 %and.i8.i4963, ptr %u, align 4 - %shr.i9.i4964 = lshr i32 %insn, 7 - %and.i10.i4965 = and i32 %shr.i9.i4964, 31 - %rd.i4966 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4965, ptr %rd.i4966, align 4 - %shr.i11.i4967 = lshr i32 %insn, 15 - %and.i12.i4968 = and i32 %shr.i11.i4967, 31 - %rs1.i4969 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4968, ptr %rs1.i4969, align 4 + %shr.i.i4941 = lshr i32 %insn, 20 + %and.i.i4942 = and i32 %shr.i.i4941, 31 + %rs2.i4943 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4942, ptr %rs2.i4943, align 4 + %shr.i7.i4944 = lshr i32 %insn, 25 + %and.i8.i4945 = and i32 %shr.i7.i4944, 1 + store i32 %and.i8.i4945, ptr %u, align 4 + %shr.i9.i4946 = lshr i32 %insn, 7 + %and.i10.i4947 = and i32 %shr.i9.i4946, 31 + %rd.i4948 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4947, ptr %rd.i4948, align 4 + %shr.i11.i4949 = lshr i32 %insn, 15 + %and.i12.i4950 = and i32 %shr.i11.i4949, 31 + %rs1.i4951 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4950, ptr %rs1.i4951, align 4 %call2263 = call fastcc zeroext i1 @trans_vasubu_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2263, label %return, label %sw.epilog3868 sw.bb2266: ; preds = %sw.bb2219 - %shr.i.i4970 = lshr i32 %insn, 20 - %and.i.i4971 = and i32 %shr.i.i4970, 31 - %rs2.i4972 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4971, ptr %rs2.i4972, align 4 - %shr.i7.i4973 = lshr i32 %insn, 25 - %and.i8.i4974 = and i32 %shr.i7.i4973, 1 - store i32 %and.i8.i4974, ptr %u, align 4 - %shr.i9.i4975 = lshr i32 %insn, 7 - %and.i10.i4976 = and i32 %shr.i9.i4975, 31 - %rd.i4977 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4976, ptr %rd.i4977, align 4 - %shr.i11.i4978 = lshr i32 %insn, 15 - %and.i12.i4979 = and i32 %shr.i11.i4978, 31 - %rs1.i4980 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4979, ptr %rs1.i4980, align 4 + %shr.i.i4952 = lshr i32 %insn, 20 + %and.i.i4953 = and i32 %shr.i.i4952, 31 + %rs2.i4954 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4953, ptr %rs2.i4954, align 4 + %shr.i7.i4955 = lshr i32 %insn, 25 + %and.i8.i4956 = and i32 %shr.i7.i4955, 1 + store i32 %and.i8.i4956, ptr %u, align 4 + %shr.i9.i4957 = lshr i32 %insn, 7 + %and.i10.i4958 = and i32 %shr.i9.i4957, 31 + %rd.i4959 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4958, ptr %rd.i4959, align 4 + %shr.i11.i4960 = lshr i32 %insn, 15 + %and.i12.i4961 = and i32 %shr.i11.i4960, 31 + %rs1.i4962 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4961, ptr %rs1.i4962, align 4 %call2267 = call fastcc zeroext i1 @trans_vasub_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2267, label %return, label %sw.epilog3868 sw.bb2270: ; preds = %sw.bb2219 - %shr.i.i4981 = lshr i32 %insn, 20 - %and.i.i4982 = and i32 %shr.i.i4981, 31 - %rs2.i4983 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4982, ptr %rs2.i4983, align 4 - %shr.i7.i4984 = lshr i32 %insn, 25 - %and.i8.i4985 = and i32 %shr.i7.i4984, 1 - store i32 %and.i8.i4985, ptr %u, align 4 - %shr.i9.i4986 = lshr i32 %insn, 7 - %and.i10.i4987 = and i32 %shr.i9.i4986, 31 - %rd.i4988 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4987, ptr %rd.i4988, align 4 - %shr.i11.i4989 = lshr i32 %insn, 15 - %and.i12.i4990 = and i32 %shr.i11.i4989, 31 - %rs1.i4991 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i4990, ptr %rs1.i4991, align 4 + %shr.i.i4963 = lshr i32 %insn, 20 + %and.i.i4964 = and i32 %shr.i.i4963, 31 + %rs2.i4965 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4964, ptr %rs2.i4965, align 4 + %shr.i7.i4966 = lshr i32 %insn, 25 + %and.i8.i4967 = and i32 %shr.i7.i4966, 1 + store i32 %and.i8.i4967, ptr %u, align 4 + %shr.i9.i4968 = lshr i32 %insn, 7 + %and.i10.i4969 = and i32 %shr.i9.i4968, 31 + %rd.i4970 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4969, ptr %rd.i4970, align 4 + %shr.i11.i4971 = lshr i32 %insn, 15 + %and.i12.i4972 = and i32 %shr.i11.i4971, 31 + %rs1.i4973 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4972, ptr %rs1.i4973, align 4 %call2271 = call fastcc zeroext i1 @trans_vclmul_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2271, label %return, label %sw.epilog3868 sw.bb2274: ; preds = %sw.bb2219 - %shr.i.i4992 = lshr i32 %insn, 20 - %and.i.i4993 = and i32 %shr.i.i4992, 31 - %rs2.i4994 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i4993, ptr %rs2.i4994, align 4 - %shr.i7.i4995 = lshr i32 %insn, 25 - %and.i8.i4996 = and i32 %shr.i7.i4995, 1 - store i32 %and.i8.i4996, ptr %u, align 4 - %shr.i9.i4997 = lshr i32 %insn, 7 - %and.i10.i4998 = and i32 %shr.i9.i4997, 31 - %rd.i4999 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i4998, ptr %rd.i4999, align 4 - %shr.i11.i5000 = lshr i32 %insn, 15 - %and.i12.i5001 = and i32 %shr.i11.i5000, 31 - %rs1.i5002 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5001, ptr %rs1.i5002, align 4 + %shr.i.i4974 = lshr i32 %insn, 20 + %and.i.i4975 = and i32 %shr.i.i4974, 31 + %rs2.i4976 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i4975, ptr %rs2.i4976, align 4 + %shr.i7.i4977 = lshr i32 %insn, 25 + %and.i8.i4978 = and i32 %shr.i7.i4977, 1 + store i32 %and.i8.i4978, ptr %u, align 4 + %shr.i9.i4979 = lshr i32 %insn, 7 + %and.i10.i4980 = and i32 %shr.i9.i4979, 31 + %rd.i4981 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i4980, ptr %rd.i4981, align 4 + %shr.i11.i4982 = lshr i32 %insn, 15 + %and.i12.i4983 = and i32 %shr.i11.i4982, 31 + %rs1.i4984 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i4983, ptr %rs1.i4984, align 4 %call2275 = call fastcc zeroext i1 @trans_vclmulh_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2275, label %return, label %sw.epilog3868 @@ -13786,13 +13764,13 @@ sw.bb2278: ; preds = %sw.bb2219 ] sw.bb2281: ; preds = %sw.bb2278 - %shr.i.i5003 = lshr i32 %insn, 20 - %and.i.i5004 = and i32 %shr.i.i5003, 31 - store i32 %and.i.i5004, ptr %u, align 4 - %shr.i3.i5005 = lshr i32 %insn, 7 - %and.i4.i5006 = and i32 %shr.i3.i5005, 31 - %rd.i5007 = getelementptr inbounds %struct.arg_decode_insn3221, ptr %u, i64 0, i32 1 - store i32 %and.i4.i5006, ptr %rd.i5007, align 4 + %shr.i.i4985 = lshr i32 %insn, 20 + %and.i.i4986 = and i32 %shr.i.i4985, 31 + store i32 %and.i.i4986, ptr %u, align 4 + %shr.i3.i4987 = lshr i32 %insn, 7 + %and.i4.i4988 = and i32 %shr.i3.i4987, 31 + %rd.i4989 = getelementptr inbounds %struct.arg_decode_insn3221, ptr %u, i64 0, i32 1 + store i32 %and.i4.i4988, ptr %rd.i4989, align 4 %220 = and i32 %insn, 33554432 %cond24.not = icmp eq i32 %220, 0 br i1 %cond24.not, label %sw.epilog3868, label %sw.bb2284 @@ -13802,47 +13780,47 @@ sw.bb2284: ; preds = %sw.bb2281 br i1 %call2285, label %return, label %sw.epilog3868 sw.bb2289: ; preds = %sw.bb2278 - %shr.i.i5008 = lshr i32 %insn, 20 - %and.i.i5009 = and i32 %shr.i.i5008, 31 - %rs2.i5010 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i5009, ptr %rs2.i5010, align 4 - %shr.i5.i5011 = lshr i32 %insn, 25 - %and.i6.i5012 = and i32 %shr.i5.i5011, 1 - store i32 %and.i6.i5012, ptr %u, align 4 - %shr.i7.i5013 = lshr i32 %insn, 7 - %and.i8.i5014 = and i32 %shr.i7.i5013, 31 - %rd.i5015 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5014, ptr %rd.i5015, align 4 + %shr.i.i4990 = lshr i32 %insn, 20 + %and.i.i4991 = and i32 %shr.i.i4990, 31 + %rs2.i4992 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i4991, ptr %rs2.i4992, align 4 + %shr.i5.i4993 = lshr i32 %insn, 25 + %and.i6.i4994 = and i32 %shr.i5.i4993, 1 + store i32 %and.i6.i4994, ptr %u, align 4 + %shr.i7.i4995 = lshr i32 %insn, 7 + %and.i8.i4996 = and i32 %shr.i7.i4995, 31 + %rd.i4997 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i4996, ptr %rd.i4997, align 4 %call2290 = call fastcc zeroext i1 @trans_vcpop_m(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2290, label %return, label %sw.epilog3868 sw.bb2293: ; preds = %sw.bb2278 - %shr.i.i5016 = lshr i32 %insn, 20 - %and.i.i5017 = and i32 %shr.i.i5016, 31 - %rs2.i5018 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i5017, ptr %rs2.i5018, align 4 - %shr.i5.i5019 = lshr i32 %insn, 25 - %and.i6.i5020 = and i32 %shr.i5.i5019, 1 - store i32 %and.i6.i5020, ptr %u, align 4 - %shr.i7.i5021 = lshr i32 %insn, 7 - %and.i8.i5022 = and i32 %shr.i7.i5021, 31 - %rd.i5023 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5022, ptr %rd.i5023, align 4 + %shr.i.i4998 = lshr i32 %insn, 20 + %and.i.i4999 = and i32 %shr.i.i4998, 31 + %rs2.i5000 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i4999, ptr %rs2.i5000, align 4 + %shr.i5.i5001 = lshr i32 %insn, 25 + %and.i6.i5002 = and i32 %shr.i5.i5001, 1 + store i32 %and.i6.i5002, ptr %u, align 4 + %shr.i7.i5003 = lshr i32 %insn, 7 + %and.i8.i5004 = and i32 %shr.i7.i5003, 31 + %rd.i5005 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5004, ptr %rd.i5005, align 4 %call2294 = call fastcc zeroext i1 @trans_vfirst_m(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2294, label %return, label %sw.epilog3868 sw.bb2298: ; preds = %sw.bb2219 - %shr.i.i5024 = lshr i32 %insn, 20 - %and.i.i5025 = and i32 %shr.i.i5024, 31 - %rs2.i5026 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i5025, ptr %rs2.i5026, align 4 - %shr.i5.i5027 = lshr i32 %insn, 25 - %and.i6.i5028 = and i32 %shr.i5.i5027, 1 - store i32 %and.i6.i5028, ptr %u, align 4 - %shr.i7.i5029 = lshr i32 %insn, 7 - %and.i8.i5030 = and i32 %shr.i7.i5029, 31 - %rd.i5031 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5030, ptr %rd.i5031, align 4 + %shr.i.i5006 = lshr i32 %insn, 20 + %and.i.i5007 = and i32 %shr.i.i5006, 31 + %rs2.i5008 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i5007, ptr %rs2.i5008, align 4 + %shr.i5.i5009 = lshr i32 %insn, 25 + %and.i6.i5010 = and i32 %shr.i5.i5009, 1 + store i32 %and.i6.i5010, ptr %u, align 4 + %shr.i7.i5011 = lshr i32 %insn, 7 + %and.i8.i5012 = and i32 %shr.i7.i5011, 31 + %rd.i5013 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5012, ptr %rd.i5013, align 4 %shr2299 = lshr i32 %insn, 15 %and2300 = and i32 %shr2299, 31 switch i32 %and2300, label %sw.epilog3868 [ @@ -13920,73 +13898,73 @@ sw.bb2350: ; preds = %sw.bb2219 ] sw.bb2353: ; preds = %sw.bb2350 - %shr.i.i5032 = lshr i32 %insn, 20 - %and.i.i5033 = and i32 %shr.i.i5032, 31 - %rs2.i5034 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i5033, ptr %rs2.i5034, align 4 - %shr.i5.i5035 = lshr i32 %insn, 25 - %and.i6.i5036 = and i32 %shr.i5.i5035, 1 - store i32 %and.i6.i5036, ptr %u, align 4 - %shr.i7.i5037 = lshr i32 %insn, 7 - %and.i8.i5038 = and i32 %shr.i7.i5037, 31 - %rd.i5039 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5038, ptr %rd.i5039, align 4 + %shr.i.i5014 = lshr i32 %insn, 20 + %and.i.i5015 = and i32 %shr.i.i5014, 31 + %rs2.i5016 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i5015, ptr %rs2.i5016, align 4 + %shr.i5.i5017 = lshr i32 %insn, 25 + %and.i6.i5018 = and i32 %shr.i5.i5017, 1 + store i32 %and.i6.i5018, ptr %u, align 4 + %shr.i7.i5019 = lshr i32 %insn, 7 + %and.i8.i5020 = and i32 %shr.i7.i5019, 31 + %rd.i5021 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5020, ptr %rd.i5021, align 4 %call2354 = call fastcc zeroext i1 @trans_vmsbf_m(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2354, label %return, label %sw.epilog3868 sw.bb2357: ; preds = %sw.bb2350 - %shr.i.i5040 = lshr i32 %insn, 20 - %and.i.i5041 = and i32 %shr.i.i5040, 31 - %rs2.i5042 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i5041, ptr %rs2.i5042, align 4 - %shr.i5.i5043 = lshr i32 %insn, 25 - %and.i6.i5044 = and i32 %shr.i5.i5043, 1 - store i32 %and.i6.i5044, ptr %u, align 4 - %shr.i7.i5045 = lshr i32 %insn, 7 - %and.i8.i5046 = and i32 %shr.i7.i5045, 31 - %rd.i5047 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5046, ptr %rd.i5047, align 4 + %shr.i.i5022 = lshr i32 %insn, 20 + %and.i.i5023 = and i32 %shr.i.i5022, 31 + %rs2.i5024 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i5023, ptr %rs2.i5024, align 4 + %shr.i5.i5025 = lshr i32 %insn, 25 + %and.i6.i5026 = and i32 %shr.i5.i5025, 1 + store i32 %and.i6.i5026, ptr %u, align 4 + %shr.i7.i5027 = lshr i32 %insn, 7 + %and.i8.i5028 = and i32 %shr.i7.i5027, 31 + %rd.i5029 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5028, ptr %rd.i5029, align 4 %call2358 = call fastcc zeroext i1 @trans_vmsof_m(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2358, label %return, label %sw.epilog3868 sw.bb2361: ; preds = %sw.bb2350 - %shr.i.i5048 = lshr i32 %insn, 20 - %and.i.i5049 = and i32 %shr.i.i5048, 31 - %rs2.i5050 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i5049, ptr %rs2.i5050, align 4 - %shr.i5.i5051 = lshr i32 %insn, 25 - %and.i6.i5052 = and i32 %shr.i5.i5051, 1 - store i32 %and.i6.i5052, ptr %u, align 4 - %shr.i7.i5053 = lshr i32 %insn, 7 - %and.i8.i5054 = and i32 %shr.i7.i5053, 31 - %rd.i5055 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5054, ptr %rd.i5055, align 4 + %shr.i.i5030 = lshr i32 %insn, 20 + %and.i.i5031 = and i32 %shr.i.i5030, 31 + %rs2.i5032 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i5031, ptr %rs2.i5032, align 4 + %shr.i5.i5033 = lshr i32 %insn, 25 + %and.i6.i5034 = and i32 %shr.i5.i5033, 1 + store i32 %and.i6.i5034, ptr %u, align 4 + %shr.i7.i5035 = lshr i32 %insn, 7 + %and.i8.i5036 = and i32 %shr.i7.i5035, 31 + %rd.i5037 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5036, ptr %rd.i5037, align 4 %call2362 = call fastcc zeroext i1 @trans_vmsif_m(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2362, label %return, label %sw.epilog3868 sw.bb2365: ; preds = %sw.bb2350 - %shr.i.i5056 = lshr i32 %insn, 20 - %and.i.i5057 = and i32 %shr.i.i5056, 31 - %rs2.i5058 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i5057, ptr %rs2.i5058, align 4 - %shr.i5.i5059 = lshr i32 %insn, 25 - %and.i6.i5060 = and i32 %shr.i5.i5059, 1 - store i32 %and.i6.i5060, ptr %u, align 4 - %shr.i7.i5061 = lshr i32 %insn, 7 - %and.i8.i5062 = and i32 %shr.i7.i5061, 31 - %rd.i5063 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5062, ptr %rd.i5063, align 4 + %shr.i.i5038 = lshr i32 %insn, 20 + %and.i.i5039 = and i32 %shr.i.i5038, 31 + %rs2.i5040 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i5039, ptr %rs2.i5040, align 4 + %shr.i5.i5041 = lshr i32 %insn, 25 + %and.i6.i5042 = and i32 %shr.i5.i5041, 1 + store i32 %and.i6.i5042, ptr %u, align 4 + %shr.i7.i5043 = lshr i32 %insn, 7 + %and.i8.i5044 = and i32 %shr.i7.i5043, 31 + %rd.i5045 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5044, ptr %rd.i5045, align 4 %call2366 = call fastcc zeroext i1 @trans_viota_m(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2366, label %return, label %sw.epilog3868 sw.bb2369: ; preds = %sw.bb2350 - %shr.i.i5064 = lshr i32 %insn, 25 - %and.i.i5065 = and i32 %shr.i.i5064, 1 - store i32 %and.i.i5065, ptr %u, align 4 - %shr.i3.i5066 = lshr i32 %insn, 7 - %and.i4.i5067 = and i32 %shr.i3.i5066, 31 - %rd.i5068 = getelementptr inbounds %struct.arg_decode_insn3220, ptr %u, i64 0, i32 1 - store i32 %and.i4.i5067, ptr %rd.i5068, align 4 + %shr.i.i5046 = lshr i32 %insn, 25 + %and.i.i5047 = and i32 %shr.i.i5046, 1 + store i32 %and.i.i5047, ptr %u, align 4 + %shr.i3.i5048 = lshr i32 %insn, 7 + %and.i4.i5049 = and i32 %shr.i3.i5048, 31 + %rd.i5050 = getelementptr inbounds %struct.arg_decode_insn3220, ptr %u, i64 0, i32 1 + store i32 %and.i4.i5049, ptr %rd.i5050, align 4 %221 = and i32 %insn, 32505856 %cond23 = icmp eq i32 %221, 0 br i1 %cond23, label %sw.bb2372, label %sw.epilog3868 @@ -13996,137 +13974,137 @@ sw.bb2372: ; preds = %sw.bb2369 br i1 %call2373, label %return, label %sw.epilog3868 sw.bb2378: ; preds = %sw.bb2219 - %shr.i.i5069 = lshr i32 %insn, 20 - %and.i.i5070 = and i32 %shr.i.i5069, 31 - %rs2.i5071 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5070, ptr %rs2.i5071, align 4 - %shr.i5.i5072 = lshr i32 %insn, 7 - %and.i6.i5073 = and i32 %shr.i5.i5072, 31 - store i32 %and.i6.i5073, ptr %u, align 4 - %shr.i7.i5074 = lshr i32 %insn, 15 - %and.i8.i5075 = and i32 %shr.i7.i5074, 31 - %rs1.i5076 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5075, ptr %rs1.i5076, align 4 + %shr.i.i5051 = lshr i32 %insn, 20 + %and.i.i5052 = and i32 %shr.i.i5051, 31 + %rs2.i5053 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5052, ptr %rs2.i5053, align 4 + %shr.i5.i5054 = lshr i32 %insn, 7 + %and.i6.i5055 = and i32 %shr.i5.i5054, 31 + store i32 %and.i6.i5055, ptr %u, align 4 + %shr.i7.i5056 = lshr i32 %insn, 15 + %and.i8.i5057 = and i32 %shr.i7.i5056, 31 + %rs1.i5058 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5057, ptr %rs1.i5058, align 4 %call2379 = call fastcc zeroext i1 @trans_vcompress_vm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2379, label %return, label %sw.epilog3868 sw.bb2382: ; preds = %sw.bb2219 - %shr.i.i5077 = lshr i32 %insn, 20 - %and.i.i5078 = and i32 %shr.i.i5077, 31 - %rs2.i5079 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5078, ptr %rs2.i5079, align 4 - %shr.i5.i5080 = lshr i32 %insn, 7 - %and.i6.i5081 = and i32 %shr.i5.i5080, 31 - store i32 %and.i6.i5081, ptr %u, align 4 - %shr.i7.i5082 = lshr i32 %insn, 15 - %and.i8.i5083 = and i32 %shr.i7.i5082, 31 - %rs1.i5084 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5083, ptr %rs1.i5084, align 4 + %shr.i.i5059 = lshr i32 %insn, 20 + %and.i.i5060 = and i32 %shr.i.i5059, 31 + %rs2.i5061 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5060, ptr %rs2.i5061, align 4 + %shr.i5.i5062 = lshr i32 %insn, 7 + %and.i6.i5063 = and i32 %shr.i5.i5062, 31 + store i32 %and.i6.i5063, ptr %u, align 4 + %shr.i7.i5064 = lshr i32 %insn, 15 + %and.i8.i5065 = and i32 %shr.i7.i5064, 31 + %rs1.i5066 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5065, ptr %rs1.i5066, align 4 %call2383 = call fastcc zeroext i1 @trans_vmandn_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2383, label %return, label %sw.epilog3868 sw.bb2386: ; preds = %sw.bb2219 - %shr.i.i5085 = lshr i32 %insn, 20 - %and.i.i5086 = and i32 %shr.i.i5085, 31 - %rs2.i5087 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5086, ptr %rs2.i5087, align 4 - %shr.i5.i5088 = lshr i32 %insn, 7 - %and.i6.i5089 = and i32 %shr.i5.i5088, 31 - store i32 %and.i6.i5089, ptr %u, align 4 - %shr.i7.i5090 = lshr i32 %insn, 15 - %and.i8.i5091 = and i32 %shr.i7.i5090, 31 - %rs1.i5092 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5091, ptr %rs1.i5092, align 4 + %shr.i.i5067 = lshr i32 %insn, 20 + %and.i.i5068 = and i32 %shr.i.i5067, 31 + %rs2.i5069 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5068, ptr %rs2.i5069, align 4 + %shr.i5.i5070 = lshr i32 %insn, 7 + %and.i6.i5071 = and i32 %shr.i5.i5070, 31 + store i32 %and.i6.i5071, ptr %u, align 4 + %shr.i7.i5072 = lshr i32 %insn, 15 + %and.i8.i5073 = and i32 %shr.i7.i5072, 31 + %rs1.i5074 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5073, ptr %rs1.i5074, align 4 %call2387 = call fastcc zeroext i1 @trans_vmand_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2387, label %return, label %sw.epilog3868 sw.bb2390: ; preds = %sw.bb2219 - %shr.i.i5093 = lshr i32 %insn, 20 - %and.i.i5094 = and i32 %shr.i.i5093, 31 - %rs2.i5095 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5094, ptr %rs2.i5095, align 4 - %shr.i5.i5096 = lshr i32 %insn, 7 - %and.i6.i5097 = and i32 %shr.i5.i5096, 31 - store i32 %and.i6.i5097, ptr %u, align 4 - %shr.i7.i5098 = lshr i32 %insn, 15 - %and.i8.i5099 = and i32 %shr.i7.i5098, 31 - %rs1.i5100 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5099, ptr %rs1.i5100, align 4 + %shr.i.i5075 = lshr i32 %insn, 20 + %and.i.i5076 = and i32 %shr.i.i5075, 31 + %rs2.i5077 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5076, ptr %rs2.i5077, align 4 + %shr.i5.i5078 = lshr i32 %insn, 7 + %and.i6.i5079 = and i32 %shr.i5.i5078, 31 + store i32 %and.i6.i5079, ptr %u, align 4 + %shr.i7.i5080 = lshr i32 %insn, 15 + %and.i8.i5081 = and i32 %shr.i7.i5080, 31 + %rs1.i5082 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5081, ptr %rs1.i5082, align 4 %call2391 = call fastcc zeroext i1 @trans_vmor_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2391, label %return, label %sw.epilog3868 sw.bb2394: ; preds = %sw.bb2219 - %shr.i.i5101 = lshr i32 %insn, 20 - %and.i.i5102 = and i32 %shr.i.i5101, 31 - %rs2.i5103 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5102, ptr %rs2.i5103, align 4 - %shr.i5.i5104 = lshr i32 %insn, 7 - %and.i6.i5105 = and i32 %shr.i5.i5104, 31 - store i32 %and.i6.i5105, ptr %u, align 4 - %shr.i7.i5106 = lshr i32 %insn, 15 - %and.i8.i5107 = and i32 %shr.i7.i5106, 31 - %rs1.i5108 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5107, ptr %rs1.i5108, align 4 + %shr.i.i5083 = lshr i32 %insn, 20 + %and.i.i5084 = and i32 %shr.i.i5083, 31 + %rs2.i5085 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5084, ptr %rs2.i5085, align 4 + %shr.i5.i5086 = lshr i32 %insn, 7 + %and.i6.i5087 = and i32 %shr.i5.i5086, 31 + store i32 %and.i6.i5087, ptr %u, align 4 + %shr.i7.i5088 = lshr i32 %insn, 15 + %and.i8.i5089 = and i32 %shr.i7.i5088, 31 + %rs1.i5090 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5089, ptr %rs1.i5090, align 4 %call2395 = call fastcc zeroext i1 @trans_vmxor_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2395, label %return, label %sw.epilog3868 sw.bb2398: ; preds = %sw.bb2219 - %shr.i.i5109 = lshr i32 %insn, 20 - %and.i.i5110 = and i32 %shr.i.i5109, 31 - %rs2.i5111 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5110, ptr %rs2.i5111, align 4 - %shr.i5.i5112 = lshr i32 %insn, 7 - %and.i6.i5113 = and i32 %shr.i5.i5112, 31 - store i32 %and.i6.i5113, ptr %u, align 4 - %shr.i7.i5114 = lshr i32 %insn, 15 - %and.i8.i5115 = and i32 %shr.i7.i5114, 31 - %rs1.i5116 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5115, ptr %rs1.i5116, align 4 + %shr.i.i5091 = lshr i32 %insn, 20 + %and.i.i5092 = and i32 %shr.i.i5091, 31 + %rs2.i5093 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5092, ptr %rs2.i5093, align 4 + %shr.i5.i5094 = lshr i32 %insn, 7 + %and.i6.i5095 = and i32 %shr.i5.i5094, 31 + store i32 %and.i6.i5095, ptr %u, align 4 + %shr.i7.i5096 = lshr i32 %insn, 15 + %and.i8.i5097 = and i32 %shr.i7.i5096, 31 + %rs1.i5098 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5097, ptr %rs1.i5098, align 4 %call2399 = call fastcc zeroext i1 @trans_vmorn_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2399, label %return, label %sw.epilog3868 sw.bb2402: ; preds = %sw.bb2219 - %shr.i.i5117 = lshr i32 %insn, 20 - %and.i.i5118 = and i32 %shr.i.i5117, 31 - %rs2.i5119 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5118, ptr %rs2.i5119, align 4 - %shr.i5.i5120 = lshr i32 %insn, 7 - %and.i6.i5121 = and i32 %shr.i5.i5120, 31 - store i32 %and.i6.i5121, ptr %u, align 4 - %shr.i7.i5122 = lshr i32 %insn, 15 - %and.i8.i5123 = and i32 %shr.i7.i5122, 31 - %rs1.i5124 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5123, ptr %rs1.i5124, align 4 + %shr.i.i5099 = lshr i32 %insn, 20 + %and.i.i5100 = and i32 %shr.i.i5099, 31 + %rs2.i5101 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5100, ptr %rs2.i5101, align 4 + %shr.i5.i5102 = lshr i32 %insn, 7 + %and.i6.i5103 = and i32 %shr.i5.i5102, 31 + store i32 %and.i6.i5103, ptr %u, align 4 + %shr.i7.i5104 = lshr i32 %insn, 15 + %and.i8.i5105 = and i32 %shr.i7.i5104, 31 + %rs1.i5106 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5105, ptr %rs1.i5106, align 4 %call2403 = call fastcc zeroext i1 @trans_vmnand_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2403, label %return, label %sw.epilog3868 sw.bb2406: ; preds = %sw.bb2219 - %shr.i.i5125 = lshr i32 %insn, 20 - %and.i.i5126 = and i32 %shr.i.i5125, 31 - %rs2.i5127 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5126, ptr %rs2.i5127, align 4 - %shr.i5.i5128 = lshr i32 %insn, 7 - %and.i6.i5129 = and i32 %shr.i5.i5128, 31 - store i32 %and.i6.i5129, ptr %u, align 4 - %shr.i7.i5130 = lshr i32 %insn, 15 - %and.i8.i5131 = and i32 %shr.i7.i5130, 31 - %rs1.i5132 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5131, ptr %rs1.i5132, align 4 + %shr.i.i5107 = lshr i32 %insn, 20 + %and.i.i5108 = and i32 %shr.i.i5107, 31 + %rs2.i5109 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5108, ptr %rs2.i5109, align 4 + %shr.i5.i5110 = lshr i32 %insn, 7 + %and.i6.i5111 = and i32 %shr.i5.i5110, 31 + store i32 %and.i6.i5111, ptr %u, align 4 + %shr.i7.i5112 = lshr i32 %insn, 15 + %and.i8.i5113 = and i32 %shr.i7.i5112, 31 + %rs1.i5114 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5113, ptr %rs1.i5114, align 4 %call2407 = call fastcc zeroext i1 @trans_vmnor_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2407, label %return, label %sw.epilog3868 sw.bb2410: ; preds = %sw.bb2219 - %shr.i.i5133 = lshr i32 %insn, 20 - %and.i.i5134 = and i32 %shr.i.i5133, 31 - %rs2.i5135 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i5134, ptr %rs2.i5135, align 4 - %shr.i5.i5136 = lshr i32 %insn, 7 - %and.i6.i5137 = and i32 %shr.i5.i5136, 31 - store i32 %and.i6.i5137, ptr %u, align 4 - %shr.i7.i5138 = lshr i32 %insn, 15 - %and.i8.i5139 = and i32 %shr.i7.i5138, 31 - %rs1.i5140 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5139, ptr %rs1.i5140, align 4 + %shr.i.i5115 = lshr i32 %insn, 20 + %and.i.i5116 = and i32 %shr.i.i5115, 31 + %rs2.i5117 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i5116, ptr %rs2.i5117, align 4 + %shr.i5.i5118 = lshr i32 %insn, 7 + %and.i6.i5119 = and i32 %shr.i5.i5118, 31 + store i32 %and.i6.i5119, ptr %u, align 4 + %shr.i7.i5120 = lshr i32 %insn, 15 + %and.i8.i5121 = and i32 %shr.i7.i5120, 31 + %rs1.i5122 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5121, ptr %rs1.i5122, align 4 %call2411 = call fastcc zeroext i1 @trans_vmxnor_mm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2411, label %return, label %sw.epilog3868 @@ -14149,21 +14127,21 @@ sw.bb2415: ; preds = %sw.bb1906 ] sw.bb2418: ; preds = %sw.bb2415 - %shr.i.i5141 = lshr i32 %insn, 20 - %and.i.i5142 = and i32 %shr.i.i5141, 31 - %rs2.i5143 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5142, ptr %rs2.i5143, align 4 - %shr.i7.i5144 = lshr i32 %insn, 25 - %and.i8.i5145 = and i32 %shr.i7.i5144, 1 - store i32 %and.i8.i5145, ptr %u, align 4 - %shr.i9.i5146 = lshr i32 %insn, 7 - %and.i10.i5147 = and i32 %shr.i9.i5146, 31 - %rd.i5148 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5147, ptr %rd.i5148, align 4 - %shr.i11.i5149 = lshr i32 %insn, 15 - %and.i12.i5150 = and i32 %shr.i11.i5149, 31 - %rs1.i5151 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5150, ptr %rs1.i5151, align 4 + %shr.i.i5123 = lshr i32 %insn, 20 + %and.i.i5124 = and i32 %shr.i.i5123, 31 + %rs2.i5125 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5124, ptr %rs2.i5125, align 4 + %shr.i7.i5126 = lshr i32 %insn, 25 + %and.i8.i5127 = and i32 %shr.i7.i5126, 1 + store i32 %and.i8.i5127, ptr %u, align 4 + %shr.i9.i5128 = lshr i32 %insn, 7 + %and.i10.i5129 = and i32 %shr.i9.i5128, 31 + %rd.i5130 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5129, ptr %rd.i5130, align 4 + %shr.i11.i5131 = lshr i32 %insn, 15 + %and.i12.i5132 = and i32 %shr.i11.i5131, 31 + %rs1.i5133 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5132, ptr %rs1.i5133, align 4 %222 = and i32 %insn, 67108864 %cond22 = icmp eq i32 %222, 0 br i1 %cond22, label %sw.bb2421, label %sw.epilog3868 @@ -14173,21 +14151,21 @@ sw.bb2421: ; preds = %sw.bb2418 br i1 %call2422, label %return, label %sw.epilog3868 sw.bb2426: ; preds = %sw.bb2415 - %shr.i.i5152 = lshr i32 %insn, 20 - %and.i.i5153 = and i32 %shr.i.i5152, 31 - %rs2.i5154 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5153, ptr %rs2.i5154, align 4 - %shr.i7.i5155 = lshr i32 %insn, 25 - %and.i8.i5156 = and i32 %shr.i7.i5155, 1 - store i32 %and.i8.i5156, ptr %u, align 4 - %shr.i9.i5157 = lshr i32 %insn, 7 - %and.i10.i5158 = and i32 %shr.i9.i5157, 31 - %rd.i5159 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5158, ptr %rd.i5159, align 4 - %shr.i11.i5160 = lshr i32 %insn, 15 - %and.i12.i5161 = and i32 %shr.i11.i5160, 31 - %rs1.i5162 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5161, ptr %rs1.i5162, align 4 + %shr.i.i5134 = lshr i32 %insn, 20 + %and.i.i5135 = and i32 %shr.i.i5134, 31 + %rs2.i5136 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5135, ptr %rs2.i5136, align 4 + %shr.i7.i5137 = lshr i32 %insn, 25 + %and.i8.i5138 = and i32 %shr.i7.i5137, 1 + store i32 %and.i8.i5138, ptr %u, align 4 + %shr.i9.i5139 = lshr i32 %insn, 7 + %and.i10.i5140 = and i32 %shr.i9.i5139, 31 + %rd.i5141 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5140, ptr %rd.i5141, align 4 + %shr.i11.i5142 = lshr i32 %insn, 15 + %and.i12.i5143 = and i32 %shr.i11.i5142, 31 + %rs1.i5144 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5143, ptr %rs1.i5144, align 4 %223 = and i32 %insn, 67108864 %cond21.not = icmp eq i32 %223, 0 br i1 %cond21.not, label %sw.epilog3868, label %sw.bb2429 @@ -14197,21 +14175,21 @@ sw.bb2429: ; preds = %sw.bb2426 br i1 %call2430, label %return, label %sw.epilog3868 sw.bb2434: ; preds = %sw.bb2415 - %shr.i.i5163 = lshr i32 %insn, 20 - %and.i.i5164 = and i32 %shr.i.i5163, 31 - %rs2.i5165 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5164, ptr %rs2.i5165, align 4 - %shr.i7.i5166 = lshr i32 %insn, 25 - %and.i8.i5167 = and i32 %shr.i7.i5166, 1 - store i32 %and.i8.i5167, ptr %u, align 4 - %shr.i9.i5168 = lshr i32 %insn, 7 - %and.i10.i5169 = and i32 %shr.i9.i5168, 31 - %rd.i5170 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5169, ptr %rd.i5170, align 4 - %shr.i11.i5171 = lshr i32 %insn, 15 - %and.i12.i5172 = and i32 %shr.i11.i5171, 31 - %rs1.i5173 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5172, ptr %rs1.i5173, align 4 + %shr.i.i5145 = lshr i32 %insn, 20 + %and.i.i5146 = and i32 %shr.i.i5145, 31 + %rs2.i5147 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5146, ptr %rs2.i5147, align 4 + %shr.i7.i5148 = lshr i32 %insn, 25 + %and.i8.i5149 = and i32 %shr.i7.i5148, 1 + store i32 %and.i8.i5149, ptr %u, align 4 + %shr.i9.i5150 = lshr i32 %insn, 7 + %and.i10.i5151 = and i32 %shr.i9.i5150, 31 + %rd.i5152 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5151, ptr %rd.i5152, align 4 + %shr.i11.i5153 = lshr i32 %insn, 15 + %and.i12.i5154 = and i32 %shr.i11.i5153, 31 + %rs1.i5155 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5154, ptr %rs1.i5155, align 4 %224 = and i32 %insn, 67108864 %cond20.not = icmp eq i32 %224, 0 br i1 %cond20.not, label %sw.epilog3868, label %sw.bb2437 @@ -14221,21 +14199,21 @@ sw.bb2437: ; preds = %sw.bb2434 br i1 %call2438, label %return, label %sw.epilog3868 sw.bb2442: ; preds = %sw.bb2415 - %shr.i.i5174 = lshr i32 %insn, 20 - %and.i.i5175 = and i32 %shr.i.i5174, 31 - %rs2.i5176 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5175, ptr %rs2.i5176, align 4 - %shr.i7.i5177 = lshr i32 %insn, 25 - %and.i8.i5178 = and i32 %shr.i7.i5177, 1 - store i32 %and.i8.i5178, ptr %u, align 4 - %shr.i9.i5179 = lshr i32 %insn, 7 - %and.i10.i5180 = and i32 %shr.i9.i5179, 31 - %rd.i5181 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5180, ptr %rd.i5181, align 4 - %shr.i11.i5182 = lshr i32 %insn, 15 - %and.i12.i5183 = and i32 %shr.i11.i5182, 31 - %rs1.i5184 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5183, ptr %rs1.i5184, align 4 + %shr.i.i5156 = lshr i32 %insn, 20 + %and.i.i5157 = and i32 %shr.i.i5156, 31 + %rs2.i5158 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5157, ptr %rs2.i5158, align 4 + %shr.i7.i5159 = lshr i32 %insn, 25 + %and.i8.i5160 = and i32 %shr.i7.i5159, 1 + store i32 %and.i8.i5160, ptr %u, align 4 + %shr.i9.i5161 = lshr i32 %insn, 7 + %and.i10.i5162 = and i32 %shr.i9.i5161, 31 + %rd.i5163 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5162, ptr %rd.i5163, align 4 + %shr.i11.i5164 = lshr i32 %insn, 15 + %and.i12.i5165 = and i32 %shr.i11.i5164, 31 + %rs1.i5166 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5165, ptr %rs1.i5166, align 4 %225 = and i32 %insn, 67108864 %trunc1933.not = icmp eq i32 %225, 0 br i1 %trunc1933.not, label %sw.bb2445, label %sw.bb2449 @@ -14249,21 +14227,21 @@ sw.bb2449: ; preds = %sw.bb2442 br i1 %call2450, label %return, label %sw.epilog3868 sw.bb2454: ; preds = %sw.bb2415 - %shr.i.i5185 = lshr i32 %insn, 20 - %and.i.i5186 = and i32 %shr.i.i5185, 31 - %rs2.i5187 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5186, ptr %rs2.i5187, align 4 - %shr.i7.i5188 = lshr i32 %insn, 25 - %and.i8.i5189 = and i32 %shr.i7.i5188, 1 - store i32 %and.i8.i5189, ptr %u, align 4 - %shr.i9.i5190 = lshr i32 %insn, 7 - %and.i10.i5191 = and i32 %shr.i9.i5190, 31 - %rd.i5192 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5191, ptr %rd.i5192, align 4 - %shr.i11.i5193 = lshr i32 %insn, 15 - %and.i12.i5194 = and i32 %shr.i11.i5193, 31 - %rs1.i5195 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5194, ptr %rs1.i5195, align 4 + %shr.i.i5167 = lshr i32 %insn, 20 + %and.i.i5168 = and i32 %shr.i.i5167, 31 + %rs2.i5169 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5168, ptr %rs2.i5169, align 4 + %shr.i7.i5170 = lshr i32 %insn, 25 + %and.i8.i5171 = and i32 %shr.i7.i5170, 1 + store i32 %and.i8.i5171, ptr %u, align 4 + %shr.i9.i5172 = lshr i32 %insn, 7 + %and.i10.i5173 = and i32 %shr.i9.i5172, 31 + %rd.i5174 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5173, ptr %rd.i5174, align 4 + %shr.i11.i5175 = lshr i32 %insn, 15 + %and.i12.i5176 = and i32 %shr.i11.i5175, 31 + %rs1.i5177 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5176, ptr %rs1.i5177, align 4 %226 = and i32 %insn, 67108864 %cond19 = icmp eq i32 %226, 0 br i1 %cond19, label %sw.bb2457, label %sw.epilog3868 @@ -14273,21 +14251,21 @@ sw.bb2457: ; preds = %sw.bb2454 br i1 %call2458, label %return, label %sw.epilog3868 sw.bb2462: ; preds = %sw.bb2415 - %shr.i.i5196 = lshr i32 %insn, 20 - %and.i.i5197 = and i32 %shr.i.i5196, 31 - %rs2.i5198 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5197, ptr %rs2.i5198, align 4 - %shr.i7.i5199 = lshr i32 %insn, 25 - %and.i8.i5200 = and i32 %shr.i7.i5199, 1 - store i32 %and.i8.i5200, ptr %u, align 4 - %shr.i9.i5201 = lshr i32 %insn, 7 - %and.i10.i5202 = and i32 %shr.i9.i5201, 31 - %rd.i5203 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5202, ptr %rd.i5203, align 4 - %shr.i11.i5204 = lshr i32 %insn, 15 - %and.i12.i5205 = and i32 %shr.i11.i5204, 31 - %rs1.i5206 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5205, ptr %rs1.i5206, align 4 + %shr.i.i5178 = lshr i32 %insn, 20 + %and.i.i5179 = and i32 %shr.i.i5178, 31 + %rs2.i5180 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5179, ptr %rs2.i5180, align 4 + %shr.i7.i5181 = lshr i32 %insn, 25 + %and.i8.i5182 = and i32 %shr.i7.i5181, 1 + store i32 %and.i8.i5182, ptr %u, align 4 + %shr.i9.i5183 = lshr i32 %insn, 7 + %and.i10.i5184 = and i32 %shr.i9.i5183, 31 + %rd.i5185 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5184, ptr %rd.i5185, align 4 + %shr.i11.i5186 = lshr i32 %insn, 15 + %and.i12.i5187 = and i32 %shr.i11.i5186, 31 + %rs1.i5188 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5187, ptr %rs1.i5188, align 4 %227 = and i32 %insn, 67108864 %trunc1932.not = icmp eq i32 %227, 0 br i1 %trunc1932.not, label %sw.bb2465, label %sw.bb2469 @@ -14303,22 +14281,22 @@ sw.bb2469: ; preds = %sw.bb2462 sw.bb2474: ; preds = %sw.bb2415 %228 = and i32 %insn, 67108864 %trunc1931.not = icmp eq i32 %228, 0 - %shr.i.i5207 = lshr i32 %insn, 20 - %and.i.i5208 = and i32 %shr.i.i5207, 31 - %rs2.i5209 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5208, ptr %rs2.i5209, align 4 + %shr.i.i5189 = lshr i32 %insn, 20 + %and.i.i5190 = and i32 %shr.i.i5189, 31 + %rs2.i5191 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5190, ptr %rs2.i5191, align 4 br i1 %trunc1931.not, label %sw.bb2477, label %sw.bb2485 sw.bb2477: ; preds = %sw.bb2474 store i32 1, ptr %u, align 4 - %shr.i6.i5210 = lshr i32 %insn, 7 - %and.i7.i5211 = and i32 %shr.i6.i5210, 31 - %rd.i5212 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i5211, ptr %rd.i5212, align 4 - %shr.i8.i5213 = lshr i32 %insn, 15 - %and.i9.i5214 = and i32 %shr.i8.i5213, 31 - %rs1.i5215 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i5214, ptr %rs1.i5215, align 4 + %shr.i6.i5192 = lshr i32 %insn, 7 + %and.i7.i5193 = and i32 %shr.i6.i5192, 31 + %rd.i5194 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i5193, ptr %rd.i5194, align 4 + %shr.i8.i5195 = lshr i32 %insn, 15 + %and.i9.i5196 = and i32 %shr.i8.i5195, 31 + %rs1.i5197 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i5196, ptr %rs1.i5197, align 4 %229 = and i32 %insn, 33554432 %cond18 = icmp eq i32 %229, 0 br i1 %cond18, label %sw.bb2480, label %sw.epilog3868 @@ -14328,39 +14306,39 @@ sw.bb2480: ; preds = %sw.bb2477 br i1 %call2481, label %return, label %sw.epilog3868 sw.bb2485: ; preds = %sw.bb2474 - %shr.i7.i5219 = lshr i32 %insn, 25 - %and.i8.i5220 = and i32 %shr.i7.i5219, 1 - store i32 %and.i8.i5220, ptr %u, align 4 - %shr.i9.i5221 = lshr i32 %insn, 7 - %and.i10.i5222 = and i32 %shr.i9.i5221, 31 - %rd.i5223 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5222, ptr %rd.i5223, align 4 - %shr.i11.i5224 = lshr i32 %insn, 15 - %and.i12.i5225 = and i32 %shr.i11.i5224, 31 - %rs1.i5226 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5225, ptr %rs1.i5226, align 4 + %shr.i7.i5201 = lshr i32 %insn, 25 + %and.i8.i5202 = and i32 %shr.i7.i5201, 1 + store i32 %and.i8.i5202, ptr %u, align 4 + %shr.i9.i5203 = lshr i32 %insn, 7 + %and.i10.i5204 = and i32 %shr.i9.i5203, 31 + %rd.i5205 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5204, ptr %rd.i5205, align 4 + %shr.i11.i5206 = lshr i32 %insn, 15 + %and.i12.i5207 = and i32 %shr.i11.i5206, 31 + %rs1.i5208 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5207, ptr %rs1.i5208, align 4 %call2486 = call fastcc zeroext i1 @trans_vmadc_vim(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2486, label %return, label %sw.epilog3868 sw.bb2490: ; preds = %sw.bb2415 - %shr.i.i5227 = lshr i32 %insn, 20 - %and.i.i5228 = and i32 %shr.i.i5227, 31 - %rs2.i5229 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5228, ptr %rs2.i5229, align 4 - %shr.i8.i5230 = lshr i32 %insn, 25 - %and.i9.i5231 = and i32 %shr.i8.i5230, 1 - store i32 %and.i9.i5231, ptr %u, align 4 - %shr.i10.i5232 = lshr i32 %insn, 7 - %and.i11.i5233 = and i32 %shr.i10.i5232, 31 - %rd.i5234 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i11.i5233, ptr %rd.i5234, align 4 - %shr.i12.i5235 = lshr i32 %insn, 15 - %and.i13.i5236 = and i32 %shr.i12.i5235, 31 + %shr.i.i5209 = lshr i32 %insn, 20 + %and.i.i5210 = and i32 %shr.i.i5209, 31 + %rs2.i5211 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5210, ptr %rs2.i5211, align 4 + %shr.i8.i5212 = lshr i32 %insn, 25 + %and.i9.i5213 = and i32 %shr.i8.i5212, 1 + store i32 %and.i9.i5213, ptr %u, align 4 + %shr.i10.i5214 = lshr i32 %insn, 7 + %and.i11.i5215 = and i32 %shr.i10.i5214, 31 + %rd.i5216 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i11.i5215, ptr %rd.i5216, align 4 + %shr.i12.i5217 = lshr i32 %insn, 15 + %and.i13.i5218 = and i32 %shr.i12.i5217, 31 %230 = lshr i32 %insn, 21 %and6.i.i = and i32 %230, 32 - %or.i.i5237 = or disjoint i32 %and.i13.i5236, %and6.i.i - %rs1.i5238 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %or.i.i5237, ptr %rs1.i5238, align 4 + %or.i.i5219 = or disjoint i32 %and.i13.i5218, %and6.i.i + %rs1.i5220 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %or.i.i5219, ptr %rs1.i5220, align 4 %call2491 = call fastcc zeroext i1 @trans_vror_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2491, label %return, label %sw.epilog3868 @@ -14373,30 +14351,30 @@ sw.bb2494: ; preds = %sw.bb2415 ] sw.bb2497: ; preds = %sw.bb2494 - %shr.i.i5239 = lshr i32 %insn, 20 - %and.i.i5240 = and i32 %shr.i.i5239, 31 - %rs2.i5241 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5240, ptr %rs2.i5241, align 4 + %shr.i.i5221 = lshr i32 %insn, 20 + %and.i.i5222 = and i32 %shr.i.i5221, 31 + %rs2.i5223 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5222, ptr %rs2.i5223, align 4 store i32 0, ptr %u, align 4 - %shr.i6.i5242 = lshr i32 %insn, 7 - %and.i7.i5243 = and i32 %shr.i6.i5242, 31 - %rd.i5244 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i5243, ptr %rd.i5244, align 4 - %shr.i8.i5245 = lshr i32 %insn, 15 - %and.i9.i5246 = and i32 %shr.i8.i5245, 31 - %rs1.i5247 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i5246, ptr %rs1.i5247, align 4 + %shr.i6.i5224 = lshr i32 %insn, 7 + %and.i7.i5225 = and i32 %shr.i6.i5224, 31 + %rd.i5226 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i5225, ptr %rd.i5226, align 4 + %shr.i8.i5227 = lshr i32 %insn, 15 + %and.i9.i5228 = and i32 %shr.i8.i5227, 31 + %rs1.i5229 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i5228, ptr %rs1.i5229, align 4 %call2498 = call fastcc zeroext i1 @trans_vmerge_vim(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2498, label %return, label %sw.epilog3868 sw.bb2501: ; preds = %sw.bb2494 - %shr.i.i5248 = lshr i32 %insn, 7 - %and.i.i5249 = and i32 %shr.i.i5248, 31 - store i32 %and.i.i5249, ptr %u, align 4 - %shr.i3.i5250 = lshr i32 %insn, 15 - %and.i4.i5251 = and i32 %shr.i3.i5250, 31 - %rs1.i5252 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i5251, ptr %rs1.i5252, align 4 + %shr.i.i5230 = lshr i32 %insn, 7 + %and.i.i5231 = and i32 %shr.i.i5230, 31 + store i32 %and.i.i5231, ptr %u, align 4 + %shr.i3.i5232 = lshr i32 %insn, 15 + %and.i4.i5233 = and i32 %shr.i3.i5232, 31 + %rs1.i5234 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i5233, ptr %rs1.i5234, align 4 %231 = and i32 %insn, 32505856 %cond17 = icmp eq i32 %231, 0 br i1 %cond17, label %sw.bb2504, label %sw.epilog3868 @@ -14406,21 +14384,21 @@ sw.bb2504: ; preds = %sw.bb2501 br i1 %call2505, label %return, label %sw.epilog3868 sw.bb2510: ; preds = %sw.bb2415 - %shr.i.i5253 = lshr i32 %insn, 20 - %and.i.i5254 = and i32 %shr.i.i5253, 31 - %rs2.i5255 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5254, ptr %rs2.i5255, align 4 - %shr.i7.i5256 = lshr i32 %insn, 25 - %and.i8.i5257 = and i32 %shr.i7.i5256, 1 - store i32 %and.i8.i5257, ptr %u, align 4 - %shr.i9.i5258 = lshr i32 %insn, 7 - %and.i10.i5259 = and i32 %shr.i9.i5258, 31 - %rd.i5260 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5259, ptr %rd.i5260, align 4 - %shr.i11.i5261 = lshr i32 %insn, 15 - %and.i12.i5262 = and i32 %shr.i11.i5261, 31 - %rs1.i5263 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5262, ptr %rs1.i5263, align 4 + %shr.i.i5235 = lshr i32 %insn, 20 + %and.i.i5236 = and i32 %shr.i.i5235, 31 + %rs2.i5237 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5236, ptr %rs2.i5237, align 4 + %shr.i7.i5238 = lshr i32 %insn, 25 + %and.i8.i5239 = and i32 %shr.i7.i5238, 1 + store i32 %and.i8.i5239, ptr %u, align 4 + %shr.i9.i5240 = lshr i32 %insn, 7 + %and.i10.i5241 = and i32 %shr.i9.i5240, 31 + %rd.i5242 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5241, ptr %rd.i5242, align 4 + %shr.i11.i5243 = lshr i32 %insn, 15 + %and.i12.i5244 = and i32 %shr.i11.i5243, 31 + %rs1.i5245 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5244, ptr %rs1.i5245, align 4 %232 = and i32 %insn, 67108864 %trunc1930.not = icmp eq i32 %232, 0 br i1 %trunc1930.not, label %sw.bb2513, label %sw.bb2517 @@ -14434,21 +14412,21 @@ sw.bb2517: ; preds = %sw.bb2510 br i1 %call2518, label %return, label %sw.epilog3868 sw.bb2522: ; preds = %sw.bb2415 - %shr.i.i5264 = lshr i32 %insn, 20 - %and.i.i5265 = and i32 %shr.i.i5264, 31 - %rs2.i5266 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5265, ptr %rs2.i5266, align 4 - %shr.i7.i5267 = lshr i32 %insn, 25 - %and.i8.i5268 = and i32 %shr.i7.i5267, 1 - store i32 %and.i8.i5268, ptr %u, align 4 - %shr.i9.i5269 = lshr i32 %insn, 7 - %and.i10.i5270 = and i32 %shr.i9.i5269, 31 - %rd.i5271 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5270, ptr %rd.i5271, align 4 - %shr.i11.i5272 = lshr i32 %insn, 15 - %and.i12.i5273 = and i32 %shr.i11.i5272, 31 - %rs1.i5274 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5273, ptr %rs1.i5274, align 4 + %shr.i.i5246 = lshr i32 %insn, 20 + %and.i.i5247 = and i32 %shr.i.i5246, 31 + %rs2.i5248 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5247, ptr %rs2.i5248, align 4 + %shr.i7.i5249 = lshr i32 %insn, 25 + %and.i8.i5250 = and i32 %shr.i7.i5249, 1 + store i32 %and.i8.i5250, ptr %u, align 4 + %shr.i9.i5251 = lshr i32 %insn, 7 + %and.i10.i5252 = and i32 %shr.i9.i5251, 31 + %rd.i5253 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5252, ptr %rd.i5253, align 4 + %shr.i11.i5254 = lshr i32 %insn, 15 + %and.i12.i5255 = and i32 %shr.i11.i5254, 31 + %rs1.i5256 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5255, ptr %rs1.i5256, align 4 %233 = and i32 %insn, 67108864 %trunc1929.not = icmp eq i32 %233, 0 br i1 %trunc1929.not, label %sw.bb2525, label %sw.bb2529 @@ -14462,21 +14440,21 @@ sw.bb2529: ; preds = %sw.bb2522 br i1 %call2530, label %return, label %sw.epilog3868 sw.bb2534: ; preds = %sw.bb2415 - %shr.i.i5275 = lshr i32 %insn, 20 - %and.i.i5276 = and i32 %shr.i.i5275, 31 - %rs2.i5277 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5276, ptr %rs2.i5277, align 4 - %shr.i7.i5278 = lshr i32 %insn, 25 - %and.i8.i5279 = and i32 %shr.i7.i5278, 1 - store i32 %and.i8.i5279, ptr %u, align 4 - %shr.i9.i5280 = lshr i32 %insn, 7 - %and.i10.i5281 = and i32 %shr.i9.i5280, 31 - %rd.i5282 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5281, ptr %rd.i5282, align 4 - %shr.i11.i5283 = lshr i32 %insn, 15 - %and.i12.i5284 = and i32 %shr.i11.i5283, 31 - %rs1.i5285 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5284, ptr %rs1.i5285, align 4 + %shr.i.i5257 = lshr i32 %insn, 20 + %and.i.i5258 = and i32 %shr.i.i5257, 31 + %rs2.i5259 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5258, ptr %rs2.i5259, align 4 + %shr.i7.i5260 = lshr i32 %insn, 25 + %and.i8.i5261 = and i32 %shr.i7.i5260, 1 + store i32 %and.i8.i5261, ptr %u, align 4 + %shr.i9.i5262 = lshr i32 %insn, 7 + %and.i10.i5263 = and i32 %shr.i9.i5262, 31 + %rd.i5264 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5263, ptr %rd.i5264, align 4 + %shr.i11.i5265 = lshr i32 %insn, 15 + %and.i12.i5266 = and i32 %shr.i11.i5265, 31 + %rs1.i5267 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5266, ptr %rs1.i5267, align 4 %234 = and i32 %insn, 67108864 %trunc1928.not = icmp eq i32 %234, 0 br i1 %trunc1928.not, label %sw.bb2537, label %sw.bb2541 @@ -14525,285 +14503,285 @@ sw.bb2547: ; preds = %sw.bb1906 ] sw.bb2550: ; preds = %sw.bb2547 - %shr.i.i5286 = lshr i32 %insn, 20 - %and.i.i5287 = and i32 %shr.i.i5286, 31 - %rs2.i5288 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5287, ptr %rs2.i5288, align 4 - %shr.i7.i5289 = lshr i32 %insn, 25 - %and.i8.i5290 = and i32 %shr.i7.i5289, 1 - store i32 %and.i8.i5290, ptr %u, align 4 - %shr.i9.i5291 = lshr i32 %insn, 7 - %and.i10.i5292 = and i32 %shr.i9.i5291, 31 - %rd.i5293 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5292, ptr %rd.i5293, align 4 - %shr.i11.i5294 = lshr i32 %insn, 15 - %and.i12.i5295 = and i32 %shr.i11.i5294, 31 - %rs1.i5296 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5295, ptr %rs1.i5296, align 4 + %shr.i.i5268 = lshr i32 %insn, 20 + %and.i.i5269 = and i32 %shr.i.i5268, 31 + %rs2.i5270 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5269, ptr %rs2.i5270, align 4 + %shr.i7.i5271 = lshr i32 %insn, 25 + %and.i8.i5272 = and i32 %shr.i7.i5271, 1 + store i32 %and.i8.i5272, ptr %u, align 4 + %shr.i9.i5273 = lshr i32 %insn, 7 + %and.i10.i5274 = and i32 %shr.i9.i5273, 31 + %rd.i5275 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5274, ptr %rd.i5275, align 4 + %shr.i11.i5276 = lshr i32 %insn, 15 + %and.i12.i5277 = and i32 %shr.i11.i5276, 31 + %rs1.i5278 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5277, ptr %rs1.i5278, align 4 %call2551 = call fastcc zeroext i1 @trans_vadd_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2551, label %return, label %sw.epilog3868 sw.bb2554: ; preds = %sw.bb2547 - %shr.i.i5297 = lshr i32 %insn, 20 - %and.i.i5298 = and i32 %shr.i.i5297, 31 - %rs2.i5299 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5298, ptr %rs2.i5299, align 4 - %shr.i7.i5300 = lshr i32 %insn, 25 - %and.i8.i5301 = and i32 %shr.i7.i5300, 1 - store i32 %and.i8.i5301, ptr %u, align 4 - %shr.i9.i5302 = lshr i32 %insn, 7 - %and.i10.i5303 = and i32 %shr.i9.i5302, 31 - %rd.i5304 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5303, ptr %rd.i5304, align 4 - %shr.i11.i5305 = lshr i32 %insn, 15 - %and.i12.i5306 = and i32 %shr.i11.i5305, 31 - %rs1.i5307 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5306, ptr %rs1.i5307, align 4 + %shr.i.i5279 = lshr i32 %insn, 20 + %and.i.i5280 = and i32 %shr.i.i5279, 31 + %rs2.i5281 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5280, ptr %rs2.i5281, align 4 + %shr.i7.i5282 = lshr i32 %insn, 25 + %and.i8.i5283 = and i32 %shr.i7.i5282, 1 + store i32 %and.i8.i5283, ptr %u, align 4 + %shr.i9.i5284 = lshr i32 %insn, 7 + %and.i10.i5285 = and i32 %shr.i9.i5284, 31 + %rd.i5286 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5285, ptr %rd.i5286, align 4 + %shr.i11.i5287 = lshr i32 %insn, 15 + %and.i12.i5288 = and i32 %shr.i11.i5287, 31 + %rs1.i5289 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5288, ptr %rs1.i5289, align 4 %call2555 = call fastcc zeroext i1 @trans_vandn_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2555, label %return, label %sw.epilog3868 sw.bb2558: ; preds = %sw.bb2547 - %shr.i.i5308 = lshr i32 %insn, 20 - %and.i.i5309 = and i32 %shr.i.i5308, 31 - %rs2.i5310 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5309, ptr %rs2.i5310, align 4 - %shr.i7.i5311 = lshr i32 %insn, 25 - %and.i8.i5312 = and i32 %shr.i7.i5311, 1 - store i32 %and.i8.i5312, ptr %u, align 4 - %shr.i9.i5313 = lshr i32 %insn, 7 - %and.i10.i5314 = and i32 %shr.i9.i5313, 31 - %rd.i5315 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5314, ptr %rd.i5315, align 4 - %shr.i11.i5316 = lshr i32 %insn, 15 - %and.i12.i5317 = and i32 %shr.i11.i5316, 31 - %rs1.i5318 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5317, ptr %rs1.i5318, align 4 + %shr.i.i5290 = lshr i32 %insn, 20 + %and.i.i5291 = and i32 %shr.i.i5290, 31 + %rs2.i5292 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5291, ptr %rs2.i5292, align 4 + %shr.i7.i5293 = lshr i32 %insn, 25 + %and.i8.i5294 = and i32 %shr.i7.i5293, 1 + store i32 %and.i8.i5294, ptr %u, align 4 + %shr.i9.i5295 = lshr i32 %insn, 7 + %and.i10.i5296 = and i32 %shr.i9.i5295, 31 + %rd.i5297 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5296, ptr %rd.i5297, align 4 + %shr.i11.i5298 = lshr i32 %insn, 15 + %and.i12.i5299 = and i32 %shr.i11.i5298, 31 + %rs1.i5300 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5299, ptr %rs1.i5300, align 4 %call2559 = call fastcc zeroext i1 @trans_vsub_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2559, label %return, label %sw.epilog3868 sw.bb2562: ; preds = %sw.bb2547 - %shr.i.i5319 = lshr i32 %insn, 20 - %and.i.i5320 = and i32 %shr.i.i5319, 31 - %rs2.i5321 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5320, ptr %rs2.i5321, align 4 - %shr.i7.i5322 = lshr i32 %insn, 25 - %and.i8.i5323 = and i32 %shr.i7.i5322, 1 - store i32 %and.i8.i5323, ptr %u, align 4 - %shr.i9.i5324 = lshr i32 %insn, 7 - %and.i10.i5325 = and i32 %shr.i9.i5324, 31 - %rd.i5326 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5325, ptr %rd.i5326, align 4 - %shr.i11.i5327 = lshr i32 %insn, 15 - %and.i12.i5328 = and i32 %shr.i11.i5327, 31 - %rs1.i5329 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5328, ptr %rs1.i5329, align 4 + %shr.i.i5301 = lshr i32 %insn, 20 + %and.i.i5302 = and i32 %shr.i.i5301, 31 + %rs2.i5303 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5302, ptr %rs2.i5303, align 4 + %shr.i7.i5304 = lshr i32 %insn, 25 + %and.i8.i5305 = and i32 %shr.i7.i5304, 1 + store i32 %and.i8.i5305, ptr %u, align 4 + %shr.i9.i5306 = lshr i32 %insn, 7 + %and.i10.i5307 = and i32 %shr.i9.i5306, 31 + %rd.i5308 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5307, ptr %rd.i5308, align 4 + %shr.i11.i5309 = lshr i32 %insn, 15 + %and.i12.i5310 = and i32 %shr.i11.i5309, 31 + %rs1.i5311 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5310, ptr %rs1.i5311, align 4 %call2563 = call fastcc zeroext i1 @trans_vrsub_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2563, label %return, label %sw.epilog3868 sw.bb2566: ; preds = %sw.bb2547 - %shr.i.i5330 = lshr i32 %insn, 20 - %and.i.i5331 = and i32 %shr.i.i5330, 31 - %rs2.i5332 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5331, ptr %rs2.i5332, align 4 - %shr.i7.i5333 = lshr i32 %insn, 25 - %and.i8.i5334 = and i32 %shr.i7.i5333, 1 - store i32 %and.i8.i5334, ptr %u, align 4 - %shr.i9.i5335 = lshr i32 %insn, 7 - %and.i10.i5336 = and i32 %shr.i9.i5335, 31 - %rd.i5337 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5336, ptr %rd.i5337, align 4 - %shr.i11.i5338 = lshr i32 %insn, 15 - %and.i12.i5339 = and i32 %shr.i11.i5338, 31 - %rs1.i5340 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5339, ptr %rs1.i5340, align 4 + %shr.i.i5312 = lshr i32 %insn, 20 + %and.i.i5313 = and i32 %shr.i.i5312, 31 + %rs2.i5314 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5313, ptr %rs2.i5314, align 4 + %shr.i7.i5315 = lshr i32 %insn, 25 + %and.i8.i5316 = and i32 %shr.i7.i5315, 1 + store i32 %and.i8.i5316, ptr %u, align 4 + %shr.i9.i5317 = lshr i32 %insn, 7 + %and.i10.i5318 = and i32 %shr.i9.i5317, 31 + %rd.i5319 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5318, ptr %rd.i5319, align 4 + %shr.i11.i5320 = lshr i32 %insn, 15 + %and.i12.i5321 = and i32 %shr.i11.i5320, 31 + %rs1.i5322 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5321, ptr %rs1.i5322, align 4 %call2567 = call fastcc zeroext i1 @trans_vminu_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2567, label %return, label %sw.epilog3868 sw.bb2570: ; preds = %sw.bb2547 - %shr.i.i5341 = lshr i32 %insn, 20 - %and.i.i5342 = and i32 %shr.i.i5341, 31 - %rs2.i5343 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5342, ptr %rs2.i5343, align 4 - %shr.i7.i5344 = lshr i32 %insn, 25 - %and.i8.i5345 = and i32 %shr.i7.i5344, 1 - store i32 %and.i8.i5345, ptr %u, align 4 - %shr.i9.i5346 = lshr i32 %insn, 7 - %and.i10.i5347 = and i32 %shr.i9.i5346, 31 - %rd.i5348 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5347, ptr %rd.i5348, align 4 - %shr.i11.i5349 = lshr i32 %insn, 15 - %and.i12.i5350 = and i32 %shr.i11.i5349, 31 - %rs1.i5351 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5350, ptr %rs1.i5351, align 4 + %shr.i.i5323 = lshr i32 %insn, 20 + %and.i.i5324 = and i32 %shr.i.i5323, 31 + %rs2.i5325 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5324, ptr %rs2.i5325, align 4 + %shr.i7.i5326 = lshr i32 %insn, 25 + %and.i8.i5327 = and i32 %shr.i7.i5326, 1 + store i32 %and.i8.i5327, ptr %u, align 4 + %shr.i9.i5328 = lshr i32 %insn, 7 + %and.i10.i5329 = and i32 %shr.i9.i5328, 31 + %rd.i5330 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5329, ptr %rd.i5330, align 4 + %shr.i11.i5331 = lshr i32 %insn, 15 + %and.i12.i5332 = and i32 %shr.i11.i5331, 31 + %rs1.i5333 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5332, ptr %rs1.i5333, align 4 %call2571 = call fastcc zeroext i1 @trans_vmin_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2571, label %return, label %sw.epilog3868 sw.bb2574: ; preds = %sw.bb2547 - %shr.i.i5352 = lshr i32 %insn, 20 - %and.i.i5353 = and i32 %shr.i.i5352, 31 - %rs2.i5354 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5353, ptr %rs2.i5354, align 4 - %shr.i7.i5355 = lshr i32 %insn, 25 - %and.i8.i5356 = and i32 %shr.i7.i5355, 1 - store i32 %and.i8.i5356, ptr %u, align 4 - %shr.i9.i5357 = lshr i32 %insn, 7 - %and.i10.i5358 = and i32 %shr.i9.i5357, 31 - %rd.i5359 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5358, ptr %rd.i5359, align 4 - %shr.i11.i5360 = lshr i32 %insn, 15 - %and.i12.i5361 = and i32 %shr.i11.i5360, 31 - %rs1.i5362 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5361, ptr %rs1.i5362, align 4 + %shr.i.i5334 = lshr i32 %insn, 20 + %and.i.i5335 = and i32 %shr.i.i5334, 31 + %rs2.i5336 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5335, ptr %rs2.i5336, align 4 + %shr.i7.i5337 = lshr i32 %insn, 25 + %and.i8.i5338 = and i32 %shr.i7.i5337, 1 + store i32 %and.i8.i5338, ptr %u, align 4 + %shr.i9.i5339 = lshr i32 %insn, 7 + %and.i10.i5340 = and i32 %shr.i9.i5339, 31 + %rd.i5341 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5340, ptr %rd.i5341, align 4 + %shr.i11.i5342 = lshr i32 %insn, 15 + %and.i12.i5343 = and i32 %shr.i11.i5342, 31 + %rs1.i5344 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5343, ptr %rs1.i5344, align 4 %call2575 = call fastcc zeroext i1 @trans_vmaxu_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2575, label %return, label %sw.epilog3868 sw.bb2578: ; preds = %sw.bb2547 - %shr.i.i5363 = lshr i32 %insn, 20 - %and.i.i5364 = and i32 %shr.i.i5363, 31 - %rs2.i5365 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5364, ptr %rs2.i5365, align 4 - %shr.i7.i5366 = lshr i32 %insn, 25 - %and.i8.i5367 = and i32 %shr.i7.i5366, 1 - store i32 %and.i8.i5367, ptr %u, align 4 - %shr.i9.i5368 = lshr i32 %insn, 7 - %and.i10.i5369 = and i32 %shr.i9.i5368, 31 - %rd.i5370 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5369, ptr %rd.i5370, align 4 - %shr.i11.i5371 = lshr i32 %insn, 15 - %and.i12.i5372 = and i32 %shr.i11.i5371, 31 - %rs1.i5373 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5372, ptr %rs1.i5373, align 4 + %shr.i.i5345 = lshr i32 %insn, 20 + %and.i.i5346 = and i32 %shr.i.i5345, 31 + %rs2.i5347 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5346, ptr %rs2.i5347, align 4 + %shr.i7.i5348 = lshr i32 %insn, 25 + %and.i8.i5349 = and i32 %shr.i7.i5348, 1 + store i32 %and.i8.i5349, ptr %u, align 4 + %shr.i9.i5350 = lshr i32 %insn, 7 + %and.i10.i5351 = and i32 %shr.i9.i5350, 31 + %rd.i5352 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5351, ptr %rd.i5352, align 4 + %shr.i11.i5353 = lshr i32 %insn, 15 + %and.i12.i5354 = and i32 %shr.i11.i5353, 31 + %rs1.i5355 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5354, ptr %rs1.i5355, align 4 %call2579 = call fastcc zeroext i1 @trans_vmax_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2579, label %return, label %sw.epilog3868 sw.bb2582: ; preds = %sw.bb2547 - %shr.i.i5374 = lshr i32 %insn, 20 - %and.i.i5375 = and i32 %shr.i.i5374, 31 - %rs2.i5376 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5375, ptr %rs2.i5376, align 4 - %shr.i7.i5377 = lshr i32 %insn, 25 - %and.i8.i5378 = and i32 %shr.i7.i5377, 1 - store i32 %and.i8.i5378, ptr %u, align 4 - %shr.i9.i5379 = lshr i32 %insn, 7 - %and.i10.i5380 = and i32 %shr.i9.i5379, 31 - %rd.i5381 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5380, ptr %rd.i5381, align 4 - %shr.i11.i5382 = lshr i32 %insn, 15 - %and.i12.i5383 = and i32 %shr.i11.i5382, 31 - %rs1.i5384 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5383, ptr %rs1.i5384, align 4 + %shr.i.i5356 = lshr i32 %insn, 20 + %and.i.i5357 = and i32 %shr.i.i5356, 31 + %rs2.i5358 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5357, ptr %rs2.i5358, align 4 + %shr.i7.i5359 = lshr i32 %insn, 25 + %and.i8.i5360 = and i32 %shr.i7.i5359, 1 + store i32 %and.i8.i5360, ptr %u, align 4 + %shr.i9.i5361 = lshr i32 %insn, 7 + %and.i10.i5362 = and i32 %shr.i9.i5361, 31 + %rd.i5363 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5362, ptr %rd.i5363, align 4 + %shr.i11.i5364 = lshr i32 %insn, 15 + %and.i12.i5365 = and i32 %shr.i11.i5364, 31 + %rs1.i5366 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5365, ptr %rs1.i5366, align 4 %call2583 = call fastcc zeroext i1 @trans_vand_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2583, label %return, label %sw.epilog3868 sw.bb2586: ; preds = %sw.bb2547 - %shr.i.i5385 = lshr i32 %insn, 20 - %and.i.i5386 = and i32 %shr.i.i5385, 31 - %rs2.i5387 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5386, ptr %rs2.i5387, align 4 - %shr.i7.i5388 = lshr i32 %insn, 25 - %and.i8.i5389 = and i32 %shr.i7.i5388, 1 - store i32 %and.i8.i5389, ptr %u, align 4 - %shr.i9.i5390 = lshr i32 %insn, 7 - %and.i10.i5391 = and i32 %shr.i9.i5390, 31 - %rd.i5392 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5391, ptr %rd.i5392, align 4 - %shr.i11.i5393 = lshr i32 %insn, 15 - %and.i12.i5394 = and i32 %shr.i11.i5393, 31 - %rs1.i5395 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5394, ptr %rs1.i5395, align 4 + %shr.i.i5367 = lshr i32 %insn, 20 + %and.i.i5368 = and i32 %shr.i.i5367, 31 + %rs2.i5369 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5368, ptr %rs2.i5369, align 4 + %shr.i7.i5370 = lshr i32 %insn, 25 + %and.i8.i5371 = and i32 %shr.i7.i5370, 1 + store i32 %and.i8.i5371, ptr %u, align 4 + %shr.i9.i5372 = lshr i32 %insn, 7 + %and.i10.i5373 = and i32 %shr.i9.i5372, 31 + %rd.i5374 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5373, ptr %rd.i5374, align 4 + %shr.i11.i5375 = lshr i32 %insn, 15 + %and.i12.i5376 = and i32 %shr.i11.i5375, 31 + %rs1.i5377 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5376, ptr %rs1.i5377, align 4 %call2587 = call fastcc zeroext i1 @trans_vor_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2587, label %return, label %sw.epilog3868 sw.bb2590: ; preds = %sw.bb2547 - %shr.i.i5396 = lshr i32 %insn, 20 - %and.i.i5397 = and i32 %shr.i.i5396, 31 - %rs2.i5398 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5397, ptr %rs2.i5398, align 4 - %shr.i7.i5399 = lshr i32 %insn, 25 - %and.i8.i5400 = and i32 %shr.i7.i5399, 1 - store i32 %and.i8.i5400, ptr %u, align 4 - %shr.i9.i5401 = lshr i32 %insn, 7 - %and.i10.i5402 = and i32 %shr.i9.i5401, 31 - %rd.i5403 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5402, ptr %rd.i5403, align 4 - %shr.i11.i5404 = lshr i32 %insn, 15 - %and.i12.i5405 = and i32 %shr.i11.i5404, 31 - %rs1.i5406 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5405, ptr %rs1.i5406, align 4 + %shr.i.i5378 = lshr i32 %insn, 20 + %and.i.i5379 = and i32 %shr.i.i5378, 31 + %rs2.i5380 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5379, ptr %rs2.i5380, align 4 + %shr.i7.i5381 = lshr i32 %insn, 25 + %and.i8.i5382 = and i32 %shr.i7.i5381, 1 + store i32 %and.i8.i5382, ptr %u, align 4 + %shr.i9.i5383 = lshr i32 %insn, 7 + %and.i10.i5384 = and i32 %shr.i9.i5383, 31 + %rd.i5385 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5384, ptr %rd.i5385, align 4 + %shr.i11.i5386 = lshr i32 %insn, 15 + %and.i12.i5387 = and i32 %shr.i11.i5386, 31 + %rs1.i5388 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5387, ptr %rs1.i5388, align 4 %call2591 = call fastcc zeroext i1 @trans_vxor_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2591, label %return, label %sw.epilog3868 sw.bb2594: ; preds = %sw.bb2547 - %shr.i.i5407 = lshr i32 %insn, 20 - %and.i.i5408 = and i32 %shr.i.i5407, 31 - %rs2.i5409 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5408, ptr %rs2.i5409, align 4 - %shr.i7.i5410 = lshr i32 %insn, 25 - %and.i8.i5411 = and i32 %shr.i7.i5410, 1 - store i32 %and.i8.i5411, ptr %u, align 4 - %shr.i9.i5412 = lshr i32 %insn, 7 - %and.i10.i5413 = and i32 %shr.i9.i5412, 31 - %rd.i5414 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5413, ptr %rd.i5414, align 4 - %shr.i11.i5415 = lshr i32 %insn, 15 - %and.i12.i5416 = and i32 %shr.i11.i5415, 31 - %rs1.i5417 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5416, ptr %rs1.i5417, align 4 + %shr.i.i5389 = lshr i32 %insn, 20 + %and.i.i5390 = and i32 %shr.i.i5389, 31 + %rs2.i5391 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5390, ptr %rs2.i5391, align 4 + %shr.i7.i5392 = lshr i32 %insn, 25 + %and.i8.i5393 = and i32 %shr.i7.i5392, 1 + store i32 %and.i8.i5393, ptr %u, align 4 + %shr.i9.i5394 = lshr i32 %insn, 7 + %and.i10.i5395 = and i32 %shr.i9.i5394, 31 + %rd.i5396 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5395, ptr %rd.i5396, align 4 + %shr.i11.i5397 = lshr i32 %insn, 15 + %and.i12.i5398 = and i32 %shr.i11.i5397, 31 + %rs1.i5399 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5398, ptr %rs1.i5399, align 4 %call2595 = call fastcc zeroext i1 @trans_vrgather_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2595, label %return, label %sw.epilog3868 sw.bb2598: ; preds = %sw.bb2547 - %shr.i.i5418 = lshr i32 %insn, 20 - %and.i.i5419 = and i32 %shr.i.i5418, 31 - %rs2.i5420 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5419, ptr %rs2.i5420, align 4 - %shr.i7.i5421 = lshr i32 %insn, 25 - %and.i8.i5422 = and i32 %shr.i7.i5421, 1 - store i32 %and.i8.i5422, ptr %u, align 4 - %shr.i9.i5423 = lshr i32 %insn, 7 - %and.i10.i5424 = and i32 %shr.i9.i5423, 31 - %rd.i5425 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5424, ptr %rd.i5425, align 4 - %shr.i11.i5426 = lshr i32 %insn, 15 - %and.i12.i5427 = and i32 %shr.i11.i5426, 31 - %rs1.i5428 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5427, ptr %rs1.i5428, align 4 + %shr.i.i5400 = lshr i32 %insn, 20 + %and.i.i5401 = and i32 %shr.i.i5400, 31 + %rs2.i5402 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5401, ptr %rs2.i5402, align 4 + %shr.i7.i5403 = lshr i32 %insn, 25 + %and.i8.i5404 = and i32 %shr.i7.i5403, 1 + store i32 %and.i8.i5404, ptr %u, align 4 + %shr.i9.i5405 = lshr i32 %insn, 7 + %and.i10.i5406 = and i32 %shr.i9.i5405, 31 + %rd.i5407 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5406, ptr %rd.i5407, align 4 + %shr.i11.i5408 = lshr i32 %insn, 15 + %and.i12.i5409 = and i32 %shr.i11.i5408, 31 + %rs1.i5410 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5409, ptr %rs1.i5410, align 4 %call2599 = call fastcc zeroext i1 @trans_vslideup_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2599, label %return, label %sw.epilog3868 sw.bb2602: ; preds = %sw.bb2547 - %shr.i.i5429 = lshr i32 %insn, 20 - %and.i.i5430 = and i32 %shr.i.i5429, 31 - %rs2.i5431 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5430, ptr %rs2.i5431, align 4 - %shr.i7.i5432 = lshr i32 %insn, 25 - %and.i8.i5433 = and i32 %shr.i7.i5432, 1 - store i32 %and.i8.i5433, ptr %u, align 4 - %shr.i9.i5434 = lshr i32 %insn, 7 - %and.i10.i5435 = and i32 %shr.i9.i5434, 31 - %rd.i5436 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5435, ptr %rd.i5436, align 4 - %shr.i11.i5437 = lshr i32 %insn, 15 - %and.i12.i5438 = and i32 %shr.i11.i5437, 31 - %rs1.i5439 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5438, ptr %rs1.i5439, align 4 + %shr.i.i5411 = lshr i32 %insn, 20 + %and.i.i5412 = and i32 %shr.i.i5411, 31 + %rs2.i5413 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5412, ptr %rs2.i5413, align 4 + %shr.i7.i5414 = lshr i32 %insn, 25 + %and.i8.i5415 = and i32 %shr.i7.i5414, 1 + store i32 %and.i8.i5415, ptr %u, align 4 + %shr.i9.i5416 = lshr i32 %insn, 7 + %and.i10.i5417 = and i32 %shr.i9.i5416, 31 + %rd.i5418 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5417, ptr %rd.i5418, align 4 + %shr.i11.i5419 = lshr i32 %insn, 15 + %and.i12.i5420 = and i32 %shr.i11.i5419, 31 + %rs1.i5421 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5420, ptr %rs1.i5421, align 4 %call2603 = call fastcc zeroext i1 @trans_vslidedown_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2603, label %return, label %sw.epilog3868 sw.bb2606: ; preds = %sw.bb2547 - %shr.i.i5440 = lshr i32 %insn, 20 - %and.i.i5441 = and i32 %shr.i.i5440, 31 - %rs2.i5442 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5441, ptr %rs2.i5442, align 4 + %shr.i.i5422 = lshr i32 %insn, 20 + %and.i.i5423 = and i32 %shr.i.i5422, 31 + %rs2.i5424 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5423, ptr %rs2.i5424, align 4 store i32 1, ptr %u, align 4 - %shr.i6.i5443 = lshr i32 %insn, 7 - %and.i7.i5444 = and i32 %shr.i6.i5443, 31 - %rd.i5445 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i5444, ptr %rd.i5445, align 4 - %shr.i8.i5446 = lshr i32 %insn, 15 - %and.i9.i5447 = and i32 %shr.i8.i5446, 31 - %rs1.i5448 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i5447, ptr %rs1.i5448, align 4 + %shr.i6.i5425 = lshr i32 %insn, 7 + %and.i7.i5426 = and i32 %shr.i6.i5425, 31 + %rd.i5427 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i5426, ptr %rd.i5427, align 4 + %shr.i8.i5428 = lshr i32 %insn, 15 + %and.i9.i5429 = and i32 %shr.i8.i5428, 31 + %rs1.i5430 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i5429, ptr %rs1.i5430, align 4 %235 = and i32 %insn, 33554432 %cond16 = icmp eq i32 %235, 0 br i1 %cond16, label %sw.bb2609, label %sw.epilog3868 @@ -14813,38 +14791,38 @@ sw.bb2609: ; preds = %sw.bb2606 br i1 %call2610, label %return, label %sw.epilog3868 sw.bb2614: ; preds = %sw.bb2547 - %shr.i.i5449 = lshr i32 %insn, 20 - %and.i.i5450 = and i32 %shr.i.i5449, 31 - %rs2.i5451 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5450, ptr %rs2.i5451, align 4 - %shr.i7.i5452 = lshr i32 %insn, 25 - %and.i8.i5453 = and i32 %shr.i7.i5452, 1 - store i32 %and.i8.i5453, ptr %u, align 4 - %shr.i9.i5454 = lshr i32 %insn, 7 - %and.i10.i5455 = and i32 %shr.i9.i5454, 31 - %rd.i5456 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5455, ptr %rd.i5456, align 4 - %shr.i11.i5457 = lshr i32 %insn, 15 - %and.i12.i5458 = and i32 %shr.i11.i5457, 31 - %rs1.i5459 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5458, ptr %rs1.i5459, align 4 + %shr.i.i5431 = lshr i32 %insn, 20 + %and.i.i5432 = and i32 %shr.i.i5431, 31 + %rs2.i5433 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5432, ptr %rs2.i5433, align 4 + %shr.i7.i5434 = lshr i32 %insn, 25 + %and.i8.i5435 = and i32 %shr.i7.i5434, 1 + store i32 %and.i8.i5435, ptr %u, align 4 + %shr.i9.i5436 = lshr i32 %insn, 7 + %and.i10.i5437 = and i32 %shr.i9.i5436, 31 + %rd.i5438 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5437, ptr %rd.i5438, align 4 + %shr.i11.i5439 = lshr i32 %insn, 15 + %and.i12.i5440 = and i32 %shr.i11.i5439, 31 + %rs1.i5441 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5440, ptr %rs1.i5441, align 4 %call2615 = call fastcc zeroext i1 @trans_vmadc_vxm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2615, label %return, label %sw.epilog3868 sw.bb2618: ; preds = %sw.bb2547 - %shr.i.i5460 = lshr i32 %insn, 20 - %and.i.i5461 = and i32 %shr.i.i5460, 31 - %rs2.i5462 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5461, ptr %rs2.i5462, align 4 + %shr.i.i5442 = lshr i32 %insn, 20 + %and.i.i5443 = and i32 %shr.i.i5442, 31 + %rs2.i5444 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5443, ptr %rs2.i5444, align 4 store i32 1, ptr %u, align 4 - %shr.i6.i5463 = lshr i32 %insn, 7 - %and.i7.i5464 = and i32 %shr.i6.i5463, 31 - %rd.i5465 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i5464, ptr %rd.i5465, align 4 - %shr.i8.i5466 = lshr i32 %insn, 15 - %and.i9.i5467 = and i32 %shr.i8.i5466, 31 - %rs1.i5468 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i5467, ptr %rs1.i5468, align 4 + %shr.i6.i5445 = lshr i32 %insn, 7 + %and.i7.i5446 = and i32 %shr.i6.i5445, 31 + %rd.i5447 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i5446, ptr %rd.i5447, align 4 + %shr.i8.i5448 = lshr i32 %insn, 15 + %and.i9.i5449 = and i32 %shr.i8.i5448, 31 + %rs1.i5450 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i5449, ptr %rs1.i5450, align 4 %236 = and i32 %insn, 33554432 %cond15 = icmp eq i32 %236, 0 br i1 %cond15, label %sw.bb2621, label %sw.epilog3868 @@ -14854,59 +14832,59 @@ sw.bb2621: ; preds = %sw.bb2618 br i1 %call2622, label %return, label %sw.epilog3868 sw.bb2626: ; preds = %sw.bb2547 - %shr.i.i5469 = lshr i32 %insn, 20 - %and.i.i5470 = and i32 %shr.i.i5469, 31 - %rs2.i5471 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5470, ptr %rs2.i5471, align 4 - %shr.i7.i5472 = lshr i32 %insn, 25 - %and.i8.i5473 = and i32 %shr.i7.i5472, 1 - store i32 %and.i8.i5473, ptr %u, align 4 - %shr.i9.i5474 = lshr i32 %insn, 7 - %and.i10.i5475 = and i32 %shr.i9.i5474, 31 - %rd.i5476 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5475, ptr %rd.i5476, align 4 - %shr.i11.i5477 = lshr i32 %insn, 15 - %and.i12.i5478 = and i32 %shr.i11.i5477, 31 - %rs1.i5479 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5478, ptr %rs1.i5479, align 4 + %shr.i.i5451 = lshr i32 %insn, 20 + %and.i.i5452 = and i32 %shr.i.i5451, 31 + %rs2.i5453 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5452, ptr %rs2.i5453, align 4 + %shr.i7.i5454 = lshr i32 %insn, 25 + %and.i8.i5455 = and i32 %shr.i7.i5454, 1 + store i32 %and.i8.i5455, ptr %u, align 4 + %shr.i9.i5456 = lshr i32 %insn, 7 + %and.i10.i5457 = and i32 %shr.i9.i5456, 31 + %rd.i5458 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5457, ptr %rd.i5458, align 4 + %shr.i11.i5459 = lshr i32 %insn, 15 + %and.i12.i5460 = and i32 %shr.i11.i5459, 31 + %rs1.i5461 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5460, ptr %rs1.i5461, align 4 %call2627 = call fastcc zeroext i1 @trans_vmsbc_vxm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2627, label %return, label %sw.epilog3868 sw.bb2630: ; preds = %sw.bb2547 - %shr.i.i5480 = lshr i32 %insn, 20 - %and.i.i5481 = and i32 %shr.i.i5480, 31 - %rs2.i5482 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5481, ptr %rs2.i5482, align 4 - %shr.i7.i5483 = lshr i32 %insn, 25 - %and.i8.i5484 = and i32 %shr.i7.i5483, 1 - store i32 %and.i8.i5484, ptr %u, align 4 - %shr.i9.i5485 = lshr i32 %insn, 7 - %and.i10.i5486 = and i32 %shr.i9.i5485, 31 - %rd.i5487 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5486, ptr %rd.i5487, align 4 - %shr.i11.i5488 = lshr i32 %insn, 15 - %and.i12.i5489 = and i32 %shr.i11.i5488, 31 - %rs1.i5490 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5489, ptr %rs1.i5490, align 4 + %shr.i.i5462 = lshr i32 %insn, 20 + %and.i.i5463 = and i32 %shr.i.i5462, 31 + %rs2.i5464 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5463, ptr %rs2.i5464, align 4 + %shr.i7.i5465 = lshr i32 %insn, 25 + %and.i8.i5466 = and i32 %shr.i7.i5465, 1 + store i32 %and.i8.i5466, ptr %u, align 4 + %shr.i9.i5467 = lshr i32 %insn, 7 + %and.i10.i5468 = and i32 %shr.i9.i5467, 31 + %rd.i5469 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5468, ptr %rd.i5469, align 4 + %shr.i11.i5470 = lshr i32 %insn, 15 + %and.i12.i5471 = and i32 %shr.i11.i5470, 31 + %rs1.i5472 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5471, ptr %rs1.i5472, align 4 %call2631 = call fastcc zeroext i1 @trans_vror_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2631, label %return, label %sw.epilog3868 sw.bb2634: ; preds = %sw.bb2547 - %shr.i.i5491 = lshr i32 %insn, 20 - %and.i.i5492 = and i32 %shr.i.i5491, 31 - %rs2.i5493 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5492, ptr %rs2.i5493, align 4 - %shr.i7.i5494 = lshr i32 %insn, 25 - %and.i8.i5495 = and i32 %shr.i7.i5494, 1 - store i32 %and.i8.i5495, ptr %u, align 4 - %shr.i9.i5496 = lshr i32 %insn, 7 - %and.i10.i5497 = and i32 %shr.i9.i5496, 31 - %rd.i5498 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5497, ptr %rd.i5498, align 4 - %shr.i11.i5499 = lshr i32 %insn, 15 - %and.i12.i5500 = and i32 %shr.i11.i5499, 31 - %rs1.i5501 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5500, ptr %rs1.i5501, align 4 + %shr.i.i5473 = lshr i32 %insn, 20 + %and.i.i5474 = and i32 %shr.i.i5473, 31 + %rs2.i5475 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5474, ptr %rs2.i5475, align 4 + %shr.i7.i5476 = lshr i32 %insn, 25 + %and.i8.i5477 = and i32 %shr.i7.i5476, 1 + store i32 %and.i8.i5477, ptr %u, align 4 + %shr.i9.i5478 = lshr i32 %insn, 7 + %and.i10.i5479 = and i32 %shr.i9.i5478, 31 + %rd.i5480 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5479, ptr %rd.i5480, align 4 + %shr.i11.i5481 = lshr i32 %insn, 15 + %and.i12.i5482 = and i32 %shr.i11.i5481, 31 + %rs1.i5483 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5482, ptr %rs1.i5483, align 4 %call2635 = call fastcc zeroext i1 @trans_vrol_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2635, label %return, label %sw.epilog3868 @@ -14916,30 +14894,30 @@ sw.bb2638: ; preds = %sw.bb2547 br i1 %trunc1927.not, label %sw.bb2641, label %sw.bb2645 sw.bb2641: ; preds = %sw.bb2638 - %shr.i.i5502 = lshr i32 %insn, 20 - %and.i.i5503 = and i32 %shr.i.i5502, 31 - %rs2.i5504 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5503, ptr %rs2.i5504, align 4 + %shr.i.i5484 = lshr i32 %insn, 20 + %and.i.i5485 = and i32 %shr.i.i5484, 31 + %rs2.i5486 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5485, ptr %rs2.i5486, align 4 store i32 0, ptr %u, align 4 - %shr.i6.i5505 = lshr i32 %insn, 7 - %and.i7.i5506 = and i32 %shr.i6.i5505, 31 - %rd.i5507 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i5506, ptr %rd.i5507, align 4 - %shr.i8.i5508 = lshr i32 %insn, 15 - %and.i9.i5509 = and i32 %shr.i8.i5508, 31 - %rs1.i5510 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i5509, ptr %rs1.i5510, align 4 + %shr.i6.i5487 = lshr i32 %insn, 7 + %and.i7.i5488 = and i32 %shr.i6.i5487, 31 + %rd.i5489 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i5488, ptr %rd.i5489, align 4 + %shr.i8.i5490 = lshr i32 %insn, 15 + %and.i9.i5491 = and i32 %shr.i8.i5490, 31 + %rs1.i5492 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i5491, ptr %rs1.i5492, align 4 %call2642 = call fastcc zeroext i1 @trans_vmerge_vxm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2642, label %return, label %sw.epilog3868 sw.bb2645: ; preds = %sw.bb2638 - %shr.i.i5511 = lshr i32 %insn, 7 - %and.i.i5512 = and i32 %shr.i.i5511, 31 - store i32 %and.i.i5512, ptr %u, align 4 - %shr.i3.i5513 = lshr i32 %insn, 15 - %and.i4.i5514 = and i32 %shr.i3.i5513, 31 - %rs1.i5515 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i5514, ptr %rs1.i5515, align 4 + %shr.i.i5493 = lshr i32 %insn, 7 + %and.i.i5494 = and i32 %shr.i.i5493, 31 + store i32 %and.i.i5494, ptr %u, align 4 + %shr.i3.i5495 = lshr i32 %insn, 15 + %and.i4.i5496 = and i32 %shr.i3.i5495, 31 + %rs1.i5497 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i5496, ptr %rs1.i5497, align 4 %238 = and i32 %insn, 32505856 %cond14 = icmp eq i32 %238, 0 br i1 %cond14, label %sw.bb2648, label %sw.epilog3868 @@ -14949,154 +14927,154 @@ sw.bb2648: ; preds = %sw.bb2645 br i1 %call2649, label %return, label %sw.epilog3868 sw.bb2654: ; preds = %sw.bb2547 - %shr.i.i5516 = lshr i32 %insn, 20 - %and.i.i5517 = and i32 %shr.i.i5516, 31 - %rs2.i5518 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5517, ptr %rs2.i5518, align 4 - %shr.i7.i5519 = lshr i32 %insn, 25 - %and.i8.i5520 = and i32 %shr.i7.i5519, 1 - store i32 %and.i8.i5520, ptr %u, align 4 - %shr.i9.i5521 = lshr i32 %insn, 7 - %and.i10.i5522 = and i32 %shr.i9.i5521, 31 - %rd.i5523 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5522, ptr %rd.i5523, align 4 - %shr.i11.i5524 = lshr i32 %insn, 15 - %and.i12.i5525 = and i32 %shr.i11.i5524, 31 - %rs1.i5526 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5525, ptr %rs1.i5526, align 4 + %shr.i.i5498 = lshr i32 %insn, 20 + %and.i.i5499 = and i32 %shr.i.i5498, 31 + %rs2.i5500 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5499, ptr %rs2.i5500, align 4 + %shr.i7.i5501 = lshr i32 %insn, 25 + %and.i8.i5502 = and i32 %shr.i7.i5501, 1 + store i32 %and.i8.i5502, ptr %u, align 4 + %shr.i9.i5503 = lshr i32 %insn, 7 + %and.i10.i5504 = and i32 %shr.i9.i5503, 31 + %rd.i5505 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5504, ptr %rd.i5505, align 4 + %shr.i11.i5506 = lshr i32 %insn, 15 + %and.i12.i5507 = and i32 %shr.i11.i5506, 31 + %rs1.i5508 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5507, ptr %rs1.i5508, align 4 %call2655 = call fastcc zeroext i1 @trans_vmseq_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2655, label %return, label %sw.epilog3868 sw.bb2658: ; preds = %sw.bb2547 - %shr.i.i5527 = lshr i32 %insn, 20 - %and.i.i5528 = and i32 %shr.i.i5527, 31 - %rs2.i5529 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5528, ptr %rs2.i5529, align 4 - %shr.i7.i5530 = lshr i32 %insn, 25 - %and.i8.i5531 = and i32 %shr.i7.i5530, 1 - store i32 %and.i8.i5531, ptr %u, align 4 - %shr.i9.i5532 = lshr i32 %insn, 7 - %and.i10.i5533 = and i32 %shr.i9.i5532, 31 - %rd.i5534 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5533, ptr %rd.i5534, align 4 - %shr.i11.i5535 = lshr i32 %insn, 15 - %and.i12.i5536 = and i32 %shr.i11.i5535, 31 - %rs1.i5537 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5536, ptr %rs1.i5537, align 4 + %shr.i.i5509 = lshr i32 %insn, 20 + %and.i.i5510 = and i32 %shr.i.i5509, 31 + %rs2.i5511 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5510, ptr %rs2.i5511, align 4 + %shr.i7.i5512 = lshr i32 %insn, 25 + %and.i8.i5513 = and i32 %shr.i7.i5512, 1 + store i32 %and.i8.i5513, ptr %u, align 4 + %shr.i9.i5514 = lshr i32 %insn, 7 + %and.i10.i5515 = and i32 %shr.i9.i5514, 31 + %rd.i5516 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5515, ptr %rd.i5516, align 4 + %shr.i11.i5517 = lshr i32 %insn, 15 + %and.i12.i5518 = and i32 %shr.i11.i5517, 31 + %rs1.i5519 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5518, ptr %rs1.i5519, align 4 %call2659 = call fastcc zeroext i1 @trans_vmsne_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2659, label %return, label %sw.epilog3868 sw.bb2662: ; preds = %sw.bb2547 - %shr.i.i5538 = lshr i32 %insn, 20 - %and.i.i5539 = and i32 %shr.i.i5538, 31 - %rs2.i5540 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5539, ptr %rs2.i5540, align 4 - %shr.i7.i5541 = lshr i32 %insn, 25 - %and.i8.i5542 = and i32 %shr.i7.i5541, 1 - store i32 %and.i8.i5542, ptr %u, align 4 - %shr.i9.i5543 = lshr i32 %insn, 7 - %and.i10.i5544 = and i32 %shr.i9.i5543, 31 - %rd.i5545 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5544, ptr %rd.i5545, align 4 - %shr.i11.i5546 = lshr i32 %insn, 15 - %and.i12.i5547 = and i32 %shr.i11.i5546, 31 - %rs1.i5548 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5547, ptr %rs1.i5548, align 4 + %shr.i.i5520 = lshr i32 %insn, 20 + %and.i.i5521 = and i32 %shr.i.i5520, 31 + %rs2.i5522 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5521, ptr %rs2.i5522, align 4 + %shr.i7.i5523 = lshr i32 %insn, 25 + %and.i8.i5524 = and i32 %shr.i7.i5523, 1 + store i32 %and.i8.i5524, ptr %u, align 4 + %shr.i9.i5525 = lshr i32 %insn, 7 + %and.i10.i5526 = and i32 %shr.i9.i5525, 31 + %rd.i5527 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5526, ptr %rd.i5527, align 4 + %shr.i11.i5528 = lshr i32 %insn, 15 + %and.i12.i5529 = and i32 %shr.i11.i5528, 31 + %rs1.i5530 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5529, ptr %rs1.i5530, align 4 %call2663 = call fastcc zeroext i1 @trans_vmsltu_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2663, label %return, label %sw.epilog3868 sw.bb2666: ; preds = %sw.bb2547 - %shr.i.i5549 = lshr i32 %insn, 20 - %and.i.i5550 = and i32 %shr.i.i5549, 31 - %rs2.i5551 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5550, ptr %rs2.i5551, align 4 - %shr.i7.i5552 = lshr i32 %insn, 25 - %and.i8.i5553 = and i32 %shr.i7.i5552, 1 - store i32 %and.i8.i5553, ptr %u, align 4 - %shr.i9.i5554 = lshr i32 %insn, 7 - %and.i10.i5555 = and i32 %shr.i9.i5554, 31 - %rd.i5556 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5555, ptr %rd.i5556, align 4 - %shr.i11.i5557 = lshr i32 %insn, 15 - %and.i12.i5558 = and i32 %shr.i11.i5557, 31 - %rs1.i5559 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5558, ptr %rs1.i5559, align 4 + %shr.i.i5531 = lshr i32 %insn, 20 + %and.i.i5532 = and i32 %shr.i.i5531, 31 + %rs2.i5533 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5532, ptr %rs2.i5533, align 4 + %shr.i7.i5534 = lshr i32 %insn, 25 + %and.i8.i5535 = and i32 %shr.i7.i5534, 1 + store i32 %and.i8.i5535, ptr %u, align 4 + %shr.i9.i5536 = lshr i32 %insn, 7 + %and.i10.i5537 = and i32 %shr.i9.i5536, 31 + %rd.i5538 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5537, ptr %rd.i5538, align 4 + %shr.i11.i5539 = lshr i32 %insn, 15 + %and.i12.i5540 = and i32 %shr.i11.i5539, 31 + %rs1.i5541 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5540, ptr %rs1.i5541, align 4 %call2667 = call fastcc zeroext i1 @trans_vmslt_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2667, label %return, label %sw.epilog3868 sw.bb2670: ; preds = %sw.bb2547 - %shr.i.i5560 = lshr i32 %insn, 20 - %and.i.i5561 = and i32 %shr.i.i5560, 31 - %rs2.i5562 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5561, ptr %rs2.i5562, align 4 - %shr.i7.i5563 = lshr i32 %insn, 25 - %and.i8.i5564 = and i32 %shr.i7.i5563, 1 - store i32 %and.i8.i5564, ptr %u, align 4 - %shr.i9.i5565 = lshr i32 %insn, 7 - %and.i10.i5566 = and i32 %shr.i9.i5565, 31 - %rd.i5567 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5566, ptr %rd.i5567, align 4 - %shr.i11.i5568 = lshr i32 %insn, 15 - %and.i12.i5569 = and i32 %shr.i11.i5568, 31 - %rs1.i5570 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5569, ptr %rs1.i5570, align 4 + %shr.i.i5542 = lshr i32 %insn, 20 + %and.i.i5543 = and i32 %shr.i.i5542, 31 + %rs2.i5544 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5543, ptr %rs2.i5544, align 4 + %shr.i7.i5545 = lshr i32 %insn, 25 + %and.i8.i5546 = and i32 %shr.i7.i5545, 1 + store i32 %and.i8.i5546, ptr %u, align 4 + %shr.i9.i5547 = lshr i32 %insn, 7 + %and.i10.i5548 = and i32 %shr.i9.i5547, 31 + %rd.i5549 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5548, ptr %rd.i5549, align 4 + %shr.i11.i5550 = lshr i32 %insn, 15 + %and.i12.i5551 = and i32 %shr.i11.i5550, 31 + %rs1.i5552 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5551, ptr %rs1.i5552, align 4 %call2671 = call fastcc zeroext i1 @trans_vmsleu_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2671, label %return, label %sw.epilog3868 sw.bb2674: ; preds = %sw.bb2547 - %shr.i.i5571 = lshr i32 %insn, 20 - %and.i.i5572 = and i32 %shr.i.i5571, 31 - %rs2.i5573 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5572, ptr %rs2.i5573, align 4 - %shr.i7.i5574 = lshr i32 %insn, 25 - %and.i8.i5575 = and i32 %shr.i7.i5574, 1 - store i32 %and.i8.i5575, ptr %u, align 4 - %shr.i9.i5576 = lshr i32 %insn, 7 - %and.i10.i5577 = and i32 %shr.i9.i5576, 31 - %rd.i5578 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5577, ptr %rd.i5578, align 4 - %shr.i11.i5579 = lshr i32 %insn, 15 - %and.i12.i5580 = and i32 %shr.i11.i5579, 31 - %rs1.i5581 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5580, ptr %rs1.i5581, align 4 + %shr.i.i5553 = lshr i32 %insn, 20 + %and.i.i5554 = and i32 %shr.i.i5553, 31 + %rs2.i5555 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5554, ptr %rs2.i5555, align 4 + %shr.i7.i5556 = lshr i32 %insn, 25 + %and.i8.i5557 = and i32 %shr.i7.i5556, 1 + store i32 %and.i8.i5557, ptr %u, align 4 + %shr.i9.i5558 = lshr i32 %insn, 7 + %and.i10.i5559 = and i32 %shr.i9.i5558, 31 + %rd.i5560 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5559, ptr %rd.i5560, align 4 + %shr.i11.i5561 = lshr i32 %insn, 15 + %and.i12.i5562 = and i32 %shr.i11.i5561, 31 + %rs1.i5563 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5562, ptr %rs1.i5563, align 4 %call2675 = call fastcc zeroext i1 @trans_vmsle_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2675, label %return, label %sw.epilog3868 sw.bb2678: ; preds = %sw.bb2547 - %shr.i.i5582 = lshr i32 %insn, 20 - %and.i.i5583 = and i32 %shr.i.i5582, 31 - %rs2.i5584 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5583, ptr %rs2.i5584, align 4 - %shr.i7.i5585 = lshr i32 %insn, 25 - %and.i8.i5586 = and i32 %shr.i7.i5585, 1 - store i32 %and.i8.i5586, ptr %u, align 4 - %shr.i9.i5587 = lshr i32 %insn, 7 - %and.i10.i5588 = and i32 %shr.i9.i5587, 31 - %rd.i5589 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5588, ptr %rd.i5589, align 4 - %shr.i11.i5590 = lshr i32 %insn, 15 - %and.i12.i5591 = and i32 %shr.i11.i5590, 31 - %rs1.i5592 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5591, ptr %rs1.i5592, align 4 + %shr.i.i5564 = lshr i32 %insn, 20 + %and.i.i5565 = and i32 %shr.i.i5564, 31 + %rs2.i5566 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5565, ptr %rs2.i5566, align 4 + %shr.i7.i5567 = lshr i32 %insn, 25 + %and.i8.i5568 = and i32 %shr.i7.i5567, 1 + store i32 %and.i8.i5568, ptr %u, align 4 + %shr.i9.i5569 = lshr i32 %insn, 7 + %and.i10.i5570 = and i32 %shr.i9.i5569, 31 + %rd.i5571 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5570, ptr %rd.i5571, align 4 + %shr.i11.i5572 = lshr i32 %insn, 15 + %and.i12.i5573 = and i32 %shr.i11.i5572, 31 + %rs1.i5574 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5573, ptr %rs1.i5574, align 4 %call2679 = call fastcc zeroext i1 @trans_vmsgtu_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2679, label %return, label %sw.epilog3868 sw.bb2682: ; preds = %sw.bb2547 - %shr.i.i5593 = lshr i32 %insn, 20 - %and.i.i5594 = and i32 %shr.i.i5593, 31 - %rs2.i5595 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5594, ptr %rs2.i5595, align 4 - %shr.i7.i5596 = lshr i32 %insn, 25 - %and.i8.i5597 = and i32 %shr.i7.i5596, 1 - store i32 %and.i8.i5597, ptr %u, align 4 - %shr.i9.i5598 = lshr i32 %insn, 7 - %and.i10.i5599 = and i32 %shr.i9.i5598, 31 - %rd.i5600 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5599, ptr %rd.i5600, align 4 - %shr.i11.i5601 = lshr i32 %insn, 15 - %and.i12.i5602 = and i32 %shr.i11.i5601, 31 - %rs1.i5603 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5602, ptr %rs1.i5603, align 4 + %shr.i.i5575 = lshr i32 %insn, 20 + %and.i.i5576 = and i32 %shr.i.i5575, 31 + %rs2.i5577 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5576, ptr %rs2.i5577, align 4 + %shr.i7.i5578 = lshr i32 %insn, 25 + %and.i8.i5579 = and i32 %shr.i7.i5578, 1 + store i32 %and.i8.i5579, ptr %u, align 4 + %shr.i9.i5580 = lshr i32 %insn, 7 + %and.i10.i5581 = and i32 %shr.i9.i5580, 31 + %rd.i5582 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5581, ptr %rd.i5582, align 4 + %shr.i11.i5583 = lshr i32 %insn, 15 + %and.i12.i5584 = and i32 %shr.i11.i5583, 31 + %rs1.i5585 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5584, ptr %rs1.i5585, align 4 %call2683 = call fastcc zeroext i1 @trans_vmsgt_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2683, label %return, label %sw.epilog3868 @@ -15124,184 +15102,184 @@ sw.bb2687: ; preds = %sw.bb1906 ] sw.bb2690: ; preds = %sw.bb2687 - %shr.i.i5604 = lshr i32 %insn, 20 - %and.i.i5605 = and i32 %shr.i.i5604, 31 - %rs2.i5606 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5605, ptr %rs2.i5606, align 4 - %shr.i7.i5607 = lshr i32 %insn, 25 - %and.i8.i5608 = and i32 %shr.i7.i5607, 1 - store i32 %and.i8.i5608, ptr %u, align 4 - %shr.i9.i5609 = lshr i32 %insn, 7 - %and.i10.i5610 = and i32 %shr.i9.i5609, 31 - %rd.i5611 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5610, ptr %rd.i5611, align 4 - %shr.i11.i5612 = lshr i32 %insn, 15 - %and.i12.i5613 = and i32 %shr.i11.i5612, 31 - %rs1.i5614 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5613, ptr %rs1.i5614, align 4 + %shr.i.i5586 = lshr i32 %insn, 20 + %and.i.i5587 = and i32 %shr.i.i5586, 31 + %rs2.i5588 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5587, ptr %rs2.i5588, align 4 + %shr.i7.i5589 = lshr i32 %insn, 25 + %and.i8.i5590 = and i32 %shr.i7.i5589, 1 + store i32 %and.i8.i5590, ptr %u, align 4 + %shr.i9.i5591 = lshr i32 %insn, 7 + %and.i10.i5592 = and i32 %shr.i9.i5591, 31 + %rd.i5593 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5592, ptr %rd.i5593, align 4 + %shr.i11.i5594 = lshr i32 %insn, 15 + %and.i12.i5595 = and i32 %shr.i11.i5594, 31 + %rs1.i5596 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5595, ptr %rs1.i5596, align 4 %call2691 = call fastcc zeroext i1 @trans_vfadd_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2691, label %return, label %sw.epilog3868 sw.bb2694: ; preds = %sw.bb2687 - %shr.i.i5615 = lshr i32 %insn, 20 - %and.i.i5616 = and i32 %shr.i.i5615, 31 - %rs2.i5617 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5616, ptr %rs2.i5617, align 4 - %shr.i7.i5618 = lshr i32 %insn, 25 - %and.i8.i5619 = and i32 %shr.i7.i5618, 1 - store i32 %and.i8.i5619, ptr %u, align 4 - %shr.i9.i5620 = lshr i32 %insn, 7 - %and.i10.i5621 = and i32 %shr.i9.i5620, 31 - %rd.i5622 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5621, ptr %rd.i5622, align 4 - %shr.i11.i5623 = lshr i32 %insn, 15 - %and.i12.i5624 = and i32 %shr.i11.i5623, 31 - %rs1.i5625 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5624, ptr %rs1.i5625, align 4 + %shr.i.i5597 = lshr i32 %insn, 20 + %and.i.i5598 = and i32 %shr.i.i5597, 31 + %rs2.i5599 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5598, ptr %rs2.i5599, align 4 + %shr.i7.i5600 = lshr i32 %insn, 25 + %and.i8.i5601 = and i32 %shr.i7.i5600, 1 + store i32 %and.i8.i5601, ptr %u, align 4 + %shr.i9.i5602 = lshr i32 %insn, 7 + %and.i10.i5603 = and i32 %shr.i9.i5602, 31 + %rd.i5604 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5603, ptr %rd.i5604, align 4 + %shr.i11.i5605 = lshr i32 %insn, 15 + %and.i12.i5606 = and i32 %shr.i11.i5605, 31 + %rs1.i5607 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5606, ptr %rs1.i5607, align 4 %call2695 = call fastcc zeroext i1 @trans_vfsub_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2695, label %return, label %sw.epilog3868 sw.bb2698: ; preds = %sw.bb2687 - %shr.i.i5626 = lshr i32 %insn, 20 - %and.i.i5627 = and i32 %shr.i.i5626, 31 - %rs2.i5628 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5627, ptr %rs2.i5628, align 4 - %shr.i7.i5629 = lshr i32 %insn, 25 - %and.i8.i5630 = and i32 %shr.i7.i5629, 1 - store i32 %and.i8.i5630, ptr %u, align 4 - %shr.i9.i5631 = lshr i32 %insn, 7 - %and.i10.i5632 = and i32 %shr.i9.i5631, 31 - %rd.i5633 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5632, ptr %rd.i5633, align 4 - %shr.i11.i5634 = lshr i32 %insn, 15 - %and.i12.i5635 = and i32 %shr.i11.i5634, 31 - %rs1.i5636 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5635, ptr %rs1.i5636, align 4 + %shr.i.i5608 = lshr i32 %insn, 20 + %and.i.i5609 = and i32 %shr.i.i5608, 31 + %rs2.i5610 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5609, ptr %rs2.i5610, align 4 + %shr.i7.i5611 = lshr i32 %insn, 25 + %and.i8.i5612 = and i32 %shr.i7.i5611, 1 + store i32 %and.i8.i5612, ptr %u, align 4 + %shr.i9.i5613 = lshr i32 %insn, 7 + %and.i10.i5614 = and i32 %shr.i9.i5613, 31 + %rd.i5615 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5614, ptr %rd.i5615, align 4 + %shr.i11.i5616 = lshr i32 %insn, 15 + %and.i12.i5617 = and i32 %shr.i11.i5616, 31 + %rs1.i5618 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5617, ptr %rs1.i5618, align 4 %call2699 = call fastcc zeroext i1 @trans_vfmin_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2699, label %return, label %sw.epilog3868 sw.bb2702: ; preds = %sw.bb2687 - %shr.i.i5637 = lshr i32 %insn, 20 - %and.i.i5638 = and i32 %shr.i.i5637, 31 - %rs2.i5639 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5638, ptr %rs2.i5639, align 4 - %shr.i7.i5640 = lshr i32 %insn, 25 - %and.i8.i5641 = and i32 %shr.i7.i5640, 1 - store i32 %and.i8.i5641, ptr %u, align 4 - %shr.i9.i5642 = lshr i32 %insn, 7 - %and.i10.i5643 = and i32 %shr.i9.i5642, 31 - %rd.i5644 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5643, ptr %rd.i5644, align 4 - %shr.i11.i5645 = lshr i32 %insn, 15 - %and.i12.i5646 = and i32 %shr.i11.i5645, 31 - %rs1.i5647 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5646, ptr %rs1.i5647, align 4 + %shr.i.i5619 = lshr i32 %insn, 20 + %and.i.i5620 = and i32 %shr.i.i5619, 31 + %rs2.i5621 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5620, ptr %rs2.i5621, align 4 + %shr.i7.i5622 = lshr i32 %insn, 25 + %and.i8.i5623 = and i32 %shr.i7.i5622, 1 + store i32 %and.i8.i5623, ptr %u, align 4 + %shr.i9.i5624 = lshr i32 %insn, 7 + %and.i10.i5625 = and i32 %shr.i9.i5624, 31 + %rd.i5626 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5625, ptr %rd.i5626, align 4 + %shr.i11.i5627 = lshr i32 %insn, 15 + %and.i12.i5628 = and i32 %shr.i11.i5627, 31 + %rs1.i5629 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5628, ptr %rs1.i5629, align 4 %call2703 = call fastcc zeroext i1 @trans_vfmax_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2703, label %return, label %sw.epilog3868 sw.bb2706: ; preds = %sw.bb2687 - %shr.i.i5648 = lshr i32 %insn, 20 - %and.i.i5649 = and i32 %shr.i.i5648, 31 - %rs2.i5650 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5649, ptr %rs2.i5650, align 4 - %shr.i7.i5651 = lshr i32 %insn, 25 - %and.i8.i5652 = and i32 %shr.i7.i5651, 1 - store i32 %and.i8.i5652, ptr %u, align 4 - %shr.i9.i5653 = lshr i32 %insn, 7 - %and.i10.i5654 = and i32 %shr.i9.i5653, 31 - %rd.i5655 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5654, ptr %rd.i5655, align 4 - %shr.i11.i5656 = lshr i32 %insn, 15 - %and.i12.i5657 = and i32 %shr.i11.i5656, 31 - %rs1.i5658 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5657, ptr %rs1.i5658, align 4 + %shr.i.i5630 = lshr i32 %insn, 20 + %and.i.i5631 = and i32 %shr.i.i5630, 31 + %rs2.i5632 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5631, ptr %rs2.i5632, align 4 + %shr.i7.i5633 = lshr i32 %insn, 25 + %and.i8.i5634 = and i32 %shr.i7.i5633, 1 + store i32 %and.i8.i5634, ptr %u, align 4 + %shr.i9.i5635 = lshr i32 %insn, 7 + %and.i10.i5636 = and i32 %shr.i9.i5635, 31 + %rd.i5637 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5636, ptr %rd.i5637, align 4 + %shr.i11.i5638 = lshr i32 %insn, 15 + %and.i12.i5639 = and i32 %shr.i11.i5638, 31 + %rs1.i5640 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5639, ptr %rs1.i5640, align 4 %call2707 = call fastcc zeroext i1 @trans_vfsgnj_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2707, label %return, label %sw.epilog3868 sw.bb2710: ; preds = %sw.bb2687 - %shr.i.i5659 = lshr i32 %insn, 20 - %and.i.i5660 = and i32 %shr.i.i5659, 31 - %rs2.i5661 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5660, ptr %rs2.i5661, align 4 - %shr.i7.i5662 = lshr i32 %insn, 25 - %and.i8.i5663 = and i32 %shr.i7.i5662, 1 - store i32 %and.i8.i5663, ptr %u, align 4 - %shr.i9.i5664 = lshr i32 %insn, 7 - %and.i10.i5665 = and i32 %shr.i9.i5664, 31 - %rd.i5666 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5665, ptr %rd.i5666, align 4 - %shr.i11.i5667 = lshr i32 %insn, 15 - %and.i12.i5668 = and i32 %shr.i11.i5667, 31 - %rs1.i5669 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5668, ptr %rs1.i5669, align 4 + %shr.i.i5641 = lshr i32 %insn, 20 + %and.i.i5642 = and i32 %shr.i.i5641, 31 + %rs2.i5643 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5642, ptr %rs2.i5643, align 4 + %shr.i7.i5644 = lshr i32 %insn, 25 + %and.i8.i5645 = and i32 %shr.i7.i5644, 1 + store i32 %and.i8.i5645, ptr %u, align 4 + %shr.i9.i5646 = lshr i32 %insn, 7 + %and.i10.i5647 = and i32 %shr.i9.i5646, 31 + %rd.i5648 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5647, ptr %rd.i5648, align 4 + %shr.i11.i5649 = lshr i32 %insn, 15 + %and.i12.i5650 = and i32 %shr.i11.i5649, 31 + %rs1.i5651 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5650, ptr %rs1.i5651, align 4 %call2711 = call fastcc zeroext i1 @trans_vfsgnjn_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2711, label %return, label %sw.epilog3868 sw.bb2714: ; preds = %sw.bb2687 - %shr.i.i5670 = lshr i32 %insn, 20 - %and.i.i5671 = and i32 %shr.i.i5670, 31 - %rs2.i5672 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5671, ptr %rs2.i5672, align 4 - %shr.i7.i5673 = lshr i32 %insn, 25 - %and.i8.i5674 = and i32 %shr.i7.i5673, 1 - store i32 %and.i8.i5674, ptr %u, align 4 - %shr.i9.i5675 = lshr i32 %insn, 7 - %and.i10.i5676 = and i32 %shr.i9.i5675, 31 - %rd.i5677 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5676, ptr %rd.i5677, align 4 - %shr.i11.i5678 = lshr i32 %insn, 15 - %and.i12.i5679 = and i32 %shr.i11.i5678, 31 - %rs1.i5680 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5679, ptr %rs1.i5680, align 4 + %shr.i.i5652 = lshr i32 %insn, 20 + %and.i.i5653 = and i32 %shr.i.i5652, 31 + %rs2.i5654 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5653, ptr %rs2.i5654, align 4 + %shr.i7.i5655 = lshr i32 %insn, 25 + %and.i8.i5656 = and i32 %shr.i7.i5655, 1 + store i32 %and.i8.i5656, ptr %u, align 4 + %shr.i9.i5657 = lshr i32 %insn, 7 + %and.i10.i5658 = and i32 %shr.i9.i5657, 31 + %rd.i5659 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5658, ptr %rd.i5659, align 4 + %shr.i11.i5660 = lshr i32 %insn, 15 + %and.i12.i5661 = and i32 %shr.i11.i5660, 31 + %rs1.i5662 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5661, ptr %rs1.i5662, align 4 %call2715 = call fastcc zeroext i1 @trans_vfsgnjx_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2715, label %return, label %sw.epilog3868 sw.bb2718: ; preds = %sw.bb2687 - %shr.i.i5681 = lshr i32 %insn, 20 - %and.i.i5682 = and i32 %shr.i.i5681, 31 - %rs2.i5683 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5682, ptr %rs2.i5683, align 4 - %shr.i7.i5684 = lshr i32 %insn, 25 - %and.i8.i5685 = and i32 %shr.i7.i5684, 1 - store i32 %and.i8.i5685, ptr %u, align 4 - %shr.i9.i5686 = lshr i32 %insn, 7 - %and.i10.i5687 = and i32 %shr.i9.i5686, 31 - %rd.i5688 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5687, ptr %rd.i5688, align 4 - %shr.i11.i5689 = lshr i32 %insn, 15 - %and.i12.i5690 = and i32 %shr.i11.i5689, 31 - %rs1.i5691 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5690, ptr %rs1.i5691, align 4 + %shr.i.i5663 = lshr i32 %insn, 20 + %and.i.i5664 = and i32 %shr.i.i5663, 31 + %rs2.i5665 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5664, ptr %rs2.i5665, align 4 + %shr.i7.i5666 = lshr i32 %insn, 25 + %and.i8.i5667 = and i32 %shr.i7.i5666, 1 + store i32 %and.i8.i5667, ptr %u, align 4 + %shr.i9.i5668 = lshr i32 %insn, 7 + %and.i10.i5669 = and i32 %shr.i9.i5668, 31 + %rd.i5670 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5669, ptr %rd.i5670, align 4 + %shr.i11.i5671 = lshr i32 %insn, 15 + %and.i12.i5672 = and i32 %shr.i11.i5671, 31 + %rs1.i5673 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5672, ptr %rs1.i5673, align 4 %call2719 = call fastcc zeroext i1 @trans_vfslide1up_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2719, label %return, label %sw.epilog3868 sw.bb2722: ; preds = %sw.bb2687 - %shr.i.i5692 = lshr i32 %insn, 20 - %and.i.i5693 = and i32 %shr.i.i5692, 31 - %rs2.i5694 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5693, ptr %rs2.i5694, align 4 - %shr.i7.i5695 = lshr i32 %insn, 25 - %and.i8.i5696 = and i32 %shr.i7.i5695, 1 - store i32 %and.i8.i5696, ptr %u, align 4 - %shr.i9.i5697 = lshr i32 %insn, 7 - %and.i10.i5698 = and i32 %shr.i9.i5697, 31 - %rd.i5699 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5698, ptr %rd.i5699, align 4 - %shr.i11.i5700 = lshr i32 %insn, 15 - %and.i12.i5701 = and i32 %shr.i11.i5700, 31 - %rs1.i5702 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5701, ptr %rs1.i5702, align 4 + %shr.i.i5674 = lshr i32 %insn, 20 + %and.i.i5675 = and i32 %shr.i.i5674, 31 + %rs2.i5676 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5675, ptr %rs2.i5676, align 4 + %shr.i7.i5677 = lshr i32 %insn, 25 + %and.i8.i5678 = and i32 %shr.i7.i5677, 1 + store i32 %and.i8.i5678, ptr %u, align 4 + %shr.i9.i5679 = lshr i32 %insn, 7 + %and.i10.i5680 = and i32 %shr.i9.i5679, 31 + %rd.i5681 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5680, ptr %rd.i5681, align 4 + %shr.i11.i5682 = lshr i32 %insn, 15 + %and.i12.i5683 = and i32 %shr.i11.i5682, 31 + %rs1.i5684 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5683, ptr %rs1.i5684, align 4 %call2723 = call fastcc zeroext i1 @trans_vfslide1down_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2723, label %return, label %sw.epilog3868 sw.bb2726: ; preds = %sw.bb2687 - %shr.i.i5703 = lshr i32 %insn, 7 - %and.i.i5704 = and i32 %shr.i.i5703, 31 - store i32 %and.i.i5704, ptr %u, align 4 - %shr.i3.i5705 = lshr i32 %insn, 15 - %and.i4.i5706 = and i32 %shr.i3.i5705, 31 - %rs1.i5707 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i5706, ptr %rs1.i5707, align 4 + %shr.i.i5685 = lshr i32 %insn, 7 + %and.i.i5686 = and i32 %shr.i.i5685, 31 + store i32 %and.i.i5686, ptr %u, align 4 + %shr.i3.i5687 = lshr i32 %insn, 15 + %and.i4.i5688 = and i32 %shr.i3.i5687, 31 + %rs1.i5689 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i5688, ptr %rs1.i5689, align 4 %239 = and i32 %insn, 66060288 %cond13 = icmp eq i32 %239, 33554432 br i1 %cond13, label %sw.bb2729, label %sw.epilog3868 @@ -15316,30 +15294,30 @@ sw.bb2734: ; preds = %sw.bb2687 br i1 %trunc1926.not, label %sw.bb2737, label %sw.bb2741 sw.bb2737: ; preds = %sw.bb2734 - %shr.i.i5708 = lshr i32 %insn, 20 - %and.i.i5709 = and i32 %shr.i.i5708, 31 - %rs2.i5710 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5709, ptr %rs2.i5710, align 4 + %shr.i.i5690 = lshr i32 %insn, 20 + %and.i.i5691 = and i32 %shr.i.i5690, 31 + %rs2.i5692 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5691, ptr %rs2.i5692, align 4 store i32 0, ptr %u, align 4 - %shr.i6.i5711 = lshr i32 %insn, 7 - %and.i7.i5712 = and i32 %shr.i6.i5711, 31 - %rd.i5713 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i5712, ptr %rd.i5713, align 4 - %shr.i8.i5714 = lshr i32 %insn, 15 - %and.i9.i5715 = and i32 %shr.i8.i5714, 31 - %rs1.i5716 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i5715, ptr %rs1.i5716, align 4 + %shr.i6.i5693 = lshr i32 %insn, 7 + %and.i7.i5694 = and i32 %shr.i6.i5693, 31 + %rd.i5695 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i5694, ptr %rd.i5695, align 4 + %shr.i8.i5696 = lshr i32 %insn, 15 + %and.i9.i5697 = and i32 %shr.i8.i5696, 31 + %rs1.i5698 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i5697, ptr %rs1.i5698, align 4 %call2738 = call fastcc zeroext i1 @trans_vfmerge_vfm(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2738, label %return, label %sw.epilog3868 sw.bb2741: ; preds = %sw.bb2734 - %shr.i.i5717 = lshr i32 %insn, 7 - %and.i.i5718 = and i32 %shr.i.i5717, 31 - store i32 %and.i.i5718, ptr %u, align 4 - %shr.i3.i5719 = lshr i32 %insn, 15 - %and.i4.i5720 = and i32 %shr.i3.i5719, 31 - %rs1.i5721 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i5720, ptr %rs1.i5721, align 4 + %shr.i.i5699 = lshr i32 %insn, 7 + %and.i.i5700 = and i32 %shr.i.i5699, 31 + store i32 %and.i.i5700, ptr %u, align 4 + %shr.i3.i5701 = lshr i32 %insn, 15 + %and.i4.i5702 = and i32 %shr.i3.i5701, 31 + %rs1.i5703 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i5702, ptr %rs1.i5703, align 4 %241 = and i32 %insn, 32505856 %cond12 = icmp eq i32 %241, 0 br i1 %cond12, label %sw.bb2744, label %sw.epilog3868 @@ -15349,116 +15327,116 @@ sw.bb2744: ; preds = %sw.bb2741 br i1 %call2745, label %return, label %sw.epilog3868 sw.bb2750: ; preds = %sw.bb2687 - %shr.i.i5722 = lshr i32 %insn, 20 - %and.i.i5723 = and i32 %shr.i.i5722, 31 - %rs2.i5724 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5723, ptr %rs2.i5724, align 4 - %shr.i7.i5725 = lshr i32 %insn, 25 - %and.i8.i5726 = and i32 %shr.i7.i5725, 1 - store i32 %and.i8.i5726, ptr %u, align 4 - %shr.i9.i5727 = lshr i32 %insn, 7 - %and.i10.i5728 = and i32 %shr.i9.i5727, 31 - %rd.i5729 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5728, ptr %rd.i5729, align 4 - %shr.i11.i5730 = lshr i32 %insn, 15 - %and.i12.i5731 = and i32 %shr.i11.i5730, 31 - %rs1.i5732 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5731, ptr %rs1.i5732, align 4 + %shr.i.i5704 = lshr i32 %insn, 20 + %and.i.i5705 = and i32 %shr.i.i5704, 31 + %rs2.i5706 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5705, ptr %rs2.i5706, align 4 + %shr.i7.i5707 = lshr i32 %insn, 25 + %and.i8.i5708 = and i32 %shr.i7.i5707, 1 + store i32 %and.i8.i5708, ptr %u, align 4 + %shr.i9.i5709 = lshr i32 %insn, 7 + %and.i10.i5710 = and i32 %shr.i9.i5709, 31 + %rd.i5711 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5710, ptr %rd.i5711, align 4 + %shr.i11.i5712 = lshr i32 %insn, 15 + %and.i12.i5713 = and i32 %shr.i11.i5712, 31 + %rs1.i5714 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5713, ptr %rs1.i5714, align 4 %call2751 = call fastcc zeroext i1 @trans_vmfeq_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2751, label %return, label %sw.epilog3868 sw.bb2754: ; preds = %sw.bb2687 - %shr.i.i5733 = lshr i32 %insn, 20 - %and.i.i5734 = and i32 %shr.i.i5733, 31 - %rs2.i5735 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5734, ptr %rs2.i5735, align 4 - %shr.i7.i5736 = lshr i32 %insn, 25 - %and.i8.i5737 = and i32 %shr.i7.i5736, 1 - store i32 %and.i8.i5737, ptr %u, align 4 - %shr.i9.i5738 = lshr i32 %insn, 7 - %and.i10.i5739 = and i32 %shr.i9.i5738, 31 - %rd.i5740 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5739, ptr %rd.i5740, align 4 - %shr.i11.i5741 = lshr i32 %insn, 15 - %and.i12.i5742 = and i32 %shr.i11.i5741, 31 - %rs1.i5743 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5742, ptr %rs1.i5743, align 4 + %shr.i.i5715 = lshr i32 %insn, 20 + %and.i.i5716 = and i32 %shr.i.i5715, 31 + %rs2.i5717 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5716, ptr %rs2.i5717, align 4 + %shr.i7.i5718 = lshr i32 %insn, 25 + %and.i8.i5719 = and i32 %shr.i7.i5718, 1 + store i32 %and.i8.i5719, ptr %u, align 4 + %shr.i9.i5720 = lshr i32 %insn, 7 + %and.i10.i5721 = and i32 %shr.i9.i5720, 31 + %rd.i5722 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5721, ptr %rd.i5722, align 4 + %shr.i11.i5723 = lshr i32 %insn, 15 + %and.i12.i5724 = and i32 %shr.i11.i5723, 31 + %rs1.i5725 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5724, ptr %rs1.i5725, align 4 %call2755 = call fastcc zeroext i1 @trans_vmfle_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2755, label %return, label %sw.epilog3868 sw.bb2758: ; preds = %sw.bb2687 - %shr.i.i5744 = lshr i32 %insn, 20 - %and.i.i5745 = and i32 %shr.i.i5744, 31 - %rs2.i5746 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5745, ptr %rs2.i5746, align 4 - %shr.i7.i5747 = lshr i32 %insn, 25 - %and.i8.i5748 = and i32 %shr.i7.i5747, 1 - store i32 %and.i8.i5748, ptr %u, align 4 - %shr.i9.i5749 = lshr i32 %insn, 7 - %and.i10.i5750 = and i32 %shr.i9.i5749, 31 - %rd.i5751 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5750, ptr %rd.i5751, align 4 - %shr.i11.i5752 = lshr i32 %insn, 15 - %and.i12.i5753 = and i32 %shr.i11.i5752, 31 - %rs1.i5754 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5753, ptr %rs1.i5754, align 4 + %shr.i.i5726 = lshr i32 %insn, 20 + %and.i.i5727 = and i32 %shr.i.i5726, 31 + %rs2.i5728 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5727, ptr %rs2.i5728, align 4 + %shr.i7.i5729 = lshr i32 %insn, 25 + %and.i8.i5730 = and i32 %shr.i7.i5729, 1 + store i32 %and.i8.i5730, ptr %u, align 4 + %shr.i9.i5731 = lshr i32 %insn, 7 + %and.i10.i5732 = and i32 %shr.i9.i5731, 31 + %rd.i5733 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5732, ptr %rd.i5733, align 4 + %shr.i11.i5734 = lshr i32 %insn, 15 + %and.i12.i5735 = and i32 %shr.i11.i5734, 31 + %rs1.i5736 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5735, ptr %rs1.i5736, align 4 %call2759 = call fastcc zeroext i1 @trans_vmflt_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2759, label %return, label %sw.epilog3868 sw.bb2762: ; preds = %sw.bb2687 - %shr.i.i5755 = lshr i32 %insn, 20 - %and.i.i5756 = and i32 %shr.i.i5755, 31 - %rs2.i5757 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5756, ptr %rs2.i5757, align 4 - %shr.i7.i5758 = lshr i32 %insn, 25 - %and.i8.i5759 = and i32 %shr.i7.i5758, 1 - store i32 %and.i8.i5759, ptr %u, align 4 - %shr.i9.i5760 = lshr i32 %insn, 7 - %and.i10.i5761 = and i32 %shr.i9.i5760, 31 - %rd.i5762 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5761, ptr %rd.i5762, align 4 - %shr.i11.i5763 = lshr i32 %insn, 15 - %and.i12.i5764 = and i32 %shr.i11.i5763, 31 - %rs1.i5765 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5764, ptr %rs1.i5765, align 4 + %shr.i.i5737 = lshr i32 %insn, 20 + %and.i.i5738 = and i32 %shr.i.i5737, 31 + %rs2.i5739 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5738, ptr %rs2.i5739, align 4 + %shr.i7.i5740 = lshr i32 %insn, 25 + %and.i8.i5741 = and i32 %shr.i7.i5740, 1 + store i32 %and.i8.i5741, ptr %u, align 4 + %shr.i9.i5742 = lshr i32 %insn, 7 + %and.i10.i5743 = and i32 %shr.i9.i5742, 31 + %rd.i5744 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5743, ptr %rd.i5744, align 4 + %shr.i11.i5745 = lshr i32 %insn, 15 + %and.i12.i5746 = and i32 %shr.i11.i5745, 31 + %rs1.i5747 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5746, ptr %rs1.i5747, align 4 %call2763 = call fastcc zeroext i1 @trans_vmfne_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2763, label %return, label %sw.epilog3868 sw.bb2766: ; preds = %sw.bb2687 - %shr.i.i5766 = lshr i32 %insn, 20 - %and.i.i5767 = and i32 %shr.i.i5766, 31 - %rs2.i5768 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5767, ptr %rs2.i5768, align 4 - %shr.i7.i5769 = lshr i32 %insn, 25 - %and.i8.i5770 = and i32 %shr.i7.i5769, 1 - store i32 %and.i8.i5770, ptr %u, align 4 - %shr.i9.i5771 = lshr i32 %insn, 7 - %and.i10.i5772 = and i32 %shr.i9.i5771, 31 - %rd.i5773 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5772, ptr %rd.i5773, align 4 - %shr.i11.i5774 = lshr i32 %insn, 15 - %and.i12.i5775 = and i32 %shr.i11.i5774, 31 - %rs1.i5776 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5775, ptr %rs1.i5776, align 4 + %shr.i.i5748 = lshr i32 %insn, 20 + %and.i.i5749 = and i32 %shr.i.i5748, 31 + %rs2.i5750 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5749, ptr %rs2.i5750, align 4 + %shr.i7.i5751 = lshr i32 %insn, 25 + %and.i8.i5752 = and i32 %shr.i7.i5751, 1 + store i32 %and.i8.i5752, ptr %u, align 4 + %shr.i9.i5753 = lshr i32 %insn, 7 + %and.i10.i5754 = and i32 %shr.i9.i5753, 31 + %rd.i5755 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5754, ptr %rd.i5755, align 4 + %shr.i11.i5756 = lshr i32 %insn, 15 + %and.i12.i5757 = and i32 %shr.i11.i5756, 31 + %rs1.i5758 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5757, ptr %rs1.i5758, align 4 %call2767 = call fastcc zeroext i1 @trans_vmfgt_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2767, label %return, label %sw.epilog3868 sw.bb2770: ; preds = %sw.bb2687 - %shr.i.i5777 = lshr i32 %insn, 20 - %and.i.i5778 = and i32 %shr.i.i5777, 31 - %rs2.i5779 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5778, ptr %rs2.i5779, align 4 - %shr.i7.i5780 = lshr i32 %insn, 25 - %and.i8.i5781 = and i32 %shr.i7.i5780, 1 - store i32 %and.i8.i5781, ptr %u, align 4 - %shr.i9.i5782 = lshr i32 %insn, 7 - %and.i10.i5783 = and i32 %shr.i9.i5782, 31 - %rd.i5784 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5783, ptr %rd.i5784, align 4 - %shr.i11.i5785 = lshr i32 %insn, 15 - %and.i12.i5786 = and i32 %shr.i11.i5785, 31 - %rs1.i5787 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5786, ptr %rs1.i5787, align 4 + %shr.i.i5759 = lshr i32 %insn, 20 + %and.i.i5760 = and i32 %shr.i.i5759, 31 + %rs2.i5761 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5760, ptr %rs2.i5761, align 4 + %shr.i7.i5762 = lshr i32 %insn, 25 + %and.i8.i5763 = and i32 %shr.i7.i5762, 1 + store i32 %and.i8.i5763, ptr %u, align 4 + %shr.i9.i5764 = lshr i32 %insn, 7 + %and.i10.i5765 = and i32 %shr.i9.i5764, 31 + %rd.i5766 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5765, ptr %rd.i5766, align 4 + %shr.i11.i5767 = lshr i32 %insn, 15 + %and.i12.i5768 = and i32 %shr.i11.i5767, 31 + %rs1.i5769 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5768, ptr %rs1.i5769, align 4 %call2771 = call fastcc zeroext i1 @trans_vmfge_vf(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2771, label %return, label %sw.epilog3868 @@ -15478,165 +15456,165 @@ sw.bb2775: ; preds = %sw.bb1906 ] sw.bb2778: ; preds = %sw.bb2775 - %shr.i.i5788 = lshr i32 %insn, 20 - %and.i.i5789 = and i32 %shr.i.i5788, 31 - %rs2.i5790 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5789, ptr %rs2.i5790, align 4 - %shr.i7.i5791 = lshr i32 %insn, 25 - %and.i8.i5792 = and i32 %shr.i7.i5791, 1 - store i32 %and.i8.i5792, ptr %u, align 4 - %shr.i9.i5793 = lshr i32 %insn, 7 - %and.i10.i5794 = and i32 %shr.i9.i5793, 31 - %rd.i5795 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5794, ptr %rd.i5795, align 4 - %shr.i11.i5796 = lshr i32 %insn, 15 - %and.i12.i5797 = and i32 %shr.i11.i5796, 31 - %rs1.i5798 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5797, ptr %rs1.i5798, align 4 + %shr.i.i5770 = lshr i32 %insn, 20 + %and.i.i5771 = and i32 %shr.i.i5770, 31 + %rs2.i5772 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5771, ptr %rs2.i5772, align 4 + %shr.i7.i5773 = lshr i32 %insn, 25 + %and.i8.i5774 = and i32 %shr.i7.i5773, 1 + store i32 %and.i8.i5774, ptr %u, align 4 + %shr.i9.i5775 = lshr i32 %insn, 7 + %and.i10.i5776 = and i32 %shr.i9.i5775, 31 + %rd.i5777 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5776, ptr %rd.i5777, align 4 + %shr.i11.i5778 = lshr i32 %insn, 15 + %and.i12.i5779 = and i32 %shr.i11.i5778, 31 + %rs1.i5780 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5779, ptr %rs1.i5780, align 4 %call2779 = call fastcc zeroext i1 @trans_vaaddu_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2779, label %return, label %sw.epilog3868 sw.bb2782: ; preds = %sw.bb2775 - %shr.i.i5799 = lshr i32 %insn, 20 - %and.i.i5800 = and i32 %shr.i.i5799, 31 - %rs2.i5801 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5800, ptr %rs2.i5801, align 4 - %shr.i7.i5802 = lshr i32 %insn, 25 - %and.i8.i5803 = and i32 %shr.i7.i5802, 1 - store i32 %and.i8.i5803, ptr %u, align 4 - %shr.i9.i5804 = lshr i32 %insn, 7 - %and.i10.i5805 = and i32 %shr.i9.i5804, 31 - %rd.i5806 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5805, ptr %rd.i5806, align 4 - %shr.i11.i5807 = lshr i32 %insn, 15 - %and.i12.i5808 = and i32 %shr.i11.i5807, 31 - %rs1.i5809 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5808, ptr %rs1.i5809, align 4 + %shr.i.i5781 = lshr i32 %insn, 20 + %and.i.i5782 = and i32 %shr.i.i5781, 31 + %rs2.i5783 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5782, ptr %rs2.i5783, align 4 + %shr.i7.i5784 = lshr i32 %insn, 25 + %and.i8.i5785 = and i32 %shr.i7.i5784, 1 + store i32 %and.i8.i5785, ptr %u, align 4 + %shr.i9.i5786 = lshr i32 %insn, 7 + %and.i10.i5787 = and i32 %shr.i9.i5786, 31 + %rd.i5788 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5787, ptr %rd.i5788, align 4 + %shr.i11.i5789 = lshr i32 %insn, 15 + %and.i12.i5790 = and i32 %shr.i11.i5789, 31 + %rs1.i5791 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5790, ptr %rs1.i5791, align 4 %call2783 = call fastcc zeroext i1 @trans_vaadd_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2783, label %return, label %sw.epilog3868 sw.bb2786: ; preds = %sw.bb2775 - %shr.i.i5810 = lshr i32 %insn, 20 - %and.i.i5811 = and i32 %shr.i.i5810, 31 - %rs2.i5812 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5811, ptr %rs2.i5812, align 4 - %shr.i7.i5813 = lshr i32 %insn, 25 - %and.i8.i5814 = and i32 %shr.i7.i5813, 1 - store i32 %and.i8.i5814, ptr %u, align 4 - %shr.i9.i5815 = lshr i32 %insn, 7 - %and.i10.i5816 = and i32 %shr.i9.i5815, 31 - %rd.i5817 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5816, ptr %rd.i5817, align 4 - %shr.i11.i5818 = lshr i32 %insn, 15 - %and.i12.i5819 = and i32 %shr.i11.i5818, 31 - %rs1.i5820 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5819, ptr %rs1.i5820, align 4 + %shr.i.i5792 = lshr i32 %insn, 20 + %and.i.i5793 = and i32 %shr.i.i5792, 31 + %rs2.i5794 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5793, ptr %rs2.i5794, align 4 + %shr.i7.i5795 = lshr i32 %insn, 25 + %and.i8.i5796 = and i32 %shr.i7.i5795, 1 + store i32 %and.i8.i5796, ptr %u, align 4 + %shr.i9.i5797 = lshr i32 %insn, 7 + %and.i10.i5798 = and i32 %shr.i9.i5797, 31 + %rd.i5799 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5798, ptr %rd.i5799, align 4 + %shr.i11.i5800 = lshr i32 %insn, 15 + %and.i12.i5801 = and i32 %shr.i11.i5800, 31 + %rs1.i5802 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5801, ptr %rs1.i5802, align 4 %call2787 = call fastcc zeroext i1 @trans_vasubu_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2787, label %return, label %sw.epilog3868 sw.bb2790: ; preds = %sw.bb2775 - %shr.i.i5821 = lshr i32 %insn, 20 - %and.i.i5822 = and i32 %shr.i.i5821, 31 - %rs2.i5823 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5822, ptr %rs2.i5823, align 4 - %shr.i7.i5824 = lshr i32 %insn, 25 - %and.i8.i5825 = and i32 %shr.i7.i5824, 1 - store i32 %and.i8.i5825, ptr %u, align 4 - %shr.i9.i5826 = lshr i32 %insn, 7 - %and.i10.i5827 = and i32 %shr.i9.i5826, 31 - %rd.i5828 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5827, ptr %rd.i5828, align 4 - %shr.i11.i5829 = lshr i32 %insn, 15 - %and.i12.i5830 = and i32 %shr.i11.i5829, 31 - %rs1.i5831 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5830, ptr %rs1.i5831, align 4 + %shr.i.i5803 = lshr i32 %insn, 20 + %and.i.i5804 = and i32 %shr.i.i5803, 31 + %rs2.i5805 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5804, ptr %rs2.i5805, align 4 + %shr.i7.i5806 = lshr i32 %insn, 25 + %and.i8.i5807 = and i32 %shr.i7.i5806, 1 + store i32 %and.i8.i5807, ptr %u, align 4 + %shr.i9.i5808 = lshr i32 %insn, 7 + %and.i10.i5809 = and i32 %shr.i9.i5808, 31 + %rd.i5810 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5809, ptr %rd.i5810, align 4 + %shr.i11.i5811 = lshr i32 %insn, 15 + %and.i12.i5812 = and i32 %shr.i11.i5811, 31 + %rs1.i5813 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5812, ptr %rs1.i5813, align 4 %call2791 = call fastcc zeroext i1 @trans_vasub_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2791, label %return, label %sw.epilog3868 sw.bb2794: ; preds = %sw.bb2775 - %shr.i.i5832 = lshr i32 %insn, 20 - %and.i.i5833 = and i32 %shr.i.i5832, 31 - %rs2.i5834 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5833, ptr %rs2.i5834, align 4 - %shr.i7.i5835 = lshr i32 %insn, 25 - %and.i8.i5836 = and i32 %shr.i7.i5835, 1 - store i32 %and.i8.i5836, ptr %u, align 4 - %shr.i9.i5837 = lshr i32 %insn, 7 - %and.i10.i5838 = and i32 %shr.i9.i5837, 31 - %rd.i5839 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5838, ptr %rd.i5839, align 4 - %shr.i11.i5840 = lshr i32 %insn, 15 - %and.i12.i5841 = and i32 %shr.i11.i5840, 31 - %rs1.i5842 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5841, ptr %rs1.i5842, align 4 + %shr.i.i5814 = lshr i32 %insn, 20 + %and.i.i5815 = and i32 %shr.i.i5814, 31 + %rs2.i5816 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5815, ptr %rs2.i5816, align 4 + %shr.i7.i5817 = lshr i32 %insn, 25 + %and.i8.i5818 = and i32 %shr.i7.i5817, 1 + store i32 %and.i8.i5818, ptr %u, align 4 + %shr.i9.i5819 = lshr i32 %insn, 7 + %and.i10.i5820 = and i32 %shr.i9.i5819, 31 + %rd.i5821 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5820, ptr %rd.i5821, align 4 + %shr.i11.i5822 = lshr i32 %insn, 15 + %and.i12.i5823 = and i32 %shr.i11.i5822, 31 + %rs1.i5824 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5823, ptr %rs1.i5824, align 4 %call2795 = call fastcc zeroext i1 @trans_vclmul_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2795, label %return, label %sw.epilog3868 sw.bb2798: ; preds = %sw.bb2775 - %shr.i.i5843 = lshr i32 %insn, 20 - %and.i.i5844 = and i32 %shr.i.i5843, 31 - %rs2.i5845 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5844, ptr %rs2.i5845, align 4 - %shr.i7.i5846 = lshr i32 %insn, 25 - %and.i8.i5847 = and i32 %shr.i7.i5846, 1 - store i32 %and.i8.i5847, ptr %u, align 4 - %shr.i9.i5848 = lshr i32 %insn, 7 - %and.i10.i5849 = and i32 %shr.i9.i5848, 31 - %rd.i5850 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5849, ptr %rd.i5850, align 4 - %shr.i11.i5851 = lshr i32 %insn, 15 - %and.i12.i5852 = and i32 %shr.i11.i5851, 31 - %rs1.i5853 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5852, ptr %rs1.i5853, align 4 + %shr.i.i5825 = lshr i32 %insn, 20 + %and.i.i5826 = and i32 %shr.i.i5825, 31 + %rs2.i5827 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5826, ptr %rs2.i5827, align 4 + %shr.i7.i5828 = lshr i32 %insn, 25 + %and.i8.i5829 = and i32 %shr.i7.i5828, 1 + store i32 %and.i8.i5829, ptr %u, align 4 + %shr.i9.i5830 = lshr i32 %insn, 7 + %and.i10.i5831 = and i32 %shr.i9.i5830, 31 + %rd.i5832 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5831, ptr %rd.i5832, align 4 + %shr.i11.i5833 = lshr i32 %insn, 15 + %and.i12.i5834 = and i32 %shr.i11.i5833, 31 + %rs1.i5835 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5834, ptr %rs1.i5835, align 4 %call2799 = call fastcc zeroext i1 @trans_vclmulh_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2799, label %return, label %sw.epilog3868 sw.bb2802: ; preds = %sw.bb2775 - %shr.i.i5854 = lshr i32 %insn, 20 - %and.i.i5855 = and i32 %shr.i.i5854, 31 - %rs2.i5856 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5855, ptr %rs2.i5856, align 4 - %shr.i7.i5857 = lshr i32 %insn, 25 - %and.i8.i5858 = and i32 %shr.i7.i5857, 1 - store i32 %and.i8.i5858, ptr %u, align 4 - %shr.i9.i5859 = lshr i32 %insn, 7 - %and.i10.i5860 = and i32 %shr.i9.i5859, 31 - %rd.i5861 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5860, ptr %rd.i5861, align 4 - %shr.i11.i5862 = lshr i32 %insn, 15 - %and.i12.i5863 = and i32 %shr.i11.i5862, 31 - %rs1.i5864 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5863, ptr %rs1.i5864, align 4 + %shr.i.i5836 = lshr i32 %insn, 20 + %and.i.i5837 = and i32 %shr.i.i5836, 31 + %rs2.i5838 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5837, ptr %rs2.i5838, align 4 + %shr.i7.i5839 = lshr i32 %insn, 25 + %and.i8.i5840 = and i32 %shr.i7.i5839, 1 + store i32 %and.i8.i5840, ptr %u, align 4 + %shr.i9.i5841 = lshr i32 %insn, 7 + %and.i10.i5842 = and i32 %shr.i9.i5841, 31 + %rd.i5843 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5842, ptr %rd.i5843, align 4 + %shr.i11.i5844 = lshr i32 %insn, 15 + %and.i12.i5845 = and i32 %shr.i11.i5844, 31 + %rs1.i5846 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5845, ptr %rs1.i5846, align 4 %call2803 = call fastcc zeroext i1 @trans_vslide1up_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2803, label %return, label %sw.epilog3868 sw.bb2806: ; preds = %sw.bb2775 - %shr.i.i5865 = lshr i32 %insn, 20 - %and.i.i5866 = and i32 %shr.i.i5865, 31 - %rs2.i5867 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5866, ptr %rs2.i5867, align 4 - %shr.i7.i5868 = lshr i32 %insn, 25 - %and.i8.i5869 = and i32 %shr.i7.i5868, 1 - store i32 %and.i8.i5869, ptr %u, align 4 - %shr.i9.i5870 = lshr i32 %insn, 7 - %and.i10.i5871 = and i32 %shr.i9.i5870, 31 - %rd.i5872 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5871, ptr %rd.i5872, align 4 - %shr.i11.i5873 = lshr i32 %insn, 15 - %and.i12.i5874 = and i32 %shr.i11.i5873, 31 - %rs1.i5875 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5874, ptr %rs1.i5875, align 4 + %shr.i.i5847 = lshr i32 %insn, 20 + %and.i.i5848 = and i32 %shr.i.i5847, 31 + %rs2.i5849 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5848, ptr %rs2.i5849, align 4 + %shr.i7.i5850 = lshr i32 %insn, 25 + %and.i8.i5851 = and i32 %shr.i7.i5850, 1 + store i32 %and.i8.i5851, ptr %u, align 4 + %shr.i9.i5852 = lshr i32 %insn, 7 + %and.i10.i5853 = and i32 %shr.i9.i5852, 31 + %rd.i5854 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5853, ptr %rd.i5854, align 4 + %shr.i11.i5855 = lshr i32 %insn, 15 + %and.i12.i5856 = and i32 %shr.i11.i5855, 31 + %rs1.i5857 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5856, ptr %rs1.i5857, align 4 %call2807 = call fastcc zeroext i1 @trans_vslide1down_vx(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2807, label %return, label %sw.epilog3868 sw.bb2810: ; preds = %sw.bb2775 - %shr.i.i5876 = lshr i32 %insn, 7 - %and.i.i5877 = and i32 %shr.i.i5876, 31 - store i32 %and.i.i5877, ptr %u, align 4 - %shr.i3.i5878 = lshr i32 %insn, 15 - %and.i4.i5879 = and i32 %shr.i3.i5878, 31 - %rs1.i5880 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i4.i5879, ptr %rs1.i5880, align 4 + %shr.i.i5858 = lshr i32 %insn, 7 + %and.i.i5859 = and i32 %shr.i.i5858, 31 + store i32 %and.i.i5859, ptr %u, align 4 + %shr.i3.i5860 = lshr i32 %insn, 15 + %and.i4.i5861 = and i32 %shr.i3.i5860, 31 + %rs1.i5862 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i4.i5861, ptr %rs1.i5862, align 4 %242 = and i32 %insn, 66060288 %cond11 = icmp eq i32 %242, 33554432 br i1 %cond11, label %sw.bb2813, label %sw.epilog3868 @@ -15646,36 +15624,36 @@ sw.bb2813: ; preds = %sw.bb2810 br i1 %call2814, label %return, label %sw.epilog3868 sw.bb2819: ; preds = %sw.bb1906 - %shr.i.i5881 = lshr i32 %insn, 7 - %and.i.i5882 = and i32 %shr.i.i5881, 31 - %rd.i5883 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 2 - store i32 %and.i.i5882, ptr %rd.i5883, align 4 - %shr.i5.i5884 = lshr i32 %insn, 20 - %and.i6.i5885 = and i32 %shr.i5.i5884, 2047 - store i32 %and.i6.i5885, ptr %u, align 4 - %shr.i7.i5886 = lshr i32 %insn, 15 - %and.i8.i5887 = and i32 %shr.i7.i5886, 31 - %rs1.i5888 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 1 - store i32 %and.i8.i5887, ptr %rs1.i5888, align 4 + %shr.i.i5863 = lshr i32 %insn, 7 + %and.i.i5864 = and i32 %shr.i.i5863, 31 + %rd.i5865 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 2 + store i32 %and.i.i5864, ptr %rd.i5865, align 4 + %shr.i5.i5866 = lshr i32 %insn, 20 + %and.i6.i5867 = and i32 %shr.i5.i5866, 2047 + store i32 %and.i6.i5867, ptr %u, align 4 + %shr.i7.i5868 = lshr i32 %insn, 15 + %and.i8.i5869 = and i32 %shr.i7.i5868, 31 + %rs1.i5870 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 1 + store i32 %and.i8.i5869, ptr %rs1.i5870, align 4 %call2820 = call fastcc zeroext i1 @trans_vsetvli(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call2820, label %return, label %sw.epilog3868 sw.bb2823: ; preds = %sw.bb1906 - %shr.i.i5889 = lshr i32 %insn, 20 - %and.i.i5890 = and i32 %shr.i.i5889, 31 - %rs2.i5891 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5890, ptr %rs2.i5891, align 4 - %shr.i7.i5892 = lshr i32 %insn, 25 - %and.i8.i5893 = and i32 %shr.i7.i5892, 1 - store i32 %and.i8.i5893, ptr %u, align 4 - %shr.i9.i5894 = lshr i32 %insn, 7 - %and.i10.i5895 = and i32 %shr.i9.i5894, 31 - %rd.i5896 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5895, ptr %rd.i5896, align 4 - %shr.i11.i5897 = lshr i32 %insn, 15 - %and.i12.i5898 = and i32 %shr.i11.i5897, 31 - %rs1.i5899 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5898, ptr %rs1.i5899, align 4 + %shr.i.i5871 = lshr i32 %insn, 20 + %and.i.i5872 = and i32 %shr.i.i5871, 31 + %rs2.i5873 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5872, ptr %rs2.i5873, align 4 + %shr.i7.i5874 = lshr i32 %insn, 25 + %and.i8.i5875 = and i32 %shr.i7.i5874, 1 + store i32 %and.i8.i5875, ptr %u, align 4 + %shr.i9.i5876 = lshr i32 %insn, 7 + %and.i10.i5877 = and i32 %shr.i9.i5876, 31 + %rd.i5878 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5877, ptr %rd.i5878, align 4 + %shr.i11.i5879 = lshr i32 %insn, 15 + %and.i12.i5880 = and i32 %shr.i11.i5879, 31 + %rs1.i5881 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5880, ptr %rs1.i5881, align 4 %shr2824 = lshr i32 %insn, 26 %and2825 = and i32 %shr2824, 31 switch i32 %and2825, label %sw.epilog3868 [ @@ -15755,48 +15733,48 @@ sw.bb2878: ; preds = %sw.bb2823 br i1 %call2879, label %return, label %sw.epilog3868 sw.bb2882: ; preds = %sw.bb2823 - %sew.i5900 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %243 = load i8, ptr %sew.i5900, align 2 + %sew.i5882 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %243 = load i8, ptr %sew.i5882, align 2 %idxprom.i = zext i8 %243 to i64 - %arrayidx.i5901 = getelementptr [3 x ptr], ptr @trans_vwredsumu_vs.fns, i64 0, i64 %idxprom.i - %244 = load ptr, ptr %arrayidx.i5901, align 8 - %call.i5902 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %244, ptr noundef nonnull @reduction_widen_check) - br i1 %call.i5902, label %return, label %sw.epilog3868 + %arrayidx.i5883 = getelementptr [3 x ptr], ptr @trans_vwredsumu_vs.fns, i64 0, i64 %idxprom.i + %244 = load ptr, ptr %arrayidx.i5883, align 8 + %call.i5884 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %244, ptr noundef nonnull @reduction_widen_check) + br i1 %call.i5884, label %return, label %sw.epilog3868 sw.bb2886: ; preds = %sw.bb2823 - %sew.i5903 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %245 = load i8, ptr %sew.i5903, align 2 - %idxprom.i5904 = zext i8 %245 to i64 - %arrayidx.i5905 = getelementptr [3 x ptr], ptr @trans_vwredsum_vs.fns, i64 0, i64 %idxprom.i5904 - %246 = load ptr, ptr %arrayidx.i5905, align 8 - %call.i5906 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %246, ptr noundef nonnull @reduction_widen_check) - br i1 %call.i5906, label %return, label %sw.epilog3868 + %sew.i5885 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %245 = load i8, ptr %sew.i5885, align 2 + %idxprom.i5886 = zext i8 %245 to i64 + %arrayidx.i5887 = getelementptr [3 x ptr], ptr @trans_vwredsum_vs.fns, i64 0, i64 %idxprom.i5886 + %246 = load ptr, ptr %arrayidx.i5887, align 8 + %call.i5888 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %246, ptr noundef nonnull @reduction_widen_check) + br i1 %call.i5888, label %return, label %sw.epilog3868 sw.bb2890: ; preds = %sw.bb2823 - %sew.i5907 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %247 = load i8, ptr %sew.i5907, align 2 - %idxprom.i5908 = zext i8 %247 to i64 - %arrayidx.i5909 = getelementptr [3 x ptr], ptr @trans_vwsll_vv.fns, i64 0, i64 %idxprom.i5908 - %248 = load ptr, ptr %arrayidx.i5909, align 8 - %call.i5910 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %248, ptr noundef nonnull @vwsll_vv_check) - br i1 %call.i5910, label %return, label %sw.epilog3868 + %sew.i5889 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %247 = load i8, ptr %sew.i5889, align 2 + %idxprom.i5890 = zext i8 %247 to i64 + %arrayidx.i5891 = getelementptr [3 x ptr], ptr @trans_vwsll_vv.fns, i64 0, i64 %idxprom.i5890 + %248 = load ptr, ptr %arrayidx.i5891, align 8 + %call.i5892 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %248, ptr noundef nonnull @vwsll_vv_check) + br i1 %call.i5892, label %return, label %sw.epilog3868 sw.bb2895: ; preds = %sw.bb1906 - %shr.i.i5911 = lshr i32 %insn, 20 - %and.i.i5912 = and i32 %shr.i.i5911, 31 - %rs2.i5913 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5912, ptr %rs2.i5913, align 4 - %shr.i7.i5914 = lshr i32 %insn, 25 - %and.i8.i5915 = and i32 %shr.i7.i5914, 1 - store i32 %and.i8.i5915, ptr %u, align 4 - %shr.i9.i5916 = lshr i32 %insn, 7 - %and.i10.i5917 = and i32 %shr.i9.i5916, 31 - %rd.i5918 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5917, ptr %rd.i5918, align 4 - %shr.i11.i5919 = lshr i32 %insn, 15 - %and.i12.i5920 = and i32 %shr.i11.i5919, 31 - %rs1.i5921 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5920, ptr %rs1.i5921, align 4 + %shr.i.i5893 = lshr i32 %insn, 20 + %and.i.i5894 = and i32 %shr.i.i5893, 31 + %rs2.i5895 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5894, ptr %rs2.i5895, align 4 + %shr.i7.i5896 = lshr i32 %insn, 25 + %and.i8.i5897 = and i32 %shr.i7.i5896, 1 + store i32 %and.i8.i5897, ptr %u, align 4 + %shr.i9.i5898 = lshr i32 %insn, 7 + %and.i10.i5899 = and i32 %shr.i9.i5898, 31 + %rd.i5900 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5899, ptr %rd.i5900, align 4 + %shr.i11.i5901 = lshr i32 %insn, 15 + %and.i12.i5902 = and i32 %shr.i11.i5901, 31 + %rs1.i5903 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5902, ptr %rs1.i5903, align 4 %shr2896 = lshr i32 %insn, 26 %and2897 = and i32 %shr2896, 31 switch i32 %and2897, label %sw.epilog3868 [ @@ -15913,21 +15891,21 @@ sw.bb2982: ; preds = %sw.bb2895 br i1 %call2983, label %return, label %sw.epilog3868 sw.bb2987: ; preds = %sw.bb1906 - %shr.i.i5922 = lshr i32 %insn, 20 - %and.i.i5923 = and i32 %shr.i.i5922, 31 - %rs2.i5924 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5923, ptr %rs2.i5924, align 4 - %shr.i7.i5925 = lshr i32 %insn, 25 - %and.i8.i5926 = and i32 %shr.i7.i5925, 1 - store i32 %and.i8.i5926, ptr %u, align 4 - %shr.i9.i5927 = lshr i32 %insn, 7 - %and.i10.i5928 = and i32 %shr.i9.i5927, 31 - %rd.i5929 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5928, ptr %rd.i5929, align 4 - %shr.i11.i5930 = lshr i32 %insn, 15 - %and.i12.i5931 = and i32 %shr.i11.i5930, 31 - %rs1.i5932 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5931, ptr %rs1.i5932, align 4 + %shr.i.i5904 = lshr i32 %insn, 20 + %and.i.i5905 = and i32 %shr.i.i5904, 31 + %rs2.i5906 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5905, ptr %rs2.i5906, align 4 + %shr.i7.i5907 = lshr i32 %insn, 25 + %and.i8.i5908 = and i32 %shr.i7.i5907, 1 + store i32 %and.i8.i5908, ptr %u, align 4 + %shr.i9.i5909 = lshr i32 %insn, 7 + %and.i10.i5910 = and i32 %shr.i9.i5909, 31 + %rd.i5911 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5910, ptr %rd.i5911, align 4 + %shr.i11.i5912 = lshr i32 %insn, 15 + %and.i12.i5913 = and i32 %shr.i11.i5912, 31 + %rs1.i5914 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5913, ptr %rs1.i5914, align 4 %shr2988 = lshr i32 %insn, 26 %and2989 = and i32 %shr2988, 31 switch i32 %and2989, label %sw.epilog3868 [ @@ -16008,130 +15986,130 @@ sw.bb3034: ; preds = %sw.bb2987 br i1 %call3035, label %return, label %sw.epilog3868 sw.bb3038: ; preds = %sw.bb2987 - %sew.i5933 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %249 = load i8, ptr %sew.i5933, align 2 - %idxprom.i5934 = zext i8 %249 to i64 - %arrayidx.i5935 = getelementptr [3 x ptr], ptr @trans_vwaddu_vv.fns, i64 0, i64 %idxprom.i5934 - %250 = load ptr, ptr %arrayidx.i5935, align 8 - %call.i5936 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %250, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5936, label %return, label %sw.epilog3868 + %sew.i5915 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %249 = load i8, ptr %sew.i5915, align 2 + %idxprom.i5916 = zext i8 %249 to i64 + %arrayidx.i5917 = getelementptr [3 x ptr], ptr @trans_vwaddu_vv.fns, i64 0, i64 %idxprom.i5916 + %250 = load ptr, ptr %arrayidx.i5917, align 8 + %call.i5918 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %250, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5918, label %return, label %sw.epilog3868 sw.bb3042: ; preds = %sw.bb2987 - %sew.i5937 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %251 = load i8, ptr %sew.i5937, align 2 - %idxprom.i5938 = zext i8 %251 to i64 - %arrayidx.i5939 = getelementptr [3 x ptr], ptr @trans_vwadd_vv.fns, i64 0, i64 %idxprom.i5938 - %252 = load ptr, ptr %arrayidx.i5939, align 8 - %call.i5940 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %252, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5940, label %return, label %sw.epilog3868 + %sew.i5919 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %251 = load i8, ptr %sew.i5919, align 2 + %idxprom.i5920 = zext i8 %251 to i64 + %arrayidx.i5921 = getelementptr [3 x ptr], ptr @trans_vwadd_vv.fns, i64 0, i64 %idxprom.i5920 + %252 = load ptr, ptr %arrayidx.i5921, align 8 + %call.i5922 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %252, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5922, label %return, label %sw.epilog3868 sw.bb3046: ; preds = %sw.bb2987 - %sew.i5941 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %253 = load i8, ptr %sew.i5941, align 2 - %idxprom.i5942 = zext i8 %253 to i64 - %arrayidx.i5943 = getelementptr [3 x ptr], ptr @trans_vwsubu_vv.fns, i64 0, i64 %idxprom.i5942 - %254 = load ptr, ptr %arrayidx.i5943, align 8 - %call.i5944 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %254, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5944, label %return, label %sw.epilog3868 + %sew.i5923 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %253 = load i8, ptr %sew.i5923, align 2 + %idxprom.i5924 = zext i8 %253 to i64 + %arrayidx.i5925 = getelementptr [3 x ptr], ptr @trans_vwsubu_vv.fns, i64 0, i64 %idxprom.i5924 + %254 = load ptr, ptr %arrayidx.i5925, align 8 + %call.i5926 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %254, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5926, label %return, label %sw.epilog3868 sw.bb3050: ; preds = %sw.bb2987 - %sew.i5945 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %255 = load i8, ptr %sew.i5945, align 2 - %idxprom.i5946 = zext i8 %255 to i64 - %arrayidx.i5947 = getelementptr [3 x ptr], ptr @trans_vwsub_vv.fns, i64 0, i64 %idxprom.i5946 - %256 = load ptr, ptr %arrayidx.i5947, align 8 - %call.i5948 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %256, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5948, label %return, label %sw.epilog3868 + %sew.i5927 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %255 = load i8, ptr %sew.i5927, align 2 + %idxprom.i5928 = zext i8 %255 to i64 + %arrayidx.i5929 = getelementptr [3 x ptr], ptr @trans_vwsub_vv.fns, i64 0, i64 %idxprom.i5928 + %256 = load ptr, ptr %arrayidx.i5929, align 8 + %call.i5930 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %256, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5930, label %return, label %sw.epilog3868 sw.bb3054: ; preds = %sw.bb2987 - %sew.i5949 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %257 = load i8, ptr %sew.i5949, align 2 - %idxprom.i5950 = zext i8 %257 to i64 - %arrayidx.i5951 = getelementptr [3 x ptr], ptr @trans_vwaddu_wv.fns, i64 0, i64 %idxprom.i5950 - %258 = load ptr, ptr %arrayidx.i5951, align 8 - %call.i5952 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %258) - br i1 %call.i5952, label %return, label %sw.epilog3868 + %sew.i5931 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %257 = load i8, ptr %sew.i5931, align 2 + %idxprom.i5932 = zext i8 %257 to i64 + %arrayidx.i5933 = getelementptr [3 x ptr], ptr @trans_vwaddu_wv.fns, i64 0, i64 %idxprom.i5932 + %258 = load ptr, ptr %arrayidx.i5933, align 8 + %call.i5934 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %258) + br i1 %call.i5934, label %return, label %sw.epilog3868 sw.bb3058: ; preds = %sw.bb2987 - %sew.i5953 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %259 = load i8, ptr %sew.i5953, align 2 - %idxprom.i5954 = zext i8 %259 to i64 - %arrayidx.i5955 = getelementptr [3 x ptr], ptr @trans_vwadd_wv.fns, i64 0, i64 %idxprom.i5954 - %260 = load ptr, ptr %arrayidx.i5955, align 8 - %call.i5956 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %260) - br i1 %call.i5956, label %return, label %sw.epilog3868 + %sew.i5935 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %259 = load i8, ptr %sew.i5935, align 2 + %idxprom.i5936 = zext i8 %259 to i64 + %arrayidx.i5937 = getelementptr [3 x ptr], ptr @trans_vwadd_wv.fns, i64 0, i64 %idxprom.i5936 + %260 = load ptr, ptr %arrayidx.i5937, align 8 + %call.i5938 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %260) + br i1 %call.i5938, label %return, label %sw.epilog3868 sw.bb3062: ; preds = %sw.bb2987 - %sew.i5957 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %261 = load i8, ptr %sew.i5957, align 2 - %idxprom.i5958 = zext i8 %261 to i64 - %arrayidx.i5959 = getelementptr [3 x ptr], ptr @trans_vwsubu_wv.fns, i64 0, i64 %idxprom.i5958 - %262 = load ptr, ptr %arrayidx.i5959, align 8 - %call.i5960 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %262) - br i1 %call.i5960, label %return, label %sw.epilog3868 + %sew.i5939 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %261 = load i8, ptr %sew.i5939, align 2 + %idxprom.i5940 = zext i8 %261 to i64 + %arrayidx.i5941 = getelementptr [3 x ptr], ptr @trans_vwsubu_wv.fns, i64 0, i64 %idxprom.i5940 + %262 = load ptr, ptr %arrayidx.i5941, align 8 + %call.i5942 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %262) + br i1 %call.i5942, label %return, label %sw.epilog3868 sw.bb3066: ; preds = %sw.bb2987 - %sew.i5961 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %263 = load i8, ptr %sew.i5961, align 2 - %idxprom.i5962 = zext i8 %263 to i64 - %arrayidx.i5963 = getelementptr [3 x ptr], ptr @trans_vwsub_wv.fns, i64 0, i64 %idxprom.i5962 - %264 = load ptr, ptr %arrayidx.i5963, align 8 - %call.i5964 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %264) - br i1 %call.i5964, label %return, label %sw.epilog3868 + %sew.i5943 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %263 = load i8, ptr %sew.i5943, align 2 + %idxprom.i5944 = zext i8 %263 to i64 + %arrayidx.i5945 = getelementptr [3 x ptr], ptr @trans_vwsub_wv.fns, i64 0, i64 %idxprom.i5944 + %264 = load ptr, ptr %arrayidx.i5945, align 8 + %call.i5946 = call fastcc noundef zeroext i1 @do_opiwv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %264) + br i1 %call.i5946, label %return, label %sw.epilog3868 sw.bb3070: ; preds = %sw.bb2987 - %sew.i5965 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %265 = load i8, ptr %sew.i5965, align 2 - %idxprom.i5966 = zext i8 %265 to i64 - %arrayidx.i5967 = getelementptr [3 x ptr], ptr @trans_vwmulu_vv.fns, i64 0, i64 %idxprom.i5966 - %266 = load ptr, ptr %arrayidx.i5967, align 8 - %call.i5968 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %266, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5968, label %return, label %sw.epilog3868 + %sew.i5947 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %265 = load i8, ptr %sew.i5947, align 2 + %idxprom.i5948 = zext i8 %265 to i64 + %arrayidx.i5949 = getelementptr [3 x ptr], ptr @trans_vwmulu_vv.fns, i64 0, i64 %idxprom.i5948 + %266 = load ptr, ptr %arrayidx.i5949, align 8 + %call.i5950 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %266, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5950, label %return, label %sw.epilog3868 sw.bb3074: ; preds = %sw.bb2987 - %sew.i5969 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %267 = load i8, ptr %sew.i5969, align 2 - %idxprom.i5970 = zext i8 %267 to i64 - %arrayidx.i5971 = getelementptr [3 x ptr], ptr @trans_vwmulsu_vv.fns, i64 0, i64 %idxprom.i5970 - %268 = load ptr, ptr %arrayidx.i5971, align 8 - %call.i5972 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %268, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5972, label %return, label %sw.epilog3868 + %sew.i5951 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %267 = load i8, ptr %sew.i5951, align 2 + %idxprom.i5952 = zext i8 %267 to i64 + %arrayidx.i5953 = getelementptr [3 x ptr], ptr @trans_vwmulsu_vv.fns, i64 0, i64 %idxprom.i5952 + %268 = load ptr, ptr %arrayidx.i5953, align 8 + %call.i5954 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %268, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5954, label %return, label %sw.epilog3868 sw.bb3078: ; preds = %sw.bb2987 - %sew.i5973 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %269 = load i8, ptr %sew.i5973, align 2 - %idxprom.i5974 = zext i8 %269 to i64 - %arrayidx.i5975 = getelementptr [3 x ptr], ptr @trans_vwmul_vv.fns, i64 0, i64 %idxprom.i5974 - %270 = load ptr, ptr %arrayidx.i5975, align 8 - %call.i5976 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %270, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5976, label %return, label %sw.epilog3868 + %sew.i5955 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %269 = load i8, ptr %sew.i5955, align 2 + %idxprom.i5956 = zext i8 %269 to i64 + %arrayidx.i5957 = getelementptr [3 x ptr], ptr @trans_vwmul_vv.fns, i64 0, i64 %idxprom.i5956 + %270 = load ptr, ptr %arrayidx.i5957, align 8 + %call.i5958 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %270, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5958, label %return, label %sw.epilog3868 sw.bb3082: ; preds = %sw.bb2987 - %sew.i5977 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %271 = load i8, ptr %sew.i5977, align 2 - %idxprom.i5978 = zext i8 %271 to i64 - %arrayidx.i5979 = getelementptr [3 x ptr], ptr @trans_vwmaccu_vv.fns, i64 0, i64 %idxprom.i5978 - %272 = load ptr, ptr %arrayidx.i5979, align 8 - %call.i5980 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %272, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5980, label %return, label %sw.epilog3868 + %sew.i5959 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %271 = load i8, ptr %sew.i5959, align 2 + %idxprom.i5960 = zext i8 %271 to i64 + %arrayidx.i5961 = getelementptr [3 x ptr], ptr @trans_vwmaccu_vv.fns, i64 0, i64 %idxprom.i5960 + %272 = load ptr, ptr %arrayidx.i5961, align 8 + %call.i5962 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %272, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5962, label %return, label %sw.epilog3868 sw.bb3086: ; preds = %sw.bb2987 - %sew.i5981 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %273 = load i8, ptr %sew.i5981, align 2 - %idxprom.i5982 = zext i8 %273 to i64 - %arrayidx.i5983 = getelementptr [3 x ptr], ptr @trans_vwmacc_vv.fns, i64 0, i64 %idxprom.i5982 - %274 = load ptr, ptr %arrayidx.i5983, align 8 - %call.i5984 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %274, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5984, label %return, label %sw.epilog3868 + %sew.i5963 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %273 = load i8, ptr %sew.i5963, align 2 + %idxprom.i5964 = zext i8 %273 to i64 + %arrayidx.i5965 = getelementptr [3 x ptr], ptr @trans_vwmacc_vv.fns, i64 0, i64 %idxprom.i5964 + %274 = load ptr, ptr %arrayidx.i5965, align 8 + %call.i5966 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %274, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5966, label %return, label %sw.epilog3868 sw.bb3090: ; preds = %sw.bb2987 - %sew.i5985 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 - %275 = load i8, ptr %sew.i5985, align 2 - %idxprom.i5986 = zext i8 %275 to i64 - %arrayidx.i5987 = getelementptr [3 x ptr], ptr @trans_vwmaccsu_vv.fns, i64 0, i64 %idxprom.i5986 - %276 = load ptr, ptr %arrayidx.i5987, align 8 - %call.i5988 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %276, ptr noundef nonnull @opivv_widen_check) - br i1 %call.i5988, label %return, label %sw.epilog3868 + %sew.i5967 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 20 + %275 = load i8, ptr %sew.i5967, align 2 + %idxprom.i5968 = zext i8 %275 to i64 + %arrayidx.i5969 = getelementptr [3 x ptr], ptr @trans_vwmaccsu_vv.fns, i64 0, i64 %idxprom.i5968 + %276 = load ptr, ptr %arrayidx.i5969, align 8 + %call.i5970 = call fastcc noundef zeroext i1 @do_opivv_widen(ptr noundef %ctx, ptr noundef nonnull %u, ptr noundef %276, ptr noundef nonnull @opivv_widen_check) + br i1 %call.i5970, label %return, label %sw.epilog3868 sw.bb3095: ; preds = %sw.bb1906 %shr3096 = lshr i32 %insn, 26 @@ -16153,70 +16131,70 @@ sw.bb3095: ; preds = %sw.bb1906 ] sw.bb3098: ; preds = %sw.bb3095 - %shr.i.i5989 = lshr i32 %insn, 20 - %and.i.i5990 = and i32 %shr.i.i5989, 31 - %rs2.i5991 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i5990, ptr %rs2.i5991, align 4 - %shr.i7.i5992 = lshr i32 %insn, 25 - %and.i8.i5993 = and i32 %shr.i7.i5992, 1 - store i32 %and.i8.i5993, ptr %u, align 4 - %shr.i9.i5994 = lshr i32 %insn, 7 - %and.i10.i5995 = and i32 %shr.i9.i5994, 31 - %rd.i5996 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i5995, ptr %rd.i5996, align 4 - %shr.i11.i5997 = lshr i32 %insn, 15 - %and.i12.i5998 = and i32 %shr.i11.i5997, 31 - %rs1.i5999 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i5998, ptr %rs1.i5999, align 4 + %shr.i.i5971 = lshr i32 %insn, 20 + %and.i.i5972 = and i32 %shr.i.i5971, 31 + %rs2.i5973 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5972, ptr %rs2.i5973, align 4 + %shr.i7.i5974 = lshr i32 %insn, 25 + %and.i8.i5975 = and i32 %shr.i7.i5974, 1 + store i32 %and.i8.i5975, ptr %u, align 4 + %shr.i9.i5976 = lshr i32 %insn, 7 + %and.i10.i5977 = and i32 %shr.i9.i5976, 31 + %rd.i5978 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5977, ptr %rd.i5978, align 4 + %shr.i11.i5979 = lshr i32 %insn, 15 + %and.i12.i5980 = and i32 %shr.i11.i5979, 31 + %rs1.i5981 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5980, ptr %rs1.i5981, align 4 %call3099 = call fastcc zeroext i1 @trans_vsaddu_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3099, label %return, label %sw.epilog3868 sw.bb3102: ; preds = %sw.bb3095 - %shr.i.i6000 = lshr i32 %insn, 20 - %and.i.i6001 = and i32 %shr.i.i6000, 31 - %rs2.i6002 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6001, ptr %rs2.i6002, align 4 - %shr.i7.i6003 = lshr i32 %insn, 25 - %and.i8.i6004 = and i32 %shr.i7.i6003, 1 - store i32 %and.i8.i6004, ptr %u, align 4 - %shr.i9.i6005 = lshr i32 %insn, 7 - %and.i10.i6006 = and i32 %shr.i9.i6005, 31 - %rd.i6007 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6006, ptr %rd.i6007, align 4 - %shr.i11.i6008 = lshr i32 %insn, 15 - %and.i12.i6009 = and i32 %shr.i11.i6008, 31 - %rs1.i6010 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6009, ptr %rs1.i6010, align 4 + %shr.i.i5982 = lshr i32 %insn, 20 + %and.i.i5983 = and i32 %shr.i.i5982, 31 + %rs2.i5984 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5983, ptr %rs2.i5984, align 4 + %shr.i7.i5985 = lshr i32 %insn, 25 + %and.i8.i5986 = and i32 %shr.i7.i5985, 1 + store i32 %and.i8.i5986, ptr %u, align 4 + %shr.i9.i5987 = lshr i32 %insn, 7 + %and.i10.i5988 = and i32 %shr.i9.i5987, 31 + %rd.i5989 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5988, ptr %rd.i5989, align 4 + %shr.i11.i5990 = lshr i32 %insn, 15 + %and.i12.i5991 = and i32 %shr.i11.i5990, 31 + %rs1.i5992 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i5991, ptr %rs1.i5992, align 4 %call3103 = call fastcc zeroext i1 @trans_vsadd_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3103, label %return, label %sw.epilog3868 sw.bb3106: ; preds = %sw.bb3095 - %shr.i.i6011 = lshr i32 %insn, 20 - %and.i.i6012 = and i32 %shr.i.i6011, 31 - %rs2.i6013 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6012, ptr %rs2.i6013, align 4 - %shr.i7.i6014 = lshr i32 %insn, 25 - %and.i8.i6015 = and i32 %shr.i7.i6014, 1 - store i32 %and.i8.i6015, ptr %u, align 4 - %shr.i9.i6016 = lshr i32 %insn, 7 - %and.i10.i6017 = and i32 %shr.i9.i6016, 31 - %rd.i6018 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6017, ptr %rd.i6018, align 4 - %shr.i11.i6019 = lshr i32 %insn, 15 - %and.i12.i6020 = and i32 %shr.i11.i6019, 31 - %rs1.i6021 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6020, ptr %rs1.i6021, align 4 + %shr.i.i5993 = lshr i32 %insn, 20 + %and.i.i5994 = and i32 %shr.i.i5993, 31 + %rs2.i5995 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i5994, ptr %rs2.i5995, align 4 + %shr.i7.i5996 = lshr i32 %insn, 25 + %and.i8.i5997 = and i32 %shr.i7.i5996, 1 + store i32 %and.i8.i5997, ptr %u, align 4 + %shr.i9.i5998 = lshr i32 %insn, 7 + %and.i10.i5999 = and i32 %shr.i9.i5998, 31 + %rd.i6000 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i5999, ptr %rd.i6000, align 4 + %shr.i11.i6001 = lshr i32 %insn, 15 + %and.i12.i6002 = and i32 %shr.i11.i6001, 31 + %rs1.i6003 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6002, ptr %rs1.i6003, align 4 %call3107 = call fastcc zeroext i1 @trans_vsll_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3107, label %return, label %sw.epilog3868 sw.bb3110: ; preds = %sw.bb3095 - %shr.i.i6022 = lshr i32 %insn, 20 - %and.i.i6023 = and i32 %shr.i.i6022, 31 - store i32 %and.i.i6023, ptr %u, align 4 - %shr.i3.i6024 = lshr i32 %insn, 7 - %and.i4.i6025 = and i32 %shr.i3.i6024, 31 - %rd.i6026 = getelementptr inbounds %struct.arg_decode_insn3221, ptr %u, i64 0, i32 1 - store i32 %and.i4.i6025, ptr %rd.i6026, align 4 + %shr.i.i6004 = lshr i32 %insn, 20 + %and.i.i6005 = and i32 %shr.i.i6004, 31 + store i32 %and.i.i6005, ptr %u, align 4 + %shr.i3.i6006 = lshr i32 %insn, 7 + %and.i4.i6007 = and i32 %shr.i3.i6006, 31 + %rd.i6008 = getelementptr inbounds %struct.arg_decode_insn3221, ptr %u, i64 0, i32 1 + store i32 %and.i4.i6007, ptr %rd.i6008, align 4 %and3111 = and i32 %insn, 34570240 %277 = add nsw i32 %and3111, -33554432 %278 = lshr exact i32 %277, 15 @@ -16244,192 +16222,192 @@ sw.bb3124: ; preds = %sw.bb3110 br i1 %call3125, label %return, label %sw.epilog3868 sw.bb3129: ; preds = %sw.bb3095 - %shr.i.i6027 = lshr i32 %insn, 20 - %and.i.i6028 = and i32 %shr.i.i6027, 31 - %rs2.i6029 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6028, ptr %rs2.i6029, align 4 - %shr.i7.i6030 = lshr i32 %insn, 25 - %and.i8.i6031 = and i32 %shr.i7.i6030, 1 - store i32 %and.i8.i6031, ptr %u, align 4 - %shr.i9.i6032 = lshr i32 %insn, 7 - %and.i10.i6033 = and i32 %shr.i9.i6032, 31 - %rd.i6034 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6033, ptr %rd.i6034, align 4 - %shr.i11.i6035 = lshr i32 %insn, 15 - %and.i12.i6036 = and i32 %shr.i11.i6035, 31 - %rs1.i6037 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6036, ptr %rs1.i6037, align 4 + %shr.i.i6009 = lshr i32 %insn, 20 + %and.i.i6010 = and i32 %shr.i.i6009, 31 + %rs2.i6011 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6010, ptr %rs2.i6011, align 4 + %shr.i7.i6012 = lshr i32 %insn, 25 + %and.i8.i6013 = and i32 %shr.i7.i6012, 1 + store i32 %and.i8.i6013, ptr %u, align 4 + %shr.i9.i6014 = lshr i32 %insn, 7 + %and.i10.i6015 = and i32 %shr.i9.i6014, 31 + %rd.i6016 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6015, ptr %rd.i6016, align 4 + %shr.i11.i6017 = lshr i32 %insn, 15 + %and.i12.i6018 = and i32 %shr.i11.i6017, 31 + %rs1.i6019 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6018, ptr %rs1.i6019, align 4 %call3130 = call fastcc zeroext i1 @trans_vsrl_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3130, label %return, label %sw.epilog3868 sw.bb3133: ; preds = %sw.bb3095 - %shr.i.i6038 = lshr i32 %insn, 20 - %and.i.i6039 = and i32 %shr.i.i6038, 31 - %rs2.i6040 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6039, ptr %rs2.i6040, align 4 - %shr.i7.i6041 = lshr i32 %insn, 25 - %and.i8.i6042 = and i32 %shr.i7.i6041, 1 - store i32 %and.i8.i6042, ptr %u, align 4 - %shr.i9.i6043 = lshr i32 %insn, 7 - %and.i10.i6044 = and i32 %shr.i9.i6043, 31 - %rd.i6045 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6044, ptr %rd.i6045, align 4 - %shr.i11.i6046 = lshr i32 %insn, 15 - %and.i12.i6047 = and i32 %shr.i11.i6046, 31 - %rs1.i6048 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6047, ptr %rs1.i6048, align 4 + %shr.i.i6020 = lshr i32 %insn, 20 + %and.i.i6021 = and i32 %shr.i.i6020, 31 + %rs2.i6022 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6021, ptr %rs2.i6022, align 4 + %shr.i7.i6023 = lshr i32 %insn, 25 + %and.i8.i6024 = and i32 %shr.i7.i6023, 1 + store i32 %and.i8.i6024, ptr %u, align 4 + %shr.i9.i6025 = lshr i32 %insn, 7 + %and.i10.i6026 = and i32 %shr.i9.i6025, 31 + %rd.i6027 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6026, ptr %rd.i6027, align 4 + %shr.i11.i6028 = lshr i32 %insn, 15 + %and.i12.i6029 = and i32 %shr.i11.i6028, 31 + %rs1.i6030 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6029, ptr %rs1.i6030, align 4 %call3134 = call fastcc zeroext i1 @trans_vsra_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3134, label %return, label %sw.epilog3868 sw.bb3137: ; preds = %sw.bb3095 - %shr.i.i6049 = lshr i32 %insn, 20 - %and.i.i6050 = and i32 %shr.i.i6049, 31 - %rs2.i6051 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6050, ptr %rs2.i6051, align 4 - %shr.i7.i6052 = lshr i32 %insn, 25 - %and.i8.i6053 = and i32 %shr.i7.i6052, 1 - store i32 %and.i8.i6053, ptr %u, align 4 - %shr.i9.i6054 = lshr i32 %insn, 7 - %and.i10.i6055 = and i32 %shr.i9.i6054, 31 - %rd.i6056 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6055, ptr %rd.i6056, align 4 - %shr.i11.i6057 = lshr i32 %insn, 15 - %and.i12.i6058 = and i32 %shr.i11.i6057, 31 - %rs1.i6059 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6058, ptr %rs1.i6059, align 4 + %shr.i.i6031 = lshr i32 %insn, 20 + %and.i.i6032 = and i32 %shr.i.i6031, 31 + %rs2.i6033 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6032, ptr %rs2.i6033, align 4 + %shr.i7.i6034 = lshr i32 %insn, 25 + %and.i8.i6035 = and i32 %shr.i7.i6034, 1 + store i32 %and.i8.i6035, ptr %u, align 4 + %shr.i9.i6036 = lshr i32 %insn, 7 + %and.i10.i6037 = and i32 %shr.i9.i6036, 31 + %rd.i6038 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6037, ptr %rd.i6038, align 4 + %shr.i11.i6039 = lshr i32 %insn, 15 + %and.i12.i6040 = and i32 %shr.i11.i6039, 31 + %rs1.i6041 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6040, ptr %rs1.i6041, align 4 %call3138 = call fastcc zeroext i1 @trans_vssrl_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3138, label %return, label %sw.epilog3868 sw.bb3141: ; preds = %sw.bb3095 - %shr.i.i6060 = lshr i32 %insn, 20 - %and.i.i6061 = and i32 %shr.i.i6060, 31 - %rs2.i6062 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6061, ptr %rs2.i6062, align 4 - %shr.i7.i6063 = lshr i32 %insn, 25 - %and.i8.i6064 = and i32 %shr.i7.i6063, 1 - store i32 %and.i8.i6064, ptr %u, align 4 - %shr.i9.i6065 = lshr i32 %insn, 7 - %and.i10.i6066 = and i32 %shr.i9.i6065, 31 - %rd.i6067 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6066, ptr %rd.i6067, align 4 - %shr.i11.i6068 = lshr i32 %insn, 15 - %and.i12.i6069 = and i32 %shr.i11.i6068, 31 - %rs1.i6070 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6069, ptr %rs1.i6070, align 4 + %shr.i.i6042 = lshr i32 %insn, 20 + %and.i.i6043 = and i32 %shr.i.i6042, 31 + %rs2.i6044 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6043, ptr %rs2.i6044, align 4 + %shr.i7.i6045 = lshr i32 %insn, 25 + %and.i8.i6046 = and i32 %shr.i7.i6045, 1 + store i32 %and.i8.i6046, ptr %u, align 4 + %shr.i9.i6047 = lshr i32 %insn, 7 + %and.i10.i6048 = and i32 %shr.i9.i6047, 31 + %rd.i6049 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6048, ptr %rd.i6049, align 4 + %shr.i11.i6050 = lshr i32 %insn, 15 + %and.i12.i6051 = and i32 %shr.i11.i6050, 31 + %rs1.i6052 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6051, ptr %rs1.i6052, align 4 %call3142 = call fastcc zeroext i1 @trans_vssra_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3142, label %return, label %sw.epilog3868 sw.bb3145: ; preds = %sw.bb3095 - %shr.i.i6071 = lshr i32 %insn, 20 - %and.i.i6072 = and i32 %shr.i.i6071, 31 - %rs2.i6073 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6072, ptr %rs2.i6073, align 4 - %shr.i7.i6074 = lshr i32 %insn, 25 - %and.i8.i6075 = and i32 %shr.i7.i6074, 1 - store i32 %and.i8.i6075, ptr %u, align 4 - %shr.i9.i6076 = lshr i32 %insn, 7 - %and.i10.i6077 = and i32 %shr.i9.i6076, 31 - %rd.i6078 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6077, ptr %rd.i6078, align 4 - %shr.i11.i6079 = lshr i32 %insn, 15 - %and.i12.i6080 = and i32 %shr.i11.i6079, 31 - %rs1.i6081 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6080, ptr %rs1.i6081, align 4 + %shr.i.i6053 = lshr i32 %insn, 20 + %and.i.i6054 = and i32 %shr.i.i6053, 31 + %rs2.i6055 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6054, ptr %rs2.i6055, align 4 + %shr.i7.i6056 = lshr i32 %insn, 25 + %and.i8.i6057 = and i32 %shr.i7.i6056, 1 + store i32 %and.i8.i6057, ptr %u, align 4 + %shr.i9.i6058 = lshr i32 %insn, 7 + %and.i10.i6059 = and i32 %shr.i9.i6058, 31 + %rd.i6060 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6059, ptr %rd.i6060, align 4 + %shr.i11.i6061 = lshr i32 %insn, 15 + %and.i12.i6062 = and i32 %shr.i11.i6061, 31 + %rs1.i6063 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6062, ptr %rs1.i6063, align 4 %call3146 = call fastcc zeroext i1 @trans_vnsrl_wi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3146, label %return, label %sw.epilog3868 sw.bb3149: ; preds = %sw.bb3095 - %shr.i.i6082 = lshr i32 %insn, 20 - %and.i.i6083 = and i32 %shr.i.i6082, 31 - %rs2.i6084 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6083, ptr %rs2.i6084, align 4 - %shr.i7.i6085 = lshr i32 %insn, 25 - %and.i8.i6086 = and i32 %shr.i7.i6085, 1 - store i32 %and.i8.i6086, ptr %u, align 4 - %shr.i9.i6087 = lshr i32 %insn, 7 - %and.i10.i6088 = and i32 %shr.i9.i6087, 31 - %rd.i6089 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6088, ptr %rd.i6089, align 4 - %shr.i11.i6090 = lshr i32 %insn, 15 - %and.i12.i6091 = and i32 %shr.i11.i6090, 31 - %rs1.i6092 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6091, ptr %rs1.i6092, align 4 + %shr.i.i6064 = lshr i32 %insn, 20 + %and.i.i6065 = and i32 %shr.i.i6064, 31 + %rs2.i6066 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6065, ptr %rs2.i6066, align 4 + %shr.i7.i6067 = lshr i32 %insn, 25 + %and.i8.i6068 = and i32 %shr.i7.i6067, 1 + store i32 %and.i8.i6068, ptr %u, align 4 + %shr.i9.i6069 = lshr i32 %insn, 7 + %and.i10.i6070 = and i32 %shr.i9.i6069, 31 + %rd.i6071 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6070, ptr %rd.i6071, align 4 + %shr.i11.i6072 = lshr i32 %insn, 15 + %and.i12.i6073 = and i32 %shr.i11.i6072, 31 + %rs1.i6074 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6073, ptr %rs1.i6074, align 4 %call3150 = call fastcc zeroext i1 @trans_vnsra_wi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3150, label %return, label %sw.epilog3868 sw.bb3153: ; preds = %sw.bb3095 - %shr.i.i6093 = lshr i32 %insn, 20 - %and.i.i6094 = and i32 %shr.i.i6093, 31 - %rs2.i6095 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6094, ptr %rs2.i6095, align 4 - %shr.i7.i6096 = lshr i32 %insn, 25 - %and.i8.i6097 = and i32 %shr.i7.i6096, 1 - store i32 %and.i8.i6097, ptr %u, align 4 - %shr.i9.i6098 = lshr i32 %insn, 7 - %and.i10.i6099 = and i32 %shr.i9.i6098, 31 - %rd.i6100 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6099, ptr %rd.i6100, align 4 - %shr.i11.i6101 = lshr i32 %insn, 15 - %and.i12.i6102 = and i32 %shr.i11.i6101, 31 - %rs1.i6103 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6102, ptr %rs1.i6103, align 4 + %shr.i.i6075 = lshr i32 %insn, 20 + %and.i.i6076 = and i32 %shr.i.i6075, 31 + %rs2.i6077 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6076, ptr %rs2.i6077, align 4 + %shr.i7.i6078 = lshr i32 %insn, 25 + %and.i8.i6079 = and i32 %shr.i7.i6078, 1 + store i32 %and.i8.i6079, ptr %u, align 4 + %shr.i9.i6080 = lshr i32 %insn, 7 + %and.i10.i6081 = and i32 %shr.i9.i6080, 31 + %rd.i6082 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6081, ptr %rd.i6082, align 4 + %shr.i11.i6083 = lshr i32 %insn, 15 + %and.i12.i6084 = and i32 %shr.i11.i6083, 31 + %rs1.i6085 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6084, ptr %rs1.i6085, align 4 %call3154 = call fastcc zeroext i1 @trans_vnclipu_wi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3154, label %return, label %sw.epilog3868 sw.bb3157: ; preds = %sw.bb3095 - %shr.i.i6104 = lshr i32 %insn, 20 - %and.i.i6105 = and i32 %shr.i.i6104, 31 - %rs2.i6106 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6105, ptr %rs2.i6106, align 4 - %shr.i7.i6107 = lshr i32 %insn, 25 - %and.i8.i6108 = and i32 %shr.i7.i6107, 1 - store i32 %and.i8.i6108, ptr %u, align 4 - %shr.i9.i6109 = lshr i32 %insn, 7 - %and.i10.i6110 = and i32 %shr.i9.i6109, 31 - %rd.i6111 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6110, ptr %rd.i6111, align 4 - %shr.i11.i6112 = lshr i32 %insn, 15 - %and.i12.i6113 = and i32 %shr.i11.i6112, 31 - %rs1.i6114 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6113, ptr %rs1.i6114, align 4 + %shr.i.i6086 = lshr i32 %insn, 20 + %and.i.i6087 = and i32 %shr.i.i6086, 31 + %rs2.i6088 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6087, ptr %rs2.i6088, align 4 + %shr.i7.i6089 = lshr i32 %insn, 25 + %and.i8.i6090 = and i32 %shr.i7.i6089, 1 + store i32 %and.i8.i6090, ptr %u, align 4 + %shr.i9.i6091 = lshr i32 %insn, 7 + %and.i10.i6092 = and i32 %shr.i9.i6091, 31 + %rd.i6093 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6092, ptr %rd.i6093, align 4 + %shr.i11.i6094 = lshr i32 %insn, 15 + %and.i12.i6095 = and i32 %shr.i11.i6094, 31 + %rs1.i6096 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6095, ptr %rs1.i6096, align 4 %call3158 = call fastcc zeroext i1 @trans_vnclip_wi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3158, label %return, label %sw.epilog3868 sw.bb3161: ; preds = %sw.bb3095 - %shr.i.i6115 = lshr i32 %insn, 20 - %and.i.i6116 = and i32 %shr.i.i6115, 31 - %rs2.i6117 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6116, ptr %rs2.i6117, align 4 - %shr.i7.i6118 = lshr i32 %insn, 25 - %and.i8.i6119 = and i32 %shr.i7.i6118, 1 - store i32 %and.i8.i6119, ptr %u, align 4 - %shr.i9.i6120 = lshr i32 %insn, 7 - %and.i10.i6121 = and i32 %shr.i9.i6120, 31 - %rd.i6122 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6121, ptr %rd.i6122, align 4 - %shr.i11.i6123 = lshr i32 %insn, 15 - %and.i12.i6124 = and i32 %shr.i11.i6123, 31 - %rs1.i6125 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6124, ptr %rs1.i6125, align 4 + %shr.i.i6097 = lshr i32 %insn, 20 + %and.i.i6098 = and i32 %shr.i.i6097, 31 + %rs2.i6099 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6098, ptr %rs2.i6099, align 4 + %shr.i7.i6100 = lshr i32 %insn, 25 + %and.i8.i6101 = and i32 %shr.i7.i6100, 1 + store i32 %and.i8.i6101, ptr %u, align 4 + %shr.i9.i6102 = lshr i32 %insn, 7 + %and.i10.i6103 = and i32 %shr.i9.i6102, 31 + %rd.i6104 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6103, ptr %rd.i6104, align 4 + %shr.i11.i6105 = lshr i32 %insn, 15 + %and.i12.i6106 = and i32 %shr.i11.i6105, 31 + %rs1.i6107 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6106, ptr %rs1.i6107, align 4 %call3162 = call fastcc zeroext i1 @trans_vwsll_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3162, label %return, label %sw.epilog3868 sw.bb3166: ; preds = %sw.bb1906 - %shr.i.i6126 = lshr i32 %insn, 20 - %and.i.i6127 = and i32 %shr.i.i6126, 31 - %rs2.i6128 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6127, ptr %rs2.i6128, align 4 - %shr.i7.i6129 = lshr i32 %insn, 25 - %and.i8.i6130 = and i32 %shr.i7.i6129, 1 - store i32 %and.i8.i6130, ptr %u, align 4 - %shr.i9.i6131 = lshr i32 %insn, 7 - %and.i10.i6132 = and i32 %shr.i9.i6131, 31 - %rd.i6133 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6132, ptr %rd.i6133, align 4 - %shr.i11.i6134 = lshr i32 %insn, 15 - %and.i12.i6135 = and i32 %shr.i11.i6134, 31 - %rs1.i6136 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6135, ptr %rs1.i6136, align 4 + %shr.i.i6108 = lshr i32 %insn, 20 + %and.i.i6109 = and i32 %shr.i.i6108, 31 + %rs2.i6110 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6109, ptr %rs2.i6110, align 4 + %shr.i7.i6111 = lshr i32 %insn, 25 + %and.i8.i6112 = and i32 %shr.i7.i6111, 1 + store i32 %and.i8.i6112, ptr %u, align 4 + %shr.i9.i6113 = lshr i32 %insn, 7 + %and.i10.i6114 = and i32 %shr.i9.i6113, 31 + %rd.i6115 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6114, ptr %rd.i6115, align 4 + %shr.i11.i6116 = lshr i32 %insn, 15 + %and.i12.i6117 = and i32 %shr.i11.i6116, 31 + %rs1.i6118 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6117, ptr %rs1.i6118, align 4 %shr3167 = lshr i32 %insn, 26 %and3168 = and i32 %shr3167, 31 switch i32 %and3168, label %sw.epilog3868 [ @@ -16511,21 +16489,21 @@ sw.bb3225: ; preds = %sw.bb3166 br i1 %call3226, label %return, label %sw.epilog3868 sw.bb3230: ; preds = %sw.bb1906 - %shr.i.i6137 = lshr i32 %insn, 20 - %and.i.i6138 = and i32 %shr.i.i6137, 31 - %rs2.i6139 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6138, ptr %rs2.i6139, align 4 - %shr.i7.i6140 = lshr i32 %insn, 25 - %and.i8.i6141 = and i32 %shr.i7.i6140, 1 - store i32 %and.i8.i6141, ptr %u, align 4 - %shr.i9.i6142 = lshr i32 %insn, 7 - %and.i10.i6143 = and i32 %shr.i9.i6142, 31 - %rd.i6144 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6143, ptr %rd.i6144, align 4 - %shr.i11.i6145 = lshr i32 %insn, 15 - %and.i12.i6146 = and i32 %shr.i11.i6145, 31 - %rs1.i6147 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6146, ptr %rs1.i6147, align 4 + %shr.i.i6119 = lshr i32 %insn, 20 + %and.i.i6120 = and i32 %shr.i.i6119, 31 + %rs2.i6121 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6120, ptr %rs2.i6121, align 4 + %shr.i7.i6122 = lshr i32 %insn, 25 + %and.i8.i6123 = and i32 %shr.i7.i6122, 1 + store i32 %and.i8.i6123, ptr %u, align 4 + %shr.i9.i6124 = lshr i32 %insn, 7 + %and.i10.i6125 = and i32 %shr.i9.i6124, 31 + %rd.i6126 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6125, ptr %rd.i6126, align 4 + %shr.i11.i6127 = lshr i32 %insn, 15 + %and.i12.i6128 = and i32 %shr.i11.i6127, 31 + %rs1.i6129 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6128, ptr %rs1.i6129, align 4 %shr3231 = lshr i32 %insn, 26 %and3232 = and i32 %shr3231, 31 switch i32 %and3232, label %sw.epilog3868 [ @@ -16642,21 +16620,21 @@ sw.bb3317: ; preds = %sw.bb3230 br i1 %call3318, label %return, label %sw.epilog3868 sw.bb3322: ; preds = %sw.bb1906 - %shr.i.i6148 = lshr i32 %insn, 20 - %and.i.i6149 = and i32 %shr.i.i6148, 31 - %rs2.i6150 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6149, ptr %rs2.i6150, align 4 - %shr.i7.i6151 = lshr i32 %insn, 25 - %and.i8.i6152 = and i32 %shr.i7.i6151, 1 - store i32 %and.i8.i6152, ptr %u, align 4 - %shr.i9.i6153 = lshr i32 %insn, 7 - %and.i10.i6154 = and i32 %shr.i9.i6153, 31 - %rd.i6155 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i10.i6154, ptr %rd.i6155, align 4 - %shr.i11.i6156 = lshr i32 %insn, 15 - %and.i12.i6157 = and i32 %shr.i11.i6156, 31 - %rs1.i6158 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i12.i6157, ptr %rs1.i6158, align 4 + %shr.i.i6130 = lshr i32 %insn, 20 + %and.i.i6131 = and i32 %shr.i.i6130, 31 + %rs2.i6132 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6131, ptr %rs2.i6132, align 4 + %shr.i7.i6133 = lshr i32 %insn, 25 + %and.i8.i6134 = and i32 %shr.i7.i6133, 1 + store i32 %and.i8.i6134, ptr %u, align 4 + %shr.i9.i6135 = lshr i32 %insn, 7 + %and.i10.i6136 = and i32 %shr.i9.i6135, 31 + %rd.i6137 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i10.i6136, ptr %rd.i6137, align 4 + %shr.i11.i6138 = lshr i32 %insn, 15 + %and.i12.i6139 = and i32 %shr.i11.i6138, 31 + %rs1.i6140 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i12.i6139, ptr %rs1.i6140, align 4 %shr3323 = lshr i32 %insn, 26 %and3324 = and i32 %shr3323, 31 switch i32 %and3324, label %sw.epilog3868 [ @@ -16800,20 +16778,20 @@ sw.bb3429: ; preds = %sw.bb3322 sw.bb3434: ; preds = %sw.bb1906 %279 = and i32 %insn, 1073741824 %trunc.not = icmp eq i32 %279, 0 - %shr.i7.i6164 = lshr i32 %insn, 15 - %and.i8.i6165 = and i32 %shr.i7.i6164, 31 + %shr.i7.i6146 = lshr i32 %insn, 15 + %and.i8.i6147 = and i32 %shr.i7.i6146, 31 br i1 %trunc.not, label %sw.bb3437, label %sw.bb3445 sw.bb3437: ; preds = %sw.bb3434 - %shr.i.i6159 = lshr i32 %insn, 20 - %and.i.i6160 = and i32 %shr.i.i6159, 31 - %rs2.i6161 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i.i6160, ptr %rs2.i6161, align 4 - %shr.i5.i6162 = lshr i32 %insn, 7 - %and.i6.i6163 = and i32 %shr.i5.i6162, 31 - store i32 %and.i6.i6163, ptr %u, align 4 - %rs1.i6166 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i8.i6165, ptr %rs1.i6166, align 4 + %shr.i.i6141 = lshr i32 %insn, 20 + %and.i.i6142 = and i32 %shr.i.i6141, 31 + %rs2.i6143 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i.i6142, ptr %rs2.i6143, align 4 + %shr.i5.i6144 = lshr i32 %insn, 7 + %and.i6.i6145 = and i32 %shr.i5.i6144, 31 + store i32 %and.i6.i6145, ptr %u, align 4 + %rs1.i6148 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i8.i6147, ptr %rs1.i6148, align 4 %280 = and i32 %insn, 1040187392 %cond10 = icmp eq i32 %280, 0 br i1 %cond10, label %sw.bb3440, label %sw.epilog3868 @@ -16823,15 +16801,15 @@ sw.bb3440: ; preds = %sw.bb3437 br i1 %call3441, label %return, label %sw.epilog3868 sw.bb3445: ; preds = %sw.bb3434 - %shr.i.i6167 = lshr i32 %insn, 7 - %and.i.i6168 = and i32 %shr.i.i6167, 31 - %rd.i6169 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 2 - store i32 %and.i.i6168, ptr %rd.i6169, align 4 - %shr.i5.i6170 = lshr i32 %insn, 20 - %and.i6.i6171 = and i32 %shr.i5.i6170, 1023 - store i32 %and.i6.i6171, ptr %u, align 4 - %rs1.i6174 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 1 - store i32 %and.i8.i6165, ptr %rs1.i6174, align 4 + %shr.i.i6149 = lshr i32 %insn, 7 + %and.i.i6150 = and i32 %shr.i.i6149, 31 + %rd.i6151 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 2 + store i32 %and.i.i6150, ptr %rd.i6151, align 4 + %shr.i5.i6152 = lshr i32 %insn, 20 + %and.i6.i6153 = and i32 %shr.i5.i6152, 1023 + store i32 %and.i6.i6153, ptr %u, align 4 + %rs1.i6156 = getelementptr inbounds %struct.arg_decode_insn3222, ptr %u, i64 0, i32 1 + store i32 %and.i8.i6147, ptr %rs1.i6156, align 4 %call3446 = call fastcc zeroext i1 @trans_vsetivli(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3446, label %return, label %sw.epilog3868 @@ -16839,27 +16817,27 @@ sw.bb1906.unreachabledefault: ; preds = %sw.bb1906 unreachable sw.bb3479: ; preds = %entry - %shr.i.i6198 = lshr i32 %insn, 20 - %and.i.i6199 = and i32 %shr.i.i6198, 31 - %rs2.i6200 = getelementptr inbounds %struct.arg_b, ptr %u, i64 0, i32 1 - store i32 %and.i.i6199, ptr %rs2.i6200, align 4 - %shr.i8.i6201 = lshr i32 %insn, 8 - %and.i9.i6202 = and i32 %shr.i8.i6201, 15 + %shr.i.i6180 = lshr i32 %insn, 20 + %and.i.i6181 = and i32 %shr.i.i6180, 31 + %rs2.i6182 = getelementptr inbounds %struct.arg_b, ptr %u, i64 0, i32 1 + store i32 %and.i.i6181, ptr %rs2.i6182, align 4 + %shr.i8.i6183 = lshr i32 %insn, 8 + %and.i9.i6184 = and i32 %shr.i8.i6183, 15 %281 = lshr i32 %insn, 21 - %and6.i.i6203 = and i32 %281, 1008 + %and6.i.i6185 = and i32 %281, 1008 %282 = shl i32 %insn, 3 %and6.i15.i = and i32 %282, 1024 %isneg.i = icmp slt i32 %insn, 0 - %shl57.i.i6204 = select i1 %isneg.i, i32 2147481600, i32 0 - %or.i.i6205 = or disjoint i32 %and.i9.i6202, %and6.i.i6203 - %or.i16.i = or disjoint i32 %or.i.i6205, %and6.i15.i - %or.i20.i = or disjoint i32 %or.i16.i, %shl57.i.i6204 - %shl.i.i6206 = shl nuw i32 %or.i20.i, 1 - store i32 %shl.i.i6206, ptr %u, align 4 + %shl57.i.i6186 = select i1 %isneg.i, i32 2147481600, i32 0 + %or.i.i6187 = or disjoint i32 %and.i9.i6184, %and6.i.i6185 + %or.i16.i = or disjoint i32 %or.i.i6187, %and6.i15.i + %or.i20.i = or disjoint i32 %or.i16.i, %shl57.i.i6186 + %shl.i.i6188 = shl nuw i32 %or.i20.i, 1 + store i32 %shl.i.i6188, ptr %u, align 4 %shr.i21.i = lshr i32 %insn, 15 %and.i22.i = and i32 %shr.i21.i, 31 - %rs1.i6207 = getelementptr inbounds %struct.arg_b, ptr %u, i64 0, i32 2 - store i32 %and.i22.i, ptr %rs1.i6207, align 4 + %rs1.i6189 = getelementptr inbounds %struct.arg_b, ptr %u, i64 0, i32 2 + store i32 %and.i22.i, ptr %rs1.i6189, align 4 %shr3480 = lshr i32 %insn, 12 %and3481 = and i32 %shr3480, 7 switch i32 %and3481, label %sw.epilog3868 [ @@ -16896,16 +16874,16 @@ sw.bb3502: ; preds = %sw.bb3479 br label %return sw.bb3507: ; preds = %entry - %shr.i.i6214 = ashr i32 %insn, 20 - store i32 %shr.i.i6214, ptr %u, align 4 - %shr.i5.i6215 = lshr i32 %insn, 7 - %and.i.i6216 = and i32 %shr.i5.i6215, 31 - %rd.i6217 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 - store i32 %and.i.i6216, ptr %rd.i6217, align 4 - %shr.i6.i6218 = lshr i32 %insn, 15 - %and.i7.i6219 = and i32 %shr.i6.i6218, 31 - %rs1.i6220 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6219, ptr %rs1.i6220, align 4 + %shr.i.i6196 = ashr i32 %insn, 20 + store i32 %shr.i.i6196, ptr %u, align 4 + %shr.i5.i6197 = lshr i32 %insn, 7 + %and.i.i6198 = and i32 %shr.i5.i6197, 31 + %rd.i6199 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 2 + store i32 %and.i.i6198, ptr %rd.i6199, align 4 + %shr.i6.i6200 = lshr i32 %insn, 15 + %and.i7.i6201 = and i32 %shr.i6.i6200, 31 + %rs1.i6202 = getelementptr inbounds %struct.arg_i, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6201, ptr %rs1.i6202, align 4 %283 = and i32 %insn, 28672 %cond8 = icmp eq i32 %283, 0 br i1 %cond8, label %sw.bb3510, label %sw.epilog3868 @@ -16915,27 +16893,27 @@ sw.bb3510: ; preds = %sw.bb3507 br label %return sw.bb3515: ; preds = %entry - %shr.i.i6221 = lshr i32 %insn, 21 - %and.i.i6222 = and i32 %shr.i.i6221, 1023 + %shr.i.i6203 = lshr i32 %insn, 21 + %and.i.i6204 = and i32 %shr.i.i6203, 1023 %284 = lshr i32 %insn, 10 - %and6.i.i6223 = and i32 %284, 1024 + %and6.i.i6205 = and i32 %284, 1024 %285 = lshr i32 %insn, 1 %and6.i11.i = and i32 %285, 522240 - %isneg.i6224 = icmp slt i32 %insn, 0 - %shl57.i.i6225 = select i1 %isneg.i6224, i32 2146959360, i32 0 - %or.i12.i = or disjoint i32 %and.i.i6222, %and6.i.i6223 - %or.i.i6226 = or disjoint i32 %or.i12.i, %and6.i11.i - %or.i16.i6227 = or disjoint i32 %or.i.i6226, %shl57.i.i6225 - %shl.i.i6228 = shl nuw i32 %or.i16.i6227, 1 + %isneg.i6206 = icmp slt i32 %insn, 0 + %shl57.i.i6207 = select i1 %isneg.i6206, i32 2146959360, i32 0 + %or.i12.i = or disjoint i32 %and.i.i6204, %and6.i.i6205 + %or.i.i6208 = or disjoint i32 %or.i12.i, %and6.i11.i + %or.i16.i6209 = or disjoint i32 %or.i.i6208, %shl57.i.i6207 + %shl.i.i6210 = shl nuw i32 %or.i16.i6209, 1 %shr.i17.i = lshr i32 %insn, 7 %and.i18.i = and i32 %shr.i17.i, 31 - tail call fastcc void @trans_jal(ptr noundef %ctx, i32 %shl.i.i6228, i32 %and.i18.i) + tail call fastcc void @trans_jal(ptr noundef %ctx, i32 %shl.i.i6210, i32 %and.i18.i) br label %return sw.bb3519: ; preds = %entry %shr3520 = lshr i32 %insn, 12 %and3521 = and i32 %shr3520, 7 - switch i32 %and3521, label %sw.bb3519.unreachabledefault [ + switch i32 %and3521, label %default.unreachable6487 [ i32 0, label %sw.bb3522 i32 1, label %sw.bb3617 i32 2, label %sw.bb3621 @@ -16972,12 +16950,12 @@ sw.bb3531: ; preds = %sw.bb3524 br label %return sw.bb3539: ; preds = %sw.bb3524 - %call.i6230 = tail call fastcc noundef zeroext i1 @trans_wrs(ptr noundef %ctx) - br i1 %call.i6230, label %return, label %sw.epilog3868 + %call.i6212 = tail call fastcc noundef zeroext i1 @trans_wrs(ptr noundef %ctx) + br i1 %call.i6212, label %return, label %sw.epilog3868 sw.bb3543: ; preds = %sw.bb3524 - %call.i6231 = tail call fastcc noundef zeroext i1 @trans_wrs(ptr noundef %ctx) - br i1 %call.i6231, label %return, label %sw.epilog3868 + %call.i6213 = tail call fastcc noundef zeroext i1 @trans_wrs(ptr noundef %ctx) + br i1 %call.i6213, label %return, label %sw.epilog3868 sw.bb3580: ; preds = %sw.bb3522 %shr3581 = lshr i32 %insn, 15 @@ -16988,124 +16966,121 @@ sw.bb3580: ; preds = %sw.bb3522 ] sw.bb3583: ; preds = %sw.bb3580 - %cfg_ptr.i6244 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %286 = load ptr, ptr %cfg_ptr.i6244, align 8 + %cfg_ptr.i6226 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %286 = load ptr, ptr %cfg_ptr.i6226, align 8 %ext_svinval.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %286, i64 0, i32 36 %287 = load i8, ptr %ext_svinval.i, align 4 %288 = and i8 %287, 1 - %tobool.not.i6245 = icmp eq i8 %288, 0 - br i1 %tobool.not.i6245, label %sw.epilog3868, label %trans_sfence_w_inval.exit + %tobool.not.i6227 = icmp eq i8 %288, 0 + br i1 %tobool.not.i6227, label %sw.epilog3868, label %trans_sfence_w_inval.exit trans_sfence_w_inval.exit: ; preds = %sw.bb3583 %289 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i6246 = load i32, ptr %289, align 4 - %and.i.i6247 = and i32 %ctx.val.i6246, 262144 - %tobool.i.i6248.not = icmp eq i32 %and.i.i6247, 0 - br i1 %tobool.i.i6248.not, label %sw.epilog3868, label %return + %ctx.val.i6228 = load i32, ptr %289, align 4 + %and.i.i6229 = and i32 %ctx.val.i6228, 262144 + %tobool.i.i6230.not = icmp eq i32 %and.i.i6229, 0 + br i1 %tobool.i.i6230.not, label %sw.epilog3868, label %return sw.bb3587: ; preds = %sw.bb3580 - %cfg_ptr.i6250 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %290 = load ptr, ptr %cfg_ptr.i6250, align 8 - %ext_svinval.i6251 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %290, i64 0, i32 36 - %291 = load i8, ptr %ext_svinval.i6251, align 4 + %cfg_ptr.i6232 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %290 = load ptr, ptr %cfg_ptr.i6232, align 8 + %ext_svinval.i6233 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %290, i64 0, i32 36 + %291 = load i8, ptr %ext_svinval.i6233, align 4 %292 = and i8 %291, 1 - %tobool.not.i6252 = icmp eq i8 %292, 0 - br i1 %tobool.not.i6252, label %sw.epilog3868, label %trans_sfence_inval_ir.exit + %tobool.not.i6234 = icmp eq i8 %292, 0 + br i1 %tobool.not.i6234, label %sw.epilog3868, label %trans_sfence_inval_ir.exit trans_sfence_inval_ir.exit: ; preds = %sw.bb3587 %293 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i6254 = load i32, ptr %293, align 4 - %and.i.i6255 = and i32 %ctx.val.i6254, 262144 - %tobool.i.i6256.not = icmp eq i32 %and.i.i6255, 0 - br i1 %tobool.i.i6256.not, label %sw.epilog3868, label %return + %ctx.val.i6236 = load i32, ptr %293, align 4 + %and.i.i6237 = and i32 %ctx.val.i6236, 262144 + %tobool.i.i6238.not = icmp eq i32 %and.i.i6237, 0 + br i1 %tobool.i.i6238.not, label %sw.epilog3868, label %return sw.bb3617: ; preds = %sw.bb3519 - %shr.i.i6278 = lshr i32 %insn, 20 - store i32 %shr.i.i6278, ptr %u, align 4 - %shr.i5.i6279 = lshr i32 %insn, 7 - %and.i.i6280 = and i32 %shr.i5.i6279, 31 - %rd.i6281 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 - store i32 %and.i.i6280, ptr %rd.i6281, align 4 - %shr.i6.i6282 = lshr i32 %insn, 15 - %and.i7.i6283 = and i32 %shr.i6.i6282, 31 - %rs1.i6284 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6283, ptr %rs1.i6284, align 4 + %shr.i.i6260 = lshr i32 %insn, 20 + store i32 %shr.i.i6260, ptr %u, align 4 + %shr.i5.i6261 = lshr i32 %insn, 7 + %and.i.i6262 = and i32 %shr.i5.i6261, 31 + %rd.i6263 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 + store i32 %and.i.i6262, ptr %rd.i6263, align 4 + %shr.i6.i6264 = lshr i32 %insn, 15 + %and.i7.i6265 = and i32 %shr.i6.i6264, 31 + %rs1.i6266 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6265, ptr %rs1.i6266, align 4 call fastcc void @trans_csrrw(ptr noundef %ctx, ptr noundef nonnull %u) br label %return sw.bb3621: ; preds = %sw.bb3519 - %shr.i.i6285 = lshr i32 %insn, 20 - store i32 %shr.i.i6285, ptr %u, align 4 - %shr.i5.i6286 = lshr i32 %insn, 7 - %and.i.i6287 = and i32 %shr.i5.i6286, 31 - %rd.i6288 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 - store i32 %and.i.i6287, ptr %rd.i6288, align 4 - %shr.i6.i6289 = lshr i32 %insn, 15 - %and.i7.i6290 = and i32 %shr.i6.i6289, 31 - %rs1.i6291 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6290, ptr %rs1.i6291, align 4 + %shr.i.i6267 = lshr i32 %insn, 20 + store i32 %shr.i.i6267, ptr %u, align 4 + %shr.i5.i6268 = lshr i32 %insn, 7 + %and.i.i6269 = and i32 %shr.i5.i6268, 31 + %rd.i6270 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 + store i32 %and.i.i6269, ptr %rd.i6270, align 4 + %shr.i6.i6271 = lshr i32 %insn, 15 + %and.i7.i6272 = and i32 %shr.i6.i6271, 31 + %rs1.i6273 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6272, ptr %rs1.i6273, align 4 call fastcc void @trans_csrrs(ptr noundef %ctx, ptr noundef nonnull %u) br label %return sw.bb3625: ; preds = %sw.bb3519 - %shr.i.i6292 = lshr i32 %insn, 20 - store i32 %shr.i.i6292, ptr %u, align 4 - %shr.i5.i6293 = lshr i32 %insn, 7 - %and.i.i6294 = and i32 %shr.i5.i6293, 31 - %rd.i6295 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 - store i32 %and.i.i6294, ptr %rd.i6295, align 4 - %shr.i6.i6296 = lshr i32 %insn, 15 - %and.i7.i6297 = and i32 %shr.i6.i6296, 31 - %rs1.i6298 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6297, ptr %rs1.i6298, align 4 + %shr.i.i6274 = lshr i32 %insn, 20 + store i32 %shr.i.i6274, ptr %u, align 4 + %shr.i5.i6275 = lshr i32 %insn, 7 + %and.i.i6276 = and i32 %shr.i5.i6275, 31 + %rd.i6277 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 + store i32 %and.i.i6276, ptr %rd.i6277, align 4 + %shr.i6.i6278 = lshr i32 %insn, 15 + %and.i7.i6279 = and i32 %shr.i6.i6278, 31 + %rs1.i6280 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6279, ptr %rs1.i6280, align 4 call fastcc void @trans_csrrc(ptr noundef %ctx, ptr noundef nonnull %u) br label %return sw.bb3717: ; preds = %sw.bb3519 - %shr.i.i6339 = lshr i32 %insn, 20 - store i32 %shr.i.i6339, ptr %u, align 4 - %shr.i5.i6340 = lshr i32 %insn, 7 - %and.i.i6341 = and i32 %shr.i5.i6340, 31 - %rd.i6342 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 - store i32 %and.i.i6341, ptr %rd.i6342, align 4 - %shr.i6.i6343 = lshr i32 %insn, 15 - %and.i7.i6344 = and i32 %shr.i6.i6343, 31 - %rs1.i6345 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6344, ptr %rs1.i6345, align 4 + %shr.i.i6321 = lshr i32 %insn, 20 + store i32 %shr.i.i6321, ptr %u, align 4 + %shr.i5.i6322 = lshr i32 %insn, 7 + %and.i.i6323 = and i32 %shr.i5.i6322, 31 + %rd.i6324 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 + store i32 %and.i.i6323, ptr %rd.i6324, align 4 + %shr.i6.i6325 = lshr i32 %insn, 15 + %and.i7.i6326 = and i32 %shr.i6.i6325, 31 + %rs1.i6327 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6326, ptr %rs1.i6327, align 4 call fastcc void @trans_csrrwi(ptr noundef %ctx, ptr noundef nonnull %u) br label %return sw.bb3721: ; preds = %sw.bb3519 - %shr.i.i6346 = lshr i32 %insn, 20 - store i32 %shr.i.i6346, ptr %u, align 4 - %shr.i5.i6347 = lshr i32 %insn, 7 - %and.i.i6348 = and i32 %shr.i5.i6347, 31 - %rd.i6349 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 - store i32 %and.i.i6348, ptr %rd.i6349, align 4 - %shr.i6.i6350 = lshr i32 %insn, 15 - %and.i7.i6351 = and i32 %shr.i6.i6350, 31 - %rs1.i6352 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6351, ptr %rs1.i6352, align 4 + %shr.i.i6328 = lshr i32 %insn, 20 + store i32 %shr.i.i6328, ptr %u, align 4 + %shr.i5.i6329 = lshr i32 %insn, 7 + %and.i.i6330 = and i32 %shr.i5.i6329, 31 + %rd.i6331 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 + store i32 %and.i.i6330, ptr %rd.i6331, align 4 + %shr.i6.i6332 = lshr i32 %insn, 15 + %and.i7.i6333 = and i32 %shr.i6.i6332, 31 + %rs1.i6334 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6333, ptr %rs1.i6334, align 4 call fastcc void @trans_csrrsi(ptr noundef %ctx, ptr noundef nonnull %u) br label %return sw.bb3725: ; preds = %sw.bb3519 - %shr.i.i6353 = lshr i32 %insn, 20 - store i32 %shr.i.i6353, ptr %u, align 4 - %shr.i5.i6354 = lshr i32 %insn, 7 - %and.i.i6355 = and i32 %shr.i5.i6354, 31 - %rd.i6356 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 - store i32 %and.i.i6355, ptr %rd.i6356, align 4 - %shr.i6.i6357 = lshr i32 %insn, 15 - %and.i7.i6358 = and i32 %shr.i6.i6357, 31 - %rs1.i6359 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6358, ptr %rs1.i6359, align 4 + %shr.i.i6335 = lshr i32 %insn, 20 + store i32 %shr.i.i6335, ptr %u, align 4 + %shr.i5.i6336 = lshr i32 %insn, 7 + %and.i.i6337 = and i32 %shr.i5.i6336, 31 + %rd.i6338 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 2 + store i32 %and.i.i6337, ptr %rd.i6338, align 4 + %shr.i6.i6339 = lshr i32 %insn, 15 + %and.i7.i6340 = and i32 %shr.i6.i6339, 31 + %rs1.i6341 = getelementptr inbounds %struct.arg_decode_insn3216, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6340, ptr %rs1.i6341, align 4 call fastcc void @trans_csrrci(ptr noundef %ctx, ptr noundef nonnull %u) br label %return -sw.bb3519.unreachabledefault: ; preds = %sw.bb3519 - unreachable - sw.bb3730: ; preds = %entry %and3731 = and i32 %insn, -33525760 %294 = add i32 %and3731, 2113921024 @@ -17125,6 +17100,40 @@ sw.bb3730: ; preds = %entry ] sw.bb3732: ; preds = %sw.bb3730 + %shr.i.i6342 = lshr i32 %insn, 20 + %and.i.i6343 = and i32 %shr.i.i6342, 31 + %rs2.i6344 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6343, ptr %rs2.i6344, align 4 + store i32 1, ptr %u, align 4 + %shr.i6.i6345 = lshr i32 %insn, 7 + %and.i7.i6346 = and i32 %shr.i6.i6345, 31 + %rd.i6347 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6346, ptr %rd.i6347, align 4 + %shr.i8.i6348 = lshr i32 %insn, 15 + %and.i9.i6349 = and i32 %shr.i8.i6348, 31 + %rs1.i6350 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i6349, ptr %rs1.i6350, align 4 + %call3733 = call fastcc zeroext i1 @trans_vsm3me_vv(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call3733, label %return, label %sw.epilog3868 + +sw.bb3736: ; preds = %sw.bb3730 + %shr.i.i6351 = lshr i32 %insn, 20 + %and.i.i6352 = and i32 %shr.i.i6351, 31 + %rs2.i6353 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6352, ptr %rs2.i6353, align 4 + store i32 1, ptr %u, align 4 + %shr.i6.i6354 = lshr i32 %insn, 7 + %and.i7.i6355 = and i32 %shr.i6.i6354, 31 + %rd.i6356 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6355, ptr %rd.i6356, align 4 + %shr.i8.i6357 = lshr i32 %insn, 15 + %and.i9.i6358 = and i32 %shr.i8.i6357, 31 + %rs1.i6359 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i6358, ptr %rs1.i6359, align 4 + %call3737 = call fastcc zeroext i1 @trans_vsm4k_vi(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call3737, label %return, label %sw.epilog3868 + +sw.bb3740: ; preds = %sw.bb3730 %shr.i.i6360 = lshr i32 %insn, 20 %and.i.i6361 = and i32 %shr.i.i6360, 31 %rs2.i6362 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 @@ -17138,53 +17147,19 @@ sw.bb3732: ; preds = %sw.bb3730 %and.i9.i6367 = and i32 %shr.i8.i6366, 31 %rs1.i6368 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 store i32 %and.i9.i6367, ptr %rs1.i6368, align 4 - %call3733 = call fastcc zeroext i1 @trans_vsm3me_vv(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call3733, label %return, label %sw.epilog3868 - -sw.bb3736: ; preds = %sw.bb3730 - %shr.i.i6369 = lshr i32 %insn, 20 - %and.i.i6370 = and i32 %shr.i.i6369, 31 - %rs2.i6371 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6370, ptr %rs2.i6371, align 4 - store i32 1, ptr %u, align 4 - %shr.i6.i6372 = lshr i32 %insn, 7 - %and.i7.i6373 = and i32 %shr.i6.i6372, 31 - %rd.i6374 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6373, ptr %rd.i6374, align 4 - %shr.i8.i6375 = lshr i32 %insn, 15 - %and.i9.i6376 = and i32 %shr.i8.i6375, 31 - %rs1.i6377 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i6376, ptr %rs1.i6377, align 4 - %call3737 = call fastcc zeroext i1 @trans_vsm4k_vi(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call3737, label %return, label %sw.epilog3868 - -sw.bb3740: ; preds = %sw.bb3730 - %shr.i.i6378 = lshr i32 %insn, 20 - %and.i.i6379 = and i32 %shr.i.i6378, 31 - %rs2.i6380 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6379, ptr %rs2.i6380, align 4 - store i32 1, ptr %u, align 4 - %shr.i6.i6381 = lshr i32 %insn, 7 - %and.i7.i6382 = and i32 %shr.i6.i6381, 31 - %rd.i6383 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6382, ptr %rd.i6383, align 4 - %shr.i8.i6384 = lshr i32 %insn, 15 - %and.i9.i6385 = and i32 %shr.i8.i6384, 31 - %rs1.i6386 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i6385, ptr %rs1.i6386, align 4 %call3741 = call fastcc zeroext i1 @trans_vaeskf1_vi(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3741, label %return, label %sw.epilog3868 sw.bb3744: ; preds = %sw.bb3730 - %shr.i.i6387 = lshr i32 %insn, 20 - %and.i.i6388 = and i32 %shr.i.i6387, 31 - %rs2.i6389 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i6388, ptr %rs2.i6389, align 4 + %shr.i.i6369 = lshr i32 %insn, 20 + %and.i.i6370 = and i32 %shr.i.i6369, 31 + %rs2.i6371 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i6370, ptr %rs2.i6371, align 4 store i32 1, ptr %u, align 4 %shr.i4.i = lshr i32 %insn, 7 %and.i5.i = and i32 %shr.i4.i, 31 - %rd.i6390 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i5.i, ptr %rd.i6390, align 4 + %rd.i6372 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i5.i, ptr %rd.i6372, align 4 %shr3745 = lshr i32 %insn, 15 %and3746 = and i32 %shr3745, 31 switch i32 %and3746, label %sw.epilog3868 [ @@ -17221,15 +17196,15 @@ sw.bb3767: ; preds = %sw.bb3744 br i1 %call3768, label %return, label %sw.epilog3868 sw.bb3772: ; preds = %sw.bb3730 - %shr.i.i6391 = lshr i32 %insn, 20 - %and.i.i6392 = and i32 %shr.i.i6391, 31 - %rs2.i6393 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 - store i32 %and.i.i6392, ptr %rs2.i6393, align 4 + %shr.i.i6373 = lshr i32 %insn, 20 + %and.i.i6374 = and i32 %shr.i.i6373, 31 + %rs2.i6375 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 2 + store i32 %and.i.i6374, ptr %rs2.i6375, align 4 store i32 1, ptr %u, align 4 - %shr.i4.i6394 = lshr i32 %insn, 7 - %and.i5.i6395 = and i32 %shr.i4.i6394, 31 - %rd.i6396 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 - store i32 %and.i5.i6395, ptr %rd.i6396, align 4 + %shr.i4.i6376 = lshr i32 %insn, 7 + %and.i5.i6377 = and i32 %shr.i4.i6376, 31 + %rd.i6378 = getelementptr inbounds %struct.arg_rmr, ptr %u, i64 0, i32 1 + store i32 %and.i5.i6377, ptr %rd.i6378, align 4 %shr3773 = lshr i32 %insn, 15 %and3774 = and i32 %shr3773, 31 switch i32 %and3774, label %sw.epilog3868 [ @@ -17266,6 +17241,40 @@ sw.bb3795: ; preds = %sw.bb3772 br i1 %call3796, label %return, label %sw.epilog3868 sw.bb3800: ; preds = %sw.bb3730 + %shr.i.i6379 = lshr i32 %insn, 20 + %and.i.i6380 = and i32 %shr.i.i6379, 31 + %rs2.i6381 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6380, ptr %rs2.i6381, align 4 + store i32 1, ptr %u, align 4 + %shr.i6.i6382 = lshr i32 %insn, 7 + %and.i7.i6383 = and i32 %shr.i6.i6382, 31 + %rd.i6384 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6383, ptr %rd.i6384, align 4 + %shr.i8.i6385 = lshr i32 %insn, 15 + %and.i9.i6386 = and i32 %shr.i8.i6385, 31 + %rs1.i6387 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i6386, ptr %rs1.i6387, align 4 + %call3801 = call fastcc zeroext i1 @trans_vaeskf2_vi(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call3801, label %return, label %sw.epilog3868 + +sw.bb3804: ; preds = %sw.bb3730 + %shr.i.i6388 = lshr i32 %insn, 20 + %and.i.i6389 = and i32 %shr.i.i6388, 31 + %rs2.i6390 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 + store i32 %and.i.i6389, ptr %rs2.i6390, align 4 + store i32 1, ptr %u, align 4 + %shr.i6.i6391 = lshr i32 %insn, 7 + %and.i7.i6392 = and i32 %shr.i6.i6391, 31 + %rd.i6393 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 + store i32 %and.i7.i6392, ptr %rd.i6393, align 4 + %shr.i8.i6394 = lshr i32 %insn, 15 + %and.i9.i6395 = and i32 %shr.i8.i6394, 31 + %rs1.i6396 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 + store i32 %and.i9.i6395, ptr %rs1.i6396, align 4 + %call3805 = call fastcc zeroext i1 @trans_vsm3c_vi(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call3805, label %return, label %sw.epilog3868 + +sw.bb3808: ; preds = %sw.bb3730 %shr.i.i6397 = lshr i32 %insn, 20 %and.i.i6398 = and i32 %shr.i.i6397, 31 %rs2.i6399 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 @@ -17279,10 +17288,10 @@ sw.bb3800: ; preds = %sw.bb3730 %and.i9.i6404 = and i32 %shr.i8.i6403, 31 %rs1.i6405 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 store i32 %and.i9.i6404, ptr %rs1.i6405, align 4 - %call3801 = call fastcc zeroext i1 @trans_vaeskf2_vi(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call3801, label %return, label %sw.epilog3868 + %call3809 = call fastcc zeroext i1 @trans_vghsh_vv(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call3809, label %return, label %sw.epilog3868 -sw.bb3804: ; preds = %sw.bb3730 +sw.bb3812: ; preds = %sw.bb3730 %shr.i.i6406 = lshr i32 %insn, 20 %and.i.i6407 = and i32 %shr.i.i6406, 31 %rs2.i6408 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 @@ -17296,10 +17305,10 @@ sw.bb3804: ; preds = %sw.bb3730 %and.i9.i6413 = and i32 %shr.i8.i6412, 31 %rs1.i6414 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 store i32 %and.i9.i6413, ptr %rs1.i6414, align 4 - %call3805 = call fastcc zeroext i1 @trans_vsm3c_vi(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call3805, label %return, label %sw.epilog3868 + %call3813 = call fastcc zeroext i1 @trans_vsha2ms_vv(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call3813, label %return, label %sw.epilog3868 -sw.bb3808: ; preds = %sw.bb3730 +sw.bb3816: ; preds = %sw.bb3730 %shr.i.i6415 = lshr i32 %insn, 20 %and.i.i6416 = and i32 %shr.i.i6415, 31 %rs2.i6417 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 @@ -17313,10 +17322,10 @@ sw.bb3808: ; preds = %sw.bb3730 %and.i9.i6422 = and i32 %shr.i8.i6421, 31 %rs1.i6423 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 store i32 %and.i9.i6422, ptr %rs1.i6423, align 4 - %call3809 = call fastcc zeroext i1 @trans_vghsh_vv(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call3809, label %return, label %sw.epilog3868 + %call3817 = call fastcc zeroext i1 @trans_vsha2ch_vv(ptr noundef %ctx, ptr noundef nonnull %u) + br i1 %call3817, label %return, label %sw.epilog3868 -sw.bb3812: ; preds = %sw.bb3730 +sw.bb3820: ; preds = %sw.bb3730 %shr.i.i6424 = lshr i32 %insn, 20 %and.i.i6425 = and i32 %shr.i.i6424, 31 %rs2.i6426 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 @@ -17330,62 +17339,28 @@ sw.bb3812: ; preds = %sw.bb3730 %and.i9.i6431 = and i32 %shr.i8.i6430, 31 %rs1.i6432 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 store i32 %and.i9.i6431, ptr %rs1.i6432, align 4 - %call3813 = call fastcc zeroext i1 @trans_vsha2ms_vv(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call3813, label %return, label %sw.epilog3868 - -sw.bb3816: ; preds = %sw.bb3730 - %shr.i.i6433 = lshr i32 %insn, 20 - %and.i.i6434 = and i32 %shr.i.i6433, 31 - %rs2.i6435 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6434, ptr %rs2.i6435, align 4 - store i32 1, ptr %u, align 4 - %shr.i6.i6436 = lshr i32 %insn, 7 - %and.i7.i6437 = and i32 %shr.i6.i6436, 31 - %rd.i6438 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6437, ptr %rd.i6438, align 4 - %shr.i8.i6439 = lshr i32 %insn, 15 - %and.i9.i6440 = and i32 %shr.i8.i6439, 31 - %rs1.i6441 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i6440, ptr %rs1.i6441, align 4 - %call3817 = call fastcc zeroext i1 @trans_vsha2ch_vv(ptr noundef %ctx, ptr noundef nonnull %u) - br i1 %call3817, label %return, label %sw.epilog3868 - -sw.bb3820: ; preds = %sw.bb3730 - %shr.i.i6442 = lshr i32 %insn, 20 - %and.i.i6443 = and i32 %shr.i.i6442, 31 - %rs2.i6444 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 3 - store i32 %and.i.i6443, ptr %rs2.i6444, align 4 - store i32 1, ptr %u, align 4 - %shr.i6.i6445 = lshr i32 %insn, 7 - %and.i7.i6446 = and i32 %shr.i6.i6445, 31 - %rd.i6447 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 1 - store i32 %and.i7.i6446, ptr %rd.i6447, align 4 - %shr.i8.i6448 = lshr i32 %insn, 15 - %and.i9.i6449 = and i32 %shr.i8.i6448, 31 - %rs1.i6450 = getelementptr inbounds %struct.arg_rmrr, ptr %u, i64 0, i32 2 - store i32 %and.i9.i6449, ptr %rs1.i6450, align 4 %call3821 = call fastcc zeroext i1 @trans_vsha2cl_vv(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call3821, label %return, label %sw.epilog3868 -sw.epilog3868.sink.split.sink.split: ; preds = %if.then.i4313, %if.then.i4221 - %cfg_ptr.i4317 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %296 = load ptr, ptr %cfg_ptr.i4317, align 8 - %ext_zfinx.i4318 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %296, i64 0, i32 45 - %297 = load i8, ptr %ext_zfinx.i4318, align 1 +sw.epilog3868.sink.split.sink.split: ; preds = %if.then.i4295, %if.then.i4203 + %cfg_ptr.i4299 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %296 = load ptr, ptr %cfg_ptr.i4299, align 8 + %ext_zfinx.i4300 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %296, i64 0, i32 45 + %297 = load i8, ptr %ext_zfinx.i4300, align 1 %298 = and i8 %297, 1 br label %sw.epilog3868.sink.split -sw.epilog3868.sink.split: ; preds = %sw.epilog3868.sink.split.sink.split, %if.then.i4313, %if.then.i4221 - %frombool.i4320.sink = phi i8 [ 0, %if.then.i4221 ], [ 0, %if.then.i4313 ], [ %298, %sw.epilog3868.sink.split.sink.split ] - %virt_inst_excp.i4321 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 15 - store i8 %frombool.i4320.sink, ptr %virt_inst_excp.i4321, align 4 +sw.epilog3868.sink.split: ; preds = %sw.epilog3868.sink.split.sink.split, %if.then.i4295, %if.then.i4203 + %frombool.i4302.sink = phi i8 [ 0, %if.then.i4203 ], [ 0, %if.then.i4295 ], [ %298, %sw.epilog3868.sink.split.sink.split ] + %virt_inst_excp.i4303 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 15 + store i8 %frombool.i4302.sink, ptr %virt_inst_excp.i4303, align 4 br label %sw.epilog3868 sw.epilog3868: ; preds = %sw.bb3519, %sw.epilog3868.sink.split, %sw.bb273, %sw.bb269, %sw.bb265, %sw.bb261, %if.then258, %sw.bb255, %sw.bb3587, %sw.bb3583, %sw.bb1291, %sw.bb1287, %sw.bb1283, %if.end1279, %sw.bb1268, %sw.bb1264, %sw.bb1260, %sw.bb1256, %sw.bb1252, %sw.bb1220, %sw.bb1212, %sw.bb1204, %sw.bb1192, %sw.bb1172, %sw.bb1164, %sw.bb1156, %sw.bb1152, %sw.bb1136, %sw.bb1120, %sw.bb1112, %sw.bb992, %sw.bb976, %sw.bb968, %sw.bb953, %sw.bb945, %sw.bb937, %sw.bb929, %sw.bb921, %sw.bb913, %sw.bb497, %sw.bb441, %sw.bb397, %sw.bb369, %sw.bb349, %sw.bb1856, %sw.bb1702, %sw.bb1197, %sw.bb1185, %sw.bb1048, %sw.bb1040, %sw.bb783, %sw.bb775, %sw.bb767, %sw.bb759, %sw.bb751, %sw.bb743, %sw.bb735, %sw.bb727, %sw.bb714, %sw.bb703, %sw.bb695, %sw.bb576, %sw.bb504, %sw.bb432, %sw.bb344, %sw.bb340, %sw.bb205, %sw.bb159, %sw.bb113, %sw.bb48, %sw.bb, %sw.bb3730, %sw.bb3732, %sw.bb3736, %sw.bb3740, %sw.bb3767, %sw.bb3763, %sw.bb3759, %sw.bb3755, %sw.bb3751, %sw.bb3747, %sw.bb3744, %sw.bb3795, %sw.bb3791, %sw.bb3787, %sw.bb3783, %sw.bb3779, %sw.bb3775, %sw.bb3772, %sw.bb3800, %sw.bb3804, %sw.bb3808, %sw.bb3812, %sw.bb3816, %sw.bb3820, %sw.bb3580, %trans_sfence_w_inval.exit, %trans_sfence_inval_ir.exit, %sw.bb3524, %sw.bb3539, %sw.bb3543, %sw.bb3522, %sw.bb3507, %sw.bb3479, %sw.bb2027, %sw.bb2023, %sw.bb2019, %sw.bb2015, %sw.bb2011, %sw.bb2007, %sw.bb1994, %sw.bb2001, %sw.bb1998, %sw.bb1987, %sw.bb1983, %sw.bb1979, %sw.bb1971, %sw.bb1974, %sw.bb1967, %sw.bb1959, %sw.bb1962, %sw.bb1955, %sw.bb1951, %sw.bb1947, %sw.bb1943, %sw.bb1939, %sw.bb1935, %sw.bb1931, %sw.bb1927, %sw.bb1923, %sw.bb1919, %sw.bb1915, %sw.bb1911, %sw.bb1908, %sw.bb2214, %sw.bb2210, %sw.bb2206, %sw.bb2202, %sw.bb2182, %sw.bb2185, %sw.bb2189, %sw.bb2193, %sw.bb2197, %sw.bb2086, %sw.bb2089, %sw.bb2093, %sw.bb2097, %sw.bb2101, %sw.bb2105, %sw.bb2109, %sw.bb2113, %sw.bb2117, %sw.bb2121, %sw.bb2125, %sw.bb2129, %sw.bb2133, %sw.bb2137, %sw.bb2141, %sw.bb2145, %sw.bb2149, %sw.bb2153, %sw.bb2157, %sw.bb2161, %sw.bb2165, %sw.bb2169, %sw.bb2173, %sw.bb2177, %sw.bb2079, %sw.bb2081, %sw.bb2075, %sw.bb2071, %sw.bb2067, %sw.bb2063, %sw.bb2059, %sw.bb2055, %sw.bb2051, %sw.bb2047, %sw.bb2043, %sw.bb2039, %sw.bb2035, %sw.bb2032, %sw.bb2410, %sw.bb2406, %sw.bb2402, %sw.bb2398, %sw.bb2394, %sw.bb2390, %sw.bb2386, %sw.bb2382, %sw.bb2378, %sw.bb2350, %sw.bb2353, %sw.bb2357, %sw.bb2361, %sw.bb2365, %sw.bb2372, %sw.bb2369, %sw.bb2298, %sw.bb2301, %sw.bb2305, %sw.bb2309, %sw.bb2313, %sw.bb2317, %sw.bb2321, %sw.bb2325, %sw.bb2329, %sw.bb2333, %sw.bb2337, %sw.bb2341, %sw.bb2345, %sw.bb2278, %sw.bb2284, %sw.bb2281, %sw.bb2289, %sw.bb2293, %sw.bb2274, %sw.bb2270, %sw.bb2266, %sw.bb2262, %sw.bb2258, %sw.bb2254, %sw.bb2250, %sw.bb2246, %sw.bb2242, %sw.bb2238, %sw.bb2234, %sw.bb2230, %sw.bb2226, %sw.bb2222, %sw.bb2219, %sw.bb2537, %sw.bb2541, %sw.bb2525, %sw.bb2529, %sw.bb2513, %sw.bb2517, %sw.bb2494, %sw.bb2497, %sw.bb2504, %sw.bb2501, %sw.bb2490, %sw.bb2480, %sw.bb2477, %sw.bb2485, %sw.bb2465, %sw.bb2469, %sw.bb2454, %sw.bb2457, %sw.bb2445, %sw.bb2449, %sw.bb2434, %sw.bb2437, %sw.bb2426, %sw.bb2429, %sw.bb2418, %sw.bb2421, %sw.bb2415, %sw.bb2682, %sw.bb2678, %sw.bb2674, %sw.bb2670, %sw.bb2666, %sw.bb2662, %sw.bb2658, %sw.bb2654, %sw.bb2641, %sw.bb2648, %sw.bb2645, %sw.bb2634, %sw.bb2630, %sw.bb2626, %sw.bb2618, %sw.bb2621, %sw.bb2614, %sw.bb2606, %sw.bb2609, %sw.bb2602, %sw.bb2598, %sw.bb2594, %sw.bb2590, %sw.bb2586, %sw.bb2582, %sw.bb2578, %sw.bb2574, %sw.bb2570, %sw.bb2566, %sw.bb2562, %sw.bb2558, %sw.bb2554, %sw.bb2550, %sw.bb2547, %sw.bb2770, %sw.bb2766, %sw.bb2762, %sw.bb2758, %sw.bb2754, %sw.bb2750, %sw.bb2737, %sw.bb2744, %sw.bb2741, %sw.bb2726, %sw.bb2729, %sw.bb2722, %sw.bb2718, %sw.bb2714, %sw.bb2710, %sw.bb2706, %sw.bb2702, %sw.bb2698, %sw.bb2694, %sw.bb2690, %sw.bb2687, %sw.bb2810, %sw.bb2813, %sw.bb2806, %sw.bb2802, %sw.bb2798, %sw.bb2794, %sw.bb2790, %sw.bb2786, %sw.bb2782, %sw.bb2778, %sw.bb2775, %sw.bb2819, %sw.bb2890, %sw.bb2886, %sw.bb2882, %sw.bb2878, %sw.bb2874, %sw.bb2870, %sw.bb2866, %sw.bb2862, %sw.bb2858, %sw.bb2854, %sw.bb2850, %sw.bb2846, %sw.bb2842, %sw.bb2838, %sw.bb2834, %sw.bb2830, %sw.bb2826, %sw.bb2823, %sw.bb2982, %sw.bb2978, %sw.bb2974, %sw.bb2970, %sw.bb2966, %sw.bb2962, %sw.bb2958, %sw.bb2954, %sw.bb2950, %sw.bb2946, %sw.bb2942, %sw.bb2938, %sw.bb2934, %sw.bb2930, %sw.bb2926, %sw.bb2922, %sw.bb2918, %sw.bb2914, %sw.bb2910, %sw.bb2906, %sw.bb2902, %sw.bb2898, %sw.bb2895, %sw.bb3090, %sw.bb3086, %sw.bb3082, %sw.bb3078, %sw.bb3074, %sw.bb3070, %sw.bb3066, %sw.bb3062, %sw.bb3058, %sw.bb3054, %sw.bb3050, %sw.bb3046, %sw.bb3042, %sw.bb3038, %sw.bb3034, %sw.bb3030, %sw.bb3026, %sw.bb3022, %sw.bb3018, %sw.bb3014, %sw.bb3010, %sw.bb3006, %sw.bb3002, %sw.bb2998, %sw.bb2994, %sw.bb2990, %sw.bb2987, %sw.bb3161, %sw.bb3157, %sw.bb3153, %sw.bb3149, %sw.bb3145, %sw.bb3141, %sw.bb3137, %sw.bb3133, %sw.bb3129, %sw.bb3110, %sw.bb3112, %sw.bb3116, %sw.bb3120, %sw.bb3124, %sw.bb3106, %sw.bb3102, %sw.bb3098, %sw.bb3095, %sw.bb3225, %sw.bb3221, %sw.bb3217, %sw.bb3213, %sw.bb3209, %sw.bb3205, %sw.bb3201, %sw.bb3197, %sw.bb3193, %sw.bb3189, %sw.bb3185, %sw.bb3181, %sw.bb3177, %sw.bb3173, %sw.bb3169, %sw.bb3166, %sw.bb3317, %sw.bb3313, %sw.bb3309, %sw.bb3305, %sw.bb3301, %sw.bb3297, %sw.bb3293, %sw.bb3289, %sw.bb3285, %sw.bb3281, %sw.bb3277, %sw.bb3273, %sw.bb3269, %sw.bb3265, %sw.bb3261, %sw.bb3257, %sw.bb3253, %sw.bb3249, %sw.bb3245, %sw.bb3241, %sw.bb3237, %sw.bb3233, %sw.bb3230, %sw.bb3429, %sw.bb3425, %sw.bb3421, %sw.bb3417, %sw.bb3413, %sw.bb3409, %sw.bb3405, %sw.bb3401, %sw.bb3397, %sw.bb3393, %sw.bb3389, %sw.bb3385, %sw.bb3381, %sw.bb3377, %sw.bb3373, %sw.bb3369, %sw.bb3365, %sw.bb3361, %sw.bb3357, %sw.bb3353, %sw.bb3349, %sw.bb3345, %sw.bb3341, %sw.bb3337, %sw.bb3333, %sw.bb3329, %sw.bb3325, %sw.bb3322, %sw.bb3445, %sw.bb3437, %sw.bb3440, %sw.bb1376, %sw.bb1379, %sw.bb1383, %sw.bb1387, %sw.bb1391, %sw.bb1395, %sw.bb1399, %sw.bb1403, %sw.bb1407, %sw.bb1411, %sw.bb1415, %sw.bb1419, %sw.bb1423, %sw.bb1438, %sw.bb1434, %sw.bb1430, %sw.bb1427, %sw.bb1454, %sw.bb1450, %sw.bb1446, %sw.bb1443, %sw.bb1470, %sw.bb1466, %sw.bb1462, %sw.bb1459, %sw.bb1490, %sw.bb1486, %sw.bb1482, %sw.bb1478, %sw.bb1475, %sw.bb1510, %sw.bb1506, %sw.bb1502, %sw.bb1498, %sw.bb1495, %sw.bb1530, %sw.bb1526, %sw.bb1522, %sw.bb1518, %sw.bb1515, %sw.bb1554, %sw.bb1550, %sw.bb1546, %sw.bb1542, %sw.bb1538, %sw.bb1535, %sw.bb1574, %sw.bb1570, %sw.bb1566, %sw.bb1562, %sw.bb1559, %sw.bb1598, %sw.bb1594, %sw.bb1590, %sw.bb1586, %sw.bb1582, %sw.bb1579, %sw.bb1606, %sw.bb1603, %sw.bb1614, %sw.bb1611, %sw.bb1622, %sw.bb1619, %sw.bb1646, %sw.bb1642, %sw.bb1638, %sw.bb1634, %sw.bb1630, %sw.bb1627, %sw.bb1670, %sw.bb1666, %sw.bb1662, %sw.bb1658, %sw.bb1654, %sw.bb1651, %sw.bb1694, %sw.bb1690, %sw.bb1686, %sw.bb1682, %sw.bb1678, %sw.bb1675, %sw.bb1699, %sw.bb1722, %sw.bb1718, %sw.bb1714, %sw.bb1710, %sw.bb1707, %sw.bb1746, %sw.bb1749, %sw.bb1742, %sw.bb1738, %sw.bb1734, %sw.bb1730, %sw.bb1727, %sw.bb1770, %sw.bb1766, %sw.bb1762, %sw.bb1758, %sw.bb1755, %sw.bb1790, %sw.bb1786, %sw.bb1782, %sw.bb1778, %sw.bb1775, %sw.bb1810, %sw.bb1806, %sw.bb1802, %sw.bb1798, %sw.bb1795, %sw.bb1830, %sw.bb1826, %sw.bb1822, %sw.bb1818, %sw.bb1815, %sw.bb1841, %sw.bb1837, %sw.bb1835, %sw.bb1852, %sw.bb1848, %sw.bb1846, %sw.bb1867, %sw.bb1863, %sw.bb1861, %sw.bb1878, %sw.bb1874, %sw.bb1872, %sw.bb1889, %sw.bb1885, %sw.bb1883, %sw.bb1900, %sw.bb1896, %sw.bb1894, %sw.bb1360, %sw.bb1363, %sw.bb1367, %sw.bb1371, %sw.bb1344, %sw.bb1347, %sw.bb1351, %sw.bb1355, %sw.bb1328, %sw.bb1331, %sw.bb1335, %sw.bb1339, %sw.bb1312, %sw.bb1315, %sw.bb1319, %sw.bb1323, %sw.bb1234, %sw.bb1236, %sw.bb1240, %sw.bb1244, %sw.bb1248, %trans_divw.exit, %trans_divuw.exit, %trans_remw.exit, %trans_remuw.exit, %trans_add_uw.exit, %trans_packw.exit, %trans_sh1add_uw.exit, %trans_sh2add_uw.exit, %trans_sh3add_uw.exit, %sw.bb1295, %sw.bb1299, %sw.bb1303, %sw.bb1307, %sw.bb792, %sw.bb801, %sw.bb797, %sw.bb794, %sw.bb809, %sw.bb806, %sw.bb817, %sw.bb814, %sw.bb825, %sw.bb822, %sw.bb837, %sw.bb830, %sw.bb849, %sw.bb845, %sw.bb842, %sw.bb861, %sw.bb854, %sw.bb873, %sw.bb866, %sw.bb881, %sw.bb878, %sw.bb889, %sw.bb886, %sw.bb897, %sw.bb894, %sw.bb905, %sw.bb902, %trans_div.exit, %sw.bb910, %trans_divu.exit, %sw.bb918, %trans_rem.exit, %sw.bb926, %trans_remu.exit, %sw.bb934, %trans_bclr.exit, %sw.bb942, %trans_pack.exit, %sw.bb950, %trans_bext.exit, %sw.bb965, %trans_packh.exit, %sw.bb973, %sw.bb984, %sw.bb981, %trans_clmulr.exit, %sw.bb989, %sw.bb1000, %sw.bb997, %sw.bb1008, %sw.bb1005, %sw.bb1016, %sw.bb1013, %sw.bb1024, %sw.bb1021, %sw.bb1032, %sw.bb1029, %sw.bb1037, %sw.bb1045, %sw.bb1104, %sw.bb1101, %trans_sh1add.exit, %sw.bb1109, %trans_sh2add.exit, %sw.bb1117, %sw.bb1128, %sw.bb1125, %trans_sh3add.exit, %sw.bb1133, %trans_binv.exit, %trans_bset.exit, %sw.bb1149, %trans_xperm4.exit, %sw.bb1161, %trans_xperm8.exit, %sw.bb1169, %trans_aes64es.exit, %sw.bb1189, %trans_aes64esm.exit, %sw.bb1201, %trans_aes64ds.exit, %sw.bb1209, %sw.bb1224, %trans_aes64dsm.exit, %sw.bb1217, %sw.bb693, %sw.bb711, %sw.bb719, %sw.bb559, %sw.bb606, %sw.bb593, %sw.bb595, %sw.bb574, %sw.bb580, %sw.bb584, %sw.bb588, %sw.bb570, %sw.bb567, %sw.bb601, %sw.bb562, %sw.bb611, %sw.bb615, %sw.bb619, %sw.bb641, %sw.bb631, %sw.bb628, %sw.bb636, %sw.bb623, %sw.bb664, %sw.bb654, %sw.bb651, %sw.bb659, %sw.bb646, %sw.bb687, %sw.bb677, %sw.bb674, %sw.bb682, %sw.bb669, %sw.bb535, %sw.bb479, %sw.bb482, %sw.bb501, %sw.bb508, %sw.bb512, %trans_slli_uw.exit, %sw.bb489, %sw.bb492, %sw.bb486, %sw.bb529, %sw.bb525, %sw.bb521, %sw.bb518, %sw.bb286, %trans_binvi.exit, %sw.bb373, %sw.bb376, %sw.bb380, %sw.bb384, %sw.bb388, %sw.bb392, %trans_bclri.exit, %sw.bb353, %sw.bb359, %sw.bb356, %sw.bb364, %trans_bseti.exit, %sw.bb305, %sw.bb308, %sw.bb312, %sw.bb316, %sw.bb320, %sw.bb324, %sw.bb328, %sw.bb332, %sw.bb336, %sw.bb293, %sw.bb290, %sw.bb402, %sw.bb406, %sw.bb449, %sw.bb452, %sw.bb460, %sw.bb445, %trans_bexti.exit, %sw.bb437, %sw.bb429, %sw.bb417, %sw.bb414, %sw.bb238, %sw.bb251, %sw.bb31, %sw.bb82, %sw.bb72, %sw.bb65, %sw.bb67, %sw.bb46, %sw.bb52, %sw.bb56, %sw.bb60, %sw.bb42, %sw.bb39, %sw.bb77, %sw.bb34, %sw.bb87, %sw.bb91, %sw.bb95, %sw.bb140, %sw.bb130, %sw.bb111, %sw.bb117, %sw.bb121, %sw.bb125, %sw.bb107, %sw.bb104, %sw.bb135, %sw.bb99, %sw.bb186, %sw.bb176, %sw.bb157, %sw.bb163, %sw.bb167, %sw.bb171, %sw.bb153, %sw.bb150, %sw.bb181, %sw.bb145, %sw.bb232, %sw.bb222, %sw.bb203, %sw.bb209, %sw.bb213, %sw.bb217, %sw.bb199, %sw.bb196, %sw.bb227, %sw.bb191, %entry br label %return -return: ; preds = %if.then7.i.i, %sw.epilog.i.i3707, %sw.bb1230, %trans_sm4ks.exit.thread, %trans_sm4ed.exit.thread, %trans_czero_nez.exit.thread, %trans_czero_eqz.exit.thread, %trans_amomaxu_w.exit.thread, %trans_amominu_w.exit.thread, %trans_amomax_w.exit.thread, %trans_amomin_w.exit.thread, %trans_amoand_w.exit.thread, %trans_amoor_w.exit.thread, %trans_amoxor_w.exit.thread, %trans_sc_w.exit.thread, %trans_lr_w.exit.thread, %trans_amoswap_w.exit.thread, %trans_amoadd_w.exit.thread, %trans_vs1r_v.exit.thread, %trans_clzw.exit.thread, %if.then5.i.i, %sw.epilog.i.i, %gen_pc_plus_diff.exit.i, %trans_orc_b.exit.thread, %trans_sm3p1.exit.thread, %trans_sm3p0.exit.thread, %trans_vl1re64_v.exit.thread, %trans_vl1re32_v.exit.thread, %trans_vl1re16_v.exit.thread, %trans_vl1re8_v.exit.thread, %sw.bb3820, %sw.bb3816, %sw.bb3812, %sw.bb3808, %sw.bb3804, %sw.bb3800, %sw.bb3795, %sw.bb3791, %sw.bb3787, %sw.bb3783, %sw.bb3779, %sw.bb3775, %sw.bb3767, %sw.bb3763, %sw.bb3759, %sw.bb3755, %sw.bb3751, %sw.bb3747, %sw.bb3740, %sw.bb3736, %sw.bb3732, %trans_sfence_inval_ir.exit, %trans_sfence_w_inval.exit, %sw.bb3543, %sw.bb3539, %sw.bb3445, %sw.bb3440, %sw.bb3429, %sw.bb3425, %sw.bb3421, %sw.bb3417, %sw.bb3413, %sw.bb3409, %sw.bb3405, %sw.bb3401, %sw.bb3397, %sw.bb3393, %sw.bb3389, %sw.bb3385, %sw.bb3381, %sw.bb3377, %sw.bb3373, %sw.bb3369, %sw.bb3365, %sw.bb3361, %sw.bb3357, %sw.bb3353, %sw.bb3349, %sw.bb3345, %sw.bb3341, %sw.bb3337, %sw.bb3333, %sw.bb3329, %sw.bb3325, %sw.bb3317, %sw.bb3313, %sw.bb3309, %sw.bb3305, %sw.bb3301, %sw.bb3297, %sw.bb3293, %sw.bb3289, %sw.bb3285, %sw.bb3281, %sw.bb3277, %sw.bb3273, %sw.bb3269, %sw.bb3265, %sw.bb3261, %sw.bb3257, %sw.bb3253, %sw.bb3249, %sw.bb3245, %sw.bb3241, %sw.bb3237, %sw.bb3233, %sw.bb3225, %sw.bb3221, %sw.bb3217, %sw.bb3213, %sw.bb3209, %sw.bb3205, %sw.bb3201, %sw.bb3197, %sw.bb3193, %sw.bb3189, %sw.bb3185, %sw.bb3181, %sw.bb3177, %sw.bb3173, %sw.bb3169, %sw.bb3161, %sw.bb3157, %sw.bb3153, %sw.bb3149, %sw.bb3145, %sw.bb3141, %sw.bb3137, %sw.bb3133, %sw.bb3129, %sw.bb3124, %sw.bb3120, %sw.bb3116, %sw.bb3112, %sw.bb3106, %sw.bb3102, %sw.bb3098, %sw.bb3090, %sw.bb3086, %sw.bb3082, %sw.bb3078, %sw.bb3074, %sw.bb3070, %sw.bb3066, %sw.bb3062, %sw.bb3058, %sw.bb3054, %sw.bb3050, %sw.bb3046, %sw.bb3042, %sw.bb3038, %sw.bb3034, %sw.bb3030, %sw.bb3026, %sw.bb3022, %sw.bb3018, %sw.bb3014, %sw.bb3010, %sw.bb3006, %sw.bb3002, %sw.bb2998, %sw.bb2994, %sw.bb2990, %sw.bb2982, %sw.bb2978, %sw.bb2974, %sw.bb2970, %sw.bb2966, %sw.bb2962, %sw.bb2958, %sw.bb2954, %sw.bb2950, %sw.bb2946, %sw.bb2942, %sw.bb2938, %sw.bb2934, %sw.bb2930, %sw.bb2926, %sw.bb2922, %sw.bb2918, %sw.bb2914, %sw.bb2910, %sw.bb2906, %sw.bb2902, %sw.bb2898, %sw.bb2890, %sw.bb2886, %sw.bb2882, %sw.bb2878, %sw.bb2874, %sw.bb2870, %sw.bb2866, %sw.bb2862, %sw.bb2858, %sw.bb2854, %sw.bb2850, %sw.bb2846, %sw.bb2842, %sw.bb2838, %sw.bb2834, %sw.bb2830, %sw.bb2826, %sw.bb2819, %sw.bb2813, %sw.bb2806, %sw.bb2802, %sw.bb2798, %sw.bb2794, %sw.bb2790, %sw.bb2786, %sw.bb2782, %sw.bb2778, %sw.bb2770, %sw.bb2766, %sw.bb2762, %sw.bb2758, %sw.bb2754, %sw.bb2750, %sw.bb2744, %sw.bb2737, %sw.bb2729, %sw.bb2722, %sw.bb2718, %sw.bb2714, %sw.bb2710, %sw.bb2706, %sw.bb2702, %sw.bb2698, %sw.bb2694, %sw.bb2690, %sw.bb2682, %sw.bb2678, %sw.bb2674, %sw.bb2670, %sw.bb2666, %sw.bb2662, %sw.bb2658, %sw.bb2654, %sw.bb2648, %sw.bb2641, %sw.bb2634, %sw.bb2630, %sw.bb2626, %sw.bb2621, %sw.bb2614, %sw.bb2609, %sw.bb2602, %sw.bb2598, %sw.bb2594, %sw.bb2590, %sw.bb2586, %sw.bb2582, %sw.bb2578, %sw.bb2574, %sw.bb2570, %sw.bb2566, %sw.bb2562, %sw.bb2558, %sw.bb2554, %sw.bb2550, %sw.bb2541, %sw.bb2537, %sw.bb2529, %sw.bb2525, %sw.bb2517, %sw.bb2513, %sw.bb2504, %sw.bb2497, %sw.bb2490, %sw.bb2485, %sw.bb2480, %sw.bb2469, %sw.bb2465, %sw.bb2457, %sw.bb2449, %sw.bb2445, %sw.bb2437, %sw.bb2429, %sw.bb2421, %sw.bb2410, %sw.bb2406, %sw.bb2402, %sw.bb2398, %sw.bb2394, %sw.bb2390, %sw.bb2386, %sw.bb2382, %sw.bb2378, %sw.bb2372, %sw.bb2365, %sw.bb2361, %sw.bb2357, %sw.bb2353, %sw.bb2345, %sw.bb2341, %sw.bb2337, %sw.bb2333, %sw.bb2329, %sw.bb2325, %sw.bb2321, %sw.bb2317, %sw.bb2313, %sw.bb2309, %sw.bb2305, %sw.bb2301, %sw.bb2293, %sw.bb2289, %sw.bb2284, %sw.bb2274, %sw.bb2270, %sw.bb2266, %sw.bb2262, %sw.bb2258, %sw.bb2254, %sw.bb2250, %sw.bb2246, %sw.bb2242, %sw.bb2238, %sw.bb2234, %sw.bb2230, %sw.bb2226, %sw.bb2222, %sw.bb2214, %sw.bb2210, %sw.bb2206, %sw.bb2202, %sw.bb2197, %sw.bb2193, %sw.bb2189, %sw.bb2185, %sw.bb2177, %sw.bb2173, %sw.bb2169, %sw.bb2165, %sw.bb2161, %sw.bb2157, %sw.bb2153, %sw.bb2149, %sw.bb2145, %sw.bb2141, %sw.bb2137, %sw.bb2133, %sw.bb2129, %sw.bb2125, %sw.bb2121, %sw.bb2117, %sw.bb2113, %sw.bb2109, %sw.bb2105, %sw.bb2101, %sw.bb2097, %sw.bb2093, %sw.bb2089, %sw.bb2081, %sw.bb2075, %sw.bb2071, %sw.bb2067, %sw.bb2063, %sw.bb2059, %sw.bb2055, %sw.bb2051, %sw.bb2047, %sw.bb2043, %sw.bb2039, %sw.bb2035, %sw.bb2027, %sw.bb2023, %sw.bb2019, %sw.bb2015, %sw.bb2011, %sw.bb2007, %sw.bb2001, %sw.bb1994, %sw.bb1987, %sw.bb1983, %sw.bb1979, %sw.bb1974, %sw.bb1967, %sw.bb1962, %sw.bb1955, %sw.bb1951, %sw.bb1947, %sw.bb1943, %sw.bb1939, %sw.bb1935, %sw.bb1931, %sw.bb1927, %sw.bb1923, %sw.bb1919, %sw.bb1915, %sw.bb1911, %sw.bb1900, %sw.bb1896, %sw.bb1889, %sw.bb1885, %sw.bb1878, %sw.bb1874, %sw.bb1867, %sw.bb1863, %sw.bb1852, %sw.bb1848, %sw.bb1841, %sw.bb1837, %sw.bb1830, %sw.bb1826, %sw.bb1822, %sw.bb1818, %sw.bb1810, %sw.bb1806, %sw.bb1802, %sw.bb1798, %sw.bb1790, %sw.bb1786, %sw.bb1782, %sw.bb1778, %sw.bb1770, %sw.bb1766, %sw.bb1762, %sw.bb1758, %sw.bb1749, %sw.bb1742, %sw.bb1738, %sw.bb1734, %sw.bb1730, %sw.bb1722, %sw.bb1718, %sw.bb1714, %sw.bb1710, %sw.bb1694, %sw.bb1690, %sw.bb1686, %sw.bb1682, %sw.bb1678, %sw.bb1670, %sw.bb1666, %sw.bb1662, %sw.bb1658, %sw.bb1654, %sw.bb1646, %sw.bb1642, %sw.bb1638, %sw.bb1634, %sw.bb1630, %sw.bb1622, %sw.bb1614, %sw.bb1606, %sw.bb1598, %sw.bb1594, %sw.bb1590, %sw.bb1586, %sw.bb1582, %sw.bb1574, %sw.bb1570, %sw.bb1566, %sw.bb1562, %sw.bb1554, %sw.bb1550, %sw.bb1546, %sw.bb1542, %sw.bb1538, %sw.bb1530, %sw.bb1526, %sw.bb1522, %sw.bb1518, %sw.bb1510, %sw.bb1506, %sw.bb1502, %sw.bb1498, %sw.bb1490, %sw.bb1486, %sw.bb1482, %sw.bb1478, %sw.bb1470, %sw.bb1466, %sw.bb1462, %sw.bb1454, %sw.bb1450, %sw.bb1446, %sw.bb1438, %sw.bb1434, %sw.bb1430, %sw.bb1423, %sw.bb1419, %sw.bb1415, %sw.bb1411, %sw.bb1407, %sw.bb1403, %sw.bb1399, %sw.bb1395, %sw.bb1391, %sw.bb1387, %sw.bb1383, %sw.bb1379, %sw.bb1371, %sw.bb1367, %sw.bb1363, %sw.bb1355, %sw.bb1351, %sw.bb1347, %sw.bb1339, %sw.bb1335, %sw.bb1331, %sw.bb1323, %sw.bb1319, %sw.bb1315, %sw.bb1307, %sw.bb1303, %sw.bb1299, %sw.bb1295, %trans_sh3add_uw.exit, %trans_sh2add_uw.exit, %trans_sh1add_uw.exit, %trans_packw.exit, %if.then1275, %trans_add_uw.exit, %trans_remuw.exit, %trans_remw.exit, %trans_divuw.exit, %trans_divw.exit, %sw.bb1248, %sw.bb1244, %sw.bb1240, %sw.bb1236, %sw.bb1224, %trans_aes64dsm.exit, %trans_aes64ds.exit, %trans_aes64esm.exit, %trans_aes64es.exit, %trans_xperm8.exit, %trans_xperm4.exit, %trans_binv.exit, %trans_bset.exit, %trans_sh3add.exit, %sw.bb1128, %trans_sh2add.exit, %trans_sh1add.exit, %sw.bb1104, %sw.bb1032, %sw.bb1024, %sw.bb1016, %sw.bb1008, %sw.bb1000, %trans_clmulr.exit, %sw.bb984, %trans_packh.exit, %trans_bext.exit, %trans_pack.exit, %trans_bclr.exit, %trans_remu.exit, %trans_rem.exit, %trans_divu.exit, %trans_div.exit, %sw.bb905, %sw.bb897, %sw.bb889, %sw.bb881, %sw.bb873, %sw.bb861, %sw.bb849, %sw.bb845, %sw.bb837, %sw.bb825, %sw.bb817, %sw.bb809, %sw.bb801, %sw.bb797, %sw.bb687, %sw.bb682, %sw.bb677, %sw.bb664, %sw.bb659, %sw.bb654, %sw.bb641, %sw.bb636, %sw.bb631, %sw.bb619, %sw.bb615, %sw.bb611, %sw.bb606, %sw.bb601, %sw.bb595, %sw.bb588, %sw.bb584, %sw.bb580, %sw.bb570, %sw.bb529, %sw.bb525, %sw.bb521, %sw.bb512, %sw.bb508, %trans_slli_uw.exit, %sw.bb492, %sw.bb482, %sw.bb460, %sw.bb452, %sw.bb445, %trans_bexti.exit, %sw.bb437, %sw.bb417, %sw.bb406, %sw.bb402, %trans_binvi.exit, %sw.bb392, %sw.bb388, %sw.bb384, %sw.bb380, %sw.bb376, %trans_bclri.exit, %sw.bb364, %sw.bb359, %trans_bseti.exit, %sw.bb336, %sw.bb332, %sw.bb328, %sw.bb324, %sw.bb320, %sw.bb316, %sw.bb312, %sw.bb308, %sw.bb293, %sw.bb286, %sw.bb273, %sw.bb269, %sw.bb265, %sw.bb261, %sw.bb251, %if.then243, %sw.bb232, %sw.bb227, %sw.bb222, %sw.bb217, %sw.bb213, %sw.bb209, %sw.bb199, %sw.bb186, %sw.bb181, %sw.bb176, %sw.bb171, %sw.bb167, %sw.bb163, %sw.bb153, %sw.bb140, %sw.bb135, %sw.bb130, %sw.bb125, %sw.bb121, %sw.bb117, %sw.bb107, %sw.bb95, %sw.bb91, %sw.bb87, %sw.bb82, %sw.bb77, %sw.bb72, %sw.bb67, %sw.bb60, %sw.bb56, %sw.bb52, %sw.bb42, %sw.epilog3868, %sw.bb3725, %sw.bb3721, %sw.bb3717, %sw.bb3625, %sw.bb3621, %sw.bb3617, %sw.bb3531, %sw.bb3527, %sw.bb3515, %sw.bb3510, %sw.bb3502, %sw.bb3498, %sw.bb3494, %sw.bb3490, %sw.bb3486, %sw.bb3482, %sw.bb869, %sw.bb857, %sw.bb833, %sw.bb787, %sw.bb779, %sw.bb771, %sw.bb763, %sw.bb755, %sw.bb747, %sw.bb739, %sw.bb731, %sw.bb722, %sw.bb707, %sw.bb699, %sw.bb550, %sw.bb546, %sw.bb542, %sw.bb538, %sw.bb470, %sw.bb466, %sw.bb410, %if.end247, %sw.bb23, %sw.bb19, %sw.bb15, %sw.bb11, %sw.bb7, %sw.bb3, %sw.bb2 - %retval.0 = phi i1 [ false, %sw.epilog3868 ], [ true, %sw.bb3725 ], [ true, %sw.bb3721 ], [ true, %sw.bb3717 ], [ true, %sw.bb3625 ], [ true, %sw.bb3621 ], [ true, %sw.bb3617 ], [ true, %sw.bb3531 ], [ true, %sw.bb3527 ], [ true, %sw.bb3515 ], [ true, %sw.bb3510 ], [ true, %sw.bb3502 ], [ true, %sw.bb3498 ], [ true, %sw.bb3494 ], [ true, %sw.bb3490 ], [ true, %sw.bb3486 ], [ true, %sw.bb3482 ], [ true, %sw.bb869 ], [ true, %sw.bb857 ], [ true, %sw.bb833 ], [ true, %sw.bb787 ], [ true, %sw.bb779 ], [ true, %sw.bb771 ], [ true, %sw.bb763 ], [ true, %sw.bb755 ], [ true, %sw.bb747 ], [ true, %sw.bb739 ], [ true, %sw.bb731 ], [ true, %sw.bb722 ], [ true, %sw.bb707 ], [ true, %sw.bb699 ], [ true, %sw.bb550 ], [ true, %sw.bb546 ], [ true, %sw.bb542 ], [ true, %sw.bb538 ], [ true, %sw.bb470 ], [ true, %sw.bb466 ], [ true, %sw.bb410 ], [ true, %if.end247 ], [ true, %sw.bb23 ], [ true, %sw.bb19 ], [ true, %sw.bb15 ], [ true, %sw.bb11 ], [ true, %sw.bb7 ], [ true, %sw.bb3 ], [ true, %sw.bb2 ], [ true, %sw.bb42 ], [ true, %sw.bb52 ], [ true, %sw.bb56 ], [ true, %sw.bb60 ], [ true, %sw.bb67 ], [ true, %sw.bb72 ], [ true, %sw.bb77 ], [ true, %sw.bb82 ], [ true, %sw.bb87 ], [ true, %sw.bb91 ], [ true, %sw.bb95 ], [ true, %sw.bb107 ], [ true, %sw.bb117 ], [ true, %sw.bb121 ], [ true, %sw.bb125 ], [ true, %sw.bb130 ], [ true, %sw.bb135 ], [ true, %sw.bb140 ], [ true, %sw.bb153 ], [ true, %sw.bb163 ], [ true, %sw.bb167 ], [ true, %sw.bb171 ], [ true, %sw.bb176 ], [ true, %sw.bb181 ], [ true, %sw.bb186 ], [ true, %sw.bb199 ], [ true, %sw.bb209 ], [ true, %sw.bb213 ], [ true, %sw.bb217 ], [ true, %sw.bb222 ], [ true, %sw.bb227 ], [ true, %sw.bb232 ], [ true, %if.then243 ], [ true, %sw.bb251 ], [ true, %sw.bb261 ], [ true, %sw.bb265 ], [ true, %sw.bb269 ], [ true, %sw.bb273 ], [ true, %sw.bb286 ], [ true, %sw.bb293 ], [ true, %sw.bb308 ], [ true, %sw.bb312 ], [ true, %sw.bb316 ], [ true, %sw.bb320 ], [ true, %sw.bb324 ], [ true, %sw.bb328 ], [ true, %sw.bb332 ], [ true, %sw.bb336 ], [ true, %trans_bseti.exit ], [ true, %sw.bb359 ], [ true, %sw.bb364 ], [ true, %trans_bclri.exit ], [ true, %sw.bb376 ], [ true, %sw.bb380 ], [ true, %sw.bb384 ], [ true, %sw.bb388 ], [ true, %sw.bb392 ], [ true, %trans_binvi.exit ], [ true, %sw.bb402 ], [ true, %sw.bb406 ], [ true, %sw.bb417 ], [ true, %sw.bb437 ], [ true, %trans_bexti.exit ], [ true, %sw.bb445 ], [ true, %sw.bb452 ], [ true, %sw.bb460 ], [ true, %sw.bb482 ], [ true, %sw.bb492 ], [ true, %trans_slli_uw.exit ], [ true, %sw.bb508 ], [ true, %sw.bb512 ], [ true, %sw.bb521 ], [ true, %sw.bb525 ], [ true, %sw.bb529 ], [ true, %sw.bb570 ], [ true, %sw.bb580 ], [ true, %sw.bb584 ], [ true, %sw.bb588 ], [ true, %sw.bb595 ], [ true, %sw.bb601 ], [ true, %sw.bb606 ], [ true, %sw.bb611 ], [ true, %sw.bb615 ], [ true, %sw.bb619 ], [ true, %sw.bb631 ], [ true, %sw.bb636 ], [ true, %sw.bb641 ], [ true, %sw.bb654 ], [ true, %sw.bb659 ], [ true, %sw.bb664 ], [ true, %sw.bb677 ], [ true, %sw.bb682 ], [ true, %sw.bb687 ], [ true, %sw.bb797 ], [ true, %sw.bb801 ], [ true, %sw.bb809 ], [ true, %sw.bb817 ], [ true, %sw.bb825 ], [ true, %sw.bb837 ], [ true, %sw.bb845 ], [ true, %sw.bb849 ], [ true, %sw.bb861 ], [ true, %sw.bb873 ], [ true, %sw.bb881 ], [ true, %sw.bb889 ], [ true, %sw.bb897 ], [ true, %sw.bb905 ], [ true, %trans_div.exit ], [ true, %trans_divu.exit ], [ true, %trans_rem.exit ], [ true, %trans_remu.exit ], [ true, %trans_bclr.exit ], [ true, %trans_pack.exit ], [ true, %trans_bext.exit ], [ true, %trans_packh.exit ], [ true, %sw.bb984 ], [ true, %trans_clmulr.exit ], [ true, %sw.bb1000 ], [ true, %sw.bb1008 ], [ true, %sw.bb1016 ], [ true, %sw.bb1024 ], [ true, %sw.bb1032 ], [ true, %sw.bb1104 ], [ true, %trans_sh1add.exit ], [ true, %trans_sh2add.exit ], [ true, %sw.bb1128 ], [ true, %trans_sh3add.exit ], [ true, %trans_bset.exit ], [ true, %trans_binv.exit ], [ true, %trans_xperm4.exit ], [ true, %trans_xperm8.exit ], [ true, %trans_aes64es.exit ], [ true, %trans_aes64esm.exit ], [ true, %trans_aes64ds.exit ], [ true, %trans_aes64dsm.exit ], [ true, %sw.bb1224 ], [ true, %sw.bb1236 ], [ true, %sw.bb1240 ], [ true, %sw.bb1244 ], [ true, %sw.bb1248 ], [ true, %trans_divw.exit ], [ true, %trans_divuw.exit ], [ true, %trans_remw.exit ], [ true, %trans_remuw.exit ], [ true, %trans_add_uw.exit ], [ true, %if.then1275 ], [ true, %trans_packw.exit ], [ true, %trans_sh1add_uw.exit ], [ true, %trans_sh2add_uw.exit ], [ true, %trans_sh3add_uw.exit ], [ true, %sw.bb1295 ], [ true, %sw.bb1299 ], [ true, %sw.bb1303 ], [ true, %sw.bb1307 ], [ true, %sw.bb1315 ], [ true, %sw.bb1319 ], [ true, %sw.bb1323 ], [ true, %sw.bb1331 ], [ true, %sw.bb1335 ], [ true, %sw.bb1339 ], [ true, %sw.bb1347 ], [ true, %sw.bb1351 ], [ true, %sw.bb1355 ], [ true, %sw.bb1363 ], [ true, %sw.bb1367 ], [ true, %sw.bb1371 ], [ true, %sw.bb1379 ], [ true, %sw.bb1383 ], [ true, %sw.bb1387 ], [ true, %sw.bb1391 ], [ true, %sw.bb1395 ], [ true, %sw.bb1399 ], [ true, %sw.bb1403 ], [ true, %sw.bb1407 ], [ true, %sw.bb1411 ], [ true, %sw.bb1415 ], [ true, %sw.bb1419 ], [ true, %sw.bb1423 ], [ true, %sw.bb1430 ], [ true, %sw.bb1434 ], [ true, %sw.bb1438 ], [ true, %sw.bb1446 ], [ true, %sw.bb1450 ], [ true, %sw.bb1454 ], [ true, %sw.bb1462 ], [ true, %sw.bb1466 ], [ true, %sw.bb1470 ], [ true, %sw.bb1478 ], [ true, %sw.bb1482 ], [ true, %sw.bb1486 ], [ true, %sw.bb1490 ], [ true, %sw.bb1498 ], [ true, %sw.bb1502 ], [ true, %sw.bb1506 ], [ true, %sw.bb1510 ], [ true, %sw.bb1518 ], [ true, %sw.bb1522 ], [ true, %sw.bb1526 ], [ true, %sw.bb1530 ], [ true, %sw.bb1538 ], [ true, %sw.bb1542 ], [ true, %sw.bb1546 ], [ true, %sw.bb1550 ], [ true, %sw.bb1554 ], [ true, %sw.bb1562 ], [ true, %sw.bb1566 ], [ true, %sw.bb1570 ], [ true, %sw.bb1574 ], [ true, %sw.bb1582 ], [ true, %sw.bb1586 ], [ true, %sw.bb1590 ], [ true, %sw.bb1594 ], [ true, %sw.bb1598 ], [ true, %sw.bb1606 ], [ true, %sw.bb1614 ], [ true, %sw.bb1622 ], [ true, %sw.bb1630 ], [ true, %sw.bb1634 ], [ true, %sw.bb1638 ], [ true, %sw.bb1642 ], [ true, %sw.bb1646 ], [ true, %sw.bb1654 ], [ true, %sw.bb1658 ], [ true, %sw.bb1662 ], [ true, %sw.bb1666 ], [ true, %sw.bb1670 ], [ true, %sw.bb1678 ], [ true, %sw.bb1682 ], [ true, %sw.bb1686 ], [ true, %sw.bb1690 ], [ true, %sw.bb1694 ], [ true, %sw.bb1710 ], [ true, %sw.bb1714 ], [ true, %sw.bb1718 ], [ true, %sw.bb1722 ], [ true, %sw.bb1730 ], [ true, %sw.bb1734 ], [ true, %sw.bb1738 ], [ true, %sw.bb1742 ], [ true, %sw.bb1749 ], [ true, %sw.bb1758 ], [ true, %sw.bb1762 ], [ true, %sw.bb1766 ], [ true, %sw.bb1770 ], [ true, %sw.bb1778 ], [ true, %sw.bb1782 ], [ true, %sw.bb1786 ], [ true, %sw.bb1790 ], [ true, %sw.bb1798 ], [ true, %sw.bb1802 ], [ true, %sw.bb1806 ], [ true, %sw.bb1810 ], [ true, %sw.bb1818 ], [ true, %sw.bb1822 ], [ true, %sw.bb1826 ], [ true, %sw.bb1830 ], [ true, %sw.bb1837 ], [ true, %sw.bb1841 ], [ true, %sw.bb1848 ], [ true, %sw.bb1852 ], [ true, %sw.bb1863 ], [ true, %sw.bb1867 ], [ true, %sw.bb1874 ], [ true, %sw.bb1878 ], [ true, %sw.bb1885 ], [ true, %sw.bb1889 ], [ true, %sw.bb1896 ], [ true, %sw.bb1900 ], [ true, %sw.bb1911 ], [ true, %sw.bb1915 ], [ true, %sw.bb1919 ], [ true, %sw.bb1923 ], [ true, %sw.bb1927 ], [ true, %sw.bb1931 ], [ true, %sw.bb1935 ], [ true, %sw.bb1939 ], [ true, %sw.bb1943 ], [ true, %sw.bb1947 ], [ true, %sw.bb1951 ], [ true, %sw.bb1955 ], [ true, %sw.bb1962 ], [ true, %sw.bb1967 ], [ true, %sw.bb1974 ], [ true, %sw.bb1979 ], [ true, %sw.bb1983 ], [ true, %sw.bb1987 ], [ true, %sw.bb1994 ], [ true, %sw.bb2001 ], [ true, %sw.bb2007 ], [ true, %sw.bb2011 ], [ true, %sw.bb2015 ], [ true, %sw.bb2019 ], [ true, %sw.bb2023 ], [ true, %sw.bb2027 ], [ true, %sw.bb2035 ], [ true, %sw.bb2039 ], [ true, %sw.bb2043 ], [ true, %sw.bb2047 ], [ true, %sw.bb2051 ], [ true, %sw.bb2055 ], [ true, %sw.bb2059 ], [ true, %sw.bb2063 ], [ true, %sw.bb2067 ], [ true, %sw.bb2071 ], [ true, %sw.bb2075 ], [ true, %sw.bb2081 ], [ true, %sw.bb2089 ], [ true, %sw.bb2093 ], [ true, %sw.bb2097 ], [ true, %sw.bb2101 ], [ true, %sw.bb2105 ], [ true, %sw.bb2109 ], [ true, %sw.bb2113 ], [ true, %sw.bb2117 ], [ true, %sw.bb2121 ], [ true, %sw.bb2125 ], [ true, %sw.bb2129 ], [ true, %sw.bb2133 ], [ true, %sw.bb2137 ], [ true, %sw.bb2141 ], [ true, %sw.bb2145 ], [ true, %sw.bb2149 ], [ true, %sw.bb2153 ], [ true, %sw.bb2157 ], [ true, %sw.bb2161 ], [ true, %sw.bb2165 ], [ true, %sw.bb2169 ], [ true, %sw.bb2173 ], [ true, %sw.bb2177 ], [ true, %sw.bb2185 ], [ true, %sw.bb2189 ], [ true, %sw.bb2193 ], [ true, %sw.bb2197 ], [ true, %sw.bb2202 ], [ true, %sw.bb2206 ], [ true, %sw.bb2210 ], [ true, %sw.bb2214 ], [ true, %sw.bb2222 ], [ true, %sw.bb2226 ], [ true, %sw.bb2230 ], [ true, %sw.bb2234 ], [ true, %sw.bb2238 ], [ true, %sw.bb2242 ], [ true, %sw.bb2246 ], [ true, %sw.bb2250 ], [ true, %sw.bb2254 ], [ true, %sw.bb2258 ], [ true, %sw.bb2262 ], [ true, %sw.bb2266 ], [ true, %sw.bb2270 ], [ true, %sw.bb2274 ], [ true, %sw.bb2284 ], [ true, %sw.bb2289 ], [ true, %sw.bb2293 ], [ true, %sw.bb2301 ], [ true, %sw.bb2305 ], [ true, %sw.bb2309 ], [ true, %sw.bb2313 ], [ true, %sw.bb2317 ], [ true, %sw.bb2321 ], [ true, %sw.bb2325 ], [ true, %sw.bb2329 ], [ true, %sw.bb2333 ], [ true, %sw.bb2337 ], [ true, %sw.bb2341 ], [ true, %sw.bb2345 ], [ true, %sw.bb2353 ], [ true, %sw.bb2357 ], [ true, %sw.bb2361 ], [ true, %sw.bb2365 ], [ true, %sw.bb2372 ], [ true, %sw.bb2378 ], [ true, %sw.bb2382 ], [ true, %sw.bb2386 ], [ true, %sw.bb2390 ], [ true, %sw.bb2394 ], [ true, %sw.bb2398 ], [ true, %sw.bb2402 ], [ true, %sw.bb2406 ], [ true, %sw.bb2410 ], [ true, %sw.bb2421 ], [ true, %sw.bb2429 ], [ true, %sw.bb2437 ], [ true, %sw.bb2445 ], [ true, %sw.bb2449 ], [ true, %sw.bb2457 ], [ true, %sw.bb2465 ], [ true, %sw.bb2469 ], [ true, %sw.bb2480 ], [ true, %sw.bb2485 ], [ true, %sw.bb2490 ], [ true, %sw.bb2497 ], [ true, %sw.bb2504 ], [ true, %sw.bb2513 ], [ true, %sw.bb2517 ], [ true, %sw.bb2525 ], [ true, %sw.bb2529 ], [ true, %sw.bb2537 ], [ true, %sw.bb2541 ], [ true, %sw.bb2550 ], [ true, %sw.bb2554 ], [ true, %sw.bb2558 ], [ true, %sw.bb2562 ], [ true, %sw.bb2566 ], [ true, %sw.bb2570 ], [ true, %sw.bb2574 ], [ true, %sw.bb2578 ], [ true, %sw.bb2582 ], [ true, %sw.bb2586 ], [ true, %sw.bb2590 ], [ true, %sw.bb2594 ], [ true, %sw.bb2598 ], [ true, %sw.bb2602 ], [ true, %sw.bb2609 ], [ true, %sw.bb2614 ], [ true, %sw.bb2621 ], [ true, %sw.bb2626 ], [ true, %sw.bb2630 ], [ true, %sw.bb2634 ], [ true, %sw.bb2641 ], [ true, %sw.bb2648 ], [ true, %sw.bb2654 ], [ true, %sw.bb2658 ], [ true, %sw.bb2662 ], [ true, %sw.bb2666 ], [ true, %sw.bb2670 ], [ true, %sw.bb2674 ], [ true, %sw.bb2678 ], [ true, %sw.bb2682 ], [ true, %sw.bb2690 ], [ true, %sw.bb2694 ], [ true, %sw.bb2698 ], [ true, %sw.bb2702 ], [ true, %sw.bb2706 ], [ true, %sw.bb2710 ], [ true, %sw.bb2714 ], [ true, %sw.bb2718 ], [ true, %sw.bb2722 ], [ true, %sw.bb2729 ], [ true, %sw.bb2737 ], [ true, %sw.bb2744 ], [ true, %sw.bb2750 ], [ true, %sw.bb2754 ], [ true, %sw.bb2758 ], [ true, %sw.bb2762 ], [ true, %sw.bb2766 ], [ true, %sw.bb2770 ], [ true, %sw.bb2778 ], [ true, %sw.bb2782 ], [ true, %sw.bb2786 ], [ true, %sw.bb2790 ], [ true, %sw.bb2794 ], [ true, %sw.bb2798 ], [ true, %sw.bb2802 ], [ true, %sw.bb2806 ], [ true, %sw.bb2813 ], [ true, %sw.bb2819 ], [ true, %sw.bb2826 ], [ true, %sw.bb2830 ], [ true, %sw.bb2834 ], [ true, %sw.bb2838 ], [ true, %sw.bb2842 ], [ true, %sw.bb2846 ], [ true, %sw.bb2850 ], [ true, %sw.bb2854 ], [ true, %sw.bb2858 ], [ true, %sw.bb2862 ], [ true, %sw.bb2866 ], [ true, %sw.bb2870 ], [ true, %sw.bb2874 ], [ true, %sw.bb2878 ], [ true, %sw.bb2882 ], [ true, %sw.bb2886 ], [ true, %sw.bb2890 ], [ true, %sw.bb2898 ], [ true, %sw.bb2902 ], [ true, %sw.bb2906 ], [ true, %sw.bb2910 ], [ true, %sw.bb2914 ], [ true, %sw.bb2918 ], [ true, %sw.bb2922 ], [ true, %sw.bb2926 ], [ true, %sw.bb2930 ], [ true, %sw.bb2934 ], [ true, %sw.bb2938 ], [ true, %sw.bb2942 ], [ true, %sw.bb2946 ], [ true, %sw.bb2950 ], [ true, %sw.bb2954 ], [ true, %sw.bb2958 ], [ true, %sw.bb2962 ], [ true, %sw.bb2966 ], [ true, %sw.bb2970 ], [ true, %sw.bb2974 ], [ true, %sw.bb2978 ], [ true, %sw.bb2982 ], [ true, %sw.bb2990 ], [ true, %sw.bb2994 ], [ true, %sw.bb2998 ], [ true, %sw.bb3002 ], [ true, %sw.bb3006 ], [ true, %sw.bb3010 ], [ true, %sw.bb3014 ], [ true, %sw.bb3018 ], [ true, %sw.bb3022 ], [ true, %sw.bb3026 ], [ true, %sw.bb3030 ], [ true, %sw.bb3034 ], [ true, %sw.bb3038 ], [ true, %sw.bb3042 ], [ true, %sw.bb3046 ], [ true, %sw.bb3050 ], [ true, %sw.bb3054 ], [ true, %sw.bb3058 ], [ true, %sw.bb3062 ], [ true, %sw.bb3066 ], [ true, %sw.bb3070 ], [ true, %sw.bb3074 ], [ true, %sw.bb3078 ], [ true, %sw.bb3082 ], [ true, %sw.bb3086 ], [ true, %sw.bb3090 ], [ true, %sw.bb3098 ], [ true, %sw.bb3102 ], [ true, %sw.bb3106 ], [ true, %sw.bb3112 ], [ true, %sw.bb3116 ], [ true, %sw.bb3120 ], [ true, %sw.bb3124 ], [ true, %sw.bb3129 ], [ true, %sw.bb3133 ], [ true, %sw.bb3137 ], [ true, %sw.bb3141 ], [ true, %sw.bb3145 ], [ true, %sw.bb3149 ], [ true, %sw.bb3153 ], [ true, %sw.bb3157 ], [ true, %sw.bb3161 ], [ true, %sw.bb3169 ], [ true, %sw.bb3173 ], [ true, %sw.bb3177 ], [ true, %sw.bb3181 ], [ true, %sw.bb3185 ], [ true, %sw.bb3189 ], [ true, %sw.bb3193 ], [ true, %sw.bb3197 ], [ true, %sw.bb3201 ], [ true, %sw.bb3205 ], [ true, %sw.bb3209 ], [ true, %sw.bb3213 ], [ true, %sw.bb3217 ], [ true, %sw.bb3221 ], [ true, %sw.bb3225 ], [ true, %sw.bb3233 ], [ true, %sw.bb3237 ], [ true, %sw.bb3241 ], [ true, %sw.bb3245 ], [ true, %sw.bb3249 ], [ true, %sw.bb3253 ], [ true, %sw.bb3257 ], [ true, %sw.bb3261 ], [ true, %sw.bb3265 ], [ true, %sw.bb3269 ], [ true, %sw.bb3273 ], [ true, %sw.bb3277 ], [ true, %sw.bb3281 ], [ true, %sw.bb3285 ], [ true, %sw.bb3289 ], [ true, %sw.bb3293 ], [ true, %sw.bb3297 ], [ true, %sw.bb3301 ], [ true, %sw.bb3305 ], [ true, %sw.bb3309 ], [ true, %sw.bb3313 ], [ true, %sw.bb3317 ], [ true, %sw.bb3325 ], [ true, %sw.bb3329 ], [ true, %sw.bb3333 ], [ true, %sw.bb3337 ], [ true, %sw.bb3341 ], [ true, %sw.bb3345 ], [ true, %sw.bb3349 ], [ true, %sw.bb3353 ], [ true, %sw.bb3357 ], [ true, %sw.bb3361 ], [ true, %sw.bb3365 ], [ true, %sw.bb3369 ], [ true, %sw.bb3373 ], [ true, %sw.bb3377 ], [ true, %sw.bb3381 ], [ true, %sw.bb3385 ], [ true, %sw.bb3389 ], [ true, %sw.bb3393 ], [ true, %sw.bb3397 ], [ true, %sw.bb3401 ], [ true, %sw.bb3405 ], [ true, %sw.bb3409 ], [ true, %sw.bb3413 ], [ true, %sw.bb3417 ], [ true, %sw.bb3421 ], [ true, %sw.bb3425 ], [ true, %sw.bb3429 ], [ true, %sw.bb3440 ], [ true, %sw.bb3445 ], [ true, %sw.bb3539 ], [ true, %sw.bb3543 ], [ true, %trans_sfence_w_inval.exit ], [ true, %trans_sfence_inval_ir.exit ], [ true, %sw.bb3732 ], [ true, %sw.bb3736 ], [ true, %sw.bb3740 ], [ true, %sw.bb3747 ], [ true, %sw.bb3751 ], [ true, %sw.bb3755 ], [ true, %sw.bb3759 ], [ true, %sw.bb3763 ], [ true, %sw.bb3767 ], [ true, %sw.bb3775 ], [ true, %sw.bb3779 ], [ true, %sw.bb3783 ], [ true, %sw.bb3787 ], [ true, %sw.bb3791 ], [ true, %sw.bb3795 ], [ true, %sw.bb3800 ], [ true, %sw.bb3804 ], [ true, %sw.bb3808 ], [ true, %sw.bb3812 ], [ true, %sw.bb3816 ], [ true, %sw.bb3820 ], [ true, %trans_vl1re8_v.exit.thread ], [ true, %trans_vl1re16_v.exit.thread ], [ true, %trans_vl1re32_v.exit.thread ], [ true, %trans_vl1re64_v.exit.thread ], [ true, %trans_sm3p0.exit.thread ], [ true, %trans_sm3p1.exit.thread ], [ true, %trans_orc_b.exit.thread ], [ true, %gen_pc_plus_diff.exit.i ], [ true, %sw.epilog.i.i ], [ true, %if.then5.i.i ], [ true, %trans_clzw.exit.thread ], [ true, %trans_vs1r_v.exit.thread ], [ true, %trans_amoadd_w.exit.thread ], [ true, %trans_amoswap_w.exit.thread ], [ true, %trans_lr_w.exit.thread ], [ true, %trans_sc_w.exit.thread ], [ true, %trans_amoxor_w.exit.thread ], [ true, %trans_amoor_w.exit.thread ], [ true, %trans_amoand_w.exit.thread ], [ true, %trans_amomin_w.exit.thread ], [ true, %trans_amomax_w.exit.thread ], [ true, %trans_amominu_w.exit.thread ], [ true, %trans_amomaxu_w.exit.thread ], [ true, %trans_czero_eqz.exit.thread ], [ true, %trans_czero_nez.exit.thread ], [ true, %trans_sm4ed.exit.thread ], [ true, %trans_sm4ks.exit.thread ], [ true, %sw.bb1230 ], [ true, %sw.epilog.i.i3707 ], [ true, %if.then7.i.i ] +return: ; preds = %if.then7.i.i, %sw.epilog.i.i3689, %sw.bb1230, %trans_sm4ks.exit.thread, %trans_sm4ed.exit.thread, %trans_czero_nez.exit.thread, %trans_czero_eqz.exit.thread, %trans_amomaxu_w.exit.thread, %trans_amominu_w.exit.thread, %trans_amomax_w.exit.thread, %trans_amomin_w.exit.thread, %trans_amoand_w.exit.thread, %trans_amoor_w.exit.thread, %trans_amoxor_w.exit.thread, %trans_sc_w.exit.thread, %trans_lr_w.exit.thread, %trans_amoswap_w.exit.thread, %trans_amoadd_w.exit.thread, %trans_vs1r_v.exit.thread, %trans_clzw.exit.thread, %if.then5.i.i, %sw.epilog.i.i, %gen_pc_plus_diff.exit.i, %trans_orc_b.exit.thread, %trans_sm3p1.exit.thread, %trans_sm3p0.exit.thread, %trans_vl1re64_v.exit.thread, %trans_vl1re32_v.exit.thread, %trans_vl1re16_v.exit.thread, %trans_vl1re8_v.exit.thread, %sw.bb3820, %sw.bb3816, %sw.bb3812, %sw.bb3808, %sw.bb3804, %sw.bb3800, %sw.bb3795, %sw.bb3791, %sw.bb3787, %sw.bb3783, %sw.bb3779, %sw.bb3775, %sw.bb3767, %sw.bb3763, %sw.bb3759, %sw.bb3755, %sw.bb3751, %sw.bb3747, %sw.bb3740, %sw.bb3736, %sw.bb3732, %trans_sfence_inval_ir.exit, %trans_sfence_w_inval.exit, %sw.bb3543, %sw.bb3539, %sw.bb3445, %sw.bb3440, %sw.bb3429, %sw.bb3425, %sw.bb3421, %sw.bb3417, %sw.bb3413, %sw.bb3409, %sw.bb3405, %sw.bb3401, %sw.bb3397, %sw.bb3393, %sw.bb3389, %sw.bb3385, %sw.bb3381, %sw.bb3377, %sw.bb3373, %sw.bb3369, %sw.bb3365, %sw.bb3361, %sw.bb3357, %sw.bb3353, %sw.bb3349, %sw.bb3345, %sw.bb3341, %sw.bb3337, %sw.bb3333, %sw.bb3329, %sw.bb3325, %sw.bb3317, %sw.bb3313, %sw.bb3309, %sw.bb3305, %sw.bb3301, %sw.bb3297, %sw.bb3293, %sw.bb3289, %sw.bb3285, %sw.bb3281, %sw.bb3277, %sw.bb3273, %sw.bb3269, %sw.bb3265, %sw.bb3261, %sw.bb3257, %sw.bb3253, %sw.bb3249, %sw.bb3245, %sw.bb3241, %sw.bb3237, %sw.bb3233, %sw.bb3225, %sw.bb3221, %sw.bb3217, %sw.bb3213, %sw.bb3209, %sw.bb3205, %sw.bb3201, %sw.bb3197, %sw.bb3193, %sw.bb3189, %sw.bb3185, %sw.bb3181, %sw.bb3177, %sw.bb3173, %sw.bb3169, %sw.bb3161, %sw.bb3157, %sw.bb3153, %sw.bb3149, %sw.bb3145, %sw.bb3141, %sw.bb3137, %sw.bb3133, %sw.bb3129, %sw.bb3124, %sw.bb3120, %sw.bb3116, %sw.bb3112, %sw.bb3106, %sw.bb3102, %sw.bb3098, %sw.bb3090, %sw.bb3086, %sw.bb3082, %sw.bb3078, %sw.bb3074, %sw.bb3070, %sw.bb3066, %sw.bb3062, %sw.bb3058, %sw.bb3054, %sw.bb3050, %sw.bb3046, %sw.bb3042, %sw.bb3038, %sw.bb3034, %sw.bb3030, %sw.bb3026, %sw.bb3022, %sw.bb3018, %sw.bb3014, %sw.bb3010, %sw.bb3006, %sw.bb3002, %sw.bb2998, %sw.bb2994, %sw.bb2990, %sw.bb2982, %sw.bb2978, %sw.bb2974, %sw.bb2970, %sw.bb2966, %sw.bb2962, %sw.bb2958, %sw.bb2954, %sw.bb2950, %sw.bb2946, %sw.bb2942, %sw.bb2938, %sw.bb2934, %sw.bb2930, %sw.bb2926, %sw.bb2922, %sw.bb2918, %sw.bb2914, %sw.bb2910, %sw.bb2906, %sw.bb2902, %sw.bb2898, %sw.bb2890, %sw.bb2886, %sw.bb2882, %sw.bb2878, %sw.bb2874, %sw.bb2870, %sw.bb2866, %sw.bb2862, %sw.bb2858, %sw.bb2854, %sw.bb2850, %sw.bb2846, %sw.bb2842, %sw.bb2838, %sw.bb2834, %sw.bb2830, %sw.bb2826, %sw.bb2819, %sw.bb2813, %sw.bb2806, %sw.bb2802, %sw.bb2798, %sw.bb2794, %sw.bb2790, %sw.bb2786, %sw.bb2782, %sw.bb2778, %sw.bb2770, %sw.bb2766, %sw.bb2762, %sw.bb2758, %sw.bb2754, %sw.bb2750, %sw.bb2744, %sw.bb2737, %sw.bb2729, %sw.bb2722, %sw.bb2718, %sw.bb2714, %sw.bb2710, %sw.bb2706, %sw.bb2702, %sw.bb2698, %sw.bb2694, %sw.bb2690, %sw.bb2682, %sw.bb2678, %sw.bb2674, %sw.bb2670, %sw.bb2666, %sw.bb2662, %sw.bb2658, %sw.bb2654, %sw.bb2648, %sw.bb2641, %sw.bb2634, %sw.bb2630, %sw.bb2626, %sw.bb2621, %sw.bb2614, %sw.bb2609, %sw.bb2602, %sw.bb2598, %sw.bb2594, %sw.bb2590, %sw.bb2586, %sw.bb2582, %sw.bb2578, %sw.bb2574, %sw.bb2570, %sw.bb2566, %sw.bb2562, %sw.bb2558, %sw.bb2554, %sw.bb2550, %sw.bb2541, %sw.bb2537, %sw.bb2529, %sw.bb2525, %sw.bb2517, %sw.bb2513, %sw.bb2504, %sw.bb2497, %sw.bb2490, %sw.bb2485, %sw.bb2480, %sw.bb2469, %sw.bb2465, %sw.bb2457, %sw.bb2449, %sw.bb2445, %sw.bb2437, %sw.bb2429, %sw.bb2421, %sw.bb2410, %sw.bb2406, %sw.bb2402, %sw.bb2398, %sw.bb2394, %sw.bb2390, %sw.bb2386, %sw.bb2382, %sw.bb2378, %sw.bb2372, %sw.bb2365, %sw.bb2361, %sw.bb2357, %sw.bb2353, %sw.bb2345, %sw.bb2341, %sw.bb2337, %sw.bb2333, %sw.bb2329, %sw.bb2325, %sw.bb2321, %sw.bb2317, %sw.bb2313, %sw.bb2309, %sw.bb2305, %sw.bb2301, %sw.bb2293, %sw.bb2289, %sw.bb2284, %sw.bb2274, %sw.bb2270, %sw.bb2266, %sw.bb2262, %sw.bb2258, %sw.bb2254, %sw.bb2250, %sw.bb2246, %sw.bb2242, %sw.bb2238, %sw.bb2234, %sw.bb2230, %sw.bb2226, %sw.bb2222, %sw.bb2214, %sw.bb2210, %sw.bb2206, %sw.bb2202, %sw.bb2197, %sw.bb2193, %sw.bb2189, %sw.bb2185, %sw.bb2177, %sw.bb2173, %sw.bb2169, %sw.bb2165, %sw.bb2161, %sw.bb2157, %sw.bb2153, %sw.bb2149, %sw.bb2145, %sw.bb2141, %sw.bb2137, %sw.bb2133, %sw.bb2129, %sw.bb2125, %sw.bb2121, %sw.bb2117, %sw.bb2113, %sw.bb2109, %sw.bb2105, %sw.bb2101, %sw.bb2097, %sw.bb2093, %sw.bb2089, %sw.bb2081, %sw.bb2075, %sw.bb2071, %sw.bb2067, %sw.bb2063, %sw.bb2059, %sw.bb2055, %sw.bb2051, %sw.bb2047, %sw.bb2043, %sw.bb2039, %sw.bb2035, %sw.bb2027, %sw.bb2023, %sw.bb2019, %sw.bb2015, %sw.bb2011, %sw.bb2007, %sw.bb2001, %sw.bb1994, %sw.bb1987, %sw.bb1983, %sw.bb1979, %sw.bb1974, %sw.bb1967, %sw.bb1962, %sw.bb1955, %sw.bb1951, %sw.bb1947, %sw.bb1943, %sw.bb1939, %sw.bb1935, %sw.bb1931, %sw.bb1927, %sw.bb1923, %sw.bb1919, %sw.bb1915, %sw.bb1911, %sw.bb1900, %sw.bb1896, %sw.bb1889, %sw.bb1885, %sw.bb1878, %sw.bb1874, %sw.bb1867, %sw.bb1863, %sw.bb1852, %sw.bb1848, %sw.bb1841, %sw.bb1837, %sw.bb1830, %sw.bb1826, %sw.bb1822, %sw.bb1818, %sw.bb1810, %sw.bb1806, %sw.bb1802, %sw.bb1798, %sw.bb1790, %sw.bb1786, %sw.bb1782, %sw.bb1778, %sw.bb1770, %sw.bb1766, %sw.bb1762, %sw.bb1758, %sw.bb1749, %sw.bb1742, %sw.bb1738, %sw.bb1734, %sw.bb1730, %sw.bb1722, %sw.bb1718, %sw.bb1714, %sw.bb1710, %sw.bb1694, %sw.bb1690, %sw.bb1686, %sw.bb1682, %sw.bb1678, %sw.bb1670, %sw.bb1666, %sw.bb1662, %sw.bb1658, %sw.bb1654, %sw.bb1646, %sw.bb1642, %sw.bb1638, %sw.bb1634, %sw.bb1630, %sw.bb1622, %sw.bb1614, %sw.bb1606, %sw.bb1598, %sw.bb1594, %sw.bb1590, %sw.bb1586, %sw.bb1582, %sw.bb1574, %sw.bb1570, %sw.bb1566, %sw.bb1562, %sw.bb1554, %sw.bb1550, %sw.bb1546, %sw.bb1542, %sw.bb1538, %sw.bb1530, %sw.bb1526, %sw.bb1522, %sw.bb1518, %sw.bb1510, %sw.bb1506, %sw.bb1502, %sw.bb1498, %sw.bb1490, %sw.bb1486, %sw.bb1482, %sw.bb1478, %sw.bb1470, %sw.bb1466, %sw.bb1462, %sw.bb1454, %sw.bb1450, %sw.bb1446, %sw.bb1438, %sw.bb1434, %sw.bb1430, %sw.bb1423, %sw.bb1419, %sw.bb1415, %sw.bb1411, %sw.bb1407, %sw.bb1403, %sw.bb1399, %sw.bb1395, %sw.bb1391, %sw.bb1387, %sw.bb1383, %sw.bb1379, %sw.bb1371, %sw.bb1367, %sw.bb1363, %sw.bb1355, %sw.bb1351, %sw.bb1347, %sw.bb1339, %sw.bb1335, %sw.bb1331, %sw.bb1323, %sw.bb1319, %sw.bb1315, %sw.bb1307, %sw.bb1303, %sw.bb1299, %sw.bb1295, %trans_sh3add_uw.exit, %trans_sh2add_uw.exit, %trans_sh1add_uw.exit, %trans_packw.exit, %if.then1275, %trans_add_uw.exit, %trans_remuw.exit, %trans_remw.exit, %trans_divuw.exit, %trans_divw.exit, %sw.bb1248, %sw.bb1244, %sw.bb1240, %sw.bb1236, %sw.bb1224, %trans_aes64dsm.exit, %trans_aes64ds.exit, %trans_aes64esm.exit, %trans_aes64es.exit, %trans_xperm8.exit, %trans_xperm4.exit, %trans_binv.exit, %trans_bset.exit, %trans_sh3add.exit, %sw.bb1128, %trans_sh2add.exit, %trans_sh1add.exit, %sw.bb1104, %sw.bb1032, %sw.bb1024, %sw.bb1016, %sw.bb1008, %sw.bb1000, %trans_clmulr.exit, %sw.bb984, %trans_packh.exit, %trans_bext.exit, %trans_pack.exit, %trans_bclr.exit, %trans_remu.exit, %trans_rem.exit, %trans_divu.exit, %trans_div.exit, %sw.bb905, %sw.bb897, %sw.bb889, %sw.bb881, %sw.bb873, %sw.bb861, %sw.bb849, %sw.bb845, %sw.bb837, %sw.bb825, %sw.bb817, %sw.bb809, %sw.bb801, %sw.bb797, %sw.bb687, %sw.bb682, %sw.bb677, %sw.bb664, %sw.bb659, %sw.bb654, %sw.bb641, %sw.bb636, %sw.bb631, %sw.bb619, %sw.bb615, %sw.bb611, %sw.bb606, %sw.bb601, %sw.bb595, %sw.bb588, %sw.bb584, %sw.bb580, %sw.bb570, %sw.bb529, %sw.bb525, %sw.bb521, %sw.bb512, %sw.bb508, %trans_slli_uw.exit, %sw.bb492, %sw.bb482, %sw.bb460, %sw.bb452, %sw.bb445, %trans_bexti.exit, %sw.bb437, %sw.bb417, %sw.bb406, %sw.bb402, %trans_binvi.exit, %sw.bb392, %sw.bb388, %sw.bb384, %sw.bb380, %sw.bb376, %trans_bclri.exit, %sw.bb364, %sw.bb359, %trans_bseti.exit, %sw.bb336, %sw.bb332, %sw.bb328, %sw.bb324, %sw.bb320, %sw.bb316, %sw.bb312, %sw.bb308, %sw.bb293, %sw.bb286, %sw.bb273, %sw.bb269, %sw.bb265, %sw.bb261, %sw.bb251, %if.then243, %sw.bb232, %sw.bb227, %sw.bb222, %sw.bb217, %sw.bb213, %sw.bb209, %sw.bb199, %sw.bb186, %sw.bb181, %sw.bb176, %sw.bb171, %sw.bb167, %sw.bb163, %sw.bb153, %sw.bb140, %sw.bb135, %sw.bb130, %sw.bb125, %sw.bb121, %sw.bb117, %sw.bb107, %sw.bb95, %sw.bb91, %sw.bb87, %sw.bb82, %sw.bb77, %sw.bb72, %sw.bb67, %sw.bb60, %sw.bb56, %sw.bb52, %sw.bb42, %sw.epilog3868, %sw.bb3725, %sw.bb3721, %sw.bb3717, %sw.bb3625, %sw.bb3621, %sw.bb3617, %sw.bb3531, %sw.bb3527, %sw.bb3515, %sw.bb3510, %sw.bb3502, %sw.bb3498, %sw.bb3494, %sw.bb3490, %sw.bb3486, %sw.bb3482, %sw.bb869, %sw.bb857, %sw.bb833, %sw.bb787, %sw.bb779, %sw.bb771, %sw.bb763, %sw.bb755, %sw.bb747, %sw.bb739, %sw.bb731, %sw.bb722, %sw.bb707, %sw.bb699, %sw.bb550, %sw.bb546, %sw.bb542, %sw.bb538, %sw.bb470, %sw.bb466, %sw.bb410, %if.end247, %sw.bb23, %sw.bb19, %sw.bb15, %sw.bb11, %sw.bb7, %sw.bb3, %sw.bb2 + %retval.0 = phi i1 [ false, %sw.epilog3868 ], [ true, %sw.bb3725 ], [ true, %sw.bb3721 ], [ true, %sw.bb3717 ], [ true, %sw.bb3625 ], [ true, %sw.bb3621 ], [ true, %sw.bb3617 ], [ true, %sw.bb3531 ], [ true, %sw.bb3527 ], [ true, %sw.bb3515 ], [ true, %sw.bb3510 ], [ true, %sw.bb3502 ], [ true, %sw.bb3498 ], [ true, %sw.bb3494 ], [ true, %sw.bb3490 ], [ true, %sw.bb3486 ], [ true, %sw.bb3482 ], [ true, %sw.bb869 ], [ true, %sw.bb857 ], [ true, %sw.bb833 ], [ true, %sw.bb787 ], [ true, %sw.bb779 ], [ true, %sw.bb771 ], [ true, %sw.bb763 ], [ true, %sw.bb755 ], [ true, %sw.bb747 ], [ true, %sw.bb739 ], [ true, %sw.bb731 ], [ true, %sw.bb722 ], [ true, %sw.bb707 ], [ true, %sw.bb699 ], [ true, %sw.bb550 ], [ true, %sw.bb546 ], [ true, %sw.bb542 ], [ true, %sw.bb538 ], [ true, %sw.bb470 ], [ true, %sw.bb466 ], [ true, %sw.bb410 ], [ true, %if.end247 ], [ true, %sw.bb23 ], [ true, %sw.bb19 ], [ true, %sw.bb15 ], [ true, %sw.bb11 ], [ true, %sw.bb7 ], [ true, %sw.bb3 ], [ true, %sw.bb2 ], [ true, %sw.bb42 ], [ true, %sw.bb52 ], [ true, %sw.bb56 ], [ true, %sw.bb60 ], [ true, %sw.bb67 ], [ true, %sw.bb72 ], [ true, %sw.bb77 ], [ true, %sw.bb82 ], [ true, %sw.bb87 ], [ true, %sw.bb91 ], [ true, %sw.bb95 ], [ true, %sw.bb107 ], [ true, %sw.bb117 ], [ true, %sw.bb121 ], [ true, %sw.bb125 ], [ true, %sw.bb130 ], [ true, %sw.bb135 ], [ true, %sw.bb140 ], [ true, %sw.bb153 ], [ true, %sw.bb163 ], [ true, %sw.bb167 ], [ true, %sw.bb171 ], [ true, %sw.bb176 ], [ true, %sw.bb181 ], [ true, %sw.bb186 ], [ true, %sw.bb199 ], [ true, %sw.bb209 ], [ true, %sw.bb213 ], [ true, %sw.bb217 ], [ true, %sw.bb222 ], [ true, %sw.bb227 ], [ true, %sw.bb232 ], [ true, %if.then243 ], [ true, %sw.bb251 ], [ true, %sw.bb261 ], [ true, %sw.bb265 ], [ true, %sw.bb269 ], [ true, %sw.bb273 ], [ true, %sw.bb286 ], [ true, %sw.bb293 ], [ true, %sw.bb308 ], [ true, %sw.bb312 ], [ true, %sw.bb316 ], [ true, %sw.bb320 ], [ true, %sw.bb324 ], [ true, %sw.bb328 ], [ true, %sw.bb332 ], [ true, %sw.bb336 ], [ true, %trans_bseti.exit ], [ true, %sw.bb359 ], [ true, %sw.bb364 ], [ true, %trans_bclri.exit ], [ true, %sw.bb376 ], [ true, %sw.bb380 ], [ true, %sw.bb384 ], [ true, %sw.bb388 ], [ true, %sw.bb392 ], [ true, %trans_binvi.exit ], [ true, %sw.bb402 ], [ true, %sw.bb406 ], [ true, %sw.bb417 ], [ true, %sw.bb437 ], [ true, %trans_bexti.exit ], [ true, %sw.bb445 ], [ true, %sw.bb452 ], [ true, %sw.bb460 ], [ true, %sw.bb482 ], [ true, %sw.bb492 ], [ true, %trans_slli_uw.exit ], [ true, %sw.bb508 ], [ true, %sw.bb512 ], [ true, %sw.bb521 ], [ true, %sw.bb525 ], [ true, %sw.bb529 ], [ true, %sw.bb570 ], [ true, %sw.bb580 ], [ true, %sw.bb584 ], [ true, %sw.bb588 ], [ true, %sw.bb595 ], [ true, %sw.bb601 ], [ true, %sw.bb606 ], [ true, %sw.bb611 ], [ true, %sw.bb615 ], [ true, %sw.bb619 ], [ true, %sw.bb631 ], [ true, %sw.bb636 ], [ true, %sw.bb641 ], [ true, %sw.bb654 ], [ true, %sw.bb659 ], [ true, %sw.bb664 ], [ true, %sw.bb677 ], [ true, %sw.bb682 ], [ true, %sw.bb687 ], [ true, %sw.bb797 ], [ true, %sw.bb801 ], [ true, %sw.bb809 ], [ true, %sw.bb817 ], [ true, %sw.bb825 ], [ true, %sw.bb837 ], [ true, %sw.bb845 ], [ true, %sw.bb849 ], [ true, %sw.bb861 ], [ true, %sw.bb873 ], [ true, %sw.bb881 ], [ true, %sw.bb889 ], [ true, %sw.bb897 ], [ true, %sw.bb905 ], [ true, %trans_div.exit ], [ true, %trans_divu.exit ], [ true, %trans_rem.exit ], [ true, %trans_remu.exit ], [ true, %trans_bclr.exit ], [ true, %trans_pack.exit ], [ true, %trans_bext.exit ], [ true, %trans_packh.exit ], [ true, %sw.bb984 ], [ true, %trans_clmulr.exit ], [ true, %sw.bb1000 ], [ true, %sw.bb1008 ], [ true, %sw.bb1016 ], [ true, %sw.bb1024 ], [ true, %sw.bb1032 ], [ true, %sw.bb1104 ], [ true, %trans_sh1add.exit ], [ true, %trans_sh2add.exit ], [ true, %sw.bb1128 ], [ true, %trans_sh3add.exit ], [ true, %trans_bset.exit ], [ true, %trans_binv.exit ], [ true, %trans_xperm4.exit ], [ true, %trans_xperm8.exit ], [ true, %trans_aes64es.exit ], [ true, %trans_aes64esm.exit ], [ true, %trans_aes64ds.exit ], [ true, %trans_aes64dsm.exit ], [ true, %sw.bb1224 ], [ true, %sw.bb1236 ], [ true, %sw.bb1240 ], [ true, %sw.bb1244 ], [ true, %sw.bb1248 ], [ true, %trans_divw.exit ], [ true, %trans_divuw.exit ], [ true, %trans_remw.exit ], [ true, %trans_remuw.exit ], [ true, %trans_add_uw.exit ], [ true, %if.then1275 ], [ true, %trans_packw.exit ], [ true, %trans_sh1add_uw.exit ], [ true, %trans_sh2add_uw.exit ], [ true, %trans_sh3add_uw.exit ], [ true, %sw.bb1295 ], [ true, %sw.bb1299 ], [ true, %sw.bb1303 ], [ true, %sw.bb1307 ], [ true, %sw.bb1315 ], [ true, %sw.bb1319 ], [ true, %sw.bb1323 ], [ true, %sw.bb1331 ], [ true, %sw.bb1335 ], [ true, %sw.bb1339 ], [ true, %sw.bb1347 ], [ true, %sw.bb1351 ], [ true, %sw.bb1355 ], [ true, %sw.bb1363 ], [ true, %sw.bb1367 ], [ true, %sw.bb1371 ], [ true, %sw.bb1379 ], [ true, %sw.bb1383 ], [ true, %sw.bb1387 ], [ true, %sw.bb1391 ], [ true, %sw.bb1395 ], [ true, %sw.bb1399 ], [ true, %sw.bb1403 ], [ true, %sw.bb1407 ], [ true, %sw.bb1411 ], [ true, %sw.bb1415 ], [ true, %sw.bb1419 ], [ true, %sw.bb1423 ], [ true, %sw.bb1430 ], [ true, %sw.bb1434 ], [ true, %sw.bb1438 ], [ true, %sw.bb1446 ], [ true, %sw.bb1450 ], [ true, %sw.bb1454 ], [ true, %sw.bb1462 ], [ true, %sw.bb1466 ], [ true, %sw.bb1470 ], [ true, %sw.bb1478 ], [ true, %sw.bb1482 ], [ true, %sw.bb1486 ], [ true, %sw.bb1490 ], [ true, %sw.bb1498 ], [ true, %sw.bb1502 ], [ true, %sw.bb1506 ], [ true, %sw.bb1510 ], [ true, %sw.bb1518 ], [ true, %sw.bb1522 ], [ true, %sw.bb1526 ], [ true, %sw.bb1530 ], [ true, %sw.bb1538 ], [ true, %sw.bb1542 ], [ true, %sw.bb1546 ], [ true, %sw.bb1550 ], [ true, %sw.bb1554 ], [ true, %sw.bb1562 ], [ true, %sw.bb1566 ], [ true, %sw.bb1570 ], [ true, %sw.bb1574 ], [ true, %sw.bb1582 ], [ true, %sw.bb1586 ], [ true, %sw.bb1590 ], [ true, %sw.bb1594 ], [ true, %sw.bb1598 ], [ true, %sw.bb1606 ], [ true, %sw.bb1614 ], [ true, %sw.bb1622 ], [ true, %sw.bb1630 ], [ true, %sw.bb1634 ], [ true, %sw.bb1638 ], [ true, %sw.bb1642 ], [ true, %sw.bb1646 ], [ true, %sw.bb1654 ], [ true, %sw.bb1658 ], [ true, %sw.bb1662 ], [ true, %sw.bb1666 ], [ true, %sw.bb1670 ], [ true, %sw.bb1678 ], [ true, %sw.bb1682 ], [ true, %sw.bb1686 ], [ true, %sw.bb1690 ], [ true, %sw.bb1694 ], [ true, %sw.bb1710 ], [ true, %sw.bb1714 ], [ true, %sw.bb1718 ], [ true, %sw.bb1722 ], [ true, %sw.bb1730 ], [ true, %sw.bb1734 ], [ true, %sw.bb1738 ], [ true, %sw.bb1742 ], [ true, %sw.bb1749 ], [ true, %sw.bb1758 ], [ true, %sw.bb1762 ], [ true, %sw.bb1766 ], [ true, %sw.bb1770 ], [ true, %sw.bb1778 ], [ true, %sw.bb1782 ], [ true, %sw.bb1786 ], [ true, %sw.bb1790 ], [ true, %sw.bb1798 ], [ true, %sw.bb1802 ], [ true, %sw.bb1806 ], [ true, %sw.bb1810 ], [ true, %sw.bb1818 ], [ true, %sw.bb1822 ], [ true, %sw.bb1826 ], [ true, %sw.bb1830 ], [ true, %sw.bb1837 ], [ true, %sw.bb1841 ], [ true, %sw.bb1848 ], [ true, %sw.bb1852 ], [ true, %sw.bb1863 ], [ true, %sw.bb1867 ], [ true, %sw.bb1874 ], [ true, %sw.bb1878 ], [ true, %sw.bb1885 ], [ true, %sw.bb1889 ], [ true, %sw.bb1896 ], [ true, %sw.bb1900 ], [ true, %sw.bb1911 ], [ true, %sw.bb1915 ], [ true, %sw.bb1919 ], [ true, %sw.bb1923 ], [ true, %sw.bb1927 ], [ true, %sw.bb1931 ], [ true, %sw.bb1935 ], [ true, %sw.bb1939 ], [ true, %sw.bb1943 ], [ true, %sw.bb1947 ], [ true, %sw.bb1951 ], [ true, %sw.bb1955 ], [ true, %sw.bb1962 ], [ true, %sw.bb1967 ], [ true, %sw.bb1974 ], [ true, %sw.bb1979 ], [ true, %sw.bb1983 ], [ true, %sw.bb1987 ], [ true, %sw.bb1994 ], [ true, %sw.bb2001 ], [ true, %sw.bb2007 ], [ true, %sw.bb2011 ], [ true, %sw.bb2015 ], [ true, %sw.bb2019 ], [ true, %sw.bb2023 ], [ true, %sw.bb2027 ], [ true, %sw.bb2035 ], [ true, %sw.bb2039 ], [ true, %sw.bb2043 ], [ true, %sw.bb2047 ], [ true, %sw.bb2051 ], [ true, %sw.bb2055 ], [ true, %sw.bb2059 ], [ true, %sw.bb2063 ], [ true, %sw.bb2067 ], [ true, %sw.bb2071 ], [ true, %sw.bb2075 ], [ true, %sw.bb2081 ], [ true, %sw.bb2089 ], [ true, %sw.bb2093 ], [ true, %sw.bb2097 ], [ true, %sw.bb2101 ], [ true, %sw.bb2105 ], [ true, %sw.bb2109 ], [ true, %sw.bb2113 ], [ true, %sw.bb2117 ], [ true, %sw.bb2121 ], [ true, %sw.bb2125 ], [ true, %sw.bb2129 ], [ true, %sw.bb2133 ], [ true, %sw.bb2137 ], [ true, %sw.bb2141 ], [ true, %sw.bb2145 ], [ true, %sw.bb2149 ], [ true, %sw.bb2153 ], [ true, %sw.bb2157 ], [ true, %sw.bb2161 ], [ true, %sw.bb2165 ], [ true, %sw.bb2169 ], [ true, %sw.bb2173 ], [ true, %sw.bb2177 ], [ true, %sw.bb2185 ], [ true, %sw.bb2189 ], [ true, %sw.bb2193 ], [ true, %sw.bb2197 ], [ true, %sw.bb2202 ], [ true, %sw.bb2206 ], [ true, %sw.bb2210 ], [ true, %sw.bb2214 ], [ true, %sw.bb2222 ], [ true, %sw.bb2226 ], [ true, %sw.bb2230 ], [ true, %sw.bb2234 ], [ true, %sw.bb2238 ], [ true, %sw.bb2242 ], [ true, %sw.bb2246 ], [ true, %sw.bb2250 ], [ true, %sw.bb2254 ], [ true, %sw.bb2258 ], [ true, %sw.bb2262 ], [ true, %sw.bb2266 ], [ true, %sw.bb2270 ], [ true, %sw.bb2274 ], [ true, %sw.bb2284 ], [ true, %sw.bb2289 ], [ true, %sw.bb2293 ], [ true, %sw.bb2301 ], [ true, %sw.bb2305 ], [ true, %sw.bb2309 ], [ true, %sw.bb2313 ], [ true, %sw.bb2317 ], [ true, %sw.bb2321 ], [ true, %sw.bb2325 ], [ true, %sw.bb2329 ], [ true, %sw.bb2333 ], [ true, %sw.bb2337 ], [ true, %sw.bb2341 ], [ true, %sw.bb2345 ], [ true, %sw.bb2353 ], [ true, %sw.bb2357 ], [ true, %sw.bb2361 ], [ true, %sw.bb2365 ], [ true, %sw.bb2372 ], [ true, %sw.bb2378 ], [ true, %sw.bb2382 ], [ true, %sw.bb2386 ], [ true, %sw.bb2390 ], [ true, %sw.bb2394 ], [ true, %sw.bb2398 ], [ true, %sw.bb2402 ], [ true, %sw.bb2406 ], [ true, %sw.bb2410 ], [ true, %sw.bb2421 ], [ true, %sw.bb2429 ], [ true, %sw.bb2437 ], [ true, %sw.bb2445 ], [ true, %sw.bb2449 ], [ true, %sw.bb2457 ], [ true, %sw.bb2465 ], [ true, %sw.bb2469 ], [ true, %sw.bb2480 ], [ true, %sw.bb2485 ], [ true, %sw.bb2490 ], [ true, %sw.bb2497 ], [ true, %sw.bb2504 ], [ true, %sw.bb2513 ], [ true, %sw.bb2517 ], [ true, %sw.bb2525 ], [ true, %sw.bb2529 ], [ true, %sw.bb2537 ], [ true, %sw.bb2541 ], [ true, %sw.bb2550 ], [ true, %sw.bb2554 ], [ true, %sw.bb2558 ], [ true, %sw.bb2562 ], [ true, %sw.bb2566 ], [ true, %sw.bb2570 ], [ true, %sw.bb2574 ], [ true, %sw.bb2578 ], [ true, %sw.bb2582 ], [ true, %sw.bb2586 ], [ true, %sw.bb2590 ], [ true, %sw.bb2594 ], [ true, %sw.bb2598 ], [ true, %sw.bb2602 ], [ true, %sw.bb2609 ], [ true, %sw.bb2614 ], [ true, %sw.bb2621 ], [ true, %sw.bb2626 ], [ true, %sw.bb2630 ], [ true, %sw.bb2634 ], [ true, %sw.bb2641 ], [ true, %sw.bb2648 ], [ true, %sw.bb2654 ], [ true, %sw.bb2658 ], [ true, %sw.bb2662 ], [ true, %sw.bb2666 ], [ true, %sw.bb2670 ], [ true, %sw.bb2674 ], [ true, %sw.bb2678 ], [ true, %sw.bb2682 ], [ true, %sw.bb2690 ], [ true, %sw.bb2694 ], [ true, %sw.bb2698 ], [ true, %sw.bb2702 ], [ true, %sw.bb2706 ], [ true, %sw.bb2710 ], [ true, %sw.bb2714 ], [ true, %sw.bb2718 ], [ true, %sw.bb2722 ], [ true, %sw.bb2729 ], [ true, %sw.bb2737 ], [ true, %sw.bb2744 ], [ true, %sw.bb2750 ], [ true, %sw.bb2754 ], [ true, %sw.bb2758 ], [ true, %sw.bb2762 ], [ true, %sw.bb2766 ], [ true, %sw.bb2770 ], [ true, %sw.bb2778 ], [ true, %sw.bb2782 ], [ true, %sw.bb2786 ], [ true, %sw.bb2790 ], [ true, %sw.bb2794 ], [ true, %sw.bb2798 ], [ true, %sw.bb2802 ], [ true, %sw.bb2806 ], [ true, %sw.bb2813 ], [ true, %sw.bb2819 ], [ true, %sw.bb2826 ], [ true, %sw.bb2830 ], [ true, %sw.bb2834 ], [ true, %sw.bb2838 ], [ true, %sw.bb2842 ], [ true, %sw.bb2846 ], [ true, %sw.bb2850 ], [ true, %sw.bb2854 ], [ true, %sw.bb2858 ], [ true, %sw.bb2862 ], [ true, %sw.bb2866 ], [ true, %sw.bb2870 ], [ true, %sw.bb2874 ], [ true, %sw.bb2878 ], [ true, %sw.bb2882 ], [ true, %sw.bb2886 ], [ true, %sw.bb2890 ], [ true, %sw.bb2898 ], [ true, %sw.bb2902 ], [ true, %sw.bb2906 ], [ true, %sw.bb2910 ], [ true, %sw.bb2914 ], [ true, %sw.bb2918 ], [ true, %sw.bb2922 ], [ true, %sw.bb2926 ], [ true, %sw.bb2930 ], [ true, %sw.bb2934 ], [ true, %sw.bb2938 ], [ true, %sw.bb2942 ], [ true, %sw.bb2946 ], [ true, %sw.bb2950 ], [ true, %sw.bb2954 ], [ true, %sw.bb2958 ], [ true, %sw.bb2962 ], [ true, %sw.bb2966 ], [ true, %sw.bb2970 ], [ true, %sw.bb2974 ], [ true, %sw.bb2978 ], [ true, %sw.bb2982 ], [ true, %sw.bb2990 ], [ true, %sw.bb2994 ], [ true, %sw.bb2998 ], [ true, %sw.bb3002 ], [ true, %sw.bb3006 ], [ true, %sw.bb3010 ], [ true, %sw.bb3014 ], [ true, %sw.bb3018 ], [ true, %sw.bb3022 ], [ true, %sw.bb3026 ], [ true, %sw.bb3030 ], [ true, %sw.bb3034 ], [ true, %sw.bb3038 ], [ true, %sw.bb3042 ], [ true, %sw.bb3046 ], [ true, %sw.bb3050 ], [ true, %sw.bb3054 ], [ true, %sw.bb3058 ], [ true, %sw.bb3062 ], [ true, %sw.bb3066 ], [ true, %sw.bb3070 ], [ true, %sw.bb3074 ], [ true, %sw.bb3078 ], [ true, %sw.bb3082 ], [ true, %sw.bb3086 ], [ true, %sw.bb3090 ], [ true, %sw.bb3098 ], [ true, %sw.bb3102 ], [ true, %sw.bb3106 ], [ true, %sw.bb3112 ], [ true, %sw.bb3116 ], [ true, %sw.bb3120 ], [ true, %sw.bb3124 ], [ true, %sw.bb3129 ], [ true, %sw.bb3133 ], [ true, %sw.bb3137 ], [ true, %sw.bb3141 ], [ true, %sw.bb3145 ], [ true, %sw.bb3149 ], [ true, %sw.bb3153 ], [ true, %sw.bb3157 ], [ true, %sw.bb3161 ], [ true, %sw.bb3169 ], [ true, %sw.bb3173 ], [ true, %sw.bb3177 ], [ true, %sw.bb3181 ], [ true, %sw.bb3185 ], [ true, %sw.bb3189 ], [ true, %sw.bb3193 ], [ true, %sw.bb3197 ], [ true, %sw.bb3201 ], [ true, %sw.bb3205 ], [ true, %sw.bb3209 ], [ true, %sw.bb3213 ], [ true, %sw.bb3217 ], [ true, %sw.bb3221 ], [ true, %sw.bb3225 ], [ true, %sw.bb3233 ], [ true, %sw.bb3237 ], [ true, %sw.bb3241 ], [ true, %sw.bb3245 ], [ true, %sw.bb3249 ], [ true, %sw.bb3253 ], [ true, %sw.bb3257 ], [ true, %sw.bb3261 ], [ true, %sw.bb3265 ], [ true, %sw.bb3269 ], [ true, %sw.bb3273 ], [ true, %sw.bb3277 ], [ true, %sw.bb3281 ], [ true, %sw.bb3285 ], [ true, %sw.bb3289 ], [ true, %sw.bb3293 ], [ true, %sw.bb3297 ], [ true, %sw.bb3301 ], [ true, %sw.bb3305 ], [ true, %sw.bb3309 ], [ true, %sw.bb3313 ], [ true, %sw.bb3317 ], [ true, %sw.bb3325 ], [ true, %sw.bb3329 ], [ true, %sw.bb3333 ], [ true, %sw.bb3337 ], [ true, %sw.bb3341 ], [ true, %sw.bb3345 ], [ true, %sw.bb3349 ], [ true, %sw.bb3353 ], [ true, %sw.bb3357 ], [ true, %sw.bb3361 ], [ true, %sw.bb3365 ], [ true, %sw.bb3369 ], [ true, %sw.bb3373 ], [ true, %sw.bb3377 ], [ true, %sw.bb3381 ], [ true, %sw.bb3385 ], [ true, %sw.bb3389 ], [ true, %sw.bb3393 ], [ true, %sw.bb3397 ], [ true, %sw.bb3401 ], [ true, %sw.bb3405 ], [ true, %sw.bb3409 ], [ true, %sw.bb3413 ], [ true, %sw.bb3417 ], [ true, %sw.bb3421 ], [ true, %sw.bb3425 ], [ true, %sw.bb3429 ], [ true, %sw.bb3440 ], [ true, %sw.bb3445 ], [ true, %sw.bb3539 ], [ true, %sw.bb3543 ], [ true, %trans_sfence_w_inval.exit ], [ true, %trans_sfence_inval_ir.exit ], [ true, %sw.bb3732 ], [ true, %sw.bb3736 ], [ true, %sw.bb3740 ], [ true, %sw.bb3747 ], [ true, %sw.bb3751 ], [ true, %sw.bb3755 ], [ true, %sw.bb3759 ], [ true, %sw.bb3763 ], [ true, %sw.bb3767 ], [ true, %sw.bb3775 ], [ true, %sw.bb3779 ], [ true, %sw.bb3783 ], [ true, %sw.bb3787 ], [ true, %sw.bb3791 ], [ true, %sw.bb3795 ], [ true, %sw.bb3800 ], [ true, %sw.bb3804 ], [ true, %sw.bb3808 ], [ true, %sw.bb3812 ], [ true, %sw.bb3816 ], [ true, %sw.bb3820 ], [ true, %trans_vl1re8_v.exit.thread ], [ true, %trans_vl1re16_v.exit.thread ], [ true, %trans_vl1re32_v.exit.thread ], [ true, %trans_vl1re64_v.exit.thread ], [ true, %trans_sm3p0.exit.thread ], [ true, %trans_sm3p1.exit.thread ], [ true, %trans_orc_b.exit.thread ], [ true, %gen_pc_plus_diff.exit.i ], [ true, %sw.epilog.i.i ], [ true, %if.then5.i.i ], [ true, %trans_clzw.exit.thread ], [ true, %trans_vs1r_v.exit.thread ], [ true, %trans_amoadd_w.exit.thread ], [ true, %trans_amoswap_w.exit.thread ], [ true, %trans_lr_w.exit.thread ], [ true, %trans_sc_w.exit.thread ], [ true, %trans_amoxor_w.exit.thread ], [ true, %trans_amoor_w.exit.thread ], [ true, %trans_amoand_w.exit.thread ], [ true, %trans_amomin_w.exit.thread ], [ true, %trans_amomax_w.exit.thread ], [ true, %trans_amominu_w.exit.thread ], [ true, %trans_amomaxu_w.exit.thread ], [ true, %trans_czero_eqz.exit.thread ], [ true, %trans_czero_nez.exit.thread ], [ true, %trans_sm4ed.exit.thread ], [ true, %trans_sm4ks.exit.thread ], [ true, %sw.bb1230 ], [ true, %sw.epilog.i.i3689 ], [ true, %if.then7.i.i ] ret i1 %retval.0 } @@ -17530,109 +17505,109 @@ trans_th_dcache_call.exit: ; preds = %sw.bb4 br i1 %cmp.i.not, label %sw.epilog502, label %return sw.bb5: ; preds = %sw.bb2 - %cfg_ptr.i289 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %8 = load ptr, ptr %cfg_ptr.i289, align 8 - %ext_xtheadcmo.i290 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %8, i64 0, i32 84 - %9 = load i8, ptr %ext_xtheadcmo.i290, align 1 + %cfg_ptr.i283 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %8 = load ptr, ptr %cfg_ptr.i283, align 8 + %ext_xtheadcmo.i284 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %8, i64 0, i32 84 + %9 = load i8, ptr %ext_xtheadcmo.i284, align 1 %10 = and i8 %9, 1 - %tobool.not.i291 = icmp eq i8 %10, 0 - br i1 %tobool.not.i291, label %sw.epilog502, label %trans_th_dcache_iall.exit + %tobool.not.i285 = icmp eq i8 %10, 0 + br i1 %tobool.not.i285, label %sw.epilog502, label %trans_th_dcache_iall.exit trans_th_dcache_iall.exit: ; preds = %sw.bb5 - %priv.i293 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %11 = load i32, ptr %priv.i293, align 8 - %cmp.i294.not = icmp eq i32 %11, 0 - br i1 %cmp.i294.not, label %sw.epilog502, label %return + %priv.i287 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %11 = load i32, ptr %priv.i287, align 8 + %cmp.i288.not = icmp eq i32 %11, 0 + br i1 %cmp.i288.not, label %sw.epilog502, label %return sw.bb9: ; preds = %sw.bb2 - %cfg_ptr.i296 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %12 = load ptr, ptr %cfg_ptr.i296, align 8 - %ext_xtheadcmo.i297 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %12, i64 0, i32 84 - %13 = load i8, ptr %ext_xtheadcmo.i297, align 1 + %cfg_ptr.i290 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %12 = load ptr, ptr %cfg_ptr.i290, align 8 + %ext_xtheadcmo.i291 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %12, i64 0, i32 84 + %13 = load i8, ptr %ext_xtheadcmo.i291, align 1 %14 = and i8 %13, 1 - %tobool.not.i298 = icmp eq i8 %14, 0 - br i1 %tobool.not.i298, label %sw.epilog502, label %trans_th_dcache_ciall.exit + %tobool.not.i292 = icmp eq i8 %14, 0 + br i1 %tobool.not.i292, label %sw.epilog502, label %trans_th_dcache_ciall.exit trans_th_dcache_ciall.exit: ; preds = %sw.bb9 - %priv.i300 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %15 = load i32, ptr %priv.i300, align 8 - %cmp.i301.not = icmp eq i32 %15, 0 - br i1 %cmp.i301.not, label %sw.epilog502, label %return + %priv.i294 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %15 = load i32, ptr %priv.i294, align 8 + %cmp.i295.not = icmp eq i32 %15, 0 + br i1 %cmp.i295.not, label %sw.epilog502, label %return sw.bb13: ; preds = %sw.bb2 - %cfg_ptr.i303 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %16 = load ptr, ptr %cfg_ptr.i303, align 8 - %ext_xtheadcmo.i304 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %16, i64 0, i32 84 - %17 = load i8, ptr %ext_xtheadcmo.i304, align 1 + %cfg_ptr.i297 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %16 = load ptr, ptr %cfg_ptr.i297, align 8 + %ext_xtheadcmo.i298 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %16, i64 0, i32 84 + %17 = load i8, ptr %ext_xtheadcmo.i298, align 1 %18 = and i8 %17, 1 - %tobool.not.i305 = icmp eq i8 %18, 0 - br i1 %tobool.not.i305, label %sw.epilog502, label %trans_th_icache_iall.exit + %tobool.not.i299 = icmp eq i8 %18, 0 + br i1 %tobool.not.i299, label %sw.epilog502, label %trans_th_icache_iall.exit trans_th_icache_iall.exit: ; preds = %sw.bb13 - %priv.i307 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %19 = load i32, ptr %priv.i307, align 8 - %cmp.i308.not = icmp eq i32 %19, 0 - br i1 %cmp.i308.not, label %sw.epilog502, label %return + %priv.i301 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %19 = load i32, ptr %priv.i301, align 8 + %cmp.i302.not = icmp eq i32 %19, 0 + br i1 %cmp.i302.not, label %sw.epilog502, label %return sw.bb17: ; preds = %sw.bb2 - %cfg_ptr.i310 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %20 = load ptr, ptr %cfg_ptr.i310, align 8 - %ext_xtheadcmo.i311 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %20, i64 0, i32 84 - %21 = load i8, ptr %ext_xtheadcmo.i311, align 1 + %cfg_ptr.i304 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %20 = load ptr, ptr %cfg_ptr.i304, align 8 + %ext_xtheadcmo.i305 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %20, i64 0, i32 84 + %21 = load i8, ptr %ext_xtheadcmo.i305, align 1 %22 = and i8 %21, 1 - %tobool.not.i312 = icmp eq i8 %22, 0 - br i1 %tobool.not.i312, label %sw.epilog502, label %trans_th_icache_ialls.exit + %tobool.not.i306 = icmp eq i8 %22, 0 + br i1 %tobool.not.i306, label %sw.epilog502, label %trans_th_icache_ialls.exit trans_th_icache_ialls.exit: ; preds = %sw.bb17 - %priv.i314 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %23 = load i32, ptr %priv.i314, align 8 - %cmp.i315.not = icmp eq i32 %23, 0 - br i1 %cmp.i315.not, label %sw.epilog502, label %return + %priv.i308 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %23 = load i32, ptr %priv.i308, align 8 + %cmp.i309.not = icmp eq i32 %23, 0 + br i1 %cmp.i309.not, label %sw.epilog502, label %return sw.bb21: ; preds = %sw.bb2 - %cfg_ptr.i317 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %24 = load ptr, ptr %cfg_ptr.i317, align 8 - %ext_xtheadcmo.i318 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %24, i64 0, i32 84 - %25 = load i8, ptr %ext_xtheadcmo.i318, align 1 + %cfg_ptr.i311 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %24 = load ptr, ptr %cfg_ptr.i311, align 8 + %ext_xtheadcmo.i312 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %24, i64 0, i32 84 + %25 = load i8, ptr %ext_xtheadcmo.i312, align 1 %26 = and i8 %25, 1 - %tobool.not.i319 = icmp eq i8 %26, 0 - br i1 %tobool.not.i319, label %sw.epilog502, label %trans_th_l2cache_call.exit + %tobool.not.i313 = icmp eq i8 %26, 0 + br i1 %tobool.not.i313, label %sw.epilog502, label %trans_th_l2cache_call.exit trans_th_l2cache_call.exit: ; preds = %sw.bb21 - %priv.i321 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %27 = load i32, ptr %priv.i321, align 8 - %cmp.i322.not = icmp eq i32 %27, 0 - br i1 %cmp.i322.not, label %sw.epilog502, label %return + %priv.i315 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %27 = load i32, ptr %priv.i315, align 8 + %cmp.i316.not = icmp eq i32 %27, 0 + br i1 %cmp.i316.not, label %sw.epilog502, label %return sw.bb25: ; preds = %sw.bb2 - %cfg_ptr.i324 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %28 = load ptr, ptr %cfg_ptr.i324, align 8 - %ext_xtheadcmo.i325 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %28, i64 0, i32 84 - %29 = load i8, ptr %ext_xtheadcmo.i325, align 1 + %cfg_ptr.i318 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %28 = load ptr, ptr %cfg_ptr.i318, align 8 + %ext_xtheadcmo.i319 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %28, i64 0, i32 84 + %29 = load i8, ptr %ext_xtheadcmo.i319, align 1 %30 = and i8 %29, 1 - %tobool.not.i326 = icmp eq i8 %30, 0 - br i1 %tobool.not.i326, label %sw.epilog502, label %trans_th_l2cache_iall.exit + %tobool.not.i320 = icmp eq i8 %30, 0 + br i1 %tobool.not.i320, label %sw.epilog502, label %trans_th_l2cache_iall.exit trans_th_l2cache_iall.exit: ; preds = %sw.bb25 - %priv.i328 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %31 = load i32, ptr %priv.i328, align 8 - %cmp.i329.not = icmp eq i32 %31, 0 - br i1 %cmp.i329.not, label %sw.epilog502, label %return + %priv.i322 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %31 = load i32, ptr %priv.i322, align 8 + %cmp.i323.not = icmp eq i32 %31, 0 + br i1 %cmp.i323.not, label %sw.epilog502, label %return sw.bb29: ; preds = %sw.bb2 - %cfg_ptr.i331 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %32 = load ptr, ptr %cfg_ptr.i331, align 8 - %ext_xtheadcmo.i332 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %32, i64 0, i32 84 - %33 = load i8, ptr %ext_xtheadcmo.i332, align 1 + %cfg_ptr.i325 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %32 = load ptr, ptr %cfg_ptr.i325, align 8 + %ext_xtheadcmo.i326 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %32, i64 0, i32 84 + %33 = load i8, ptr %ext_xtheadcmo.i326, align 1 %34 = and i8 %33, 1 - %tobool.not.i333 = icmp eq i8 %34, 0 - br i1 %tobool.not.i333, label %sw.epilog502, label %trans_th_l2cache_ciall.exit + %tobool.not.i327 = icmp eq i8 %34, 0 + br i1 %tobool.not.i327, label %sw.epilog502, label %trans_th_l2cache_ciall.exit trans_th_l2cache_ciall.exit: ; preds = %sw.bb29 - %priv.i335 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %35 = load i32, ptr %priv.i335, align 8 - %cmp.i336.not = icmp eq i32 %35, 0 - br i1 %cmp.i336.not, label %sw.epilog502, label %return + %priv.i329 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %35 = load i32, ptr %priv.i329, align 8 + %cmp.i330.not = icmp eq i32 %35, 0 + br i1 %cmp.i330.not, label %sw.epilog502, label %return sw.bb49: ; preds = %sw.bb %shr.i.i = lshr i32 %insn, 15 @@ -17657,64 +17632,64 @@ sw.bb49: ; preds = %sw.bb ] sw.bb52: ; preds = %sw.bb49 - %cfg_ptr.i338 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %36 = load ptr, ptr %cfg_ptr.i338, align 8 - %ext_xtheadcmo.i339 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %36, i64 0, i32 84 - %37 = load i8, ptr %ext_xtheadcmo.i339, align 1 + %cfg_ptr.i332 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %36 = load ptr, ptr %cfg_ptr.i332, align 8 + %ext_xtheadcmo.i333 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %36, i64 0, i32 84 + %37 = load i8, ptr %ext_xtheadcmo.i333, align 1 %38 = and i8 %37, 1 - %tobool.not.i340 = icmp eq i8 %38, 0 - br i1 %tobool.not.i340, label %sw.epilog502, label %trans_th_dcache_csw.exit + %tobool.not.i334 = icmp eq i8 %38, 0 + br i1 %tobool.not.i334, label %sw.epilog502, label %trans_th_dcache_csw.exit trans_th_dcache_csw.exit: ; preds = %sw.bb52 - %priv.i342 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %39 = load i32, ptr %priv.i342, align 8 - %cmp.i343.not = icmp eq i32 %39, 0 - br i1 %cmp.i343.not, label %sw.epilog502, label %return + %priv.i336 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %39 = load i32, ptr %priv.i336, align 8 + %cmp.i337.not = icmp eq i32 %39, 0 + br i1 %cmp.i337.not, label %sw.epilog502, label %return sw.bb56: ; preds = %sw.bb49 - %cfg_ptr.i345 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %40 = load ptr, ptr %cfg_ptr.i345, align 8 - %ext_xtheadcmo.i346 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %40, i64 0, i32 84 - %41 = load i8, ptr %ext_xtheadcmo.i346, align 1 + %cfg_ptr.i339 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %40 = load ptr, ptr %cfg_ptr.i339, align 8 + %ext_xtheadcmo.i340 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %40, i64 0, i32 84 + %41 = load i8, ptr %ext_xtheadcmo.i340, align 1 %42 = and i8 %41, 1 - %tobool.not.i347 = icmp eq i8 %42, 0 - br i1 %tobool.not.i347, label %sw.epilog502, label %trans_th_dcache_isw.exit + %tobool.not.i341 = icmp eq i8 %42, 0 + br i1 %tobool.not.i341, label %sw.epilog502, label %trans_th_dcache_isw.exit trans_th_dcache_isw.exit: ; preds = %sw.bb56 - %priv.i349 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %43 = load i32, ptr %priv.i349, align 8 - %cmp.i350.not = icmp eq i32 %43, 0 - br i1 %cmp.i350.not, label %sw.epilog502, label %return + %priv.i343 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %43 = load i32, ptr %priv.i343, align 8 + %cmp.i344.not = icmp eq i32 %43, 0 + br i1 %cmp.i344.not, label %sw.epilog502, label %return sw.bb60: ; preds = %sw.bb49 - %cfg_ptr.i352 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %44 = load ptr, ptr %cfg_ptr.i352, align 8 - %ext_xtheadcmo.i353 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %44, i64 0, i32 84 - %45 = load i8, ptr %ext_xtheadcmo.i353, align 1 + %cfg_ptr.i346 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %44 = load ptr, ptr %cfg_ptr.i346, align 8 + %ext_xtheadcmo.i347 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %44, i64 0, i32 84 + %45 = load i8, ptr %ext_xtheadcmo.i347, align 1 %46 = and i8 %45, 1 - %tobool.not.i354 = icmp eq i8 %46, 0 - br i1 %tobool.not.i354, label %sw.epilog502, label %trans_th_dcache_cisw.exit + %tobool.not.i348 = icmp eq i8 %46, 0 + br i1 %tobool.not.i348, label %sw.epilog502, label %trans_th_dcache_cisw.exit trans_th_dcache_cisw.exit: ; preds = %sw.bb60 - %priv.i356 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %47 = load i32, ptr %priv.i356, align 8 - %cmp.i357.not = icmp eq i32 %47, 0 - br i1 %cmp.i357.not, label %sw.epilog502, label %return + %priv.i350 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %47 = load i32, ptr %priv.i350, align 8 + %cmp.i351.not = icmp eq i32 %47, 0 + br i1 %cmp.i351.not, label %sw.epilog502, label %return sw.bb64: ; preds = %sw.bb49 - %cfg_ptr.i359 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %48 = load ptr, ptr %cfg_ptr.i359, align 8 - %ext_xtheadcmo.i360 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %48, i64 0, i32 84 - %49 = load i8, ptr %ext_xtheadcmo.i360, align 1 + %cfg_ptr.i353 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %48 = load ptr, ptr %cfg_ptr.i353, align 8 + %ext_xtheadcmo.i354 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %48, i64 0, i32 84 + %49 = load i8, ptr %ext_xtheadcmo.i354, align 1 %50 = and i8 %49, 1 - %tobool.not.i361 = icmp eq i8 %50, 0 - br i1 %tobool.not.i361, label %sw.epilog502, label %trans_th_dcache_cval1.exit + %tobool.not.i355 = icmp eq i8 %50, 0 + br i1 %tobool.not.i355, label %sw.epilog502, label %trans_th_dcache_cval1.exit trans_th_dcache_cval1.exit: ; preds = %sw.bb64 - %priv.i363 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %51 = load i32, ptr %priv.i363, align 8 - %cmp.i364.not = icmp eq i32 %51, 0 - br i1 %cmp.i364.not, label %sw.epilog502, label %return + %priv.i357 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %51 = load i32, ptr %priv.i357, align 8 + %cmp.i358.not = icmp eq i32 %51, 0 + br i1 %cmp.i358.not, label %sw.epilog502, label %return sw.bb68: ; preds = %sw.bb49 %52 = getelementptr i8, ptr %ctx, i64 128 @@ -17722,110 +17697,110 @@ sw.bb68: ; preds = %sw.bb49 %53 = getelementptr i8, ptr %ctx.val, i64 107 %ctx.val.val = load i8, ptr %53, align 1 %54 = and i8 %ctx.val.val, 1 - %tobool.not.i366.not = icmp eq i8 %54, 0 - br i1 %tobool.not.i366.not, label %sw.epilog502, label %return + %tobool.not.i360.not = icmp eq i8 %54, 0 + br i1 %tobool.not.i360.not, label %sw.epilog502, label %return sw.bb72: ; preds = %sw.bb49 %55 = getelementptr i8, ptr %ctx, i64 128 - %ctx.val286 = load ptr, ptr %55, align 8 - %56 = getelementptr i8, ptr %ctx.val286, i64 107 - %ctx.val286.val = load i8, ptr %56, align 1 - %57 = and i8 %ctx.val286.val, 1 - %tobool.not.i367.not = icmp eq i8 %57, 0 - br i1 %tobool.not.i367.not, label %sw.epilog502, label %return + %ctx.val280 = load ptr, ptr %55, align 8 + %56 = getelementptr i8, ptr %ctx.val280, i64 107 + %ctx.val280.val = load i8, ptr %56, align 1 + %57 = and i8 %ctx.val280.val, 1 + %tobool.not.i361.not = icmp eq i8 %57, 0 + br i1 %tobool.not.i361.not, label %sw.epilog502, label %return sw.bb76: ; preds = %sw.bb49 %58 = getelementptr i8, ptr %ctx, i64 128 - %ctx.val287 = load ptr, ptr %58, align 8 - %59 = getelementptr i8, ptr %ctx.val287, i64 107 - %ctx.val287.val = load i8, ptr %59, align 1 - %60 = and i8 %ctx.val287.val, 1 - %tobool.not.i368.not = icmp eq i8 %60, 0 - br i1 %tobool.not.i368.not, label %sw.epilog502, label %return + %ctx.val281 = load ptr, ptr %58, align 8 + %59 = getelementptr i8, ptr %ctx.val281, i64 107 + %ctx.val281.val = load i8, ptr %59, align 1 + %60 = and i8 %ctx.val281.val, 1 + %tobool.not.i362.not = icmp eq i8 %60, 0 + br i1 %tobool.not.i362.not, label %sw.epilog502, label %return sw.bb80: ; preds = %sw.bb49 - %cfg_ptr.i369 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %61 = load ptr, ptr %cfg_ptr.i369, align 8 - %ext_xtheadcmo.i370 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %61, i64 0, i32 84 - %62 = load i8, ptr %ext_xtheadcmo.i370, align 1 + %cfg_ptr.i363 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %61 = load ptr, ptr %cfg_ptr.i363, align 8 + %ext_xtheadcmo.i364 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %61, i64 0, i32 84 + %62 = load i8, ptr %ext_xtheadcmo.i364, align 1 %63 = and i8 %62, 1 - %tobool.not.i371 = icmp eq i8 %63, 0 - br i1 %tobool.not.i371, label %sw.epilog502, label %trans_th_dcache_cpal1.exit + %tobool.not.i365 = icmp eq i8 %63, 0 + br i1 %tobool.not.i365, label %sw.epilog502, label %trans_th_dcache_cpal1.exit trans_th_dcache_cpal1.exit: ; preds = %sw.bb80 - %priv.i373 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %64 = load i32, ptr %priv.i373, align 8 - %cmp.i374.not = icmp eq i32 %64, 0 - br i1 %cmp.i374.not, label %sw.epilog502, label %return + %priv.i367 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %64 = load i32, ptr %priv.i367, align 8 + %cmp.i368.not = icmp eq i32 %64, 0 + br i1 %cmp.i368.not, label %sw.epilog502, label %return sw.bb84: ; preds = %sw.bb49 - %cfg_ptr.i376 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %65 = load ptr, ptr %cfg_ptr.i376, align 8 - %ext_xtheadcmo.i377 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %65, i64 0, i32 84 - %66 = load i8, ptr %ext_xtheadcmo.i377, align 1 + %cfg_ptr.i370 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %65 = load ptr, ptr %cfg_ptr.i370, align 8 + %ext_xtheadcmo.i371 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %65, i64 0, i32 84 + %66 = load i8, ptr %ext_xtheadcmo.i371, align 1 %67 = and i8 %66, 1 - %tobool.not.i378 = icmp eq i8 %67, 0 - br i1 %tobool.not.i378, label %sw.epilog502, label %trans_th_dcache_cpa.exit + %tobool.not.i372 = icmp eq i8 %67, 0 + br i1 %tobool.not.i372, label %sw.epilog502, label %trans_th_dcache_cpa.exit trans_th_dcache_cpa.exit: ; preds = %sw.bb84 - %priv.i380 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %68 = load i32, ptr %priv.i380, align 8 - %cmp.i381.not = icmp eq i32 %68, 0 - br i1 %cmp.i381.not, label %sw.epilog502, label %return + %priv.i374 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %68 = load i32, ptr %priv.i374, align 8 + %cmp.i375.not = icmp eq i32 %68, 0 + br i1 %cmp.i375.not, label %sw.epilog502, label %return sw.bb88: ; preds = %sw.bb49 - %cfg_ptr.i383 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %69 = load ptr, ptr %cfg_ptr.i383, align 8 - %ext_xtheadcmo.i384 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %69, i64 0, i32 84 - %70 = load i8, ptr %ext_xtheadcmo.i384, align 1 + %cfg_ptr.i377 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %69 = load ptr, ptr %cfg_ptr.i377, align 8 + %ext_xtheadcmo.i378 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %69, i64 0, i32 84 + %70 = load i8, ptr %ext_xtheadcmo.i378, align 1 %71 = and i8 %70, 1 - %tobool.not.i385 = icmp eq i8 %71, 0 - br i1 %tobool.not.i385, label %sw.epilog502, label %trans_th_dcache_ipa.exit + %tobool.not.i379 = icmp eq i8 %71, 0 + br i1 %tobool.not.i379, label %sw.epilog502, label %trans_th_dcache_ipa.exit trans_th_dcache_ipa.exit: ; preds = %sw.bb88 - %priv.i387 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %72 = load i32, ptr %priv.i387, align 8 - %cmp.i388.not = icmp eq i32 %72, 0 - br i1 %cmp.i388.not, label %sw.epilog502, label %return + %priv.i381 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %72 = load i32, ptr %priv.i381, align 8 + %cmp.i382.not = icmp eq i32 %72, 0 + br i1 %cmp.i382.not, label %sw.epilog502, label %return sw.bb92: ; preds = %sw.bb49 - %cfg_ptr.i390 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %73 = load ptr, ptr %cfg_ptr.i390, align 8 - %ext_xtheadcmo.i391 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %73, i64 0, i32 84 - %74 = load i8, ptr %ext_xtheadcmo.i391, align 1 + %cfg_ptr.i384 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %73 = load ptr, ptr %cfg_ptr.i384, align 8 + %ext_xtheadcmo.i385 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %73, i64 0, i32 84 + %74 = load i8, ptr %ext_xtheadcmo.i385, align 1 %75 = and i8 %74, 1 - %tobool.not.i392 = icmp eq i8 %75, 0 - br i1 %tobool.not.i392, label %sw.epilog502, label %trans_th_dcache_cipa.exit + %tobool.not.i386 = icmp eq i8 %75, 0 + br i1 %tobool.not.i386, label %sw.epilog502, label %trans_th_dcache_cipa.exit trans_th_dcache_cipa.exit: ; preds = %sw.bb92 - %priv.i394 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %76 = load i32, ptr %priv.i394, align 8 - %cmp.i395.not = icmp eq i32 %76, 0 - br i1 %cmp.i395.not, label %sw.epilog502, label %return + %priv.i388 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %76 = load i32, ptr %priv.i388, align 8 + %cmp.i389.not = icmp eq i32 %76, 0 + br i1 %cmp.i389.not, label %sw.epilog502, label %return sw.bb96: ; preds = %sw.bb49 %77 = getelementptr i8, ptr %ctx, i64 128 - %ctx.val288 = load ptr, ptr %77, align 8 - %78 = getelementptr i8, ptr %ctx.val288, i64 107 - %ctx.val288.val = load i8, ptr %78, align 1 - %79 = and i8 %ctx.val288.val, 1 - %tobool.not.i397.not = icmp eq i8 %79, 0 - br i1 %tobool.not.i397.not, label %sw.epilog502, label %return + %ctx.val282 = load ptr, ptr %77, align 8 + %78 = getelementptr i8, ptr %ctx.val282, i64 107 + %ctx.val282.val = load i8, ptr %78, align 1 + %79 = and i8 %ctx.val282.val, 1 + %tobool.not.i391.not = icmp eq i8 %79, 0 + br i1 %tobool.not.i391.not, label %sw.epilog502, label %return sw.bb100: ; preds = %sw.bb49 - %cfg_ptr.i398 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %80 = load ptr, ptr %cfg_ptr.i398, align 8 - %ext_xtheadcmo.i399 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %80, i64 0, i32 84 - %81 = load i8, ptr %ext_xtheadcmo.i399, align 1 + %cfg_ptr.i392 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %80 = load ptr, ptr %cfg_ptr.i392, align 8 + %ext_xtheadcmo.i393 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %80, i64 0, i32 84 + %81 = load i8, ptr %ext_xtheadcmo.i393, align 1 %82 = and i8 %81, 1 - %tobool.not.i400 = icmp eq i8 %82, 0 - br i1 %tobool.not.i400, label %sw.epilog502, label %trans_th_icache_ipa.exit + %tobool.not.i394 = icmp eq i8 %82, 0 + br i1 %tobool.not.i394, label %sw.epilog502, label %trans_th_icache_ipa.exit trans_th_icache_ipa.exit: ; preds = %sw.bb100 - %priv.i402 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 - %83 = load i32, ptr %priv.i402, align 8 - %cmp.i403.not = icmp eq i32 %83, 0 - br i1 %cmp.i403.not, label %sw.epilog502, label %return + %priv.i396 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 12 + %83 = load i32, ptr %priv.i396, align 8 + %cmp.i397.not = icmp eq i32 %83, 0 + br i1 %cmp.i397.not, label %sw.epilog502, label %return sw.bb110: ; preds = %entry %shr111 = lshr i32 %insn, 26 @@ -17845,10 +17820,10 @@ sw.bb110: ; preds = %entry ] sw.bb113: ; preds = %sw.bb110 - %shr.i.i407 = lshr i32 %insn, 15 - %and.i.i408 = and i32 %shr.i.i407, 31 - %rs1.i409 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i.i408, ptr %rs1.i409, align 4 + %shr.i.i401 = lshr i32 %insn, 15 + %and.i.i402 = and i32 %shr.i.i401, 31 + %rs1.i403 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i.i402, ptr %rs1.i403, align 4 %shr.i5.i = lshr i32 %insn, 7 %and.i6.i = and i32 %shr.i5.i, 31 store i32 %and.i6.i, ptr %u, align 4 @@ -17865,81 +17840,84 @@ sw.bb116: ; preds = %sw.bb113 br i1 %call117, label %return, label %sw.epilog502 sw.bb120: ; preds = %sw.bb113 - %cfg_ptr.i410 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %85 = load ptr, ptr %cfg_ptr.i410, align 8 + %cfg_ptr.i404 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %85 = load ptr, ptr %cfg_ptr.i404, align 8 %ext_xtheadba.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %85, i64 0, i32 81 %86 = load i8, ptr %ext_xtheadba.i, align 8 %87 = and i8 %86, 1 - %tobool.not.i411 = icmp eq i8 %87, 0 - br i1 %tobool.not.i411, label %sw.epilog502, label %trans_th_addsl1.exit + %tobool.not.i405 = icmp eq i8 %87, 0 + br i1 %tobool.not.i405, label %sw.epilog502, label %trans_th_addsl1.exit trans_th_addsl1.exit: ; preds = %sw.bb120 %call.i = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_th_addsl1, ptr noundef null) br i1 %call.i, label %return, label %sw.epilog502 +default.unreachable1647: ; preds = %sw.bb258 + unreachable + sw.bb125: ; preds = %sw.bb110 - %shr.i.i413 = lshr i32 %insn, 15 - %and.i.i414 = and i32 %shr.i.i413, 31 - %rs1.i415 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i.i414, ptr %rs1.i415, align 4 - %shr.i5.i416 = lshr i32 %insn, 7 - %and.i6.i417 = and i32 %shr.i5.i416, 31 - store i32 %and.i6.i417, ptr %u, align 4 - %shr.i7.i418 = lshr i32 %insn, 20 - %and.i8.i419 = and i32 %shr.i7.i418, 31 - %rs2.i420 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i8.i419, ptr %rs2.i420, align 4 + %shr.i.i407 = lshr i32 %insn, 15 + %and.i.i408 = and i32 %shr.i.i407, 31 + %rs1.i409 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i.i408, ptr %rs1.i409, align 4 + %shr.i5.i410 = lshr i32 %insn, 7 + %and.i6.i411 = and i32 %shr.i5.i410, 31 + store i32 %and.i6.i411, ptr %u, align 4 + %shr.i7.i412 = lshr i32 %insn, 20 + %and.i8.i413 = and i32 %shr.i7.i412, 31 + %rs2.i414 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i8.i413, ptr %rs2.i414, align 4 %88 = and i32 %insn, 33554432 %trunc273.not = icmp eq i32 %88, 0 - %cfg_ptr.i421 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %89 = load ptr, ptr %cfg_ptr.i421, align 8 - %ext_xtheadba.i422 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %89, i64 0, i32 81 - %90 = load i8, ptr %ext_xtheadba.i422, align 8 + %cfg_ptr.i415 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %89 = load ptr, ptr %cfg_ptr.i415, align 8 + %ext_xtheadba.i416 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %89, i64 0, i32 81 + %90 = load i8, ptr %ext_xtheadba.i416, align 8 %91 = and i8 %90, 1 - %tobool.not.i423 = icmp eq i8 %91, 0 + %tobool.not.i417 = icmp eq i8 %91, 0 br i1 %trunc273.not, label %sw.bb128, label %sw.bb132 sw.bb128: ; preds = %sw.bb125 - br i1 %tobool.not.i423, label %sw.epilog502, label %trans_th_addsl2.exit + br i1 %tobool.not.i417, label %sw.epilog502, label %trans_th_addsl2.exit trans_th_addsl2.exit: ; preds = %sw.bb128 - %call.i425 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_th_addsl2, ptr noundef null) - br i1 %call.i425, label %return, label %sw.epilog502 + %call.i419 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_th_addsl2, ptr noundef null) + br i1 %call.i419, label %return, label %sw.epilog502 sw.bb132: ; preds = %sw.bb125 - br i1 %tobool.not.i423, label %sw.epilog502, label %trans_th_addsl3.exit + br i1 %tobool.not.i417, label %sw.epilog502, label %trans_th_addsl3.exit trans_th_addsl3.exit: ; preds = %sw.bb132 - %call.i431 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_th_addsl3, ptr noundef null) - br i1 %call.i431, label %return, label %sw.epilog502 + %call.i425 = call fastcc zeroext i1 @gen_arith(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, ptr noundef nonnull @gen_th_addsl3, ptr noundef null) + br i1 %call.i425, label %return, label %sw.epilog502 sw.bb137: ; preds = %sw.bb110 - %shr.i.i433 = lshr i32 %insn, 15 - %and.i.i434 = and i32 %shr.i.i433, 31 - %rs1.i435 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i.i434, ptr %rs1.i435, align 4 - %shr.i5.i436 = lshr i32 %insn, 20 - %and.i6.i437 = and i32 %shr.i5.i436, 63 - store i32 %and.i6.i437, ptr %u, align 4 - %shr.i7.i438 = lshr i32 %insn, 7 - %and.i8.i439 = and i32 %shr.i7.i438, 31 + %shr.i.i427 = lshr i32 %insn, 15 + %and.i.i428 = and i32 %shr.i.i427, 31 + %rs1.i429 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i.i428, ptr %rs1.i429, align 4 + %shr.i5.i430 = lshr i32 %insn, 20 + %and.i6.i431 = and i32 %shr.i5.i430, 63 + store i32 %and.i6.i431, ptr %u, align 4 + %shr.i7.i432 = lshr i32 %insn, 7 + %and.i8.i433 = and i32 %shr.i7.i432, 31 %rd.i = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i8.i439, ptr %rd.i, align 4 + store i32 %and.i8.i433, ptr %rd.i, align 4 %call138 = call fastcc zeroext i1 @trans_th_srri(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call138, label %return, label %sw.epilog502 sw.bb141: ; preds = %sw.bb110 - %shr.i.i440 = lshr i32 %insn, 15 - %and.i.i441 = and i32 %shr.i.i440, 31 - %rs1.i442 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i.i441, ptr %rs1.i442, align 4 - %shr.i5.i443 = lshr i32 %insn, 20 - %and.i6.i444 = and i32 %shr.i5.i443, 31 - store i32 %and.i6.i444, ptr %u, align 4 - %shr.i7.i445 = lshr i32 %insn, 7 - %and.i8.i446 = and i32 %shr.i7.i445, 31 - %rd.i447 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i8.i446, ptr %rd.i447, align 4 + %shr.i.i434 = lshr i32 %insn, 15 + %and.i.i435 = and i32 %shr.i.i434, 31 + %rs1.i436 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i.i435, ptr %rs1.i436, align 4 + %shr.i5.i437 = lshr i32 %insn, 20 + %and.i6.i438 = and i32 %shr.i5.i437, 31 + store i32 %and.i6.i438, ptr %u, align 4 + %shr.i7.i439 = lshr i32 %insn, 7 + %and.i8.i440 = and i32 %shr.i7.i439, 31 + %rd.i441 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i8.i440, ptr %rd.i441, align 4 %92 = and i32 %insn, 33554432 %cond3 = icmp eq i32 %92, 0 br i1 %cond3, label %sw.bb144, label %sw.epilog502 @@ -17949,65 +17927,65 @@ sw.bb144: ; preds = %sw.bb141 br i1 %call145, label %return, label %sw.epilog502 sw.bb149: ; preds = %sw.bb110 - %shr.i.i448 = lshr i32 %insn, 15 - %and.i.i449 = and i32 %shr.i.i448, 31 - %rs1.i450 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i.i449, ptr %rs1.i450, align 4 - %shr.i5.i451 = lshr i32 %insn, 7 - %and.i6.i452 = and i32 %shr.i5.i451, 31 - store i32 %and.i6.i452, ptr %u, align 4 - %shr.i7.i453 = lshr i32 %insn, 20 - %and.i8.i454 = and i32 %shr.i7.i453, 31 - %rs2.i455 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i8.i454, ptr %rs2.i455, align 4 + %shr.i.i442 = lshr i32 %insn, 15 + %and.i.i443 = and i32 %shr.i.i442, 31 + %rs1.i444 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i.i443, ptr %rs1.i444, align 4 + %shr.i5.i445 = lshr i32 %insn, 7 + %and.i6.i446 = and i32 %shr.i5.i445, 31 + store i32 %and.i6.i446, ptr %u, align 4 + %shr.i7.i447 = lshr i32 %insn, 20 + %and.i8.i448 = and i32 %shr.i7.i447, 31 + %rs2.i449 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i8.i448, ptr %rs2.i449, align 4 %93 = and i32 %insn, 33554432 %trunc272.not = icmp eq i32 %93, 0 - %cfg_ptr.i456 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %94 = load ptr, ptr %cfg_ptr.i456, align 8 + %cfg_ptr.i450 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %94 = load ptr, ptr %cfg_ptr.i450, align 8 %ext_xtheadmac.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %94, i64 0, i32 88 %95 = load i8, ptr %ext_xtheadmac.i, align 1 %96 = and i8 %95, 1 - %tobool.not.i457.not = icmp eq i8 %96, 0 + %tobool.not.i451.not = icmp eq i8 %96, 0 br i1 %trunc272.not, label %sw.bb152, label %sw.bb156 sw.bb152: ; preds = %sw.bb149 - br i1 %tobool.not.i457.not, label %sw.epilog502, label %trans_th_mula.exit.thread + br i1 %tobool.not.i451.not, label %sw.epilog502, label %trans_th_mula.exit.thread trans_th_mula.exit.thread: ; preds = %sw.bb152 call fastcc void @gen_th_mac(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_add_i64, ptr noundef null) br label %return sw.bb156: ; preds = %sw.bb149 - br i1 %tobool.not.i457.not, label %sw.epilog502, label %trans_th_muls.exit.thread + br i1 %tobool.not.i451.not, label %sw.epilog502, label %trans_th_muls.exit.thread trans_th_muls.exit.thread: ; preds = %sw.bb156 call fastcc void @gen_th_mac(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_sub_i64, ptr noundef null) br label %return sw.bb161: ; preds = %sw.bb110 - %shr.i.i465 = lshr i32 %insn, 15 - %and.i.i466 = and i32 %shr.i.i465, 31 - %rs1.i467 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i.i466, ptr %rs1.i467, align 4 - %shr.i5.i468 = lshr i32 %insn, 7 - %and.i6.i469 = and i32 %shr.i5.i468, 31 - store i32 %and.i6.i469, ptr %u, align 4 - %shr.i7.i470 = lshr i32 %insn, 20 - %and.i8.i471 = and i32 %shr.i7.i470, 31 - %rs2.i472 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i8.i471, ptr %rs2.i472, align 4 + %shr.i.i459 = lshr i32 %insn, 15 + %and.i.i460 = and i32 %shr.i.i459, 31 + %rs1.i461 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i.i460, ptr %rs1.i461, align 4 + %shr.i5.i462 = lshr i32 %insn, 7 + %and.i6.i463 = and i32 %shr.i5.i462, 31 + store i32 %and.i6.i463, ptr %u, align 4 + %shr.i7.i464 = lshr i32 %insn, 20 + %and.i8.i465 = and i32 %shr.i7.i464, 31 + %rs2.i466 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i8.i465, ptr %rs2.i466, align 4 %97 = and i32 %insn, 33554432 %trunc271.not = icmp eq i32 %97, 0 - %cfg_ptr.i473 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %98 = load ptr, ptr %cfg_ptr.i473, align 8 - %ext_xtheadmac.i474 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %98, i64 0, i32 88 - %99 = load i8, ptr %ext_xtheadmac.i474, align 1 + %cfg_ptr.i467 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %98 = load ptr, ptr %cfg_ptr.i467, align 8 + %ext_xtheadmac.i468 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %98, i64 0, i32 88 + %99 = load i8, ptr %ext_xtheadmac.i468, align 1 %100 = and i8 %99, 1 - %tobool.not.i475.not = icmp eq i8 %100, 0 + %tobool.not.i469.not = icmp eq i8 %100, 0 br i1 %trunc271.not, label %sw.bb164, label %sw.bb168 sw.bb164: ; preds = %sw.bb161 - br i1 %tobool.not.i475.not, label %sw.epilog502, label %trans_th_mulaw.exit.thread + br i1 %tobool.not.i469.not, label %sw.epilog502, label %trans_th_mulaw.exit.thread trans_th_mulaw.exit.thread: ; preds = %sw.bb164 %ol.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 @@ -18016,26 +17994,26 @@ trans_th_mulaw.exit.thread: ; preds = %sw.bb164 br label %return sw.bb168: ; preds = %sw.bb161 - br i1 %tobool.not.i475.not, label %sw.epilog502, label %trans_th_mulsw.exit.thread + br i1 %tobool.not.i469.not, label %sw.epilog502, label %trans_th_mulsw.exit.thread trans_th_mulsw.exit.thread: ; preds = %sw.bb168 - %ol.i481 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - store i32 1, ptr %ol.i481, align 8 + %ol.i475 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + store i32 1, ptr %ol.i475, align 8 call fastcc void @gen_th_mac(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @tcg_gen_sub_i64, ptr noundef null) br label %return sw.bb173: ; preds = %sw.bb110 - %shr.i.i483 = lshr i32 %insn, 15 - %and.i.i484 = and i32 %shr.i.i483, 31 - %rs1.i485 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i.i484, ptr %rs1.i485, align 4 - %shr.i5.i486 = lshr i32 %insn, 7 - %and.i6.i487 = and i32 %shr.i5.i486, 31 - store i32 %and.i6.i487, ptr %u, align 4 - %shr.i7.i488 = lshr i32 %insn, 20 - %and.i8.i489 = and i32 %shr.i7.i488, 31 - %rs2.i490 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i8.i489, ptr %rs2.i490, align 4 + %shr.i.i477 = lshr i32 %insn, 15 + %and.i.i478 = and i32 %shr.i.i477, 31 + %rs1.i479 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i.i478, ptr %rs1.i479, align 4 + %shr.i5.i480 = lshr i32 %insn, 7 + %and.i6.i481 = and i32 %shr.i5.i480, 31 + store i32 %and.i6.i481, ptr %u, align 4 + %shr.i7.i482 = lshr i32 %insn, 20 + %and.i8.i483 = and i32 %shr.i7.i482, 31 + %rs2.i484 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i8.i483, ptr %rs2.i484, align 4 %101 = and i32 %insn, 33554432 %trunc270.not = icmp eq i32 %101, 0 br i1 %trunc270.not, label %sw.bb176, label %sw.bb180 @@ -18049,49 +18027,49 @@ sw.bb180: ; preds = %sw.bb173 br i1 %call181, label %return, label %sw.epilog502 sw.bb185: ; preds = %sw.bb110 - %shr.i.i491 = lshr i32 %insn, 15 - %and.i.i492 = and i32 %shr.i.i491, 31 - %rs1.i493 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 - store i32 %and.i.i492, ptr %rs1.i493, align 4 - %shr.i5.i494 = lshr i32 %insn, 7 - %and.i6.i495 = and i32 %shr.i5.i494, 31 - store i32 %and.i6.i495, ptr %u, align 4 - %shr.i7.i496 = lshr i32 %insn, 20 - %and.i8.i497 = and i32 %shr.i7.i496, 31 - %rs2.i498 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 - store i32 %and.i8.i497, ptr %rs2.i498, align 4 + %shr.i.i485 = lshr i32 %insn, 15 + %and.i.i486 = and i32 %shr.i.i485, 31 + %rs1.i487 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 1 + store i32 %and.i.i486, ptr %rs1.i487, align 4 + %shr.i5.i488 = lshr i32 %insn, 7 + %and.i6.i489 = and i32 %shr.i5.i488, 31 + store i32 %and.i6.i489, ptr %u, align 4 + %shr.i7.i490 = lshr i32 %insn, 20 + %and.i8.i491 = and i32 %shr.i7.i490, 31 + %rs2.i492 = getelementptr inbounds %struct.arg_r, ptr %u, i64 0, i32 2 + store i32 %and.i8.i491, ptr %rs2.i492, align 4 %102 = and i32 %insn, 33554432 %trunc.not = icmp eq i32 %102, 0 - %cfg_ptr.i499 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %103 = load ptr, ptr %cfg_ptr.i499, align 8 + %cfg_ptr.i493 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %103 = load ptr, ptr %cfg_ptr.i493, align 8 %ext_xtheadcondmov.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %103, i64 0, i32 85 %104 = load i8, ptr %ext_xtheadcondmov.i, align 4 %105 = and i8 %104, 1 - %tobool.not.i500.not = icmp eq i8 %105, 0 + %tobool.not.i494.not = icmp eq i8 %105, 0 br i1 %trunc.not, label %sw.bb188, label %sw.bb192 sw.bb188: ; preds = %sw.bb185 - br i1 %tobool.not.i500.not, label %sw.epilog502, label %trans_th_mveqz.exit.thread + br i1 %tobool.not.i494.not, label %sw.epilog502, label %trans_th_mveqz.exit.thread trans_th_mveqz.exit.thread: ; preds = %sw.bb188 call fastcc void @gen_th_condmove(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8) br label %return sw.bb192: ; preds = %sw.bb185 - br i1 %tobool.not.i500.not, label %sw.epilog502, label %trans_th_mvnez.exit.thread + br i1 %tobool.not.i494.not, label %sw.epilog502, label %trans_th_mvnez.exit.thread trans_th_mvnez.exit.thread: ; preds = %sw.bb192 call fastcc void @gen_th_condmove(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9) br label %return sw.bb197: ; preds = %sw.bb110 - %shr.i.i508 = lshr i32 %insn, 15 - %and.i.i509 = and i32 %shr.i.i508, 31 - %rs1.i510 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i.i509, ptr %rs1.i510, align 4 - %shr.i3.i511 = lshr i32 %insn, 7 - %and.i4.i512 = and i32 %shr.i3.i511, 31 - store i32 %and.i4.i512, ptr %u, align 4 + %shr.i.i502 = lshr i32 %insn, 15 + %and.i.i503 = and i32 %shr.i.i502, 31 + %rs1.i504 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i.i503, ptr %rs1.i504, align 4 + %shr.i3.i505 = lshr i32 %insn, 7 + %and.i4.i506 = and i32 %shr.i3.i505, 31 + store i32 %and.i4.i506, ptr %u, align 4 %shr198 = lshr i32 %insn, 20 %and199 = and i32 %shr198, 63 switch i32 %and199, label %sw.epilog502 [ @@ -18100,13 +18078,13 @@ sw.bb197: ; preds = %sw.bb110 ] sw.bb200: ; preds = %sw.bb197 - %cfg_ptr.i513 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %106 = load ptr, ptr %cfg_ptr.i513, align 8 + %cfg_ptr.i507 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %106 = load ptr, ptr %cfg_ptr.i507, align 8 %ext_xtheadbb.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %106, i64 0, i32 82 %107 = load i8, ptr %ext_xtheadbb.i, align 1 %108 = and i8 %107, 1 - %tobool.not.i514.not = icmp eq i8 %108, 0 - br i1 %tobool.not.i514.not, label %sw.epilog502, label %trans_th_tstnbz.exit.thread + %tobool.not.i508.not = icmp eq i8 %108, 0 + br i1 %tobool.not.i508.not, label %sw.epilog502, label %trans_th_tstnbz.exit.thread trans_th_tstnbz.exit.thread: ; preds = %sw.bb200 call fastcc void @gen_unary(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, ptr noundef nonnull @gen_th_tstnbz) @@ -18117,13 +18095,13 @@ sw.bb204: ; preds = %sw.bb197 br i1 %call205, label %return, label %sw.epilog502 sw.bb209: ; preds = %sw.bb110 - %shr.i.i517 = lshr i32 %insn, 15 - %and.i.i518 = and i32 %shr.i.i517, 31 - %rs1.i519 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i.i518, ptr %rs1.i519, align 4 - %shr.i3.i520 = lshr i32 %insn, 7 - %and.i4.i521 = and i32 %shr.i3.i520, 31 - store i32 %and.i4.i521, ptr %u, align 4 + %shr.i.i511 = lshr i32 %insn, 15 + %and.i.i512 = and i32 %shr.i.i511, 31 + %rs1.i513 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i.i512, ptr %rs1.i513, align 4 + %shr.i3.i514 = lshr i32 %insn, 7 + %and.i4.i515 = and i32 %shr.i3.i514, 31 + store i32 %and.i4.i515, ptr %u, align 4 %shr210 = lshr i32 %insn, 20 %and211 = and i32 %shr210, 63 switch i32 %and211, label %sw.epilog502 [ @@ -18140,37 +18118,37 @@ sw.bb216: ; preds = %sw.bb209 br i1 %call217, label %return, label %sw.epilog502 sw.bb221: ; preds = %sw.bb110 - %shr.i.i522 = lshr i32 %insn, 15 - %and.i.i523 = and i32 %shr.i.i522, 31 - %rs1.i524 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 - store i32 %and.i.i523, ptr %rs1.i524, align 4 - %shr.i5.i525 = lshr i32 %insn, 20 - %and.i6.i526 = and i32 %shr.i5.i525, 63 - store i32 %and.i6.i526, ptr %u, align 4 - %shr.i7.i527 = lshr i32 %insn, 7 - %and.i8.i528 = and i32 %shr.i7.i527, 31 - %rd.i529 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 - store i32 %and.i8.i528, ptr %rd.i529, align 4 - %cfg_ptr.i530 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %109 = load ptr, ptr %cfg_ptr.i530, align 8 + %shr.i.i516 = lshr i32 %insn, 15 + %and.i.i517 = and i32 %shr.i.i516, 31 + %rs1.i518 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 1 + store i32 %and.i.i517, ptr %rs1.i518, align 4 + %shr.i5.i519 = lshr i32 %insn, 20 + %and.i6.i520 = and i32 %shr.i5.i519, 63 + store i32 %and.i6.i520, ptr %u, align 4 + %shr.i7.i521 = lshr i32 %insn, 7 + %and.i8.i522 = and i32 %shr.i7.i521, 31 + %rd.i523 = getelementptr inbounds %struct.arg_shift, ptr %u, i64 0, i32 2 + store i32 %and.i8.i522, ptr %rd.i523, align 4 + %cfg_ptr.i524 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %109 = load ptr, ptr %cfg_ptr.i524, align 8 %ext_xtheadbs.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %109, i64 0, i32 83 %110 = load i8, ptr %ext_xtheadbs.i, align 2 %111 = and i8 %110, 1 - %tobool.not.i531 = icmp eq i8 %111, 0 - br i1 %tobool.not.i531, label %sw.epilog502, label %trans_th_tst.exit + %tobool.not.i525 = icmp eq i8 %111, 0 + br i1 %tobool.not.i525, label %sw.epilog502, label %trans_th_tst.exit trans_th_tst.exit: ; preds = %sw.bb221 - %call.i533 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bext) - br i1 %call.i533, label %return, label %sw.epilog502 + %call.i527 = call fastcc zeroext i1 @gen_shift_imm_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, ptr noundef nonnull @gen_bext) + br i1 %call.i527, label %return, label %sw.epilog502 sw.bb225: ; preds = %sw.bb110 - %shr.i.i535 = lshr i32 %insn, 15 - %and.i.i536 = and i32 %shr.i.i535, 31 - %rs1.i537 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 - store i32 %and.i.i536, ptr %rs1.i537, align 4 - %shr.i3.i538 = lshr i32 %insn, 7 - %and.i4.i539 = and i32 %shr.i3.i538, 31 - store i32 %and.i4.i539, ptr %u, align 4 + %shr.i.i529 = lshr i32 %insn, 15 + %and.i.i530 = and i32 %shr.i.i529, 31 + %rs1.i531 = getelementptr inbounds %struct.arg_r2, ptr %u, i64 0, i32 1 + store i32 %and.i.i530, ptr %rs1.i531, align 4 + %shr.i3.i532 = lshr i32 %insn, 7 + %and.i4.i533 = and i32 %shr.i3.i532, 31 + store i32 %and.i4.i533, ptr %u, align 4 %112 = and i32 %insn, 66060288 %cond2 = icmp eq i32 %112, 0 br i1 %cond2, label %sw.bb228, label %sw.epilog502 @@ -18180,33 +18158,33 @@ sw.bb228: ; preds = %sw.bb225 br i1 %call229, label %return, label %sw.epilog502 sw.bb250: ; preds = %entry - %shr.i.i550 = lshr i32 %insn, 26 - %shr.i7.i551 = lshr i32 %insn, 15 - %and.i.i552 = and i32 %shr.i7.i551, 31 + %shr.i.i544 = lshr i32 %insn, 26 + %shr.i7.i545 = lshr i32 %insn, 15 + %and.i.i546 = and i32 %shr.i7.i545, 31 %shr.i8.i = lshr i32 %insn, 7 %and.i9.i = and i32 %shr.i8.i, 31 %shr.i10.i = lshr i32 %insn, 20 %and.i11.i = and i32 %shr.i10.i, 63 - %cfg_ptr.i555 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %113 = load ptr, ptr %cfg_ptr.i555, align 8 - %ext_xtheadbb.i556 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %113, i64 0, i32 82 - %114 = load i8, ptr %ext_xtheadbb.i556, align 1 + %cfg_ptr.i549 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %113 = load ptr, ptr %cfg_ptr.i549, align 8 + %ext_xtheadbb.i550 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %113, i64 0, i32 82 + %114 = load i8, ptr %ext_xtheadbb.i550, align 1 %115 = and i8 %114, 1 - %tobool.not.i557.not = icmp eq i8 %115, 0 - br i1 %tobool.not.i557.not, label %sw.epilog502, label %do.end.i558 + %tobool.not.i551.not = icmp eq i8 %115, 0 + br i1 %tobool.not.i551.not, label %sw.epilog502, label %do.end.i552 -do.end.i558: ; preds = %sw.bb250 +do.end.i552: ; preds = %sw.bb250 %cmp.i.i.i = icmp eq i32 %and.i9.i, 0 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %lor.lhs.false.i.i.i -lor.lhs.false.i.i.i: ; preds = %do.end.i558 +lor.lhs.false.i.i.i: ; preds = %do.end.i552 %116 = getelementptr i8, ptr %ctx, i64 120 %ctx.val.i.i.i = load i32, ptr %116, align 8 %shl.i.i.i.i = shl i32 16, %ctx.val.i.i.i %cmp1.i.i.i = icmp slt i32 %shl.i.i.i.i, 64 br i1 %cmp1.i.i.i, label %if.then.i.i.i, label %if.end.i.i.i -if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %do.end.i558 +if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %do.end.i552 %call2.i.i.i = tail call ptr @tcg_temp_new_i64() #13 br label %dest_gpr.exit.i.i @@ -18218,7 +18196,7 @@ if.end.i.i.i: ; preds = %lor.lhs.false.i.i.i dest_gpr.exit.i.i: ; preds = %if.end.i.i.i, %if.then.i.i.i %retval.0.i.i.i = phi ptr [ %call2.i.i.i, %if.then.i.i.i ], [ %117, %if.end.i.i.i ] - %cmp.i12.i.i = icmp eq i32 %and.i.i552, 0 + %cmp.i12.i.i = icmp eq i32 %and.i.i546, 0 br i1 %cmp.i12.i.i, label %if.then.i15.i.i, label %if.end.i13.i.i if.then.i15.i.i: ; preds = %dest_gpr.exit.i.i @@ -18237,7 +18215,7 @@ if.end.i13.i.i: ; preds = %dest_gpr.exit.i.i sw.bb.i.i.i: ; preds = %if.end.i13.i.i %call4.i.i.i = tail call ptr @tcg_temp_new_i64() #13 - %idxprom5.i.i.i = zext nneg i32 %and.i.i552 to i64 + %idxprom5.i.i.i = zext nneg i32 %and.i.i546 to i64 %arrayidx6.i.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom5.i.i.i %120 = load ptr, ptr %arrayidx6.i.i.i, align 8 tail call void @tcg_gen_ext32u_i64(ptr noundef %call4.i.i.i, ptr noundef %120) #13 @@ -18248,19 +18226,19 @@ do.body9.i.i.i: ; preds = %if.end.i13.i.i unreachable sw.epilog11.i.i.i: ; preds = %if.end.i13.i.i, %if.end.i13.i.i - %idxprom12.i.i.i = zext nneg i32 %and.i.i552 to i64 + %idxprom12.i.i.i = zext nneg i32 %and.i.i546 to i64 %arrayidx13.i.i.i = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i %121 = load ptr, ptr %arrayidx13.i.i.i, align 8 br label %get_gpr.exit.i.i get_gpr.exit.i.i: ; preds = %sw.epilog11.i.i.i, %sw.bb.i.i.i, %if.then.i15.i.i %retval.0.i14.i.i = phi ptr [ %118, %if.then.i15.i.i ], [ %121, %sw.epilog11.i.i.i ], [ %call4.i.i.i, %sw.bb.i.i.i ] - %cmp.not.i.i = icmp ugt i32 %and.i11.i, %shr.i.i550 + %cmp.not.i.i = icmp ugt i32 %and.i11.i, %shr.i.i544 br i1 %cmp.not.i.i, label %return, label %if.then.i.i if.then.i.i: ; preds = %get_gpr.exit.i.i - %reass.sub1652 = sub nsw i32 %shr.i.i550, %and.i11.i - %add.i.i = add nsw i32 %reass.sub1652, 1 + %reass.sub1646 = sub nsw i32 %shr.i.i544, %and.i11.i + %add.i.i = add nsw i32 %reass.sub1646, 1 tail call void @tcg_gen_sextract_i64(ptr noundef %retval.0.i.i.i, ptr noundef %retval.0.i14.i.i, i32 noundef %and.i11.i, i32 noundef %add.i.i) #13, !callees !9 br i1 %cmp.i.i.i, label %return, label %if.then.i16.i.i @@ -18307,135 +18285,135 @@ if.then5.i.i.i: ; preds = %sw.epilog.i.i.i br label %return sw.bb254: ; preds = %entry - %shr.i.i559 = lshr i32 %insn, 26 - %shr.i7.i560 = lshr i32 %insn, 15 - %and.i.i561 = and i32 %shr.i7.i560, 31 - %shr.i8.i563 = lshr i32 %insn, 7 - %and.i9.i564 = and i32 %shr.i8.i563, 31 - %shr.i10.i566 = lshr i32 %insn, 20 - %and.i11.i567 = and i32 %shr.i10.i566, 63 - %cfg_ptr.i569 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %128 = load ptr, ptr %cfg_ptr.i569, align 8 - %ext_xtheadbb.i570 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %128, i64 0, i32 82 - %129 = load i8, ptr %ext_xtheadbb.i570, align 1 + %shr.i.i553 = lshr i32 %insn, 26 + %shr.i7.i554 = lshr i32 %insn, 15 + %and.i.i555 = and i32 %shr.i7.i554, 31 + %shr.i8.i557 = lshr i32 %insn, 7 + %and.i9.i558 = and i32 %shr.i8.i557, 31 + %shr.i10.i560 = lshr i32 %insn, 20 + %and.i11.i561 = and i32 %shr.i10.i560, 63 + %cfg_ptr.i563 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %128 = load ptr, ptr %cfg_ptr.i563, align 8 + %ext_xtheadbb.i564 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %128, i64 0, i32 82 + %129 = load i8, ptr %ext_xtheadbb.i564, align 1 %130 = and i8 %129, 1 - %tobool.not.i571.not = icmp eq i8 %130, 0 - br i1 %tobool.not.i571.not, label %sw.epilog502, label %do.end.i572 + %tobool.not.i565.not = icmp eq i8 %130, 0 + br i1 %tobool.not.i565.not, label %sw.epilog502, label %do.end.i566 -do.end.i572: ; preds = %sw.bb254 - %cmp.i.i.i574 = icmp eq i32 %and.i9.i564, 0 - br i1 %cmp.i.i.i574, label %if.then.i.i.i622, label %lor.lhs.false.i.i.i575 +do.end.i566: ; preds = %sw.bb254 + %cmp.i.i.i568 = icmp eq i32 %and.i9.i558, 0 + br i1 %cmp.i.i.i568, label %if.then.i.i.i616, label %lor.lhs.false.i.i.i569 -lor.lhs.false.i.i.i575: ; preds = %do.end.i572 +lor.lhs.false.i.i.i569: ; preds = %do.end.i566 %131 = getelementptr i8, ptr %ctx, i64 120 - %ctx.val.i.i.i576 = load i32, ptr %131, align 8 - %shl.i.i.i.i577 = shl i32 16, %ctx.val.i.i.i576 - %cmp1.i.i.i578 = icmp slt i32 %shl.i.i.i.i577, 64 - br i1 %cmp1.i.i.i578, label %if.then.i.i.i622, label %if.end.i.i.i579 - -if.then.i.i.i622: ; preds = %lor.lhs.false.i.i.i575, %do.end.i572 - %call2.i.i.i623 = tail call ptr @tcg_temp_new_i64() #13 - br label %dest_gpr.exit.i.i582 - -if.end.i.i.i579: ; preds = %lor.lhs.false.i.i.i575 - %idxprom.i.i.i580 = zext nneg i32 %and.i9.i564 to i64 - %arrayidx.i.i.i581 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom.i.i.i580 - %132 = load ptr, ptr %arrayidx.i.i.i581, align 8 - br label %dest_gpr.exit.i.i582 - -dest_gpr.exit.i.i582: ; preds = %if.end.i.i.i579, %if.then.i.i.i622 - %retval.0.i.i.i583 = phi ptr [ %call2.i.i.i623, %if.then.i.i.i622 ], [ %132, %if.end.i.i.i579 ] - %cmp.i12.i.i585 = icmp eq i32 %and.i.i561, 0 - br i1 %cmp.i12.i.i585, label %if.then.i15.i.i620, label %if.end.i13.i.i586 - -if.then.i15.i.i620: ; preds = %dest_gpr.exit.i.i582 - %zero.i.i.i621 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 27 - %133 = load ptr, ptr %zero.i.i.i621, align 8 - br label %get_gpr.exit.i.i591 - -if.end.i13.i.i586: ; preds = %dest_gpr.exit.i.i582 - %ol.i.i.i587 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - %134 = load i32, ptr %ol.i.i.i587, align 8 - switch i32 %134, label %do.body9.i.i.i619 [ - i32 1, label %sw.bb.i.i.i615 - i32 2, label %sw.epilog11.i.i.i588 - i32 3, label %sw.epilog11.i.i.i588 + %ctx.val.i.i.i570 = load i32, ptr %131, align 8 + %shl.i.i.i.i571 = shl i32 16, %ctx.val.i.i.i570 + %cmp1.i.i.i572 = icmp slt i32 %shl.i.i.i.i571, 64 + br i1 %cmp1.i.i.i572, label %if.then.i.i.i616, label %if.end.i.i.i573 + +if.then.i.i.i616: ; preds = %lor.lhs.false.i.i.i569, %do.end.i566 + %call2.i.i.i617 = tail call ptr @tcg_temp_new_i64() #13 + br label %dest_gpr.exit.i.i576 + +if.end.i.i.i573: ; preds = %lor.lhs.false.i.i.i569 + %idxprom.i.i.i574 = zext nneg i32 %and.i9.i558 to i64 + %arrayidx.i.i.i575 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom.i.i.i574 + %132 = load ptr, ptr %arrayidx.i.i.i575, align 8 + br label %dest_gpr.exit.i.i576 + +dest_gpr.exit.i.i576: ; preds = %if.end.i.i.i573, %if.then.i.i.i616 + %retval.0.i.i.i577 = phi ptr [ %call2.i.i.i617, %if.then.i.i.i616 ], [ %132, %if.end.i.i.i573 ] + %cmp.i12.i.i579 = icmp eq i32 %and.i.i555, 0 + br i1 %cmp.i12.i.i579, label %if.then.i15.i.i614, label %if.end.i13.i.i580 + +if.then.i15.i.i614: ; preds = %dest_gpr.exit.i.i576 + %zero.i.i.i615 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 27 + %133 = load ptr, ptr %zero.i.i.i615, align 8 + br label %get_gpr.exit.i.i585 + +if.end.i13.i.i580: ; preds = %dest_gpr.exit.i.i576 + %ol.i.i.i581 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + %134 = load i32, ptr %ol.i.i.i581, align 8 + switch i32 %134, label %do.body9.i.i.i613 [ + i32 1, label %sw.bb.i.i.i609 + i32 2, label %sw.epilog11.i.i.i582 + i32 3, label %sw.epilog11.i.i.i582 ] -sw.bb.i.i.i615: ; preds = %if.end.i13.i.i586 - %call4.i.i.i616 = tail call ptr @tcg_temp_new_i64() #13 - %idxprom5.i.i.i617 = zext nneg i32 %and.i.i561 to i64 - %arrayidx6.i.i.i618 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom5.i.i.i617 - %135 = load ptr, ptr %arrayidx6.i.i.i618, align 8 - tail call void @tcg_gen_ext32u_i64(ptr noundef %call4.i.i.i616, ptr noundef %135) #13 - br label %get_gpr.exit.i.i591 +sw.bb.i.i.i609: ; preds = %if.end.i13.i.i580 + %call4.i.i.i610 = tail call ptr @tcg_temp_new_i64() #13 + %idxprom5.i.i.i611 = zext nneg i32 %and.i.i555 to i64 + %arrayidx6.i.i.i612 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom5.i.i.i611 + %135 = load ptr, ptr %arrayidx6.i.i.i612, align 8 + tail call void @tcg_gen_ext32u_i64(ptr noundef %call4.i.i.i610, ptr noundef %135) #13 + br label %get_gpr.exit.i.i585 -do.body9.i.i.i619: ; preds = %if.end.i13.i.i586 +do.body9.i.i.i613: ; preds = %if.end.i13.i.i580 tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1169, i32 noundef 350, ptr noundef nonnull @__func__.get_gpr, ptr noundef null) #14 unreachable -sw.epilog11.i.i.i588: ; preds = %if.end.i13.i.i586, %if.end.i13.i.i586 - %idxprom12.i.i.i589 = zext nneg i32 %and.i.i561 to i64 - %arrayidx13.i.i.i590 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i589 - %136 = load ptr, ptr %arrayidx13.i.i.i590, align 8 - br label %get_gpr.exit.i.i591 - -get_gpr.exit.i.i591: ; preds = %sw.epilog11.i.i.i588, %sw.bb.i.i.i615, %if.then.i15.i.i620 - %retval.0.i14.i.i592 = phi ptr [ %133, %if.then.i15.i.i620 ], [ %136, %sw.epilog11.i.i.i588 ], [ %call4.i.i.i616, %sw.bb.i.i.i615 ] - %cmp.not.i.i594 = icmp ugt i32 %and.i11.i567, %shr.i.i559 - br i1 %cmp.not.i.i594, label %return, label %if.then.i.i595 - -if.then.i.i595: ; preds = %get_gpr.exit.i.i591 - %reass.sub = sub nsw i32 %shr.i.i559, %and.i11.i567 - %add.i.i597 = add nsw i32 %reass.sub, 1 - tail call void @tcg_gen_extract_i64(ptr noundef %retval.0.i.i.i583, ptr noundef %retval.0.i14.i.i592, i32 noundef %and.i11.i567, i32 noundef %add.i.i597) #13, !callees !9 - br i1 %cmp.i.i.i574, label %return, label %if.then.i16.i.i599 - -if.then.i16.i.i599: ; preds = %if.then.i.i595 - %ol.i17.i.i600 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 - %137 = load i32, ptr %ol.i17.i.i600, align 8 - switch i32 %137, label %do.body.i.i.i614 [ - i32 1, label %sw.bb.i18.i.i611 - i32 2, label %sw.bb1.i.i.i601 - i32 3, label %sw.bb1.i.i.i601 +sw.epilog11.i.i.i582: ; preds = %if.end.i13.i.i580, %if.end.i13.i.i580 + %idxprom12.i.i.i583 = zext nneg i32 %and.i.i555 to i64 + %arrayidx13.i.i.i584 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom12.i.i.i583 + %136 = load ptr, ptr %arrayidx13.i.i.i584, align 8 + br label %get_gpr.exit.i.i585 + +get_gpr.exit.i.i585: ; preds = %sw.epilog11.i.i.i582, %sw.bb.i.i.i609, %if.then.i15.i.i614 + %retval.0.i14.i.i586 = phi ptr [ %133, %if.then.i15.i.i614 ], [ %136, %sw.epilog11.i.i.i582 ], [ %call4.i.i.i610, %sw.bb.i.i.i609 ] + %cmp.not.i.i588 = icmp ugt i32 %and.i11.i561, %shr.i.i553 + br i1 %cmp.not.i.i588, label %return, label %if.then.i.i589 + +if.then.i.i589: ; preds = %get_gpr.exit.i.i585 + %reass.sub = sub nsw i32 %shr.i.i553, %and.i11.i561 + %add.i.i591 = add nsw i32 %reass.sub, 1 + tail call void @tcg_gen_extract_i64(ptr noundef %retval.0.i.i.i577, ptr noundef %retval.0.i14.i.i586, i32 noundef %and.i11.i561, i32 noundef %add.i.i591) #13, !callees !9 + br i1 %cmp.i.i.i568, label %return, label %if.then.i16.i.i593 + +if.then.i16.i.i593: ; preds = %if.then.i.i589 + %ol.i17.i.i594 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 14 + %137 = load i32, ptr %ol.i17.i.i594, align 8 + switch i32 %137, label %do.body.i.i.i608 [ + i32 1, label %sw.bb.i18.i.i605 + i32 2, label %sw.bb1.i.i.i595 + i32 3, label %sw.bb1.i.i.i595 ] -sw.bb.i18.i.i611: ; preds = %if.then.i16.i.i599 - %idxprom.i19.i.i612 = zext nneg i32 %and.i9.i564 to i64 - %arrayidx.i20.i.i613 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom.i19.i.i612 - %138 = load ptr, ptr %arrayidx.i20.i.i613, align 8 - tail call void @tcg_gen_ext32s_i64(ptr noundef %138, ptr noundef %retval.0.i.i.i583) #13 - br label %sw.epilog.i.i.i604 - -sw.bb1.i.i.i601: ; preds = %if.then.i16.i.i599, %if.then.i16.i.i599 - %idxprom2.i.i.i602 = zext nneg i32 %and.i9.i564 to i64 - %arrayidx3.i.i.i603 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom2.i.i.i602 - %139 = load ptr, ptr %arrayidx3.i.i.i603, align 8 - tail call void @tcg_gen_mov_i64(ptr noundef %139, ptr noundef %retval.0.i.i.i583) #13 - br label %sw.epilog.i.i.i604 - -do.body.i.i.i614: ; preds = %if.then.i16.i.i599 +sw.bb.i18.i.i605: ; preds = %if.then.i16.i.i593 + %idxprom.i19.i.i606 = zext nneg i32 %and.i9.i558 to i64 + %arrayidx.i20.i.i607 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom.i19.i.i606 + %138 = load ptr, ptr %arrayidx.i20.i.i607, align 8 + tail call void @tcg_gen_ext32s_i64(ptr noundef %138, ptr noundef %retval.0.i.i.i577) #13 + br label %sw.epilog.i.i.i598 + +sw.bb1.i.i.i595: ; preds = %if.then.i16.i.i593, %if.then.i16.i.i593 + %idxprom2.i.i.i596 = zext nneg i32 %and.i9.i558 to i64 + %arrayidx3.i.i.i597 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom2.i.i.i596 + %139 = load ptr, ptr %arrayidx3.i.i.i597, align 8 + tail call void @tcg_gen_mov_i64(ptr noundef %139, ptr noundef %retval.0.i.i.i577) #13 + br label %sw.epilog.i.i.i598 + +do.body.i.i.i608: ; preds = %if.then.i16.i.i593 tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1169, i32 noundef 392, ptr noundef nonnull @__func__.gen_set_gpr, ptr noundef null) #14 unreachable -sw.epilog.i.i.i604: ; preds = %sw.bb1.i.i.i601, %sw.bb.i18.i.i611 - %misa_mxl_max.i.i.i605 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 4 - %140 = load i32, ptr %misa_mxl_max.i.i.i605, align 8 - %cmp4.i.i.i606 = icmp eq i32 %140, 3 - br i1 %cmp4.i.i.i606, label %if.then5.i.i.i607, label %return +sw.epilog.i.i.i598: ; preds = %sw.bb1.i.i.i595, %sw.bb.i18.i.i605 + %misa_mxl_max.i.i.i599 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 4 + %140 = load i32, ptr %misa_mxl_max.i.i.i599, align 8 + %cmp4.i.i.i600 = icmp eq i32 %140, 3 + br i1 %cmp4.i.i.i600, label %if.then5.i.i.i601, label %return -if.then5.i.i.i607: ; preds = %sw.epilog.i.i.i604 - %idxprom6.i.i.i608 = zext nneg i32 %and.i9.i564 to i64 - %arrayidx7.i.i.i609 = getelementptr [32 x ptr], ptr @cpu_gprh, i64 0, i64 %idxprom6.i.i.i608 - %141 = load ptr, ptr %arrayidx7.i.i.i609, align 8 - %arrayidx9.i.i.i610 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom6.i.i.i608 - %142 = load ptr, ptr %arrayidx9.i.i.i610, align 8 +if.then5.i.i.i601: ; preds = %sw.epilog.i.i.i598 + %idxprom6.i.i.i602 = zext nneg i32 %and.i9.i558 to i64 + %arrayidx7.i.i.i603 = getelementptr [32 x ptr], ptr @cpu_gprh, i64 0, i64 %idxprom6.i.i.i602 + %141 = load ptr, ptr %arrayidx7.i.i.i603, align 8 + %arrayidx9.i.i.i604 = getelementptr [32 x ptr], ptr @cpu_gpr, i64 0, i64 %idxprom6.i.i.i602 + %142 = load ptr, ptr %arrayidx9.i.i.i604, align 8 tail call void @tcg_gen_sari_i64(ptr noundef %141, ptr noundef %142, i64 noundef 63) #13 br label %return sw.bb258: ; preds = %entry %shr259 = lshr i32 %insn, 27 - switch i32 %shr259, label %sw.bb258.unreachabledefault [ + switch i32 %shr259, label %default.unreachable1647 [ i32 0, label %sw.bb261 i32 1, label %sw.bb265 i32 2, label %sw.bb269 @@ -18471,875 +18449,872 @@ sw.bb258: ; preds = %entry ] sw.bb261: ; preds = %sw.bb258 - %shr.i.i624 = lshr i32 %insn, 15 - %and.i.i625 = and i32 %shr.i.i624, 31 - %rs1.i626 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i625, ptr %rs1.i626, align 4 - %shr.i7.i627 = lshr i32 %insn, 25 - %and.i8.i628 = and i32 %shr.i7.i627, 3 + %shr.i.i618 = lshr i32 %insn, 15 + %and.i.i619 = and i32 %shr.i.i618, 31 + %rs1.i620 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i619, ptr %rs1.i620, align 4 + %shr.i7.i621 = lshr i32 %insn, 25 + %and.i8.i622 = and i32 %shr.i7.i621, 3 %imm2.i = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i628, ptr %imm2.i, align 4 + store i32 %and.i8.i622, ptr %imm2.i, align 4 %shr.i9.i = lshr i32 %insn, 7 %and.i10.i = and i32 %shr.i9.i, 31 store i32 %and.i10.i, ptr %u, align 4 %shr.i11.i = lshr i32 %insn, 20 %and.i12.i = and i32 %shr.i11.i, 31 - %rs2.i629 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i, ptr %rs2.i629, align 4 - %cfg_ptr.i630 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %143 = load ptr, ptr %cfg_ptr.i630, align 8 + %rs2.i623 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i, ptr %rs2.i623, align 4 + %cfg_ptr.i624 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %143 = load ptr, ptr %cfg_ptr.i624, align 8 %ext_xtheadmemidx.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %143, i64 0, i32 89 %144 = load i8, ptr %ext_xtheadmemidx.i, align 8 %145 = and i8 %144, 1 - %tobool.not.i631.not = icmp eq i8 %145, 0 - br i1 %tobool.not.i631.not, label %sw.epilog502, label %trans_th_lrb.exit.thread + %tobool.not.i625.not = icmp eq i8 %145, 0 + br i1 %tobool.not.i625.not, label %sw.epilog502, label %trans_th_lrb.exit.thread trans_th_lrb.exit.thread: ; preds = %sw.bb261 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext false) br label %return sw.bb265: ; preds = %sw.bb258 - %shr.i.i634 = lshr i32 %insn, 15 - %and.i.i635 = and i32 %shr.i.i634, 31 - %rs1.i636 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i635, ptr %rs1.i636, align 4 - %shr.i7.i637 = lshr i32 %insn, 25 - %and.i8.i638 = and i32 %shr.i7.i637, 3 - %imm2.i639 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i638, ptr %imm2.i639, align 4 - %shr.i9.i640 = lshr i32 %insn, 7 - %and.i10.i641 = and i32 %shr.i9.i640, 31 - store i32 %and.i10.i641, ptr %u, align 4 + %shr.i.i628 = lshr i32 %insn, 15 + %and.i.i629 = and i32 %shr.i.i628, 31 + %rs1.i630 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i629, ptr %rs1.i630, align 4 + %shr.i7.i631 = lshr i32 %insn, 25 + %and.i8.i632 = and i32 %shr.i7.i631, 3 + %imm2.i633 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i632, ptr %imm2.i633, align 4 + %shr.i9.i634 = lshr i32 %insn, 7 + %and.i10.i635 = and i32 %shr.i9.i634, 31 + store i32 %and.i10.i635, ptr %u, align 4 %shl.i.i = shl i32 %insn, 7 - %shr.i11.i642 = ashr i32 %shl.i.i, 27 + %shr.i11.i636 = ashr i32 %shl.i.i, 27 %imm5.i = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i642, ptr %imm5.i, align 4 - %cfg_ptr.i643 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %146 = load ptr, ptr %cfg_ptr.i643, align 8 - %ext_xtheadmemidx.i644 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %146, i64 0, i32 89 - %147 = load i8, ptr %ext_xtheadmemidx.i644, align 8 + store i32 %shr.i11.i636, ptr %imm5.i, align 4 + %cfg_ptr.i637 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %146 = load ptr, ptr %cfg_ptr.i637, align 8 + %ext_xtheadmemidx.i638 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %146, i64 0, i32 89 + %147 = load i8, ptr %ext_xtheadmemidx.i638, align 8 %148 = and i8 %147, 1 - %tobool.not.i645 = icmp eq i8 %148, 0 - br i1 %tobool.not.i645, label %sw.epilog502, label %trans_th_lbib.exit + %tobool.not.i639 = icmp eq i8 %148, 0 + br i1 %tobool.not.i639, label %sw.epilog502, label %trans_th_lbib.exit trans_th_lbib.exit: ; preds = %sw.bb265 - %call.i647 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext true) - br i1 %call.i647, label %return, label %sw.epilog502 + %call.i641 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext true) + br i1 %call.i641, label %return, label %sw.epilog502 sw.bb269: ; preds = %sw.bb258 - %shr.i.i649 = lshr i32 %insn, 15 - %and.i.i650 = and i32 %shr.i.i649, 31 - %rs1.i651 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i650, ptr %rs1.i651, align 4 - %shr.i7.i652 = lshr i32 %insn, 25 - %and.i8.i653 = and i32 %shr.i7.i652, 3 - %imm2.i654 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i653, ptr %imm2.i654, align 4 - %shr.i9.i655 = lshr i32 %insn, 7 - %and.i10.i656 = and i32 %shr.i9.i655, 31 - store i32 %and.i10.i656, ptr %u, align 4 - %shr.i11.i657 = lshr i32 %insn, 20 - %and.i12.i658 = and i32 %shr.i11.i657, 31 - %rs2.i659 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i658, ptr %rs2.i659, align 4 - %cfg_ptr.i660 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %149 = load ptr, ptr %cfg_ptr.i660, align 8 - %ext_xtheadmemidx.i661 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %149, i64 0, i32 89 - %150 = load i8, ptr %ext_xtheadmemidx.i661, align 8 + %shr.i.i643 = lshr i32 %insn, 15 + %and.i.i644 = and i32 %shr.i.i643, 31 + %rs1.i645 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i644, ptr %rs1.i645, align 4 + %shr.i7.i646 = lshr i32 %insn, 25 + %and.i8.i647 = and i32 %shr.i7.i646, 3 + %imm2.i648 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i647, ptr %imm2.i648, align 4 + %shr.i9.i649 = lshr i32 %insn, 7 + %and.i10.i650 = and i32 %shr.i9.i649, 31 + store i32 %and.i10.i650, ptr %u, align 4 + %shr.i11.i651 = lshr i32 %insn, 20 + %and.i12.i652 = and i32 %shr.i11.i651, 31 + %rs2.i653 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i652, ptr %rs2.i653, align 4 + %cfg_ptr.i654 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %149 = load ptr, ptr %cfg_ptr.i654, align 8 + %ext_xtheadmemidx.i655 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %149, i64 0, i32 89 + %150 = load i8, ptr %ext_xtheadmemidx.i655, align 8 %151 = and i8 %150, 1 - %tobool.not.i662.not = icmp eq i8 %151, 0 - br i1 %tobool.not.i662.not, label %sw.epilog502, label %trans_th_lurb.exit.thread + %tobool.not.i656.not = icmp eq i8 %151, 0 + br i1 %tobool.not.i656.not, label %sw.epilog502, label %trans_th_lurb.exit.thread trans_th_lurb.exit.thread: ; preds = %sw.bb269 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext true) br label %return sw.bb273: ; preds = %sw.bb258 - %shr.i.i665 = lshr i32 %insn, 15 - %and.i.i666 = and i32 %shr.i.i665, 31 - %rs1.i667 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i666, ptr %rs1.i667, align 4 - %shr.i7.i668 = lshr i32 %insn, 25 - %and.i8.i669 = and i32 %shr.i7.i668, 3 - %imm2.i670 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i669, ptr %imm2.i670, align 4 - %shr.i9.i671 = lshr i32 %insn, 7 - %and.i10.i672 = and i32 %shr.i9.i671, 31 - store i32 %and.i10.i672, ptr %u, align 4 - %shl.i.i673 = shl i32 %insn, 7 - %shr.i11.i674 = ashr i32 %shl.i.i673, 27 - %imm5.i675 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i674, ptr %imm5.i675, align 4 - %cfg_ptr.i676 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %152 = load ptr, ptr %cfg_ptr.i676, align 8 - %ext_xtheadmemidx.i677 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %152, i64 0, i32 89 - %153 = load i8, ptr %ext_xtheadmemidx.i677, align 8 + %shr.i.i659 = lshr i32 %insn, 15 + %and.i.i660 = and i32 %shr.i.i659, 31 + %rs1.i661 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i660, ptr %rs1.i661, align 4 + %shr.i7.i662 = lshr i32 %insn, 25 + %and.i8.i663 = and i32 %shr.i7.i662, 3 + %imm2.i664 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i663, ptr %imm2.i664, align 4 + %shr.i9.i665 = lshr i32 %insn, 7 + %and.i10.i666 = and i32 %shr.i9.i665, 31 + store i32 %and.i10.i666, ptr %u, align 4 + %shl.i.i667 = shl i32 %insn, 7 + %shr.i11.i668 = ashr i32 %shl.i.i667, 27 + %imm5.i669 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i668, ptr %imm5.i669, align 4 + %cfg_ptr.i670 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %152 = load ptr, ptr %cfg_ptr.i670, align 8 + %ext_xtheadmemidx.i671 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %152, i64 0, i32 89 + %153 = load i8, ptr %ext_xtheadmemidx.i671, align 8 %154 = and i8 %153, 1 - %tobool.not.i678 = icmp eq i8 %154, 0 - br i1 %tobool.not.i678, label %sw.epilog502, label %trans_th_lbia.exit + %tobool.not.i672 = icmp eq i8 %154, 0 + br i1 %tobool.not.i672, label %sw.epilog502, label %trans_th_lbia.exit trans_th_lbia.exit: ; preds = %sw.bb273 - %call.i680 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext false) - br i1 %call.i680, label %return, label %sw.epilog502 + %call.i674 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext false) + br i1 %call.i674, label %return, label %sw.epilog502 sw.bb277: ; preds = %sw.bb258 - %shr.i.i682 = lshr i32 %insn, 15 - %and.i.i683 = and i32 %shr.i.i682, 31 - %rs1.i684 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i683, ptr %rs1.i684, align 4 - %shr.i7.i685 = lshr i32 %insn, 25 - %and.i8.i686 = and i32 %shr.i7.i685, 3 - %imm2.i687 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i686, ptr %imm2.i687, align 4 - %shr.i9.i688 = lshr i32 %insn, 7 - %and.i10.i689 = and i32 %shr.i9.i688, 31 - store i32 %and.i10.i689, ptr %u, align 4 - %shr.i11.i690 = lshr i32 %insn, 20 - %and.i12.i691 = and i32 %shr.i11.i690, 31 - %rs2.i692 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i691, ptr %rs2.i692, align 4 - %cfg_ptr.i693 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %155 = load ptr, ptr %cfg_ptr.i693, align 8 - %ext_xtheadmemidx.i694 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %155, i64 0, i32 89 - %156 = load i8, ptr %ext_xtheadmemidx.i694, align 8 + %shr.i.i676 = lshr i32 %insn, 15 + %and.i.i677 = and i32 %shr.i.i676, 31 + %rs1.i678 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i677, ptr %rs1.i678, align 4 + %shr.i7.i679 = lshr i32 %insn, 25 + %and.i8.i680 = and i32 %shr.i7.i679, 3 + %imm2.i681 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i680, ptr %imm2.i681, align 4 + %shr.i9.i682 = lshr i32 %insn, 7 + %and.i10.i683 = and i32 %shr.i9.i682, 31 + store i32 %and.i10.i683, ptr %u, align 4 + %shr.i11.i684 = lshr i32 %insn, 20 + %and.i12.i685 = and i32 %shr.i11.i684, 31 + %rs2.i686 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i685, ptr %rs2.i686, align 4 + %cfg_ptr.i687 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %155 = load ptr, ptr %cfg_ptr.i687, align 8 + %ext_xtheadmemidx.i688 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %155, i64 0, i32 89 + %156 = load i8, ptr %ext_xtheadmemidx.i688, align 8 %157 = and i8 %156, 1 - %tobool.not.i695.not = icmp eq i8 %157, 0 - br i1 %tobool.not.i695.not, label %sw.epilog502, label %trans_th_lrh.exit.thread + %tobool.not.i689.not = icmp eq i8 %157, 0 + br i1 %tobool.not.i689.not, label %sw.epilog502, label %trans_th_lrh.exit.thread trans_th_lrh.exit.thread: ; preds = %sw.bb277 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext false) br label %return sw.bb281: ; preds = %sw.bb258 - %shr.i.i698 = lshr i32 %insn, 15 - %and.i.i699 = and i32 %shr.i.i698, 31 - %rs1.i700 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i699, ptr %rs1.i700, align 4 - %shr.i7.i701 = lshr i32 %insn, 25 - %and.i8.i702 = and i32 %shr.i7.i701, 3 - %imm2.i703 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i702, ptr %imm2.i703, align 4 - %shr.i9.i704 = lshr i32 %insn, 7 - %and.i10.i705 = and i32 %shr.i9.i704, 31 - store i32 %and.i10.i705, ptr %u, align 4 - %shl.i.i706 = shl i32 %insn, 7 - %shr.i11.i707 = ashr i32 %shl.i.i706, 27 - %imm5.i708 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i707, ptr %imm5.i708, align 4 - %cfg_ptr.i709 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %158 = load ptr, ptr %cfg_ptr.i709, align 8 - %ext_xtheadmemidx.i710 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %158, i64 0, i32 89 - %159 = load i8, ptr %ext_xtheadmemidx.i710, align 8 + %shr.i.i692 = lshr i32 %insn, 15 + %and.i.i693 = and i32 %shr.i.i692, 31 + %rs1.i694 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i693, ptr %rs1.i694, align 4 + %shr.i7.i695 = lshr i32 %insn, 25 + %and.i8.i696 = and i32 %shr.i7.i695, 3 + %imm2.i697 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i696, ptr %imm2.i697, align 4 + %shr.i9.i698 = lshr i32 %insn, 7 + %and.i10.i699 = and i32 %shr.i9.i698, 31 + store i32 %and.i10.i699, ptr %u, align 4 + %shl.i.i700 = shl i32 %insn, 7 + %shr.i11.i701 = ashr i32 %shl.i.i700, 27 + %imm5.i702 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i701, ptr %imm5.i702, align 4 + %cfg_ptr.i703 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %158 = load ptr, ptr %cfg_ptr.i703, align 8 + %ext_xtheadmemidx.i704 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %158, i64 0, i32 89 + %159 = load i8, ptr %ext_xtheadmemidx.i704, align 8 %160 = and i8 %159, 1 - %tobool.not.i711 = icmp eq i8 %160, 0 - br i1 %tobool.not.i711, label %sw.epilog502, label %trans_th_lhib.exit + %tobool.not.i705 = icmp eq i8 %160, 0 + br i1 %tobool.not.i705, label %sw.epilog502, label %trans_th_lhib.exit trans_th_lhib.exit: ; preds = %sw.bb281 - %call.i713 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext true) - br i1 %call.i713, label %return, label %sw.epilog502 + %call.i707 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext true) + br i1 %call.i707, label %return, label %sw.epilog502 sw.bb285: ; preds = %sw.bb258 - %shr.i.i715 = lshr i32 %insn, 15 - %and.i.i716 = and i32 %shr.i.i715, 31 - %rs1.i717 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i716, ptr %rs1.i717, align 4 - %shr.i7.i718 = lshr i32 %insn, 25 - %and.i8.i719 = and i32 %shr.i7.i718, 3 - %imm2.i720 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i719, ptr %imm2.i720, align 4 - %shr.i9.i721 = lshr i32 %insn, 7 - %and.i10.i722 = and i32 %shr.i9.i721, 31 - store i32 %and.i10.i722, ptr %u, align 4 - %shr.i11.i723 = lshr i32 %insn, 20 - %and.i12.i724 = and i32 %shr.i11.i723, 31 - %rs2.i725 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i724, ptr %rs2.i725, align 4 - %cfg_ptr.i726 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %161 = load ptr, ptr %cfg_ptr.i726, align 8 - %ext_xtheadmemidx.i727 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %161, i64 0, i32 89 - %162 = load i8, ptr %ext_xtheadmemidx.i727, align 8 + %shr.i.i709 = lshr i32 %insn, 15 + %and.i.i710 = and i32 %shr.i.i709, 31 + %rs1.i711 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i710, ptr %rs1.i711, align 4 + %shr.i7.i712 = lshr i32 %insn, 25 + %and.i8.i713 = and i32 %shr.i7.i712, 3 + %imm2.i714 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i713, ptr %imm2.i714, align 4 + %shr.i9.i715 = lshr i32 %insn, 7 + %and.i10.i716 = and i32 %shr.i9.i715, 31 + store i32 %and.i10.i716, ptr %u, align 4 + %shr.i11.i717 = lshr i32 %insn, 20 + %and.i12.i718 = and i32 %shr.i11.i717, 31 + %rs2.i719 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i718, ptr %rs2.i719, align 4 + %cfg_ptr.i720 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %161 = load ptr, ptr %cfg_ptr.i720, align 8 + %ext_xtheadmemidx.i721 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %161, i64 0, i32 89 + %162 = load i8, ptr %ext_xtheadmemidx.i721, align 8 %163 = and i8 %162, 1 - %tobool.not.i728.not = icmp eq i8 %163, 0 - br i1 %tobool.not.i728.not, label %sw.epilog502, label %trans_th_lurh.exit.thread + %tobool.not.i722.not = icmp eq i8 %163, 0 + br i1 %tobool.not.i722.not, label %sw.epilog502, label %trans_th_lurh.exit.thread trans_th_lurh.exit.thread: ; preds = %sw.bb285 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext true) br label %return sw.bb289: ; preds = %sw.bb258 - %shr.i.i731 = lshr i32 %insn, 15 - %and.i.i732 = and i32 %shr.i.i731, 31 - %rs1.i733 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i732, ptr %rs1.i733, align 4 - %shr.i7.i734 = lshr i32 %insn, 25 - %and.i8.i735 = and i32 %shr.i7.i734, 3 - %imm2.i736 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i735, ptr %imm2.i736, align 4 - %shr.i9.i737 = lshr i32 %insn, 7 - %and.i10.i738 = and i32 %shr.i9.i737, 31 - store i32 %and.i10.i738, ptr %u, align 4 - %shl.i.i739 = shl i32 %insn, 7 - %shr.i11.i740 = ashr i32 %shl.i.i739, 27 - %imm5.i741 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i740, ptr %imm5.i741, align 4 - %cfg_ptr.i742 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %164 = load ptr, ptr %cfg_ptr.i742, align 8 - %ext_xtheadmemidx.i743 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %164, i64 0, i32 89 - %165 = load i8, ptr %ext_xtheadmemidx.i743, align 8 + %shr.i.i725 = lshr i32 %insn, 15 + %and.i.i726 = and i32 %shr.i.i725, 31 + %rs1.i727 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i726, ptr %rs1.i727, align 4 + %shr.i7.i728 = lshr i32 %insn, 25 + %and.i8.i729 = and i32 %shr.i7.i728, 3 + %imm2.i730 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i729, ptr %imm2.i730, align 4 + %shr.i9.i731 = lshr i32 %insn, 7 + %and.i10.i732 = and i32 %shr.i9.i731, 31 + store i32 %and.i10.i732, ptr %u, align 4 + %shl.i.i733 = shl i32 %insn, 7 + %shr.i11.i734 = ashr i32 %shl.i.i733, 27 + %imm5.i735 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i734, ptr %imm5.i735, align 4 + %cfg_ptr.i736 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %164 = load ptr, ptr %cfg_ptr.i736, align 8 + %ext_xtheadmemidx.i737 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %164, i64 0, i32 89 + %165 = load i8, ptr %ext_xtheadmemidx.i737, align 8 %166 = and i8 %165, 1 - %tobool.not.i744 = icmp eq i8 %166, 0 - br i1 %tobool.not.i744, label %sw.epilog502, label %trans_th_lhia.exit + %tobool.not.i738 = icmp eq i8 %166, 0 + br i1 %tobool.not.i738, label %sw.epilog502, label %trans_th_lhia.exit trans_th_lhia.exit: ; preds = %sw.bb289 - %call.i746 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext false) - br i1 %call.i746, label %return, label %sw.epilog502 + %call.i740 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext false) + br i1 %call.i740, label %return, label %sw.epilog502 sw.bb293: ; preds = %sw.bb258 - %shr.i.i748 = lshr i32 %insn, 15 - %and.i.i749 = and i32 %shr.i.i748, 31 - %rs1.i750 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i749, ptr %rs1.i750, align 4 - %shr.i7.i751 = lshr i32 %insn, 25 - %and.i8.i752 = and i32 %shr.i7.i751, 3 - %imm2.i753 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i752, ptr %imm2.i753, align 4 - %shr.i9.i754 = lshr i32 %insn, 7 - %and.i10.i755 = and i32 %shr.i9.i754, 31 - store i32 %and.i10.i755, ptr %u, align 4 - %shr.i11.i756 = lshr i32 %insn, 20 - %and.i12.i757 = and i32 %shr.i11.i756, 31 - %rs2.i758 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i757, ptr %rs2.i758, align 4 - %cfg_ptr.i759 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %167 = load ptr, ptr %cfg_ptr.i759, align 8 - %ext_xtheadmemidx.i760 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %167, i64 0, i32 89 - %168 = load i8, ptr %ext_xtheadmemidx.i760, align 8 + %shr.i.i742 = lshr i32 %insn, 15 + %and.i.i743 = and i32 %shr.i.i742, 31 + %rs1.i744 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i743, ptr %rs1.i744, align 4 + %shr.i7.i745 = lshr i32 %insn, 25 + %and.i8.i746 = and i32 %shr.i7.i745, 3 + %imm2.i747 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i746, ptr %imm2.i747, align 4 + %shr.i9.i748 = lshr i32 %insn, 7 + %and.i10.i749 = and i32 %shr.i9.i748, 31 + store i32 %and.i10.i749, ptr %u, align 4 + %shr.i11.i750 = lshr i32 %insn, 20 + %and.i12.i751 = and i32 %shr.i11.i750, 31 + %rs2.i752 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i751, ptr %rs2.i752, align 4 + %cfg_ptr.i753 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %167 = load ptr, ptr %cfg_ptr.i753, align 8 + %ext_xtheadmemidx.i754 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %167, i64 0, i32 89 + %168 = load i8, ptr %ext_xtheadmemidx.i754, align 8 %169 = and i8 %168, 1 - %tobool.not.i761.not = icmp eq i8 %169, 0 - br i1 %tobool.not.i761.not, label %sw.epilog502, label %trans_th_lrw.exit.thread + %tobool.not.i755.not = icmp eq i8 %169, 0 + br i1 %tobool.not.i755.not, label %sw.epilog502, label %trans_th_lrw.exit.thread trans_th_lrw.exit.thread: ; preds = %sw.bb293 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext false) br label %return sw.bb297: ; preds = %sw.bb258 - %shr.i.i764 = lshr i32 %insn, 15 - %and.i.i765 = and i32 %shr.i.i764, 31 - %rs1.i766 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i765, ptr %rs1.i766, align 4 - %shr.i7.i767 = lshr i32 %insn, 25 - %and.i8.i768 = and i32 %shr.i7.i767, 3 - %imm2.i769 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i768, ptr %imm2.i769, align 4 - %shr.i9.i770 = lshr i32 %insn, 7 - %and.i10.i771 = and i32 %shr.i9.i770, 31 - store i32 %and.i10.i771, ptr %u, align 4 - %shl.i.i772 = shl i32 %insn, 7 - %shr.i11.i773 = ashr i32 %shl.i.i772, 27 - %imm5.i774 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i773, ptr %imm5.i774, align 4 - %cfg_ptr.i775 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %170 = load ptr, ptr %cfg_ptr.i775, align 8 - %ext_xtheadmemidx.i776 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %170, i64 0, i32 89 - %171 = load i8, ptr %ext_xtheadmemidx.i776, align 8 + %shr.i.i758 = lshr i32 %insn, 15 + %and.i.i759 = and i32 %shr.i.i758, 31 + %rs1.i760 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i759, ptr %rs1.i760, align 4 + %shr.i7.i761 = lshr i32 %insn, 25 + %and.i8.i762 = and i32 %shr.i7.i761, 3 + %imm2.i763 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i762, ptr %imm2.i763, align 4 + %shr.i9.i764 = lshr i32 %insn, 7 + %and.i10.i765 = and i32 %shr.i9.i764, 31 + store i32 %and.i10.i765, ptr %u, align 4 + %shl.i.i766 = shl i32 %insn, 7 + %shr.i11.i767 = ashr i32 %shl.i.i766, 27 + %imm5.i768 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i767, ptr %imm5.i768, align 4 + %cfg_ptr.i769 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %170 = load ptr, ptr %cfg_ptr.i769, align 8 + %ext_xtheadmemidx.i770 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %170, i64 0, i32 89 + %171 = load i8, ptr %ext_xtheadmemidx.i770, align 8 %172 = and i8 %171, 1 - %tobool.not.i777 = icmp eq i8 %172, 0 - br i1 %tobool.not.i777, label %sw.epilog502, label %trans_th_lwib.exit + %tobool.not.i771 = icmp eq i8 %172, 0 + br i1 %tobool.not.i771, label %sw.epilog502, label %trans_th_lwib.exit trans_th_lwib.exit: ; preds = %sw.bb297 - %call.i779 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext true) - br i1 %call.i779, label %return, label %sw.epilog502 + %call.i773 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext true) + br i1 %call.i773, label %return, label %sw.epilog502 sw.bb301: ; preds = %sw.bb258 - %shr.i.i781 = lshr i32 %insn, 15 - %and.i.i782 = and i32 %shr.i.i781, 31 - %rs1.i783 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i782, ptr %rs1.i783, align 4 - %shr.i7.i784 = lshr i32 %insn, 25 - %and.i8.i785 = and i32 %shr.i7.i784, 3 - %imm2.i786 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i785, ptr %imm2.i786, align 4 - %shr.i9.i787 = lshr i32 %insn, 7 - %and.i10.i788 = and i32 %shr.i9.i787, 31 - store i32 %and.i10.i788, ptr %u, align 4 - %shr.i11.i789 = lshr i32 %insn, 20 - %and.i12.i790 = and i32 %shr.i11.i789, 31 - %rs2.i791 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i790, ptr %rs2.i791, align 4 - %cfg_ptr.i792 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %173 = load ptr, ptr %cfg_ptr.i792, align 8 - %ext_xtheadmemidx.i793 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %173, i64 0, i32 89 - %174 = load i8, ptr %ext_xtheadmemidx.i793, align 8 + %shr.i.i775 = lshr i32 %insn, 15 + %and.i.i776 = and i32 %shr.i.i775, 31 + %rs1.i777 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i776, ptr %rs1.i777, align 4 + %shr.i7.i778 = lshr i32 %insn, 25 + %and.i8.i779 = and i32 %shr.i7.i778, 3 + %imm2.i780 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i779, ptr %imm2.i780, align 4 + %shr.i9.i781 = lshr i32 %insn, 7 + %and.i10.i782 = and i32 %shr.i9.i781, 31 + store i32 %and.i10.i782, ptr %u, align 4 + %shr.i11.i783 = lshr i32 %insn, 20 + %and.i12.i784 = and i32 %shr.i11.i783, 31 + %rs2.i785 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i784, ptr %rs2.i785, align 4 + %cfg_ptr.i786 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %173 = load ptr, ptr %cfg_ptr.i786, align 8 + %ext_xtheadmemidx.i787 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %173, i64 0, i32 89 + %174 = load i8, ptr %ext_xtheadmemidx.i787, align 8 %175 = and i8 %174, 1 - %tobool.not.i794.not = icmp eq i8 %175, 0 - br i1 %tobool.not.i794.not, label %sw.epilog502, label %trans_th_lurw.exit.thread + %tobool.not.i788.not = icmp eq i8 %175, 0 + br i1 %tobool.not.i788.not, label %sw.epilog502, label %trans_th_lurw.exit.thread trans_th_lurw.exit.thread: ; preds = %sw.bb301 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext true) br label %return sw.bb305: ; preds = %sw.bb258 - %shr.i.i797 = lshr i32 %insn, 15 - %and.i.i798 = and i32 %shr.i.i797, 31 - %rs1.i799 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i798, ptr %rs1.i799, align 4 - %shr.i7.i800 = lshr i32 %insn, 25 - %and.i8.i801 = and i32 %shr.i7.i800, 3 - %imm2.i802 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i801, ptr %imm2.i802, align 4 - %shr.i9.i803 = lshr i32 %insn, 7 - %and.i10.i804 = and i32 %shr.i9.i803, 31 - store i32 %and.i10.i804, ptr %u, align 4 - %shl.i.i805 = shl i32 %insn, 7 - %shr.i11.i806 = ashr i32 %shl.i.i805, 27 - %imm5.i807 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i806, ptr %imm5.i807, align 4 - %cfg_ptr.i808 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %176 = load ptr, ptr %cfg_ptr.i808, align 8 - %ext_xtheadmemidx.i809 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %176, i64 0, i32 89 - %177 = load i8, ptr %ext_xtheadmemidx.i809, align 8 + %shr.i.i791 = lshr i32 %insn, 15 + %and.i.i792 = and i32 %shr.i.i791, 31 + %rs1.i793 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i792, ptr %rs1.i793, align 4 + %shr.i7.i794 = lshr i32 %insn, 25 + %and.i8.i795 = and i32 %shr.i7.i794, 3 + %imm2.i796 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i795, ptr %imm2.i796, align 4 + %shr.i9.i797 = lshr i32 %insn, 7 + %and.i10.i798 = and i32 %shr.i9.i797, 31 + store i32 %and.i10.i798, ptr %u, align 4 + %shl.i.i799 = shl i32 %insn, 7 + %shr.i11.i800 = ashr i32 %shl.i.i799, 27 + %imm5.i801 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i800, ptr %imm5.i801, align 4 + %cfg_ptr.i802 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %176 = load ptr, ptr %cfg_ptr.i802, align 8 + %ext_xtheadmemidx.i803 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %176, i64 0, i32 89 + %177 = load i8, ptr %ext_xtheadmemidx.i803, align 8 %178 = and i8 %177, 1 - %tobool.not.i810 = icmp eq i8 %178, 0 - br i1 %tobool.not.i810, label %sw.epilog502, label %trans_th_lwia.exit + %tobool.not.i804 = icmp eq i8 %178, 0 + br i1 %tobool.not.i804, label %sw.epilog502, label %trans_th_lwia.exit trans_th_lwia.exit: ; preds = %sw.bb305 - %call.i812 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext false) - br i1 %call.i812, label %return, label %sw.epilog502 + %call.i806 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext false) + br i1 %call.i806, label %return, label %sw.epilog502 sw.bb309: ; preds = %sw.bb258 - %shr.i.i814 = lshr i32 %insn, 15 - %and.i.i815 = and i32 %shr.i.i814, 31 - %rs1.i816 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i815, ptr %rs1.i816, align 4 - %shr.i7.i817 = lshr i32 %insn, 25 - %and.i8.i818 = and i32 %shr.i7.i817, 3 - %imm2.i819 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i818, ptr %imm2.i819, align 4 - %shr.i9.i820 = lshr i32 %insn, 7 - %and.i10.i821 = and i32 %shr.i9.i820, 31 - store i32 %and.i10.i821, ptr %u, align 4 - %shr.i11.i822 = lshr i32 %insn, 20 - %and.i12.i823 = and i32 %shr.i11.i822, 31 - %rs2.i824 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i823, ptr %rs2.i824, align 4 - %cfg_ptr.i825 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %179 = load ptr, ptr %cfg_ptr.i825, align 8 - %ext_xtheadmemidx.i826 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %179, i64 0, i32 89 - %180 = load i8, ptr %ext_xtheadmemidx.i826, align 8 + %shr.i.i808 = lshr i32 %insn, 15 + %and.i.i809 = and i32 %shr.i.i808, 31 + %rs1.i810 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i809, ptr %rs1.i810, align 4 + %shr.i7.i811 = lshr i32 %insn, 25 + %and.i8.i812 = and i32 %shr.i7.i811, 3 + %imm2.i813 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i812, ptr %imm2.i813, align 4 + %shr.i9.i814 = lshr i32 %insn, 7 + %and.i10.i815 = and i32 %shr.i9.i814, 31 + store i32 %and.i10.i815, ptr %u, align 4 + %shr.i11.i816 = lshr i32 %insn, 20 + %and.i12.i817 = and i32 %shr.i11.i816, 31 + %rs2.i818 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i817, ptr %rs2.i818, align 4 + %cfg_ptr.i819 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %179 = load ptr, ptr %cfg_ptr.i819, align 8 + %ext_xtheadmemidx.i820 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %179, i64 0, i32 89 + %180 = load i8, ptr %ext_xtheadmemidx.i820, align 8 %181 = and i8 %180, 1 - %tobool.not.i827.not = icmp eq i8 %181, 0 - br i1 %tobool.not.i827.not, label %sw.epilog502, label %trans_th_lrd.exit.thread + %tobool.not.i821.not = icmp eq i8 %181, 0 + br i1 %tobool.not.i821.not, label %sw.epilog502, label %trans_th_lrd.exit.thread trans_th_lrd.exit.thread: ; preds = %sw.bb309 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext false) br label %return sw.bb313: ; preds = %sw.bb258 - %shr.i.i830 = lshr i32 %insn, 15 - %and.i.i831 = and i32 %shr.i.i830, 31 - %rs1.i832 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i831, ptr %rs1.i832, align 4 - %shr.i7.i833 = lshr i32 %insn, 25 - %and.i8.i834 = and i32 %shr.i7.i833, 3 - %imm2.i835 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i834, ptr %imm2.i835, align 4 - %shr.i9.i836 = lshr i32 %insn, 7 - %and.i10.i837 = and i32 %shr.i9.i836, 31 - store i32 %and.i10.i837, ptr %u, align 4 - %shl.i.i838 = shl i32 %insn, 7 - %shr.i11.i839 = ashr i32 %shl.i.i838, 27 - %imm5.i840 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i839, ptr %imm5.i840, align 4 - %cfg_ptr.i841 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %182 = load ptr, ptr %cfg_ptr.i841, align 8 - %ext_xtheadmemidx.i842 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %182, i64 0, i32 89 - %183 = load i8, ptr %ext_xtheadmemidx.i842, align 8 + %shr.i.i824 = lshr i32 %insn, 15 + %and.i.i825 = and i32 %shr.i.i824, 31 + %rs1.i826 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i825, ptr %rs1.i826, align 4 + %shr.i7.i827 = lshr i32 %insn, 25 + %and.i8.i828 = and i32 %shr.i7.i827, 3 + %imm2.i829 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i828, ptr %imm2.i829, align 4 + %shr.i9.i830 = lshr i32 %insn, 7 + %and.i10.i831 = and i32 %shr.i9.i830, 31 + store i32 %and.i10.i831, ptr %u, align 4 + %shl.i.i832 = shl i32 %insn, 7 + %shr.i11.i833 = ashr i32 %shl.i.i832, 27 + %imm5.i834 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i833, ptr %imm5.i834, align 4 + %cfg_ptr.i835 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %182 = load ptr, ptr %cfg_ptr.i835, align 8 + %ext_xtheadmemidx.i836 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %182, i64 0, i32 89 + %183 = load i8, ptr %ext_xtheadmemidx.i836, align 8 %184 = and i8 %183, 1 - %tobool.not.i843 = icmp eq i8 %184, 0 - br i1 %tobool.not.i843, label %sw.epilog502, label %trans_th_ldib.exit + %tobool.not.i837 = icmp eq i8 %184, 0 + br i1 %tobool.not.i837, label %sw.epilog502, label %trans_th_ldib.exit trans_th_ldib.exit: ; preds = %sw.bb313 - %call.i845 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext true) - br i1 %call.i845, label %return, label %sw.epilog502 + %call.i839 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext true) + br i1 %call.i839, label %return, label %sw.epilog502 sw.bb317: ; preds = %sw.bb258 - %shr.i.i847 = lshr i32 %insn, 15 - %and.i.i848 = and i32 %shr.i.i847, 31 - %rs1.i849 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i848, ptr %rs1.i849, align 4 - %shr.i7.i850 = lshr i32 %insn, 25 - %and.i8.i851 = and i32 %shr.i7.i850, 3 - %imm2.i852 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i851, ptr %imm2.i852, align 4 - %shr.i9.i853 = lshr i32 %insn, 7 - %and.i10.i854 = and i32 %shr.i9.i853, 31 - store i32 %and.i10.i854, ptr %u, align 4 - %shr.i11.i855 = lshr i32 %insn, 20 - %and.i12.i856 = and i32 %shr.i11.i855, 31 - %rs2.i857 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i856, ptr %rs2.i857, align 4 - %cfg_ptr.i858 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %185 = load ptr, ptr %cfg_ptr.i858, align 8 - %ext_xtheadmemidx.i859 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %185, i64 0, i32 89 - %186 = load i8, ptr %ext_xtheadmemidx.i859, align 8 + %shr.i.i841 = lshr i32 %insn, 15 + %and.i.i842 = and i32 %shr.i.i841, 31 + %rs1.i843 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i842, ptr %rs1.i843, align 4 + %shr.i7.i844 = lshr i32 %insn, 25 + %and.i8.i845 = and i32 %shr.i7.i844, 3 + %imm2.i846 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i845, ptr %imm2.i846, align 4 + %shr.i9.i847 = lshr i32 %insn, 7 + %and.i10.i848 = and i32 %shr.i9.i847, 31 + store i32 %and.i10.i848, ptr %u, align 4 + %shr.i11.i849 = lshr i32 %insn, 20 + %and.i12.i850 = and i32 %shr.i11.i849, 31 + %rs2.i851 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i850, ptr %rs2.i851, align 4 + %cfg_ptr.i852 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %185 = load ptr, ptr %cfg_ptr.i852, align 8 + %ext_xtheadmemidx.i853 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %185, i64 0, i32 89 + %186 = load i8, ptr %ext_xtheadmemidx.i853, align 8 %187 = and i8 %186, 1 - %tobool.not.i860.not = icmp eq i8 %187, 0 - br i1 %tobool.not.i860.not, label %sw.epilog502, label %trans_th_lurd.exit.thread + %tobool.not.i854.not = icmp eq i8 %187, 0 + br i1 %tobool.not.i854.not, label %sw.epilog502, label %trans_th_lurd.exit.thread trans_th_lurd.exit.thread: ; preds = %sw.bb317 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext true) br label %return sw.bb321: ; preds = %sw.bb258 - %shr.i.i863 = lshr i32 %insn, 15 - %and.i.i864 = and i32 %shr.i.i863, 31 - %rs1.i865 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i864, ptr %rs1.i865, align 4 - %shr.i7.i866 = lshr i32 %insn, 25 - %and.i8.i867 = and i32 %shr.i7.i866, 3 - %imm2.i868 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i867, ptr %imm2.i868, align 4 - %shr.i9.i869 = lshr i32 %insn, 7 - %and.i10.i870 = and i32 %shr.i9.i869, 31 - store i32 %and.i10.i870, ptr %u, align 4 - %shl.i.i871 = shl i32 %insn, 7 - %shr.i11.i872 = ashr i32 %shl.i.i871, 27 - %imm5.i873 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i872, ptr %imm5.i873, align 4 - %cfg_ptr.i874 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %188 = load ptr, ptr %cfg_ptr.i874, align 8 - %ext_xtheadmemidx.i875 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %188, i64 0, i32 89 - %189 = load i8, ptr %ext_xtheadmemidx.i875, align 8 + %shr.i.i857 = lshr i32 %insn, 15 + %and.i.i858 = and i32 %shr.i.i857, 31 + %rs1.i859 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i858, ptr %rs1.i859, align 4 + %shr.i7.i860 = lshr i32 %insn, 25 + %and.i8.i861 = and i32 %shr.i7.i860, 3 + %imm2.i862 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i861, ptr %imm2.i862, align 4 + %shr.i9.i863 = lshr i32 %insn, 7 + %and.i10.i864 = and i32 %shr.i9.i863, 31 + store i32 %and.i10.i864, ptr %u, align 4 + %shl.i.i865 = shl i32 %insn, 7 + %shr.i11.i866 = ashr i32 %shl.i.i865, 27 + %imm5.i867 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i866, ptr %imm5.i867, align 4 + %cfg_ptr.i868 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %188 = load ptr, ptr %cfg_ptr.i868, align 8 + %ext_xtheadmemidx.i869 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %188, i64 0, i32 89 + %189 = load i8, ptr %ext_xtheadmemidx.i869, align 8 %190 = and i8 %189, 1 - %tobool.not.i876 = icmp eq i8 %190, 0 - br i1 %tobool.not.i876, label %sw.epilog502, label %trans_th_ldia.exit + %tobool.not.i870 = icmp eq i8 %190, 0 + br i1 %tobool.not.i870, label %sw.epilog502, label %trans_th_ldia.exit trans_th_ldia.exit: ; preds = %sw.bb321 - %call.i878 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext false) - br i1 %call.i878, label %return, label %sw.epilog502 + %call.i872 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext false) + br i1 %call.i872, label %return, label %sw.epilog502 sw.bb325: ; preds = %sw.bb258 - %shr.i.i880 = lshr i32 %insn, 15 - %and.i.i881 = and i32 %shr.i.i880, 31 - %rs1.i882 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i881, ptr %rs1.i882, align 4 - %shr.i7.i883 = lshr i32 %insn, 25 - %and.i8.i884 = and i32 %shr.i7.i883, 3 - %imm2.i885 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i884, ptr %imm2.i885, align 4 - %shr.i9.i886 = lshr i32 %insn, 7 - %and.i10.i887 = and i32 %shr.i9.i886, 31 - store i32 %and.i10.i887, ptr %u, align 4 - %shr.i11.i888 = lshr i32 %insn, 20 - %and.i12.i889 = and i32 %shr.i11.i888, 31 - %rs2.i890 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i889, ptr %rs2.i890, align 4 - %cfg_ptr.i891 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %191 = load ptr, ptr %cfg_ptr.i891, align 8 - %ext_xtheadmemidx.i892 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %191, i64 0, i32 89 - %192 = load i8, ptr %ext_xtheadmemidx.i892, align 8 + %shr.i.i874 = lshr i32 %insn, 15 + %and.i.i875 = and i32 %shr.i.i874, 31 + %rs1.i876 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i875, ptr %rs1.i876, align 4 + %shr.i7.i877 = lshr i32 %insn, 25 + %and.i8.i878 = and i32 %shr.i7.i877, 3 + %imm2.i879 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i878, ptr %imm2.i879, align 4 + %shr.i9.i880 = lshr i32 %insn, 7 + %and.i10.i881 = and i32 %shr.i9.i880, 31 + store i32 %and.i10.i881, ptr %u, align 4 + %shr.i11.i882 = lshr i32 %insn, 20 + %and.i12.i883 = and i32 %shr.i11.i882, 31 + %rs2.i884 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i883, ptr %rs2.i884, align 4 + %cfg_ptr.i885 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %191 = load ptr, ptr %cfg_ptr.i885, align 8 + %ext_xtheadmemidx.i886 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %191, i64 0, i32 89 + %192 = load i8, ptr %ext_xtheadmemidx.i886, align 8 %193 = and i8 %192, 1 - %tobool.not.i893.not = icmp eq i8 %193, 0 - br i1 %tobool.not.i893.not, label %sw.epilog502, label %trans_th_lrbu.exit.thread + %tobool.not.i887.not = icmp eq i8 %193, 0 + br i1 %tobool.not.i887.not, label %sw.epilog502, label %trans_th_lrbu.exit.thread trans_th_lrbu.exit.thread: ; preds = %sw.bb325 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, i1 noundef zeroext false) br label %return sw.bb329: ; preds = %sw.bb258 - %shr.i.i896 = lshr i32 %insn, 15 - %and.i.i897 = and i32 %shr.i.i896, 31 - %rs1.i898 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i897, ptr %rs1.i898, align 4 - %shr.i7.i899 = lshr i32 %insn, 25 - %and.i8.i900 = and i32 %shr.i7.i899, 3 - %imm2.i901 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i900, ptr %imm2.i901, align 4 - %shr.i9.i902 = lshr i32 %insn, 7 - %and.i10.i903 = and i32 %shr.i9.i902, 31 - store i32 %and.i10.i903, ptr %u, align 4 - %shl.i.i904 = shl i32 %insn, 7 - %shr.i11.i905 = ashr i32 %shl.i.i904, 27 - %imm5.i906 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i905, ptr %imm5.i906, align 4 - %cfg_ptr.i907 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %194 = load ptr, ptr %cfg_ptr.i907, align 8 - %ext_xtheadmemidx.i908 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %194, i64 0, i32 89 - %195 = load i8, ptr %ext_xtheadmemidx.i908, align 8 + %shr.i.i890 = lshr i32 %insn, 15 + %and.i.i891 = and i32 %shr.i.i890, 31 + %rs1.i892 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i891, ptr %rs1.i892, align 4 + %shr.i7.i893 = lshr i32 %insn, 25 + %and.i8.i894 = and i32 %shr.i7.i893, 3 + %imm2.i895 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i894, ptr %imm2.i895, align 4 + %shr.i9.i896 = lshr i32 %insn, 7 + %and.i10.i897 = and i32 %shr.i9.i896, 31 + store i32 %and.i10.i897, ptr %u, align 4 + %shl.i.i898 = shl i32 %insn, 7 + %shr.i11.i899 = ashr i32 %shl.i.i898, 27 + %imm5.i900 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i899, ptr %imm5.i900, align 4 + %cfg_ptr.i901 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %194 = load ptr, ptr %cfg_ptr.i901, align 8 + %ext_xtheadmemidx.i902 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %194, i64 0, i32 89 + %195 = load i8, ptr %ext_xtheadmemidx.i902, align 8 %196 = and i8 %195, 1 - %tobool.not.i909 = icmp eq i8 %196, 0 - br i1 %tobool.not.i909, label %sw.epilog502, label %trans_th_lbuib.exit + %tobool.not.i903 = icmp eq i8 %196, 0 + br i1 %tobool.not.i903, label %sw.epilog502, label %trans_th_lbuib.exit trans_th_lbuib.exit: ; preds = %sw.bb329 - %call.i911 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, i1 noundef zeroext true) - br i1 %call.i911, label %return, label %sw.epilog502 + %call.i905 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, i1 noundef zeroext true) + br i1 %call.i905, label %return, label %sw.epilog502 sw.bb333: ; preds = %sw.bb258 - %shr.i.i913 = lshr i32 %insn, 15 - %and.i.i914 = and i32 %shr.i.i913, 31 - %rs1.i915 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i914, ptr %rs1.i915, align 4 - %shr.i7.i916 = lshr i32 %insn, 25 - %and.i8.i917 = and i32 %shr.i7.i916, 3 - %imm2.i918 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i917, ptr %imm2.i918, align 4 - %shr.i9.i919 = lshr i32 %insn, 7 - %and.i10.i920 = and i32 %shr.i9.i919, 31 - store i32 %and.i10.i920, ptr %u, align 4 - %shr.i11.i921 = lshr i32 %insn, 20 - %and.i12.i922 = and i32 %shr.i11.i921, 31 - %rs2.i923 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i922, ptr %rs2.i923, align 4 - %cfg_ptr.i924 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %197 = load ptr, ptr %cfg_ptr.i924, align 8 - %ext_xtheadmemidx.i925 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %197, i64 0, i32 89 - %198 = load i8, ptr %ext_xtheadmemidx.i925, align 8 + %shr.i.i907 = lshr i32 %insn, 15 + %and.i.i908 = and i32 %shr.i.i907, 31 + %rs1.i909 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i908, ptr %rs1.i909, align 4 + %shr.i7.i910 = lshr i32 %insn, 25 + %and.i8.i911 = and i32 %shr.i7.i910, 3 + %imm2.i912 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i911, ptr %imm2.i912, align 4 + %shr.i9.i913 = lshr i32 %insn, 7 + %and.i10.i914 = and i32 %shr.i9.i913, 31 + store i32 %and.i10.i914, ptr %u, align 4 + %shr.i11.i915 = lshr i32 %insn, 20 + %and.i12.i916 = and i32 %shr.i11.i915, 31 + %rs2.i917 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i916, ptr %rs2.i917, align 4 + %cfg_ptr.i918 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %197 = load ptr, ptr %cfg_ptr.i918, align 8 + %ext_xtheadmemidx.i919 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %197, i64 0, i32 89 + %198 = load i8, ptr %ext_xtheadmemidx.i919, align 8 %199 = and i8 %198, 1 - %tobool.not.i926.not = icmp eq i8 %199, 0 - br i1 %tobool.not.i926.not, label %sw.epilog502, label %trans_th_lurbu.exit.thread + %tobool.not.i920.not = icmp eq i8 %199, 0 + br i1 %tobool.not.i920.not, label %sw.epilog502, label %trans_th_lurbu.exit.thread trans_th_lurbu.exit.thread: ; preds = %sw.bb333 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, i1 noundef zeroext true) br label %return sw.bb337: ; preds = %sw.bb258 - %shr.i.i929 = lshr i32 %insn, 15 - %and.i.i930 = and i32 %shr.i.i929, 31 - %rs1.i931 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i930, ptr %rs1.i931, align 4 - %shr.i7.i932 = lshr i32 %insn, 25 - %and.i8.i933 = and i32 %shr.i7.i932, 3 - %imm2.i934 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i933, ptr %imm2.i934, align 4 - %shr.i9.i935 = lshr i32 %insn, 7 - %and.i10.i936 = and i32 %shr.i9.i935, 31 - store i32 %and.i10.i936, ptr %u, align 4 - %shl.i.i937 = shl i32 %insn, 7 - %shr.i11.i938 = ashr i32 %shl.i.i937, 27 - %imm5.i939 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i938, ptr %imm5.i939, align 4 - %cfg_ptr.i940 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %200 = load ptr, ptr %cfg_ptr.i940, align 8 - %ext_xtheadmemidx.i941 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %200, i64 0, i32 89 - %201 = load i8, ptr %ext_xtheadmemidx.i941, align 8 + %shr.i.i923 = lshr i32 %insn, 15 + %and.i.i924 = and i32 %shr.i.i923, 31 + %rs1.i925 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i924, ptr %rs1.i925, align 4 + %shr.i7.i926 = lshr i32 %insn, 25 + %and.i8.i927 = and i32 %shr.i7.i926, 3 + %imm2.i928 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i927, ptr %imm2.i928, align 4 + %shr.i9.i929 = lshr i32 %insn, 7 + %and.i10.i930 = and i32 %shr.i9.i929, 31 + store i32 %and.i10.i930, ptr %u, align 4 + %shl.i.i931 = shl i32 %insn, 7 + %shr.i11.i932 = ashr i32 %shl.i.i931, 27 + %imm5.i933 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i932, ptr %imm5.i933, align 4 + %cfg_ptr.i934 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %200 = load ptr, ptr %cfg_ptr.i934, align 8 + %ext_xtheadmemidx.i935 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %200, i64 0, i32 89 + %201 = load i8, ptr %ext_xtheadmemidx.i935, align 8 %202 = and i8 %201, 1 - %tobool.not.i942 = icmp eq i8 %202, 0 - br i1 %tobool.not.i942, label %sw.epilog502, label %trans_th_lbuia.exit + %tobool.not.i936 = icmp eq i8 %202, 0 + br i1 %tobool.not.i936, label %sw.epilog502, label %trans_th_lbuia.exit trans_th_lbuia.exit: ; preds = %sw.bb337 - %call.i944 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, i1 noundef zeroext false) - br i1 %call.i944, label %return, label %sw.epilog502 + %call.i938 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 0, i1 noundef zeroext false) + br i1 %call.i938, label %return, label %sw.epilog502 sw.bb341: ; preds = %sw.bb258 - %shr.i.i946 = lshr i32 %insn, 15 - %and.i.i947 = and i32 %shr.i.i946, 31 - %rs1.i948 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i947, ptr %rs1.i948, align 4 - %shr.i7.i949 = lshr i32 %insn, 25 - %and.i8.i950 = and i32 %shr.i7.i949, 3 - %imm2.i951 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i950, ptr %imm2.i951, align 4 - %shr.i9.i952 = lshr i32 %insn, 7 - %and.i10.i953 = and i32 %shr.i9.i952, 31 - store i32 %and.i10.i953, ptr %u, align 4 - %shr.i11.i954 = lshr i32 %insn, 20 - %and.i12.i955 = and i32 %shr.i11.i954, 31 - %rs2.i956 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i955, ptr %rs2.i956, align 4 - %cfg_ptr.i957 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %203 = load ptr, ptr %cfg_ptr.i957, align 8 - %ext_xtheadmemidx.i958 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %203, i64 0, i32 89 - %204 = load i8, ptr %ext_xtheadmemidx.i958, align 8 + %shr.i.i940 = lshr i32 %insn, 15 + %and.i.i941 = and i32 %shr.i.i940, 31 + %rs1.i942 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i941, ptr %rs1.i942, align 4 + %shr.i7.i943 = lshr i32 %insn, 25 + %and.i8.i944 = and i32 %shr.i7.i943, 3 + %imm2.i945 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i944, ptr %imm2.i945, align 4 + %shr.i9.i946 = lshr i32 %insn, 7 + %and.i10.i947 = and i32 %shr.i9.i946, 31 + store i32 %and.i10.i947, ptr %u, align 4 + %shr.i11.i948 = lshr i32 %insn, 20 + %and.i12.i949 = and i32 %shr.i11.i948, 31 + %rs2.i950 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i949, ptr %rs2.i950, align 4 + %cfg_ptr.i951 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %203 = load ptr, ptr %cfg_ptr.i951, align 8 + %ext_xtheadmemidx.i952 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %203, i64 0, i32 89 + %204 = load i8, ptr %ext_xtheadmemidx.i952, align 8 %205 = and i8 %204, 1 - %tobool.not.i959.not = icmp eq i8 %205, 0 - br i1 %tobool.not.i959.not, label %sw.epilog502, label %trans_th_lrhu.exit.thread + %tobool.not.i953.not = icmp eq i8 %205, 0 + br i1 %tobool.not.i953.not, label %sw.epilog502, label %trans_th_lrhu.exit.thread trans_th_lrhu.exit.thread: ; preds = %sw.bb341 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, i1 noundef zeroext false) br label %return sw.bb345: ; preds = %sw.bb258 - %shr.i.i962 = lshr i32 %insn, 15 - %and.i.i963 = and i32 %shr.i.i962, 31 - %rs1.i964 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i963, ptr %rs1.i964, align 4 - %shr.i7.i965 = lshr i32 %insn, 25 - %and.i8.i966 = and i32 %shr.i7.i965, 3 - %imm2.i967 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i966, ptr %imm2.i967, align 4 - %shr.i9.i968 = lshr i32 %insn, 7 - %and.i10.i969 = and i32 %shr.i9.i968, 31 - store i32 %and.i10.i969, ptr %u, align 4 - %shl.i.i970 = shl i32 %insn, 7 - %shr.i11.i971 = ashr i32 %shl.i.i970, 27 - %imm5.i972 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i971, ptr %imm5.i972, align 4 - %cfg_ptr.i973 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %206 = load ptr, ptr %cfg_ptr.i973, align 8 - %ext_xtheadmemidx.i974 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %206, i64 0, i32 89 - %207 = load i8, ptr %ext_xtheadmemidx.i974, align 8 + %shr.i.i956 = lshr i32 %insn, 15 + %and.i.i957 = and i32 %shr.i.i956, 31 + %rs1.i958 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i957, ptr %rs1.i958, align 4 + %shr.i7.i959 = lshr i32 %insn, 25 + %and.i8.i960 = and i32 %shr.i7.i959, 3 + %imm2.i961 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i960, ptr %imm2.i961, align 4 + %shr.i9.i962 = lshr i32 %insn, 7 + %and.i10.i963 = and i32 %shr.i9.i962, 31 + store i32 %and.i10.i963, ptr %u, align 4 + %shl.i.i964 = shl i32 %insn, 7 + %shr.i11.i965 = ashr i32 %shl.i.i964, 27 + %imm5.i966 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i965, ptr %imm5.i966, align 4 + %cfg_ptr.i967 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %206 = load ptr, ptr %cfg_ptr.i967, align 8 + %ext_xtheadmemidx.i968 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %206, i64 0, i32 89 + %207 = load i8, ptr %ext_xtheadmemidx.i968, align 8 %208 = and i8 %207, 1 - %tobool.not.i975 = icmp eq i8 %208, 0 - br i1 %tobool.not.i975, label %sw.epilog502, label %trans_th_lhuib.exit + %tobool.not.i969 = icmp eq i8 %208, 0 + br i1 %tobool.not.i969, label %sw.epilog502, label %trans_th_lhuib.exit trans_th_lhuib.exit: ; preds = %sw.bb345 - %call.i977 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, i1 noundef zeroext true) - br i1 %call.i977, label %return, label %sw.epilog502 + %call.i971 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, i1 noundef zeroext true) + br i1 %call.i971, label %return, label %sw.epilog502 sw.bb349: ; preds = %sw.bb258 - %shr.i.i979 = lshr i32 %insn, 15 - %and.i.i980 = and i32 %shr.i.i979, 31 - %rs1.i981 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i980, ptr %rs1.i981, align 4 - %shr.i7.i982 = lshr i32 %insn, 25 - %and.i8.i983 = and i32 %shr.i7.i982, 3 - %imm2.i984 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i983, ptr %imm2.i984, align 4 - %shr.i9.i985 = lshr i32 %insn, 7 - %and.i10.i986 = and i32 %shr.i9.i985, 31 - store i32 %and.i10.i986, ptr %u, align 4 - %shr.i11.i987 = lshr i32 %insn, 20 - %and.i12.i988 = and i32 %shr.i11.i987, 31 - %rs2.i989 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i988, ptr %rs2.i989, align 4 - %cfg_ptr.i990 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %209 = load ptr, ptr %cfg_ptr.i990, align 8 - %ext_xtheadmemidx.i991 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %209, i64 0, i32 89 - %210 = load i8, ptr %ext_xtheadmemidx.i991, align 8 + %shr.i.i973 = lshr i32 %insn, 15 + %and.i.i974 = and i32 %shr.i.i973, 31 + %rs1.i975 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i974, ptr %rs1.i975, align 4 + %shr.i7.i976 = lshr i32 %insn, 25 + %and.i8.i977 = and i32 %shr.i7.i976, 3 + %imm2.i978 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i977, ptr %imm2.i978, align 4 + %shr.i9.i979 = lshr i32 %insn, 7 + %and.i10.i980 = and i32 %shr.i9.i979, 31 + store i32 %and.i10.i980, ptr %u, align 4 + %shr.i11.i981 = lshr i32 %insn, 20 + %and.i12.i982 = and i32 %shr.i11.i981, 31 + %rs2.i983 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i982, ptr %rs2.i983, align 4 + %cfg_ptr.i984 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %209 = load ptr, ptr %cfg_ptr.i984, align 8 + %ext_xtheadmemidx.i985 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %209, i64 0, i32 89 + %210 = load i8, ptr %ext_xtheadmemidx.i985, align 8 %211 = and i8 %210, 1 - %tobool.not.i992.not = icmp eq i8 %211, 0 - br i1 %tobool.not.i992.not, label %sw.epilog502, label %trans_th_lurhu.exit.thread + %tobool.not.i986.not = icmp eq i8 %211, 0 + br i1 %tobool.not.i986.not, label %sw.epilog502, label %trans_th_lurhu.exit.thread trans_th_lurhu.exit.thread: ; preds = %sw.bb349 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, i1 noundef zeroext true) br label %return sw.bb353: ; preds = %sw.bb258 - %shr.i.i995 = lshr i32 %insn, 15 - %and.i.i996 = and i32 %shr.i.i995, 31 - %rs1.i997 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i996, ptr %rs1.i997, align 4 - %shr.i7.i998 = lshr i32 %insn, 25 - %and.i8.i999 = and i32 %shr.i7.i998, 3 - %imm2.i1000 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i999, ptr %imm2.i1000, align 4 - %shr.i9.i1001 = lshr i32 %insn, 7 - %and.i10.i1002 = and i32 %shr.i9.i1001, 31 - store i32 %and.i10.i1002, ptr %u, align 4 - %shl.i.i1003 = shl i32 %insn, 7 - %shr.i11.i1004 = ashr i32 %shl.i.i1003, 27 - %imm5.i1005 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1004, ptr %imm5.i1005, align 4 - %cfg_ptr.i1006 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %212 = load ptr, ptr %cfg_ptr.i1006, align 8 - %ext_xtheadmemidx.i1007 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %212, i64 0, i32 89 - %213 = load i8, ptr %ext_xtheadmemidx.i1007, align 8 + %shr.i.i989 = lshr i32 %insn, 15 + %and.i.i990 = and i32 %shr.i.i989, 31 + %rs1.i991 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i990, ptr %rs1.i991, align 4 + %shr.i7.i992 = lshr i32 %insn, 25 + %and.i8.i993 = and i32 %shr.i7.i992, 3 + %imm2.i994 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i993, ptr %imm2.i994, align 4 + %shr.i9.i995 = lshr i32 %insn, 7 + %and.i10.i996 = and i32 %shr.i9.i995, 31 + store i32 %and.i10.i996, ptr %u, align 4 + %shl.i.i997 = shl i32 %insn, 7 + %shr.i11.i998 = ashr i32 %shl.i.i997, 27 + %imm5.i999 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i998, ptr %imm5.i999, align 4 + %cfg_ptr.i1000 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %212 = load ptr, ptr %cfg_ptr.i1000, align 8 + %ext_xtheadmemidx.i1001 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %212, i64 0, i32 89 + %213 = load i8, ptr %ext_xtheadmemidx.i1001, align 8 %214 = and i8 %213, 1 - %tobool.not.i1008 = icmp eq i8 %214, 0 - br i1 %tobool.not.i1008, label %sw.epilog502, label %trans_th_lhuia.exit + %tobool.not.i1002 = icmp eq i8 %214, 0 + br i1 %tobool.not.i1002, label %sw.epilog502, label %trans_th_lhuia.exit trans_th_lhuia.exit: ; preds = %sw.bb353 - %call.i1010 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, i1 noundef zeroext false) - br i1 %call.i1010, label %return, label %sw.epilog502 + %call.i1004 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 1, i1 noundef zeroext false) + br i1 %call.i1004, label %return, label %sw.epilog502 sw.bb357: ; preds = %sw.bb258 - %shr.i.i1012 = lshr i32 %insn, 15 - %and.i.i1013 = and i32 %shr.i.i1012, 31 - %rs1.i1014 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1013, ptr %rs1.i1014, align 4 - %shr.i7.i1015 = lshr i32 %insn, 25 - %and.i8.i1016 = and i32 %shr.i7.i1015, 3 - %imm2.i1017 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1016, ptr %imm2.i1017, align 4 - %shr.i9.i1018 = lshr i32 %insn, 7 - %and.i10.i1019 = and i32 %shr.i9.i1018, 31 - store i32 %and.i10.i1019, ptr %u, align 4 - %shr.i11.i1020 = lshr i32 %insn, 20 - %and.i12.i1021 = and i32 %shr.i11.i1020, 31 - %rs2.i1022 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1021, ptr %rs2.i1022, align 4 - %cfg_ptr.i1023 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %215 = load ptr, ptr %cfg_ptr.i1023, align 8 - %ext_xtheadmemidx.i1024 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %215, i64 0, i32 89 - %216 = load i8, ptr %ext_xtheadmemidx.i1024, align 8 + %shr.i.i1006 = lshr i32 %insn, 15 + %and.i.i1007 = and i32 %shr.i.i1006, 31 + %rs1.i1008 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1007, ptr %rs1.i1008, align 4 + %shr.i7.i1009 = lshr i32 %insn, 25 + %and.i8.i1010 = and i32 %shr.i7.i1009, 3 + %imm2.i1011 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1010, ptr %imm2.i1011, align 4 + %shr.i9.i1012 = lshr i32 %insn, 7 + %and.i10.i1013 = and i32 %shr.i9.i1012, 31 + store i32 %and.i10.i1013, ptr %u, align 4 + %shr.i11.i1014 = lshr i32 %insn, 20 + %and.i12.i1015 = and i32 %shr.i11.i1014, 31 + %rs2.i1016 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1015, ptr %rs2.i1016, align 4 + %cfg_ptr.i1017 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %215 = load ptr, ptr %cfg_ptr.i1017, align 8 + %ext_xtheadmemidx.i1018 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %215, i64 0, i32 89 + %216 = load i8, ptr %ext_xtheadmemidx.i1018, align 8 %217 = and i8 %216, 1 - %tobool.not.i1025.not = icmp eq i8 %217, 0 - br i1 %tobool.not.i1025.not, label %sw.epilog502, label %trans_th_lrwu.exit.thread + %tobool.not.i1019.not = icmp eq i8 %217, 0 + br i1 %tobool.not.i1019.not, label %sw.epilog502, label %trans_th_lrwu.exit.thread trans_th_lrwu.exit.thread: ; preds = %sw.bb357 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i1 noundef zeroext false) br label %return sw.bb361: ; preds = %sw.bb258 - %shr.i.i1028 = lshr i32 %insn, 15 - %and.i.i1029 = and i32 %shr.i.i1028, 31 - %rs1.i1030 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1029, ptr %rs1.i1030, align 4 - %shr.i7.i1031 = lshr i32 %insn, 25 - %and.i8.i1032 = and i32 %shr.i7.i1031, 3 - %imm2.i1033 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1032, ptr %imm2.i1033, align 4 - %shr.i9.i1034 = lshr i32 %insn, 7 - %and.i10.i1035 = and i32 %shr.i9.i1034, 31 - store i32 %and.i10.i1035, ptr %u, align 4 - %shl.i.i1036 = shl i32 %insn, 7 - %shr.i11.i1037 = ashr i32 %shl.i.i1036, 27 - %imm5.i1038 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1037, ptr %imm5.i1038, align 4 - %cfg_ptr.i1039 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %218 = load ptr, ptr %cfg_ptr.i1039, align 8 - %ext_xtheadmemidx.i1040 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %218, i64 0, i32 89 - %219 = load i8, ptr %ext_xtheadmemidx.i1040, align 8 + %shr.i.i1022 = lshr i32 %insn, 15 + %and.i.i1023 = and i32 %shr.i.i1022, 31 + %rs1.i1024 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1023, ptr %rs1.i1024, align 4 + %shr.i7.i1025 = lshr i32 %insn, 25 + %and.i8.i1026 = and i32 %shr.i7.i1025, 3 + %imm2.i1027 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1026, ptr %imm2.i1027, align 4 + %shr.i9.i1028 = lshr i32 %insn, 7 + %and.i10.i1029 = and i32 %shr.i9.i1028, 31 + store i32 %and.i10.i1029, ptr %u, align 4 + %shl.i.i1030 = shl i32 %insn, 7 + %shr.i11.i1031 = ashr i32 %shl.i.i1030, 27 + %imm5.i1032 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1031, ptr %imm5.i1032, align 4 + %cfg_ptr.i1033 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %218 = load ptr, ptr %cfg_ptr.i1033, align 8 + %ext_xtheadmemidx.i1034 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %218, i64 0, i32 89 + %219 = load i8, ptr %ext_xtheadmemidx.i1034, align 8 %220 = and i8 %219, 1 - %tobool.not.i1041 = icmp eq i8 %220, 0 - br i1 %tobool.not.i1041, label %sw.epilog502, label %trans_th_lwuib.exit + %tobool.not.i1035 = icmp eq i8 %220, 0 + br i1 %tobool.not.i1035, label %sw.epilog502, label %trans_th_lwuib.exit trans_th_lwuib.exit: ; preds = %sw.bb361 - %call.i1043 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i1 noundef zeroext true) - br i1 %call.i1043, label %return, label %sw.epilog502 + %call.i1037 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i1 noundef zeroext true) + br i1 %call.i1037, label %return, label %sw.epilog502 sw.bb365: ; preds = %sw.bb258 - %shr.i.i1045 = lshr i32 %insn, 15 - %and.i.i1046 = and i32 %shr.i.i1045, 31 - %rs1.i1047 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1046, ptr %rs1.i1047, align 4 - %shr.i7.i1048 = lshr i32 %insn, 25 - %and.i8.i1049 = and i32 %shr.i7.i1048, 3 - %imm2.i1050 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1049, ptr %imm2.i1050, align 4 - %shr.i9.i1051 = lshr i32 %insn, 7 - %and.i10.i1052 = and i32 %shr.i9.i1051, 31 - store i32 %and.i10.i1052, ptr %u, align 4 - %shr.i11.i1053 = lshr i32 %insn, 20 - %and.i12.i1054 = and i32 %shr.i11.i1053, 31 - %rs2.i1055 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1054, ptr %rs2.i1055, align 4 - %cfg_ptr.i1056 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %221 = load ptr, ptr %cfg_ptr.i1056, align 8 - %ext_xtheadmemidx.i1057 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %221, i64 0, i32 89 - %222 = load i8, ptr %ext_xtheadmemidx.i1057, align 8 + %shr.i.i1039 = lshr i32 %insn, 15 + %and.i.i1040 = and i32 %shr.i.i1039, 31 + %rs1.i1041 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1040, ptr %rs1.i1041, align 4 + %shr.i7.i1042 = lshr i32 %insn, 25 + %and.i8.i1043 = and i32 %shr.i7.i1042, 3 + %imm2.i1044 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1043, ptr %imm2.i1044, align 4 + %shr.i9.i1045 = lshr i32 %insn, 7 + %and.i10.i1046 = and i32 %shr.i9.i1045, 31 + store i32 %and.i10.i1046, ptr %u, align 4 + %shr.i11.i1047 = lshr i32 %insn, 20 + %and.i12.i1048 = and i32 %shr.i11.i1047, 31 + %rs2.i1049 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1048, ptr %rs2.i1049, align 4 + %cfg_ptr.i1050 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %221 = load ptr, ptr %cfg_ptr.i1050, align 8 + %ext_xtheadmemidx.i1051 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %221, i64 0, i32 89 + %222 = load i8, ptr %ext_xtheadmemidx.i1051, align 8 %223 = and i8 %222, 1 - %tobool.not.i1058.not = icmp eq i8 %223, 0 - br i1 %tobool.not.i1058.not, label %sw.epilog502, label %trans_th_lurwu.exit.thread + %tobool.not.i1052.not = icmp eq i8 %223, 0 + br i1 %tobool.not.i1052.not, label %sw.epilog502, label %trans_th_lurwu.exit.thread trans_th_lurwu.exit.thread: ; preds = %sw.bb365 call fastcc void @gen_load_idx(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i1 noundef zeroext true) br label %return sw.bb369: ; preds = %sw.bb258 - %shr.i.i1061 = lshr i32 %insn, 15 - %and.i.i1062 = and i32 %shr.i.i1061, 31 - %rs1.i1063 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1062, ptr %rs1.i1063, align 4 - %shr.i7.i1064 = lshr i32 %insn, 25 - %and.i8.i1065 = and i32 %shr.i7.i1064, 3 - %imm2.i1066 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1065, ptr %imm2.i1066, align 4 - %shr.i9.i1067 = lshr i32 %insn, 7 - %and.i10.i1068 = and i32 %shr.i9.i1067, 31 - store i32 %and.i10.i1068, ptr %u, align 4 - %shl.i.i1069 = shl i32 %insn, 7 - %shr.i11.i1070 = ashr i32 %shl.i.i1069, 27 - %imm5.i1071 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1070, ptr %imm5.i1071, align 4 - %cfg_ptr.i1072 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %224 = load ptr, ptr %cfg_ptr.i1072, align 8 - %ext_xtheadmemidx.i1073 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %224, i64 0, i32 89 - %225 = load i8, ptr %ext_xtheadmemidx.i1073, align 8 + %shr.i.i1055 = lshr i32 %insn, 15 + %and.i.i1056 = and i32 %shr.i.i1055, 31 + %rs1.i1057 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1056, ptr %rs1.i1057, align 4 + %shr.i7.i1058 = lshr i32 %insn, 25 + %and.i8.i1059 = and i32 %shr.i7.i1058, 3 + %imm2.i1060 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1059, ptr %imm2.i1060, align 4 + %shr.i9.i1061 = lshr i32 %insn, 7 + %and.i10.i1062 = and i32 %shr.i9.i1061, 31 + store i32 %and.i10.i1062, ptr %u, align 4 + %shl.i.i1063 = shl i32 %insn, 7 + %shr.i11.i1064 = ashr i32 %shl.i.i1063, 27 + %imm5.i1065 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1064, ptr %imm5.i1065, align 4 + %cfg_ptr.i1066 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %224 = load ptr, ptr %cfg_ptr.i1066, align 8 + %ext_xtheadmemidx.i1067 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %224, i64 0, i32 89 + %225 = load i8, ptr %ext_xtheadmemidx.i1067, align 8 %226 = and i8 %225, 1 - %tobool.not.i1074 = icmp eq i8 %226, 0 - br i1 %tobool.not.i1074, label %sw.epilog502, label %trans_th_lwuia.exit + %tobool.not.i1068 = icmp eq i8 %226, 0 + br i1 %tobool.not.i1068, label %sw.epilog502, label %trans_th_lwuia.exit trans_th_lwuia.exit: ; preds = %sw.bb369 - %call.i1076 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i1 noundef zeroext false) - br i1 %call.i1076, label %return, label %sw.epilog502 + %call.i1070 = call fastcc zeroext i1 @gen_load_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i1 noundef zeroext false) + br i1 %call.i1070, label %return, label %sw.epilog502 sw.bb373: ; preds = %sw.bb258 - %shr.i.i1078 = lshr i32 %insn, 20 - %and.i.i1079 = and i32 %shr.i.i1078, 31 + %shr.i.i1072 = lshr i32 %insn, 20 + %and.i.i1073 = and i32 %shr.i.i1072, 31 %rd2.i = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 - store i32 %and.i.i1079, ptr %rd2.i, align 4 - %shr.i7.i1080 = lshr i32 %insn, 7 - %and.i8.i1081 = and i32 %shr.i7.i1080, 31 - store i32 %and.i8.i1081, ptr %u, align 4 - %shr.i9.i1082 = lshr i32 %insn, 15 - %and.i10.i1083 = and i32 %shr.i9.i1082, 31 + store i32 %and.i.i1073, ptr %rd2.i, align 4 + %shr.i7.i1074 = lshr i32 %insn, 7 + %and.i8.i1075 = and i32 %shr.i7.i1074, 31 + store i32 %and.i8.i1075, ptr %u, align 4 + %shr.i9.i1076 = lshr i32 %insn, 15 + %and.i10.i1077 = and i32 %shr.i9.i1076, 31 %rs.i = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 - store i32 %and.i10.i1083, ptr %rs.i, align 4 - %shr.i11.i1084 = lshr i32 %insn, 25 - %and.i12.i1085 = and i32 %shr.i11.i1084, 3 + store i32 %and.i10.i1077, ptr %rs.i, align 4 + %shr.i11.i1078 = lshr i32 %insn, 25 + %and.i12.i1079 = and i32 %shr.i11.i1078, 3 %sh2.i = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 - store i32 %and.i12.i1085, ptr %sh2.i, align 4 - %cfg_ptr.i1086 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %227 = load ptr, ptr %cfg_ptr.i1086, align 8 + store i32 %and.i12.i1079, ptr %sh2.i, align 4 + %cfg_ptr.i1080 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %227 = load ptr, ptr %cfg_ptr.i1080, align 8 %ext_xtheadmempair.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %227, i64 0, i32 90 %228 = load i8, ptr %ext_xtheadmempair.i, align 1 %229 = and i8 %228, 1 - %tobool.not.i1087 = icmp eq i8 %229, 0 - br i1 %tobool.not.i1087, label %sw.epilog502, label %trans_th_lwd.exit + %tobool.not.i1081 = icmp eq i8 %229, 0 + br i1 %tobool.not.i1081, label %sw.epilog502, label %trans_th_lwd.exit trans_th_lwd.exit: ; preds = %sw.bb373 - %call.i1089 = call fastcc zeroext i1 @gen_loadpair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i32 noundef 3) - br i1 %call.i1089, label %return, label %sw.epilog502 + %call.i1083 = call fastcc zeroext i1 @gen_loadpair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i32 noundef 3) + br i1 %call.i1083, label %return, label %sw.epilog502 sw.bb377: ; preds = %sw.bb258 - %shr.i.i1091 = lshr i32 %insn, 20 - %and.i.i1092 = and i32 %shr.i.i1091, 31 - %rd2.i1093 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 - store i32 %and.i.i1092, ptr %rd2.i1093, align 4 - %shr.i7.i1094 = lshr i32 %insn, 7 - %and.i8.i1095 = and i32 %shr.i7.i1094, 31 - store i32 %and.i8.i1095, ptr %u, align 4 - %shr.i9.i1096 = lshr i32 %insn, 15 - %and.i10.i1097 = and i32 %shr.i9.i1096, 31 - %rs.i1098 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 - store i32 %and.i10.i1097, ptr %rs.i1098, align 4 - %shr.i11.i1099 = lshr i32 %insn, 25 - %and.i12.i1100 = and i32 %shr.i11.i1099, 3 - %sh2.i1101 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 - store i32 %and.i12.i1100, ptr %sh2.i1101, align 4 - %cfg_ptr.i1102 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %230 = load ptr, ptr %cfg_ptr.i1102, align 8 - %ext_xtheadmempair.i1103 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %230, i64 0, i32 90 - %231 = load i8, ptr %ext_xtheadmempair.i1103, align 1 + %shr.i.i1085 = lshr i32 %insn, 20 + %and.i.i1086 = and i32 %shr.i.i1085, 31 + %rd2.i1087 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 + store i32 %and.i.i1086, ptr %rd2.i1087, align 4 + %shr.i7.i1088 = lshr i32 %insn, 7 + %and.i8.i1089 = and i32 %shr.i7.i1088, 31 + store i32 %and.i8.i1089, ptr %u, align 4 + %shr.i9.i1090 = lshr i32 %insn, 15 + %and.i10.i1091 = and i32 %shr.i9.i1090, 31 + %rs.i1092 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 + store i32 %and.i10.i1091, ptr %rs.i1092, align 4 + %shr.i11.i1093 = lshr i32 %insn, 25 + %and.i12.i1094 = and i32 %shr.i11.i1093, 3 + %sh2.i1095 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 + store i32 %and.i12.i1094, ptr %sh2.i1095, align 4 + %cfg_ptr.i1096 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %230 = load ptr, ptr %cfg_ptr.i1096, align 8 + %ext_xtheadmempair.i1097 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %230, i64 0, i32 90 + %231 = load i8, ptr %ext_xtheadmempair.i1097, align 1 %232 = and i8 %231, 1 - %tobool.not.i1104 = icmp eq i8 %232, 0 - br i1 %tobool.not.i1104, label %sw.epilog502, label %trans_th_lwud.exit + %tobool.not.i1098 = icmp eq i8 %232, 0 + br i1 %tobool.not.i1098, label %sw.epilog502, label %trans_th_lwud.exit trans_th_lwud.exit: ; preds = %sw.bb377 - %call.i1106 = call fastcc zeroext i1 @gen_loadpair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i32 noundef 3) - br i1 %call.i1106, label %return, label %sw.epilog502 + %call.i1100 = call fastcc zeroext i1 @gen_loadpair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 2, i32 noundef 3) + br i1 %call.i1100, label %return, label %sw.epilog502 sw.bb381: ; preds = %sw.bb258 - %shr.i.i1108 = lshr i32 %insn, 20 - %and.i.i1109 = and i32 %shr.i.i1108, 31 - %rd2.i1110 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 - store i32 %and.i.i1109, ptr %rd2.i1110, align 4 - %shr.i7.i1111 = lshr i32 %insn, 7 - %and.i8.i1112 = and i32 %shr.i7.i1111, 31 - store i32 %and.i8.i1112, ptr %u, align 4 - %shr.i9.i1113 = lshr i32 %insn, 15 - %and.i10.i1114 = and i32 %shr.i9.i1113, 31 - %rs.i1115 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 - store i32 %and.i10.i1114, ptr %rs.i1115, align 4 - %shr.i11.i1116 = lshr i32 %insn, 25 - %and.i12.i1117 = and i32 %shr.i11.i1116, 3 - %sh2.i1118 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 - store i32 %and.i12.i1117, ptr %sh2.i1118, align 4 - %cfg_ptr.i1119 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %233 = load ptr, ptr %cfg_ptr.i1119, align 8 - %ext_xtheadmempair.i1120 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %233, i64 0, i32 90 - %234 = load i8, ptr %ext_xtheadmempair.i1120, align 1 + %shr.i.i1102 = lshr i32 %insn, 20 + %and.i.i1103 = and i32 %shr.i.i1102, 31 + %rd2.i1104 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 + store i32 %and.i.i1103, ptr %rd2.i1104, align 4 + %shr.i7.i1105 = lshr i32 %insn, 7 + %and.i8.i1106 = and i32 %shr.i7.i1105, 31 + store i32 %and.i8.i1106, ptr %u, align 4 + %shr.i9.i1107 = lshr i32 %insn, 15 + %and.i10.i1108 = and i32 %shr.i9.i1107, 31 + %rs.i1109 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 + store i32 %and.i10.i1108, ptr %rs.i1109, align 4 + %shr.i11.i1110 = lshr i32 %insn, 25 + %and.i12.i1111 = and i32 %shr.i11.i1110, 3 + %sh2.i1112 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 + store i32 %and.i12.i1111, ptr %sh2.i1112, align 4 + %cfg_ptr.i1113 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %233 = load ptr, ptr %cfg_ptr.i1113, align 8 + %ext_xtheadmempair.i1114 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %233, i64 0, i32 90 + %234 = load i8, ptr %ext_xtheadmempair.i1114, align 1 %235 = and i8 %234, 1 - %tobool.not.i1121 = icmp eq i8 %235, 0 - br i1 %tobool.not.i1121, label %sw.epilog502, label %trans_th_ldd.exit + %tobool.not.i1115 = icmp eq i8 %235, 0 + br i1 %tobool.not.i1115, label %sw.epilog502, label %trans_th_ldd.exit trans_th_ldd.exit: ; preds = %sw.bb381 - %call.i1123 = call fastcc zeroext i1 @gen_loadpair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i32 noundef 4) - br i1 %call.i1123, label %return, label %sw.epilog502 - -sw.bb258.unreachabledefault: ; preds = %sw.bb258 - unreachable + %call.i1117 = call fastcc zeroext i1 @gen_loadpair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i32 noundef 4) + br i1 %call.i1117, label %return, label %sw.epilog502 sw.bb386: ; preds = %entry %shr387 = lshr i32 %insn, 27 @@ -19365,453 +19340,453 @@ sw.bb386: ; preds = %entry ] sw.bb389: ; preds = %sw.bb386 - %shr.i.i1125 = lshr i32 %insn, 15 - %and.i.i1126 = and i32 %shr.i.i1125, 31 - %rs1.i1127 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1126, ptr %rs1.i1127, align 4 - %shr.i7.i1128 = lshr i32 %insn, 25 - %and.i8.i1129 = and i32 %shr.i7.i1128, 3 - %imm2.i1130 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1129, ptr %imm2.i1130, align 4 - %shr.i9.i1131 = lshr i32 %insn, 7 - %and.i10.i1132 = and i32 %shr.i9.i1131, 31 - store i32 %and.i10.i1132, ptr %u, align 4 - %shr.i11.i1133 = lshr i32 %insn, 20 - %and.i12.i1134 = and i32 %shr.i11.i1133, 31 - %rs2.i1135 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1134, ptr %rs2.i1135, align 4 + %shr.i.i1119 = lshr i32 %insn, 15 + %and.i.i1120 = and i32 %shr.i.i1119, 31 + %rs1.i1121 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1120, ptr %rs1.i1121, align 4 + %shr.i7.i1122 = lshr i32 %insn, 25 + %and.i8.i1123 = and i32 %shr.i7.i1122, 3 + %imm2.i1124 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1123, ptr %imm2.i1124, align 4 + %shr.i9.i1125 = lshr i32 %insn, 7 + %and.i10.i1126 = and i32 %shr.i9.i1125, 31 + store i32 %and.i10.i1126, ptr %u, align 4 + %shr.i11.i1127 = lshr i32 %insn, 20 + %and.i12.i1128 = and i32 %shr.i11.i1127, 31 + %rs2.i1129 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1128, ptr %rs2.i1129, align 4 %call390 = call fastcc zeroext i1 @trans_th_srb(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call390, label %return, label %sw.epilog502 sw.bb393: ; preds = %sw.bb386 - %shr.i.i1136 = lshr i32 %insn, 15 - %and.i.i1137 = and i32 %shr.i.i1136, 31 - %rs1.i1138 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1137, ptr %rs1.i1138, align 4 - %shr.i7.i1139 = lshr i32 %insn, 25 - %and.i8.i1140 = and i32 %shr.i7.i1139, 3 - %imm2.i1141 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1140, ptr %imm2.i1141, align 4 - %shr.i9.i1142 = lshr i32 %insn, 7 - %and.i10.i1143 = and i32 %shr.i9.i1142, 31 - store i32 %and.i10.i1143, ptr %u, align 4 - %shl.i.i1144 = shl i32 %insn, 7 - %shr.i11.i1145 = ashr i32 %shl.i.i1144, 27 - %imm5.i1146 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1145, ptr %imm5.i1146, align 4 - %cfg_ptr.i1147 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %236 = load ptr, ptr %cfg_ptr.i1147, align 8 - %ext_xtheadmemidx.i1148 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %236, i64 0, i32 89 - %237 = load i8, ptr %ext_xtheadmemidx.i1148, align 8 + %shr.i.i1130 = lshr i32 %insn, 15 + %and.i.i1131 = and i32 %shr.i.i1130, 31 + %rs1.i1132 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1131, ptr %rs1.i1132, align 4 + %shr.i7.i1133 = lshr i32 %insn, 25 + %and.i8.i1134 = and i32 %shr.i7.i1133, 3 + %imm2.i1135 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1134, ptr %imm2.i1135, align 4 + %shr.i9.i1136 = lshr i32 %insn, 7 + %and.i10.i1137 = and i32 %shr.i9.i1136, 31 + store i32 %and.i10.i1137, ptr %u, align 4 + %shl.i.i1138 = shl i32 %insn, 7 + %shr.i11.i1139 = ashr i32 %shl.i.i1138, 27 + %imm5.i1140 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1139, ptr %imm5.i1140, align 4 + %cfg_ptr.i1141 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %236 = load ptr, ptr %cfg_ptr.i1141, align 8 + %ext_xtheadmemidx.i1142 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %236, i64 0, i32 89 + %237 = load i8, ptr %ext_xtheadmemidx.i1142, align 8 %238 = and i8 %237, 1 - %tobool.not.i1149.not = icmp eq i8 %238, 0 - br i1 %tobool.not.i1149.not, label %sw.epilog502, label %trans_th_sbib.exit.thread + %tobool.not.i1143.not = icmp eq i8 %238, 0 + br i1 %tobool.not.i1143.not, label %sw.epilog502, label %trans_th_sbib.exit.thread trans_th_sbib.exit.thread: ; preds = %sw.bb393 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext true) br label %return sw.bb397: ; preds = %sw.bb386 - %shr.i.i1152 = lshr i32 %insn, 15 - %and.i.i1153 = and i32 %shr.i.i1152, 31 - %rs1.i1154 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1153, ptr %rs1.i1154, align 4 - %shr.i7.i1155 = lshr i32 %insn, 25 - %and.i8.i1156 = and i32 %shr.i7.i1155, 3 - %imm2.i1157 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1156, ptr %imm2.i1157, align 4 - %shr.i9.i1158 = lshr i32 %insn, 7 - %and.i10.i1159 = and i32 %shr.i9.i1158, 31 - store i32 %and.i10.i1159, ptr %u, align 4 - %shr.i11.i1160 = lshr i32 %insn, 20 - %and.i12.i1161 = and i32 %shr.i11.i1160, 31 - %rs2.i1162 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1161, ptr %rs2.i1162, align 4 + %shr.i.i1146 = lshr i32 %insn, 15 + %and.i.i1147 = and i32 %shr.i.i1146, 31 + %rs1.i1148 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1147, ptr %rs1.i1148, align 4 + %shr.i7.i1149 = lshr i32 %insn, 25 + %and.i8.i1150 = and i32 %shr.i7.i1149, 3 + %imm2.i1151 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1150, ptr %imm2.i1151, align 4 + %shr.i9.i1152 = lshr i32 %insn, 7 + %and.i10.i1153 = and i32 %shr.i9.i1152, 31 + store i32 %and.i10.i1153, ptr %u, align 4 + %shr.i11.i1154 = lshr i32 %insn, 20 + %and.i12.i1155 = and i32 %shr.i11.i1154, 31 + %rs2.i1156 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1155, ptr %rs2.i1156, align 4 %call398 = call fastcc zeroext i1 @trans_th_surb(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call398, label %return, label %sw.epilog502 sw.bb401: ; preds = %sw.bb386 - %shr.i.i1163 = lshr i32 %insn, 15 - %and.i.i1164 = and i32 %shr.i.i1163, 31 - %rs1.i1165 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1164, ptr %rs1.i1165, align 4 - %shr.i7.i1166 = lshr i32 %insn, 25 - %and.i8.i1167 = and i32 %shr.i7.i1166, 3 - %imm2.i1168 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1167, ptr %imm2.i1168, align 4 - %shr.i9.i1169 = lshr i32 %insn, 7 - %and.i10.i1170 = and i32 %shr.i9.i1169, 31 - store i32 %and.i10.i1170, ptr %u, align 4 - %shl.i.i1171 = shl i32 %insn, 7 - %shr.i11.i1172 = ashr i32 %shl.i.i1171, 27 - %imm5.i1173 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1172, ptr %imm5.i1173, align 4 - %cfg_ptr.i1174 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %239 = load ptr, ptr %cfg_ptr.i1174, align 8 - %ext_xtheadmemidx.i1175 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %239, i64 0, i32 89 - %240 = load i8, ptr %ext_xtheadmemidx.i1175, align 8 + %shr.i.i1157 = lshr i32 %insn, 15 + %and.i.i1158 = and i32 %shr.i.i1157, 31 + %rs1.i1159 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1158, ptr %rs1.i1159, align 4 + %shr.i7.i1160 = lshr i32 %insn, 25 + %and.i8.i1161 = and i32 %shr.i7.i1160, 3 + %imm2.i1162 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1161, ptr %imm2.i1162, align 4 + %shr.i9.i1163 = lshr i32 %insn, 7 + %and.i10.i1164 = and i32 %shr.i9.i1163, 31 + store i32 %and.i10.i1164, ptr %u, align 4 + %shl.i.i1165 = shl i32 %insn, 7 + %shr.i11.i1166 = ashr i32 %shl.i.i1165, 27 + %imm5.i1167 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1166, ptr %imm5.i1167, align 4 + %cfg_ptr.i1168 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %239 = load ptr, ptr %cfg_ptr.i1168, align 8 + %ext_xtheadmemidx.i1169 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %239, i64 0, i32 89 + %240 = load i8, ptr %ext_xtheadmemidx.i1169, align 8 %241 = and i8 %240, 1 - %tobool.not.i1176.not = icmp eq i8 %241, 0 - br i1 %tobool.not.i1176.not, label %sw.epilog502, label %trans_th_sbia.exit.thread + %tobool.not.i1170.not = icmp eq i8 %241, 0 + br i1 %tobool.not.i1170.not, label %sw.epilog502, label %trans_th_sbia.exit.thread trans_th_sbia.exit.thread: ; preds = %sw.bb401 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 8, i1 noundef zeroext false) br label %return sw.bb405: ; preds = %sw.bb386 - %shr.i.i1179 = lshr i32 %insn, 15 - %and.i.i1180 = and i32 %shr.i.i1179, 31 - %rs1.i1181 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1180, ptr %rs1.i1181, align 4 - %shr.i7.i1182 = lshr i32 %insn, 25 - %and.i8.i1183 = and i32 %shr.i7.i1182, 3 - %imm2.i1184 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1183, ptr %imm2.i1184, align 4 - %shr.i9.i1185 = lshr i32 %insn, 7 - %and.i10.i1186 = and i32 %shr.i9.i1185, 31 - store i32 %and.i10.i1186, ptr %u, align 4 - %shr.i11.i1187 = lshr i32 %insn, 20 - %and.i12.i1188 = and i32 %shr.i11.i1187, 31 - %rs2.i1189 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1188, ptr %rs2.i1189, align 4 + %shr.i.i1173 = lshr i32 %insn, 15 + %and.i.i1174 = and i32 %shr.i.i1173, 31 + %rs1.i1175 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1174, ptr %rs1.i1175, align 4 + %shr.i7.i1176 = lshr i32 %insn, 25 + %and.i8.i1177 = and i32 %shr.i7.i1176, 3 + %imm2.i1178 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1177, ptr %imm2.i1178, align 4 + %shr.i9.i1179 = lshr i32 %insn, 7 + %and.i10.i1180 = and i32 %shr.i9.i1179, 31 + store i32 %and.i10.i1180, ptr %u, align 4 + %shr.i11.i1181 = lshr i32 %insn, 20 + %and.i12.i1182 = and i32 %shr.i11.i1181, 31 + %rs2.i1183 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1182, ptr %rs2.i1183, align 4 %call406 = call fastcc zeroext i1 @trans_th_srh(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call406, label %return, label %sw.epilog502 sw.bb409: ; preds = %sw.bb386 - %shr.i.i1190 = lshr i32 %insn, 15 - %and.i.i1191 = and i32 %shr.i.i1190, 31 - %rs1.i1192 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1191, ptr %rs1.i1192, align 4 - %shr.i7.i1193 = lshr i32 %insn, 25 - %and.i8.i1194 = and i32 %shr.i7.i1193, 3 - %imm2.i1195 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1194, ptr %imm2.i1195, align 4 - %shr.i9.i1196 = lshr i32 %insn, 7 - %and.i10.i1197 = and i32 %shr.i9.i1196, 31 - store i32 %and.i10.i1197, ptr %u, align 4 - %shl.i.i1198 = shl i32 %insn, 7 - %shr.i11.i1199 = ashr i32 %shl.i.i1198, 27 - %imm5.i1200 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1199, ptr %imm5.i1200, align 4 - %cfg_ptr.i1201 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %242 = load ptr, ptr %cfg_ptr.i1201, align 8 - %ext_xtheadmemidx.i1202 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %242, i64 0, i32 89 - %243 = load i8, ptr %ext_xtheadmemidx.i1202, align 8 + %shr.i.i1184 = lshr i32 %insn, 15 + %and.i.i1185 = and i32 %shr.i.i1184, 31 + %rs1.i1186 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1185, ptr %rs1.i1186, align 4 + %shr.i7.i1187 = lshr i32 %insn, 25 + %and.i8.i1188 = and i32 %shr.i7.i1187, 3 + %imm2.i1189 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1188, ptr %imm2.i1189, align 4 + %shr.i9.i1190 = lshr i32 %insn, 7 + %and.i10.i1191 = and i32 %shr.i9.i1190, 31 + store i32 %and.i10.i1191, ptr %u, align 4 + %shl.i.i1192 = shl i32 %insn, 7 + %shr.i11.i1193 = ashr i32 %shl.i.i1192, 27 + %imm5.i1194 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1193, ptr %imm5.i1194, align 4 + %cfg_ptr.i1195 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %242 = load ptr, ptr %cfg_ptr.i1195, align 8 + %ext_xtheadmemidx.i1196 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %242, i64 0, i32 89 + %243 = load i8, ptr %ext_xtheadmemidx.i1196, align 8 %244 = and i8 %243, 1 - %tobool.not.i1203.not = icmp eq i8 %244, 0 - br i1 %tobool.not.i1203.not, label %sw.epilog502, label %trans_th_shib.exit.thread + %tobool.not.i1197.not = icmp eq i8 %244, 0 + br i1 %tobool.not.i1197.not, label %sw.epilog502, label %trans_th_shib.exit.thread trans_th_shib.exit.thread: ; preds = %sw.bb409 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext true) br label %return sw.bb413: ; preds = %sw.bb386 - %shr.i.i1206 = lshr i32 %insn, 15 - %and.i.i1207 = and i32 %shr.i.i1206, 31 - %rs1.i1208 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1207, ptr %rs1.i1208, align 4 - %shr.i7.i1209 = lshr i32 %insn, 25 - %and.i8.i1210 = and i32 %shr.i7.i1209, 3 - %imm2.i1211 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1210, ptr %imm2.i1211, align 4 - %shr.i9.i1212 = lshr i32 %insn, 7 - %and.i10.i1213 = and i32 %shr.i9.i1212, 31 - store i32 %and.i10.i1213, ptr %u, align 4 - %shr.i11.i1214 = lshr i32 %insn, 20 - %and.i12.i1215 = and i32 %shr.i11.i1214, 31 - %rs2.i1216 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1215, ptr %rs2.i1216, align 4 + %shr.i.i1200 = lshr i32 %insn, 15 + %and.i.i1201 = and i32 %shr.i.i1200, 31 + %rs1.i1202 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1201, ptr %rs1.i1202, align 4 + %shr.i7.i1203 = lshr i32 %insn, 25 + %and.i8.i1204 = and i32 %shr.i7.i1203, 3 + %imm2.i1205 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1204, ptr %imm2.i1205, align 4 + %shr.i9.i1206 = lshr i32 %insn, 7 + %and.i10.i1207 = and i32 %shr.i9.i1206, 31 + store i32 %and.i10.i1207, ptr %u, align 4 + %shr.i11.i1208 = lshr i32 %insn, 20 + %and.i12.i1209 = and i32 %shr.i11.i1208, 31 + %rs2.i1210 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1209, ptr %rs2.i1210, align 4 %call414 = call fastcc zeroext i1 @trans_th_surh(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call414, label %return, label %sw.epilog502 sw.bb417: ; preds = %sw.bb386 - %shr.i.i1217 = lshr i32 %insn, 15 - %and.i.i1218 = and i32 %shr.i.i1217, 31 - %rs1.i1219 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1218, ptr %rs1.i1219, align 4 - %shr.i7.i1220 = lshr i32 %insn, 25 - %and.i8.i1221 = and i32 %shr.i7.i1220, 3 - %imm2.i1222 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1221, ptr %imm2.i1222, align 4 - %shr.i9.i1223 = lshr i32 %insn, 7 - %and.i10.i1224 = and i32 %shr.i9.i1223, 31 - store i32 %and.i10.i1224, ptr %u, align 4 - %shl.i.i1225 = shl i32 %insn, 7 - %shr.i11.i1226 = ashr i32 %shl.i.i1225, 27 - %imm5.i1227 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1226, ptr %imm5.i1227, align 4 - %cfg_ptr.i1228 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %245 = load ptr, ptr %cfg_ptr.i1228, align 8 - %ext_xtheadmemidx.i1229 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %245, i64 0, i32 89 - %246 = load i8, ptr %ext_xtheadmemidx.i1229, align 8 + %shr.i.i1211 = lshr i32 %insn, 15 + %and.i.i1212 = and i32 %shr.i.i1211, 31 + %rs1.i1213 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1212, ptr %rs1.i1213, align 4 + %shr.i7.i1214 = lshr i32 %insn, 25 + %and.i8.i1215 = and i32 %shr.i7.i1214, 3 + %imm2.i1216 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1215, ptr %imm2.i1216, align 4 + %shr.i9.i1217 = lshr i32 %insn, 7 + %and.i10.i1218 = and i32 %shr.i9.i1217, 31 + store i32 %and.i10.i1218, ptr %u, align 4 + %shl.i.i1219 = shl i32 %insn, 7 + %shr.i11.i1220 = ashr i32 %shl.i.i1219, 27 + %imm5.i1221 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1220, ptr %imm5.i1221, align 4 + %cfg_ptr.i1222 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %245 = load ptr, ptr %cfg_ptr.i1222, align 8 + %ext_xtheadmemidx.i1223 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %245, i64 0, i32 89 + %246 = load i8, ptr %ext_xtheadmemidx.i1223, align 8 %247 = and i8 %246, 1 - %tobool.not.i1230.not = icmp eq i8 %247, 0 - br i1 %tobool.not.i1230.not, label %sw.epilog502, label %trans_th_shia.exit.thread + %tobool.not.i1224.not = icmp eq i8 %247, 0 + br i1 %tobool.not.i1224.not, label %sw.epilog502, label %trans_th_shia.exit.thread trans_th_shia.exit.thread: ; preds = %sw.bb417 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 9, i1 noundef zeroext false) br label %return sw.bb421: ; preds = %sw.bb386 - %shr.i.i1233 = lshr i32 %insn, 15 - %and.i.i1234 = and i32 %shr.i.i1233, 31 - %rs1.i1235 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1234, ptr %rs1.i1235, align 4 - %shr.i7.i1236 = lshr i32 %insn, 25 - %and.i8.i1237 = and i32 %shr.i7.i1236, 3 - %imm2.i1238 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1237, ptr %imm2.i1238, align 4 - %shr.i9.i1239 = lshr i32 %insn, 7 - %and.i10.i1240 = and i32 %shr.i9.i1239, 31 - store i32 %and.i10.i1240, ptr %u, align 4 - %shr.i11.i1241 = lshr i32 %insn, 20 - %and.i12.i1242 = and i32 %shr.i11.i1241, 31 - %rs2.i1243 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1242, ptr %rs2.i1243, align 4 + %shr.i.i1227 = lshr i32 %insn, 15 + %and.i.i1228 = and i32 %shr.i.i1227, 31 + %rs1.i1229 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1228, ptr %rs1.i1229, align 4 + %shr.i7.i1230 = lshr i32 %insn, 25 + %and.i8.i1231 = and i32 %shr.i7.i1230, 3 + %imm2.i1232 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1231, ptr %imm2.i1232, align 4 + %shr.i9.i1233 = lshr i32 %insn, 7 + %and.i10.i1234 = and i32 %shr.i9.i1233, 31 + store i32 %and.i10.i1234, ptr %u, align 4 + %shr.i11.i1235 = lshr i32 %insn, 20 + %and.i12.i1236 = and i32 %shr.i11.i1235, 31 + %rs2.i1237 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1236, ptr %rs2.i1237, align 4 %call422 = call fastcc zeroext i1 @trans_th_srw(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call422, label %return, label %sw.epilog502 sw.bb425: ; preds = %sw.bb386 - %shr.i.i1244 = lshr i32 %insn, 15 - %and.i.i1245 = and i32 %shr.i.i1244, 31 - %rs1.i1246 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1245, ptr %rs1.i1246, align 4 - %shr.i7.i1247 = lshr i32 %insn, 25 - %and.i8.i1248 = and i32 %shr.i7.i1247, 3 - %imm2.i1249 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1248, ptr %imm2.i1249, align 4 - %shr.i9.i1250 = lshr i32 %insn, 7 - %and.i10.i1251 = and i32 %shr.i9.i1250, 31 - store i32 %and.i10.i1251, ptr %u, align 4 - %shl.i.i1252 = shl i32 %insn, 7 - %shr.i11.i1253 = ashr i32 %shl.i.i1252, 27 - %imm5.i1254 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1253, ptr %imm5.i1254, align 4 - %cfg_ptr.i1255 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %248 = load ptr, ptr %cfg_ptr.i1255, align 8 - %ext_xtheadmemidx.i1256 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %248, i64 0, i32 89 - %249 = load i8, ptr %ext_xtheadmemidx.i1256, align 8 + %shr.i.i1238 = lshr i32 %insn, 15 + %and.i.i1239 = and i32 %shr.i.i1238, 31 + %rs1.i1240 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1239, ptr %rs1.i1240, align 4 + %shr.i7.i1241 = lshr i32 %insn, 25 + %and.i8.i1242 = and i32 %shr.i7.i1241, 3 + %imm2.i1243 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1242, ptr %imm2.i1243, align 4 + %shr.i9.i1244 = lshr i32 %insn, 7 + %and.i10.i1245 = and i32 %shr.i9.i1244, 31 + store i32 %and.i10.i1245, ptr %u, align 4 + %shl.i.i1246 = shl i32 %insn, 7 + %shr.i11.i1247 = ashr i32 %shl.i.i1246, 27 + %imm5.i1248 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1247, ptr %imm5.i1248, align 4 + %cfg_ptr.i1249 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %248 = load ptr, ptr %cfg_ptr.i1249, align 8 + %ext_xtheadmemidx.i1250 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %248, i64 0, i32 89 + %249 = load i8, ptr %ext_xtheadmemidx.i1250, align 8 %250 = and i8 %249, 1 - %tobool.not.i1257.not = icmp eq i8 %250, 0 - br i1 %tobool.not.i1257.not, label %sw.epilog502, label %trans_th_swib.exit.thread + %tobool.not.i1251.not = icmp eq i8 %250, 0 + br i1 %tobool.not.i1251.not, label %sw.epilog502, label %trans_th_swib.exit.thread trans_th_swib.exit.thread: ; preds = %sw.bb425 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext true) br label %return sw.bb429: ; preds = %sw.bb386 - %shr.i.i1260 = lshr i32 %insn, 15 - %and.i.i1261 = and i32 %shr.i.i1260, 31 - %rs1.i1262 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1261, ptr %rs1.i1262, align 4 - %shr.i7.i1263 = lshr i32 %insn, 25 - %and.i8.i1264 = and i32 %shr.i7.i1263, 3 - %imm2.i1265 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1264, ptr %imm2.i1265, align 4 - %shr.i9.i1266 = lshr i32 %insn, 7 - %and.i10.i1267 = and i32 %shr.i9.i1266, 31 - store i32 %and.i10.i1267, ptr %u, align 4 - %shr.i11.i1268 = lshr i32 %insn, 20 - %and.i12.i1269 = and i32 %shr.i11.i1268, 31 - %rs2.i1270 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1269, ptr %rs2.i1270, align 4 + %shr.i.i1254 = lshr i32 %insn, 15 + %and.i.i1255 = and i32 %shr.i.i1254, 31 + %rs1.i1256 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1255, ptr %rs1.i1256, align 4 + %shr.i7.i1257 = lshr i32 %insn, 25 + %and.i8.i1258 = and i32 %shr.i7.i1257, 3 + %imm2.i1259 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1258, ptr %imm2.i1259, align 4 + %shr.i9.i1260 = lshr i32 %insn, 7 + %and.i10.i1261 = and i32 %shr.i9.i1260, 31 + store i32 %and.i10.i1261, ptr %u, align 4 + %shr.i11.i1262 = lshr i32 %insn, 20 + %and.i12.i1263 = and i32 %shr.i11.i1262, 31 + %rs2.i1264 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1263, ptr %rs2.i1264, align 4 %call430 = call fastcc zeroext i1 @trans_th_surw(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call430, label %return, label %sw.epilog502 sw.bb433: ; preds = %sw.bb386 - %shr.i.i1271 = lshr i32 %insn, 15 - %and.i.i1272 = and i32 %shr.i.i1271, 31 - %rs1.i1273 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1272, ptr %rs1.i1273, align 4 - %shr.i7.i1274 = lshr i32 %insn, 25 - %and.i8.i1275 = and i32 %shr.i7.i1274, 3 - %imm2.i1276 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1275, ptr %imm2.i1276, align 4 - %shr.i9.i1277 = lshr i32 %insn, 7 - %and.i10.i1278 = and i32 %shr.i9.i1277, 31 - store i32 %and.i10.i1278, ptr %u, align 4 - %shl.i.i1279 = shl i32 %insn, 7 - %shr.i11.i1280 = ashr i32 %shl.i.i1279, 27 - %imm5.i1281 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1280, ptr %imm5.i1281, align 4 - %cfg_ptr.i1282 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %251 = load ptr, ptr %cfg_ptr.i1282, align 8 - %ext_xtheadmemidx.i1283 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %251, i64 0, i32 89 - %252 = load i8, ptr %ext_xtheadmemidx.i1283, align 8 + %shr.i.i1265 = lshr i32 %insn, 15 + %and.i.i1266 = and i32 %shr.i.i1265, 31 + %rs1.i1267 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1266, ptr %rs1.i1267, align 4 + %shr.i7.i1268 = lshr i32 %insn, 25 + %and.i8.i1269 = and i32 %shr.i7.i1268, 3 + %imm2.i1270 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1269, ptr %imm2.i1270, align 4 + %shr.i9.i1271 = lshr i32 %insn, 7 + %and.i10.i1272 = and i32 %shr.i9.i1271, 31 + store i32 %and.i10.i1272, ptr %u, align 4 + %shl.i.i1273 = shl i32 %insn, 7 + %shr.i11.i1274 = ashr i32 %shl.i.i1273, 27 + %imm5.i1275 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1274, ptr %imm5.i1275, align 4 + %cfg_ptr.i1276 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %251 = load ptr, ptr %cfg_ptr.i1276, align 8 + %ext_xtheadmemidx.i1277 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %251, i64 0, i32 89 + %252 = load i8, ptr %ext_xtheadmemidx.i1277, align 8 %253 = and i8 %252, 1 - %tobool.not.i1284.not = icmp eq i8 %253, 0 - br i1 %tobool.not.i1284.not, label %sw.epilog502, label %trans_th_swia.exit.thread + %tobool.not.i1278.not = icmp eq i8 %253, 0 + br i1 %tobool.not.i1278.not, label %sw.epilog502, label %trans_th_swia.exit.thread trans_th_swia.exit.thread: ; preds = %sw.bb433 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i1 noundef zeroext false) br label %return sw.bb437: ; preds = %sw.bb386 - %shr.i.i1287 = lshr i32 %insn, 15 - %and.i.i1288 = and i32 %shr.i.i1287, 31 - %rs1.i1289 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1288, ptr %rs1.i1289, align 4 - %shr.i7.i1290 = lshr i32 %insn, 25 - %and.i8.i1291 = and i32 %shr.i7.i1290, 3 - %imm2.i1292 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1291, ptr %imm2.i1292, align 4 - %shr.i9.i1293 = lshr i32 %insn, 7 - %and.i10.i1294 = and i32 %shr.i9.i1293, 31 - store i32 %and.i10.i1294, ptr %u, align 4 - %shr.i11.i1295 = lshr i32 %insn, 20 - %and.i12.i1296 = and i32 %shr.i11.i1295, 31 - %rs2.i1297 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1296, ptr %rs2.i1297, align 4 + %shr.i.i1281 = lshr i32 %insn, 15 + %and.i.i1282 = and i32 %shr.i.i1281, 31 + %rs1.i1283 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1282, ptr %rs1.i1283, align 4 + %shr.i7.i1284 = lshr i32 %insn, 25 + %and.i8.i1285 = and i32 %shr.i7.i1284, 3 + %imm2.i1286 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1285, ptr %imm2.i1286, align 4 + %shr.i9.i1287 = lshr i32 %insn, 7 + %and.i10.i1288 = and i32 %shr.i9.i1287, 31 + store i32 %and.i10.i1288, ptr %u, align 4 + %shr.i11.i1289 = lshr i32 %insn, 20 + %and.i12.i1290 = and i32 %shr.i11.i1289, 31 + %rs2.i1291 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1290, ptr %rs2.i1291, align 4 %call438 = call fastcc zeroext i1 @trans_th_srd(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call438, label %return, label %sw.epilog502 sw.bb441: ; preds = %sw.bb386 - %shr.i.i1298 = lshr i32 %insn, 15 - %and.i.i1299 = and i32 %shr.i.i1298, 31 - %rs1.i1300 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1299, ptr %rs1.i1300, align 4 - %shr.i7.i1301 = lshr i32 %insn, 25 - %and.i8.i1302 = and i32 %shr.i7.i1301, 3 - %imm2.i1303 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1302, ptr %imm2.i1303, align 4 - %shr.i9.i1304 = lshr i32 %insn, 7 - %and.i10.i1305 = and i32 %shr.i9.i1304, 31 - store i32 %and.i10.i1305, ptr %u, align 4 - %shl.i.i1306 = shl i32 %insn, 7 - %shr.i11.i1307 = ashr i32 %shl.i.i1306, 27 - %imm5.i1308 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1307, ptr %imm5.i1308, align 4 - %cfg_ptr.i1309 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %254 = load ptr, ptr %cfg_ptr.i1309, align 8 - %ext_xtheadmemidx.i1310 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %254, i64 0, i32 89 - %255 = load i8, ptr %ext_xtheadmemidx.i1310, align 8 + %shr.i.i1292 = lshr i32 %insn, 15 + %and.i.i1293 = and i32 %shr.i.i1292, 31 + %rs1.i1294 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1293, ptr %rs1.i1294, align 4 + %shr.i7.i1295 = lshr i32 %insn, 25 + %and.i8.i1296 = and i32 %shr.i7.i1295, 3 + %imm2.i1297 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1296, ptr %imm2.i1297, align 4 + %shr.i9.i1298 = lshr i32 %insn, 7 + %and.i10.i1299 = and i32 %shr.i9.i1298, 31 + store i32 %and.i10.i1299, ptr %u, align 4 + %shl.i.i1300 = shl i32 %insn, 7 + %shr.i11.i1301 = ashr i32 %shl.i.i1300, 27 + %imm5.i1302 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1301, ptr %imm5.i1302, align 4 + %cfg_ptr.i1303 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %254 = load ptr, ptr %cfg_ptr.i1303, align 8 + %ext_xtheadmemidx.i1304 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %254, i64 0, i32 89 + %255 = load i8, ptr %ext_xtheadmemidx.i1304, align 8 %256 = and i8 %255, 1 - %tobool.not.i1311.not = icmp eq i8 %256, 0 - br i1 %tobool.not.i1311.not, label %sw.epilog502, label %trans_th_sdib.exit.thread + %tobool.not.i1305.not = icmp eq i8 %256, 0 + br i1 %tobool.not.i1305.not, label %sw.epilog502, label %trans_th_sdib.exit.thread trans_th_sdib.exit.thread: ; preds = %sw.bb441 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext true) br label %return sw.bb445: ; preds = %sw.bb386 - %shr.i.i1314 = lshr i32 %insn, 15 - %and.i.i1315 = and i32 %shr.i.i1314, 31 - %rs1.i1316 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1315, ptr %rs1.i1316, align 4 - %shr.i7.i1317 = lshr i32 %insn, 25 - %and.i8.i1318 = and i32 %shr.i7.i1317, 3 - %imm2.i1319 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1318, ptr %imm2.i1319, align 4 - %shr.i9.i1320 = lshr i32 %insn, 7 - %and.i10.i1321 = and i32 %shr.i9.i1320, 31 - store i32 %and.i10.i1321, ptr %u, align 4 - %shr.i11.i1322 = lshr i32 %insn, 20 - %and.i12.i1323 = and i32 %shr.i11.i1322, 31 - %rs2.i1324 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1323, ptr %rs2.i1324, align 4 + %shr.i.i1308 = lshr i32 %insn, 15 + %and.i.i1309 = and i32 %shr.i.i1308, 31 + %rs1.i1310 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1309, ptr %rs1.i1310, align 4 + %shr.i7.i1311 = lshr i32 %insn, 25 + %and.i8.i1312 = and i32 %shr.i7.i1311, 3 + %imm2.i1313 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1312, ptr %imm2.i1313, align 4 + %shr.i9.i1314 = lshr i32 %insn, 7 + %and.i10.i1315 = and i32 %shr.i9.i1314, 31 + store i32 %and.i10.i1315, ptr %u, align 4 + %shr.i11.i1316 = lshr i32 %insn, 20 + %and.i12.i1317 = and i32 %shr.i11.i1316, 31 + %rs2.i1318 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1317, ptr %rs2.i1318, align 4 %call446 = call fastcc zeroext i1 @trans_th_surd(ptr noundef %ctx, ptr noundef nonnull %u) br i1 %call446, label %return, label %sw.epilog502 sw.bb449: ; preds = %sw.bb386 - %shr.i.i1325 = lshr i32 %insn, 15 - %and.i.i1326 = and i32 %shr.i.i1325, 31 - %rs1.i1327 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 - store i32 %and.i.i1326, ptr %rs1.i1327, align 4 - %shr.i7.i1328 = lshr i32 %insn, 25 - %and.i8.i1329 = and i32 %shr.i7.i1328, 3 - %imm2.i1330 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1329, ptr %imm2.i1330, align 4 - %shr.i9.i1331 = lshr i32 %insn, 7 - %and.i10.i1332 = and i32 %shr.i9.i1331, 31 - store i32 %and.i10.i1332, ptr %u, align 4 - %shl.i.i1333 = shl i32 %insn, 7 - %shr.i11.i1334 = ashr i32 %shl.i.i1333, 27 - %imm5.i1335 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 - store i32 %shr.i11.i1334, ptr %imm5.i1335, align 4 - %cfg_ptr.i1336 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %257 = load ptr, ptr %cfg_ptr.i1336, align 8 - %ext_xtheadmemidx.i1337 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %257, i64 0, i32 89 - %258 = load i8, ptr %ext_xtheadmemidx.i1337, align 8 + %shr.i.i1319 = lshr i32 %insn, 15 + %and.i.i1320 = and i32 %shr.i.i1319, 31 + %rs1.i1321 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 1 + store i32 %and.i.i1320, ptr %rs1.i1321, align 4 + %shr.i7.i1322 = lshr i32 %insn, 25 + %and.i8.i1323 = and i32 %shr.i7.i1322, 3 + %imm2.i1324 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1323, ptr %imm2.i1324, align 4 + %shr.i9.i1325 = lshr i32 %insn, 7 + %and.i10.i1326 = and i32 %shr.i9.i1325, 31 + store i32 %and.i10.i1326, ptr %u, align 4 + %shl.i.i1327 = shl i32 %insn, 7 + %shr.i11.i1328 = ashr i32 %shl.i.i1327, 27 + %imm5.i1329 = getelementptr inbounds %struct.arg_th_meminc, ptr %u, i64 0, i32 2 + store i32 %shr.i11.i1328, ptr %imm5.i1329, align 4 + %cfg_ptr.i1330 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %257 = load ptr, ptr %cfg_ptr.i1330, align 8 + %ext_xtheadmemidx.i1331 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %257, i64 0, i32 89 + %258 = load i8, ptr %ext_xtheadmemidx.i1331, align 8 %259 = and i8 %258, 1 - %tobool.not.i1338.not = icmp eq i8 %259, 0 - br i1 %tobool.not.i1338.not, label %sw.epilog502, label %trans_th_sdia.exit.thread + %tobool.not.i1332.not = icmp eq i8 %259, 0 + br i1 %tobool.not.i1332.not, label %sw.epilog502, label %trans_th_sdia.exit.thread trans_th_sdia.exit.thread: ; preds = %sw.bb449 call fastcc void @gen_store_inc(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i1 noundef zeroext false) br label %return sw.bb453: ; preds = %sw.bb386 - %shr.i.i1341 = lshr i32 %insn, 20 - %and.i.i1342 = and i32 %shr.i.i1341, 31 - %rd2.i1343 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 - store i32 %and.i.i1342, ptr %rd2.i1343, align 4 - %shr.i7.i1344 = lshr i32 %insn, 7 - %and.i8.i1345 = and i32 %shr.i7.i1344, 31 - store i32 %and.i8.i1345, ptr %u, align 4 - %shr.i9.i1346 = lshr i32 %insn, 15 - %and.i10.i1347 = and i32 %shr.i9.i1346, 31 - %rs.i1348 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 - store i32 %and.i10.i1347, ptr %rs.i1348, align 4 - %shr.i11.i1349 = lshr i32 %insn, 25 - %and.i12.i1350 = and i32 %shr.i11.i1349, 3 - %sh2.i1351 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 - store i32 %and.i12.i1350, ptr %sh2.i1351, align 4 - %cfg_ptr.i1352 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %260 = load ptr, ptr %cfg_ptr.i1352, align 8 - %ext_xtheadmempair.i1353 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %260, i64 0, i32 90 - %261 = load i8, ptr %ext_xtheadmempair.i1353, align 1 + %shr.i.i1335 = lshr i32 %insn, 20 + %and.i.i1336 = and i32 %shr.i.i1335, 31 + %rd2.i1337 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 + store i32 %and.i.i1336, ptr %rd2.i1337, align 4 + %shr.i7.i1338 = lshr i32 %insn, 7 + %and.i8.i1339 = and i32 %shr.i7.i1338, 31 + store i32 %and.i8.i1339, ptr %u, align 4 + %shr.i9.i1340 = lshr i32 %insn, 15 + %and.i10.i1341 = and i32 %shr.i9.i1340, 31 + %rs.i1342 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 + store i32 %and.i10.i1341, ptr %rs.i1342, align 4 + %shr.i11.i1343 = lshr i32 %insn, 25 + %and.i12.i1344 = and i32 %shr.i11.i1343, 3 + %sh2.i1345 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 + store i32 %and.i12.i1344, ptr %sh2.i1345, align 4 + %cfg_ptr.i1346 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %260 = load ptr, ptr %cfg_ptr.i1346, align 8 + %ext_xtheadmempair.i1347 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %260, i64 0, i32 90 + %261 = load i8, ptr %ext_xtheadmempair.i1347, align 1 %262 = and i8 %261, 1 - %tobool.not.i1354.not = icmp eq i8 %262, 0 - br i1 %tobool.not.i1354.not, label %sw.epilog502, label %trans_th_swd.exit.thread + %tobool.not.i1348.not = icmp eq i8 %262, 0 + br i1 %tobool.not.i1348.not, label %sw.epilog502, label %trans_th_swd.exit.thread trans_th_swd.exit.thread: ; preds = %sw.bb453 call fastcc void @gen_storepair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 10, i32 noundef 3) br label %return sw.bb457: ; preds = %sw.bb386 - %shr.i.i1357 = lshr i32 %insn, 20 - %and.i.i1358 = and i32 %shr.i.i1357, 31 - %rd2.i1359 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 - store i32 %and.i.i1358, ptr %rd2.i1359, align 4 - %shr.i7.i1360 = lshr i32 %insn, 7 - %and.i8.i1361 = and i32 %shr.i7.i1360, 31 - store i32 %and.i8.i1361, ptr %u, align 4 - %shr.i9.i1362 = lshr i32 %insn, 15 - %and.i10.i1363 = and i32 %shr.i9.i1362, 31 - %rs.i1364 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 - store i32 %and.i10.i1363, ptr %rs.i1364, align 4 - %shr.i11.i1365 = lshr i32 %insn, 25 - %and.i12.i1366 = and i32 %shr.i11.i1365, 3 - %sh2.i1367 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 - store i32 %and.i12.i1366, ptr %sh2.i1367, align 4 - %cfg_ptr.i1368 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %263 = load ptr, ptr %cfg_ptr.i1368, align 8 - %ext_xtheadmempair.i1369 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %263, i64 0, i32 90 - %264 = load i8, ptr %ext_xtheadmempair.i1369, align 1 + %shr.i.i1351 = lshr i32 %insn, 20 + %and.i.i1352 = and i32 %shr.i.i1351, 31 + %rd2.i1353 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 2 + store i32 %and.i.i1352, ptr %rd2.i1353, align 4 + %shr.i7.i1354 = lshr i32 %insn, 7 + %and.i8.i1355 = and i32 %shr.i7.i1354, 31 + store i32 %and.i8.i1355, ptr %u, align 4 + %shr.i9.i1356 = lshr i32 %insn, 15 + %and.i10.i1357 = and i32 %shr.i9.i1356, 31 + %rs.i1358 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 1 + store i32 %and.i10.i1357, ptr %rs.i1358, align 4 + %shr.i11.i1359 = lshr i32 %insn, 25 + %and.i12.i1360 = and i32 %shr.i11.i1359, 3 + %sh2.i1361 = getelementptr inbounds %struct.arg_th_pair, ptr %u, i64 0, i32 3 + store i32 %and.i12.i1360, ptr %sh2.i1361, align 4 + %cfg_ptr.i1362 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %263 = load ptr, ptr %cfg_ptr.i1362, align 8 + %ext_xtheadmempair.i1363 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %263, i64 0, i32 90 + %264 = load i8, ptr %ext_xtheadmempair.i1363, align 1 %265 = and i8 %264, 1 - %tobool.not.i1370.not = icmp eq i8 %265, 0 - br i1 %tobool.not.i1370.not, label %sw.epilog502, label %trans_th_sdd.exit.thread + %tobool.not.i1364.not = icmp eq i8 %265, 0 + br i1 %tobool.not.i1364.not, label %sw.epilog502, label %trans_th_sdd.exit.thread trans_th_sdd.exit.thread: ; preds = %sw.bb457 call fastcc void @gen_storepair_tl(ptr noundef nonnull %ctx, ptr noundef nonnull %u, i32 noundef 11, i32 noundef 4) br label %return sw.bb462: ; preds = %entry - %shr.i.i1373 = lshr i32 %insn, 15 - %and.i.i1374 = and i32 %shr.i.i1373, 31 - %rs1.i1375 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1374, ptr %rs1.i1375, align 4 - %shr.i7.i1376 = lshr i32 %insn, 25 - %and.i8.i1377 = and i32 %shr.i7.i1376, 3 - %imm2.i1378 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1377, ptr %imm2.i1378, align 4 - %shr.i9.i1379 = lshr i32 %insn, 7 - %and.i10.i1380 = and i32 %shr.i9.i1379, 31 - store i32 %and.i10.i1380, ptr %u, align 4 - %shr.i11.i1381 = lshr i32 %insn, 20 - %and.i12.i1382 = and i32 %shr.i11.i1381, 31 - %rs2.i1383 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1382, ptr %rs2.i1383, align 4 + %shr.i.i1367 = lshr i32 %insn, 15 + %and.i.i1368 = and i32 %shr.i.i1367, 31 + %rs1.i1369 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1368, ptr %rs1.i1369, align 4 + %shr.i7.i1370 = lshr i32 %insn, 25 + %and.i8.i1371 = and i32 %shr.i7.i1370, 3 + %imm2.i1372 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1371, ptr %imm2.i1372, align 4 + %shr.i9.i1373 = lshr i32 %insn, 7 + %and.i10.i1374 = and i32 %shr.i9.i1373, 31 + store i32 %and.i10.i1374, ptr %u, align 4 + %shr.i11.i1375 = lshr i32 %insn, 20 + %and.i12.i1376 = and i32 %shr.i11.i1375, 31 + %rs2.i1377 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1376, ptr %rs2.i1377, align 4 %shr463 = lshr i32 %insn, 27 switch i32 %shr463, label %sw.epilog502 [ i32 8, label %sw.bb465 @@ -19821,39 +19796,39 @@ sw.bb462: ; preds = %entry ] sw.bb465: ; preds = %sw.bb462 - %cfg_ptr.i1384 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %266 = load ptr, ptr %cfg_ptr.i1384, align 8 + %cfg_ptr.i1378 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %266 = load ptr, ptr %cfg_ptr.i1378, align 8 %ext_xtheadfmemidx.i = getelementptr inbounds %struct.RISCVCPUConfig, ptr %266, i64 0, i32 86 %267 = load i8, ptr %ext_xtheadfmemidx.i, align 1 %268 = and i8 %267, 1 - %tobool.not.i1385 = icmp eq i8 %268, 0 - br i1 %tobool.not.i1385, label %sw.epilog502, label %do.body1.i1386 + %tobool.not.i1379 = icmp eq i8 %268, 0 + br i1 %tobool.not.i1379, label %sw.epilog502, label %do.body1.i1380 -do.body1.i1386: ; preds = %sw.bb465 +do.body1.i1380: ; preds = %sw.bb465 %mstatus_fs.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 %269 = load i32, ptr %mstatus_fs.i, align 4 - %cmp.i1387 = icmp eq i32 %269, 0 - br i1 %cmp.i1387, label %if.then2.i, label %do.body8.i + %cmp.i1381 = icmp eq i32 %269, 0 + br i1 %cmp.i1381, label %if.then2.i, label %do.body8.i -if.then2.i: ; preds = %do.body1.i1386 +if.then2.i: ; preds = %do.body1.i1380 %virt_enabled.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 %270 = load i8, ptr %virt_enabled.i, align 1 %271 = and i8 %270, 1 %tobool3.not.i = icmp eq i8 %271, 0 br i1 %tobool3.not.i, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i: ; preds = %do.body1.i1386 +do.body8.i: ; preds = %do.body1.i1380 %272 = getelementptr i8, ptr %ctx, i64 92 %ctx.val.i = load i32, ptr %272, align 4 - %and.i.i1388 = and i32 %ctx.val.i, 32 - %tobool.i.not.i = icmp eq i32 %and.i.i1388, 0 + %and.i.i1382 = and i32 %ctx.val.i, 32 + %tobool.i.not.i = icmp eq i32 %and.i.i1382, 0 br i1 %tobool.i.not.i, label %sw.epilog502, label %trans_th_flrw.exit trans_th_flrw.exit: ; preds = %do.body8.i - %idxprom.i.i = zext nneg i32 %and.i10.i1380 to i64 + %idxprom.i.i = zext nneg i32 %and.i10.i1374 to i64 %arrayidx.i.i = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i %273 = load ptr, ptr %arrayidx.i.i, align 8 - %call.i.i = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1374, i32 noundef %and.i12.i1382, i32 noundef %and.i8.i1377, i1 noundef zeroext false) + %call.i.i = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1368, i32 noundef %and.i12.i1376, i32 noundef %and.i8.i1371, i1 noundef zeroext false) %mem_idx.i.i = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 %274 = load i32, ptr %mem_idx.i.i, align 4 %conv.i.i = zext i32 %274 to i64 @@ -19866,154 +19841,154 @@ trans_th_flrw.exit: ; preds = %do.body8.i br label %return sw.bb469: ; preds = %sw.bb462 - %cfg_ptr.i1391 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %278 = load ptr, ptr %cfg_ptr.i1391, align 8 - %ext_xtheadfmemidx.i1392 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %278, i64 0, i32 86 - %279 = load i8, ptr %ext_xtheadfmemidx.i1392, align 1 + %cfg_ptr.i1385 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %278 = load ptr, ptr %cfg_ptr.i1385, align 8 + %ext_xtheadfmemidx.i1386 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %278, i64 0, i32 86 + %279 = load i8, ptr %ext_xtheadfmemidx.i1386, align 1 %280 = and i8 %279, 1 - %tobool.not.i1393 = icmp eq i8 %280, 0 - br i1 %tobool.not.i1393, label %sw.epilog502, label %do.body1.i1394 - -do.body1.i1394: ; preds = %sw.bb469 - %mstatus_fs.i1395 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %281 = load i32, ptr %mstatus_fs.i1395, align 4 - %cmp.i1396 = icmp eq i32 %281, 0 - br i1 %cmp.i1396, label %if.then2.i1412, label %do.body8.i1397 - -if.then2.i1412: ; preds = %do.body1.i1394 - %virt_enabled.i1413 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %282 = load i8, ptr %virt_enabled.i1413, align 1 + %tobool.not.i1387 = icmp eq i8 %280, 0 + br i1 %tobool.not.i1387, label %sw.epilog502, label %do.body1.i1388 + +do.body1.i1388: ; preds = %sw.bb469 + %mstatus_fs.i1389 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %281 = load i32, ptr %mstatus_fs.i1389, align 4 + %cmp.i1390 = icmp eq i32 %281, 0 + br i1 %cmp.i1390, label %if.then2.i1406, label %do.body8.i1391 + +if.then2.i1406: ; preds = %do.body1.i1388 + %virt_enabled.i1407 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %282 = load i8, ptr %virt_enabled.i1407, align 1 %283 = and i8 %282, 1 - %tobool3.not.i1414 = icmp eq i8 %283, 0 - br i1 %tobool3.not.i1414, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split + %tobool3.not.i1408 = icmp eq i8 %283, 0 + br i1 %tobool3.not.i1408, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i1397: ; preds = %do.body1.i1394 +do.body8.i1391: ; preds = %do.body1.i1388 %284 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i1398 = load i32, ptr %284, align 4 - %and.i.i1399 = and i32 %ctx.val.i1398, 32 - %tobool.i.not.i1400 = icmp eq i32 %and.i.i1399, 0 - br i1 %tobool.i.not.i1400, label %sw.epilog502, label %trans_th_flurw.exit - -trans_th_flurw.exit: ; preds = %do.body8.i1397 - %idxprom.i.i1402 = zext nneg i32 %and.i10.i1380 to i64 - %arrayidx.i.i1403 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1402 - %285 = load ptr, ptr %arrayidx.i.i1403, align 8 - %call.i.i1407 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1374, i32 noundef %and.i12.i1382, i32 noundef %and.i8.i1377, i1 noundef zeroext true) - %mem_idx.i.i1408 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 - %286 = load i32, ptr %mem_idx.i.i1408, align 4 - %conv.i.i1409 = zext i32 %286 to i64 + %ctx.val.i1392 = load i32, ptr %284, align 4 + %and.i.i1393 = and i32 %ctx.val.i1392, 32 + %tobool.i.not.i1394 = icmp eq i32 %and.i.i1393, 0 + br i1 %tobool.i.not.i1394, label %sw.epilog502, label %trans_th_flurw.exit + +trans_th_flurw.exit: ; preds = %do.body8.i1391 + %idxprom.i.i1396 = zext nneg i32 %and.i10.i1374 to i64 + %arrayidx.i.i1397 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1396 + %285 = load ptr, ptr %arrayidx.i.i1397, align 8 + %call.i.i1401 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1368, i32 noundef %and.i12.i1376, i32 noundef %and.i8.i1371, i1 noundef zeroext true) + %mem_idx.i.i1402 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 + %286 = load i32, ptr %mem_idx.i.i1402, align 4 + %conv.i.i1403 = zext i32 %286 to i64 %287 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %288 = load ptr, ptr %287, align 8 - %289 = ptrtoint ptr %call.i.i1407 to i64 - %add.ptr.i.i.i.i.i1410 = getelementptr i8, ptr %288, i64 %289 - tail call void @tcg_gen_qemu_ld_i64_chk(ptr noundef %285, ptr noundef %add.ptr.i.i.i.i.i1410, i64 noundef %conv.i.i1409, i32 noundef 2, i32 noundef 1) #13 + %289 = ptrtoint ptr %call.i.i1401 to i64 + %add.ptr.i.i.i.i.i1404 = getelementptr i8, ptr %288, i64 %289 + tail call void @tcg_gen_qemu_ld_i64_chk(ptr noundef %285, ptr noundef %add.ptr.i.i.i.i.i1404, i64 noundef %conv.i.i1403, i32 noundef 2, i32 noundef 1) #13 tail call void @tcg_gen_ori_i64(ptr noundef %285, ptr noundef %285, i64 noundef -4294967296) #13 br label %return sw.bb473: ; preds = %sw.bb462 - %cfg_ptr.i1420 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %290 = load ptr, ptr %cfg_ptr.i1420, align 8 - %ext_xtheadfmemidx.i1421 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %290, i64 0, i32 86 - %291 = load i8, ptr %ext_xtheadfmemidx.i1421, align 1 + %cfg_ptr.i1414 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %290 = load ptr, ptr %cfg_ptr.i1414, align 8 + %ext_xtheadfmemidx.i1415 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %290, i64 0, i32 86 + %291 = load i8, ptr %ext_xtheadfmemidx.i1415, align 1 %292 = and i8 %291, 1 - %tobool.not.i1422 = icmp eq i8 %292, 0 - br i1 %tobool.not.i1422, label %sw.epilog502, label %do.body1.i1423 - -do.body1.i1423: ; preds = %sw.bb473 - %mstatus_fs.i1424 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %293 = load i32, ptr %mstatus_fs.i1424, align 4 - %cmp.i1425 = icmp eq i32 %293, 0 - br i1 %cmp.i1425, label %if.then2.i1441, label %do.body8.i1426 - -if.then2.i1441: ; preds = %do.body1.i1423 - %virt_enabled.i1442 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %294 = load i8, ptr %virt_enabled.i1442, align 1 + %tobool.not.i1416 = icmp eq i8 %292, 0 + br i1 %tobool.not.i1416, label %sw.epilog502, label %do.body1.i1417 + +do.body1.i1417: ; preds = %sw.bb473 + %mstatus_fs.i1418 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %293 = load i32, ptr %mstatus_fs.i1418, align 4 + %cmp.i1419 = icmp eq i32 %293, 0 + br i1 %cmp.i1419, label %if.then2.i1435, label %do.body8.i1420 + +if.then2.i1435: ; preds = %do.body1.i1417 + %virt_enabled.i1436 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %294 = load i8, ptr %virt_enabled.i1436, align 1 %295 = and i8 %294, 1 - %tobool3.not.i1443 = icmp eq i8 %295, 0 - br i1 %tobool3.not.i1443, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split + %tobool3.not.i1437 = icmp eq i8 %295, 0 + br i1 %tobool3.not.i1437, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i1426: ; preds = %do.body1.i1423 +do.body8.i1420: ; preds = %do.body1.i1417 %296 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i1427 = load i32, ptr %296, align 4 - %and.i.i1428 = and i32 %ctx.val.i1427, 8 - %tobool.i.not.i1429 = icmp eq i32 %and.i.i1428, 0 - br i1 %tobool.i.not.i1429, label %sw.epilog502, label %trans_th_flrd.exit - -trans_th_flrd.exit: ; preds = %do.body8.i1426 - %idxprom.i.i1431 = zext nneg i32 %and.i10.i1380 to i64 - %arrayidx.i.i1432 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1431 - %297 = load ptr, ptr %arrayidx.i.i1432, align 8 - %call.i.i1436 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1374, i32 noundef %and.i12.i1382, i32 noundef %and.i8.i1377, i1 noundef zeroext false) - %mem_idx.i.i1437 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 - %298 = load i32, ptr %mem_idx.i.i1437, align 4 - %conv.i.i1438 = zext i32 %298 to i64 + %ctx.val.i1421 = load i32, ptr %296, align 4 + %and.i.i1422 = and i32 %ctx.val.i1421, 8 + %tobool.i.not.i1423 = icmp eq i32 %and.i.i1422, 0 + br i1 %tobool.i.not.i1423, label %sw.epilog502, label %trans_th_flrd.exit + +trans_th_flrd.exit: ; preds = %do.body8.i1420 + %idxprom.i.i1425 = zext nneg i32 %and.i10.i1374 to i64 + %arrayidx.i.i1426 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1425 + %297 = load ptr, ptr %arrayidx.i.i1426, align 8 + %call.i.i1430 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1368, i32 noundef %and.i12.i1376, i32 noundef %and.i8.i1371, i1 noundef zeroext false) + %mem_idx.i.i1431 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 + %298 = load i32, ptr %mem_idx.i.i1431, align 4 + %conv.i.i1432 = zext i32 %298 to i64 %299 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %300 = load ptr, ptr %299, align 8 - %301 = ptrtoint ptr %call.i.i1436 to i64 - %add.ptr.i.i.i.i.i1439 = getelementptr i8, ptr %300, i64 %301 - tail call void @tcg_gen_qemu_ld_i64_chk(ptr noundef %297, ptr noundef %add.ptr.i.i.i.i.i1439, i64 noundef %conv.i.i1438, i32 noundef 3, i32 noundef 1) #13 + %301 = ptrtoint ptr %call.i.i1430 to i64 + %add.ptr.i.i.i.i.i1433 = getelementptr i8, ptr %300, i64 %301 + tail call void @tcg_gen_qemu_ld_i64_chk(ptr noundef %297, ptr noundef %add.ptr.i.i.i.i.i1433, i64 noundef %conv.i.i1432, i32 noundef 3, i32 noundef 1) #13 br label %return sw.bb477: ; preds = %sw.bb462 - %cfg_ptr.i1449 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %302 = load ptr, ptr %cfg_ptr.i1449, align 8 - %ext_xtheadfmemidx.i1450 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %302, i64 0, i32 86 - %303 = load i8, ptr %ext_xtheadfmemidx.i1450, align 1 + %cfg_ptr.i1443 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %302 = load ptr, ptr %cfg_ptr.i1443, align 8 + %ext_xtheadfmemidx.i1444 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %302, i64 0, i32 86 + %303 = load i8, ptr %ext_xtheadfmemidx.i1444, align 1 %304 = and i8 %303, 1 - %tobool.not.i1451 = icmp eq i8 %304, 0 - br i1 %tobool.not.i1451, label %sw.epilog502, label %do.body1.i1452 - -do.body1.i1452: ; preds = %sw.bb477 - %mstatus_fs.i1453 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %305 = load i32, ptr %mstatus_fs.i1453, align 4 - %cmp.i1454 = icmp eq i32 %305, 0 - br i1 %cmp.i1454, label %if.then2.i1470, label %do.body8.i1455 - -if.then2.i1470: ; preds = %do.body1.i1452 - %virt_enabled.i1471 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %306 = load i8, ptr %virt_enabled.i1471, align 1 + %tobool.not.i1445 = icmp eq i8 %304, 0 + br i1 %tobool.not.i1445, label %sw.epilog502, label %do.body1.i1446 + +do.body1.i1446: ; preds = %sw.bb477 + %mstatus_fs.i1447 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %305 = load i32, ptr %mstatus_fs.i1447, align 4 + %cmp.i1448 = icmp eq i32 %305, 0 + br i1 %cmp.i1448, label %if.then2.i1464, label %do.body8.i1449 + +if.then2.i1464: ; preds = %do.body1.i1446 + %virt_enabled.i1465 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %306 = load i8, ptr %virt_enabled.i1465, align 1 %307 = and i8 %306, 1 - %tobool3.not.i1472 = icmp eq i8 %307, 0 - br i1 %tobool3.not.i1472, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split + %tobool3.not.i1466 = icmp eq i8 %307, 0 + br i1 %tobool3.not.i1466, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i1455: ; preds = %do.body1.i1452 +do.body8.i1449: ; preds = %do.body1.i1446 %308 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i1456 = load i32, ptr %308, align 4 - %and.i.i1457 = and i32 %ctx.val.i1456, 8 - %tobool.i.not.i1458 = icmp eq i32 %and.i.i1457, 0 - br i1 %tobool.i.not.i1458, label %sw.epilog502, label %trans_th_flurd.exit - -trans_th_flurd.exit: ; preds = %do.body8.i1455 - %idxprom.i.i1460 = zext nneg i32 %and.i10.i1380 to i64 - %arrayidx.i.i1461 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1460 - %309 = load ptr, ptr %arrayidx.i.i1461, align 8 - %call.i.i1465 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1374, i32 noundef %and.i12.i1382, i32 noundef %and.i8.i1377, i1 noundef zeroext true) - %mem_idx.i.i1466 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 - %310 = load i32, ptr %mem_idx.i.i1466, align 4 - %conv.i.i1467 = zext i32 %310 to i64 + %ctx.val.i1450 = load i32, ptr %308, align 4 + %and.i.i1451 = and i32 %ctx.val.i1450, 8 + %tobool.i.not.i1452 = icmp eq i32 %and.i.i1451, 0 + br i1 %tobool.i.not.i1452, label %sw.epilog502, label %trans_th_flurd.exit + +trans_th_flurd.exit: ; preds = %do.body8.i1449 + %idxprom.i.i1454 = zext nneg i32 %and.i10.i1374 to i64 + %arrayidx.i.i1455 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1454 + %309 = load ptr, ptr %arrayidx.i.i1455, align 8 + %call.i.i1459 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1368, i32 noundef %and.i12.i1376, i32 noundef %and.i8.i1371, i1 noundef zeroext true) + %mem_idx.i.i1460 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 + %310 = load i32, ptr %mem_idx.i.i1460, align 4 + %conv.i.i1461 = zext i32 %310 to i64 %311 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %312 = load ptr, ptr %311, align 8 - %313 = ptrtoint ptr %call.i.i1465 to i64 - %add.ptr.i.i.i.i.i1468 = getelementptr i8, ptr %312, i64 %313 - tail call void @tcg_gen_qemu_ld_i64_chk(ptr noundef %309, ptr noundef %add.ptr.i.i.i.i.i1468, i64 noundef %conv.i.i1467, i32 noundef 3, i32 noundef 1) #13 + %313 = ptrtoint ptr %call.i.i1459 to i64 + %add.ptr.i.i.i.i.i1462 = getelementptr i8, ptr %312, i64 %313 + tail call void @tcg_gen_qemu_ld_i64_chk(ptr noundef %309, ptr noundef %add.ptr.i.i.i.i.i1462, i64 noundef %conv.i.i1461, i32 noundef 3, i32 noundef 1) #13 br label %return sw.bb482: ; preds = %entry - %shr.i.i1478 = lshr i32 %insn, 15 - %and.i.i1479 = and i32 %shr.i.i1478, 31 - %rs1.i1480 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 - store i32 %and.i.i1479, ptr %rs1.i1480, align 4 - %shr.i7.i1481 = lshr i32 %insn, 25 - %and.i8.i1482 = and i32 %shr.i7.i1481, 3 - %imm2.i1483 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 - store i32 %and.i8.i1482, ptr %imm2.i1483, align 4 - %shr.i9.i1484 = lshr i32 %insn, 7 - %and.i10.i1485 = and i32 %shr.i9.i1484, 31 - store i32 %and.i10.i1485, ptr %u, align 4 - %shr.i11.i1486 = lshr i32 %insn, 20 - %and.i12.i1487 = and i32 %shr.i11.i1486, 31 - %rs2.i1488 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 - store i32 %and.i12.i1487, ptr %rs2.i1488, align 4 + %shr.i.i1472 = lshr i32 %insn, 15 + %and.i.i1473 = and i32 %shr.i.i1472, 31 + %rs1.i1474 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 1 + store i32 %and.i.i1473, ptr %rs1.i1474, align 4 + %shr.i7.i1475 = lshr i32 %insn, 25 + %and.i8.i1476 = and i32 %shr.i7.i1475, 3 + %imm2.i1477 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 3 + store i32 %and.i8.i1476, ptr %imm2.i1477, align 4 + %shr.i9.i1478 = lshr i32 %insn, 7 + %and.i10.i1479 = and i32 %shr.i9.i1478, 31 + store i32 %and.i10.i1479, ptr %u, align 4 + %shr.i11.i1480 = lshr i32 %insn, 20 + %and.i12.i1481 = and i32 %shr.i11.i1480, 31 + %rs2.i1482 = getelementptr inbounds %struct.arg_th_memidx, ptr %u, i64 0, i32 2 + store i32 %and.i12.i1481, ptr %rs2.i1482, align 4 %shr483 = lshr i32 %insn, 27 switch i32 %shr483, label %sw.epilog502 [ i32 8, label %sw.bb485 @@ -20023,199 +19998,199 @@ sw.bb482: ; preds = %entry ] sw.bb485: ; preds = %sw.bb482 - %cfg_ptr.i1489 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %314 = load ptr, ptr %cfg_ptr.i1489, align 8 - %ext_xtheadfmemidx.i1490 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %314, i64 0, i32 86 - %315 = load i8, ptr %ext_xtheadfmemidx.i1490, align 1 + %cfg_ptr.i1483 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %314 = load ptr, ptr %cfg_ptr.i1483, align 8 + %ext_xtheadfmemidx.i1484 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %314, i64 0, i32 86 + %315 = load i8, ptr %ext_xtheadfmemidx.i1484, align 1 %316 = and i8 %315, 1 - %tobool.not.i1491 = icmp eq i8 %316, 0 - br i1 %tobool.not.i1491, label %sw.epilog502, label %do.body1.i1492 - -do.body1.i1492: ; preds = %sw.bb485 - %mstatus_fs.i1493 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %317 = load i32, ptr %mstatus_fs.i1493, align 4 - %cmp.i1494 = icmp eq i32 %317, 0 - br i1 %cmp.i1494, label %if.then2.i1510, label %do.body8.i1495 - -if.then2.i1510: ; preds = %do.body1.i1492 - %virt_enabled.i1511 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %318 = load i8, ptr %virt_enabled.i1511, align 1 + %tobool.not.i1485 = icmp eq i8 %316, 0 + br i1 %tobool.not.i1485, label %sw.epilog502, label %do.body1.i1486 + +do.body1.i1486: ; preds = %sw.bb485 + %mstatus_fs.i1487 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %317 = load i32, ptr %mstatus_fs.i1487, align 4 + %cmp.i1488 = icmp eq i32 %317, 0 + br i1 %cmp.i1488, label %if.then2.i1504, label %do.body8.i1489 + +if.then2.i1504: ; preds = %do.body1.i1486 + %virt_enabled.i1505 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %318 = load i8, ptr %virt_enabled.i1505, align 1 %319 = and i8 %318, 1 - %tobool3.not.i1512 = icmp eq i8 %319, 0 - br i1 %tobool3.not.i1512, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split + %tobool3.not.i1506 = icmp eq i8 %319, 0 + br i1 %tobool3.not.i1506, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i1495: ; preds = %do.body1.i1492 +do.body8.i1489: ; preds = %do.body1.i1486 %320 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i1496 = load i32, ptr %320, align 4 - %and.i.i1497 = and i32 %ctx.val.i1496, 32 - %tobool.i.not.i1498 = icmp eq i32 %and.i.i1497, 0 - br i1 %tobool.i.not.i1498, label %sw.epilog502, label %trans_th_fsrw.exit - -trans_th_fsrw.exit: ; preds = %do.body8.i1495 - %idxprom.i.i1500 = zext nneg i32 %and.i10.i1485 to i64 - %arrayidx.i.i1501 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1500 - %321 = load ptr, ptr %arrayidx.i.i1501, align 8 - %call.i.i1505 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1479, i32 noundef %and.i12.i1487, i32 noundef %and.i8.i1482, i1 noundef zeroext false) - %mem_idx.i.i1506 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 - %322 = load i32, ptr %mem_idx.i.i1506, align 4 - %conv.i.i1507 = zext i32 %322 to i64 + %ctx.val.i1490 = load i32, ptr %320, align 4 + %and.i.i1491 = and i32 %ctx.val.i1490, 32 + %tobool.i.not.i1492 = icmp eq i32 %and.i.i1491, 0 + br i1 %tobool.i.not.i1492, label %sw.epilog502, label %trans_th_fsrw.exit + +trans_th_fsrw.exit: ; preds = %do.body8.i1489 + %idxprom.i.i1494 = zext nneg i32 %and.i10.i1479 to i64 + %arrayidx.i.i1495 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1494 + %321 = load ptr, ptr %arrayidx.i.i1495, align 8 + %call.i.i1499 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1473, i32 noundef %and.i12.i1481, i32 noundef %and.i8.i1476, i1 noundef zeroext false) + %mem_idx.i.i1500 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 + %322 = load i32, ptr %mem_idx.i.i1500, align 4 + %conv.i.i1501 = zext i32 %322 to i64 %323 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %324 = load ptr, ptr %323, align 8 - %325 = ptrtoint ptr %call.i.i1505 to i64 - %add.ptr.i.i.i.i.i1508 = getelementptr i8, ptr %324, i64 %325 - tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %321, ptr noundef %add.ptr.i.i.i.i.i1508, i64 noundef %conv.i.i1507, i32 noundef 2, i32 noundef 1) #13 + %325 = ptrtoint ptr %call.i.i1499 to i64 + %add.ptr.i.i.i.i.i1502 = getelementptr i8, ptr %324, i64 %325 + tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %321, ptr noundef %add.ptr.i.i.i.i.i1502, i64 noundef %conv.i.i1501, i32 noundef 2, i32 noundef 1) #13 br label %return sw.bb489: ; preds = %sw.bb482 - %cfg_ptr.i1518 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %326 = load ptr, ptr %cfg_ptr.i1518, align 8 - %ext_xtheadfmemidx.i1519 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %326, i64 0, i32 86 - %327 = load i8, ptr %ext_xtheadfmemidx.i1519, align 1 + %cfg_ptr.i1512 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %326 = load ptr, ptr %cfg_ptr.i1512, align 8 + %ext_xtheadfmemidx.i1513 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %326, i64 0, i32 86 + %327 = load i8, ptr %ext_xtheadfmemidx.i1513, align 1 %328 = and i8 %327, 1 - %tobool.not.i1520 = icmp eq i8 %328, 0 - br i1 %tobool.not.i1520, label %sw.epilog502, label %do.body1.i1521 - -do.body1.i1521: ; preds = %sw.bb489 - %mstatus_fs.i1522 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %329 = load i32, ptr %mstatus_fs.i1522, align 4 - %cmp.i1523 = icmp eq i32 %329, 0 - br i1 %cmp.i1523, label %if.then2.i1539, label %do.body8.i1524 - -if.then2.i1539: ; preds = %do.body1.i1521 - %virt_enabled.i1540 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %330 = load i8, ptr %virt_enabled.i1540, align 1 + %tobool.not.i1514 = icmp eq i8 %328, 0 + br i1 %tobool.not.i1514, label %sw.epilog502, label %do.body1.i1515 + +do.body1.i1515: ; preds = %sw.bb489 + %mstatus_fs.i1516 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %329 = load i32, ptr %mstatus_fs.i1516, align 4 + %cmp.i1517 = icmp eq i32 %329, 0 + br i1 %cmp.i1517, label %if.then2.i1533, label %do.body8.i1518 + +if.then2.i1533: ; preds = %do.body1.i1515 + %virt_enabled.i1534 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %330 = load i8, ptr %virt_enabled.i1534, align 1 %331 = and i8 %330, 1 - %tobool3.not.i1541 = icmp eq i8 %331, 0 - br i1 %tobool3.not.i1541, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split + %tobool3.not.i1535 = icmp eq i8 %331, 0 + br i1 %tobool3.not.i1535, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i1524: ; preds = %do.body1.i1521 +do.body8.i1518: ; preds = %do.body1.i1515 %332 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i1525 = load i32, ptr %332, align 4 - %and.i.i1526 = and i32 %ctx.val.i1525, 32 - %tobool.i.not.i1527 = icmp eq i32 %and.i.i1526, 0 - br i1 %tobool.i.not.i1527, label %sw.epilog502, label %trans_th_fsurw.exit - -trans_th_fsurw.exit: ; preds = %do.body8.i1524 - %idxprom.i.i1529 = zext nneg i32 %and.i10.i1485 to i64 - %arrayidx.i.i1530 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1529 - %333 = load ptr, ptr %arrayidx.i.i1530, align 8 - %call.i.i1534 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1479, i32 noundef %and.i12.i1487, i32 noundef %and.i8.i1482, i1 noundef zeroext true) - %mem_idx.i.i1535 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 - %334 = load i32, ptr %mem_idx.i.i1535, align 4 - %conv.i.i1536 = zext i32 %334 to i64 + %ctx.val.i1519 = load i32, ptr %332, align 4 + %and.i.i1520 = and i32 %ctx.val.i1519, 32 + %tobool.i.not.i1521 = icmp eq i32 %and.i.i1520, 0 + br i1 %tobool.i.not.i1521, label %sw.epilog502, label %trans_th_fsurw.exit + +trans_th_fsurw.exit: ; preds = %do.body8.i1518 + %idxprom.i.i1523 = zext nneg i32 %and.i10.i1479 to i64 + %arrayidx.i.i1524 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1523 + %333 = load ptr, ptr %arrayidx.i.i1524, align 8 + %call.i.i1528 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1473, i32 noundef %and.i12.i1481, i32 noundef %and.i8.i1476, i1 noundef zeroext true) + %mem_idx.i.i1529 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 + %334 = load i32, ptr %mem_idx.i.i1529, align 4 + %conv.i.i1530 = zext i32 %334 to i64 %335 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %336 = load ptr, ptr %335, align 8 - %337 = ptrtoint ptr %call.i.i1534 to i64 - %add.ptr.i.i.i.i.i1537 = getelementptr i8, ptr %336, i64 %337 - tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %333, ptr noundef %add.ptr.i.i.i.i.i1537, i64 noundef %conv.i.i1536, i32 noundef 2, i32 noundef 1) #13 + %337 = ptrtoint ptr %call.i.i1528 to i64 + %add.ptr.i.i.i.i.i1531 = getelementptr i8, ptr %336, i64 %337 + tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %333, ptr noundef %add.ptr.i.i.i.i.i1531, i64 noundef %conv.i.i1530, i32 noundef 2, i32 noundef 1) #13 br label %return sw.bb493: ; preds = %sw.bb482 - %cfg_ptr.i1547 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %338 = load ptr, ptr %cfg_ptr.i1547, align 8 - %ext_xtheadfmemidx.i1548 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %338, i64 0, i32 86 - %339 = load i8, ptr %ext_xtheadfmemidx.i1548, align 1 + %cfg_ptr.i1541 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %338 = load ptr, ptr %cfg_ptr.i1541, align 8 + %ext_xtheadfmemidx.i1542 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %338, i64 0, i32 86 + %339 = load i8, ptr %ext_xtheadfmemidx.i1542, align 1 %340 = and i8 %339, 1 - %tobool.not.i1549 = icmp eq i8 %340, 0 - br i1 %tobool.not.i1549, label %sw.epilog502, label %do.body1.i1550 - -do.body1.i1550: ; preds = %sw.bb493 - %mstatus_fs.i1551 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %341 = load i32, ptr %mstatus_fs.i1551, align 4 - %cmp.i1552 = icmp eq i32 %341, 0 - br i1 %cmp.i1552, label %if.then2.i1568, label %do.body8.i1553 - -if.then2.i1568: ; preds = %do.body1.i1550 - %virt_enabled.i1569 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %342 = load i8, ptr %virt_enabled.i1569, align 1 + %tobool.not.i1543 = icmp eq i8 %340, 0 + br i1 %tobool.not.i1543, label %sw.epilog502, label %do.body1.i1544 + +do.body1.i1544: ; preds = %sw.bb493 + %mstatus_fs.i1545 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %341 = load i32, ptr %mstatus_fs.i1545, align 4 + %cmp.i1546 = icmp eq i32 %341, 0 + br i1 %cmp.i1546, label %if.then2.i1562, label %do.body8.i1547 + +if.then2.i1562: ; preds = %do.body1.i1544 + %virt_enabled.i1563 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %342 = load i8, ptr %virt_enabled.i1563, align 1 %343 = and i8 %342, 1 - %tobool3.not.i1570 = icmp eq i8 %343, 0 - br i1 %tobool3.not.i1570, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split + %tobool3.not.i1564 = icmp eq i8 %343, 0 + br i1 %tobool3.not.i1564, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i1553: ; preds = %do.body1.i1550 +do.body8.i1547: ; preds = %do.body1.i1544 %344 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i1554 = load i32, ptr %344, align 4 - %and.i.i1555 = and i32 %ctx.val.i1554, 8 - %tobool.i.not.i1556 = icmp eq i32 %and.i.i1555, 0 - br i1 %tobool.i.not.i1556, label %sw.epilog502, label %trans_th_fsrd.exit - -trans_th_fsrd.exit: ; preds = %do.body8.i1553 - %idxprom.i.i1558 = zext nneg i32 %and.i10.i1485 to i64 - %arrayidx.i.i1559 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1558 - %345 = load ptr, ptr %arrayidx.i.i1559, align 8 - %call.i.i1563 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1479, i32 noundef %and.i12.i1487, i32 noundef %and.i8.i1482, i1 noundef zeroext false) - %mem_idx.i.i1564 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 - %346 = load i32, ptr %mem_idx.i.i1564, align 4 - %conv.i.i1565 = zext i32 %346 to i64 + %ctx.val.i1548 = load i32, ptr %344, align 4 + %and.i.i1549 = and i32 %ctx.val.i1548, 8 + %tobool.i.not.i1550 = icmp eq i32 %and.i.i1549, 0 + br i1 %tobool.i.not.i1550, label %sw.epilog502, label %trans_th_fsrd.exit + +trans_th_fsrd.exit: ; preds = %do.body8.i1547 + %idxprom.i.i1552 = zext nneg i32 %and.i10.i1479 to i64 + %arrayidx.i.i1553 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1552 + %345 = load ptr, ptr %arrayidx.i.i1553, align 8 + %call.i.i1557 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1473, i32 noundef %and.i12.i1481, i32 noundef %and.i8.i1476, i1 noundef zeroext false) + %mem_idx.i.i1558 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 + %346 = load i32, ptr %mem_idx.i.i1558, align 4 + %conv.i.i1559 = zext i32 %346 to i64 %347 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %348 = load ptr, ptr %347, align 8 - %349 = ptrtoint ptr %call.i.i1563 to i64 - %add.ptr.i.i.i.i.i1566 = getelementptr i8, ptr %348, i64 %349 - tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %345, ptr noundef %add.ptr.i.i.i.i.i1566, i64 noundef %conv.i.i1565, i32 noundef 3, i32 noundef 1) #13 + %349 = ptrtoint ptr %call.i.i1557 to i64 + %add.ptr.i.i.i.i.i1560 = getelementptr i8, ptr %348, i64 %349 + tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %345, ptr noundef %add.ptr.i.i.i.i.i1560, i64 noundef %conv.i.i1559, i32 noundef 3, i32 noundef 1) #13 br label %return sw.bb497: ; preds = %sw.bb482 - %cfg_ptr.i1576 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 - %350 = load ptr, ptr %cfg_ptr.i1576, align 8 - %ext_xtheadfmemidx.i1577 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %350, i64 0, i32 86 - %351 = load i8, ptr %ext_xtheadfmemidx.i1577, align 1 + %cfg_ptr.i1570 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 17 + %350 = load ptr, ptr %cfg_ptr.i1570, align 8 + %ext_xtheadfmemidx.i1571 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %350, i64 0, i32 86 + %351 = load i8, ptr %ext_xtheadfmemidx.i1571, align 1 %352 = and i8 %351, 1 - %tobool.not.i1578 = icmp eq i8 %352, 0 - br i1 %tobool.not.i1578, label %sw.epilog502, label %do.body1.i1579 - -do.body1.i1579: ; preds = %sw.bb497 - %mstatus_fs.i1580 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 - %353 = load i32, ptr %mstatus_fs.i1580, align 4 - %cmp.i1581 = icmp eq i32 %353, 0 - br i1 %cmp.i1581, label %if.then2.i1597, label %do.body8.i1582 - -if.then2.i1597: ; preds = %do.body1.i1579 - %virt_enabled.i1598 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 - %354 = load i8, ptr %virt_enabled.i1598, align 1 + %tobool.not.i1572 = icmp eq i8 %352, 0 + br i1 %tobool.not.i1572, label %sw.epilog502, label %do.body1.i1573 + +do.body1.i1573: ; preds = %sw.bb497 + %mstatus_fs.i1574 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 9 + %353 = load i32, ptr %mstatus_fs.i1574, align 4 + %cmp.i1575 = icmp eq i32 %353, 0 + br i1 %cmp.i1575, label %if.then2.i1591, label %do.body8.i1576 + +if.then2.i1591: ; preds = %do.body1.i1573 + %virt_enabled.i1592 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 16 + %354 = load i8, ptr %virt_enabled.i1592, align 1 %355 = and i8 %354, 1 - %tobool3.not.i1599 = icmp eq i8 %355, 0 - br i1 %tobool3.not.i1599, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split + %tobool3.not.i1593 = icmp eq i8 %355, 0 + br i1 %tobool3.not.i1593, label %sw.epilog502.sink.split, label %sw.epilog502.sink.split.sink.split -do.body8.i1582: ; preds = %do.body1.i1579 +do.body8.i1576: ; preds = %do.body1.i1573 %356 = getelementptr i8, ptr %ctx, i64 92 - %ctx.val.i1583 = load i32, ptr %356, align 4 - %and.i.i1584 = and i32 %ctx.val.i1583, 8 - %tobool.i.not.i1585 = icmp eq i32 %and.i.i1584, 0 - br i1 %tobool.i.not.i1585, label %sw.epilog502, label %trans_th_fsurd.exit - -trans_th_fsurd.exit: ; preds = %do.body8.i1582 - %idxprom.i.i1587 = zext nneg i32 %and.i10.i1485 to i64 - %arrayidx.i.i1588 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1587 - %357 = load ptr, ptr %arrayidx.i.i1588, align 8 - %call.i.i1592 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1479, i32 noundef %and.i12.i1487, i32 noundef %and.i8.i1482, i1 noundef zeroext true) - %mem_idx.i.i1593 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 - %358 = load i32, ptr %mem_idx.i.i1593, align 4 - %conv.i.i1594 = zext i32 %358 to i64 + %ctx.val.i1577 = load i32, ptr %356, align 4 + %and.i.i1578 = and i32 %ctx.val.i1577, 8 + %tobool.i.not.i1579 = icmp eq i32 %and.i.i1578, 0 + br i1 %tobool.i.not.i1579, label %sw.epilog502, label %trans_th_fsurd.exit + +trans_th_fsurd.exit: ; preds = %do.body8.i1576 + %idxprom.i.i1581 = zext nneg i32 %and.i10.i1479 to i64 + %arrayidx.i.i1582 = getelementptr [32 x ptr], ptr @cpu_fpr, i64 0, i64 %idxprom.i.i1581 + %357 = load ptr, ptr %arrayidx.i.i1582, align 8 + %call.i.i1586 = tail call fastcc ptr @get_th_address_indexed(ptr noundef nonnull %ctx, i32 noundef %and.i.i1473, i32 noundef %and.i12.i1481, i32 noundef %and.i8.i1476, i1 noundef zeroext true) + %mem_idx.i.i1587 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 11 + %358 = load i32, ptr %mem_idx.i.i1587, align 4 + %conv.i.i1588 = zext i32 %358 to i64 %359 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %360 = load ptr, ptr %359, align 8 - %361 = ptrtoint ptr %call.i.i1592 to i64 - %add.ptr.i.i.i.i.i1595 = getelementptr i8, ptr %360, i64 %361 - tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %357, ptr noundef %add.ptr.i.i.i.i.i1595, i64 noundef %conv.i.i1594, i32 noundef 3, i32 noundef 1) #13 + %361 = ptrtoint ptr %call.i.i1586 to i64 + %add.ptr.i.i.i.i.i1589 = getelementptr i8, ptr %360, i64 %361 + tail call void @tcg_gen_qemu_st_i64_chk(ptr noundef %357, ptr noundef %add.ptr.i.i.i.i.i1589, i64 noundef %conv.i.i1588, i32 noundef 3, i32 noundef 1) #13 br label %return -sw.epilog502.sink.split.sink.split: ; preds = %if.then2.i1597, %if.then2.i1568, %if.then2.i1539, %if.then2.i1510, %if.then2.i1470, %if.then2.i1441, %if.then2.i1412, %if.then2.i - %.sink = phi ptr [ %266, %if.then2.i ], [ %278, %if.then2.i1412 ], [ %290, %if.then2.i1441 ], [ %302, %if.then2.i1470 ], [ %314, %if.then2.i1510 ], [ %326, %if.then2.i1539 ], [ %338, %if.then2.i1568 ], [ %350, %if.then2.i1597 ] - %ext_zfinx.i1601 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %.sink, i64 0, i32 45 - %362 = load i8, ptr %ext_zfinx.i1601, align 1 +sw.epilog502.sink.split.sink.split: ; preds = %if.then2.i1591, %if.then2.i1562, %if.then2.i1533, %if.then2.i1504, %if.then2.i1464, %if.then2.i1435, %if.then2.i1406, %if.then2.i + %.sink = phi ptr [ %266, %if.then2.i ], [ %278, %if.then2.i1406 ], [ %290, %if.then2.i1435 ], [ %302, %if.then2.i1464 ], [ %314, %if.then2.i1504 ], [ %326, %if.then2.i1533 ], [ %338, %if.then2.i1562 ], [ %350, %if.then2.i1591 ] + %ext_zfinx.i1595 = getelementptr inbounds %struct.RISCVCPUConfig, ptr %.sink, i64 0, i32 45 + %362 = load i8, ptr %ext_zfinx.i1595, align 1 %363 = and i8 %362, 1 br label %sw.epilog502.sink.split -sw.epilog502.sink.split: ; preds = %sw.epilog502.sink.split.sink.split, %if.then2.i1597, %if.then2.i1568, %if.then2.i1539, %if.then2.i1510, %if.then2.i1470, %if.then2.i1441, %if.then2.i1412, %if.then2.i - %frombool.i1603.sink = phi i8 [ 0, %if.then2.i ], [ 0, %if.then2.i1412 ], [ 0, %if.then2.i1441 ], [ 0, %if.then2.i1470 ], [ 0, %if.then2.i1510 ], [ 0, %if.then2.i1539 ], [ 0, %if.then2.i1568 ], [ 0, %if.then2.i1597 ], [ %363, %sw.epilog502.sink.split.sink.split ] - %virt_inst_excp.i1604 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 15 - store i8 %frombool.i1603.sink, ptr %virt_inst_excp.i1604, align 4 +sw.epilog502.sink.split: ; preds = %sw.epilog502.sink.split.sink.split, %if.then2.i1591, %if.then2.i1562, %if.then2.i1533, %if.then2.i1504, %if.then2.i1464, %if.then2.i1435, %if.then2.i1406, %if.then2.i + %frombool.i1597.sink = phi i8 [ 0, %if.then2.i ], [ 0, %if.then2.i1406 ], [ 0, %if.then2.i1435 ], [ 0, %if.then2.i1464 ], [ 0, %if.then2.i1504 ], [ 0, %if.then2.i1533 ], [ 0, %if.then2.i1562 ], [ 0, %if.then2.i1591 ], [ %363, %sw.epilog502.sink.split.sink.split ] + %virt_inst_excp.i1598 = getelementptr inbounds %struct.DisasContext, ptr %ctx, i64 0, i32 15 + store i8 %frombool.i1597.sink, ptr %virt_inst_excp.i1598, align 4 br label %sw.epilog502 -sw.epilog502: ; preds = %sw.epilog502.sink.split, %do.body8.i1582, %sw.bb497, %do.body8.i1553, %sw.bb493, %do.body8.i1524, %sw.bb489, %do.body8.i1495, %sw.bb485, %do.body8.i1455, %sw.bb477, %do.body8.i1426, %sw.bb473, %do.body8.i1397, %sw.bb469, %do.body8.i, %sw.bb465, %sw.bb381, %sw.bb377, %sw.bb373, %sw.bb369, %sw.bb361, %sw.bb353, %sw.bb345, %sw.bb337, %sw.bb329, %sw.bb321, %sw.bb313, %sw.bb305, %sw.bb297, %sw.bb289, %sw.bb281, %sw.bb273, %sw.bb265, %sw.bb221, %sw.bb132, %sw.bb128, %sw.bb120, %sw.bb100, %sw.bb92, %sw.bb88, %sw.bb84, %sw.bb80, %sw.bb64, %sw.bb60, %sw.bb56, %sw.bb52, %sw.bb29, %sw.bb25, %sw.bb21, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb4, %sw.bb457, %sw.bb453, %sw.bb449, %sw.bb441, %sw.bb433, %sw.bb425, %sw.bb417, %sw.bb409, %sw.bb401, %sw.bb393, %sw.bb365, %sw.bb357, %sw.bb349, %sw.bb341, %sw.bb333, %sw.bb325, %sw.bb317, %sw.bb309, %sw.bb301, %sw.bb293, %sw.bb285, %sw.bb277, %sw.bb269, %sw.bb261, %sw.bb254, %sw.bb250, %sw.bb200, %sw.bb192, %sw.bb188, %sw.bb168, %sw.bb164, %sw.bb156, %sw.bb152, %sw.bb482, %sw.bb462, %sw.bb386, %sw.bb389, %sw.bb397, %sw.bb405, %sw.bb413, %sw.bb421, %sw.bb429, %sw.bb437, %sw.bb445, %sw.bb258, %trans_th_lbib.exit, %trans_th_lbia.exit, %trans_th_lhib.exit, %trans_th_lhia.exit, %trans_th_lwib.exit, %trans_th_lwia.exit, %trans_th_ldib.exit, %trans_th_ldia.exit, %trans_th_lbuib.exit, %trans_th_lbuia.exit, %trans_th_lhuib.exit, %trans_th_lhuia.exit, %trans_th_lwuib.exit, %trans_th_lwuia.exit, %trans_th_lwd.exit, %trans_th_lwud.exit, %trans_th_ldd.exit, %sw.bb110, %trans_th_addsl1.exit, %sw.bb116, %trans_th_addsl3.exit, %trans_th_addsl2.exit, %sw.bb137, %sw.bb144, %sw.bb141, %sw.bb180, %sw.bb176, %sw.bb204, %sw.bb197, %sw.bb216, %sw.bb212, %sw.bb209, %trans_th_tst.exit, %sw.bb228, %sw.bb225, %sw.bb, %trans_th_l2cache_ciall.exit, %trans_th_l2cache_iall.exit, %trans_th_l2cache_call.exit, %trans_th_icache_ialls.exit, %trans_th_icache_iall.exit, %trans_th_dcache_ciall.exit, %trans_th_dcache_iall.exit, %trans_th_dcache_call.exit, %sw.bb2, %trans_th_icache_ipa.exit, %sw.bb96, %trans_th_dcache_cipa.exit, %trans_th_dcache_ipa.exit, %trans_th_dcache_cpa.exit, %trans_th_dcache_cpal1.exit, %sw.bb76, %sw.bb72, %sw.bb68, %trans_th_dcache_cval1.exit, %trans_th_dcache_cisw.exit, %trans_th_dcache_isw.exit, %trans_th_dcache_csw.exit, %sw.bb49, %entry +sw.epilog502: ; preds = %sw.epilog502.sink.split, %do.body8.i1576, %sw.bb497, %do.body8.i1547, %sw.bb493, %do.body8.i1518, %sw.bb489, %do.body8.i1489, %sw.bb485, %do.body8.i1449, %sw.bb477, %do.body8.i1420, %sw.bb473, %do.body8.i1391, %sw.bb469, %do.body8.i, %sw.bb465, %sw.bb381, %sw.bb377, %sw.bb373, %sw.bb369, %sw.bb361, %sw.bb353, %sw.bb345, %sw.bb337, %sw.bb329, %sw.bb321, %sw.bb313, %sw.bb305, %sw.bb297, %sw.bb289, %sw.bb281, %sw.bb273, %sw.bb265, %sw.bb221, %sw.bb132, %sw.bb128, %sw.bb120, %sw.bb100, %sw.bb92, %sw.bb88, %sw.bb84, %sw.bb80, %sw.bb64, %sw.bb60, %sw.bb56, %sw.bb52, %sw.bb29, %sw.bb25, %sw.bb21, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb4, %sw.bb457, %sw.bb453, %sw.bb449, %sw.bb441, %sw.bb433, %sw.bb425, %sw.bb417, %sw.bb409, %sw.bb401, %sw.bb393, %sw.bb365, %sw.bb357, %sw.bb349, %sw.bb341, %sw.bb333, %sw.bb325, %sw.bb317, %sw.bb309, %sw.bb301, %sw.bb293, %sw.bb285, %sw.bb277, %sw.bb269, %sw.bb261, %sw.bb254, %sw.bb250, %sw.bb200, %sw.bb192, %sw.bb188, %sw.bb168, %sw.bb164, %sw.bb156, %sw.bb152, %sw.bb482, %sw.bb462, %sw.bb386, %sw.bb389, %sw.bb397, %sw.bb405, %sw.bb413, %sw.bb421, %sw.bb429, %sw.bb437, %sw.bb445, %sw.bb258, %trans_th_lbib.exit, %trans_th_lbia.exit, %trans_th_lhib.exit, %trans_th_lhia.exit, %trans_th_lwib.exit, %trans_th_lwia.exit, %trans_th_ldib.exit, %trans_th_ldia.exit, %trans_th_lbuib.exit, %trans_th_lbuia.exit, %trans_th_lhuib.exit, %trans_th_lhuia.exit, %trans_th_lwuib.exit, %trans_th_lwuia.exit, %trans_th_lwd.exit, %trans_th_lwud.exit, %trans_th_ldd.exit, %sw.bb110, %trans_th_addsl1.exit, %sw.bb116, %trans_th_addsl3.exit, %trans_th_addsl2.exit, %sw.bb137, %sw.bb144, %sw.bb141, %sw.bb180, %sw.bb176, %sw.bb204, %sw.bb197, %sw.bb216, %sw.bb212, %sw.bb209, %trans_th_tst.exit, %sw.bb228, %sw.bb225, %sw.bb, %trans_th_l2cache_ciall.exit, %trans_th_l2cache_iall.exit, %trans_th_l2cache_call.exit, %trans_th_icache_ialls.exit, %trans_th_icache_iall.exit, %trans_th_dcache_ciall.exit, %trans_th_dcache_iall.exit, %trans_th_dcache_call.exit, %sw.bb2, %trans_th_icache_ipa.exit, %sw.bb96, %trans_th_dcache_cipa.exit, %trans_th_dcache_ipa.exit, %trans_th_dcache_cpa.exit, %trans_th_dcache_cpal1.exit, %sw.bb76, %sw.bb72, %sw.bb68, %trans_th_dcache_cval1.exit, %trans_th_dcache_cisw.exit, %trans_th_dcache_isw.exit, %trans_th_dcache_csw.exit, %sw.bb49, %entry br label %return -return: ; preds = %if.then5.i.i.i607, %sw.epilog.i.i.i604, %if.then.i.i595, %get_gpr.exit.i.i591, %if.then5.i.i.i, %sw.epilog.i.i.i, %if.then.i.i, %get_gpr.exit.i.i, %trans_th_fsurd.exit, %trans_th_fsrd.exit, %trans_th_fsurw.exit, %trans_th_fsrw.exit, %trans_th_flurd.exit, %trans_th_flrd.exit, %trans_th_flurw.exit, %trans_th_flrw.exit, %trans_th_sdd.exit.thread, %trans_th_swd.exit.thread, %trans_th_sdia.exit.thread, %trans_th_sdib.exit.thread, %trans_th_swia.exit.thread, %trans_th_swib.exit.thread, %trans_th_shia.exit.thread, %trans_th_shib.exit.thread, %trans_th_sbia.exit.thread, %trans_th_sbib.exit.thread, %trans_th_lurwu.exit.thread, %trans_th_lrwu.exit.thread, %trans_th_lurhu.exit.thread, %trans_th_lrhu.exit.thread, %trans_th_lurbu.exit.thread, %trans_th_lrbu.exit.thread, %trans_th_lurd.exit.thread, %trans_th_lrd.exit.thread, %trans_th_lurw.exit.thread, %trans_th_lrw.exit.thread, %trans_th_lurh.exit.thread, %trans_th_lrh.exit.thread, %trans_th_lurb.exit.thread, %trans_th_lrb.exit.thread, %trans_th_tstnbz.exit.thread, %trans_th_mvnez.exit.thread, %trans_th_mveqz.exit.thread, %trans_th_mulsw.exit.thread, %trans_th_mulaw.exit.thread, %trans_th_muls.exit.thread, %trans_th_mula.exit.thread, %sw.bb445, %sw.bb437, %sw.bb429, %sw.bb421, %sw.bb413, %sw.bb405, %sw.bb397, %sw.bb389, %trans_th_ldd.exit, %trans_th_lwud.exit, %trans_th_lwd.exit, %trans_th_lwuia.exit, %trans_th_lwuib.exit, %trans_th_lhuia.exit, %trans_th_lhuib.exit, %trans_th_lbuia.exit, %trans_th_lbuib.exit, %trans_th_ldia.exit, %trans_th_ldib.exit, %trans_th_lwia.exit, %trans_th_lwib.exit, %trans_th_lhia.exit, %trans_th_lhib.exit, %trans_th_lbia.exit, %trans_th_lbib.exit, %sw.bb228, %trans_th_tst.exit, %sw.bb216, %sw.bb212, %sw.bb204, %sw.bb180, %sw.bb176, %sw.bb144, %sw.bb137, %trans_th_addsl3.exit, %trans_th_addsl2.exit, %trans_th_addsl1.exit, %sw.bb116, %trans_th_icache_ipa.exit, %sw.bb96, %trans_th_dcache_cipa.exit, %trans_th_dcache_ipa.exit, %trans_th_dcache_cpa.exit, %trans_th_dcache_cpal1.exit, %sw.bb76, %sw.bb72, %sw.bb68, %trans_th_dcache_cval1.exit, %trans_th_dcache_cisw.exit, %trans_th_dcache_isw.exit, %trans_th_dcache_csw.exit, %trans_th_l2cache_ciall.exit, %trans_th_l2cache_iall.exit, %trans_th_l2cache_call.exit, %trans_th_icache_ialls.exit, %trans_th_icache_iall.exit, %trans_th_dcache_ciall.exit, %trans_th_dcache_iall.exit, %trans_th_dcache_call.exit, %sw.epilog502 - %retval.0 = phi i1 [ false, %sw.epilog502 ], [ true, %trans_th_dcache_call.exit ], [ true, %trans_th_dcache_iall.exit ], [ true, %trans_th_dcache_ciall.exit ], [ true, %trans_th_icache_iall.exit ], [ true, %trans_th_icache_ialls.exit ], [ true, %trans_th_l2cache_call.exit ], [ true, %trans_th_l2cache_iall.exit ], [ true, %trans_th_l2cache_ciall.exit ], [ true, %trans_th_dcache_csw.exit ], [ true, %trans_th_dcache_isw.exit ], [ true, %trans_th_dcache_cisw.exit ], [ true, %trans_th_dcache_cval1.exit ], [ true, %sw.bb68 ], [ true, %sw.bb72 ], [ true, %sw.bb76 ], [ true, %trans_th_dcache_cpal1.exit ], [ true, %trans_th_dcache_cpa.exit ], [ true, %trans_th_dcache_ipa.exit ], [ true, %trans_th_dcache_cipa.exit ], [ true, %sw.bb96 ], [ true, %trans_th_icache_ipa.exit ], [ true, %sw.bb116 ], [ true, %trans_th_addsl1.exit ], [ true, %trans_th_addsl2.exit ], [ true, %trans_th_addsl3.exit ], [ true, %sw.bb137 ], [ true, %sw.bb144 ], [ true, %sw.bb176 ], [ true, %sw.bb180 ], [ true, %sw.bb204 ], [ true, %sw.bb212 ], [ true, %sw.bb216 ], [ true, %trans_th_tst.exit ], [ true, %sw.bb228 ], [ true, %trans_th_lbib.exit ], [ true, %trans_th_lbia.exit ], [ true, %trans_th_lhib.exit ], [ true, %trans_th_lhia.exit ], [ true, %trans_th_lwib.exit ], [ true, %trans_th_lwia.exit ], [ true, %trans_th_ldib.exit ], [ true, %trans_th_ldia.exit ], [ true, %trans_th_lbuib.exit ], [ true, %trans_th_lbuia.exit ], [ true, %trans_th_lhuib.exit ], [ true, %trans_th_lhuia.exit ], [ true, %trans_th_lwuib.exit ], [ true, %trans_th_lwuia.exit ], [ true, %trans_th_lwd.exit ], [ true, %trans_th_lwud.exit ], [ true, %trans_th_ldd.exit ], [ true, %sw.bb389 ], [ true, %sw.bb397 ], [ true, %sw.bb405 ], [ true, %sw.bb413 ], [ true, %sw.bb421 ], [ true, %sw.bb429 ], [ true, %sw.bb437 ], [ true, %sw.bb445 ], [ true, %trans_th_flrw.exit ], [ true, %trans_th_flurw.exit ], [ true, %trans_th_flrd.exit ], [ true, %trans_th_flurd.exit ], [ true, %trans_th_fsrw.exit ], [ true, %trans_th_fsurw.exit ], [ true, %trans_th_fsrd.exit ], [ true, %trans_th_fsurd.exit ], [ true, %trans_th_mula.exit.thread ], [ true, %trans_th_muls.exit.thread ], [ true, %trans_th_mulaw.exit.thread ], [ true, %trans_th_mulsw.exit.thread ], [ true, %trans_th_mveqz.exit.thread ], [ true, %trans_th_mvnez.exit.thread ], [ true, %trans_th_tstnbz.exit.thread ], [ true, %trans_th_lrb.exit.thread ], [ true, %trans_th_lurb.exit.thread ], [ true, %trans_th_lrh.exit.thread ], [ true, %trans_th_lurh.exit.thread ], [ true, %trans_th_lrw.exit.thread ], [ true, %trans_th_lurw.exit.thread ], [ true, %trans_th_lrd.exit.thread ], [ true, %trans_th_lurd.exit.thread ], [ true, %trans_th_lrbu.exit.thread ], [ true, %trans_th_lurbu.exit.thread ], [ true, %trans_th_lrhu.exit.thread ], [ true, %trans_th_lurhu.exit.thread ], [ true, %trans_th_lrwu.exit.thread ], [ true, %trans_th_lurwu.exit.thread ], [ true, %trans_th_sbib.exit.thread ], [ true, %trans_th_sbia.exit.thread ], [ true, %trans_th_shib.exit.thread ], [ true, %trans_th_shia.exit.thread ], [ true, %trans_th_swib.exit.thread ], [ true, %trans_th_swia.exit.thread ], [ true, %trans_th_sdib.exit.thread ], [ true, %trans_th_sdia.exit.thread ], [ true, %trans_th_swd.exit.thread ], [ true, %trans_th_sdd.exit.thread ], [ true, %get_gpr.exit.i.i ], [ true, %if.then.i.i ], [ true, %sw.epilog.i.i.i ], [ true, %if.then5.i.i.i ], [ true, %get_gpr.exit.i.i591 ], [ true, %if.then.i.i595 ], [ true, %sw.epilog.i.i.i604 ], [ true, %if.then5.i.i.i607 ] +return: ; preds = %if.then5.i.i.i601, %sw.epilog.i.i.i598, %if.then.i.i589, %get_gpr.exit.i.i585, %if.then5.i.i.i, %sw.epilog.i.i.i, %if.then.i.i, %get_gpr.exit.i.i, %trans_th_fsurd.exit, %trans_th_fsrd.exit, %trans_th_fsurw.exit, %trans_th_fsrw.exit, %trans_th_flurd.exit, %trans_th_flrd.exit, %trans_th_flurw.exit, %trans_th_flrw.exit, %trans_th_sdd.exit.thread, %trans_th_swd.exit.thread, %trans_th_sdia.exit.thread, %trans_th_sdib.exit.thread, %trans_th_swia.exit.thread, %trans_th_swib.exit.thread, %trans_th_shia.exit.thread, %trans_th_shib.exit.thread, %trans_th_sbia.exit.thread, %trans_th_sbib.exit.thread, %trans_th_lurwu.exit.thread, %trans_th_lrwu.exit.thread, %trans_th_lurhu.exit.thread, %trans_th_lrhu.exit.thread, %trans_th_lurbu.exit.thread, %trans_th_lrbu.exit.thread, %trans_th_lurd.exit.thread, %trans_th_lrd.exit.thread, %trans_th_lurw.exit.thread, %trans_th_lrw.exit.thread, %trans_th_lurh.exit.thread, %trans_th_lrh.exit.thread, %trans_th_lurb.exit.thread, %trans_th_lrb.exit.thread, %trans_th_tstnbz.exit.thread, %trans_th_mvnez.exit.thread, %trans_th_mveqz.exit.thread, %trans_th_mulsw.exit.thread, %trans_th_mulaw.exit.thread, %trans_th_muls.exit.thread, %trans_th_mula.exit.thread, %sw.bb445, %sw.bb437, %sw.bb429, %sw.bb421, %sw.bb413, %sw.bb405, %sw.bb397, %sw.bb389, %trans_th_ldd.exit, %trans_th_lwud.exit, %trans_th_lwd.exit, %trans_th_lwuia.exit, %trans_th_lwuib.exit, %trans_th_lhuia.exit, %trans_th_lhuib.exit, %trans_th_lbuia.exit, %trans_th_lbuib.exit, %trans_th_ldia.exit, %trans_th_ldib.exit, %trans_th_lwia.exit, %trans_th_lwib.exit, %trans_th_lhia.exit, %trans_th_lhib.exit, %trans_th_lbia.exit, %trans_th_lbib.exit, %sw.bb228, %trans_th_tst.exit, %sw.bb216, %sw.bb212, %sw.bb204, %sw.bb180, %sw.bb176, %sw.bb144, %sw.bb137, %trans_th_addsl3.exit, %trans_th_addsl2.exit, %trans_th_addsl1.exit, %sw.bb116, %trans_th_icache_ipa.exit, %sw.bb96, %trans_th_dcache_cipa.exit, %trans_th_dcache_ipa.exit, %trans_th_dcache_cpa.exit, %trans_th_dcache_cpal1.exit, %sw.bb76, %sw.bb72, %sw.bb68, %trans_th_dcache_cval1.exit, %trans_th_dcache_cisw.exit, %trans_th_dcache_isw.exit, %trans_th_dcache_csw.exit, %trans_th_l2cache_ciall.exit, %trans_th_l2cache_iall.exit, %trans_th_l2cache_call.exit, %trans_th_icache_ialls.exit, %trans_th_icache_iall.exit, %trans_th_dcache_ciall.exit, %trans_th_dcache_iall.exit, %trans_th_dcache_call.exit, %sw.epilog502 + %retval.0 = phi i1 [ false, %sw.epilog502 ], [ true, %trans_th_dcache_call.exit ], [ true, %trans_th_dcache_iall.exit ], [ true, %trans_th_dcache_ciall.exit ], [ true, %trans_th_icache_iall.exit ], [ true, %trans_th_icache_ialls.exit ], [ true, %trans_th_l2cache_call.exit ], [ true, %trans_th_l2cache_iall.exit ], [ true, %trans_th_l2cache_ciall.exit ], [ true, %trans_th_dcache_csw.exit ], [ true, %trans_th_dcache_isw.exit ], [ true, %trans_th_dcache_cisw.exit ], [ true, %trans_th_dcache_cval1.exit ], [ true, %sw.bb68 ], [ true, %sw.bb72 ], [ true, %sw.bb76 ], [ true, %trans_th_dcache_cpal1.exit ], [ true, %trans_th_dcache_cpa.exit ], [ true, %trans_th_dcache_ipa.exit ], [ true, %trans_th_dcache_cipa.exit ], [ true, %sw.bb96 ], [ true, %trans_th_icache_ipa.exit ], [ true, %sw.bb116 ], [ true, %trans_th_addsl1.exit ], [ true, %trans_th_addsl2.exit ], [ true, %trans_th_addsl3.exit ], [ true, %sw.bb137 ], [ true, %sw.bb144 ], [ true, %sw.bb176 ], [ true, %sw.bb180 ], [ true, %sw.bb204 ], [ true, %sw.bb212 ], [ true, %sw.bb216 ], [ true, %trans_th_tst.exit ], [ true, %sw.bb228 ], [ true, %trans_th_lbib.exit ], [ true, %trans_th_lbia.exit ], [ true, %trans_th_lhib.exit ], [ true, %trans_th_lhia.exit ], [ true, %trans_th_lwib.exit ], [ true, %trans_th_lwia.exit ], [ true, %trans_th_ldib.exit ], [ true, %trans_th_ldia.exit ], [ true, %trans_th_lbuib.exit ], [ true, %trans_th_lbuia.exit ], [ true, %trans_th_lhuib.exit ], [ true, %trans_th_lhuia.exit ], [ true, %trans_th_lwuib.exit ], [ true, %trans_th_lwuia.exit ], [ true, %trans_th_lwd.exit ], [ true, %trans_th_lwud.exit ], [ true, %trans_th_ldd.exit ], [ true, %sw.bb389 ], [ true, %sw.bb397 ], [ true, %sw.bb405 ], [ true, %sw.bb413 ], [ true, %sw.bb421 ], [ true, %sw.bb429 ], [ true, %sw.bb437 ], [ true, %sw.bb445 ], [ true, %trans_th_flrw.exit ], [ true, %trans_th_flurw.exit ], [ true, %trans_th_flrd.exit ], [ true, %trans_th_flurd.exit ], [ true, %trans_th_fsrw.exit ], [ true, %trans_th_fsurw.exit ], [ true, %trans_th_fsrd.exit ], [ true, %trans_th_fsurd.exit ], [ true, %trans_th_mula.exit.thread ], [ true, %trans_th_muls.exit.thread ], [ true, %trans_th_mulaw.exit.thread ], [ true, %trans_th_mulsw.exit.thread ], [ true, %trans_th_mveqz.exit.thread ], [ true, %trans_th_mvnez.exit.thread ], [ true, %trans_th_tstnbz.exit.thread ], [ true, %trans_th_lrb.exit.thread ], [ true, %trans_th_lurb.exit.thread ], [ true, %trans_th_lrh.exit.thread ], [ true, %trans_th_lurh.exit.thread ], [ true, %trans_th_lrw.exit.thread ], [ true, %trans_th_lurw.exit.thread ], [ true, %trans_th_lrd.exit.thread ], [ true, %trans_th_lurd.exit.thread ], [ true, %trans_th_lrbu.exit.thread ], [ true, %trans_th_lurbu.exit.thread ], [ true, %trans_th_lrhu.exit.thread ], [ true, %trans_th_lurhu.exit.thread ], [ true, %trans_th_lrwu.exit.thread ], [ true, %trans_th_lurwu.exit.thread ], [ true, %trans_th_sbib.exit.thread ], [ true, %trans_th_sbia.exit.thread ], [ true, %trans_th_shib.exit.thread ], [ true, %trans_th_shia.exit.thread ], [ true, %trans_th_swib.exit.thread ], [ true, %trans_th_swia.exit.thread ], [ true, %trans_th_sdib.exit.thread ], [ true, %trans_th_sdia.exit.thread ], [ true, %trans_th_swd.exit.thread ], [ true, %trans_th_sdd.exit.thread ], [ true, %get_gpr.exit.i.i ], [ true, %if.then.i.i ], [ true, %sw.epilog.i.i.i ], [ true, %if.then5.i.i.i ], [ true, %get_gpr.exit.i.i585 ], [ true, %if.then.i.i589 ], [ true, %sw.epilog.i.i.i598 ], [ true, %if.then5.i.i.i601 ] ret i1 %retval.0 } @@ -88773,7 +88748,7 @@ if.end: ; preds = %entry ] sw.bb: ; preds = %if.end - switch i32 %ext, label %do.body [ + switch i32 %ext, label %default.unreachable [ i32 0, label %sw.epilog11 i32 1, label %sw.bb2 i32 2, label %sw.bb3 @@ -88795,8 +88770,7 @@ sw.bb3: ; preds = %sw.bb tail call void @tcg_gen_ext32u_i64(ptr noundef %call4, ptr noundef %3) #13 br label %return -do.body: ; preds = %sw.bb - tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1169, i32 noundef 343, ptr noundef nonnull @__func__.get_gpr, ptr noundef null) #14 +default.unreachable: ; preds = %sw.bb unreachable do.body9: ; preds = %if.end @@ -91535,11 +91509,11 @@ entry: define internal void @gen_slt_i128(ptr noundef %retl, ptr noundef %reth, ptr noundef %s1l, ptr noundef %s1h, ptr noundef %s2l, ptr noundef %s2h) #2 { entry: %call.i.i = tail call ptr @tcg_temp_new_i64() #13 - %call5.i.i = tail call ptr @tcg_temp_new_i64() #13 + %call10.i.i = tail call ptr @tcg_temp_new_i64() #13 tail call void @tcg_gen_sub2_i64(ptr noundef %retl, ptr noundef %call.i.i, ptr noundef %s1l, ptr noundef %s1h, ptr noundef %s2l, ptr noundef %s2h) #13 tail call void @tcg_gen_xor_i64(ptr noundef %retl, ptr noundef %call.i.i, ptr noundef %s1h) #13 - tail call void @tcg_gen_xor_i64(ptr noundef %call5.i.i, ptr noundef %s1h, ptr noundef %s2h) #13 - tail call void @tcg_gen_and_i64(ptr noundef %retl, ptr noundef %retl, ptr noundef %call5.i.i) #13 + tail call void @tcg_gen_xor_i64(ptr noundef %call10.i.i, ptr noundef %s1h, ptr noundef %s2h) #13 + tail call void @tcg_gen_and_i64(ptr noundef %retl, ptr noundef %retl, ptr noundef %call10.i.i) #13 tail call void @tcg_gen_xor_i64(ptr noundef %retl, ptr noundef %call.i.i, ptr noundef %retl) #13 tail call void @tcg_gen_setcondi_i64(i32 noundef 2, ptr noundef %retl, ptr noundef %retl, i64 noundef 0) #13 tail call void @tcg_gen_movi_i64(ptr noundef %reth, i64 noundef 0) #13 @@ -101521,7 +101495,7 @@ entry: %call1 = tail call ptr @tcg_temp_new_ptr() #13 %call2 = tail call ptr @tcg_temp_new_ptr() #13 %call3 = tail call ptr @tcg_temp_new_ptr() #13 - switch i32 %imm_mode, label %do.body.i [ + switch i32 %imm_mode, label %default.unreachable.i [ i32 0, label %sw.bb.i i32 1, label %sw.bb1.i i32 2, label %sw.bb4.i @@ -101556,8 +101530,7 @@ extract64.exit.i: ; preds = %sw.bb4.i %and.i5.i = and i64 %shr6.i.i, %conv5.i br label %extract_imm.exit -do.body.i: ; preds = %entry - tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1176, i32 noundef 1387, ptr noundef nonnull @__func__.extract_imm, ptr noundef null) #14 +default.unreachable.i: ; preds = %entry unreachable extract_imm.exit: ; preds = %sw.bb.i, %sw.bb1.i, %extract64.exit.i diff --git a/bench/qemu/optimized/tcg.c.ll b/bench/qemu/optimized/tcg.c.ll index b23dac670d0..8be82bdafa2 100644 --- a/bench/qemu/optimized/tcg.c.ll +++ b/bench/qemu/optimized/tcg.c.ll @@ -127,7 +127,6 @@ target triple = "x86_64-unknown-linux-gnu" @guest_base = external local_unnamed_addr global i64, align 8 @x86_guest_base = internal unnamed_addr global %struct.HostAddress { i32 0, i32 -1, i32 0, i32 0, %struct.TCGAtomAlign zeroinitializer }, align 4 @tb_ret_addr = internal unnamed_addr global ptr null, align 8 -@__func__.tcg_out_movi = private unnamed_addr constant [13 x i8] c"tcg_out_movi\00", align 1 @__func__.tcg_out_evex_opc = private unnamed_addr constant [17 x i8] c"tcg_out_evex_opc\00", align 1 @__func__.tcg_out_mov = private unnamed_addr constant [12 x i8] c"tcg_out_mov\00", align 1 @__func__.tgen_arithi = private unnamed_addr constant [12 x i8] c"tgen_arithi\00", align 1 @@ -3366,7 +3365,7 @@ if.end496.i.i: ; preds = %for.body487.i.i %86 = trunc i64 %bf.load491.i.i to i32 %87 = lshr i32 %86, 28 %bf.cast503.i.i = and i32 %87, 3 - switch i32 %bf.cast503.i.i, label %if.end496.unreachabledefault.i.i [ + switch i32 %bf.cast503.i.i, label %default.unreachable [ i32 0, label %for.inc732.i.i i32 1, label %sw.bb505.i.i i32 2, label %sw.bb605.i.i @@ -3484,7 +3483,7 @@ if.else695.i.i: ; preds = %sw.bb605.i.i %bf.shl722.i.i = and i64 %116, 251658240 br label %for.inc732.sink.split.i.i -if.end496.unreachabledefault.i.i: ; preds = %if.end496.i.i +default.unreachable: ; preds = %if.end496.i.i unreachable do.body728.i.i: ; preds = %if.end496.i.i @@ -10168,8 +10167,8 @@ do.body120: ; preds = %for.body %mul.i423 = shl nuw nsw i64 %conv11.i, 3 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %add.ptr5.i, ptr align 8 %add.ptr10.i, i64 %mul.i423, i1 false) %434 = load i32, ptr %reserved_regs.i316, align 4 - %cmp669.not.i = icmp eq i8 %432, 0 - br i1 %cmp669.not.i, label %for.end432.i, label %for.body.lr.ph.i425 + %cmp670.not.i = icmp eq i8 %432, 0 + br i1 %cmp670.not.i, label %for.end432.i, label %for.body.lr.ph.i425 for.body.lr.ph.i425: ; preds = %do.body120 %args_ct.i = getelementptr [0 x %struct.TCGOpDef], ptr @tcg_op_defs, i64 0, i64 %idxprom.i418, i32 6 @@ -10181,7 +10180,7 @@ for.body420.preheader.i: ; preds = %for.inc.i435 for.body.i427: ; preds = %for.inc.i435, %for.body.lr.ph.i425 %indvars.iv.i428 = phi i64 [ 0, %for.body.lr.ph.i425 ], [ %indvars.iv.next.i436, %for.inc.i435 ] - %i_allocated_regs.0671.i = phi i32 [ %434, %for.body.lr.ph.i425 ], [ %i_allocated_regs.3.i, %for.inc.i435 ] + %i_allocated_regs.0672.i = phi i32 [ %434, %for.body.lr.ph.i425 ], [ %i_allocated_regs.3.i, %for.inc.i435 ] %435 = load ptr, ptr %args_ct.i, align 8 %436 = getelementptr %struct.TCGArgConstraint, ptr %435, i64 %indvars.iv.i428 %arrayidx15.i = getelementptr %struct.TCGArgConstraint, ptr %436, i64 %conv.i419 @@ -10201,7 +10200,7 @@ for.body.i427: ; preds = %for.inc.i435, %for. br i1 %cmp28.i, label %land.lhs.true.i522, label %for.body.if.end_crit_edge.i for.body.if.end_crit_edge.i: ; preds = %for.body.i427 - %.pre707.i = trunc i64 %bf.load49.pre.i to i32 + %.pre708.i = trunc i64 %bf.load49.pre.i to i32 br label %if.end.i430 land.lhs.true.i522: ; preds = %for.body.i427 @@ -10259,14 +10258,14 @@ if.then.i525: ; preds = %tcg_target_const_ma br label %for.inc.i435 if.end.i430: ; preds = %tcg_target_const_match.exit.i, %for.body.if.end_crit_edge.i - %.pre-phi.i431 = phi i32 [ %.pre707.i, %for.body.if.end_crit_edge.i ], [ %443, %tcg_target_const_match.exit.i ] + %.pre-phi.i431 = phi i32 [ %.pre708.i, %for.body.if.end_crit_edge.i ], [ %443, %tcg_target_const_match.exit.i ] %446 = trunc i64 %bf.load24.i to i32 %bf.cast48.i = and i32 %446, 255 %regs.i432 = getelementptr %struct.TCGArgConstraint, ptr %435, i64 %idxprom19.i, i32 1 %447 = load i32, ptr %regs.i432, align 4 %448 = lshr i32 %.pre-phi.i431, 28 %bf.cast52.i = and i32 %448, 3 - switch i32 %bf.cast52.i, label %if.end.unreachabledefault.i [ + switch i32 %bf.cast52.i, label %if.end.i430.unreachabledefault [ i32 0, label %sw.bb.i514 i32 1, label %sw.bb116.i i32 2, label %sw.bb235.i @@ -10317,13 +10316,13 @@ if.else.i519: ; preds = %lor.lhs.false65.i if.end90.i: ; preds = %if.else.i519 %455 = shl nuw i32 1, %bf.cast48.i - %456 = and i32 %455, %i_allocated_regs.0671.i + %456 = and i32 %455, %i_allocated_regs.0672.i %tobool87.not.i = icmp eq i32 %456, 0 br i1 %tobool87.not.i, label %if.end100.i, label %if.then102.i if.end100.i: ; preds = %if.end90.i, %if.else.i519, %sw.bb.i514 %i_preferred_regs.0636.i = phi i32 [ %cond.i292.i, %if.end90.i ], [ 0, %sw.bb.i514 ], [ %cond.i292.i, %if.else.i519 ] - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %447, i32 noundef %i_allocated_regs.0671.i, i32 noundef %i_preferred_regs.0636.i) + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %447, i32 noundef %i_allocated_regs.0672.i, i32 noundef %i_preferred_regs.0636.i) %bf.load93.i = load i64, ptr %440, align 8 %457 = trunc i64 %bf.load93.i to i32 %bf.cast95.i = and i32 %457, 255 @@ -10339,11 +10338,11 @@ if.then102.i: ; preds = %if.end100.i, %if.en %idxprom107.i = and i64 %460, 255 %arrayidx108.i = getelementptr [6 x i32], ptr @tcg_target_available_regs, i64 0, i64 %idxprom107.i %461 = load i32, ptr %arrayidx108.i, align 4 - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %461, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0) + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %461, i32 noundef %i_allocated_regs.0672.i, i32 noundef 0) %bf.load109.i = load i64, ptr %440, align 8 %462 = and i64 %bf.load109.i, 68719476736 %tobool113.i = icmp ne i64 %462, 0 - %call114.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %447, i32 noundef %i_allocated_regs.0671.i, i32 noundef %i_preferred_regs.0630641.i, i1 noundef zeroext %tobool113.i) + %call114.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %447, i32 noundef %i_allocated_regs.0672.i, i32 noundef %i_preferred_regs.0630641.i, i1 noundef zeroext %tobool113.i) br label %if.then390.i sw.bb116.i: ; preds = %if.end.i430 @@ -10404,7 +10403,7 @@ land.lhs.true159.i: ; preds = %land.lhs.true146.i %470 = shl nuw i32 1, %bf.cast48.i %471 = and i32 %447, %470 %tobool162.not.i = icmp ne i32 %471, 0 - %472 = and i32 %470, %i_allocated_regs.0671.i + %472 = and i32 %470, %i_allocated_regs.0672.i %tobool166.not.i = icmp eq i32 %472, 0 %or.cond657.i = select i1 %tobool162.not.i, i1 %tobool166.not.i, i1 false br i1 %or.cond657.i, label %land.lhs.true167.i, label %if.end228.i @@ -10412,7 +10411,7 @@ land.lhs.true159.i: ; preds = %land.lhs.true146.i land.lhs.true167.i: ; preds = %land.lhs.true159.i %add168.i = add nuw nsw i32 %bf.cast48.i, 1 %473 = shl i32 2, %bf.cast48.i - %474 = and i32 %473, %i_allocated_regs.0671.i + %474 = and i32 %473, %i_allocated_regs.0672.i %tobool171.not.i = icmp eq i32 %474, 0 br i1 %tobool171.not.i, label %land.lhs.true172.i, label %if.end228.i @@ -10469,7 +10468,7 @@ if.end228.i: ; preds = %land.lhs.true222.i, %i_preferred_regs.1.i = phi i32 [ %cond.i295.i, %land.lhs.true167.i ], [ %cond.i295.i, %cond.true174.i ], [ %cond.i295.i, %cond.false190.i ], [ %cond.i295.i, %land.lhs.true159.i ], [ %cond.i295.i, %land.lhs.true146.i ], [ %cond.i295.i, %land.lhs.true140.i ], [ %cond.i295.i, %output_pref.exit299.i ], [ 0, %land.lhs.true222.i ], [ 0, %land.lhs.true215.i ], [ 0, %land.lhs.true208.i ], [ 0, %do.body.i513 ] %483 = and i64 %bf.load24.i, 68719476736 %tobool233.i = icmp ne i64 %483, 0 - %call234.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %447, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0, i1 noundef zeroext %tobool233.i) + %call234.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %447, i32 noundef %i_allocated_regs.0672.i, i32 noundef 0, i1 noundef zeroext %tobool233.i) br label %do_pair.i sw.bb235.i: ; preds = %if.end.i430 @@ -10524,35 +10523,35 @@ land.lhs.true279.i: ; preds = %land.lhs.true273.i %492 = shl nuw i32 1, %bf.cast48.i %493 = and i32 %447, %492 %tobool282.not.i = icmp ne i32 %493, 0 - %494 = and i32 %492, %i_allocated_regs.0671.i + %494 = and i32 %492, %i_allocated_regs.0672.i %tobool286.not.i = icmp eq i32 %494, 0 %or.cond660.i = select i1 %tobool282.not.i, i1 %tobool286.not.i, i1 false br i1 %or.cond660.i, label %land.lhs.true287.i, label %if.end295.i land.lhs.true287.i: ; preds = %land.lhs.true279.i %495 = shl nuw i32 1, %sub.i510 - %496 = and i32 %495, %i_allocated_regs.0671.i + %496 = and i32 %495, %i_allocated_regs.0672.i %tobool291.not.i = icmp eq i32 %496, 0 br i1 %tobool291.not.i, label %if.then292.i, label %if.end295.i if.then292.i: ; preds = %land.lhs.true287.i - %or.i511 = or i32 %495, %i_allocated_regs.0671.i + %or.i511 = or i32 %495, %i_allocated_regs.0672.i br label %if.end408.i if.end295.i: ; preds = %land.lhs.true287.i, %land.lhs.true279.i, %land.lhs.true273.i, %land.lhs.true263.i, %output_pref.exit307.i %shr296.i = lshr i32 %447, 1 %497 = and i64 %bf.load24.i, 68719476736 %tobool301.i = icmp ne i64 %497, 0 - %call302.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %shr296.i, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0, i1 noundef zeroext %tobool301.i) + %call302.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %shr296.i, i32 noundef %i_allocated_regs.0672.i, i32 noundef 0, i1 noundef zeroext %tobool301.i) %shl303.i = shl nuw i32 1, %call302.i - %or304.i = or i32 %shl303.i, %i_allocated_regs.0671.i + %or304.i = or i32 %shl303.i, %i_allocated_regs.0672.i %add305.i = add i32 %call302.i, 1 br label %do_pair.i do_pair.i: ; preds = %if.end295.i, %sw.bb235.i, %if.end228.i %i_preferred_regs.2.i = phi i32 [ %cond.i303.i, %if.end295.i ], [ 0, %sw.bb235.i ], [ %i_preferred_regs.1.i, %if.end228.i ] %reg.1.i = phi i32 [ %add305.i, %if.end295.i ], [ %conv243.i, %sw.bb235.i ], [ %call234.i, %if.end228.i ] - %i_allocated_regs.1.i = phi i32 [ %or304.i, %if.end295.i ], [ %i_allocated_regs.0671.i, %sw.bb235.i ], [ %i_allocated_regs.0671.i, %if.end228.i ] + %i_allocated_regs.1.i = phi i32 [ %or304.i, %if.end295.i ], [ %i_allocated_regs.0672.i, %sw.bb235.i ], [ %i_allocated_regs.0672.i, %if.end228.i ] %bf.load306.i = load i64, ptr %arrayidx23.i, align 4 %498 = and i64 %bf.load306.i, 2147483648 %bf.cast309.not.i = icmp eq i64 %498, 0 @@ -10565,8 +10564,8 @@ land.lhs.true311.i: ; preds = %do_pair.i %bf.load324.pre.i = load i64, ptr %440, align 8 %499 = and i64 %bf.load324.pre.i, 30064771072 %cmp.i309.i = icmp ugt i64 %499, 8589934592 - %or.cond712.i = select i1 %tobool314.not.i, i1 true, i1 %cmp.i309.i - br i1 %or.cond712.i, label %if.then318.i, label %sw.epilog.i434 + %or.cond715.i = select i1 %tobool314.not.i, i1 true, i1 %cmp.i309.i + br i1 %or.cond715.i, label %if.then318.i, label %sw.epilog.i434 if.then318.i: ; preds = %land.lhs.true311.i %500 = shl i32 3, %reg.1.i @@ -10636,7 +10635,10 @@ if.else370.i: ; preds = %if.then318.i tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %513, i32 noundef %or323.i, i32 noundef 0) br label %if.then390.i -if.end.unreachabledefault.i: ; preds = %if.end.i430 +if.end.i430.unreachabledefault: ; preds = %if.end.i430 + unreachable + +default.unreachable: ; preds = %for.body471.i unreachable sw.epilog.i434: ; preds = %land.lhs.true311.i, %do_pair.i @@ -10649,7 +10651,7 @@ sw.epilog.i434: ; preds = %land.lhs.true311.i, br i1 %cmp383.not.i, label %if.end408.i, label %if.then390.i if.then390.i: ; preds = %sw.epilog.i434, %if.else370.i, %if.then102.i - %i_allocated_regs.2655.i = phi i32 [ %i_allocated_regs.1.i, %sw.epilog.i434 ], [ %i_allocated_regs.0671.i, %if.then102.i ], [ %i_allocated_regs.1.i, %if.else370.i ] + %i_allocated_regs.2655.i = phi i32 [ %i_allocated_regs.1.i, %sw.epilog.i434 ], [ %i_allocated_regs.0672.i, %if.then102.i ], [ %i_allocated_regs.1.i, %if.else370.i ] %reg.2654.i = phi i32 [ %reg.1.i, %sw.epilog.i434 ], [ %call114.i, %if.then102.i ], [ %reg.1.i, %if.else370.i ] %bf.load391.i = load i64, ptr %440, align 8 %515 = trunc i64 %bf.load391.i to i32 @@ -10659,7 +10661,7 @@ if.then390.i: ; preds = %sw.epilog.i434, %if br label %if.end408.i if.end408.i: ; preds = %if.then390.i, %sw.epilog.i434, %do.body13.i.i495, %if.then.i.i504, %if.then292.i, %land.lhs.true222.i, %cond.false190.i, %cond.true174.i, %if.end100.i - %i_allocated_regs.2646.i = phi i32 [ %i_allocated_regs.2655.i, %if.then390.i ], [ %i_allocated_regs.1.i, %sw.epilog.i434 ], [ %i_allocated_regs.1.i, %do.body13.i.i495 ], [ %i_allocated_regs.1.i, %if.then.i.i504 ], [ %i_allocated_regs.0671.i, %if.end100.i ], [ %i_allocated_regs.0671.i, %land.lhs.true222.i ], [ %i_allocated_regs.0671.i, %cond.false190.i ], [ %or.i511, %if.then292.i ], [ %i_allocated_regs.0671.i, %cond.true174.i ] + %i_allocated_regs.2646.i = phi i32 [ %i_allocated_regs.2655.i, %if.then390.i ], [ %i_allocated_regs.1.i, %sw.epilog.i434 ], [ %i_allocated_regs.1.i, %do.body13.i.i495 ], [ %i_allocated_regs.1.i, %if.then.i.i504 ], [ %i_allocated_regs.0672.i, %if.end100.i ], [ %i_allocated_regs.0672.i, %land.lhs.true222.i ], [ %i_allocated_regs.0672.i, %cond.false190.i ], [ %or.i511, %if.then292.i ], [ %i_allocated_regs.0672.i, %cond.true174.i ] %reg.2645.i = phi i32 [ %reg.2654.i, %if.then390.i ], [ %reg.1.i, %sw.epilog.i434 ], [ %reg.1.i, %do.body13.i.i495 ], [ %reg.1.i, %if.then.i.i504 ], [ %bf.cast95.i, %if.end100.i ], [ %bf.cast48.i, %land.lhs.true222.i ], [ %bf.cast48.i, %cond.false190.i ], [ %bf.cast48.i, %if.then292.i ], [ %bf.cast48.i, %cond.true174.i ] %conv409.i = zext i32 %reg.2645.i to i64 %arrayidx411.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %idxprom19.i @@ -10671,21 +10673,21 @@ if.end408.i: ; preds = %if.then390.i, %sw.e br label %for.inc.i435 for.inc.i435: ; preds = %if.end408.i, %if.then.i525 - %i_allocated_regs.3.i = phi i32 [ %i_allocated_regs.0671.i, %if.then.i525 ], [ %or415.i, %if.end408.i ] + %i_allocated_regs.3.i = phi i32 [ %i_allocated_regs.0672.i, %if.then.i525 ], [ %or415.i, %if.end408.i ] %indvars.iv.next.i436 = add nuw nsw i64 %indvars.iv.i428, 1 %exitcond.not.i437 = icmp eq i64 %indvars.iv.next.i436, %conv3.i br i1 %exitcond.not.i437, label %for.body420.preheader.i, label %for.body.i427, !llvm.loop !54 for.body420.i: ; preds = %for.inc430.i, %for.body420.preheader.i - %indvars.iv685.i = phi i64 [ %conv.i419, %for.body420.preheader.i ], [ %indvars.iv.next686.i, %for.inc430.i ] - %517 = trunc i64 %indvars.iv685.i to i32 + %indvars.iv686.i = phi i64 [ %conv.i419, %for.body420.preheader.i ], [ %indvars.iv.next687.i, %for.inc430.i ] + %517 = trunc i64 %indvars.iv686.i to i32 %shl421.i = shl i32 16, %517 %and422.i = and i32 %shl421.i, %430 %tobool423.not.i = icmp eq i32 %and422.i, 0 br i1 %tobool423.not.i, label %for.inc430.i, label %if.then424.i if.then424.i: ; preds = %for.body420.i - %arrayidx427.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv685.i + %arrayidx427.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv686.i %518 = load i64, ptr %arrayidx427.i, align 8 %519 = inttoptr i64 %518 to ptr %bf.load.i.i.i438 = load i64, ptr %519, align 8 @@ -10734,12 +10736,12 @@ set_temp_val_nonreg.exit.i.i.i445: ; preds = %if.then2.i.i.i.i487 br label %for.inc430.i for.inc430.i: ; preds = %set_temp_val_nonreg.exit.i.i.i445, %if.then424.i, %for.body420.i - %indvars.iv.next686.i = add nuw nsw i64 %indvars.iv685.i, 1 - %cmp418.i = icmp ult i64 %indvars.iv.next686.i, %add417.i + %indvars.iv.next687.i = add nuw nsw i64 %indvars.iv686.i, 1 + %cmp418.i = icmp ult i64 %indvars.iv.next687.i, %add417.i br i1 %cmp418.i, label %for.body420.i, label %for.end432.i, !llvm.loop !55 for.end432.i: ; preds = %for.inc430.i, %do.body120 - %i_allocated_regs.0.lcssa709.i = phi i32 [ %434, %do.body120 ], [ %i_allocated_regs.3.i, %for.inc430.i ] + %i_allocated_regs.0.lcssa711.i = phi i32 [ %434, %do.body120 ], [ %i_allocated_regs.3.i, %for.inc430.i ] %flags.i449 = getelementptr [0 x %struct.TCGOpDef], ptr @tcg_op_defs, i64 0, i64 %idxprom.i418, i32 5 %523 = load i8, ptr %flags.i449, align 4 %conv433.i = zext i8 %523 to i32 @@ -10859,49 +10861,49 @@ if.else443.i: ; preds = %if.else437.i br i1 %tobool447.not.i, label %if.end467.i, label %for.body452.preheader.i for.body452.preheader.i: ; preds = %if.else443.i - %.b.pre703.i = load i1, ptr @tcg_target_call_clobber_regs, align 4 + %.b.pre704.i = load i1, ptr @tcg_target_call_clobber_regs, align 4 br label %for.body452.i for.body452.i: ; preds = %for.inc458.i, %for.body452.preheader.i - %.b.i483 = phi i1 [ %.b.pre703.i, %for.body452.preheader.i ], [ %.b704.i, %for.inc458.i ] - %indvars.iv688.i = phi i64 [ 0, %for.body452.preheader.i ], [ %indvars.iv.next689.i, %for.inc458.i ] + %.b.i483 = phi i1 [ %.b.pre704.i, %for.body452.preheader.i ], [ %.b705.i, %for.inc458.i ] + %indvars.iv689.i = phi i64 [ 0, %for.body452.preheader.i ], [ %indvars.iv.next690.i, %for.inc458.i ] %538 = select i1 %.b.i483, i32 -61497, i32 0 - %539 = trunc i64 %indvars.iv688.i to i32 + %539 = trunc i64 %indvars.iv689.i to i32 %540 = shl nuw i32 1, %539 %541 = and i32 %540, %538 %tobool455.not.i = icmp eq i32 %541, 0 br i1 %tobool455.not.i, label %for.inc458.i, label %if.then456.i if.then456.i: ; preds = %for.body452.i - %arrayidx.i331.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %indvars.iv688.i + %arrayidx.i331.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %indvars.iv689.i %542 = load ptr, ptr %arrayidx.i331.i, align 8 %cmp.not.i.i484 = icmp eq ptr %542, null br i1 %cmp.not.i.i484, label %for.inc458.i, label %if.then.i332.i if.then.i332.i: ; preds = %if.then456.i - tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %542, i32 noundef %i_allocated_regs.0.lcssa709.i, i32 noundef 0, i32 noundef -1) + tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %542, i32 noundef %i_allocated_regs.0.lcssa711.i, i32 noundef 0, i32 noundef -1) %.b.pre.i485 = load i1, ptr @tcg_target_call_clobber_regs, align 4 br label %for.inc458.i for.inc458.i: ; preds = %if.then.i332.i, %if.then456.i, %for.body452.i - %.b704.i = phi i1 [ %.b.pre.i485, %if.then.i332.i ], [ %.b.i483, %if.then456.i ], [ %.b.i483, %for.body452.i ] - %indvars.iv.next689.i = add nuw nsw i64 %indvars.iv688.i, 1 - %exitcond691.not.i = icmp eq i64 %indvars.iv.next689.i, 32 - br i1 %exitcond691.not.i, label %if.end467.i, label %for.body452.i, !llvm.loop !57 + %.b705.i = phi i1 [ %.b.pre.i485, %if.then.i332.i ], [ %.b.i483, %if.then456.i ], [ %.b.i483, %for.body452.i ] + %indvars.iv.next690.i = add nuw nsw i64 %indvars.iv689.i, 1 + %exitcond692.not.i = icmp eq i64 %indvars.iv.next690.i, 32 + br i1 %exitcond692.not.i, label %if.end467.i, label %for.body452.i, !llvm.loop !57 if.end467.i: ; preds = %for.inc458.i, %if.else443.i - %cmp469675.not.i = icmp eq i8 %431, 0 - br i1 %cmp469675.not.i, label %if.end636.i, label %for.body471.lr.ph.i + %cmp469676.not.i = icmp eq i8 %431, 0 + br i1 %cmp469676.not.i, label %if.end636.i, label %for.body471.lr.ph.i for.body471.lr.ph.i: ; preds = %if.end467.i %args_ct472.i = getelementptr [0 x %struct.TCGOpDef], ptr @tcg_op_defs, i64 0, i64 %idxprom.i418, i32 6 br label %for.body471.i for.body471.i: ; preds = %set_temp_val_reg.exit371.i, %for.body471.lr.ph.i - %indvars.iv692.i = phi i64 [ 0, %for.body471.lr.ph.i ], [ %indvars.iv.next693.i, %set_temp_val_reg.exit371.i ] - %o_allocated_regs.0677.i = phi i32 [ %434, %for.body471.lr.ph.i ], [ %or626.i, %set_temp_val_reg.exit371.i ] + %indvars.iv693.i = phi i64 [ 0, %for.body471.lr.ph.i ], [ %indvars.iv.next694.i, %set_temp_val_reg.exit371.i ] + %o_allocated_regs.0678.i = phi i32 [ %434, %for.body471.lr.ph.i ], [ %or626.i, %set_temp_val_reg.exit371.i ] %543 = load ptr, ptr %args_ct472.i, align 8 - %arrayidx474.i = getelementptr %struct.TCGArgConstraint, ptr %543, i64 %indvars.iv692.i + %arrayidx474.i = getelementptr %struct.TCGArgConstraint, ptr %543, i64 %indvars.iv693.i %bf.load475.i = load i64, ptr %arrayidx474.i, align 4 %544 = lshr i64 %bf.load475.i, 20 %bf.cast478.i = and i64 %544, 15 @@ -10917,7 +10919,7 @@ for.body471.i: ; preds = %set_temp_val_reg.ex %548 = trunc i64 %bf.load491.i to i32 %549 = lshr i32 %548, 28 %bf.cast494.i = and i32 %549, 3 - switch i32 %bf.cast494.i, label %for.body471.unreachabledefault.i [ + switch i32 %bf.cast494.i, label %default.unreachable [ i32 0, label %sw.bb495.i i32 1, label %do.body544.i i32 2, label %do.body574.i @@ -10951,12 +10953,12 @@ if.else517.i: ; preds = %land.lhs.true501.i, br i1 %bf.cast521.not.i, label %if.else532.i, label %if.then522.i if.then522.i: ; preds = %if.else517.i - %or524.i = or i32 %o_allocated_regs.0677.i, %i_allocated_regs.0.lcssa709.i - %cmp.i335.i = icmp ult i64 %indvars.iv692.i, 2 + %or524.i = or i32 %o_allocated_regs.0678.i, %i_allocated_regs.0.lcssa711.i + %cmp.i335.i = icmp ult i64 %indvars.iv693.i, 2 br i1 %cmp.i335.i, label %cond.true.i337.i, label %output_pref.exit340.i cond.true.i337.i: ; preds = %if.then522.i - %arrayidx.i339.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv692.i + %arrayidx.i339.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv693.i %556 = load i32, ptr %arrayidx.i339.i, align 4 br label %output_pref.exit340.i @@ -10968,11 +10970,11 @@ output_pref.exit340.i: ; preds = %cond.true.i337.i, % br label %sw.epilog624.i if.else532.i: ; preds = %if.else517.i - %cmp.i341.i = icmp ult i64 %indvars.iv692.i, 2 + %cmp.i341.i = icmp ult i64 %indvars.iv693.i, 2 br i1 %cmp.i341.i, label %cond.true.i343.i, label %output_pref.exit346.i cond.true.i343.i: ; preds = %if.else532.i - %arrayidx.i345.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv692.i + %arrayidx.i345.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv693.i %558 = load i32, ptr %arrayidx.i345.i, align 4 br label %output_pref.exit346.i @@ -10980,7 +10982,7 @@ output_pref.exit346.i: ; preds = %cond.true.i343.i, % %cond.i342.i = phi i32 [ %558, %cond.true.i343.i ], [ 0, %if.else532.i ] %559 = and i64 %call485.val.i, 68719476736 %tobool539.i = icmp ne i64 %559, 0 - %call540.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %555, i32 noundef %o_allocated_regs.0677.i, i32 noundef %cond.i342.i, i1 noundef zeroext %tobool539.i) + %call540.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %555, i32 noundef %o_allocated_regs.0678.i, i32 noundef %cond.i342.i, i1 noundef zeroext %tobool539.i) br label %sw.epilog624.i do.body544.i: ; preds = %for.body471.i @@ -11002,11 +11004,11 @@ if.then556.i: ; preds = %do.body544.i if.end564.i: ; preds = %do.body544.i %regs565.i = getelementptr %struct.TCGArgConstraint, ptr %543, i64 %bf.cast478.i, i32 1 %564 = load i32, ptr %regs565.i, align 4 - %cmp.i347.i = icmp ult i64 %indvars.iv692.i, 2 + %cmp.i347.i = icmp ult i64 %indvars.iv693.i, 2 br i1 %cmp.i347.i, label %cond.true.i349.i, label %output_pref.exit352.i cond.true.i349.i: ; preds = %if.end564.i - %arrayidx.i351.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv692.i + %arrayidx.i351.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv693.i %565 = load i32, ptr %arrayidx.i351.i, align 4 br label %output_pref.exit352.i @@ -11014,7 +11016,7 @@ output_pref.exit352.i: ; preds = %cond.true.i349.i, % %cond.i348.i = phi i32 [ %565, %cond.true.i349.i ], [ 0, %if.end564.i ] %566 = and i64 %call485.val.i, 68719476736 %tobool571.i = icmp ne i64 %566, 0 - %call572.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %564, i32 noundef %o_allocated_regs.0677.i, i32 noundef %cond.i348.i, i1 noundef zeroext %tobool571.i) + %call572.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %564, i32 noundef %o_allocated_regs.0678.i, i32 noundef %cond.i348.i, i1 noundef zeroext %tobool571.i) br label %sw.epilog624.i do.body574.i: ; preds = %for.body471.i @@ -11054,13 +11056,10 @@ do.body605.i: ; preds = %for.body471.i %conv620.i = add i32 %577, -1 br label %sw.epilog624.i -for.body471.unreachabledefault.i: ; preds = %for.body471.i - unreachable - sw.epilog624.i: ; preds = %do.body605.i, %if.else594.i, %if.then586.i, %output_pref.exit352.i, %if.then556.i, %output_pref.exit346.i, %output_pref.exit340.i, %if.then509.i %reg.3.i = phi i32 [ %conv620.i, %do.body605.i ], [ %conv593.i, %if.then586.i ], [ %conv602.i, %if.else594.i ], [ %conv563.i, %if.then556.i ], [ %call572.i, %output_pref.exit352.i ], [ %call531.i, %output_pref.exit340.i ], [ %call540.i, %output_pref.exit346.i ], [ %conv516.i, %if.then509.i ] %shl625.i = shl nuw i32 1, %reg.3.i - %or626.i = or i32 %shl625.i, %o_allocated_regs.0677.i + %or626.i = or i32 %shl625.i, %o_allocated_regs.0678.i %bf.load.i353.i = load i64, ptr %546, align 8 %578 = and i64 %bf.load.i353.i, 65280 %cmp.i354.i = icmp eq i64 %578, 256 @@ -11106,9 +11105,9 @@ set_temp_val_reg.exit371.i: ; preds = %do.body13.i355.i, % store i64 %bf.clear628.i, ptr %546, align 8 %arrayidx631.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast478.i store i64 %conv629.pre-phi.i, ptr %arrayidx631.i, align 8 - %indvars.iv.next693.i = add nuw nsw i64 %indvars.iv692.i, 1 - %exitcond696.not.i = icmp eq i64 %indvars.iv.next693.i, %conv.i419 - br i1 %exitcond696.not.i, label %if.end636.i, label %for.body471.i, !llvm.loop !58 + %indvars.iv.next694.i = add nuw nsw i64 %indvars.iv693.i, 1 + %exitcond697.not.i = icmp eq i64 %indvars.iv.next694.i, %conv.i419 + br i1 %exitcond697.not.i, label %if.end636.i, label %for.body471.i, !llvm.loop !58 if.end636.i: ; preds = %for.inc.i.i476, %for.inc.i324.i, %set_temp_val_reg.exit371.i, %if.end467.i, %if.then442.i, %if.then436.i %o_allocated_regs.1.i = phi i32 [ %434, %if.then436.i ], [ %434, %if.then442.i ], [ %434, %if.end467.i ], [ %or626.i, %set_temp_val_reg.exit371.i ], [ %434, %for.inc.i324.i ], [ %434, %for.inc.i.i476 ] @@ -13308,19 +13307,19 @@ do.body523.i.i: ; preds = %if.else709.i unreachable sw.epilog715.i: ; preds = %sw.bb521.i.i, %sw.bb515.i.i, %if.else509.i.i, %if.then505.i.i, %if.else484.i.i, %if.then480.i.i, %if.then457.i.i, %if.else443.i.i, %if.then437.i.i, %if.else423.i.i, %if.then418.i.i, %sw.bb405.i.i, %sw.bb403.i.i, %if.else399.i.i, %if.then396.i.i, %sw.bb390.i.i, %sw.bb387.i.i, %if.else381.i.i, %if.then377.i.i, %if.else355.i.i, %if.then351.i.i, %sw.bb331.i.i, %sw.bb326.i.i, %do.end319.i.i, %sw.bb313.i.i, %sw.bb309.i.i, %sw.bb305.i.i, %do.end.i.i, %sw.bb294.i.i, %sw.bb290.i.i, %sw.bb286.i.i, %sw.bb282.i.i, %sw.bb278.i.i, %if.then273.i.i, %tcg_out_bswap32.exit478.i.i, %if.else262.i.i, %tcg_out_bswap32.exit469.i.i, %tcg_out_bswap32.exit.i.i, %if.then247.i.i, %sw.bb234.i.i, %sw.bb230.i.i, %sw.bb226.i.i, %sw.bb220.i497.i, %sw.bb215.i.i, %sw.bb206.i.i, %sw.bb197.i.i, %if.else192.i.i, %if.else.i.i.i466, %if.then.i.i.i467, %if.then175.i.i, %if.else157.i.i, %if.then152.i.i, %sw.bb136.i.i, %sw.bb131.i.i, %if.else125.i.i, %if.else120.i.i, %if.then115.i.i, %if.else100.i.i, %if.then93.i.i, %if.else85.i.i, %if.then82.i.i, %if.end67.i.i, %if.then62.i.i, %if.else49.i.i, %if.then46.i.i, %if.else39.i.i, %if.then36.i.i, %if.else.i526.i, %if.then.i523.i, %sw.bb22.i.i, %sw.bb18.i.i, %sw.bb14.i.i, %sw.bb10.i527.i, %sw.bb6.i.i472, %sw.bb4.i528.i, %tcg_out_opc.exit.i.i, %sw.bb231.i.i, %sw.bb220.i.i, %do.body205.i.i, %sw.bb156.i.i, %sw.bb153.i.i, %sw.bb150.i.i, %do.body136.i.i, %sw.bb107.i.i, %do.body.i481.i, %tcg_out_extrl_i64_i32.exit.i, %tcg_out_ext32u.exit.i.i, %sw.bb684.i, %sw.bb679.i, %tcg_out_ext32u.exit.i, %sw.bb669.i, %tcg_out_ext16u.exit.i, %sw.bb659.i, %tcg_out_opc.exit604.i, %tcg_out_ext8u.exit.i, %sw.bb644.i, %tcg_out_opc.exit.i - %cmp717679.not.i = icmp eq i8 %431, 0 - br i1 %cmp717679.not.i, label %tcg_reg_alloc_op.exit, label %for.body719.i + %cmp717680.not.i = icmp eq i8 %431, 0 + br i1 %cmp717680.not.i, label %tcg_reg_alloc_op.exit, label %for.body719.i for.body719.i: ; preds = %sw.epilog715.i, %for.inc742.i - %indvars.iv697.i = phi i64 [ %indvars.iv.next698.i, %for.inc742.i ], [ 0, %sw.epilog715.i ] - %arrayidx722.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv697.i + %indvars.iv698.i = phi i64 [ %indvars.iv.next699.i, %for.inc742.i ], [ 0, %sw.epilog715.i ] + %arrayidx722.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv698.i %843 = load i64, ptr %arrayidx722.i, align 8 %844 = inttoptr i64 %843 to ptr %call723.val.i = load i64, ptr %844, align 8 %845 = and i64 %call723.val.i, 30064771072 %cmp.i538.i = icmp ult i64 %845, 8589934593 tail call void @llvm.assume(i1 %cmp.i538.i) - %846 = trunc i64 %indvars.iv697.i to i32 + %846 = trunc i64 %indvars.iv698.i to i32 %shl729.i = shl nuw i32 1, %846 %and730.i = and i32 %shl729.i, %430 %tobool731.not.i = icmp eq i32 %and730.i, 0 @@ -13382,9 +13381,9 @@ set_temp_val_nonreg.exit.i.i546.i: ; preds = %if.then2.i.i.i550.i br label %for.inc742.i for.inc742.i: ; preds = %set_temp_val_nonreg.exit.i.i546.i, %if.then739.i, %if.else735.i, %if.then732.i - %indvars.iv.next698.i = add nuw nsw i64 %indvars.iv697.i, 1 - %exitcond701.not.i = icmp eq i64 %indvars.iv.next698.i, %conv.i419 - br i1 %exitcond701.not.i, label %tcg_reg_alloc_op.exit, label %for.body719.i, !llvm.loop !59 + %indvars.iv.next699.i = add nuw nsw i64 %indvars.iv698.i, 1 + %exitcond702.not.i = icmp eq i64 %indvars.iv.next699.i, %conv.i419 + br i1 %exitcond702.not.i, label %tcg_reg_alloc_op.exit, label %for.body719.i, !llvm.loop !59 tcg_reg_alloc_op.exit: ; preds = %for.inc742.i, %sw.epilog715.i call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %new_args.i) @@ -15057,11 +15056,11 @@ sw.bb358: ; preds = %sw.epilog %switch.gep = getelementptr inbounds [4 x ptr], ptr @switch.table.tcg_dump_ops, i64 0, i64 %88 %switch.load = load ptr, ptr %switch.gep, align 8 %and370 = and i64 %87, 15 - %switch.gep423 = getelementptr inbounds [16 x ptr], ptr @switch.table.tcg_dump_ops.26, i64 0, i64 %and370 - %switch.load424 = load ptr, ptr %switch.gep423, align 8 + %switch.gep424 = getelementptr inbounds [16 x ptr], ptr @switch.table.tcg_dump_ops.26, i64 0, i64 %and370 + %switch.load425 = load ptr, ptr %switch.gep424, align 8 %tobool392.not = icmp eq i32 %k.3, 0 %cond393 = select i1 %tobool392.not, ptr @.str.50, ptr @.str.49 - %call394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %f, ptr noundef nonnull @.str.75, ptr noundef nonnull %cond393, ptr noundef nonnull %switch.load, ptr noundef nonnull %switch.load424) + %call394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %f, ptr noundef nonnull @.str.75, ptr noundef nonnull %cond393, ptr noundef nonnull %switch.load, ptr noundef nonnull %switch.load425) %cond401 = call i32 @llvm.smax.i32(i32 %call394, i32 0) %add402 = add i32 %cond401, %col.10 %inc403 = add nuw nsw i32 %i.5, 1 @@ -16700,7 +16699,7 @@ entry: %bf.load = load i64, ptr %typemask1, align 8 %bf.cast = trunc i64 %bf.load to i32 %and = and i32 %bf.cast, 7 - switch i32 %and, label %entry.unreachabledefault [ + switch i32 %and, label %default.unreachable [ i32 0, label %sw.bb i32 2, label %sw.bb4 i32 3, label %sw.bb4 @@ -16730,7 +16729,7 @@ sw.bb29: ; preds = %entry %bf.set33 = or disjoint i64 %bf.clear32, 562949953421312 br label %sw.epilog -entry.unreachabledefault: ; preds = %entry +default.unreachable: ; preds = %entry unreachable do.body: ; preds = %entry @@ -16915,7 +16914,7 @@ if.end.i: ; preds = %lor.lhs.false.i %10 = trunc i64 %bf.load.i to i32 %11 = lshr i32 %10, 28 %bf.cast6.i = and i32 %11, 3 - switch i32 %bf.cast6.i, label %if.end.unreachabledefault.i [ + switch i32 %bf.cast6.i, label %default.unreachable [ i32 1, label %sw.bb.i i32 3, label %sw.bb.i i32 2, label %sw.bb7.i @@ -16933,7 +16932,7 @@ sw.bb7.i: ; preds = %if.end.i %sub.i = or disjoint i32 %add12.i, 1 br label %get_constraint_priority.exit -if.end.unreachabledefault.i: ; preds = %if.end.i +default.unreachable: ; preds = %if.end.i41, %if.end.i unreachable sw.epilog.i: ; preds = %if.end.i @@ -16973,7 +16972,7 @@ if.end.i41: ; preds = %lor.lhs.false.i36 %18 = trunc i64 %bf.load.i38 to i32 %19 = lshr i32 %18, 28 %bf.cast6.i42 = and i32 %19, 3 - switch i32 %bf.cast6.i42, label %if.end.unreachabledefault.i54 [ + switch i32 %bf.cast6.i42, label %default.unreachable [ i32 1, label %sw.bb.i51 i32 3, label %sw.bb.i51 i32 2, label %sw.bb7.i48 @@ -16991,9 +16990,6 @@ sw.bb7.i48: ; preds = %if.end.i41 %sub.i50 = or disjoint i32 %add12.i49, 1 br label %get_constraint_priority.exit55 -if.end.unreachabledefault.i54: ; preds = %if.end.i41 - unreachable - sw.epilog.i43: ; preds = %if.end.i41 %cmp14.not.i44 = icmp eq i32 %15, 0 br i1 %cmp14.not.i44, label %if.else.i47, label %if.end17.i45 @@ -17047,14 +17043,10 @@ declare ptr @g_byte_array_free(ptr noundef, i32 noundef) local_unnamed_addr #10 ; Function Attrs: nounwind sspstrong uwtable define internal fastcc void @tcg_out_movi(ptr nocapture noundef %s, i32 noundef %type, i32 noundef %ret, i64 noundef %arg) unnamed_addr #0 { entry: - %switch = icmp ult i32 %type, 2 - br i1 %switch, label %sw.bb, label %do.body - -sw.bb: ; preds = %entry %cmp = icmp ult i32 %ret, 16 br i1 %cmp, label %if.then, label %if.else -if.then: ; preds = %sw.bb +if.then: ; preds = %entry %cmp.i = icmp eq i64 %arg, 0 br i1 %cmp.i, label %if.then.i, label %if.end.i @@ -17214,7 +17206,7 @@ if.end24.i: ; preds = %if.end15.i store ptr %add.ptr.i56.i, ptr %17, align 8 br label %sw.epilog -if.else: ; preds = %sw.bb +if.else: ; preds = %entry switch i64 %arg, label %if.end3.i [ i64 0, label %if.then.i7 i64 -1, label %if.then2.i @@ -17332,10 +17324,6 @@ if.end3.i: ; preds = %if.else tail call fastcc void @new_pool_label(ptr noundef %s, i64 noundef %arg, ptr noundef nonnull %52) br label %sw.epilog -do.body: ; preds = %entry - tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str, i32 noundef 1055, ptr noundef nonnull @__func__.tcg_out_movi, ptr noundef null) #27 - unreachable - sw.epilog: ; preds = %if.end3.i, %tcg_out_vex_opc.exit48.i, %tcg_out_vex_opc.exit.i, %if.end24.i, %if.then20.i, %if.then13.i, %tcg_out_opc.exit.i, %tcg_out_opc.exit73.i ret void } diff --git a/bench/qemu/optimized/ui_vnc.c.ll b/bench/qemu/optimized/ui_vnc.c.ll index 5de11dde9d5..7c30c206f3b 100644 --- a/bench/qemu/optimized/ui_vnc.c.ll +++ b/bench/qemu/optimized/ui_vnc.c.ll @@ -2515,28 +2515,29 @@ vnc_server_info_get.exit.thread: ; preds = %lor.lhs.false.i, %i if.end3: ; preds = %vnc_auth_name.exit.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %err.i) - switch i32 %event, label %sw.epilog [ + %13 = load ptr, ptr %info, align 8 + switch i32 %event, label %default.unreachable [ i32 37, label %sw.bb i32 38, label %sw.bb6 i32 39, label %sw.bb8 ] sw.bb: ; preds = %if.end3 - %13 = load ptr, ptr %info, align 8 call void @qapi_event_send_vnc_connected(ptr noundef nonnull %call.i, ptr noundef %13) #23 br label %sw.epilog sw.bb6: ; preds = %if.end3 - %14 = load ptr, ptr %info, align 8 - call void @qapi_event_send_vnc_initialized(ptr noundef nonnull %call.i, ptr noundef %14) #23 + call void @qapi_event_send_vnc_initialized(ptr noundef nonnull %call.i, ptr noundef %13) #23 br label %sw.epilog sw.bb8: ; preds = %if.end3 - %15 = load ptr, ptr %info, align 8 - call void @qapi_event_send_vnc_disconnected(ptr noundef nonnull %call.i, ptr noundef %15) #23 + call void @qapi_event_send_vnc_disconnected(ptr noundef nonnull %call.i, ptr noundef %13) #23 br label %sw.epilog -sw.epilog: ; preds = %if.end3, %sw.bb8, %sw.bb6, %sw.bb +default.unreachable: ; preds = %if.end3 + unreachable + +sw.epilog: ; preds = %sw.bb8, %sw.bb6, %sw.bb call void @qapi_free_VncServerInfo(ptr noundef nonnull %call.i) #23 br label %return diff --git a/bench/redis/optimized/lvm.ll b/bench/redis/optimized/lvm.ll index 63989c2dd55..6d8d3300314 100644 --- a/bench/redis/optimized/lvm.ll +++ b/bench/redis/optimized/lvm.ll @@ -33,7 +33,7 @@ target triple = "x86_64-unknown-linux-gnu" @.str.9 = private unnamed_addr constant [28 x i8] c"'for' step must be a number\00", align 1 ; Function Attrs: nounwind uwtable -define hidden ptr @luaV_tonumber(ptr noundef readonly %obj, ptr noundef writeonly %n) local_unnamed_addr #0 { +define hidden noundef ptr @luaV_tonumber(ptr noundef readonly %obj, ptr noundef writeonly %n) local_unnamed_addr #0 { entry: %num = alloca double, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %num) #9 @@ -76,7 +76,7 @@ declare hidden i32 @luaO_str2d(ptr noundef, ptr noundef) local_unnamed_addr #2 declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1 ; Function Attrs: nounwind uwtable -define hidden i32 @luaV_tostring(ptr noundef %L, ptr nocapture noundef %obj) local_unnamed_addr #0 { +define hidden noundef i32 @luaV_tostring(ptr noundef %L, ptr nocapture noundef %obj) local_unnamed_addr #0 { entry: %s = alloca [32 x i8], align 16 %tt = getelementptr inbounds %struct.lua_TValue, ptr %obj, i64 0, i32 1 @@ -1112,7 +1112,7 @@ do.end: ; preds = %if.end83 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @call_binTM(ptr noundef %L, ptr noundef %p1, ptr noundef %p2, ptr noundef %res, i32 noundef %event) unnamed_addr #0 { +define internal fastcc noundef i32 @call_binTM(ptr noundef %L, ptr noundef %p1, ptr noundef %p2, ptr noundef %res, i32 noundef %event) unnamed_addr #0 { entry: %call = tail call ptr @luaT_gettmbyobj(ptr noundef %L, ptr noundef %p1, i32 noundef %event) #9 %tt = getelementptr inbounds %struct.lua_TValue, ptr %call, i64 0, i32 1 @@ -3003,7 +3003,7 @@ if.then: ; preds = %land.lhs.true.i70, %5 = load double, ptr %.in, align 8, !tbaa !9 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %num.i68) #9 %6 = load double, ptr %retval.0.i.ph, align 8, !tbaa !9 - switch i32 %op, label %if.end34 [ + switch i32 %op, label %default.unreachable [ i32 5, label %sw.bb i32 6, label %sw.bb5 i32 7, label %sw.bb9 @@ -3074,7 +3074,10 @@ if.then33: ; preds = %if.else call void @luaG_aritherror(ptr noundef %L, ptr noundef nonnull %rb, ptr noundef %rc) #9 br label %if.end34 -if.end34: ; preds = %if.then33, %if.else, %sw.bb28, %sw.bb23, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb, %if.then +default.unreachable: ; preds = %if.then + unreachable + +if.end34: ; preds = %if.then33, %if.else, %sw.bb28, %sw.bb23, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tempb.sroa.0) ret void } diff --git a/bench/redis/optimized/lzf_d.ll b/bench/redis/optimized/lzf_d.ll index 0ab2ed7fa61..e3caafe2884 100644 --- a/bench/redis/optimized/lzf_d.ll +++ b/bench/redis/optimized/lzf_d.ll @@ -8,14 +8,14 @@ define dso_local i64 @lzf_decompress(ptr noundef readonly %in_data, i64 noundef entry: %add.ptr = getelementptr inbounds i8, ptr %in_data, i64 %in_len %add.ptr1 = getelementptr inbounds i8, ptr %out_data, i64 %out_len - %cmp132 = icmp sgt i64 %in_len, 0 - br i1 %cmp132, label %while.body, label %while.end + %cmp133 = icmp sgt i64 %in_len, 0 + br i1 %cmp133, label %while.body, label %while.end while.body: ; preds = %entry, %if.end193 - %ip.0134 = phi ptr [ %ip.33, %if.end193 ], [ %in_data, %entry ] - %op.0133 = phi ptr [ %op.42, %if.end193 ], [ %out_data, %entry ] - %incdec.ptr = getelementptr inbounds i8, ptr %ip.0134, i64 1 - %0 = load i8, ptr %ip.0134, align 1 + %ip.0135 = phi ptr [ %ip.33, %if.end193 ], [ %in_data, %entry ] + %op.0134 = phi ptr [ %op.42, %if.end193 ], [ %out_data, %entry ] + %incdec.ptr = getelementptr inbounds i8, ptr %ip.0135, i64 1 + %0 = load i8, ptr %ip.0135, align 1 %conv = zext i8 %0 to i32 %cmp2 = icmp ult i8 %0, 32 br i1 %cmp2, label %if.then, label %if.else @@ -23,7 +23,7 @@ while.body: ; preds = %entry, %if.end193 if.then: ; preds = %while.body %inc = add nuw nsw i32 %conv, 1 %idx.ext = zext nneg i32 %inc to i64 - %add.ptr4 = getelementptr inbounds i8, ptr %op.0133, i64 %idx.ext + %add.ptr4 = getelementptr inbounds i8, ptr %op.0134, i64 %idx.ext %cmp5 = icmp ugt ptr %add.ptr4, %add.ptr1 br i1 %cmp5, label %if.then7, label %if.end @@ -43,7 +43,7 @@ if.then12: ; preds = %if.end br label %return if.end14: ; preds = %if.end - switch i8 %0, label %if.end193 [ + switch i8 %0, label %default.unreachable [ i8 31, label %sw.bb i8 30, label %sw.bb17 i8 29, label %sw.bb20 @@ -79,14 +79,14 @@ if.end14: ; preds = %if.end ] sw.bb: ; preds = %if.end14 - %incdec.ptr15 = getelementptr inbounds i8, ptr %ip.0134, i64 2 + %incdec.ptr15 = getelementptr inbounds i8, ptr %ip.0135, i64 2 %1 = load i8, ptr %incdec.ptr, align 1 - %incdec.ptr16 = getelementptr inbounds i8, ptr %op.0133, i64 1 - store i8 %1, ptr %op.0133, align 1 + %incdec.ptr16 = getelementptr inbounds i8, ptr %op.0134, i64 1 + store i8 %1, ptr %op.0134, align 1 br label %sw.bb17 sw.bb17: ; preds = %sw.bb, %if.end14 - %op.1 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr16, %sw.bb ] + %op.1 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr16, %sw.bb ] %ip.1 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr15, %sw.bb ] %incdec.ptr18 = getelementptr inbounds i8, ptr %ip.1, i64 1 %2 = load i8, ptr %ip.1, align 1 @@ -95,7 +95,7 @@ sw.bb17: ; preds = %sw.bb, %if.end14 br label %sw.bb20 sw.bb20: ; preds = %sw.bb17, %if.end14 - %op.2 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr19, %sw.bb17 ] + %op.2 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr19, %sw.bb17 ] %ip.2 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr18, %sw.bb17 ] %incdec.ptr21 = getelementptr inbounds i8, ptr %ip.2, i64 1 %3 = load i8, ptr %ip.2, align 1 @@ -104,7 +104,7 @@ sw.bb20: ; preds = %sw.bb17, %if.end14 br label %sw.bb23 sw.bb23: ; preds = %sw.bb20, %if.end14 - %op.3 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr22, %sw.bb20 ] + %op.3 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr22, %sw.bb20 ] %ip.3 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr21, %sw.bb20 ] %incdec.ptr24 = getelementptr inbounds i8, ptr %ip.3, i64 1 %4 = load i8, ptr %ip.3, align 1 @@ -113,7 +113,7 @@ sw.bb23: ; preds = %sw.bb20, %if.end14 br label %sw.bb26 sw.bb26: ; preds = %sw.bb23, %if.end14 - %op.4 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr25, %sw.bb23 ] + %op.4 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr25, %sw.bb23 ] %ip.4 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr24, %sw.bb23 ] %incdec.ptr27 = getelementptr inbounds i8, ptr %ip.4, i64 1 %5 = load i8, ptr %ip.4, align 1 @@ -122,7 +122,7 @@ sw.bb26: ; preds = %sw.bb23, %if.end14 br label %sw.bb29 sw.bb29: ; preds = %sw.bb26, %if.end14 - %op.5 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr28, %sw.bb26 ] + %op.5 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr28, %sw.bb26 ] %ip.5 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr27, %sw.bb26 ] %incdec.ptr30 = getelementptr inbounds i8, ptr %ip.5, i64 1 %6 = load i8, ptr %ip.5, align 1 @@ -131,7 +131,7 @@ sw.bb29: ; preds = %sw.bb26, %if.end14 br label %sw.bb32 sw.bb32: ; preds = %sw.bb29, %if.end14 - %op.6 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr31, %sw.bb29 ] + %op.6 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr31, %sw.bb29 ] %ip.6 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr30, %sw.bb29 ] %incdec.ptr33 = getelementptr inbounds i8, ptr %ip.6, i64 1 %7 = load i8, ptr %ip.6, align 1 @@ -140,7 +140,7 @@ sw.bb32: ; preds = %sw.bb29, %if.end14 br label %sw.bb35 sw.bb35: ; preds = %sw.bb32, %if.end14 - %op.7 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr34, %sw.bb32 ] + %op.7 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr34, %sw.bb32 ] %ip.7 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr33, %sw.bb32 ] %incdec.ptr36 = getelementptr inbounds i8, ptr %ip.7, i64 1 %8 = load i8, ptr %ip.7, align 1 @@ -149,7 +149,7 @@ sw.bb35: ; preds = %sw.bb32, %if.end14 br label %sw.bb38 sw.bb38: ; preds = %sw.bb35, %if.end14 - %op.8 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr37, %sw.bb35 ] + %op.8 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr37, %sw.bb35 ] %ip.8 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr36, %sw.bb35 ] %incdec.ptr39 = getelementptr inbounds i8, ptr %ip.8, i64 1 %9 = load i8, ptr %ip.8, align 1 @@ -158,7 +158,7 @@ sw.bb38: ; preds = %sw.bb35, %if.end14 br label %sw.bb41 sw.bb41: ; preds = %sw.bb38, %if.end14 - %op.9 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr40, %sw.bb38 ] + %op.9 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr40, %sw.bb38 ] %ip.9 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr39, %sw.bb38 ] %incdec.ptr42 = getelementptr inbounds i8, ptr %ip.9, i64 1 %10 = load i8, ptr %ip.9, align 1 @@ -167,7 +167,7 @@ sw.bb41: ; preds = %sw.bb38, %if.end14 br label %sw.bb44 sw.bb44: ; preds = %sw.bb41, %if.end14 - %op.10 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr43, %sw.bb41 ] + %op.10 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr43, %sw.bb41 ] %ip.10 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr42, %sw.bb41 ] %incdec.ptr45 = getelementptr inbounds i8, ptr %ip.10, i64 1 %11 = load i8, ptr %ip.10, align 1 @@ -176,7 +176,7 @@ sw.bb44: ; preds = %sw.bb41, %if.end14 br label %sw.bb47 sw.bb47: ; preds = %sw.bb44, %if.end14 - %op.11 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr46, %sw.bb44 ] + %op.11 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr46, %sw.bb44 ] %ip.11 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr45, %sw.bb44 ] %incdec.ptr48 = getelementptr inbounds i8, ptr %ip.11, i64 1 %12 = load i8, ptr %ip.11, align 1 @@ -185,7 +185,7 @@ sw.bb47: ; preds = %sw.bb44, %if.end14 br label %sw.bb50 sw.bb50: ; preds = %sw.bb47, %if.end14 - %op.12 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr49, %sw.bb47 ] + %op.12 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr49, %sw.bb47 ] %ip.12 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr48, %sw.bb47 ] %incdec.ptr51 = getelementptr inbounds i8, ptr %ip.12, i64 1 %13 = load i8, ptr %ip.12, align 1 @@ -194,7 +194,7 @@ sw.bb50: ; preds = %sw.bb47, %if.end14 br label %sw.bb53 sw.bb53: ; preds = %sw.bb50, %if.end14 - %op.13 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr52, %sw.bb50 ] + %op.13 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr52, %sw.bb50 ] %ip.13 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr51, %sw.bb50 ] %incdec.ptr54 = getelementptr inbounds i8, ptr %ip.13, i64 1 %14 = load i8, ptr %ip.13, align 1 @@ -203,7 +203,7 @@ sw.bb53: ; preds = %sw.bb50, %if.end14 br label %sw.bb56 sw.bb56: ; preds = %sw.bb53, %if.end14 - %op.14 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr55, %sw.bb53 ] + %op.14 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr55, %sw.bb53 ] %ip.14 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr54, %sw.bb53 ] %incdec.ptr57 = getelementptr inbounds i8, ptr %ip.14, i64 1 %15 = load i8, ptr %ip.14, align 1 @@ -212,7 +212,7 @@ sw.bb56: ; preds = %sw.bb53, %if.end14 br label %sw.bb59 sw.bb59: ; preds = %sw.bb56, %if.end14 - %op.15 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr58, %sw.bb56 ] + %op.15 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr58, %sw.bb56 ] %ip.15 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr57, %sw.bb56 ] %incdec.ptr60 = getelementptr inbounds i8, ptr %ip.15, i64 1 %16 = load i8, ptr %ip.15, align 1 @@ -221,7 +221,7 @@ sw.bb59: ; preds = %sw.bb56, %if.end14 br label %sw.bb62 sw.bb62: ; preds = %sw.bb59, %if.end14 - %op.16 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr61, %sw.bb59 ] + %op.16 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr61, %sw.bb59 ] %ip.16 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr60, %sw.bb59 ] %incdec.ptr63 = getelementptr inbounds i8, ptr %ip.16, i64 1 %17 = load i8, ptr %ip.16, align 1 @@ -230,7 +230,7 @@ sw.bb62: ; preds = %sw.bb59, %if.end14 br label %sw.bb65 sw.bb65: ; preds = %sw.bb62, %if.end14 - %op.17 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr64, %sw.bb62 ] + %op.17 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr64, %sw.bb62 ] %ip.17 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr63, %sw.bb62 ] %incdec.ptr66 = getelementptr inbounds i8, ptr %ip.17, i64 1 %18 = load i8, ptr %ip.17, align 1 @@ -239,7 +239,7 @@ sw.bb65: ; preds = %sw.bb62, %if.end14 br label %sw.bb68 sw.bb68: ; preds = %sw.bb65, %if.end14 - %op.18 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr67, %sw.bb65 ] + %op.18 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr67, %sw.bb65 ] %ip.18 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr66, %sw.bb65 ] %incdec.ptr69 = getelementptr inbounds i8, ptr %ip.18, i64 1 %19 = load i8, ptr %ip.18, align 1 @@ -248,7 +248,7 @@ sw.bb68: ; preds = %sw.bb65, %if.end14 br label %sw.bb71 sw.bb71: ; preds = %sw.bb68, %if.end14 - %op.19 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr70, %sw.bb68 ] + %op.19 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr70, %sw.bb68 ] %ip.19 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr69, %sw.bb68 ] %incdec.ptr72 = getelementptr inbounds i8, ptr %ip.19, i64 1 %20 = load i8, ptr %ip.19, align 1 @@ -257,7 +257,7 @@ sw.bb71: ; preds = %sw.bb68, %if.end14 br label %sw.bb74 sw.bb74: ; preds = %sw.bb71, %if.end14 - %op.20 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr73, %sw.bb71 ] + %op.20 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr73, %sw.bb71 ] %ip.20 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr72, %sw.bb71 ] %incdec.ptr75 = getelementptr inbounds i8, ptr %ip.20, i64 1 %21 = load i8, ptr %ip.20, align 1 @@ -266,7 +266,7 @@ sw.bb74: ; preds = %sw.bb71, %if.end14 br label %sw.bb77 sw.bb77: ; preds = %sw.bb74, %if.end14 - %op.21 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr76, %sw.bb74 ] + %op.21 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr76, %sw.bb74 ] %ip.21 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr75, %sw.bb74 ] %incdec.ptr78 = getelementptr inbounds i8, ptr %ip.21, i64 1 %22 = load i8, ptr %ip.21, align 1 @@ -275,7 +275,7 @@ sw.bb77: ; preds = %sw.bb74, %if.end14 br label %sw.bb80 sw.bb80: ; preds = %sw.bb77, %if.end14 - %op.22 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr79, %sw.bb77 ] + %op.22 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr79, %sw.bb77 ] %ip.22 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr78, %sw.bb77 ] %incdec.ptr81 = getelementptr inbounds i8, ptr %ip.22, i64 1 %23 = load i8, ptr %ip.22, align 1 @@ -284,7 +284,7 @@ sw.bb80: ; preds = %sw.bb77, %if.end14 br label %sw.bb83 sw.bb83: ; preds = %sw.bb80, %if.end14 - %op.23 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr82, %sw.bb80 ] + %op.23 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr82, %sw.bb80 ] %ip.23 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr81, %sw.bb80 ] %incdec.ptr84 = getelementptr inbounds i8, ptr %ip.23, i64 1 %24 = load i8, ptr %ip.23, align 1 @@ -293,7 +293,7 @@ sw.bb83: ; preds = %sw.bb80, %if.end14 br label %sw.bb86 sw.bb86: ; preds = %sw.bb83, %if.end14 - %op.24 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr85, %sw.bb83 ] + %op.24 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr85, %sw.bb83 ] %ip.24 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr84, %sw.bb83 ] %incdec.ptr87 = getelementptr inbounds i8, ptr %ip.24, i64 1 %25 = load i8, ptr %ip.24, align 1 @@ -302,7 +302,7 @@ sw.bb86: ; preds = %sw.bb83, %if.end14 br label %sw.bb89 sw.bb89: ; preds = %sw.bb86, %if.end14 - %op.25 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr88, %sw.bb86 ] + %op.25 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr88, %sw.bb86 ] %ip.25 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr87, %sw.bb86 ] %incdec.ptr90 = getelementptr inbounds i8, ptr %ip.25, i64 1 %26 = load i8, ptr %ip.25, align 1 @@ -311,7 +311,7 @@ sw.bb89: ; preds = %sw.bb86, %if.end14 br label %sw.bb92 sw.bb92: ; preds = %sw.bb89, %if.end14 - %op.26 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr91, %sw.bb89 ] + %op.26 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr91, %sw.bb89 ] %ip.26 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr90, %sw.bb89 ] %incdec.ptr93 = getelementptr inbounds i8, ptr %ip.26, i64 1 %27 = load i8, ptr %ip.26, align 1 @@ -320,7 +320,7 @@ sw.bb92: ; preds = %sw.bb89, %if.end14 br label %sw.bb95 sw.bb95: ; preds = %sw.bb92, %if.end14 - %op.27 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr94, %sw.bb92 ] + %op.27 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr94, %sw.bb92 ] %ip.27 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr93, %sw.bb92 ] %incdec.ptr96 = getelementptr inbounds i8, ptr %ip.27, i64 1 %28 = load i8, ptr %ip.27, align 1 @@ -329,7 +329,7 @@ sw.bb95: ; preds = %sw.bb92, %if.end14 br label %sw.bb98 sw.bb98: ; preds = %sw.bb95, %if.end14 - %op.28 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr97, %sw.bb95 ] + %op.28 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr97, %sw.bb95 ] %ip.28 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr96, %sw.bb95 ] %incdec.ptr99 = getelementptr inbounds i8, ptr %ip.28, i64 1 %29 = load i8, ptr %ip.28, align 1 @@ -338,7 +338,7 @@ sw.bb98: ; preds = %sw.bb95, %if.end14 br label %sw.bb101 sw.bb101: ; preds = %sw.bb98, %if.end14 - %op.29 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr100, %sw.bb98 ] + %op.29 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr100, %sw.bb98 ] %ip.29 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr99, %sw.bb98 ] %incdec.ptr102 = getelementptr inbounds i8, ptr %ip.29, i64 1 %30 = load i8, ptr %ip.29, align 1 @@ -347,7 +347,7 @@ sw.bb101: ; preds = %sw.bb98, %if.end14 br label %sw.bb104 sw.bb104: ; preds = %sw.bb101, %if.end14 - %op.30 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr103, %sw.bb101 ] + %op.30 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr103, %sw.bb101 ] %ip.30 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr102, %sw.bb101 ] %incdec.ptr105 = getelementptr inbounds i8, ptr %ip.30, i64 1 %31 = load i8, ptr %ip.30, align 1 @@ -356,7 +356,7 @@ sw.bb104: ; preds = %sw.bb101, %if.end14 br label %sw.bb107 sw.bb107: ; preds = %sw.bb104, %if.end14 - %op.31 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr106, %sw.bb104 ] + %op.31 = phi ptr [ %op.0134, %if.end14 ], [ %incdec.ptr106, %sw.bb104 ] %ip.31 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr105, %sw.bb104 ] %incdec.ptr108 = getelementptr inbounds i8, ptr %ip.31, i64 1 %32 = load i8, ptr %ip.31, align 1 @@ -369,7 +369,7 @@ if.else: ; preds = %while.body %shl = and i32 %and, 7936 %idx.ext110 = zext nneg i32 %shl to i64 %idx.neg = sub nsw i64 0, %idx.ext110 - %add.ptr111 = getelementptr i8, ptr %op.0133, i64 %idx.neg + %add.ptr111 = getelementptr i8, ptr %op.0134, i64 %idx.neg %add.ptr112 = getelementptr i8, ptr %add.ptr111, i64 -1 %cmp113.not = icmp ult ptr %incdec.ptr, %add.ptr br i1 %cmp113.not, label %if.end117, label %if.then115 @@ -385,7 +385,7 @@ if.end117: ; preds = %if.else br i1 %cmp118, label %if.then120, label %if.end128 if.then120: ; preds = %if.end117 - %incdec.ptr121 = getelementptr inbounds i8, ptr %ip.0134, i64 2 + %incdec.ptr121 = getelementptr inbounds i8, ptr %ip.0135, i64 2 %33 = load i8, ptr %incdec.ptr, align 1 %conv122 = zext i8 %33 to i32 %add = add nuw nsw i32 %conv122, 7 @@ -406,7 +406,7 @@ if.end128: ; preds = %if.then120, %if.end %idx.neg132 = sub nsw i64 0, %idx.ext131 %add.ptr133 = getelementptr i8, ptr %add.ptr112, i64 %idx.neg132 %idx.ext134 = zext nneg i32 %len.0 to i64 - %add.ptr135 = getelementptr inbounds i8, ptr %op.0133, i64 %idx.ext134 + %add.ptr135 = getelementptr inbounds i8, ptr %op.0134, i64 %idx.ext134 %add.ptr136 = getelementptr inbounds i8, ptr %add.ptr135, i64 2 %cmp137 = icmp ugt ptr %add.ptr136, %add.ptr1 br i1 %cmp137, label %if.then139, label %if.end141 @@ -442,16 +442,16 @@ sw.default: ; preds = %if.end146 %add147 = add nuw nsw i32 %len.0, 2 %idx.ext148 = zext nneg i32 %add147 to i64 %add.ptr149 = getelementptr inbounds i8, ptr %add.ptr133, i64 %idx.ext148 - %cmp150.not = icmp ult ptr %op.0133, %add.ptr149 + %cmp150.not = icmp ult ptr %op.0134, %add.ptr149 br i1 %cmp150.not, label %do.body, label %if.then152 if.then152: ; preds = %sw.default - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %op.0133, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr133, i64 %idx.ext148, i1 false) - %add.ptr155 = getelementptr inbounds i8, ptr %op.0133, i64 %idx.ext148 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %op.0134, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr133, i64 %idx.ext148, i1 false) + %add.ptr155 = getelementptr inbounds i8, ptr %op.0134, i64 %idx.ext148 br label %if.end193 do.body: ; preds = %sw.default, %do.body - %op.32 = phi ptr [ %incdec.ptr158, %do.body ], [ %op.0133, %sw.default ] + %op.32 = phi ptr [ %incdec.ptr158, %do.body ], [ %op.0134, %sw.default ] %len.1 = phi i32 [ %dec, %do.body ], [ %add147, %sw.default ] %ref.0 = phi ptr [ %incdec.ptr157, %do.body ], [ %add.ptr133, %sw.default ] %incdec.ptr157 = getelementptr inbounds i8, ptr %ref.0, i64 1 @@ -465,12 +465,12 @@ do.body: ; preds = %sw.default, %do.bod sw.bb160: ; preds = %if.end146 %incdec.ptr161 = getelementptr inbounds i8, ptr %add.ptr133, i64 1 %36 = load i8, ptr %add.ptr133, align 1 - %incdec.ptr162 = getelementptr inbounds i8, ptr %op.0133, i64 1 - store i8 %36, ptr %op.0133, align 1 + %incdec.ptr162 = getelementptr inbounds i8, ptr %op.0134, i64 1 + store i8 %36, ptr %op.0134, align 1 br label %sw.bb163 sw.bb163: ; preds = %sw.bb160, %if.end146 - %op.33 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr162, %sw.bb160 ] + %op.33 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr162, %sw.bb160 ] %ref.1 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr161, %sw.bb160 ] %incdec.ptr164 = getelementptr inbounds i8, ptr %ref.1, i64 1 %37 = load i8, ptr %ref.1, align 1 @@ -479,7 +479,7 @@ sw.bb163: ; preds = %sw.bb160, %if.end14 br label %sw.bb166 sw.bb166: ; preds = %sw.bb163, %if.end146 - %op.34 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr165, %sw.bb163 ] + %op.34 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr165, %sw.bb163 ] %ref.2 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr164, %sw.bb163 ] %incdec.ptr167 = getelementptr inbounds i8, ptr %ref.2, i64 1 %38 = load i8, ptr %ref.2, align 1 @@ -488,7 +488,7 @@ sw.bb166: ; preds = %sw.bb163, %if.end14 br label %sw.bb169 sw.bb169: ; preds = %sw.bb166, %if.end146 - %op.35 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr168, %sw.bb166 ] + %op.35 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr168, %sw.bb166 ] %ref.3 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr167, %sw.bb166 ] %incdec.ptr170 = getelementptr inbounds i8, ptr %ref.3, i64 1 %39 = load i8, ptr %ref.3, align 1 @@ -497,7 +497,7 @@ sw.bb169: ; preds = %sw.bb166, %if.end14 br label %sw.bb172 sw.bb172: ; preds = %sw.bb169, %if.end146 - %op.36 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr171, %sw.bb169 ] + %op.36 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr171, %sw.bb169 ] %ref.4 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr170, %sw.bb169 ] %incdec.ptr173 = getelementptr inbounds i8, ptr %ref.4, i64 1 %40 = load i8, ptr %ref.4, align 1 @@ -506,7 +506,7 @@ sw.bb172: ; preds = %sw.bb169, %if.end14 br label %sw.bb175 sw.bb175: ; preds = %sw.bb172, %if.end146 - %op.37 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr174, %sw.bb172 ] + %op.37 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr174, %sw.bb172 ] %ref.5 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr173, %sw.bb172 ] %incdec.ptr176 = getelementptr inbounds i8, ptr %ref.5, i64 1 %41 = load i8, ptr %ref.5, align 1 @@ -515,7 +515,7 @@ sw.bb175: ; preds = %sw.bb172, %if.end14 br label %sw.bb178 sw.bb178: ; preds = %sw.bb175, %if.end146 - %op.38 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr177, %sw.bb175 ] + %op.38 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr177, %sw.bb175 ] %ref.6 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr176, %sw.bb175 ] %incdec.ptr179 = getelementptr inbounds i8, ptr %ref.6, i64 1 %42 = load i8, ptr %ref.6, align 1 @@ -524,7 +524,7 @@ sw.bb178: ; preds = %sw.bb175, %if.end14 br label %sw.bb181 sw.bb181: ; preds = %sw.bb178, %if.end146 - %op.39 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr180, %sw.bb178 ] + %op.39 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr180, %sw.bb178 ] %ref.7 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr179, %sw.bb178 ] %incdec.ptr182 = getelementptr inbounds i8, ptr %ref.7, i64 1 %43 = load i8, ptr %ref.7, align 1 @@ -533,7 +533,7 @@ sw.bb181: ; preds = %sw.bb178, %if.end14 br label %sw.bb184 sw.bb184: ; preds = %sw.bb181, %if.end146 - %op.40 = phi ptr [ %op.0133, %if.end146 ], [ %incdec.ptr183, %sw.bb181 ] + %op.40 = phi ptr [ %op.0134, %if.end146 ], [ %incdec.ptr183, %sw.bb181 ] %ref.8 = phi ptr [ %add.ptr133, %if.end146 ], [ %incdec.ptr182, %sw.bb181 ] %44 = load i8, ptr %ref.8, align 1 store i8 %44, ptr %op.40, align 1 @@ -548,9 +548,12 @@ sw.bb184: ; preds = %sw.bb181, %if.end14 store i8 %46, ptr %incdec.ptr189, align 1 br label %if.end193 -if.end193: ; preds = %do.body, %sw.bb184, %if.then152, %if.end14, %sw.bb107 - %op.42 = phi ptr [ %op.0133, %if.end14 ], [ %incdec.ptr109, %sw.bb107 ], [ %add.ptr155, %if.then152 ], [ %incdec.ptr191, %sw.bb184 ], [ %incdec.ptr158, %do.body ] - %ip.33 = phi ptr [ %incdec.ptr, %if.end14 ], [ %incdec.ptr108, %sw.bb107 ], [ %incdec.ptr129, %if.then152 ], [ %incdec.ptr129, %sw.bb184 ], [ %incdec.ptr129, %do.body ] +default.unreachable: ; preds = %if.end14 + unreachable + +if.end193: ; preds = %do.body, %sw.bb184, %if.then152, %sw.bb107 + %op.42 = phi ptr [ %incdec.ptr109, %sw.bb107 ], [ %add.ptr155, %if.then152 ], [ %incdec.ptr191, %sw.bb184 ], [ %incdec.ptr158, %do.body ] + %ip.33 = phi ptr [ %incdec.ptr108, %sw.bb107 ], [ %incdec.ptr129, %if.then152 ], [ %incdec.ptr129, %sw.bb184 ], [ %incdec.ptr129, %do.body ] %cmp = icmp ult ptr %ip.33, %add.ptr br i1 %cmp, label %while.body, label %while.end, !llvm.loop !7 diff --git a/bench/redis/optimized/redis-cli.ll b/bench/redis/optimized/redis-cli.ll index 3c4d8741a00..a7bd758038c 100644 --- a/bench/redis/optimized/redis-cli.ll +++ b/bench/redis/optimized/redis-cli.ll @@ -255,7 +255,6 @@ target triple = "x86_64-unknown-linux-gnu" @.str.200 = private unnamed_addr constant [6 x i8] c"33;1m\00", align 1 @.str.201 = private unnamed_addr constant [6 x i8] c"31;1m\00", align 1 @.str.202 = private unnamed_addr constant [6 x i8] c"32;1m\00", align 1 -@.str.203 = private unnamed_addr constant [3 x i8] c"0m\00", align 1 @.str.204 = private unnamed_addr constant [5 x i8] c"db0:\00", align 1 @.str.205 = private unnamed_addr constant [13 x i8] c"CLUSTER INFO\00", align 1 @.str.206 = private unnamed_addr constant [20 x i8] c"cluster_known_nodes\00", align 1 @@ -17144,19 +17143,11 @@ entry: if.then: ; preds = %entry %call = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.198) - %switch.tableidx = add i32 %level, -1 - %1 = icmp ult i32 %switch.tableidx, 4 - br i1 %1, label %switch.lookup, label %if.then13 - -switch.lookup: ; preds = %if.then - %2 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [4 x ptr], ptr @switch.table.clusterManagerLog, i64 0, i64 %2 + %switch.tableidx = add nsw i32 %level, -1 + %1 = sext i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [4 x ptr], ptr @switch.table.clusterManagerLog, i64 0, i64 %1 %switch.load = load ptr, ptr %switch.gep, align 8 - br label %if.then13 - -if.then13: ; preds = %if.then, %switch.lookup - %.str.203.sink = phi ptr [ %switch.load, %switch.lookup ], [ @.str.203, %if.then ] - %call8 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.203.sink) + %call7 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %switch.load) call void @llvm.va_start(ptr nonnull %ap) %call10 = call i32 @vprintf(ptr noundef %fmt, ptr noundef nonnull %ap) call void @llvm.va_end(ptr nonnull %ap) @@ -17169,7 +17160,7 @@ if.end15.critedge: ; preds = %entry call void @llvm.va_end(ptr nonnull %ap) br label %if.end15 -if.end15: ; preds = %if.end15.critedge, %if.then13 +if.end15: ; preds = %if.end15.critedge, %if.then ret void } diff --git a/bench/redis/optimized/sds.ll b/bench/redis/optimized/sds.ll index ff0b276add8..c36e969dbbb 100644 --- a/bench/redis/optimized/sds.ll +++ b/bench/redis/optimized/sds.ll @@ -101,24 +101,24 @@ if.end36: ; preds = %if.end26, %if.else, %sub39 = add i64 %2, %3 store i64 %sub39, ptr %usable, align 8 %4 = icmp ult i8 %spec.store.select, 4 - br i1 %4, label %switch.lookup60, label %sw.bb68 + br i1 %4, label %switch.lookup, label %sw.bb68 -switch.lookup60: ; preds = %if.end36 +switch.lookup: ; preds = %if.end36 %5 = zext nneg i8 %spec.store.select to i64 %switch.gep61 = getelementptr inbounds [4 x i64], ptr @switch.table._sdsnewlen.2, i64 0, i64 %5 %switch.load62 = load i64, ptr %switch.gep61, align 8 %cmp41 = icmp ugt i64 %sub39, %switch.load62 br i1 %cmp41, label %switch.lookup63, label %if.end45 -switch.lookup63: ; preds = %switch.lookup60 +switch.lookup63: ; preds = %switch.lookup %6 = zext nneg i8 %spec.store.select to i64 %switch.gep64 = getelementptr inbounds [4 x i64], ptr @switch.table._sdsnewlen.2, i64 0, i64 %6 %switch.load65 = load i64, ptr %switch.gep64, align 8 store i64 %switch.load65, ptr %usable, align 8 br label %if.end45 -if.end45: ; preds = %switch.lookup63, %switch.lookup60 - switch i8 %spec.store.select, label %sw.epilog [ +if.end45: ; preds = %switch.lookup63, %switch.lookup + switch i8 %spec.store.select, label %default.unreachable [ i8 0, label %sw.bb i8 1, label %sw.bb49 i8 2, label %sw.bb54 @@ -128,7 +128,7 @@ if.end45: ; preds = %switch.lookup63, %s sw.bb: ; preds = %if.end45 %initlen.tr = trunc i64 %initlen to i8 %7 = shl i8 %initlen.tr, 3 - br label %sw.epilog.sink.split + br label %sw.epilog sw.bb49: ; preds = %if.end45 %add.ptr51 = getelementptr inbounds i8, ptr %add.ptr, i64 -3 @@ -138,7 +138,7 @@ sw.bb49: ; preds = %if.end45 %conv53 = trunc i64 %8 to i8 %alloc = getelementptr inbounds i8, ptr %add.ptr, i64 -2 store i8 %conv53, ptr %alloc, align 1 - br label %sw.epilog.sink.split + br label %sw.epilog sw.bb54: ; preds = %if.end45 %add.ptr56 = getelementptr inbounds i8, ptr %add.ptr, i64 -5 @@ -148,7 +148,7 @@ sw.bb54: ; preds = %if.end45 %conv59 = trunc i64 %9 to i16 %alloc60 = getelementptr inbounds i8, ptr %add.ptr, i64 -3 store i16 %conv59, ptr %alloc60, align 1 - br label %sw.epilog.sink.split + br label %sw.epilog sw.bb61: ; preds = %if.end45 %add.ptr63 = getelementptr inbounds i8, ptr %add.ptr, i64 -9 @@ -158,7 +158,7 @@ sw.bb61: ; preds = %if.end45 %conv66 = trunc i64 %10 to i32 %alloc67 = getelementptr inbounds i8, ptr %add.ptr, i64 -5 store i32 %conv66, ptr %alloc67, align 1 - br label %sw.epilog.sink.split + br label %sw.epilog sw.bb68: ; preds = %if.end36 %add.ptr70 = getelementptr inbounds i8, ptr %add.ptr, i64 -17 @@ -166,14 +166,14 @@ sw.bb68: ; preds = %if.end36 %11 = load i64, ptr %usable, align 8 %alloc72 = getelementptr inbounds i8, ptr %add.ptr, i64 -9 store i64 %11, ptr %alloc72, align 1 - br label %sw.epilog.sink.split + br label %sw.epilog + +default.unreachable: ; preds = %if.end45 + unreachable -sw.epilog.sink.split: ; preds = %sw.bb, %sw.bb49, %sw.bb54, %sw.bb61, %sw.bb68 +sw.epilog: ; preds = %sw.bb68, %sw.bb61, %sw.bb54, %sw.bb49, %sw.bb %spec.store.select.sink = phi i8 [ %spec.store.select, %sw.bb68 ], [ 3, %sw.bb61 ], [ 2, %sw.bb54 ], [ 1, %sw.bb49 ], [ %7, %sw.bb ] store i8 %spec.store.select.sink, ptr %add.ptr37, align 1 - br label %sw.epilog - -sw.epilog: ; preds = %sw.epilog.sink.split, %if.end45 %tobool73 = icmp ne i64 %initlen, 0 %tobool75 = icmp ne ptr %init.addr.0, null %or.cond1 = and i1 %tobool73, %tobool75 @@ -644,6 +644,9 @@ sdsReqType.exit: ; preds = %if.end17, %if.end.i %cmp28 = icmp ugt i64 %add27, %add br i1 %cmp28, label %cond.end38, label %cond.false37 +default.unreachable: ; preds = %if.end62 + unreachable + cond.false37: ; preds = %sdsReqType.exit tail call void @_serverAssert(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.2, i32 noundef 270) #25 tail call void @abort() #26 @@ -670,8 +673,8 @@ if.end62: ; preds = %if.else54 call void @zfree(ptr noundef %add.ptr) #25 %arrayidx68 = getelementptr inbounds i8, ptr %add.ptr64, i64 -1 store i8 %spec.store.select, ptr %arrayidx68, align 1 - switch i8 %spec.store.select, label %if.end69.thread [ - i8 4, label %sw.bb13.i55 + switch i8 %spec.store.select, label %default.unreachable [ + i8 4, label %if.end69.thread i8 1, label %if.end69.thread91 i8 2, label %if.end69.thread94 i8 3, label %if.end69.thread84 @@ -707,12 +710,9 @@ if.end69.thread84: ; preds = %if.end62 store i64 %sub7186, ptr %usable, align 8 br label %sdsTypeMaxSize.exit -sw.bb13.i55: ; preds = %if.end62 +if.end69.thread: ; preds = %if.end62 %add.ptr14.i56 = getelementptr inbounds i8, ptr %add.ptr64, i64 -17 store i64 %retval.0.i39, ptr %add.ptr14.i56, align 1 - br label %if.end69.thread - -if.end69.thread: ; preds = %sw.bb13.i55, %if.end62 %23 = load i64, ptr %usable, align 8 %24 = xor i64 %switch.load101, -1 %sub7182 = add i64 %23, %24 @@ -977,32 +977,24 @@ sdsReqType.exit: ; preds = %if.end, %if.end.i, %tobool.not = icmp eq i32 %would_regrow, 0 %spec.store.select = tail call i8 @llvm.umax.i8(i8 %retval.0.i57, i8 1) %type.0 = select i1 %tobool.not, i8 %retval.0.i57, i8 %spec.store.select - %12 = icmp ult i8 %type.0, 5 - br i1 %12, label %switch.lookup128, label %sdsHdrSize.exit64 - -switch.lookup128: ; preds = %sdsReqType.exit - %13 = zext nneg i8 %type.0 to i64 - %switch.gep129 = getelementptr inbounds [5 x i64], ptr @switch.table.sdsAllocSize, i64 0, i64 %13 + %12 = zext nneg i8 %type.0 to i64 + %switch.gep129 = getelementptr inbounds [5 x i64], ptr @switch.table.sdsAllocSize, i64 0, i64 %12 %switch.load130 = load i64, ptr %switch.gep129, align 8 - br label %sdsHdrSize.exit64 - -sdsHdrSize.exit64: ; preds = %sdsReqType.exit, %switch.lookup128 - %retval.0.i59 = phi i64 [ %switch.load130, %switch.lookup128 ], [ 0, %sdsReqType.exit ] %cmp20 = icmp eq i8 %1, %type.0 %cmp24 = icmp ult i8 %type.0, %1 %cmp27 = icmp ugt i8 %type.0, 1 - %14 = and i1 %cmp24, %cmp27 - %15 = or i1 %cmp20, %14 - %16 = select i1 %15, i64 %retval.0.i, i64 %retval.0.i59 + %13 = and i1 %cmp24, %cmp27 + %14 = or i1 %cmp20, %13 + %15 = select i1 %14, i64 %retval.0.i, i64 %switch.load130 %cond.in = add i64 %size, 1 - %cond = add i64 %cond.in, %16 + %cond = add i64 %cond.in, %15 %call35 = tail call i64 @je_nallocx(i64 noundef %cond, i32 noundef 0) #27 %call36 = tail call i64 @je_malloc_usable_size(ptr noundef %add.ptr90) #25 %cmp37 = icmp ne i64 %call35, %call36 - %or.cond.not = select i1 %15, i1 %cmp37, i1 false + %or.cond.not = select i1 %14, i1 %cmp37, i1 false br i1 %or.cond.not, label %if.then41, label %if.else -if.then41: ; preds = %sdsHdrSize.exit64 +if.then41: ; preds = %sdsReqType.exit %call42 = tail call ptr @zrealloc(ptr noundef %add.ptr90, i64 noundef %cond) #28 %cmp43 = icmp eq ptr %call42, null br i1 %cmp43, label %return, label %if.end46 @@ -1011,7 +1003,7 @@ if.end46: ; preds = %if.then41 %add.ptr48 = getelementptr inbounds i8, ptr %call42, i64 %retval.0.i br label %if.end62 -if.else: ; preds = %sdsHdrSize.exit64 +if.else: ; preds = %sdsReqType.exit br i1 %cmp37, label %if.then50, label %if.end62 if.then50: ; preds = %if.else @@ -1020,7 +1012,7 @@ if.then50: ; preds = %if.else br i1 %cmp52, label %return, label %if.end55 if.end55: ; preds = %if.then50 - %add.ptr57 = getelementptr inbounds i8, ptr %call51, i64 %retval.0.i59 + %add.ptr57 = getelementptr inbounds i8, ptr %call51, i64 %switch.load130 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr57, ptr nonnull align 1 %s, i64 %spec.select, i1 false) tail call void @zfree(ptr noundef %add.ptr90) #25 %arrayidx60 = getelementptr inbounds i8, ptr %add.ptr57, i64 -1 @@ -1032,9 +1024,9 @@ if.end62: ; preds = %if.else, %if.end55, %arrayidx63 = getelementptr inbounds i8, ptr %s.addr.0, i64 %spec.select store i8 0, ptr %arrayidx63, align 1 %arrayidx.i65 = getelementptr inbounds i8, ptr %s.addr.0, i64 -1 - %17 = load i8, ptr %arrayidx.i65, align 1 - %18 = and i8 %17, 7 - switch i8 %18, label %sdssetlen.exit [ + %16 = load i8, ptr %arrayidx.i65, align 1 + %17 = and i8 %16, 7 + switch i8 %17, label %sdssetlen.exit [ i8 0, label %sw.bb.i72 i8 1, label %sw.bb2.i71 i8 2, label %sw.bb5.i70 @@ -1072,9 +1064,9 @@ sw.bb13.i66: ; preds = %if.end62 br label %sdssetlen.exit sdssetlen.exit: ; preds = %if.end62, %sw.bb.i72, %sw.bb2.i71, %sw.bb5.i70, %sw.bb9.i69, %sw.bb13.i66 - %19 = phi i8 [ %17, %if.end62 ], [ %conv1.i, %sw.bb.i72 ], [ %17, %sw.bb2.i71 ], [ %17, %sw.bb5.i70 ], [ %17, %sw.bb9.i69 ], [ %17, %sw.bb13.i66 ] - %20 = and i8 %19, 7 - switch i8 %20, label %return [ + %18 = phi i8 [ %16, %if.end62 ], [ %conv1.i, %sw.bb.i72 ], [ %16, %sw.bb2.i71 ], [ %16, %sw.bb5.i70 ], [ %16, %sw.bb9.i69 ], [ %16, %sw.bb13.i66 ] + %19 = and i8 %18, 7 + switch i8 %19, label %return [ i8 4, label %sw.bb11.i i8 1, label %sw.bb1.i78 i8 2, label %sw.bb3.i76 diff --git a/bench/simdjson/optimized/simdjson.cpp.ll b/bench/simdjson/optimized/simdjson.cpp.ll index d05b7d60b46..27a2bdb15d8 100644 --- a/bench/simdjson/optimized/simdjson.cpp.ll +++ b/bench/simdjson/optimized/simdjson.cpp.ll @@ -1223,7 +1223,7 @@ return: ; preds = %lor.rhs, %for.end, ret i64 %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable define dso_local void @_ZN8simdjson8internal18decimal_left_shiftERNS0_7decimalEj(ptr nocapture noundef nonnull align 4 dereferenceable(780) %h, i32 noundef %shift) local_unnamed_addr #4 { entry: %0 = load i32, ptr %h, align 4 @@ -1404,7 +1404,7 @@ return: ; preds = %while.body.i, %land ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable define dso_local void @_ZN8simdjson8internal19decimal_right_shiftERNS0_7decimalEj(ptr nocapture noundef nonnull align 4 dereferenceable(780) %h, i32 noundef %shift) local_unnamed_addr #4 { entry: %sh_prom = zext i32 %shift to i64 @@ -1583,7 +1583,7 @@ entry: call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %first.addr.i) call void @llvm.lifetime.start.p0(i64 780, ptr nonnull %d.i) store ptr %spec.select, ptr %first.addr.i, align 8 - call void @_ZN8simdjson8internal13parse_decimalERPKc(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i) #52 + call void @_ZN8simdjson8internal13parse_decimalERPKc(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i) #51 %call.i6 = invoke { i64, i32 } @_ZN8simdjson8internal13compute_floatINS0_13binary_formatIdEEEENS0_17adjusted_mantissaERNS0_7decimalE(ptr noundef nonnull align 4 dereferenceable(780) %d.i) to label %invoke.cont unwind label %terminate.lpad @@ -1604,7 +1604,7 @@ terminate.lpad: ; preds = %entry %4 = landingpad { ptr, i32 } catch ptr null %5 = extractvalue { ptr, i32 } %4, 0 - call void @__clang_call_terminate(ptr %5) #53 + call void @__clang_call_terminate(ptr %5) #52 unreachable } @@ -1612,8 +1612,8 @@ declare i32 @__gxx_personality_v0(...) ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #6 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #52 - tail call void @_ZSt9terminatev() #53 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #51 + tail call void @_ZSt9terminatev() #52 unreachable } @@ -1636,7 +1636,7 @@ entry: call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %first.addr.i) call void @llvm.lifetime.start.p0(i64 780, ptr nonnull %d.i) store ptr %spec.select, ptr %first.addr.i, align 8 - call void @_ZN8simdjson8internal13parse_decimalERPKcS2_(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i, ptr noundef %end) #52 + call void @_ZN8simdjson8internal13parse_decimalERPKcS2_(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i, ptr noundef %end) #51 %call.i6 = invoke { i64, i32 } @_ZN8simdjson8internal13compute_floatINS0_13binary_formatIdEEEENS0_17adjusted_mantissaERNS0_7decimalE(ptr noundef nonnull align 4 dereferenceable(780) %d.i) to label %invoke.cont unwind label %terminate.lpad @@ -1657,7 +1657,7 @@ terminate.lpad: ; preds = %entry %4 = landingpad { ptr, i32 } catch ptr null %5 = extractvalue { ptr, i32 } %4, 0 - call void @__clang_call_terminate(ptr %5) #53 + call void @__clang_call_terminate(ptr %5) #52 unreachable } @@ -1676,7 +1676,7 @@ entry: %vfn = getelementptr inbounds ptr, ptr %vtable, i64 2 %0 = load ptr, ptr %vfn, align 8 %call = tail call noundef i32 %0(ptr noundef nonnull align 8 dereferenceable(76) %this) - %1 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 1, i32 0) #52, !srcloc !28 + %1 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 1, i32 0) #51, !srcloc !28 %asmresult2.i.i = extractvalue { i32, i32, i32, i32 } %1, 2 %and.i = and i32 %asmresult2.i.i, 1048576 %tobool.not.i = icmp eq i32 %and.i, 0 @@ -1691,7 +1691,7 @@ if.then.i: ; preds = %entry br i1 %cmp.not.i, label %if.end8.i, label %_ZN8simdjson8internalL30detect_supported_architecturesEv.exit if.end8.i: ; preds = %if.then.i - %2 = tail call { i32, i32 } asm sideeffect "xgetbv\0A\09", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #52, !srcloc !29 + %2 = tail call { i32, i32 } asm sideeffect "xgetbv\0A\09", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #51, !srcloc !29 %asmresult.i22.i = extractvalue { i32, i32 } %2, 0 %conv.i.i = zext i32 %asmresult.i22.i to i64 %and9.i = and i64 %conv.i.i, 4 @@ -1699,7 +1699,7 @@ if.end8.i: ; preds = %if.then.i br i1 %cmp10.i, label %_ZN8simdjson8internalL30detect_supported_architecturesEv.exit, label %if.end12.i if.end12.i: ; preds = %if.end8.i - %3 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #52, !srcloc !28 + %3 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #51, !srcloc !28 %asmresult1.i25.i = extractvalue { i32, i32, i32, i32 } %3, 1 %and13.i = lshr i32 %asmresult1.i25.i, 3 %4 = and i32 %and13.i, 4 @@ -1748,7 +1748,7 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init @@ -1758,8 +1758,8 @@ init: ; preds = %init.check invoke.cont: ; preds = %init store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson8internal26unsupported_implementationE, i64 0, inrange i32 0, i64 2), ptr @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, align 8 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal26unsupported_implementationD2Ev, ptr nonnull @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal26unsupported_implementationD2Ev, ptr nonnull @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 br label %init.end init.end: ; preds = %invoke.cont, %init.check, %entry @@ -1768,7 +1768,7 @@ init.end: ; preds = %invoke.cont, %init. lpad: ; preds = %init %3 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 resume { ptr, i32 } %3 } @@ -1780,9 +1780,9 @@ define linkonce_odr dso_local void @_ZN8simdjson8internal26unsupported_implement entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #51 %_name.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #51 ret void } @@ -1807,7 +1807,7 @@ terminate.lpad: ; preds = %entry %1 = landingpad { ptr, i32 } catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 - tail call void @__clang_call_terminate(ptr %2) #53 + tail call void @__clang_call_terminate(ptr %2) #52 unreachable } @@ -1819,7 +1819,7 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init @@ -1846,7 +1846,7 @@ invoke.cont5: ; preds = %invoke.cont3 store ptr @_ZZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton, ptr getelementptr inbounds ([4 x ptr], ptr @_ZGRZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers_, i64 0, i64 3), align 8 store ptr @_ZGRZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers_, ptr @_ZZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers.0, align 8 store i1 true, ptr @_ZZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers.1, align 8 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers) #51 br label %init.end init.end: ; preds = %invoke.cont5, %init.check, %entry @@ -1855,7 +1855,7 @@ init.end: ; preds = %invoke.cont5, %init lpad: ; preds = %invoke.cont3, %invoke.cont1, %invoke.cont, %init %2 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers) #52 + tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL37get_available_implementation_pointersEvE33available_implementation_pointers) #51 resume { ptr, i32 } %2 } @@ -1873,7 +1873,7 @@ terminate.lpad: ; preds = %entry %1 = landingpad { ptr, i32 } catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 - tail call void @__clang_call_terminate(ptr %2) #53 + tail call void @__clang_call_terminate(ptr %2) #52 unreachable } @@ -1894,14 +1894,14 @@ terminate.lpad: ; preds = %entry %2 = landingpad { ptr, i32 } catch ptr null %3 = extractvalue { ptr, i32 } %2, 0 - tail call void @__clang_call_terminate(ptr %3) #53 + tail call void @__clang_call_terminate(ptr %3) #52 unreachable } ; Function Attrs: mustprogress nounwind uwtable define dso_local noundef ptr @_ZNK8simdjson8internal29available_implementation_list21detect_best_supportedEv(ptr nocapture nonnull readnone align 1 %this) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 { entry: - %0 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 1, i32 0) #52, !srcloc !28 + %0 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 1, i32 0) #51, !srcloc !28 %asmresult2.i.i = extractvalue { i32, i32, i32, i32 } %0, 2 %and.i = and i32 %asmresult2.i.i, 1048576 %tobool.not.i = icmp eq i32 %and.i, 0 @@ -1916,7 +1916,7 @@ if.then.i: ; preds = %entry br i1 %cmp.not.i, label %if.end8.i, label %invoke.cont if.end8.i: ; preds = %if.then.i - %1 = tail call { i32, i32 } asm sideeffect "xgetbv\0A\09", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #52, !srcloc !29 + %1 = tail call { i32, i32 } asm sideeffect "xgetbv\0A\09", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #51, !srcloc !29 %asmresult.i22.i = extractvalue { i32, i32 } %1, 0 %conv.i.i = zext i32 %asmresult.i22.i to i64 %and9.i = and i64 %conv.i.i, 4 @@ -1924,7 +1924,7 @@ if.end8.i: ; preds = %if.then.i br i1 %cmp10.i, label %invoke.cont, label %if.end12.i if.end12.i: ; preds = %if.end8.i - %2 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #52, !srcloc !28 + %2 = tail call { i32, i32, i32, i32 } asm sideeffect "cpuid\0A\09", "={ax},={bx},={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #51, !srcloc !28 %asmresult1.i25.i = extractvalue { i32, i32, i32, i32 } %2, 1 %and13.i = lshr i32 %asmresult1.i25.i, 3 %3 = and i32 %and13.i, 4 @@ -1995,7 +1995,7 @@ for.end: ; preds = %for.cond, %invoke.c br i1 %guard.uninitialized.i, label %init.check.i, label %return, !prof !30 init.check.i: ; preds = %for.end - %22 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + %22 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 %tobool.not.i6 = icmp eq i32 %22, 0 br i1 %tobool.not.i6, label %return, label %init.i @@ -2005,14 +2005,14 @@ init.i: ; preds = %init.check.i invoke.cont.i: ; preds = %init.i store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson8internal26unsupported_implementationE, i64 0, inrange i32 0, i64 2), ptr @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, align 8 - %23 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal26unsupported_implementationD2Ev, ptr nonnull @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + %23 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal26unsupported_implementationD2Ev, ptr nonnull @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 br label %return lpad.i: ; preds = %init.i %24 = landingpad { ptr, i32 } catch ptr null - tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 br label %terminate.lpad.body return: ; preds = %invoke.cont6, %invoke.cont.i, %init.check.i, %for.end @@ -2032,7 +2032,7 @@ terminate.lpad.loopexit.split-lp: ; preds = %invoke.cont terminate.lpad.body: ; preds = %terminate.lpad.loopexit, %terminate.lpad.loopexit.split-lp, %lpad.i %eh.lpad-body = phi { ptr, i32 } [ %24, %lpad.i ], [ %lpad.loopexit, %terminate.lpad.loopexit ], [ %lpad.loopexit.split-lp, %terminate.lpad.loopexit.split-lp ] %25 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - tail call void @__clang_call_terminate(ptr %25) #53 + tail call void @__clang_call_terminate(ptr %25) #52 unreachable } @@ -2040,7 +2040,7 @@ terminate.lpad.body: ; preds = %terminate.lpad.loop define dso_local noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nocapture nonnull readnone align 8 %this) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 { entry: %ref.tmp = alloca %"class.std::basic_string_view", align 8 - %call = tail call ptr @getenv(ptr noundef nonnull @.str.31) #52 + %call = tail call ptr @getenv(ptr noundef nonnull @.str.31) #51 %tobool.not = icmp eq ptr %call, null %0 = load atomic i8, ptr @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations acquire, align 8 %guard.uninitialized.i23 = icmp eq i8 %0, 0 @@ -2050,20 +2050,20 @@ if.then: ; preds = %entry br i1 %guard.uninitialized.i23, label %init.check.i, label %invoke.cont, !prof !30 init.check.i: ; preds = %if.then - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #51 %tobool.not.i = icmp eq i32 %1, 0 br i1 %tobool.not.i, label %invoke.cont, label %init.i init.i: ; preds = %init.check.i - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #51 br label %invoke.cont invoke.cont: ; preds = %init.i, %init.check.i, %if.then - %call.i.i = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %call) #52 + %call.i.i = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %call) #51 store i64 %call.i.i, ptr %ref.tmp, align 8 %_M_str.i = getelementptr inbounds %"class.std::basic_string_view", ptr %ref.tmp, i64 0, i32 1 store ptr %call, ptr %_M_str.i, align 8 - %call3 = call noundef ptr @_ZNK8simdjson8internal29available_implementation_listixERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZZN8simdjson29get_available_implementationsEvE25available_implementations, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #52 + %call3 = call noundef ptr @_ZNK8simdjson8internal29available_implementation_listixERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZZN8simdjson29get_available_implementationsEvE25available_implementations, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #51 %tobool4.not = icmp eq ptr %call3, null br i1 %tobool4.not, label %if.else, label %if.then5 @@ -2073,14 +2073,14 @@ if.then5: ; preds = %invoke.cont br i1 %guard.uninitialized.i3, label %init.check.i4, label %init.end.i, !prof !30 init.check.i4: ; preds = %if.then5 - %3 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + %3 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 %tobool.not.i5 = icmp eq i32 %3, 0 br i1 %tobool.not.i5, label %init.end.i, label %init.i6 init.i6: ; preds = %init.check.i4 - call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 - %4 = call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #52 - call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 + %4 = call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #51 + call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 br label %init.end.i init.end.i: ; preds = %init.i6, %init.check.i4, %if.then5 @@ -2089,13 +2089,13 @@ init.end.i: ; preds = %init.i6, %init.chec br i1 %guard.uninitialized1.i, label %init.check2.i, label %invoke.cont6, !prof !30 init.check2.i: ; preds = %init.end.i - %6 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + %6 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 %tobool3.not.i = icmp eq i32 %6, 0 br i1 %tobool3.not.i, label %invoke.cont6, label %init4.i init4.i: ; preds = %init.check2.i store ptr @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr @_ZZN8simdjson25get_active_implementationEvE21active_implementation, align 8 - call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 br label %invoke.cont6 invoke.cont6: ; preds = %init4.i, %init.check2.i, %init.end.i @@ -2108,7 +2108,7 @@ if.else: ; preds = %invoke.cont br i1 %guard.uninitialized.i7, label %init.check.i9, label %invoke.cont12, !prof !30 init.check.i9: ; preds = %if.else - %9 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + %9 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 %tobool.not.i10 = icmp eq i32 %9, 0 br i1 %tobool.not.i10, label %invoke.cont12, label %init.i11 @@ -2118,16 +2118,16 @@ init.i11: ; preds = %init.check.i9 invoke.cont.i: ; preds = %init.i11 store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson8internal26unsupported_implementationE, i64 0, inrange i32 0, i64 2), ptr @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, align 8 - %10 = call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal26unsupported_implementationD2Ev, ptr nonnull @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, ptr nonnull @__dso_handle) #52 - call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + %10 = call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal26unsupported_implementationD2Ev, ptr nonnull @_ZZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton, ptr nonnull @__dso_handle) #51 + call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 br label %invoke.cont12 lpad.i: ; preds = %init.i11 %11 = landingpad { ptr, i32 } catch ptr null - call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #52 + call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internal25get_unsupported_singletonEvE21unsupported_singleton) #51 %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #53 + call void @__clang_call_terminate(ptr %12) #52 unreachable invoke.cont12: ; preds = %invoke.cont.i, %init.check.i9, %if.else @@ -2136,14 +2136,14 @@ invoke.cont12: ; preds = %invoke.cont.i, %ini br i1 %guard.uninitialized.i12, label %init.check.i18, label %init.end.i13, !prof !30 init.check.i18: ; preds = %invoke.cont12 - %14 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + %14 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 %tobool.not.i19 = icmp eq i32 %14, 0 br i1 %tobool.not.i19, label %init.end.i13, label %init.i20 init.i20: ; preds = %init.check.i18 - call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 - %15 = call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #52 - call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 + %15 = call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #51 + call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 br label %init.end.i13 init.end.i13: ; preds = %init.i20, %init.check.i18, %invoke.cont12 @@ -2152,42 +2152,42 @@ init.end.i13: ; preds = %init.i20, %init.che br i1 %guard.uninitialized1.i14, label %init.check2.i15, label %return, !prof !30 init.check2.i15: ; preds = %init.end.i13 - %17 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + %17 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 %tobool3.not.i16 = icmp eq i32 %17, 0 br i1 %tobool3.not.i16, label %return, label %init4.i17 init4.i17: ; preds = %init.check2.i15 store ptr @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr @_ZZN8simdjson25get_active_implementationEvE21active_implementation, align 8 - call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 br label %return if.end: ; preds = %entry br i1 %guard.uninitialized.i23, label %init.check.i25, label %invoke.cont20, !prof !30 init.check.i25: ; preds = %if.end - %18 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #52 + %18 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #51 %tobool.not.i26 = icmp eq i32 %18, 0 br i1 %tobool.not.i26, label %invoke.cont20, label %init.i27 init.i27: ; preds = %init.check.i25 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #51 br label %invoke.cont20 invoke.cont20: ; preds = %init.i27, %init.check.i25, %if.end - %call22 = tail call noundef ptr @_ZNK8simdjson8internal29available_implementation_list21detect_best_supportedEv(ptr nonnull align 1 poison) #52 + %call22 = tail call noundef ptr @_ZNK8simdjson8internal29available_implementation_list21detect_best_supportedEv(ptr nonnull align 1 poison) #51 %19 = load atomic i8, ptr @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton acquire, align 8 %guard.uninitialized.i29 = icmp eq i8 %19, 0 br i1 %guard.uninitialized.i29, label %init.check.i35, label %init.end.i30, !prof !30 init.check.i35: ; preds = %invoke.cont20 - %20 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + %20 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 %tobool.not.i36 = icmp eq i32 %20, 0 br i1 %tobool.not.i36, label %init.end.i30, label %init.i37 init.i37: ; preds = %init.check.i35 - tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 - %21 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 + %21 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 br label %init.end.i30 init.end.i30: ; preds = %init.i37, %init.check.i35, %invoke.cont20 @@ -2196,13 +2196,13 @@ init.end.i30: ; preds = %init.i37, %init.che br i1 %guard.uninitialized1.i31, label %init.check2.i32, label %invoke.cont23, !prof !30 init.check2.i32: ; preds = %init.end.i30 - %23 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + %23 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 %tobool3.not.i33 = icmp eq i32 %23, 0 br i1 %tobool3.not.i33, label %invoke.cont23, label %init4.i34 init4.i34: ; preds = %init.check2.i32 store ptr @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr @_ZZN8simdjson25get_active_implementationEvE21active_implementation, align 8 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 br label %invoke.cont23 invoke.cont23: ; preds = %init4.i34, %init.check2.i32, %init.end.i30 @@ -2228,12 +2228,12 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init init: ; preds = %init.check - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson29get_available_implementationsEvE25available_implementations) #51 br label %init.end init.end: ; preds = %init, %init.check, %entry @@ -2250,7 +2250,7 @@ terminate.lpad.i: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - tail call void @__clang_call_terminate(ptr %1) #53 + tail call void @__clang_call_terminate(ptr %1) #52 unreachable _ZNK8simdjson8internal29available_implementation_list5beginEv.exit: ; preds = %entry @@ -2262,7 +2262,7 @@ terminate.lpad.i6: ; preds = %_ZNK8simdjson8inter %3 = landingpad { ptr, i32 } catch ptr null %4 = extractvalue { ptr, i32 } %3, 0 - tail call void @__clang_call_terminate(ptr %4) #53 + tail call void @__clang_call_terminate(ptr %4) #52 unreachable _ZNK8simdjson8internal29available_implementation_list3endEv.exit: ; preds = %_ZNK8simdjson8internal29available_implementation_list5beginEv.exit @@ -2286,7 +2286,7 @@ for.body: ; preds = %for.body.lr.ph, %fo to label %invoke.cont unwind label %terminate.lpad invoke.cont: ; preds = %for.body - %call4 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %call3) #52 + %call4 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %call3) #51 %9 = extractvalue { i64, ptr } %call4, 0 %10 = extractvalue { i64, ptr } %call4, 1 %agg.tmp5.sroa.0.0.copyload = load i64, ptr %name, align 8 @@ -2316,7 +2316,7 @@ terminate.lpad: ; preds = %for.body %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - tail call void @__clang_call_terminate(ptr %12) #53 + tail call void @__clang_call_terminate(ptr %12) #52 unreachable } @@ -2328,14 +2328,14 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init init: ; preds = %init.check - tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 br label %init.end init.end: ; preds = %init, %init.check, %entry @@ -2344,13 +2344,13 @@ init.end: ; preds = %init, %init.check, br i1 %guard.uninitialized1, label %init.check2, label %init.end5, !prof !30 init.check2: ; preds = %init.end - %4 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + %4 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 %tobool3.not = icmp eq i32 %4, 0 br i1 %tobool3.not, label %init.end5, label %init4 init4: ; preds = %init.check2 store ptr @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr @_ZZN8simdjson25get_active_implementationEvE21active_implementation, align 8 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 br label %init.end5 init.end5: ; preds = %init4, %init.check2, %init.end @@ -2371,7 +2371,7 @@ terminate.lpad: ; preds = %entry %0 = landingpad { ptr, i32 } catch ptr null %1 = extractvalue { ptr, i32 } %0, 0 - tail call void @__clang_call_terminate(ptr %1) #53 + tail call void @__clang_call_terminate(ptr %1) #52 unreachable } @@ -2380,9 +2380,9 @@ define linkonce_odr dso_local void @_ZN8simdjson8internal49detect_best_supported entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #51 %_name.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #51 ret void } @@ -2394,14 +2394,14 @@ entry: br i1 %guard.uninitialized.i, label %init.check.i, label %init.end.i, !prof !30 init.check.i: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 %tobool.not.i = icmp eq i32 %1, 0 br i1 %tobool.not.i, label %init.end.i, label %init.i init.i: ; preds = %init.check.i - tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 br label %init.end.i init.end.i: ; preds = %init.i, %init.check.i, %entry @@ -2410,13 +2410,13 @@ init.end.i: ; preds = %init.i, %init.check br i1 %guard.uninitialized1.i, label %init.check2.i, label %invoke.cont, !prof !30 init.check2.i: ; preds = %init.end.i - %4 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + %4 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 %tobool3.not.i = icmp eq i32 %4, 0 br i1 %tobool3.not.i, label %invoke.cont, label %init4.i init4.i: ; preds = %init.check2.i store ptr @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr @_ZZN8simdjson25get_active_implementationEvE21active_implementation, align 8 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 br label %invoke.cont invoke.cont: ; preds = %init4.i, %init.check2.i, %init.end.i @@ -2425,7 +2425,7 @@ invoke.cont: ; preds = %init4.i, %init.chec %vtable = load ptr, ptr %atomic-temp.i.0.i.i, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 4 %6 = load ptr, ptr %vfn, align 8 - %call3 = tail call noundef i32 %6(ptr noundef nonnull align 8 dereferenceable(76) %atomic-temp.i.0.i.i, ptr noundef %buf, i64 noundef %len, ptr noundef %dst, ptr noundef nonnull align 8 dereferenceable(8) %dst_len) #52 + %call3 = tail call noundef i32 %6(ptr noundef nonnull align 8 dereferenceable(76) %atomic-temp.i.0.i.i, ptr noundef %buf, i64 noundef %len, ptr noundef %dst, ptr noundef nonnull align 8 dereferenceable(8) %dst_len) #51 ret i32 %call3 } @@ -2437,14 +2437,14 @@ entry: br i1 %guard.uninitialized.i, label %init.check.i, label %init.end.i, !prof !30 init.check.i: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 %tobool.not.i = icmp eq i32 %1, 0 br i1 %tobool.not.i, label %init.end.i, label %init.i init.i: ; preds = %init.check.i - tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #52 + tail call void @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useC2Ev(ptr noundef nonnull align 8 dereferenceable(80) @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8internal49detect_best_supported_implementation_on_first_useD2Ev, ptr nonnull @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton) #51 br label %init.end.i init.end.i: ; preds = %init.i, %init.check.i, %entry @@ -2453,13 +2453,13 @@ init.end.i: ; preds = %init.i, %init.check br i1 %guard.uninitialized1.i, label %init.check2.i, label %invoke.cont, !prof !30 init.check2.i: ; preds = %init.end.i - %4 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + %4 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 %tobool3.not.i = icmp eq i32 %4, 0 br i1 %tobool3.not.i, label %invoke.cont, label %init4.i init4.i: ; preds = %init.check2.i store ptr @_ZZN8simdjson25get_active_implementationEvE59detect_best_supported_implementation_on_first_use_singleton, ptr @_ZZN8simdjson25get_active_implementationEvE21active_implementation, align 8 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #52 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson25get_active_implementationEvE21active_implementation) #51 br label %invoke.cont invoke.cont: ; preds = %init4.i, %init.check2.i, %init.end.i @@ -2468,7 +2468,7 @@ invoke.cont: ; preds = %init4.i, %init.chec %vtable = load ptr, ptr %atomic-temp.i.0.i.i, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 5 %6 = load ptr, ptr %vfn, align 8 - %call3 = tail call noundef zeroext i1 %6(ptr noundef nonnull align 8 dereferenceable(76) %atomic-temp.i.0.i.i, ptr noundef %buf, i64 noundef %len) #52 + %call3 = tail call noundef zeroext i1 %6(ptr noundef nonnull align 8 dereferenceable(76) %atomic-temp.i.0.i.i, ptr noundef %buf, i64 noundef %len) #51 ret i1 %call3 } @@ -2481,7 +2481,7 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson22builtin_implementationEvE12builtin_impl) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson22builtin_implementationEvE12builtin_impl) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init @@ -2490,9 +2490,9 @@ init: ; preds = %init.check store i64 8, ptr %ref.tmp, align 8 %_M_str.i = getelementptr inbounds %"class.std::basic_string_view", ptr %ref.tmp, i64 0, i32 1 store ptr @.str.32, ptr %_M_str.i, align 8 - %call1 = call noundef ptr @_ZNK8simdjson8internal29available_implementation_listixERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZZN8simdjson29get_available_implementationsEvE25available_implementations, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #52 + %call1 = call noundef ptr @_ZNK8simdjson8internal29available_implementation_listixERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZZN8simdjson29get_available_implementationsEvE25available_implementations, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #51 store ptr %call1, ptr @_ZZN8simdjson22builtin_implementationEvE12builtin_impl, align 8 - call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson22builtin_implementationEvE12builtin_impl) #52 + call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson22builtin_implementationEvE12builtin_impl) #51 br label %init.end init.end: ; preds = %init, %init.check, %entry @@ -2503,7 +2503,7 @@ init.end: ; preds = %init, %init.check, ; Function Attrs: mustprogress nounwind uwtable define dso_local noundef i32 @_ZNK8simdjson8fallback14implementation32create_dom_parser_implementationEmmRSt10unique_ptrINS_8internal25dom_parser_implementationESt14default_deleteIS4_EE(ptr nocapture nonnull readnone align 8 %this, i64 noundef %capacity, i64 noundef %max_depth, ptr nocapture noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 { entry: - %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %new.isnull = icmp eq ptr %call, null br i1 %new.isnull, label %new.cont, label %new.notnull @@ -2531,7 +2531,7 @@ _ZNKSt14default_deleteIN8simdjson8internal25dom_parser_implementationEEclEPS2_.e %vtable.i.i.i = load ptr, ptr %0, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 9 %1 = load ptr, ptr %vfn.i.i.i, align 8 - tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #52 + tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #51 %.pr = load ptr, ptr %dst, align 8 br label %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -2544,7 +2544,7 @@ if.end: ; preds = %_ZNSt10unique_ptrIN %vtable = load ptr, ptr %2, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 6 %3 = load ptr, ptr %vfn, align 8 - %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #52 + %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #51 %tobool.not = icmp eq i32 %call4, 0 br i1 %tobool.not, label %if.end6, label %return @@ -2553,7 +2553,7 @@ if.end6: ; preds = %if.end %vtable9 = load ptr, ptr %4, align 8 %vfn10 = getelementptr inbounds ptr, ptr %vtable9, i64 7 %5 = load ptr, ptr %vfn10, align 8 - %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #52 + %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #51 br label %return return: ; preds = %if.end6, %if.end, %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -2944,7 +2944,7 @@ invoke.cont2: ; preds = %if.else109.i, %if.e } ; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable -define dso_local noundef i32 @_ZNK8simdjson8fallback14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len, ptr nocapture noundef writeonly %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #15 align 2 { +define dso_local noundef i32 @_ZNK8simdjson8fallback14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len, ptr nocapture noundef writeonly %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #4 align 2 { entry: %cmp12.not = icmp eq i64 %len, 0 br i1 %cmp12.not, label %while.end, label %while.body @@ -3024,7 +3024,7 @@ if.end7: ; preds = %while.body.if.end7_ br i1 %cmp8, label %if.then9, label %if.else if.then9: ; preds = %if.end7 - %inc = add nuw i64 %pos.062, 1 + %inc = add i64 %pos.062, 1 br label %while.cond.backedge while.cond.backedge: ; preds = %if.end110, %if.end58, %if.end17, %if.then9, %if.then @@ -3219,7 +3219,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #52 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #51 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3340,7 +3340,7 @@ sw.bb100.i.i: ; preds = %if.end84.i.i br i1 %cmp103.i.i, label %sw.epilog118.sink.split.i.i, label %array_begin.i.i sw.default112.i.i: ; preds = %if.end84.i.i - %call114.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #52 + %call114.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #51 %tobool115.not.i.i = icmp eq i32 %call114.i.i, 0 br i1 %tobool115.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3533,7 +3533,7 @@ sw.bb202.i.i: ; preds = %array_value.i.i br i1 %cmp205.i.i, label %sw.epilog220.sink.split.i.i, label %array_begin.i.i sw.default214.i.i: ; preds = %array_value.i.i - %call216.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #52 + %call216.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #51 %tobool217.not.i.i = icmp eq i32 %call216.i.i, 0 br i1 %tobool217.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3708,7 +3708,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #52 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #51 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -3829,7 +3829,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #52 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #51 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -4022,7 +4022,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #52 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #51 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -4567,12 +4567,12 @@ invoke.cont: ; preds = %if.else.i, %if.else ; Function Attrs: mustprogress nounwind uwtable define dso_local noundef i32 @_ZN8simdjson8fallback25dom_parser_implementation5parseEPKhmRNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #5 align 2 { entry: - %call = tail call noundef i32 @_ZN8simdjson8fallback25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #52 + %call = tail call noundef i32 @_ZN8simdjson8fallback25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #51 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %if.end, label %return if.end: ; preds = %entry - %call2 = tail call noundef i32 @_ZN8simdjson8fallback25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #52 + %call2 = tail call noundef i32 @_ZN8simdjson8fallback25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #51 br label %return return: ; preds = %entry, %if.end @@ -4581,9 +4581,9 @@ return: ; preds = %entry, %if.end } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZNK8simdjson7haswell14implementation32create_dom_parser_implementationEmmRSt10unique_ptrINS_8internal25dom_parser_implementationESt14default_deleteIS4_EE(ptr nocapture nonnull readnone align 8 %this, i64 noundef %capacity, i64 noundef %max_depth, ptr nocapture noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #16 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZNK8simdjson7haswell14implementation32create_dom_parser_implementationEmmRSt10unique_ptrINS_8internal25dom_parser_implementationESt14default_deleteIS4_EE(ptr nocapture nonnull readnone align 8 %this, i64 noundef %capacity, i64 noundef %max_depth, ptr nocapture noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #15 align 2 personality ptr @__gxx_personality_v0 { entry: - %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %new.isnull = icmp eq ptr %call, null br i1 %new.isnull, label %new.cont, label %new.notnull @@ -4611,7 +4611,7 @@ _ZNKSt14default_deleteIN8simdjson8internal25dom_parser_implementationEEclEPS2_.e %vtable.i.i.i = load ptr, ptr %0, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 9 %1 = load ptr, ptr %vfn.i.i.i, align 8 - tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #52 + tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #51 %.pr = load ptr, ptr %dst, align 8 br label %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -4624,7 +4624,7 @@ if.end: ; preds = %_ZNSt10unique_ptrIN %vtable = load ptr, ptr %2, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 6 %3 = load ptr, ptr %vfn, align 8 - %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #52 + %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #51 %tobool.not = icmp eq i32 %call4, 0 br i1 %tobool.not, label %if.end6, label %return @@ -4633,7 +4633,7 @@ if.end6: ; preds = %if.end %vtable9 = load ptr, ptr %4, align 8 %vfn10 = getelementptr inbounds ptr, ptr %vtable9, i64 7 %5 = load ptr, ptr %vfn10, align 8 - %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #52 + %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #51 br label %return return: ; preds = %if.end6, %if.end, %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -4641,8 +4641,8 @@ return: ; preds = %if.end6, %if.end, % ret i32 %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef i32 @_ZNK8simdjson7haswell14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr noundef %buf, i64 noundef %len, ptr noundef %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #17 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef i32 @_ZNK8simdjson7haswell14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr noundef %buf, i64 noundef %len, ptr noundef %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #16 align 2 personality ptr @__gxx_personality_v0 { entry: %reader.i = alloca %"struct.simdjson::haswell::(anonymous namespace)::stage1::buf_block_reader.102", align 8 %minifier.i = alloca %"class.simdjson::haswell::(anonymous namespace)::stage1::json_minifier", align 8 @@ -4670,7 +4670,7 @@ while.body.i: ; preds = %entry, %while.body. %reader.val719.i = phi i64 [ %reader.val7.i, %while.body.i ], [ 0, %entry ] %reader.val8.i = load ptr, ptr %reader.i, align 8 %arrayidx.i.i = getelementptr inbounds i8, ptr %reader.val8.i, i64 %reader.val719.i - call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage113json_minifier4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 8 dereferenceable(32) %minifier.i, ptr noundef %arrayidx.i.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 + call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage113json_minifier4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 8 dereferenceable(32) %minifier.i, ptr noundef %arrayidx.i.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 %reader.val.i = load i64, ptr %lenminusstep.i.i, align 8 %reader.val7.i = load i64, ptr %idx.i.i, align 8 %cmp.i.i = icmp ult i64 %reader.val7.i, %reader.val.i @@ -4699,7 +4699,7 @@ _ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remain call void @llvm.memset.p0.i64(ptr align 1 %5, i8 32, i64 %4, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %block.i, ptr align 1 %add.ptr.i.i, i64 %sub.i.i, i1 false) store ptr %out_block.i, ptr %dst.i.i, align 8 - call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage113json_minifier4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 8 dereferenceable(32) %minifier.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 + call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage113json_minifier4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 8 dereferenceable(32) %minifier.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 %6 = load ptr, ptr %dst.i.i, align 8 %sub.ptr.lhs.cast.i = ptrtoint ptr %6 to i64 %sub.ptr.rhs.cast.i = ptrtoint ptr %out_block.i to i64 @@ -4727,8 +4727,8 @@ _ZN8simdjson7haswell12_GLOBAL__N_16stage113json_minifier6minifyILm128EEENS_10err ret i32 %..i.i.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef %streaming) unnamed_addr #18 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef %streaming) unnamed_addr #17 align 2 personality ptr @__gxx_personality_v0 { entry: %reader.i = alloca %"struct.simdjson::haswell::(anonymous namespace)::stage1::buf_block_reader.102", align 8 %indexer.i = alloca %"class.simdjson::haswell::(anonymous namespace)::stage1::json_structural_indexer", align 32 @@ -4758,56 +4758,54 @@ if.then6.i: ; preds = %if.end4.i br i1 %cmp.i14.i, label %if.then.i.i, label %if.end21.i.i if.then.i.i: ; preds = %if.then6.i - switch i64 %_len, label %if.end21.i.i [ - i64 2, label %sw.bb.i.i - i64 1, label %sw.bb12.i.i - ] + %switch.i.i = icmp eq i64 %_len, 2 + br i1 %switch.i.i, label %sw.bb.i.i, label %return.sink.split.i.thread43.i sw.bb.i.i: ; preds = %if.then.i.i %arrayidx.i.i = getelementptr i8, ptr %_buf, i64 1 %1 = load i8, ptr %arrayidx.i.i, align 1 %cmp2.i.i = icmp ugt i8 %1, -65 - br i1 %cmp2.i.i, label %if.end11.i, label %if.end.i.i - -if.end.i.i: ; preds = %sw.bb.i.i - %2 = load i8, ptr %_buf, align 1 - %cmp8.i.i = icmp ugt i8 %2, -33 - br i1 %cmp8.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + br i1 %cmp2.i.i, label %if.end11.i, label %return.sink.split.i.thread.i -sw.bb12.i.i: ; preds = %if.then.i.i - %3 = load i8, ptr %_buf, align 1 - %cmp16.i.i = icmp ult i8 %3, -64 - %sub13.len.i.i = zext i1 %cmp16.i.i to i64 - br label %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i - -if.end21.i.i: ; preds = %if.then.i.i, %if.then6.i +if.end21.i.i: ; preds = %if.then6.i %sub22.i.i = add i64 %_len, -1 %arrayidx23.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub22.i.i - %4 = load i8, ptr %arrayidx23.i.i, align 1 - %cmp25.i.i = icmp ugt i8 %4, -65 + %2 = load i8, ptr %arrayidx23.i.i, align 1 + %cmp25.i.i = icmp ugt i8 %2, -65 br i1 %cmp25.i.i, label %if.end11.i, label %if.end28.i.i if.end28.i.i: ; preds = %if.end21.i.i %sub29.i.i = add i64 %_len, -2 %arrayidx30.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub29.i.i - %5 = load i8, ptr %arrayidx30.i.i, align 1 - %cmp32.i.i = icmp ugt i8 %5, -33 - br i1 %cmp32.i.i, label %if.end11.i, label %if.end35.i.i + %3 = load i8, ptr %arrayidx30.i.i, align 1 + %cmp32.i.i = icmp ugt i8 %3, -33 + br i1 %cmp32.i.i, label %if.end11.i, label %return.sink.split.i.i -if.end35.i.i: ; preds = %if.end28.i.i +return.sink.split.i.i: ; preds = %if.end28.i.i %sub36.i.i = add i64 %_len, -3 %arrayidx37.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub36.i.i - %6 = load i8, ptr %arrayidx37.i.i, align 1 - %cmp39.i.i = icmp ugt i8 %6, -17 + %4 = load i8, ptr %arrayidx37.i.i, align 1 + %cmp39.i.i = icmp ugt i8 %4, -17 br i1 %cmp39.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, label %if.end11.i -_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i: ; preds = %if.end35.i.i, %sw.bb12.i.i - %retval.0.i.i = phi i64 [ %sub13.len.i.i, %sw.bb12.i.i ], [ %sub36.i.i, %if.end35.i.i ] - %cmp8.i = icmp eq i64 %retval.0.i.i, 0 +return.sink.split.i.thread43.i: ; preds = %if.then.i.i + %5 = getelementptr i8, ptr %_buf, i64 %_len + %arrayidx14.i.i = getelementptr i8, ptr %5, i64 -1 + %6 = load i8, ptr %arrayidx14.i.i, align 1 + %cmp39.i47.i = icmp ugt i8 %6, -65 + br i1 %cmp39.i47.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + +return.sink.split.i.thread.i: ; preds = %sw.bb.i.i + %7 = load i8, ptr %_buf, align 1 + %cmp39.i31.i = icmp ugt i8 %7, -33 + br i1 %cmp39.i31.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + +_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i: ; preds = %return.sink.split.i.i + %cmp8.i = icmp eq i64 %sub36.i.i, 0 br i1 %cmp8.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i -if.end11.i: ; preds = %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %if.end35.i.i, %if.end28.i.i, %if.end21.i.i, %if.end.i.i, %sw.bb.i.i, %if.end4.i - %len.addr.0.i = phi i64 [ %retval.0.i.i, %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ %_len, %if.end4.i ], [ %_len, %if.end35.i.i ], [ %sub29.i.i, %if.end28.i.i ], [ %sub22.i.i, %if.end21.i.i ], [ 2, %if.end.i.i ], [ 1, %sw.bb.i.i ] +if.end11.i: ; preds = %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %return.sink.split.i.thread.i, %return.sink.split.i.thread43.i, %return.sink.split.i.i, %if.end28.i.i, %if.end21.i.i, %sw.bb.i.i, %if.end4.i + %len.addr.0.i = phi i64 [ %sub36.i.i, %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ %_len, %if.end4.i ], [ %_len, %return.sink.split.i.i ], [ %sub29.i.i, %if.end28.i.i ], [ %sub22.i.i, %if.end21.i.i ], [ 1, %sw.bb.i.i ], [ 2, %return.sink.split.i.thread.i ], [ 1, %return.sink.split.i.thread43.i ] store ptr %_buf, ptr %reader.i, align 8 %len.i.i = getelementptr inbounds %"struct.simdjson::haswell::(anonymous namespace)::stage1::buf_block_reader.102", ptr %reader.i, i64 0, i32 1 store i64 %len.addr.0.i, ptr %len.i.i, align 8 @@ -4817,22 +4815,22 @@ if.end11.i: ; preds = %_ZN8simdjson7haswel %idx.i.i = getelementptr inbounds %"struct.simdjson::haswell::(anonymous namespace)::stage1::buf_block_reader.102", ptr %reader.i, i64 0, i32 3 store i64 0, ptr %idx.i.i, align 8 %structural_indexes.i = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %this, i64 0, i32 2 - %7 = load ptr, ptr %structural_indexes.i, align 8 + %8 = load ptr, ptr %structural_indexes.i, align 8 %checker.i.i = getelementptr inbounds %"class.simdjson::haswell::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 2 %indexer.i.i = getelementptr inbounds %"class.simdjson::haswell::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 32 dereferenceable(24) %indexer.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 32 dereferenceable(96) %checker.i.i, i8 0, i64 96, i1 false) - store ptr %7, ptr %indexer.i.i, align 32 + store ptr %8, ptr %indexer.i.i, align 32 %prev_structurals.i.i = getelementptr inbounds %"class.simdjson::haswell::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %prev_structurals.i.i, i8 0, i64 16, i1 false) - %cmp.i1537.not.i = icmp ult i64 %len.addr.0.i, 129 - br i1 %cmp.i1537.not.i, label %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i, label %while.body.i + %cmp.i1540.not.i = icmp ult i64 %len.addr.0.i, 129 + br i1 %cmp.i1540.not.i, label %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i, label %while.body.i while.body.i: ; preds = %if.end11.i, %while.body.i - %reader.val1038.i = phi i64 [ %reader.val10.i, %while.body.i ], [ 0, %if.end11.i ] + %reader.val1041.i = phi i64 [ %reader.val10.i, %while.body.i ], [ 0, %if.end11.i ] %reader.val11.i = load ptr, ptr %reader.i, align 8 - %arrayidx.i16.i = getelementptr inbounds i8, ptr %reader.val11.i, i64 %reader.val1038.i - call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 32 dereferenceable(152) %indexer.i, ptr noundef %arrayidx.i16.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 + %arrayidx.i16.i = getelementptr inbounds i8, ptr %reader.val11.i, i64 %reader.val1041.i + call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 32 dereferenceable(152) %indexer.i, ptr noundef %arrayidx.i16.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 %reader.val.i = load i64, ptr %lenminusstep.i.i, align 8 %reader.val10.i = load i64, ptr %idx.i.i, align 8 %cmp.i15.i = icmp ult i64 %reader.val10.i, %reader.val.i @@ -4848,40 +4846,40 @@ while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE br label %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i _ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i: ; preds = %while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge, %if.end11.i - %8 = phi ptr [ %.pre, %while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %_buf, %if.end11.i ] - %reader.val10.lcssa42.i = phi i64 [ %reader.val10.i, %while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ 0, %if.end11.i ] - %9 = phi i64 [ %.pre.i, %while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %len.addr.0.i, %if.end11.i ] - %add.ptr.i.i = getelementptr inbounds i8, ptr %8, i64 %reader.val10.lcssa42.i - %sub.i.i = sub i64 %9, %reader.val10.lcssa42.i - %10 = icmp ugt i64 %sub.i.i, 127 - %11 = sub i64 128, %sub.i.i - %12 = select i1 %10, i64 0, i64 %11 - %13 = getelementptr i8, ptr %block.i, i64 %sub.i.i - call void @llvm.memset.p0.i64(ptr align 1 %13, i8 32, i64 %12, i1 false) + %9 = phi ptr [ %.pre, %while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %_buf, %if.end11.i ] + %reader.val10.lcssa53.i = phi i64 [ %reader.val10.i, %while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ 0, %if.end11.i ] + %10 = phi i64 [ %.pre.i, %while.end.i._ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %len.addr.0.i, %if.end11.i ] + %add.ptr.i.i = getelementptr inbounds i8, ptr %9, i64 %reader.val10.lcssa53.i + %sub.i.i = sub i64 %10, %reader.val10.lcssa53.i + %11 = icmp ugt i64 %sub.i.i, 127 + %12 = sub i64 128, %sub.i.i + %13 = select i1 %11, i64 0, i64 %12 + %14 = getelementptr i8, ptr %block.i, i64 %sub.i.i + call void @llvm.memset.p0.i64(ptr align 1 %14, i8 32, i64 %13, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %block.i, ptr align 1 %add.ptr.i.i, i64 %sub.i.i, i1 false) - call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 32 dereferenceable(152) %indexer.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 + call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 32 dereferenceable(152) %indexer.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 %reader.val13.i = load i64, ptr %idx.i.i, align 8 - %14 = trunc i64 %reader.val13.i to i32 - %conv.i.i = add i32 %14, -64 - %15 = load i64, ptr %prev_structurals.i.i, align 8 - call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr noundef nonnull align 8 dereferenceable(8) %indexer.i.i, i32 noundef %conv.i.i, i64 noundef %15) - %16 = getelementptr inbounds i8, ptr %indexer.i, i64 16 - %this.val.i.i = load i64, ptr %16, align 16 + %15 = trunc i64 %reader.val13.i to i32 + %conv.i.i = add i32 %15, -64 + %16 = load i64, ptr %prev_structurals.i.i, align 8 + call fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr noundef nonnull align 8 dereferenceable(8) %indexer.i.i, i32 noundef %conv.i.i, i64 noundef %16) + %17 = getelementptr inbounds i8, ptr %indexer.i, i64 16 + %this.val.i.i = load i64, ptr %17, align 16 %tobool.i.not.i.not.i.i = icmp eq i64 %this.val.i.i, 0 %brmerge.i.i = select i1 %cmp.i.i, i1 true, i1 %tobool.i.not.i.not.i.i - br i1 %brmerge.i.i, label %if.end.i25.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit + br i1 %brmerge.i.i, label %if.end.i24.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -if.end.i25.i: ; preds = %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i +if.end.i24.i: ; preds = %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i %unescaped_chars_error.i.i = getelementptr inbounds %"class.simdjson::haswell::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 5 - %17 = load i64, ptr %unescaped_chars_error.i.i, align 16 - %tobool9.not.i.i = icmp eq i64 %17, 0 + %18 = load i64, ptr %unescaped_chars_error.i.i, align 16 + %tobool9.not.i.i = icmp eq i64 %18, 0 br i1 %tobool9.not.i.i, label %if.end11.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -if.end11.i.i: ; preds = %if.end.i25.i - %18 = load ptr, ptr %indexer.i.i, align 32 - %19 = load ptr, ptr %structural_indexes.i, align 8 - %sub.ptr.lhs.cast.i.i = ptrtoint ptr %18 to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %19 to i64 +if.end11.i.i: ; preds = %if.end.i24.i + %19 = load ptr, ptr %indexer.i.i, align 32 + %20 = load ptr, ptr %structural_indexes.i, align 8 + %sub.ptr.lhs.cast.i.i = ptrtoint ptr %19 to i64 + %sub.ptr.rhs.cast.i.i = ptrtoint ptr %20 to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %sub.ptr.div.i.i = lshr exact i64 %sub.ptr.sub.i.i, 2 %conv14.i.i = trunc i64 %sub.ptr.div.i.i to i32 @@ -4889,33 +4887,33 @@ if.end11.i.i: ; preds = %if.end.i25.i store i32 %conv14.i.i, ptr %n_structural_indexes.i.i, align 8 %conv15.i.i = trunc i64 %len.addr.0.i to i32 %conv18.i.i = and i64 %sub.ptr.div.i.i, 4294967295 - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %19, i64 %conv18.i.i + %arrayidx.i.i.i = getelementptr inbounds i32, ptr %20, i64 %conv18.i.i store i32 %conv15.i.i, ptr %arrayidx.i.i.i, align 4 - %20 = load i32, ptr %n_structural_indexes.i.i, align 8 - %add.i.i = add i32 %20, 1 + %21 = load i32, ptr %n_structural_indexes.i.i, align 8 + %add.i.i = add i32 %21, 1 %conv23.i.i = zext i32 %add.i.i to i64 - %21 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i40.i.i = getelementptr inbounds i32, ptr %21, i64 %conv23.i.i + %22 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i40.i.i = getelementptr inbounds i32, ptr %22, i64 %conv23.i.i store i32 %conv15.i.i, ptr %arrayidx.i40.i.i, align 4 - %22 = load i32, ptr %n_structural_indexes.i.i, align 8 - %add27.i.i = add i32 %22, 2 + %23 = load i32, ptr %n_structural_indexes.i.i, align 8 + %add27.i.i = add i32 %23, 2 %conv28.i.i = zext i32 %add27.i.i to i64 - %23 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i41.i.i = getelementptr inbounds i32, ptr %23, i64 %conv28.i.i + %24 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i41.i.i = getelementptr inbounds i32, ptr %24, i64 %conv28.i.i store i32 0, ptr %arrayidx.i41.i.i, align 4 %next_structural_index.i.i = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %this, i64 0, i32 3 store i32 0, ptr %next_structural_index.i.i, align 8 - %24 = load i32, ptr %n_structural_indexes.i.i, align 8 - %cmp31.i.i = icmp eq i32 %24, 0 + %25 = load i32, ptr %n_structural_indexes.i.i, align 8 + %cmp31.i.i = icmp eq i32 %25, 0 br i1 %cmp31.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end36.i.i if.end36.i.i: ; preds = %if.end11.i.i - %sub39.i.i = add i32 %24, -1 + %sub39.i.i = add i32 %25, -1 %conv40.i.i = zext i32 %sub39.i.i to i64 - %25 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i42.i.i = getelementptr inbounds i32, ptr %25, i64 %conv40.i.i - %26 = load i32, ptr %arrayidx.i42.i.i, align 4 - %conv42.i.i = zext i32 %26 to i64 + %26 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i42.i.i = getelementptr inbounds i32, ptr %26, i64 %conv40.i.i + %27 = load i32, ptr %arrayidx.i42.i.i, align 4 + %conv42.i.i = zext i32 %27 to i64 %cmp43.i.i = icmp ult i64 %len.addr.0.i, %conv42.i.i br i1 %cmp43.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end48.i.i @@ -4939,8 +4937,8 @@ if.end61.i.i: ; preds = %if.then52.i.i, %if. br i1 %cmp63.not.i.i, label %if.then66.i.i, label %if.end72.i.i if.then66.i.i: ; preds = %if.end61.i.i - %27 = load i32, ptr %25, align 4 - %cmp69.i.i = icmp eq i32 %27, 0 + %28 = load i32, ptr %26, align 4 + %cmp69.i.i = icmp eq i32 %28, 0 br i1 %cmp69.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.else.i.i if.else.i.i: ; preds = %if.then66.i.i @@ -4962,19 +4960,19 @@ if.end81.i.i: ; preds = %if.then78.i.i, %if. %call82.i.i = tail call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr noundef nonnull align 8 dereferenceable(88) %this) store i32 %call82.i.i, ptr %n_structural_indexes.i.i, align 8 %conv86.i.i = zext i32 %call82.i.i to i64 - %arrayidx.i43.i.i = getelementptr inbounds i32, ptr %25, i64 %conv86.i.i - %28 = load i32, ptr %arrayidx.i43.i.i, align 4 + %arrayidx.i43.i.i = getelementptr inbounds i32, ptr %26, i64 %conv86.i.i + %29 = load i32, ptr %arrayidx.i43.i.i, align 4 %add90.i.i = add i32 %call82.i.i, 1 %conv91.i.i = zext i32 %add90.i.i to i64 - %arrayidx.i44.i.i = getelementptr inbounds i32, ptr %25, i64 %conv91.i.i - store i32 %28, ptr %arrayidx.i44.i.i, align 4 - %29 = load i32, ptr %n_structural_indexes.i.i, align 8 - %conv96.i.i = zext i32 %29 to i64 - %30 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %30, i64 %conv96.i.i + %arrayidx.i44.i.i = getelementptr inbounds i32, ptr %26, i64 %conv91.i.i + store i32 %29, ptr %arrayidx.i44.i.i, align 4 + %30 = load i32, ptr %n_structural_indexes.i.i, align 8 + %conv96.i.i = zext i32 %30 to i64 + %31 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %31, i64 %conv96.i.i store i32 %conv15.i.i, ptr %arrayidx.i45.i.i, align 4 - %31 = load i32, ptr %n_structural_indexes.i.i, align 8 - %cmp99.i.i = icmp eq i32 %31, 0 + %32 = load i32, ptr %n_structural_indexes.i.i, align 8 + %cmp99.i.i = icmp eq i32 %32, 0 br i1 %cmp99.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end106.i.i if.end106.i.i: ; preds = %if.end81.i.i, %if.end72.i.i, %if.end48.i.i @@ -4982,21 +4980,21 @@ if.end106.i.i: ; preds = %if.end81.i.i, %if.e %agg.tmp.sroa.0.0.copyload.i.i.i = load <4 x i64>, ptr %prev_incomplete.i.i.i, align 32 %this.val.i.i.i.i = load <4 x i64>, ptr %checker.i.i, align 32 %or.i.i.i.i.i.i = or <4 x i64> %this.val.i.i.i.i, %agg.tmp.sroa.0.0.copyload.i.i.i - %32 = tail call noundef i32 @llvm.x86.avx.ptestz.256(<4 x i64> %or.i.i.i.i.i.i, <4 x i64> %or.i.i.i.i.i.i) - %tobool.i.not.i.i.i.i = icmp eq i32 %32, 0 + %33 = tail call noundef i32 @llvm.x86.avx.ptestz.256(<4 x i64> %or.i.i.i.i.i.i, <4 x i64> %or.i.i.i.i.i.i) + %tobool.i.not.i.i.i.i = icmp eq i32 %33, 0 %cond.i.i.i = select i1 %tobool.i.not.i.i.i.i, i32 10, i32 0 br label %_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit: ; preds = %entry, %if.end.i, %if.end.i.i, %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %while.end.i, %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i, %if.end.i25.i, %if.end11.i.i, %if.end36.i.i, %if.then52.i.i, %if.then66.i.i, %if.else.i.i, %if.end81.i.i, %if.end106.i.i - %retval.0.i = phi i32 [ 1, %entry ], [ 12, %if.end.i ], [ 10, %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ 12, %if.else.i.i ], [ %cond.i.i.i, %if.end106.i.i ], [ 13, %if.end.i25.i ], [ 12, %if.end11.i.i ], [ 23, %if.end36.i.i ], [ 1, %if.then52.i.i ], [ 1, %if.then66.i.i ], [ 12, %if.end81.i.i ], [ 14, %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i ], [ 10, %if.end.i.i ], [ 23, %while.end.i ] +_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit: ; preds = %entry, %if.end.i, %return.sink.split.i.thread43.i, %return.sink.split.i.thread.i, %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %while.end.i, %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i, %if.end.i24.i, %if.end11.i.i, %if.end36.i.i, %if.then52.i.i, %if.then66.i.i, %if.else.i.i, %if.end81.i.i, %if.end106.i.i + %retval.0.i = phi i32 [ 1, %entry ], [ 12, %if.end.i ], [ 10, %_ZN8simdjson7haswell12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ 12, %if.else.i.i ], [ %cond.i.i.i, %if.end106.i.i ], [ 13, %if.end.i24.i ], [ 12, %if.end11.i.i ], [ 23, %if.end36.i.i ], [ 1, %if.then52.i.i ], [ 1, %if.then66.i.i ], [ 12, %if.end81.i.i ], [ 14, %_ZNK8simdjson7haswell12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i ], [ 10, %return.sink.split.i.thread.i ], [ 23, %while.end.i ], [ 10, %return.sink.split.i.thread43.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %reader.i) call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %indexer.i) call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %block.i) ret i32 %retval.0.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable -define dso_local noundef zeroext i1 @_ZNK8simdjson7haswell14implementation13validate_utf8EPKcm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len) unnamed_addr #19 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable +define dso_local noundef zeroext i1 @_ZNK8simdjson7haswell14implementation13validate_utf8EPKcm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len) unnamed_addr #18 align 2 personality ptr @__gxx_personality_v0 { entry: %block.i.i = alloca [64 x i8], align 16 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %block.i.i) @@ -5202,7 +5200,7 @@ invoke.cont: ; preds = %if.else.i17.i.i, %_ } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #16 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #15 align 2 personality ptr @__gxx_personality_v0 { entry: %builder.i = alloca %"struct.simdjson::haswell::(anonymous namespace)::stage2::tape_builder", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %builder.i) @@ -5284,7 +5282,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #52 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #51 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5405,7 +5403,7 @@ sw.bb99.i.i: ; preds = %if.end83.i.i br i1 %cmp102.i.i, label %sw.epilog117.sink.split.i.i, label %array_begin.i.i sw.default111.i.i: ; preds = %if.end83.i.i - %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #52 + %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #51 %tobool114.not.i.i = icmp eq i32 %call113.i.i, 0 br i1 %tobool114.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5595,7 +5593,7 @@ sw.bb199.i.i: ; preds = %array_value.i.i br i1 %cmp202.i.i, label %sw.epilog217.sink.split.i.i, label %array_begin.i.i sw.default211.i.i: ; preds = %array_value.i.i - %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #52 + %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #51 %tobool214.not.i.i = icmp eq i32 %call213.i.i, 0 br i1 %tobool214.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5704,7 +5702,7 @@ _ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation11stage2_nextERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #16 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation11stage2_nextERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #15 align 2 personality ptr @__gxx_personality_v0 { entry: %builder.i = alloca %"struct.simdjson::haswell::(anonymous namespace)::stage2::tape_builder", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %builder.i) @@ -5764,7 +5762,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #52 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #51 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -5885,7 +5883,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #52 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #51 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -6075,7 +6073,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #52 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #51 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -6179,15 +6177,15 @@ _ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS ret i32 %retval.0.i.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef ptr @_ZNK8simdjson7haswell25dom_parser_implementation12parse_stringEPKhPhb(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) unnamed_addr #17 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef ptr @_ZNK8simdjson7haswell25dom_parser_implementation12parse_stringEPKhPhb(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) unnamed_addr #16 align 2 personality ptr @__gxx_personality_v0 { entry: %call = tail call fastcc noundef ptr @_ZN8simdjson7haswell12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr noundef %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) ret ptr %call } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define internal fastcc noundef ptr @_ZN8simdjson7haswell12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr nocapture noundef readonly %src, ptr noundef writeonly %dst, i1 noundef zeroext %allow_replacement) unnamed_addr #18 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define internal fastcc noundef ptr @_ZN8simdjson7haswell12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr nocapture noundef readonly %src, ptr noundef writeonly %dst, i1 noundef zeroext %allow_replacement) unnamed_addr #17 { entry: %.val52 = load <4 x i64>, ptr %src, align 1 store <4 x i64> %.val52, ptr %dst, align 1 @@ -6444,8 +6442,8 @@ return: ; preds = %if.else23.i.i, %if. ret ptr %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef ptr @_ZNK8simdjson7haswell25dom_parser_implementation19parse_wobbly_stringEPKhPh(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef writeonly %dst) unnamed_addr #18 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef ptr @_ZNK8simdjson7haswell25dom_parser_implementation19parse_wobbly_stringEPKhPh(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef writeonly %dst) unnamed_addr #17 align 2 personality ptr @__gxx_personality_v0 { entry: %.val47.i = load <4 x i64>, ptr %src, align 1 store <4 x i64> %.val47.i, ptr %dst, align 1 @@ -6690,14 +6688,14 @@ invoke.cont: ; preds = %if.else.i, %if.else } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation5parseEPKhmRNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #16 align 2 { +define dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation5parseEPKhmRNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #15 align 2 { entry: - %call = tail call noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #52, !range !44 + %call = tail call noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #51, !range !44 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %if.end, label %return if.end: ; preds = %entry - %call2 = tail call noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #52 + %call2 = tail call noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #51 br label %return return: ; preds = %entry, %if.end @@ -6706,9 +6704,9 @@ return: ; preds = %entry, %if.end } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZNK8simdjson7icelake14implementation32create_dom_parser_implementationEmmRSt10unique_ptrINS_8internal25dom_parser_implementationESt14default_deleteIS4_EE(ptr nocapture nonnull readnone align 8 %this, i64 noundef %capacity, i64 noundef %max_depth, ptr nocapture noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZNK8simdjson7icelake14implementation32create_dom_parser_implementationEmmRSt10unique_ptrINS_8internal25dom_parser_implementationESt14default_deleteIS4_EE(ptr nocapture nonnull readnone align 8 %this, i64 noundef %capacity, i64 noundef %max_depth, ptr nocapture noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #19 align 2 personality ptr @__gxx_personality_v0 { entry: - %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %new.isnull = icmp eq ptr %call, null br i1 %new.isnull, label %new.cont, label %new.notnull @@ -6736,7 +6734,7 @@ _ZNKSt14default_deleteIN8simdjson8internal25dom_parser_implementationEEclEPS2_.e %vtable.i.i.i = load ptr, ptr %0, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 9 %1 = load ptr, ptr %vfn.i.i.i, align 8 - tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #52 + tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #51 %.pr = load ptr, ptr %dst, align 8 br label %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -6749,7 +6747,7 @@ if.end: ; preds = %_ZNSt10unique_ptrIN %vtable = load ptr, ptr %2, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 6 %3 = load ptr, ptr %vfn, align 8 - %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #52 + %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #51 %tobool.not = icmp eq i32 %call4, 0 br i1 %tobool.not, label %if.end6, label %return @@ -6758,7 +6756,7 @@ if.end6: ; preds = %if.end %vtable9 = load ptr, ptr %4, align 8 %vfn10 = getelementptr inbounds ptr, ptr %vtable9, i64 7 %5 = load ptr, ptr %vfn10, align 8 - %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #52 + %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #51 br label %return return: ; preds = %if.end6, %if.end, %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -6766,8 +6764,8 @@ return: ; preds = %if.end6, %if.end, % ret i32 %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef i32 @_ZNK8simdjson7icelake14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len, ptr noundef %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #21 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef i32 @_ZNK8simdjson7icelake14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len, ptr noundef %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { entry: %block.i = alloca [128 x i8], align 16 %out_block.i = alloca [128 x i8], align 16 @@ -6986,8 +6984,8 @@ _ZN8simdjson7icelake12_GLOBAL__N_16stage113json_minifier6minifyILm128EEENS_10err ret i32 %..i.i.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef %streaming) unnamed_addr #21 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef %streaming) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { entry: %reader.i = alloca %"struct.simdjson::icelake::(anonymous namespace)::stage1::buf_block_reader.104", align 8 %indexer.i = alloca %"class.simdjson::icelake::(anonymous namespace)::stage1::json_structural_indexer", align 64 @@ -7017,56 +7015,54 @@ if.then6.i: ; preds = %if.end4.i br i1 %cmp.i14.i, label %if.then.i.i, label %if.end21.i.i if.then.i.i: ; preds = %if.then6.i - switch i64 %_len, label %if.end21.i.i [ - i64 2, label %sw.bb.i.i - i64 1, label %sw.bb12.i.i - ] + %switch.i.i = icmp eq i64 %_len, 2 + br i1 %switch.i.i, label %sw.bb.i.i, label %return.sink.split.i.thread43.i sw.bb.i.i: ; preds = %if.then.i.i %arrayidx.i.i = getelementptr i8, ptr %_buf, i64 1 %1 = load i8, ptr %arrayidx.i.i, align 1 %cmp2.i.i = icmp ugt i8 %1, -65 - br i1 %cmp2.i.i, label %if.end11.i, label %if.end.i.i - -if.end.i.i: ; preds = %sw.bb.i.i - %2 = load i8, ptr %_buf, align 1 - %cmp8.i.i = icmp ugt i8 %2, -33 - br i1 %cmp8.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + br i1 %cmp2.i.i, label %if.end11.i, label %return.sink.split.i.thread.i -sw.bb12.i.i: ; preds = %if.then.i.i - %3 = load i8, ptr %_buf, align 1 - %cmp16.i.i = icmp ult i8 %3, -64 - %sub13.len.i.i = zext i1 %cmp16.i.i to i64 - br label %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i - -if.end21.i.i: ; preds = %if.then.i.i, %if.then6.i +if.end21.i.i: ; preds = %if.then6.i %sub22.i.i = add i64 %_len, -1 %arrayidx23.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub22.i.i - %4 = load i8, ptr %arrayidx23.i.i, align 1 - %cmp25.i.i = icmp ugt i8 %4, -65 + %2 = load i8, ptr %arrayidx23.i.i, align 1 + %cmp25.i.i = icmp ugt i8 %2, -65 br i1 %cmp25.i.i, label %if.end11.i, label %if.end28.i.i if.end28.i.i: ; preds = %if.end21.i.i %sub29.i.i = add i64 %_len, -2 %arrayidx30.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub29.i.i - %5 = load i8, ptr %arrayidx30.i.i, align 1 - %cmp32.i.i = icmp ugt i8 %5, -33 - br i1 %cmp32.i.i, label %if.end11.i, label %if.end35.i.i + %3 = load i8, ptr %arrayidx30.i.i, align 1 + %cmp32.i.i = icmp ugt i8 %3, -33 + br i1 %cmp32.i.i, label %if.end11.i, label %return.sink.split.i.i -if.end35.i.i: ; preds = %if.end28.i.i +return.sink.split.i.i: ; preds = %if.end28.i.i %sub36.i.i = add i64 %_len, -3 %arrayidx37.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub36.i.i - %6 = load i8, ptr %arrayidx37.i.i, align 1 - %cmp39.i.i = icmp ugt i8 %6, -17 + %4 = load i8, ptr %arrayidx37.i.i, align 1 + %cmp39.i.i = icmp ugt i8 %4, -17 br i1 %cmp39.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, label %if.end11.i -_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i: ; preds = %if.end35.i.i, %sw.bb12.i.i - %retval.0.i.i = phi i64 [ %sub13.len.i.i, %sw.bb12.i.i ], [ %sub36.i.i, %if.end35.i.i ] - %cmp8.i = icmp eq i64 %retval.0.i.i, 0 +return.sink.split.i.thread43.i: ; preds = %if.then.i.i + %5 = getelementptr i8, ptr %_buf, i64 %_len + %arrayidx14.i.i = getelementptr i8, ptr %5, i64 -1 + %6 = load i8, ptr %arrayidx14.i.i, align 1 + %cmp39.i47.i = icmp ugt i8 %6, -65 + br i1 %cmp39.i47.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + +return.sink.split.i.thread.i: ; preds = %sw.bb.i.i + %7 = load i8, ptr %_buf, align 1 + %cmp39.i31.i = icmp ugt i8 %7, -33 + br i1 %cmp39.i31.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + +_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i: ; preds = %return.sink.split.i.i + %cmp8.i = icmp eq i64 %sub36.i.i, 0 br i1 %cmp8.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i -if.end11.i: ; preds = %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %if.end35.i.i, %if.end28.i.i, %if.end21.i.i, %if.end.i.i, %sw.bb.i.i, %if.end4.i - %len.addr.0.i = phi i64 [ %retval.0.i.i, %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ %_len, %if.end4.i ], [ %_len, %if.end35.i.i ], [ %sub29.i.i, %if.end28.i.i ], [ %sub22.i.i, %if.end21.i.i ], [ 2, %if.end.i.i ], [ 1, %sw.bb.i.i ] +if.end11.i: ; preds = %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %return.sink.split.i.thread.i, %return.sink.split.i.thread43.i, %return.sink.split.i.i, %if.end28.i.i, %if.end21.i.i, %sw.bb.i.i, %if.end4.i + %len.addr.0.i = phi i64 [ %sub36.i.i, %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ %_len, %if.end4.i ], [ %_len, %return.sink.split.i.i ], [ %sub29.i.i, %if.end28.i.i ], [ %sub22.i.i, %if.end21.i.i ], [ 1, %sw.bb.i.i ], [ 2, %return.sink.split.i.thread.i ], [ 1, %return.sink.split.i.thread43.i ] store ptr %_buf, ptr %reader.i, align 8 %len.i.i = getelementptr inbounds %"struct.simdjson::icelake::(anonymous namespace)::stage1::buf_block_reader.104", ptr %reader.i, i64 0, i32 1 store i64 %len.addr.0.i, ptr %len.i.i, align 8 @@ -7076,22 +7072,22 @@ if.end11.i: ; preds = %_ZN8simdjson7icelak %idx.i.i = getelementptr inbounds %"struct.simdjson::icelake::(anonymous namespace)::stage1::buf_block_reader.104", ptr %reader.i, i64 0, i32 3 store i64 0, ptr %idx.i.i, align 8 %structural_indexes.i = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %this, i64 0, i32 2 - %7 = load ptr, ptr %structural_indexes.i, align 8 + %8 = load ptr, ptr %structural_indexes.i, align 8 %checker.i.i = getelementptr inbounds %"class.simdjson::icelake::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 2 %indexer.i.i = getelementptr inbounds %"class.simdjson::icelake::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 64 dereferenceable(24) %indexer.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 64 dereferenceable(192) %checker.i.i, i8 0, i64 192, i1 false) - store ptr %7, ptr %indexer.i.i, align 64 + store ptr %8, ptr %indexer.i.i, align 64 %prev_structurals.i.i = getelementptr inbounds %"class.simdjson::icelake::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %prev_structurals.i.i, i8 0, i64 16, i1 false) - %cmp.i1537.not.i = icmp ult i64 %len.addr.0.i, 129 - br i1 %cmp.i1537.not.i, label %_ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i, label %while.body.i + %cmp.i1540.not.i = icmp ult i64 %len.addr.0.i, 129 + br i1 %cmp.i1540.not.i, label %_ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i, label %while.body.i while.body.i: ; preds = %if.end11.i, %while.body.i - %reader.val1038.i = phi i64 [ %reader.val10.i, %while.body.i ], [ 0, %if.end11.i ] + %reader.val1041.i = phi i64 [ %reader.val10.i, %while.body.i ], [ 0, %if.end11.i ] %reader.val11.i = load ptr, ptr %reader.i, align 8 - %arrayidx.i16.i = getelementptr inbounds i8, ptr %reader.val11.i, i64 %reader.val1038.i - call fastcc void @_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 64 dereferenceable(280) %indexer.i, ptr noundef %arrayidx.i16.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 + %arrayidx.i16.i = getelementptr inbounds i8, ptr %reader.val11.i, i64 %reader.val1041.i + call fastcc void @_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 64 dereferenceable(280) %indexer.i, ptr noundef %arrayidx.i16.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 %reader.val.i = load i64, ptr %lenminusstep.i.i, align 8 %reader.val10.i = load i64, ptr %idx.i.i, align 8 %cmp.i15.i = icmp ult i64 %reader.val10.i, %reader.val.i @@ -7107,88 +7103,88 @@ while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE br label %_ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i _ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i: ; preds = %while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge, %if.end11.i - %8 = phi ptr [ %.pre, %while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %_buf, %if.end11.i ] - %reader.val10.lcssa42.i = phi i64 [ %reader.val10.i, %while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ 0, %if.end11.i ] - %9 = phi i64 [ %.pre.i, %while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %len.addr.0.i, %if.end11.i ] - %add.ptr.i.i = getelementptr inbounds i8, ptr %8, i64 %reader.val10.lcssa42.i - %sub.i.i = sub i64 %9, %reader.val10.lcssa42.i - %10 = icmp ugt i64 %sub.i.i, 127 - %11 = sub i64 128, %sub.i.i - %12 = select i1 %10, i64 0, i64 %11 - %13 = getelementptr i8, ptr %block.i, i64 %sub.i.i - call void @llvm.memset.p0.i64(ptr align 1 %13, i8 32, i64 %12, i1 false) + %9 = phi ptr [ %.pre, %while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %_buf, %if.end11.i ] + %reader.val10.lcssa53.i = phi i64 [ %reader.val10.i, %while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ 0, %if.end11.i ] + %10 = phi i64 [ %.pre.i, %while.end.i._ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i_crit_edge ], [ %len.addr.0.i, %if.end11.i ] + %add.ptr.i.i = getelementptr inbounds i8, ptr %9, i64 %reader.val10.lcssa53.i + %sub.i.i = sub i64 %10, %reader.val10.lcssa53.i + %11 = icmp ugt i64 %sub.i.i, 127 + %12 = sub i64 128, %sub.i.i + %13 = select i1 %11, i64 0, i64 %12 + %14 = getelementptr i8, ptr %block.i, i64 %sub.i.i + call void @llvm.memset.p0.i64(ptr align 1 %14, i8 32, i64 %13, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %block.i, ptr align 1 %add.ptr.i.i, i64 %sub.i.i, i1 false) - call fastcc void @_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 64 dereferenceable(280) %indexer.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 - %14 = load i64, ptr %prev_structurals.i.i, align 8 - %cmp.i.i.i = icmp eq i64 %14, 0 + call fastcc void @_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 64 dereferenceable(280) %indexer.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 + %15 = load i64, ptr %prev_structurals.i.i, align 8 + %cmp.i.i.i = icmp eq i64 %15, 0 br i1 %cmp.i.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i, label %if.end.i.i.i if.end.i.i.i: ; preds = %_ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i %reader.val13.i = load i64, ptr %idx.i.i, align 8 - %15 = trunc i64 %reader.val13.i to i32 - %conv.i.i = add i32 %15, -64 - %16 = bitcast i64 %14 to <64 x i1> - %17 = tail call <64 x i8> @llvm.x86.avx512.mask.compress.v64i8(<64 x i8> , <64 x i8> zeroinitializer, <64 x i1> %16) + %16 = trunc i64 %reader.val13.i to i32 + %conv.i.i = add i32 %16, -64 + %17 = bitcast i64 %15 to <64 x i1> + %18 = tail call <64 x i8> @llvm.x86.avx512.mask.compress.v64i8(<64 x i8> , <64 x i8> zeroinitializer, <64 x i1> %17) %vecinit.i66.i.i.i = insertelement <16 x i32> poison, i32 %conv.i.i, i64 0 %vecinit15.i81.i.i.i = shufflevector <16 x i32> %vecinit.i66.i.i.i, <16 x i32> poison, <16 x i32> zeroinitializer - %18 = tail call noundef i64 @llvm.ctpop.i64(i64 %14), !range !45 - %19 = shufflevector <64 x i8> %17, <64 x i8> poison, <16 x i32> - %conv.i88.i.i.i = zext <16 x i8> %19 to <16 x i32> - %20 = load ptr, ptr %indexer.i.i, align 64 + %19 = tail call noundef i64 @llvm.ctpop.i64(i64 %15), !range !45 + %20 = shufflevector <64 x i8> %18, <64 x i8> poison, <16 x i32> + %conv.i88.i.i.i = zext <16 x i8> %20 to <16 x i32> + %21 = load ptr, ptr %indexer.i.i, align 64 %add.i117.i.i.i = add <16 x i32> %vecinit15.i81.i.i.i, %conv.i88.i.i.i - store <16 x i32> %add.i117.i.i.i, ptr %20, align 1 - %cmp12.i.i.i = icmp ugt i64 %18, 16 + store <16 x i32> %add.i117.i.i.i, ptr %21, align 1 + %cmp12.i.i.i = icmp ugt i64 %19, 16 br i1 %cmp12.i.i.i, label %if.then13.i.i.i, label %if.end45.i.i.i if.then13.i.i.i: ; preds = %if.end.i.i.i - %21 = shufflevector <64 x i8> %17, <64 x i8> poison, <16 x i32> - %conv.i86.i.i.i = zext <16 x i8> %21 to <16 x i32> - %add.ptr.i.i.i = getelementptr inbounds i32, ptr %20, i64 16 + %22 = shufflevector <64 x i8> %18, <64 x i8> poison, <16 x i32> + %conv.i86.i.i.i = zext <16 x i8> %22 to <16 x i32> + %add.ptr.i.i.i = getelementptr inbounds i32, ptr %21, i64 16 %add.i110.i.i.i = add <16 x i32> %vecinit15.i81.i.i.i, %conv.i86.i.i.i store <16 x i32> %add.i110.i.i.i, ptr %add.ptr.i.i.i, align 1 - %cmp21.i.i.i = icmp ugt i64 %18, 32 + %cmp21.i.i.i = icmp ugt i64 %19, 32 br i1 %cmp21.i.i.i, label %if.then22.i.i.i, label %if.end45.i.i.i if.then22.i.i.i: ; preds = %if.then13.i.i.i - %22 = shufflevector <64 x i8> %17, <64 x i8> poison, <16 x i32> - %conv.i84.i.i.i = zext <16 x i8> %22 to <16 x i32> - %add.ptr27.i.i.i = getelementptr inbounds i32, ptr %20, i64 32 + %23 = shufflevector <64 x i8> %18, <64 x i8> poison, <16 x i32> + %conv.i84.i.i.i = zext <16 x i8> %23 to <16 x i32> + %add.ptr27.i.i.i = getelementptr inbounds i32, ptr %21, i64 32 %add.i103.i.i.i = add <16 x i32> %vecinit15.i81.i.i.i, %conv.i84.i.i.i store <16 x i32> %add.i103.i.i.i, ptr %add.ptr27.i.i.i, align 1 - %cmp32.i.i.i = icmp ugt i64 %18, 48 + %cmp32.i.i.i = icmp ugt i64 %19, 48 br i1 %cmp32.i.i.i, label %if.then33.i.i.i, label %if.end45.i.i.i if.then33.i.i.i: ; preds = %if.then22.i.i.i - %23 = shufflevector <64 x i8> %17, <64 x i8> poison, <16 x i32> - %conv.i.i.i.i = zext <16 x i8> %23 to <16 x i32> - %add.ptr38.i.i.i = getelementptr inbounds i32, ptr %20, i64 48 + %24 = shufflevector <64 x i8> %18, <64 x i8> poison, <16 x i32> + %conv.i.i.i.i = zext <16 x i8> %24 to <16 x i32> + %add.ptr38.i.i.i = getelementptr inbounds i32, ptr %21, i64 48 %add.i.i.i.i = add <16 x i32> %vecinit15.i81.i.i.i, %conv.i.i.i.i store <16 x i32> %add.i.i.i.i, ptr %add.ptr38.i.i.i, align 1 br label %if.end45.i.i.i if.end45.i.i.i: ; preds = %if.then33.i.i.i, %if.then22.i.i.i, %if.then13.i.i.i, %if.end.i.i.i - %add.ptr47.i.i.i = getelementptr inbounds i32, ptr %20, i64 %18 + %add.ptr47.i.i.i = getelementptr inbounds i32, ptr %21, i64 %19 store ptr %add.ptr47.i.i.i, ptr %indexer.i.i, align 64 br label %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i _ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i: ; preds = %if.end45.i.i.i, %_ZNK8simdjson7icelake12_GLOBAL__N_16stage116buf_block_readerILm128EE13get_remainderEPh.exit.i - %24 = getelementptr inbounds i8, ptr %indexer.i, i64 16 - %this.val.i.i = load i64, ptr %24, align 16 + %25 = getelementptr inbounds i8, ptr %indexer.i, i64 16 + %this.val.i.i = load i64, ptr %25, align 16 %tobool.i.not.i.not.i.i = icmp eq i64 %this.val.i.i, 0 %brmerge.i.i = select i1 %cmp.i.i, i1 true, i1 %tobool.i.not.i.not.i.i - br i1 %brmerge.i.i, label %if.end.i25.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit + br i1 %brmerge.i.i, label %if.end.i24.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -if.end.i25.i: ; preds = %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i +if.end.i24.i: ; preds = %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i %unescaped_chars_error.i.i = getelementptr inbounds %"class.simdjson::icelake::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 5 - %25 = load i64, ptr %unescaped_chars_error.i.i, align 16 - %tobool9.not.i.i = icmp eq i64 %25, 0 + %26 = load i64, ptr %unescaped_chars_error.i.i, align 16 + %tobool9.not.i.i = icmp eq i64 %26, 0 br i1 %tobool9.not.i.i, label %if.end11.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -if.end11.i.i: ; preds = %if.end.i25.i - %26 = load ptr, ptr %indexer.i.i, align 64 - %27 = load ptr, ptr %structural_indexes.i, align 8 - %sub.ptr.lhs.cast.i.i = ptrtoint ptr %26 to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %27 to i64 +if.end11.i.i: ; preds = %if.end.i24.i + %27 = load ptr, ptr %indexer.i.i, align 64 + %28 = load ptr, ptr %structural_indexes.i, align 8 + %sub.ptr.lhs.cast.i.i = ptrtoint ptr %27 to i64 + %sub.ptr.rhs.cast.i.i = ptrtoint ptr %28 to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %sub.ptr.div.i.i = lshr exact i64 %sub.ptr.sub.i.i, 2 %conv14.i.i = trunc i64 %sub.ptr.div.i.i to i32 @@ -7196,33 +7192,33 @@ if.end11.i.i: ; preds = %if.end.i25.i store i32 %conv14.i.i, ptr %n_structural_indexes.i.i, align 8 %conv15.i.i = trunc i64 %len.addr.0.i to i32 %conv18.i.i = and i64 %sub.ptr.div.i.i, 4294967295 - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %27, i64 %conv18.i.i + %arrayidx.i.i.i = getelementptr inbounds i32, ptr %28, i64 %conv18.i.i store i32 %conv15.i.i, ptr %arrayidx.i.i.i, align 4 - %28 = load i32, ptr %n_structural_indexes.i.i, align 8 - %add.i.i = add i32 %28, 1 + %29 = load i32, ptr %n_structural_indexes.i.i, align 8 + %add.i.i = add i32 %29, 1 %conv23.i.i = zext i32 %add.i.i to i64 - %29 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i41.i.i = getelementptr inbounds i32, ptr %29, i64 %conv23.i.i + %30 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i41.i.i = getelementptr inbounds i32, ptr %30, i64 %conv23.i.i store i32 %conv15.i.i, ptr %arrayidx.i41.i.i, align 4 - %30 = load i32, ptr %n_structural_indexes.i.i, align 8 - %add27.i.i = add i32 %30, 2 + %31 = load i32, ptr %n_structural_indexes.i.i, align 8 + %add27.i.i = add i32 %31, 2 %conv28.i.i = zext i32 %add27.i.i to i64 - %31 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i42.i.i = getelementptr inbounds i32, ptr %31, i64 %conv28.i.i + %32 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i42.i.i = getelementptr inbounds i32, ptr %32, i64 %conv28.i.i store i32 0, ptr %arrayidx.i42.i.i, align 4 %next_structural_index.i.i = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %this, i64 0, i32 3 store i32 0, ptr %next_structural_index.i.i, align 8 - %32 = load i32, ptr %n_structural_indexes.i.i, align 8 - %cmp31.i.i = icmp eq i32 %32, 0 + %33 = load i32, ptr %n_structural_indexes.i.i, align 8 + %cmp31.i.i = icmp eq i32 %33, 0 br i1 %cmp31.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end36.i.i if.end36.i.i: ; preds = %if.end11.i.i - %sub39.i.i = add i32 %32, -1 + %sub39.i.i = add i32 %33, -1 %conv40.i.i = zext i32 %sub39.i.i to i64 - %33 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i43.i.i = getelementptr inbounds i32, ptr %33, i64 %conv40.i.i - %34 = load i32, ptr %arrayidx.i43.i.i, align 4 - %conv42.i.i = zext i32 %34 to i64 + %34 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i43.i.i = getelementptr inbounds i32, ptr %34, i64 %conv40.i.i + %35 = load i32, ptr %arrayidx.i43.i.i, align 4 + %conv42.i.i = zext i32 %35 to i64 %cmp43.i.i = icmp ult i64 %len.addr.0.i, %conv42.i.i br i1 %cmp43.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end48.i.i @@ -7246,8 +7242,8 @@ if.end61.i.i: ; preds = %if.then52.i.i, %if. br i1 %cmp63.not.i.i, label %if.then66.i.i, label %if.end72.i.i if.then66.i.i: ; preds = %if.end61.i.i - %35 = load i32, ptr %33, align 4 - %cmp69.i.i = icmp eq i32 %35, 0 + %36 = load i32, ptr %34, align 4 + %cmp69.i.i = icmp eq i32 %36, 0 br i1 %cmp69.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.else.i.i if.else.i.i: ; preds = %if.then66.i.i @@ -7269,19 +7265,19 @@ if.end81.i.i: ; preds = %if.then78.i.i, %if. %call82.i.i = tail call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr noundef nonnull align 8 dereferenceable(88) %this) store i32 %call82.i.i, ptr %n_structural_indexes.i.i, align 8 %conv86.i.i = zext i32 %call82.i.i to i64 - %arrayidx.i44.i.i = getelementptr inbounds i32, ptr %33, i64 %conv86.i.i - %36 = load i32, ptr %arrayidx.i44.i.i, align 4 + %arrayidx.i44.i.i = getelementptr inbounds i32, ptr %34, i64 %conv86.i.i + %37 = load i32, ptr %arrayidx.i44.i.i, align 4 %add90.i.i = add i32 %call82.i.i, 1 %conv91.i.i = zext i32 %add90.i.i to i64 - %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %33, i64 %conv91.i.i - store i32 %36, ptr %arrayidx.i45.i.i, align 4 - %37 = load i32, ptr %n_structural_indexes.i.i, align 8 - %conv96.i.i = zext i32 %37 to i64 - %38 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i46.i.i = getelementptr inbounds i32, ptr %38, i64 %conv96.i.i + %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %34, i64 %conv91.i.i + store i32 %37, ptr %arrayidx.i45.i.i, align 4 + %38 = load i32, ptr %n_structural_indexes.i.i, align 8 + %conv96.i.i = zext i32 %38 to i64 + %39 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i46.i.i = getelementptr inbounds i32, ptr %39, i64 %conv96.i.i store i32 %conv15.i.i, ptr %arrayidx.i46.i.i, align 4 - %39 = load i32, ptr %n_structural_indexes.i.i, align 8 - %cmp99.i.i = icmp eq i32 %39, 0 + %40 = load i32, ptr %n_structural_indexes.i.i, align 8 + %cmp99.i.i = icmp eq i32 %40, 0 br i1 %cmp99.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end106.i.i if.end106.i.i: ; preds = %if.end81.i.i, %if.end72.i.i, %if.end48.i.i @@ -7290,22 +7286,22 @@ if.end106.i.i: ; preds = %if.end81.i.i, %if.e %this.val.i.i.i.i = load <8 x i64>, ptr %checker.i.i, align 64 %or.i.i.i.i.i.i = or <8 x i64> %this.val.i.i.i.i, %agg.tmp.sroa.0.0.copyload.i.i.i %checker.val50.cast.i.i = bitcast <8 x i64> %or.i.i.i.i.i.i to <64 x i8> - %40 = icmp ne <64 x i8> %checker.val50.cast.i.i, zeroinitializer - %41 = bitcast <64 x i1> %40 to i64 - %tobool.not.i.i.not.i.i.i = icmp eq i64 %41, 0 + %41 = icmp ne <64 x i8> %checker.val50.cast.i.i, zeroinitializer + %42 = bitcast <64 x i1> %41 to i64 + %tobool.not.i.i.not.i.i.i = icmp eq i64 %42, 0 %cond.i.i.i = select i1 %tobool.not.i.i.not.i.i.i, i32 0, i32 10 br label %_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit: ; preds = %entry, %if.end.i, %if.end.i.i, %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %while.end.i, %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i, %if.end.i25.i, %if.end11.i.i, %if.end36.i.i, %if.then52.i.i, %if.then66.i.i, %if.else.i.i, %if.end81.i.i, %if.end106.i.i - %retval.0.i = phi i32 [ 1, %entry ], [ 12, %if.end.i ], [ 10, %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ 12, %if.else.i.i ], [ %cond.i.i.i, %if.end106.i.i ], [ 13, %if.end.i25.i ], [ 12, %if.end11.i.i ], [ 23, %if.end36.i.i ], [ 1, %if.then52.i.i ], [ 1, %if.then66.i.i ], [ 12, %if.end81.i.i ], [ 14, %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i ], [ 10, %if.end.i.i ], [ 23, %while.end.i ] +_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer5indexILm128EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit: ; preds = %entry, %if.end.i, %return.sink.split.i.thread43.i, %return.sink.split.i.thread.i, %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %while.end.i, %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i, %if.end.i24.i, %if.end11.i.i, %if.end36.i.i, %if.then52.i.i, %if.then66.i.i, %if.else.i.i, %if.end81.i.i, %if.end106.i.i + %retval.0.i = phi i32 [ 1, %entry ], [ 12, %if.end.i ], [ 10, %_ZN8simdjson7icelake12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ 12, %if.else.i.i ], [ %cond.i.i.i, %if.end106.i.i ], [ 13, %if.end.i24.i ], [ 12, %if.end11.i.i ], [ 23, %if.end36.i.i ], [ 1, %if.then52.i.i ], [ 1, %if.then66.i.i ], [ 12, %if.end81.i.i ], [ 14, %_ZN8simdjson7icelake12_GLOBAL__N_16stage111bit_indexer5writeEjm.exit.i.i ], [ 10, %return.sink.split.i.thread.i ], [ 23, %while.end.i ], [ 10, %return.sink.split.i.thread43.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %reader.i) call void @llvm.lifetime.end.p0(i64 320, ptr nonnull %indexer.i) call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %block.i) ret i32 %retval.0.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable -define dso_local noundef zeroext i1 @_ZNK8simdjson7icelake14implementation13validate_utf8EPKcm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len) unnamed_addr #22 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable +define dso_local noundef zeroext i1 @_ZNK8simdjson7icelake14implementation13validate_utf8EPKcm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len) unnamed_addr #21 align 2 personality ptr @__gxx_personality_v0 { entry: %block.sroa.0.i.i = alloca <8 x i64>, align 64 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %block.sroa.0.i.i) @@ -7440,7 +7436,7 @@ invoke.cont: ; preds = %if.else.i10.i.i, %_ } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #19 align 2 personality ptr @__gxx_personality_v0 { entry: %builder.i = alloca %"struct.simdjson::icelake::(anonymous namespace)::stage2::tape_builder", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %builder.i) @@ -7522,7 +7518,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #52 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #51 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -7643,7 +7639,7 @@ sw.bb99.i.i: ; preds = %if.end83.i.i br i1 %cmp102.i.i, label %sw.epilog117.sink.split.i.i, label %array_begin.i.i sw.default111.i.i: ; preds = %if.end83.i.i - %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #52 + %call113.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #51 %tobool114.not.i.i = icmp eq i32 %call113.i.i, 0 br i1 %tobool114.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -7833,7 +7829,7 @@ sw.bb199.i.i: ; preds = %array_value.i.i br i1 %cmp202.i.i, label %sw.epilog217.sink.split.i.i, label %array_begin.i.i sw.default211.i.i: ; preds = %array_value.i.i - %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #52 + %call213.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #51 %tobool214.not.i.i = icmp eq i32 %call213.i.i, 0 br i1 %tobool214.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -7942,7 +7938,7 @@ _ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation11stage2_nextERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation11stage2_nextERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #19 align 2 personality ptr @__gxx_personality_v0 { entry: %builder.i = alloca %"struct.simdjson::icelake::(anonymous namespace)::stage2::tape_builder", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %builder.i) @@ -8002,7 +7998,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #52 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #51 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -8123,7 +8119,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #52 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #51 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -8313,7 +8309,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #52 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #51 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -8417,15 +8413,15 @@ _ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS ret i32 %retval.0.i.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef ptr @_ZNK8simdjson7icelake25dom_parser_implementation12parse_stringEPKhPhb(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) unnamed_addr #23 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef ptr @_ZNK8simdjson7icelake25dom_parser_implementation12parse_stringEPKhPhb(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) unnamed_addr #22 align 2 personality ptr @__gxx_personality_v0 { entry: %call = tail call fastcc noundef ptr @_ZN8simdjson7icelake12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr noundef %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) ret ptr %call } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define internal fastcc noundef ptr @_ZN8simdjson7icelake12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr nocapture noundef readonly %src, ptr noundef writeonly %dst, i1 noundef zeroext %allow_replacement) unnamed_addr #21 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define internal fastcc noundef ptr @_ZN8simdjson7icelake12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr nocapture noundef readonly %src, ptr noundef writeonly %dst, i1 noundef zeroext %allow_replacement) unnamed_addr #20 { entry: %.val56 = load <8 x i64>, ptr %src, align 1 store <8 x i64> %.val56, ptr %dst, align 1 @@ -8678,8 +8674,8 @@ return: ; preds = %if.else23.i.i, %if. ret ptr %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef ptr @_ZNK8simdjson7icelake25dom_parser_implementation19parse_wobbly_stringEPKhPh(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef writeonly %dst) unnamed_addr #21 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef ptr @_ZNK8simdjson7icelake25dom_parser_implementation19parse_wobbly_stringEPKhPh(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef writeonly %dst) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { entry: %.val51.i = load <8 x i64>, ptr %src, align 1 store <8 x i64> %.val51.i, ptr %dst, align 1 @@ -8920,14 +8916,14 @@ invoke.cont: ; preds = %if.else.i, %if.else } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation5parseEPKhmRNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #20 align 2 { +define dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation5parseEPKhmRNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #19 align 2 { entry: - %call = tail call noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #52, !range !44 + %call = tail call noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #51, !range !44 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %if.end, label %return if.end: ; preds = %entry - %call2 = tail call noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #52 + %call2 = tail call noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #51 br label %return return: ; preds = %entry, %if.end @@ -8936,9 +8932,9 @@ return: ; preds = %entry, %if.end } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZNK8simdjson8westmere14implementation32create_dom_parser_implementationEmmRSt10unique_ptrINS_8internal25dom_parser_implementationESt14default_deleteIS4_EE(ptr nocapture nonnull readnone align 8 %this, i64 noundef %capacity, i64 noundef %max_depth, ptr nocapture noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZNK8simdjson8westmere14implementation32create_dom_parser_implementationEmmRSt10unique_ptrINS_8internal25dom_parser_implementationESt14default_deleteIS4_EE(ptr nocapture nonnull readnone align 8 %this, i64 noundef %capacity, i64 noundef %max_depth, ptr nocapture noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #23 align 2 personality ptr @__gxx_personality_v0 { entry: - %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef dereferenceable_or_null(88) ptr @_ZnwmRKSt9nothrow_t(i64 noundef 88, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %new.isnull = icmp eq ptr %call, null br i1 %new.isnull, label %new.cont, label %new.notnull @@ -8966,7 +8962,7 @@ _ZNKSt14default_deleteIN8simdjson8internal25dom_parser_implementationEEclEPS2_.e %vtable.i.i.i = load ptr, ptr %0, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 9 %1 = load ptr, ptr %vfn.i.i.i, align 8 - tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #52 + tail call void %1(ptr noundef nonnull align 8 dereferenceable(48) %0) #51 %.pr = load ptr, ptr %dst, align 8 br label %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -8979,7 +8975,7 @@ if.end: ; preds = %_ZNSt10unique_ptrIN %vtable = load ptr, ptr %2, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 6 %3 = load ptr, ptr %vfn, align 8 - %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #52 + %call4 = tail call noundef i32 %3(ptr noundef nonnull align 8 dereferenceable(48) %2, i64 noundef %capacity) #51 %tobool.not = icmp eq i32 %call4, 0 br i1 %tobool.not, label %if.end6, label %return @@ -8988,7 +8984,7 @@ if.end6: ; preds = %if.end %vtable9 = load ptr, ptr %4, align 8 %vfn10 = getelementptr inbounds ptr, ptr %vtable9, i64 7 %5 = load ptr, ptr %vfn10, align 8 - %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #52 + %call11 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %max_depth) #51 br label %return return: ; preds = %if.end6, %if.end, %_ZNSt10unique_ptrIN8simdjson8internal25dom_parser_implementationESt14default_deleteIS2_EE5resetEPS2_.exit @@ -8996,8 +8992,8 @@ return: ; preds = %if.end6, %if.end, % ret i32 %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef i32 @_ZNK8simdjson8westmere14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len, ptr noundef %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #25 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef i32 @_ZNK8simdjson8westmere14implementation6minifyEPKhmPhRm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len, ptr noundef %dst, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %dst_len) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { entry: %block.i = alloca [64 x i8], align 16 %out_block.i = alloca [64 x i8], align 16 @@ -9436,8 +9432,8 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage113json_minifier6minifyILm64EEENS_10err ret i32 %..i.i.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef %streaming) unnamed_addr #25 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef %streaming) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { entry: %reader.i = alloca %"struct.simdjson::westmere::(anonymous namespace)::stage1::buf_block_reader", align 8 %indexer.i = alloca %"class.simdjson::westmere::(anonymous namespace)::stage1::json_structural_indexer", align 16 @@ -9467,56 +9463,54 @@ if.then6.i: ; preds = %if.end4.i br i1 %cmp.i14.i, label %if.then.i.i, label %if.end21.i.i if.then.i.i: ; preds = %if.then6.i - switch i64 %_len, label %if.end21.i.i [ - i64 2, label %sw.bb.i.i - i64 1, label %sw.bb12.i.i - ] + %switch.i.i = icmp eq i64 %_len, 2 + br i1 %switch.i.i, label %sw.bb.i.i, label %return.sink.split.i.thread43.i sw.bb.i.i: ; preds = %if.then.i.i %arrayidx.i.i = getelementptr i8, ptr %_buf, i64 1 %1 = load i8, ptr %arrayidx.i.i, align 1 %cmp2.i.i = icmp ugt i8 %1, -65 - br i1 %cmp2.i.i, label %if.end11.i, label %if.end.i.i - -if.end.i.i: ; preds = %sw.bb.i.i - %2 = load i8, ptr %_buf, align 1 - %cmp8.i.i = icmp ugt i8 %2, -33 - br i1 %cmp8.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i - -sw.bb12.i.i: ; preds = %if.then.i.i - %3 = load i8, ptr %_buf, align 1 - %cmp16.i.i = icmp ult i8 %3, -64 - %sub13.len.i.i = zext i1 %cmp16.i.i to i64 - br label %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i + br i1 %cmp2.i.i, label %if.end11.i, label %return.sink.split.i.thread.i -if.end21.i.i: ; preds = %if.then.i.i, %if.then6.i +if.end21.i.i: ; preds = %if.then6.i %sub22.i.i = add i64 %_len, -1 %arrayidx23.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub22.i.i - %4 = load i8, ptr %arrayidx23.i.i, align 1 - %cmp25.i.i = icmp ugt i8 %4, -65 + %2 = load i8, ptr %arrayidx23.i.i, align 1 + %cmp25.i.i = icmp ugt i8 %2, -65 br i1 %cmp25.i.i, label %if.end11.i, label %if.end28.i.i if.end28.i.i: ; preds = %if.end21.i.i %sub29.i.i = add i64 %_len, -2 %arrayidx30.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub29.i.i - %5 = load i8, ptr %arrayidx30.i.i, align 1 - %cmp32.i.i = icmp ugt i8 %5, -33 - br i1 %cmp32.i.i, label %if.end11.i, label %if.end35.i.i + %3 = load i8, ptr %arrayidx30.i.i, align 1 + %cmp32.i.i = icmp ugt i8 %3, -33 + br i1 %cmp32.i.i, label %if.end11.i, label %return.sink.split.i.i -if.end35.i.i: ; preds = %if.end28.i.i +return.sink.split.i.i: ; preds = %if.end28.i.i %sub36.i.i = add i64 %_len, -3 %arrayidx37.i.i = getelementptr inbounds i8, ptr %_buf, i64 %sub36.i.i - %6 = load i8, ptr %arrayidx37.i.i, align 1 - %cmp39.i.i = icmp ugt i8 %6, -17 + %4 = load i8, ptr %arrayidx37.i.i, align 1 + %cmp39.i.i = icmp ugt i8 %4, -17 br i1 %cmp39.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, label %if.end11.i -_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i: ; preds = %if.end35.i.i, %sw.bb12.i.i - %retval.0.i.i = phi i64 [ %sub13.len.i.i, %sw.bb12.i.i ], [ %sub36.i.i, %if.end35.i.i ] - %cmp8.i = icmp eq i64 %retval.0.i.i, 0 +return.sink.split.i.thread43.i: ; preds = %if.then.i.i + %5 = getelementptr i8, ptr %_buf, i64 %_len + %arrayidx14.i.i = getelementptr i8, ptr %5, i64 -1 + %6 = load i8, ptr %arrayidx14.i.i, align 1 + %cmp39.i47.i = icmp ugt i8 %6, -65 + br i1 %cmp39.i47.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + +return.sink.split.i.thread.i: ; preds = %sw.bb.i.i + %7 = load i8, ptr %_buf, align 1 + %cmp39.i31.i = icmp ugt i8 %7, -33 + br i1 %cmp39.i31.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i + +_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i: ; preds = %return.sink.split.i.i + %cmp8.i = icmp eq i64 %sub36.i.i, 0 br i1 %cmp8.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end11.i -if.end11.i: ; preds = %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %if.end35.i.i, %if.end28.i.i, %if.end21.i.i, %if.end.i.i, %sw.bb.i.i, %if.end4.i - %len.addr.0.i = phi i64 [ %retval.0.i.i, %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ %_len, %if.end4.i ], [ %_len, %if.end35.i.i ], [ %sub29.i.i, %if.end28.i.i ], [ %sub22.i.i, %if.end21.i.i ], [ 2, %if.end.i.i ], [ 1, %sw.bb.i.i ] +if.end11.i: ; preds = %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %return.sink.split.i.thread.i, %return.sink.split.i.thread43.i, %return.sink.split.i.i, %if.end28.i.i, %if.end21.i.i, %sw.bb.i.i, %if.end4.i + %len.addr.0.i = phi i64 [ %sub36.i.i, %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ %_len, %if.end4.i ], [ %_len, %return.sink.split.i.i ], [ %sub29.i.i, %if.end28.i.i ], [ %sub22.i.i, %if.end21.i.i ], [ 1, %sw.bb.i.i ], [ 2, %return.sink.split.i.thread.i ], [ 1, %return.sink.split.i.thread43.i ] store ptr %_buf, ptr %reader.i, align 8 %len.i.i = getelementptr inbounds %"struct.simdjson::westmere::(anonymous namespace)::stage1::buf_block_reader", ptr %reader.i, i64 0, i32 1 store i64 %len.addr.0.i, ptr %len.i.i, align 8 @@ -9526,22 +9520,22 @@ if.end11.i: ; preds = %_ZN8simdjson8westme %idx.i.i = getelementptr inbounds %"struct.simdjson::westmere::(anonymous namespace)::stage1::buf_block_reader", ptr %reader.i, i64 0, i32 3 store i64 0, ptr %idx.i.i, align 8 %structural_indexes.i = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %this, i64 0, i32 2 - %7 = load ptr, ptr %structural_indexes.i, align 8 + %8 = load ptr, ptr %structural_indexes.i, align 8 %checker.i.i = getelementptr inbounds %"class.simdjson::westmere::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 2 %indexer.i.i = getelementptr inbounds %"class.simdjson::westmere::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %indexer.i, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %checker.i.i, i8 0, i64 48, i1 false) - store ptr %7, ptr %indexer.i.i, align 16 + store ptr %8, ptr %indexer.i.i, align 16 %prev_structurals.i.i = getelementptr inbounds %"class.simdjson::westmere::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %prev_structurals.i.i, i8 0, i64 16, i1 false) - %cmp.i1537.not.i = icmp ult i64 %len.addr.0.i, 65 - br i1 %cmp.i1537.not.i, label %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i, label %while.body.i + %cmp.i1540.not.i = icmp ult i64 %len.addr.0.i, 65 + br i1 %cmp.i1540.not.i, label %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i, label %while.body.i while.body.i: ; preds = %if.end11.i, %while.body.i - %reader.val1038.i = phi i64 [ %reader.val10.i, %while.body.i ], [ 0, %if.end11.i ] + %reader.val1041.i = phi i64 [ %reader.val10.i, %while.body.i ], [ 0, %if.end11.i ] %reader.val11.i = load ptr, ptr %reader.i, align 8 - %arrayidx.i16.i = getelementptr inbounds i8, ptr %reader.val11.i, i64 %reader.val1038.i - call fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer4stepILm64EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 16 dereferenceable(104) %indexer.i, ptr noundef %arrayidx.i16.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 + %arrayidx.i16.i = getelementptr inbounds i8, ptr %reader.val11.i, i64 %reader.val1041.i + call fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer4stepILm64EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 16 dereferenceable(104) %indexer.i, ptr noundef %arrayidx.i16.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 %reader.val.i = load i64, ptr %lenminusstep.i.i, align 8 %reader.val10.i = load i64, ptr %idx.i.i, align 8 %cmp.i15.i = icmp ult i64 %reader.val10.i, %reader.val.i @@ -9557,40 +9551,40 @@ while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE br label %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i _ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i: ; preds = %while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i_crit_edge, %if.end11.i - %8 = phi ptr [ %.pre, %while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i_crit_edge ], [ %_buf, %if.end11.i ] - %reader.val10.lcssa42.i = phi i64 [ %reader.val10.i, %while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i_crit_edge ], [ 0, %if.end11.i ] - %9 = phi i64 [ %.pre.i, %while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i_crit_edge ], [ %len.addr.0.i, %if.end11.i ] - %add.ptr.i.i = getelementptr inbounds i8, ptr %8, i64 %reader.val10.lcssa42.i - %sub.i.i = sub i64 %9, %reader.val10.lcssa42.i - %10 = icmp ugt i64 %sub.i.i, 63 - %11 = sub i64 64, %sub.i.i - %12 = select i1 %10, i64 0, i64 %11 - %13 = getelementptr i8, ptr %block.i, i64 %sub.i.i - call void @llvm.memset.p0.i64(ptr align 1 %13, i8 32, i64 %12, i1 false) + %9 = phi ptr [ %.pre, %while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i_crit_edge ], [ %_buf, %if.end11.i ] + %reader.val10.lcssa53.i = phi i64 [ %reader.val10.i, %while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i_crit_edge ], [ 0, %if.end11.i ] + %10 = phi i64 [ %.pre.i, %while.end.i._ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i_crit_edge ], [ %len.addr.0.i, %if.end11.i ] + %add.ptr.i.i = getelementptr inbounds i8, ptr %9, i64 %reader.val10.lcssa53.i + %sub.i.i = sub i64 %10, %reader.val10.lcssa53.i + %11 = icmp ugt i64 %sub.i.i, 63 + %12 = sub i64 64, %sub.i.i + %13 = select i1 %11, i64 0, i64 %12 + %14 = getelementptr i8, ptr %block.i, i64 %sub.i.i + call void @llvm.memset.p0.i64(ptr align 1 %14, i8 32, i64 %13, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %block.i, ptr align 1 %add.ptr.i.i, i64 %sub.i.i, i1 false) - call fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer4stepILm64EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 16 dereferenceable(104) %indexer.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #52 + call fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer4stepILm64EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr noundef nonnull align 16 dereferenceable(104) %indexer.i, ptr noundef nonnull %block.i, ptr noundef nonnull align 8 dereferenceable(32) %reader.i) #51 %reader.val13.i = load i64, ptr %idx.i.i, align 8 - %14 = trunc i64 %reader.val13.i to i32 - %conv.i.i = add i32 %14, -64 - %15 = load i64, ptr %prev_structurals.i.i, align 8 - call fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr noundef nonnull align 8 dereferenceable(8) %indexer.i.i, i32 noundef %conv.i.i, i64 noundef %15) - %16 = getelementptr inbounds i8, ptr %indexer.i, i64 16 - %this.val.i.i = load i64, ptr %16, align 16 + %15 = trunc i64 %reader.val13.i to i32 + %conv.i.i = add i32 %15, -64 + %16 = load i64, ptr %prev_structurals.i.i, align 8 + call fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr noundef nonnull align 8 dereferenceable(8) %indexer.i.i, i32 noundef %conv.i.i, i64 noundef %16) + %17 = getelementptr inbounds i8, ptr %indexer.i, i64 16 + %this.val.i.i = load i64, ptr %17, align 16 %tobool.i.not.i.not.i.i = icmp eq i64 %this.val.i.i, 0 %brmerge.i.i = select i1 %cmp.i.i, i1 true, i1 %tobool.i.not.i.not.i.i - br i1 %brmerge.i.i, label %if.end.i25.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit + br i1 %brmerge.i.i, label %if.end.i24.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -if.end.i25.i: ; preds = %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i +if.end.i24.i: ; preds = %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i %unescaped_chars_error.i.i = getelementptr inbounds %"class.simdjson::westmere::(anonymous namespace)::stage1::json_structural_indexer", ptr %indexer.i, i64 0, i32 5 - %17 = load i64, ptr %unescaped_chars_error.i.i, align 16 - %tobool9.not.i.i = icmp eq i64 %17, 0 + %18 = load i64, ptr %unescaped_chars_error.i.i, align 16 + %tobool9.not.i.i = icmp eq i64 %18, 0 br i1 %tobool9.not.i.i, label %if.end11.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -if.end11.i.i: ; preds = %if.end.i25.i - %18 = load ptr, ptr %indexer.i.i, align 16 - %19 = load ptr, ptr %structural_indexes.i, align 8 - %sub.ptr.lhs.cast.i.i = ptrtoint ptr %18 to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %19 to i64 +if.end11.i.i: ; preds = %if.end.i24.i + %19 = load ptr, ptr %indexer.i.i, align 16 + %20 = load ptr, ptr %structural_indexes.i, align 8 + %sub.ptr.lhs.cast.i.i = ptrtoint ptr %19 to i64 + %sub.ptr.rhs.cast.i.i = ptrtoint ptr %20 to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i %sub.ptr.div.i.i = lshr exact i64 %sub.ptr.sub.i.i, 2 %conv14.i.i = trunc i64 %sub.ptr.div.i.i to i32 @@ -9598,33 +9592,33 @@ if.end11.i.i: ; preds = %if.end.i25.i store i32 %conv14.i.i, ptr %n_structural_indexes.i.i, align 8 %conv15.i.i = trunc i64 %len.addr.0.i to i32 %conv18.i.i = and i64 %sub.ptr.div.i.i, 4294967295 - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %19, i64 %conv18.i.i + %arrayidx.i.i.i = getelementptr inbounds i32, ptr %20, i64 %conv18.i.i store i32 %conv15.i.i, ptr %arrayidx.i.i.i, align 4 - %20 = load i32, ptr %n_structural_indexes.i.i, align 8 - %add.i.i = add i32 %20, 1 + %21 = load i32, ptr %n_structural_indexes.i.i, align 8 + %add.i.i = add i32 %21, 1 %conv23.i.i = zext i32 %add.i.i to i64 - %21 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i40.i.i = getelementptr inbounds i32, ptr %21, i64 %conv23.i.i + %22 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i40.i.i = getelementptr inbounds i32, ptr %22, i64 %conv23.i.i store i32 %conv15.i.i, ptr %arrayidx.i40.i.i, align 4 - %22 = load i32, ptr %n_structural_indexes.i.i, align 8 - %add27.i.i = add i32 %22, 2 + %23 = load i32, ptr %n_structural_indexes.i.i, align 8 + %add27.i.i = add i32 %23, 2 %conv28.i.i = zext i32 %add27.i.i to i64 - %23 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i41.i.i = getelementptr inbounds i32, ptr %23, i64 %conv28.i.i + %24 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i41.i.i = getelementptr inbounds i32, ptr %24, i64 %conv28.i.i store i32 0, ptr %arrayidx.i41.i.i, align 4 %next_structural_index.i.i = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %this, i64 0, i32 3 store i32 0, ptr %next_structural_index.i.i, align 8 - %24 = load i32, ptr %n_structural_indexes.i.i, align 8 - %cmp31.i.i = icmp eq i32 %24, 0 + %25 = load i32, ptr %n_structural_indexes.i.i, align 8 + %cmp31.i.i = icmp eq i32 %25, 0 br i1 %cmp31.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end36.i.i if.end36.i.i: ; preds = %if.end11.i.i - %sub39.i.i = add i32 %24, -1 + %sub39.i.i = add i32 %25, -1 %conv40.i.i = zext i32 %sub39.i.i to i64 - %25 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i42.i.i = getelementptr inbounds i32, ptr %25, i64 %conv40.i.i - %26 = load i32, ptr %arrayidx.i42.i.i, align 4 - %conv42.i.i = zext i32 %26 to i64 + %26 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i42.i.i = getelementptr inbounds i32, ptr %26, i64 %conv40.i.i + %27 = load i32, ptr %arrayidx.i42.i.i, align 4 + %conv42.i.i = zext i32 %27 to i64 %cmp43.i.i = icmp ult i64 %len.addr.0.i, %conv42.i.i br i1 %cmp43.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end48.i.i @@ -9648,8 +9642,8 @@ if.end61.i.i: ; preds = %if.then52.i.i, %if. br i1 %cmp63.not.i.i, label %if.then66.i.i, label %if.end72.i.i if.then66.i.i: ; preds = %if.end61.i.i - %27 = load i32, ptr %25, align 4 - %cmp69.i.i = icmp eq i32 %27, 0 + %28 = load i32, ptr %26, align 4 + %cmp69.i.i = icmp eq i32 %28, 0 br i1 %cmp69.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.else.i.i if.else.i.i: ; preds = %if.then66.i.i @@ -9671,19 +9665,19 @@ if.end81.i.i: ; preds = %if.then78.i.i, %if. %call82.i.i = tail call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr noundef nonnull align 8 dereferenceable(88) %this) store i32 %call82.i.i, ptr %n_structural_indexes.i.i, align 8 %conv86.i.i = zext i32 %call82.i.i to i64 - %arrayidx.i43.i.i = getelementptr inbounds i32, ptr %25, i64 %conv86.i.i - %28 = load i32, ptr %arrayidx.i43.i.i, align 4 + %arrayidx.i43.i.i = getelementptr inbounds i32, ptr %26, i64 %conv86.i.i + %29 = load i32, ptr %arrayidx.i43.i.i, align 4 %add90.i.i = add i32 %call82.i.i, 1 %conv91.i.i = zext i32 %add90.i.i to i64 - %arrayidx.i44.i.i = getelementptr inbounds i32, ptr %25, i64 %conv91.i.i - store i32 %28, ptr %arrayidx.i44.i.i, align 4 - %29 = load i32, ptr %n_structural_indexes.i.i, align 8 - %conv96.i.i = zext i32 %29 to i64 - %30 = load ptr, ptr %structural_indexes.i, align 8 - %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %30, i64 %conv96.i.i + %arrayidx.i44.i.i = getelementptr inbounds i32, ptr %26, i64 %conv91.i.i + store i32 %29, ptr %arrayidx.i44.i.i, align 4 + %30 = load i32, ptr %n_structural_indexes.i.i, align 8 + %conv96.i.i = zext i32 %30 to i64 + %31 = load ptr, ptr %structural_indexes.i, align 8 + %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %31, i64 %conv96.i.i store i32 %conv15.i.i, ptr %arrayidx.i45.i.i, align 4 - %31 = load i32, ptr %n_structural_indexes.i.i, align 8 - %cmp99.i.i = icmp eq i32 %31, 0 + %32 = load i32, ptr %n_structural_indexes.i.i, align 8 + %cmp99.i.i = icmp eq i32 %32, 0 br i1 %cmp99.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit, label %if.end106.i.i if.end106.i.i: ; preds = %if.end81.i.i, %if.end72.i.i, %if.end48.i.i @@ -9691,21 +9685,21 @@ if.end106.i.i: ; preds = %if.end81.i.i, %if.e %agg.tmp.sroa.0.0.copyload.i.i.i = load <2 x i64>, ptr %prev_incomplete.i.i.i, align 16 %this.val.i.i.i.i = load <2 x i64>, ptr %checker.i.i, align 16 %or.i.i.i.i.i.i = or <2 x i64> %this.val.i.i.i.i, %agg.tmp.sroa.0.0.copyload.i.i.i - %32 = tail call noundef i32 @llvm.x86.sse41.ptestz(<2 x i64> %or.i.i.i.i.i.i, <2 x i64> %or.i.i.i.i.i.i) - %tobool.i.not.i.i.i.i = icmp eq i32 %32, 0 + %33 = tail call noundef i32 @llvm.x86.sse41.ptestz(<2 x i64> %or.i.i.i.i.i.i, <2 x i64> %or.i.i.i.i.i.i) + %tobool.i.not.i.i.i.i = icmp eq i32 %33, 0 %cond.i.i.i = select i1 %tobool.i.not.i.i.i.i, i32 10, i32 0 br label %_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit -_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit: ; preds = %entry, %if.end.i, %if.end.i.i, %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %while.end.i, %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i, %if.end.i25.i, %if.end11.i.i, %if.end36.i.i, %if.then52.i.i, %if.then66.i.i, %if.else.i.i, %if.end81.i.i, %if.end106.i.i - %retval.0.i = phi i32 [ 1, %entry ], [ 12, %if.end.i ], [ 10, %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ 12, %if.else.i.i ], [ %cond.i.i.i, %if.end106.i.i ], [ 13, %if.end.i25.i ], [ 12, %if.end11.i.i ], [ 23, %if.end36.i.i ], [ 1, %if.then52.i.i ], [ 1, %if.then66.i.i ], [ 12, %if.end81.i.i ], [ 14, %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i ], [ 10, %if.end.i.i ], [ 23, %while.end.i ] +_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer5indexILm64EEENS_10error_codeEPKhmRNS0_25dom_parser_implementationENS_11stage1_modeE.exit: ; preds = %entry, %if.end.i, %return.sink.split.i.thread43.i, %return.sink.split.i.thread.i, %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i, %while.end.i, %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i, %if.end.i24.i, %if.end11.i.i, %if.end36.i.i, %if.then52.i.i, %if.then66.i.i, %if.else.i.i, %if.end81.i.i, %if.end106.i.i + %retval.0.i = phi i32 [ 1, %entry ], [ 12, %if.end.i ], [ 10, %_ZN8simdjson8westmere12_GLOBAL__N_16stage117trim_partial_utf8EPKhm.exit.i ], [ 12, %if.else.i.i ], [ %cond.i.i.i, %if.end106.i.i ], [ 13, %if.end.i24.i ], [ 12, %if.end11.i.i ], [ 23, %if.end36.i.i ], [ 1, %if.then52.i.i ], [ 1, %if.then66.i.i ], [ 12, %if.end81.i.i ], [ 14, %_ZNK8simdjson8westmere12_GLOBAL__N_16stage116buf_block_readerILm64EE13get_remainderEPh.exit.i ], [ 10, %return.sink.split.i.thread.i ], [ 23, %while.end.i ], [ 10, %return.sink.split.i.thread43.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %reader.i) call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %indexer.i) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %block.i) ret i32 %retval.0.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable -define dso_local noundef zeroext i1 @_ZNK8simdjson8westmere14implementation13validate_utf8EPKcm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len) unnamed_addr #26 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable +define dso_local noundef zeroext i1 @_ZNK8simdjson8westmere14implementation13validate_utf8EPKcm(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %buf, i64 noundef %len) unnamed_addr #25 align 2 personality ptr @__gxx_personality_v0 { entry: %block.i.i = alloca [64 x i8], align 16 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %block.i.i) @@ -10034,7 +10028,7 @@ invoke.cont: ; preds = %if.else.i28.i.i, %_ } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #23 align 2 personality ptr @__gxx_personality_v0 { entry: %builder.i = alloca %"struct.simdjson::westmere::(anonymous namespace)::stage2::tape_builder", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %builder.i) @@ -10116,7 +10110,7 @@ sw.bb29.i.i: ; preds = %sw.bb10.i.i br i1 %cmp32.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #52 + %call42.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i.i) #51 %tobool43.not.i.i = icmp eq i32 %call42.i.i, 0 br i1 %tobool43.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10237,7 +10231,7 @@ sw.bb99.i.i: ; preds = %if.end83.i.i br i1 %cmp102.i.i, label %sw.epilog117.sink.split.i.i, label %array_begin.i.i sw.default111.i.i: ; preds = %if.end83.i.i - %call113.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #52 + %call113.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i162.i.i) #51 %tobool114.not.i.i = icmp eq i32 %call113.i.i, 0 br i1 %tobool114.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10427,7 +10421,7 @@ sw.bb199.i.i: ; preds = %array_value.i.i br i1 %cmp202.i.i, label %sw.epilog217.sink.split.i.i, label %array_begin.i.i sw.default211.i.i: ; preds = %array_value.i.i - %call213.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #52 + %call213.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i267.i.i) #51 %tobool214.not.i.i = icmp eq i32 %call213.i.i, 0 br i1 %tobool214.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10536,7 +10530,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb0EEEN } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation11stage2_nextERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { +define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation11stage2_nextERNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #23 align 2 personality ptr @__gxx_personality_v0 { entry: %builder.i = alloca %"struct.simdjson::westmere::(anonymous namespace)::stage2::tape_builder", align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %builder.i) @@ -10596,7 +10590,7 @@ sw.bb16.i.i: ; preds = %if.end.i.i br i1 %cmp19.i.i, label %document_end.sink.split.i.i, label %array_begin.i.i sw.default.i.i: ; preds = %if.end.i.i - %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #52 + %call29.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %incdec.ptr.i.i.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i.i4.i) #51 %tobool30.not.i.i = icmp eq i32 %call29.i.i, 0 br i1 %tobool30.not.i.i, label %sw.default.i.document_end.i_crit_edge.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10717,7 +10711,7 @@ sw.bb85.i.i: ; preds = %if.end69.i.i br i1 %cmp88.i.i, label %sw.epilog103.sink.split.i.i, label %array_begin.i.i sw.default97.i.i: ; preds = %if.end69.i.i - %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #52 + %call99.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i146.i.i) #51 %tobool100.not.i.i = icmp eq i32 %call99.i.i, 0 br i1 %tobool100.not.i.i, label %object_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -10907,7 +10901,7 @@ sw.bb185.i.i: ; preds = %array_value.i.i br i1 %cmp188.i.i, label %sw.epilog203.sink.split.i.i, label %array_begin.i.i sw.default197.i.i: ; preds = %array_value.i.i - %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #52 + %call199.i.i = call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %builder.i, ptr nonnull %this, ptr noundef nonnull %arrayidx.i251.i.i) #51 %tobool200.not.i.i = icmp eq i32 %call199.i.i, 0 br i1 %tobool200.not.i.i, label %array_continue.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEENS_10error_codeERNS0_25dom_parser_implementationERNS_3dom8documentE.exit @@ -11011,15 +11005,15 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder14parse_documentILb1EEEN ret i32 %retval.0.i.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef ptr @_ZNK8simdjson8westmere25dom_parser_implementation12parse_stringEPKhPhb(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) unnamed_addr #27 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef ptr @_ZNK8simdjson8westmere25dom_parser_implementation12parse_stringEPKhPhb(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) unnamed_addr #26 align 2 personality ptr @__gxx_personality_v0 { entry: %call = tail call fastcc noundef ptr @_ZN8simdjson8westmere12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr noundef %src, ptr noundef %dst, i1 noundef zeroext %replacement_char) ret ptr %call } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define internal fastcc noundef ptr @_ZN8simdjson8westmere12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr nocapture noundef readonly %src, ptr noundef writeonly %dst, i1 noundef zeroext %allow_replacement) unnamed_addr #25 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define internal fastcc noundef ptr @_ZN8simdjson8westmere12_GLOBAL__N_113stringparsing12parse_stringEPKhPhb(ptr nocapture noundef readonly %src, ptr noundef writeonly %dst, i1 noundef zeroext %allow_replacement) unnamed_addr #24 { entry: br label %while.body @@ -11280,8 +11274,8 @@ return: ; preds = %if.else23.i.i, %if. ret ptr %retval.0 } -; Function Attrs: mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define dso_local noundef ptr @_ZNK8simdjson8westmere25dom_parser_implementation19parse_wobbly_stringEPKhPh(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef writeonly %dst) unnamed_addr #25 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable +define dso_local noundef ptr @_ZNK8simdjson8westmere25dom_parser_implementation19parse_wobbly_stringEPKhPh(ptr nocapture nonnull readnone align 8 %this, ptr nocapture noundef readonly %src, ptr noundef writeonly %dst) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { entry: br label %while.body.i @@ -11530,14 +11524,14 @@ invoke.cont: ; preds = %if.else.i, %if.else } ; Function Attrs: mustprogress nounwind uwtable -define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation5parseEPKhmRNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #24 align 2 { +define dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation5parseEPKhmRNS_3dom8documentE(ptr nocapture noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, ptr noundef nonnull align 8 dereferenceable(24) %_doc) unnamed_addr #23 align 2 { entry: - %call = tail call noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #52, !range !44 + %call = tail call noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage1EPKhmNS_11stage1_modeE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef %_buf, i64 noundef %_len, i32 noundef 0) #51, !range !44 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %if.end, label %return if.end: ; preds = %entry - %call2 = tail call noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #52 + %call2 = tail call noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation6stage2ERNS_3dom8documentE(ptr noundef nonnull align 8 dereferenceable(88) %this, ptr noundef nonnull align 8 dereferenceable(24) %_doc) #51 br label %return return: ; preds = %entry, %if.end @@ -11572,9 +11566,9 @@ define linkonce_odr dso_local void @_ZN8simdjson8fallback14implementationD2Ev(pt entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #51 %_name.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #51 ret void } @@ -11583,10 +11577,10 @@ define linkonce_odr dso_local void @_ZN8simdjson8fallback14implementationD0Ev(pt entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #51 %_name.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #52 - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #51 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } @@ -11595,9 +11589,9 @@ define linkonce_odr dso_local void @_ZN8simdjson7haswell14implementationD2Ev(ptr entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #51 %_name.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #51 ret void } @@ -11606,10 +11600,10 @@ define linkonce_odr dso_local void @_ZN8simdjson7haswell14implementationD0Ev(ptr entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #51 %_name.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #52 - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #51 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } @@ -11618,9 +11612,9 @@ define linkonce_odr dso_local void @_ZN8simdjson7icelake14implementationD2Ev(ptr entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #51 %_name.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #51 ret void } @@ -11629,10 +11623,10 @@ define linkonce_odr dso_local void @_ZN8simdjson7icelake14implementationD0Ev(ptr entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #51 %_name.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #52 - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #51 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } @@ -11641,9 +11635,9 @@ define linkonce_odr dso_local void @_ZN8simdjson8westmere14implementationD2Ev(pt entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i) #51 %_name.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i) #51 ret void } @@ -11652,10 +11646,10 @@ define linkonce_odr dso_local void @_ZN8simdjson8westmere14implementationD0Ev(pt entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #51 %_name.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #52 - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #51 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } @@ -11671,14 +11665,14 @@ if.end: ; preds = %entry %and = add nuw nsw i64 %add, 252 %add3 = and i64 %and, 34359738112 %0 = or disjoint i64 %add3, 36 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %1 = load ptr, ptr %structural_indexes, align 8 store ptr %call, ptr %structural_indexes, align 8 %tobool.not.i.i = icmp eq ptr %1, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %if.end - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 %.pr = load ptr, ptr %structural_indexes, align 8 br label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit @@ -11712,26 +11706,26 @@ entry: %0 = icmp ugt i64 %max_depth, 2305843009213693951 %1 = shl i64 %max_depth, 3 %2 = select i1 %0, i64 -1, i64 %1 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %3 = load ptr, ptr %open_containers, align 8 store ptr %call, ptr %open_containers, align 8 %tobool.not.i.i = icmp eq ptr %3, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit, label %_ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %3) #55 + tail call void @_ZdaPv(ptr noundef nonnull %3) #54 br label %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit _ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i %is_array = getelementptr inbounds %"class.simdjson::fallback::dom_parser_implementation", ptr %this, i64 0, i32 2 - %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %4 = load ptr, ptr %is_array, align 8 store ptr %call2, ptr %is_array, align 8 %tobool.not.i.i3 = icmp eq ptr %4, null br i1 %tobool.not.i.i3, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit - tail call void @_ZdaPv(ptr noundef nonnull %4) #55 + tail call void @_ZdaPv(ptr noundef nonnull %4) #54 %.pr = load ptr, ptr %is_array, align 8 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit @@ -11757,7 +11751,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i @@ -11768,7 +11762,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKS br i1 %cmp.not.i1, label %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit, label %_ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i _ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit _ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, %_ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i @@ -11780,7 +11774,7 @@ _ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EE br i1 %cmp.not.i.i, label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit _ZN8simdjson8internal25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i @@ -11797,7 +11791,7 @@ entry: br i1 %cmp.not.i.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i, %entry @@ -11808,7 +11802,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14def br i1 %cmp.not.i1.i, label %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit.i _ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_N8simdjson8fallback14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i, %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i @@ -11820,16 +11814,16 @@ _ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EE br i1 %cmp.not.i.i.i, label %_ZN8simdjson8fallback25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson8fallback25dom_parser_implementationD2Ev.exit _ZN8simdjson8fallback25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8fallback14open_containerESt14default_deleteIS3_EED2Ev.exit.i, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } ; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %capacity) unnamed_addr #16 comdat align 2 { +define linkonce_odr dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %capacity) unnamed_addr #15 comdat align 2 { entry: %cmp = icmp ugt i64 %capacity, 4294967295 br i1 %cmp, label %return, label %if.end @@ -11840,14 +11834,14 @@ if.end: ; preds = %entry %and = add nuw nsw i64 %add, 252 %add3 = and i64 %and, 34359738112 %0 = or disjoint i64 %add3, 36 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %1 = load ptr, ptr %structural_indexes, align 8 store ptr %call, ptr %structural_indexes, align 8 %tobool.not.i.i = icmp eq ptr %1, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %if.end - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 %.pr = load ptr, ptr %structural_indexes, align 8 br label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit @@ -11875,32 +11869,32 @@ return: ; preds = %return.sink.split, } ; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation13set_max_depthEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %max_depth) unnamed_addr #16 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local noundef i32 @_ZN8simdjson7haswell25dom_parser_implementation13set_max_depthEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %max_depth) unnamed_addr #15 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %open_containers = getelementptr inbounds %"class.simdjson::haswell::dom_parser_implementation", ptr %this, i64 0, i32 1 %0 = icmp ugt i64 %max_depth, 2305843009213693951 %1 = shl i64 %max_depth, 3 %2 = select i1 %0, i64 -1, i64 %1 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %3 = load ptr, ptr %open_containers, align 8 store ptr %call, ptr %open_containers, align 8 %tobool.not.i.i = icmp eq ptr %3, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit, label %_ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %3) #55 + tail call void @_ZdaPv(ptr noundef nonnull %3) #54 br label %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit _ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i %is_array = getelementptr inbounds %"class.simdjson::haswell::dom_parser_implementation", ptr %this, i64 0, i32 2 - %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %4 = load ptr, ptr %is_array, align 8 store ptr %call2, ptr %is_array, align 8 %tobool.not.i.i3 = icmp eq ptr %4, null br i1 %tobool.not.i.i3, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit - tail call void @_ZdaPv(ptr noundef nonnull %4) #55 + tail call void @_ZdaPv(ptr noundef nonnull %4) #54 %.pr = load ptr, ptr %is_array, align 8 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit @@ -11926,7 +11920,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i @@ -11937,7 +11931,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKS br i1 %cmp.not.i1, label %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit, label %_ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i _ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit _ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, %_ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i @@ -11949,7 +11943,7 @@ _ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED br i1 %cmp.not.i.i, label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit _ZN8simdjson8internal25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i @@ -11966,7 +11960,7 @@ entry: br i1 %cmp.not.i.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i, %entry @@ -11977,7 +11971,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14def br i1 %cmp.not.i1.i, label %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit.i _ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_N8simdjson7haswell14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i, %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i @@ -11989,16 +11983,16 @@ _ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED br i1 %cmp.not.i.i.i, label %_ZN8simdjson7haswell25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson7haswell25dom_parser_implementationD2Ev.exit _ZN8simdjson7haswell25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7haswell14open_containerESt14default_deleteIS3_EED2Ev.exit.i, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } ; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %capacity) unnamed_addr #20 comdat align 2 { +define linkonce_odr dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %capacity) unnamed_addr #19 comdat align 2 { entry: %cmp = icmp ugt i64 %capacity, 4294967295 br i1 %cmp, label %return, label %if.end @@ -12009,14 +12003,14 @@ if.end: ; preds = %entry %and = add nuw nsw i64 %add, 252 %add3 = and i64 %and, 34359738112 %0 = or disjoint i64 %add3, 36 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %1 = load ptr, ptr %structural_indexes, align 8 store ptr %call, ptr %structural_indexes, align 8 %tobool.not.i.i = icmp eq ptr %1, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %if.end - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 %.pr = load ptr, ptr %structural_indexes, align 8 br label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit @@ -12044,32 +12038,32 @@ return: ; preds = %return.sink.split, } ; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation13set_max_depthEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %max_depth) unnamed_addr #20 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local noundef i32 @_ZN8simdjson7icelake25dom_parser_implementation13set_max_depthEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %max_depth) unnamed_addr #19 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %open_containers = getelementptr inbounds %"class.simdjson::icelake::dom_parser_implementation", ptr %this, i64 0, i32 1 %0 = icmp ugt i64 %max_depth, 2305843009213693951 %1 = shl i64 %max_depth, 3 %2 = select i1 %0, i64 -1, i64 %1 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %3 = load ptr, ptr %open_containers, align 8 store ptr %call, ptr %open_containers, align 8 %tobool.not.i.i = icmp eq ptr %3, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit, label %_ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %3) #55 + tail call void @_ZdaPv(ptr noundef nonnull %3) #54 br label %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit _ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i %is_array = getelementptr inbounds %"class.simdjson::icelake::dom_parser_implementation", ptr %this, i64 0, i32 2 - %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %4 = load ptr, ptr %is_array, align 8 store ptr %call2, ptr %is_array, align 8 %tobool.not.i.i3 = icmp eq ptr %4, null br i1 %tobool.not.i.i3, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit - tail call void @_ZdaPv(ptr noundef nonnull %4) #55 + tail call void @_ZdaPv(ptr noundef nonnull %4) #54 %.pr = load ptr, ptr %is_array, align 8 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit @@ -12095,7 +12089,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i @@ -12106,7 +12100,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKS br i1 %cmp.not.i1, label %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit, label %_ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i _ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit _ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, %_ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i @@ -12118,7 +12112,7 @@ _ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED br i1 %cmp.not.i.i, label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit _ZN8simdjson8internal25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i @@ -12135,7 +12129,7 @@ entry: br i1 %cmp.not.i.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i, %entry @@ -12146,7 +12140,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14def br i1 %cmp.not.i1.i, label %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit.i _ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_N8simdjson7icelake14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i, %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i @@ -12158,16 +12152,16 @@ _ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED br i1 %cmp.not.i.i.i, label %_ZN8simdjson7icelake25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson7icelake25dom_parser_implementationD2Ev.exit _ZN8simdjson7icelake25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson7icelake14open_containerESt14default_deleteIS3_EED2Ev.exit.i, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } ; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %capacity) unnamed_addr #24 comdat align 2 { +define linkonce_odr dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %capacity) unnamed_addr #23 comdat align 2 { entry: %cmp = icmp ugt i64 %capacity, 4294967295 br i1 %cmp, label %return, label %if.end @@ -12178,14 +12172,14 @@ if.end: ; preds = %entry %and = add nuw nsw i64 %add, 252 %add3 = and i64 %and, 34359738112 %0 = or disjoint i64 %add3, 36 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %0, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %1 = load ptr, ptr %structural_indexes, align 8 store ptr %call, ptr %structural_indexes, align 8 %tobool.not.i.i = icmp eq ptr %1, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %if.end - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 %.pr = load ptr, ptr %structural_indexes, align 8 br label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit @@ -12213,32 +12207,32 @@ return: ; preds = %return.sink.split, } ; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation13set_max_depthEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %max_depth) unnamed_addr #24 comdat align 2 personality ptr @__gxx_personality_v0 { +define linkonce_odr dso_local noundef i32 @_ZN8simdjson8westmere25dom_parser_implementation13set_max_depthEm(ptr noundef nonnull align 8 dereferenceable(88) %this, i64 noundef %max_depth) unnamed_addr #23 comdat align 2 personality ptr @__gxx_personality_v0 { entry: %open_containers = getelementptr inbounds %"class.simdjson::westmere::dom_parser_implementation", ptr %this, i64 0, i32 1 %0 = icmp ugt i64 %max_depth, 2305843009213693951 %1 = shl i64 %max_depth, 3 %2 = select i1 %0, i64 -1, i64 %1 - %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %2, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %3 = load ptr, ptr %open_containers, align 8 store ptr %call, ptr %open_containers, align 8 %tobool.not.i.i = icmp eq ptr %3, null br i1 %tobool.not.i.i, label %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit, label %_ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %3) #55 + tail call void @_ZdaPv(ptr noundef nonnull %3) #54 br label %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit _ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i %is_array = getelementptr inbounds %"class.simdjson::westmere::dom_parser_implementation", ptr %this, i64 0, i32 2 - %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2 = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %max_depth, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %4 = load ptr, ptr %is_array, align 8 store ptr %call2, ptr %is_array, align 8 %tobool.not.i.i3 = icmp eq ptr %4, null br i1 %tobool.not.i.i3, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EE5resetIPS2_vEEvT_.exit - tail call void @_ZdaPv(ptr noundef nonnull %4) #55 + tail call void @_ZdaPv(ptr noundef nonnull %4) #54 %.pr = load ptr, ptr %is_array, align 8 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EE5resetIPbvEEvT_.exit @@ -12264,7 +12258,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i @@ -12275,7 +12269,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKS br i1 %cmp.not.i1, label %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit, label %_ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i _ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit _ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit, %_ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i @@ -12287,7 +12281,7 @@ _ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EE br i1 %cmp.not.i.i, label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson8internal25dom_parser_implementationD2Ev.exit _ZN8simdjson8internal25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i @@ -12304,7 +12298,7 @@ entry: br i1 %cmp.not.i.i, label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i _ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_bEclIbEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i, %entry @@ -12315,7 +12309,7 @@ _ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i: ; preds = %_ZNKSt14def br i1 %cmp.not.i1.i, label %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit.i, label %_ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i _ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i: ; preds = %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %1) #55 + tail call void @_ZdaPv(ptr noundef nonnull %1) #54 br label %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit.i _ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIA_N8simdjson8westmere14open_containerEEclIS2_EENSt9enable_ifIXsr14is_convertibleIPA_T_PS3_EE5valueEvE4typeEPS7_.exit.i.i, %_ZNSt10unique_ptrIA_bSt14default_deleteIS0_EED2Ev.exit.i @@ -12327,16 +12321,16 @@ _ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EE br i1 %cmp.not.i.i.i, label %_ZN8simdjson8westmere25dom_parser_implementationD2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit.i - tail call void @_ZdaPv(ptr noundef nonnull %2) #55 + tail call void @_ZdaPv(ptr noundef nonnull %2) #54 br label %_ZN8simdjson8westmere25dom_parser_implementationD2Ev.exit _ZN8simdjson8westmere25dom_parser_implementationD2Ev.exit: ; preds = %_ZNSt10unique_ptrIA_N8simdjson8westmere14open_containerESt14default_deleteIS3_EED2Ev.exit.i, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #28 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #27 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #7 @@ -12350,12 +12344,12 @@ entry: %ref.tmp2 = alloca %"class.std::allocator", align 1 store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_name = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #52 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #51 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %agg.tmp.i) - %call.i = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %name.coerce0, ptr %name.coerce1) #52 + %call.i = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %name.coerce0, ptr %name.coerce1) #51 %0 = extractvalue { i64, ptr } %call.i, 0 %1 = extractvalue { i64, ptr } %call.i, 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i, i64 %0, ptr %1) #52 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i, i64 %0, ptr %1) #51 %2 = load i64, ptr %agg.tmp.i, align 8 %3 = getelementptr inbounds { i64, ptr }, ptr %agg.tmp.i, i64 0, i32 1 %4 = load ptr, ptr %3, align 8 @@ -12364,14 +12358,14 @@ entry: invoke.cont: ; preds = %entry call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %agg.tmp.i) - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #52 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #51 %_description = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #52 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #51 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %agg.tmp.i2) - %call.i6 = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %description.coerce0, ptr %description.coerce1) #52 + %call.i6 = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %description.coerce0, ptr %description.coerce1) #51 %5 = extractvalue { i64, ptr } %call.i6, 0 %6 = extractvalue { i64, ptr } %call.i6, 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i2, i64 %5, ptr %6) #52 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i2, i64 %5, ptr %6) #51 %7 = load i64, ptr %agg.tmp.i2, align 8 %8 = getelementptr inbounds { i64, ptr }, ptr %agg.tmp.i2, i64 0, i32 1 %9 = load ptr, ptr %8, align 8 @@ -12380,7 +12374,7 @@ invoke.cont: ; preds = %entry invoke.cont4: ; preds = %invoke.cont call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %agg.tmp.i2) - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #52 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #51 %_required_instruction_sets = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 3 store i32 %required_instruction_sets, ptr %_required_instruction_sets, align 8 ret void @@ -12388,14 +12382,14 @@ invoke.cont4: ; preds = %invoke.cont lpad: ; preds = %entry %10 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #52 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #51 br label %eh.resume lpad3: ; preds = %invoke.cont %11 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #52 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name) #52 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #51 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name) #51 br label %eh.resume eh.resume: ; preds = %lpad3, %lpad @@ -12426,10 +12420,10 @@ define linkonce_odr dso_local void @_ZN8simdjson8internal26unsupported_implement entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #51 %_name.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #52 - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #51 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } @@ -12449,16 +12443,16 @@ define linkonce_odr dso_local void @_ZN8simdjson14implementationD2Ev(ptr noundef entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description) #51 %_name = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name) #51 ret void } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local void @_ZN8simdjson14implementationD0Ev(ptr noundef nonnull align 8 dereferenceable(76) %this) unnamed_addr #5 comdat align 2 { entry: - tail call void @llvm.trap() #53 + tail call void @llvm.trap() #52 unreachable } @@ -12471,10 +12465,10 @@ declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrappe declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ENS4_12__sv_wrapperERKS3_(ptr noundef nonnull align 8 dereferenceable(32), i64, ptr, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #8 ; Function Attrs: cold noreturn nounwind memory(inaccessiblemem: write) -declare void @llvm.trap() #29 +declare void @llvm.trap() #28 ; Function Attrs: nobuiltin nounwind -declare void @_ZdlPv(ptr noundef) local_unnamed_addr #30 +declare void @_ZdlPv(ptr noundef) local_unnamed_addr #29 ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN8simdjson8internalL21get_icelake_singletonEv() unnamed_addr #0 personality ptr @__gxx_personality_v0 { @@ -12484,7 +12478,7 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init @@ -12494,8 +12488,8 @@ init: ; preds = %init.check invoke.cont: ; preds = %init store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson7icelake14implementationE, i64 0, inrange i32 0, i64 2), ptr @_ZZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton, align 8 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson7icelake14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton) #52 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson7icelake14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton) #51 br label %init.end init.end: ; preds = %invoke.cont, %init.check, %entry @@ -12504,7 +12498,7 @@ init.end: ; preds = %invoke.cont, %init. lpad: ; preds = %init %3 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton) #52 + tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL21get_icelake_singletonEvE17icelake_singleton) #51 resume { ptr, i32 } %3 } @@ -12516,7 +12510,7 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init @@ -12526,8 +12520,8 @@ init: ; preds = %init.check invoke.cont: ; preds = %init store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson7haswell14implementationE, i64 0, inrange i32 0, i64 2), ptr @_ZZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton, align 8 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson7haswell14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton) #52 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson7haswell14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton) #51 br label %init.end init.end: ; preds = %invoke.cont, %init.check, %entry @@ -12536,7 +12530,7 @@ init.end: ; preds = %invoke.cont, %init. lpad: ; preds = %init %3 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton) #52 + tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL21get_haswell_singletonEvE17haswell_singleton) #51 resume { ptr, i32 } %3 } @@ -12548,7 +12542,7 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init @@ -12558,8 +12552,8 @@ init: ; preds = %init.check invoke.cont: ; preds = %init store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson8westmere14implementationE, i64 0, inrange i32 0, i64 2), ptr @_ZZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton, align 8 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8westmere14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton) #52 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8westmere14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton) #51 br label %init.end init.end: ; preds = %invoke.cont, %init.check, %entry @@ -12568,7 +12562,7 @@ init.end: ; preds = %invoke.cont, %init. lpad: ; preds = %init %3 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton) #52 + tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL22get_westmere_singletonEvE18westmere_singleton) #51 resume { ptr, i32 } %3 } @@ -12580,7 +12574,7 @@ entry: br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !30 init.check: ; preds = %entry - %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton) #52 + %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton) #51 %tobool.not = icmp eq i32 %1, 0 br i1 %tobool.not, label %init.end, label %init @@ -12590,8 +12584,8 @@ init: ; preds = %init.check invoke.cont: ; preds = %init store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson8fallback14implementationE, i64 0, inrange i32 0, i64 2), ptr @_ZZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton, align 8 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8fallback14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton, ptr nonnull @__dso_handle) #52 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton) #52 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN8simdjson8fallback14implementationD2Ev, ptr nonnull @_ZZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton, ptr nonnull @__dso_handle) #51 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton) #51 br label %init.end init.end: ; preds = %invoke.cont, %init.check, %entry @@ -12600,7 +12594,7 @@ init.end: ; preds = %invoke.cont, %init. lpad: ; preds = %init %3 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton) #52 + tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN8simdjson8internalL22get_fallback_singletonEvE18fallback_singleton) #51 resume { ptr, i32 } %3 } @@ -12608,12 +12602,12 @@ lpad: ; preds = %init declare { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #9 ; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read) -declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #31 +declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #30 ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use4nameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: - %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #52 + %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #51 %vtable = load ptr, ptr %call, align 8 %0 = load ptr, ptr %vtable, align 8 %call2 = invoke noundef nonnull align 8 dereferenceable(32) ptr %0(ptr noundef nonnull align 8 dereferenceable(76) %call) @@ -12626,14 +12620,14 @@ terminate.lpad: ; preds = %entry %1 = landingpad { ptr, i32 } catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 - tail call void @__clang_call_terminate(ptr %2) #53 + tail call void @__clang_call_terminate(ptr %2) #52 unreachable } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use11descriptionB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: - %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #52 + %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #51 %vtable = load ptr, ptr %call, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 1 %0 = load ptr, ptr %vfn, align 8 @@ -12647,14 +12641,14 @@ terminate.lpad: ; preds = %entry %1 = landingpad { ptr, i32 } catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 - tail call void @__clang_call_terminate(ptr %2) #53 + tail call void @__clang_call_terminate(ptr %2) #52 unreachable } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef i32 @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use25required_instruction_setsEv(ptr noundef nonnull align 8 dereferenceable(80) %this) unnamed_addr #5 comdat align 2 personality ptr @__gxx_personality_v0 { entry: - %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #52 + %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #51 %vtable = load ptr, ptr %call, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 2 %0 = load ptr, ptr %vfn, align 8 @@ -12668,40 +12662,40 @@ terminate.lpad: ; preds = %entry %1 = landingpad { ptr, i32 } catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 - tail call void @__clang_call_terminate(ptr %2) #53 + tail call void @__clang_call_terminate(ptr %2) #52 unreachable } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef i32 @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use32create_dom_parser_implementationEmmRSt10unique_ptrINS0_25dom_parser_implementationESt14default_deleteIS3_EE(ptr noundef nonnull align 8 dereferenceable(80) %this, i64 noundef %capacity, i64 noundef %max_length, ptr noundef nonnull align 8 dereferenceable(8) %dst) unnamed_addr #5 comdat align 2 { entry: - %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #52 + %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #51 %vtable = load ptr, ptr %call, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 3 %0 = load ptr, ptr %vfn, align 8 - %call2 = tail call noundef i32 %0(ptr noundef nonnull align 8 dereferenceable(76) %call, i64 noundef %capacity, i64 noundef %max_length, ptr noundef nonnull align 8 dereferenceable(8) %dst) #52 + %call2 = tail call noundef i32 %0(ptr noundef nonnull align 8 dereferenceable(76) %call, i64 noundef %capacity, i64 noundef %max_length, ptr noundef nonnull align 8 dereferenceable(8) %dst) #51 ret i32 %call2 } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef i32 @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use6minifyEPKhmPhRm(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %buf, i64 noundef %len, ptr noundef %dst, ptr noundef nonnull align 8 dereferenceable(8) %dst_len) unnamed_addr #5 comdat align 2 { entry: - %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #52 + %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #51 %vtable = load ptr, ptr %call, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 4 %0 = load ptr, ptr %vfn, align 8 - %call2 = tail call noundef i32 %0(ptr noundef nonnull align 8 dereferenceable(76) %call, ptr noundef %buf, i64 noundef %len, ptr noundef %dst, ptr noundef nonnull align 8 dereferenceable(8) %dst_len) #52 + %call2 = tail call noundef i32 %0(ptr noundef nonnull align 8 dereferenceable(76) %call, ptr noundef %buf, i64 noundef %len, ptr noundef %dst, ptr noundef nonnull align 8 dereferenceable(8) %dst_len) #51 ret i32 %call2 } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef zeroext i1 @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use13validate_utf8EPKcm(ptr noundef nonnull align 8 dereferenceable(80) %this, ptr noundef %buf, i64 noundef %len) unnamed_addr #5 comdat align 2 { entry: - %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #52 + %call = tail call noundef ptr @_ZNK8simdjson8internal49detect_best_supported_implementation_on_first_use8set_bestEv(ptr nonnull align 8 poison) #51 %vtable = load ptr, ptr %call, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 5 %0 = load ptr, ptr %vfn, align 8 - %call2 = tail call noundef zeroext i1 %0(ptr noundef nonnull align 8 dereferenceable(76) %call, ptr noundef %buf, i64 noundef %len) #52 + %call2 = tail call noundef zeroext i1 %0(ptr noundef nonnull align 8 dereferenceable(76) %call, ptr noundef %buf, i64 noundef %len) #51 ret i1 %call2 } @@ -12710,10 +12704,10 @@ define linkonce_odr dso_local void @_ZN8simdjson8internal49detect_best_supported entry: store ptr getelementptr inbounds ({ [10 x ptr] }, ptr @_ZTVN8simdjson14implementationE, i64 0, inrange i32 0, i64 2), ptr %this, align 8 %_description.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 2 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #52 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_description.i.i) #51 %_name.i.i = getelementptr inbounds %"class.simdjson::implementation", ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #52 - tail call void @_ZdlPv(ptr noundef nonnull %this) #55 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_name.i.i) #51 + tail call void @_ZdlPv(ptr noundef nonnull %this) #54 ret void } @@ -12727,7 +12721,7 @@ entry: br i1 %cmp.not.i, label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EED2Ev.exit, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #55 + tail call void @_ZdaPv(ptr noundef nonnull %0) #54 br label %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EED2Ev.exit _ZNSt10unique_ptrIA_jSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i @@ -12738,15 +12732,15 @@ _ZNSt10unique_ptrIA_jSt14default_deleteIS0_EED2Ev.exit: ; preds = %entry, %_ZNKS ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local void @_ZN8simdjson8internal25dom_parser_implementationD0Ev(ptr noundef nonnull align 8 dereferenceable(48) %this) unnamed_addr #5 comdat align 2 { entry: - tail call void @llvm.trap() #53 + tail call void @llvm.trap() #52 unreachable } ; Function Attrs: nobuiltin nounwind -declare void @_ZdaPv(ptr noundef) local_unnamed_addr #30 +declare void @_ZdaPv(ptr noundef) local_unnamed_addr #29 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable -define internal fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #32 { +define internal fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #31 { entry: %n_structural_indexes = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %parser, i64 0, i32 1 %0 = load i32, ptr %n_structural_indexes, align 8 @@ -12889,34 +12883,34 @@ return: ; preds = %sw.epilog39, %sw.ep } ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <32 x i8> @llvm.x86.avx2.pshuf.b(<32 x i8>, <32 x i8>) #33 +declare <32 x i8> @llvm.x86.avx2.pshuf.b(<32 x i8>, <32 x i8>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare <32 x i8> @llvm.usub.sat.v32i8(<32 x i8>, <32 x i8>) #34 +declare <32 x i8> @llvm.usub.sat.v32i8(<32 x i8>, <32 x i8>) #33 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare i32 @llvm.x86.avx.ptestz.256(<4 x i64>, <4 x i64>) #33 +declare i32 @llvm.x86.avx.ptestz.256(<4 x i64>, <4 x i64>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.cttz.i64(i64, i1 immarg) #34 +declare i64 @llvm.cttz.i64(i64, i1 immarg) #33 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <8 x i64> @llvm.x86.avx512.vpermi2var.q.512(<8 x i64>, <8 x i64>, <8 x i64>) #33 +declare <8 x i64> @llvm.x86.avx512.vpermi2var.q.512(<8 x i64>, <8 x i64>, <8 x i64>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <64 x i8> @llvm.x86.avx512.pshuf.b.512(<64 x i8>, <64 x i8>) #33 +declare <64 x i8> @llvm.x86.avx512.pshuf.b.512(<64 x i8>, <64 x i8>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare <64 x i8> @llvm.usub.sat.v64i8(<64 x i8>, <64 x i8>) #34 +declare <64 x i8> @llvm.usub.sat.v64i8(<64 x i8>, <64 x i8>) #33 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8>, <16 x i8>) #33 +declare <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8>, <16 x i8>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare <16 x i8> @llvm.usub.sat.v16i8(<16 x i8>, <16 x i8>) #34 +declare <16 x i8> @llvm.usub.sat.v16i8(<16 x i8>, <16 x i8>) #33 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare i32 @llvm.x86.sse41.ptestz(<2 x i64>, <2 x i64>) #33 +declare i32 @llvm.x86.sse41.ptestz(<2 x i64>, <2 x i64>) #32 ; Function Attrs: nobuiltin nounwind allocsize(0) declare noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #13 @@ -13644,7 +13638,7 @@ sw.bb8.i: ; preds = %entry, %entry, %ent %conv.i.i53.i = zext i32 %iter.val.val.i.i to i64 %reass.sub.i.i = sub i64 %iter.val4.val.i.i, %conv.i.i53.i %add.i.i = add i64 %reass.sub.i.i, 64 - %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %cmp.i.i = icmp eq ptr %call2.i.i, null br i1 %cmp.i.i, label %_ZN8simdjson8fallback12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit, label %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -13652,8 +13646,8 @@ _ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5v tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call2.i.i, ptr nonnull align 1 %value, i64 %reass.sub.i.i, i1 false) %add.ptr.i.i = getelementptr inbounds i8, ptr %call2.i.i, i64 %reass.sub.i.i tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %add.ptr.i.i, i8 32, i64 64, i1 false) - %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #52 - tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #55 + %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #51 + tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #54 br label %_ZN8simdjson8fallback12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit _ZN8simdjson8fallback12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit: ; preds = %entry, %sw.bb.i, %if.end.i.i.i, %if.then.i.i.i, %if.else.i.i.i, %invoke.cont.i.i, %if.end.i.i, %if.then.i.i28.i, %if.else.i.i20.i, %invoke.cont.i23.i, %if.end.i26.i, %if.then.i.i46.i, %if.else.i.i38.i, %invoke.cont.i41.i, %if.end.i44.i, %sw.bb8.i, %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -13709,7 +13703,7 @@ if.else.i: ; preds = %entry br i1 %cmp3.i, label %if.then6.i, label %if.end8.i if.then6.i: ; preds = %if.else.i - %call7.i = tail call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #52 + %call7.i = tail call fastcc noundef i32 @_ZN8simdjson8fallback12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #51 br label %_ZN8simdjson8fallback12_GLOBAL__N_16stage213json_iterator15visit_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit if.end8.i: ; preds = %if.else.i @@ -14021,7 +14015,7 @@ if.then.i57.i: ; preds = %_ZN8simdjson8fallba call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %first.addr.i.i.i.i.i.i) call void @llvm.lifetime.start.p0(i64 780, ptr nonnull %d.i.i.i.i.i.i) store ptr %add.ptr.i, ptr %first.addr.i.i.i.i.i.i, align 8 - call void @_ZN8simdjson8internal13parse_decimalERPKc(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i.i.i.i.i.i) #52 + call void @_ZN8simdjson8internal13parse_decimalERPKc(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i.i.i.i.i.i) #51 %call.i6.i.i.i.i.i = invoke { i64, i32 } @_ZN8simdjson8internal13compute_floatINS0_13binary_formatIdEEEENS0_17adjusted_mantissaERNS0_7decimalE(ptr noundef nonnull align 4 dereferenceable(780) %d.i.i.i.i.i.i) to label %_ZN8simdjson8fallback13numberparsing12_GLOBAL__N_120parse_float_fallbackEPKhPd.exit.i.i.i unwind label %terminate.lpad.i.i.i.i.i @@ -14029,7 +14023,7 @@ terminate.lpad.i.i.i.i.i: ; preds = %if.then.i57.i %14 = landingpad { ptr, i32 } catch ptr null %15 = extractvalue { ptr, i32 } %14, 0 - call void @__clang_call_terminate(ptr %15) #53 + call void @__clang_call_terminate(ptr %15) #52 unreachable _ZN8simdjson8fallback13numberparsing12_GLOBAL__N_120parse_float_fallbackEPKhPd.exit.i.i.i: ; preds = %if.then.i57.i @@ -14223,7 +14217,7 @@ if.then16.i.i: ; preds = %if.end67.i.i.i call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %first.addr.i.i.i.i.i) call void @llvm.lifetime.start.p0(i64 780, ptr nonnull %d.i.i.i.i.i) store ptr %add.ptr.i, ptr %first.addr.i.i.i.i.i, align 8 - call void @_ZN8simdjson8internal13parse_decimalERPKc(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i.i.i.i.i) #52 + call void @_ZN8simdjson8internal13parse_decimalERPKc(ptr nonnull sret(%"struct.simdjson::internal::decimal") align 4 %d.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(8) %first.addr.i.i.i.i.i) #51 %call.i6.i.i.i.i = invoke { i64, i32 } @_ZN8simdjson8internal13compute_floatINS0_13binary_formatIdEEEENS0_17adjusted_mantissaERNS0_7decimalE(ptr noundef nonnull align 4 dereferenceable(780) %d.i.i.i.i.i) to label %_ZN8simdjson8fallback13numberparsing12_GLOBAL__N_120parse_float_fallbackEPKhPd.exit.i.i unwind label %terminate.lpad.i.i.i.i @@ -14231,7 +14225,7 @@ terminate.lpad.i.i.i.i: ; preds = %if.then16.i.i %35 = landingpad { ptr, i32 } catch ptr null %36 = extractvalue { ptr, i32 } %35, 0 - call void @__clang_call_terminate(ptr %36) #53 + call void @__clang_call_terminate(ptr %36) #52 unreachable _ZN8simdjson8fallback13numberparsing12_GLOBAL__N_120parse_float_fallbackEPKhPd.exit.i.i: ; preds = %if.then16.i.i @@ -14360,10 +14354,10 @@ invoke.cont: ; preds = %if.end.i28.i.thread } ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.ctlz.i64(i64, i1 immarg) #34 +declare i64 @llvm.ctlz.i64(i64, i1 immarg) #33 -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage113json_minifier4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 8 dereferenceable(32) %this, ptr nocapture noundef readonly %block_buf, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #35 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable +define internal fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage113json_minifier4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 8 dereferenceable(32) %this, ptr nocapture noundef readonly %block_buf, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #34 align 2 personality ptr @__gxx_personality_v0 { invoke.cont2: %ptr.val.i165 = load <32 x i8>, ptr %block_buf, align 1 %add.ptr.i = getelementptr inbounds i8, ptr %block_buf, i64 32 @@ -14727,13 +14721,13 @@ invoke.cont7: ; preds = %if.end.i.i18, %invo } ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <2 x i64> @llvm.x86.pclmulqdq(<2 x i64>, <2 x i64>, i8 immarg) #33 +declare <2 x i64> @llvm.x86.pclmulqdq(<2 x i64>, <2 x i64>, i8 immarg) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.ctpop.i64(i64) #34 +declare i64 @llvm.ctpop.i64(i64) #33 -; Function Attrs: mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 32 dereferenceable(152) %this, ptr nocapture noundef readonly %block, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #36 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable +define internal fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 32 dereferenceable(152) %this, ptr nocapture noundef readonly %block, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #35 align 2 personality ptr @__gxx_personality_v0 { invoke.cont2: %ptr.val.i = load <4 x i64>, ptr %block, align 1 %add.ptr.i = getelementptr inbounds i8, ptr %block, i64 32 @@ -15117,8 +15111,8 @@ invoke.cont10: ; preds = %if.else.i.i83, %if. ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr nocapture noundef nonnull align 8 dereferenceable(8) %this, i32 noundef %idx, i64 noundef %bits) unnamed_addr #37 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable +define internal fastcc void @_ZN8simdjson7haswell12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr nocapture noundef nonnull align 8 dereferenceable(8) %this, i32 noundef %idx, i64 noundef %bits) unnamed_addr #36 align 2 { entry: %cmp = icmp eq i64 %bits, 0 br i1 %cmp, label %return, label %if.end @@ -15369,7 +15363,7 @@ return: ; preds = %entry, %if.end8 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable -define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #38 { +define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #37 { entry: %n_structural_indexes = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %parser, i64 0, i32 1 %0 = load i32, ptr %n_structural_indexes, align 8 @@ -15512,7 +15506,7 @@ return: ; preds = %sw.epilog39, %sw.ep } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.8.val, ptr nocapture readonly %iter.16.val, ptr nocapture noundef readonly %value) unnamed_addr #16 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.8.val, ptr nocapture readonly %iter.16.val, ptr nocapture noundef readonly %value) unnamed_addr #15 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 switch i8 %0, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit [ @@ -15700,7 +15694,7 @@ sw.bb8.i: ; preds = %entry, %entry, %ent %conv.i.i53.i = zext i32 %iter.val.val.i.i to i64 %reass.sub.i.i = sub i64 %iter.val4.val.i.i, %conv.i.i53.i %add.i.i = add i64 %reass.sub.i.i, 64 - %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %cmp.i.i = icmp eq ptr %call2.i.i, null br i1 %cmp.i.i, label %_ZN8simdjson7haswell12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit, label %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -15708,8 +15702,8 @@ _ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5v tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call2.i.i, ptr nonnull align 1 %value, i64 %reass.sub.i.i, i1 false) %add.ptr.i.i = getelementptr inbounds i8, ptr %call2.i.i, i64 %reass.sub.i.i tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %add.ptr.i.i, i8 32, i64 64, i1 false) - %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #52 - tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #55 + %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #51 + tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #54 br label %_ZN8simdjson7haswell12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit _ZN8simdjson7haswell12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit: ; preds = %entry, %sw.bb.i, %if.end.i.i.i, %if.then.i.i.i, %if.else.i.i.i, %invoke.cont.i.i, %if.end.i.i, %if.then.i.i28.i, %if.else.i.i20.i, %invoke.cont.i23.i, %if.end.i26.i, %if.then.i.i46.i, %if.else.i.i38.i, %invoke.cont.i41.i, %if.end.i44.i, %sw.bb8.i, %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -15718,7 +15712,7 @@ _ZN8simdjson7haswell12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveIN } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.16.val, ptr noundef %value) unnamed_addr #16 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.16.val, ptr noundef %value) unnamed_addr #15 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 %cmp.i = icmp eq i8 %0, 34 @@ -15765,7 +15759,7 @@ if.else.i: ; preds = %entry br i1 %cmp3.i, label %if.then6.i, label %if.end8.i if.then6.i: ; preds = %if.else.i - %call7.i = tail call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #52 + %call7.i = tail call fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #51 br label %_ZN8simdjson7haswell12_GLOBAL__N_16stage213json_iterator15visit_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit if.end8.i: ; preds = %if.else.i @@ -15846,7 +15840,7 @@ _ZN8simdjson7haswell12_GLOBAL__N_16stage213json_iterator15visit_primitiveINS2_12 } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %value) unnamed_addr #39 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson7haswell12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %value) unnamed_addr #38 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 %cmp.i = icmp eq i8 %0, 45 @@ -16072,7 +16066,7 @@ _ZN8simdjson7haswell13numberparsing12_GLOBAL__N_118significant_digitsEPKhm.exit. if.then.i56.i: ; preds = %_ZN8simdjson7haswell13numberparsing12_GLOBAL__N_118significant_digitsEPKhm.exit.i.i %agg.tmp.sroa.0.0.copyload.i.i = load ptr, ptr %this, align 8 - %call.i.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #52 + %call.i.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #51 %cmp.i.i.i.i = fcmp ule double %call.i.i.i.i, 0x7FEFFFFFFFFFFFFF %cmp3.i.i.i.i = fcmp uge double %call.i.i.i.i, 0xFFEFFFFFFFFFFFFF %lnot.i.i.i.i = and i1 %cmp.i.i.i.i, %cmp3.i.i.i.i @@ -16248,7 +16242,7 @@ if.end101.i.i.i: ; preds = %if.end67.i.i.i br label %if.end20.i.i if.then16.i.i: ; preds = %if.end67.i.i.i - %call.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #52 + %call.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #51 %cmp.i.i51.i = fcmp ule double %call.i.i.i, 0x7FEFFFFFFFFFFFFF %cmp3.i15.i.i = fcmp uge double %call.i.i.i, 0xFFEFFFFFFFFFFFFF %lnot.i.i.i = and i1 %cmp.i.i51.i, %cmp3.i15.i.i @@ -16364,19 +16358,19 @@ invoke.cont: ; preds = %if.end.i28.i.thread } ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8>, <16 x i8>) #33 +declare <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8>, <16 x i8>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16>, <8 x i16>) #33 +declare <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16>, <8 x i16>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32>, <4 x i32>) #33 +declare <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32>, <4 x i32>) #32 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) -declare void @llvm.masked.compressstore.v64i8(<64 x i8>, ptr nocapture, <64 x i1>) #40 +declare void @llvm.masked.compressstore.v64i8(<64 x i8>, ptr nocapture, <64 x i1>) #39 -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 64 dereferenceable(280) %this, ptr nocapture noundef readonly %block, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #41 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable +define internal fastcc void @_ZN8simdjson7icelake12_GLOBAL__N_16stage123json_structural_indexer4stepILm128EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 64 dereferenceable(280) %this, ptr nocapture noundef readonly %block, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #40 align 2 personality ptr @__gxx_personality_v0 { invoke.cont2: %block.val = load <8 x i64>, ptr %block, align 1 %add.ptr = getelementptr inbounds i8, ptr %block, i64 64 @@ -16736,10 +16730,10 @@ invoke.cont10: ; preds = %if.end45.i.i81, %_Z } ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(none) -declare <64 x i8> @llvm.x86.avx512.mask.compress.v64i8(<64 x i8>, <64 x i8>, <64 x i1>) #33 +declare <64 x i8> @llvm.x86.avx512.mask.compress.v64i8(<64 x i8>, <64 x i8>, <64 x i1>) #32 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable -define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #42 { +define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #41 { entry: %n_structural_indexes = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %parser, i64 0, i32 1 %0 = load i32, ptr %n_structural_indexes, align 8 @@ -16882,7 +16876,7 @@ return: ; preds = %sw.epilog39, %sw.ep } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.8.val, ptr nocapture readonly %iter.16.val, ptr nocapture noundef readonly %value) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.8.val, ptr nocapture readonly %iter.16.val, ptr nocapture noundef readonly %value) unnamed_addr #19 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 switch i8 %0, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit [ @@ -17070,7 +17064,7 @@ sw.bb8.i: ; preds = %entry, %entry, %ent %conv.i.i53.i = zext i32 %iter.val.val.i.i to i64 %reass.sub.i.i = sub i64 %iter.val4.val.i.i, %conv.i.i53.i %add.i.i = add i64 %reass.sub.i.i, 64 - %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %cmp.i.i = icmp eq ptr %call2.i.i, null br i1 %cmp.i.i, label %_ZN8simdjson7icelake12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit, label %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -17078,8 +17072,8 @@ _ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5v tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call2.i.i, ptr nonnull align 1 %value, i64 %reass.sub.i.i, i1 false) %add.ptr.i.i = getelementptr inbounds i8, ptr %call2.i.i, i64 %reass.sub.i.i tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %add.ptr.i.i, i8 32, i64 64, i1 false) - %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #52 - tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #55 + %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #51 + tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #54 br label %_ZN8simdjson7icelake12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit _ZN8simdjson7icelake12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit: ; preds = %entry, %sw.bb.i, %if.end.i.i.i, %if.then.i.i.i, %if.else.i.i.i, %invoke.cont.i.i, %if.end.i.i, %if.then.i.i28.i, %if.else.i.i20.i, %invoke.cont.i23.i, %if.end.i26.i, %if.then.i.i46.i, %if.else.i.i38.i, %invoke.cont.i41.i, %if.end.i44.i, %sw.bb8.i, %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -17088,7 +17082,7 @@ _ZN8simdjson7icelake12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveIN } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.16.val, ptr noundef %value) unnamed_addr #20 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.16.val, ptr noundef %value) unnamed_addr #19 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 %cmp.i = icmp eq i8 %0, 34 @@ -17135,7 +17129,7 @@ if.else.i: ; preds = %entry br i1 %cmp3.i, label %if.then6.i, label %if.end8.i if.then6.i: ; preds = %if.else.i - %call7.i = tail call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #52 + %call7.i = tail call fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #51 br label %_ZN8simdjson7icelake12_GLOBAL__N_16stage213json_iterator15visit_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit if.end8.i: ; preds = %if.else.i @@ -17216,7 +17210,7 @@ _ZN8simdjson7icelake12_GLOBAL__N_16stage213json_iterator15visit_primitiveINS2_12 } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %value) unnamed_addr #43 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson7icelake12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %value) unnamed_addr #42 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 %cmp.i = icmp eq i8 %0, 45 @@ -17442,7 +17436,7 @@ _ZN8simdjson7icelake13numberparsing12_GLOBAL__N_118significant_digitsEPKhm.exit. if.then.i56.i: ; preds = %_ZN8simdjson7icelake13numberparsing12_GLOBAL__N_118significant_digitsEPKhm.exit.i.i %agg.tmp.sroa.0.0.copyload.i.i = load ptr, ptr %this, align 8 - %call.i.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #52 + %call.i.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #51 %cmp.i.i.i.i = fcmp ule double %call.i.i.i.i, 0x7FEFFFFFFFFFFFFF %cmp3.i.i.i.i = fcmp uge double %call.i.i.i.i, 0xFFEFFFFFFFFFFFFF %lnot.i.i.i.i = and i1 %cmp.i.i.i.i, %cmp3.i.i.i.i @@ -17618,7 +17612,7 @@ if.end101.i.i.i: ; preds = %if.end67.i.i.i br label %if.end20.i.i if.then16.i.i: ; preds = %if.end67.i.i.i - %call.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #52 + %call.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #51 %cmp.i.i51.i = fcmp ule double %call.i.i.i, 0x7FEFFFFFFFFFFFFF %cmp3.i15.i.i = fcmp uge double %call.i.i.i, 0xFFEFFFFFFFFFFFFF %lnot.i.i.i = and i1 %cmp.i.i51.i, %cmp3.i15.i.i @@ -17733,8 +17727,8 @@ invoke.cont: ; preds = %if.end.i28.i.thread ret i32 %retval.0.i } -; Function Attrs: mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer4stepILm64EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 16 dereferenceable(104) %this, ptr nocapture noundef readonly %block, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #44 align 2 personality ptr @__gxx_personality_v0 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable +define internal fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage123json_structural_indexer4stepILm64EEEvPKhRNS2_16buf_block_readerIXT_EEE(ptr nocapture noundef nonnull align 16 dereferenceable(104) %this, ptr nocapture noundef readonly %block, ptr nocapture noundef nonnull align 8 dereferenceable(32) %reader) unnamed_addr #43 align 2 personality ptr @__gxx_personality_v0 { invoke.cont: %ptr.val.i36 = load <16 x i8>, ptr %block, align 1 %add.ptr.i = getelementptr inbounds i8, ptr %block, i64 16 @@ -18051,8 +18045,8 @@ invoke.cont4: ; preds = %if.else.i.i, %if.th ret void } -; Function Attrs: mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr nocapture noundef nonnull align 8 dereferenceable(8) %this, i32 noundef %idx, i64 noundef %bits) unnamed_addr #45 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable +define internal fastcc void @_ZN8simdjson8westmere12_GLOBAL__N_16stage111bit_indexer5writeEjm(ptr nocapture noundef nonnull align 8 dereferenceable(8) %this, i32 noundef %idx, i64 noundef %bits) unnamed_addr #44 align 2 { entry: %cmp = icmp eq i64 %bits, 0 br i1 %cmp, label %return, label %if.end @@ -18303,7 +18297,7 @@ return: ; preds = %entry, %if.end8 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable -define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #46 { +define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage124find_next_document_indexERNS0_25dom_parser_implementationE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(88) %parser) unnamed_addr #45 { entry: %n_structural_indexes = getelementptr inbounds %"class.simdjson::internal::dom_parser_implementation", ptr %parser, i64 0, i32 1 %0 = load i32, ptr %n_structural_indexes, align 8 @@ -18446,7 +18440,7 @@ return: ; preds = %sw.epilog39, %sw.ep } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.8.val, ptr nocapture readonly %iter.16.val, ptr nocapture noundef readonly %value) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder20visit_root_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.8.val, ptr nocapture readonly %iter.16.val, ptr nocapture noundef readonly %value) unnamed_addr #23 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 switch i8 %0, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit [ @@ -18634,7 +18628,7 @@ sw.bb8.i: ; preds = %entry, %entry, %ent %conv.i.i53.i = zext i32 %iter.val.val.i.i to i64 %reass.sub.i.i = sub i64 %iter.val4.val.i.i, %conv.i.i53.i %add.i.i = add i64 %reass.sub.i.i, 64 - %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #54 + %call2.i.i = tail call noalias noundef ptr @_ZnamRKSt9nothrow_t(i64 noundef %add.i.i, ptr noundef nonnull align 1 dereferenceable(1) @_ZSt7nothrow) #53 %cmp.i.i = icmp eq ptr %call2.i.i, null br i1 %cmp.i.i, label %_ZN8simdjson8westmere12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit, label %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -18642,8 +18636,8 @@ _ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5v tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call2.i.i, ptr nonnull align 1 %value, i64 %reass.sub.i.i, i1 false) %add.ptr.i.i = getelementptr inbounds i8, ptr %call2.i.i, i64 %reass.sub.i.i tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %add.ptr.i.i, i8 32, i64 64, i1 false) - %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #52 - tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #55 + %call9.i.i = tail call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %call2.i.i) #51 + tail call void @_ZdaPv(ptr noundef nonnull %call2.i.i) #54 br label %_ZN8simdjson8westmere12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit _ZN8simdjson8westmere12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit: ; preds = %entry, %sw.bb.i, %if.end.i.i.i, %if.then.i.i.i, %if.else.i.i.i, %invoke.cont.i.i, %if.end.i.i, %if.then.i.i28.i, %if.else.i.i20.i, %invoke.cont.i23.i, %if.end.i26.i, %if.then.i.i46.i, %if.else.i.i38.i, %invoke.cont.i41.i, %if.end.i44.i, %sw.bb8.i, %_ZNKSt14default_deleteIA_hEclIhEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i @@ -18652,7 +18646,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage213json_iterator20visit_root_primitiveI } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.16.val, ptr noundef %value) unnamed_addr #24 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder15visit_primitiveERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr nocapture readonly %iter.16.val, ptr noundef %value) unnamed_addr #23 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 %cmp.i = icmp eq i8 %0, 34 @@ -18699,7 +18693,7 @@ if.else.i: ; preds = %entry br i1 %cmp3.i, label %if.then6.i, label %if.end8.i if.then6.i: ; preds = %if.else.i - %call7.i = tail call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #52 + %call7.i = tail call fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull %value) #51 br label %_ZN8simdjson8westmere12_GLOBAL__N_16stage213json_iterator15visit_primitiveINS2_12tape_builderEEENS_10error_codeERT_PKh.exit if.end8.i: ; preds = %if.else.i @@ -18780,7 +18774,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage213json_iterator15visit_primitiveINS2_1 } ; Function Attrs: mustprogress nounwind uwtable -define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %value) unnamed_addr #47 align 2 personality ptr @__gxx_personality_v0 { +define internal fastcc noundef i32 @_ZN8simdjson8westmere12_GLOBAL__N_16stage212tape_builder12visit_numberERNS2_13json_iteratorEPKh(ptr nocapture noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %value) unnamed_addr #46 align 2 personality ptr @__gxx_personality_v0 { entry: %0 = load i8, ptr %value, align 1 %cmp.i = icmp eq i8 %0, 45 @@ -19006,7 +19000,7 @@ _ZN8simdjson8westmere13numberparsing12_GLOBAL__N_118significant_digitsEPKhm.exit if.then.i56.i: ; preds = %_ZN8simdjson8westmere13numberparsing12_GLOBAL__N_118significant_digitsEPKhm.exit.i.i %agg.tmp.sroa.0.0.copyload.i.i = load ptr, ptr %this, align 8 - %call.i.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #52 + %call.i.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #51 %cmp.i.i.i.i = fcmp ule double %call.i.i.i.i, 0x7FEFFFFFFFFFFFFF %cmp3.i.i.i.i = fcmp uge double %call.i.i.i.i, 0xFFEFFFFFFFFFFFFF %lnot.i.i.i.i = and i1 %cmp.i.i.i.i, %cmp3.i.i.i.i @@ -19182,7 +19176,7 @@ if.end101.i.i.i: ; preds = %if.end67.i.i.i br label %if.end20.i.i if.then16.i.i: ; preds = %if.end67.i.i.i - %call.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #52 + %call.i.i.i = tail call noundef double @_ZN8simdjson8internal10from_charsEPKc(ptr noundef nonnull %value) #51 %cmp.i.i51.i = fcmp ule double %call.i.i.i, 0x7FEFFFFFFFFFFFFF %cmp3.i15.i.i = fcmp uge double %call.i.i.i, 0xFFEFFFFFFFFFFFFF %lnot.i.i.i = and i1 %cmp.i.i51.i, %cmp3.i15.i.i @@ -19298,51 +19292,51 @@ invoke.cont: ; preds = %if.end.i28.i.thread } ; Function Attrs: uwtable -define internal void @_GLOBAL__sub_I_simdjson.cpp() #48 section ".text.startup" { +define internal void @_GLOBAL__sub_I_simdjson.cpp() #47 section ".text.startup" { entry: tail call void @_ZNSt8ios_base4InitC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZStL8__ioinit) - %0 = tail call i32 @__cxa_atexit(ptr nonnull @_ZNSt8ios_base4InitD1Ev, ptr nonnull @_ZStL8__ioinit, ptr nonnull @__dso_handle) #52 + %0 = tail call i32 @__cxa_atexit(ptr nonnull @_ZNSt8ios_base4InitD1Ev, ptr nonnull @_ZStL8__ioinit, ptr nonnull @__dso_handle) #51 ret void } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #49 +declare i32 @llvm.umin.i32(i32, i32) #48 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.abs.i32(i32, i1 immarg) #49 +declare i32 @llvm.abs.i32(i32, i1 immarg) #48 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #50 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #49 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #50 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #49 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #49 +declare i32 @llvm.umax.i32(i32, i32) #48 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.usub.sat.i64(i64, i64) #49 +declare i64 @llvm.usub.sat.i64(i64, i64) #48 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #49 +declare i64 @llvm.umin.i64(i64, i64) #48 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.ctpop.i32(i32) #49 +declare i32 @llvm.ctpop.i32(i32) #48 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.cttz.i32(i32, i1 immarg) #49 +declare i32 @llvm.cttz.i32(i32, i1 immarg) #48 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.fshl.i64(i64, i64, i64) #49 +declare i64 @llvm.fshl.i64(i64, i64, i64) #48 ; Function Attrs: nofree nounwind willreturn memory(argmem: read) -declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #51 +declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #50 attributes #0 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "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 #2 = { mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 norecurse nosync nounwind willreturn memory(argmem: read) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { noreturn nounwind uwtable "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } @@ -19353,47 +19347,46 @@ attributes #11 = { nofree nounwind memory(read) "frame-pointer"="all" "no-trappi attributes #12 = { mustprogress nofree nounwind uwtable "frame-pointer"="all" "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 #13 = { nobuiltin nounwind allocsize(0) "frame-pointer"="all" "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 #14 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #15 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "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 #16 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #17 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #18 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #19 = { mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #20 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #21 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="512" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #22 = { mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="512" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #23 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #24 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #25 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #26 = { mustprogress nofree nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #27 = { mustprogress nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #28 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #29 = { cold noreturn nounwind memory(inaccessiblemem: write) } -attributes #30 = { nobuiltin nounwind "frame-pointer"="all" "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 #31 = { mustprogress nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "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 #32 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #33 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) } -attributes #34 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #35 = { mustprogress nofree nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #36 = { mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #37 = { mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #38 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #39 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #40 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) } -attributes #41 = { mustprogress nofree nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="512" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #42 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #43 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #44 = { mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #45 = { mustprogress nofree nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #46 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #47 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } -attributes #48 = { uwtable "frame-pointer"="all" "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 #49 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #50 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #51 = { nofree nounwind willreturn memory(argmem: read) } -attributes #52 = { nounwind } -attributes #53 = { noreturn nounwind } -attributes #54 = { builtin nounwind allocsize(0) } -attributes #55 = { builtin nounwind } +attributes #15 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #16 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #17 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #18 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #19 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #20 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="512" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #21 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="512" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #22 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #23 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #24 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #25 = { mustprogress nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #26 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #27 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #28 = { cold noreturn nounwind memory(inaccessiblemem: write) } +attributes #29 = { nobuiltin nounwind "frame-pointer"="all" "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 #30 = { mustprogress nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "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 #31 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "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 #32 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) } +attributes #33 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #34 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #35 = { mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #36 = { mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #37 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #38 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+bmi,+cmov,+crc32,+cx8,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #39 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) } +attributes #40 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="512" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #41 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #42 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vbmi,+avx512vbmi2,+avx512vl,+bmi,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #43 = { mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #44 = { mustprogress nofree norecurse nosync nounwind memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #45 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #46 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="128" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+crc32,+cx8,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87" "tune-cpu"="generic" } +attributes #47 = { uwtable "frame-pointer"="all" "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 #48 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #49 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #50 = { nofree nounwind willreturn memory(argmem: read) } +attributes #51 = { nounwind } +attributes #52 = { noreturn nounwind } +attributes #53 = { builtin nounwind allocsize(0) } +attributes #54 = { builtin nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/yalantinglibs/optimized/benchmark.cpp.ll b/bench/yalantinglibs/optimized/benchmark.cpp.ll index 78eae27688d..0f0a430a898 100644 --- a/bench/yalantinglibs/optimized/benchmark.cpp.ll +++ b/bench/yalantinglibs/optimized/benchmark.cpp.ll @@ -5051,6 +5051,9 @@ sw.bb3.i: ; preds = %if.else11.i tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i.i10.i80, ptr align 1 %21, i64 %sub.ptr.sub.i9.i83, i1 false) br label %_ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI4rectIiESaIS5_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit +default.unreachable287: ; preds = %.noexc + unreachable + _ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI4rectIiESaIS5_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit: ; preds = %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i store i64 0, ptr %_M_string_length.i, align 8 %23 = load ptr, ptr %buffer_, align 8 @@ -5156,12 +5159,12 @@ if.else.i53: ; preds = %for.body if.else11.i56: ; preds = %if.else.i53 %cmp13.i58 = icmp ult i64 %sub.ptr.div.i.i106, 4294967296 %. = select i1 %cmp13.i58, i64 5, i64 9 - %.287 = select i1 %cmp13.i58, i8 16, i8 24 + %.288 = select i1 %cmp13.i58, i8 16, i8 24 br label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI4rectIiESaIS4_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit84 _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI4rectIiESaIS4_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit84: ; preds = %if.else11.i56, %if.else.i53, %for.body %.sink = phi i64 [ 2, %for.body ], [ 3, %if.else.i53 ], [ %., %if.else11.i56 ] - %retval.i43.sroa.7.0 = phi i8 [ 0, %for.body ], [ 8, %if.else.i53 ], [ %.287, %if.else11.i56 ] + %retval.i43.sroa.7.0 = phi i8 [ 0, %for.body ], [ 8, %if.else.i53 ], [ %.288, %if.else11.i56 ] %add10.i77 = add i64 %sub.ptr.sub.i.i105, %.sink %add.i = add i64 %add10.i77, %36 invoke void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i) @@ -5178,7 +5181,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI4rectIiESaIS4 %sub.ptr.lhs.cast.i.i113 = ptrtoint ptr %41 to i64 %sub.ptr.rhs.cast.i.i114 = ptrtoint ptr %42 to i64 %sub.ptr.sub.i.i115 = sub i64 %sub.ptr.lhs.cast.i.i113, %sub.ptr.rhs.cast.i.i114 - switch i8 %40, label %.noexc.unreachabledefault [ + switch i8 %40, label %default.unreachable287 [ i8 0, label %sw.bb.i99 i8 1, label %sw.bb1.i98 i8 2, label %sw.bb2.i97 @@ -5244,9 +5247,6 @@ sw.bb3.i96: ; preds = %.noexc call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i.i10.i156, ptr align 1 %49, i64 %sub.ptr.sub.i9.i159, i1 false) br label %invoke.cont15 -.noexc.unreachabledefault: ; preds = %.noexc - unreachable - invoke.cont15: ; preds = %sw.bb3.i96, %sw.bb2.i97, %sw.bb1.i98, %sw.bb.i99 invoke void @_Z5no_opRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %buffer_) to label %for.inc unwind label %lpad14 @@ -5777,7 +5777,7 @@ if.else.i: ; preds = %_ZN11struct_pack6de if.else11.i: ; preds = %if.else.i %cmp13.i = icmp ult i64 %sub.ptr.div.i.i, 4294967296 %7 = getelementptr inbounds { i64, i8 }, ptr %info.i33, i64 0, i32 1 - %info3.i292 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 + %info3.i293 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 br i1 %cmp13.i, label %sw.bb2.i, label %sw.bb3.i sw.bb.i: ; preds = %_ZN11struct_pack6detail18calculate_one_sizeISt6vectorI5rect2IiESaIS4_EELm0EEE9size_infoRKT_.exit @@ -5785,15 +5785,15 @@ sw.bb.i: ; preds = %_ZN11struct_pack6de store i64 %add2.i, ptr %info.i33, align 8 %8 = getelementptr inbounds { i64, i8 }, ptr %info.i33, i64 0, i32 1 store i8 0, ptr %8, align 8 - %add.i38274 = add i64 %add2.i, %0 - tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i38274) + %add.i38275 = add i64 %add2.i, %0 + tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i38275) %9 = load ptr, ptr %buffer_, align 8 - %add.ptr.i40275 = getelementptr inbounds i8, ptr %9, i64 %0 - store ptr %add.ptr.i40275, ptr %real_writer.i35, align 8 + %add.ptr.i40276 = getelementptr inbounds i8, ptr %9, i64 %0 + store ptr %add.ptr.i40276, ptr %real_writer.i35, align 8 store ptr %real_writer.i35, ptr %o.i, align 8 - %info3.i276 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 - store ptr %info.i33, ptr %info3.i276, align 8 - store i8 0, ptr %add.ptr.i40275, align 1 + %info3.i277 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 + store ptr %info.i33, ptr %info3.i277, align 8 + store i8 0, ptr %add.ptr.i40276, align 1 %10 = load ptr, ptr %real_writer.i35, align 8 %add.ptr.i.i.i = getelementptr inbounds i8, ptr %10, i64 1 store ptr %add.ptr.i.i.i, ptr %real_writer.i35, align 8 @@ -5827,15 +5827,15 @@ sw.bb1.i: ; preds = %if.else.i store i64 %add10.i, ptr %info.i33, align 8 %18 = getelementptr inbounds { i64, i8 }, ptr %info.i33, i64 0, i32 1 store i8 8, ptr %18, align 8 - %add.i38282 = add i64 %add10.i, %0 - tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i38282) + %add.i38283 = add i64 %add10.i, %0 + tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i38283) %19 = load ptr, ptr %buffer_, align 8 - %add.ptr.i40283 = getelementptr inbounds i8, ptr %19, i64 %0 - store ptr %add.ptr.i40283, ptr %real_writer.i35, align 8 + %add.ptr.i40284 = getelementptr inbounds i8, ptr %19, i64 %0 + store ptr %add.ptr.i40284, ptr %real_writer.i35, align 8 store ptr %real_writer.i35, ptr %o.i, align 8 - %info3.i284 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 - store ptr %info.i33, ptr %info3.i284, align 8 - store i8 8, ptr %add.ptr.i40283, align 1 + %info3.i285 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 + store ptr %info.i33, ptr %info3.i285, align 8 + store i8 8, ptr %add.ptr.i40284, align 1 %20 = load ptr, ptr %real_writer.i35, align 8 %add.ptr.i.i.i220 = getelementptr inbounds i8, ptr %20, i64 1 store ptr %add.ptr.i.i.i220, ptr %real_writer.i35, align 8 @@ -5868,14 +5868,14 @@ sw.bb2.i: ; preds = %if.else11.i %add20.i = add i64 %ret.sroa.0.0.lcssa.i, 5 store i64 %add20.i, ptr %info.i33, align 8 store i8 16, ptr %7, align 8 - %add.i38290 = add i64 %add20.i, %0 - tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i38290) + %add.i38291 = add i64 %add20.i, %0 + tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i38291) %28 = load ptr, ptr %buffer_, align 8 - %add.ptr.i40291 = getelementptr inbounds i8, ptr %28, i64 %0 - store ptr %add.ptr.i40291, ptr %real_writer.i35, align 8 + %add.ptr.i40292 = getelementptr inbounds i8, ptr %28, i64 %0 + store ptr %add.ptr.i40292, ptr %real_writer.i35, align 8 store ptr %real_writer.i35, ptr %o.i, align 8 - store ptr %info.i33, ptr %info3.i292, align 8 - store i8 16, ptr %add.ptr.i40291, align 1 + store ptr %info.i33, ptr %info3.i293, align 8 + store i8 16, ptr %add.ptr.i40292, align 1 %29 = load ptr, ptr %real_writer.i35, align 8 %add.ptr.i.i.i194 = getelementptr inbounds i8, ptr %29, i64 1 store ptr %add.ptr.i.i.i194, ptr %real_writer.i35, align 8 @@ -5914,7 +5914,7 @@ sw.bb3.i: ; preds = %if.else11.i %add.ptr.i40 = getelementptr inbounds i8, ptr %37, i64 %0 store ptr %add.ptr.i40, ptr %real_writer.i35, align 8 store ptr %real_writer.i35, ptr %o.i, align 8 - store ptr %info.i33, ptr %info3.i292, align 8 + store ptr %info.i33, ptr %info3.i293, align 8 store i8 24, ptr %add.ptr.i40, align 1 %38 = load ptr, ptr %real_writer.i35, align 8 %add.ptr.i.i.i168 = getelementptr inbounds i8, ptr %38, i64 1 @@ -5943,6 +5943,9 @@ for.body.i85: ; preds = %sw.bb3.i, %for.body %cmp.i.i88 = icmp eq ptr %incdec.ptr.i.i87, %45 br i1 %cmp.i.i88, label %_ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI5rect2IiESaIS5_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit, label %for.body.i85 +default.unreachable272: ; preds = %.noexc + unreachable + _ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI5rect2IiESaIS5_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit: ; preds = %for.body.i85, %for.body.i73, %for.body.i60, %for.body.i48, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i store i64 0, ptr %_M_string_length.i, align 8 %46 = load ptr, ptr %buffer_, align 8 @@ -6125,12 +6128,12 @@ if.else.i53: ; preds = %.noexc83 if.else11.i56: ; preds = %if.else.i53 %cmp13.i58 = icmp ult i64 %sub.ptr.div.i.i163, 4294967296 %. = select i1 %cmp13.i58, i64 5, i64 9 - %.301 = select i1 %cmp13.i58, i8 16, i8 24 + %.302 = select i1 %cmp13.i58, i8 16, i8 24 br label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI5rect2IiESaIS4_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit84 _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI5rect2IiESaIS4_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit84: ; preds = %if.else11.i56, %if.else.i53, %.noexc83 %.sink = phi i64 [ 2, %.noexc83 ], [ 3, %if.else.i53 ], [ %., %if.else11.i56 ] - %retval.i43.sroa.7.0 = phi i8 [ 0, %.noexc83 ], [ 8, %if.else.i53 ], [ %.301, %if.else11.i56 ] + %retval.i43.sroa.7.0 = phi i8 [ 0, %.noexc83 ], [ 8, %if.else.i53 ], [ %.302, %if.else11.i56 ] %add10.i77 = add i64 %ret.sroa.0.0.lcssa.i159, %.sink store i64 %add10.i77, ptr %info.i, align 8 store i8 %retval.i43.sroa.7.0, ptr %58, align 8 @@ -6158,7 +6161,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI5rect2IiESaIS %sub.ptr.sub.i.i173 = sub i64 %sub.ptr.lhs.cast.i.i171, %sub.ptr.rhs.cast.i.i172 %74 = load ptr, ptr %o.i91, align 8 %75 = load ptr, ptr %74, align 8 - switch i8 %70, label %.noexc.unreachabledefault [ + switch i8 %70, label %default.unreachable272 [ i8 0, label %sw.bb.i99 i8 1, label %sw.bb1.i98 i8 2, label %sw.bb2.i97 @@ -6252,9 +6255,6 @@ for.body.i223: ; preds = %sw.bb3.i96, %.noexc %cmp.i.i226 = icmp eq ptr %incdec.ptr.i.i225, %87 br i1 %cmp.i.i226, label %invoke.cont15, label %for.body.i223 -.noexc.unreachabledefault: ; preds = %.noexc - unreachable - invoke.cont15: ; preds = %.noexc227, %.noexc212, %.noexc197, %.noexc182, %sw.bb3.i96, %sw.bb2.i97, %sw.bb1.i98, %sw.bb.i99 invoke void @_Z5no_opRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %buffer_) to label %for.inc unwind label %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -6485,13 +6485,16 @@ sw.bb3.i: ; preds = %if.else10.i %add.ptr.i.i.i4.i81 = getelementptr inbounds i8, ptr %add.ptr.i.i10.i.i79, i64 %21 br label %_ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJ6personEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit +default.unreachable377: ; preds = %.noexc + unreachable + _ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJ6personEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit: ; preds = %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i - %add.ptr.i.i.i4.i81.sink377 = phi ptr [ %add.ptr.i.i.i4.i81, %sw.bb3.i ], [ %add.ptr.i.i.i4.i70, %sw.bb2.i ], [ %add.ptr.i.i.i4.i58, %sw.bb1.i ], [ %add.ptr.i.i10.i.i, %sw.bb.i ] + %add.ptr.i.i.i4.i81.sink378 = phi ptr [ %add.ptr.i.i.i4.i81, %sw.bb3.i ], [ %add.ptr.i.i.i4.i70, %sw.bb2.i ], [ %add.ptr.i.i.i4.i58, %sw.bb1.i ], [ %add.ptr.i.i10.i.i, %sw.bb.i ] %salary.i.i64.sink = getelementptr inbounds %struct.person, ptr %sample, i64 0, i32 3 %age.i.i63.sink = getelementptr inbounds %struct.person, ptr %sample, i64 0, i32 2 %22 = load i32, ptr %age.i.i63.sink, align 8 - store i32 %22, ptr %add.ptr.i.i.i4.i81.sink377, align 1 - %add.ptr.i.i.i5.i82 = getelementptr inbounds i8, ptr %add.ptr.i.i.i4.i81.sink377, i64 4 + store i32 %22, ptr %add.ptr.i.i.i4.i81.sink378, align 1 + %add.ptr.i.i.i5.i82 = getelementptr inbounds i8, ptr %add.ptr.i.i.i4.i81.sink378, i64 4 %23 = load i64, ptr %salary.i.i64.sink, align 8 store i64 %23, ptr %add.ptr.i.i.i5.i82, align 1 store i64 0, ptr %_M_string_length.i, align 8 @@ -6597,9 +6600,9 @@ if.else.i53: ; preds = %.noexc85 %cmp3.i55 = icmp ult i64 %38, 65536 %cmp12.i58 = icmp ult i64 %38, 4294967296 %. = select i1 %cmp12.i58, i64 20, i64 24 - %.381 = select i1 %cmp12.i58, i8 16, i8 24 + %.382 = select i1 %cmp12.i58, i8 16, i8 24 %.sink = select i1 %cmp3.i55, i64 18, i64 %. - %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.381 + %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.382 %add17.i72 = add i64 %38, %.sink %add31.i67 = add i64 %add17.i72, 1 br label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ6personEEENS_21serialize_buffer_sizeEDpRKT0_.exit86 @@ -6617,7 +6620,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ6personEEENS_21serializ %add.ptr.i = getelementptr inbounds i8, ptr %39, i64 %37 %40 = lshr i8 %retval.i43.sroa.10.1, 3 %add.ptr.i.i = getelementptr inbounds i8, ptr %add.ptr.i, i64 4 - switch i8 %40, label %.noexc.unreachabledefault [ + switch i8 %40, label %default.unreachable377 [ i8 0, label %sw.bb.i101 i8 1, label %sw.bb1.i100 i8 2, label %sw.bb2.i99 @@ -6697,14 +6700,11 @@ sw.bb3.i98: ; preds = %.noexc %add.ptr.i.i.i4.i151 = getelementptr inbounds i8, ptr %add.ptr.i.i10.i.i149, i64 %56 br label %invoke.cont15 -.noexc.unreachabledefault: ; preds = %.noexc - unreachable - invoke.cont15: ; preds = %sw.bb3.i98, %sw.bb2.i99, %sw.bb1.i100, %sw.bb.i101 - %add.ptr.i.i.i4.i151.sink380 = phi ptr [ %add.ptr.i.i.i4.i151, %sw.bb3.i98 ], [ %add.ptr.i.i.i4.i140, %sw.bb2.i99 ], [ %add.ptr.i.i.i4.i128, %sw.bb1.i100 ], [ %add.ptr.i.i10.i.i116, %sw.bb.i101 ] + %add.ptr.i.i.i4.i151.sink381 = phi ptr [ %add.ptr.i.i.i4.i151, %sw.bb3.i98 ], [ %add.ptr.i.i.i4.i140, %sw.bb2.i99 ], [ %add.ptr.i.i.i4.i128, %sw.bb1.i100 ], [ %add.ptr.i.i10.i.i116, %sw.bb.i101 ] %57 = load i32, ptr %age.i.i145, align 8 - store i32 %57, ptr %add.ptr.i.i.i4.i151.sink380, align 1 - %add.ptr.i.i.i5.i152 = getelementptr inbounds i8, ptr %add.ptr.i.i.i4.i151.sink380, i64 4 + store i32 %57, ptr %add.ptr.i.i.i4.i151.sink381, align 1 + %add.ptr.i.i.i5.i152 = getelementptr inbounds i8, ptr %add.ptr.i.i.i4.i151.sink381, i64 4 %58 = load i64, ptr %salary.i.i146, align 8 store i64 %58, ptr %add.ptr.i.i.i5.i152, align 1 invoke void @_Z5no_opRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %buffer_) @@ -7069,6 +7069,9 @@ for.body.i114: ; preds = %for.body.i114.prehe %cmp.i.i127 = icmp eq ptr %incdec.ptr.i.i126, %42 br i1 %cmp.i.i127, label %_ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI6personSaIS4_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit, label %for.body.i114 +default.unreachable527: ; preds = %.noexc + unreachable + _ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI6personSaIS4_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit: ; preds = %for.body.i114, %for.body.i91, %for.body.i67, %for.body.i54, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i store i64 0, ptr %_M_string_length.i, align 8 %49 = load ptr, ptr %buffer_, align 8 @@ -7197,9 +7200,9 @@ if.else.i53: ; preds = %.noexc85 %cmp3.i55 = icmp ult i64 %ret.sroa.8.0.lcssa.i161, 65536 %cmp12.i58 = icmp ult i64 %ret.sroa.8.0.lcssa.i161, 4294967296 %. = select i1 %cmp12.i58, i64 2, i64 3 - %.534 = select i1 %cmp12.i58, i8 16, i8 24 + %.535 = select i1 %cmp12.i58, i8 16, i8 24 %.sink = select i1 %cmp3.i55, i64 1, i64 %. - %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.534 + %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.535 %mul16.i71 = shl i64 %ret.sroa.4.0.lcssa.i162, %.sink %retval.i43.sroa.0.0 = add i64 %ret.sroa.0.0.lcssa.i163, 1 %add31.i67 = add i64 %retval.i43.sroa.0.0, %mul16.i71 @@ -7218,7 +7221,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI6personSaIS3_ %add.ptr.i = getelementptr inbounds i8, ptr %67, i64 %62 %68 = lshr i8 %retval.i43.sroa.10.1, 3 %add.ptr.i.i.i146 = getelementptr inbounds i8, ptr %add.ptr.i, i64 4 - switch i8 %68, label %.noexc.unreachabledefault [ + switch i8 %68, label %default.unreachable527 [ i8 0, label %sw.bb.i101 i8 1, label %sw.bb1.i100 i8 2, label %sw.bb2.i99 @@ -7425,9 +7428,6 @@ for.body.i251: ; preds = %for.body.i251.prehe %cmp.i.i264 = icmp eq ptr %incdec.ptr.i.i263, %102 br i1 %cmp.i.i264, label %invoke.cont15, label %for.body.i251 -.noexc.unreachabledefault: ; preds = %.noexc - unreachable - invoke.cont15: ; preds = %for.body.i251, %for.body.i227, %for.body.i202, %for.body.i177, %sw.bb3.i98, %sw.bb2.i99, %sw.bb1.i100, %sw.bb.i101 invoke void @_Z5no_opRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %buffer_) to label %for.inc unwind label %lpad14 @@ -7596,9 +7596,9 @@ if.else.i: ; preds = %_ZN11struct_pack6de %cmp3.i = icmp ult i64 %14, 65536 %cmp12.i = icmp ult i64 %14, 4294967296 %. = select i1 %cmp12.i, i64 2, i64 3 - %.148 = select i1 %cmp12.i, i8 16, i8 24 + %.149 = select i1 %cmp12.i, i8 16, i8 24 %.sink = select i1 %cmp3.i, i64 1, i64 %. - %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.148 + %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.149 %mul16.i = shl i64 %ret.sroa.4.0.lcssa.i.i, %.sink %retval.i.sroa.0.0 = add i64 %add.i73.i, 1 %add31.i = add i64 %retval.i.sroa.0.0, %mul16.i @@ -7620,7 +7620,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21seriali %info3.i = getelementptr inbounds %"class.struct_pack::detail::packer.169", ptr %o.i, i64 0, i32 1 store ptr %info.i33, ptr %info3.i, align 8 %17 = lshr i8 %retval.i.sroa.10.1, 3 - switch i8 %17, label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault [ + switch i8 %17, label %default.unreachable146 [ i8 0, label %sw.bb.i i8 1, label %sw.bb1.i i8 2, label %sw.bb2.i @@ -7686,7 +7686,7 @@ sw.bb3.i: ; preds = %_ZN11struct_pack6de call void @_ZN11struct_pack6detail6packerINS0_13memory_writerE7MonsterE13serialize_oneILm8ELm18446744073709551615ELm0ES3_EEvRKT2_(ptr noundef nonnull align 8 dereferenceable(16) %o.i, ptr noundef nonnull align 8 dereferenceable(176) %sample) br label %_ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJ7MonsterEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit -_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault: ; preds = %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit +default.unreachable146: ; preds = %.noexc, %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit unreachable _ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJ7MonsterEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit: ; preds = %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i @@ -7840,11 +7840,11 @@ if.then.i81: ; preds = %.noexc85 if.else.i53: ; preds = %.noexc85 %cmp3.i55 = icmp ult i64 %65, 65536 %cmp12.i58 = icmp ult i64 %65, 4294967296 - %.149 = select i1 %cmp12.i58, i64 2, i64 3 - %.150 = select i1 %cmp12.i58, i8 16, i8 24 - %.sink147 = select i1 %cmp3.i55, i64 1, i64 %.149 - %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.150 - %mul16.i71 = shl i64 %ret.sroa.4.0.lcssa.i.i91, %.sink147 + %.150 = select i1 %cmp12.i58, i64 2, i64 3 + %.151 = select i1 %cmp12.i58, i8 16, i8 24 + %.sink148 = select i1 %cmp3.i55, i64 1, i64 %.150 + %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.151 + %mul16.i71 = shl i64 %ret.sroa.4.0.lcssa.i.i91, %.sink148 %retval.i43.sroa.0.0 = add i64 %add.i73.i104, 1 %add31.i67 = add i64 %retval.i43.sroa.0.0, %mul16.i71 br label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit86 @@ -7868,7 +7868,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21seriali %67 = load i8, ptr %49, align 8 %68 = lshr i8 %67, 3 %69 = and i8 %68, 3 - switch i8 %69, label %.noexc.unreachabledefault [ + switch i8 %69, label %default.unreachable146 [ i8 0, label %sw.bb.i101 i8 1, label %sw.bb1.i100 i8 2, label %sw.bb2.i99 @@ -7934,9 +7934,6 @@ sw.bb3.i98: ; preds = %.noexc invoke void @_ZN11struct_pack6detail6packerINS0_13memory_writerE7MonsterE13serialize_oneILm8ELm18446744073709551615ELm0ES3_EEvRKT2_(ptr noundef nonnull align 8 dereferenceable(16) %o.i93, ptr noundef nonnull align 8 dereferenceable(176) %sample) to label %invoke.cont15 unwind label %lpad14 -.noexc.unreachabledefault: ; preds = %.noexc - unreachable - invoke.cont15: ; preds = %sw.bb3.i98, %sw.bb2.i99, %sw.bb1.i100, %sw.bb.i101 invoke void @_Z5no_opRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %buffer_) to label %for.inc unwind label %lpad14 @@ -8128,9 +8125,9 @@ if.else.i: ; preds = %_ZN11struct_pack6de %cmp3.i = icmp ult i64 %ret.sroa.8.0.lcssa.i, 65536 %cmp12.i = icmp ult i64 %ret.sroa.8.0.lcssa.i, 4294967296 %. = select i1 %cmp12.i, i64 2, i64 3 - %.691 = select i1 %cmp12.i, i8 16, i8 24 + %.692 = select i1 %cmp12.i, i8 16, i8 24 %.sink = select i1 %cmp3.i, i64 1, i64 %. - %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.691 + %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.692 %mul16.i = shl i64 %ret.sroa.4.0.lcssa.i, %.sink %retval.i.sroa.0.0 = add i64 %ret.sroa.0.0.lcssa.i, 1 %add31.i = add i64 %retval.i.sroa.0.0, %mul16.i @@ -8152,7 +8149,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3 %info3.i = getelementptr inbounds %"class.struct_pack::detail::packer.179", ptr %o.i, i64 0, i32 1 store ptr %info.i33, ptr %info3.i, align 8 %20 = lshr i8 %retval.i.sroa.10.1, 3 - switch i8 %20, label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault [ + switch i8 %20, label %default.unreachable681 [ i8 0, label %sw.bb.i i8 1, label %sw.bb1.i i8 2, label %sw.bb2.i @@ -8305,7 +8302,7 @@ for.body.i91: ; preds = %sw.bb3.i, %for.body %cmp.i.i94 = icmp eq ptr %incdec.ptr.i.i93, %67 br i1 %cmp.i.i94, label %_ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI7MonsterSaIS4_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit, label %for.body.i91 -_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault: ; preds = %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit +default.unreachable681: ; preds = %.noexc, %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit unreachable _ZN11struct_pack6detail12serialize_toILm0ETkNS_8writer_tENS0_13memory_writerEJSt6vectorI7MonsterSaIS4_EEEEEvRT0_RKNS_21serialize_buffer_sizeEDpRKT1_.exit: ; preds = %for.body.i91, %for.body.i79, %for.body.i66, %for.body.i54, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i @@ -8489,11 +8486,11 @@ if.then.i81: ; preds = %.noexc85 if.else.i53: ; preds = %.noexc85 %cmp3.i55 = icmp ult i64 %ret.sroa.8.0.lcssa.i163, 65536 %cmp12.i58 = icmp ult i64 %ret.sroa.8.0.lcssa.i163, 4294967296 - %.692 = select i1 %cmp12.i58, i64 2, i64 3 - %.693 = select i1 %cmp12.i58, i8 16, i8 24 - %.sink690 = select i1 %cmp3.i55, i64 1, i64 %.692 - %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.693 - %mul16.i71 = shl i64 %ret.sroa.4.0.lcssa.i164, %.sink690 + %.693 = select i1 %cmp12.i58, i64 2, i64 3 + %.694 = select i1 %cmp12.i58, i8 16, i8 24 + %.sink691 = select i1 %cmp3.i55, i64 1, i64 %.693 + %retval.i43.sroa.10.0 = select i1 %cmp3.i55, i8 8, i8 %.694 + %mul16.i71 = shl i64 %ret.sroa.4.0.lcssa.i164, %.sink691 %retval.i43.sroa.0.0 = add i64 %ret.sroa.0.0.lcssa.i165, 1 %add31.i67 = add i64 %retval.i43.sroa.0.0, %mul16.i71 br label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit86 @@ -8510,8 +8507,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3 %99 = load ptr, ptr %buffer_, align 8 %add.ptr.i = getelementptr inbounds i8, ptr %99, i64 %81 %100 = lshr i8 %retval.i43.sroa.10.1, 3 - %add.ptr.i.i.i146 = getelementptr inbounds i8, ptr %add.ptr.i, i64 4 - switch i8 %100, label %.noexc.unreachabledefault [ + switch i8 %100, label %default.unreachable681 [ i8 0, label %sw.bb.i101 i8 1, label %sw.bb1.i100 i8 2, label %sw.bb2.i99 @@ -8520,6 +8516,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3 sw.bb.i101: ; preds = %.noexc store i32 -570632116, ptr %add.ptr.i, align 1 + %add.ptr.i.i.i146 = getelementptr inbounds i8, ptr %add.ptr.i, i64 4 %101 = load ptr, ptr %_M_finish.i.i, align 8 %102 = load ptr, ptr %sample, align 8 %sub.ptr.lhs.cast.i.i172 = ptrtoint ptr %101 to i64 @@ -8660,7 +8657,8 @@ for.body.i.i: ; preds = %for.body.i179, %for sw.bb1.i100: ; preds = %.noexc store i32 -570632115, ptr %add.ptr.i, align 1 - store i8 %retval.i43.sroa.10.1, ptr %add.ptr.i.i.i146, align 1 + %add.ptr.i.i9.i260 = getelementptr inbounds i8, ptr %add.ptr.i, i64 4 + store i8 %retval.i43.sroa.10.1, ptr %add.ptr.i.i9.i260, align 1 %add.ptr.i.i.i264 = getelementptr inbounds i8, ptr %add.ptr.i, i64 5 %130 = load ptr, ptr %_M_finish.i.i, align 8 %131 = load ptr, ptr %sample, align 8 @@ -8802,7 +8800,8 @@ for.body.i.i270: ; preds = %for.body.i194, %for sw.bb2.i99: ; preds = %.noexc store i32 -570632115, ptr %add.ptr.i, align 1 - store i8 %retval.i43.sroa.10.1, ptr %add.ptr.i.i.i146, align 1 + %add.ptr.i.i9.i220 = getelementptr inbounds i8, ptr %add.ptr.i, i64 4 + store i8 %retval.i43.sroa.10.1, ptr %add.ptr.i.i9.i220, align 1 %add.ptr.i.i.i224 = getelementptr inbounds i8, ptr %add.ptr.i, i64 5 %159 = load ptr, ptr %_M_finish.i.i, align 8 %160 = load ptr, ptr %sample, align 8 @@ -8944,7 +8943,8 @@ for.body.i.i328: ; preds = %for.body.i209, %for sw.bb3.i98: ; preds = %.noexc store i32 -570632115, ptr %add.ptr.i, align 1 - store i8 %retval.i43.sroa.10.1, ptr %add.ptr.i.i.i146, align 1 + %add.ptr.i.i9.i180 = getelementptr inbounds i8, ptr %add.ptr.i, i64 4 + store i8 %retval.i43.sroa.10.1, ptr %add.ptr.i.i9.i180, align 1 %add.ptr.i.i.i184 = getelementptr inbounds i8, ptr %add.ptr.i, i64 5 %188 = load ptr, ptr %_M_finish.i.i, align 8 %189 = load ptr, ptr %sample, align 8 @@ -9077,9 +9077,6 @@ for.body.i.i382: ; preds = %for.body.i223, %for %cmp.i.i226 = icmp eq ptr %incdec.ptr.i.i225, %191 br i1 %cmp.i.i226, label %invoke.cont15, label %for.body.i223 -.noexc.unreachabledefault: ; preds = %.noexc - unreachable - invoke.cont15: ; preds = %.noexc227, %.noexc213, %.noexc198, %.noexc183, %sw.bb3.i98, %sw.bb2.i99, %sw.bb1.i100, %sw.bb.i101 invoke void @_Z5no_opRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %buffer_) to label %for.inc unwind label %lpad14 @@ -10377,7 +10374,7 @@ _ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE26get_fast_varint_w store ptr %add.ptr.i.i.i, ptr %9, align 8 %12 = load i32, ptr %item, align 4 %tobool.i42.not = icmp eq i32 %12, 0 - switch i32 %width_signed.i.i.0, label %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.unreachabledefault [ + switch i32 %width_signed.i.i.0, label %default.unreachable129 [ i32 0, label %sw.bb.i i32 1, label %sw.bb17.i i32 2, label %sw.bb18.i @@ -10544,15 +10541,15 @@ if.then.i82: ; preds = %_ZN11struct_pack6de store i32 %60, ptr %62, align 1 br label %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit.sink.split -_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.unreachabledefault: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit +default.unreachable129: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit unreachable _ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit.sink.split: ; preds = %if.then.i, %if.then.i51, %if.then.i82 - %.sink131 = phi ptr [ %61, %if.then.i82 ], [ %47, %if.then.i51 ], [ %29, %if.then.i ] - %.sink130 = phi i64 [ 4, %if.then.i82 ], [ 2, %if.then.i51 ], [ 1, %if.then.i ] - %63 = load ptr, ptr %.sink131, align 8 - %add.ptr.i.i294 = getelementptr inbounds i8, ptr %63, i64 %.sink130 - store ptr %add.ptr.i.i294, ptr %.sink131, align 8 + %.sink132 = phi ptr [ %61, %if.then.i82 ], [ %47, %if.then.i51 ], [ %29, %if.then.i ] + %.sink131 = phi i64 [ 4, %if.then.i82 ], [ 2, %if.then.i51 ], [ 1, %if.then.i ] + %63 = load ptr, ptr %.sink132, align 8 + %add.ptr.i.i294 = getelementptr inbounds i8, ptr %63, i64 %.sink131 + store ptr %add.ptr.i.i294, ptr %.sink132, align 8 br label %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit _ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit.sink.split, %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE25serialize_one_fast_varintILm15ELm4EiEEvRKT1_.exit91, %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE25serialize_one_fast_varintILm15ELm2EiEEvRKT1_.exit60, %_ZN11struct_pack6detail6packerINS0_13memory_writerE5rect2IiEE25serialize_one_fast_varintILm15ELm1EiEEvRKT1_.exit29 @@ -10635,7 +10632,7 @@ _ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE2 store ptr %add.ptr.i.i.i, ptr %9, align 8 %12 = load i32, ptr %item, align 4 %tobool.i70.not = icmp eq i32 %12, 0 - switch i32 %width_signed.i.i.0, label %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.unreachabledefault [ + switch i32 %width_signed.i.i.0, label %default.unreachable129 [ i32 0, label %sw.bb.i i32 1, label %sw.bb17.i i32 2, label %sw.bb18.i @@ -10802,15 +10799,15 @@ if.then.i150: ; preds = %_ZN11struct_pack6de store i32 %60, ptr %62, align 1 br label %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit.sink.split -_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.unreachabledefault: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit +default.unreachable129: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit unreachable _ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit.sink.split: ; preds = %if.then.i, %if.then.i87, %if.then.i150 - %.sink131 = phi ptr [ %61, %if.then.i150 ], [ %47, %if.then.i87 ], [ %29, %if.then.i ] - %.sink130 = phi i64 [ 4, %if.then.i150 ], [ 2, %if.then.i87 ], [ 1, %if.then.i ] - %63 = load ptr, ptr %.sink131, align 8 - %add.ptr.i.i.i153 = getelementptr inbounds i8, ptr %63, i64 %.sink130 - store ptr %add.ptr.i.i.i153, ptr %.sink131, align 8 + %.sink132 = phi ptr [ %61, %if.then.i150 ], [ %47, %if.then.i87 ], [ %29, %if.then.i ] + %.sink131 = phi i64 [ 4, %if.then.i150 ], [ 2, %if.then.i87 ], [ 1, %if.then.i ] + %63 = load ptr, ptr %.sink132, align 8 + %add.ptr.i.i.i153 = getelementptr inbounds i8, ptr %63, i64 %.sink131 + store ptr %add.ptr.i.i.i153, ptr %.sink132, align 8 br label %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit _ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE21serialize_fast_varintILm15EJiiiiEEEvDpRKT0_.exit.sink.split, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm4EiEEvRKT1_.exit169, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm2EiEEvRKT1_.exit106, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm1EiEEvRKT1_.exit43 @@ -10893,7 +10890,7 @@ _ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE2 store ptr %add.ptr.i.i.i.i, ptr %9, align 8 %12 = load i32, ptr %item, align 4 %tobool.i64.i.not = icmp eq i32 %12, 0 - switch i32 %width_signed.i.i.i.0, label %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i.unreachabledefault [ + switch i32 %width_signed.i.i.i.0, label %default.unreachable128 [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb17.i.i i32 2, label %sw.bb18.i.i @@ -11060,15 +11057,15 @@ if.then.i144.i: ; preds = %_ZN11struct_pack6de store i32 %60, ptr %62, align 1 br label %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm2ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split -_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i.unreachabledefault: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i +default.unreachable128: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i unreachable _ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm2ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split: ; preds = %if.then.i.i, %if.then.i81.i, %if.then.i144.i - %.sink130 = phi ptr [ %61, %if.then.i144.i ], [ %47, %if.then.i81.i ], [ %29, %if.then.i.i ] - %.sink129 = phi i64 [ 4, %if.then.i144.i ], [ 2, %if.then.i81.i ], [ 1, %if.then.i.i ] - %63 = load ptr, ptr %.sink130, align 8 - %add.ptr.i.i.i147.i = getelementptr inbounds i8, ptr %63, i64 %.sink129 - store ptr %add.ptr.i.i.i147.i, ptr %.sink130, align 8 + %.sink131 = phi ptr [ %61, %if.then.i144.i ], [ %47, %if.then.i81.i ], [ %29, %if.then.i.i ] + %.sink130 = phi i64 [ 4, %if.then.i144.i ], [ 2, %if.then.i81.i ], [ 1, %if.then.i.i ] + %63 = load ptr, ptr %.sink131, align 8 + %add.ptr.i.i.i147.i = getelementptr inbounds i8, ptr %63, i64 %.sink130 + store ptr %add.ptr.i.i.i147.i, ptr %.sink131, align 8 br label %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm2ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit _ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm2ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit: ; preds = %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm2ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm4EiEEvRKT1_.exit163.i, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm2EiEEvRKT1_.exit100.i, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm1EiEEvRKT1_.exit37.i @@ -11151,7 +11148,7 @@ _ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE2 store ptr %add.ptr.i.i.i.i, ptr %9, align 8 %12 = load i32, ptr %item, align 4 %tobool.i64.i.not = icmp eq i32 %12, 0 - switch i32 %width_signed.i.i.i.0, label %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i.unreachabledefault [ + switch i32 %width_signed.i.i.i.0, label %default.unreachable128 [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb17.i.i i32 2, label %sw.bb18.i.i @@ -11318,15 +11315,15 @@ if.then.i144.i: ; preds = %_ZN11struct_pack6de store i32 %60, ptr %62, align 1 br label %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm4ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split -_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i.unreachabledefault: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i +default.unreachable128: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i unreachable _ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm4ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split: ; preds = %if.then.i.i, %if.then.i81.i, %if.then.i144.i - %.sink130 = phi ptr [ %61, %if.then.i144.i ], [ %47, %if.then.i81.i ], [ %29, %if.then.i.i ] - %.sink129 = phi i64 [ 4, %if.then.i144.i ], [ 2, %if.then.i81.i ], [ 1, %if.then.i.i ] - %63 = load ptr, ptr %.sink130, align 8 - %add.ptr.i.i.i147.i = getelementptr inbounds i8, ptr %63, i64 %.sink129 - store ptr %add.ptr.i.i.i147.i, ptr %.sink130, align 8 + %.sink131 = phi ptr [ %61, %if.then.i144.i ], [ %47, %if.then.i81.i ], [ %29, %if.then.i.i ] + %.sink130 = phi i64 [ 4, %if.then.i144.i ], [ 2, %if.then.i81.i ], [ 1, %if.then.i.i ] + %63 = load ptr, ptr %.sink131, align 8 + %add.ptr.i.i.i147.i = getelementptr inbounds i8, ptr %63, i64 %.sink130 + store ptr %add.ptr.i.i.i147.i, ptr %.sink131, align 8 br label %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm4ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit _ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm4ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit: ; preds = %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm4ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm4EiEEvRKT1_.exit163.i, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm2EiEEvRKT1_.exit100.i, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm1EiEEvRKT1_.exit37.i @@ -11409,7 +11406,7 @@ _ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE2 store ptr %add.ptr.i.i.i.i, ptr %9, align 8 %12 = load i32, ptr %item, align 4 %tobool.i64.i.not = icmp eq i32 %12, 0 - switch i32 %width_signed.i.i.i.0, label %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i.unreachabledefault [ + switch i32 %width_signed.i.i.i.0, label %default.unreachable128 [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb17.i.i i32 2, label %sw.bb18.i.i @@ -11576,15 +11573,15 @@ if.then.i144.i: ; preds = %_ZN11struct_pack6de store i32 %60, ptr %62, align 1 br label %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm8ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split -_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i.unreachabledefault: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i +default.unreachable128: ; preds = %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE26get_fast_varint_width_implILm15ELm1EijiEEvRAT0__cRjRKT1_RT2_RT3_.exit.i unreachable _ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm8ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split: ; preds = %if.then.i.i, %if.then.i81.i, %if.then.i144.i - %.sink130 = phi ptr [ %61, %if.then.i144.i ], [ %47, %if.then.i81.i ], [ %29, %if.then.i.i ] - %.sink129 = phi i64 [ 4, %if.then.i144.i ], [ 2, %if.then.i81.i ], [ 1, %if.then.i.i ] - %63 = load ptr, ptr %.sink130, align 8 - %add.ptr.i.i.i147.i = getelementptr inbounds i8, ptr %63, i64 %.sink129 - store ptr %add.ptr.i.i.i147.i, ptr %.sink130, align 8 + %.sink131 = phi ptr [ %61, %if.then.i144.i ], [ %47, %if.then.i81.i ], [ %29, %if.then.i.i ] + %.sink130 = phi i64 [ 4, %if.then.i144.i ], [ 2, %if.then.i81.i ], [ 1, %if.then.i.i ] + %63 = load ptr, ptr %.sink131, align 8 + %add.ptr.i.i.i147.i = getelementptr inbounds i8, ptr %63, i64 %.sink130 + store ptr %add.ptr.i.i.i147.i, ptr %.sink131, align 8 br label %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm8ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit _ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm8ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit: ; preds = %_ZZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE13serialize_oneILm8ELm18446744073709551615ELm0ES5_EEvRKT2_ENKUlDpOT_E_clIJRKiSJ_SJ_SJ_EEEDaSF_.exit.sink.split, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm4EiEEvRKT1_.exit163.i, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm2EiEEvRKT1_.exit100.i, %_ZN11struct_pack6detail6packerINS0_13memory_writerESt6vectorI5rect2IiESaIS5_EEE25serialize_one_fast_varintILm15ELm1EiEEvRKT1_.exit37.i @@ -13577,7 +13574,7 @@ if.end.i108: ; preds = %for.body %40 = lshr i8 %metainfo.i120.0.copyload, 3 %41 = and i8 %40, 3 store i8 %41, ptr %size_type_.i129, align 8 - switch i8 %41, label %sw.default.i111 [ + switch i8 %41, label %default.unreachable [ i8 0, label %sw.bb.i110 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -13827,7 +13824,7 @@ sw.bb9.i: ; preds = %if.end.i108 %call.i164168 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0ESt6vectorI4rectIiESaIS7_EEEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i117) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI4rectIiESaIS7_EEJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i111: ; preds = %if.end.i108 +default.unreachable: ; preds = %if.end.i108 unreachable _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI4rectIiESaIS7_EEJEEENS_4errcERT_DpRT0_.exit.sink.split: ; preds = %if.end.i13.i, %if.end.i13.i161, %if.end.i13.i209 @@ -14378,7 +14375,7 @@ if.else.i: ; preds = %_ZN11struct_pack6de if.else11.i: ; preds = %if.else.i %cmp13.i = icmp ult i64 %sub.ptr.div.i.i, 4294967296 %8 = getelementptr inbounds { i64, i8 }, ptr %info.i, i64 0, i32 1 - %info3.i198 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 + %info3.i199 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 br i1 %cmp13.i, label %sw.bb2.i, label %sw.bb3.i sw.bb.i: ; preds = %_ZN11struct_pack6detail18calculate_one_sizeISt6vectorI5rect2IiESaIS4_EELm0EEE9size_infoRKT_.exit @@ -14386,15 +14383,15 @@ sw.bb.i: ; preds = %_ZN11struct_pack6de store i64 %add2.i, ptr %info.i, align 8 %9 = getelementptr inbounds { i64, i8 }, ptr %info.i, i64 0, i32 1 store i8 0, ptr %9, align 8 - %add.i180 = add i64 %add2.i, %1 - tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i180) + %add.i181 = add i64 %add2.i, %1 + tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i181) %10 = load ptr, ptr %buffer_, align 8 - %add.ptr.i181 = getelementptr inbounds i8, ptr %10, i64 %1 - store ptr %add.ptr.i181, ptr %real_writer.i, align 8 + %add.ptr.i182 = getelementptr inbounds i8, ptr %10, i64 %1 + store ptr %add.ptr.i182, ptr %real_writer.i, align 8 store ptr %real_writer.i, ptr %o.i, align 8 - %info3.i182 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 - store ptr %info.i, ptr %info3.i182, align 8 - store i8 0, ptr %add.ptr.i181, align 1 + %info3.i183 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 + store ptr %info.i, ptr %info3.i183, align 8 + store i8 0, ptr %add.ptr.i182, align 1 %11 = load ptr, ptr %real_writer.i, align 8 %add.ptr.i.i.i = getelementptr inbounds i8, ptr %11, i64 1 store ptr %add.ptr.i.i.i, ptr %real_writer.i, align 8 @@ -14428,15 +14425,15 @@ sw.bb1.i: ; preds = %if.else.i store i64 %add10.i, ptr %info.i, align 8 %19 = getelementptr inbounds { i64, i8 }, ptr %info.i, i64 0, i32 1 store i8 8, ptr %19, align 8 - %add.i188 = add i64 %add10.i, %1 - tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i188) + %add.i189 = add i64 %add10.i, %1 + tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i189) %20 = load ptr, ptr %buffer_, align 8 - %add.ptr.i189 = getelementptr inbounds i8, ptr %20, i64 %1 - store ptr %add.ptr.i189, ptr %real_writer.i, align 8 + %add.ptr.i190 = getelementptr inbounds i8, ptr %20, i64 %1 + store ptr %add.ptr.i190, ptr %real_writer.i, align 8 store ptr %real_writer.i, ptr %o.i, align 8 - %info3.i190 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 - store ptr %info.i, ptr %info3.i190, align 8 - store i8 8, ptr %add.ptr.i189, align 1 + %info3.i191 = getelementptr inbounds %"class.struct_pack::detail::packer.142", ptr %o.i, i64 0, i32 1 + store ptr %info.i, ptr %info3.i191, align 8 + store i8 8, ptr %add.ptr.i190, align 1 %21 = load ptr, ptr %real_writer.i, align 8 %add.ptr.i.i.i86 = getelementptr inbounds i8, ptr %21, i64 1 store ptr %add.ptr.i.i.i86, ptr %real_writer.i, align 8 @@ -14469,14 +14466,14 @@ sw.bb2.i: ; preds = %if.else11.i %add20.i = add i64 %ret.sroa.0.0.lcssa.i, 5 store i64 %add20.i, ptr %info.i, align 8 store i8 16, ptr %8, align 8 - %add.i196 = add i64 %add20.i, %1 - tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i196) + %add.i197 = add i64 %add20.i, %1 + tail call void @_ZN11struct_pack6detail6resizeIcEEvRNSt7__cxx1112basic_stringIT_St11char_traitsIS4_ESaIS4_EEEm(ptr noundef nonnull align 8 dereferenceable(32) %buffer_, i64 noundef %add.i197) %29 = load ptr, ptr %buffer_, align 8 - %add.ptr.i197 = getelementptr inbounds i8, ptr %29, i64 %1 - store ptr %add.ptr.i197, ptr %real_writer.i, align 8 + %add.ptr.i198 = getelementptr inbounds i8, ptr %29, i64 %1 + store ptr %add.ptr.i198, ptr %real_writer.i, align 8 store ptr %real_writer.i, ptr %o.i, align 8 - store ptr %info.i, ptr %info3.i198, align 8 - store i8 16, ptr %add.ptr.i197, align 1 + store ptr %info.i, ptr %info3.i199, align 8 + store i8 16, ptr %add.ptr.i198, align 1 %30 = load ptr, ptr %real_writer.i, align 8 %add.ptr.i.i.i73 = getelementptr inbounds i8, ptr %30, i64 1 store ptr %add.ptr.i.i.i73, ptr %real_writer.i, align 8 @@ -14515,7 +14512,7 @@ sw.bb3.i: ; preds = %if.else11.i %add.ptr.i = getelementptr inbounds i8, ptr %38, i64 %1 store ptr %add.ptr.i, ptr %real_writer.i, align 8 store ptr %real_writer.i, ptr %o.i, align 8 - store ptr %info.i, ptr %info3.i198, align 8 + store ptr %info.i, ptr %info3.i199, align 8 store i8 24, ptr %add.ptr.i, align 1 %39 = load ptr, ptr %real_writer.i, align 8 %add.ptr.i.i.i60 = getelementptr inbounds i8, ptr %39, i64 1 @@ -14544,6 +14541,9 @@ for.body.i92: ; preds = %sw.bb3.i, %for.body %cmp.i.i95 = icmp eq ptr %incdec.ptr.i.i94, %46 br i1 %cmp.i.i95, label %_ZNKSt6vectorIS_I5rect2IiESaIS1_EESaIS3_EE12_M_check_lenEmPKc.exit.i, label %for.body.i92 +default.unreachable178: ; preds = %if.end.i111 + unreachable + _ZNKSt6vectorIS_I5rect2IiESaIS1_EESaIS3_EE12_M_check_lenEmPKc.exit.i: ; preds = %for.body.i92, %for.body.i80, %for.body.i67, %for.body.i55, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %vec, i8 0, i64 24, i1 false) %_M_finish.i.i96 = getelementptr inbounds %"struct.std::_Vector_base>, std::allocator>>>::_Vector_impl_data", ptr %vec, i64 0, i32 1 @@ -14674,7 +14674,7 @@ if.end.i111: ; preds = %for.body %63 = lshr i8 %metainfo.i125.0.copyload, 3 %64 = and i8 %63, 3 store i8 %64, ptr %size_type_.i133, align 8 - switch i8 %64, label %sw.default.i114 [ + switch i8 %64, label %default.unreachable178 [ i8 0, label %sw.bb.i113 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -14697,9 +14697,6 @@ sw.bb9.i: ; preds = %if.end.i111 %call.i168172 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0ESt6vectorI5rect2IiESaIS7_EEEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i121) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI5rect2IiESaIS7_EEJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i114: ; preds = %if.end.i111 - unreachable - _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI5rect2IiESaIS7_EEJEEENS_4errcERT_DpRT0_.exit: ; preds = %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %sw.bb.i113, %for.body %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 @@ -15053,7 +15050,7 @@ if.end6.i.us: ; preds = %for.body.us if.end9.i.us: ; preds = %if.end6.i.us %metainfo.i138.0.copyload.us = load i8, ptr %add.ptr.i112, align 1 %35 = and i8 %metainfo.i138.0.copyload.us, 3 - switch i8 %35, label %if.end9.i.us.unreachabledefault [ + switch i8 %35, label %default.unreachable [ i8 0, label %if.end23.i.us i8 1, label %sw.bb.i192.us i8 2, label %sw.bb2.i191.us @@ -15091,7 +15088,7 @@ if.end33.i.us: ; preds = %if.end.i207.us, %if %reader.i.sroa.0.9.us = phi ptr [ %reader.i.sroa.0.7.us, %if.end23.i.us ], [ %add.ptr.i163.us, %if.end.i207.us ] %37 = lshr i8 %metainfo.i138.0.copyload.us, 3 %38 = and i8 %37, 3 - switch i8 %38, label %if.end33.i.us.unreachabledefault [ + switch i8 %38, label %default.unreachable [ i8 0, label %sw.bb.i125.us i8 1, label %sw.bb5.i.us i8 2, label %sw.bb7.i.us @@ -15190,10 +15187,7 @@ _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt4spanI %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 br i1 %exitcond.not, label %for.end, label %for.body.us, !llvm.loop !238 -if.end9.i.us.unreachabledefault: ; preds = %if.end9.i.us - unreachable - -if.end33.i.us.unreachabledefault: ; preds = %if.end33.i.us +default.unreachable: ; preds = %if.end33.i.us, %if.end9.i.us unreachable lpad5: ; preds = %invoke.cont4 @@ -15414,13 +15408,16 @@ sw.bb3.i: ; preds = %if.else10.i %add.ptr.i.i.i4.i96 = getelementptr inbounds i8, ptr %add.ptr.i.i10.i.i94, i64 %22 br label %if.then.i103 +default.unreachable352: ; preds = %if.end.i119, %if.end15.i + unreachable + if.then.i103: ; preds = %sw.bb.i, %sw.bb1.i, %sw.bb2.i, %sw.bb3.i - %add.ptr.i.i10.i.i.sink352 = phi ptr [ %add.ptr.i.i10.i.i, %sw.bb.i ], [ %add.ptr.i.i.i4.i73, %sw.bb1.i ], [ %add.ptr.i.i.i4.i85, %sw.bb2.i ], [ %add.ptr.i.i.i4.i96, %sw.bb3.i ] + %add.ptr.i.i10.i.i.sink353 = phi ptr [ %add.ptr.i.i10.i.i, %sw.bb.i ], [ %add.ptr.i.i.i4.i73, %sw.bb1.i ], [ %add.ptr.i.i.i4.i85, %sw.bb2.i ], [ %add.ptr.i.i.i4.i96, %sw.bb3.i ] %salary.i.i.sink = getelementptr inbounds %struct.person, ptr %sample, i64 0, i32 3 %age.i.i.sink = getelementptr inbounds %struct.person, ptr %sample, i64 0, i32 2 %23 = load i32, ptr %age.i.i.sink, align 8 - store i32 %23, ptr %add.ptr.i.i10.i.i.sink352, align 1 - %add.ptr.i.i.i5.i = getelementptr inbounds i8, ptr %add.ptr.i.i10.i.i.sink352, i64 4 + store i32 %23, ptr %add.ptr.i.i10.i.i.sink353, align 1 + %add.ptr.i.i.i5.i = getelementptr inbounds i8, ptr %add.ptr.i.i10.i.i.sink353, i64 4 %24 = load i64, ptr %salary.i.i.sink, align 8 store i64 %24, ptr %add.ptr.i.i.i5.i, align 1 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %vec, i8 0, i64 24, i1 false) @@ -15568,7 +15565,7 @@ if.end15.i: ; preds = %if.end9.i %add.ptr.i133 = getelementptr inbounds i8, ptr %41, i64 5 store ptr %add.ptr.i133, ptr %reader.i, align 8 %42 = and i8 %metainfo.i135.0.copyload, 3 - switch i8 %42, label %if.then16.i.unreachabledefault [ + switch i8 %42, label %default.unreachable352 [ i8 0, label %if.end23.i i8 1, label %sw.bb.i.i i8 2, label %sw.bb2.i.i @@ -15605,9 +15602,6 @@ if.then11.i.i: ; preds = %sw.bb8.i.i store ptr %add.ptr.i162, ptr %reader.i, align 8 br label %if.end23.i -if.then16.i.unreachabledefault: ; preds = %if.end15.i - unreachable - if.end23.i: ; preds = %if.end15.i, %if.then.i.i, %if.then5.i.i, %if.then11.i.i %46 = phi ptr [ %add.ptr.i133, %if.end15.i ], [ %add.ptr.i144, %if.then.i.i ], [ %add.ptr.i153, %if.then5.i.i ], [ %add.ptr.i162, %if.then11.i.i ] %47 = and i8 %metainfo.i135.0.copyload, 4 @@ -15632,7 +15626,7 @@ if.end.i119: ; preds = %if.end23.i, %if.end %48 = lshr i8 %metainfo.i135.0.copyload, 3 %49 = and i8 %48, 3 store i8 %49, ptr %size_type_37.i, align 8 - switch i8 %49, label %sw.default.i122 [ + switch i8 %49, label %default.unreachable352 [ i8 0, label %sw.bb.i121 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -15655,9 +15649,6 @@ sw.bb9.i: ; preds = %if.end.i119 %call.i182186 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0E6personEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(56) %add.ptr.i120) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeI6personJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i122: ; preds = %if.end.i119 - unreachable - _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeI6personJEEENS_4errcERT_DpRT0_.exit: ; preds = %if.end.i196, %if.then27.i, %sw.bb.i.i, %sw.bb2.i.i, %sw.bb8.i.i, %if.end9.i, %if.end.i139, %for.body, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %sw.bb.i121 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 @@ -16090,6 +16081,9 @@ for.body.i128: ; preds = %for.body.i128.prehe %cmp.i.i141 = icmp eq ptr %incdec.ptr.i.i140, %43 br i1 %cmp.i.i141, label %_ZNKSt6vectorIS_I6personSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i, label %for.body.i128 +default.unreachable438: ; preds = %if.end.i122, %if.end15.i + unreachable + _ZNKSt6vectorIS_I6personSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i: ; preds = %for.body.i128, %for.body.i105, %for.body.i81, %for.body.i68, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %vec, i8 0, i64 24, i1 false) %_M_finish.i.i142 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %vec, i64 0, i32 1 @@ -16241,7 +16235,7 @@ if.end15.i: ; preds = %if.end9.i %add.ptr.i180 = getelementptr inbounds i8, ptr %65, i64 5 store ptr %add.ptr.i180, ptr %reader.i, align 8 %66 = and i8 %metainfo.i138.0.copyload, 3 - switch i8 %66, label %if.then16.i.unreachabledefault [ + switch i8 %66, label %default.unreachable438 [ i8 0, label %if.end23.i i8 1, label %sw.bb.i.i i8 2, label %sw.bb2.i.i @@ -16278,9 +16272,6 @@ if.then11.i.i: ; preds = %sw.bb8.i.i store ptr %add.ptr.i210, ptr %reader.i, align 8 br label %if.end23.i -if.then16.i.unreachabledefault: ; preds = %if.end15.i - unreachable - if.end23.i: ; preds = %if.end15.i, %if.then.i.i, %if.then5.i.i, %if.then11.i.i %70 = phi ptr [ %add.ptr.i180, %if.end15.i ], [ %add.ptr.i191, %if.then.i.i ], [ %add.ptr.i201, %if.then5.i.i ], [ %add.ptr.i210, %if.then11.i.i ] %71 = and i8 %metainfo.i138.0.copyload, 4 @@ -16304,7 +16295,7 @@ if.end.i122: ; preds = %if.end23.i, %if.end %72 = lshr i8 %metainfo.i138.0.copyload, 3 %73 = and i8 %72, 3 store i8 %73, ptr %size_type_37.i, align 8 - switch i8 %73, label %sw.default.i125 [ + switch i8 %73, label %default.unreachable438 [ i8 0, label %sw.bb.i124 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -16327,9 +16318,6 @@ sw.bb9.i: ; preds = %if.end.i122 %call.i185189 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0ESt6vectorI6personSaIS6_EEEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i167) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI6personSaIS6_EEJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i125: ; preds = %if.end.i122 - unreachable - _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI6personSaIS6_EEJEEENS_4errcERT_DpRT0_.exit: ; preds = %if.end.i199, %if.then27.i, %sw.bb.i.i, %sw.bb2.i.i, %sw.bb8.i.i, %if.end9.i, %if.end.i142, %for.body, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %sw.bb.i124 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 @@ -16783,6 +16771,9 @@ for.body.i128: ; preds = %for.body.i128.prehe %cmp.i.i141 = icmp eq ptr %incdec.ptr.i.i140, %43 br i1 %cmp.i.i141, label %_ZNKSt6vectorIS_I9zc_personSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i, label %for.body.i128 +default.unreachable437: ; preds = %if.end.i122, %if.end15.i + unreachable + _ZNKSt6vectorIS_I9zc_personSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i: ; preds = %for.body.i128, %for.body.i105, %for.body.i81, %for.body.i68, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %vec, i8 0, i64 24, i1 false) %_M_finish.i.i142 = getelementptr inbounds %"struct.std::_Vector_base, std::allocator>>::_Vector_impl_data", ptr %vec, i64 0, i32 1 @@ -16934,7 +16925,7 @@ if.end15.i: ; preds = %if.end9.i %add.ptr.i180 = getelementptr inbounds i8, ptr %65, i64 5 store ptr %add.ptr.i180, ptr %reader.i, align 8 %66 = and i8 %metainfo.i138.0.copyload, 3 - switch i8 %66, label %if.then16.i.unreachabledefault [ + switch i8 %66, label %default.unreachable437 [ i8 0, label %if.end23.i i8 1, label %sw.bb.i.i i8 2, label %sw.bb2.i.i @@ -16971,9 +16962,6 @@ if.then11.i.i: ; preds = %sw.bb8.i.i store ptr %add.ptr.i209, ptr %reader.i, align 8 br label %if.end23.i -if.then16.i.unreachabledefault: ; preds = %if.end15.i - unreachable - if.end23.i: ; preds = %if.end15.i, %if.then.i.i, %if.then5.i.i, %if.then11.i.i %70 = phi ptr [ %add.ptr.i180, %if.end15.i ], [ %add.ptr.i191, %if.then.i.i ], [ %add.ptr.i200, %if.then5.i.i ], [ %add.ptr.i209, %if.then11.i.i ] %71 = and i8 %metainfo.i138.0.copyload, 4 @@ -16997,7 +16985,7 @@ if.end.i122: ; preds = %if.end23.i, %if.end %72 = lshr i8 %metainfo.i138.0.copyload, 3 %73 = and i8 %72, 3 store i8 %73, ptr %size_type_37.i, align 8 - switch i8 %73, label %sw.default.i125 [ + switch i8 %73, label %default.unreachable437 [ i8 0, label %sw.bb.i124 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -17020,9 +17008,6 @@ sw.bb9.i: ; preds = %if.end.i122 %call.i184188 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0ESt6vectorI9zc_personSaIS6_EEEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i167) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI9zc_personSaIS6_EEJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i125: ; preds = %if.end.i122 - unreachable - _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI9zc_personSaIS6_EEJEEENS_4errcERT_DpRT0_.exit: ; preds = %if.end.i198, %if.then27.i, %sw.bb.i.i, %sw.bb2.i.i, %sw.bb8.i.i, %if.end9.i, %if.end.i142, %for.body, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %sw.bb.i124 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 @@ -17233,9 +17218,9 @@ if.else.i: ; preds = %_ZN11struct_pack6de %cmp3.i = icmp ult i64 %15, 65536 %cmp12.i = icmp ult i64 %15, 4294967296 %. = select i1 %cmp12.i, i64 2, i64 3 - %.212 = select i1 %cmp12.i, i8 16, i8 24 + %.213 = select i1 %cmp12.i, i8 16, i8 24 %.sink = select i1 %cmp3.i, i64 1, i64 %. - %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.212 + %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.213 %mul16.i = shl i64 %ret.sroa.4.0.lcssa.i.i, %.sink %retval.i.sroa.0.0 = add i64 %add.i73.i, 1 %add31.i = add i64 %retval.i.sroa.0.0, %mul16.i @@ -17257,7 +17242,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21seriali %info3.i = getelementptr inbounds %"class.struct_pack::detail::packer.169", ptr %o.i, i64 0, i32 1 store ptr %info.i, ptr %info3.i, align 8 %18 = lshr i8 %retval.i.sroa.10.1, 3 - switch i8 %18, label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault [ + switch i8 %18, label %default.unreachable211 [ i8 0, label %sw.bb.i i8 1, label %sw.bb1.i i8 2, label %sw.bb2.i @@ -17323,7 +17308,7 @@ sw.bb3.i: ; preds = %_ZN11struct_pack6de call void @_ZN11struct_pack6detail6packerINS0_13memory_writerE7MonsterE13serialize_oneILm8ELm18446744073709551615ELm0ES3_EEvRKT2_(ptr noundef nonnull align 8 dereferenceable(16) %o.i, ptr noundef nonnull align 8 dereferenceable(176) %sample) br label %if.then.i70 -_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault: ; preds = %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit +default.unreachable211: ; preds = %if.end.i122, %if.end15.i, %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJ7MonsterEEENS_21serialize_buffer_sizeEDpRKT0_.exit unreachable if.then.i70: ; preds = %sw.bb.i, %sw.bb1.i, %sw.bb2.i, %sw.bb3.i @@ -17472,7 +17457,7 @@ if.end15.i: ; preds = %if.end9.i %add.ptr.i100 = getelementptr inbounds i8, ptr %54, i64 5 store ptr %add.ptr.i100, ptr %reader.i, align 8 %55 = and i8 %metainfo.i138.0.copyload, 3 - switch i8 %55, label %if.then16.i.unreachabledefault [ + switch i8 %55, label %default.unreachable211 [ i8 0, label %if.end23.i i8 1, label %sw.bb.i.i i8 2, label %sw.bb2.i.i @@ -17509,9 +17494,6 @@ if.then11.i.i: ; preds = %sw.bb8.i.i store ptr %add.ptr.i129, ptr %reader.i, align 8 br label %if.end23.i -if.then16.i.unreachabledefault: ; preds = %if.end15.i - unreachable - if.end23.i: ; preds = %if.end15.i, %if.then.i.i, %if.then5.i.i, %if.then11.i.i %59 = phi ptr [ %add.ptr.i100, %if.end15.i ], [ %add.ptr.i111, %if.then.i.i ], [ %add.ptr.i120, %if.then5.i.i ], [ %add.ptr.i129, %if.then11.i.i ] %60 = and i8 %metainfo.i138.0.copyload, 4 @@ -17535,7 +17517,7 @@ if.end.i122: ; preds = %if.end23.i, %if.end %61 = lshr i8 %metainfo.i138.0.copyload, 3 %62 = and i8 %61, 3 store i8 %62, ptr %size_type_37.i, align 8 - switch i8 %62, label %sw.default.i125 [ + switch i8 %62, label %default.unreachable211 [ i8 0, label %sw.bb.i124 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -17558,9 +17540,6 @@ sw.bb9.i: ; preds = %if.end.i122 %call.i185189 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0E7MonsterEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(176) %add.ptr.i87) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeI7MonsterJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i125: ; preds = %if.end.i122 - unreachable - _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeI7MonsterJEEENS_4errcERT_DpRT0_.exit: ; preds = %if.end.i199, %if.then27.i, %sw.bb.i.i, %sw.bb2.i.i, %sw.bb8.i.i, %if.end9.i, %if.end.i142, %for.body, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %sw.bb.i124 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 @@ -17803,9 +17782,9 @@ if.else.i: ; preds = %_ZN11struct_pack6de %cmp3.i = icmp ult i64 %ret.sroa.8.0.lcssa.i, 65536 %cmp12.i = icmp ult i64 %ret.sroa.8.0.lcssa.i, 4294967296 %. = select i1 %cmp12.i, i64 2, i64 3 - %.290 = select i1 %cmp12.i, i8 16, i8 24 + %.291 = select i1 %cmp12.i, i8 16, i8 24 %.sink = select i1 %cmp3.i, i64 1, i64 %. - %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.290 + %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.291 %mul16.i = shl i64 %ret.sroa.4.0.lcssa.i, %.sink %retval.i.sroa.0.0 = add i64 %ret.sroa.0.0.lcssa.i, 1 %add31.i = add i64 %retval.i.sroa.0.0, %mul16.i @@ -17827,7 +17806,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3 %info3.i = getelementptr inbounds %"class.struct_pack::detail::packer.179", ptr %o.i, i64 0, i32 1 store ptr %info.i, ptr %info3.i, align 8 %21 = lshr i8 %retval.i.sroa.10.1, 3 - switch i8 %21, label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault [ + switch i8 %21, label %default.unreachable285 [ i8 0, label %sw.bb.i i8 1, label %sw.bb1.i i8 2, label %sw.bb2.i @@ -17980,7 +17959,7 @@ for.body.i105: ; preds = %sw.bb3.i, %for.body %cmp.i.i108 = icmp eq ptr %incdec.ptr.i.i107, %68 br i1 %cmp.i.i108, label %_ZNKSt6vectorIS_I7MonsterSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i, label %for.body.i105 -_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault: ; preds = %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit +default.unreachable285: ; preds = %if.end.i122, %if.end15.i, %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit unreachable _ZNKSt6vectorIS_I7MonsterSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i: ; preds = %for.body.i105, %for.body.i93, %for.body.i80, %for.body.i68, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i @@ -18134,7 +18113,7 @@ if.end15.i: ; preds = %if.end9.i %add.ptr.i148 = getelementptr inbounds i8, ptr %84, i64 5 store ptr %add.ptr.i148, ptr %reader.i, align 8 %85 = and i8 %metainfo.i138.0.copyload, 3 - switch i8 %85, label %if.then16.i.unreachabledefault [ + switch i8 %85, label %default.unreachable285 [ i8 0, label %if.end23.i i8 1, label %sw.bb.i.i i8 2, label %sw.bb2.i.i @@ -18171,9 +18150,6 @@ if.then11.i.i: ; preds = %sw.bb8.i.i store ptr %add.ptr.i177, ptr %reader.i, align 8 br label %if.end23.i -if.then16.i.unreachabledefault: ; preds = %if.end15.i - unreachable - if.end23.i: ; preds = %if.end15.i, %if.then.i.i, %if.then5.i.i, %if.then11.i.i %89 = phi ptr [ %add.ptr.i148, %if.end15.i ], [ %add.ptr.i159, %if.then.i.i ], [ %add.ptr.i168, %if.then5.i.i ], [ %add.ptr.i177, %if.then11.i.i ] %90 = and i8 %metainfo.i138.0.copyload, 4 @@ -18197,7 +18173,7 @@ if.end.i122: ; preds = %if.end23.i, %if.end %91 = lshr i8 %metainfo.i138.0.copyload, 3 %92 = and i8 %91, 3 store i8 %92, ptr %size_type_37.i, align 8 - switch i8 %92, label %sw.default.i125 [ + switch i8 %92, label %default.unreachable285 [ i8 0, label %sw.bb.i124 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -18220,9 +18196,6 @@ sw.bb9.i: ; preds = %if.end.i122 %call.i185189 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0ESt6vectorI7MonsterSaIS6_EEEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i135) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI7MonsterSaIS6_EEJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i125: ; preds = %if.end.i122 - unreachable - _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI7MonsterSaIS6_EEJEEENS_4errcERT_DpRT0_.exit: ; preds = %if.end.i199, %if.then27.i, %sw.bb.i.i, %sw.bb2.i.i, %sw.bb8.i.i, %if.end9.i, %if.end.i142, %for.body, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %sw.bb.i124 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 @@ -18451,9 +18424,9 @@ if.else.i: ; preds = %_ZN11struct_pack6de %cmp3.i = icmp ult i64 %ret.sroa.8.0.lcssa.i, 65536 %cmp12.i = icmp ult i64 %ret.sroa.8.0.lcssa.i, 4294967296 %. = select i1 %cmp12.i, i64 2, i64 3 - %.292 = select i1 %cmp12.i, i8 16, i8 24 + %.293 = select i1 %cmp12.i, i8 16, i8 24 %.sink = select i1 %cmp3.i, i64 1, i64 %. - %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.292 + %retval.i.sroa.10.0 = select i1 %cmp3.i, i8 8, i8 %.293 %mul16.i = shl i64 %ret.sroa.4.0.lcssa.i, %.sink %retval.i.sroa.0.0 = add i64 %ret.sroa.0.0.lcssa.i, 1 %add31.i = add i64 %retval.i.sroa.0.0, %mul16.i @@ -18475,7 +18448,7 @@ _ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3 %info3.i = getelementptr inbounds %"class.struct_pack::detail::packer.179", ptr %o.i, i64 0, i32 1 store ptr %info.i, ptr %info3.i, align 8 %21 = lshr i8 %retval.i.sroa.10.1, 3 - switch i8 %21, label %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault [ + switch i8 %21, label %default.unreachable287 [ i8 0, label %sw.bb.i i8 1, label %sw.bb1.i i8 2, label %sw.bb2.i @@ -18628,7 +18601,7 @@ for.body.i105: ; preds = %sw.bb3.i, %for.body %cmp.i.i108 = icmp eq ptr %incdec.ptr.i.i107, %68 br i1 %cmp.i.i108, label %_ZNKSt6vectorIS_I10zc_MonsterSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i, label %for.body.i105 -_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit.unreachabledefault: ; preds = %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit +default.unreachable287: ; preds = %if.end.i122, %if.end15.i, %_ZN11struct_pack6detail26get_serialize_runtime_infoILm0EJSt6vectorI7MonsterSaIS3_EEEEENS_21serialize_buffer_sizeEDpRKT0_.exit unreachable _ZNKSt6vectorIS_I10zc_MonsterSaIS0_EESaIS2_EE12_M_check_lenEmPKc.exit.i: ; preds = %for.body.i105, %for.body.i93, %for.body.i80, %for.body.i68, %sw.bb3.i, %sw.bb2.i, %sw.bb1.i, %sw.bb.i @@ -18782,7 +18755,7 @@ if.end15.i: ; preds = %if.end9.i %add.ptr.i147 = getelementptr inbounds i8, ptr %84, i64 5 store ptr %add.ptr.i147, ptr %reader.i, align 8 %85 = and i8 %metainfo.i138.0.copyload, 3 - switch i8 %85, label %if.then16.i.unreachabledefault [ + switch i8 %85, label %default.unreachable287 [ i8 0, label %if.end23.i i8 1, label %sw.bb.i.i i8 2, label %sw.bb2.i.i @@ -18819,9 +18792,6 @@ if.then11.i.i: ; preds = %sw.bb8.i.i store ptr %add.ptr.i176, ptr %reader.i, align 8 br label %if.end23.i -if.then16.i.unreachabledefault: ; preds = %if.end15.i - unreachable - if.end23.i: ; preds = %if.end15.i, %if.then.i.i, %if.then5.i.i, %if.then11.i.i %89 = phi ptr [ %add.ptr.i147, %if.end15.i ], [ %add.ptr.i158, %if.then.i.i ], [ %add.ptr.i167, %if.then5.i.i ], [ %add.ptr.i176, %if.then11.i.i ] %90 = and i8 %metainfo.i138.0.copyload, 4 @@ -18845,7 +18815,7 @@ if.end.i122: ; preds = %if.end23.i, %if.end %91 = lshr i8 %metainfo.i138.0.copyload, 3 %92 = and i8 %91, 3 store i8 %92, ptr %size_type_37.i, align 8 - switch i8 %92, label %sw.default.i125 [ + switch i8 %92, label %default.unreachable287 [ i8 0, label %sw.bb.i124 i8 1, label %sw.bb5.i i8 2, label %sw.bb7.i @@ -18868,9 +18838,6 @@ sw.bb9.i: ; preds = %if.end.i122 %call.i184188 = invoke noundef i32 @_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE15deserialize_oneILm8ELm18446744073709551615ELb1ELm0ESt6vectorI10zc_MonsterSaIS6_EEEENS_4errcERT3_(ptr noundef nonnull align 8 dereferenceable(17) %in.i, ptr noundef nonnull align 8 dereferenceable(24) %add.ptr.i134) to label %_ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI10zc_MonsterSaIS6_EEJEEENS_4errcERT_DpRT0_.exit unwind label %lpad17.loopexit -sw.default.i125: ; preds = %if.end.i122 - unreachable - _ZN11struct_pack6detail8unpackerINS0_13memory_readerELm0EE11deserializeISt6vectorI10zc_MonsterSaIS6_EEJEEENS_4errcERT_DpRT0_.exit: ; preds = %if.end.i198, %if.then27.i, %sw.bb.i.i, %sw.bb2.i.i, %sw.bb8.i.i, %if.end9.i, %if.end.i142, %for.body, %sw.bb9.i, %sw.bb7.i, %sw.bb5.i, %sw.bb.i124 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 100000 @@ -19286,10 +19253,10 @@ if.end.i: ; preds = %entry %vec.i.sroa.0.0.copyload = load i8, ptr %2, align 1 %add.ptr.i = getelementptr inbounds i8, ptr %2, i64 1 store ptr %add.ptr.i, ptr %0, align 8 - %conv.i208 = zext i8 %vec.i.sroa.0.0.copyload to i32 - %and.i = lshr i32 %conv.i208, 4 + %conv.i209 = zext i8 %vec.i.sroa.0.0.copyload to i32 + %and.i = lshr i32 %conv.i209, 4 %add.i = and i32 %and.i, 3 - switch i32 %add.i, label %if.end.i.unreachabledefault [ + switch i32 %add.i, label %default.unreachable208 [ i32 0, label %sw.bb.i i32 1, label %sw.bb20.i i32 2, label %sw.bb22.i @@ -19297,7 +19264,7 @@ if.end.i: ; preds = %entry ] sw.bb.i: ; preds = %if.end.i - %and.i63 = and i32 %conv.i208, 1 + %and.i63 = and i32 %conv.i209, 1 %tobool.i64.not = icmp eq i32 %and.i63, 0 br i1 %tobool.i64.not, label %if.else.i, label %if.end.i66 @@ -19380,7 +19347,7 @@ if.end4.i.i158: ; preds = %if.end.i.i152 br label %return.sink.split sw.bb20.i: ; preds = %if.end.i - %and.i177 = and i32 %conv.i208, 1 + %and.i177 = and i32 %conv.i209, 1 %tobool.i178.not = icmp eq i32 %and.i177, 0 br i1 %tobool.i178.not, label %if.else.i36, label %if.end.i180 @@ -19475,7 +19442,7 @@ if.end4.i.i306: ; preds = %if.end.i.i301 br label %return.sink.split sw.bb22.i: ; preds = %if.end.i - %and.i325 = and i32 %conv.i208, 1 + %and.i325 = and i32 %conv.i209, 1 %tobool.i326.not = icmp eq i32 %and.i325, 0 br i1 %tobool.i326.not, label %if.else.i51, label %if.end.i328 @@ -19565,7 +19532,7 @@ if.end4.i.i455: ; preds = %if.end.i.i449 store ptr %add.ptr.i169, ptr %45, align 8 br label %return.sink.split -if.end.i.unreachabledefault: ; preds = %if.end.i +default.unreachable208: ; preds = %if.end.i unreachable return.sink.split: ; preds = %if.end4.i.i158, %if.end4.i.i306, %if.end4.i.i455 @@ -19596,10 +19563,10 @@ if.end.i.i: ; preds = %entry %vec.i.i.sroa.0.0.copyload = load i8, ptr %2, align 1 %add.ptr.i = getelementptr inbounds i8, ptr %2, i64 1 store ptr %add.ptr.i, ptr %0, align 8 - %conv.i.i208 = zext i8 %vec.i.i.sroa.0.0.copyload to i32 - %and.i.i = lshr i32 %conv.i.i208, 4 + %conv.i.i209 = zext i8 %vec.i.i.sroa.0.0.copyload to i32 + %and.i.i = lshr i32 %conv.i.i209, 4 %add.i.i = and i32 %and.i.i, 3 - switch i32 %add.i.i, label %if.end.i.i.unreachabledefault [ + switch i32 %add.i.i, label %default.unreachable208 [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb20.i.i i32 2, label %sw.bb22.i.i @@ -19607,7 +19574,7 @@ if.end.i.i: ; preds = %entry ] sw.bb.i.i: ; preds = %if.end.i.i - %and.i54.i = and i32 %conv.i.i208, 1 + %and.i54.i = and i32 %conv.i.i209, 1 %tobool.i55.i.not = icmp eq i32 %and.i54.i, 0 br i1 %tobool.i55.i.not, label %if.else.i.i, label %if.end.i57.i @@ -19690,7 +19657,7 @@ if.end4.i.i149.i: ; preds = %if.end.i.i143.i br label %return.sink.split sw.bb20.i.i: ; preds = %if.end.i.i - %and.i168.i = and i32 %conv.i.i208, 1 + %and.i168.i = and i32 %conv.i.i209, 1 %tobool.i169.i.not = icmp eq i32 %and.i168.i, 0 br i1 %tobool.i169.i.not, label %if.else.i27.i, label %if.end.i171.i @@ -19785,7 +19752,7 @@ if.end4.i.i297.i: ; preds = %if.end.i.i292.i br label %return.sink.split sw.bb22.i.i: ; preds = %if.end.i.i - %and.i316.i = and i32 %conv.i.i208, 1 + %and.i316.i = and i32 %conv.i.i209, 1 %tobool.i317.i.not = icmp eq i32 %and.i316.i, 0 br i1 %tobool.i317.i.not, label %if.else.i42.i, label %if.end.i319.i @@ -19875,7 +19842,7 @@ if.end4.i.i446.i: ; preds = %if.end.i.i440.i store ptr %add.ptr.i169, ptr %45, align 8 br label %return.sink.split -if.end.i.i.unreachabledefault: ; preds = %if.end.i.i +default.unreachable208: ; preds = %if.end.i.i unreachable return.sink.split: ; preds = %if.end4.i.i149.i, %if.end4.i.i297.i, %if.end4.i.i446.i @@ -19906,10 +19873,10 @@ if.end.i.i: ; preds = %entry %vec.i.i.sroa.0.0.copyload = load i8, ptr %2, align 1 %add.ptr.i = getelementptr inbounds i8, ptr %2, i64 1 store ptr %add.ptr.i, ptr %0, align 8 - %conv.i.i208 = zext i8 %vec.i.i.sroa.0.0.copyload to i32 - %and.i.i = lshr i32 %conv.i.i208, 4 + %conv.i.i209 = zext i8 %vec.i.i.sroa.0.0.copyload to i32 + %and.i.i = lshr i32 %conv.i.i209, 4 %add.i.i = and i32 %and.i.i, 3 - switch i32 %add.i.i, label %if.end.i.i.unreachabledefault [ + switch i32 %add.i.i, label %default.unreachable208 [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb20.i.i i32 2, label %sw.bb22.i.i @@ -19917,7 +19884,7 @@ if.end.i.i: ; preds = %entry ] sw.bb.i.i: ; preds = %if.end.i.i - %and.i54.i = and i32 %conv.i.i208, 1 + %and.i54.i = and i32 %conv.i.i209, 1 %tobool.i55.i.not = icmp eq i32 %and.i54.i, 0 br i1 %tobool.i55.i.not, label %if.else.i.i, label %if.end.i57.i @@ -20000,7 +19967,7 @@ if.end4.i.i149.i: ; preds = %if.end.i.i143.i br label %return.sink.split sw.bb20.i.i: ; preds = %if.end.i.i - %and.i168.i = and i32 %conv.i.i208, 1 + %and.i168.i = and i32 %conv.i.i209, 1 %tobool.i169.i.not = icmp eq i32 %and.i168.i, 0 br i1 %tobool.i169.i.not, label %if.else.i27.i, label %if.end.i171.i @@ -20095,7 +20062,7 @@ if.end4.i.i297.i: ; preds = %if.end.i.i292.i br label %return.sink.split sw.bb22.i.i: ; preds = %if.end.i.i - %and.i316.i = and i32 %conv.i.i208, 1 + %and.i316.i = and i32 %conv.i.i209, 1 %tobool.i317.i.not = icmp eq i32 %and.i316.i, 0 br i1 %tobool.i317.i.not, label %if.else.i42.i, label %if.end.i319.i @@ -20185,7 +20152,7 @@ if.end4.i.i446.i: ; preds = %if.end.i.i440.i store ptr %add.ptr.i169, ptr %45, align 8 br label %return.sink.split -if.end.i.i.unreachabledefault: ; preds = %if.end.i.i +default.unreachable208: ; preds = %if.end.i.i unreachable return.sink.split: ; preds = %if.end4.i.i149.i, %if.end4.i.i297.i, %if.end4.i.i446.i @@ -20216,10 +20183,10 @@ if.end.i.i: ; preds = %entry %vec.i.i.sroa.0.0.copyload = load i8, ptr %2, align 1 %add.ptr.i = getelementptr inbounds i8, ptr %2, i64 1 store ptr %add.ptr.i, ptr %0, align 8 - %conv.i.i208 = zext i8 %vec.i.i.sroa.0.0.copyload to i32 - %and.i.i = lshr i32 %conv.i.i208, 4 + %conv.i.i209 = zext i8 %vec.i.i.sroa.0.0.copyload to i32 + %and.i.i = lshr i32 %conv.i.i209, 4 %add.i.i = and i32 %and.i.i, 3 - switch i32 %add.i.i, label %if.end.i.i.unreachabledefault [ + switch i32 %add.i.i, label %default.unreachable208 [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb20.i.i i32 2, label %sw.bb22.i.i @@ -20227,7 +20194,7 @@ if.end.i.i: ; preds = %entry ] sw.bb.i.i: ; preds = %if.end.i.i - %and.i54.i = and i32 %conv.i.i208, 1 + %and.i54.i = and i32 %conv.i.i209, 1 %tobool.i55.i.not = icmp eq i32 %and.i54.i, 0 br i1 %tobool.i55.i.not, label %if.else.i.i, label %if.end.i57.i @@ -20310,7 +20277,7 @@ if.end4.i.i149.i: ; preds = %if.end.i.i143.i br label %return.sink.split sw.bb20.i.i: ; preds = %if.end.i.i - %and.i168.i = and i32 %conv.i.i208, 1 + %and.i168.i = and i32 %conv.i.i209, 1 %tobool.i169.i.not = icmp eq i32 %and.i168.i, 0 br i1 %tobool.i169.i.not, label %if.else.i27.i, label %if.end.i171.i @@ -20405,7 +20372,7 @@ if.end4.i.i297.i: ; preds = %if.end.i.i292.i br label %return.sink.split sw.bb22.i.i: ; preds = %if.end.i.i - %and.i316.i = and i32 %conv.i.i208, 1 + %and.i316.i = and i32 %conv.i.i209, 1 %tobool.i317.i.not = icmp eq i32 %and.i316.i, 0 br i1 %tobool.i317.i.not, label %if.else.i42.i, label %if.end.i319.i @@ -20495,7 +20462,7 @@ if.end4.i.i446.i: ; preds = %if.end.i.i440.i store ptr %add.ptr.i169, ptr %45, align 8 br label %return.sink.split -if.end.i.i.unreachabledefault: ; preds = %if.end.i.i +default.unreachable208: ; preds = %if.end.i.i unreachable return.sink.split: ; preds = %if.end4.i.i149.i, %if.end4.i.i297.i, %if.end4.i.i446.i diff --git a/bench/yoga/optimized/CalculateLayout.cpp.ll b/bench/yoga/optimized/CalculateLayout.cpp.ll index 61fe82f22ab..dce8a46cfbb 100644 --- a/bench/yoga/optimized/CalculateLayout.cpp.ll +++ b/bench/yoga/optimized/CalculateLayout.cpp.ll @@ -832,22 +832,22 @@ sw.epilog.i.i1236: ; preds = %if.else.i1227 switch.lookup: ; preds = %if.else.i1227 %81 = icmp ult i32 %heightSizingMode, 3 - br i1 %81, label %switch.lookup2642, label %sw.epilog.i86.i + br i1 %81, label %switch.lookup2581, label %sw.epilog.i86.i sw.epilog.i86.i: ; preds = %switch.lookup call void @_ZN8facebook4yoga16fatalWithMessageEPKc(ptr noundef nonnull @.str.20) #13 unreachable -switch.lookup2642: ; preds = %switch.lookup +switch.lookup2581: ; preds = %switch.lookup %switch.cast = trunc i32 %widthSizingMode to i24 %switch.shiftamt = shl nuw nsw i24 %switch.cast, 3 %switch.downshift = lshr i24 131073, %switch.shiftamt %switch.masked = trunc i24 %switch.downshift to i8 - %switch.cast2643 = trunc i32 %heightSizingMode to i24 - %switch.shiftamt2644 = shl nuw nsw i24 %switch.cast2643, 3 - %switch.downshift2645 = lshr i24 131073, %switch.shiftamt2644 - %switch.masked2646 = trunc i24 %switch.downshift2645 to i8 - %call34.i = call <2 x float> @_ZN8facebook4yoga4Node7measureEfNS0_11MeasureModeEfS2_(ptr noundef nonnull align 8 dereferenceable(640) %node, float noundef %cond.i1223, i8 noundef zeroext %switch.masked, float noundef %cond26.i1225, i8 noundef zeroext %switch.masked2646) + %switch.cast2582 = trunc i32 %heightSizingMode to i24 + %switch.shiftamt2583 = shl nuw nsw i24 %switch.cast2582, 3 + %switch.downshift2584 = lshr i24 131073, %switch.shiftamt2583 + %switch.masked2585 = trunc i24 %switch.downshift2584 to i8 + %call34.i = call <2 x float> @_ZN8facebook4yoga4Node7measureEfNS0_11MeasureModeEfS2_(ptr noundef nonnull align 8 dereferenceable(640) %node, float noundef %cond.i1223, i8 noundef zeroext %switch.masked, float noundef %cond26.i1225, i8 noundef zeroext %switch.masked2585) %measureCallbacks.i = getelementptr inbounds %"struct.facebook::yoga::LayoutData", ptr %layoutMarkerData, i64 0, i32 5 %82 = load i32, ptr %measureCallbacks.i, align 4 %add35.i = add nsw i32 %82, 1 @@ -868,9 +868,9 @@ switch.lookup2642: ; preds = %switch.lookup store float %cond26.i1225, ptr %height.i, align 4 %heightMeasureMode.i = getelementptr inbounds %"struct.facebook::yoga::Event::TypedData.10", ptr %ref.tmp38.i, i64 0, i32 3 %85 = zext nneg i32 %heightSizingMode to i64 - %switch.gep2648 = getelementptr inbounds [3 x i32], ptr @switch.table._ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj.10, i64 0, i64 %85 - %switch.load2649 = load i32, ptr %switch.gep2648, align 4 - store i32 %switch.load2649, ptr %heightMeasureMode.i, align 4 + %switch.gep2587 = getelementptr inbounds [3 x i32], ptr @switch.table._ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj.10, i64 0, i64 %85 + %switch.load2588 = load i32, ptr %switch.gep2587, align 4 + store i32 %switch.load2588, ptr %heightMeasureMode.i, align 4 %measuredWidth.i = getelementptr inbounds %"struct.facebook::yoga::Event::TypedData.10", ptr %ref.tmp38.i, i64 0, i32 4 store <2 x float> %call34.i, ptr %measuredWidth.i, align 4 %reason45.i = getelementptr inbounds %"struct.facebook::yoga::Event::TypedData.10", ptr %ref.tmp38.i, i64 0, i32 6 @@ -892,7 +892,7 @@ switch.lookup2642: ; preds = %switch.lookup i32 2139156720, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i35.i135.i ] -sw.epilog.i.i48.i179.i: ; preds = %switch.lookup2642 +sw.epilog.i.i48.i179.i: ; preds = %switch.lookup2581 %88 = bitcast i32 %retval.sroa.0.0.copyload.i34.i134.i to float %89 = fcmp uno float %88, 0.000000e+00 br i1 %89, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i43.i174.i, label %if.end.i.i49.i180.i @@ -904,19 +904,19 @@ if.end.i.i49.i180.i: ; preds = %sw.epilog.i.i48.i17 %tobool.not.i.i53.i184.i = icmp eq i32 %and13.i.i52.i183.i, 0 br i1 %tobool.not.i.i53.i184.i, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i41.i172.i, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i35.i135.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i41.i172.i: ; preds = %if.end.i.i49.i180.i, %switch.lookup2642 - %.ph.i42.i173.i = phi i32 [ 0, %switch.lookup2642 ], [ %add.i.i51.i182.i, %if.end.i.i49.i180.i ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i41.i172.i: ; preds = %if.end.i.i49.i180.i, %switch.lookup2581 + %.ph.i42.i173.i = phi i32 [ 0, %switch.lookup2581 ], [ %add.i.i51.i182.i, %if.end.i.i49.i180.i ] %90 = bitcast i32 %.ph.i42.i173.i to float br label %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit54.i140.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i35.i135.i: ; preds = %if.end.i.i49.i180.i, %switch.lookup2642 - %.ph8.i36.i136.i = phi i32 [ %add.i.i51.i182.i, %if.end.i.i49.i180.i ], [ 0, %switch.lookup2642 ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i35.i135.i: ; preds = %if.end.i.i49.i180.i, %switch.lookup2581 + %.ph8.i36.i136.i = phi i32 [ %add.i.i51.i182.i, %if.end.i.i49.i180.i ], [ 0, %switch.lookup2581 ] %91 = bitcast i32 %.ph8.i36.i136.i to float br label %sw.bb2.i.i37.i137.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i43.i174.i: ; preds = %sw.epilog.i.i48.i179.i, %switch.lookup2642 - %.in.i44.i175.i = phi ptr [ @YGValueAuto, %switch.lookup2642 ], [ @YGValueUndefined, %sw.epilog.i.i48.i179.i ] - %retval.sroa.6.0.i.in.i45.i176.i = phi ptr [ getelementptr inbounds (%struct.YGValue, ptr @YGValueAuto, i64 0, i32 1), %switch.lookup2642 ], [ getelementptr inbounds (%struct.YGValue, ptr @YGValueUndefined, i64 0, i32 1), %sw.epilog.i.i48.i179.i ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i43.i174.i: ; preds = %sw.epilog.i.i48.i179.i, %switch.lookup2581 + %.in.i44.i175.i = phi ptr [ @YGValueAuto, %switch.lookup2581 ], [ @YGValueUndefined, %sw.epilog.i.i48.i179.i ] + %retval.sroa.6.0.i.in.i45.i176.i = phi ptr [ getelementptr inbounds (%struct.YGValue, ptr @YGValueAuto, i64 0, i32 1), %switch.lookup2581 ], [ getelementptr inbounds (%struct.YGValue, ptr @YGValueUndefined, i64 0, i32 1), %sw.epilog.i.i48.i179.i ] %retval.sroa.6.0.i.i46.i177.i = load i32, ptr %retval.sroa.6.0.i.in.i45.i176.i, align 4 %92 = load float, ptr %.in.i44.i175.i, align 4 switch i32 %retval.sroa.6.0.i.i46.i177.i, label %sw.default.i.i47.i178.i [ @@ -2126,8 +2126,8 @@ if.end90.i.i: ; preds = %_ZN8facebook4yoga12 %bf.load.i1668.pre = load i24, ptr %flexWrap_.i1048, align 1 %.pre2324 = and i24 %bf.load.i1668.pre, 196608 %cmp95.i.i1011 = icmp ne i24 %.pre2324, 131072 - %or.cond2472.not = select i1 %188, i1 true, i1 %cmp95.i.i1011 - br i1 %or.cond2472.not, label %lor.lhs.false96.i.i, label %if.then100.i.i + %or.cond2441.not = select i1 %188, i1 true, i1 %cmp95.i.i1011 + br i1 %or.cond2441.not, label %lor.lhs.false96.i.i, label %if.then100.i.i lor.lhs.false96.i.i: ; preds = %if.end90.i.i %cmp99.not.i.i1012 = icmp ne i24 %.pre2324, 131072 @@ -2330,13 +2330,10 @@ _ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1567: ; preds = %sw.d %retval.sroa.0.0.i.i.i1568 = phi float [ 0x7FF8000000000000, %sw.default.i.i.i1589 ], [ %mul4.i.i.i1566, %sw.bb2.i.i.i1564 ], [ %212, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i1585 ], [ %210, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i.i1583 ] %call8.i1569 = tail call noundef float @_ZNK8facebook4yoga4Node16getMarginForAxisENS0_13FlexDirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %185, i8 noundef zeroext 2, float noundef %call89.i) %add.i.i1570 = fadd float %retval.sroa.0.0.i.i.i1568, %call8.i1569 - switch i32 %childWidthSizingMode.i.i.4, label %_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit1596 [ - i32 0, label %sw.bb.i1577 - i32 2, label %sw.bb.i1577 - i32 1, label %sw.bb16.i1571 - ] + %switch2442 = icmp eq i32 %childWidthSizingMode.i.i.4, 1 + br i1 %switch2442, label %sw.bb16.i1571, label %sw.bb.i1577 -sw.bb.i1577: ; preds = %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1567, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1567 +sw.bb.i1577: ; preds = %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1567 %cmp.i.i.i1578 = fcmp uno float %add.i.i1570, 0.000000e+00 %cmp.i1580 = fcmp olt float %childWidth.i.i.4, %add.i.i1570 %or.cond.i1581 = select i1 %cmp.i.i.i1578, i1 true, i1 %cmp.i1580 @@ -2350,9 +2347,12 @@ sw.bb16.i1571: ; preds = %_ZN8facebook4yoga12 sw.epilog.sink.split.i1575: ; preds = %sw.bb16.i1571 br label %_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit1596 -_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit1596: ; preds = %sw.bb.i1577, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1567, %sw.bb16.i1571, %sw.epilog.sink.split.i1575 - %childWidthSizingMode.i.i.6 = phi i32 [ 0, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1567 ], [ 1, %sw.bb16.i1571 ], [ %childWidthSizingMode.i.i.4, %sw.bb.i1577 ], [ 2, %sw.epilog.sink.split.i1575 ] - %childWidth.i.i.5 = phi float [ %childWidth.i.i.4, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1567 ], [ %childWidth.i.i.4, %sw.bb16.i1571 ], [ %cond.i1582, %sw.bb.i1577 ], [ %add.i.i1570, %sw.epilog.sink.split.i1575 ] +default.unreachable: ; preds = %if.then226.i, %if.then154.i, %call132.i791.noexc, %sw.bb690.i, %sw.bb681.i, %if.then836.i + unreachable + +_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit1596: ; preds = %sw.bb.i1577, %sw.bb16.i1571, %sw.epilog.sink.split.i1575 + %childWidthSizingMode.i.i.6 = phi i32 [ 1, %sw.bb16.i1571 ], [ %childWidthSizingMode.i.i.4, %sw.bb.i1577 ], [ 2, %sw.epilog.sink.split.i1575 ] + %childWidth.i.i.5 = phi float [ %childWidth.i.i.4, %sw.bb16.i1571 ], [ %cond.i1582, %sw.bb.i1577 ], [ %add.i.i1570, %sw.epilog.sink.split.i1575 ] %arrayidx.i.i.i.i1524 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %185, i64 0, i32 6, i32 13, i32 0, i64 1 %retval.sroa.0.0.copyload.i.i1525 = load i32, ptr %arrayidx.i.i.i.i1524, align 4 switch i32 %retval.sroa.0.0.copyload.i.i1525, label %sw.epilog.i.i.i1550 [ @@ -2406,13 +2406,10 @@ _ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1531: ; preds = %sw.d %retval.sroa.0.0.i.i.i1532 = phi float [ 0x7FF8000000000000, %sw.default.i.i.i1549 ], [ %mul4.i.i.i1530, %sw.bb2.i.i.i1528 ], [ %218, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i1545 ], [ %216, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i.i1543 ] %call8.i = tail call noundef float @_ZNK8facebook4yoga4Node16getMarginForAxisENS0_13FlexDirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %185, i8 noundef zeroext 0, float noundef %call89.i) %add.i.i1533 = fadd float %retval.sroa.0.0.i.i.i1532, %call8.i - switch i32 %childHeightSizingMode.i.i.4, label %_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit [ - i32 0, label %sw.bb.i1537 - i32 2, label %sw.bb.i1537 - i32 1, label %sw.bb16.i - ] + %switch = icmp eq i32 %childHeightSizingMode.i.i.4, 1 + br i1 %switch, label %sw.bb16.i, label %sw.bb.i1537 -sw.bb.i1537: ; preds = %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1531, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1531 +sw.bb.i1537: ; preds = %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1531 %cmp.i.i.i1538 = fcmp uno float %add.i.i1533, 0.000000e+00 %cmp.i1540 = fcmp olt float %childHeight.i.i.4, %add.i.i1533 %or.cond.i1541 = select i1 %cmp.i.i.i1538, i1 true, i1 %cmp.i1540 @@ -2426,15 +2423,15 @@ sw.bb16.i: ; preds = %_ZN8facebook4yoga12 sw.epilog.sink.split.i: ; preds = %sw.bb16.i br label %_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit -_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit: ; preds = %sw.bb.i1537, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1531, %sw.bb16.i, %sw.epilog.sink.split.i - %childHeightSizingMode.i.i.6 = phi i32 [ 0, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1531 ], [ 1, %sw.bb16.i ], [ %childHeightSizingMode.i.i.4, %sw.bb.i1537 ], [ 2, %sw.epilog.sink.split.i ] - %childHeight.i.i.5 = phi float [ %childHeight.i.i.4, %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i1531 ], [ %childHeight.i.i.4, %sw.bb16.i ], [ %cond.i1542, %sw.bb.i1537 ], [ %add.i.i1533, %sw.epilog.sink.split.i ] +_ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf.exit: ; preds = %sw.bb.i1537, %sw.bb16.i, %sw.epilog.sink.split.i + %childHeightSizingMode.i.i.6 = phi i32 [ 1, %sw.bb16.i ], [ %childHeightSizingMode.i.i.4, %sw.bb.i1537 ], [ 2, %sw.epilog.sink.split.i ] + %childHeight.i.i.5 = phi float [ %childHeight.i.i.4, %sw.bb16.i ], [ %cond.i1542, %sw.bb.i1537 ], [ %add.i.i1533, %sw.epilog.sink.split.i ] %call212.i.i = tail call noundef zeroext i1 @_ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj(ptr noundef nonnull %185, float noundef %childWidth.i.i.5, float noundef %childHeight.i.i.5, i8 noundef zeroext %call10.i, i32 noundef %childWidthSizingMode.i.i.6, i32 noundef %childHeightSizingMode.i.i.6, float noundef %call89.i, float noundef %call91.i, i1 noundef zeroext false, i32 noundef 5, ptr noundef nonnull align 4 dereferenceable(56) %layoutMarkerData, i32 noundef %inc, i32 noundef %generationCount) %220 = zext nneg i8 %retval.0.i1764 to i64 - %switch.gep2581 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %220 - %switch.load2582 = load i64, ptr %switch.gep2581, align 8 + %switch.gep2520 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %220 + %switch.load2521 = load i64, ptr %switch.gep2520, align 8 %measuredDimensions_.i1513 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %185, i64 0, i32 7, i32 9 - %arrayidx.i.i.i1515 = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i1513, i64 0, i64 %switch.load2582 + %arrayidx.i.i.i1515 = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i1513, i64 0, i64 %switch.load2521 %221 = load float, ptr %arrayidx.i.i.i1515, align 4 %call.i = tail call noundef float @_ZNK8facebook4yoga4Node30getInlineStartPaddingAndBorderENS0_13FlexDirectionENS0_9DirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %185, i8 noundef zeroext %retval.0.i1764, i8 noundef zeroext 1, float noundef %call89.i) %call1.i = tail call noundef float @_ZNK8facebook4yoga4Node28getInlineEndPaddingAndBorderENS0_13FlexDirectionENS0_9DirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %185, i8 noundef zeroext %retval.0.i1764, i8 noundef zeroext 1, float noundef %call89.i) @@ -2522,26 +2519,26 @@ for.body.i.lr.ph: ; preds = %_ZN8facebook4yogaL2 %or.cond3.i = and i1 %cmp125.i, %tobool267.not.i %not.call49.i = xor i1 %178, true %229 = zext nneg i8 %177 to i64 - %switch.gep2584 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %229 + %switch.gep2523 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %229 %230 = zext nneg i8 %retval.0.i10571811 to i64 - %switch.gep2587 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %230 + %switch.gep2526 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %230 %231 = zext nneg i8 %retval.0.i10571811 to i64 - %switch.gep2590 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %231 + %switch.gep2529 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %231 %232 = zext nneg i8 %retval.0.i10571811 to i64 - %switch.gep2593 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %232 + %switch.gep2532 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %232 %233 = zext nneg i8 %retval.0.i10571811 to i64 - %switch.gep2609 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %233 + %switch.gep2548 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %233 %234 = zext nneg i8 %177 to i64 - %switch.gep2612 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj.8, i64 0, i64 %234 + %switch.gep2551 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj.8, i64 0, i64 %234 %235 = shl nuw nsw i8 %177, 3 - %switch.shiftamt2597 = zext nneg i8 %235 to i32 - %switch.downshift2598 = lshr i32 33555201, %switch.shiftamt2597 - %switch.masked2599 = trunc i32 %switch.downshift2598 to i8 + %switch.shiftamt2536 = zext nneg i8 %235 to i32 + %switch.downshift2537 = lshr i32 33555201, %switch.shiftamt2536 + %switch.masked2538 = trunc i32 %switch.downshift2537 to i8 %236 = zext nneg i8 %177 to i64 - %switch.gep2601 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj.8, i64 0, i64 %236 - %switch.shiftamt2605.pn.in = shl nuw nsw i8 %177, 3 - %switch.shiftamt2605.pn = zext nneg i8 %switch.shiftamt2605.pn.in to i32 - %.in = lshr i32 33555201, %switch.shiftamt2605.pn + %switch.gep2540 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj.8, i64 0, i64 %236 + %switch.shiftamt2544.pn.in = shl nuw nsw i8 %177, 3 + %switch.shiftamt2544.pn = zext nneg i8 %switch.shiftamt2544.pn.in to i32 + %.in = lshr i32 33555201, %switch.shiftamt2544.pn %237 = trunc i32 %.in to i8 br label %for.body.i @@ -2764,7 +2761,7 @@ invoke.cont186.i: ; preds = %_ZNK8facebook4yoga1 %or.cond630.i = select i1 %cmp.i.i915, i1 %cmp189.i, i1 false br i1 %or.cond630.i, label %invoke.cont227.i, label %invoke.cont191.i -lpad.i.loopexit: ; preds = %invoke.cont337.i.invoke, %if.then304.i, %if.then309.i, %invoke.cont310.i, %invoke.cont312.i, %switch.lookup2595, %if.then331.i, %invoke.cont332.i, %land.lhs.true345.i, %land.rhs350.i, %if.then357.i, %cond.true374.i, %cond.end398.i, %invoke.cont400.i, %invoke.cont403.i, %lor.end431.i, %if.else445.i, %invoke.cont446.i, %land.rhs454.i, %if.else466.i, %if.else473.i, %switch.lookup2611, %switch.lookup2600 +lpad.i.loopexit: ; preds = %invoke.cont337.i.invoke, %if.then304.i, %if.then309.i, %invoke.cont310.i, %invoke.cont312.i, %switch.lookup2534, %if.then331.i, %invoke.cont332.i, %land.lhs.true345.i, %land.rhs350.i, %if.then357.i, %cond.true374.i, %cond.end398.i, %invoke.cont400.i, %invoke.cont403.i, %lor.end431.i, %if.else445.i, %invoke.cont446.i, %land.rhs454.i, %if.else466.i, %if.else473.i, %switch.lookup2550, %switch.lookup2539 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %lpad.i @@ -3238,17 +3235,17 @@ if.else105.i.i: ; preds = %cond.end.i1450, %ca to label %call106.i.i.noexc unwind label %lpad.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call106.i.i.noexc: ; preds = %if.else105.i.i - br i1 %call106.i.i893, label %switch.lookup2583, label %if.then107.i.i + br i1 %call106.i.i893, label %switch.lookup2522, label %if.then107.i.i if.then107.i.i: ; preds = %call106.i.i.noexc store float %cond101.i, ptr %childCrossSize.i.i, align 4 store i32 %cond109.i.i, ptr %childCrossSizingMode.i.i, align 4 br label %if.end133.i.i -switch.lookup2583: ; preds = %call106.i.i.noexc - %switch.load2585 = load i64, ptr %switch.gep2584, align 8 +switch.lookup2522: ; preds = %call106.i.i.noexc + %switch.load2524 = load i64, ptr %switch.gep2523, align 8 %resolvedDimensions_.i1434 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %285, i64 0, i32 12 - %arrayidx.i.i.i1436 = getelementptr inbounds [2 x %struct.YGValue], ptr %resolvedDimensions_.i1434, i64 0, i64 %switch.load2585 + %arrayidx.i.i.i1436 = getelementptr inbounds [2 x %struct.YGValue], ptr %resolvedDimensions_.i1434, i64 0, i64 %switch.load2524 %retval.sroa.0.0.copyload.i1437 = load i64, ptr %arrayidx.i.i.i1436, align 4 %value.sroa.0.0.extract.trunc.i1425 = trunc i64 %retval.sroa.0.0.copyload.i1437 to i32 %296 = bitcast i32 %value.sroa.0.0.extract.trunc.i1425 to float @@ -3259,16 +3256,16 @@ switch.lookup2583: ; preds = %call106.i.i.noexc i32 2, label %sw.bb2.i1428 ] -sw.bb2.i1428: ; preds = %switch.lookup2583 +sw.bb2.i1428: ; preds = %switch.lookup2522 %mul.i1429 = fmul float %cond101.i, %296 %mul4.i1430 = fmul float %mul.i1429, 0x3F847AE140000000 br label %call115.i.i.noexc -sw.default.i1432: ; preds = %switch.lookup2583 +sw.default.i1432: ; preds = %switch.lookup2522 br label %call115.i.i.noexc -call115.i.i.noexc: ; preds = %sw.default.i1432, %sw.bb2.i1428, %switch.lookup2583 - %retval.sroa.0.0.i1431 = phi float [ 0x7FF8000000000000, %sw.default.i1432 ], [ %mul4.i1430, %sw.bb2.i1428 ], [ %296, %switch.lookup2583 ] +call115.i.i.noexc: ; preds = %sw.default.i1432, %sw.bb2.i1428, %switch.lookup2522 + %retval.sroa.0.0.i1431 = phi float [ 0x7FF8000000000000, %sw.default.i1432 ], [ %mul4.i1430, %sw.bb2.i1428 ], [ %296, %switch.lookup2522 ] %add118.i.i = fadd float %call62.i.i887, %retval.sroa.0.0.i1431 store float %add118.i.i, ptr %childCrossSize.i.i, align 4 %call120.i.i896 = invoke noundef zeroext i8 @_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE(i8 noundef zeroext %177) @@ -3445,26 +3442,26 @@ call11.i776.noexc: ; preds = %cond.end9.i land.lhs.true.i805: ; preds = %call11.i776.noexc %316 = load float, ptr %remainingFreeSpace239.i, align 8 %cmp12.i = fcmp ogt float %316, 0.000000e+00 - br i1 %cmp12.i, label %switch.lookup2586, label %if.end44.i778 + br i1 %cmp12.i, label %switch.lookup2525, label %if.end44.i778 -switch.lookup2586: ; preds = %land.lhs.true.i805 - %switch.load2588 = load i64, ptr %switch.gep2587, align 8 - %arrayidx.i.i.i.i = getelementptr inbounds [2 x %"class.facebook::yoga::CompactValue"], ptr %minDimensions_.i987, i64 0, i64 %switch.load2588 +switch.lookup2525: ; preds = %land.lhs.true.i805 + %switch.load2527 = load i64, ptr %switch.gep2526, align 8 + %arrayidx.i.i.i.i = getelementptr inbounds [2 x %"class.facebook::yoga::CompactValue"], ptr %minDimensions_.i987, i64 0, i64 %switch.load2527 %retval.sroa.0.0.copyload.i.i = load i32, ptr %arrayidx.i.i.i.i, align 4 switch i32 %retval.sroa.0.0.copyload.i.i, label %_ZNK8facebook4yoga12CompactValue9isDefinedEv.exit.i [ - i32 2141891242, label %switch.lookup2589 - i32 2140081935, label %switch.lookup2589 - i32 2139156720, label %switch.lookup2589 + i32 2141891242, label %switch.lookup2528 + i32 2140081935, label %switch.lookup2528 + i32 2139156720, label %switch.lookup2528 ] -_ZNK8facebook4yoga12CompactValue9isDefinedEv.exit.i: ; preds = %switch.lookup2586 +_ZNK8facebook4yoga12CompactValue9isDefinedEv.exit.i: ; preds = %switch.lookup2525 %317 = bitcast i32 %retval.sroa.0.0.copyload.i.i to float %318 = fcmp ord float %317, 0.000000e+00 - br i1 %318, label %switch.lookup2589, label %if.end44.sink.split.i + br i1 %318, label %switch.lookup2528, label %if.end44.sink.split.i -switch.lookup2589: ; preds = %switch.lookup2586, %switch.lookup2586, %switch.lookup2586, %_ZNK8facebook4yoga12CompactValue9isDefinedEv.exit.i - %switch.load2591 = load i64, ptr %switch.gep2590, align 8 - %arrayidx.i.i.i145.i = getelementptr inbounds [2 x %"class.facebook::yoga::CompactValue"], ptr %minDimensions_.i987, i64 0, i64 %switch.load2591 +switch.lookup2528: ; preds = %switch.lookup2525, %switch.lookup2525, %switch.lookup2525, %_ZNK8facebook4yoga12CompactValue9isDefinedEv.exit.i + %switch.load2530 = load i64, ptr %switch.gep2529, align 8 + %arrayidx.i.i.i145.i = getelementptr inbounds [2 x %"class.facebook::yoga::CompactValue"], ptr %minDimensions_.i987, i64 0, i64 %switch.load2530 %retval.sroa.0.0.copyload.i146.i = load i32, ptr %arrayidx.i.i.i145.i, align 4 switch i32 %retval.sroa.0.0.copyload.i146.i, label %sw.epilog.i.i.i [ i32 2141891242, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i @@ -3472,7 +3469,7 @@ switch.lookup2589: ; preds = %switch.lookup2586, i32 2139156720, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i.i ] -sw.epilog.i.i.i: ; preds = %switch.lookup2589 +sw.epilog.i.i.i: ; preds = %switch.lookup2528 %319 = bitcast i32 %retval.sroa.0.0.copyload.i146.i to float %320 = fcmp uno float %319, 0.000000e+00 br i1 %320, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i, label %if.end.i.i.i @@ -3484,19 +3481,19 @@ if.end.i.i.i: ; preds = %sw.epilog.i.i.i %tobool.not.i.i.i = icmp eq i32 %and13.i.i.i, 0 br i1 %tobool.not.i.i.i, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i.i, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i.i: ; preds = %if.end.i.i.i, %switch.lookup2589 - %.ph.i.i = phi i32 [ 0, %switch.lookup2589 ], [ %add.i.i.i, %if.end.i.i.i ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i.i: ; preds = %if.end.i.i.i, %switch.lookup2528 + %.ph.i.i = phi i32 [ 0, %switch.lookup2528 ], [ %add.i.i.i, %if.end.i.i.i ] %321 = bitcast i32 %.ph.i.i to float br label %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i.i: ; preds = %if.end.i.i.i, %switch.lookup2589 - %.ph8.i.i = phi i32 [ %add.i.i.i, %if.end.i.i.i ], [ 0, %switch.lookup2589 ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i.i: ; preds = %if.end.i.i.i, %switch.lookup2528 + %.ph8.i.i = phi i32 [ %add.i.i.i, %if.end.i.i.i ], [ 0, %switch.lookup2528 ] %322 = bitcast i32 %.ph8.i.i to float br label %sw.bb2.i.i.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i: ; preds = %sw.epilog.i.i.i, %switch.lookup2589 - %.in.i.i = phi ptr [ @YGValueAuto, %switch.lookup2589 ], [ @YGValueUndefined, %sw.epilog.i.i.i ] - %retval.sroa.6.0.i.in.i.i = phi ptr [ getelementptr inbounds (%struct.YGValue, ptr @YGValueAuto, i64 0, i32 1), %switch.lookup2589 ], [ getelementptr inbounds (%struct.YGValue, ptr @YGValueUndefined, i64 0, i32 1), %sw.epilog.i.i.i ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i: ; preds = %sw.epilog.i.i.i, %switch.lookup2528 + %.in.i.i = phi ptr [ @YGValueAuto, %switch.lookup2528 ], [ @YGValueUndefined, %sw.epilog.i.i.i ] + %retval.sroa.6.0.i.in.i.i = phi ptr [ getelementptr inbounds (%struct.YGValue, ptr @YGValueAuto, i64 0, i32 1), %switch.lookup2528 ], [ getelementptr inbounds (%struct.YGValue, ptr @YGValueUndefined, i64 0, i32 1), %sw.epilog.i.i.i ] %retval.sroa.6.0.i.i.i = load i32, ptr %retval.sroa.6.0.i.in.i.i, align 4 %323 = load float, ptr %.in.i.i, align 4 switch i32 %retval.sroa.6.0.i.i.i, label %if.end44.sink.split.i [ @@ -3513,11 +3510,11 @@ sw.bb2.i.i.i: ; preds = %_ZNK8facebook4yoga1 _ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i: ; preds = %sw.bb2.i.i.i, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i.i %retval.sroa.0.0.i.i.i = phi float [ %mul4.i.i.i, %sw.bb2.i.i.i ], [ %323, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i.i ], [ %321, %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i.i ] %cmp.i.i.i.i = fcmp ord float %retval.sroa.0.0.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i, label %switch.lookup2592, label %if.end44.sink.split.i + br i1 %cmp.i.i.i.i, label %switch.lookup2531, label %if.end44.sink.split.i -switch.lookup2592: ; preds = %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i - %switch.load2594 = load i64, ptr %switch.gep2593, align 8 - %arrayidx.i.i.i154.i = getelementptr inbounds [2 x %"class.facebook::yoga::CompactValue"], ptr %minDimensions_.i987, i64 0, i64 %switch.load2594 +switch.lookup2531: ; preds = %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit.i + %switch.load2533 = load i64, ptr %switch.gep2532, align 8 + %arrayidx.i.i.i154.i = getelementptr inbounds [2 x %"class.facebook::yoga::CompactValue"], ptr %minDimensions_.i987, i64 0, i64 %switch.load2533 %retval.sroa.0.0.copyload.i155.i = load i32, ptr %arrayidx.i.i.i154.i, align 4 switch i32 %retval.sroa.0.0.copyload.i155.i, label %sw.epilog.i.i169.i [ i32 2141891242, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i164.i @@ -3525,7 +3522,7 @@ switch.lookup2592: ; preds = %_ZN8facebook4yoga12 i32 2139156720, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i156.i ] -sw.epilog.i.i169.i: ; preds = %switch.lookup2592 +sw.epilog.i.i169.i: ; preds = %switch.lookup2531 %325 = bitcast i32 %retval.sroa.0.0.copyload.i155.i to float %326 = fcmp uno float %325, 0.000000e+00 br i1 %326, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i164.i, label %if.end.i.i170.i @@ -3537,19 +3534,19 @@ if.end.i.i170.i: ; preds = %sw.epilog.i.i169.i %tobool.not.i.i174.i = icmp eq i32 %and13.i.i173.i, 0 br i1 %tobool.not.i.i174.i, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i162.i, label %_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i156.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i162.i: ; preds = %if.end.i.i170.i, %switch.lookup2592 - %.ph.i163.i = phi i32 [ 0, %switch.lookup2592 ], [ %add.i.i172.i, %if.end.i.i170.i ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread.i162.i: ; preds = %if.end.i.i170.i, %switch.lookup2531 + %.ph.i163.i = phi i32 [ 0, %switch.lookup2531 ], [ %add.i.i172.i, %if.end.i.i170.i ] %327 = bitcast i32 %.ph.i163.i to float br label %_ZN8facebook4yoga12resolveValueENS0_12CompactValueEf.exit175.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i156.i: ; preds = %if.end.i.i170.i, %switch.lookup2592 - %.ph8.i157.i = phi i32 [ %add.i.i172.i, %if.end.i.i170.i ], [ 0, %switch.lookup2592 ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.thread9.i156.i: ; preds = %if.end.i.i170.i, %switch.lookup2531 + %.ph8.i157.i = phi i32 [ %add.i.i172.i, %if.end.i.i170.i ], [ 0, %switch.lookup2531 ] %328 = bitcast i32 %.ph8.i157.i to float br label %sw.bb2.i.i158.i -_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i164.i: ; preds = %sw.epilog.i.i169.i, %switch.lookup2592 - %.in.i165.i = phi ptr [ @YGValueAuto, %switch.lookup2592 ], [ @YGValueUndefined, %sw.epilog.i.i169.i ] - %retval.sroa.6.0.i.in.i166.i = phi ptr [ getelementptr inbounds (%struct.YGValue, ptr @YGValueAuto, i64 0, i32 1), %switch.lookup2592 ], [ getelementptr inbounds (%struct.YGValue, ptr @YGValueUndefined, i64 0, i32 1), %sw.epilog.i.i169.i ] +_ZNK8facebook4yoga12CompactValuecv7YGValueEv.exit.i164.i: ; preds = %sw.epilog.i.i169.i, %switch.lookup2531 + %.in.i165.i = phi ptr [ @YGValueAuto, %switch.lookup2531 ], [ @YGValueUndefined, %sw.epilog.i.i169.i ] + %retval.sroa.6.0.i.in.i166.i = phi ptr [ getelementptr inbounds (%struct.YGValue, ptr @YGValueAuto, i64 0, i32 1), %switch.lookup2531 ], [ getelementptr inbounds (%struct.YGValue, ptr @YGValueUndefined, i64 0, i32 1), %sw.epilog.i.i169.i ] %retval.sroa.6.0.i.i167.i = load i32, ptr %retval.sroa.6.0.i.in.i166.i, align 4 %329 = load float, ptr %.in.i165.i, align 4 switch i32 %retval.sroa.6.0.i.i167.i, label %sw.default.i.i168.i [ @@ -3795,7 +3792,7 @@ call130.i790.noexc: ; preds = %call129.i.noexc call132.i791.noexc: ; preds = %call130.i790.noexc %add131.i = fadd float %call129.i830, %call130.i790831 %add133.i = fadd float %add131.i, %call132.i791832 - switch i8 %retval.0.i10571811, label %call132.i791.noexc.unreachabledefault [ + switch i8 %retval.0.i10571811, label %default.unreachable [ i8 0, label %call229298.i.noexc.invoke i8 1, label %sw.bb1.i.i i8 2, label %sw.bb2.i219.i @@ -3811,9 +3808,6 @@ sw.bb2.i219.i: ; preds = %call132.i791.noexc sw.bb3.i217.i: ; preds = %call132.i791.noexc br label %call229298.i.noexc.invoke -call132.i791.noexc.unreachabledefault: ; preds = %call132.i791.noexc - unreachable - if.else136.i: ; preds = %land.lhs.true125.if.else136_crit_edge.i, %if.end122.i %bf.load.i222.i = phi i24 [ %bf.load.i222.pre.i, %land.lhs.true125.if.else136_crit_edge.i ], [ %bf.load.i210.i, %if.end122.i ] %358 = and i24 %bf.load.i222.i, 12288 @@ -3841,7 +3835,7 @@ if.end152.i: ; preds = %if.then144.i, %call br i1 %performLayout, label %if.then154.i, label %if.end161.i if.then154.i: ; preds = %if.end152.i - switch i8 %retval.0.i10571811, label %if.then154.i.unreachabledefault [ + switch i8 %retval.0.i10571811, label %default.unreachable [ i8 0, label %_ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit230.thread.i i8 1, label %sw.bb1.i236.i i8 2, label %sw.bb2.i235.i @@ -3856,9 +3850,6 @@ _ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit230.thread.i: ; preds %arrayidx.i.i.i232277.i = getelementptr inbounds %"class.facebook::yoga::Node", ptr %355, i64 0, i32 7, i32 10, i32 0, i64 1 br label %_ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit238.i -if.then154.i.unreachabledefault: ; preds = %if.then154.i - unreachable - sw.bb1.i236.i: ; preds = %if.then154.i invoke void @_ZN8facebook4yoga11assertFatalEbPKc(i1 noundef zeroext true, ptr noundef nonnull @.str.19) to label %.noexc838 unwind label %lpad.i.loopexit.split-lp.loopexit @@ -3997,7 +3988,7 @@ if.else224.i: ; preds = %if.else136.i br i1 %performLayout, label %if.then226.i, label %for.inc236.i if.then226.i: ; preds = %if.else224.i - switch i8 %retval.0.i10571811, label %if.then226.i.unreachabledefault [ + switch i8 %retval.0.i10571811, label %default.unreachable [ i8 0, label %_ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit261.thread.i i8 1, label %sw.bb1.i268.i i8 2, label %sw.bb2.i267.i @@ -4012,9 +4003,6 @@ _ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit261.thread.i: ; preds %arrayidx.i.i.i264297.i = getelementptr inbounds %"class.facebook::yoga::Node", ptr %355, i64 0, i32 7, i32 10, i32 0, i64 1 br label %_ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit270.i -if.then226.i.unreachabledefault: ; preds = %if.then226.i - unreachable - sw.bb1.i268.i: ; preds = %if.then226.i invoke void @_ZN8facebook4yoga11assertFatalEbPKc(i1 noundef zeroext true, ptr noundef nonnull @.str.19) to label %.noexc851 unwind label %lpad.i.loopexit.split-lp.loopexit @@ -4194,22 +4182,22 @@ invoke.cont310.i: ; preds = %if.then309.i invoke.cont312.i: ; preds = %invoke.cont310.i %call316.i = invoke noundef float @_ZNK8facebook4yoga4Node20getInlineStartMarginENS0_13FlexDirectionENS0_9DirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %382, i8 noundef zeroext %177, i8 noundef zeroext %call10.i, float noundef %call89.i) - to label %switch.lookup2595 unwind label %lpad.i.loopexit + to label %switch.lookup2534 unwind label %lpad.i.loopexit -switch.lookup2595: ; preds = %invoke.cont312.i +switch.lookup2534: ; preds = %invoke.cont312.i %add314.i = fadd float %call311.i, %call313.i %add317.i = fadd float %add314.i, %call316.i - invoke void @_ZN8facebook4yoga4Node17setLayoutPositionEfNS0_4EdgeE(ptr noundef nonnull align 8 dereferenceable(640) %382, float noundef %add317.i, i8 noundef zeroext %switch.masked2599) - to label %switch.lookup2600 unwind label %lpad.i.loopexit + invoke void @_ZN8facebook4yoga4Node17setLayoutPositionEfNS0_4EdgeE(ptr noundef nonnull align 8 dereferenceable(640) %382, float noundef %add317.i, i8 noundef zeroext %switch.masked2538) + to label %switch.lookup2539 unwind label %lpad.i.loopexit -switch.lookup2600: ; preds = %switch.lookup2595 - %switch.load2602 = load i64, ptr %switch.gep2601, align 8 +switch.lookup2539: ; preds = %switch.lookup2534 + %switch.load2541 = load i64, ptr %switch.gep2540, align 8 invoke void @_ZN8facebook4yoga11assertFatalEbPKc(i1 noundef zeroext true, ptr noundef nonnull @.str.19) to label %invoke.cont327.i unwind label %lpad.i.loopexit -invoke.cont327.i: ; preds = %switch.lookup2600 +invoke.cont327.i: ; preds = %switch.lookup2539 %position_.i707 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %382, i64 0, i32 7, i32 10 - %arrayidx.i.i.i709 = getelementptr inbounds [4 x float], ptr %position_.i707, i64 0, i64 %switch.load2602 + %arrayidx.i.i.i709 = getelementptr inbounds [4 x float], ptr %position_.i707, i64 0, i64 %switch.load2541 %385 = load float, ptr %arrayidx.i.i.i709, align 4 %cmp.i705 = fcmp uno float %385, 0.000000e+00 br i1 %cmp.i705, label %if.then331.i, label %for.inc.i @@ -4220,14 +4208,14 @@ if.then331.i: ; preds = %invoke.cont327.i, % invoke.cont332.i: ; preds = %if.then331.i %call335.i = invoke noundef float @_ZNK8facebook4yoga4Node20getInlineStartMarginENS0_13FlexDirectionENS0_9DirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %382, i8 noundef zeroext %177, i8 noundef zeroext %call10.i, float noundef %call89.i) - to label %switch.lookup2603 unwind label %lpad.i.loopexit + to label %switch.lookup2542 unwind label %lpad.i.loopexit -switch.lookup2603: ; preds = %invoke.cont332.i +switch.lookup2542: ; preds = %invoke.cont332.i %add336.i = fadd float %call333.i, %call335.i br label %invoke.cont337.i.invoke -invoke.cont337.i.invoke: ; preds = %invoke.cont502.i, %switch.lookup2603 - %386 = phi float [ %add336.i, %switch.lookup2603 ], [ %add505.i, %invoke.cont502.i ] +invoke.cont337.i.invoke: ; preds = %invoke.cont502.i, %switch.lookup2542 + %386 = phi float [ %add336.i, %switch.lookup2542 ], [ %add505.i, %invoke.cont502.i ] invoke void @_ZN8facebook4yoga4Node17setLayoutPositionEfNS0_4EdgeE(ptr noundef nonnull align 8 dereferenceable(640) %382, float noundef %386, i8 noundef zeroext %237) to label %for.inc.i unwind label %lpad.i.loopexit @@ -4281,19 +4269,19 @@ if.then357.i: ; preds = %invoke.cont352.i to label %invoke.cont358.i unwind label %lpad.i.loopexit invoke.cont358.i: ; preds = %if.then357.i - br i1 %call359.i, label %switch.lookup2611, label %switch.lookup2608 + br i1 %call359.i, label %switch.lookup2550, label %switch.lookup2547 -switch.lookup2608: ; preds = %invoke.cont358.i - %switch.load2610 = load i64, ptr %switch.gep2609, align 8 +switch.lookup2547: ; preds = %invoke.cont358.i + %switch.load2549 = load i64, ptr %switch.gep2548, align 8 %measuredDimensions_.i670 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %382, i64 0, i32 7, i32 9 - %arrayidx.i.i.i672 = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i670, i64 0, i64 %switch.load2610 + %arrayidx.i.i.i672 = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i670, i64 0, i64 %switch.load2549 %391 = load float, ptr %arrayidx.i.i.i672, align 4 %aspectRatio_.i667 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %382, i64 0, i32 6, i32 14 %retval.sroa.0.0.copyload.i668 = load float, ptr %aspectRatio_.i667, align 4 %cmp.i.i.i666 = fcmp ord float %retval.sroa.0.0.copyload.i668, 0.000000e+00 br i1 %cmp.i.i.i666, label %cond.true374.i, label %cond.false395.i -cond.true374.i: ; preds = %switch.lookup2608 +cond.true374.i: ; preds = %switch.lookup2547 %call376.i = invoke noundef float @_ZNK8facebook4yoga4Node16getMarginForAxisENS0_13FlexDirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %382, i8 noundef zeroext %177, float noundef %call89.i) to label %invoke.cont375.i unwind label %lpad.i.loopexit @@ -4305,7 +4293,7 @@ invoke.cont375.i: ; preds = %cond.true374.i %add394.i = fadd float %call376.i, %cond393.i br label %cond.end398.i -cond.false395.i: ; preds = %switch.lookup2608 +cond.false395.i: ; preds = %switch.lookup2547 %392 = load float, ptr %crossDim.i781, align 8 br label %cond.end398.i @@ -4351,7 +4339,7 @@ lor.end431.i: ; preds = %lor.rhs426.i, %invo %spec.select.i = select i1 %cmp.i657, i1 true, i1 %398 %cond441.i = zext i1 %spec.select.i to i32 %call443.i = invoke noundef zeroext i1 @_ZN8facebook4yoga23calculateLayoutInternalEPNS0_4NodeEffNS0_9DirectionENS0_10SizingModeES4_ffbNS0_16LayoutPassReasonERNS0_10LayoutDataEjj(ptr noundef nonnull %382, float noundef %cond409.i, float noundef %cond414.i, i8 noundef zeroext %call10.i, i32 noundef %cond432.i, i32 noundef %cond441.i, float noundef %call89.i, float noundef %call91.i, i1 noundef zeroext true, i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(56) %layoutMarkerData, i32 noundef %inc, i32 noundef %generationCount) - to label %switch.lookup2611 unwind label %lpad.i.loopexit + to label %switch.lookup2550 unwind label %lpad.i.loopexit if.else445.i: ; preds = %land.lhs.true.i690, %cond.end.i685, %invoke.cont352.i, %invoke.cont347.i %retval.0.i6891843 = phi i8 [ 4, %invoke.cont352.i ], [ 4, %invoke.cont347.i ], [ %spec.select1966, %land.lhs.true.i690 ], [ %cond.i686, %cond.end.i685 ] @@ -4382,7 +4370,7 @@ invoke.cont463.i: ; preds = %invoke.cont456.i %cmp.i2.sink.i655 = fcmp ogt float %div462.i, 0.000000e+00 %cond.i656 = select i1 %cmp.i2.sink.i655, float %div462.i, float 0.000000e+00 %add465.i = fadd float %call67.i, %cond.i656 - br label %switch.lookup2611 + br label %switch.lookup2550 if.else466.i: ; preds = %invoke.cont456.i, %invoke.cont450.i %call469.i = invoke i64 @_ZNK8facebook4yoga4Node19marginTrailingValueENS0_13FlexDirectionE(ptr noundef nonnull align 8 dereferenceable(640) %382, i8 noundef zeroext %177) @@ -4391,7 +4379,7 @@ if.else466.i: ; preds = %invoke.cont456.i, % invoke.cont468.i: ; preds = %if.else466.i %ref.tmp467.sroa.1.0.extract.shift.mask.i = and i64 %call469.i, -4294967296 %cmp471.i = icmp eq i64 %ref.tmp467.sroa.1.0.extract.shift.mask.i, 12884901888 - br i1 %cmp471.i, label %switch.lookup2611, label %if.else473.i + br i1 %cmp471.i, label %switch.lookup2550, label %if.else473.i if.else473.i: ; preds = %invoke.cont468.i %call476.i = invoke i64 @_ZNK8facebook4yoga4Node23getFlexStartMarginValueENS0_13FlexDirectionE(ptr noundef nonnull align 8 dereferenceable(640) %382, i8 noundef zeroext %177) @@ -4406,32 +4394,32 @@ invoke.cont480.i: ; preds = %invoke.cont475.i %cmp.i2.sink.i651 = fcmp ogt float %sub448.i, 0.000000e+00 %cond.i652 = select i1 %cmp.i2.sink.i651, float %sub448.i, float 0.000000e+00 %add482.i = fadd float %call67.i, %cond.i652 - br label %switch.lookup2611 + br label %switch.lookup2550 if.else483.i: ; preds = %invoke.cont475.i switch i8 %retval.0.i6891843, label %if.else491.i [ - i8 1, label %switch.lookup2611 + i8 1, label %switch.lookup2550 i8 2, label %if.then488.i ] if.then488.i: ; preds = %if.else483.i %div489.i = fmul float %sub448.i, 5.000000e-01 %add490.i = fadd float %call67.i, %div489.i - br label %switch.lookup2611 + br label %switch.lookup2550 if.else491.i: ; preds = %if.else483.i %add492.i = fadd float %call67.i, %sub448.i - br label %switch.lookup2611 + br label %switch.lookup2550 -switch.lookup2611: ; preds = %invoke.cont358.i, %lor.end431.i, %invoke.cont463.i, %invoke.cont468.i, %invoke.cont480.i, %if.else483.i, %if.then488.i, %if.else491.i +switch.lookup2550: ; preds = %invoke.cont358.i, %lor.end431.i, %invoke.cont463.i, %invoke.cont468.i, %invoke.cont480.i, %if.else483.i, %if.then488.i, %if.else491.i %leadingCrossDim.0.i = phi float [ %call67.i, %invoke.cont358.i ], [ %call67.i, %lor.end431.i ], [ %add465.i, %invoke.cont463.i ], [ %call67.i, %invoke.cont468.i ], [ %add482.i, %invoke.cont480.i ], [ %call67.i, %if.else483.i ], [ %add490.i, %if.then488.i ], [ %add492.i, %if.else491.i ] - %switch.load2613 = load i64, ptr %switch.gep2612, align 8 + %switch.load2552 = load i64, ptr %switch.gep2551, align 8 invoke void @_ZN8facebook4yoga11assertFatalEbPKc(i1 noundef zeroext true, ptr noundef nonnull @.str.19) to label %invoke.cont502.i unwind label %lpad.i.loopexit -invoke.cont502.i: ; preds = %switch.lookup2611 +invoke.cont502.i: ; preds = %switch.lookup2550 %position_.i637 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %382, i64 0, i32 7, i32 10 - %arrayidx.i.i.i639 = getelementptr inbounds [4 x float], ptr %position_.i637, i64 0, i64 %switch.load2613 + %arrayidx.i.i.i639 = getelementptr inbounds [4 x float], ptr %position_.i637, i64 0, i64 %switch.load2552 %399 = load float, ptr %arrayidx.i.i.i639, align 4 %add504.i = fadd float %totalLineCrossDim.0.i2190, %399 %add505.i = fadd float %leadingCrossDim.0.i, %add504.i @@ -4613,15 +4601,15 @@ for.cond607.i.preheader.lr.ph: ; preds = %sw.epilog.i.thread, %leadPerLine.0.i2366 = phi float [ %div600.i, %sw.epilog.i.thread ], [ %leadPerLine.0.i, %sw.epilog.i ] %currentLead.0.i2365 = phi float [ %call67.i, %sw.epilog.i.thread ], [ %currentLead.0.i, %sw.epilog.i ] %405 = zext nneg i8 %177 to i64 - %switch.gep2620 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %405 + %switch.gep2559 = getelementptr inbounds [4 x i64], ptr @switch.table._ZN8facebook4yogaL23constrainMaxSizeForModeEPKNS0_4NodeENS0_13FlexDirectionEffPNS0_10SizingModeEPf, i64 0, i64 %405 %406 = shl nuw nsw i8 %177, 3 - %switch.shiftamt2629 = zext nneg i8 %406 to i32 - %switch.downshift2630 = lshr i32 33555201, %switch.shiftamt2629 - %switch.masked2631 = trunc i32 %switch.downshift2630 to i8 + %switch.shiftamt2568 = zext nneg i8 %406 to i32 + %switch.downshift2569 = lshr i32 33555201, %switch.shiftamt2568 + %switch.masked2570 = trunc i32 %switch.downshift2569 to i8 %407 = shl nuw nsw i8 %177, 3 - %switch.shiftamt2624 = zext nneg i8 %407 to i32 - %switch.downshift2625 = lshr i32 33555201, %switch.shiftamt2624 - %switch.masked2626 = trunc i32 %switch.downshift2625 to i8 + %switch.shiftamt2563 = zext nneg i8 %407 to i32 + %switch.downshift2564 = lshr i32 33555201, %switch.shiftamt2563 + %switch.masked2565 = trunc i32 %switch.downshift2564 to i8 br label %for.cond607.i.preheader for.cond607.i.preheader: ; preds = %for.cond607.i.preheader.lr.ph, %if.end750.i @@ -4669,12 +4657,12 @@ if.then620.i: ; preds = %_ZNK8facebook4yoga4 if.end624.i: ; preds = %if.then620.i %call625.i = call noundef zeroext i1 @_ZN8facebook4yoga4Node24isLayoutDimensionDefinedENS0_13FlexDirectionE(ptr noundef nonnull align 8 dereferenceable(640) %410, i8 noundef zeroext %177) - br i1 %call625.i, label %switch.lookup2619, label %if.end633.i + br i1 %call625.i, label %switch.lookup2558, label %if.end633.i -switch.lookup2619: ; preds = %if.end624.i - %switch.load2621 = load i64, ptr %switch.gep2620, align 8 +switch.lookup2558: ; preds = %if.end624.i + %switch.load2560 = load i64, ptr %switch.gep2559, align 8 %measuredDimensions_.i580 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %410, i64 0, i32 7, i32 9 - %arrayidx.i.i.i582 = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i580, i64 0, i64 %switch.load2621 + %arrayidx.i.i.i582 = getelementptr inbounds [2 x float], ptr %measuredDimensions_.i580, i64 0, i64 %switch.load2560 %414 = load float, ptr %arrayidx.i.i.i582, align 4 %call630.i = call noundef float @_ZNK8facebook4yoga4Node16getMarginForAxisENS0_13FlexDirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %410, i8 noundef zeroext %177, float noundef %call89.i) %add631.i = fadd float %414, %call630.i @@ -4685,8 +4673,8 @@ switch.lookup2619: ; preds = %if.end624.i %cond.i579 = select i1 %cmp.i2.sink.i578, float %add631.i, float %lineHeight.0.i2201 br label %if.end633.i -if.end633.i: ; preds = %switch.lookup2619, %if.end624.i - %lineHeight.1.i = phi float [ %cond.i579, %switch.lookup2619 ], [ %lineHeight.0.i2201, %if.end624.i ] +if.end633.i: ; preds = %switch.lookup2558, %if.end624.i + %lineHeight.1.i = phi float [ %cond.i579, %switch.lookup2558 ], [ %lineHeight.0.i2201, %if.end624.i ] %bf.load.i.i558 = load i24, ptr %display_.i594, align 1 %bf.lshr.i.i559 = lshr i24 %bf.load.i.i558, 8 %415 = trunc i24 %bf.lshr.i.i559 to i8 @@ -4821,13 +4809,13 @@ land.lhs.true.i518: ; preds = %cond.end.i sw.bb677.i: ; preds = %cond.end.i, %land.lhs.true.i518 %call678.i = call noundef float @_ZNK8facebook4yoga4Node20getInlineStartMarginENS0_13FlexDirectionENS0_9DirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %422, i8 noundef zeroext %177, i8 noundef zeroext %call10.i, float noundef %call89.i) %add679.i = fadd float %add659.i, %call678.i - call void @_ZN8facebook4yoga4Node17setLayoutPositionEfNS0_4EdgeE(ptr noundef nonnull align 8 dereferenceable(640) %422, float noundef %add679.i, i8 noundef zeroext %switch.masked2626) + call void @_ZN8facebook4yoga4Node17setLayoutPositionEfNS0_4EdgeE(ptr noundef nonnull align 8 dereferenceable(640) %422, float noundef %add679.i, i8 noundef zeroext %switch.masked2565) br label %for.inc747.i sw.bb681.i: ; preds = %cond.end.i %call683.i = call noundef float @_ZNK8facebook4yoga4Node18getInlineEndMarginENS0_13FlexDirectionENS0_9DirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %422, i8 noundef zeroext %177, i8 noundef zeroext %call10.i, float noundef %call89.i) %sub684.i = fsub float %add682.i, %call683.i - switch i8 %177, label %sw.bb681.i.unreachabledefault [ + switch i8 %177, label %default.unreachable [ i8 0, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit506 i8 1, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit506 i8 2, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit506.thread @@ -4844,9 +4832,6 @@ _ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit506.thread1859: ; preds = % %430 = load float, ptr %measuredDimensions_.i4991861, align 4 br label %_ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit498 -sw.bb681.i.unreachabledefault: ; preds = %sw.bb681.i - unreachable - _ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit506: ; preds = %sw.bb681.i, %sw.bb681.i %arrayidx.i.i.i501 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %422, i64 0, i32 7, i32 9, i32 0, i64 1 %431 = load float, ptr %arrayidx.i.i.i501, align 4 @@ -4870,7 +4855,7 @@ _ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit498: ; preds = %_ZN8fa br label %for.inc747.i sw.bb690.i: ; preds = %cond.end.i - switch i8 %177, label %sw.bb690.i.unreachabledefault [ + switch i8 %177, label %default.unreachable [ i8 0, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit491 i8 1, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit491 i8 2, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit491.thread @@ -4887,9 +4872,6 @@ _ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit491.thread1875: ; preds = % %433 = load float, ptr %measuredDimensions_.i4841877, align 4 br label %_ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit483 -sw.bb690.i.unreachabledefault: ; preds = %sw.bb690.i - unreachable - _ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit491: ; preds = %sw.bb690.i, %sw.bb690.i %arrayidx.i.i.i486 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %422, i64 0, i32 7, i32 9, i32 0, i64 1 %434 = load float, ptr %arrayidx.i.i.i486, align 4 @@ -4917,7 +4899,7 @@ _ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit483: ; preds = %_ZN8fa sw.bb699.i: ; preds = %cond.end.i %call700.i = call noundef float @_ZNK8facebook4yoga4Node20getInlineStartMarginENS0_13FlexDirectionENS0_9DirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %422, i8 noundef zeroext %177, i8 noundef zeroext %call10.i, float noundef %call89.i) %add701.i = fadd float %add659.i, %call700.i - call void @_ZN8facebook4yoga4Node17setLayoutPositionEfNS0_4EdgeE(ptr noundef nonnull align 8 dereferenceable(640) %422, float noundef %add701.i, i8 noundef zeroext %switch.masked2631) + call void @_ZN8facebook4yoga4Node17setLayoutPositionEfNS0_4EdgeE(ptr noundef nonnull align 8 dereferenceable(640) %422, float noundef %add701.i, i8 noundef zeroext %switch.masked2570) %call703.i = call noundef zeroext i1 @_ZN8facebook4yoga4Node21styleDefinesDimensionENS0_13FlexDirectionEf(ptr noundef nonnull align 8 dereferenceable(640) %422, i8 noundef zeroext %177, float noundef %cond101.i) br i1 %call703.i, label %for.inc747.i, label %if.then704.i @@ -5273,10 +5255,10 @@ if.then768.i: ; preds = %lor.lhs.false762.i, %cmp.i2.sink.i.i417 = select i1 %or.cond.i.i414, i1 %cmp.i.i.i416, i1 %cmp.i2.i.i415 %cond.i.i418 = select i1 %cmp.i2.sink.i.i417, float %add.i.i413, float %call.i410 %466 = shl nuw nsw i8 %retval.0.i10571811, 3 - %switch.shiftamt2634 = zext nneg i8 %466 to i32 - %switch.downshift2635 = lshr i32 257, %switch.shiftamt2634 - %switch.masked2636 = trunc i32 %switch.downshift2635 to i8 - call void @_ZN8facebook4yoga4Node26setLayoutMeasuredDimensionEfNS0_9DimensionE(ptr noundef nonnull align 8 dereferenceable(640) %node, float noundef %cond.i.i418, i8 noundef zeroext %switch.masked2636) + %switch.shiftamt2573 = zext nneg i8 %466 to i32 + %switch.downshift2574 = lshr i32 257, %switch.shiftamt2573 + %switch.masked2575 = trunc i32 %switch.downshift2574 to i8 + call void @_ZN8facebook4yoga4Node26setLayoutMeasuredDimensionEfNS0_9DimensionE(ptr noundef nonnull align 8 dereferenceable(640) %node, float noundef %cond.i.i418, i8 noundef zeroext %switch.masked2575) br label %if.end789.i if.else771.i: ; preds = %lor.lhs.false762.i @@ -5327,10 +5309,10 @@ if.then797.i: ; preds = %lor.lhs.false791.i, %cmp.i2.sink.i.i = select i1 %or.cond.i.i, i1 %cmp.i.i.i, i1 %cmp.i2.i.i %cond.i.i = select i1 %cmp.i2.sink.i.i, float %add.i.i, float %call.i384 %468 = shl nuw nsw i8 %177, 3 - %switch.shiftamt2639 = zext nneg i8 %468 to i32 - %switch.downshift2640 = lshr i32 257, %switch.shiftamt2639 - %switch.masked2641 = trunc i32 %switch.downshift2640 to i8 - call void @_ZN8facebook4yoga4Node26setLayoutMeasuredDimensionEfNS0_9DimensionE(ptr noundef nonnull align 8 dereferenceable(640) %node, float noundef %cond.i.i, i8 noundef zeroext %switch.masked2641) + %switch.shiftamt2578 = zext nneg i8 %468 to i32 + %switch.downshift2579 = lshr i32 257, %switch.shiftamt2578 + %switch.masked2580 = trunc i32 %switch.downshift2579 to i8 + call void @_ZN8facebook4yoga4Node26setLayoutMeasuredDimensionEfNS0_9DimensionE(ptr noundef nonnull align 8 dereferenceable(640) %node, float noundef %cond.i.i, i8 noundef zeroext %switch.masked2580) br label %if.end820.i if.else801.i: ; preds = %lor.lhs.false791.i @@ -5396,7 +5378,7 @@ _ZNK8facebook4yoga4Node8getChildEm.exit362: ; preds = %for.body830.i br i1 %cmp835.not.i, label %for.inc850.i, label %if.then836.i if.then836.i: ; preds = %_ZNK8facebook4yoga4Node8getChildEm.exit362 - switch i8 %177, label %if.then836.i.unreachabledefault [ + switch i8 %177, label %default.unreachable [ i8 0, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit346 i8 1, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit346 i8 2, label %_ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit346.thread @@ -5421,9 +5403,6 @@ _ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit346.thread1896: ; preds = % %measuredDimensions_.i3211934 = getelementptr inbounds %"class.facebook::yoga::Node", ptr %472, i64 0, i32 7, i32 9 br label %_ZN8facebook4yoga13flexStartEdgeENS0_13FlexDirectionE.exit -if.then836.i.unreachabledefault: ; preds = %if.then836.i - unreachable - _ZN8facebook4yoga9dimensionENS0_13FlexDirectionE.exit346: ; preds = %if.then836.i, %if.then836.i %478 = load float, ptr %arrayidx.i.i.i341, align 4 switch i8 %177, label %sw.epilog.i336 [ diff --git a/bench/z3/optimized/array_rewriter.cpp.ll b/bench/z3/optimized/array_rewriter.cpp.ll index d4013577a20..b5db1128296 100644 --- a/bench/z3/optimized/array_rewriter.cpp.ll +++ b/bench/z3/optimized/array_rewriter.cpp.ll @@ -6522,15 +6522,15 @@ entry: store i32 0, ptr %m_pos.i.i15, align 8 %m_capacity.i.i16 = getelementptr inbounds %class.buffer, ptr %sargs, i64 0, i32 2 store i32 16, ptr %m_capacity.i.i16, align 4 - %0 = load ptr, ptr %args, align 8 - %m_kind.i.i.i239 = getelementptr inbounds %class.ast, ptr %0, i64 0, i32 1 + %a.0238 = load ptr, ptr %args, align 8 + %m_kind.i.i.i239 = getelementptr inbounds %class.ast, ptr %a.0238, i64 0, i32 1 %bf.load.i.i.i240 = load i32, ptr %m_kind.i.i.i239, align 4 %bf.clear.i.i.i241 = and i32 %bf.load.i.i.i240, 65535 %cmp.i.i242 = icmp eq i32 %bf.clear.i.i.i241, 0 br i1 %cmp.i.i242, label %land.rhs.i.i.lr.ph, label %cleanup land.rhs.i.i.lr.ph: ; preds = %entry - %1 = load i32, ptr %this, align 8 + %0 = load i32, ptr %this, align 8 %sub = add i32 %n, -2 %add.ptr = getelementptr inbounds ptr, ptr %args, i64 1 %cmp9.not.i = icmp eq i32 %sub, 0 @@ -6539,44 +6539,44 @@ land.rhs.i.i.lr.ph: ; preds = %entry br i1 %cmp9.not.i, label %land.rhs.i.i.us, label %land.rhs.i.i land.rhs.i.i.us: ; preds = %land.rhs.i.i.lr.ph - %m_decl.i.i.i.us = getelementptr inbounds %class.app, ptr %0, i64 0, i32 1 - %2 = load ptr, ptr %m_decl.i.i.i.us, align 8 - %m_info.i.i.i.i.us = getelementptr inbounds %class.decl, ptr %2, i64 0, i32 2 - %3 = load ptr, ptr %m_info.i.i.i.i.us, align 8 - %tobool.not.i.i.i.i.us = icmp eq ptr %3, null + %m_decl.i.i.i.us = getelementptr inbounds %class.app, ptr %a.0238, i64 0, i32 1 + %1 = load ptr, ptr %m_decl.i.i.i.us, align 8 + %m_info.i.i.i.i.us = getelementptr inbounds %class.decl, ptr %1, i64 0, i32 2 + %2 = load ptr, ptr %m_info.i.i.i.i.us, align 8 + %tobool.not.i.i.i.i.us = icmp eq ptr %2, null br i1 %tobool.not.i.i.i.i.us, label %cleanup, label %invoke.cont.us invoke.cont.us: ; preds = %land.rhs.i.i.us - %4 = load i32, ptr %3, align 8 - %cmp.i.i.i.i.i.us = icmp eq i32 %4, %1 - %m_kind.i.i.i.i.i.us = getelementptr inbounds %class.decl_info, ptr %3, i64 0, i32 1 - %5 = load i32, ptr %m_kind.i.i.i.i.i.us, align 4 - %cmp2.i.i.i.i.i.us = icmp eq i32 %5, 0 - %6 = select i1 %cmp.i.i.i.i.i.us, i1 %cmp2.i.i.i.i.i.us, i1 false - br i1 %6, label %while.body.us, label %cleanup + %3 = load i32, ptr %2, align 8 + %cmp.i.i.i.i.i.us = icmp eq i32 %3, %0 + %m_kind.i.i.i.i.i.us = getelementptr inbounds %class.decl_info, ptr %2, i64 0, i32 1 + %4 = load i32, ptr %m_kind.i.i.i.i.i.us, align 4 + %cmp2.i.i.i.i.i.us = icmp eq i32 %4, 0 + %5 = select i1 %cmp.i.i.i.i.i.us, i1 %cmp2.i.i.i.i.i.us, i1 false + br i1 %5, label %while.body.us, label %cleanup while.body.us: ; preds = %invoke.cont.us - %m_args.i.us = getelementptr inbounds %class.app, ptr %0, i64 0, i32 3 + %m_args.i.us = getelementptr inbounds %class.app, ptr %a.0238, i64 0, i32 3 br label %sw.bb9 land.rhs.i.i: ; preds = %land.rhs.i.i.lr.ph, %invoke.cont71 - %7 = phi i32 [ %83, %invoke.cont71 ], [ %1, %land.rhs.i.i.lr.ph ] - %a.0243 = phi ptr [ %82, %invoke.cont71 ], [ %0, %land.rhs.i.i.lr.ph ] + %6 = phi i32 [ %81, %invoke.cont71 ], [ %0, %land.rhs.i.i.lr.ph ] + %a.0243 = phi ptr [ %a.0, %invoke.cont71 ], [ %a.0238, %land.rhs.i.i.lr.ph ] %m_decl.i.i.i = getelementptr inbounds %class.app, ptr %a.0243, i64 0, i32 1 - %8 = load ptr, ptr %m_decl.i.i.i, align 8 - %m_info.i.i.i.i = getelementptr inbounds %class.decl, ptr %8, i64 0, i32 2 - %9 = load ptr, ptr %m_info.i.i.i.i, align 8 - %tobool.not.i.i.i.i = icmp eq ptr %9, null + %7 = load ptr, ptr %m_decl.i.i.i, align 8 + %m_info.i.i.i.i = getelementptr inbounds %class.decl, ptr %7, i64 0, i32 2 + %8 = load ptr, ptr %m_info.i.i.i.i, align 8 + %tobool.not.i.i.i.i = icmp eq ptr %8, null br i1 %tobool.not.i.i.i.i, label %cleanup, label %invoke.cont invoke.cont: ; preds = %land.rhs.i.i - %10 = load i32, ptr %9, align 8 - %cmp.i.i.i.i.i = icmp eq i32 %10, %7 - %m_kind.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %9, i64 0, i32 1 - %11 = load i32, ptr %m_kind.i.i.i.i.i, align 4 - %cmp2.i.i.i.i.i = icmp eq i32 %11, 0 - %12 = select i1 %cmp.i.i.i.i.i, i1 %cmp2.i.i.i.i.i, i1 false - br i1 %12, label %while.body, label %cleanup + %9 = load i32, ptr %8, align 8 + %cmp.i.i.i.i.i = icmp eq i32 %9, %6 + %m_kind.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %8, i64 0, i32 1 + %10 = load i32, ptr %m_kind.i.i.i.i.i, align 4 + %cmp2.i.i.i.i.i = icmp eq i32 %10, 0 + %11 = select i1 %cmp.i.i.i.i.i, i1 %cmp2.i.i.i.i.i, i1 false + br i1 %11, label %while.body, label %cleanup while.body: ; preds = %invoke.cont %m_args.i = getelementptr inbounds %class.app, ptr %a.0243, i64 0, i32 3 @@ -6591,104 +6591,104 @@ for.cond.i: ; preds = %for.body.i for.body.i: ; preds = %for.cond.i, %while.body %indvars.iv.i = phi i64 [ 0, %while.body ], [ %indvars.iv.next.i, %for.cond.i ] %arrayidx.i = getelementptr inbounds ptr, ptr %add.ptr, i64 %indvars.iv.i - %13 = load ptr, ptr %arrayidx.i, align 8 + %12 = load ptr, ptr %arrayidx.i, align 8 %arrayidx3.i = getelementptr inbounds ptr, ptr %add.ptr6, i64 %indvars.iv.i - %14 = load ptr, ptr %arrayidx3.i, align 8 - %cmp4.i = icmp eq ptr %13, %14 + %13 = load ptr, ptr %arrayidx3.i, align 8 + %cmp4.i = icmp eq ptr %12, %13 br i1 %cmp4.i, label %for.cond.i, label %if.end.i if.end.i: ; preds = %for.body.i - %15 = load ptr, ptr %m_manager.i.i.i, align 8 - %call9.i17 = invoke noundef zeroext i1 @_ZNK11ast_manager12are_distinctEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %15, ptr noundef %13, ptr noundef %14) + %14 = load ptr, ptr %m_manager.i.i.i, align 8 + %call9.i17 = invoke noundef zeroext i1 @_ZNK11ast_manager12are_distinctEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %14, ptr noundef %12, ptr noundef %13) to label %invoke.cont7 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont7: ; preds = %if.end.i br i1 %call9.i17, label %sw.bb70, label %cleanup lpad.loopexit: ; preds = %if.then.i120, %if.end.i.i.i.i139 - %lpad.loopexit221 = landingpad { ptr, i32 } + %lpad.loopexit220 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp.loopexit: ; preds = %if.end.i.i.i.i50, %if.then.i31 - %lpad.loopexit223 = landingpad { ptr, i32 } + %lpad.loopexit222 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then.i, %if.end.i.i.i.i, %for.end, %if.then2.i.i.i77 - %lpad.loopexit226 = landingpad { ptr, i32 } + %lpad.loopexit225 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i.i.i.i192, %if.then.i173, %if.end.i - %lpad.loopexit230 = landingpad { ptr, i32 } + %lpad.loopexit229 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then2.i.i.i167, %for.end60, %if.end.i.i.i.i103, %if.then.i84, %if.then2.i.i.i - %lpad.loopexit.split-lp231 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp230 = landingpad { ptr, i32 } cleanup br label %lpad lpad: ; preds = %lpad.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit221, %lpad.loopexit ], [ %lpad.loopexit223, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit226, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit230, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp231, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit220, %lpad.loopexit ], [ %lpad.loopexit222, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit225, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit229, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp230, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call void @_ZN10ptr_bufferI4exprLj16EED2Ev(ptr noundef nonnull align 8 dereferenceable(144) %sargs) #19 call void @_ZN10ptr_bufferI4exprLj16EED2Ev(ptr noundef nonnull align 8 dereferenceable(144) %parents) #19 resume { ptr, i32 } %lpad.phi sw.bb9: ; preds = %for.cond.i, %while.body.us - %m_args.i238 = phi ptr [ %m_args.i.us, %while.body.us ], [ %m_args.i, %for.cond.i ] - %16 = load ptr, ptr %m_args.i238, align 8 - %tobool.not.i = icmp eq ptr %16, null + %m_args.i237 = phi ptr [ %m_args.i.us, %while.body.us ], [ %m_args.i, %for.cond.i ] + %15 = load ptr, ptr %m_args.i237, align 8 + %tobool.not.i = icmp eq ptr %15, null br i1 %tobool.not.i, label %if.end.i19, label %_ZN11ast_manager7inc_refEP3ast.exit.i _ZN11ast_manager7inc_refEP3ast.exit.i: ; preds = %sw.bb9 - %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %16, i64 0, i32 2 - %17 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i = add i32 %17, 1 + %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %15, i64 0, i32 2 + %16 = load i32, ptr %m_ref_count.i.i.i, align 4 + %inc.i.i.i = add i32 %16, 1 store i32 %inc.i.i.i, ptr %m_ref_count.i.i.i, align 4 br label %if.end.i19 if.end.i19: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i, %sw.bb9 - %18 = load ptr, ptr %result, align 8 - %tobool.not.i3.i = icmp eq ptr %18, null + %17 = load ptr, ptr %result, align 8 + %tobool.not.i3.i = icmp eq ptr %17, null br i1 %tobool.not.i3.i, label %invoke.cont14, label %if.then.i.i.i if.then.i.i.i: ; preds = %if.end.i19 %m_manager.i.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %19 = load ptr, ptr %m_manager.i.i, align 8 - %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %18, i64 0, i32 2 - %20 = load i32, ptr %m_ref_count.i.i.i.i, align 4 - %dec.i.i.i.i = add i32 %20, -1 + %18 = load ptr, ptr %m_manager.i.i, align 8 + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %17, i64 0, i32 2 + %19 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %dec.i.i.i.i = add i32 %19, -1 store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 %cmp.i.i.i = icmp eq i32 %dec.i.i.i.i, 0 br i1 %cmp.i.i.i, label %if.then2.i.i.i, label %invoke.cont14 if.then2.i.i.i: ; preds = %if.then.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %19, ptr noundef nonnull %18) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %18, ptr noundef nonnull %17) to label %invoke.cont14 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont14: ; preds = %if.then.i.i.i, %if.end.i19, %if.then2.i.i.i - store ptr %16, ptr %result, align 8 - %21 = load i32, ptr %m_pos.i.i, align 8 - %cmp.not247 = icmp eq i32 %21, 0 + store ptr %15, ptr %result, align 8 + %20 = load i32, ptr %m_pos.i.i, align 8 + %cmp.not247 = icmp eq i32 %20, 0 br i1 %cmp.not247, label %for.end46, label %for.body.lr.ph for.body.lr.ph: ; preds = %invoke.cont14 %m_manager.i.i73 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %22 = zext i32 %21 to i64 + %21 = zext i32 %20 to i64 br label %for.body for.body: ; preds = %for.body.lr.ph, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 - %23 = phi ptr [ %16, %for.body.lr.ph ], [ %call.i65, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 ] - %indvars.iv256 = phi i64 [ %22, %for.body.lr.ph ], [ %24, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 ] - %24 = add nsw i64 %indvars.iv256, -1 - %25 = load ptr, ptr %parents, align 8 - %arrayidx.i20 = getelementptr inbounds ptr, ptr %25, i64 %24 - %26 = load ptr, ptr %arrayidx.i20, align 8 + %22 = phi ptr [ %15, %for.body.lr.ph ], [ %call.i65, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 ] + %indvars.iv256 = phi i64 [ %21, %for.body.lr.ph ], [ %23, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 ] + %23 = add nsw i64 %indvars.iv256, -1 + %24 = load ptr, ptr %parents, align 8 + %arrayidx.i20 = getelementptr inbounds ptr, ptr %24, i64 %23 + %25 = load ptr, ptr %arrayidx.i20, align 8 store i32 0, ptr %m_pos.i.i15, align 8 - %27 = load i32, ptr %m_capacity.i.i16, align 4 - %cmp.not.i.not = icmp eq i32 %27, 0 + %26 = load i32, ptr %m_capacity.i.i16, align 4 + %cmp.not.i.not = icmp eq i32 %26, 0 br i1 %cmp.not.i.not, label %if.then.i, label %entry.if.end_crit_edge.i entry.if.end_crit_edge.i: ; preds = %for.body @@ -6700,21 +6700,21 @@ if.then.i: ; preds = %for.body to label %call.i.i.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit call.i.i.noexc: ; preds = %if.then.i - %28 = load i32, ptr %m_pos.i.i15, align 8 - %cmp6.not.i.i = icmp eq i32 %28, 0 + %27 = load i32, ptr %m_pos.i.i15, align 8 + %cmp6.not.i.i = icmp eq i32 %27, 0 %.pre.i.i = load ptr, ptr %sargs, align 8 br i1 %cmp6.not.i.i, label %for.end.i.i, label %for.body.lr.ph.i.i for.body.lr.ph.i.i: ; preds = %call.i.i.noexc - %wide.trip.count.i.i = zext i32 %28 to i64 + %wide.trip.count.i.i = zext i32 %27 to i64 br label %for.body.i.i for.body.i.i: ; preds = %for.body.i.i, %for.body.lr.ph.i.i %indvars.iv.i.i = phi i64 [ 0, %for.body.lr.ph.i.i ], [ %indvars.iv.next.i.i, %for.body.i.i ] %arrayidx.i.i = getelementptr inbounds ptr, ptr %call.i.i24, i64 %indvars.iv.i.i %arrayidx3.i.i = getelementptr inbounds ptr, ptr %.pre.i.i, i64 %indvars.iv.i.i - %29 = load ptr, ptr %arrayidx3.i.i, align 8 - store ptr %29, ptr %arrayidx.i.i, align 8 + %28 = load ptr, ptr %arrayidx3.i.i, align 8 + store ptr %28, ptr %arrayidx.i.i, align 8 %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !12 @@ -6734,32 +6734,32 @@ if.end.i.i.i.i: ; preds = %for.end.i.i br label %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i _ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i: ; preds = %.noexc25, %for.end.i.i - %.pre1.i = phi i32 [ %28, %for.end.i.i ], [ %.pre1.pre.i, %.noexc25 ] + %.pre1.i = phi i32 [ %27, %for.end.i.i ], [ %.pre1.pre.i, %.noexc25 ] store ptr %call.i.i24, ptr %sargs, align 8 store i32 0, ptr %m_capacity.i.i16, align 4 br label %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit _ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit: ; preds = %entry.if.end_crit_edge.i, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i - %30 = phi i32 [ 0, %entry.if.end_crit_edge.i ], [ %.pre1.i, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i ] - %31 = phi ptr [ %.pre.i, %entry.if.end_crit_edge.i ], [ %call.i.i24, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i ] - %idx.ext.i = zext i32 %30 to i64 - %add.ptr.i = getelementptr inbounds ptr, ptr %31, i64 %idx.ext.i - store ptr %23, ptr %add.ptr.i, align 8 - %32 = load i32, ptr %m_pos.i.i15, align 8 - %inc.i = add i32 %32, 1 + %29 = phi i32 [ 0, %entry.if.end_crit_edge.i ], [ %.pre1.i, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i ] + %30 = phi ptr [ %.pre.i, %entry.if.end_crit_edge.i ], [ %call.i.i24, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i ] + %idx.ext.i = zext i32 %29 to i64 + %add.ptr.i = getelementptr inbounds ptr, ptr %30, i64 %idx.ext.i + store ptr %22, ptr %add.ptr.i, align 8 + %31 = load i32, ptr %m_pos.i.i15, align 8 + %inc.i = add i32 %31, 1 store i32 %inc.i, ptr %m_pos.i.i15, align 8 - %m_num_args.i = getelementptr inbounds %class.app, ptr %26, i64 0, i32 2 - %33 = load i32, ptr %m_num_args.i, align 8 - %cmp29244 = icmp ugt i32 %33, 1 + %m_num_args.i = getelementptr inbounds %class.app, ptr %25, i64 0, i32 2 + %32 = load i32, ptr %m_num_args.i, align 8 + %cmp29244 = icmp ugt i32 %32, 1 br i1 %cmp29244, label %for.body30, label %for.end for.body30: ; preds = %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit, %for.inc - %34 = phi i32 [ %inc.i57, %for.inc ], [ %inc.i, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit ] + %33 = phi i32 [ %inc.i57, %for.inc ], [ %inc.i, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit ] %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 1, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit ] - %arrayidx.i27 = getelementptr inbounds %class.app, ptr %26, i64 0, i32 3, i64 %indvars.iv - %35 = load ptr, ptr %arrayidx.i27, align 8 - %36 = load i32, ptr %m_capacity.i.i16, align 4 - %cmp.not.i30 = icmp ult i32 %34, %36 + %arrayidx.i27 = getelementptr inbounds %class.app, ptr %25, i64 0, i32 3, i64 %indvars.iv + %34 = load ptr, ptr %arrayidx.i27, align 8 + %35 = load i32, ptr %m_capacity.i.i16, align 4 + %cmp.not.i30 = icmp ult i32 %33, %35 br i1 %cmp.not.i30, label %entry.if.end_crit_edge.i58, label %if.then.i31 entry.if.end_crit_edge.i58: ; preds = %for.body30 @@ -6767,28 +6767,28 @@ entry.if.end_crit_edge.i58: ; preds = %for.body30 br label %for.inc if.then.i31: ; preds = %for.body30 - %shl.i.i32 = shl i32 %36, 1 + %shl.i.i32 = shl i32 %35, 1 %conv.i.i33 = zext i32 %shl.i.i32 to i64 %mul.i.i34 = shl nuw nsw i64 %conv.i.i33, 3 %call.i.i61 = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef %mul.i.i34) to label %call.i.i.noexc60 unwind label %lpad.loopexit.split-lp.loopexit call.i.i.noexc60: ; preds = %if.then.i31 - %37 = load i32, ptr %m_pos.i.i15, align 8 - %cmp6.not.i.i35 = icmp eq i32 %37, 0 + %36 = load i32, ptr %m_pos.i.i15, align 8 + %cmp6.not.i.i35 = icmp eq i32 %36, 0 %.pre.i.i36 = load ptr, ptr %sargs, align 8 br i1 %cmp6.not.i.i35, label %for.end.i.i45, label %for.body.lr.ph.i.i37 for.body.lr.ph.i.i37: ; preds = %call.i.i.noexc60 - %wide.trip.count.i.i38 = zext i32 %37 to i64 + %wide.trip.count.i.i38 = zext i32 %36 to i64 br label %for.body.i.i39 for.body.i.i39: ; preds = %for.body.i.i39, %for.body.lr.ph.i.i37 %indvars.iv.i.i40 = phi i64 [ 0, %for.body.lr.ph.i.i37 ], [ %indvars.iv.next.i.i43, %for.body.i.i39 ] %arrayidx.i.i41 = getelementptr inbounds ptr, ptr %call.i.i61, i64 %indvars.iv.i.i40 %arrayidx3.i.i42 = getelementptr inbounds ptr, ptr %.pre.i.i36, i64 %indvars.iv.i.i40 - %38 = load ptr, ptr %arrayidx3.i.i42, align 8 - store ptr %38, ptr %arrayidx.i.i41, align 8 + %37 = load ptr, ptr %arrayidx3.i.i42, align 8 + store ptr %37, ptr %arrayidx.i.i41, align 8 %indvars.iv.next.i.i43 = add nuw nsw i64 %indvars.iv.i.i40, 1 %exitcond.not.i.i44 = icmp eq i64 %indvars.iv.next.i.i43, %wide.trip.count.i.i38 br i1 %exitcond.not.i.i44, label %for.end.i.i45, label %for.body.i.i39, !llvm.loop !12 @@ -6808,32 +6808,32 @@ if.end.i.i.i.i50: ; preds = %for.end.i.i45 br label %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i52 _ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i52: ; preds = %.noexc62, %for.end.i.i45 - %.pre1.i53 = phi i32 [ %37, %for.end.i.i45 ], [ %.pre1.pre.i51, %.noexc62 ] + %.pre1.i53 = phi i32 [ %36, %for.end.i.i45 ], [ %.pre1.pre.i51, %.noexc62 ] store ptr %call.i.i61, ptr %sargs, align 8 store i32 %shl.i.i32, ptr %m_capacity.i.i16, align 4 br label %for.inc for.inc: ; preds = %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i52, %entry.if.end_crit_edge.i58 - %39 = phi i32 [ %34, %entry.if.end_crit_edge.i58 ], [ %.pre1.i53, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i52 ] - %40 = phi ptr [ %.pre.i59, %entry.if.end_crit_edge.i58 ], [ %call.i.i61, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i52 ] - %idx.ext.i55 = zext i32 %39 to i64 - %add.ptr.i56 = getelementptr inbounds ptr, ptr %40, i64 %idx.ext.i55 - store ptr %35, ptr %add.ptr.i56, align 8 - %41 = load i32, ptr %m_pos.i.i15, align 8 - %inc.i57 = add i32 %41, 1 + %38 = phi i32 [ %33, %entry.if.end_crit_edge.i58 ], [ %.pre1.i53, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i52 ] + %39 = phi ptr [ %.pre.i59, %entry.if.end_crit_edge.i58 ], [ %call.i.i61, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i52 ] + %idx.ext.i55 = zext i32 %38 to i64 + %add.ptr.i56 = getelementptr inbounds ptr, ptr %39, i64 %idx.ext.i55 + store ptr %34, ptr %add.ptr.i56, align 8 + %40 = load i32, ptr %m_pos.i.i15, align 8 + %inc.i57 = add i32 %40, 1 store i32 %inc.i57, ptr %m_pos.i.i15, align 8 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %42 = load i32, ptr %m_num_args.i, align 8 - %43 = zext i32 %42 to i64 - %cmp29 = icmp ult i64 %indvars.iv.next, %43 + %41 = load i32, ptr %m_num_args.i, align 8 + %42 = zext i32 %41 to i64 + %cmp29 = icmp ult i64 %indvars.iv.next, %42 br i1 %cmp29, label %for.body30, label %for.end, !llvm.loop !32 for.end: ; preds = %for.inc, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit - %44 = phi i32 [ %inc.i, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit ], [ %inc.i57, %for.inc ] - %45 = load ptr, ptr %sargs, align 8 - %46 = load ptr, ptr %m_manager.i.i.i, align 8 - %47 = load i32, ptr %this, align 8 - %call.i65 = invoke noundef ptr @_ZN11ast_manager6mk_appEiijPK9parameterjPKP4exprP4sort(ptr noundef nonnull align 8 dereferenceable(976) %46, i32 noundef %47, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef %44, ptr noundef %45, ptr noundef null) + %43 = phi i32 [ %inc.i, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit ], [ %inc.i57, %for.inc ] + %44 = load ptr, ptr %sargs, align 8 + %45 = load ptr, ptr %m_manager.i.i.i, align 8 + %46 = load i32, ptr %this, align 8 + %call.i65 = invoke noundef ptr @_ZN11ast_manager6mk_appEiijPK9parameterjPKP4exprP4sort(ptr noundef nonnull align 8 dereferenceable(976) %45, i32 noundef %46, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef %43, ptr noundef %44, ptr noundef null) to label %invoke.cont42 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont42: ; preds = %for.end @@ -6842,39 +6842,39 @@ invoke.cont42: ; preds = %for.end _ZN11ast_manager7inc_refEP3ast.exit.i67: ; preds = %invoke.cont42 %m_ref_count.i.i.i68 = getelementptr inbounds %class.ast, ptr %call.i65, i64 0, i32 2 - %48 = load i32, ptr %m_ref_count.i.i.i68, align 4 - %inc.i.i.i69 = add i32 %48, 1 + %47 = load i32, ptr %m_ref_count.i.i.i68, align 4 + %inc.i.i.i69 = add i32 %47, 1 store i32 %inc.i.i.i69, ptr %m_ref_count.i.i.i68, align 4 br label %if.end.i70 if.end.i70: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i67, %invoke.cont42 - %49 = load ptr, ptr %result, align 8 - %tobool.not.i3.i71 = icmp eq ptr %49, null + %48 = load ptr, ptr %result, align 8 + %tobool.not.i3.i71 = icmp eq ptr %48, null br i1 %tobool.not.i3.i71, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79, label %if.then.i.i.i72 if.then.i.i.i72: ; preds = %if.end.i70 - %50 = load ptr, ptr %m_manager.i.i73, align 8 - %m_ref_count.i.i.i.i74 = getelementptr inbounds %class.ast, ptr %49, i64 0, i32 2 - %51 = load i32, ptr %m_ref_count.i.i.i.i74, align 4 - %dec.i.i.i.i75 = add i32 %51, -1 + %49 = load ptr, ptr %m_manager.i.i73, align 8 + %m_ref_count.i.i.i.i74 = getelementptr inbounds %class.ast, ptr %48, i64 0, i32 2 + %50 = load i32, ptr %m_ref_count.i.i.i.i74, align 4 + %dec.i.i.i.i75 = add i32 %50, -1 store i32 %dec.i.i.i.i75, ptr %m_ref_count.i.i.i.i74, align 4 %cmp.i.i.i76 = icmp eq i32 %dec.i.i.i.i75, 0 br i1 %cmp.i.i.i76, label %if.then2.i.i.i77, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 if.then2.i.i.i77: ; preds = %if.then.i.i.i72 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %50, ptr noundef nonnull %49) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %49, ptr noundef nonnull %48) to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit _ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79: ; preds = %if.then2.i.i.i77, %if.end.i70, %if.then.i.i.i72 store ptr %call.i65, ptr %result, align 8 - %cmp.not.wide = icmp eq i64 %24, 0 + %cmp.not.wide = icmp eq i64 %23, 0 br i1 %cmp.not.wide, label %for.end46, label %for.body for.end46: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79, %invoke.cont14 - %52 = phi ptr [ %16, %invoke.cont14 ], [ %call.i65, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 ] + %51 = phi ptr [ %15, %invoke.cont14 ], [ %call.i65, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit79 ] store i32 0, ptr %m_pos.i.i15, align 8 - %53 = load i32, ptr %m_capacity.i.i16, align 4 - %cmp.not.i83.not = icmp eq i32 %53, 0 + %52 = load i32, ptr %m_capacity.i.i16, align 4 + %cmp.not.i83.not = icmp eq i32 %52, 0 br i1 %cmp.not.i83.not, label %if.then.i84, label %entry.if.end_crit_edge.i111 entry.if.end_crit_edge.i111: ; preds = %for.end46 @@ -6886,21 +6886,21 @@ if.then.i84: ; preds = %for.end46 to label %call.i.i.noexc113 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp call.i.i.noexc113: ; preds = %if.then.i84 - %54 = load i32, ptr %m_pos.i.i15, align 8 - %cmp6.not.i.i88 = icmp eq i32 %54, 0 + %53 = load i32, ptr %m_pos.i.i15, align 8 + %cmp6.not.i.i88 = icmp eq i32 %53, 0 %.pre.i.i89 = load ptr, ptr %sargs, align 8 br i1 %cmp6.not.i.i88, label %for.end.i.i98, label %for.body.lr.ph.i.i90 for.body.lr.ph.i.i90: ; preds = %call.i.i.noexc113 - %wide.trip.count.i.i91 = zext i32 %54 to i64 + %wide.trip.count.i.i91 = zext i32 %53 to i64 br label %for.body.i.i92 for.body.i.i92: ; preds = %for.body.i.i92, %for.body.lr.ph.i.i90 %indvars.iv.i.i93 = phi i64 [ 0, %for.body.lr.ph.i.i90 ], [ %indvars.iv.next.i.i96, %for.body.i.i92 ] %arrayidx.i.i94 = getelementptr inbounds ptr, ptr %call.i.i114, i64 %indvars.iv.i.i93 %arrayidx3.i.i95 = getelementptr inbounds ptr, ptr %.pre.i.i89, i64 %indvars.iv.i.i93 - %55 = load ptr, ptr %arrayidx3.i.i95, align 8 - store ptr %55, ptr %arrayidx.i.i94, align 8 + %54 = load ptr, ptr %arrayidx3.i.i95, align 8 + store ptr %54, ptr %arrayidx.i.i94, align 8 %indvars.iv.next.i.i96 = add nuw nsw i64 %indvars.iv.i.i93, 1 %exitcond.not.i.i97 = icmp eq i64 %indvars.iv.next.i.i96, %wide.trip.count.i.i91 br i1 %exitcond.not.i.i97, label %for.end.i.i98, label %for.body.i.i92, !llvm.loop !12 @@ -6920,19 +6920,19 @@ if.end.i.i.i.i103: ; preds = %for.end.i.i98 br label %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i105 _ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i105: ; preds = %.noexc115, %for.end.i.i98 - %.pre1.i106 = phi i32 [ %54, %for.end.i.i98 ], [ %.pre1.pre.i104, %.noexc115 ] + %.pre1.i106 = phi i32 [ %53, %for.end.i.i98 ], [ %.pre1.pre.i104, %.noexc115 ] store ptr %call.i.i114, ptr %sargs, align 8 store i32 0, ptr %m_capacity.i.i16, align 4 - %56 = zext i32 %.pre1.i106 to i64 + %55 = zext i32 %.pre1.i106 to i64 br label %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit116 _ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit116: ; preds = %entry.if.end_crit_edge.i111, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i105 - %idx.ext.i108 = phi i64 [ 0, %entry.if.end_crit_edge.i111 ], [ %56, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i105 ] - %57 = phi ptr [ %.pre.i112, %entry.if.end_crit_edge.i111 ], [ %call.i.i114, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i105 ] - %add.ptr.i109 = getelementptr inbounds ptr, ptr %57, i64 %idx.ext.i108 - store ptr %52, ptr %add.ptr.i109, align 8 - %58 = load i32, ptr %m_pos.i.i15, align 8 - %inc.i110 = add i32 %58, 1 + %idx.ext.i108 = phi i64 [ 0, %entry.if.end_crit_edge.i111 ], [ %55, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i105 ] + %56 = phi ptr [ %.pre.i112, %entry.if.end_crit_edge.i111 ], [ %call.i.i114, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i105 ] + %add.ptr.i109 = getelementptr inbounds ptr, ptr %56, i64 %idx.ext.i108 + store ptr %51, ptr %add.ptr.i109, align 8 + %57 = load i32, ptr %m_pos.i.i15, align 8 + %inc.i110 = add i32 %57, 1 store i32 %inc.i110, ptr %m_pos.i.i15, align 8 %cmp54249 = icmp ugt i32 %n, 1 br i1 %cmp54249, label %for.body55.preheader, label %for.end60 @@ -6942,11 +6942,11 @@ for.body55.preheader: ; preds = %_ZN6bufferIP4exprLb br label %for.body55 for.body55: ; preds = %for.body55.preheader, %for.inc58 - %59 = phi i32 [ %inc.i110, %for.body55.preheader ], [ %inc.i146, %for.inc58 ] + %58 = phi i32 [ %inc.i110, %for.body55.preheader ], [ %inc.i146, %for.inc58 ] %indvars.iv260 = phi i64 [ 1, %for.body55.preheader ], [ %indvars.iv.next261, %for.inc58 ] %arrayidx56 = getelementptr inbounds ptr, ptr %args, i64 %indvars.iv260 - %60 = load i32, ptr %m_capacity.i.i16, align 4 - %cmp.not.i119 = icmp ult i32 %59, %60 + %59 = load i32, ptr %m_capacity.i.i16, align 4 + %cmp.not.i119 = icmp ult i32 %58, %59 br i1 %cmp.not.i119, label %entry.if.end_crit_edge.i147, label %if.then.i120 entry.if.end_crit_edge.i147: ; preds = %for.body55 @@ -6954,28 +6954,28 @@ entry.if.end_crit_edge.i147: ; preds = %for.body55 br label %for.inc58 if.then.i120: ; preds = %for.body55 - %shl.i.i121 = shl i32 %60, 1 + %shl.i.i121 = shl i32 %59, 1 %conv.i.i122 = zext i32 %shl.i.i121 to i64 %mul.i.i123 = shl nuw nsw i64 %conv.i.i122, 3 %call.i.i150 = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef %mul.i.i123) to label %call.i.i.noexc149 unwind label %lpad.loopexit call.i.i.noexc149: ; preds = %if.then.i120 - %61 = load i32, ptr %m_pos.i.i15, align 8 - %cmp6.not.i.i124 = icmp eq i32 %61, 0 + %60 = load i32, ptr %m_pos.i.i15, align 8 + %cmp6.not.i.i124 = icmp eq i32 %60, 0 %.pre.i.i125 = load ptr, ptr %sargs, align 8 br i1 %cmp6.not.i.i124, label %for.end.i.i134, label %for.body.lr.ph.i.i126 for.body.lr.ph.i.i126: ; preds = %call.i.i.noexc149 - %wide.trip.count.i.i127 = zext i32 %61 to i64 + %wide.trip.count.i.i127 = zext i32 %60 to i64 br label %for.body.i.i128 for.body.i.i128: ; preds = %for.body.i.i128, %for.body.lr.ph.i.i126 %indvars.iv.i.i129 = phi i64 [ 0, %for.body.lr.ph.i.i126 ], [ %indvars.iv.next.i.i132, %for.body.i.i128 ] %arrayidx.i.i130 = getelementptr inbounds ptr, ptr %call.i.i150, i64 %indvars.iv.i.i129 %arrayidx3.i.i131 = getelementptr inbounds ptr, ptr %.pre.i.i125, i64 %indvars.iv.i.i129 - %62 = load ptr, ptr %arrayidx3.i.i131, align 8 - store ptr %62, ptr %arrayidx.i.i130, align 8 + %61 = load ptr, ptr %arrayidx3.i.i131, align 8 + store ptr %61, ptr %arrayidx.i.i130, align 8 %indvars.iv.next.i.i132 = add nuw nsw i64 %indvars.iv.i.i129, 1 %exitcond.not.i.i133 = icmp eq i64 %indvars.iv.next.i.i132, %wide.trip.count.i.i127 br i1 %exitcond.not.i.i133, label %for.end.i.i134, label %for.body.i.i128, !llvm.loop !12 @@ -6995,31 +6995,31 @@ if.end.i.i.i.i139: ; preds = %for.end.i.i134 br label %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i141 _ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i141: ; preds = %.noexc151, %for.end.i.i134 - %.pre1.i142 = phi i32 [ %61, %for.end.i.i134 ], [ %.pre1.pre.i140, %.noexc151 ] + %.pre1.i142 = phi i32 [ %60, %for.end.i.i134 ], [ %.pre1.pre.i140, %.noexc151 ] store ptr %call.i.i150, ptr %sargs, align 8 store i32 %shl.i.i121, ptr %m_capacity.i.i16, align 4 br label %for.inc58 for.inc58: ; preds = %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i141, %entry.if.end_crit_edge.i147 - %63 = phi i32 [ %59, %entry.if.end_crit_edge.i147 ], [ %.pre1.i142, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i141 ] - %64 = phi ptr [ %.pre.i148, %entry.if.end_crit_edge.i147 ], [ %call.i.i150, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i141 ] - %idx.ext.i144 = zext i32 %63 to i64 - %add.ptr.i145 = getelementptr inbounds ptr, ptr %64, i64 %idx.ext.i144 - %65 = load ptr, ptr %arrayidx56, align 8 - store ptr %65, ptr %add.ptr.i145, align 8 - %66 = load i32, ptr %m_pos.i.i15, align 8 - %inc.i146 = add i32 %66, 1 + %62 = phi i32 [ %58, %entry.if.end_crit_edge.i147 ], [ %.pre1.i142, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i141 ] + %63 = phi ptr [ %.pre.i148, %entry.if.end_crit_edge.i147 ], [ %call.i.i150, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i141 ] + %idx.ext.i144 = zext i32 %62 to i64 + %add.ptr.i145 = getelementptr inbounds ptr, ptr %63, i64 %idx.ext.i144 + %64 = load ptr, ptr %arrayidx56, align 8 + store ptr %64, ptr %add.ptr.i145, align 8 + %65 = load i32, ptr %m_pos.i.i15, align 8 + %inc.i146 = add i32 %65, 1 store i32 %inc.i146, ptr %m_pos.i.i15, align 8 %indvars.iv.next261 = add nuw nsw i64 %indvars.iv260, 1 %exitcond.not = icmp eq i64 %indvars.iv.next261, %wide.trip.count br i1 %exitcond.not, label %for.end60, label %for.body55, !llvm.loop !33 for.end60: ; preds = %for.inc58, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit116 - %67 = phi i32 [ %inc.i110, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit116 ], [ %inc.i146, %for.inc58 ] - %68 = load ptr, ptr %sargs, align 8 - %69 = load ptr, ptr %m_manager.i.i.i, align 8 - %70 = load i32, ptr %this, align 8 - %call.i154 = invoke noundef ptr @_ZN11ast_manager6mk_appEiijPK9parameterjPKP4exprP4sort(ptr noundef nonnull align 8 dereferenceable(976) %69, i32 noundef %70, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef %67, ptr noundef %68, ptr noundef null) + %66 = phi i32 [ %inc.i110, %_ZN6bufferIP4exprLb0ELj16EE9push_backEOS1_.exit116 ], [ %inc.i146, %for.inc58 ] + %67 = load ptr, ptr %sargs, align 8 + %68 = load ptr, ptr %m_manager.i.i.i, align 8 + %69 = load i32, ptr %this, align 8 + %call.i154 = invoke noundef ptr @_ZN11ast_manager6mk_appEiijPK9parameterjPKP4exprP4sort(ptr noundef nonnull align 8 dereferenceable(976) %68, i32 noundef %69, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef %66, ptr noundef %67, ptr noundef null) to label %invoke.cont66 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont66: ; preds = %for.end60 @@ -7028,28 +7028,28 @@ invoke.cont66: ; preds = %for.end60 _ZN11ast_manager7inc_refEP3ast.exit.i157: ; preds = %invoke.cont66 %m_ref_count.i.i.i158 = getelementptr inbounds %class.ast, ptr %call.i154, i64 0, i32 2 - %71 = load i32, ptr %m_ref_count.i.i.i158, align 4 - %inc.i.i.i159 = add i32 %71, 1 + %70 = load i32, ptr %m_ref_count.i.i.i158, align 4 + %inc.i.i.i159 = add i32 %70, 1 store i32 %inc.i.i.i159, ptr %m_ref_count.i.i.i158, align 4 br label %if.end.i160 if.end.i160: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i157, %invoke.cont66 - %72 = load ptr, ptr %result, align 8 - %tobool.not.i3.i161 = icmp eq ptr %72, null + %71 = load ptr, ptr %result, align 8 + %tobool.not.i3.i161 = icmp eq ptr %71, null br i1 %tobool.not.i3.i161, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit169, label %if.then.i.i.i162 if.then.i.i.i162: ; preds = %if.end.i160 %m_manager.i.i163 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %73 = load ptr, ptr %m_manager.i.i163, align 8 - %m_ref_count.i.i.i.i164 = getelementptr inbounds %class.ast, ptr %72, i64 0, i32 2 - %74 = load i32, ptr %m_ref_count.i.i.i.i164, align 4 - %dec.i.i.i.i165 = add i32 %74, -1 + %72 = load ptr, ptr %m_manager.i.i163, align 8 + %m_ref_count.i.i.i.i164 = getelementptr inbounds %class.ast, ptr %71, i64 0, i32 2 + %73 = load i32, ptr %m_ref_count.i.i.i.i164, align 4 + %dec.i.i.i.i165 = add i32 %73, -1 store i32 %dec.i.i.i.i165, ptr %m_ref_count.i.i.i.i164, align 4 %cmp.i.i.i166 = icmp eq i32 %dec.i.i.i.i165, 0 br i1 %cmp.i.i.i166, label %if.then2.i.i.i167, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit169 if.then2.i.i.i167: ; preds = %if.then.i.i.i162 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %73, ptr noundef nonnull %72) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %72, ptr noundef nonnull %71) to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit169 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp _ZN7obj_refI4expr11ast_managerEaSEPS0_.exit169: ; preds = %if.then2.i.i.i167, %if.end.i160, %if.then.i.i.i162 @@ -7057,9 +7057,9 @@ _ZN7obj_refI4expr11ast_managerEaSEPS0_.exit169: ; preds = %if.then2.i.i.i167, br label %cleanup sw.bb70: ; preds = %invoke.cont7 - %75 = load i32, ptr %m_pos.i.i, align 8 - %76 = load i32, ptr %m_capacity.i.i, align 4 - %cmp.not.i172 = icmp ult i32 %75, %76 + %74 = load i32, ptr %m_pos.i.i, align 8 + %75 = load i32, ptr %m_capacity.i.i, align 4 + %cmp.not.i172 = icmp ult i32 %74, %75 br i1 %cmp.not.i172, label %entry.if.end_crit_edge.i200, label %if.then.i173 entry.if.end_crit_edge.i200: ; preds = %sw.bb70 @@ -7067,28 +7067,28 @@ entry.if.end_crit_edge.i200: ; preds = %sw.bb70 br label %invoke.cont71 if.then.i173: ; preds = %sw.bb70 - %shl.i.i174 = shl i32 %76, 1 + %shl.i.i174 = shl i32 %75, 1 %conv.i.i175 = zext i32 %shl.i.i174 to i64 %mul.i.i176 = shl nuw nsw i64 %conv.i.i175, 3 %call.i.i203 = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef %mul.i.i176) to label %call.i.i.noexc202 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call.i.i.noexc202: ; preds = %if.then.i173 - %77 = load i32, ptr %m_pos.i.i, align 8 - %cmp6.not.i.i177 = icmp eq i32 %77, 0 + %76 = load i32, ptr %m_pos.i.i, align 8 + %cmp6.not.i.i177 = icmp eq i32 %76, 0 %.pre.i.i178 = load ptr, ptr %parents, align 8 br i1 %cmp6.not.i.i177, label %for.end.i.i187, label %for.body.lr.ph.i.i179 for.body.lr.ph.i.i179: ; preds = %call.i.i.noexc202 - %wide.trip.count.i.i180 = zext i32 %77 to i64 + %wide.trip.count.i.i180 = zext i32 %76 to i64 br label %for.body.i.i181 for.body.i.i181: ; preds = %for.body.i.i181, %for.body.lr.ph.i.i179 %indvars.iv.i.i182 = phi i64 [ 0, %for.body.lr.ph.i.i179 ], [ %indvars.iv.next.i.i185, %for.body.i.i181 ] %arrayidx.i.i183 = getelementptr inbounds ptr, ptr %call.i.i203, i64 %indvars.iv.i.i182 %arrayidx3.i.i184 = getelementptr inbounds ptr, ptr %.pre.i.i178, i64 %indvars.iv.i.i182 - %78 = load ptr, ptr %arrayidx3.i.i184, align 8 - store ptr %78, ptr %arrayidx.i.i183, align 8 + %77 = load ptr, ptr %arrayidx3.i.i184, align 8 + store ptr %77, ptr %arrayidx.i.i183, align 8 %indvars.iv.next.i.i185 = add nuw nsw i64 %indvars.iv.i.i182, 1 %exitcond.not.i.i186 = icmp eq i64 %indvars.iv.next.i.i185, %wide.trip.count.i.i180 br i1 %exitcond.not.i.i186, label %for.end.i.i187, label %for.body.i.i181, !llvm.loop !12 @@ -7108,23 +7108,23 @@ if.end.i.i.i.i192: ; preds = %for.end.i.i187 br label %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i194 _ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i194: ; preds = %.noexc204, %for.end.i.i187 - %.pre1.i195 = phi i32 [ %77, %for.end.i.i187 ], [ %.pre1.pre.i193, %.noexc204 ] + %.pre1.i195 = phi i32 [ %76, %for.end.i.i187 ], [ %.pre1.pre.i193, %.noexc204 ] store ptr %call.i.i203, ptr %parents, align 8 store i32 %shl.i.i174, ptr %m_capacity.i.i, align 4 br label %invoke.cont71 invoke.cont71: ; preds = %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i194, %entry.if.end_crit_edge.i200 - %79 = phi i32 [ %75, %entry.if.end_crit_edge.i200 ], [ %.pre1.i195, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i194 ] - %80 = phi ptr [ %.pre.i201, %entry.if.end_crit_edge.i200 ], [ %call.i.i203, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i194 ] - %idx.ext.i197 = zext i32 %79 to i64 - %add.ptr.i198 = getelementptr inbounds ptr, ptr %80, i64 %idx.ext.i197 + %78 = phi i32 [ %74, %entry.if.end_crit_edge.i200 ], [ %.pre1.i195, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i194 ] + %79 = phi ptr [ %.pre.i201, %entry.if.end_crit_edge.i200 ], [ %call.i.i203, %_ZN6bufferIP4exprLb0ELj16EE6expandEv.exit.i194 ] + %idx.ext.i197 = zext i32 %78 to i64 + %add.ptr.i198 = getelementptr inbounds ptr, ptr %79, i64 %idx.ext.i197 store ptr %a.0243, ptr %add.ptr.i198, align 8 - %81 = load i32, ptr %m_pos.i.i, align 8 - %inc.i199 = add i32 %81, 1 + %80 = load i32, ptr %m_pos.i.i, align 8 + %inc.i199 = add i32 %80, 1 store i32 %inc.i199, ptr %m_pos.i.i, align 8 - %82 = load ptr, ptr %m_args.i, align 8 - %83 = load i32, ptr %this, align 8 - %m_kind.i.i.i = getelementptr inbounds %class.ast, ptr %82, i64 0, i32 1 + %a.0 = load ptr, ptr %m_args.i, align 8 + %81 = load i32, ptr %this, align 8 + %m_kind.i.i.i = getelementptr inbounds %class.ast, ptr %a.0, i64 0, i32 1 %bf.load.i.i.i = load i32, ptr %m_kind.i.i.i, align 4 %bf.clear.i.i.i = and i32 %bf.load.i.i.i, 65535 %cmp.i.i = icmp eq i32 %bf.clear.i.i.i, 0 @@ -7132,39 +7132,39 @@ invoke.cont71: ; preds = %_ZN6bufferIP4exprLb cleanup: ; preds = %invoke.cont, %invoke.cont71, %land.rhs.i.i, %invoke.cont7, %entry, %invoke.cont.us, %land.rhs.i.i.us, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit169 %retval.0 = phi i1 [ true, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit169 ], [ false, %land.rhs.i.i.us ], [ false, %invoke.cont.us ], [ false, %entry ], [ false, %invoke.cont7 ], [ false, %land.rhs.i.i ], [ false, %invoke.cont71 ], [ false, %invoke.cont ] - %84 = load ptr, ptr %sargs, align 8 - %cmp.not.i.i.i.i = icmp eq ptr %84, %m_initial_buffer.i.i14 - %cmp.i.i.i.i.i207 = icmp eq ptr %84, null + %82 = load ptr, ptr %sargs, align 8 + %cmp.not.i.i.i.i = icmp eq ptr %82, %m_initial_buffer.i.i14 + %cmp.i.i.i.i.i207 = icmp eq ptr %82, null %or.cond.i.i.i.i = or i1 %cmp.not.i.i.i.i, %cmp.i.i.i.i.i207 br i1 %or.cond.i.i.i.i, label %_ZN10ptr_bufferI4exprLj16EED2Ev.exit, label %if.end.i.i.i.i.i if.end.i.i.i.i.i: ; preds = %cleanup - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %84) + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %82) to label %_ZN10ptr_bufferI4exprLj16EED2Ev.exit unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %if.end.i.i.i.i.i - %85 = landingpad { ptr, i32 } + %83 = landingpad { ptr, i32 } catch ptr null - %86 = extractvalue { ptr, i32 } %85, 0 - call void @__clang_call_terminate(ptr %86) #20 + %84 = extractvalue { ptr, i32 } %83, 0 + call void @__clang_call_terminate(ptr %84) #20 unreachable _ZN10ptr_bufferI4exprLj16EED2Ev.exit: ; preds = %cleanup, %if.end.i.i.i.i.i - %87 = load ptr, ptr %parents, align 8 - %cmp.not.i.i.i.i209 = icmp eq ptr %87, %m_initial_buffer.i.i - %cmp.i.i.i.i.i210 = icmp eq ptr %87, null + %85 = load ptr, ptr %parents, align 8 + %cmp.not.i.i.i.i209 = icmp eq ptr %85, %m_initial_buffer.i.i + %cmp.i.i.i.i.i210 = icmp eq ptr %85, null %or.cond.i.i.i.i211 = or i1 %cmp.not.i.i.i.i209, %cmp.i.i.i.i.i210 br i1 %or.cond.i.i.i.i211, label %_ZN10ptr_bufferI4exprLj16EED2Ev.exit214, label %if.end.i.i.i.i.i212 if.end.i.i.i.i.i212: ; preds = %_ZN10ptr_bufferI4exprLj16EED2Ev.exit - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %87) + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %85) to label %_ZN10ptr_bufferI4exprLj16EED2Ev.exit214 unwind label %terminate.lpad.i.i213 terminate.lpad.i.i213: ; preds = %if.end.i.i.i.i.i212 - %88 = landingpad { ptr, i32 } + %86 = landingpad { ptr, i32 } catch ptr null - %89 = extractvalue { ptr, i32 } %88, 0 - call void @__clang_call_terminate(ptr %89) #20 + %87 = extractvalue { ptr, i32 } %86, 0 + call void @__clang_call_terminate(ptr %87) #20 unreachable _ZN10ptr_bufferI4exprLj16EED2Ev.exit214: ; preds = %_ZN10ptr_bufferI4exprLj16EED2Ev.exit, %if.end.i.i.i.i.i212 @@ -7203,9 +7203,11 @@ while.cond.us: ; preds = %entry %1 = load i32, ptr %this, align 8 %m_kind.i.i.i.us = getelementptr inbounds %class.ast, ptr %arg0.0.us, i64 0, i32 1 %bf.load.i.i.i.us = load i32, ptr %m_kind.i.i.i.us, align 4 - %bf.clear.i.i.i.us = and i32 %bf.load.i.i.i.us, 65535 - %cmp.i.i.us = icmp eq i32 %bf.clear.i.i.i.us, 0 - br i1 %cmp.i.i.us, label %land.rhs.i.i.us, label %if.end47 + %trunc.us = trunc i32 %bf.load.i.i.i.us to i16 + switch i16 %trunc.us, label %cleanup208thread-pre-split [ + i16 0, label %land.rhs.i.i.us + i16 2, label %invoke.cont66 + ] land.rhs.i.i.us: ; preds = %while.cond.us %m_decl.i.i.i.us = getelementptr inbounds %class.app, ptr %arg0.0.us, i64 0, i32 1 @@ -7213,7 +7215,7 @@ land.rhs.i.i.us: ; preds = %while.cond.us %m_info.i.i.i.i.us = getelementptr inbounds %class.decl, ptr %2, i64 0, i32 2 %3 = load ptr, ptr %m_info.i.i.i.i.us, align 8 %tobool.not.i.i.i.i.us = icmp eq ptr %3, null - br i1 %tobool.not.i.i.i.i.us, label %if.end47, label %invoke.cont.us + br i1 %tobool.not.i.i.i.i.us, label %cleanup208thread-pre-split, label %invoke.cont.us invoke.cont.us: ; preds = %land.rhs.i.i.us %4 = load i32, ptr %3, align 8 @@ -7222,21 +7224,23 @@ invoke.cont.us: ; preds = %land.rhs.i.i.us %5 = load i32, ptr %m_kind.i.i.i.i.i.us, align 4 %cmp2.i.i.i.i.i.us = icmp eq i32 %5, 0 %6 = select i1 %cmp.i.i.i.i.i.us, i1 %cmp2.i.i.i.i.i.us, i1 false - br i1 %6, label %sw.bb, label %if.end47 + br i1 %6, label %sw.bb, label %invoke.cont49 while.cond.outer.split: ; preds = %while.cond.outer.split.outer, %if.else - %arg0.0.in.ph423 = phi ptr [ %m_args.i, %if.else ], [ %arg0.0.in.ph423.ph, %while.cond.outer.split.outer ] + %arg0.0.in.ph436 = phi ptr [ %m_args.i, %if.else ], [ %arg0.0.in.ph436.ph, %while.cond.outer.split.outer ] br label %while.cond while.cond: ; preds = %while.cond.outer.split, %invoke.cont8 - %arg0.0.in = phi ptr [ %m_args.i, %invoke.cont8 ], [ %arg0.0.in.ph423, %while.cond.outer.split ] + %arg0.0.in = phi ptr [ %m_args.i, %invoke.cont8 ], [ %arg0.0.in.ph436, %while.cond.outer.split ] %arg0.0 = load ptr, ptr %arg0.0.in, align 8 %7 = load i32, ptr %this, align 8 %m_kind.i.i.i = getelementptr inbounds %class.ast, ptr %arg0.0, i64 0, i32 1 %bf.load.i.i.i = load i32, ptr %m_kind.i.i.i, align 4 - %bf.clear.i.i.i = and i32 %bf.load.i.i.i, 65535 - %cmp.i.i = icmp eq i32 %bf.clear.i.i.i, 0 - br i1 %cmp.i.i, label %land.rhs.i.i, label %if.end47 + %trunc = trunc i32 %bf.load.i.i.i to i16 + switch i16 %trunc, label %cleanup208thread-pre-split [ + i16 0, label %land.rhs.i.i + i16 2, label %invoke.cont66 + ] land.rhs.i.i: ; preds = %while.cond %m_decl.i.i.i = getelementptr inbounds %class.app, ptr %arg0.0, i64 0, i32 1 @@ -7244,7 +7248,7 @@ land.rhs.i.i: ; preds = %while.cond %m_info.i.i.i.i = getelementptr inbounds %class.decl, ptr %8, i64 0, i32 2 %9 = load ptr, ptr %m_info.i.i.i.i, align 8 %tobool.not.i.i.i.i = icmp eq ptr %9, null - br i1 %tobool.not.i.i.i.i, label %if.end47, label %invoke.cont + br i1 %tobool.not.i.i.i.i, label %cleanup208thread-pre-split, label %invoke.cont invoke.cont: ; preds = %land.rhs.i.i %10 = load i32, ptr %9, align 8 @@ -7253,7 +7257,7 @@ invoke.cont: ; preds = %land.rhs.i.i %11 = load i32, ptr %m_kind.i.i.i.i.i, align 4 %cmp2.i.i.i.i.i = icmp eq i32 %11, 0 %12 = select i1 %cmp.i.i.i.i.i, i1 %cmp2.i.i.i.i.i, i1 false - br i1 %12, label %if.then, label %if.end47 + br i1 %12, label %if.then, label %invoke.cont49 if.then: ; preds = %invoke.cont %m_args.i = getelementptr inbounds %class.app, ptr %arg0.0, i64 0, i32 3 @@ -7299,9 +7303,9 @@ lpad.loopexit.split-lp378: ; preds = %if.then186, %invoke sw.bb: ; preds = %for.cond.i, %invoke.cont.us %idxprom.i.pre-phi = phi i64 [ 1, %invoke.cont.us ], [ %idxprom.i65, %for.cond.i ] - %first.0.ph405 = phi i1 [ false, %invoke.cont.us ], [ %tobool26.not, %for.cond.i ] - %arg0.0396 = phi ptr [ %arg0.0.us, %invoke.cont.us ], [ %arg0.0, %for.cond.i ] - %arrayidx.i60 = getelementptr inbounds %class.app, ptr %arg0.0396, i64 0, i32 3, i64 %idxprom.i.pre-phi + %first.0.ph413 = phi i1 [ false, %invoke.cont.us ], [ %tobool26.not, %for.cond.i ] + %arg0.0402 = phi ptr [ %arg0.0.us, %invoke.cont.us ], [ %arg0.0, %for.cond.i ] + %arrayidx.i60 = getelementptr inbounds %class.app, ptr %arg0.0402, i64 0, i32 3, i64 %idxprom.i.pre-phi %16 = load ptr, ptr %arrayidx.i60, align 8 %tobool.not.i = icmp eq ptr %16, null br i1 %tobool.not.i, label %invoke.cont14, label %_ZN11ast_manager7inc_refEP3ast.exit.i @@ -7316,7 +7320,7 @@ _ZN11ast_manager7inc_refEP3ast.exit.i: ; preds = %sw.bb invoke.cont14: ; preds = %sw.bb, %_ZN11ast_manager7inc_refEP3ast.exit.i store ptr %16, ptr %tmp, align 8 %18 = load ptr, ptr %result, align 8 - br i1 %first.0.ph405, label %invoke.cont16, label %if.then18 + br i1 %first.0.ph413, label %invoke.cont16, label %if.then18 invoke.cont16: ; preds = %invoke.cont14 %cmp.i = icmp eq ptr %16, %18 @@ -7386,9 +7390,9 @@ _ZN7obj_refI4expr11ast_managerEaSEPS0_.exit80: ; preds = %if.then2.i.i.i78, % br label %while.cond.outer.split.outer while.cond.outer.split.outer: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit80, %while.cond.outer.split.lr.ph - %arg0.0.in.ph423.ph = phi ptr [ %m_args.i, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit80 ], [ %args, %while.cond.outer.split.lr.ph ] + %arg0.0.in.ph436.ph = phi ptr [ %m_args.i, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit80 ], [ %args, %while.cond.outer.split.lr.ph ] %tobool26.not = phi i1 [ true, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit80 ], [ false, %while.cond.outer.split.lr.ph ] - %first.0.ph422.ph = phi i8 [ 0, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit80 ], [ 1, %while.cond.outer.split.lr.ph ] + %first.0.ph435.ph = phi i8 [ 0, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit80 ], [ 1, %while.cond.outer.split.lr.ph ] br label %while.cond.outer.split if.else: ; preds = %sw.bb25 @@ -7398,106 +7402,94 @@ if.else: ; preds = %sw.bb25 %cmp.not = icmp eq ptr %28, %29 br i1 %cmp.not, label %while.cond.outer.split, label %cleanup208thread-pre-split -if.end47: ; preds = %invoke.cont, %while.cond, %land.rhs.i.i, %while.cond.us, %land.rhs.i.i.us, %invoke.cont.us - %bf.load.i.i.i85 = phi i32 [ %bf.load.i.i.i.us, %land.rhs.i.i.us ], [ %bf.load.i.i.i.us, %while.cond.us ], [ %bf.load.i.i.i.us, %invoke.cont.us ], [ %bf.load.i.i.i, %land.rhs.i.i ], [ %bf.load.i.i.i, %while.cond ], [ %bf.load.i.i.i, %invoke.cont ] - %30 = phi i32 [ %1, %land.rhs.i.i.us ], [ %1, %while.cond.us ], [ %1, %invoke.cont.us ], [ %7, %land.rhs.i.i ], [ %7, %while.cond ], [ %7, %invoke.cont ] - %.us-phi = phi ptr [ %arg0.0.us, %land.rhs.i.i.us ], [ %arg0.0.us, %while.cond.us ], [ %arg0.0.us, %invoke.cont.us ], [ %arg0.0, %land.rhs.i.i ], [ %arg0.0, %while.cond ], [ %arg0.0, %invoke.cont ] - %.us-phi407 = phi i8 [ 1, %land.rhs.i.i.us ], [ 1, %while.cond.us ], [ 1, %invoke.cont.us ], [ %first.0.ph422.ph, %land.rhs.i.i ], [ %first.0.ph422.ph, %while.cond ], [ %first.0.ph422.ph, %invoke.cont ] - %trunc = trunc i32 %bf.load.i.i.i85 to i16 - switch i16 %trunc, label %cleanup208thread-pre-split [ - i16 0, label %land.rhs.i.i88 - i16 2, label %invoke.cont66 - ] - -land.rhs.i.i88: ; preds = %if.end47 - %m_decl.i.i.i89 = getelementptr inbounds %class.app, ptr %.us-phi, i64 0, i32 1 - %31 = load ptr, ptr %m_decl.i.i.i89, align 8 - %m_info.i.i.i.i90 = getelementptr inbounds %class.decl, ptr %31, i64 0, i32 2 - %32 = load ptr, ptr %m_info.i.i.i.i90, align 8 - %tobool.not.i.i.i.i91 = icmp eq ptr %32, null - br i1 %tobool.not.i.i.i.i91, label %cleanup208thread-pre-split, label %invoke.cont49 - -invoke.cont49: ; preds = %land.rhs.i.i88 - %33 = load i32, ptr %32, align 8 - %cmp.i.i.i.i.i93 = icmp eq i32 %33, %30 - %m_kind.i.i.i.i.i94 = getelementptr inbounds %class.decl_info, ptr %32, i64 0, i32 1 - %34 = load i32, ptr %m_kind.i.i.i.i.i94, align 4 - %cmp2.i.i.i.i.i95 = icmp eq i32 %34, 2 - %35 = select i1 %cmp.i.i.i.i.i93, i1 %cmp2.i.i.i.i.i95, i1 false - br i1 %35, label %if.then51, label %invoke.cont125 +invoke.cont49: ; preds = %invoke.cont, %invoke.cont.us + %30 = phi ptr [ %3, %invoke.cont.us ], [ %9, %invoke.cont ] + %31 = phi ptr [ %2, %invoke.cont.us ], [ %8, %invoke.cont ] + %.us-phi415 = phi i8 [ 1, %invoke.cont.us ], [ %first.0.ph435.ph, %invoke.cont ] + %.us-phi416 = phi ptr [ %arg0.0.us, %invoke.cont.us ], [ %arg0.0, %invoke.cont ] + %.us-phi417 = phi i32 [ %1, %invoke.cont.us ], [ %7, %invoke.cont ] + %32 = load i32, ptr %30, align 8 + %cmp.i.i.i.i.i93 = icmp eq i32 %32, %.us-phi417 + %m_kind.i.i.i.i.i94 = getelementptr inbounds %class.decl_info, ptr %30, i64 0, i32 1 + %33 = load i32, ptr %m_kind.i.i.i.i.i94, align 4 + %cmp2.i.i.i.i.i95 = icmp eq i32 %33, 2 + %34 = select i1 %cmp.i.i.i.i.i93, i1 %cmp2.i.i.i.i.i95, i1 false + br i1 %34, label %if.then51, label %invoke.cont125 if.then51: ; preds = %invoke.cont49 - %arrayidx.i96 = getelementptr inbounds %class.app, ptr %.us-phi, i64 0, i32 3, i64 0 - %36 = load ptr, ptr %arrayidx.i96, align 8 - %tobool.not.i97 = icmp eq ptr %36, null + %arrayidx.i96 = getelementptr inbounds %class.app, ptr %.us-phi416, i64 0, i32 3, i64 0 + %35 = load ptr, ptr %arrayidx.i96, align 8 + %tobool.not.i97 = icmp eq ptr %35, null br i1 %tobool.not.i97, label %invoke.cont56, label %_ZN11ast_manager7inc_refEP3ast.exit.i98 _ZN11ast_manager7inc_refEP3ast.exit.i98: ; preds = %if.then51 - %m_ref_count.i.i.i99 = getelementptr inbounds %class.ast, ptr %36, i64 0, i32 2 - %37 = load i32, ptr %m_ref_count.i.i.i99, align 4 - %inc.i.i.i100 = add i32 %37, 1 + %m_ref_count.i.i.i99 = getelementptr inbounds %class.ast, ptr %35, i64 0, i32 2 + %36 = load i32, ptr %m_ref_count.i.i.i99, align 4 + %inc.i.i.i100 = add i32 %36, 1 store i32 %inc.i.i.i100, ptr %m_ref_count.i.i.i99, align 4 br label %invoke.cont56 invoke.cont56: ; preds = %if.then51, %_ZN11ast_manager7inc_refEP3ast.exit.i98 - store ptr %36, ptr %tmp, align 8 - %38 = and i8 %.us-phi407, 1 - %tobool58.not = icmp eq i8 %38, 0 - %39 = load ptr, ptr %result, align 8 + store ptr %35, ptr %tmp, align 8 + %37 = and i8 %.us-phi415, 1 + %tobool58.not = icmp eq i8 %37, 0 + %38 = load ptr, ptr %result, align 8 br i1 %tobool58.not, label %invoke.cont60, label %if.then62 invoke.cont60: ; preds = %invoke.cont56 - %cmp.i111 = icmp eq ptr %36, %39 + %cmp.i111 = icmp eq ptr %35, %38 br i1 %cmp.i111, label %if.then62, label %cleanup208thread-pre-split if.then62: ; preds = %invoke.cont56, %invoke.cont60 - %40 = phi ptr [ %36, %invoke.cont60 ], [ %39, %invoke.cont56 ] - store ptr %36, ptr %result, align 8 - %tobool.not.i.i.i112 = icmp eq ptr %40, null + %39 = phi ptr [ %35, %invoke.cont60 ], [ %38, %invoke.cont56 ] + store ptr %35, ptr %result, align 8 + %tobool.not.i.i.i112 = icmp eq ptr %39, null br i1 %tobool.not.i.i.i112, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356, label %if.then.i.i.i.i113 if.then.i.i.i.i113: ; preds = %if.then62 - %m_ref_count.i.i.i.i.i115 = getelementptr inbounds %class.ast, ptr %40, i64 0, i32 2 - %41 = load i32, ptr %m_ref_count.i.i.i.i.i115, align 4 - %dec.i.i.i.i.i116 = add i32 %41, -1 + %m_ref_count.i.i.i.i.i115 = getelementptr inbounds %class.ast, ptr %39, i64 0, i32 2 + %40 = load i32, ptr %m_ref_count.i.i.i.i.i115, align 4 + %dec.i.i.i.i.i116 = add i32 %40, -1 store i32 %dec.i.i.i.i.i116, ptr %m_ref_count.i.i.i.i.i115, align 4 %cmp.i.i.i.i117 = icmp eq i32 %dec.i.i.i.i.i116, 0 br i1 %cmp.i.i.i.i117, label %if.then2.i.i.i.i118, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356 if.then2.i.i.i.i118: ; preds = %if.then.i.i.i.i113 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %40) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %39) to label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356 unwind label %terminate.lpad.i119 terminate.lpad.i119: ; preds = %if.then2.i.i.i.i118 - %42 = landingpad { ptr, i32 } + %41 = landingpad { ptr, i32 } catch ptr null - %43 = extractvalue { ptr, i32 } %42, 0 - tail call void @__clang_call_terminate(ptr %43) #20 + %42 = extractvalue { ptr, i32 } %41, 0 + tail call void @__clang_call_terminate(ptr %42) #20 unreachable -invoke.cont66: ; preds = %if.end47 - %m_kind.i.i = getelementptr inbounds %class.quantifier, ptr %.us-phi, i64 0, i32 1 - %44 = load i32, ptr %m_kind.i.i, align 8 - %cmp.i125 = icmp eq i32 %44, 2 +invoke.cont66: ; preds = %while.cond, %while.cond.us + %.us-phi = phi i8 [ 1, %while.cond.us ], [ %first.0.ph435.ph, %while.cond ] + %.us-phi414 = phi ptr [ %arg0.0.us, %while.cond.us ], [ %arg0.0, %while.cond ] + %m_kind.i.i = getelementptr inbounds %class.quantifier, ptr %.us-phi414, i64 0, i32 1 + %43 = load i32, ptr %m_kind.i.i, align 8 + %cmp.i125 = icmp eq i32 %43, 2 br i1 %cmp.i125, label %invoke.cont71, label %cleanup208thread-pre-split invoke.cont71: ; preds = %invoke.cont66 - %45 = load ptr, ptr %m_manager.i.i, align 8 + %44 = load ptr, ptr %m_manager.i.i, align 8 store ptr getelementptr inbounds ({ [4 x ptr] }, ptr @_ZTV12beta_reducer, i64 0, inrange i32 0, i64 2), ptr %subst, align 8 %m_cfg.i.i = getelementptr inbounds %class.beta_reducer, ptr %subst, i64 0, i32 1 - invoke void @_ZN12rewriter_tplI16beta_reducer_cfgEC2ER11ast_managerbRS0_(ptr noundef nonnull align 8 dereferenceable(536) %subst, ptr noundef nonnull align 8 dereferenceable(976) %45, i1 noundef zeroext false, ptr noundef nonnull align 1 dereferenceable(1) %m_cfg.i.i) + invoke void @_ZN12rewriter_tplI16beta_reducer_cfgEC2ER11ast_managerbRS0_(ptr noundef nonnull align 8 dereferenceable(536) %subst, ptr noundef nonnull align 8 dereferenceable(976) %44, i1 noundef zeroext false, ptr noundef nonnull align 1 dereferenceable(1) %m_cfg.i.i) to label %invoke.cont79 unwind label %lpad.loopexit.split-lp378 invoke.cont79: ; preds = %invoke.cont71 store ptr getelementptr inbounds ({ [4 x ptr] }, ptr @_ZTV12beta_reducer, i64 0, inrange i32 0, i64 2), ptr %subst, align 8 %m_std_order.i = getelementptr inbounds %class.var_subst, ptr %subst, i64 0, i32 1 store i8 1, ptr %m_std_order.i, align 8 - %46 = load ptr, ptr %m_manager.i.i, align 8 - %47 = ptrtoint ptr %46 to i64 - store i64 %47, ptr %_args, align 8 + %45 = load ptr, ptr %m_manager.i.i, align 8 + %46 = ptrtoint ptr %45 to i64 + store i64 %46, ptr %_args, align 8 %m_nodes.i.i = getelementptr inbounds %class.ref_vector_core, ptr %_args, i64 0, i32 1 store ptr null, ptr %m_nodes.i.i, align 8 - invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %sh, ptr noundef nonnull align 8 dereferenceable(976) %46, i1 noundef zeroext false) + invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %sh, ptr noundef nonnull align 8 dereferenceable(976) %45, i1 noundef zeroext false) to label %_ZN11var_shifterC2ER11ast_manager.exit unwind label %lpad78 _ZN11var_shifterC2ER11ast_manager.exit: ; preds = %invoke.cont79 @@ -7508,8 +7500,8 @@ _ZN11var_shifterC2ER11ast_manager.exit: ; preds = %invoke.cont79 store i32 0, ptr %m_shift1.i, align 4 %m_shift2.i = getelementptr inbounds %class.var_shifter, ptr %sh, i64 0, i32 3 store i32 0, ptr %m_shift2.i, align 8 - %cmp82425 = icmp ugt i32 %num_args, 1 - br i1 %cmp82425, label %for.body.lr.ph, label %for.end + %cmp82438 = icmp ugt i32 %num_args, 1 + br i1 %cmp82438, label %for.body.lr.ph, label %for.end for.body.lr.ph: ; preds = %_ZN11var_shifterC2ER11ast_manager.exit %wide.trip.count = zext i32 %num_args to i64 @@ -7518,33 +7510,33 @@ for.body.lr.ph: ; preds = %_ZN11var_shifterC2E for.body: ; preds = %for.body.lr.ph, %for.inc %indvars.iv = phi i64 [ 1, %for.body.lr.ph ], [ %indvars.iv.next, %for.inc ] %arrayidx83 = getelementptr inbounds ptr, ptr %args, i64 %indvars.iv - %48 = load ptr, ptr %arrayidx83, align 8 - invoke void @_ZN11var_shifterclEP4exprjjjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(156) %sh, ptr noundef %48, i32 noundef 0, i32 noundef %sub, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(16) %result) + %47 = load ptr, ptr %arrayidx83, align 8 + invoke void @_ZN11var_shifterclEP4exprjjjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(156) %sh, ptr noundef %47, i32 noundef 0, i32 noundef %sub, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(16) %result) to label %invoke.cont86 unwind label %lpad85.loopexit invoke.cont86: ; preds = %for.body - %49 = load ptr, ptr %result, align 8 - %tobool.not.i.i.i.i132 = icmp eq ptr %49, null + %48 = load ptr, ptr %result, align 8 + %tobool.not.i.i.i.i132 = icmp eq ptr %48, null br i1 %tobool.not.i.i.i.i132, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i133 if.then.i.i.i.i133: ; preds = %invoke.cont86 - %m_ref_count.i.i.i.i.i134 = getelementptr inbounds %class.ast, ptr %49, i64 0, i32 2 - %50 = load i32, ptr %m_ref_count.i.i.i.i.i134, align 4 - %inc.i.i.i.i.i = add i32 %50, 1 + %m_ref_count.i.i.i.i.i134 = getelementptr inbounds %class.ast, ptr %48, i64 0, i32 2 + %49 = load i32, ptr %m_ref_count.i.i.i.i.i134, align 4 + %inc.i.i.i.i.i = add i32 %49, 1 store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i134, align 4 br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %if.then.i.i.i.i133, %invoke.cont86 - %51 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i135 = icmp eq ptr %51, null + %50 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i135 = icmp eq ptr %50, null br i1 %cmp.i.i135, label %if.then.i.i, label %lor.lhs.false.i.i lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - %arrayidx.i.i = getelementptr inbounds i32, ptr %51, i64 -1 - %52 = load i32, ptr %arrayidx.i.i, align 4 - %arrayidx4.i.i = getelementptr inbounds i32, ptr %51, i64 -2 - %53 = load i32, ptr %arrayidx4.i.i, align 4 - %cmp5.i.i = icmp eq i32 %52, %53 + %arrayidx.i.i = getelementptr inbounds i32, ptr %50, i64 -1 + %51 = load i32, ptr %arrayidx.i.i, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %50, i64 -2 + %52 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %51, %52 br i1 %cmp5.i.i, label %if.then.i.i, label %for.inc if.then.i.i: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i @@ -7558,22 +7550,22 @@ if.then.i.i: ; preds = %lor.lhs.false.i.i, br label %for.inc for.inc: ; preds = %.noexc136, %lor.lhs.false.i.i - %54 = phi i32 [ %.pre1.i.i, %.noexc136 ], [ %52, %lor.lhs.false.i.i ] - %55 = phi ptr [ %.pre.i.i, %.noexc136 ], [ %51, %lor.lhs.false.i.i ] - %idx.ext.i.i = zext i32 %54 to i64 - %add.ptr.i.i = getelementptr inbounds ptr, ptr %55, i64 %idx.ext.i.i - store ptr %49, ptr %add.ptr.i.i, align 8 - %56 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i = getelementptr inbounds i32, ptr %56, i64 -1 - %57 = load i32, ptr %arrayidx10.i.i, align 4 - %inc.i.i = add i32 %57, 1 + %53 = phi i32 [ %.pre1.i.i, %.noexc136 ], [ %51, %lor.lhs.false.i.i ] + %54 = phi ptr [ %.pre.i.i, %.noexc136 ], [ %50, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %53 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %54, i64 %idx.ext.i.i + store ptr %48, ptr %add.ptr.i.i, align 8 + %55 = load ptr, ptr %m_nodes.i.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %55, i64 -1 + %56 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %56, 1 store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !36 lpad78: ; preds = %invoke.cont79 - %58 = landingpad { ptr, i32 } + %57 = landingpad { ptr, i32 } cleanup br label %ehcleanup120 @@ -7588,81 +7580,81 @@ lpad85.loopexit.split-lp: ; preds = %invoke.cont93 br label %ehcleanup118 for.end: ; preds = %for.inc, %_ZN11var_shifterC2ER11ast_manager.exit - %m_expr.i = getelementptr inbounds %class.quantifier, ptr %.us-phi, i64 0, i32 3 - %59 = load ptr, ptr %m_expr.i, align 8 - %60 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i138 = icmp eq ptr %60, null + %m_expr.i = getelementptr inbounds %class.quantifier, ptr %.us-phi414, i64 0, i32 3 + %58 = load ptr, ptr %m_expr.i, align 8 + %59 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i138 = icmp eq ptr %59, null br i1 %cmp.i.i138, label %invoke.cont93, label %if.end.i.i if.end.i.i: ; preds = %for.end - %arrayidx.i.i139 = getelementptr inbounds i32, ptr %60, i64 -1 - %61 = load i32, ptr %arrayidx.i.i139, align 4 + %arrayidx.i.i139 = getelementptr inbounds i32, ptr %59, i64 -1 + %60 = load i32, ptr %arrayidx.i.i139, align 4 br label %invoke.cont93 invoke.cont93: ; preds = %if.end.i.i, %for.end - %retval.0.i.i = phi i32 [ %61, %if.end.i.i ], [ 0, %for.end ] - invoke void @_ZN9var_substclEP4exprjPKS1_(ptr nonnull sret(%class.obj_ref) align 8 %tmp2, ptr noundef nonnull align 8 dereferenceable(545) %subst, ptr noundef %59, i32 noundef %retval.0.i.i, ptr noundef %60) + %retval.0.i.i = phi i32 [ %60, %if.end.i.i ], [ 0, %for.end ] + invoke void @_ZN9var_substclEP4exprjPKS1_(ptr nonnull sret(%class.obj_ref) align 8 %tmp2, ptr noundef nonnull align 8 dereferenceable(545) %subst, ptr noundef %58, i32 noundef %retval.0.i.i, ptr noundef %59) to label %invoke.cont99 unwind label %lpad85.loopexit.split-lp invoke.cont99: ; preds = %invoke.cont93 - %62 = load ptr, ptr %m_manager.i.i, align 8 - invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %invsh, ptr noundef nonnull align 8 dereferenceable(976) %62, i1 noundef zeroext false) + %61 = load ptr, ptr %m_manager.i.i, align 8 + invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %invsh, ptr noundef nonnull align 8 dereferenceable(976) %61, i1 noundef zeroext false) to label %invoke.cont101 unwind label %lpad98 invoke.cont101: ; preds = %invoke.cont99 store ptr getelementptr inbounds ({ [5 x ptr] }, ptr @_ZTV15inv_var_shifter, i64 0, inrange i32 0, i64 2), ptr %invsh, align 8 - %63 = load ptr, ptr %tmp2, align 8 - %64 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i144 = icmp eq ptr %64, null + %62 = load ptr, ptr %tmp2, align 8 + %63 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i144 = icmp eq ptr %63, null br i1 %cmp.i.i144, label %invoke.cont105, label %if.end.i.i145 if.end.i.i145: ; preds = %invoke.cont101 - %arrayidx.i.i146 = getelementptr inbounds i32, ptr %64, i64 -1 - %65 = load i32, ptr %arrayidx.i.i146, align 4 + %arrayidx.i.i146 = getelementptr inbounds i32, ptr %63, i64 -1 + %64 = load i32, ptr %arrayidx.i.i146, align 4 br label %invoke.cont105 invoke.cont105: ; preds = %if.end.i.i145, %invoke.cont101 - %retval.0.i.i147 = phi i32 [ %65, %if.end.i.i145 ], [ 0, %invoke.cont101 ] - invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %invsh, ptr noundef %63, i32 noundef %retval.0.i.i147, ptr noundef nonnull align 8 dereferenceable(16) %tmp2) + %retval.0.i.i147 = phi i32 [ %64, %if.end.i.i145 ], [ 0, %invoke.cont101 ] + invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %invsh, ptr noundef %62, i32 noundef %retval.0.i.i147, ptr noundef nonnull align 8 dereferenceable(16) %tmp2) to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit157 unwind label %lpad102 _ZN7obj_refI4expr11ast_managerEaSEOS2_.exit157: ; preds = %invoke.cont105 - %66 = load ptr, ptr %tmp2, align 8 - store ptr %66, ptr %tmp, align 8 + %65 = load ptr, ptr %tmp2, align 8 + store ptr %65, ptr %tmp, align 8 store ptr null, ptr %tmp2, align 8 - %67 = and i8 %.us-phi407, 1 - %tobool109.not = icmp eq i8 %67, 0 - %68 = load ptr, ptr %result, align 8 + %66 = and i8 %.us-phi, 1 + %tobool109.not = icmp eq i8 %66, 0 + %67 = load ptr, ptr %result, align 8 br i1 %tobool109.not, label %invoke.cont111, label %if.then113 invoke.cont111: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit157 - %cmp.i158 = icmp eq ptr %66, %68 + %cmp.i158 = icmp eq ptr %65, %67 br i1 %cmp.i158, label %if.then113, label %cleanup if.then113: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit157, %invoke.cont111 - %69 = phi ptr [ %66, %invoke.cont111 ], [ %68, %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit157 ] - store ptr %66, ptr %result, align 8 - store ptr %69, ptr %tmp, align 8 - %tobool.not.i.i.i159 = icmp eq ptr %69, null + %68 = phi ptr [ %65, %invoke.cont111 ], [ %67, %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit157 ] + store ptr %65, ptr %result, align 8 + store ptr %68, ptr %tmp, align 8 + %tobool.not.i.i.i159 = icmp eq ptr %68, null br i1 %tobool.not.i.i.i159, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit167, label %if.then.i.i.i.i160 if.then.i.i.i.i160: ; preds = %if.then113 - %m_ref_count.i.i.i.i.i162 = getelementptr inbounds %class.ast, ptr %69, i64 0, i32 2 - %70 = load i32, ptr %m_ref_count.i.i.i.i.i162, align 4 - %dec.i.i.i.i.i163 = add i32 %70, -1 + %m_ref_count.i.i.i.i.i162 = getelementptr inbounds %class.ast, ptr %68, i64 0, i32 2 + %69 = load i32, ptr %m_ref_count.i.i.i.i.i162, align 4 + %dec.i.i.i.i.i163 = add i32 %69, -1 store i32 %dec.i.i.i.i.i163, ptr %m_ref_count.i.i.i.i.i162, align 4 %cmp.i.i.i.i164 = icmp eq i32 %dec.i.i.i.i.i163, 0 br i1 %cmp.i.i.i.i164, label %if.then2.i.i.i.i165, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit167 if.then2.i.i.i.i165: ; preds = %if.then.i.i.i.i160 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %69) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %68) to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit167 unwind label %terminate.lpad.i166 terminate.lpad.i166: ; preds = %if.then2.i.i.i.i165 - %71 = landingpad { ptr, i32 } + %70 = landingpad { ptr, i32 } catch ptr null - %72 = extractvalue { ptr, i32 } %71, 0 - call void @__clang_call_terminate(ptr %72) #20 + %71 = extractvalue { ptr, i32 } %70, 0 + call void @__clang_call_terminate(ptr %71) #20 unreachable _ZN7obj_refI4expr11ast_managerEaSEOS2_.exit167: ; preds = %if.then113, %if.then.i.i.i.i160, %if.then2.i.i.i.i165 @@ -7670,12 +7662,12 @@ _ZN7obj_refI4expr11ast_managerEaSEOS2_.exit167: ; preds = %if.then113, %if.the br label %cleanup lpad98: ; preds = %invoke.cont99 - %73 = landingpad { ptr, i32 } + %72 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad102: ; preds = %invoke.cont105 - %74 = landingpad { ptr, i32 } + %73 = landingpad { ptr, i32 } cleanup call void @_ZN13rewriter_coreD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %invsh) #19 br label %ehcleanup @@ -7683,62 +7675,62 @@ lpad102: ; preds = %invoke.cont105 cleanup: ; preds = %invoke.cont111, %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit167 %retval.0 = phi i32 [ 3, %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit167 ], [ 5, %invoke.cont111 ] call void @_ZN13rewriter_coreD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %invsh) #19 - %75 = load ptr, ptr %tmp2, align 8 - %tobool.not.i.i = icmp eq ptr %75, null + %74 = load ptr, ptr %tmp2, align 8 + %tobool.not.i.i = icmp eq ptr %74, null br i1 %tobool.not.i.i, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit, label %if.then.i.i.i168 if.then.i.i.i168: ; preds = %cleanup %m_manager.i.i169 = getelementptr inbounds %class.obj_ref, ptr %tmp2, i64 0, i32 1 - %76 = load ptr, ptr %m_manager.i.i169, align 8 - %m_ref_count.i.i.i.i170 = getelementptr inbounds %class.ast, ptr %75, i64 0, i32 2 - %77 = load i32, ptr %m_ref_count.i.i.i.i170, align 4 - %dec.i.i.i.i171 = add i32 %77, -1 + %75 = load ptr, ptr %m_manager.i.i169, align 8 + %m_ref_count.i.i.i.i170 = getelementptr inbounds %class.ast, ptr %74, i64 0, i32 2 + %76 = load i32, ptr %m_ref_count.i.i.i.i170, align 4 + %dec.i.i.i.i171 = add i32 %76, -1 store i32 %dec.i.i.i.i171, ptr %m_ref_count.i.i.i.i170, align 4 %cmp.i.i.i172 = icmp eq i32 %dec.i.i.i.i171, 0 br i1 %cmp.i.i.i172, label %if.then2.i.i.i173, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit if.then2.i.i.i173: ; preds = %if.then.i.i.i168 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %76, ptr noundef nonnull %75) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %75, ptr noundef nonnull %74) to label %_ZN7obj_refI4expr11ast_managerED2Ev.exit unwind label %terminate.lpad.i174 terminate.lpad.i174: ; preds = %if.then2.i.i.i173 - %78 = landingpad { ptr, i32 } + %77 = landingpad { ptr, i32 } catch ptr null - %79 = extractvalue { ptr, i32 } %78, 0 - call void @__clang_call_terminate(ptr %79) #20 + %78 = extractvalue { ptr, i32 } %77, 0 + call void @__clang_call_terminate(ptr %78) #20 unreachable _ZN7obj_refI4expr11ast_managerED2Ev.exit: ; preds = %cleanup, %if.then.i.i.i168, %if.then2.i.i.i173 call void @_ZN13rewriter_coreD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %sh) #19 - %80 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i176 = icmp eq ptr %80, null + %79 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i.i176 = icmp eq ptr %79, null br i1 %cmp.i.i.i176, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i _ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerED2Ev.exit - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %80, i64 -1 - %81 = load i32, ptr %arrayidx.i.i.i, align 4 - %82 = zext i32 %81 to i64 - %add.ptr.i.i177 = getelementptr inbounds ptr, ptr %80, i64 %82 - %cmp3.i.not.i.i = icmp eq i32 %81, 0 + %arrayidx.i.i.i = getelementptr inbounds i32, ptr %79, i64 -1 + %80 = load i32, ptr %arrayidx.i.i.i, align 4 + %81 = zext i32 %80 to i64 + %add.ptr.i.i177 = getelementptr inbounds ptr, ptr %79, i64 %81 + %cmp3.i.not.i.i = icmp eq i32 %80, 0 br i1 %cmp3.i.not.i.i, label %if.then.i.i.i.i.i, label %for.body.i.i.i for.body.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %it.04.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i ], [ %80, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %83 = load ptr, ptr %it.04.i.i.i, align 8 - %84 = load ptr, ptr %_args, align 8 - %tobool.not.i.i.i.i.i.i = icmp eq ptr %83, null + %it.04.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i ], [ %79, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] + %82 = load ptr, ptr %it.04.i.i.i, align 8 + %83 = load ptr, ptr %_args, align 8 + %tobool.not.i.i.i.i.i.i = icmp eq ptr %82, null br i1 %tobool.not.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %for.body.i.i.i - %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %83, i64 0, i32 2 - %85 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 - %dec.i.i.i.i.i.i.i = add i32 %85, -1 + %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %82, i64 0, i32 2 + %84 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 + %dec.i.i.i.i.i.i.i = add i32 %84, -1 store i32 %dec.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 %cmp.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %84, ptr noundef nonnull %83) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %83, ptr noundef nonnull %82) to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i unwind label %terminate.lpad.i.i _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %for.body.i.i.i @@ -7752,23 +7744,23 @@ invoke.cont8.i.i: ; preds = %_ZN15ref_vector_cor br i1 %tobool.not.i.i.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, label %if.then.i.i.i.i.i if.then.i.i.i.i.i: ; preds = %invoke.cont8.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - %86 = phi ptr [ %.pre.i.i178, %invoke.cont8.i.i ], [ %80, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %add.ptr.i.i.i.i.i.i = getelementptr inbounds i32, ptr %86, i64 -2 + %85 = phi ptr [ %.pre.i.i178, %invoke.cont8.i.i ], [ %79, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] + %add.ptr.i.i.i.i.i.i = getelementptr inbounds i32, ptr %85, i64 -2 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i) to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit unwind label %terminate.lpad.i.i.i.i terminate.lpad.i.i.i.i: ; preds = %if.then.i.i.i.i.i - %87 = landingpad { ptr, i32 } + %86 = landingpad { ptr, i32 } catch ptr null - %88 = extractvalue { ptr, i32 } %87, 0 - call void @__clang_call_terminate(ptr %88) #20 + %87 = extractvalue { ptr, i32 } %86, 0 + call void @__clang_call_terminate(ptr %87) #20 unreachable terminate.lpad.i.i: ; preds = %if.then2.i.i.i.i.i.i - %89 = landingpad { ptr, i32 } + %88 = landingpad { ptr, i32 } catch ptr null - %90 = extractvalue { ptr, i32 } %89, 0 - call void @__clang_call_terminate(ptr %90) #20 + %89 = extractvalue { ptr, i32 } %88, 0 + call void @__clang_call_terminate(ptr %89) #20 unreachable _ZN10ref_vectorI4expr11ast_managerED2Ev.exit: ; preds = %_ZN7obj_refI4expr11ast_managerED2Ev.exit, %invoke.cont8.i.i, %if.then.i.i.i.i.i @@ -7776,7 +7768,7 @@ _ZN10ref_vectorI4expr11ast_managerED2Ev.exit: ; preds = %_ZN7obj_refI4expr11 br label %cleanup208thread-pre-split ehcleanup: ; preds = %lpad102, %lpad98 - %.pn51 = phi { ptr, i32 } [ %74, %lpad102 ], [ %73, %lpad98 ] + %.pn51 = phi { ptr, i32 } [ %73, %lpad102 ], [ %72, %lpad98 ] call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %tmp2) #19 br label %ehcleanup118 @@ -7786,46 +7778,46 @@ ehcleanup118: ; preds = %lpad85.loopexit, %l br label %ehcleanup120 ehcleanup120: ; preds = %ehcleanup118, %lpad78 - %.pn53.pn = phi { ptr, i32 } [ %.pn53, %ehcleanup118 ], [ %58, %lpad78 ] + %.pn53.pn = phi { ptr, i32 } [ %.pn53, %ehcleanup118 ], [ %57, %lpad78 ] call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %_args) #19 call void @_ZN12rewriter_tplI16beta_reducer_cfgED2Ev(ptr noundef nonnull align 8 dereferenceable(536) %subst) #19 br label %ehcleanup209 invoke.cont125: ; preds = %invoke.cont49 - %91 = load i32, ptr %32, align 8 - %cmp.i.i.i.i.i188 = icmp eq i32 %91, %30 - %m_kind.i.i.i.i.i189 = getelementptr inbounds %class.decl_info, ptr %32, i64 0, i32 1 - %92 = load i32, ptr %m_kind.i.i.i.i.i189, align 4 - %cmp2.i.i.i.i.i190 = icmp eq i32 %92, 5 - %93 = select i1 %cmp.i.i.i.i.i188, i1 %cmp2.i.i.i.i.i190, i1 false - br i1 %93, label %if.then127, label %invoke.cont184 + %90 = load i32, ptr %30, align 8 + %cmp.i.i.i.i.i188 = icmp eq i32 %90, %.us-phi417 + %m_kind.i.i.i.i.i189 = getelementptr inbounds %class.decl_info, ptr %30, i64 0, i32 1 + %91 = load i32, ptr %m_kind.i.i.i.i.i189, align 4 + %cmp2.i.i.i.i.i190 = icmp eq i32 %91, 5 + %92 = select i1 %cmp.i.i.i.i.i188, i1 %cmp2.i.i.i.i.i190, i1 false + br i1 %92, label %if.then127, label %invoke.cont184 if.then127: ; preds = %invoke.cont125 %call3.i191 = invoke noundef ptr @_ZNK17array_recognizers17get_map_func_declEP9func_decl(ptr noundef nonnull align 4 dereferenceable(4) %this, ptr noundef nonnull %31) to label %invoke.cont135 unwind label %lpad.loopexit.split-lp378 invoke.cont135: ; preds = %if.then127 - %94 = load ptr, ptr %m_manager.i.i, align 8 - %95 = ptrtoint ptr %94 to i64 - store i64 %95, ptr %args0, align 8 + %93 = load ptr, ptr %m_manager.i.i, align 8 + %94 = ptrtoint ptr %93 to i64 + store i64 %94, ptr %args0, align 8 %m_nodes.i.i193 = getelementptr inbounds %class.ref_vector_core, ptr %args0, i64 0, i32 1 store ptr null, ptr %m_nodes.i.i193, align 8 - %m_num_args.i = getelementptr inbounds %class.app, ptr %.us-phi, i64 0, i32 2 - %96 = load i32, ptr %m_num_args.i, align 8 - %idx.ext.i = zext i32 %96 to i64 + %m_num_args.i = getelementptr inbounds %class.app, ptr %.us-phi416, i64 0, i32 2 + %95 = load i32, ptr %m_num_args.i, align 8 + %idx.ext.i = zext i32 %95 to i64 %add.ptr.i.idx = shl nuw nsw i64 %idx.ext.i, 3 %m_args.i194.add = add nuw nsw i64 %add.ptr.i.idx, 32 - %add.ptr.i.ptr = getelementptr inbounds i8, ptr %.us-phi, i64 %m_args.i194.add - %cmp142.not427 = icmp eq i32 %96, 0 - br i1 %cmp142.not427, label %invoke.cont165, label %if.then.i.lr.ph + %add.ptr.i.ptr = getelementptr inbounds i8, ptr %.us-phi416, i64 %m_args.i194.add + %cmp142.not440 = icmp eq i32 %95, 0 + br i1 %cmp142.not440, label %invoke.cont165, label %if.then.i.lr.ph if.then.i.lr.ph: ; preds = %invoke.cont135 - %m_args.i194.ptr = getelementptr inbounds i8, ptr %.us-phi, i64 32 + %m_args.i194.ptr = getelementptr inbounds i8, ptr %.us-phi416, i64 32 br label %if.then.i if.then.i: ; preds = %if.then.i.lr.ph, %_ZN10ptr_vectorI4exprED2Ev.exit - %__begin3.0428 = phi ptr [ %m_args.i194.ptr, %if.then.i.lr.ph ], [ %incdec.ptr, %_ZN10ptr_vectorI4exprED2Ev.exit ] - %97 = load ptr, ptr %__begin3.0428, align 8 + %__begin3.0441 = phi ptr [ %m_args.i194.ptr, %if.then.i.lr.ph ], [ %incdec.ptr, %_ZN10ptr_vectorI4exprED2Ev.exit ] + %96 = load ptr, ptr %__begin3.0441, align 8 store ptr null, ptr %args1, align 8 invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %args1) to label %invoke.cont146 unwind label %lpad145.loopexit.split-lp @@ -7836,27 +7828,27 @@ invoke.cont146: ; preds = %if.then.i %.pre1.i = load i32, ptr %arrayidx8.phi.trans.insert.i, align 4 %idx.ext.i199 = zext i32 %.pre1.i to i64 %add.ptr.i200 = getelementptr inbounds ptr, ptr %.pre.i, i64 %idx.ext.i199 - store ptr %97, ptr %add.ptr.i200, align 8 - %98 = load ptr, ptr %args1, align 8 - %arrayidx10.i = getelementptr inbounds i32, ptr %98, i64 -1 - %99 = load i32, ptr %arrayidx10.i, align 4 - %inc.i = add i32 %99, 1 + store ptr %96, ptr %add.ptr.i200, align 8 + %97 = load ptr, ptr %args1, align 8 + %arrayidx10.i = getelementptr inbounds i32, ptr %97, i64 -1 + %98 = load i32, ptr %arrayidx10.i, align 4 + %inc.i = add i32 %98, 1 store i32 %inc.i, ptr %arrayidx10.i, align 4 br i1 %cmp9.not.i, label %invoke.cont150, label %for.body.i204 for.body.i204: ; preds = %invoke.cont146, %_ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit.i %indvars.iv.i205 = phi i64 [ %indvars.iv.next.i216, %_ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit.i ], [ 0, %invoke.cont146 ] %arrayidx.i206 = getelementptr inbounds ptr, ptr %add.ptr, i64 %indvars.iv.i205 - %100 = load ptr, ptr %args1, align 8 - %cmp.i.i207 = icmp eq ptr %100, null + %99 = load ptr, ptr %args1, align 8 + %cmp.i.i207 = icmp eq ptr %99, null br i1 %cmp.i.i207, label %if.then.i.i218, label %lor.lhs.false.i.i208 lor.lhs.false.i.i208: ; preds = %for.body.i204 - %arrayidx.i.i209 = getelementptr inbounds i32, ptr %100, i64 -1 - %101 = load i32, ptr %arrayidx.i.i209, align 4 - %arrayidx4.i.i210 = getelementptr inbounds i32, ptr %100, i64 -2 - %102 = load i32, ptr %arrayidx4.i.i210, align 4 - %cmp5.i.i211 = icmp eq i32 %101, %102 + %arrayidx.i.i209 = getelementptr inbounds i32, ptr %99, i64 -1 + %100 = load i32, ptr %arrayidx.i.i209, align 4 + %arrayidx4.i.i210 = getelementptr inbounds i32, ptr %99, i64 -2 + %101 = load i32, ptr %arrayidx4.i.i210, align 4 + %cmp5.i.i211 = icmp eq i32 %100, %101 br i1 %cmp5.i.i211, label %if.then.i.i218, label %_ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit.i if.then.i.i218: ; preds = %lor.lhs.false.i.i208, %for.body.i204 @@ -7870,36 +7862,36 @@ if.then.i.i218: ; preds = %lor.lhs.false.i.i20 br label %_ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit.i _ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit.i: ; preds = %.noexc222, %lor.lhs.false.i.i208 - %103 = phi i32 [ %.pre1.i.i221, %.noexc222 ], [ %101, %lor.lhs.false.i.i208 ] - %104 = phi ptr [ %.pre.i.i219, %.noexc222 ], [ %100, %lor.lhs.false.i.i208 ] - %idx.ext.i.i212 = zext i32 %103 to i64 - %add.ptr.i.i213 = getelementptr inbounds ptr, ptr %104, i64 %idx.ext.i.i212 - %105 = load ptr, ptr %arrayidx.i206, align 8 - store ptr %105, ptr %add.ptr.i.i213, align 8 - %106 = load ptr, ptr %args1, align 8 - %arrayidx10.i.i214 = getelementptr inbounds i32, ptr %106, i64 -1 - %107 = load i32, ptr %arrayidx10.i.i214, align 4 - %inc.i.i215 = add i32 %107, 1 + %102 = phi i32 [ %.pre1.i.i221, %.noexc222 ], [ %100, %lor.lhs.false.i.i208 ] + %103 = phi ptr [ %.pre.i.i219, %.noexc222 ], [ %99, %lor.lhs.false.i.i208 ] + %idx.ext.i.i212 = zext i32 %102 to i64 + %add.ptr.i.i213 = getelementptr inbounds ptr, ptr %103, i64 %idx.ext.i.i212 + %104 = load ptr, ptr %arrayidx.i206, align 8 + store ptr %104, ptr %add.ptr.i.i213, align 8 + %105 = load ptr, ptr %args1, align 8 + %arrayidx10.i.i214 = getelementptr inbounds i32, ptr %105, i64 -1 + %106 = load i32, ptr %arrayidx10.i.i214, align 4 + %inc.i.i215 = add i32 %106, 1 store i32 %inc.i.i215, ptr %arrayidx10.i.i214, align 4 %indvars.iv.next.i216 = add nuw nsw i64 %indvars.iv.i205, 1 %exitcond.not.i217 = icmp eq i64 %indvars.iv.next.i216, %wide.trip.count.i br i1 %exitcond.not.i217, label %invoke.cont150, label %for.body.i204, !llvm.loop !15 invoke.cont150: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit.i, %invoke.cont146 - %108 = load ptr, ptr %args1, align 8 - %cmp.i223 = icmp eq ptr %108, null + %107 = load ptr, ptr %args1, align 8 + %cmp.i223 = icmp eq ptr %107, null br i1 %cmp.i223, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit, label %if.end.i224 if.end.i224: ; preds = %invoke.cont150 - %arrayidx.i225 = getelementptr inbounds i32, ptr %108, i64 -1 - %109 = load i32, ptr %arrayidx.i225, align 4 + %arrayidx.i225 = getelementptr inbounds i32, ptr %107, i64 -1 + %108 = load i32, ptr %arrayidx.i225, align 4 br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit _ZNK6vectorIP4exprLb0EjE4sizeEv.exit: ; preds = %invoke.cont150, %if.end.i224 - %retval.0.i226 = phi i32 [ %109, %if.end.i224 ], [ 0, %invoke.cont150 ] - %110 = load ptr, ptr %m_manager.i.i, align 8 - %111 = load i32, ptr %this, align 8 - %call.i228 = invoke noundef ptr @_ZN11ast_manager6mk_appEiijPK9parameterjPKP4exprP4sort(ptr noundef nonnull align 8 dereferenceable(976) %110, i32 noundef %111, i32 noundef 1, i32 noundef 0, ptr noundef null, i32 noundef %retval.0.i226, ptr noundef %108, ptr noundef null) + %retval.0.i226 = phi i32 [ %108, %if.end.i224 ], [ 0, %invoke.cont150 ] + %109 = load ptr, ptr %m_manager.i.i, align 8 + %110 = load i32, ptr %this, align 8 + %call.i228 = invoke noundef ptr @_ZN11ast_manager6mk_appEiijPK9parameterjPKP4exprP4sort(ptr noundef nonnull align 8 dereferenceable(976) %109, i32 noundef %110, i32 noundef 1, i32 noundef 0, ptr noundef null, i32 noundef %retval.0.i226, ptr noundef %107, ptr noundef null) to label %invoke.cont156 unwind label %lpad145.loopexit.split-lp invoke.cont156: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit @@ -7908,22 +7900,22 @@ invoke.cont156: ; preds = %_ZNK6vectorIP4exprL if.then.i.i.i.i230: ; preds = %invoke.cont156 %m_ref_count.i.i.i.i.i231 = getelementptr inbounds %class.ast, ptr %call.i228, i64 0, i32 2 - %112 = load i32, ptr %m_ref_count.i.i.i.i.i231, align 4 - %inc.i.i.i.i.i232 = add i32 %112, 1 + %111 = load i32, ptr %m_ref_count.i.i.i.i.i231, align 4 + %inc.i.i.i.i.i232 = add i32 %111, 1 store i32 %inc.i.i.i.i.i232, ptr %m_ref_count.i.i.i.i.i231, align 4 br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i233 _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i233: ; preds = %if.then.i.i.i.i230, %invoke.cont156 - %113 = load ptr, ptr %m_nodes.i.i193, align 8 - %cmp.i.i235 = icmp eq ptr %113, null + %112 = load ptr, ptr %m_nodes.i.i193, align 8 + %cmp.i.i235 = icmp eq ptr %112, null br i1 %cmp.i.i235, label %if.then.i.i245, label %lor.lhs.false.i.i236 lor.lhs.false.i.i236: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i233 - %arrayidx.i.i237 = getelementptr inbounds i32, ptr %113, i64 -1 - %114 = load i32, ptr %arrayidx.i.i237, align 4 - %arrayidx4.i.i238 = getelementptr inbounds i32, ptr %113, i64 -2 - %115 = load i32, ptr %arrayidx4.i.i238, align 4 - %cmp5.i.i239 = icmp eq i32 %114, %115 + %arrayidx.i.i237 = getelementptr inbounds i32, ptr %112, i64 -1 + %113 = load i32, ptr %arrayidx.i.i237, align 4 + %arrayidx4.i.i238 = getelementptr inbounds i32, ptr %112, i64 -2 + %114 = load i32, ptr %arrayidx4.i.i238, align 4 + %cmp5.i.i239 = icmp eq i32 %113, %114 br i1 %cmp5.i.i239, label %if.then.i.i245, label %invoke.cont158 if.then.i.i245: ; preds = %lor.lhs.false.i.i236, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i233 @@ -7937,39 +7929,39 @@ if.then.i.i245: ; preds = %lor.lhs.false.i.i23 br label %invoke.cont158 invoke.cont158: ; preds = %.noexc249, %lor.lhs.false.i.i236 - %116 = phi i32 [ %.pre1.i.i248, %.noexc249 ], [ %114, %lor.lhs.false.i.i236 ] - %117 = phi ptr [ %.pre.i.i246, %.noexc249 ], [ %113, %lor.lhs.false.i.i236 ] - %idx.ext.i.i241 = zext i32 %116 to i64 - %add.ptr.i.i242 = getelementptr inbounds ptr, ptr %117, i64 %idx.ext.i.i241 + %115 = phi i32 [ %.pre1.i.i248, %.noexc249 ], [ %113, %lor.lhs.false.i.i236 ] + %116 = phi ptr [ %.pre.i.i246, %.noexc249 ], [ %112, %lor.lhs.false.i.i236 ] + %idx.ext.i.i241 = zext i32 %115 to i64 + %add.ptr.i.i242 = getelementptr inbounds ptr, ptr %116, i64 %idx.ext.i.i241 store ptr %call.i228, ptr %add.ptr.i.i242, align 8 - %118 = load ptr, ptr %m_nodes.i.i193, align 8 - %arrayidx10.i.i243 = getelementptr inbounds i32, ptr %118, i64 -1 - %119 = load i32, ptr %arrayidx10.i.i243, align 4 - %inc.i.i244 = add i32 %119, 1 + %117 = load ptr, ptr %m_nodes.i.i193, align 8 + %arrayidx10.i.i243 = getelementptr inbounds i32, ptr %117, i64 -1 + %118 = load i32, ptr %arrayidx10.i.i243, align 4 + %inc.i.i244 = add i32 %118, 1 store i32 %inc.i.i244, ptr %arrayidx10.i.i243, align 4 - %120 = load ptr, ptr %args1, align 8 - %tobool.not.i.i.i251 = icmp eq ptr %120, null + %119 = load ptr, ptr %args1, align 8 + %tobool.not.i.i.i251 = icmp eq ptr %119, null br i1 %tobool.not.i.i.i251, label %_ZN10ptr_vectorI4exprED2Ev.exit, label %if.then.i.i.i252 if.then.i.i.i252: ; preds = %invoke.cont158 - %add.ptr.i.i.i.i = getelementptr inbounds i32, ptr %120, i64 -2 + %add.ptr.i.i.i.i = getelementptr inbounds i32, ptr %119, i64 -2 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i) to label %_ZN10ptr_vectorI4exprED2Ev.exit unwind label %terminate.lpad.i.i253 terminate.lpad.i.i253: ; preds = %if.then.i.i.i252 - %121 = landingpad { ptr, i32 } + %120 = landingpad { ptr, i32 } catch ptr null - %122 = extractvalue { ptr, i32 } %121, 0 - call void @__clang_call_terminate(ptr %122) #20 + %121 = extractvalue { ptr, i32 } %120, 0 + call void @__clang_call_terminate(ptr %121) #20 unreachable _ZN10ptr_vectorI4exprED2Ev.exit: ; preds = %invoke.cont158, %if.then.i.i.i252 - %incdec.ptr = getelementptr inbounds ptr, ptr %__begin3.0428, i64 1 + %incdec.ptr = getelementptr inbounds ptr, ptr %__begin3.0441, i64 1 %cmp142.not = icmp eq ptr %incdec.ptr, %add.ptr.i.ptr br i1 %cmp142.not, label %invoke.cont163, label %if.then.i lpad136: ; preds = %invoke.cont165 - %123 = landingpad { ptr, i32 } + %122 = landingpad { ptr, i32 } cleanup br label %ehcleanup181 @@ -7989,21 +7981,21 @@ lpad145: ; preds = %lpad145.loopexit.sp br label %ehcleanup181 invoke.cont163: ; preds = %_ZN10ptr_vectorI4exprED2Ev.exit - %.pre446 = load ptr, ptr %m_manager.i.i, align 8 - %.pre447 = load ptr, ptr %m_nodes.i.i193, align 8 - %cmp.i.i256 = icmp eq ptr %.pre447, null + %.pre469 = load ptr, ptr %m_manager.i.i, align 8 + %.pre470 = load ptr, ptr %m_nodes.i.i193, align 8 + %cmp.i.i256 = icmp eq ptr %.pre470, null br i1 %cmp.i.i256, label %invoke.cont165, label %if.end.i.i257 if.end.i.i257: ; preds = %invoke.cont163 - %arrayidx.i.i258 = getelementptr inbounds i32, ptr %.pre447, i64 -1 - %124 = load i32, ptr %arrayidx.i.i258, align 4 + %arrayidx.i.i258 = getelementptr inbounds i32, ptr %.pre470, i64 -1 + %123 = load i32, ptr %arrayidx.i.i258, align 4 br label %invoke.cont165 invoke.cont165: ; preds = %invoke.cont135, %if.end.i.i257, %invoke.cont163 - %125 = phi ptr [ %.pre446, %if.end.i.i257 ], [ %.pre446, %invoke.cont163 ], [ %94, %invoke.cont135 ] - %126 = phi ptr [ %.pre447, %if.end.i.i257 ], [ null, %invoke.cont163 ], [ null, %invoke.cont135 ] - %retval.0.i.i259 = phi i32 [ %124, %if.end.i.i257 ], [ 0, %invoke.cont163 ], [ 0, %invoke.cont135 ] - %call170 = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %125, ptr noundef %call3.i191, i32 noundef %retval.0.i.i259, ptr noundef %126) + %124 = phi ptr [ %.pre469, %if.end.i.i257 ], [ %.pre469, %invoke.cont163 ], [ %93, %invoke.cont135 ] + %125 = phi ptr [ %.pre470, %if.end.i.i257 ], [ null, %invoke.cont163 ], [ null, %invoke.cont135 ] + %retval.0.i.i259 = phi i32 [ %123, %if.end.i.i257 ], [ 0, %invoke.cont163 ], [ 0, %invoke.cont135 ] + %call170 = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %124, ptr noundef %call3.i191, i32 noundef %retval.0.i.i259, ptr noundef %125) to label %invoke.cont169 unwind label %lpad136 invoke.cont169: ; preds = %invoke.cont165 @@ -8012,46 +8004,46 @@ invoke.cont169: ; preds = %invoke.cont165 _ZN11ast_manager7inc_refEP3ast.exit.i263: ; preds = %invoke.cont169 %m_ref_count.i.i.i264 = getelementptr inbounds %class.ast, ptr %call170, i64 0, i32 2 - %127 = load i32, ptr %m_ref_count.i.i.i264, align 4 - %inc.i.i.i265 = add i32 %127, 1 + %126 = load i32, ptr %m_ref_count.i.i.i264, align 4 + %inc.i.i.i265 = add i32 %126, 1 store i32 %inc.i.i.i265, ptr %m_ref_count.i.i.i264, align 4 br label %invoke.cont171 invoke.cont171: ; preds = %invoke.cont169, %_ZN11ast_manager7inc_refEP3ast.exit.i263 store ptr %call170, ptr %tmp, align 8 - %128 = and i8 %.us-phi407, 1 - %tobool173.not = icmp eq i8 %128, 0 - %129 = load ptr, ptr %result, align 8 + %127 = and i8 %.us-phi415, 1 + %tobool173.not = icmp eq i8 %127, 0 + %128 = load ptr, ptr %result, align 8 br i1 %tobool173.not, label %invoke.cont175, label %if.then177 invoke.cont175: ; preds = %invoke.cont171 - %cmp.i276 = icmp eq ptr %call170, %129 + %cmp.i276 = icmp eq ptr %call170, %128 br i1 %cmp.i276, label %if.then177, label %cleanup180 if.then177: ; preds = %invoke.cont171, %invoke.cont175 - %130 = phi ptr [ %call170, %invoke.cont175 ], [ %129, %invoke.cont171 ] + %129 = phi ptr [ %call170, %invoke.cont175 ], [ %128, %invoke.cont171 ] store ptr %call170, ptr %result, align 8 - store ptr %130, ptr %tmp, align 8 - %tobool.not.i.i.i277 = icmp eq ptr %130, null + store ptr %129, ptr %tmp, align 8 + %tobool.not.i.i.i277 = icmp eq ptr %129, null br i1 %tobool.not.i.i.i277, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit285, label %if.then.i.i.i.i278 if.then.i.i.i.i278: ; preds = %if.then177 - %m_ref_count.i.i.i.i.i280 = getelementptr inbounds %class.ast, ptr %130, i64 0, i32 2 - %131 = load i32, ptr %m_ref_count.i.i.i.i.i280, align 4 - %dec.i.i.i.i.i281 = add i32 %131, -1 + %m_ref_count.i.i.i.i.i280 = getelementptr inbounds %class.ast, ptr %129, i64 0, i32 2 + %130 = load i32, ptr %m_ref_count.i.i.i.i.i280, align 4 + %dec.i.i.i.i.i281 = add i32 %130, -1 store i32 %dec.i.i.i.i.i281, ptr %m_ref_count.i.i.i.i.i280, align 4 %cmp.i.i.i.i282 = icmp eq i32 %dec.i.i.i.i.i281, 0 br i1 %cmp.i.i.i.i282, label %if.then2.i.i.i.i283, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit285 if.then2.i.i.i.i283: ; preds = %if.then.i.i.i.i278 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %130) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %129) to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit285 unwind label %terminate.lpad.i284 terminate.lpad.i284: ; preds = %if.then2.i.i.i.i283 - %132 = landingpad { ptr, i32 } + %131 = landingpad { ptr, i32 } catch ptr null - %133 = extractvalue { ptr, i32 } %132, 0 - call void @__clang_call_terminate(ptr %133) #20 + %132 = extractvalue { ptr, i32 } %131, 0 + call void @__clang_call_terminate(ptr %132) #20 unreachable _ZN7obj_refI4expr11ast_managerEaSEOS2_.exit285: ; preds = %if.then177, %if.then.i.i.i.i278, %if.then2.i.i.i.i283 @@ -8060,35 +8052,35 @@ _ZN7obj_refI4expr11ast_managerEaSEOS2_.exit285: ; preds = %if.then177, %if.the cleanup180: ; preds = %invoke.cont175, %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit285 %retval.1 = phi i32 [ 1, %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit285 ], [ 5, %invoke.cont175 ] - %134 = load ptr, ptr %m_nodes.i.i193, align 8 - %cmp.i.i.i287 = icmp eq ptr %134, null + %133 = load ptr, ptr %m_nodes.i.i193, align 8 + %cmp.i.i.i287 = icmp eq ptr %133, null br i1 %cmp.i.i.i287, label %cleanup208thread-pre-split, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288 _ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288: ; preds = %cleanup180 - %arrayidx.i.i.i289 = getelementptr inbounds i32, ptr %134, i64 -1 - %135 = load i32, ptr %arrayidx.i.i.i289, align 4 - %136 = zext i32 %135 to i64 - %add.ptr.i.i290 = getelementptr inbounds ptr, ptr %134, i64 %136 - %cmp3.i.not.i.i291 = icmp eq i32 %135, 0 + %arrayidx.i.i.i289 = getelementptr inbounds i32, ptr %133, i64 -1 + %134 = load i32, ptr %arrayidx.i.i.i289, align 4 + %135 = zext i32 %134 to i64 + %add.ptr.i.i290 = getelementptr inbounds ptr, ptr %133, i64 %135 + %cmp3.i.not.i.i291 = icmp eq i32 %134, 0 br i1 %cmp3.i.not.i.i291, label %if.then.i.i.i.i.i305, label %for.body.i.i.i292 for.body.i.i.i292: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i299 - %it.04.i.i.i293 = phi ptr [ %incdec.ptr.i.i.i300, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i299 ], [ %134, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288 ] - %137 = load ptr, ptr %it.04.i.i.i293, align 8 - %138 = load ptr, ptr %args0, align 8 - %tobool.not.i.i.i.i.i.i294 = icmp eq ptr %137, null + %it.04.i.i.i293 = phi ptr [ %incdec.ptr.i.i.i300, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i299 ], [ %133, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288 ] + %136 = load ptr, ptr %it.04.i.i.i293, align 8 + %137 = load ptr, ptr %args0, align 8 + %tobool.not.i.i.i.i.i.i294 = icmp eq ptr %136, null br i1 %tobool.not.i.i.i.i.i.i294, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i299, label %if.then.i.i.i.i.i.i295 if.then.i.i.i.i.i.i295: ; preds = %for.body.i.i.i292 - %m_ref_count.i.i.i.i.i.i.i296 = getelementptr inbounds %class.ast, ptr %137, i64 0, i32 2 - %139 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i296, align 4 - %dec.i.i.i.i.i.i.i297 = add i32 %139, -1 + %m_ref_count.i.i.i.i.i.i.i296 = getelementptr inbounds %class.ast, ptr %136, i64 0, i32 2 + %138 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i296, align 4 + %dec.i.i.i.i.i.i.i297 = add i32 %138, -1 store i32 %dec.i.i.i.i.i.i.i297, ptr %m_ref_count.i.i.i.i.i.i.i296, align 4 %cmp.i.i.i.i.i.i298 = icmp eq i32 %dec.i.i.i.i.i.i.i297, 0 br i1 %cmp.i.i.i.i.i.i298, label %if.then2.i.i.i.i.i.i308, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i299 if.then2.i.i.i.i.i.i308: ; preds = %if.then.i.i.i.i.i.i295 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %138, ptr noundef nonnull %137) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %137, ptr noundef nonnull %136) to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i299 unwind label %terminate.lpad.i.i309 _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i299: ; preds = %if.then2.i.i.i.i.i.i308, %if.then.i.i.i.i.i.i295, %for.body.i.i.i292 @@ -8102,46 +8094,46 @@ invoke.cont8.i.i302: ; preds = %_ZN15ref_vector_cor br i1 %tobool.not.i.i.i.i.i304, label %cleanup208thread-pre-split, label %if.then.i.i.i.i.i305 if.then.i.i.i.i.i305: ; preds = %invoke.cont8.i.i302, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288 - %140 = phi ptr [ %.pre.i.i303, %invoke.cont8.i.i302 ], [ %134, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288 ] - %add.ptr.i.i.i.i.i.i306 = getelementptr inbounds i32, ptr %140, i64 -2 + %139 = phi ptr [ %.pre.i.i303, %invoke.cont8.i.i302 ], [ %133, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i288 ] + %add.ptr.i.i.i.i.i.i306 = getelementptr inbounds i32, ptr %139, i64 -2 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i306) to label %cleanup208thread-pre-split unwind label %terminate.lpad.i.i.i.i307 terminate.lpad.i.i.i.i307: ; preds = %if.then.i.i.i.i.i305 - %141 = landingpad { ptr, i32 } + %140 = landingpad { ptr, i32 } catch ptr null - %142 = extractvalue { ptr, i32 } %141, 0 - call void @__clang_call_terminate(ptr %142) #20 + %141 = extractvalue { ptr, i32 } %140, 0 + call void @__clang_call_terminate(ptr %141) #20 unreachable terminate.lpad.i.i309: ; preds = %if.then2.i.i.i.i.i.i308 - %143 = landingpad { ptr, i32 } + %142 = landingpad { ptr, i32 } catch ptr null - %144 = extractvalue { ptr, i32 } %143, 0 - call void @__clang_call_terminate(ptr %144) #20 + %143 = extractvalue { ptr, i32 } %142, 0 + call void @__clang_call_terminate(ptr %143) #20 unreachable ehcleanup181: ; preds = %lpad145, %lpad136 - %.pn = phi { ptr, i32 } [ %lpad.phi, %lpad145 ], [ %123, %lpad136 ] + %.pn = phi { ptr, i32 } [ %lpad.phi, %lpad145 ], [ %122, %lpad136 ] call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %args0) #19 br label %ehcleanup209 invoke.cont184: ; preds = %invoke.cont125 - %145 = load i32, ptr %32, align 8 - %cmp.i.i.i.i.i320 = icmp eq i32 %145, %30 - %m_kind.i.i.i.i.i321 = getelementptr inbounds %class.decl_info, ptr %32, i64 0, i32 1 - %146 = load i32, ptr %m_kind.i.i.i.i.i321, align 4 - %cmp2.i.i.i.i.i322 = icmp eq i32 %146, 13 - %147 = select i1 %cmp.i.i.i.i.i320, i1 %cmp2.i.i.i.i.i322, i1 false - br i1 %147, label %if.then186, label %cleanup208thread-pre-split + %144 = load i32, ptr %30, align 8 + %cmp.i.i.i.i.i320 = icmp eq i32 %144, %.us-phi417 + %m_kind.i.i.i.i.i321 = getelementptr inbounds %class.decl_info, ptr %30, i64 0, i32 1 + %145 = load i32, ptr %m_kind.i.i.i.i.i321, align 4 + %cmp2.i.i.i.i.i322 = icmp eq i32 %145, 13 + %146 = select i1 %cmp.i.i.i.i.i320, i1 %cmp2.i.i.i.i.i322, i1 false + br i1 %146, label %if.then186, label %cleanup208thread-pre-split if.then186: ; preds = %invoke.cont184 - %call191 = invoke noundef ptr @_ZNK17array_recognizers22get_as_array_func_declEP4expr(ptr noundef nonnull align 4 dereferenceable(4) %this, ptr noundef nonnull %.us-phi) + %call191 = invoke noundef ptr @_ZNK17array_recognizers22get_as_array_func_declEP4expr(ptr noundef nonnull align 4 dereferenceable(4) %this, ptr noundef nonnull %.us-phi416) to label %invoke.cont192 unwind label %lpad.loopexit.split-lp378 invoke.cont192: ; preds = %if.then186 - %148 = load ptr, ptr %m_manager.i.i, align 8 - %call197 = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %148, ptr noundef %call191, i32 noundef %sub, ptr noundef nonnull %add.ptr) + %147 = load ptr, ptr %m_manager.i.i, align 8 + %call197 = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %147, ptr noundef %call191, i32 noundef %sub, ptr noundef nonnull %add.ptr) to label %invoke.cont196 unwind label %lpad.loopexit.split-lp378 invoke.cont196: ; preds = %invoke.cont192 @@ -8150,81 +8142,81 @@ invoke.cont196: ; preds = %invoke.cont192 _ZN11ast_manager7inc_refEP3ast.exit.i325: ; preds = %invoke.cont196 %m_ref_count.i.i.i326 = getelementptr inbounds %class.ast, ptr %call197, i64 0, i32 2 - %149 = load i32, ptr %m_ref_count.i.i.i326, align 4 - %inc.i.i.i327 = add i32 %149, 1 + %148 = load i32, ptr %m_ref_count.i.i.i326, align 4 + %inc.i.i.i327 = add i32 %148, 1 store i32 %inc.i.i.i327, ptr %m_ref_count.i.i.i326, align 4 br label %invoke.cont198 invoke.cont198: ; preds = %invoke.cont196, %_ZN11ast_manager7inc_refEP3ast.exit.i325 store ptr %call197, ptr %tmp, align 8 - %150 = and i8 %.us-phi407, 1 - %tobool200.not = icmp eq i8 %150, 0 - %151 = load ptr, ptr %result, align 8 + %149 = and i8 %.us-phi415, 1 + %tobool200.not = icmp eq i8 %149, 0 + %150 = load ptr, ptr %result, align 8 br i1 %tobool200.not, label %invoke.cont202, label %if.then204 invoke.cont202: ; preds = %invoke.cont198 - %cmp.i338 = icmp eq ptr %call197, %151 + %cmp.i338 = icmp eq ptr %call197, %150 br i1 %cmp.i338, label %if.then204, label %cleanup208thread-pre-split if.then204: ; preds = %invoke.cont198, %invoke.cont202 - %152 = phi ptr [ %call197, %invoke.cont202 ], [ %151, %invoke.cont198 ] + %151 = phi ptr [ %call197, %invoke.cont202 ], [ %150, %invoke.cont198 ] store ptr %call197, ptr %result, align 8 - %tobool.not.i.i.i339 = icmp eq ptr %152, null + %tobool.not.i.i.i339 = icmp eq ptr %151, null br i1 %tobool.not.i.i.i339, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356, label %if.then.i.i.i.i340 if.then.i.i.i.i340: ; preds = %if.then204 - %m_ref_count.i.i.i.i.i342 = getelementptr inbounds %class.ast, ptr %152, i64 0, i32 2 - %153 = load i32, ptr %m_ref_count.i.i.i.i.i342, align 4 - %dec.i.i.i.i.i343 = add i32 %153, -1 + %m_ref_count.i.i.i.i.i342 = getelementptr inbounds %class.ast, ptr %151, i64 0, i32 2 + %152 = load i32, ptr %m_ref_count.i.i.i.i.i342, align 4 + %dec.i.i.i.i.i343 = add i32 %152, -1 store i32 %dec.i.i.i.i.i343, ptr %m_ref_count.i.i.i.i.i342, align 4 %cmp.i.i.i.i344 = icmp eq i32 %dec.i.i.i.i.i343, 0 br i1 %cmp.i.i.i.i344, label %if.then2.i.i.i.i345, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356 if.then2.i.i.i.i345: ; preds = %if.then.i.i.i.i340 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %152) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %0, ptr noundef nonnull %151) to label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356 unwind label %terminate.lpad.i346 terminate.lpad.i346: ; preds = %if.then2.i.i.i.i345 - %154 = landingpad { ptr, i32 } + %153 = landingpad { ptr, i32 } catch ptr null - %155 = extractvalue { ptr, i32 } %154, 0 - tail call void @__clang_call_terminate(ptr %155) #20 + %154 = extractvalue { ptr, i32 } %153, 0 + tail call void @__clang_call_terminate(ptr %154) #20 unreachable -cleanup208thread-pre-split: ; preds = %if.else, %land.rhs.i.i88, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, %invoke.cont60, %invoke.cont202, %invoke.cont184, %cleanup180, %invoke.cont8.i.i302, %if.then.i.i.i.i.i305, %invoke.cont66, %if.end47 - %retval.2.ph.ph = phi i32 [ 5, %if.end47 ], [ 5, %invoke.cont66 ], [ %retval.0, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit ], [ 5, %invoke.cont60 ], [ 5, %invoke.cont202 ], [ 5, %invoke.cont184 ], [ %retval.1, %cleanup180 ], [ %retval.1, %invoke.cont8.i.i302 ], [ %retval.1, %if.then.i.i.i.i.i305 ], [ 5, %land.rhs.i.i88 ], [ 5, %if.else ] - %.pr367.pr = load ptr, ptr %tmp, align 8 +cleanup208thread-pre-split: ; preds = %if.else, %land.rhs.i.i, %while.cond, %land.rhs.i.i.us, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, %invoke.cont60, %invoke.cont202, %invoke.cont184, %cleanup180, %invoke.cont8.i.i302, %if.then.i.i.i.i.i305, %invoke.cont66, %while.cond.us + %retval.2.ph.ph = phi i32 [ 5, %while.cond.us ], [ 5, %invoke.cont66 ], [ %retval.0, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit ], [ 5, %invoke.cont60 ], [ 5, %invoke.cont202 ], [ 5, %invoke.cont184 ], [ %retval.1, %cleanup180 ], [ %retval.1, %invoke.cont8.i.i302 ], [ %retval.1, %if.then.i.i.i.i.i305 ], [ 5, %land.rhs.i.i.us ], [ 5, %while.cond ], [ 5, %land.rhs.i.i ], [ 5, %if.else ] + %.pr368.pr = load ptr, ptr %tmp, align 8 br label %cleanup208 cleanup208: ; preds = %cleanup208thread-pre-split, %invoke.cont16 - %.pr367 = phi ptr [ %.pr367.pr, %cleanup208thread-pre-split ], [ %16, %invoke.cont16 ] + %.pr368 = phi ptr [ %.pr368.pr, %cleanup208thread-pre-split ], [ %16, %invoke.cont16 ] %retval.2.ph = phi i32 [ %retval.2.ph.ph, %cleanup208thread-pre-split ], [ 5, %invoke.cont16 ] - %tobool.not.i.i348 = icmp eq ptr %.pr367, null + %tobool.not.i.i348 = icmp eq ptr %.pr368, null br i1 %tobool.not.i.i348, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356, label %if.then.i.i.i349 if.then.i.i.i349: ; preds = %cleanup208 - %156 = load ptr, ptr %m_manager.i, align 8 - %m_ref_count.i.i.i.i351 = getelementptr inbounds %class.ast, ptr %.pr367, i64 0, i32 2 - %157 = load i32, ptr %m_ref_count.i.i.i.i351, align 4 - %dec.i.i.i.i352 = add i32 %157, -1 + %155 = load ptr, ptr %m_manager.i, align 8 + %m_ref_count.i.i.i.i351 = getelementptr inbounds %class.ast, ptr %.pr368, i64 0, i32 2 + %156 = load i32, ptr %m_ref_count.i.i.i.i351, align 4 + %dec.i.i.i.i352 = add i32 %156, -1 store i32 %dec.i.i.i.i352, ptr %m_ref_count.i.i.i.i351, align 4 %cmp.i.i.i353 = icmp eq i32 %dec.i.i.i.i352, 0 br i1 %cmp.i.i.i353, label %if.then2.i.i.i354, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356 if.then2.i.i.i354: ; preds = %if.then.i.i.i349 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %156, ptr noundef nonnull %.pr367) + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %155, ptr noundef nonnull %.pr368) to label %_ZN7obj_refI4expr11ast_managerED2Ev.exit356 unwind label %terminate.lpad.i355 terminate.lpad.i355: ; preds = %if.then2.i.i.i354 - %158 = landingpad { ptr, i32 } + %157 = landingpad { ptr, i32 } catch ptr null - %159 = extractvalue { ptr, i32 } %158, 0 - call void @__clang_call_terminate(ptr %159) #20 + %158 = extractvalue { ptr, i32 } %157, 0 + call void @__clang_call_terminate(ptr %158) #20 unreachable _ZN7obj_refI4expr11ast_managerED2Ev.exit356: ; preds = %if.then2.i.i.i.i345, %if.then.i.i.i.i340, %if.then204, %if.then2.i.i.i.i118, %if.then.i.i.i.i113, %if.then62, %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.then18, %cleanup208, %if.then.i.i.i349, %if.then2.i.i.i354 - %retval.2371 = phi i32 [ %retval.2.ph, %cleanup208 ], [ %retval.2.ph, %if.then.i.i.i349 ], [ %retval.2.ph, %if.then2.i.i.i354 ], [ 4, %if.then18 ], [ 4, %if.then.i.i.i.i ], [ 4, %if.then2.i.i.i.i ], [ 4, %if.then62 ], [ 4, %if.then.i.i.i.i113 ], [ 4, %if.then2.i.i.i.i118 ], [ 0, %if.then204 ], [ 0, %if.then.i.i.i.i340 ], [ 0, %if.then2.i.i.i.i345 ] - ret i32 %retval.2371 + %retval.2372 = phi i32 [ %retval.2.ph, %cleanup208 ], [ %retval.2.ph, %if.then.i.i.i349 ], [ %retval.2.ph, %if.then2.i.i.i354 ], [ 4, %if.then18 ], [ 4, %if.then.i.i.i.i ], [ 4, %if.then2.i.i.i.i ], [ 4, %if.then62 ], [ 4, %if.then.i.i.i.i113 ], [ 4, %if.then2.i.i.i.i118 ], [ 0, %if.then204 ], [ 0, %if.then.i.i.i.i340 ], [ 0, %if.then2.i.i.i.i345 ] + ret i32 %retval.2372 ehcleanup209: ; preds = %lpad.loopexit.split-lp378, %lpad.loopexit377.loopexit.split-lp, %lpad.loopexit377.loopexit, %ehcleanup181, %ehcleanup120 %.pn57 = phi { ptr, i32 } [ %.pn53.pn, %ehcleanup120 ], [ %.pn, %ehcleanup181 ], [ %lpad.loopexit.split-lp380, %lpad.loopexit.split-lp378 ], [ %lpad.loopexit382, %lpad.loopexit377.loopexit ], [ %lpad.loopexit.split-lp383, %lpad.loopexit377.loopexit.split-lp ] diff --git a/bench/z3/optimized/doc.cpp.ll b/bench/z3/optimized/doc.cpp.ll index d78858706a0..fca3a16cc37 100644 --- a/bench/z3/optimized/doc.cpp.ll +++ b/bench/z3/optimized/doc.cpp.ll @@ -1934,7 +1934,7 @@ do.body: ; preds = %do.body.preheader, %6 = lshr i32 %5, %rem.i.i6.i.i.i %conv3.i.i.i = and i32 %6, 1 %or.i.i.i = or disjoint i32 %shl.i.i.i, %conv3.i.i.i - switch i32 %or.i.i.i, label %do.body.unreachabledefault [ + switch i32 %or.i.i.i, label %default.unreachable [ i32 1, label %sw.bb i32 2, label %sw.bb3 i32 3, label %sw.bb7 @@ -1962,7 +1962,7 @@ sw.bb7: ; preds = %do.body %spec.select = select i1 %cmp.i58.not, i32 %idx.addr.0, i32 %root1.0 br label %sw.epilog -do.body.unreachabledefault: ; preds = %do.body +default.unreachable: ; preds = %do.body unreachable sw.default: ; preds = %do.body @@ -2305,12 +2305,12 @@ lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = br label %ehcleanup214 lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit: ; preds = %for.end66, %while.body - %lpad.loopexit518 = landingpad { ptr, i32 } + %lpad.loopexit519 = landingpad { ptr, i32 } cleanup br label %ehcleanup214 lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %if.end.i.i.i.i.i361, %if.then.i.i342, %if.end.i.i.i.i.i, %if.then.i.i, %sw.bb - %lpad.loopexit.split-lp519 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp520 = landingpad { ptr, i32 } cleanup br label %ehcleanup214 @@ -2319,9 +2319,9 @@ lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.l cleanup br label %ehcleanup214 -for.cond202.preheader: ; preds = %sw.epilog200, %for.inc197, %sw.epilog200.thread509 - %14 = phi ptr [ null, %sw.epilog200.thread509 ], [ %125, %for.inc197 ], [ null, %sw.epilog200 ] - %15 = phi i32 [ %.pr512, %sw.epilog200.thread509 ], [ %126, %for.inc197 ], [ %.pr, %sw.epilog200 ] +for.cond202.preheader: ; preds = %sw.epilog200, %for.inc197, %sw.epilog200.thread510 + %14 = phi ptr [ null, %sw.epilog200.thread510 ], [ %125, %for.inc197 ], [ null, %sw.epilog200 ] + %15 = phi i32 [ %.pr513, %sw.epilog200.thread510 ], [ %126, %for.inc197 ], [ %.pr, %sw.epilog200 ] %16 = icmp eq i32 %15, 0 br i1 %16, label %for.end213, label %for.body206 @@ -2331,9 +2331,9 @@ while.body: ; preds = %while.body.lr.ph, % to label %invoke.cont32 unwind label %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit, !range !27 invoke.cont32: ; preds = %while.body - switch i32 %call33, label %sw.epilog200 [ + switch i32 %call33, label %default.unreachable498 [ i32 0, label %sw.bb - i32 2, label %sw.epilog200.thread509 + i32 2, label %sw.epilog200.thread510 i32 3, label %sw.bb46 i32 4, label %sw.bb46 i32 5, label %sw.bb69 @@ -2359,7 +2359,7 @@ invoke.cont38: ; preds = %sw.bb entry.if.end_crit_edge.i.i: ; preds = %invoke.cont38 %.pre.i.i71 = load ptr, ptr %m_neg.i.i, align 8 - br label %sw.epilog200.thread509.sink.split + br label %sw.epilog200.thread510.sink.split if.then.i.i: ; preds = %invoke.cont38 %shl.i.i.i = shl i32 %21, 1 @@ -2406,7 +2406,7 @@ _ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i: ; preds = %.noexc73, %for.end. %.pre1.i.i = phi i32 [ %22, %for.end.i.i.i ], [ %.pre1.pre.i.i, %.noexc73 ] store ptr %call.i.i.i72, ptr %m_neg.i.i, align 8 store i32 %shl.i.i.i, ptr %m_capacity.i.i.i.i, align 4 - br label %sw.epilog200.thread509.sink.split + br label %sw.epilog200.thread510.sink.split sw.bb46: ; preds = %invoke.cont32, %invoke.cont32 %24 = load i32, ptr %m_pos.i, align 8 @@ -2753,9 +2753,6 @@ _ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i227: ; preds = %.noexc236, %for.end store i32 %shl.i.i.i207, ptr %m_capacity.i.i114, align 4 br label %for.inc90 -invoke.cont80.unreachabledefault: ; preds = %invoke.cont80 - unreachable - sw.default: ; preds = %invoke.cont80 invoke void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef nonnull @.str.2) to label %invoke.cont89 unwind label %lpad72.loopexit.split-lp @@ -2765,15 +2762,15 @@ invoke.cont89: ; preds = %sw.default unreachable for.inc90: ; preds = %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i227, %entry.if.end_crit_edge.i.i232, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i192, %entry.if.end_crit_edge.i.i197, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i157, %entry.if.end_crit_edge.i162 - %.sink528 = phi i32 [ %45, %entry.if.end_crit_edge.i162 ], [ %.pre1.i158, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i157 ], [ %49, %entry.if.end_crit_edge.i.i197 ], [ %.pre1.i.i193, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i192 ], [ %53, %entry.if.end_crit_edge.i.i232 ], [ %.pre1.i.i228, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i227 ] + %.sink530 = phi i32 [ %45, %entry.if.end_crit_edge.i162 ], [ %.pre1.i158, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i157 ], [ %49, %entry.if.end_crit_edge.i.i197 ], [ %.pre1.i.i193, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i192 ], [ %53, %entry.if.end_crit_edge.i.i232 ], [ %.pre1.i.i228, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i227 ] %.sink = phi ptr [ %.pre.i163, %entry.if.end_crit_edge.i162 ], [ %call.i.i165, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i157 ], [ %.pre.i.i198, %entry.if.end_crit_edge.i.i197 ], [ %call.i.i.i200, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i192 ], [ %.pre.i.i233, %entry.if.end_crit_edge.i.i232 ], [ %call.i.i.i235, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i227 ] - %m_pos.i.i113.sink527 = phi ptr [ %m_pos.i50, %entry.if.end_crit_edge.i162 ], [ %m_pos.i50, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i157 ], [ %m_pos.i.i116, %entry.if.end_crit_edge.i.i197 ], [ %m_pos.i.i116, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i192 ], [ %m_pos.i.i113, %entry.if.end_crit_edge.i.i232 ], [ %m_pos.i.i113, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i227 ] - %idx.ext.i.i229 = zext i32 %.sink528 to i64 + %m_pos.i.i113.sink529 = phi ptr [ %m_pos.i50, %entry.if.end_crit_edge.i162 ], [ %m_pos.i50, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i157 ], [ %m_pos.i.i116, %entry.if.end_crit_edge.i.i197 ], [ %m_pos.i.i116, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i192 ], [ %m_pos.i.i113, %entry.if.end_crit_edge.i.i232 ], [ %m_pos.i.i113, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i227 ] + %idx.ext.i.i229 = zext i32 %.sink530 to i64 %add.ptr.i.i230 = getelementptr inbounds ptr, ptr %.sink, i64 %idx.ext.i.i229 store ptr %42, ptr %add.ptr.i.i230, align 8 - %57 = load i32, ptr %m_pos.i.i113.sink527, align 8 + %57 = load i32, ptr %m_pos.i.i113.sink529, align 8 %inc.i.i231 = add i32 %57, 1 - store i32 %inc.i.i231, ptr %m_pos.i.i113.sink527, align 8 + store i32 %inc.i.i231, ptr %m_pos.i.i113.sink529, align 8 %indvars.iv.next481 = add nuw nsw i64 %indvars.iv480, 1 %58 = load i32, ptr %m_pos.i, align 8 %59 = zext i32 %58 to i64 @@ -3113,7 +3110,7 @@ invoke.cont170: ; preds = %.noexc335, %if.then entry.if.end_crit_edge.i.i368: ; preds = %invoke.cont170 %.pre.i.i369 = load ptr, ptr %m_neg.i.i, align 8 - br label %sw.epilog200.thread509.sink.split + br label %sw.epilog200.thread510.sink.split if.then.i.i342: ; preds = %invoke.cont170 %call.i.i.i371 = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 0) @@ -3157,7 +3154,7 @@ _ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363: ; preds = %.noexc372, %for.end %.pre1.i.i364 = phi i32 [ %114, %for.end.i.i.i356 ], [ %.pre1.pre.i.i362, %.noexc372 ] store ptr %call.i.i.i371, ptr %m_neg.i.i, align 8 store i32 0, ptr %m_capacity.i.i.i.i, align 4 - br label %sw.epilog200.thread509.sink.split + br label %sw.epilog200.thread510.sink.split invoke.cont179: ; preds = %invoke.cont165 br i1 %cmp4.not.i329, label %if.end191, label %invoke.cont184 @@ -3252,23 +3249,29 @@ for.inc197: ; preds = %_ZN10union_bvecI11t %cmp153 = icmp ult i64 %indvars.iv.next478, %127 br i1 %cmp153, label %for.body154, label %for.cond202.preheader, !llvm.loop !32 -sw.epilog200.thread509.sink.split: ; preds = %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363, %entry.if.end_crit_edge.i.i368, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i, %entry.if.end_crit_edge.i.i - %.sink531 = phi i32 [ %20, %entry.if.end_crit_edge.i.i ], [ %.pre1.i.i, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i ], [ 0, %entry.if.end_crit_edge.i.i368 ], [ %.pre1.i.i364, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363 ] - %.sink530 = phi ptr [ %.pre.i.i71, %entry.if.end_crit_edge.i.i ], [ %call.i.i.i72, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i ], [ %.pre.i.i369, %entry.if.end_crit_edge.i.i368 ], [ %call.i.i.i371, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363 ] +invoke.cont80.unreachabledefault: ; preds = %invoke.cont80 + unreachable + +default.unreachable498: ; preds = %invoke.cont32 + unreachable + +sw.epilog200.thread510.sink.split: ; preds = %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363, %entry.if.end_crit_edge.i.i368, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i, %entry.if.end_crit_edge.i.i + %.sink533 = phi i32 [ %20, %entry.if.end_crit_edge.i.i ], [ %.pre1.i.i, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i ], [ 0, %entry.if.end_crit_edge.i.i368 ], [ %.pre1.i.i364, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363 ] + %.sink532 = phi ptr [ %.pre.i.i71, %entry.if.end_crit_edge.i.i ], [ %call.i.i.i72, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i ], [ %.pre.i.i369, %entry.if.end_crit_edge.i.i368 ], [ %call.i.i.i371, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363 ] %call158.lcssa.sink = phi ptr [ %call37, %entry.if.end_crit_edge.i.i ], [ %call37, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i ], [ %call158, %entry.if.end_crit_edge.i.i368 ], [ %call158, %_ZN6bufferIP3tbvLb0ELj8EE6expandEv.exit.i.i363 ] - %idx.ext.i.i365 = zext i32 %.sink531 to i64 - %add.ptr.i.i366 = getelementptr inbounds ptr, ptr %.sink530, i64 %idx.ext.i.i365 + %idx.ext.i.i365 = zext i32 %.sink533 to i64 + %add.ptr.i.i366 = getelementptr inbounds ptr, ptr %.sink532, i64 %idx.ext.i.i365 store ptr %call158.lcssa.sink, ptr %add.ptr.i.i366, align 8 %128 = load i32, ptr %m_pos.i.i.i.i, align 8 %inc.i.i367 = add i32 %128, 1 store i32 %inc.i.i367, ptr %m_pos.i.i.i.i, align 8 - br label %sw.epilog200.thread509 + br label %sw.epilog200.thread510 -sw.epilog200.thread509: ; preds = %invoke.cont32, %sw.epilog200.thread509.sink.split - %.pr512 = load i32, ptr %m_pos.i, align 8 +sw.epilog200.thread510: ; preds = %invoke.cont32, %sw.epilog200.thread510.sink.split + %.pr513 = load i32, ptr %m_pos.i, align 8 br label %for.cond202.preheader -sw.epilog200: ; preds = %if.end.i.i.i.i.i315, %_ZN10union_bvecI11tbv_manager3tbvED2Ev.exit, %invoke.cont67, %invoke.cont32 +sw.epilog200: ; preds = %if.end.i.i.i.i.i315, %_ZN10union_bvecI11tbv_manager3tbvED2Ev.exit, %invoke.cont67 %.pr = load i32, ptr %m_pos.i, align 8 %cmp.i = icmp eq i32 %.pr, 0 br i1 %cmp.i, label %for.cond202.preheader, label %while.body, !llvm.loop !33 @@ -3326,7 +3329,7 @@ terminate.lpad.i429: ; preds = %if.end.i.i.i.i428 unreachable ehcleanup214: ; preds = %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp, %lpad14.loopexit, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad14.loopexit.split-lp.loopexit, %ehcleanup - %.pn43 = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %lpad.loopexit, %lpad14.loopexit ], [ %lpad.loopexit439, %lpad14.loopexit.split-lp.loopexit ], [ %lpad.loopexit449, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit452, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp456, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit518, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp519, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ] + %.pn43 = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %lpad.loopexit, %lpad14.loopexit ], [ %lpad.loopexit439, %lpad14.loopexit.split-lp.loopexit ], [ %lpad.loopexit449, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit452, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp456, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit519, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp520, %lpad14.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ] call void @_ZN6bufferIP3tbvLb0ELj8EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %new_todo) #16 call void @_ZN6bufferIP3tbvLb0ELj8EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %todo) #16 br label %ehcleanup216 diff --git a/bench/z3/optimized/elim_uncnstr_tactic.cpp.ll b/bench/z3/optimized/elim_uncnstr_tactic.cpp.ll index 54022457522..7c2cc19f266 100644 --- a/bench/z3/optimized/elim_uncnstr_tactic.cpp.ll +++ b/bench/z3/optimized/elim_uncnstr_tactic.cpp.ll @@ -1590,7 +1590,7 @@ lpad8.i: ; preds = %_ZN14core_hashtable cleanup br label %ehcleanup145.i -lpad11.i: ; preds = %call.i.noexc.i, %if.end.i.i.i.i, %invoke.cont36.i, %if.then.i.i.i6.i.i, %call2.i.noexc.i, %if.end.i.i.i, %if.then.i.i.i.i.i, %if.end.i.i.i.i.i.i, %if.then.i.i38.i, %lor.rhs.i, %invoke.cont10.i +lpad11.i: ; preds = %if.end.i.i.i.i, %call.i.noexc.i, %invoke.cont36.i, %if.then.i.i.i6.i.i, %call2.i.noexc.i, %if.end.i.i.i, %if.then.i.i.i.i.i, %if.end.i.i.i.i.i.i, %if.then.i.i38.i, %lor.rhs.i, %invoke.cont10.i %28 = landingpad { ptr, i32 } cleanup br label %ehcleanup143.i @@ -1668,6 +1668,7 @@ invoke.cont36.i: ; preds = %_ZN3refI23generic_m call.i.noexc.i: ; preds = %invoke.cont36.i %this.val.i55.i = load ptr, ptr %13, align 8 + %m_nonvars.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic", ptr %this, i64 0, i32 4 %38 = load ptr, ptr %m_mc.i.i, align 8 %m_max_memory.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic", ptr %this, i64 0, i32 7 %39 = load i64, ptr %m_max_memory.i.i, align 8 @@ -1676,66 +1677,65 @@ call.i.noexc.i: ; preds = %invoke.cont36.i store ptr getelementptr inbounds ({ [4 x ptr] }, ptr @_ZTVN12_GLOBAL__N_119elim_uncnstr_tactic2rwE, i64 0, inrange i32 0, i64 2), ptr %call.i60.i, align 8 %m_cfg.i.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic::rw", ptr %call.i60.i, i64 0, i32 1 invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %call.i60.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i, i1 noundef zeroext %tobool.i.i) - to label %.noexc unwind label %lpad11.i + to label %.noexc61.i unwind label %lpad11.i -.noexc: ; preds = %call.i.noexc.i +.noexc61.i: ; preds = %call.i.noexc.i store ptr getelementptr inbounds ({ [4 x ptr] }, ptr @_ZTV12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE, i64 0, inrange i32 0, i64 2), ptr %call.i60.i, align 8 - %m_cfg.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 1 - store ptr %m_cfg.i.i.i, ptr %m_cfg.i, align 8 - %m_num_steps.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 2 - store i32 0, ptr %m_num_steps.i, align 8 - %m_bindings.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 3 - store ptr null, ptr %m_bindings.i, align 8 - %m_shifter.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4 - invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %m_shifter.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i, i1 noundef zeroext false) - to label %invoke.cont3.i unwind label %lpad2.i - -invoke.cont3.i: ; preds = %.noexc - store ptr getelementptr inbounds ({ [5 x ptr] }, ptr @_ZTV11var_shifter, i64 0, inrange i32 0, i64 2), ptr %m_shifter.i, align 8 - %m_bound.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4, i32 1 - store i32 0, ptr %m_bound.i.i, align 8 - %m_shift1.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4, i32 2 - store i32 0, ptr %m_shift1.i.i, align 4 - %m_shift2.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4, i32 3 - store i32 0, ptr %m_shift2.i.i, align 8 - %m_inv_shifter.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 5 - invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %m_inv_shifter.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i, i1 noundef zeroext false) - to label %.noexc61.i unwind label %lpad4.i2 - -lpad2.i: ; preds = %.noexc + %m_cfg.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 1 + store ptr %m_cfg.i.i.i, ptr %m_cfg.i.i.i.i, align 8 + %m_num_steps.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 2 + store i32 0, ptr %m_num_steps.i.i.i.i, align 8 + %m_bindings.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 3 + store ptr null, ptr %m_bindings.i.i.i.i, align 8 + %m_shifter.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4 + invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %m_shifter.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i, i1 noundef zeroext false) + to label %invoke.cont3.i.i.i.i unwind label %lpad2.i.i.i.i + +invoke.cont3.i.i.i.i: ; preds = %.noexc61.i + store ptr getelementptr inbounds ({ [5 x ptr] }, ptr @_ZTV11var_shifter, i64 0, inrange i32 0, i64 2), ptr %m_shifter.i.i.i.i, align 8 + %m_bound.i.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4, i32 1 + store i32 0, ptr %m_bound.i.i.i.i.i, align 8 + %m_shift1.i.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4, i32 2 + store i32 0, ptr %m_shift1.i.i.i.i.i, align 4 + %m_shift2.i.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 4, i32 3 + store i32 0, ptr %m_shift2.i.i.i.i.i, align 8 + %m_inv_shifter.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 5 + invoke void @_ZN13rewriter_coreC2ER11ast_managerb(ptr noundef nonnull align 8 dereferenceable(144) %m_inv_shifter.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i, i1 noundef zeroext false) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEEC2ER11ast_managerbRS2_.exit.i.i.i unwind label %lpad4.i.i.i.i + +lpad2.i.i.i.i: ; preds = %.noexc61.i %41 = landingpad { ptr, i32 } cleanup - br label %ehcleanup17.i + br label %ehcleanup17.i.i.i.i -lpad4.i2: ; preds = %invoke.cont3.i +lpad4.i.i.i.i: ; preds = %invoke.cont3.i.i.i.i %42 = landingpad { ptr, i32 } cleanup - call void @_ZN13rewriter_coreD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %m_shifter.i) #18 - br label %ehcleanup17.i + call void @_ZN13rewriter_coreD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %m_shifter.i.i.i.i) #18 + br label %ehcleanup17.i.i.i.i -ehcleanup17.i: ; preds = %lpad4.i2, %lpad2.i - %.pn.i1 = phi { ptr, i32 } [ %42, %lpad4.i2 ], [ %41, %lpad2.i ] - call void @_ZN10ptr_vectorI4exprED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i) #18 +ehcleanup17.i.i.i.i: ; preds = %lpad4.i.i.i.i, %lpad2.i.i.i.i + %.pn.i.i.i.i = phi { ptr, i32 } [ %42, %lpad4.i.i.i.i ], [ %41, %lpad2.i.i.i.i ] + call void @_ZN10ptr_vectorI4exprED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i.i.i) #18 call void @_ZN13rewriter_coreD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %call.i60.i) #18 br label %ehcleanup143.i -.noexc61.i: ; preds = %invoke.cont3.i - store ptr getelementptr inbounds ({ [5 x ptr] }, ptr @_ZTV15inv_var_shifter, i64 0, inrange i32 0, i64 2), ptr %m_inv_shifter.i, align 8 - %m_r.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 6 - store ptr null, ptr %m_r.i, align 8 - %m_manager.i.i3 = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 6, i32 1 - store ptr %this.val.i55.i, ptr %m_manager.i.i3, align 8 - %m_pr.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 7 - store ptr null, ptr %m_pr.i, align 8 - %m_manager.i7.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 7, i32 1 - store ptr %this.val.i55.i, ptr %m_manager.i7.i, align 8 - %m_pr2.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 8 - store ptr null, ptr %m_pr2.i, align 8 - %m_manager.i8.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 8, i32 1 - store ptr %this.val.i55.i, ptr %m_manager.i8.i, align 8 - %m_shifts.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 9 - store ptr null, ptr %m_shifts.i, align 8 - %m_nonvars.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic", ptr %this, i64 0, i32 4 +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEEC2ER11ast_managerbRS2_.exit.i.i.i: ; preds = %invoke.cont3.i.i.i.i + store ptr getelementptr inbounds ({ [5 x ptr] }, ptr @_ZTV15inv_var_shifter, i64 0, inrange i32 0, i64 2), ptr %m_inv_shifter.i.i.i.i, align 8 + %m_r.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 6 + store ptr null, ptr %m_r.i.i.i.i, align 8 + %m_manager.i.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 6, i32 1 + store ptr %this.val.i55.i, ptr %m_manager.i.i.i.i.i, align 8 + %m_pr.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 7 + store ptr null, ptr %m_pr.i.i.i.i, align 8 + %m_manager.i7.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 7, i32 1 + store ptr %this.val.i55.i, ptr %m_manager.i7.i.i.i.i, align 8 + %m_pr2.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 8 + store ptr null, ptr %m_pr2.i.i.i.i, align 8 + %m_manager.i8.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 8, i32 1 + store ptr %this.val.i55.i, ptr %m_manager.i8.i.i.i.i, align 8 + %m_shifts.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %call.i60.i, i64 0, i32 9 + store ptr null, ptr %m_shifts.i.i.i.i, align 8 store ptr getelementptr inbounds ({ [4 x ptr] }, ptr @_ZTVN12_GLOBAL__N_119elim_uncnstr_tactic2rwE, i64 0, inrange i32 0, i64 2), ptr %call.i60.i, align 8 %.lobit.i = lshr exact i32 %1, 27 %frombool.i.i.i.i = trunc i32 %.lobit.i to i8 @@ -1749,14 +1749,14 @@ ehcleanup17.i: ; preds = %lpad4.i2, %lpad2.i %tobool.not.i.i.i.i.i.i = icmp eq ptr %38, null br i1 %tobool.not.i.i.i.i.i.i, label %_ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i -if.then.i.i.i.i.i.i: ; preds = %.noexc61.i +if.then.i.i.i.i.i.i: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEEC2ER11ast_managerbRS2_.exit.i.i.i %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.converter, ptr %38, i64 0, i32 1 %43 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 8 %inc.i.i.i.i.i.i.i = add i32 %43, 1 store i32 %inc.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 8 br label %_ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i -_ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i, %.noexc61.i +_ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEEC2ER11ast_managerbRS2_.exit.i.i.i %m_a_util.i.i.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic::rw", ptr %call.i60.i, i64 0, i32 1, i32 5 invoke void @_ZN10arith_utilC1ER11ast_manager(ptr noundef nonnull align 8 dereferenceable(16) %m_a_util.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i) to label %invoke.cont.i.i.i.i unwind label %lpad.i.i.i.i @@ -1764,14 +1764,14 @@ _ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i invoke.cont.i.i.i.i: ; preds = %_ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i %m_bv_util.i.i.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic::rw", ptr %call.i60.i, i64 0, i32 1, i32 6 invoke void @_ZN7bv_utilC1ER11ast_manager(ptr noundef nonnull align 8 dereferenceable(24) %m_bv_util.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i) - to label %invoke.cont3.i.i.i.i unwind label %lpad.i.i.i.i + to label %invoke.cont3.i3.i.i.i unwind label %lpad.i.i.i.i -invoke.cont3.i.i.i.i: ; preds = %invoke.cont.i.i.i.i +invoke.cont3.i3.i.i.i: ; preds = %invoke.cont.i.i.i.i %m_ar_util.i.i.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic::rw", ptr %call.i60.i, i64 0, i32 1, i32 7 invoke void @_ZN10array_utilC1ER11ast_manager(ptr noundef nonnull align 8 dereferenceable(16) %m_ar_util.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i) to label %invoke.cont4.i.i.i.i unwind label %lpad.i.i.i.i -invoke.cont4.i.i.i.i: ; preds = %invoke.cont3.i.i.i.i +invoke.cont4.i.i.i.i: ; preds = %invoke.cont3.i3.i.i.i %m_dt_util.i.i.i.i = getelementptr inbounds %"class.(anonymous namespace)::elim_uncnstr_tactic::rw", ptr %call.i60.i, i64 0, i32 1, i32 8 invoke void @_ZN8datatype4utilC1ER11ast_manager(ptr noundef nonnull align 8 dereferenceable(288) %m_dt_util.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(976) %this.val.i55.i) to label %invoke.cont5.i.i.i.i unwind label %lpad.i.i.i.i @@ -1848,7 +1848,7 @@ invoke.cont9.i.i.i.i: ; preds = %call.i.i.i.noexc.i. %call.i.i.i.i13.i.i.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 128) to label %_ZN12_GLOBAL__N_119elim_uncnstr_tactic2rwC2ER11ast_managerbR13obj_hashtableI4exprES7_P23generic_model_converteryj.exit.i.i unwind label %lpad10.i.i.i.i -lpad.i.i.i.i: ; preds = %invoke.cont4.i.i.i.i, %invoke.cont3.i.i.i.i, %invoke.cont.i.i.i.i, %_ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i +lpad.i.i.i.i: ; preds = %invoke.cont4.i.i.i.i, %invoke.cont3.i3.i.i.i, %invoke.cont.i.i.i.i, %_ZN3refI23generic_model_converterEC2EPS0_.exit.i.i.i.i %49 = landingpad { ptr, i32 } cleanup br label %ehcleanup16.i.i.i.i @@ -1932,7 +1932,7 @@ while.body.i.i.i.i: ; preds = %invoke.cont37.i, %s %c.0.i.i.i.i = phi ptr [ %57, %sw.bb.i.i.i.i ], [ %55, %invoke.cont37.i ] %bf.load.i.i.i.i.i = load i32, ptr %c.0.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %while.body.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %while.body.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb3.i.i.i.i i32 2, label %sw.bb5.i.i.i.i @@ -1961,7 +1961,10 @@ sw.bb7.i.i.i.i: ; preds = %while.body.i.i.i.i %63 = load i32, ptr %62, align 4 br label %_ZNK4goal4sizeEv.exit.i -while.body.unreachabledefault.i.i.i.i: ; preds = %while.body.i.i.i.i +while.body.i.i.i.i.unreachabledefault: ; preds = %while.body.i.i.i.i + unreachable + +default.unreachable: ; preds = %while.body.i.i.i232.i, %if.end.i.i.i66.i, %while.body.i.i.i75.i, %if.end.i.i.i85.i, %if.end.i.i.i120.i unreachable _ZNK4goal4sizeEv.exit.i: ; preds = %sw.bb7.i.i.i.i, %sw.bb5.i.i.i.i, %sw.bb3.i.i.i.i, %invoke.cont37.i @@ -2013,9 +2016,9 @@ cond.false.i.i: ; preds = %for.body.i if.then.i.i.i69.i: ; preds = %sw.epilog.i.i.i.i invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i.i, ptr noundef nonnull align 8 dereferenceable(12) %m_forms.i65.i) - to label %.noexc72.i unwind label %lpad45.loopexit.i + to label %.noexc73.i unwind label %lpad45.loopexit.i -.noexc72.i: ; preds = %if.then.i.i.i69.i +.noexc73.i: ; preds = %if.then.i.i.i69.i %69 = load ptr, ptr %m_forms.i65.i, align 8 %70 = getelementptr inbounds %"struct.parray_manager::cell", ptr %69, i64 0, i32 3 %71 = load ptr, ptr %70, align 8 @@ -2028,7 +2031,7 @@ if.end.i.i.i66.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i67.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i68.i = lshr i32 %bf.load.i.i.i.i67.i, 30 - switch i32 %bf.lshr.i.i.i.i68.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i68.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i71.i i32 1, label %sw.bb.i.i.i71.i i32 2, label %sw.epilog.i.i.i.i @@ -2052,17 +2055,14 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i66.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %76, i64 %indvars.iv.i br label %invoke.cont52.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i66.i - unreachable - sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i71.i, %if.end.i.i.i66.i %c.1.in.i.i.i.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i.i, i64 0, i32 3 %trail_sz.1.i.i.i.i = add nuw nsw i32 %trail_sz.016.i.i.i.i, 1 %exitcond.i.i.i.i = icmp eq i32 %trail_sz.1.i.i.i.i, 17 br i1 %exitcond.i.i.i.i, label %if.then.i.i.i69.i, label %if.end.i.i.i66.i, !llvm.loop !8 -invoke.cont52.i: ; preds = %sw.bb12.i.i.i.i, %if.then5.i.i.i.i, %.noexc72.i, %cond.true.i.i - %cond.in.i.i = phi ptr [ %m_false.i.i.i, %cond.true.i.i ], [ %arrayidx.i.i.i70.i, %.noexc72.i ], [ %arrayidx14.i.i.i.i, %sw.bb12.i.i.i.i ], [ %m_elem.i.i.i.i.i, %if.then5.i.i.i.i ] +invoke.cont52.i: ; preds = %sw.bb12.i.i.i.i, %if.then5.i.i.i.i, %.noexc73.i, %cond.true.i.i + %cond.in.i.i = phi ptr [ %m_false.i.i.i, %cond.true.i.i ], [ %arrayidx.i.i.i70.i, %.noexc73.i ], [ %arrayidx14.i.i.i.i, %sw.bb12.i.i.i.i ], [ %m_elem.i.i.i.i.i, %if.then5.i.i.i.i ] %cond.i.i = load ptr, ptr %cond.in.i.i, align 8 %m_rw.val.i = load ptr, ptr %m_rw.i.i, align 8 invoke fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEEclEP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E(ptr noundef nonnull align 8 dereferenceable(536) %m_rw.val.i, ptr noundef %cond.i.i, ptr noundef nonnull align 8 dereferenceable(16) %new_f.i, ptr noundef nonnull align 8 dereferenceable(16) %new_pr.i) @@ -2073,7 +2073,7 @@ invoke.cont56.i: ; preds = %invoke.cont52.i %cmp59.i = icmp eq ptr %cond.i.i, %77 br i1 %cmp59.i, label %for.inc.i, label %if.end61.i -lpad45.loopexit.i: ; preds = %invoke.cont85.i, %if.then.i.i.i135.i, %if.then2.i.i.i.i, %invoke.cont66.i, %if.then.i.i.i95.i, %invoke.cont52.i, %if.then.i.i.i69.i +lpad45.loopexit.i: ; preds = %invoke.cont85.i, %if.then.i.i.i135.i, %if.then2.i.i.i.i, %invoke.cont66.i, %if.then.i.i.i96.i, %invoke.cont52.i, %if.then.i.i.i69.i %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %ehcleanup.i @@ -2099,116 +2099,110 @@ if.then63.i: ; preds = %if.end61.i %78 = load ptr, ptr %g, align 8 %m_proofs.i.i = getelementptr inbounds %class.goal, ptr %78, i64 0, i32 8 %79 = load ptr, ptr %m_proofs.i.i, align 8 - %cmp.i.i.i73.i = icmp eq ptr %79, null - br i1 %cmp.i.i.i73.i, label %invoke.cont66.i, label %while.body.i.i.i74.i - -while.body.i.i.i74.i: ; preds = %if.then63.i, %sw.bb.i.i.i106.i - %c.0.i.i.i75.i = phi ptr [ %81, %sw.bb.i.i.i106.i ], [ %79, %if.then63.i ] - %bf.load.i.i.i.i76.i = load i32, ptr %c.0.i.i.i75.i, align 8 - %bf.lshr.i.i.i.i77.i = lshr i32 %bf.load.i.i.i.i76.i, 30 - switch i32 %bf.lshr.i.i.i.i77.i, label %while.body.unreachabledefault.i.i.i107.i [ - i32 0, label %sw.bb.i.i.i106.i - i32 1, label %sw.bb3.i.i.i104.i - i32 2, label %sw.bb5.i.i.i102.i - i32 3, label %sw.bb7.i.i.i78.i + %cmp.i.i.i74.i = icmp eq ptr %79, null + br i1 %cmp.i.i.i74.i, label %invoke.cont66.i, label %while.body.i.i.i75.i + +while.body.i.i.i75.i: ; preds = %if.then63.i, %sw.bb.i.i.i107.i + %c.0.i.i.i76.i = phi ptr [ %81, %sw.bb.i.i.i107.i ], [ %79, %if.then63.i ] + %bf.load.i.i.i.i77.i = load i32, ptr %c.0.i.i.i76.i, align 8 + %bf.lshr.i.i.i.i78.i = lshr i32 %bf.load.i.i.i.i77.i, 30 + switch i32 %bf.lshr.i.i.i.i78.i, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i107.i + i32 1, label %sw.bb3.i.i.i105.i + i32 2, label %sw.bb5.i.i.i103.i + i32 3, label %sw.bb7.i.i.i79.i ] -sw.bb.i.i.i106.i: ; preds = %while.body.i.i.i74.i - %80 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i75.i, i64 0, i32 3 +sw.bb.i.i.i107.i: ; preds = %while.body.i.i.i75.i + %80 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i76.i, i64 0, i32 3 %81 = load ptr, ptr %80, align 8 - br label %while.body.i.i.i74.i, !llvm.loop !7 + br label %while.body.i.i.i75.i, !llvm.loop !7 -sw.bb3.i.i.i104.i: ; preds = %while.body.i.i.i74.i - %82 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i75.i, i64 0, i32 1 +sw.bb3.i.i.i105.i: ; preds = %while.body.i.i.i75.i + %82 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i76.i, i64 0, i32 1 %83 = load i32, ptr %82, align 4 - %add.i.i.i105.i = add i32 %83, 1 + %add.i.i.i106.i = add i32 %83, 1 br label %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i -sw.bb5.i.i.i102.i: ; preds = %while.body.i.i.i74.i - %84 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i75.i, i64 0, i32 1 +sw.bb5.i.i.i103.i: ; preds = %while.body.i.i.i75.i + %84 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i76.i, i64 0, i32 1 %85 = load i32, ptr %84, align 4 - %sub.i.i.i103.i = add i32 %85, -1 + %sub.i.i.i104.i = add i32 %85, -1 br label %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i -sw.bb7.i.i.i78.i: ; preds = %while.body.i.i.i74.i - %86 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i75.i, i64 0, i32 1 +sw.bb7.i.i.i79.i: ; preds = %while.body.i.i.i75.i + %86 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i76.i, i64 0, i32 1 %87 = load i32, ptr %86, align 4 br label %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i -while.body.unreachabledefault.i.i.i107.i: ; preds = %while.body.i.i.i74.i - unreachable +_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i: ; preds = %sw.bb7.i.i.i79.i, %sw.bb5.i.i.i103.i, %sw.bb3.i.i.i105.i + %retval.0.i.i.i80.i = phi i32 [ %87, %sw.bb7.i.i.i79.i ], [ %sub.i.i.i104.i, %sw.bb5.i.i.i103.i ], [ %add.i.i.i106.i, %sw.bb3.i.i.i105.i ] + %88 = zext i32 %retval.0.i.i.i80.i to i64 + %cmp.i81.i = icmp ult i64 %indvars.iv.i, %88 + br i1 %cmp.i81.i, label %cond.true.i83.i, label %invoke.cont66.i -_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i: ; preds = %sw.bb7.i.i.i78.i, %sw.bb5.i.i.i102.i, %sw.bb3.i.i.i104.i - %retval.0.i.i.i79.i = phi i32 [ %87, %sw.bb7.i.i.i78.i ], [ %sub.i.i.i103.i, %sw.bb5.i.i.i102.i ], [ %add.i.i.i105.i, %sw.bb3.i.i.i104.i ] - %88 = zext i32 %retval.0.i.i.i79.i to i64 - %cmp.i80.i = icmp ult i64 %indvars.iv.i, %88 - br i1 %cmp.i80.i, label %cond.true.i82.i, label %invoke.cont66.i - -cond.true.i82.i: ; preds = %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i +cond.true.i83.i: ; preds = %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i %89 = load ptr, ptr %78, align 8 - %m_expr_array_manager.i.i83.i = getelementptr inbounds %class.ast_manager, ptr %89, i64 0, i32 3 - br label %if.end.i.i.i84.i + %m_expr_array_manager.i.i84.i = getelementptr inbounds %class.ast_manager, ptr %89, i64 0, i32 3 + br label %if.end.i.i.i85.i -if.then.i.i.i95.i: ; preds = %sw.epilog.i.i.i91.i - invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i83.i, ptr noundef nonnull align 8 dereferenceable(12) %m_proofs.i.i) +if.then.i.i.i96.i: ; preds = %sw.epilog.i.i.i92.i + invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i84.i, ptr noundef nonnull align 8 dereferenceable(12) %m_proofs.i.i) to label %.noexc108.i unwind label %lpad45.loopexit.i -.noexc108.i: ; preds = %if.then.i.i.i95.i +.noexc108.i: ; preds = %if.then.i.i.i96.i %90 = load ptr, ptr %m_proofs.i.i, align 8 %91 = getelementptr inbounds %"struct.parray_manager::cell", ptr %90, i64 0, i32 3 %92 = load ptr, ptr %91, align 8 - %arrayidx.i.i.i97.i = getelementptr inbounds ptr, ptr %92, i64 %indvars.iv.i + %arrayidx.i.i.i98.i = getelementptr inbounds ptr, ptr %92, i64 %indvars.iv.i br label %_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i -if.end.i.i.i84.i: ; preds = %sw.epilog.i.i.i91.i, %cond.true.i82.i - %c.017.in.i.i.i85.i = phi ptr [ %m_proofs.i.i, %cond.true.i82.i ], [ %c.1.in.i.i.i92.i, %sw.epilog.i.i.i91.i ] - %trail_sz.016.i.i.i86.i = phi i32 [ 0, %cond.true.i82.i ], [ %trail_sz.1.i.i.i93.i, %sw.epilog.i.i.i91.i ] - %c.017.i.i.i87.i = load ptr, ptr %c.017.in.i.i.i85.i, align 8 - %bf.load.i.i.i2.i.i = load i32, ptr %c.017.i.i.i87.i, align 8 +if.end.i.i.i85.i: ; preds = %sw.epilog.i.i.i92.i, %cond.true.i83.i + %c.017.in.i.i.i86.i = phi ptr [ %m_proofs.i.i, %cond.true.i83.i ], [ %c.1.in.i.i.i93.i, %sw.epilog.i.i.i92.i ] + %trail_sz.016.i.i.i87.i = phi i32 [ 0, %cond.true.i83.i ], [ %trail_sz.1.i.i.i94.i, %sw.epilog.i.i.i92.i ] + %c.017.i.i.i88.i = load ptr, ptr %c.017.in.i.i.i86.i, align 8 + %bf.load.i.i.i2.i.i = load i32, ptr %c.017.i.i.i88.i, align 8 %bf.lshr.i.i.i3.i.i = lshr i32 %bf.load.i.i.i2.i.i, 30 - switch i32 %bf.lshr.i.i.i3.i.i, label %if.end.unreachabledefault.i.i.i101.i [ + switch i32 %bf.lshr.i.i.i3.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i5.i.i i32 1, label %sw.bb.i.i5.i.i - i32 2, label %sw.epilog.i.i.i91.i - i32 3, label %sw.bb12.i.i.i88.i + i32 2, label %sw.epilog.i.i.i92.i + i32 3, label %sw.bb12.i.i.i89.i ] -sw.bb.i.i5.i.i: ; preds = %if.end.i.i.i84.i, %if.end.i.i.i84.i - %93 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i87.i, i64 0, i32 1 +sw.bb.i.i5.i.i: ; preds = %if.end.i.i.i85.i, %if.end.i.i.i85.i + %93 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i88.i, i64 0, i32 1 %94 = load i32, ptr %93, align 4 %95 = zext i32 %94 to i64 - %cmp4.i.i.i98.i = icmp eq i64 %indvars.iv.i, %95 - br i1 %cmp4.i.i.i98.i, label %if.then5.i.i.i99.i, label %sw.epilog.i.i.i91.i + %cmp4.i.i.i99.i = icmp eq i64 %indvars.iv.i, %95 + br i1 %cmp4.i.i.i99.i, label %if.then5.i.i.i100.i, label %sw.epilog.i.i.i92.i -if.then5.i.i.i99.i: ; preds = %sw.bb.i.i5.i.i - %m_elem.i.i.i.i100.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i87.i, i64 0, i32 2 +if.then5.i.i.i100.i: ; preds = %sw.bb.i.i5.i.i + %m_elem.i.i.i.i101.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i88.i, i64 0, i32 2 br label %_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i -sw.bb12.i.i.i88.i: ; preds = %if.end.i.i.i84.i - %96 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i87.i, i64 0, i32 3 +sw.bb12.i.i.i89.i: ; preds = %if.end.i.i.i85.i + %96 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i88.i, i64 0, i32 3 %97 = load ptr, ptr %96, align 8 - %arrayidx14.i.i.i90.i = getelementptr inbounds ptr, ptr %97, i64 %indvars.iv.i + %arrayidx14.i.i.i91.i = getelementptr inbounds ptr, ptr %97, i64 %indvars.iv.i br label %_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i -if.end.unreachabledefault.i.i.i101.i: ; preds = %if.end.i.i.i84.i - unreachable - -sw.epilog.i.i.i91.i: ; preds = %sw.bb.i.i5.i.i, %if.end.i.i.i84.i - %c.1.in.i.i.i92.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i87.i, i64 0, i32 3 - %trail_sz.1.i.i.i93.i = add nuw nsw i32 %trail_sz.016.i.i.i86.i, 1 - %exitcond.i.i.i94.i = icmp eq i32 %trail_sz.1.i.i.i93.i, 17 - br i1 %exitcond.i.i.i94.i, label %if.then.i.i.i95.i, label %if.end.i.i.i84.i, !llvm.loop !8 +sw.epilog.i.i.i92.i: ; preds = %sw.bb.i.i5.i.i, %if.end.i.i.i85.i + %c.1.in.i.i.i93.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i88.i, i64 0, i32 3 + %trail_sz.1.i.i.i94.i = add nuw nsw i32 %trail_sz.016.i.i.i87.i, 1 + %exitcond.i.i.i95.i = icmp eq i32 %trail_sz.1.i.i.i94.i, 17 + br i1 %exitcond.i.i.i95.i, label %if.then.i.i.i96.i, label %if.end.i.i.i85.i, !llvm.loop !8 -_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i: ; preds = %sw.bb12.i.i.i88.i, %if.then5.i.i.i99.i, %.noexc108.i - %retval.0.i.i4.i.i = phi ptr [ %arrayidx.i.i.i97.i, %.noexc108.i ], [ %arrayidx14.i.i.i90.i, %sw.bb12.i.i.i88.i ], [ %m_elem.i.i.i.i100.i, %if.then5.i.i.i99.i ] +_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i: ; preds = %sw.bb12.i.i.i89.i, %if.then5.i.i.i100.i, %.noexc108.i + %retval.0.i.i4.i.i = phi ptr [ %arrayidx.i.i.i98.i, %.noexc108.i ], [ %arrayidx14.i.i.i91.i, %sw.bb12.i.i.i89.i ], [ %m_elem.i.i.i.i101.i, %if.then5.i.i.i100.i ] %98 = load ptr, ptr %retval.0.i.i4.i.i, align 8 br label %invoke.cont66.i invoke.cont66.i: ; preds = %_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i, %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i, %if.then63.i - %cond.i81.i = phi ptr [ %98, %_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i ], [ null, %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i ], [ null, %if.then63.i ] + %cond.i82.i = phi ptr [ %98, %_ZNK11ast_manager3getERKN14parray_managerINS_17expr_array_configEE3refEj.exit.i.i ], [ null, %_ZNK11ast_manager4sizeERKN14parray_managerINS_17expr_array_configEE3refE.exit.i.i ], [ null, %if.then63.i ] %this.val.i = load ptr, ptr %13, align 8 %99 = load ptr, ptr %new_pr.i, align 8 - %call73.i = invoke noundef ptr @_ZN11ast_manager15mk_modus_ponensEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i, ptr noundef %cond.i81.i, ptr noundef %99) + %call73.i = invoke noundef ptr @_ZN11ast_manager15mk_modus_ponensEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i, ptr noundef %cond.i82.i, ptr noundef %99) to label %invoke.cont72.i unwind label %lpad45.loopexit.i invoke.cont72.i: ; preds = %invoke.cont66.i @@ -2275,7 +2269,7 @@ if.end.i.i.i120.i: ; preds = %sw.epilog.i.i.i131. %c.017.i.i.i123.i = load ptr, ptr %c.017.in.i.i.i121.i, align 8 %bf.load.i.i.i.i124.i = load i32, ptr %c.017.i.i.i123.i, align 8 %bf.lshr.i.i.i.i125.i = lshr i32 %bf.load.i.i.i.i124.i, 30 - switch i32 %bf.lshr.i.i.i.i125.i, label %if.end.unreachabledefault.i.i.i142.i [ + switch i32 %bf.lshr.i.i.i.i125.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i138.i i32 1, label %sw.bb.i.i.i138.i i32 2, label %sw.epilog.i.i.i131.i @@ -2299,9 +2293,6 @@ sw.bb12.i.i.i126.i: ; preds = %if.end.i.i.i120.i %arrayidx14.i.i.i128.i = getelementptr inbounds ptr, ptr %114, i64 %indvars.iv.i br label %_ZNK11ast_manager3getERKN14parray_managerINS_28expr_dependency_array_configEE3refEj.exit.i.i -if.end.unreachabledefault.i.i.i142.i: ; preds = %if.end.i.i.i120.i - unreachable - sw.epilog.i.i.i131.i: ; preds = %sw.bb.i.i.i138.i, %if.end.i.i.i120.i %c.1.in.i.i.i132.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i123.i, i64 0, i32 3 %trail_sz.1.i.i.i133.i = add nuw nsw i32 %trail_sz.016.i.i.i122.i, 1 @@ -2582,7 +2573,7 @@ while.body.i.i.i232.i: ; preds = %if.end117.i, %sw.bb %c.0.i.i.i233.i = phi ptr [ %156, %sw.bb.i.i.i243.i ], [ %154, %if.end117.i ] %bf.load.i.i.i.i234.i = load i32, ptr %c.0.i.i.i233.i, align 8 %bf.lshr.i.i.i.i235.i = lshr i32 %bf.load.i.i.i.i234.i, 30 - switch i32 %bf.lshr.i.i.i.i235.i, label %while.body.unreachabledefault.i.i.i244.i [ + switch i32 %bf.lshr.i.i.i.i235.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i243.i i32 1, label %sw.bb3.i.i.i241.i i32 2, label %sw.bb5.i.i.i239.i @@ -2611,9 +2602,6 @@ sw.bb7.i.i.i236.i: ; preds = %while.body.i.i.i232 %162 = load i32, ptr %161, align 4 br label %invoke.cont121.i -while.body.unreachabledefault.i.i.i244.i: ; preds = %while.body.i.i.i232.i - unreachable - invoke.cont121.i: ; preds = %sw.bb7.i.i.i236.i, %sw.bb5.i.i.i239.i, %sw.bb3.i.i.i241.i, %if.end117.i %retval.0.i.i.i238.i = phi i32 [ %162, %sw.bb7.i.i.i236.i ], [ %sub.i.i.i240.i, %sw.bb5.i.i.i239.i ], [ %add.i.i.i242.i, %sw.bb3.i.i.i241.i ], [ 0, %if.end117.i ] %m_rw123.val.i = load ptr, ptr %m_rw.i.i, align 8 @@ -2769,8 +2757,8 @@ ehcleanup.i: ; preds = %lpad131.i, %lpad45. call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_f.i) #18 br label %ehcleanup143.i -ehcleanup143.i: ; preds = %lpad11.i, %ehcleanup17.i, %ehcleanup.i, %ehcleanup16.i.i.i.i - %.pn26.i = phi { ptr, i32 } [ %.pn.i, %ehcleanup.i ], [ %.pn.pn.pn.pn.i.i.i.i, %ehcleanup16.i.i.i.i ], [ %28, %lpad11.i ], [ %.pn.i1, %ehcleanup17.i ] +ehcleanup143.i: ; preds = %ehcleanup.i, %ehcleanup16.i.i.i.i, %ehcleanup17.i.i.i.i, %lpad11.i + %.pn26.i = phi { ptr, i32 } [ %.pn.i, %ehcleanup.i ], [ %28, %lpad11.i ], [ %.pn.i.i.i.i, %ehcleanup17.i.i.i.i ], [ %.pn.pn.pn.pn.i.i.i.i, %ehcleanup16.i.i.i.i ] call void @_ZN12collect_occsD2Ev(ptr noundef nonnull align 8 dereferenceable(304) %p.i) #18 br label %ehcleanup145.i @@ -3434,23 +3422,31 @@ declare void @_ZN6recfun4utilD1Ev(ptr noundef nonnull align 8 dereferenceable(24 ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEEclEP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, ptr nocapture noundef nonnull align 8 dereferenceable(16) %result, ptr nocapture noundef nonnull align 8 dereferenceable(16) %result_pr) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { entry: - %new_pats.i.i194 = alloca %class.ref_vector, align 8 - %new_no_pats.i.i195 = alloca %class.ref_vector, align 8 - %new_t.i.i198 = alloca %class.obj_ref.42, align 8 - %tmp.i.i = alloca %class.obj_ref, align 8 - %ref.tmp.i202 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp9.i203 = alloca %"class.std::allocator", align 1 - %new_pats.i.i = alloca %class.ref_vector, align 8 - %new_no_pats.i.i = alloca %class.ref_vector, align 8 - %new_q.i.i = alloca %class.obj_ref.135, align 8 - %pr2.i.i = alloca %class.obj_ref.42, align 8 - %new_t.i.i = alloca %class.obj_ref.42, align 8 - %pr2315.i.i = alloca %class.obj_ref.42, align 8 - %pr1317.i.i = alloca %class.obj_ref.42, align 8 - %ref.tmp.i62 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp9.i = alloca %"class.std::allocator", align 1 - %ref.tmp.i31 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i214.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i215.i.i = alloca %"class.std::allocator", align 1 + %ref.tmp.i.i.i40 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i.i.i41 = alloca %"class.std::allocator", align 1 + %new_pats.i.i.i42 = alloca %class.ref_vector, align 8 + %new_no_pats.i.i.i43 = alloca %class.ref_vector, align 8 + %new_t.i.i.i44 = alloca %class.obj_ref.42, align 8 + %tmp.i.i.i = alloca %class.obj_ref, align 8 + %ref.tmp.i.i45 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp9.i.i46 = alloca %"class.std::allocator", align 1 + %ref.tmp.i47 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp8.i = alloca %"class.std::allocator", align 1 + %ref.tmp.i257.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i258.i.i = alloca %"class.std::allocator", align 1 + %ref.tmp.i.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i.i.i = alloca %"class.std::allocator", align 1 + %new_pats.i.i.i = alloca %class.ref_vector, align 8 + %new_no_pats.i.i.i = alloca %class.ref_vector, align 8 + %new_q.i.i.i = alloca %class.obj_ref.135, align 8 + %pr2.i.i.i = alloca %class.obj_ref.42, align 8 + %new_t.i.i.i = alloca %class.obj_ref.42, align 8 + %pr2315.i.i.i = alloca %class.obj_ref.42, align 8 + %pr1317.i.i.i = alloca %class.obj_ref.42, align 8 + %ref.tmp.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp9.i.i = alloca %"class.std::allocator", align 1 %ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp10.i = alloca %"class.std::allocator", align 1 %m_frame_stack.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 6 @@ -3474,13 +3470,13 @@ lor.lhs.false: ; preds = %entry br i1 %cmp.not, label %if.end, label %_ZN6vectorIN13rewriter_core5frameELb0EjE5resetEv.exit lor.lhs.false.thread: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit - %m_cache2770 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %5 = load ptr, ptr %m_cache2770, align 8 - %m_cache_stack2771 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 4 - %6 = load ptr, ptr %m_cache_stack2771, align 8 + %m_cache409 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %5 = load ptr, ptr %m_cache409, align 8 + %m_cache_stack410 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 4 + %6 = load ptr, ptr %m_cache_stack410, align 8 %7 = load ptr, ptr %6, align 8 - %cmp.not2772 = icmp eq ptr %5, %7 - br i1 %cmp.not2772, label %if.end, label %if.then.i + %cmp.not411 = icmp eq ptr %5, %7 + br i1 %cmp.not411, label %if.end, label %if.then.i if.then.i: ; preds = %lor.lhs.false.thread, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit store i32 0, ptr %arrayidx.i, align 4 @@ -3612,31 +3608,31 @@ if.then7: ; preds = %if.end call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp10.i) %25 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i185 = icmp eq ptr %25, null - br i1 %tobool.not.i3.i185, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192, label %if.then.i.i.i186 - -if.then.i.i.i186: ; preds = %if.then7 - %m_manager.i.i187 = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 - %26 = load ptr, ptr %m_manager.i.i187, align 8 - %m_ref_count.i.i.i.i188 = getelementptr inbounds %class.ast, ptr %25, i64 0, i32 2 - %27 = load i32, ptr %m_ref_count.i.i.i.i188, align 4 - %dec.i.i.i.i189 = add i32 %27, -1 - store i32 %dec.i.i.i.i189, ptr %m_ref_count.i.i.i.i188, align 4 - %cmp.i.i.i190 = icmp eq i32 %dec.i.i.i.i189, 0 - br i1 %cmp.i.i.i190, label %if.then2.i.i.i191, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 - -if.then2.i.i.i191: ; preds = %if.then.i.i.i186 + %tobool.not.i3.i.i = icmp eq ptr %25, null + br i1 %tobool.not.i3.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i.i + +if.then.i.i.i.i: ; preds = %if.then7 + %m_manager.i.i.i = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 + %26 = load ptr, ptr %m_manager.i.i.i, align 8 + %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %25, i64 0, i32 2 + %27 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 + %dec.i.i.i.i.i = add i32 %27, -1 + store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 + %cmp.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i, label %if.then2.i.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i + +if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %26, ptr noundef nonnull %25) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192: ; preds = %if.then7, %if.then.i.i.i186, %if.then2.i.i.i191 +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.then7 store ptr null, ptr %result_pr, align 8 %28 = getelementptr inbounds i8, ptr %this, i64 8 %this.val12.i = load ptr, ptr %28, align 8 - %call2.i183 = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val12.i) - br i1 %call2.i183, label %if.end17.i, label %if.then.i28 + %call2.i.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val12.i) + br i1 %call2.i.i, label %if.end17.i, label %if.then.i28 -if.then.i28: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 +if.then.i28: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i %m_cancel_check.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 %29 = load i8, ptr %m_cancel_check.i, align 1 %30 = and i8 %29, 1 @@ -3648,27 +3644,27 @@ if.then4.i: ; preds = %if.then.i28 %exception.i = tail call ptr @__cxa_allocate_exception(i64 40) #18 %this.val.i = load ptr, ptr %28, align 8 %call9.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i) - to label %invoke.cont8.i unwind label %ehcleanup15.i.thread + to label %invoke.cont8.i unwind label %ehcleanup15.thread.i invoke.cont8.i: ; preds = %if.then4.i call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) #18 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i, ptr noundef %call9.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) - to label %invoke.cont12.i unwind label %ehcleanup15.i.thread2778 + to label %invoke.cont12.i unwind label %ehcleanup15.thread112.i invoke.cont12.i: ; preds = %invoke.cont8.i store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i, align 8 - %m_msg.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #18 + %m_msg.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #18 store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i, align 8 invoke void @__cxa_throw(ptr nonnull %exception.i, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #21 to label %unreachable.i unwind label %ehcleanup15.i -ehcleanup15.i.thread: ; preds = %if.then4.i +ehcleanup15.thread.i: ; preds = %if.then4.i %31 = landingpad { ptr, i32 } cleanup br label %cleanup.action.i -ehcleanup15.i.thread2778: ; preds = %invoke.cont8.i +ehcleanup15.thread112.i: ; preds = %invoke.cont8.i %32 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) #18 @@ -3681,46 +3677,46 @@ ehcleanup15.i: ; preds = %invoke.cont12.i call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) #18 br label %common.resume -cleanup.action.i: ; preds = %ehcleanup15.i.thread2778, %ehcleanup15.i.thread - %.pn.pn.i2777 = phi { ptr, i32 } [ %31, %ehcleanup15.i.thread ], [ %32, %ehcleanup15.i.thread2778 ] +cleanup.action.i: ; preds = %ehcleanup15.thread112.i, %ehcleanup15.thread.i + %.pn.pn111.i = phi { ptr, i32 } [ %31, %ehcleanup15.thread.i ], [ %32, %ehcleanup15.thread112.i ] call void @__cxa_free_exception(ptr %exception.i) #18 br label %common.resume if.end.i: ; preds = %if.then.i28 - %tobool.not.i170 = icmp eq ptr %t, null - br i1 %tobool.not.i170, label %if.end.i174, label %_ZN11ast_manager7inc_refEP3ast.exit.i171 + %tobool.not.i.i30 = icmp eq ptr %t, null + br i1 %tobool.not.i.i30, label %if.end.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i -_ZN11ast_manager7inc_refEP3ast.exit.i171: ; preds = %if.end.i - %m_ref_count.i.i.i172 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %34 = load i32, ptr %m_ref_count.i.i.i172, align 4 - %inc.i.i.i173 = add i32 %34, 1 - store i32 %inc.i.i.i173, ptr %m_ref_count.i.i.i172, align 4 - br label %if.end.i174 +_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %if.end.i + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %34 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i = add i32 %34, 1 + store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %if.end.i.i -if.end.i174: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i171, %if.end.i +if.end.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i, %if.end.i %35 = load ptr, ptr %result, align 8 - %tobool.not.i3.i175 = icmp eq ptr %35, null - br i1 %tobool.not.i3.i175, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182, label %if.then.i.i.i176 - -if.then.i.i.i176: ; preds = %if.end.i174 - %m_manager.i.i177 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %36 = load ptr, ptr %m_manager.i.i177, align 8 - %m_ref_count.i.i.i.i178 = getelementptr inbounds %class.ast, ptr %35, i64 0, i32 2 - %37 = load i32, ptr %m_ref_count.i.i.i.i178, align 4 - %dec.i.i.i.i179 = add i32 %37, -1 - store i32 %dec.i.i.i.i179, ptr %m_ref_count.i.i.i.i178, align 4 - %cmp.i.i.i180 = icmp eq i32 %dec.i.i.i.i179, 0 - br i1 %cmp.i.i.i180, label %if.then2.i.i.i181, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182 - -if.then2.i.i.i181: ; preds = %if.then.i.i.i176 + %tobool.not.i3.i14.i = icmp eq ptr %35, null + br i1 %tobool.not.i3.i14.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i15.i + +if.then.i.i.i15.i: ; preds = %if.end.i.i + %m_manager.i.i16.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %36 = load ptr, ptr %m_manager.i.i16.i, align 8 + %m_ref_count.i.i.i.i17.i = getelementptr inbounds %class.ast, ptr %35, i64 0, i32 2 + %37 = load i32, ptr %m_ref_count.i.i.i.i17.i, align 4 + %dec.i.i.i.i18.i = add i32 %37, -1 + store i32 %dec.i.i.i.i18.i, ptr %m_ref_count.i.i.i.i17.i, align 4 + %cmp.i.i.i19.i = icmp eq i32 %dec.i.i.i.i18.i, 0 + br i1 %cmp.i.i.i19.i, label %if.then2.i.i.i20.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i + +if.then2.i.i.i20.i: ; preds = %if.then.i.i.i15.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %36, ptr noundef nonnull %35) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182 + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182: ; preds = %if.end.i174, %if.then.i.i.i176, %if.then2.i.i.i181 +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i20.i, %if.then.i.i.i15.i, %if.end.i.i store ptr %t, ptr %result, align 8 br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.end17.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 +if.end17.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i %m_root.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 store ptr %t, ptr %m_root.i, align 8 %m_num_qvars.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 @@ -3731,6364 +3727,6665 @@ if.end17.i: ; preds = %_ZN7obj_refI3app11a br i1 %call18.i, label %if.then19.i, label %if.else.i if.then19.i: ; preds = %if.end17.i - %m_result_stack.i169 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i163 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %38 = load ptr, ptr %m_nodes.i163, align 8 - %cmp.i.i.i164 = icmp eq ptr %38, null - br i1 %cmp.i.i.i164, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit, label %if.end.i.i.i165 - -if.end.i.i.i165: ; preds = %if.then19.i - %arrayidx.i.i.i166 = getelementptr inbounds i32, ptr %38, i64 -1 - %39 = load i32, ptr %arrayidx.i.i.i166, align 4 + %m_result_stack.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %38 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i.i21.i = icmp eq ptr %38, null + br i1 %cmp.i.i.i21.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i.i + +if.end.i.i.i.i: ; preds = %if.then19.i + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %38, i64 -1 + %39 = load i32, ptr %arrayidx.i.i.i.i, align 4 %40 = add i32 %39, -1 %41 = zext i32 %40 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit: ; preds = %if.then19.i, %if.end.i.i.i165 - %retval.0.i.i.i167 = phi i64 [ %41, %if.end.i.i.i165 ], [ 4294967295, %if.then19.i ] - %arrayidx.i1.i.i168 = getelementptr inbounds ptr, ptr %38, i64 %retval.0.i.i.i167 - %42 = load ptr, ptr %arrayidx.i1.i.i168, align 8 - %tobool.not.i151 = icmp eq ptr %42, null - br i1 %tobool.not.i151, label %if.end.i155, label %_ZN11ast_manager7inc_refEP3ast.exit.i152 - -_ZN11ast_manager7inc_refEP3ast.exit.i152: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %m_ref_count.i.i.i153 = getelementptr inbounds %class.ast, ptr %42, i64 0, i32 2 - %43 = load i32, ptr %m_ref_count.i.i.i153, align 4 - %inc.i.i.i154 = add i32 %43, 1 - store i32 %inc.i.i.i154, ptr %m_ref_count.i.i.i153, align 4 - br label %if.end.i155 - -if.end.i155: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i152, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i.i, %if.then19.i + %retval.0.i.i.i.i = phi i64 [ %41, %if.end.i.i.i.i ], [ 4294967295, %if.then19.i ] + %arrayidx.i1.i.i.i = getelementptr inbounds ptr, ptr %38, i64 %retval.0.i.i.i.i + %42 = load ptr, ptr %arrayidx.i1.i.i.i, align 8 + %tobool.not.i22.i = icmp eq ptr %42, null + br i1 %tobool.not.i22.i, label %if.end.i26.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i23.i + +_ZN11ast_manager7inc_refEP3ast.exit.i23.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + %m_ref_count.i.i.i24.i = getelementptr inbounds %class.ast, ptr %42, i64 0, i32 2 + %43 = load i32, ptr %m_ref_count.i.i.i24.i, align 4 + %inc.i.i.i25.i = add i32 %43, 1 + store i32 %inc.i.i.i25.i, ptr %m_ref_count.i.i.i24.i, align 4 + br label %if.end.i26.i + +if.end.i26.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i23.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i %44 = load ptr, ptr %result, align 8 - %tobool.not.i3.i156 = icmp eq ptr %44, null - br i1 %tobool.not.i3.i156, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit, label %if.then.i.i.i157 - -if.then.i.i.i157: ; preds = %if.end.i155 - %m_manager.i.i158 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %45 = load ptr, ptr %m_manager.i.i158, align 8 - %m_ref_count.i.i.i.i159 = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 - %46 = load i32, ptr %m_ref_count.i.i.i.i159, align 4 - %dec.i.i.i.i160 = add i32 %46, -1 - store i32 %dec.i.i.i.i160, ptr %m_ref_count.i.i.i.i159, align 4 - %cmp.i.i.i161 = icmp eq i32 %dec.i.i.i.i160, 0 - br i1 %cmp.i.i.i161, label %if.then2.i.i.i162, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - -if.then2.i.i.i162: ; preds = %if.then.i.i.i157 + %tobool.not.i3.i27.i = icmp eq ptr %44, null + br i1 %tobool.not.i3.i27.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i, label %if.then.i.i.i28.i + +if.then.i.i.i28.i: ; preds = %if.end.i26.i + %m_manager.i.i29.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %45 = load ptr, ptr %m_manager.i.i29.i, align 8 + %m_ref_count.i.i.i.i30.i = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 + %46 = load i32, ptr %m_ref_count.i.i.i.i30.i, align 4 + %dec.i.i.i.i31.i = add i32 %46, -1 + store i32 %dec.i.i.i.i31.i, ptr %m_ref_count.i.i.i.i30.i, align 4 + %cmp.i.i.i32.i = icmp eq i32 %dec.i.i.i.i31.i, 0 + br i1 %cmp.i.i.i32.i, label %if.then2.i.i.i33.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + +if.then2.i.i.i33.i: ; preds = %if.then.i.i.i28.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %45, ptr noundef nonnull %44) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit: ; preds = %if.end.i155, %if.then.i.i.i157, %if.then2.i.i.i162 +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i: ; preds = %if.then2.i.i.i33.i, %if.then.i.i.i28.i, %if.end.i26.i store ptr %42, ptr %result, align 8 - %47 = load ptr, ptr %m_nodes.i163, align 8 - %cmp.i.i.i135 = icmp eq ptr %47, null - br i1 %cmp.i.i.i135, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i, label %if.end.i.i.i136 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - %.pre.i148 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i149 = add i32 %.pre.i148, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - -if.end.i.i.i136: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - %arrayidx.i.i.i137 = getelementptr inbounds i32, ptr %47, i64 -1 - %48 = load i32, ptr %arrayidx.i.i.i137, align 4 + %47 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i.i37.i = icmp eq ptr %47, null + br i1 %cmp.i.i.i37.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i38.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + %.pre.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i = add i32 %.pre.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + +if.end.i.i.i38.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + %arrayidx.i.i.i39.i = getelementptr inbounds i32, ptr %47, i64 -1 + %48 = load i32, ptr %arrayidx.i.i.i39.i, align 4 %49 = add i32 %48, -1 %50 = zext i32 %49 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i136, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i - %dec.i.pre-phi.i138 = phi i32 [ %.pre1.i149, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i ], [ %49, %if.end.i.i.i136 ] - %retval.0.i.i.i139 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i ], [ %50, %if.end.i.i.i136 ] - %arrayidx.i1.i.i140 = getelementptr inbounds ptr, ptr %47, i64 %retval.0.i.i.i139 - %51 = load ptr, ptr %arrayidx.i1.i.i140, align 8 - %arrayidx.i.i141 = getelementptr inbounds i32, ptr %47, i64 -1 - store i32 %dec.i.pre-phi.i138, ptr %arrayidx.i.i141, align 4 - %52 = load ptr, ptr %m_result_stack.i169, align 8 - %tobool.not.i.i.i.i142 = icmp eq ptr %51, null - br i1 %tobool.not.i.i.i.i142, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, label %if.then.i.i.i.i143 - -if.then.i.i.i.i143: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - %m_ref_count.i.i.i.i.i144 = getelementptr inbounds %class.ast, ptr %51, i64 0, i32 2 - %53 = load i32, ptr %m_ref_count.i.i.i.i.i144, align 4 - %dec.i.i.i.i.i145 = add i32 %53, -1 - store i32 %dec.i.i.i.i.i145, ptr %m_ref_count.i.i.i.i.i144, align 4 - %cmp.i.i.i.i146 = icmp eq i32 %dec.i.i.i.i.i145, 0 - br i1 %cmp.i.i.i.i146, label %if.then2.i.i.i.i147, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - -if.then2.i.i.i.i147: ; preds = %if.then.i.i.i.i143 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i38.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i + %dec.i.pre-phi.i.i = phi i32 [ %.pre1.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %49, %if.end.i.i.i38.i ] + %retval.0.i.i.i40.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %50, %if.end.i.i.i38.i ] + %arrayidx.i1.i.i41.i = getelementptr inbounds ptr, ptr %47, i64 %retval.0.i.i.i40.i + %51 = load ptr, ptr %arrayidx.i1.i.i41.i, align 8 + %arrayidx.i.i.i = getelementptr inbounds i32, ptr %47, i64 -1 + store i32 %dec.i.pre-phi.i.i, ptr %arrayidx.i.i.i, align 4 + %52 = load ptr, ptr %m_result_stack.i.i, align 8 + %tobool.not.i.i.i.i.i33 = icmp eq ptr %51, null + br i1 %tobool.not.i.i.i.i.i33, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i.i34 + +if.then.i.i.i.i.i34: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + %m_ref_count.i.i.i.i.i.i35 = getelementptr inbounds %class.ast, ptr %51, i64 0, i32 2 + %53 = load i32, ptr %m_ref_count.i.i.i.i.i.i35, align 4 + %dec.i.i.i.i.i.i36 = add i32 %53, -1 + store i32 %dec.i.i.i.i.i.i36, ptr %m_ref_count.i.i.i.i.i.i35, align 4 + %cmp.i.i.i.i.i37 = icmp eq i32 %dec.i.i.i.i.i.i36, 0 + br i1 %cmp.i.i.i.i.i37, label %if.then2.i.i.i.i.i39, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +if.then2.i.i.i.i.i39: ; preds = %if.then.i.i.i.i.i34 tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %52, ptr noundef nonnull %51) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i, %if.then.i.i.i.i143, %if.then2.i.i.i.i147 - %m_result_pr_stack.i133 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_nodes.i127 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %54 = load ptr, ptr %m_nodes.i127, align 8 - %cmp.i.i.i128 = icmp eq ptr %54, null - br i1 %cmp.i.i.i128, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit, label %if.end.i.i.i129 - -if.end.i.i.i129: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - %arrayidx.i.i.i130 = getelementptr inbounds i32, ptr %54, i64 -1 - %55 = load i32, ptr %arrayidx.i.i.i130, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i.i39, %if.then.i.i.i.i.i34, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + %m_result_pr_stack.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_nodes.i42.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %54 = load ptr, ptr %m_nodes.i42.i, align 8 + %cmp.i.i.i43.i = icmp eq ptr %54, null + br i1 %cmp.i.i.i43.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i44.i + +if.end.i.i.i44.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + %arrayidx.i.i.i45.i = getelementptr inbounds i32, ptr %54, i64 -1 + %55 = load i32, ptr %arrayidx.i.i.i45.i, align 4 %56 = add i32 %55, -1 %57 = zext i32 %56 to i64 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, %if.end.i.i.i129 - %retval.0.i.i.i131 = phi i64 [ %57, %if.end.i.i.i129 ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit ] - %arrayidx.i1.i.i132 = getelementptr inbounds ptr, ptr %54, i64 %retval.0.i.i.i131 - %58 = load ptr, ptr %arrayidx.i1.i.i132, align 8 - %tobool.not.i114 = icmp eq ptr %58, null - br i1 %tobool.not.i114, label %if.end.i118, label %_ZN11ast_manager7inc_refEP3ast.exit.i115 - -_ZN11ast_manager7inc_refEP3ast.exit.i115: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %m_ref_count.i.i.i116 = getelementptr inbounds %class.ast, ptr %58, i64 0, i32 2 - %59 = load i32, ptr %m_ref_count.i.i.i116, align 4 - %inc.i.i.i117 = add i32 %59, 1 - store i32 %inc.i.i.i117, ptr %m_ref_count.i.i.i116, align 4 - br label %if.end.i118 - -if.end.i118: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i115, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i44.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + %retval.0.i.i.i46.i = phi i64 [ %57, %if.end.i.i.i44.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i ] + %arrayidx.i1.i.i47.i = getelementptr inbounds ptr, ptr %54, i64 %retval.0.i.i.i46.i + %58 = load ptr, ptr %arrayidx.i1.i.i47.i, align 8 + %tobool.not.i48.i = icmp eq ptr %58, null + br i1 %tobool.not.i48.i, label %if.end.i52.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i49.i + +_ZN11ast_manager7inc_refEP3ast.exit.i49.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + %m_ref_count.i.i.i50.i = getelementptr inbounds %class.ast, ptr %58, i64 0, i32 2 + %59 = load i32, ptr %m_ref_count.i.i.i50.i, align 4 + %inc.i.i.i51.i = add i32 %59, 1 + store i32 %inc.i.i.i51.i, ptr %m_ref_count.i.i.i50.i, align 4 + br label %if.end.i52.i + +if.end.i52.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i49.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i %60 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i119 = icmp eq ptr %60, null - br i1 %tobool.not.i3.i119, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126, label %if.then.i.i.i120 - -if.then.i.i.i120: ; preds = %if.end.i118 - %m_manager.i.i121 = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 - %61 = load ptr, ptr %m_manager.i.i121, align 8 - %m_ref_count.i.i.i.i122 = getelementptr inbounds %class.ast, ptr %60, i64 0, i32 2 - %62 = load i32, ptr %m_ref_count.i.i.i.i122, align 4 - %dec.i.i.i.i123 = add i32 %62, -1 - store i32 %dec.i.i.i.i123, ptr %m_ref_count.i.i.i.i122, align 4 - %cmp.i.i.i124 = icmp eq i32 %dec.i.i.i.i123, 0 - br i1 %cmp.i.i.i124, label %if.then2.i.i.i125, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 - -if.then2.i.i.i125: ; preds = %if.then.i.i.i120 + %tobool.not.i3.i53.i = icmp eq ptr %60, null + br i1 %tobool.not.i3.i53.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i, label %if.then.i.i.i54.i + +if.then.i.i.i54.i: ; preds = %if.end.i52.i + %m_manager.i.i55.i = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 + %61 = load ptr, ptr %m_manager.i.i55.i, align 8 + %m_ref_count.i.i.i.i56.i = getelementptr inbounds %class.ast, ptr %60, i64 0, i32 2 + %62 = load i32, ptr %m_ref_count.i.i.i.i56.i, align 4 + %dec.i.i.i.i57.i = add i32 %62, -1 + store i32 %dec.i.i.i.i57.i, ptr %m_ref_count.i.i.i.i56.i, align 4 + %cmp.i.i.i58.i = icmp eq i32 %dec.i.i.i.i57.i, 0 + br i1 %cmp.i.i.i58.i, label %if.then2.i.i.i59.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + +if.then2.i.i.i59.i: ; preds = %if.then.i.i.i54.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %61, ptr noundef nonnull %60) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126: ; preds = %if.end.i118, %if.then.i.i.i120, %if.then2.i.i.i125 +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i: ; preds = %if.then2.i.i.i59.i, %if.then.i.i.i54.i, %if.end.i52.i store ptr %58, ptr %result_pr, align 8 - %63 = load ptr, ptr %m_nodes.i127, align 8 - %cmp.i.i.i101 = icmp eq ptr %63, null - br i1 %cmp.i.i.i101, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i, label %if.end.i.i.i102 - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 - %.pre.i112 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i = add i32 %.pre.i112, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i - -if.end.i.i.i102: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 - %arrayidx.i.i.i103 = getelementptr inbounds i32, ptr %63, i64 -1 - %64 = load i32, ptr %arrayidx.i.i.i103, align 4 + %63 = load ptr, ptr %m_nodes.i42.i, align 8 + %cmp.i.i.i63.i = icmp eq ptr %63, null + br i1 %cmp.i.i.i63.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i64.i + +entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + %.pre.i76.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i77.i = add i32 %.pre.i76.i, -1 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i + +if.end.i.i.i64.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + %arrayidx.i.i.i65.i = getelementptr inbounds i32, ptr %63, i64 -1 + %64 = load i32, ptr %arrayidx.i.i.i65.i, align 4 %65 = add i32 %64, -1 %66 = zext i32 %65 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i - -_ZN6vectorIP3appLb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i102, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i - %dec.i.pre-phi.i = phi i32 [ %.pre1.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i ], [ %65, %if.end.i.i.i102 ] - %retval.0.i.i.i104 = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i ], [ %66, %if.end.i.i.i102 ] - %arrayidx.i1.i.i105 = getelementptr inbounds ptr, ptr %63, i64 %retval.0.i.i.i104 - %67 = load ptr, ptr %arrayidx.i1.i.i105, align 8 - %arrayidx.i.i106 = getelementptr inbounds i32, ptr %63, i64 -1 - store i32 %dec.i.pre-phi.i, ptr %arrayidx.i.i106, align 4 - %68 = load ptr, ptr %m_result_pr_stack.i133, align 8 - %tobool.not.i.i.i.i = icmp eq ptr %67, null - br i1 %tobool.not.i.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, label %if.then.i.i.i.i107 - -if.then.i.i.i.i107: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i - %m_ref_count.i.i.i.i.i108 = getelementptr inbounds %class.ast, ptr %67, i64 0, i32 2 - %69 = load i32, ptr %m_ref_count.i.i.i.i.i108, align 4 - %dec.i.i.i.i.i109 = add i32 %69, -1 - store i32 %dec.i.i.i.i.i109, ptr %m_ref_count.i.i.i.i.i108, align 4 - %cmp.i.i.i.i110 = icmp eq i32 %dec.i.i.i.i.i109, 0 - br i1 %cmp.i.i.i.i110, label %if.then2.i.i.i.i111, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - -if.then2.i.i.i.i111: ; preds = %if.then.i.i.i.i107 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i + +_ZN6vectorIP3appLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i64.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i + %dec.i.pre-phi.i66.i = phi i32 [ %.pre1.i77.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %65, %if.end.i.i.i64.i ] + %retval.0.i.i.i67.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %66, %if.end.i.i.i64.i ] + %arrayidx.i1.i.i68.i = getelementptr inbounds ptr, ptr %63, i64 %retval.0.i.i.i67.i + %67 = load ptr, ptr %arrayidx.i1.i.i68.i, align 8 + %arrayidx.i.i69.i = getelementptr inbounds i32, ptr %63, i64 -1 + store i32 %dec.i.pre-phi.i66.i, ptr %arrayidx.i.i69.i, align 4 + %68 = load ptr, ptr %m_result_pr_stack.i.i, align 8 + %tobool.not.i.i.i.i70.i = icmp eq ptr %67, null + br i1 %tobool.not.i.i.i.i70.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i71.i + +if.then.i.i.i.i71.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i + %m_ref_count.i.i.i.i.i72.i = getelementptr inbounds %class.ast, ptr %67, i64 0, i32 2 + %69 = load i32, ptr %m_ref_count.i.i.i.i.i72.i, align 4 + %dec.i.i.i.i.i73.i = add i32 %69, -1 + store i32 %dec.i.i.i.i.i73.i, ptr %m_ref_count.i.i.i.i.i72.i, align 4 + %cmp.i.i.i.i74.i = icmp eq i32 %dec.i.i.i.i.i73.i, 0 + br i1 %cmp.i.i.i.i74.i, label %if.then2.i.i.i.i75.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +if.then2.i.i.i.i75.i: ; preds = %if.then.i.i.i.i71.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %68, ptr noundef nonnull %67) - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i, %if.then.i.i.i.i107, %if.then2.i.i.i.i111 +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i75.i, %if.then.i.i.i.i71.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i %70 = load ptr, ptr %result_pr, align 8 - %cmp.i30 = icmp eq ptr %70, null - br i1 %cmp.i30, label %if.then29.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit + %cmp.i38 = icmp eq ptr %70, null + br i1 %cmp.i38, label %if.then29.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.then29.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit +if.then29.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i %this.val13.i = load ptr, ptr %28, align 8 %call31.i = tail call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val13.i, ptr noundef %t) - %tobool.not.i93 = icmp eq ptr %call31.i, null - br i1 %tobool.not.i93, label %if.end.i95, label %_ZN11ast_manager7inc_refEP3ast.exit.i + %tobool.not.i78.i = icmp eq ptr %call31.i, null + br i1 %tobool.not.i78.i, label %if.end.i82.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i79.i -_ZN11ast_manager7inc_refEP3ast.exit.i: ; preds = %if.then29.i - %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %call31.i, i64 0, i32 2 - %71 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i94 = add i32 %71, 1 - store i32 %inc.i.i.i94, ptr %m_ref_count.i.i.i, align 4 - br label %if.end.i95 +_ZN11ast_manager7inc_refEP3ast.exit.i79.i: ; preds = %if.then29.i + %m_ref_count.i.i.i80.i = getelementptr inbounds %class.ast, ptr %call31.i, i64 0, i32 2 + %71 = load i32, ptr %m_ref_count.i.i.i80.i, align 4 + %inc.i.i.i81.i = add i32 %71, 1 + store i32 %inc.i.i.i81.i, ptr %m_ref_count.i.i.i80.i, align 4 + br label %if.end.i82.i -if.end.i95: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i, %if.then29.i +if.end.i82.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i79.i, %if.then29.i %72 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i = icmp eq ptr %72, null - br i1 %tobool.not.i3.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit, label %if.then.i.i.i96 - -if.then.i.i.i96: ; preds = %if.end.i95 - %m_manager.i.i97 = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 - %73 = load ptr, ptr %m_manager.i.i97, align 8 - %m_ref_count.i.i.i.i98 = getelementptr inbounds %class.ast, ptr %72, i64 0, i32 2 - %74 = load i32, ptr %m_ref_count.i.i.i.i98, align 4 - %dec.i.i.i.i = add i32 %74, -1 - store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i98, align 4 - %cmp.i.i.i99 = icmp eq i32 %dec.i.i.i.i, 0 - br i1 %cmp.i.i.i99, label %if.then2.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit - -if.then2.i.i.i: ; preds = %if.then.i.i.i96 + %tobool.not.i3.i83.i = icmp eq ptr %72, null + br i1 %tobool.not.i3.i83.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i, label %if.then.i.i.i84.i + +if.then.i.i.i84.i: ; preds = %if.end.i82.i + %m_manager.i.i85.i = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 + %73 = load ptr, ptr %m_manager.i.i85.i, align 8 + %m_ref_count.i.i.i.i86.i = getelementptr inbounds %class.ast, ptr %72, i64 0, i32 2 + %74 = load i32, ptr %m_ref_count.i.i.i.i86.i, align 4 + %dec.i.i.i.i87.i = add i32 %74, -1 + store i32 %dec.i.i.i.i87.i, ptr %m_ref_count.i.i.i.i86.i, align 4 + %cmp.i.i.i88.i = icmp eq i32 %dec.i.i.i.i87.i, 0 + br i1 %cmp.i.i.i88.i, label %if.then2.i.i.i89.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i + +if.then2.i.i.i89.i: ; preds = %if.then.i.i.i84.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %73, ptr noundef nonnull %72) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit: ; preds = %if.end.i95, %if.then.i.i.i96, %if.then2.i.i.i +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i: ; preds = %if.then2.i.i.i89.i, %if.then.i.i.i84.i, %if.end.i82.i store ptr %call31.i, ptr %result_pr, align 8 br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit if.else.i: ; preds = %if.end17.i - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i62) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i.i) %75 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i632890 = icmp eq ptr %75, null - br i1 %cmp.i.i632890, label %while.end.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph + %cmp.i331.i.i = icmp eq ptr %75, null + br i1 %cmp.i331.i.i, label %while.end.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph: ; preds = %if.else.i - %m_cancel_check.i66 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i: ; preds = %if.else.i + %m_cancel_check.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 %76 = getelementptr inbounds i8, ptr %this, i64 144 - %m_cache.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %m_cache_pr.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 - %m_nodes.i30.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %m_bindings.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 - %m_shifts.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 - %m_result_stack.i956 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i.i918 = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i, i64 0, i32 1 - %m_nodes.i.i903 = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i, i64 0, i32 1 - %m_manager.i814 = getelementptr inbounds %class.obj_ref.135, ptr %new_q.i.i, i64 0, i32 1 - %m_pr.i66.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %m_manager.i.i807 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %m_r.i72.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_manager.i.i736 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %m_manager.i = getelementptr inbounds %class.obj_ref.42, ptr %pr2.i.i, i64 0, i32 1 - %m_result_pr_stack.i712 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_manager.i1234 = getelementptr inbounds %class.obj_ref.42, ptr %pr2315.i.i, i64 0, i32 1 - %m_manager.i1233 = getelementptr inbounds %class.obj_ref.42, ptr %pr1317.i.i, i64 0, i32 1 - %m_manager.i1693 = getelementptr inbounds %class.obj_ref.42, ptr %new_t.i.i, i64 0, i32 1 - %m_pr2.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 - %m_manager.i.i1549 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8, i32 1 - br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph, %while.cond.i.backedge - %77 = phi ptr [ %75, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph ], [ %115, %while.cond.i.backedge ] - %arrayidx.i.i64 = getelementptr inbounds i32, ptr %77, i64 -1 - %78 = load i32, ptr %arrayidx.i.i64, align 4 - %cmp3.i.i = icmp eq i32 %78, 0 - br i1 %cmp3.i.i, label %while.end.i, label %while.body.i - -while.body.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i - %this.val18.i = load ptr, ptr %28, align 8 - %call2.i.i = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val18.i) - br i1 %call2.i.i, label %if.end15.i79, label %if.then.i65 - -if.then.i65: ; preds = %while.body.i - %79 = load i8, ptr %m_cancel_check.i66, align 1 + %m_cache.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %m_cache_pr.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 + %m_nodes.i30.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %m_bindings.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 + %m_shifts.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 + %m_result_stack.i.i67.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i.i.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i.i, i64 0, i32 1 + %m_nodes.i.i92.i.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i.i, i64 0, i32 1 + %m_manager.i184.i.i.i = getelementptr inbounds %class.obj_ref.135, ptr %new_q.i.i.i, i64 0, i32 1 + %m_pr.i87.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %m_manager.i.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %m_r.i92.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_manager.i.i257.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %m_manager.i263.i.i.i = getelementptr inbounds %class.obj_ref.42, ptr %pr2.i.i.i, i64 0, i32 1 + %m_result_pr_stack.i280.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_manager.i436.i.i.i = getelementptr inbounds %class.obj_ref.42, ptr %pr2315.i.i.i, i64 0, i32 1 + %m_manager.i437.i.i.i = getelementptr inbounds %class.obj_ref.42, ptr %pr1317.i.i.i, i64 0, i32 1 + %m_manager.i.i.i.i = getelementptr inbounds %class.obj_ref.42, ptr %new_t.i.i.i, i64 0, i32 1 + %m_pr2.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 + %m_manager.i.i151.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8, i32 1 + br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %while.cond.backedge.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i + %77 = phi ptr [ %75, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i ], [ %115, %while.cond.backedge.i.i ] + %arrayidx.i.i91.i = getelementptr inbounds i32, ptr %77, i64 -1 + %78 = load i32, ptr %arrayidx.i.i91.i, align 4 + %cmp3.i.i.i = icmp eq i32 %78, 0 + br i1 %cmp3.i.i.i, label %while.end.i.i, label %while.body.i.i + +while.body.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i + %this.val18.i.i = load ptr, ptr %28, align 8 + %call2.i.i.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val18.i.i) + br i1 %call2.i.i.i, label %if.end15.i.i, label %if.then.i.i31 + +if.then.i.i31: ; preds = %while.body.i.i + %79 = load i8, ptr %m_cancel_check.i.i, align 1 %80 = and i8 %79, 1 - %tobool.not.i67 = icmp eq i8 %80, 0 - br i1 %tobool.not.i67, label %if.end15.i79, label %if.then5.i + %tobool.not.i92.i = icmp eq i8 %80, 0 + br i1 %tobool.not.i92.i, label %if.end15.i.i, label %if.then5.i.i -if.then5.i: ; preds = %if.then.i65 - call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i68 = call ptr @__cxa_allocate_exception(i64 40) #18 - %this.val17.i = load ptr, ptr %28, align 8 - %call8.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val17.i) - to label %invoke.cont.i74 unwind label %ehcleanup14.i.thread - -invoke.cont.i74: ; preds = %if.then5.i - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #18 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i62, ptr noundef %call8.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) - to label %invoke.cont11.i unwind label %ehcleanup14.i.thread2785 - -invoke.cont11.i: ; preds = %invoke.cont.i74 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i68, align 8 - %m_msg.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i68, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i62) #18 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i68, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i68, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #21 - to label %unreachable.i78 unwind label %ehcleanup14.i - -ehcleanup14.i.thread: ; preds = %if.then5.i +if.then5.i.i: ; preds = %if.then.i.i31 + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) + %exception.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #18 + %this.val17.i.i = load ptr, ptr %28, align 8 + %call8.i.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val17.i.i) + to label %invoke.cont.i.i unwind label %ehcleanup14.thread.i.i + +invoke.cont.i.i: ; preds = %if.then5.i.i + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #18 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i, ptr noundef %call8.i.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) + to label %invoke.cont11.i.i unwind label %ehcleanup14.thread297.i.i + +invoke.cont11.i.i: ; preds = %invoke.cont.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i, align 8 + %m_msg.i.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) #18 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i.i, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #21 + to label %unreachable.i.i unwind label %ehcleanup14.i.i + +ehcleanup14.thread.i.i: ; preds = %if.then5.i.i %81 = landingpad { ptr, i32 } cleanup - br label %cleanup.action.i73 + br label %cleanup.action.i.i -ehcleanup14.i.thread2785: ; preds = %invoke.cont.i74 +ehcleanup14.thread297.i.i: ; preds = %invoke.cont.i.i %82 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #18 - br label %cleanup.action.i73 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #18 + br label %cleanup.action.i.i -ehcleanup14.i: ; preds = %invoke.cont11.i +ehcleanup14.i.i: ; preds = %invoke.cont11.i.i %83 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i62) #18 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #18 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) #18 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #18 br label %common.resume -cleanup.action.i73: ; preds = %ehcleanup14.i.thread2785, %ehcleanup14.i.thread - %.pn.pn.i712784 = phi { ptr, i32 } [ %81, %ehcleanup14.i.thread ], [ %82, %ehcleanup14.i.thread2785 ] - call void @__cxa_free_exception(ptr %exception.i68) #18 +cleanup.action.i.i: ; preds = %ehcleanup14.thread297.i.i, %ehcleanup14.thread.i.i + %.pn.pn296.i.i = phi { ptr, i32 } [ %81, %ehcleanup14.thread.i.i ], [ %82, %ehcleanup14.thread297.i.i ] + call void @__cxa_free_exception(ptr %exception.i.i) #18 br label %common.resume -if.end15.i79: ; preds = %if.then.i65, %while.body.i +if.end15.i.i: ; preds = %if.then.i.i31, %while.body.i.i %84 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i.i = icmp eq ptr %84, null - br i1 %cmp.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i, label %if.end.i.i.i + %cmp.i.i.i93.i = icmp eq ptr %84, null + br i1 %cmp.i.i.i93.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, label %if.end.i.i.i94.i -if.end.i.i.i: ; preds = %if.end15.i79 - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %84, i64 -1 - %85 = load i32, ptr %arrayidx.i.i.i, align 4 +if.end.i.i.i94.i: ; preds = %if.end15.i.i + %arrayidx.i.i.i95.i = getelementptr inbounds i32, ptr %84, i64 -1 + %85 = load i32, ptr %arrayidx.i.i.i95.i, align 4 %86 = add i32 %85, -1 %87 = zext i32 %86 to i64 - br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i, %if.end15.i79 - %retval.0.i.i.i = phi i64 [ %87, %if.end.i.i.i ], [ 4294967295, %if.end15.i79 ] - %arrayidx.i1.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %84, i64 %retval.0.i.i.i - %88 = load ptr, ptr %arrayidx.i1.i.i, align 8 +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i94.i, %if.end15.i.i + %retval.0.i.i.i96.i = phi i64 [ %87, %if.end.i.i.i94.i ], [ 4294967295, %if.end15.i.i ] + %arrayidx.i1.i.i97.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %84, i64 %retval.0.i.i.i96.i + %88 = load ptr, ptr %arrayidx.i1.i.i97.i, align 8 %89 = load i32, ptr %m_num_steps.i, align 8 - %inc.i = add i32 %89, 1 - store i32 %inc.i, ptr %m_num_steps.i, align 8 - %this.val20.i = load ptr, ptr %76, align 8 - call fastcc void @_ZNK12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE15check_max_stepsEv(ptr %this.val20.i, i32 %inc.i) - %90 = getelementptr i8, ptr %arrayidx.i1.i.i, i64 8 - %call17.val.i = load i32, ptr %90, align 8 - %91 = and i32 %call17.val.i, -51 - %or.cond.not = icmp eq i32 %91, 1 - br i1 %or.cond.not, label %if.then20.i, label %if.end31.i - -if.then20.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i - %92 = load ptr, ptr %m_cache.i.i, align 8 - %call.i.i.i = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %92, ptr noundef %88, i32 noundef 0) - %tobool22.not.i = icmp eq ptr %call.i.i.i, null - br i1 %tobool22.not.i, label %if.end31.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %if.then20.i - %m_ref_count.i.i.i.i.i.i85 = getelementptr inbounds %class.ast, ptr %call.i.i.i, i64 0, i32 2 - %93 = load i32, ptr %m_ref_count.i.i.i.i.i.i85, align 4 - %inc.i.i.i.i.i.i = add i32 %93, 1 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i85, align 4 - %94 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i23.i = icmp eq ptr %94, null - br i1 %cmp.i.i23.i, label %if.then.i.i.i, label %lor.lhs.false.i.i.i - -lor.lhs.false.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i24.i = getelementptr inbounds i32, ptr %94, i64 -1 - %95 = load i32, ptr %arrayidx.i.i24.i, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %94, i64 -2 - %96 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %95, %96 - br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - %.pre.i.i.i = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 - %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %if.then.i.i.i, %lor.lhs.false.i.i.i - %97 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %95, %lor.lhs.false.i.i.i ] - %98 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %94, %lor.lhs.false.i.i.i ] - %idx.ext.i.i.i = zext i32 %97 to i64 - %add.ptr.i.i.i = getelementptr inbounds ptr, ptr %98, i64 %idx.ext.i.i.i - store ptr %call.i.i.i, ptr %add.ptr.i.i.i, align 8 - %99 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %99, i64 -1 - %100 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %100, 1 - store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 - %101 = load ptr, ptr %m_cache_pr.i.i, align 8 - %call.i.i25.i = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %101, ptr noundef %88, i32 noundef 0) - %tobool.not.i.i.i.i26.i = icmp eq ptr %call.i.i25.i, null - br i1 %tobool.not.i.i.i.i26.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %if.then.i.i.i.i27.i - -if.then.i.i.i.i27.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %m_ref_count.i.i.i.i.i28.i = getelementptr inbounds %class.ast, ptr %call.i.i25.i, i64 0, i32 2 - %102 = load i32, ptr %m_ref_count.i.i.i.i.i28.i, align 4 - %inc.i.i.i.i.i29.i = add i32 %102, 1 - store i32 %inc.i.i.i.i.i29.i, ptr %m_ref_count.i.i.i.i.i28.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %if.then.i.i.i.i27.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %103 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i31.i = icmp eq ptr %103, null - br i1 %cmp.i.i31.i, label %if.then.i.i40.i, label %lor.lhs.false.i.i32.i - -lor.lhs.false.i.i32.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i33.i = getelementptr inbounds i32, ptr %103, i64 -1 - %104 = load i32, ptr %arrayidx.i.i33.i, align 4 - %arrayidx4.i.i34.i = getelementptr inbounds i32, ptr %103, i64 -2 - %105 = load i32, ptr %arrayidx4.i.i34.i, align 4 - %cmp5.i.i35.i = icmp eq i32 %104, %105 - br i1 %cmp5.i.i35.i, label %if.then.i.i40.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i40.i: ; preds = %lor.lhs.false.i.i32.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - %.pre.i.i41.i = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i42.i = getelementptr inbounds i32, ptr %.pre.i.i41.i, i64 -1 - %.pre1.i.i43.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i42.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %if.then.i.i40.i, %lor.lhs.false.i.i32.i - %106 = phi i32 [ %.pre1.i.i43.i, %if.then.i.i40.i ], [ %104, %lor.lhs.false.i.i32.i ] - %107 = phi ptr [ %.pre.i.i41.i, %if.then.i.i40.i ], [ %103, %lor.lhs.false.i.i32.i ] - %idx.ext.i.i36.i = zext i32 %106 to i64 - %add.ptr.i.i37.i = getelementptr inbounds ptr, ptr %107, i64 %idx.ext.i.i36.i - store ptr %call.i.i25.i, ptr %add.ptr.i.i37.i, align 8 - %108 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i38.i = getelementptr inbounds i32, ptr %108, i64 -1 - %109 = load i32, ptr %arrayidx10.i.i38.i, align 4 - %inc.i.i39.i = add i32 %109, 1 - store i32 %inc.i.i39.i, ptr %arrayidx10.i.i38.i, align 4 + %inc.i.i = add i32 %89, 1 + store i32 %inc.i.i, ptr %m_num_steps.i, align 8 + %this.val20.i.i = load ptr, ptr %76, align 8 + tail call fastcc void @_ZNK12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE15check_max_stepsEv(ptr %this.val20.i.i, i32 %inc.i.i) + %90 = getelementptr i8, ptr %arrayidx.i1.i.i97.i, i64 8 + %call17.val.i.i = load i32, ptr %90, align 8 + %91 = and i32 %call17.val.i.i, -51 + %or.cond.not.i.i = icmp eq i32 %91, 1 + br i1 %or.cond.not.i.i, label %if.then20.i.i, label %if.end31.i.i + +if.then20.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i + %92 = load ptr, ptr %m_cache.i.i.i, align 8 + %call.i.i.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %92, ptr noundef %88, i32 noundef 0) + %tobool22.not.i.i = icmp eq ptr %call.i.i.i.i, null + br i1 %tobool22.not.i.i, label %if.end31.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then20.i.i + %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %call.i.i.i.i, i64 0, i32 2 + %93 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i = add i32 %93, 1 + store i32 %inc.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 + %94 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i23.i.i = icmp eq ptr %94, null + br i1 %cmp.i.i23.i.i, label %if.then.i.i.i107.i, label %lor.lhs.false.i.i.i.i + +lor.lhs.false.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + %arrayidx.i.i24.i.i = getelementptr inbounds i32, ptr %94, i64 -1 + %95 = load i32, ptr %arrayidx.i.i24.i.i, align 4 + %arrayidx4.i.i.i.i = getelementptr inbounds i32, ptr %94, i64 -2 + %96 = load i32, ptr %arrayidx4.i.i.i.i, align 4 + %cmp5.i.i.i.i = icmp eq i32 %95, %96 + br i1 %cmp5.i.i.i.i, label %if.then.i.i.i107.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +if.then.i.i.i107.i: ; preds = %lor.lhs.false.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + %.pre.i.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i, i64 -1 + %.pre1.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %if.then.i.i.i107.i, %lor.lhs.false.i.i.i.i + %97 = phi i32 [ %.pre1.i.i.i.i, %if.then.i.i.i107.i ], [ %95, %lor.lhs.false.i.i.i.i ] + %98 = phi ptr [ %.pre.i.i.i.i, %if.then.i.i.i107.i ], [ %94, %lor.lhs.false.i.i.i.i ] + %idx.ext.i.i.i.i = zext i32 %97 to i64 + %add.ptr.i.i.i.i = getelementptr inbounds ptr, ptr %98, i64 %idx.ext.i.i.i.i + store ptr %call.i.i.i.i, ptr %add.ptr.i.i.i.i, align 8 + %99 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i.i.i = getelementptr inbounds i32, ptr %99, i64 -1 + %100 = load i32, ptr %arrayidx10.i.i.i.i, align 4 + %inc.i.i.i105.i = add i32 %100, 1 + store i32 %inc.i.i.i105.i, ptr %arrayidx10.i.i.i.i, align 4 + %101 = load ptr, ptr %m_cache_pr.i.i.i, align 8 + %call.i.i25.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %101, ptr noundef %88, i32 noundef 0) + %tobool.not.i.i.i.i26.i.i = icmp eq ptr %call.i.i25.i.i, null + br i1 %tobool.not.i.i.i.i26.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i27.i.i + +if.then.i.i.i.i27.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %m_ref_count.i.i.i.i.i28.i.i = getelementptr inbounds %class.ast, ptr %call.i.i25.i.i, i64 0, i32 2 + %102 = load i32, ptr %m_ref_count.i.i.i.i.i28.i.i, align 4 + %inc.i.i.i.i.i29.i.i = add i32 %102, 1 + store i32 %inc.i.i.i.i.i29.i.i, ptr %m_ref_count.i.i.i.i.i28.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i27.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %103 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i31.i.i = icmp eq ptr %103, null + br i1 %cmp.i.i31.i.i, label %if.then.i.i40.i.i, label %lor.lhs.false.i.i32.i.i + +lor.lhs.false.i.i32.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + %arrayidx.i.i33.i.i = getelementptr inbounds i32, ptr %103, i64 -1 + %104 = load i32, ptr %arrayidx.i.i33.i.i, align 4 + %arrayidx4.i.i34.i.i = getelementptr inbounds i32, ptr %103, i64 -2 + %105 = load i32, ptr %arrayidx4.i.i34.i.i, align 4 + %cmp5.i.i35.i.i = icmp eq i32 %104, %105 + br i1 %cmp5.i.i35.i.i, label %if.then.i.i40.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +if.then.i.i40.i.i: ; preds = %lor.lhs.false.i.i32.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + %.pre.i.i41.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i42.i.i = getelementptr inbounds i32, ptr %.pre.i.i41.i.i, i64 -1 + %.pre1.i.i43.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i42.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %if.then.i.i40.i.i, %lor.lhs.false.i.i32.i.i + %106 = phi i32 [ %.pre1.i.i43.i.i, %if.then.i.i40.i.i ], [ %104, %lor.lhs.false.i.i32.i.i ] + %107 = phi ptr [ %.pre.i.i41.i.i, %if.then.i.i40.i.i ], [ %103, %lor.lhs.false.i.i32.i.i ] + %idx.ext.i.i36.i.i = zext i32 %106 to i64 + %add.ptr.i.i37.i.i = getelementptr inbounds ptr, ptr %107, i64 %idx.ext.i.i36.i.i + store ptr %call.i.i25.i.i, ptr %add.ptr.i.i37.i.i, align 8 + %108 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i38.i.i = getelementptr inbounds i32, ptr %108, i64 -1 + %109 = load i32, ptr %arrayidx10.i.i38.i.i, align 4 + %inc.i.i39.i.i = add i32 %109, 1 + store i32 %inc.i.i39.i.i, ptr %arrayidx10.i.i38.i.i, align 4 %110 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i45.i = getelementptr inbounds i32, ptr %110, i64 -1 - %111 = load i32, ptr %arrayidx.i45.i, align 4 - %dec.i.i = add i32 %111, -1 - store i32 %dec.i.i, ptr %arrayidx.i45.i, align 4 - %this.val19.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i.i = icmp eq ptr %88, %call.i.i.i - %cmp.i.i.i.i = icmp eq ptr %this.val19.i, null - %or.cond.i.i = select i1 %cmp.not.i.i, i1 true, i1 %cmp.i.i.i.i - br i1 %or.cond.i.i, label %while.cond.i.backedge, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %this.val19.i, i64 -1 - %112 = load i32, ptr %arrayidx.i.i.i.i, align 4 - %cmp3.i.i.i.i = icmp eq i32 %112, 0 - br i1 %cmp3.i.i.i.i, label %while.cond.i.backedgethread-pre-split, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i + %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %110, i64 -1 + %111 = load i32, ptr %arrayidx.i45.i.i, align 4 + %dec.i.i.i = add i32 %111, -1 + store i32 %dec.i.i.i, ptr %arrayidx.i45.i.i, align 4 + %this.val19.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i = icmp eq ptr %88, %call.i.i.i.i + %cmp.i.i.i.i106.i = icmp eq ptr %this.val19.i.i, null + %or.cond.i.i.i = select i1 %cmp.not.i.i.i, i1 true, i1 %cmp.i.i.i.i106.i + br i1 %or.cond.i.i.i, label %while.cond.backedge.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %arrayidx.i.i.i.i.i = getelementptr inbounds i32, ptr %this.val19.i.i, i64 -1 + %112 = load i32, ptr %arrayidx.i.i.i.i.i, align 4 + %cmp3.i.i.i.i.i = icmp eq i32 %112, 0 + br i1 %cmp3.i.i.i.i.i, label %while.cond.backedgethread-pre-split.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i %113 = add i32 %112, -1 %114 = zext i32 %113 to i64 - %m_new_child.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val19.i, i64 %114, i32 1 - %bf.load.i.i.i = load i32, ptr %m_new_child.i.i.i, align 8 - %bf.set.i.i.i = or i32 %bf.load.i.i.i, 2 - store i32 %bf.set.i.i.i, ptr %m_new_child.i.i.i, align 8 - br label %while.cond.i.backedgethread-pre-split - -while.cond.i.backedgethread-pre-split: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i, %sw.bb36.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - %.pr2939 = load ptr, ptr %m_frame_stack.i, align 8 - br label %while.cond.i.backedge - -while.cond.i.backedge: ; preds = %while.cond.i.backedgethread-pre-split, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %115 = phi ptr [ %.pr2939, %while.cond.i.backedgethread-pre-split ], [ %this.val19.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i ] - %cmp.i.i63 = icmp eq ptr %115, null - br i1 %cmp.i.i63, label %while.end.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, !llvm.loop !19 - -if.end31.i: ; preds = %if.then20.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i - %m_kind.i.i = getelementptr inbounds %class.ast, ptr %88, i64 0, i32 1 - %bf.load.i.i = load i32, ptr %m_kind.i.i, align 4 - %trunc = trunc i32 %bf.load.i.i to i16 - switch i16 %trunc, label %sw.default.i [ - i16 0, label %sw.bb.i - i16 2, label %sw.bb34.i - i16 1, label %sw.bb36.i + %m_new_child.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val19.i.i, i64 %114, i32 1 + %bf.load.i.i.i.i = load i32, ptr %m_new_child.i.i.i.i, align 8 + %bf.set.i.i.i.i = or i32 %bf.load.i.i.i.i, 2 + store i32 %bf.set.i.i.i.i, ptr %m_new_child.i.i.i.i, align 8 + br label %while.cond.backedgethread-pre-split.i.i + +while.cond.backedgethread-pre-split.i.i: ; preds = %sw.bb36.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i + %.pr.i.i = load ptr, ptr %m_frame_stack.i, align 8 + br label %while.cond.backedge.i.i + +while.cond.backedge.i.i: ; preds = %while.cond.backedgethread-pre-split.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %115 = phi ptr [ %.pr.i.i, %while.cond.backedgethread-pre-split.i.i ], [ %this.val19.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i ] + %cmp.i.i.i = icmp eq ptr %115, null + br i1 %cmp.i.i.i, label %while.end.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, !llvm.loop !19 + +if.end31.i.i: ; preds = %if.then20.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i + %m_kind.i.i.i = getelementptr inbounds %class.ast, ptr %88, i64 0, i32 1 + %bf.load.i.i.i = load i32, ptr %m_kind.i.i.i, align 4 + %trunc.i.i = trunc i32 %bf.load.i.i.i to i16 + switch i16 %trunc.i.i, label %sw.default.i.i [ + i16 0, label %sw.bb.i.i + i16 2, label %sw.bb34.i.i + i16 1, label %sw.bb36.i.i ] -sw.bb.i: ; preds = %if.end31.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2315.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr1317.i.i) - %bf.load.i46.i = load i32, ptr %90, align 8 - %bf.lshr.i.i = lshr i32 %bf.load.i46.i, 2 - %bf.clear.i47.i = and i32 %bf.lshr.i.i, 3 - switch i32 %bf.clear.i47.i, label %entry.unreachabledefault.i.i [ - i32 0, label %sw.bb.i.i - i32 1, label %sw.bb314.i.i - i32 2, label %sw.bb373.i.i - i32 3, label %sw.bb374.i.i +sw.bb.i.i: ; preds = %if.end31.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2315.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr1317.i.i.i) + %bf.load.i46.i.i = load i32, ptr %90, align 8 + %bf.lshr.i.i.i = lshr i32 %bf.load.i46.i.i, 2 + %bf.clear.i47.i.i = and i32 %bf.lshr.i.i.i, 3 + switch i32 %bf.clear.i47.i.i, label %sw.bb.i.i.unreachabledefault [ + i32 0, label %sw.bb.i.i.i + i32 1, label %sw.bb314.i.i.i + i32 2, label %sw.bb373.i.i.i + i32 3, label %sw.bb374.i.i.i ] -sw.bb.i.i: ; preds = %sw.bb.i - %m_num_args.i = getelementptr inbounds %class.app, ptr %88, i64 0, i32 2 - %116 = load i32, ptr %m_num_args.i, align 8 - br label %while.cond.i.i - -while.cond.i.i: ; preds = %while.body.i.i, %sw.bb.i.i - %bf.load2.i.i = load i32, ptr %90, align 8 - %bf.lshr3.i.i = lshr i32 %bf.load2.i.i, 6 - %cmp.i48.i = icmp ult i32 %bf.lshr3.i.i, %116 - br i1 %cmp.i48.i, label %while.body.i.i, label %while.end.i.i - -while.body.i.i: ; preds = %while.cond.i.i - %idxprom.i = zext nneg i32 %bf.lshr3.i.i to i64 - %arrayidx.i1703 = getelementptr inbounds %class.app, ptr %88, i64 0, i32 3, i64 %idxprom.i - %117 = load ptr, ptr %arrayidx.i1703, align 8 - %118 = and i32 %bf.load2.i.i, -64 - %bf.shl.i.i = add i32 %118, 64 - %bf.clear12.i.i = and i32 %bf.load2.i.i, 63 - %bf.set.i.i = or disjoint i32 %bf.shl.i.i, %bf.clear12.i.i - store i32 %bf.set.i.i, ptr %90, align 8 - %bf.lshr14.i.i = lshr i32 %bf.load2.i.i, 4 - %bf.clear15.i.i = and i32 %bf.lshr14.i.i, 3 - %call16.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %117, i32 noundef %bf.clear15.i.i) - br i1 %call16.i.i, label %while.cond.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, !llvm.loop !20 - -while.end.i.i: ; preds = %while.cond.i.i - %m_decl.i = getelementptr inbounds %class.app, ptr %88, i64 0, i32 1 - %119 = load ptr, ptr %m_decl.i, align 8 - %120 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1697 = icmp eq ptr %120, null - br i1 %cmp.i.i1697, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i1698 - -if.end.i.i1698: ; preds = %while.end.i.i - %arrayidx.i.i1699 = getelementptr inbounds i32, ptr %120, i64 -1 - %121 = load i32, ptr %arrayidx.i.i1699, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %while.end.i.i, %if.end.i.i1698 - %retval.0.i.i1701 = phi i32 [ %121, %if.end.i.i1698 ], [ 0, %while.end.i.i ] - %m_spos.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %84, i64 %retval.0.i.i.i, i32 2 - %122 = load i32, ptr %m_spos.i.i, align 4 - %sub.i.i = sub i32 %retval.0.i.i1701, %122 - %idx.ext.i.i = zext i32 %122 to i64 - %add.ptr.i.i = getelementptr inbounds ptr, ptr %120, i64 %idx.ext.i.i - %this.val56.i.i = load ptr, ptr %28, align 8 - store ptr null, ptr %new_t.i.i, align 8 - store ptr %this.val56.i.i, ptr %m_manager.i1693, align 8 +sw.bb.i.i.i: ; preds = %sw.bb.i.i + %m_num_args.i.i.i.i = getelementptr inbounds %class.app, ptr %88, i64 0, i32 2 + %116 = load i32, ptr %m_num_args.i.i.i.i, align 8 + br label %while.cond.i.i.i + +while.cond.i.i.i: ; preds = %while.body.i.i.i, %sw.bb.i.i.i + %bf.load2.i.i.i = load i32, ptr %90, align 8 + %bf.lshr3.i.i.i = lshr i32 %bf.load2.i.i.i, 6 + %cmp.i48.i.i = icmp ult i32 %bf.lshr3.i.i.i, %116 + br i1 %cmp.i48.i.i, label %while.body.i.i.i, label %while.end.i.i.i + +while.body.i.i.i: ; preds = %while.cond.i.i.i + %idxprom.i.i.i.i = zext nneg i32 %bf.lshr3.i.i.i to i64 + %arrayidx.i.i62.i.i = getelementptr inbounds %class.app, ptr %88, i64 0, i32 3, i64 %idxprom.i.i.i.i + %117 = load ptr, ptr %arrayidx.i.i62.i.i, align 8 + %118 = and i32 %bf.load2.i.i.i, -64 + %bf.shl.i.i.i = add i32 %118, 64 + %bf.clear12.i.i.i = and i32 %bf.load2.i.i.i, 63 + %bf.set.i.i.i = or disjoint i32 %bf.shl.i.i.i, %bf.clear12.i.i.i + store i32 %bf.set.i.i.i, ptr %90, align 8 + %bf.lshr14.i.i.i = lshr i32 %bf.load2.i.i.i, 4 + %bf.clear15.i.i.i = and i32 %bf.lshr14.i.i.i, 3 + %call16.i.i.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %117, i32 noundef %bf.clear15.i.i.i) + br i1 %call16.i.i.i, label %while.cond.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, !llvm.loop !20 + +while.end.i.i.i: ; preds = %while.cond.i.i.i + %m_decl.i.i.i.i = getelementptr inbounds %class.app, ptr %88, i64 0, i32 1 + %119 = load ptr, ptr %m_decl.i.i.i.i, align 8 + %120 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i49.i.i = icmp eq ptr %120, null + br i1 %cmp.i.i.i49.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i, label %if.end.i.i.i.i.i + +if.end.i.i.i.i.i: ; preds = %while.end.i.i.i + %arrayidx.i.i.i50.i.i = getelementptr inbounds i32, ptr %120, i64 -1 + %121 = load i32, ptr %arrayidx.i.i.i50.i.i, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i.i.i.i, %while.end.i.i.i + %retval.0.i.i.i.i.i = phi i32 [ %121, %if.end.i.i.i.i.i ], [ 0, %while.end.i.i.i ] + %m_spos.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %84, i64 %retval.0.i.i.i96.i, i32 2 + %122 = load i32, ptr %m_spos.i.i.i, align 4 + %sub.i.i.i = sub i32 %retval.0.i.i.i.i.i, %122 + %idx.ext.i.i.i = zext i32 %122 to i64 + %add.ptr.i.i.i = getelementptr inbounds ptr, ptr %120, i64 %idx.ext.i.i.i + %this.val56.i.i.i = load ptr, ptr %28, align 8 + store ptr null, ptr %new_t.i.i.i, align 8 + store ptr %this.val56.i.i.i, ptr %m_manager.i.i.i.i, align 8 invoke void @_ZN13rewriter_core15elim_reflex_prsEj(ptr noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %122) - to label %invoke.cont.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %123 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1688 = icmp eq ptr %123, null - br i1 %cmp.i.i1688, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i1689 - -if.end.i.i1689: ; preds = %invoke.cont.i.i - %arrayidx.i.i1690 = getelementptr inbounds i32, ptr %123, i64 -1 - %124 = load i32, ptr %arrayidx.i.i1690, align 4 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %invoke.cont.i.i, %if.end.i.i1689 - %retval.0.i.i = phi i32 [ %124, %if.end.i.i1689 ], [ 0, %invoke.cont.i.i ] - %125 = load i32, ptr %m_spos.i.i, align 4 - %sub29.i.i = sub i32 %retval.0.i.i, %125 - %cmp30.i.i = icmp eq i32 %retval.0.i.i, %125 - br i1 %cmp30.i.i, label %invoke.cont32.i.i, label %if.else.i.i - -invoke.cont32.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %m_ref_count.i.i.i1675 = getelementptr inbounds %class.ast, ptr %88, i64 0, i32 2 - %126 = load i32, ptr %m_ref_count.i.i.i1675, align 4 - %inc.i.i.i1676 = add i32 %126, 1 - store i32 %inc.i.i.i1676, ptr %m_ref_count.i.i.i1675, align 4 - store ptr %88, ptr %new_t.i.i, align 8 - %127 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i1664 = icmp eq ptr %127, null - br i1 %tobool.not.i3.i1664, label %if.end55.i.i, label %if.then.i.i.i1665 - -if.then.i.i.i1665: ; preds = %invoke.cont32.i.i - %128 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i1667 = getelementptr inbounds %class.ast, ptr %127, i64 0, i32 2 - %129 = load i32, ptr %m_ref_count.i.i.i.i1667, align 4 - %dec.i.i.i.i1668 = add i32 %129, -1 - store i32 %dec.i.i.i.i1668, ptr %m_ref_count.i.i.i.i1667, align 4 - %cmp.i.i.i1669 = icmp eq i32 %dec.i.i.i.i1668, 0 - br i1 %cmp.i.i.i1669, label %if.then2.i.i.i1670, label %if.end55.i.i - -if.then2.i.i.i1670: ; preds = %if.then.i.i.i1665 + to label %invoke.cont.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %123 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i64.i.i.i = icmp eq ptr %123, null + br i1 %cmp.i.i64.i.i.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i, label %if.end.i.i65.i.i.i + +if.end.i.i65.i.i.i: ; preds = %invoke.cont.i.i.i + %arrayidx.i.i66.i.i.i = getelementptr inbounds i32, ptr %123, i64 -1 + %124 = load i32, ptr %arrayidx.i.i66.i.i.i, align 4 + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i65.i.i.i, %invoke.cont.i.i.i + %retval.0.i.i67.i.i.i = phi i32 [ %124, %if.end.i.i65.i.i.i ], [ 0, %invoke.cont.i.i.i ] + %125 = load i32, ptr %m_spos.i.i.i, align 4 + %sub29.i.i.i = sub i32 %retval.0.i.i67.i.i.i, %125 + %cmp30.i.i.i = icmp eq i32 %retval.0.i.i67.i.i.i, %125 + br i1 %cmp30.i.i.i, label %invoke.cont32.i.i.i, label %if.else.i.i.i + +invoke.cont32.i.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %m_ref_count.i.i.i.i.i104.i = getelementptr inbounds %class.ast, ptr %88, i64 0, i32 2 + %126 = load i32, ptr %m_ref_count.i.i.i.i.i104.i, align 4 + %inc.i.i.i.i.i.i = add i32 %126, 1 + store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i104.i, align 4 + store ptr %88, ptr %new_t.i.i.i, align 8 + %127 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i69.i.i.i = icmp eq ptr %127, null + br i1 %tobool.not.i3.i69.i.i.i, label %if.end55.i.i.i, label %if.then.i.i.i70.i.i.i + +if.then.i.i.i70.i.i.i: ; preds = %invoke.cont32.i.i.i + %128 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i72.i.i.i = getelementptr inbounds %class.ast, ptr %127, i64 0, i32 2 + %129 = load i32, ptr %m_ref_count.i.i.i.i72.i.i.i, align 4 + %dec.i.i.i.i73.i.i.i = add i32 %129, -1 + store i32 %dec.i.i.i.i73.i.i.i, ptr %m_ref_count.i.i.i.i72.i.i.i, align 4 + %cmp.i.i.i74.i.i.i = icmp eq i32 %dec.i.i.i.i73.i.i.i, 0 + br i1 %cmp.i.i.i74.i.i.i, label %if.then2.i.i.i75.i.i.i, label %if.end55.i.i.i + +if.then2.i.i.i75.i.i.i: ; preds = %if.then.i.i.i70.i.i.i invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %128, ptr noundef nonnull %127) - to label %if.end55.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %if.end55.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i -lpad.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i1325 - %lpad.loopexit2846 = landingpad { ptr, i32 } +lpad.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i377.i.i.i + %lpad.loopexit661.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1378 - %lpad.loopexit2849 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i324.i.i.i + %lpad.loopexit663.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1580 - %lpad.loopexit2852 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i142.i.i.i + %lpad.loopexit666.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1629 - %lpad.loopexit2855 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i + %lpad.loopexit669.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then2.i.i.i1670, %if.then2.i.i.i1644, %if.then.i.i1599, %if.then2.i.i.i1553, %if.then2.i.i.i1539, %if.then.i.i1521, %if.then2.i.i.i1503, %if.then.i1493, %if.then2.i.i.i1476, %if.then2.i.i.i1466, %if.then2.i.i.i1421, %if.then2.i.i.i1407, %if.then2.i.i.i1393, %if.then.i.i1348, %if.then.i1330, %if.then.i.i1295, %if.then2.i.i.i1277, %if.then2.i.i.i1252, %invoke.cont256.i.i, %if.then251.i.i, %if.end87.i.i, %if.then75.i.i, %if.end55.i.i, %invoke.cont39.i.i, %if.else.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %lpad.loopexit.split-lp2856 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.then2.i.i.i426.i.i.i, %if.then2.i.i.i409.i.i.i, %if.then.i.i396.i.i.i, %if.then.i350.i.i.i, %if.then.i.i343.i.i.i, %if.then2.i.i.i297.i.i.i, %if.then2.i.i.i283.i.i.i, %invoke.cont256.i.i.i, %if.then2.i.i.i269.i.i.i, %if.then251.i.i.i, %if.then2.i.i.i225.i.i.i, %if.then2.i.i.i216.i.i.i, %if.then.i.i53.i.i, %if.then2.i.i.i199.i.i.i, %if.then.i.i187.i.i.i, %if.then2.i.i.i169.i.i.i, %if.end87.i.i.i, %if.then2.i.i.i155.i.i.i, %if.then75.i.i.i, %if.then.i.i119.i.i.i, %if.end55.i.i.i, %if.then2.i.i.i105.i.i.i, %invoke.cont39.i.i.i, %if.else.i.i.i, %if.then2.i.i.i75.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %lpad.loopexit.split-lp670.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i - -lpad.i.i: ; preds = %lpad.i.i.loopexit.split-lp.loopexit, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.i.i.loopexit - %lpad.phi2848 = phi { ptr, i32 } [ %lpad.loopexit2846, %lpad.i.i.loopexit ], [ %lpad.loopexit2849, %lpad.i.i.loopexit.split-lp.loopexit ], [ %lpad.loopexit2852, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2855, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2856, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i) #18 - br label %common.resume - -if.else.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %this.val55.i.i = load ptr, ptr %28, align 8 - %call38.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i.i, ptr noundef %119, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i) - to label %invoke.cont37.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont37.i.i: ; preds = %if.else.i.i - %tobool.not.i1649 = icmp eq ptr %call38.i.i, null - br i1 %tobool.not.i1649, label %invoke.cont39.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i1650 - -_ZN11ast_manager7inc_refEP3ast.exit.i1650: ; preds = %invoke.cont37.i.i - %m_ref_count.i.i.i1651 = getelementptr inbounds %class.ast, ptr %call38.i.i, i64 0, i32 2 - %130 = load i32, ptr %m_ref_count.i.i.i1651, align 4 - %inc.i.i.i1652 = add i32 %130, 1 - store i32 %inc.i.i.i1652, ptr %m_ref_count.i.i.i1651, align 4 - br label %invoke.cont39.i.i - -invoke.cont39.i.i: ; preds = %invoke.cont37.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i1650 - store ptr %call38.i.i, ptr %new_t.i.i, align 8 - %this.val54.i.i = load ptr, ptr %28, align 8 - %131 = load ptr, ptr %m_nodes.i30.i, align 8 - %132 = load i32, ptr %m_spos.i.i, align 4 - %idx.ext48.i.i = zext i32 %132 to i64 - %add.ptr49.i.i = getelementptr inbounds ptr, ptr %131, i64 %idx.ext48.i.i - %call51.i.i = invoke noundef ptr @_ZN11ast_manager13mk_congruenceEP3appS1_jPKS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i.i, ptr noundef nonnull %88, ptr noundef %call38.i.i, i32 noundef %sub29.i.i, ptr noundef %add.ptr49.i.i) - to label %invoke.cont50.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont50.i.i: ; preds = %invoke.cont39.i.i - %tobool.not.i1633 = icmp eq ptr %call51.i.i, null - br i1 %tobool.not.i1633, label %if.end.i1637, label %_ZN11ast_manager7inc_refEP3ast.exit.i1634 - -_ZN11ast_manager7inc_refEP3ast.exit.i1634: ; preds = %invoke.cont50.i.i - %m_ref_count.i.i.i1635 = getelementptr inbounds %class.ast, ptr %call51.i.i, i64 0, i32 2 - %133 = load i32, ptr %m_ref_count.i.i.i1635, align 4 - %inc.i.i.i1636 = add i32 %133, 1 - store i32 %inc.i.i.i1636, ptr %m_ref_count.i.i.i1635, align 4 - br label %if.end.i1637 - -if.end.i1637: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1634, %invoke.cont50.i.i - %134 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i1638 = icmp eq ptr %134, null - br i1 %tobool.not.i3.i1638, label %if.end55.i.i, label %if.then.i.i.i1639 - -if.then.i.i.i1639: ; preds = %if.end.i1637 - %135 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i1641 = getelementptr inbounds %class.ast, ptr %134, i64 0, i32 2 - %136 = load i32, ptr %m_ref_count.i.i.i.i1641, align 4 - %dec.i.i.i.i1642 = add i32 %136, -1 - store i32 %dec.i.i.i.i1642, ptr %m_ref_count.i.i.i.i1641, align 4 - %cmp.i.i.i1643 = icmp eq i32 %dec.i.i.i.i1642, 0 - br i1 %cmp.i.i.i1643, label %if.then2.i.i.i1644, label %if.end55.i.i - -if.then2.i.i.i1644: ; preds = %if.then.i.i.i1639 + br label %eh.resume.i.i.i + +if.else.i.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %this.val55.i.i.i = load ptr, ptr %28, align 8 + %call38.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i.i.i, ptr noundef %119, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i) + to label %invoke.cont37.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont37.i.i.i: ; preds = %if.else.i.i.i + %tobool.not.i78.i.i.i = icmp eq ptr %call38.i.i.i, null + br i1 %tobool.not.i78.i.i.i, label %invoke.cont39.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i: ; preds = %invoke.cont37.i.i.i + %m_ref_count.i.i.i80.i.i.i = getelementptr inbounds %class.ast, ptr %call38.i.i.i, i64 0, i32 2 + %130 = load i32, ptr %m_ref_count.i.i.i80.i.i.i, align 4 + %inc.i.i.i81.i.i.i = add i32 %130, 1 + store i32 %inc.i.i.i81.i.i.i, ptr %m_ref_count.i.i.i80.i.i.i, align 4 + br label %invoke.cont39.i.i.i + +invoke.cont39.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i, %invoke.cont37.i.i.i + store ptr %call38.i.i.i, ptr %new_t.i.i.i, align 8 + %this.val54.i.i.i = load ptr, ptr %28, align 8 + %131 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %132 = load i32, ptr %m_spos.i.i.i, align 4 + %idx.ext48.i.i.i = zext i32 %132 to i64 + %add.ptr49.i.i.i = getelementptr inbounds ptr, ptr %131, i64 %idx.ext48.i.i.i + %call51.i.i.i = invoke noundef ptr @_ZN11ast_manager13mk_congruenceEP3appS1_jPKS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i.i.i, ptr noundef nonnull %88, ptr noundef %call38.i.i.i, i32 noundef %sub29.i.i.i, ptr noundef %add.ptr49.i.i.i) + to label %invoke.cont50.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont50.i.i.i: ; preds = %invoke.cont39.i.i.i + %tobool.not.i94.i.i.i = icmp eq ptr %call51.i.i.i, null + br i1 %tobool.not.i94.i.i.i, label %if.end.i98.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i: ; preds = %invoke.cont50.i.i.i + %m_ref_count.i.i.i96.i.i.i = getelementptr inbounds %class.ast, ptr %call51.i.i.i, i64 0, i32 2 + %133 = load i32, ptr %m_ref_count.i.i.i96.i.i.i, align 4 + %inc.i.i.i97.i.i.i = add i32 %133, 1 + store i32 %inc.i.i.i97.i.i.i, ptr %m_ref_count.i.i.i96.i.i.i, align 4 + br label %if.end.i98.i.i.i + +if.end.i98.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i, %invoke.cont50.i.i.i + %134 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i99.i.i.i = icmp eq ptr %134, null + br i1 %tobool.not.i3.i99.i.i.i, label %if.end55.i.i.i, label %if.then.i.i.i100.i.i.i + +if.then.i.i.i100.i.i.i: ; preds = %if.end.i98.i.i.i + %135 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i102.i.i.i = getelementptr inbounds %class.ast, ptr %134, i64 0, i32 2 + %136 = load i32, ptr %m_ref_count.i.i.i.i102.i.i.i, align 4 + %dec.i.i.i.i103.i.i.i = add i32 %136, -1 + store i32 %dec.i.i.i.i103.i.i.i, ptr %m_ref_count.i.i.i.i102.i.i.i, align 4 + %cmp.i.i.i104.i.i.i = icmp eq i32 %dec.i.i.i.i103.i.i.i, 0 + br i1 %cmp.i.i.i104.i.i.i, label %if.then2.i.i.i105.i.i.i, label %if.end55.i.i.i + +if.then2.i.i.i105.i.i.i: ; preds = %if.then.i.i.i100.i.i.i invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %135, ptr noundef nonnull %134) - to label %if.end55.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.end55.i.i: ; preds = %if.then.i.i.i1639, %if.end.i1637, %if.then2.i.i.i1644, %if.then.i.i.i1665, %invoke.cont32.i.i, %if.then2.i.i.i1670 - %storemerge2938 = phi ptr [ null, %if.then2.i.i.i1670 ], [ null, %invoke.cont32.i.i ], [ null, %if.then.i.i.i1665 ], [ %call51.i.i, %if.then2.i.i.i1644 ], [ %call51.i.i, %if.end.i1637 ], [ %call51.i.i, %if.then.i.i.i1639 ] - %137 = phi ptr [ %88, %if.then2.i.i.i1670 ], [ %88, %invoke.cont32.i.i ], [ %88, %if.then.i.i.i1665 ], [ %call38.i.i, %if.then2.i.i.i1644 ], [ %call38.i.i, %if.end.i1637 ], [ %call38.i.i, %if.then.i.i.i1639 ] - store ptr %storemerge2938, ptr %m_pr.i66.i, align 8 - %138 = load ptr, ptr %76, align 8 - %call57.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(580) %138, ptr noundef %119, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i72.i, ptr noundef nonnull align 8 dereferenceable(16) %m_pr2.i.i) - to label %invoke.cont56.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, !range !21 - -invoke.cont56.i.i: ; preds = %if.end55.i.i - %cmp58.not.i.i = icmp eq i32 %call57.i.i, 5 - br i1 %cmp58.not.i.i, label %if.else246.i.i, label %if.then59.i.i - -if.then59.i.i: ; preds = %invoke.cont56.i.i - %139 = load i32, ptr %m_spos.i.i, align 4 - %140 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1607 = icmp eq ptr %140, null - br i1 %cmp.i.i.i1607, label %invoke.cont62.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1608 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1608: ; preds = %if.then59.i.i - %arrayidx.i.i.i1611 = getelementptr inbounds i32, ptr %140, i64 -1 - %141 = load i32, ptr %arrayidx.i.i.i1611, align 4 - %142 = zext i32 %141 to i64 - %add.ptr.i.i1612 = getelementptr inbounds ptr, ptr %140, i64 %142 - %cmp3.i.i1613 = icmp ugt i32 %141, %139 - br i1 %cmp3.i.i1613, label %for.body.i.i1616.preheader, label %if.then.i.i1614 - -for.body.i.i1616.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1608 - %idx.ext.i1609 = zext i32 %139 to i64 - %add.ptr.i1610 = getelementptr inbounds ptr, ptr %140, i64 %idx.ext.i1609 - br label %for.body.i.i1616 - -for.body.i.i1616: ; preds = %for.body.i.i1616.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1623 - %it.04.i.i1617 = phi ptr [ %incdec.ptr.i.i1624, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1623 ], [ %add.ptr.i1610, %for.body.i.i1616.preheader ] - %143 = load ptr, ptr %it.04.i.i1617, align 8 - %144 = load ptr, ptr %m_result_stack.i956, align 8 - %tobool.not.i.i.i.i.i1618 = icmp eq ptr %143, null - br i1 %tobool.not.i.i.i.i.i1618, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1623, label %if.then.i.i.i.i.i1619 - -if.then.i.i.i.i.i1619: ; preds = %for.body.i.i1616 - %m_ref_count.i.i.i.i.i.i1620 = getelementptr inbounds %class.ast, ptr %143, i64 0, i32 2 - %145 = load i32, ptr %m_ref_count.i.i.i.i.i.i1620, align 4 - %dec.i.i.i.i.i.i1621 = add i32 %145, -1 - store i32 %dec.i.i.i.i.i.i1621, ptr %m_ref_count.i.i.i.i.i.i1620, align 4 - %cmp.i.i.i.i.i1622 = icmp eq i32 %dec.i.i.i.i.i.i1621, 0 - br i1 %cmp.i.i.i.i.i1622, label %if.then2.i.i.i.i.i1629, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1623 - -if.then2.i.i.i.i.i1629: ; preds = %if.then.i.i.i.i.i1619 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %144, ptr noundef nonnull %143) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1623 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1623: ; preds = %if.then2.i.i.i.i.i1629, %if.then.i.i.i.i.i1619, %for.body.i.i1616 - %incdec.ptr.i.i1624 = getelementptr inbounds ptr, ptr %it.04.i.i1617, i64 1 - %cmp.i.i1625 = icmp ult ptr %incdec.ptr.i.i1624, %add.ptr.i.i1612 - br i1 %cmp.i.i1625, label %for.body.i.i1616, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1626, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1626: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1623 - %.pre.i1627 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i1628 = icmp eq ptr %.pre.i1627, null - br i1 %tobool.not.i.i1628, label %invoke.cont62.i.i, label %if.then.i.i1614 - -if.then.i.i1614: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1626, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1608 - %146 = phi ptr [ %.pre.i1627, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1626 ], [ %140, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1608 ] - %arrayidx.i.i1615 = getelementptr inbounds i32, ptr %146, i64 -1 - store i32 %139, ptr %arrayidx.i.i1615, align 4 - br label %invoke.cont62.i.i - -invoke.cont62.i.i: ; preds = %if.then.i.i1614, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1626, %if.then59.i.i - %147 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i.i.i.i1584 = icmp eq ptr %147, null - br i1 %tobool.not.i.i.i.i1584, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1588, label %if.then.i.i.i.i1585 - -if.then.i.i.i.i1585: ; preds = %invoke.cont62.i.i - %m_ref_count.i.i.i.i.i1586 = getelementptr inbounds %class.ast, ptr %147, i64 0, i32 2 - %148 = load i32, ptr %m_ref_count.i.i.i.i.i1586, align 4 - %inc.i.i.i.i.i1587 = add i32 %148, 1 - store i32 %inc.i.i.i.i.i1587, ptr %m_ref_count.i.i.i.i.i1586, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1588 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1588: ; preds = %if.then.i.i.i.i1585, %invoke.cont62.i.i - %149 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1590 = icmp eq ptr %149, null - br i1 %cmp.i.i1590, label %if.then.i.i1599, label %lor.lhs.false.i.i1591 - -lor.lhs.false.i.i1591: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1588 - %arrayidx.i.i1592 = getelementptr inbounds i32, ptr %149, i64 -1 - %150 = load i32, ptr %arrayidx.i.i1592, align 4 - %arrayidx4.i.i1593 = getelementptr inbounds i32, ptr %149, i64 -2 - %151 = load i32, ptr %arrayidx4.i.i1593, align 4 - %cmp5.i.i1594 = icmp eq i32 %150, %151 - br i1 %cmp5.i.i1594, label %if.then.i.i1599, label %invoke.cont67.i.i - -if.then.i.i1599: ; preds = %lor.lhs.false.i.i1591, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1588 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc1603 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1603: ; preds = %if.then.i.i1599 - %.pre.i.i1600 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1601 = getelementptr inbounds i32, ptr %.pre.i.i1600, i64 -1 - %.pre1.i.i1602 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1601, align 4 - br label %invoke.cont67.i.i - -invoke.cont67.i.i: ; preds = %.noexc1603, %lor.lhs.false.i.i1591 - %152 = phi i32 [ %.pre1.i.i1602, %.noexc1603 ], [ %150, %lor.lhs.false.i.i1591 ] - %153 = phi ptr [ %.pre.i.i1600, %.noexc1603 ], [ %149, %lor.lhs.false.i.i1591 ] - %idx.ext.i.i1595 = zext i32 %152 to i64 - %add.ptr.i.i1596 = getelementptr inbounds ptr, ptr %153, i64 %idx.ext.i.i1595 - store ptr %147, ptr %add.ptr.i.i1596, align 8 - %154 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1597 = getelementptr inbounds i32, ptr %154, i64 -1 - %155 = load i32, ptr %arrayidx10.i.i1597, align 4 - %inc.i.i1598 = add i32 %155, 1 - store i32 %inc.i.i1598, ptr %arrayidx10.i.i1597, align 4 - %156 = load i32, ptr %m_spos.i.i, align 4 - %157 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1558 = icmp eq ptr %157, null - br i1 %cmp.i.i.i1558, label %invoke.cont71.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i1559 - -_ZN6vectorIP3appLb0EjE3endEv.exit.i1559: ; preds = %invoke.cont67.i.i - %arrayidx.i.i.i1562 = getelementptr inbounds i32, ptr %157, i64 -1 - %158 = load i32, ptr %arrayidx.i.i.i1562, align 4 - %159 = zext i32 %158 to i64 - %add.ptr.i.i1563 = getelementptr inbounds ptr, ptr %157, i64 %159 - %cmp3.i.i1564 = icmp ugt i32 %158, %156 - br i1 %cmp3.i.i1564, label %for.body.i.i1567.preheader, label %if.then.i.i1565 - -for.body.i.i1567.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i1559 - %idx.ext.i1560 = zext i32 %156 to i64 - %add.ptr.i1561 = getelementptr inbounds ptr, ptr %157, i64 %idx.ext.i1560 - br label %for.body.i.i1567 - -for.body.i.i1567: ; preds = %for.body.i.i1567.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1574 - %it.04.i.i1568 = phi ptr [ %incdec.ptr.i.i1575, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1574 ], [ %add.ptr.i1561, %for.body.i.i1567.preheader ] - %160 = load ptr, ptr %it.04.i.i1568, align 8 - %161 = load ptr, ptr %m_result_pr_stack.i712, align 8 - %tobool.not.i.i.i.i.i1569 = icmp eq ptr %160, null - br i1 %tobool.not.i.i.i.i.i1569, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1574, label %if.then.i.i.i.i.i1570 - -if.then.i.i.i.i.i1570: ; preds = %for.body.i.i1567 - %m_ref_count.i.i.i.i.i.i1571 = getelementptr inbounds %class.ast, ptr %160, i64 0, i32 2 - %162 = load i32, ptr %m_ref_count.i.i.i.i.i.i1571, align 4 - %dec.i.i.i.i.i.i1572 = add i32 %162, -1 - store i32 %dec.i.i.i.i.i.i1572, ptr %m_ref_count.i.i.i.i.i.i1571, align 4 - %cmp.i.i.i.i.i1573 = icmp eq i32 %dec.i.i.i.i.i.i1572, 0 - br i1 %cmp.i.i.i.i.i1573, label %if.then2.i.i.i.i.i1580, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1574 - -if.then2.i.i.i.i.i1580: ; preds = %if.then.i.i.i.i.i1570 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %161, ptr noundef nonnull %160) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1574 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1574: ; preds = %if.then2.i.i.i.i.i1580, %if.then.i.i.i.i.i1570, %for.body.i.i1567 - %incdec.ptr.i.i1575 = getelementptr inbounds ptr, ptr %it.04.i.i1568, i64 1 - %cmp.i.i1576 = icmp ult ptr %incdec.ptr.i.i1575, %add.ptr.i.i1563 - br i1 %cmp.i.i1576, label %for.body.i.i1567, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1577, !llvm.loop !18 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1577: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1574 - %.pre.i1578 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i1579 = icmp eq ptr %.pre.i1578, null - br i1 %tobool.not.i.i1579, label %invoke.cont71.i.i, label %if.then.i.i1565 - -if.then.i.i1565: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1577, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1559 - %163 = phi ptr [ %.pre.i1578, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1577 ], [ %157, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1559 ] - %arrayidx.i.i1566 = getelementptr inbounds i32, ptr %163, i64 -1 - store i32 %156, ptr %arrayidx.i.i1566, align 4 - br label %invoke.cont71.i.i - -invoke.cont71.i.i: ; preds = %if.then.i.i1565, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1577, %invoke.cont67.i.i - %164 = load ptr, ptr %m_pr2.i.i, align 8 - %cmp.i1556 = icmp eq ptr %164, null - br i1 %cmp.i1556, label %if.then75.i.i, label %if.end87.i.i - -if.then75.i.i: ; preds = %invoke.cont71.i.i - %this.val53.i.i = load ptr, ptr %28, align 8 - %165 = load ptr, ptr %m_r.i72.i, align 8 - %call83.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val53.i.i, ptr noundef %137, ptr noundef %165) - to label %invoke.cont82.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont82.i.i: ; preds = %if.then75.i.i - %tobool.not.i1542 = icmp eq ptr %call83.i.i, null - br i1 %tobool.not.i1542, label %if.end.i1546, label %_ZN11ast_manager7inc_refEP3ast.exit.i1543 - -_ZN11ast_manager7inc_refEP3ast.exit.i1543: ; preds = %invoke.cont82.i.i - %m_ref_count.i.i.i1544 = getelementptr inbounds %class.ast, ptr %call83.i.i, i64 0, i32 2 - %166 = load i32, ptr %m_ref_count.i.i.i1544, align 4 - %inc.i.i.i1545 = add i32 %166, 1 - store i32 %inc.i.i.i1545, ptr %m_ref_count.i.i.i1544, align 4 - br label %if.end.i1546 - -if.end.i1546: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1543, %invoke.cont82.i.i - %167 = load ptr, ptr %m_pr2.i.i, align 8 - %tobool.not.i3.i1547 = icmp eq ptr %167, null - br i1 %tobool.not.i3.i1547, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1555, label %if.then.i.i.i1548 - -if.then.i.i.i1548: ; preds = %if.end.i1546 - %168 = load ptr, ptr %m_manager.i.i1549, align 8 - %m_ref_count.i.i.i.i1550 = getelementptr inbounds %class.ast, ptr %167, i64 0, i32 2 - %169 = load i32, ptr %m_ref_count.i.i.i.i1550, align 4 - %dec.i.i.i.i1551 = add i32 %169, -1 - store i32 %dec.i.i.i.i1551, ptr %m_ref_count.i.i.i.i1550, align 4 - %cmp.i.i.i1552 = icmp eq i32 %dec.i.i.i.i1551, 0 - br i1 %cmp.i.i.i1552, label %if.then2.i.i.i1553, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1555 - -if.then2.i.i.i1553: ; preds = %if.then.i.i.i1548 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %168, ptr noundef nonnull %167) - to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1555 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1555: ; preds = %if.then2.i.i.i1553, %if.end.i1546, %if.then.i.i.i1548 - store ptr %call83.i.i, ptr %m_pr2.i.i, align 8 - br label %if.end87.i.i - -if.end87.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1555, %invoke.cont71.i.i - %170 = phi ptr [ %call83.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1555 ], [ %164, %invoke.cont71.i.i ] - %this.val52.i.i = load ptr, ptr %28, align 8 - %171 = load ptr, ptr %m_pr.i66.i, align 8 - %call96.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val52.i.i, ptr noundef %171, ptr noundef %170) - to label %invoke.cont95.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont95.i.i: ; preds = %if.end87.i.i - %tobool.not.i1528 = icmp eq ptr %call96.i.i, null - br i1 %tobool.not.i1528, label %if.end.i1532, label %_ZN11ast_manager7inc_refEP3ast.exit.i1529 - -_ZN11ast_manager7inc_refEP3ast.exit.i1529: ; preds = %invoke.cont95.i.i - %m_ref_count.i.i.i1530 = getelementptr inbounds %class.ast, ptr %call96.i.i, i64 0, i32 2 - %172 = load i32, ptr %m_ref_count.i.i.i1530, align 4 - %inc.i.i.i1531 = add i32 %172, 1 - store i32 %inc.i.i.i1531, ptr %m_ref_count.i.i.i1530, align 4 - br label %if.end.i1532 - -if.end.i1532: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1529, %invoke.cont95.i.i - %173 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i1533 = icmp eq ptr %173, null - br i1 %tobool.not.i3.i1533, label %invoke.cont98.i.i, label %if.then.i.i.i1534 - -if.then.i.i.i1534: ; preds = %if.end.i1532 - %174 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i1536 = getelementptr inbounds %class.ast, ptr %173, i64 0, i32 2 - %175 = load i32, ptr %m_ref_count.i.i.i.i1536, align 4 - %dec.i.i.i.i1537 = add i32 %175, -1 - store i32 %dec.i.i.i.i1537, ptr %m_ref_count.i.i.i.i1536, align 4 - %cmp.i.i.i1538 = icmp eq i32 %dec.i.i.i.i1537, 0 - br i1 %cmp.i.i.i1538, label %if.then2.i.i.i1539, label %invoke.cont98.i.i - -if.then2.i.i.i1539: ; preds = %if.then.i.i.i1534 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %174, ptr noundef nonnull %173) - to label %invoke.cont98.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont98.i.i: ; preds = %if.then.i.i.i1534, %if.end.i1532, %if.then2.i.i.i1539 - store ptr %call96.i.i, ptr %m_pr.i66.i, align 8 - br i1 %tobool.not.i1528, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1510, label %if.then.i.i.i.i1507 - -if.then.i.i.i.i1507: ; preds = %invoke.cont98.i.i - %m_ref_count.i.i.i.i.i1508 = getelementptr inbounds %class.ast, ptr %call96.i.i, i64 0, i32 2 - %176 = load i32, ptr %m_ref_count.i.i.i.i.i1508, align 4 - %inc.i.i.i.i.i1509 = add i32 %176, 1 - store i32 %inc.i.i.i.i.i1509, ptr %m_ref_count.i.i.i.i.i1508, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1510 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1510: ; preds = %if.then.i.i.i.i1507, %invoke.cont98.i.i - %177 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1512 = icmp eq ptr %177, null - br i1 %cmp.i.i1512, label %if.then.i.i1521, label %lor.lhs.false.i.i1513 - -lor.lhs.false.i.i1513: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1510 - %arrayidx.i.i1514 = getelementptr inbounds i32, ptr %177, i64 -1 - %178 = load i32, ptr %arrayidx.i.i1514, align 4 - %arrayidx4.i.i1515 = getelementptr inbounds i32, ptr %177, i64 -2 - %179 = load i32, ptr %arrayidx4.i.i1515, align 4 - %cmp5.i.i1516 = icmp eq i32 %178, %179 - br i1 %cmp5.i.i1516, label %if.then.i.i1521, label %invoke.cont104.i.i - -if.then.i.i1521: ; preds = %lor.lhs.false.i.i1513, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1510 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1525 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1525: ; preds = %if.then.i.i1521 - %.pre.i.i1522 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1523 = getelementptr inbounds i32, ptr %.pre.i.i1522, i64 -1 - %.pre1.i.i1524 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1523, align 4 - br label %invoke.cont104.i.i - -invoke.cont104.i.i: ; preds = %.noexc1525, %lor.lhs.false.i.i1513 - %180 = phi i32 [ %.pre1.i.i1524, %.noexc1525 ], [ %178, %lor.lhs.false.i.i1513 ] - %181 = phi ptr [ %.pre.i.i1522, %.noexc1525 ], [ %177, %lor.lhs.false.i.i1513 ] - %idx.ext.i.i1517 = zext i32 %180 to i64 - %add.ptr.i.i1518 = getelementptr inbounds ptr, ptr %181, i64 %idx.ext.i.i1517 - store ptr %call96.i.i, ptr %add.ptr.i.i1518, align 8 - %182 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1519 = getelementptr inbounds i32, ptr %182, i64 -1 - %183 = load i32, ptr %arrayidx10.i.i1519, align 4 - %inc.i.i1520 = add i32 %183, 1 - store i32 %inc.i.i1520, ptr %arrayidx10.i.i1519, align 4 - %184 = load ptr, ptr %m_pr2.i.i, align 8 - %tobool.not.i3.i1497 = icmp eq ptr %184, null - br i1 %tobool.not.i3.i1497, label %if.then110.i.i, label %if.then.i.i.i1498 - -if.then.i.i.i1498: ; preds = %invoke.cont104.i.i - %185 = load ptr, ptr %m_manager.i.i1549, align 8 - %m_ref_count.i.i.i.i1500 = getelementptr inbounds %class.ast, ptr %184, i64 0, i32 2 - %186 = load i32, ptr %m_ref_count.i.i.i.i1500, align 4 - %dec.i.i.i.i1501 = add i32 %186, -1 - store i32 %dec.i.i.i.i1501, ptr %m_ref_count.i.i.i.i1500, align 4 - %cmp.i.i.i1502 = icmp eq i32 %dec.i.i.i.i1501, 0 - br i1 %cmp.i.i.i1502, label %if.then2.i.i.i1503, label %if.then110.i.i - -if.then2.i.i.i1503: ; preds = %if.then.i.i.i1498 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %185, ptr noundef nonnull %184) - to label %if.then110.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.then110.i.i: ; preds = %if.then.i.i.i1498, %invoke.cont104.i.i, %if.then2.i.i.i1503 - store ptr null, ptr %m_pr2.i.i, align 8 - %bf.load117.i.i = load i32, ptr %90, align 8 - %bf.clear118.i.i = and i32 %bf.load117.i.i, 1 - %tobool.i.i.not = icmp eq i32 %bf.clear118.i.i, 0 - br i1 %tobool.i.i.not, label %invoke.cont119.i.i, label %if.then.i1493 - -if.then.i1493: ; preds = %if.then110.i.i - %187 = load ptr, ptr %m_pr.i66.i, align 8 - %188 = load ptr, ptr %m_r.i72.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %88, ptr noundef %188, ptr noundef %187) - to label %invoke.cont119.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont119.i.i: ; preds = %if.then110.i.i, %if.then.i1493 - %189 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1489 = getelementptr inbounds i32, ptr %189, i64 -1 - %190 = load i32, ptr %arrayidx.i1489, align 4 - %dec.i1490 = add i32 %190, -1 - store i32 %dec.i1490, ptr %arrayidx.i1489, align 4 - %this.val58.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i1479 = icmp eq ptr %this.val58.i.i, null - br i1 %cmp.i.i1479, label %invoke.cont121.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1480 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1480: ; preds = %invoke.cont119.i.i - %arrayidx.i.i1481 = getelementptr inbounds i32, ptr %this.val58.i.i, i64 -1 - %191 = load i32, ptr %arrayidx.i.i1481, align 4 - %cmp3.i.i1482 = icmp eq i32 %191, 0 - br i1 %cmp3.i.i1482, label %invoke.cont121.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1483 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1483: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1480 - %192 = add i32 %191, -1 - %193 = zext i32 %192 to i64 - %m_new_child.i1484 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val58.i.i, i64 %193, i32 1 - %bf.load.i1485 = load i32, ptr %m_new_child.i1484, align 8 - %bf.set.i1486 = or i32 %bf.load.i1485, 2 - store i32 %bf.set.i1486, ptr %m_new_child.i1484, align 8 - br label %invoke.cont121.i.i - -invoke.cont121.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1483, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1480, %invoke.cont119.i.i - %194 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i3.i1470 = icmp eq ptr %194, null - br i1 %tobool.not.i3.i1470, label %invoke.cont123.i.i, label %if.then.i.i.i1471 - -if.then.i.i.i1471: ; preds = %invoke.cont121.i.i - %195 = load ptr, ptr %m_manager.i.i736, align 8 - %m_ref_count.i.i.i.i1473 = getelementptr inbounds %class.ast, ptr %194, i64 0, i32 2 - %196 = load i32, ptr %m_ref_count.i.i.i.i1473, align 4 - %dec.i.i.i.i1474 = add i32 %196, -1 - store i32 %dec.i.i.i.i1474, ptr %m_ref_count.i.i.i.i1473, align 4 - %cmp.i.i.i1475 = icmp eq i32 %dec.i.i.i.i1474, 0 - br i1 %cmp.i.i.i1475, label %if.then2.i.i.i1476, label %invoke.cont123.i.i - -if.then2.i.i.i1476: ; preds = %if.then.i.i.i1471 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %195, ptr noundef nonnull %194) - to label %invoke.cont123.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont123.i.i: ; preds = %if.then.i.i.i1471, %invoke.cont121.i.i, %if.then2.i.i.i1476 - store ptr null, ptr %m_r.i72.i, align 8 - %197 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i1460 = icmp eq ptr %197, null - br i1 %tobool.not.i3.i1460, label %cleanup.i.i, label %if.then.i.i.i1461 - -if.then.i.i.i1461: ; preds = %invoke.cont123.i.i - %198 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i1463 = getelementptr inbounds %class.ast, ptr %197, i64 0, i32 2 - %199 = load i32, ptr %m_ref_count.i.i.i.i1463, align 4 - %dec.i.i.i.i1464 = add i32 %199, -1 - store i32 %dec.i.i.i.i1464, ptr %m_ref_count.i.i.i.i1463, align 4 - %cmp.i.i.i1465 = icmp eq i32 %dec.i.i.i.i1464, 0 - br i1 %cmp.i.i.i1465, label %if.then2.i.i.i1466, label %cleanup.i.i - -if.then2.i.i.i1466: ; preds = %if.then.i.i.i1461 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %198, ptr noundef nonnull %197) - to label %cleanup.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.else246.i.i: ; preds = %invoke.cont56.i.i - %bf.load247.i.i = load i32, ptr %90, align 8 - %200 = and i32 %bf.load247.i.i, 2 - %tobool250.not.i.i = icmp eq i32 %200, 0 - br i1 %tobool250.not.i.i, label %if.end.i1386, label %if.then251.i.i - -if.then251.i.i: ; preds = %if.else246.i.i - %this.val50.i.i = load ptr, ptr %28, align 8 - %call254.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val50.i.i, ptr noundef %119, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i) - to label %invoke.cont253.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont253.i.i: ; preds = %if.then251.i.i - %tobool.not.i1410 = icmp eq ptr %call254.i.i, null - br i1 %tobool.not.i1410, label %if.end.i1414, label %_ZN11ast_manager7inc_refEP3ast.exit.i1411 - -_ZN11ast_manager7inc_refEP3ast.exit.i1411: ; preds = %invoke.cont253.i.i - %m_ref_count.i.i.i1412 = getelementptr inbounds %class.ast, ptr %call254.i.i, i64 0, i32 2 - %201 = load i32, ptr %m_ref_count.i.i.i1412, align 4 - %inc.i.i.i1413 = add i32 %201, 1 - store i32 %inc.i.i.i1413, ptr %m_ref_count.i.i.i1412, align 4 - br label %if.end.i1414 - -if.end.i1414: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1411, %invoke.cont253.i.i - %202 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i3.i1415 = icmp eq ptr %202, null - br i1 %tobool.not.i3.i1415, label %invoke.cont256.i.i, label %if.then.i.i.i1416 - -if.then.i.i.i1416: ; preds = %if.end.i1414 - %203 = load ptr, ptr %m_manager.i.i736, align 8 - %m_ref_count.i.i.i.i1418 = getelementptr inbounds %class.ast, ptr %202, i64 0, i32 2 - %204 = load i32, ptr %m_ref_count.i.i.i.i1418, align 4 - %dec.i.i.i.i1419 = add i32 %204, -1 - store i32 %dec.i.i.i.i1419, ptr %m_ref_count.i.i.i.i1418, align 4 - %cmp.i.i.i1420 = icmp eq i32 %dec.i.i.i.i1419, 0 - br i1 %cmp.i.i.i1420, label %if.then2.i.i.i1421, label %invoke.cont256.i.i - -if.then2.i.i.i1421: ; preds = %if.then.i.i.i1416 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %203, ptr noundef nonnull %202) - to label %invoke.cont256.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont256.i.i: ; preds = %if.then.i.i.i1416, %if.end.i1414, %if.then2.i.i.i1421 - store ptr %call254.i.i, ptr %m_r.i72.i, align 8 - %this.val49.i.i = load ptr, ptr %28, align 8 - %call263.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val49.i.i, ptr noundef nonnull %88, ptr noundef %call254.i.i) - to label %invoke.cont262.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont262.i.i: ; preds = %invoke.cont256.i.i - %tobool.not.i1396 = icmp eq ptr %call263.i.i, null - br i1 %tobool.not.i1396, label %if.end.i1400, label %_ZN11ast_manager7inc_refEP3ast.exit.i1397 - -_ZN11ast_manager7inc_refEP3ast.exit.i1397: ; preds = %invoke.cont262.i.i - %m_ref_count.i.i.i1398 = getelementptr inbounds %class.ast, ptr %call263.i.i, i64 0, i32 2 - %205 = load i32, ptr %m_ref_count.i.i.i1398, align 4 - %inc.i.i.i1399 = add i32 %205, 1 - store i32 %inc.i.i.i1399, ptr %m_ref_count.i.i.i1398, align 4 - br label %if.end.i1400 - -if.end.i1400: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1397, %invoke.cont262.i.i - %206 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i1401 = icmp eq ptr %206, null - br i1 %tobool.not.i3.i1401, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1409, label %if.then.i.i.i1402 - -if.then.i.i.i1402: ; preds = %if.end.i1400 - %207 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i1404 = getelementptr inbounds %class.ast, ptr %206, i64 0, i32 2 - %208 = load i32, ptr %m_ref_count.i.i.i.i1404, align 4 - %dec.i.i.i.i1405 = add i32 %208, -1 - store i32 %dec.i.i.i.i1405, ptr %m_ref_count.i.i.i.i1404, align 4 - %cmp.i.i.i1406 = icmp eq i32 %dec.i.i.i.i1405, 0 - br i1 %cmp.i.i.i1406, label %if.then2.i.i.i1407, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1409 - -if.then2.i.i.i1407: ; preds = %if.then.i.i.i1402 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %207, ptr noundef nonnull %206) - to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1409 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1409: ; preds = %if.then2.i.i.i1407, %if.end.i1400, %if.then.i.i.i1402 - store ptr %call263.i.i, ptr %m_pr.i66.i, align 8 - br label %if.end272.i.i - -if.end.i1386: ; preds = %if.else246.i.i - %m_ref_count.i.i.i1384 = getelementptr inbounds %class.ast, ptr %88, i64 0, i32 2 - %209 = load i32, ptr %m_ref_count.i.i.i1384, align 4 - %inc.i.i.i1385 = add i32 %209, 1 - store i32 %inc.i.i.i1385, ptr %m_ref_count.i.i.i1384, align 4 - %210 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i3.i1387 = icmp eq ptr %210, null - br i1 %tobool.not.i3.i1387, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1395, label %if.then.i.i.i1388 - -if.then.i.i.i1388: ; preds = %if.end.i1386 - %211 = load ptr, ptr %m_manager.i.i736, align 8 - %m_ref_count.i.i.i.i1390 = getelementptr inbounds %class.ast, ptr %210, i64 0, i32 2 - %212 = load i32, ptr %m_ref_count.i.i.i.i1390, align 4 - %dec.i.i.i.i1391 = add i32 %212, -1 - store i32 %dec.i.i.i.i1391, ptr %m_ref_count.i.i.i.i1390, align 4 - %cmp.i.i.i1392 = icmp eq i32 %dec.i.i.i.i1391, 0 - br i1 %cmp.i.i.i1392, label %if.then2.i.i.i1393, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1395 - -if.then2.i.i.i1393: ; preds = %if.then.i.i.i1388 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %211, ptr noundef nonnull %210) - to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1395 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1395: ; preds = %if.then2.i.i.i1393, %if.end.i1386, %if.then.i.i.i1388 - store ptr %88, ptr %m_r.i72.i, align 8 - br label %if.end272.i.i - -if.end272.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1409, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1395 - %213 = load i32, ptr %m_spos.i.i, align 4 - %214 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1356 = icmp eq ptr %214, null - br i1 %cmp.i.i.i1356, label %invoke.cont275.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1357 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1357: ; preds = %if.end272.i.i - %arrayidx.i.i.i1360 = getelementptr inbounds i32, ptr %214, i64 -1 - %215 = load i32, ptr %arrayidx.i.i.i1360, align 4 - %216 = zext i32 %215 to i64 - %add.ptr.i.i1361 = getelementptr inbounds ptr, ptr %214, i64 %216 - %cmp3.i.i1362 = icmp ugt i32 %215, %213 - br i1 %cmp3.i.i1362, label %for.body.i.i1365.preheader, label %if.then.i.i1363 - -for.body.i.i1365.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1357 - %idx.ext.i1358 = zext i32 %213 to i64 - %add.ptr.i1359 = getelementptr inbounds ptr, ptr %214, i64 %idx.ext.i1358 - br label %for.body.i.i1365 - -for.body.i.i1365: ; preds = %for.body.i.i1365.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1372 - %it.04.i.i1366 = phi ptr [ %incdec.ptr.i.i1373, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1372 ], [ %add.ptr.i1359, %for.body.i.i1365.preheader ] - %217 = load ptr, ptr %it.04.i.i1366, align 8 - %218 = load ptr, ptr %m_result_stack.i956, align 8 - %tobool.not.i.i.i.i.i1367 = icmp eq ptr %217, null - br i1 %tobool.not.i.i.i.i.i1367, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1372, label %if.then.i.i.i.i.i1368 - -if.then.i.i.i.i.i1368: ; preds = %for.body.i.i1365 - %m_ref_count.i.i.i.i.i.i1369 = getelementptr inbounds %class.ast, ptr %217, i64 0, i32 2 - %219 = load i32, ptr %m_ref_count.i.i.i.i.i.i1369, align 4 - %dec.i.i.i.i.i.i1370 = add i32 %219, -1 - store i32 %dec.i.i.i.i.i.i1370, ptr %m_ref_count.i.i.i.i.i.i1369, align 4 - %cmp.i.i.i.i.i1371 = icmp eq i32 %dec.i.i.i.i.i.i1370, 0 - br i1 %cmp.i.i.i.i.i1371, label %if.then2.i.i.i.i.i1378, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1372 - -if.then2.i.i.i.i.i1378: ; preds = %if.then.i.i.i.i.i1368 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %218, ptr noundef nonnull %217) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1372 unwind label %lpad.i.i.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1372: ; preds = %if.then2.i.i.i.i.i1378, %if.then.i.i.i.i.i1368, %for.body.i.i1365 - %incdec.ptr.i.i1373 = getelementptr inbounds ptr, ptr %it.04.i.i1366, i64 1 - %cmp.i.i1374 = icmp ult ptr %incdec.ptr.i.i1373, %add.ptr.i.i1361 - br i1 %cmp.i.i1374, label %for.body.i.i1365, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1375, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1375: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1372 - %.pre.i1376 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i1377 = icmp eq ptr %.pre.i1376, null - br i1 %tobool.not.i.i1377, label %invoke.cont275.i.i, label %if.then.i.i1363 - -if.then.i.i1363: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1375, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1357 - %220 = phi ptr [ %.pre.i1376, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1375 ], [ %214, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1357 ] - %arrayidx.i.i1364 = getelementptr inbounds i32, ptr %220, i64 -1 - store i32 %213, ptr %arrayidx.i.i1364, align 4 - br label %invoke.cont275.i.i - -invoke.cont275.i.i: ; preds = %if.then.i.i1363, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1375, %if.end272.i.i - %221 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i.i.i.i1333 = icmp eq ptr %221, null - br i1 %tobool.not.i.i.i.i1333, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1337, label %if.then.i.i.i.i1334 - -if.then.i.i.i.i1334: ; preds = %invoke.cont275.i.i - %m_ref_count.i.i.i.i.i1335 = getelementptr inbounds %class.ast, ptr %221, i64 0, i32 2 - %222 = load i32, ptr %m_ref_count.i.i.i.i.i1335, align 4 - %inc.i.i.i.i.i1336 = add i32 %222, 1 - store i32 %inc.i.i.i.i.i1336, ptr %m_ref_count.i.i.i.i.i1335, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1337 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1337: ; preds = %if.then.i.i.i.i1334, %invoke.cont275.i.i - %223 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1339 = icmp eq ptr %223, null - br i1 %cmp.i.i1339, label %if.then.i.i1348, label %lor.lhs.false.i.i1340 - -lor.lhs.false.i.i1340: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1337 - %arrayidx.i.i1341 = getelementptr inbounds i32, ptr %223, i64 -1 - %224 = load i32, ptr %arrayidx.i.i1341, align 4 - %arrayidx4.i.i1342 = getelementptr inbounds i32, ptr %223, i64 -2 - %225 = load i32, ptr %arrayidx4.i.i1342, align 4 - %cmp5.i.i1343 = icmp eq i32 %224, %225 - br i1 %cmp5.i.i1343, label %if.then.i.i1348, label %invoke.cont280.i.i - -if.then.i.i1348: ; preds = %lor.lhs.false.i.i1340, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1337 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc1352 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1352: ; preds = %if.then.i.i1348 - %.pre.i.i1349 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1350 = getelementptr inbounds i32, ptr %.pre.i.i1349, i64 -1 - %.pre1.i.i1351 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1350, align 4 - br label %invoke.cont280.i.i - -invoke.cont280.i.i: ; preds = %.noexc1352, %lor.lhs.false.i.i1340 - %226 = phi i32 [ %.pre1.i.i1351, %.noexc1352 ], [ %224, %lor.lhs.false.i.i1340 ] - %227 = phi ptr [ %.pre.i.i1349, %.noexc1352 ], [ %223, %lor.lhs.false.i.i1340 ] - %idx.ext.i.i1344 = zext i32 %226 to i64 - %add.ptr.i.i1345 = getelementptr inbounds ptr, ptr %227, i64 %idx.ext.i.i1344 - store ptr %221, ptr %add.ptr.i.i1345, align 8 - %228 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1346 = getelementptr inbounds i32, ptr %228, i64 -1 - %229 = load i32, ptr %arrayidx10.i.i1346, align 4 - %inc.i.i1347 = add i32 %229, 1 - store i32 %inc.i.i1347, ptr %arrayidx10.i.i1346, align 4 - %bf.load289.i.i = load i32, ptr %90, align 8 - %bf.clear290.i.i = and i32 %bf.load289.i.i, 1 - %tobool291.i.i.not = icmp eq i32 %bf.clear290.i.i, 0 - br i1 %tobool291.i.i.not, label %invoke.cont292.i.i, label %if.then.i1330 - -if.then.i1330: ; preds = %invoke.cont280.i.i - %230 = load ptr, ptr %m_pr.i66.i, align 8 - %231 = load ptr, ptr %m_r.i72.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %88, ptr noundef %231, ptr noundef %230) - to label %invoke.cont292.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont292.i.i: ; preds = %invoke.cont280.i.i, %if.then.i1330 - %232 = load i32, ptr %m_spos.i.i, align 4 - %233 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1303 = icmp eq ptr %233, null - br i1 %cmp.i.i.i1303, label %invoke.cont295.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i1304 - -_ZN6vectorIP3appLb0EjE3endEv.exit.i1304: ; preds = %invoke.cont292.i.i - %arrayidx.i.i.i1307 = getelementptr inbounds i32, ptr %233, i64 -1 - %234 = load i32, ptr %arrayidx.i.i.i1307, align 4 - %235 = zext i32 %234 to i64 - %add.ptr.i.i1308 = getelementptr inbounds ptr, ptr %233, i64 %235 - %cmp3.i.i1309 = icmp ugt i32 %234, %232 - br i1 %cmp3.i.i1309, label %for.body.i.i1312.preheader, label %if.then.i.i1310 - -for.body.i.i1312.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i1304 - %idx.ext.i1305 = zext i32 %232 to i64 - %add.ptr.i1306 = getelementptr inbounds ptr, ptr %233, i64 %idx.ext.i1305 - br label %for.body.i.i1312 - -for.body.i.i1312: ; preds = %for.body.i.i1312.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1319 - %it.04.i.i1313 = phi ptr [ %incdec.ptr.i.i1320, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1319 ], [ %add.ptr.i1306, %for.body.i.i1312.preheader ] - %236 = load ptr, ptr %it.04.i.i1313, align 8 - %237 = load ptr, ptr %m_result_pr_stack.i712, align 8 - %tobool.not.i.i.i.i.i1314 = icmp eq ptr %236, null - br i1 %tobool.not.i.i.i.i.i1314, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1319, label %if.then.i.i.i.i.i1315 - -if.then.i.i.i.i.i1315: ; preds = %for.body.i.i1312 - %m_ref_count.i.i.i.i.i.i1316 = getelementptr inbounds %class.ast, ptr %236, i64 0, i32 2 - %238 = load i32, ptr %m_ref_count.i.i.i.i.i.i1316, align 4 - %dec.i.i.i.i.i.i1317 = add i32 %238, -1 - store i32 %dec.i.i.i.i.i.i1317, ptr %m_ref_count.i.i.i.i.i.i1316, align 4 - %cmp.i.i.i.i.i1318 = icmp eq i32 %dec.i.i.i.i.i.i1317, 0 - br i1 %cmp.i.i.i.i.i1318, label %if.then2.i.i.i.i.i1325, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1319 - -if.then2.i.i.i.i.i1325: ; preds = %if.then.i.i.i.i.i1315 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %237, ptr noundef nonnull %236) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1319 unwind label %lpad.i.i.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1319: ; preds = %if.then2.i.i.i.i.i1325, %if.then.i.i.i.i.i1315, %for.body.i.i1312 - %incdec.ptr.i.i1320 = getelementptr inbounds ptr, ptr %it.04.i.i1313, i64 1 - %cmp.i.i1321 = icmp ult ptr %incdec.ptr.i.i1320, %add.ptr.i.i1308 - br i1 %cmp.i.i1321, label %for.body.i.i1312, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1322, !llvm.loop !18 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1322: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1319 - %.pre.i1323 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i1324 = icmp eq ptr %.pre.i1323, null - br i1 %tobool.not.i.i1324, label %invoke.cont295.i.i, label %if.then.i.i1310 - -if.then.i.i1310: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1322, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1304 - %239 = phi ptr [ %.pre.i1323, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1322 ], [ %233, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1304 ] - %arrayidx.i.i1311 = getelementptr inbounds i32, ptr %239, i64 -1 - store i32 %232, ptr %arrayidx.i.i1311, align 4 - br label %invoke.cont295.i.i - -invoke.cont295.i.i: ; preds = %if.then.i.i1310, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1322, %invoke.cont292.i.i - %240 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i.i.i.i1280 = icmp eq ptr %240, null - br i1 %tobool.not.i.i.i.i1280, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1284, label %if.then.i.i.i.i1281 - -if.then.i.i.i.i1281: ; preds = %invoke.cont295.i.i - %m_ref_count.i.i.i.i.i1282 = getelementptr inbounds %class.ast, ptr %240, i64 0, i32 2 - %241 = load i32, ptr %m_ref_count.i.i.i.i.i1282, align 4 - %inc.i.i.i.i.i1283 = add i32 %241, 1 - store i32 %inc.i.i.i.i.i1283, ptr %m_ref_count.i.i.i.i.i1282, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1284 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1284: ; preds = %if.then.i.i.i.i1281, %invoke.cont295.i.i - %242 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1286 = icmp eq ptr %242, null - br i1 %cmp.i.i1286, label %if.then.i.i1295, label %lor.lhs.false.i.i1287 - -lor.lhs.false.i.i1287: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1284 - %arrayidx.i.i1288 = getelementptr inbounds i32, ptr %242, i64 -1 - %243 = load i32, ptr %arrayidx.i.i1288, align 4 - %arrayidx4.i.i1289 = getelementptr inbounds i32, ptr %242, i64 -2 - %244 = load i32, ptr %arrayidx4.i.i1289, align 4 - %cmp5.i.i1290 = icmp eq i32 %243, %244 - br i1 %cmp5.i.i1290, label %if.then.i.i1295, label %invoke.cont300.i.i - -if.then.i.i1295: ; preds = %lor.lhs.false.i.i1287, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1284 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1299 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1299: ; preds = %if.then.i.i1295 - %.pre.i.i1296 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1297 = getelementptr inbounds i32, ptr %.pre.i.i1296, i64 -1 - %.pre1.i.i1298 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1297, align 4 - br label %invoke.cont300.i.i - -invoke.cont300.i.i: ; preds = %.noexc1299, %lor.lhs.false.i.i1287 - %245 = phi i32 [ %.pre1.i.i1298, %.noexc1299 ], [ %243, %lor.lhs.false.i.i1287 ] - %246 = phi ptr [ %.pre.i.i1296, %.noexc1299 ], [ %242, %lor.lhs.false.i.i1287 ] - %idx.ext.i.i1291 = zext i32 %245 to i64 - %add.ptr.i.i1292 = getelementptr inbounds ptr, ptr %246, i64 %idx.ext.i.i1291 - store ptr %240, ptr %add.ptr.i.i1292, align 8 - %247 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1293 = getelementptr inbounds i32, ptr %247, i64 -1 - %248 = load i32, ptr %arrayidx10.i.i1293, align 4 - %inc.i.i1294 = add i32 %248, 1 - store i32 %inc.i.i1294, ptr %arrayidx10.i.i1293, align 4 - %249 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i1271 = icmp eq ptr %249, null - br i1 %tobool.not.i3.i1271, label %invoke.cont303.i.i, label %if.then.i.i.i1272 - -if.then.i.i.i1272: ; preds = %invoke.cont300.i.i - %250 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i1274 = getelementptr inbounds %class.ast, ptr %249, i64 0, i32 2 - %251 = load i32, ptr %m_ref_count.i.i.i.i1274, align 4 - %dec.i.i.i.i1275 = add i32 %251, -1 - store i32 %dec.i.i.i.i1275, ptr %m_ref_count.i.i.i.i1274, align 4 - %cmp.i.i.i1276 = icmp eq i32 %dec.i.i.i.i1275, 0 - br i1 %cmp.i.i.i1276, label %if.then2.i.i.i1277, label %invoke.cont303.i.i - -if.then2.i.i.i1277: ; preds = %if.then.i.i.i1272 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %250, ptr noundef nonnull %249) - to label %invoke.cont303.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont303.i.i: ; preds = %if.then.i.i.i1272, %invoke.cont300.i.i, %if.then2.i.i.i1277 - store ptr null, ptr %m_pr.i66.i, align 8 - %252 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1267 = getelementptr inbounds i32, ptr %252, i64 -1 - %253 = load i32, ptr %arrayidx.i1267, align 4 - %dec.i1268 = add i32 %253, -1 - store i32 %dec.i1268, ptr %arrayidx.i1267, align 4 - %254 = load ptr, ptr %m_r.i72.i, align 8 - %this.val59.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i1255 = icmp eq ptr %88, %254 - %cmp.i.i.i1256 = icmp eq ptr %this.val59.i.i, null - %or.cond.i1257 = select i1 %cmp.not.i1255, i1 true, i1 %cmp.i.i.i1256 - br i1 %or.cond.i1257, label %invoke.cont309.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1258 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1258: ; preds = %invoke.cont303.i.i - %arrayidx.i.i.i1259 = getelementptr inbounds i32, ptr %this.val59.i.i, i64 -1 - %255 = load i32, ptr %arrayidx.i.i.i1259, align 4 - %cmp3.i.i.i1260 = icmp eq i32 %255, 0 - br i1 %cmp3.i.i.i1260, label %invoke.cont309.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1261 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1261: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1258 - %256 = add i32 %255, -1 - %257 = zext i32 %256 to i64 - %m_new_child.i.i1262 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i.i, i64 %257, i32 1 - %bf.load.i.i1263 = load i32, ptr %m_new_child.i.i1262, align 8 - %bf.set.i.i1264 = or i32 %bf.load.i.i1263, 2 - store i32 %bf.set.i.i1264, ptr %m_new_child.i.i1262, align 8 - %.pr.pre = load ptr, ptr %m_r.i72.i, align 8 - br label %invoke.cont309.i.i - -invoke.cont309.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1261, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1258, %invoke.cont303.i.i - %258 = phi ptr [ %254, %invoke.cont303.i.i ], [ %254, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1258 ], [ %.pr.pre, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1261 ] - %tobool.not.i3.i1246 = icmp eq ptr %258, null - br i1 %tobool.not.i3.i1246, label %cleanup.i.i, label %if.then.i.i.i1247 - -if.then.i.i.i1247: ; preds = %invoke.cont309.i.i - %259 = load ptr, ptr %m_manager.i.i736, align 8 - %m_ref_count.i.i.i.i1249 = getelementptr inbounds %class.ast, ptr %258, i64 0, i32 2 - %260 = load i32, ptr %m_ref_count.i.i.i.i1249, align 4 - %dec.i.i.i.i1250 = add i32 %260, -1 - store i32 %dec.i.i.i.i1250, ptr %m_ref_count.i.i.i.i1249, align 4 - %cmp.i.i.i1251 = icmp eq i32 %dec.i.i.i.i1250, 0 - br i1 %cmp.i.i.i1251, label %if.then2.i.i.i1252, label %cleanup.i.i - -if.then2.i.i.i1252: ; preds = %if.then.i.i.i1247 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %259, ptr noundef nonnull %258) - to label %if.then2.i.i.i1252._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1254_crit_edge unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.then2.i.i.i1252._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1254_crit_edge: ; preds = %if.then2.i.i.i1252 - %.pre2927.pre = load ptr, ptr %new_t.i.i, align 8 - br label %cleanup.i.i + to label %if.end55.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end55.i.i.i: ; preds = %if.then2.i.i.i105.i.i.i, %if.then.i.i.i100.i.i.i, %if.end.i98.i.i.i, %if.then2.i.i.i75.i.i.i, %if.then.i.i.i70.i.i.i, %invoke.cont32.i.i.i + %storemerge.i.i = phi ptr [ null, %if.then2.i.i.i75.i.i.i ], [ null, %if.then.i.i.i70.i.i.i ], [ null, %invoke.cont32.i.i.i ], [ %call51.i.i.i, %if.then2.i.i.i105.i.i.i ], [ %call51.i.i.i, %if.then.i.i.i100.i.i.i ], [ %call51.i.i.i, %if.end.i98.i.i.i ] + %.pre673.pre.i.i.i = phi ptr [ %88, %if.then2.i.i.i75.i.i.i ], [ %88, %if.then.i.i.i70.i.i.i ], [ %88, %invoke.cont32.i.i.i ], [ %call38.i.i.i, %if.then2.i.i.i105.i.i.i ], [ %call38.i.i.i, %if.then.i.i.i100.i.i.i ], [ %call38.i.i.i, %if.end.i98.i.i.i ] + store ptr %storemerge.i.i, ptr %m_pr.i87.i.i, align 8 + %137 = load ptr, ptr %76, align 8 + %call57.i.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(580) %137, ptr noundef %119, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i92.i.i, ptr noundef nonnull align 8 dereferenceable(16) %m_pr2.i.i.i) + to label %invoke.cont56.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i, !range !21 + +invoke.cont56.i.i.i: ; preds = %if.end55.i.i.i + %cmp58.not.i.i.i = icmp eq i32 %call57.i.i.i, 5 + br i1 %cmp58.not.i.i.i, label %if.else246.i.i.i, label %if.then59.i.i.i + +if.then59.i.i.i: ; preds = %invoke.cont56.i.i.i + %138 = load i32, ptr %m_spos.i.i.i, align 4 + %139 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i110.i.i.i = icmp eq ptr %139, null + br i1 %cmp.i.i.i110.i.i.i, label %invoke.cont62.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i: ; preds = %if.then59.i.i.i + %arrayidx.i.i.i.i.i.i = getelementptr inbounds i32, ptr %139, i64 -1 + %140 = load i32, ptr %arrayidx.i.i.i.i.i.i, align 4 + %141 = zext i32 %140 to i64 + %add.ptr.i.i.i.i.i = getelementptr inbounds ptr, ptr %139, i64 %141 + %cmp3.i.i.i51.i.i = icmp ugt i32 %140, %138 + br i1 %cmp3.i.i.i51.i.i, label %for.body.i.i.preheader.i.i.i, label %if.then.i.i.i.i102.i + +for.body.i.i.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + %idx.ext.i.i59.i.i = zext i32 %138 to i64 + %add.ptr.i.i60.i.i = getelementptr inbounds ptr, ptr %139, i64 %idx.ext.i.i59.i.i + br label %for.body.i.i.i.i.i + +for.body.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, %for.body.i.i.preheader.i.i.i + %it.04.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i ], [ %add.ptr.i.i60.i.i, %for.body.i.i.preheader.i.i.i ] + %142 = load ptr, ptr %it.04.i.i.i.i.i, align 8 + %143 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i = icmp eq ptr %142, null + br i1 %tobool.not.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %142, i64 0, i32 2 + %144 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i = add i32 %144, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i -cleanup.i.i: ; preds = %if.then.i.i.i1247, %invoke.cont309.i.i, %if.then2.i.i.i1252._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1254_crit_edge, %if.then.i.i.i1461, %invoke.cont123.i.i, %if.then2.i.i.i1466 - %m_pr.i66.i.sink = phi ptr [ %m_pr.i66.i, %if.then2.i.i.i1466 ], [ %m_pr.i66.i, %invoke.cont123.i.i ], [ %m_pr.i66.i, %if.then.i.i.i1461 ], [ %m_r.i72.i, %if.then2.i.i.i1252._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1254_crit_edge ], [ %m_r.i72.i, %invoke.cont309.i.i ], [ %m_r.i72.i, %if.then.i.i.i1247 ] - %261 = phi ptr [ %137, %if.then2.i.i.i1466 ], [ %137, %invoke.cont123.i.i ], [ %137, %if.then.i.i.i1461 ], [ %.pre2927.pre, %if.then2.i.i.i1252._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1254_crit_edge ], [ %137, %invoke.cont309.i.i ], [ %137, %if.then.i.i.i1247 ] - store ptr null, ptr %m_pr.i66.i.sink, align 8 - %tobool.not.i.i1235 = icmp eq ptr %261, null - br i1 %tobool.not.i.i1235, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i1236 - -if.then.i.i.i1236: ; preds = %cleanup.i.i - %262 = load ptr, ptr %m_manager.i1693, align 8 - %m_ref_count.i.i.i.i1238 = getelementptr inbounds %class.ast, ptr %261, i64 0, i32 2 - %263 = load i32, ptr %m_ref_count.i.i.i.i1238, align 4 - %dec.i.i.i.i1239 = add i32 %263, -1 - store i32 %dec.i.i.i.i1239, ptr %m_ref_count.i.i.i.i1238, align 4 - %cmp.i.i.i1240 = icmp eq i32 %dec.i.i.i.i1239, 0 - br i1 %cmp.i.i.i1240, label %if.then2.i.i.i1242, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i1242: ; preds = %if.then.i.i.i1236 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %262, ptr noundef nonnull %261) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i1243 - -terminate.lpad.i1243: ; preds = %if.then2.i.i.i1242 - %264 = landingpad { ptr, i32 } +if.then2.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %143, ptr noundef nonnull %142) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i, %for.body.i.i.i.i.i + %incdec.ptr.i.i.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i, i64 1 + %cmp.i.i112.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i, %add.ptr.i.i.i.i.i + br i1 %cmp.i.i112.i.i.i, label %for.body.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + %.pre.i.i61.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i.i.i103.i = icmp eq ptr %.pre.i.i61.i.i, null + br i1 %tobool.not.i.i.i.i103.i, label %invoke.cont62.i.i.i, label %if.then.i.i.i.i102.i + +if.then.i.i.i.i102.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + %145 = phi ptr [ %.pre.i.i61.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i ], [ %139, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i ] + %arrayidx.i.i111.i.i.i = getelementptr inbounds i32, ptr %145, i64 -1 + store i32 %138, ptr %arrayidx.i.i111.i.i.i, align 4 + br label %invoke.cont62.i.i.i + +invoke.cont62.i.i.i: ; preds = %if.then.i.i.i.i102.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %if.then59.i.i.i + %146 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i = icmp eq ptr %146, null + br i1 %tobool.not.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i: ; preds = %invoke.cont62.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %146, i64 0, i32 2 + %147 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i = add i32 %147, 1 + store i32 %inc.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %invoke.cont62.i.i.i + %148 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i116.i.i.i = icmp eq ptr %148, null + br i1 %cmp.i.i116.i.i.i, label %if.then.i.i119.i.i.i, label %lor.lhs.false.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + %arrayidx.i.i117.i.i.i = getelementptr inbounds i32, ptr %148, i64 -1 + %149 = load i32, ptr %arrayidx.i.i117.i.i.i, align 4 + %arrayidx4.i.i.i.i.i = getelementptr inbounds i32, ptr %148, i64 -2 + %150 = load i32, ptr %arrayidx4.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i = icmp eq i32 %149, %150 + br i1 %cmp5.i.i.i.i.i, label %if.then.i.i119.i.i.i, label %invoke.cont67.i.i.i + +if.then.i.i119.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc120.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc120.i.i.i: ; preds = %if.then.i.i119.i.i.i + %.pre.i.i.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i, align 4 + br label %invoke.cont67.i.i.i + +invoke.cont67.i.i.i: ; preds = %.noexc120.i.i.i, %lor.lhs.false.i.i.i.i.i + %151 = phi i32 [ %.pre1.i.i.i.i.i, %.noexc120.i.i.i ], [ %149, %lor.lhs.false.i.i.i.i.i ] + %152 = phi ptr [ %.pre.i.i.i.i.i, %.noexc120.i.i.i ], [ %148, %lor.lhs.false.i.i.i.i.i ] + %idx.ext.i.i.i.i.i = zext i32 %151 to i64 + %add.ptr.i.i118.i.i.i = getelementptr inbounds ptr, ptr %152, i64 %idx.ext.i.i.i.i.i + store ptr %146, ptr %add.ptr.i.i118.i.i.i, align 8 + %153 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i.i.i.i = getelementptr inbounds i32, ptr %153, i64 -1 + %154 = load i32, ptr %arrayidx10.i.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %154, 1 + store i32 %inc.i.i.i.i.i, ptr %arrayidx10.i.i.i.i.i, align 4 + %155 = load i32, ptr %m_spos.i.i.i, align 4 + %156 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i123.i.i.i = icmp eq ptr %156, null + br i1 %cmp.i.i.i123.i.i.i, label %invoke.cont71.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i: ; preds = %invoke.cont67.i.i.i + %arrayidx.i.i.i126.i.i.i = getelementptr inbounds i32, ptr %156, i64 -1 + %157 = load i32, ptr %arrayidx.i.i.i126.i.i.i, align 4 + %158 = zext i32 %157 to i64 + %add.ptr.i.i127.i.i.i = getelementptr inbounds ptr, ptr %156, i64 %158 + %cmp3.i.i128.i.i.i = icmp ugt i32 %157, %155 + br i1 %cmp3.i.i128.i.i.i, label %for.body.i.i131.preheader.i.i.i, label %if.then.i.i129.i.i.i + +for.body.i.i131.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + %idx.ext.i124.i.i.i = zext i32 %155 to i64 + %add.ptr.i125.i.i.i = getelementptr inbounds ptr, ptr %156, i64 %idx.ext.i124.i.i.i + br label %for.body.i.i131.i.i.i + +for.body.i.i131.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, %for.body.i.i131.preheader.i.i.i + %it.04.i.i132.i.i.i = phi ptr [ %incdec.ptr.i.i138.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i ], [ %add.ptr.i125.i.i.i, %for.body.i.i131.preheader.i.i.i ] + %159 = load ptr, ptr %it.04.i.i132.i.i.i, align 8 + %160 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i133.i.i.i = icmp eq ptr %159, null + br i1 %tobool.not.i.i.i.i.i133.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i134.i.i.i + +if.then.i.i.i.i.i134.i.i.i: ; preds = %for.body.i.i131.i.i.i + %m_ref_count.i.i.i.i.i.i135.i.i.i = getelementptr inbounds %class.ast, ptr %159, i64 0, i32 2 + %161 = load i32, ptr %m_ref_count.i.i.i.i.i.i135.i.i.i, align 4 + %dec.i.i.i.i.i.i136.i.i.i = add i32 %161, -1 + store i32 %dec.i.i.i.i.i.i136.i.i.i, ptr %m_ref_count.i.i.i.i.i.i135.i.i.i, align 4 + %cmp.i.i.i.i.i137.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i136.i.i.i, 0 + br i1 %cmp.i.i.i.i.i137.i.i.i, label %if.then2.i.i.i.i.i142.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + +if.then2.i.i.i.i.i142.i.i.i: ; preds = %if.then.i.i.i.i.i134.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %160, ptr noundef nonnull %159) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i142.i.i.i, %if.then.i.i.i.i.i134.i.i.i, %for.body.i.i131.i.i.i + %incdec.ptr.i.i138.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i132.i.i.i, i64 1 + %cmp.i.i139.i.i.i = icmp ult ptr %incdec.ptr.i.i138.i.i.i, %add.ptr.i.i127.i.i.i + br i1 %cmp.i.i139.i.i.i, label %for.body.i.i131.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, !llvm.loop !18 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + %.pre.i140.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i141.i.i.i = icmp eq ptr %.pre.i140.i.i.i, null + br i1 %tobool.not.i.i141.i.i.i, label %invoke.cont71.i.i.i, label %if.then.i.i129.i.i.i + +if.then.i.i129.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + %162 = phi ptr [ %.pre.i140.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i ], [ %156, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i ] + %arrayidx.i.i130.i.i.i = getelementptr inbounds i32, ptr %162, i64 -1 + store i32 %155, ptr %arrayidx.i.i130.i.i.i, align 4 + br label %invoke.cont71.i.i.i + +invoke.cont71.i.i.i: ; preds = %if.then.i.i129.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %invoke.cont67.i.i.i + %163 = load ptr, ptr %m_pr2.i.i.i, align 8 + %cmp.i.i52.i.i = icmp eq ptr %163, null + br i1 %cmp.i.i52.i.i, label %if.then75.i.i.i, label %if.end87.i.i.i + +if.then75.i.i.i: ; preds = %invoke.cont71.i.i.i + %this.val53.i.i.i = load ptr, ptr %28, align 8 + %164 = load ptr, ptr %m_r.i92.i.i, align 8 + %call83.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val53.i.i.i, ptr noundef %.pre673.pre.i.i.i, ptr noundef %164) + to label %invoke.cont82.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont82.i.i.i: ; preds = %if.then75.i.i.i + %tobool.not.i144.i.i.i = icmp eq ptr %call83.i.i.i, null + br i1 %tobool.not.i144.i.i.i, label %if.end.i148.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i: ; preds = %invoke.cont82.i.i.i + %m_ref_count.i.i.i146.i.i.i = getelementptr inbounds %class.ast, ptr %call83.i.i.i, i64 0, i32 2 + %165 = load i32, ptr %m_ref_count.i.i.i146.i.i.i, align 4 + %inc.i.i.i147.i.i.i = add i32 %165, 1 + store i32 %inc.i.i.i147.i.i.i, ptr %m_ref_count.i.i.i146.i.i.i, align 4 + br label %if.end.i148.i.i.i + +if.end.i148.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i, %invoke.cont82.i.i.i + %166 = load ptr, ptr %m_pr2.i.i.i, align 8 + %tobool.not.i3.i149.i.i.i = icmp eq ptr %166, null + br i1 %tobool.not.i3.i149.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i, label %if.then.i.i.i150.i.i.i + +if.then.i.i.i150.i.i.i: ; preds = %if.end.i148.i.i.i + %167 = load ptr, ptr %m_manager.i.i151.i.i.i, align 8 + %m_ref_count.i.i.i.i152.i.i.i = getelementptr inbounds %class.ast, ptr %166, i64 0, i32 2 + %168 = load i32, ptr %m_ref_count.i.i.i.i152.i.i.i, align 4 + %dec.i.i.i.i153.i.i.i = add i32 %168, -1 + store i32 %dec.i.i.i.i153.i.i.i, ptr %m_ref_count.i.i.i.i152.i.i.i, align 4 + %cmp.i.i.i154.i.i.i = icmp eq i32 %dec.i.i.i.i153.i.i.i, 0 + br i1 %cmp.i.i.i154.i.i.i, label %if.then2.i.i.i155.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i + +if.then2.i.i.i155.i.i.i: ; preds = %if.then.i.i.i150.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %167, ptr noundef nonnull %166) + to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i: ; preds = %if.then2.i.i.i155.i.i.i, %if.then.i.i.i150.i.i.i, %if.end.i148.i.i.i + store ptr %call83.i.i.i, ptr %m_pr2.i.i.i, align 8 + br label %if.end87.i.i.i + +if.end87.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i, %invoke.cont71.i.i.i + %169 = phi ptr [ %call83.i.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i ], [ %163, %invoke.cont71.i.i.i ] + %this.val52.i.i.i = load ptr, ptr %28, align 8 + %170 = load ptr, ptr %m_pr.i87.i.i, align 8 + %call96.i.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val52.i.i.i, ptr noundef %170, ptr noundef %169) + to label %invoke.cont95.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont95.i.i.i: ; preds = %if.end87.i.i.i + %tobool.not.i158.i.i.i = icmp eq ptr %call96.i.i.i, null + br i1 %tobool.not.i158.i.i.i, label %if.end.i162.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i: ; preds = %invoke.cont95.i.i.i + %m_ref_count.i.i.i160.i.i.i = getelementptr inbounds %class.ast, ptr %call96.i.i.i, i64 0, i32 2 + %171 = load i32, ptr %m_ref_count.i.i.i160.i.i.i, align 4 + %inc.i.i.i161.i.i.i = add i32 %171, 1 + store i32 %inc.i.i.i161.i.i.i, ptr %m_ref_count.i.i.i160.i.i.i, align 4 + br label %if.end.i162.i.i.i + +if.end.i162.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i, %invoke.cont95.i.i.i + %172 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i163.i.i.i = icmp eq ptr %172, null + br i1 %tobool.not.i3.i163.i.i.i, label %invoke.cont98.i.i.i, label %if.then.i.i.i164.i.i.i + +if.then.i.i.i164.i.i.i: ; preds = %if.end.i162.i.i.i + %173 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i166.i.i.i = getelementptr inbounds %class.ast, ptr %172, i64 0, i32 2 + %174 = load i32, ptr %m_ref_count.i.i.i.i166.i.i.i, align 4 + %dec.i.i.i.i167.i.i.i = add i32 %174, -1 + store i32 %dec.i.i.i.i167.i.i.i, ptr %m_ref_count.i.i.i.i166.i.i.i, align 4 + %cmp.i.i.i168.i.i.i = icmp eq i32 %dec.i.i.i.i167.i.i.i, 0 + br i1 %cmp.i.i.i168.i.i.i, label %if.then2.i.i.i169.i.i.i, label %invoke.cont98.i.i.i + +if.then2.i.i.i169.i.i.i: ; preds = %if.then.i.i.i164.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %173, ptr noundef nonnull %172) + to label %invoke.cont98.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont98.i.i.i: ; preds = %if.then2.i.i.i169.i.i.i, %if.then.i.i.i164.i.i.i, %if.end.i162.i.i.i + store ptr %call96.i.i.i, ptr %m_pr.i87.i.i, align 8 + br i1 %tobool.not.i158.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i174.i.i.i + +if.then.i.i.i.i174.i.i.i: ; preds = %invoke.cont98.i.i.i + %m_ref_count.i.i.i.i.i175.i.i.i = getelementptr inbounds %class.ast, ptr %call96.i.i.i, i64 0, i32 2 + %175 = load i32, ptr %m_ref_count.i.i.i.i.i175.i.i.i, align 4 + %inc.i.i.i.i.i176.i.i.i = add i32 %175, 1 + store i32 %inc.i.i.i.i.i176.i.i.i, ptr %m_ref_count.i.i.i.i.i175.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i174.i.i.i, %invoke.cont98.i.i.i + %176 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i178.i.i.i = icmp eq ptr %176, null + br i1 %cmp.i.i178.i.i.i, label %if.then.i.i187.i.i.i, label %lor.lhs.false.i.i179.i.i.i + +lor.lhs.false.i.i179.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + %arrayidx.i.i180.i.i.i = getelementptr inbounds i32, ptr %176, i64 -1 + %177 = load i32, ptr %arrayidx.i.i180.i.i.i, align 4 + %arrayidx4.i.i181.i.i.i = getelementptr inbounds i32, ptr %176, i64 -2 + %178 = load i32, ptr %arrayidx4.i.i181.i.i.i, align 4 + %cmp5.i.i182.i.i.i = icmp eq i32 %177, %178 + br i1 %cmp5.i.i182.i.i.i, label %if.then.i.i187.i.i.i, label %invoke.cont104.i.i.i + +if.then.i.i187.i.i.i: ; preds = %lor.lhs.false.i.i179.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc191.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc191.i.i.i: ; preds = %if.then.i.i187.i.i.i + %.pre.i.i188.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i189.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i188.i.i.i, i64 -1 + %.pre1.i.i190.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i189.i.i.i, align 4 + br label %invoke.cont104.i.i.i + +invoke.cont104.i.i.i: ; preds = %.noexc191.i.i.i, %lor.lhs.false.i.i179.i.i.i + %179 = phi i32 [ %.pre1.i.i190.i.i.i, %.noexc191.i.i.i ], [ %177, %lor.lhs.false.i.i179.i.i.i ] + %180 = phi ptr [ %.pre.i.i188.i.i.i, %.noexc191.i.i.i ], [ %176, %lor.lhs.false.i.i179.i.i.i ] + %idx.ext.i.i183.i.i.i = zext i32 %179 to i64 + %add.ptr.i.i184.i.i.i = getelementptr inbounds ptr, ptr %180, i64 %idx.ext.i.i183.i.i.i + store ptr %call96.i.i.i, ptr %add.ptr.i.i184.i.i.i, align 8 + %181 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i185.i.i.i = getelementptr inbounds i32, ptr %181, i64 -1 + %182 = load i32, ptr %arrayidx10.i.i185.i.i.i, align 4 + %inc.i.i186.i.i.i = add i32 %182, 1 + store i32 %inc.i.i186.i.i.i, ptr %arrayidx10.i.i185.i.i.i, align 4 + %183 = load ptr, ptr %m_pr2.i.i.i, align 8 + %tobool.not.i3.i193.i.i.i = icmp eq ptr %183, null + br i1 %tobool.not.i3.i193.i.i.i, label %if.then110.i.i.i, label %if.then.i.i.i194.i.i.i + +if.then.i.i.i194.i.i.i: ; preds = %invoke.cont104.i.i.i + %184 = load ptr, ptr %m_manager.i.i151.i.i.i, align 8 + %m_ref_count.i.i.i.i196.i.i.i = getelementptr inbounds %class.ast, ptr %183, i64 0, i32 2 + %185 = load i32, ptr %m_ref_count.i.i.i.i196.i.i.i, align 4 + %dec.i.i.i.i197.i.i.i = add i32 %185, -1 + store i32 %dec.i.i.i.i197.i.i.i, ptr %m_ref_count.i.i.i.i196.i.i.i, align 4 + %cmp.i.i.i198.i.i.i = icmp eq i32 %dec.i.i.i.i197.i.i.i, 0 + br i1 %cmp.i.i.i198.i.i.i, label %if.then2.i.i.i199.i.i.i, label %if.then110.i.i.i + +if.then2.i.i.i199.i.i.i: ; preds = %if.then.i.i.i194.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %184, ptr noundef nonnull %183) + to label %if.then110.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.then110.i.i.i: ; preds = %if.then2.i.i.i199.i.i.i, %if.then.i.i.i194.i.i.i, %invoke.cont104.i.i.i + store ptr null, ptr %m_pr2.i.i.i, align 8 + %bf.load117.i.i.i = load i32, ptr %90, align 8 + %bf.clear118.i.i.i = and i32 %bf.load117.i.i.i, 1 + %tobool.not.i.i.i = icmp eq i32 %bf.clear118.i.i.i, 0 + br i1 %tobool.not.i.i.i, label %invoke.cont119.i.i.i, label %if.then.i.i53.i.i + +if.then.i.i53.i.i: ; preds = %if.then110.i.i.i + %186 = load ptr, ptr %m_pr.i87.i.i, align 8 + %187 = load ptr, ptr %m_r.i92.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %88, ptr noundef %187, ptr noundef %186) + to label %invoke.cont119.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont119.i.i.i: ; preds = %if.then.i.i53.i.i, %if.then110.i.i.i + %188 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i204.i.i.i = getelementptr inbounds i32, ptr %188, i64 -1 + %189 = load i32, ptr %arrayidx.i204.i.i.i, align 4 + %dec.i.i.i.i = add i32 %189, -1 + store i32 %dec.i.i.i.i, ptr %arrayidx.i204.i.i.i, align 4 + %this.val58.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i205.i.i.i = icmp eq ptr %this.val58.i.i.i, null + br i1 %cmp.i.i205.i.i.i, label %invoke.cont121.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i: ; preds = %invoke.cont119.i.i.i + %arrayidx.i.i206.i.i.i = getelementptr inbounds i32, ptr %this.val58.i.i.i, i64 -1 + %190 = load i32, ptr %arrayidx.i.i206.i.i.i, align 4 + %cmp3.i.i207.i.i.i = icmp eq i32 %190, 0 + br i1 %cmp3.i.i207.i.i.i, label %invoke.cont121.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i + %191 = add i32 %190, -1 + %192 = zext i32 %191 to i64 + %m_new_child.i.i56.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val58.i.i.i, i64 %192, i32 1 + %bf.load.i.i57.i.i = load i32, ptr %m_new_child.i.i56.i.i, align 8 + %bf.set.i.i58.i.i = or i32 %bf.load.i.i57.i.i, 2 + store i32 %bf.set.i.i58.i.i, ptr %m_new_child.i.i56.i.i, align 8 + br label %invoke.cont121.i.i.i + +invoke.cont121.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i, %invoke.cont119.i.i.i + %193 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i3.i210.i.i.i = icmp eq ptr %193, null + br i1 %tobool.not.i3.i210.i.i.i, label %invoke.cont123.i.i.i, label %if.then.i.i.i211.i.i.i + +if.then.i.i.i211.i.i.i: ; preds = %invoke.cont121.i.i.i + %194 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i213.i.i.i = getelementptr inbounds %class.ast, ptr %193, i64 0, i32 2 + %195 = load i32, ptr %m_ref_count.i.i.i.i213.i.i.i, align 4 + %dec.i.i.i.i214.i.i.i = add i32 %195, -1 + store i32 %dec.i.i.i.i214.i.i.i, ptr %m_ref_count.i.i.i.i213.i.i.i, align 4 + %cmp.i.i.i215.i.i.i = icmp eq i32 %dec.i.i.i.i214.i.i.i, 0 + br i1 %cmp.i.i.i215.i.i.i, label %if.then2.i.i.i216.i.i.i, label %invoke.cont123.i.i.i + +if.then2.i.i.i216.i.i.i: ; preds = %if.then.i.i.i211.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %194, ptr noundef nonnull %193) + to label %invoke.cont123.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont123.i.i.i: ; preds = %if.then2.i.i.i216.i.i.i, %if.then.i.i.i211.i.i.i, %invoke.cont121.i.i.i + store ptr null, ptr %m_r.i92.i.i, align 8 + %196 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i219.i.i.i = icmp eq ptr %196, null + br i1 %tobool.not.i3.i219.i.i.i, label %cleanup.i.i.i, label %if.then.i.i.i220.i.i.i + +if.then.i.i.i220.i.i.i: ; preds = %invoke.cont123.i.i.i + %197 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i222.i.i.i = getelementptr inbounds %class.ast, ptr %196, i64 0, i32 2 + %198 = load i32, ptr %m_ref_count.i.i.i.i222.i.i.i, align 4 + %dec.i.i.i.i223.i.i.i = add i32 %198, -1 + store i32 %dec.i.i.i.i223.i.i.i, ptr %m_ref_count.i.i.i.i222.i.i.i, align 4 + %cmp.i.i.i224.i.i.i = icmp eq i32 %dec.i.i.i.i223.i.i.i, 0 + br i1 %cmp.i.i.i224.i.i.i, label %if.then2.i.i.i225.i.i.i, label %cleanup.i.i.i + +if.then2.i.i.i225.i.i.i: ; preds = %if.then.i.i.i220.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %197, ptr noundef nonnull %196) + to label %cleanup.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.else246.i.i.i: ; preds = %invoke.cont56.i.i.i + %bf.load247.i.i.i = load i32, ptr %90, align 8 + %199 = and i32 %bf.load247.i.i.i, 2 + %tobool250.not.i.i.i = icmp eq i32 %199, 0 + br i1 %tobool250.not.i.i.i, label %if.end.i290.i.i.i, label %if.then251.i.i.i + +if.then251.i.i.i: ; preds = %if.else246.i.i.i + %this.val50.i.i.i = load ptr, ptr %28, align 8 + %call254.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val50.i.i.i, ptr noundef %119, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i) + to label %invoke.cont253.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont253.i.i.i: ; preds = %if.then251.i.i.i + %tobool.not.i258.i.i.i = icmp eq ptr %call254.i.i.i, null + br i1 %tobool.not.i258.i.i.i, label %if.end.i262.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i: ; preds = %invoke.cont253.i.i.i + %m_ref_count.i.i.i260.i.i.i = getelementptr inbounds %class.ast, ptr %call254.i.i.i, i64 0, i32 2 + %200 = load i32, ptr %m_ref_count.i.i.i260.i.i.i, align 4 + %inc.i.i.i261.i.i.i = add i32 %200, 1 + store i32 %inc.i.i.i261.i.i.i, ptr %m_ref_count.i.i.i260.i.i.i, align 4 + br label %if.end.i262.i.i.i + +if.end.i262.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i, %invoke.cont253.i.i.i + %201 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i3.i263.i.i.i = icmp eq ptr %201, null + br i1 %tobool.not.i3.i263.i.i.i, label %invoke.cont256.i.i.i, label %if.then.i.i.i264.i.i.i + +if.then.i.i.i264.i.i.i: ; preds = %if.end.i262.i.i.i + %202 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i266.i.i.i = getelementptr inbounds %class.ast, ptr %201, i64 0, i32 2 + %203 = load i32, ptr %m_ref_count.i.i.i.i266.i.i.i, align 4 + %dec.i.i.i.i267.i.i.i = add i32 %203, -1 + store i32 %dec.i.i.i.i267.i.i.i, ptr %m_ref_count.i.i.i.i266.i.i.i, align 4 + %cmp.i.i.i268.i.i.i = icmp eq i32 %dec.i.i.i.i267.i.i.i, 0 + br i1 %cmp.i.i.i268.i.i.i, label %if.then2.i.i.i269.i.i.i, label %invoke.cont256.i.i.i + +if.then2.i.i.i269.i.i.i: ; preds = %if.then.i.i.i264.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %202, ptr noundef nonnull %201) + to label %invoke.cont256.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont256.i.i.i: ; preds = %if.then2.i.i.i269.i.i.i, %if.then.i.i.i264.i.i.i, %if.end.i262.i.i.i + store ptr %call254.i.i.i, ptr %m_r.i92.i.i, align 8 + %this.val49.i.i.i = load ptr, ptr %28, align 8 + %call263.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val49.i.i.i, ptr noundef nonnull %88, ptr noundef %call254.i.i.i) + to label %invoke.cont262.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont262.i.i.i: ; preds = %invoke.cont256.i.i.i + %tobool.not.i272.i.i.i = icmp eq ptr %call263.i.i.i, null + br i1 %tobool.not.i272.i.i.i, label %if.end.i276.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i: ; preds = %invoke.cont262.i.i.i + %m_ref_count.i.i.i274.i.i.i = getelementptr inbounds %class.ast, ptr %call263.i.i.i, i64 0, i32 2 + %204 = load i32, ptr %m_ref_count.i.i.i274.i.i.i, align 4 + %inc.i.i.i275.i.i.i = add i32 %204, 1 + store i32 %inc.i.i.i275.i.i.i, ptr %m_ref_count.i.i.i274.i.i.i, align 4 + br label %if.end.i276.i.i.i + +if.end.i276.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i, %invoke.cont262.i.i.i + %205 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i277.i.i.i = icmp eq ptr %205, null + br i1 %tobool.not.i3.i277.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i, label %if.then.i.i.i278.i.i.i + +if.then.i.i.i278.i.i.i: ; preds = %if.end.i276.i.i.i + %206 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i280.i.i.i = getelementptr inbounds %class.ast, ptr %205, i64 0, i32 2 + %207 = load i32, ptr %m_ref_count.i.i.i.i280.i.i.i, align 4 + %dec.i.i.i.i281.i.i.i = add i32 %207, -1 + store i32 %dec.i.i.i.i281.i.i.i, ptr %m_ref_count.i.i.i.i280.i.i.i, align 4 + %cmp.i.i.i282.i.i.i = icmp eq i32 %dec.i.i.i.i281.i.i.i, 0 + br i1 %cmp.i.i.i282.i.i.i, label %if.then2.i.i.i283.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i + +if.then2.i.i.i283.i.i.i: ; preds = %if.then.i.i.i278.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %206, ptr noundef nonnull %205) + to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i: ; preds = %if.then2.i.i.i283.i.i.i, %if.then.i.i.i278.i.i.i, %if.end.i276.i.i.i + store ptr %call263.i.i.i, ptr %m_pr.i87.i.i, align 8 + br label %if.end272.i.i.i + +if.end.i290.i.i.i: ; preds = %if.else246.i.i.i + %m_ref_count.i.i.i288.i.i.i = getelementptr inbounds %class.ast, ptr %88, i64 0, i32 2 + %208 = load i32, ptr %m_ref_count.i.i.i288.i.i.i, align 4 + %inc.i.i.i289.i.i.i = add i32 %208, 1 + store i32 %inc.i.i.i289.i.i.i, ptr %m_ref_count.i.i.i288.i.i.i, align 4 + %209 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i3.i291.i.i.i = icmp eq ptr %209, null + br i1 %tobool.not.i3.i291.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i, label %if.then.i.i.i292.i.i.i + +if.then.i.i.i292.i.i.i: ; preds = %if.end.i290.i.i.i + %210 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i294.i.i.i = getelementptr inbounds %class.ast, ptr %209, i64 0, i32 2 + %211 = load i32, ptr %m_ref_count.i.i.i.i294.i.i.i, align 4 + %dec.i.i.i.i295.i.i.i = add i32 %211, -1 + store i32 %dec.i.i.i.i295.i.i.i, ptr %m_ref_count.i.i.i.i294.i.i.i, align 4 + %cmp.i.i.i296.i.i.i = icmp eq i32 %dec.i.i.i.i295.i.i.i, 0 + br i1 %cmp.i.i.i296.i.i.i, label %if.then2.i.i.i297.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i + +if.then2.i.i.i297.i.i.i: ; preds = %if.then.i.i.i292.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %210, ptr noundef nonnull %209) + to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i: ; preds = %if.then2.i.i.i297.i.i.i, %if.then.i.i.i292.i.i.i, %if.end.i290.i.i.i + store ptr %88, ptr %m_r.i92.i.i, align 8 + br label %if.end272.i.i.i + +if.end272.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i + %212 = load i32, ptr %m_spos.i.i.i, align 4 + %213 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i302.i.i.i = icmp eq ptr %213, null + br i1 %cmp.i.i.i302.i.i.i, label %invoke.cont275.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i: ; preds = %if.end272.i.i.i + %arrayidx.i.i.i306.i.i.i = getelementptr inbounds i32, ptr %213, i64 -1 + %214 = load i32, ptr %arrayidx.i.i.i306.i.i.i, align 4 + %215 = zext i32 %214 to i64 + %add.ptr.i.i307.i.i.i = getelementptr inbounds ptr, ptr %213, i64 %215 + %cmp3.i.i308.i.i.i = icmp ugt i32 %214, %212 + br i1 %cmp3.i.i308.i.i.i, label %for.body.i.i311.preheader.i.i.i, label %if.then.i.i309.i.i.i + +for.body.i.i311.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + %idx.ext.i304.i.i.i = zext i32 %212 to i64 + %add.ptr.i305.i.i.i = getelementptr inbounds ptr, ptr %213, i64 %idx.ext.i304.i.i.i + br label %for.body.i.i311.i.i.i + +for.body.i.i311.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i, %for.body.i.i311.preheader.i.i.i + %it.04.i.i312.i.i.i = phi ptr [ %incdec.ptr.i.i319.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i ], [ %add.ptr.i305.i.i.i, %for.body.i.i311.preheader.i.i.i ] + %216 = load ptr, ptr %it.04.i.i312.i.i.i, align 8 + %217 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i313.i.i.i = icmp eq ptr %216, null + br i1 %tobool.not.i.i.i.i.i313.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i, label %if.then.i.i.i.i.i314.i.i.i + +if.then.i.i.i.i.i314.i.i.i: ; preds = %for.body.i.i311.i.i.i + %m_ref_count.i.i.i.i.i.i315.i.i.i = getelementptr inbounds %class.ast, ptr %216, i64 0, i32 2 + %218 = load i32, ptr %m_ref_count.i.i.i.i.i.i315.i.i.i, align 4 + %dec.i.i.i.i.i.i316.i.i.i = add i32 %218, -1 + store i32 %dec.i.i.i.i.i.i316.i.i.i, ptr %m_ref_count.i.i.i.i.i.i315.i.i.i, align 4 + %cmp.i.i.i.i.i317.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i316.i.i.i, 0 + br i1 %cmp.i.i.i.i.i317.i.i.i, label %if.then2.i.i.i.i.i324.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i + +if.then2.i.i.i.i.i324.i.i.i: ; preds = %if.then.i.i.i.i.i314.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %217, ptr noundef nonnull %216) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i: ; preds = %if.then2.i.i.i.i.i324.i.i.i, %if.then.i.i.i.i.i314.i.i.i, %for.body.i.i311.i.i.i + %incdec.ptr.i.i319.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i312.i.i.i, i64 1 + %cmp.i.i320.i.i.i = icmp ult ptr %incdec.ptr.i.i319.i.i.i, %add.ptr.i.i307.i.i.i + br i1 %cmp.i.i320.i.i.i, label %for.body.i.i311.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i + %.pre.i322.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i323.i.i.i = icmp eq ptr %.pre.i322.i.i.i, null + br i1 %tobool.not.i.i323.i.i.i, label %invoke.cont275.i.i.i, label %if.then.i.i309.i.i.i + +if.then.i.i309.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + %219 = phi ptr [ %.pre.i322.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i ], [ %213, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i ] + %arrayidx.i.i310.i.i.i = getelementptr inbounds i32, ptr %219, i64 -1 + store i32 %212, ptr %arrayidx.i.i310.i.i.i, align 4 + br label %invoke.cont275.i.i.i + +invoke.cont275.i.i.i: ; preds = %if.then.i.i309.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, %if.end272.i.i.i + %220 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i.i.i.i328.i.i.i = icmp eq ptr %220, null + br i1 %tobool.not.i.i.i.i328.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i, label %if.then.i.i.i.i329.i.i.i + +if.then.i.i.i.i329.i.i.i: ; preds = %invoke.cont275.i.i.i + %m_ref_count.i.i.i.i.i330.i.i.i = getelementptr inbounds %class.ast, ptr %220, i64 0, i32 2 + %221 = load i32, ptr %m_ref_count.i.i.i.i.i330.i.i.i, align 4 + %inc.i.i.i.i.i331.i.i.i = add i32 %221, 1 + store i32 %inc.i.i.i.i.i331.i.i.i, ptr %m_ref_count.i.i.i.i.i330.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i: ; preds = %if.then.i.i.i.i329.i.i.i, %invoke.cont275.i.i.i + %222 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i334.i.i.i = icmp eq ptr %222, null + br i1 %cmp.i.i334.i.i.i, label %if.then.i.i343.i.i.i, label %lor.lhs.false.i.i335.i.i.i + +lor.lhs.false.i.i335.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + %arrayidx.i.i336.i.i.i = getelementptr inbounds i32, ptr %222, i64 -1 + %223 = load i32, ptr %arrayidx.i.i336.i.i.i, align 4 + %arrayidx4.i.i337.i.i.i = getelementptr inbounds i32, ptr %222, i64 -2 + %224 = load i32, ptr %arrayidx4.i.i337.i.i.i, align 4 + %cmp5.i.i338.i.i.i = icmp eq i32 %223, %224 + br i1 %cmp5.i.i338.i.i.i, label %if.then.i.i343.i.i.i, label %invoke.cont280.i.i.i + +if.then.i.i343.i.i.i: ; preds = %lor.lhs.false.i.i335.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc347.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc347.i.i.i: ; preds = %if.then.i.i343.i.i.i + %.pre.i.i344.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i345.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i344.i.i.i, i64 -1 + %.pre1.i.i346.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i345.i.i.i, align 4 + br label %invoke.cont280.i.i.i + +invoke.cont280.i.i.i: ; preds = %.noexc347.i.i.i, %lor.lhs.false.i.i335.i.i.i + %225 = phi i32 [ %.pre1.i.i346.i.i.i, %.noexc347.i.i.i ], [ %223, %lor.lhs.false.i.i335.i.i.i ] + %226 = phi ptr [ %.pre.i.i344.i.i.i, %.noexc347.i.i.i ], [ %222, %lor.lhs.false.i.i335.i.i.i ] + %idx.ext.i.i339.i.i.i = zext i32 %225 to i64 + %add.ptr.i.i340.i.i.i = getelementptr inbounds ptr, ptr %226, i64 %idx.ext.i.i339.i.i.i + store ptr %220, ptr %add.ptr.i.i340.i.i.i, align 8 + %227 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i341.i.i.i = getelementptr inbounds i32, ptr %227, i64 -1 + %228 = load i32, ptr %arrayidx10.i.i341.i.i.i, align 4 + %inc.i.i342.i.i.i = add i32 %228, 1 + store i32 %inc.i.i342.i.i.i, ptr %arrayidx10.i.i341.i.i.i, align 4 + %bf.load289.i.i.i = load i32, ptr %90, align 8 + %bf.clear290.i.i.i = and i32 %bf.load289.i.i.i, 1 + %tobool291.not.i.i.i = icmp eq i32 %bf.clear290.i.i.i, 0 + br i1 %tobool291.not.i.i.i, label %invoke.cont292.i.i.i, label %if.then.i350.i.i.i + +if.then.i350.i.i.i: ; preds = %invoke.cont280.i.i.i + %229 = load ptr, ptr %m_pr.i87.i.i, align 8 + %230 = load ptr, ptr %m_r.i92.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %88, ptr noundef %230, ptr noundef %229) + to label %invoke.cont292.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont292.i.i.i: ; preds = %if.then.i350.i.i.i, %invoke.cont280.i.i.i + %231 = load i32, ptr %m_spos.i.i.i, align 4 + %232 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i355.i.i.i = icmp eq ptr %232, null + br i1 %cmp.i.i.i355.i.i.i, label %invoke.cont295.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i: ; preds = %invoke.cont292.i.i.i + %arrayidx.i.i.i359.i.i.i = getelementptr inbounds i32, ptr %232, i64 -1 + %233 = load i32, ptr %arrayidx.i.i.i359.i.i.i, align 4 + %234 = zext i32 %233 to i64 + %add.ptr.i.i360.i.i.i = getelementptr inbounds ptr, ptr %232, i64 %234 + %cmp3.i.i361.i.i.i = icmp ugt i32 %233, %231 + br i1 %cmp3.i.i361.i.i.i, label %for.body.i.i364.preheader.i.i.i, label %if.then.i.i362.i.i.i + +for.body.i.i364.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + %idx.ext.i357.i.i.i = zext i32 %231 to i64 + %add.ptr.i358.i.i.i = getelementptr inbounds ptr, ptr %232, i64 %idx.ext.i357.i.i.i + br label %for.body.i.i364.i.i.i + +for.body.i.i364.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i, %for.body.i.i364.preheader.i.i.i + %it.04.i.i365.i.i.i = phi ptr [ %incdec.ptr.i.i372.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i ], [ %add.ptr.i358.i.i.i, %for.body.i.i364.preheader.i.i.i ] + %235 = load ptr, ptr %it.04.i.i365.i.i.i, align 8 + %236 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i366.i.i.i = icmp eq ptr %235, null + br i1 %tobool.not.i.i.i.i.i366.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i, label %if.then.i.i.i.i.i367.i.i.i + +if.then.i.i.i.i.i367.i.i.i: ; preds = %for.body.i.i364.i.i.i + %m_ref_count.i.i.i.i.i.i368.i.i.i = getelementptr inbounds %class.ast, ptr %235, i64 0, i32 2 + %237 = load i32, ptr %m_ref_count.i.i.i.i.i.i368.i.i.i, align 4 + %dec.i.i.i.i.i.i369.i.i.i = add i32 %237, -1 + store i32 %dec.i.i.i.i.i.i369.i.i.i, ptr %m_ref_count.i.i.i.i.i.i368.i.i.i, align 4 + %cmp.i.i.i.i.i370.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i369.i.i.i, 0 + br i1 %cmp.i.i.i.i.i370.i.i.i, label %if.then2.i.i.i.i.i377.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i + +if.then2.i.i.i.i.i377.i.i.i: ; preds = %if.then.i.i.i.i.i367.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %236, ptr noundef nonnull %235) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i unwind label %lpad.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i: ; preds = %if.then2.i.i.i.i.i377.i.i.i, %if.then.i.i.i.i.i367.i.i.i, %for.body.i.i364.i.i.i + %incdec.ptr.i.i372.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i365.i.i.i, i64 1 + %cmp.i.i373.i.i.i = icmp ult ptr %incdec.ptr.i.i372.i.i.i, %add.ptr.i.i360.i.i.i + br i1 %cmp.i.i373.i.i.i, label %for.body.i.i364.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, !llvm.loop !18 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i + %.pre.i375.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i376.i.i.i = icmp eq ptr %.pre.i375.i.i.i, null + br i1 %tobool.not.i.i376.i.i.i, label %invoke.cont295.i.i.i, label %if.then.i.i362.i.i.i + +if.then.i.i362.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + %238 = phi ptr [ %.pre.i375.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i ], [ %232, %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i ] + %arrayidx.i.i363.i.i.i = getelementptr inbounds i32, ptr %238, i64 -1 + store i32 %231, ptr %arrayidx.i.i363.i.i.i, align 4 + br label %invoke.cont295.i.i.i + +invoke.cont295.i.i.i: ; preds = %if.then.i.i362.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, %invoke.cont292.i.i.i + %239 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i.i.i.i381.i.i.i = icmp eq ptr %239, null + br i1 %tobool.not.i.i.i.i381.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i, label %if.then.i.i.i.i382.i.i.i + +if.then.i.i.i.i382.i.i.i: ; preds = %invoke.cont295.i.i.i + %m_ref_count.i.i.i.i.i383.i.i.i = getelementptr inbounds %class.ast, ptr %239, i64 0, i32 2 + %240 = load i32, ptr %m_ref_count.i.i.i.i.i383.i.i.i, align 4 + %inc.i.i.i.i.i384.i.i.i = add i32 %240, 1 + store i32 %inc.i.i.i.i.i384.i.i.i, ptr %m_ref_count.i.i.i.i.i383.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i: ; preds = %if.then.i.i.i.i382.i.i.i, %invoke.cont295.i.i.i + %241 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i387.i.i.i = icmp eq ptr %241, null + br i1 %cmp.i.i387.i.i.i, label %if.then.i.i396.i.i.i, label %lor.lhs.false.i.i388.i.i.i + +lor.lhs.false.i.i388.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + %arrayidx.i.i389.i.i.i = getelementptr inbounds i32, ptr %241, i64 -1 + %242 = load i32, ptr %arrayidx.i.i389.i.i.i, align 4 + %arrayidx4.i.i390.i.i.i = getelementptr inbounds i32, ptr %241, i64 -2 + %243 = load i32, ptr %arrayidx4.i.i390.i.i.i, align 4 + %cmp5.i.i391.i.i.i = icmp eq i32 %242, %243 + br i1 %cmp5.i.i391.i.i.i, label %if.then.i.i396.i.i.i, label %invoke.cont300.i.i.i + +if.then.i.i396.i.i.i: ; preds = %lor.lhs.false.i.i388.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc400.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc400.i.i.i: ; preds = %if.then.i.i396.i.i.i + %.pre.i.i397.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i398.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i397.i.i.i, i64 -1 + %.pre1.i.i399.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i398.i.i.i, align 4 + br label %invoke.cont300.i.i.i + +invoke.cont300.i.i.i: ; preds = %.noexc400.i.i.i, %lor.lhs.false.i.i388.i.i.i + %244 = phi i32 [ %.pre1.i.i399.i.i.i, %.noexc400.i.i.i ], [ %242, %lor.lhs.false.i.i388.i.i.i ] + %245 = phi ptr [ %.pre.i.i397.i.i.i, %.noexc400.i.i.i ], [ %241, %lor.lhs.false.i.i388.i.i.i ] + %idx.ext.i.i392.i.i.i = zext i32 %244 to i64 + %add.ptr.i.i393.i.i.i = getelementptr inbounds ptr, ptr %245, i64 %idx.ext.i.i392.i.i.i + store ptr %239, ptr %add.ptr.i.i393.i.i.i, align 8 + %246 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i394.i.i.i = getelementptr inbounds i32, ptr %246, i64 -1 + %247 = load i32, ptr %arrayidx10.i.i394.i.i.i, align 4 + %inc.i.i395.i.i.i = add i32 %247, 1 + store i32 %inc.i.i395.i.i.i, ptr %arrayidx10.i.i394.i.i.i, align 4 + %248 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i403.i.i.i = icmp eq ptr %248, null + br i1 %tobool.not.i3.i403.i.i.i, label %invoke.cont303.i.i.i, label %if.then.i.i.i404.i.i.i + +if.then.i.i.i404.i.i.i: ; preds = %invoke.cont300.i.i.i + %249 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i406.i.i.i = getelementptr inbounds %class.ast, ptr %248, i64 0, i32 2 + %250 = load i32, ptr %m_ref_count.i.i.i.i406.i.i.i, align 4 + %dec.i.i.i.i407.i.i.i = add i32 %250, -1 + store i32 %dec.i.i.i.i407.i.i.i, ptr %m_ref_count.i.i.i.i406.i.i.i, align 4 + %cmp.i.i.i408.i.i.i = icmp eq i32 %dec.i.i.i.i407.i.i.i, 0 + br i1 %cmp.i.i.i408.i.i.i, label %if.then2.i.i.i409.i.i.i, label %invoke.cont303.i.i.i + +if.then2.i.i.i409.i.i.i: ; preds = %if.then.i.i.i404.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %249, ptr noundef nonnull %248) + to label %invoke.cont303.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont303.i.i.i: ; preds = %if.then2.i.i.i409.i.i.i, %if.then.i.i.i404.i.i.i, %invoke.cont300.i.i.i + store ptr null, ptr %m_pr.i87.i.i, align 8 + %251 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i413.i.i.i = getelementptr inbounds i32, ptr %251, i64 -1 + %252 = load i32, ptr %arrayidx.i413.i.i.i, align 4 + %dec.i414.i.i.i = add i32 %252, -1 + store i32 %dec.i414.i.i.i, ptr %arrayidx.i413.i.i.i, align 4 + %253 = load ptr, ptr %m_r.i92.i.i, align 8 + %this.val59.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i.i = icmp eq ptr %253, %88 + %cmp.i.i.i415.i.i.i = icmp eq ptr %this.val59.i.i.i, null + %or.cond.i.i.i.i = select i1 %cmp.not.i.i.i.i, i1 true, i1 %cmp.i.i.i415.i.i.i + br i1 %or.cond.i.i.i.i, label %invoke.cont309.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i: ; preds = %invoke.cont303.i.i.i + %arrayidx.i.i.i416.i.i.i = getelementptr inbounds i32, ptr %this.val59.i.i.i, i64 -1 + %254 = load i32, ptr %arrayidx.i.i.i416.i.i.i, align 4 + %cmp3.i.i.i.i.i.i = icmp eq i32 %254, 0 + br i1 %cmp3.i.i.i.i.i.i, label %invoke.cont309.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i + %255 = add i32 %254, -1 + %256 = zext i32 %255 to i64 + %m_new_child.i.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i.i.i, i64 %256, i32 1 + %bf.load.i.i417.i.i.i = load i32, ptr %m_new_child.i.i.i.i.i, align 8 + %bf.set.i.i.i.i.i = or i32 %bf.load.i.i417.i.i.i, 2 + store i32 %bf.set.i.i.i.i.i, ptr %m_new_child.i.i.i.i.i, align 8 + %.pr.pre.i.i.i = load ptr, ptr %m_r.i92.i.i, align 8 + br label %invoke.cont309.i.i.i + +invoke.cont309.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i, %invoke.cont303.i.i.i + %257 = phi ptr [ %253, %invoke.cont303.i.i.i ], [ %253, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i ], [ %.pr.pre.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i ] + %tobool.not.i3.i420.i.i.i = icmp eq ptr %257, null + br i1 %tobool.not.i3.i420.i.i.i, label %cleanup.i.i.i, label %if.then.i.i.i421.i.i.i + +if.then.i.i.i421.i.i.i: ; preds = %invoke.cont309.i.i.i + %258 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i423.i.i.i = getelementptr inbounds %class.ast, ptr %257, i64 0, i32 2 + %259 = load i32, ptr %m_ref_count.i.i.i.i423.i.i.i, align 4 + %dec.i.i.i.i424.i.i.i = add i32 %259, -1 + store i32 %dec.i.i.i.i424.i.i.i, ptr %m_ref_count.i.i.i.i423.i.i.i, align 4 + %cmp.i.i.i425.i.i.i = icmp eq i32 %dec.i.i.i.i424.i.i.i, 0 + br i1 %cmp.i.i.i425.i.i.i, label %if.then2.i.i.i426.i.i.i, label %cleanup.i.i.i + +if.then2.i.i.i426.i.i.i: ; preds = %if.then.i.i.i421.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %258, ptr noundef nonnull %257) + to label %cleanup.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +cleanup.i.i.i: ; preds = %if.then2.i.i.i426.i.i.i, %if.then.i.i.i421.i.i.i, %invoke.cont309.i.i.i, %if.then2.i.i.i225.i.i.i, %if.then.i.i.i220.i.i.i, %invoke.cont123.i.i.i + %m_r.sink.i.i.i = phi ptr [ %m_pr.i87.i.i, %if.then2.i.i.i225.i.i.i ], [ %m_pr.i87.i.i, %invoke.cont123.i.i.i ], [ %m_pr.i87.i.i, %if.then.i.i.i220.i.i.i ], [ %m_r.i92.i.i, %invoke.cont309.i.i.i ], [ %m_r.i92.i.i, %if.then.i.i.i421.i.i.i ], [ %m_r.i92.i.i, %if.then2.i.i.i426.i.i.i ] + store ptr null, ptr %m_r.sink.i.i.i, align 8 + %tobool.not.i.i429.i.i.i = icmp eq ptr %.pre673.pre.i.i.i, null + br i1 %tobool.not.i.i429.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i430.i.i.i + +if.then.i.i.i430.i.i.i: ; preds = %cleanup.i.i.i + %m_ref_count.i.i.i.i432.i.i.i = getelementptr inbounds %class.ast, ptr %.pre673.pre.i.i.i, i64 0, i32 2 + %260 = load i32, ptr %m_ref_count.i.i.i.i432.i.i.i, align 4 + %dec.i.i.i.i433.i.i.i = add i32 %260, -1 + store i32 %dec.i.i.i.i433.i.i.i, ptr %m_ref_count.i.i.i.i432.i.i.i, align 4 + %cmp.i.i.i434.i.i.i = icmp eq i32 %dec.i.i.i.i433.i.i.i, 0 + br i1 %cmp.i.i.i434.i.i.i, label %if.then2.i.i.i435.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.then2.i.i.i435.i.i.i: ; preds = %if.then.i.i.i430.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i.i.i, ptr noundef nonnull %.pre673.pre.i.i.i) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i + +terminate.lpad.i.i.i.i: ; preds = %if.then2.i.i.i435.i.i.i + %261 = landingpad { ptr, i32 } catch ptr null - %265 = extractvalue { ptr, i32 } %264, 0 - call void @__clang_call_terminate(ptr %265) #19 + %262 = extractvalue { ptr, i32 } %261, 0 + tail call void @__clang_call_terminate(ptr %262) #19 unreachable -sw.bb314.i.i: ; preds = %sw.bb.i - %this.val48.i.i = load ptr, ptr %28, align 8 - store ptr %this.val48.i.i, ptr %m_manager.i1234, align 8 - store ptr null, ptr %pr1317.i.i, align 8 - store ptr %this.val48.i.i, ptr %m_manager.i1233, align 8 - %266 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1226 = icmp eq ptr %266, null - br i1 %cmp.i.i.i1226, label %invoke.cont323.i.i, label %if.end.i.i.i1227 - -if.end.i.i.i1227: ; preds = %sw.bb314.i.i - %arrayidx.i.i.i1228 = getelementptr inbounds i32, ptr %266, i64 -1 - %267 = load i32, ptr %arrayidx.i.i.i1228, align 4 - %268 = add i32 %267, -1 - %269 = zext i32 %268 to i64 - br label %invoke.cont323.i.i - -invoke.cont323.i.i: ; preds = %if.end.i.i.i1227, %sw.bb314.i.i - %retval.0.i.i.i1229 = phi i64 [ %269, %if.end.i.i.i1227 ], [ 4294967295, %sw.bb314.i.i ] - %arrayidx.i1.i.i1230 = getelementptr inbounds ptr, ptr %266, i64 %retval.0.i.i.i1229 - %270 = load ptr, ptr %arrayidx.i1.i.i1230, align 8 - %tobool.not.i1211 = icmp eq ptr %270, null - br i1 %tobool.not.i1211, label %if.end.i.i.i1192, label %invoke.cont325.i.i - -invoke.cont325.i.i: ; preds = %invoke.cont323.i.i - %m_ref_count.i.i.i1213 = getelementptr inbounds %class.ast, ptr %270, i64 0, i32 2 - %271 = load i32, ptr %m_ref_count.i.i.i1213, align 4 - %inc.i.i.i1214 = add i32 %271, 1 - store i32 %inc.i.i.i1214, ptr %m_ref_count.i.i.i1213, align 4 - %.pre2925 = load ptr, ptr %m_nodes.i30.i, align 8, !nonnull !22, !noundef !22 - br label %if.end.i.i.i1192 - -if.end.i.i.i1192: ; preds = %invoke.cont323.i.i, %invoke.cont325.i.i - %272 = phi ptr [ %.pre2925, %invoke.cont325.i.i ], [ %266, %invoke.cont323.i.i ] - store ptr %270, ptr %pr2315.i.i, align 8 - %arrayidx.i.i.i1193 = getelementptr inbounds i32, ptr %272, i64 -1 - %273 = load i32, ptr %arrayidx.i.i.i1193, align 4 - %274 = add i32 %273, -1 - %275 = zext i32 %274 to i64 - %arrayidx.i1.i.i1197 = getelementptr inbounds ptr, ptr %272, i64 %275 - %276 = load ptr, ptr %arrayidx.i1.i.i1197, align 8 - %arrayidx.i.i1198 = getelementptr inbounds i32, ptr %272, i64 -1 - store i32 %274, ptr %arrayidx.i.i1198, align 4 - %277 = load ptr, ptr %m_result_pr_stack.i712, align 8 - %tobool.not.i.i.i.i1199 = icmp eq ptr %276, null - br i1 %tobool.not.i.i.i.i1199, label %invoke.cont328.i.i, label %if.then.i.i.i.i1200 - -if.then.i.i.i.i1200: ; preds = %if.end.i.i.i1192 - %m_ref_count.i.i.i.i.i1201 = getelementptr inbounds %class.ast, ptr %276, i64 0, i32 2 - %278 = load i32, ptr %m_ref_count.i.i.i.i.i1201, align 4 - %dec.i.i.i.i.i1202 = add i32 %278, -1 - store i32 %dec.i.i.i.i.i1202, ptr %m_ref_count.i.i.i.i.i1201, align 4 - %cmp.i.i.i.i1203 = icmp eq i32 %dec.i.i.i.i.i1202, 0 - br i1 %cmp.i.i.i.i1203, label %if.then2.i.i.i.i1204, label %invoke.cont328.i.i - -if.then2.i.i.i.i1204: ; preds = %if.then.i.i.i.i1200 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %277, ptr noundef nonnull %276) - to label %invoke.cont328.i.i unwind label %lpad322.i.i - -invoke.cont328.i.i: ; preds = %if.then.i.i.i.i1200, %if.end.i.i.i1192, %if.then2.i.i.i.i1204 - %279 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1183 = icmp eq ptr %279, null - br i1 %cmp.i.i.i1183, label %invoke.cont330.i.i, label %if.end.i.i.i1184 - -if.end.i.i.i1184: ; preds = %invoke.cont328.i.i - %arrayidx.i.i.i1185 = getelementptr inbounds i32, ptr %279, i64 -1 - %280 = load i32, ptr %arrayidx.i.i.i1185, align 4 - %281 = add i32 %280, -1 - %282 = zext i32 %281 to i64 - br label %invoke.cont330.i.i - -invoke.cont330.i.i: ; preds = %if.end.i.i.i1184, %invoke.cont328.i.i - %retval.0.i.i.i1186 = phi i64 [ %282, %if.end.i.i.i1184 ], [ 4294967295, %invoke.cont328.i.i ] - %arrayidx.i1.i.i1187 = getelementptr inbounds ptr, ptr %279, i64 %retval.0.i.i.i1186 - %283 = load ptr, ptr %arrayidx.i1.i.i1187, align 8 - %tobool.not.i1168 = icmp eq ptr %283, null - br i1 %tobool.not.i1168, label %invoke.cont332.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i1169 - -_ZN11ast_manager7inc_refEP3ast.exit.i1169: ; preds = %invoke.cont330.i.i - %m_ref_count.i.i.i1170 = getelementptr inbounds %class.ast, ptr %283, i64 0, i32 2 - %284 = load i32, ptr %m_ref_count.i.i.i1170, align 4 - %inc.i.i.i1171 = add i32 %284, 1 - store i32 %inc.i.i.i1171, ptr %m_ref_count.i.i.i1170, align 4 - br label %invoke.cont332.i.i - -invoke.cont332.i.i: ; preds = %invoke.cont330.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i1169 - store ptr %283, ptr %pr1317.i.i, align 8 - %285 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1148 = icmp eq ptr %285, null - br i1 %cmp.i.i.i1148, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1162, label %if.end.i.i.i1149 - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1162: ; preds = %invoke.cont332.i.i - %.pre.i1163 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1164 = add i32 %.pre.i1163, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i1151 - -if.end.i.i.i1149: ; preds = %invoke.cont332.i.i - %arrayidx.i.i.i1150 = getelementptr inbounds i32, ptr %285, i64 -1 - %286 = load i32, ptr %arrayidx.i.i.i1150, align 4 - %287 = add i32 %286, -1 - %288 = zext i32 %287 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i1151 - -_ZN6vectorIP3appLb0EjE4backEv.exit.i1151: ; preds = %if.end.i.i.i1149, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1162 - %dec.i.pre-phi.i1152 = phi i32 [ %.pre1.i1164, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1162 ], [ %287, %if.end.i.i.i1149 ] - %retval.0.i.i.i1153 = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1162 ], [ %288, %if.end.i.i.i1149 ] - %arrayidx.i1.i.i1154 = getelementptr inbounds ptr, ptr %285, i64 %retval.0.i.i.i1153 - %289 = load ptr, ptr %arrayidx.i1.i.i1154, align 8 - %arrayidx.i.i1155 = getelementptr inbounds i32, ptr %285, i64 -1 - store i32 %dec.i.pre-phi.i1152, ptr %arrayidx.i.i1155, align 4 - %290 = load ptr, ptr %m_result_pr_stack.i712, align 8 - %tobool.not.i.i.i.i1156 = icmp eq ptr %289, null - br i1 %tobool.not.i.i.i.i1156, label %invoke.cont335.i.i, label %if.then.i.i.i.i1157 - -if.then.i.i.i.i1157: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i1151 - %m_ref_count.i.i.i.i.i1158 = getelementptr inbounds %class.ast, ptr %289, i64 0, i32 2 - %291 = load i32, ptr %m_ref_count.i.i.i.i.i1158, align 4 - %dec.i.i.i.i.i1159 = add i32 %291, -1 - store i32 %dec.i.i.i.i.i1159, ptr %m_ref_count.i.i.i.i.i1158, align 4 - %cmp.i.i.i.i1160 = icmp eq i32 %dec.i.i.i.i.i1159, 0 - br i1 %cmp.i.i.i.i1160, label %if.then2.i.i.i.i1161, label %invoke.cont335.i.i - -if.then2.i.i.i.i1161: ; preds = %if.then.i.i.i.i1157 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %290, ptr noundef nonnull %289) - to label %invoke.cont335.i.i unwind label %lpad322.i.i - -invoke.cont335.i.i: ; preds = %if.then.i.i.i.i1157, %_ZN6vectorIP3appLb0EjE4backEv.exit.i1151, %if.then2.i.i.i.i1161 - %this.val.i.i = load ptr, ptr %28, align 8 - %call342.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i, ptr noundef %283, ptr noundef %270) - to label %invoke.cont341.i.i unwind label %lpad322.i.i - -invoke.cont341.i.i: ; preds = %invoke.cont335.i.i - %tobool.not.i1133 = icmp eq ptr %call342.i.i, null - br i1 %tobool.not.i1133, label %if.end.i1137, label %_ZN11ast_manager7inc_refEP3ast.exit.i1134 - -_ZN11ast_manager7inc_refEP3ast.exit.i1134: ; preds = %invoke.cont341.i.i - %m_ref_count.i.i.i1135 = getelementptr inbounds %class.ast, ptr %call342.i.i, i64 0, i32 2 - %292 = load i32, ptr %m_ref_count.i.i.i1135, align 4 - %inc.i.i.i1136 = add i32 %292, 1 - store i32 %inc.i.i.i1136, ptr %m_ref_count.i.i.i1135, align 4 - br label %if.end.i1137 - -if.end.i1137: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1134, %invoke.cont341.i.i - %293 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i1138 = icmp eq ptr %293, null - br i1 %tobool.not.i3.i1138, label %invoke.cont344.i.i, label %if.then.i.i.i1139 - -if.then.i.i.i1139: ; preds = %if.end.i1137 - %294 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i1141 = getelementptr inbounds %class.ast, ptr %293, i64 0, i32 2 - %295 = load i32, ptr %m_ref_count.i.i.i.i1141, align 4 - %dec.i.i.i.i1142 = add i32 %295, -1 - store i32 %dec.i.i.i.i1142, ptr %m_ref_count.i.i.i.i1141, align 4 - %cmp.i.i.i1143 = icmp eq i32 %dec.i.i.i.i1142, 0 - br i1 %cmp.i.i.i1143, label %if.then2.i.i.i1144, label %invoke.cont344.i.i - -if.then2.i.i.i1144: ; preds = %if.then.i.i.i1139 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %294, ptr noundef nonnull %293) - to label %invoke.cont344.i.i unwind label %lpad322.i.i - -invoke.cont344.i.i: ; preds = %if.then.i.i.i1139, %if.end.i1137, %if.then2.i.i.i1144 - store ptr %call342.i.i, ptr %m_pr.i66.i, align 8 - br i1 %tobool.not.i1133, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1115, label %if.then.i.i.i.i1112 - -if.then.i.i.i.i1112: ; preds = %invoke.cont344.i.i - %m_ref_count.i.i.i.i.i1113 = getelementptr inbounds %class.ast, ptr %call342.i.i, i64 0, i32 2 - %296 = load i32, ptr %m_ref_count.i.i.i.i.i1113, align 4 - %inc.i.i.i.i.i1114 = add i32 %296, 1 - store i32 %inc.i.i.i.i.i1114, ptr %m_ref_count.i.i.i.i.i1113, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1115 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1115: ; preds = %if.then.i.i.i.i1112, %invoke.cont344.i.i - %297 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1117 = icmp eq ptr %297, null - br i1 %cmp.i.i1117, label %if.then.i.i1126, label %lor.lhs.false.i.i1118 - -lor.lhs.false.i.i1118: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1115 - %arrayidx.i.i1119 = getelementptr inbounds i32, ptr %297, i64 -1 - %298 = load i32, ptr %arrayidx.i.i1119, align 4 - %arrayidx4.i.i1120 = getelementptr inbounds i32, ptr %297, i64 -2 - %299 = load i32, ptr %arrayidx4.i.i1120, align 4 - %cmp5.i.i1121 = icmp eq i32 %298, %299 - br i1 %cmp5.i.i1121, label %if.then.i.i1126, label %invoke.cont350.i.i - -if.then.i.i1126: ; preds = %lor.lhs.false.i.i1118, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1115 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1130 unwind label %lpad322.i.i - -.noexc1130: ; preds = %if.then.i.i1126 - %.pre.i.i1127 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1128 = getelementptr inbounds i32, ptr %.pre.i.i1127, i64 -1 - %.pre1.i.i1129 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1128, align 4 - br label %invoke.cont350.i.i - -invoke.cont350.i.i: ; preds = %.noexc1130, %lor.lhs.false.i.i1118 - %300 = phi i32 [ %.pre1.i.i1129, %.noexc1130 ], [ %298, %lor.lhs.false.i.i1118 ] - %301 = phi ptr [ %.pre.i.i1127, %.noexc1130 ], [ %297, %lor.lhs.false.i.i1118 ] - %idx.ext.i.i1122 = zext i32 %300 to i64 - %add.ptr.i.i1123 = getelementptr inbounds ptr, ptr %301, i64 %idx.ext.i.i1122 - store ptr %call342.i.i, ptr %add.ptr.i.i1123, align 8 - %302 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1124 = getelementptr inbounds i32, ptr %302, i64 -1 - %303 = load i32, ptr %arrayidx10.i.i1124, align 4 - %inc.i.i1125 = add i32 %303, 1 - store i32 %inc.i.i1125, ptr %arrayidx10.i.i1124, align 4 - br i1 %tobool.not.i1168, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1110, label %if.then.i.i.i1102 - -if.then.i.i.i1102: ; preds = %invoke.cont350.i.i - %m_ref_count.i.i.i.i1104 = getelementptr inbounds %class.ast, ptr %283, i64 0, i32 2 - %304 = load i32, ptr %m_ref_count.i.i.i.i1104, align 4 - %dec.i.i.i.i1105 = add i32 %304, -1 - store i32 %dec.i.i.i.i1105, ptr %m_ref_count.i.i.i.i1104, align 4 - %cmp.i.i.i1106 = icmp eq i32 %dec.i.i.i.i1105, 0 - br i1 %cmp.i.i.i1106, label %if.then2.i.i.i1108, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1110 - -if.then2.i.i.i1108: ; preds = %if.then.i.i.i1102 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i, ptr noundef nonnull %283) - to label %_ZN7obj_refI3app11ast_managerED2Ev.exit1110 unwind label %terminate.lpad.i1109 - -terminate.lpad.i1109: ; preds = %if.then2.i.i.i1108 - %305 = landingpad { ptr, i32 } +sw.bb314.i.i.i: ; preds = %sw.bb.i.i + %this.val48.i.i.i = load ptr, ptr %28, align 8 + store ptr %this.val48.i.i.i, ptr %m_manager.i436.i.i.i, align 8 + store ptr null, ptr %pr1317.i.i.i, align 8 + store ptr %this.val48.i.i.i, ptr %m_manager.i437.i.i.i, align 8 + %263 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i440.i.i.i = icmp eq ptr %263, null + br i1 %cmp.i.i.i440.i.i.i, label %invoke.cont323.i.i.i, label %if.end.i.i.i.i.i.i + +if.end.i.i.i.i.i.i: ; preds = %sw.bb314.i.i.i + %arrayidx.i.i.i441.i.i.i = getelementptr inbounds i32, ptr %263, i64 -1 + %264 = load i32, ptr %arrayidx.i.i.i441.i.i.i, align 4 + %265 = add i32 %264, -1 + %266 = zext i32 %265 to i64 + br label %invoke.cont323.i.i.i + +invoke.cont323.i.i.i: ; preds = %if.end.i.i.i.i.i.i, %sw.bb314.i.i.i + %retval.0.i.i.i.i.i.i = phi i64 [ %266, %if.end.i.i.i.i.i.i ], [ 4294967295, %sw.bb314.i.i.i ] + %arrayidx.i1.i.i.i.i.i = getelementptr inbounds ptr, ptr %263, i64 %retval.0.i.i.i.i.i.i + %267 = load ptr, ptr %arrayidx.i1.i.i.i.i.i, align 8 + %tobool.not.i442.i.i.i = icmp eq ptr %267, null + br i1 %tobool.not.i442.i.i.i, label %if.end.i.i.i459.i.i.i, label %invoke.cont325.i.i.i + +invoke.cont325.i.i.i: ; preds = %invoke.cont323.i.i.i + %m_ref_count.i.i.i444.i.i.i = getelementptr inbounds %class.ast, ptr %267, i64 0, i32 2 + %268 = load i32, ptr %m_ref_count.i.i.i444.i.i.i, align 4 + %inc.i.i.i445.i.i.i = add i32 %268, 1 + store i32 %inc.i.i.i445.i.i.i, ptr %m_ref_count.i.i.i444.i.i.i, align 4 + %.pre.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8, !nonnull !22, !noundef !22 + br label %if.end.i.i.i459.i.i.i + +if.end.i.i.i459.i.i.i: ; preds = %invoke.cont325.i.i.i, %invoke.cont323.i.i.i + %269 = phi ptr [ %.pre.i.i.i, %invoke.cont325.i.i.i ], [ %263, %invoke.cont323.i.i.i ] + store ptr %267, ptr %pr2315.i.i.i, align 8 + %arrayidx.i.i.i460.i.i.i = getelementptr inbounds i32, ptr %269, i64 -1 + %270 = load i32, ptr %arrayidx.i.i.i460.i.i.i, align 4 + %271 = add i32 %270, -1 + %272 = zext i32 %271 to i64 + %arrayidx.i1.i.i462.i.i.i = getelementptr inbounds ptr, ptr %269, i64 %272 + %273 = load ptr, ptr %arrayidx.i1.i.i462.i.i.i, align 8 + store i32 %271, ptr %arrayidx.i.i.i460.i.i.i, align 4 + %274 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i464.i.i.i = icmp eq ptr %273, null + br i1 %tobool.not.i.i.i.i464.i.i.i, label %invoke.cont328.i.i.i, label %if.then.i.i.i.i465.i.i.i + +if.then.i.i.i.i465.i.i.i: ; preds = %if.end.i.i.i459.i.i.i + %m_ref_count.i.i.i.i.i466.i.i.i = getelementptr inbounds %class.ast, ptr %273, i64 0, i32 2 + %275 = load i32, ptr %m_ref_count.i.i.i.i.i466.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i = add i32 %275, -1 + store i32 %dec.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i466.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i, label %invoke.cont328.i.i.i + +if.then2.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i465.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %274, ptr noundef nonnull %273) + to label %invoke.cont328.i.i.i unwind label %lpad322.i.i.i + +invoke.cont328.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i, %if.then.i.i.i.i465.i.i.i, %if.end.i.i.i459.i.i.i + %276 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i471.i.i.i = icmp eq ptr %276, null + br i1 %cmp.i.i.i471.i.i.i, label %invoke.cont330.i.i.i, label %if.end.i.i.i472.i.i.i + +if.end.i.i.i472.i.i.i: ; preds = %invoke.cont328.i.i.i + %arrayidx.i.i.i473.i.i.i = getelementptr inbounds i32, ptr %276, i64 -1 + %277 = load i32, ptr %arrayidx.i.i.i473.i.i.i, align 4 + %278 = add i32 %277, -1 + %279 = zext i32 %278 to i64 + br label %invoke.cont330.i.i.i + +invoke.cont330.i.i.i: ; preds = %if.end.i.i.i472.i.i.i, %invoke.cont328.i.i.i + %retval.0.i.i.i474.i.i.i = phi i64 [ %279, %if.end.i.i.i472.i.i.i ], [ 4294967295, %invoke.cont328.i.i.i ] + %arrayidx.i1.i.i475.i.i.i = getelementptr inbounds ptr, ptr %276, i64 %retval.0.i.i.i474.i.i.i + %280 = load ptr, ptr %arrayidx.i1.i.i475.i.i.i, align 8 + %tobool.not.i477.i.i.i = icmp eq ptr %280, null + br i1 %tobool.not.i477.i.i.i, label %if.end.i.i.i494.i.i.i, label %invoke.cont332.i.i.i + +invoke.cont332.i.i.i: ; preds = %invoke.cont330.i.i.i + %m_ref_count.i.i.i479.i.i.i = getelementptr inbounds %class.ast, ptr %280, i64 0, i32 2 + %281 = load i32, ptr %m_ref_count.i.i.i479.i.i.i, align 4 + %inc.i.i.i480.i.i.i = add i32 %281, 1 + store i32 %inc.i.i.i480.i.i.i, ptr %m_ref_count.i.i.i479.i.i.i, align 4 + %.pre.i101.i = load ptr, ptr %m_nodes.i30.i.i, align 8, !nonnull !22, !noundef !22 + br label %if.end.i.i.i494.i.i.i + +if.end.i.i.i494.i.i.i: ; preds = %invoke.cont332.i.i.i, %invoke.cont330.i.i.i + %282 = phi ptr [ %.pre.i101.i, %invoke.cont332.i.i.i ], [ %276, %invoke.cont330.i.i.i ] + store ptr %280, ptr %pr1317.i.i.i, align 8 + %arrayidx.i.i.i495.i.i.i = getelementptr inbounds i32, ptr %282, i64 -1 + %283 = load i32, ptr %arrayidx.i.i.i495.i.i.i, align 4 + %284 = add i32 %283, -1 + %285 = zext i32 %284 to i64 + %arrayidx.i1.i.i499.i.i.i = getelementptr inbounds ptr, ptr %282, i64 %285 + %286 = load ptr, ptr %arrayidx.i1.i.i499.i.i.i, align 8 + store i32 %284, ptr %arrayidx.i.i.i495.i.i.i, align 4 + %287 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i501.i.i.i = icmp eq ptr %286, null + br i1 %tobool.not.i.i.i.i501.i.i.i, label %invoke.cont335.i.i.i, label %if.then.i.i.i.i502.i.i.i + +if.then.i.i.i.i502.i.i.i: ; preds = %if.end.i.i.i494.i.i.i + %m_ref_count.i.i.i.i.i503.i.i.i = getelementptr inbounds %class.ast, ptr %286, i64 0, i32 2 + %288 = load i32, ptr %m_ref_count.i.i.i.i.i503.i.i.i, align 4 + %dec.i.i.i.i.i504.i.i.i = add i32 %288, -1 + store i32 %dec.i.i.i.i.i504.i.i.i, ptr %m_ref_count.i.i.i.i.i503.i.i.i, align 4 + %cmp.i.i.i.i505.i.i.i = icmp eq i32 %dec.i.i.i.i.i504.i.i.i, 0 + br i1 %cmp.i.i.i.i505.i.i.i, label %if.then2.i.i.i.i506.i.i.i, label %invoke.cont335.i.i.i + +if.then2.i.i.i.i506.i.i.i: ; preds = %if.then.i.i.i.i502.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %287, ptr noundef nonnull %286) + to label %invoke.cont335.i.i.i unwind label %lpad322.i.i.i + +invoke.cont335.i.i.i: ; preds = %if.then2.i.i.i.i506.i.i.i, %if.then.i.i.i.i502.i.i.i, %if.end.i.i.i494.i.i.i + %this.val.i.i.i = load ptr, ptr %28, align 8 + %call342.i.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i.i, ptr noundef %280, ptr noundef %267) + to label %invoke.cont341.i.i.i unwind label %lpad322.i.i.i + +invoke.cont341.i.i.i: ; preds = %invoke.cont335.i.i.i + %tobool.not.i512.i.i.i = icmp eq ptr %call342.i.i.i, null + br i1 %tobool.not.i512.i.i.i, label %if.end.i516.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i: ; preds = %invoke.cont341.i.i.i + %m_ref_count.i.i.i514.i.i.i = getelementptr inbounds %class.ast, ptr %call342.i.i.i, i64 0, i32 2 + %289 = load i32, ptr %m_ref_count.i.i.i514.i.i.i, align 4 + %inc.i.i.i515.i.i.i = add i32 %289, 1 + store i32 %inc.i.i.i515.i.i.i, ptr %m_ref_count.i.i.i514.i.i.i, align 4 + br label %if.end.i516.i.i.i + +if.end.i516.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i, %invoke.cont341.i.i.i + %290 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i517.i.i.i = icmp eq ptr %290, null + br i1 %tobool.not.i3.i517.i.i.i, label %invoke.cont344.i.i.i, label %if.then.i.i.i518.i.i.i + +if.then.i.i.i518.i.i.i: ; preds = %if.end.i516.i.i.i + %291 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i520.i.i.i = getelementptr inbounds %class.ast, ptr %290, i64 0, i32 2 + %292 = load i32, ptr %m_ref_count.i.i.i.i520.i.i.i, align 4 + %dec.i.i.i.i521.i.i.i = add i32 %292, -1 + store i32 %dec.i.i.i.i521.i.i.i, ptr %m_ref_count.i.i.i.i520.i.i.i, align 4 + %cmp.i.i.i522.i.i.i = icmp eq i32 %dec.i.i.i.i521.i.i.i, 0 + br i1 %cmp.i.i.i522.i.i.i, label %if.then2.i.i.i523.i.i.i, label %invoke.cont344.i.i.i + +if.then2.i.i.i523.i.i.i: ; preds = %if.then.i.i.i518.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %291, ptr noundef nonnull %290) + to label %invoke.cont344.i.i.i unwind label %lpad322.i.i.i + +invoke.cont344.i.i.i: ; preds = %if.then2.i.i.i523.i.i.i, %if.then.i.i.i518.i.i.i, %if.end.i516.i.i.i + store ptr %call342.i.i.i, ptr %m_pr.i87.i.i, align 8 + br i1 %tobool.not.i512.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i, label %if.then.i.i.i.i528.i.i.i + +if.then.i.i.i.i528.i.i.i: ; preds = %invoke.cont344.i.i.i + %m_ref_count.i.i.i.i.i529.i.i.i = getelementptr inbounds %class.ast, ptr %call342.i.i.i, i64 0, i32 2 + %293 = load i32, ptr %m_ref_count.i.i.i.i.i529.i.i.i, align 4 + %inc.i.i.i.i.i530.i.i.i = add i32 %293, 1 + store i32 %inc.i.i.i.i.i530.i.i.i, ptr %m_ref_count.i.i.i.i.i529.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i: ; preds = %if.then.i.i.i.i528.i.i.i, %invoke.cont344.i.i.i + %294 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i533.i.i.i = icmp eq ptr %294, null + br i1 %cmp.i.i533.i.i.i, label %if.then.i.i542.i.i.i, label %lor.lhs.false.i.i534.i.i.i + +lor.lhs.false.i.i534.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + %arrayidx.i.i535.i.i.i = getelementptr inbounds i32, ptr %294, i64 -1 + %295 = load i32, ptr %arrayidx.i.i535.i.i.i, align 4 + %arrayidx4.i.i536.i.i.i = getelementptr inbounds i32, ptr %294, i64 -2 + %296 = load i32, ptr %arrayidx4.i.i536.i.i.i, align 4 + %cmp5.i.i537.i.i.i = icmp eq i32 %295, %296 + br i1 %cmp5.i.i537.i.i.i, label %if.then.i.i542.i.i.i, label %invoke.cont350.i.i.i + +if.then.i.i542.i.i.i: ; preds = %lor.lhs.false.i.i534.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc546.i.i.i unwind label %lpad322.i.i.i + +.noexc546.i.i.i: ; preds = %if.then.i.i542.i.i.i + %.pre.i.i543.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i544.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i543.i.i.i, i64 -1 + %.pre1.i.i545.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i544.i.i.i, align 4 + br label %invoke.cont350.i.i.i + +invoke.cont350.i.i.i: ; preds = %.noexc546.i.i.i, %lor.lhs.false.i.i534.i.i.i + %297 = phi i32 [ %.pre1.i.i545.i.i.i, %.noexc546.i.i.i ], [ %295, %lor.lhs.false.i.i534.i.i.i ] + %298 = phi ptr [ %.pre.i.i543.i.i.i, %.noexc546.i.i.i ], [ %294, %lor.lhs.false.i.i534.i.i.i ] + %idx.ext.i.i538.i.i.i = zext i32 %297 to i64 + %add.ptr.i.i539.i.i.i = getelementptr inbounds ptr, ptr %298, i64 %idx.ext.i.i538.i.i.i + store ptr %call342.i.i.i, ptr %add.ptr.i.i539.i.i.i, align 8 + %299 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i540.i.i.i = getelementptr inbounds i32, ptr %299, i64 -1 + %300 = load i32, ptr %arrayidx10.i.i540.i.i.i, align 4 + %inc.i.i541.i.i.i = add i32 %300, 1 + store i32 %inc.i.i541.i.i.i, ptr %arrayidx10.i.i540.i.i.i, align 4 + br i1 %tobool.not.i477.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i, label %if.then.i.i.i549.i.i.i + +if.then.i.i.i549.i.i.i: ; preds = %invoke.cont350.i.i.i + %m_ref_count.i.i.i.i551.i.i.i = getelementptr inbounds %class.ast, ptr %280, i64 0, i32 2 + %301 = load i32, ptr %m_ref_count.i.i.i.i551.i.i.i, align 4 + %dec.i.i.i.i552.i.i.i = add i32 %301, -1 + store i32 %dec.i.i.i.i552.i.i.i, ptr %m_ref_count.i.i.i.i551.i.i.i, align 4 + %cmp.i.i.i553.i.i.i = icmp eq i32 %dec.i.i.i.i552.i.i.i, 0 + br i1 %cmp.i.i.i553.i.i.i, label %if.then2.i.i.i554.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + +if.then2.i.i.i554.i.i.i: ; preds = %if.then.i.i.i549.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i.i, ptr noundef nonnull %280) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i unwind label %terminate.lpad.i555.i.i.i + +terminate.lpad.i555.i.i.i: ; preds = %if.then2.i.i.i554.i.i.i + %302 = landingpad { ptr, i32 } catch ptr null - %306 = extractvalue { ptr, i32 } %305, 0 - call void @__clang_call_terminate(ptr %306) #19 + %303 = extractvalue { ptr, i32 } %302, 0 + tail call void @__clang_call_terminate(ptr %303) #19 unreachable -_ZN7obj_refI3app11ast_managerED2Ev.exit1110: ; preds = %invoke.cont350.i.i, %if.then.i.i.i1102, %if.then2.i.i.i1108 - br i1 %tobool.not.i1211, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1100, label %if.then.i.i.i1092 +_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i: ; preds = %if.then2.i.i.i554.i.i.i, %if.then.i.i.i549.i.i.i, %invoke.cont350.i.i.i + br i1 %tobool.not.i442.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i, label %if.then.i.i.i558.i.i.i -if.then.i.i.i1092: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1110 - %m_ref_count.i.i.i.i1094 = getelementptr inbounds %class.ast, ptr %270, i64 0, i32 2 - %307 = load i32, ptr %m_ref_count.i.i.i.i1094, align 4 - %dec.i.i.i.i1095 = add i32 %307, -1 - store i32 %dec.i.i.i.i1095, ptr %m_ref_count.i.i.i.i1094, align 4 - %cmp.i.i.i1096 = icmp eq i32 %dec.i.i.i.i1095, 0 - br i1 %cmp.i.i.i1096, label %if.then2.i.i.i1098, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1100 +if.then.i.i.i558.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + %m_ref_count.i.i.i.i560.i.i.i = getelementptr inbounds %class.ast, ptr %267, i64 0, i32 2 + %304 = load i32, ptr %m_ref_count.i.i.i.i560.i.i.i, align 4 + %dec.i.i.i.i561.i.i.i = add i32 %304, -1 + store i32 %dec.i.i.i.i561.i.i.i, ptr %m_ref_count.i.i.i.i560.i.i.i, align 4 + %cmp.i.i.i562.i.i.i = icmp eq i32 %dec.i.i.i.i561.i.i.i, 0 + br i1 %cmp.i.i.i562.i.i.i, label %if.then2.i.i.i563.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i -if.then2.i.i.i1098: ; preds = %if.then.i.i.i1092 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i, ptr noundef nonnull %270) - to label %_ZN7obj_refI3app11ast_managerED2Ev.exit1100 unwind label %terminate.lpad.i1099 +if.then2.i.i.i563.i.i.i: ; preds = %if.then.i.i.i558.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i.i, ptr noundef nonnull %267) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i unwind label %terminate.lpad.i564.i.i.i -terminate.lpad.i1099: ; preds = %if.then2.i.i.i1098 - %308 = landingpad { ptr, i32 } +terminate.lpad.i564.i.i.i: ; preds = %if.then2.i.i.i563.i.i.i + %305 = landingpad { ptr, i32 } catch ptr null - %309 = extractvalue { ptr, i32 } %308, 0 - call void @__clang_call_terminate(ptr %309) #19 + %306 = extractvalue { ptr, i32 } %305, 0 + tail call void @__clang_call_terminate(ptr %306) #19 unreachable -_ZN7obj_refI3app11ast_managerED2Ev.exit1100: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1110, %if.then.i.i.i1092, %if.then2.i.i.i1098 - %310 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1084 = icmp eq ptr %310, null - br i1 %cmp.i.i.i1084, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1089, label %if.end.i.i.i1085 - -if.end.i.i.i1085: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1100 - %arrayidx.i.i.i1086 = getelementptr inbounds i32, ptr %310, i64 -1 - %311 = load i32, ptr %arrayidx.i.i.i1086, align 4 - %312 = add i32 %311, -1 - %313 = zext i32 %312 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1089 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1089: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1100, %if.end.i.i.i1085 - %retval.0.i.i.i1087 = phi i64 [ %313, %if.end.i.i.i1085 ], [ 4294967295, %_ZN7obj_refI3app11ast_managerED2Ev.exit1100 ] - %arrayidx.i1.i.i1088 = getelementptr inbounds ptr, ptr %310, i64 %retval.0.i.i.i1087 - %314 = load ptr, ptr %arrayidx.i1.i.i1088, align 8 - %tobool.not.i1070 = icmp eq ptr %314, null - br i1 %tobool.not.i1070, label %if.end.i1074, label %_ZN11ast_manager7inc_refEP3ast.exit.i1071 - -_ZN11ast_manager7inc_refEP3ast.exit.i1071: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1089 - %m_ref_count.i.i.i1072 = getelementptr inbounds %class.ast, ptr %314, i64 0, i32 2 - %315 = load i32, ptr %m_ref_count.i.i.i1072, align 4 - %inc.i.i.i1073 = add i32 %315, 1 - store i32 %inc.i.i.i1073, ptr %m_ref_count.i.i.i1072, align 4 - br label %if.end.i1074 - -if.end.i1074: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1071, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1089 - %316 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i3.i1075 = icmp eq ptr %316, null - br i1 %tobool.not.i3.i1075, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1082, label %if.then.i.i.i1076 - -if.then.i.i.i1076: ; preds = %if.end.i1074 - %317 = load ptr, ptr %m_manager.i.i736, align 8 - %m_ref_count.i.i.i.i1078 = getelementptr inbounds %class.ast, ptr %316, i64 0, i32 2 - %318 = load i32, ptr %m_ref_count.i.i.i.i1078, align 4 - %dec.i.i.i.i1079 = add i32 %318, -1 - store i32 %dec.i.i.i.i1079, ptr %m_ref_count.i.i.i.i1078, align 4 - %cmp.i.i.i1080 = icmp eq i32 %dec.i.i.i.i1079, 0 - br i1 %cmp.i.i.i1080, label %if.then2.i.i.i1081, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1082 - -if.then2.i.i.i1081: ; preds = %if.then.i.i.i1076 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %317, ptr noundef nonnull %316) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1082 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1082: ; preds = %if.end.i1074, %if.then.i.i.i1076, %if.then2.i.i.i1081 - store ptr %314, ptr %m_r.i72.i, align 8 - %319 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1051 = icmp eq ptr %319, null - br i1 %cmp.i.i.i1051, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1065, label %if.end.i.i.i1052 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1065: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1082 - %.pre.i1066 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1067 = add i32 %.pre.i1066, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1054 - -if.end.i.i.i1052: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1082 - %arrayidx.i.i.i1053 = getelementptr inbounds i32, ptr %319, i64 -1 - %320 = load i32, ptr %arrayidx.i.i.i1053, align 4 - %321 = add i32 %320, -1 - %322 = zext i32 %321 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1054 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i1054: ; preds = %if.end.i.i.i1052, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1065 - %dec.i.pre-phi.i1055 = phi i32 [ %.pre1.i1067, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1065 ], [ %321, %if.end.i.i.i1052 ] - %retval.0.i.i.i1056 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1065 ], [ %322, %if.end.i.i.i1052 ] - %arrayidx.i1.i.i1057 = getelementptr inbounds ptr, ptr %319, i64 %retval.0.i.i.i1056 - %323 = load ptr, ptr %arrayidx.i1.i.i1057, align 8 - %arrayidx.i.i1058 = getelementptr inbounds i32, ptr %319, i64 -1 - store i32 %dec.i.pre-phi.i1055, ptr %arrayidx.i.i1058, align 4 - %324 = load ptr, ptr %m_result_stack.i956, align 8 - %tobool.not.i.i.i.i1059 = icmp eq ptr %323, null - br i1 %tobool.not.i.i.i.i1059, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1068, label %if.then.i.i.i.i1060 - -if.then.i.i.i.i1060: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1054 - %m_ref_count.i.i.i.i.i1061 = getelementptr inbounds %class.ast, ptr %323, i64 0, i32 2 - %325 = load i32, ptr %m_ref_count.i.i.i.i.i1061, align 4 - %dec.i.i.i.i.i1062 = add i32 %325, -1 - store i32 %dec.i.i.i.i.i1062, ptr %m_ref_count.i.i.i.i.i1061, align 4 - %cmp.i.i.i.i1063 = icmp eq i32 %dec.i.i.i.i.i1062, 0 - br i1 %cmp.i.i.i.i1063, label %if.then2.i.i.i.i1064, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1068 - -if.then2.i.i.i.i1064: ; preds = %if.then.i.i.i.i1060 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %324, ptr noundef nonnull %323) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1068 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1068: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1054, %if.then.i.i.i.i1060, %if.then2.i.i.i.i1064 - %326 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1031 = icmp eq ptr %326, null - br i1 %cmp.i.i.i1031, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1045, label %if.end.i.i.i1032 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1045: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1068 - %.pre.i1046 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1047 = add i32 %.pre.i1046, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1034 - -if.end.i.i.i1032: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1068 - %arrayidx.i.i.i1033 = getelementptr inbounds i32, ptr %326, i64 -1 - %327 = load i32, ptr %arrayidx.i.i.i1033, align 4 - %328 = add i32 %327, -1 - %329 = zext i32 %328 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1034 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i1034: ; preds = %if.end.i.i.i1032, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1045 - %dec.i.pre-phi.i1035 = phi i32 [ %.pre1.i1047, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1045 ], [ %328, %if.end.i.i.i1032 ] - %retval.0.i.i.i1036 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1045 ], [ %329, %if.end.i.i.i1032 ] - %arrayidx.i1.i.i1037 = getelementptr inbounds ptr, ptr %326, i64 %retval.0.i.i.i1036 - %330 = load ptr, ptr %arrayidx.i1.i.i1037, align 8 - %arrayidx.i.i1038 = getelementptr inbounds i32, ptr %326, i64 -1 - store i32 %dec.i.pre-phi.i1035, ptr %arrayidx.i.i1038, align 4 - %331 = load ptr, ptr %m_result_stack.i956, align 8 - %tobool.not.i.i.i.i1039 = icmp eq ptr %330, null - br i1 %tobool.not.i.i.i.i1039, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1048, label %if.then.i.i.i.i1040 - -if.then.i.i.i.i1040: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1034 - %m_ref_count.i.i.i.i.i1041 = getelementptr inbounds %class.ast, ptr %330, i64 0, i32 2 - %332 = load i32, ptr %m_ref_count.i.i.i.i.i1041, align 4 - %dec.i.i.i.i.i1042 = add i32 %332, -1 - store i32 %dec.i.i.i.i.i1042, ptr %m_ref_count.i.i.i.i.i1041, align 4 - %cmp.i.i.i.i1043 = icmp eq i32 %dec.i.i.i.i.i1042, 0 - br i1 %cmp.i.i.i.i1043, label %if.then2.i.i.i.i1044, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1048 - -if.then2.i.i.i.i1044: ; preds = %if.then.i.i.i.i1040 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %331, ptr noundef nonnull %330) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1048 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1048: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1034, %if.then.i.i.i.i1040, %if.then2.i.i.i.i1044 - %333 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i.i.i.i1009 = icmp eq ptr %333, null - br i1 %tobool.not.i.i.i.i1009, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1013, label %if.then.i.i.i.i1010 - -if.then.i.i.i.i1010: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1048 - %m_ref_count.i.i.i.i.i1011 = getelementptr inbounds %class.ast, ptr %333, i64 0, i32 2 - %334 = load i32, ptr %m_ref_count.i.i.i.i.i1011, align 4 - %inc.i.i.i.i.i1012 = add i32 %334, 1 - store i32 %inc.i.i.i.i.i1012, ptr %m_ref_count.i.i.i.i.i1011, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1013 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1013: ; preds = %if.then.i.i.i.i1010, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1048 - %335 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1015 = icmp eq ptr %335, null - br i1 %cmp.i.i1015, label %if.then.i.i1024, label %lor.lhs.false.i.i1016 - -lor.lhs.false.i.i1016: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1013 - %arrayidx.i.i1017 = getelementptr inbounds i32, ptr %335, i64 -1 - %336 = load i32, ptr %arrayidx.i.i1017, align 4 - %arrayidx4.i.i1018 = getelementptr inbounds i32, ptr %335, i64 -2 - %337 = load i32, ptr %arrayidx4.i.i1018, align 4 - %cmp5.i.i1019 = icmp eq i32 %336, %337 - br i1 %cmp5.i.i1019, label %if.then.i.i1024, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1028 - -if.then.i.i1024: ; preds = %lor.lhs.false.i.i1016, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1013 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - %.pre.i.i1025 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1026 = getelementptr inbounds i32, ptr %.pre.i.i1025, i64 -1 - %.pre1.i.i1027 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1026, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1028 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1028: ; preds = %lor.lhs.false.i.i1016, %if.then.i.i1024 - %338 = phi i32 [ %.pre1.i.i1027, %if.then.i.i1024 ], [ %336, %lor.lhs.false.i.i1016 ] - %339 = phi ptr [ %.pre.i.i1025, %if.then.i.i1024 ], [ %335, %lor.lhs.false.i.i1016 ] - %idx.ext.i.i1020 = zext i32 %338 to i64 - %add.ptr.i.i1021 = getelementptr inbounds ptr, ptr %339, i64 %idx.ext.i.i1020 - store ptr %333, ptr %add.ptr.i.i1021, align 8 - %340 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1022 = getelementptr inbounds i32, ptr %340, i64 -1 - %341 = load i32, ptr %arrayidx10.i.i1022, align 4 - %inc.i.i1023 = add i32 %341, 1 - store i32 %inc.i.i1023, ptr %arrayidx10.i.i1022, align 4 - %bf.load369.i.i = load i32, ptr %90, align 8 - %bf.clear370.i.i = and i32 %bf.load369.i.i, 1 - %tobool371.i.i.not = icmp eq i32 %bf.clear370.i.i, 0 - br i1 %tobool371.i.i.not, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1008, label %if.then.i1007 - -if.then.i1007: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1028 - %342 = load ptr, ptr %m_pr.i66.i, align 8 - %343 = load ptr, ptr %m_r.i72.i, align 8 - call void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %88, ptr noundef %343, ptr noundef %342) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1008 - -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1008: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1028, %if.then.i1007 - %344 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1003 = getelementptr inbounds i32, ptr %344, i64 -1 - %345 = load i32, ptr %arrayidx.i1003, align 4 - %dec.i1004 = add i32 %345, -1 - store i32 %dec.i1004, ptr %arrayidx.i1003, align 4 - %this.val57.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i996 = icmp eq ptr %this.val57.i.i, null - br i1 %cmp.i.i996, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i997 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i997: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1008 - %arrayidx.i.i998 = getelementptr inbounds i32, ptr %this.val57.i.i, i64 -1 - %346 = load i32, ptr %arrayidx.i.i998, align 4 - %cmp3.i.i999 = icmp eq i32 %346, 0 - br i1 %cmp3.i.i999, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1000 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1000: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i997 - %347 = add i32 %346, -1 - %348 = zext i32 %347 to i64 - %m_new_child.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val57.i.i, i64 %348, i32 1 - %bf.load.i1001 = load i32, ptr %m_new_child.i, align 8 - %bf.set.i = or i32 %bf.load.i1001, 2 - store i32 %bf.set.i, ptr %m_new_child.i, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - -lpad322.i.i: ; preds = %if.then2.i.i.i.i1204, %if.then2.i.i.i.i1161, %if.then2.i.i.i1144, %if.then.i.i1126, %invoke.cont335.i.i - %349 = landingpad { ptr, i32 } +_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i: ; preds = %if.then2.i.i.i563.i.i.i, %if.then.i.i.i558.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + %307 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i568.i.i.i = icmp eq ptr %307, null + br i1 %cmp.i.i.i568.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i, label %if.end.i.i.i569.i.i.i + +if.end.i.i.i569.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i + %arrayidx.i.i.i570.i.i.i = getelementptr inbounds i32, ptr %307, i64 -1 + %308 = load i32, ptr %arrayidx.i.i.i570.i.i.i, align 4 + %309 = add i32 %308, -1 + %310 = zext i32 %309 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i569.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i + %retval.0.i.i.i571.i.i.i = phi i64 [ %310, %if.end.i.i.i569.i.i.i ], [ 4294967295, %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i ] + %arrayidx.i1.i.i572.i.i.i = getelementptr inbounds ptr, ptr %307, i64 %retval.0.i.i.i571.i.i.i + %311 = load ptr, ptr %arrayidx.i1.i.i572.i.i.i, align 8 + %tobool.not.i573.i.i.i = icmp eq ptr %311, null + br i1 %tobool.not.i573.i.i.i, label %if.end.i577.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + %m_ref_count.i.i.i575.i.i.i = getelementptr inbounds %class.ast, ptr %311, i64 0, i32 2 + %312 = load i32, ptr %m_ref_count.i.i.i575.i.i.i, align 4 + %inc.i.i.i576.i.i.i = add i32 %312, 1 + store i32 %inc.i.i.i576.i.i.i, ptr %m_ref_count.i.i.i575.i.i.i, align 4 + br label %if.end.i577.i.i.i + +if.end.i577.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + %313 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i3.i578.i.i.i = icmp eq ptr %313, null + br i1 %tobool.not.i3.i578.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i, label %if.then.i.i.i579.i.i.i + +if.then.i.i.i579.i.i.i: ; preds = %if.end.i577.i.i.i + %314 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i581.i.i.i = getelementptr inbounds %class.ast, ptr %313, i64 0, i32 2 + %315 = load i32, ptr %m_ref_count.i.i.i.i581.i.i.i, align 4 + %dec.i.i.i.i582.i.i.i = add i32 %315, -1 + store i32 %dec.i.i.i.i582.i.i.i, ptr %m_ref_count.i.i.i.i581.i.i.i, align 4 + %cmp.i.i.i583.i.i.i = icmp eq i32 %dec.i.i.i.i582.i.i.i, 0 + br i1 %cmp.i.i.i583.i.i.i, label %if.then2.i.i.i584.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + +if.then2.i.i.i584.i.i.i: ; preds = %if.then.i.i.i579.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %314, ptr noundef nonnull %313) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i: ; preds = %if.then2.i.i.i584.i.i.i, %if.then.i.i.i579.i.i.i, %if.end.i577.i.i.i + store ptr %311, ptr %m_r.i92.i.i, align 8 + %316 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i588.i.i.i = icmp eq ptr %316, null + br i1 %cmp.i.i.i588.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i, label %if.end.i.i.i589.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + %.pre.i601.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i602.i.i.i = add i32 %.pre.i601.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + +if.end.i.i.i589.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + %arrayidx.i.i.i590.i.i.i = getelementptr inbounds i32, ptr %316, i64 -1 + %317 = load i32, ptr %arrayidx.i.i.i590.i.i.i, align 4 + %318 = add i32 %317, -1 + %319 = zext i32 %318 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i: ; preds = %if.end.i.i.i589.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i + %dec.i.pre-phi.i591.i.i.i = phi i32 [ %.pre1.i602.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i ], [ %318, %if.end.i.i.i589.i.i.i ] + %retval.0.i.i.i592.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i ], [ %319, %if.end.i.i.i589.i.i.i ] + %arrayidx.i1.i.i593.i.i.i = getelementptr inbounds ptr, ptr %316, i64 %retval.0.i.i.i592.i.i.i + %320 = load ptr, ptr %arrayidx.i1.i.i593.i.i.i, align 8 + %arrayidx.i.i594.i.i.i = getelementptr inbounds i32, ptr %316, i64 -1 + store i32 %dec.i.pre-phi.i591.i.i.i, ptr %arrayidx.i.i594.i.i.i, align 4 + %321 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i595.i.i.i = icmp eq ptr %320, null + br i1 %tobool.not.i.i.i.i595.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i, label %if.then.i.i.i.i596.i.i.i + +if.then.i.i.i.i596.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + %m_ref_count.i.i.i.i.i597.i.i.i = getelementptr inbounds %class.ast, ptr %320, i64 0, i32 2 + %322 = load i32, ptr %m_ref_count.i.i.i.i.i597.i.i.i, align 4 + %dec.i.i.i.i.i598.i.i.i = add i32 %322, -1 + store i32 %dec.i.i.i.i.i598.i.i.i, ptr %m_ref_count.i.i.i.i.i597.i.i.i, align 4 + %cmp.i.i.i.i599.i.i.i = icmp eq i32 %dec.i.i.i.i.i598.i.i.i, 0 + br i1 %cmp.i.i.i.i599.i.i.i, label %if.then2.i.i.i.i600.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + +if.then2.i.i.i.i600.i.i.i: ; preds = %if.then.i.i.i.i596.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %321, ptr noundef nonnull %320) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i: ; preds = %if.then2.i.i.i.i600.i.i.i, %if.then.i.i.i.i596.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + %323 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i605.i.i.i = icmp eq ptr %323, null + br i1 %cmp.i.i.i605.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i, label %if.end.i.i.i606.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + %.pre.i620.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i621.i.i.i = add i32 %.pre.i620.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + +if.end.i.i.i606.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + %arrayidx.i.i.i607.i.i.i = getelementptr inbounds i32, ptr %323, i64 -1 + %324 = load i32, ptr %arrayidx.i.i.i607.i.i.i, align 4 + %325 = add i32 %324, -1 + %326 = zext i32 %325 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i: ; preds = %if.end.i.i.i606.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i + %dec.i.pre-phi.i609.i.i.i = phi i32 [ %.pre1.i621.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i ], [ %325, %if.end.i.i.i606.i.i.i ] + %retval.0.i.i.i610.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i ], [ %326, %if.end.i.i.i606.i.i.i ] + %arrayidx.i1.i.i611.i.i.i = getelementptr inbounds ptr, ptr %323, i64 %retval.0.i.i.i610.i.i.i + %327 = load ptr, ptr %arrayidx.i1.i.i611.i.i.i, align 8 + %arrayidx.i.i612.i.i.i = getelementptr inbounds i32, ptr %323, i64 -1 + store i32 %dec.i.pre-phi.i609.i.i.i, ptr %arrayidx.i.i612.i.i.i, align 4 + %328 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i613.i.i.i = icmp eq ptr %327, null + br i1 %tobool.not.i.i.i.i613.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i, label %if.then.i.i.i.i614.i.i.i + +if.then.i.i.i.i614.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + %m_ref_count.i.i.i.i.i615.i.i.i = getelementptr inbounds %class.ast, ptr %327, i64 0, i32 2 + %329 = load i32, ptr %m_ref_count.i.i.i.i.i615.i.i.i, align 4 + %dec.i.i.i.i.i616.i.i.i = add i32 %329, -1 + store i32 %dec.i.i.i.i.i616.i.i.i, ptr %m_ref_count.i.i.i.i.i615.i.i.i, align 4 + %cmp.i.i.i.i617.i.i.i = icmp eq i32 %dec.i.i.i.i.i616.i.i.i, 0 + br i1 %cmp.i.i.i.i617.i.i.i, label %if.then2.i.i.i.i618.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + +if.then2.i.i.i.i618.i.i.i: ; preds = %if.then.i.i.i.i614.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %328, ptr noundef nonnull %327) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i: ; preds = %if.then2.i.i.i.i618.i.i.i, %if.then.i.i.i.i614.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + %330 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i.i.i.i624.i.i.i = icmp eq ptr %330, null + br i1 %tobool.not.i.i.i.i624.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i, label %if.then.i.i.i.i625.i.i.i + +if.then.i.i.i.i625.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + %m_ref_count.i.i.i.i.i626.i.i.i = getelementptr inbounds %class.ast, ptr %330, i64 0, i32 2 + %331 = load i32, ptr %m_ref_count.i.i.i.i.i626.i.i.i, align 4 + %inc.i.i.i.i.i627.i.i.i = add i32 %331, 1 + store i32 %inc.i.i.i.i.i627.i.i.i, ptr %m_ref_count.i.i.i.i.i626.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i: ; preds = %if.then.i.i.i.i625.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + %332 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i630.i.i.i = icmp eq ptr %332, null + br i1 %cmp.i.i630.i.i.i, label %if.then.i.i639.i.i.i, label %lor.lhs.false.i.i631.i.i.i + +lor.lhs.false.i.i631.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + %arrayidx.i.i632.i.i.i = getelementptr inbounds i32, ptr %332, i64 -1 + %333 = load i32, ptr %arrayidx.i.i632.i.i.i, align 4 + %arrayidx4.i.i633.i.i.i = getelementptr inbounds i32, ptr %332, i64 -2 + %334 = load i32, ptr %arrayidx4.i.i633.i.i.i, align 4 + %cmp5.i.i634.i.i.i = icmp eq i32 %333, %334 + br i1 %cmp5.i.i634.i.i.i, label %if.then.i.i639.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + +if.then.i.i639.i.i.i: ; preds = %lor.lhs.false.i.i631.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + %.pre.i.i640.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i641.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i640.i.i.i, i64 -1 + %.pre1.i.i642.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i641.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i: ; preds = %if.then.i.i639.i.i.i, %lor.lhs.false.i.i631.i.i.i + %335 = phi i32 [ %.pre1.i.i642.i.i.i, %if.then.i.i639.i.i.i ], [ %333, %lor.lhs.false.i.i631.i.i.i ] + %336 = phi ptr [ %.pre.i.i640.i.i.i, %if.then.i.i639.i.i.i ], [ %332, %lor.lhs.false.i.i631.i.i.i ] + %idx.ext.i.i635.i.i.i = zext i32 %335 to i64 + %add.ptr.i.i636.i.i.i = getelementptr inbounds ptr, ptr %336, i64 %idx.ext.i.i635.i.i.i + store ptr %330, ptr %add.ptr.i.i636.i.i.i, align 8 + %337 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i637.i.i.i = getelementptr inbounds i32, ptr %337, i64 -1 + %338 = load i32, ptr %arrayidx10.i.i637.i.i.i, align 4 + %inc.i.i638.i.i.i = add i32 %338, 1 + store i32 %inc.i.i638.i.i.i, ptr %arrayidx10.i.i637.i.i.i, align 4 + %bf.load369.i.i.i = load i32, ptr %90, align 8 + %bf.clear370.i.i.i = and i32 %bf.load369.i.i.i, 1 + %tobool371.not.i.i.i = icmp eq i32 %bf.clear370.i.i.i, 0 + br i1 %tobool371.not.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i, label %if.then.i645.i.i.i + +if.then.i645.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + %339 = load ptr, ptr %m_pr.i87.i.i, align 8 + %340 = load ptr, ptr %m_r.i92.i.i, align 8 + tail call void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %88, ptr noundef %340, ptr noundef %339) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i: ; preds = %if.then.i645.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + %341 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i648.i.i.i = getelementptr inbounds i32, ptr %341, i64 -1 + %342 = load i32, ptr %arrayidx.i648.i.i.i, align 4 + %dec.i649.i.i.i = add i32 %342, -1 + store i32 %dec.i649.i.i.i, ptr %arrayidx.i648.i.i.i, align 4 + %this.val57.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i650.i.i.i = icmp eq ptr %this.val57.i.i.i, null + br i1 %cmp.i.i650.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i + %arrayidx.i.i652.i.i.i = getelementptr inbounds i32, ptr %this.val57.i.i.i, i64 -1 + %343 = load i32, ptr %arrayidx.i.i652.i.i.i, align 4 + %cmp3.i.i653.i.i.i = icmp eq i32 %343, 0 + br i1 %cmp3.i.i653.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i + %344 = add i32 %343, -1 + %345 = zext i32 %344 to i64 + %m_new_child.i655.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val57.i.i.i, i64 %345, i32 1 + %bf.load.i656.i.i.i = load i32, ptr %m_new_child.i655.i.i.i, align 8 + %bf.set.i657.i.i.i = or i32 %bf.load.i656.i.i.i, 2 + store i32 %bf.set.i657.i.i.i, ptr %m_new_child.i655.i.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i + +lpad322.i.i.i: ; preds = %if.then.i.i542.i.i.i, %if.then2.i.i.i523.i.i.i, %invoke.cont335.i.i.i, %if.then2.i.i.i.i506.i.i.i, %if.then2.i.i.i.i.i.i.i + %346 = landingpad { ptr, i32 } cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr1317.i.i) #18 - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2315.i.i) #18 - br label %common.resume + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr1317.i.i.i) #18 + br label %eh.resume.i.i.i -sw.bb373.i.i: ; preds = %sw.bb.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 515, ptr noundef nonnull @.str.17) - call void @exit(i32 noundef 107) #19 +sw.bb373.i.i.i: ; preds = %sw.bb.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 515, ptr noundef nonnull @.str.17) + tail call void @exit(i32 noundef 107) #19 unreachable -sw.bb374.i.i: ; preds = %sw.bb.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 520, ptr noundef nonnull @.str.17) - call void @exit(i32 noundef 107) #19 +sw.bb374.i.i.i: ; preds = %sw.bb.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 520, ptr noundef nonnull @.str.17) + tail call void @exit(i32 noundef 107) #19 + unreachable + +sw.bb.i.i.unreachabledefault: ; preds = %sw.bb.i.i unreachable -entry.unreachabledefault.i.i: ; preds = %sw.bb.i +default.unreachable: ; preds = %sw.bb.i.i258 unreachable -common.resume: ; preds = %cleanup.action.i47, %ehcleanup13.i, %cleanup.action.i225, %ehcleanup14.i221, %lpad.i.i358, %lpad249.i.i, %cleanup.action.i, %ehcleanup15.i, %cleanup.action.i73, %ehcleanup14.i, %lpad.i.i, %lpad322.i.i, %ehcleanup.i.i259, %lpad.i2047, %ehcleanup218.i.i, %lpad.i944 - %common.resume.op = phi { ptr, i32 } [ %395, %lpad.i944 ], [ %.pn50.pn.i.i, %ehcleanup218.i.i ], [ %908, %lpad.i2047 ], [ %.pn.i45.i, %ehcleanup.i.i259 ], [ %349, %lpad322.i.i ], [ %lpad.phi2848, %lpad.i.i ], [ %.pn.pn.i712784, %cleanup.action.i73 ], [ %83, %ehcleanup14.i ], [ %.pn.pn.i2777, %cleanup.action.i ], [ %33, %ehcleanup15.i ], [ %lpad.phi2830, %lpad249.i.i ], [ %lpad.phi, %lpad.i.i358 ], [ %.pn.pn.i2232804, %cleanup.action.i225 ], [ %620, %ehcleanup14.i221 ], [ %.pn.pn.i442797, %cleanup.action.i47 ], [ %591, %ehcleanup13.i ] +common.resume: ; preds = %ehcleanup13.i, %cleanup.action.i62, %ehcleanup14.i.i101, %cleanup.action.i.i97, %lpad.i.i.i, %lpad249.i.i.i, %lpad.i.i.body.i.i226, %ehcleanup.i.i.i161, %ehcleanup15.i, %cleanup.action.i, %ehcleanup14.i.i, %cleanup.action.i.i, %eh.resume.i.i.i, %lpad.i.i.body.i.i, %ehcleanup218.i.i.i + %common.resume.op = phi { ptr, i32 } [ %.pn.i.i.i, %eh.resume.i.i.i ], [ %eh.lpad-body291.i.i, %lpad.i.i.body.i.i ], [ %.pn50.pn.i.i.i, %ehcleanup218.i.i.i ], [ %83, %ehcleanup14.i.i ], [ %.pn.pn296.i.i, %cleanup.action.i.i ], [ %33, %ehcleanup15.i ], [ %.pn.pn111.i, %cleanup.action.i ], [ %lpad.phi539.i.i.i, %lpad249.i.i.i ], [ %lpad.phi.i.i.i, %lpad.i.i.i ], [ %eh.lpad-body248.i.i, %lpad.i.i.body.i.i226 ], [ %.pn.i59.i.i, %ehcleanup.i.i.i161 ], [ %621, %ehcleanup14.i.i101 ], [ %.pn.pn4.i.i, %cleanup.action.i.i97 ], [ %592, %ehcleanup13.i ], [ %.pn.pn57.i, %cleanup.action.i62 ] resume { ptr, i32 } %common.resume.op -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i: ; preds = %while.body.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1000, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i997, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1008, %if.then2.i.i.i1242, %if.then.i.i.i1236, %cleanup.i.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2315.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr1317.i.i) - br label %while.cond.i.backedgethread-pre-split - -sw.bb34.i: ; preds = %if.end31.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_q.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2.i.i) - %m_num_decls.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 2 - %350 = load i32, ptr %m_num_decls.i, align 4 - %bf.load.i50.i = load i32, ptr %90, align 8 - %cmp.i51.i = icmp ult i32 %bf.load.i50.i, 64 - br i1 %cmp.i51.i, label %if.then.i.i81, label %cond.end.i.i - -if.then.i.i81: ; preds = %sw.bb34.i - call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - %m_expr.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 3 - %351 = load ptr, ptr %m_expr.i, align 8 - store ptr %351, ptr %m_root.i, align 8 - %352 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i991 = icmp eq ptr %352, null - br i1 %cmp.i991, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit995, label %if.end.i992 - -if.end.i992: ; preds = %if.then.i.i81 - %arrayidx.i993 = getelementptr inbounds i32, ptr %352, i64 -1 - %353 = load i32, ptr %arrayidx.i993, align 4 - br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit995 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit995: ; preds = %if.then.i.i81, %if.end.i992 - %retval.0.i994 = phi i32 [ %353, %if.end.i992 ], [ 0, %if.then.i.i81 ] - %cmp4.i.i2881.not = icmp eq i32 %350, 0 - br i1 %cmp4.i.i2881.not, label %for.end.i.i, label %for.body.i.i82 - -for.body.i.i82: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit995, %_ZN6vectorIjLb0EjE9push_backERKj.exit - %i.0.i.i2882 = phi i32 [ %inc.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit995 ] - %354 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i977 = icmp eq ptr %354, null - br i1 %cmp.i977, label %if.then.i987, label %lor.lhs.false.i978 - -lor.lhs.false.i978: ; preds = %for.body.i.i82 - %arrayidx.i979 = getelementptr inbounds i32, ptr %354, i64 -1 - %355 = load i32, ptr %arrayidx.i979, align 4 - %arrayidx4.i980 = getelementptr inbounds i32, ptr %354, i64 -2 - %356 = load i32, ptr %arrayidx4.i980, align 4 - %cmp5.i981 = icmp eq i32 %355, %356 - br i1 %cmp5.i981, label %if.then.i987, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - -if.then.i987: ; preds = %lor.lhs.false.i978, %for.body.i.i82 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i) - %.pre.i988 = load ptr, ptr %m_bindings.i.i, align 8 - %arrayidx8.phi.trans.insert.i989 = getelementptr inbounds i32, ptr %.pre.i988, i64 -1 - %.pre1.i990 = load i32, ptr %arrayidx8.phi.trans.insert.i989, align 4 - br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - -_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit: ; preds = %lor.lhs.false.i978, %if.then.i987 - %357 = phi i32 [ %.pre1.i990, %if.then.i987 ], [ %355, %lor.lhs.false.i978 ] - %358 = phi ptr [ %.pre.i988, %if.then.i987 ], [ %354, %lor.lhs.false.i978 ] - %idx.ext.i983 = zext i32 %357 to i64 - %add.ptr.i984 = getelementptr inbounds ptr, ptr %358, i64 %idx.ext.i983 - store ptr null, ptr %add.ptr.i984, align 8 - %359 = load ptr, ptr %m_bindings.i.i, align 8 - %arrayidx10.i985 = getelementptr inbounds i32, ptr %359, i64 -1 - %360 = load i32, ptr %arrayidx10.i985, align 4 - %inc.i986 = add i32 %360, 1 - store i32 %inc.i986, ptr %arrayidx10.i985, align 4 - %361 = load ptr, ptr %m_shifts.i.i, align 8 - %cmp.i968 = icmp eq ptr %361, null - br i1 %cmp.i968, label %if.then.i974, label %lor.lhs.false.i - -lor.lhs.false.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - %arrayidx.i969 = getelementptr inbounds i32, ptr %361, i64 -1 - %362 = load i32, ptr %arrayidx.i969, align 4 - %arrayidx4.i = getelementptr inbounds i32, ptr %361, i64 -2 - %363 = load i32, ptr %arrayidx4.i, align 4 - %cmp5.i = icmp eq i32 %362, %363 - br i1 %cmp5.i, label %if.then.i974, label %_ZN6vectorIjLb0EjE9push_backERKj.exit - -if.then.i974: ; preds = %lor.lhs.false.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i) - %.pre.i975 = load ptr, ptr %m_shifts.i.i, align 8 - %arrayidx8.phi.trans.insert.i = getelementptr inbounds i32, ptr %.pre.i975, i64 -1 - %.pre1.i976 = load i32, ptr %arrayidx8.phi.trans.insert.i, align 4 - br label %_ZN6vectorIjLb0EjE9push_backERKj.exit - -_ZN6vectorIjLb0EjE9push_backERKj.exit: ; preds = %lor.lhs.false.i, %if.then.i974 - %364 = phi i32 [ %.pre1.i976, %if.then.i974 ], [ %362, %lor.lhs.false.i ] - %365 = phi ptr [ %.pre.i975, %if.then.i974 ], [ %361, %lor.lhs.false.i ] - %idx.ext.i971 = zext i32 %364 to i64 - %add.ptr.i972 = getelementptr inbounds i32, ptr %365, i64 %idx.ext.i971 - store i32 %retval.0.i994, ptr %add.ptr.i972, align 4 - %366 = load ptr, ptr %m_shifts.i.i, align 8 - %arrayidx10.i = getelementptr inbounds i32, ptr %366, i64 -1 - %367 = load i32, ptr %arrayidx10.i, align 4 - %inc.i973 = add i32 %367, 1 - store i32 %inc.i973, ptr %arrayidx10.i, align 4 - %inc.i.i = add nuw i32 %i.0.i.i2882, 1 - %exitcond.not = icmp eq i32 %inc.i.i, %350 - br i1 %exitcond.not, label %for.end.i.i, label %for.body.i.i82, !llvm.loop !23 - -for.end.i.i: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit995 - %368 = load i32, ptr %m_num_qvars.i, align 8 - %add.i.i = add i32 %368, %350 - store i32 %add.i.i, ptr %m_num_qvars.i, align 8 - br label %cond.end.i.i - -cond.end.i.i: ; preds = %for.end.i.i, %sw.bb34.i - %m_num_patterns.i.i967 = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 11 - %369 = load i32, ptr %m_num_patterns.i.i967, align 8 - %add.i = add i32 %369, 1 - %m_num_no_patterns.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 12 - %370 = load i32, ptr %m_num_no_patterns.i.i, align 4 - %add3.i = add i32 %add.i, %370 - %m_patterns_decls.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 13 - %m_expr.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 3 - br label %while.cond.i52.i - -while.cond.i52.i: ; preds = %_ZNK10quantifier9get_childEj.exit, %cond.end.i.i - %bf.load11.i.i = load i32, ptr %90, align 8 - %bf.lshr12.i.i = lshr i32 %bf.load11.i.i, 6 - %cmp13.i.i = icmp ult i32 %bf.lshr12.i.i, %add3.i - br i1 %cmp13.i.i, label %while.body.i88.i, label %while.end.i53.i - -while.body.i88.i: ; preds = %while.cond.i52.i - %cmp.i957 = icmp ult i32 %bf.load11.i.i, 64 - br i1 %cmp.i957, label %_ZNK10quantifier9get_childEj.exit, label %if.else.i958 - -if.else.i958: ; preds = %while.body.i88.i - %371 = load i32, ptr %m_num_patterns.i.i967, align 8 - %cmp3.not.i = icmp ult i32 %371, %bf.lshr12.i.i - br i1 %cmp3.not.i, label %if.else6.i, label %if.then4.i959 - -if.then4.i959: ; preds = %if.else.i958 - %372 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i.i.i960 = zext i32 %372 to i64 - %add.ptr.i.i.i.i961 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i.i.i960 - %add.ptr.i.i.i962 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i961, i64 %idx.ext.i.i.i.i960 - %373 = zext nneg i32 %bf.lshr12.i.i to i64 - %374 = getelementptr ptr, ptr %add.ptr.i.i.i962, i64 %373 - %arrayidx.i.i964 = getelementptr ptr, ptr %374, i64 -1 - br label %_ZNK10quantifier9get_childEj.exit - -if.else6.i: ; preds = %if.else.i958 - %375 = xor i32 %371, -1 - %sub9.i = add i32 %bf.lshr12.i.i, %375 - %376 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i.i7.i = zext i32 %376 to i64 - %add.ptr.i.i.i8.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i.i7.i - %add.ptr.i.i9.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i, i64 %idx.ext.i.i.i7.i - %idxprom.i10.i = zext i32 %sub9.i to i64 - %arrayidx.i11.i = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i, i64 %idxprom.i10.i - br label %_ZNK10quantifier9get_childEj.exit - -_ZNK10quantifier9get_childEj.exit: ; preds = %while.body.i88.i, %if.then4.i959, %if.else6.i - %retval.0.in.i = phi ptr [ %arrayidx.i.i964, %if.then4.i959 ], [ %arrayidx.i11.i, %if.else6.i ], [ %m_expr.i.i, %while.body.i88.i ] - %retval.0.i965 = load ptr, ptr %retval.0.in.i, align 8 - %377 = and i32 %bf.load11.i.i, -64 - %bf.shl.i90.i = add i32 %377, 64 - %bf.clear.i91.i = and i32 %bf.load11.i.i, 63 - %bf.set.i92.i = or disjoint i32 %bf.shl.i90.i, %bf.clear.i91.i - store i32 %bf.set.i92.i, ptr %90, align 8 - %bf.lshr24.i.i = lshr i32 %bf.load11.i.i, 4 - %bf.clear25.i.i = and i32 %bf.lshr24.i.i, 3 - %call26.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i965, i32 noundef %bf.clear25.i.i) - br i1 %call26.i.i, label %while.cond.i52.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, !llvm.loop !24 - -while.end.i53.i: ; preds = %while.cond.i52.i - %378 = load ptr, ptr %m_nodes.i.i, align 8 - %m_spos.i54.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %84, i64 %retval.0.i.i.i, i32 2 - %379 = load i32, ptr %m_spos.i54.i, align 4 - %idx.ext.i55.i = zext i32 %379 to i64 - %add.ptr.i56.i = getelementptr inbounds ptr, ptr %378, i64 %idx.ext.i55.i - %380 = load ptr, ptr %add.ptr.i56.i, align 8 - %381 = load i32, ptr %m_num_patterns.i.i967, align 8 - %382 = load i32, ptr %m_num_no_patterns.i.i, align 4 - %383 = load ptr, ptr %28, align 8 - %384 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i952 = zext i32 %384 to i64 - %add.ptr.i.i953 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i952 - %add.ptr.i954 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i953, i64 %idx.ext.i.i952 - %385 = ptrtoint ptr %383 to i64 - store i64 %385, ptr %new_pats.i.i, align 8 - store ptr null, ptr %m_nodes.i.i918, align 8 - %cmp3.not.i.i919 = icmp eq i32 %381, 0 - br i1 %cmp3.not.i.i919, label %invoke.cont.i60.i, label %for.body.lr.ph.i.i920 - -for.body.lr.ph.i.i920: ; preds = %while.end.i53.i - %wide.trip.count.i.i921 = zext i32 %381 to i64 - br label %for.body.i.i922 - -for.body.i.i922: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i935, %for.body.lr.ph.i.i920 - %indvars.iv.i.i923 = phi i64 [ 0, %for.body.lr.ph.i.i920 ], [ %indvars.iv.next.i.i940, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i935 ] - %arrayidx.i.i924 = getelementptr inbounds ptr, ptr %add.ptr.i954, i64 %indvars.iv.i.i923 - %386 = load ptr, ptr %arrayidx.i.i924, align 8 - %tobool.not.i.i.i.i.i.i925 = icmp eq ptr %386, null - br i1 %tobool.not.i.i.i.i.i.i925, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i929, label %if.then.i.i.i.i.i.i926 - -if.then.i.i.i.i.i.i926: ; preds = %for.body.i.i922 - %m_ref_count.i.i.i.i.i.i.i927 = getelementptr inbounds %class.ast, ptr %386, i64 0, i32 2 - %387 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i927, align 4 - %inc.i.i.i.i.i.i.i928 = add i32 %387, 1 - store i32 %inc.i.i.i.i.i.i.i928, ptr %m_ref_count.i.i.i.i.i.i.i927, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i929 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i929: ; preds = %if.then.i.i.i.i.i.i926, %for.body.i.i922 - %388 = load ptr, ptr %m_nodes.i.i918, align 8 - %cmp.i.i.i.i930 = icmp eq ptr %388, null - br i1 %cmp.i.i.i.i930, label %if.then.i.i.i.i943, label %lor.lhs.false.i.i.i.i931 - -lor.lhs.false.i.i.i.i931: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i929 - %arrayidx.i.i.i.i932 = getelementptr inbounds i32, ptr %388, i64 -1 - %389 = load i32, ptr %arrayidx.i.i.i.i932, align 4 - %arrayidx4.i.i.i.i933 = getelementptr inbounds i32, ptr %388, i64 -2 - %390 = load i32, ptr %arrayidx4.i.i.i.i933, align 4 - %cmp5.i.i.i.i934 = icmp eq i32 %389, %390 - br i1 %cmp5.i.i.i.i934, label %if.then.i.i.i.i943, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i935 - -if.then.i.i.i.i943: ; preds = %lor.lhs.false.i.i.i.i931, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i929 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i918) - to label %.noexc.i945 unwind label %lpad.i944 - -.noexc.i945: ; preds = %if.then.i.i.i.i943 - %.pre.i.i.i.i946 = load ptr, ptr %m_nodes.i.i918, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i947 = getelementptr inbounds i32, ptr %.pre.i.i.i.i946, i64 -1 - %.pre1.i.i.i.i948 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i947, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i935 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i935: ; preds = %.noexc.i945, %lor.lhs.false.i.i.i.i931 - %391 = phi i32 [ %.pre1.i.i.i.i948, %.noexc.i945 ], [ %389, %lor.lhs.false.i.i.i.i931 ] - %392 = phi ptr [ %.pre.i.i.i.i946, %.noexc.i945 ], [ %388, %lor.lhs.false.i.i.i.i931 ] - %idx.ext.i.i.i.i936 = zext i32 %391 to i64 - %add.ptr.i.i.i.i937 = getelementptr inbounds ptr, ptr %392, i64 %idx.ext.i.i.i.i936 - store ptr %386, ptr %add.ptr.i.i.i.i937, align 8 - %393 = load ptr, ptr %m_nodes.i.i918, align 8 - %arrayidx10.i.i.i.i938 = getelementptr inbounds i32, ptr %393, i64 -1 - %394 = load i32, ptr %arrayidx10.i.i.i.i938, align 4 - %inc.i.i.i.i939 = add i32 %394, 1 - store i32 %inc.i.i.i.i939, ptr %arrayidx10.i.i.i.i938, align 4 - %indvars.iv.next.i.i940 = add nuw nsw i64 %indvars.iv.i.i923, 1 - %exitcond.not.i.i941 = icmp eq i64 %indvars.iv.next.i.i940, %wide.trip.count.i.i921 - br i1 %exitcond.not.i.i941, label %invoke.cont.i60.i.loopexit, label %for.body.i.i922, !llvm.loop !25 - -lpad.i944: ; preds = %if.then.i.i.i.i943 - %395 = landingpad { ptr, i32 } - cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i) #18 +eh.resume.i.i.i: ; preds = %lpad322.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.i.i.i + %pr2315.sink.i.i.i = phi ptr [ %pr2315.i.i.i, %lpad322.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.i.i.i ] + %.pn.i.i.i = phi { ptr, i32 } [ %346, %lpad322.i.i.i ], [ %lpad.loopexit663.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit669.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit.split-lp670.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ], [ %lpad.loopexit666.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit661.i.i.i, %lpad.loopexit.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2315.sink.i.i.i) #18 br label %common.resume -invoke.cont.i60.i.loopexit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i935 - %.pre = load ptr, ptr %28, align 8 - %.pre2922 = load i32, ptr %m_num_decls.i, align 4 - %.pre2935 = zext i32 %.pre2922 to i64 - %.pre2936 = ptrtoint ptr %.pre to i64 - br label %invoke.cont.i60.i - -invoke.cont.i60.i: ; preds = %invoke.cont.i60.i.loopexit, %while.end.i53.i - %.pre-phi2937 = phi i64 [ %.pre2936, %invoke.cont.i60.i.loopexit ], [ %385, %while.end.i53.i ] - %idx.ext.i.i915.pre-phi = phi i64 [ %.pre2935, %invoke.cont.i60.i.loopexit ], [ %idx.ext.i.i952, %while.end.i53.i ] - %add.ptr.i.i916 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i915.pre-phi - %add.ptr.i917 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i916, i64 %idx.ext.i.i915.pre-phi - store i64 %.pre-phi2937, ptr %new_no_pats.i.i, align 8 - store ptr null, ptr %m_nodes.i.i903, align 8 - %cmp3.not.i.i = icmp eq i32 %382, 0 - br i1 %cmp3.not.i.i, label %if.then40.i.i, label %for.body.lr.ph.i.i - -for.body.lr.ph.i.i: ; preds = %invoke.cont.i60.i - %wide.trip.count.i.i = zext i32 %382 to i64 - br label %for.body.i.i904 - -for.body.i.i904: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i, %for.body.lr.ph.i.i - %indvars.iv.i.i = phi i64 [ 0, %for.body.lr.ph.i.i ], [ %indvars.iv.next.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i ] - %arrayidx.i.i905 = getelementptr inbounds ptr, ptr %add.ptr.i917, i64 %indvars.iv.i.i - %396 = load ptr, ptr %arrayidx.i.i905, align 8 - %tobool.not.i.i.i.i.i.i906 = icmp eq ptr %396, null - br i1 %tobool.not.i.i.i.i.i.i906, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i.i.i907 - -if.then.i.i.i.i.i.i907: ; preds = %for.body.i.i904 - %m_ref_count.i.i.i.i.i.i.i908 = getelementptr inbounds %class.ast, ptr %396, i64 0, i32 2 - %397 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i908, align 4 - %inc.i.i.i.i.i.i.i = add i32 %397, 1 - store i32 %inc.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i908, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i.i.i907, %for.body.i.i904 - %398 = load ptr, ptr %m_nodes.i.i903, align 8 - %cmp.i.i.i.i909 = icmp eq ptr %398, null - br i1 %cmp.i.i.i.i909, label %if.then.i.i.i.i913, label %lor.lhs.false.i.i.i.i - -lor.lhs.false.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - %arrayidx.i.i.i.i910 = getelementptr inbounds i32, ptr %398, i64 -1 - %399 = load i32, ptr %arrayidx.i.i.i.i910, align 4 - %arrayidx4.i.i.i.i = getelementptr inbounds i32, ptr %398, i64 -2 - %400 = load i32, ptr %arrayidx4.i.i.i.i, align 4 - %cmp5.i.i.i.i = icmp eq i32 %399, %400 - br i1 %cmp5.i.i.i.i, label %if.then.i.i.i.i913, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i - -if.then.i.i.i.i913: ; preds = %lor.lhs.false.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i903) - to label %.noexc.i unwind label %lpad.i914 - -.noexc.i: ; preds = %if.then.i.i.i.i913 - %.pre.i.i.i.i = load ptr, ptr %m_nodes.i.i903, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i, i64 -1 - %.pre1.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i.i - %401 = phi i32 [ %.pre1.i.i.i.i, %.noexc.i ], [ %399, %lor.lhs.false.i.i.i.i ] - %402 = phi ptr [ %.pre.i.i.i.i, %.noexc.i ], [ %398, %lor.lhs.false.i.i.i.i ] - %idx.ext.i.i.i.i = zext i32 %401 to i64 - %add.ptr.i.i.i.i = getelementptr inbounds ptr, ptr %402, i64 %idx.ext.i.i.i.i - store ptr %396, ptr %add.ptr.i.i.i.i, align 8 - %403 = load ptr, ptr %m_nodes.i.i903, align 8 - %arrayidx10.i.i.i.i = getelementptr inbounds i32, ptr %403, i64 -1 - %404 = load i32, ptr %arrayidx10.i.i.i.i, align 4 - %inc.i.i.i.i911 = add i32 %404, 1 - store i32 %inc.i.i.i.i911, ptr %arrayidx10.i.i.i.i, align 4 - %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 - %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i - br i1 %exitcond.not.i.i, label %if.then40.i.i, label %for.body.i.i904, !llvm.loop !25 - -lpad.i914: ; preds = %if.then.i.i.i.i913 - %405 = landingpad { ptr, i32 } - cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i) #18 - br label %ehcleanup218.i.i - -if.then40.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i, %invoke.cont.i60.i - %add.ptr41.i.i = getelementptr inbounds ptr, ptr %add.ptr.i56.i, i64 1 - %idx.ext42.i.i = zext i32 %381 to i64 - %add.ptr43.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i, i64 %idx.ext42.i.i - br i1 %cmp3.not.i.i919, label %for.end63.i.i, label %for.body47.i.i - -for.body47.i.i: ; preds = %if.then40.i.i, %for.inc61.i.i - %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc61.i.i ], [ 0, %if.then40.i.i ] - %j.0.i.i2884 = phi i32 [ %j.1.i.i, %for.inc61.i.i ], [ 0, %if.then40.i.i ] - %406 = load ptr, ptr %28, align 8 - %arrayidx.i85.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i, i64 %indvars.iv - %407 = load ptr, ptr %arrayidx.i85.i, align 8 - %call50.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %406, ptr noundef %407) - to label %invoke.cont49.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont49.i.i: ; preds = %for.body47.i.i - br i1 %call50.i.i, label %invoke.cont56.i87.i, label %for.inc61.i.i - -invoke.cont56.i87.i: ; preds = %invoke.cont49.i.i - %408 = load ptr, ptr %arrayidx.i85.i, align 8 - %409 = load ptr, ptr %m_nodes.i.i918, align 8 - %idxprom.i.i899 = zext i32 %j.0.i.i2884 to i64 - %arrayidx.i.i900 = getelementptr inbounds ptr, ptr %409, i64 %idxprom.i.i899 - %410 = load ptr, ptr %new_pats.i.i, align 8 - %inc55.i.i = add i32 %j.0.i.i2884, 1 - %tobool.not.i.i885 = icmp eq ptr %408, null - br i1 %tobool.not.i.i885, label %_ZN11ast_manager7inc_refEP3ast.exit.i889, label %if.then.i.i886 - -if.then.i.i886: ; preds = %invoke.cont56.i87.i - %m_ref_count.i.i.i887 = getelementptr inbounds %class.ast, ptr %408, i64 0, i32 2 - %411 = load i32, ptr %m_ref_count.i.i.i887, align 4 - %inc.i.i.i888 = add i32 %411, 1 - store i32 %inc.i.i.i888, ptr %m_ref_count.i.i.i887, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i889 - -_ZN11ast_manager7inc_refEP3ast.exit.i889: ; preds = %if.then.i.i886, %invoke.cont56.i87.i - %412 = load ptr, ptr %arrayidx.i.i900, align 8 - %tobool.not.i2.i890 = icmp eq ptr %412, null - br i1 %tobool.not.i2.i890, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit897, label %if.then.i3.i891 - -if.then.i3.i891: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i889 - %m_ref_count.i.i4.i892 = getelementptr inbounds %class.ast, ptr %412, i64 0, i32 2 - %413 = load i32, ptr %m_ref_count.i.i4.i892, align 4 - %dec.i.i.i893 = add i32 %413, -1 - store i32 %dec.i.i.i893, ptr %m_ref_count.i.i4.i892, align 4 - %cmp.i.i894 = icmp eq i32 %dec.i.i.i893, 0 - br i1 %cmp.i.i894, label %if.then2.i.i895, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit897 - -if.then2.i.i895: ; preds = %if.then.i3.i891 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %410, ptr noundef nonnull %412) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit897 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit897: ; preds = %if.then2.i.i895, %_ZN11ast_manager7inc_refEP3ast.exit.i889, %if.then.i3.i891 - store ptr %408, ptr %arrayidx.i.i900, align 8 - br label %for.inc61.i.i - -lpad37.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i648 - %lpad.loopexit2858 = landingpad { ptr, i32 } +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i: ; preds = %while.body.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i, %if.then2.i.i.i435.i.i.i, %if.then.i.i.i430.i.i.i, %cleanup.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2315.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr1317.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i + +sw.bb34.i.i: ; preds = %if.end31.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_q.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2.i.i.i) + %m_num_decls.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 2 + %347 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %bf.load.i63.i.i = load i32, ptr %90, align 8 + %cmp.i64.i.i = icmp ult i32 %bf.load.i63.i.i, 64 + br i1 %cmp.i64.i.i, label %if.then.i.i.i, label %cond.end.i.i.i + +if.then.i.i.i: ; preds = %sw.bb34.i.i + tail call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + %m_expr.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 3 + %348 = load ptr, ptr %m_expr.i.i.i.i, align 8 + store ptr %348, ptr %m_root.i, align 8 + %349 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i.i150.i.i = icmp eq ptr %349, null + br i1 %cmp.i.i150.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i, label %if.end.i.i151.i.i + +if.end.i.i151.i.i: ; preds = %if.then.i.i.i + %arrayidx.i.i152.i.i = getelementptr inbounds i32, ptr %349, i64 -1 + %350 = load i32, ptr %arrayidx.i.i152.i.i, align 4 + br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i151.i.i, %if.then.i.i.i + %retval.0.i.i153.i.i = phi i32 [ %350, %if.end.i.i151.i.i ], [ 0, %if.then.i.i.i ] + %cmp4475.not.i.i.i = icmp eq i32 %347, 0 + br i1 %cmp4475.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i + +for.body.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + %i.0476.i.i.i = phi i32 [ %inc.i.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i ] + %351 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i62.i.i.i = icmp eq ptr %351, null + br i1 %cmp.i62.i.i.i, label %if.then.i.i161.i.i, label %lor.lhs.false.i.i154.i.i + +lor.lhs.false.i.i154.i.i: ; preds = %for.body.i.i.i + %arrayidx.i63.i.i.i = getelementptr inbounds i32, ptr %351, i64 -1 + %352 = load i32, ptr %arrayidx.i63.i.i.i, align 4 + %arrayidx4.i.i155.i.i = getelementptr inbounds i32, ptr %351, i64 -2 + %353 = load i32, ptr %arrayidx4.i.i155.i.i, align 4 + %cmp5.i.i156.i.i = icmp eq i32 %352, %353 + br i1 %cmp5.i.i156.i.i, label %if.then.i.i161.i.i, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + +if.then.i.i161.i.i: ; preds = %lor.lhs.false.i.i154.i.i, %for.body.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i.i) + %.pre.i.i162.i.i = load ptr, ptr %m_bindings.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i163.i.i = getelementptr inbounds i32, ptr %.pre.i.i162.i.i, i64 -1 + %.pre1.i.i164.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i163.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i: ; preds = %if.then.i.i161.i.i, %lor.lhs.false.i.i154.i.i + %354 = phi i32 [ %.pre1.i.i164.i.i, %if.then.i.i161.i.i ], [ %352, %lor.lhs.false.i.i154.i.i ] + %355 = phi ptr [ %.pre.i.i162.i.i, %if.then.i.i161.i.i ], [ %351, %lor.lhs.false.i.i154.i.i ] + %idx.ext.i.i157.i.i = zext i32 %354 to i64 + %add.ptr.i.i158.i.i = getelementptr inbounds ptr, ptr %355, i64 %idx.ext.i.i157.i.i + store ptr null, ptr %add.ptr.i.i158.i.i, align 8 + %356 = load ptr, ptr %m_bindings.i.i.i, align 8 + %arrayidx10.i.i159.i.i = getelementptr inbounds i32, ptr %356, i64 -1 + %357 = load i32, ptr %arrayidx10.i.i159.i.i, align 4 + %inc.i.i160.i.i = add i32 %357, 1 + store i32 %inc.i.i160.i.i, ptr %arrayidx10.i.i159.i.i, align 4 + %358 = load ptr, ptr %m_shifts.i.i.i, align 8 + %cmp.i65.i.i.i = icmp eq ptr %358, null + br i1 %cmp.i65.i.i.i, label %if.then.i75.i.i.i, label %lor.lhs.false.i66.i.i.i + +lor.lhs.false.i66.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + %arrayidx.i67.i.i.i = getelementptr inbounds i32, ptr %358, i64 -1 + %359 = load i32, ptr %arrayidx.i67.i.i.i, align 4 + %arrayidx4.i68.i.i.i = getelementptr inbounds i32, ptr %358, i64 -2 + %360 = load i32, ptr %arrayidx4.i68.i.i.i, align 4 + %cmp5.i69.i.i.i = icmp eq i32 %359, %360 + br i1 %cmp5.i69.i.i.i, label %if.then.i75.i.i.i, label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + +if.then.i75.i.i.i: ; preds = %lor.lhs.false.i66.i.i.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + tail call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i.i) + %.pre.i76.i.i.i = load ptr, ptr %m_shifts.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i77.i.i.i = getelementptr inbounds i32, ptr %.pre.i76.i.i.i, i64 -1 + %.pre1.i78.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i77.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + +_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i: ; preds = %if.then.i75.i.i.i, %lor.lhs.false.i66.i.i.i + %361 = phi i32 [ %.pre1.i78.i.i.i, %if.then.i75.i.i.i ], [ %359, %lor.lhs.false.i66.i.i.i ] + %362 = phi ptr [ %.pre.i76.i.i.i, %if.then.i75.i.i.i ], [ %358, %lor.lhs.false.i66.i.i.i ] + %idx.ext.i71.i.i.i = zext i32 %361 to i64 + %add.ptr.i72.i.i.i = getelementptr inbounds i32, ptr %362, i64 %idx.ext.i71.i.i.i + store i32 %retval.0.i.i153.i.i, ptr %add.ptr.i72.i.i.i, align 4 + %363 = load ptr, ptr %m_shifts.i.i.i, align 8 + %arrayidx10.i73.i.i.i = getelementptr inbounds i32, ptr %363, i64 -1 + %364 = load i32, ptr %arrayidx10.i73.i.i.i, align 4 + %inc.i74.i.i.i = add i32 %364, 1 + store i32 %inc.i74.i.i.i, ptr %arrayidx10.i73.i.i.i, align 4 + %inc.i.i.i = add nuw i32 %i.0476.i.i.i, 1 + %exitcond.not.i.i.i = icmp eq i32 %inc.i.i.i, %347 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i, !llvm.loop !23 + +for.end.i.i.i: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i + %365 = load i32, ptr %m_num_qvars.i, align 8 + %add.i.i.i = add i32 %365, %347 + store i32 %add.i.i.i, ptr %m_num_qvars.i, align 8 + br label %cond.end.i.i.i + +cond.end.i.i.i: ; preds = %for.end.i.i.i, %sw.bb34.i.i + %m_num_patterns.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 11 + %366 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %add.i.i.i.i = add i32 %366, 1 + %m_num_no_patterns.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 12 + %367 = load i32, ptr %m_num_no_patterns.i.i.i.i.i, align 4 + %add3.i.i.i.i = add i32 %add.i.i.i.i, %367 + %m_patterns_decls.i.i.i.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 13 + %m_expr.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %88, i64 0, i32 3 + br label %while.cond.i65.i.i + +while.cond.i65.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i, %cond.end.i.i.i + %bf.load11.i.i.i = load i32, ptr %90, align 8 + %bf.lshr12.i.i.i = lshr i32 %bf.load11.i.i.i, 6 + %cmp13.i.i.i = icmp ult i32 %bf.lshr12.i.i.i, %add3.i.i.i.i + br i1 %cmp13.i.i.i, label %while.body.i145.i.i, label %while.end.i66.i.i + +while.body.i145.i.i: ; preds = %while.cond.i65.i.i + %cmp.i79.i.i.i = icmp ult i32 %bf.load11.i.i.i, 64 + br i1 %cmp.i79.i.i.i, label %_ZNK10quantifier9get_childEj.exit.i.i.i, label %if.else.i.i.i.i + +if.else.i.i.i.i: ; preds = %while.body.i145.i.i + %368 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %cmp3.not.i.i.i.i = icmp ult i32 %368, %bf.lshr12.i.i.i + br i1 %cmp3.not.i.i.i.i, label %if.else6.i.i.i.i, label %if.then4.i.i.i.i + +if.then4.i.i.i.i: ; preds = %if.else.i.i.i.i + %369 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i.i.i.i.i = zext i32 %369 to i64 + %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i.i.i.i.i + %add.ptr.i.i.i.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i.i.i.i.i + %370 = zext nneg i32 %bf.lshr12.i.i.i to i64 + %371 = getelementptr ptr, ptr %add.ptr.i.i.i.i.i.i, i64 %370 + %arrayidx.i.i.i146.i.i = getelementptr ptr, ptr %371, i64 -1 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i + +if.else6.i.i.i.i: ; preds = %if.else.i.i.i.i + %372 = xor i32 %368, -1 + %sub9.i.i.i.i = add nsw i32 %bf.lshr12.i.i.i, %372 + %373 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i7.i.i.i.i = zext i32 %373 to i64 + %add.ptr.i.i.i8.i.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i7.i.i.i.i + %add.ptr.i.i9.i.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i.i.i.i, i64 %idx.ext.i.i.i7.i.i.i.i + %idxprom.i10.i.i.i.i = zext i32 %sub9.i.i.i.i to i64 + %arrayidx.i11.i.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i.i.i.i, i64 %idxprom.i10.i.i.i.i + br label %_ZNK10quantifier9get_childEj.exit.i.i.i + +_ZNK10quantifier9get_childEj.exit.i.i.i: ; preds = %if.else6.i.i.i.i, %if.then4.i.i.i.i, %while.body.i145.i.i + %retval.0.in.i.i.i.i = phi ptr [ %arrayidx.i.i.i146.i.i, %if.then4.i.i.i.i ], [ %arrayidx.i11.i.i.i.i, %if.else6.i.i.i.i ], [ %m_expr.i.i.i.i.i, %while.body.i145.i.i ] + %retval.0.i81.i.i.i = load ptr, ptr %retval.0.in.i.i.i.i, align 8 + %374 = and i32 %bf.load11.i.i.i, -64 + %bf.shl.i147.i.i = add i32 %374, 64 + %bf.clear.i148.i.i = and i32 %bf.load11.i.i.i, 63 + %bf.set.i149.i.i = or disjoint i32 %bf.shl.i147.i.i, %bf.clear.i148.i.i + store i32 %bf.set.i149.i.i, ptr %90, align 8 + %bf.lshr24.i.i.i = lshr i32 %bf.load11.i.i.i, 4 + %bf.clear25.i.i.i = and i32 %bf.lshr24.i.i.i, 3 + %call26.i.i.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i81.i.i.i, i32 noundef %bf.clear25.i.i.i) + br i1 %call26.i.i.i, label %while.cond.i65.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, !llvm.loop !24 + +while.end.i66.i.i: ; preds = %while.cond.i65.i.i + %375 = load ptr, ptr %m_nodes.i.i.i, align 8 + %m_spos.i69.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %84, i64 %retval.0.i.i.i96.i, i32 2 + %376 = load i32, ptr %m_spos.i69.i.i, align 4 + %idx.ext.i70.i.i = zext i32 %376 to i64 + %add.ptr.i71.i.i = getelementptr inbounds ptr, ptr %375, i64 %idx.ext.i70.i.i + %377 = load ptr, ptr %add.ptr.i71.i.i, align 8 + %378 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %379 = load i32, ptr %m_num_no_patterns.i.i.i.i.i, align 4 + %380 = load ptr, ptr %28, align 8 + %381 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i72.i.i = zext i32 %381 to i64 + %add.ptr.i.i.i73.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i72.i.i + %add.ptr.i83.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i73.i.i, i64 %idx.ext.i.i.i72.i.i + %382 = ptrtoint ptr %380 to i64 + store i64 %382, ptr %new_pats.i.i.i, align 8 + store ptr null, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp3.not.i.i.i.i.i = icmp eq i32 %378, 0 + br i1 %cmp3.not.i.i.i.i.i, label %invoke.cont.i78.i.i, label %for.body.lr.ph.i.i.i.i.i + +for.body.lr.ph.i.i.i.i.i: ; preds = %while.end.i66.i.i + %wide.trip.count.i.i.i.i.i = zext i32 %378 to i64 + br label %for.body.i.i.i74.i.i + +for.body.i.i.i74.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i, %for.body.lr.ph.i.i.i.i.i + %indvars.iv.i.i.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i.i.i ], [ %indvars.iv.next.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i ] + %arrayidx.i.i84.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i83.i.i.i, i64 %indvars.iv.i.i.i.i.i + %383 = load ptr, ptr %arrayidx.i.i84.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i.i = icmp eq ptr %383, null + br i1 %tobool.not.i.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i74.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %383, i64 0, i32 2 + %384 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i.i.i = add i32 %384, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i, %for.body.i.i.i74.i.i + %385 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i75.i.i = icmp eq ptr %385, null + br i1 %cmp.i.i.i.i.i75.i.i, label %if.then.i284.i.i, label %lor.lhs.false.i.i.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + %arrayidx.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %385, i64 -1 + %386 = load i32, ptr %arrayidx.i.i.i.i.i.i.i, align 4 + %arrayidx4.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %385, i64 -2 + %387 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i.i.i = icmp eq i32 %386, %387 + br i1 %cmp5.i.i.i.i.i.i.i, label %if.else.i260.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + +if.then.i284.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i257.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i258.i.i) + %call.i288.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc287.i.i unwind label %lpad.i.i.i.i + +call.i.noexc287.i.i: ; preds = %if.then.i284.i.i + store i32 2, ptr %call.i288.i.i, align 4 + %incdec.ptr.i285.i.i = getelementptr inbounds i32, ptr %call.i288.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i285.i.i, align 4 + %incdec.ptr2.i286.i.i = getelementptr inbounds i32, ptr %call.i288.i.i, i64 2 + store ptr %incdec.ptr2.i286.i.i, ptr %m_nodes.i.i.i.i.i, align 8 + br label %.noexc.i.i.i.i + +if.else.i260.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i257.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i258.i.i) + %mul9.i262.i.i = mul i32 %386, 3 + %add10.i263.i.i = add i32 %mul9.i262.i.i, 1 + %shr.i264.i.i = lshr i32 %add10.i263.i.i, 1 + %mul12.i265.i.i = shl i32 %shr.i264.i.i, 3 + %add13.i266.i.i = add i32 %mul12.i265.i.i, 8 + %cmp15.not.i267.i.i = icmp ugt i32 %shr.i264.i.i, %386 + br i1 %cmp15.not.i267.i.i, label %lor.lhs.false.i277.i.i, label %if.then17.i268.i.i + +lor.lhs.false.i277.i.i: ; preds = %if.else.i260.i.i + %mul6.i278.i.i = shl i32 %386, 3 + %add7.i279.i.i = add i32 %mul6.i278.i.i, 8 + %cmp16.not.i280.i.i = icmp ugt i32 %add13.i266.i.i, %add7.i279.i.i + br i1 %cmp16.not.i280.i.i, label %if.end.i281.i.i, label %if.then17.i268.i.i + +if.then17.i268.i.i: ; preds = %lor.lhs.false.i277.i.i, %if.else.i260.i.i + %exception.i269.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #18 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) #18 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i257.i.i, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) + to label %invoke.cont.i273.i.i unwind label %cleanup.action.i270.i.i + +invoke.cont.i273.i.i: ; preds = %if.then17.i268.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i269.i.i, align 8 + %m_msg.i.i274.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i269.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i274.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i257.i.i) #18 + invoke void @__cxa_throw(ptr nonnull %exception.i269.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #21 + to label %unreachable.i276.i.i unwind label %ehcleanup.i275.i.i + +ehcleanup.i275.i.i: ; preds = %invoke.cont.i273.i.i + %388 = landingpad { ptr, i32 } cleanup - br label %ehcleanup217.i.i + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i257.i.i) #18 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) #18 + br label %lpad.i.i.body.i.i -lpad37.i.i.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i844 - %lpad.loopexit2864 = landingpad { ptr, i32 } +cleanup.action.i270.i.i: ; preds = %if.then17.i268.i.i + %389 = landingpad { ptr, i32 } cleanup - br label %ehcleanup217.i.i + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) #18 + call void @__cxa_free_exception(ptr %exception.i269.i.i) #18 + br label %lpad.i.i.body.i.i + +if.end.i281.i.i: ; preds = %lor.lhs.false.i277.i.i + %conv24.i282.i.i = zext i32 %add13.i266.i.i to i64 + %call25.i290.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i.i.i.i, i64 noundef %conv24.i282.i.i) + to label %call25.i.noexc289.i.i unwind label %lpad.i.i.i.i + +call25.i.noexc289.i.i: ; preds = %if.end.i281.i.i + %add.ptr26.i283.i.i = getelementptr inbounds i32, ptr %call25.i290.i.i, i64 2 + store ptr %add.ptr26.i283.i.i, ptr %m_nodes.i.i.i.i.i, align 8 + store i32 %shr.i264.i.i, ptr %call25.i290.i.i, align 4 + br label %.noexc.i.i.i.i + +unreachable.i276.i.i: ; preds = %invoke.cont.i273.i.i + unreachable -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body68.i.i, %if.then2.i.i - %lpad.loopexit2867 = landingpad { ptr, i32 } +.noexc.i.i.i.i: ; preds = %call25.i.noexc289.i.i, %call.i.noexc287.i.i + %.pre.i.i.i.i.i.i.i = phi ptr [ %add.ptr26.i283.i.i, %call25.i.noexc289.i.i ], [ %incdec.ptr2.i286.i.i, %call.i.noexc287.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i257.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i258.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i: ; preds = %.noexc.i.i.i.i, %lor.lhs.false.i.i.i.i.i.i.i + %390 = phi i32 [ %.pre1.i.i.i.i.i.i.i, %.noexc.i.i.i.i ], [ %386, %lor.lhs.false.i.i.i.i.i.i.i ] + %391 = phi ptr [ %.pre.i.i.i.i.i.i.i, %.noexc.i.i.i.i ], [ %385, %lor.lhs.false.i.i.i.i.i.i.i ] + %idx.ext.i.i.i.i85.i.i.i = zext i32 %390 to i64 + %add.ptr.i.i.i.i86.i.i.i = getelementptr inbounds ptr, ptr %391, i64 %idx.ext.i.i.i.i85.i.i.i + store ptr %383, ptr %add.ptr.i.i.i.i86.i.i.i, align 8 + %392 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %arrayidx10.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %392, i64 -1 + %393 = load i32, ptr %arrayidx10.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i76.i.i = add i32 %393, 1 + store i32 %inc.i.i.i.i.i76.i.i, ptr %arrayidx10.i.i.i.i.i.i.i, align 4 + %indvars.iv.next.i.i.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i.i.i, 1 + %exitcond.not.i.i.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i.i.i, %wide.trip.count.i.i.i.i.i + br i1 %exitcond.not.i.i.i.i.i, label %invoke.cont.loopexit.i.i.i, label %for.body.i.i.i74.i.i, !llvm.loop !25 + +lpad.i.i.i.i: ; preds = %if.end.i281.i.i, %if.then.i284.i.i + %394 = landingpad { ptr, i32 } cleanup - br label %ehcleanup217.i.i + br label %lpad.i.i.body.i.i + +lpad.i.i.body.i.i: ; preds = %lpad.i.i.i.i, %cleanup.action.i270.i.i, %ehcleanup.i275.i.i + %eh.lpad-body291.i.i = phi { ptr, i32 } [ %394, %lpad.i.i.i.i ], [ %388, %ehcleanup.i275.i.i ], [ %389, %cleanup.action.i270.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i) #18 + br label %common.resume -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i881 - %lpad.loopexit2870 = landingpad { ptr, i32 } +invoke.cont.loopexit.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + %.pre.i77.i.i = load ptr, ptr %28, align 8 + %.pre491.i.i.i = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %.pre494.i.i.i = zext i32 %.pre491.i.i.i to i64 + %.pre495.i.i.i = ptrtoint ptr %.pre.i77.i.i to i64 + br label %invoke.cont.i78.i.i + +invoke.cont.i78.i.i: ; preds = %invoke.cont.loopexit.i.i.i, %while.end.i66.i.i + %.pre-phi.i.i.i = phi i64 [ %.pre495.i.i.i, %invoke.cont.loopexit.i.i.i ], [ %382, %while.end.i66.i.i ] + %idx.ext.i.i89.pre-phi.i.i.i = phi i64 [ %.pre494.i.i.i, %invoke.cont.loopexit.i.i.i ], [ %idx.ext.i.i.i72.i.i, %while.end.i66.i.i ] + %add.ptr.i.i90.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i89.pre-phi.i.i.i + %add.ptr.i91.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i90.i.i.i, i64 %idx.ext.i.i89.pre-phi.i.i.i + store i64 %.pre-phi.i.i.i, ptr %new_no_pats.i.i.i, align 8 + store ptr null, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp3.not.i.i93.i.i.i = icmp eq i32 %379, 0 + br i1 %cmp3.not.i.i93.i.i.i, label %if.then40.i.i.i, label %for.body.lr.ph.i.i94.i.i.i + +for.body.lr.ph.i.i94.i.i.i: ; preds = %invoke.cont.i78.i.i + %wide.trip.count.i.i95.i.i.i = zext i32 %379 to i64 + br label %for.body.i.i96.i.i.i + +for.body.i.i96.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i, %for.body.lr.ph.i.i94.i.i.i + %indvars.iv.i.i97.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i94.i.i.i ], [ %indvars.iv.next.i.i114.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i ] + %arrayidx.i.i98.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i91.i.i.i, i64 %indvars.iv.i.i97.i.i.i + %395 = load ptr, ptr %arrayidx.i.i98.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i99.i.i.i = icmp eq ptr %395, null + br i1 %tobool.not.i.i.i.i.i.i99.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i, label %if.then.i.i.i.i.i.i100.i.i.i + +if.then.i.i.i.i.i.i100.i.i.i: ; preds = %for.body.i.i96.i.i.i + %m_ref_count.i.i.i.i.i.i.i101.i.i.i = getelementptr inbounds %class.ast, ptr %395, i64 0, i32 2 + %396 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i101.i.i.i, align 4 + %inc.i.i.i.i.i.i.i102.i.i.i = add i32 %396, 1 + store i32 %inc.i.i.i.i.i.i.i102.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i101.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i: ; preds = %if.then.i.i.i.i.i.i100.i.i.i, %for.body.i.i96.i.i.i + %397 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i.i104.i.i.i = icmp eq ptr %397, null + br i1 %cmp.i.i.i.i104.i.i.i, label %if.then.i254.i.i, label %lor.lhs.false.i.i.i.i105.i.i.i + +lor.lhs.false.i.i.i.i105.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + %arrayidx.i.i.i.i106.i.i.i = getelementptr inbounds i32, ptr %397, i64 -1 + %398 = load i32, ptr %arrayidx.i.i.i.i106.i.i.i, align 4 + %arrayidx4.i.i.i.i107.i.i.i = getelementptr inbounds i32, ptr %397, i64 -2 + %399 = load i32, ptr %arrayidx4.i.i.i.i107.i.i.i, align 4 + %cmp5.i.i.i.i108.i.i.i = icmp eq i32 %398, %399 + br i1 %cmp5.i.i.i.i108.i.i.i, label %if.else.i247.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i + +if.then.i254.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %call.i255.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc.i.i unwind label %lpad.i117.i.i.i + +call.i.noexc.i.i: ; preds = %if.then.i254.i.i + store i32 2, ptr %call.i255.i.i, align 4 + %incdec.ptr.i.i.i = getelementptr inbounds i32, ptr %call.i255.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i.i.i, align 4 + %incdec.ptr2.i.i.i = getelementptr inbounds i32, ptr %call.i255.i.i, i64 2 + store ptr %incdec.ptr2.i.i.i, ptr %m_nodes.i.i92.i.i.i, align 8 + br label %.noexc.i118.i.i.i + +if.else.i247.i.i: ; preds = %lor.lhs.false.i.i.i.i105.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %mul9.i.i.i = mul i32 %398, 3 + %add10.i.i.i = add i32 %mul9.i.i.i, 1 + %shr.i.i.i = lshr i32 %add10.i.i.i, 1 + %mul12.i.i.i = shl i32 %shr.i.i.i, 3 + %add13.i.i.i = add i32 %mul12.i.i.i, 8 + %cmp15.not.i.i.i = icmp ugt i32 %shr.i.i.i, %398 + br i1 %cmp15.not.i.i.i, label %lor.lhs.false.i.i.i, label %if.then17.i.i.i + +lor.lhs.false.i.i.i: ; preds = %if.else.i247.i.i + %mul6.i.i.i = shl i32 %398, 3 + %add7.i.i.i = add i32 %mul6.i.i.i, 8 + %cmp16.not.i.i.i = icmp ugt i32 %add13.i.i.i, %add7.i.i.i + br i1 %cmp16.not.i.i.i, label %if.end.i253.i.i, label %if.then17.i.i.i + +if.then17.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.else.i247.i.i + %exception.i.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #18 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #18 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) + to label %invoke.cont.i250.i.i unwind label %cleanup.action.i.i.i + +invoke.cont.i250.i.i: ; preds = %if.then17.i.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i.i, align 8 + %m_msg.i.i251.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i251.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i) #18 + invoke void @__cxa_throw(ptr nonnull %exception.i.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #21 + to label %unreachable.i.i.i unwind label %ehcleanup.i252.i.i + +ehcleanup.i252.i.i: ; preds = %invoke.cont.i250.i.i + %400 = landingpad { ptr, i32 } cleanup - br label %ehcleanup217.i.i + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i) #18 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #18 + br label %lpad.i117.i.body.i.i -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body47.i.i, %if.then2.i.i895 - %lpad.loopexit2873 = landingpad { ptr, i32 } +cleanup.action.i.i.i: ; preds = %if.then17.i.i.i + %401 = landingpad { ptr, i32 } cleanup - br label %ehcleanup217.i.i + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #18 + call void @__cxa_free_exception(ptr %exception.i.i.i) #18 + br label %lpad.i117.i.body.i.i + +if.end.i253.i.i: ; preds = %lor.lhs.false.i.i.i + %conv24.i.i.i = zext i32 %add13.i.i.i to i64 + %call25.i256.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i107.i.i.i, i64 noundef %conv24.i.i.i) + to label %call25.i.noexc.i.i unwind label %lpad.i117.i.i.i + +call25.i.noexc.i.i: ; preds = %if.end.i253.i.i + %add.ptr26.i.i.i = getelementptr inbounds i32, ptr %call25.i256.i.i, i64 2 + store ptr %add.ptr26.i.i.i, ptr %m_nodes.i.i92.i.i.i, align 8 + store i32 %shr.i.i.i, ptr %call25.i256.i.i, align 4 + br label %.noexc.i118.i.i.i + +unreachable.i.i.i: ; preds = %invoke.cont.i250.i.i + unreachable -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.end88.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit, %if.then2.i.i.i583, %if.then2.i.i.i592, %if.then.i596, %if.then.i.i622 - %lpad.loopexit.split-lp2874 = landingpad { ptr, i32 } +.noexc.i118.i.i.i: ; preds = %call25.i.noexc.i.i, %call.i.noexc.i.i + %.pre.i.i.i.i119.i.i.i = phi ptr [ %add.ptr26.i.i.i, %call25.i.noexc.i.i ], [ %incdec.ptr2.i.i.i, %call.i.noexc.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i120.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i119.i.i.i, i64 -1 + %.pre1.i.i.i.i121.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i120.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i: ; preds = %.noexc.i118.i.i.i, %lor.lhs.false.i.i.i.i105.i.i.i + %402 = phi i32 [ %.pre1.i.i.i.i121.i.i.i, %.noexc.i118.i.i.i ], [ %398, %lor.lhs.false.i.i.i.i105.i.i.i ] + %403 = phi ptr [ %.pre.i.i.i.i119.i.i.i, %.noexc.i118.i.i.i ], [ %397, %lor.lhs.false.i.i.i.i105.i.i.i ] + %idx.ext.i.i.i.i110.i.i.i = zext i32 %402 to i64 + %add.ptr.i.i.i.i111.i.i.i = getelementptr inbounds ptr, ptr %403, i64 %idx.ext.i.i.i.i110.i.i.i + store ptr %395, ptr %add.ptr.i.i.i.i111.i.i.i, align 8 + %404 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %arrayidx10.i.i.i.i112.i.i.i = getelementptr inbounds i32, ptr %404, i64 -1 + %405 = load i32, ptr %arrayidx10.i.i.i.i112.i.i.i, align 4 + %inc.i.i.i.i113.i.i.i = add i32 %405, 1 + store i32 %inc.i.i.i.i113.i.i.i, ptr %arrayidx10.i.i.i.i112.i.i.i, align 4 + %indvars.iv.next.i.i114.i.i.i = add nuw nsw i64 %indvars.iv.i.i97.i.i.i, 1 + %exitcond.not.i.i115.i.i.i = icmp eq i64 %indvars.iv.next.i.i114.i.i.i, %wide.trip.count.i.i95.i.i.i + br i1 %exitcond.not.i.i115.i.i.i, label %if.then40.i.i.i, label %for.body.i.i96.i.i.i, !llvm.loop !25 + +lpad.i117.i.i.i: ; preds = %if.end.i253.i.i, %if.then.i254.i.i + %406 = landingpad { ptr, i32 } + cleanup + br label %lpad.i117.i.body.i.i + +lpad.i117.i.body.i.i: ; preds = %lpad.i117.i.i.i, %cleanup.action.i.i.i, %ehcleanup.i252.i.i + %eh.lpad-body.i.i = phi { ptr, i32 } [ %406, %lpad.i117.i.i.i ], [ %400, %ehcleanup.i252.i.i ], [ %401, %cleanup.action.i.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i) #18 + br label %ehcleanup218.i.i.i + +if.then40.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i, %invoke.cont.i78.i.i + %add.ptr41.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i71.i.i, i64 1 + %idx.ext42.i.i.i = zext i32 %378 to i64 + %add.ptr43.i.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i, i64 %idx.ext42.i.i.i + br i1 %cmp3.not.i.i.i.i.i, label %for.end63.i.i.i, label %for.body47.i.i.i + +for.body47.i.i.i: ; preds = %if.then40.i.i.i, %for.inc61.i.i.i + %indvars.iv.i.i.i = phi i64 [ %indvars.iv.next.i.i.i, %for.inc61.i.i.i ], [ 0, %if.then40.i.i.i ] + %j.0478.i.i.i = phi i32 [ %j.1.i.i.i, %for.inc61.i.i.i ], [ 0, %if.then40.i.i.i ] + %407 = load ptr, ptr %28, align 8 + %arrayidx.i79.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i, i64 %indvars.iv.i.i.i + %408 = load ptr, ptr %arrayidx.i79.i.i, align 8 + %call50.i.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %407, ptr noundef %408) + to label %invoke.cont49.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +invoke.cont49.i.i.i: ; preds = %for.body47.i.i.i + br i1 %call50.i.i.i, label %invoke.cont56.i138.i.i, label %for.inc61.i.i.i + +invoke.cont56.i138.i.i: ; preds = %invoke.cont49.i.i.i + %409 = load ptr, ptr %arrayidx.i79.i.i, align 8 + %410 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %idxprom.i.i124.i.i.i = zext i32 %j.0478.i.i.i to i64 + %arrayidx.i.i125.i.i.i = getelementptr inbounds ptr, ptr %410, i64 %idxprom.i.i124.i.i.i + %411 = load ptr, ptr %new_pats.i.i.i, align 8 + %inc55.i.i.i = add i32 %j.0478.i.i.i, 1 + %tobool.not.i.i.i139.i.i = icmp eq ptr %409, null + br i1 %tobool.not.i.i.i139.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i, label %if.then.i.i.i140.i.i + +if.then.i.i.i140.i.i: ; preds = %invoke.cont56.i138.i.i + %m_ref_count.i.i.i.i141.i.i = getelementptr inbounds %class.ast, ptr %409, i64 0, i32 2 + %412 = load i32, ptr %m_ref_count.i.i.i.i141.i.i, align 4 + %inc.i.i.i.i142.i.i = add i32 %412, 1 + store i32 %inc.i.i.i.i142.i.i, ptr %m_ref_count.i.i.i.i141.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i: ; preds = %if.then.i.i.i140.i.i, %invoke.cont56.i138.i.i + %413 = load ptr, ptr %arrayidx.i.i125.i.i.i, align 8 + %tobool.not.i2.i.i.i.i = icmp eq ptr %413, null + br i1 %tobool.not.i2.i.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i, label %if.then.i3.i.i.i.i + +if.then.i3.i.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + %m_ref_count.i.i4.i.i.i.i = getelementptr inbounds %class.ast, ptr %413, i64 0, i32 2 + %414 = load i32, ptr %m_ref_count.i.i4.i.i.i.i, align 4 + %dec.i.i.i.i.i99.i = add i32 %414, -1 + store i32 %dec.i.i.i.i.i99.i, ptr %m_ref_count.i.i4.i.i.i.i, align 4 + %cmp.i.i.i143.i.i = icmp eq i32 %dec.i.i.i.i.i99.i, 0 + br i1 %cmp.i.i.i143.i.i, label %if.then2.i.i.i.i100.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i + +if.then2.i.i.i.i100.i: ; preds = %if.then.i3.i.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %411, ptr noundef nonnull %413) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i100.i, %if.then.i3.i.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + store ptr %409, ptr %arrayidx.i.i125.i.i.i, align 8 + br label %for.inc61.i.i.i + +lpad37.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i351.i.i.i + %lpad.loopexit.i120.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup217.i.i + br label %ehcleanup217.i.i.i -for.inc61.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit897, %invoke.cont49.i.i - %j.1.i.i = phi i32 [ %inc55.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit897 ], [ %j.0.i.i2884, %invoke.cont49.i.i ] - %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond2905.not = icmp eq i64 %indvars.iv.next, %idx.ext42.i.i - br i1 %exitcond2905.not, label %for.end63.i.i, label %for.body47.i.i, !llvm.loop !26 - -for.end63.i.i: ; preds = %for.inc61.i.i, %if.then40.i.i - %j.0.i.i.lcssa = phi i32 [ 0, %if.then40.i.i ], [ %j.1.i.i, %for.inc61.i.i ] - %414 = load ptr, ptr %m_nodes.i.i918, align 8 - %cmp.i.i.i859 = icmp eq ptr %414, null - br i1 %cmp.i.i.i859, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit883, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i860 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i860: ; preds = %for.end63.i.i - %arrayidx.i.i.i863 = getelementptr inbounds i32, ptr %414, i64 -1 - %415 = load i32, ptr %arrayidx.i.i.i863, align 4 - %416 = zext i32 %415 to i64 - %add.ptr.i.i864 = getelementptr inbounds ptr, ptr %414, i64 %416 - %cmp3.i.i865 = icmp ugt i32 %415, %j.0.i.i.lcssa - br i1 %cmp3.i.i865, label %for.body.i.i868.preheader, label %if.then.i.i866 - -for.body.i.i868.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i860 - %idx.ext.i861 = zext i32 %j.0.i.i.lcssa to i64 - %add.ptr.i862 = getelementptr inbounds ptr, ptr %414, i64 %idx.ext.i861 - br label %for.body.i.i868 - -for.body.i.i868: ; preds = %for.body.i.i868.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i875 - %it.04.i.i869 = phi ptr [ %incdec.ptr.i.i876, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i875 ], [ %add.ptr.i862, %for.body.i.i868.preheader ] - %417 = load ptr, ptr %it.04.i.i869, align 8 - %418 = load ptr, ptr %new_pats.i.i, align 8 - %tobool.not.i.i.i.i.i870 = icmp eq ptr %417, null - br i1 %tobool.not.i.i.i.i.i870, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i875, label %if.then.i.i.i.i.i871 - -if.then.i.i.i.i.i871: ; preds = %for.body.i.i868 - %m_ref_count.i.i.i.i.i.i872 = getelementptr inbounds %class.ast, ptr %417, i64 0, i32 2 - %419 = load i32, ptr %m_ref_count.i.i.i.i.i.i872, align 4 - %dec.i.i.i.i.i.i873 = add i32 %419, -1 - store i32 %dec.i.i.i.i.i.i873, ptr %m_ref_count.i.i.i.i.i.i872, align 4 - %cmp.i.i.i.i.i874 = icmp eq i32 %dec.i.i.i.i.i.i873, 0 - br i1 %cmp.i.i.i.i.i874, label %if.then2.i.i.i.i.i881, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i875 - -if.then2.i.i.i.i.i881: ; preds = %if.then.i.i.i.i.i871 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %418, ptr noundef nonnull %417) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i875 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i875: ; preds = %if.then2.i.i.i.i.i881, %if.then.i.i.i.i.i871, %for.body.i.i868 - %incdec.ptr.i.i876 = getelementptr inbounds ptr, ptr %it.04.i.i869, i64 1 - %cmp.i.i877 = icmp ult ptr %incdec.ptr.i.i876, %add.ptr.i.i864 - br i1 %cmp.i.i877, label %for.body.i.i868, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i878, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i878: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i875 - %.pre.i879 = load ptr, ptr %m_nodes.i.i918, align 8 - %tobool.not.i.i880 = icmp eq ptr %.pre.i879, null - br i1 %tobool.not.i.i880, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit883, label %if.then.i.i866 - -if.then.i.i866: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i878, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i860 - %420 = phi ptr [ %.pre.i879, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i878 ], [ %414, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i860 ] - %arrayidx.i.i867 = getelementptr inbounds i32, ptr %420, i64 -1 - store i32 %j.0.i.i.lcssa, ptr %arrayidx.i.i867, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit883 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit883: ; preds = %for.end63.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i878, %if.then.i.i866 - br i1 %cmp3.not.i.i, label %for.end86.i.i, label %for.body68.i.i.preheader - -for.body68.i.i.preheader: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit883 - %wide.trip.count2909 = zext i32 %382 to i64 - br label %for.body68.i.i - -for.body68.i.i: ; preds = %for.body68.i.i.preheader, %for.inc84.i.i - %indvars.iv2906 = phi i64 [ 0, %for.body68.i.i.preheader ], [ %indvars.iv.next2907, %for.inc84.i.i ] - %j.2.i.i2887 = phi i32 [ 0, %for.body68.i.i.preheader ], [ %j.3.i.i, %for.inc84.i.i ] - %421 = load ptr, ptr %28, align 8 - %arrayidx71.i.i = getelementptr inbounds ptr, ptr %add.ptr43.i.i, i64 %indvars.iv2906 - %422 = load ptr, ptr %arrayidx71.i.i, align 8 - %call73.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %421, ptr noundef %422) - to label %invoke.cont72.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont72.i.i: ; preds = %for.body68.i.i - br i1 %call73.i.i, label %invoke.cont79.i.i, label %for.inc84.i.i - -invoke.cont79.i.i: ; preds = %invoke.cont72.i.i - %423 = load ptr, ptr %arrayidx71.i.i, align 8 - %424 = load ptr, ptr %m_nodes.i.i903, align 8 - %idxprom.i.i856 = zext i32 %j.2.i.i2887 to i64 - %arrayidx.i.i857 = getelementptr inbounds ptr, ptr %424, i64 %idxprom.i.i856 - %425 = load ptr, ptr %new_no_pats.i.i, align 8 - %inc78.i.i = add i32 %j.2.i.i2887, 1 - %tobool.not.i.i848 = icmp eq ptr %423, null - br i1 %tobool.not.i.i848, label %_ZN11ast_manager7inc_refEP3ast.exit.i852, label %if.then.i.i849 - -if.then.i.i849: ; preds = %invoke.cont79.i.i - %m_ref_count.i.i.i850 = getelementptr inbounds %class.ast, ptr %423, i64 0, i32 2 - %426 = load i32, ptr %m_ref_count.i.i.i850, align 4 - %inc.i.i.i851 = add i32 %426, 1 - store i32 %inc.i.i.i851, ptr %m_ref_count.i.i.i850, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i852 - -_ZN11ast_manager7inc_refEP3ast.exit.i852: ; preds = %if.then.i.i849, %invoke.cont79.i.i - %427 = load ptr, ptr %arrayidx.i.i857, align 8 - %tobool.not.i2.i = icmp eq ptr %427, null - br i1 %tobool.not.i2.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit, label %if.then.i3.i - -if.then.i3.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i852 - %m_ref_count.i.i4.i = getelementptr inbounds %class.ast, ptr %427, i64 0, i32 2 - %428 = load i32, ptr %m_ref_count.i.i4.i, align 4 - %dec.i.i.i = add i32 %428, -1 - store i32 %dec.i.i.i, ptr %m_ref_count.i.i4.i, align 4 - %cmp.i.i853 = icmp eq i32 %dec.i.i.i, 0 - br i1 %cmp.i.i853, label %if.then2.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit - -if.then2.i.i: ; preds = %if.then.i3.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %425, ptr noundef nonnull %427) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit: ; preds = %if.then2.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i852, %if.then.i3.i - store ptr %423, ptr %arrayidx.i.i857, align 8 - br label %for.inc84.i.i - -for.inc84.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit, %invoke.cont72.i.i - %j.3.i.i = phi i32 [ %inc78.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit ], [ %j.2.i.i2887, %invoke.cont72.i.i ] - %indvars.iv.next2907 = add nuw nsw i64 %indvars.iv2906, 1 - %exitcond2910.not = icmp eq i64 %indvars.iv.next2907, %wide.trip.count2909 - br i1 %exitcond2910.not, label %for.end86.i.i, label %for.body68.i.i, !llvm.loop !27 - -for.end86.i.i: ; preds = %for.inc84.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit883 - %j.2.i.i.lcssa = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit883 ], [ %j.3.i.i, %for.inc84.i.i ] - %429 = load ptr, ptr %m_nodes.i.i903, align 8 - %cmp.i.i.i822 = icmp eq ptr %429, null - br i1 %cmp.i.i.i822, label %if.end88.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i823 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i823: ; preds = %for.end86.i.i - %arrayidx.i.i.i826 = getelementptr inbounds i32, ptr %429, i64 -1 - %430 = load i32, ptr %arrayidx.i.i.i826, align 4 - %431 = zext i32 %430 to i64 - %add.ptr.i.i827 = getelementptr inbounds ptr, ptr %429, i64 %431 - %cmp3.i.i828 = icmp ugt i32 %430, %j.2.i.i.lcssa - br i1 %cmp3.i.i828, label %for.body.i.i831.preheader, label %if.then.i.i829 - -for.body.i.i831.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i823 - %idx.ext.i824 = zext i32 %j.2.i.i.lcssa to i64 - %add.ptr.i825 = getelementptr inbounds ptr, ptr %429, i64 %idx.ext.i824 - br label %for.body.i.i831 - -for.body.i.i831: ; preds = %for.body.i.i831.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i838 - %it.04.i.i832 = phi ptr [ %incdec.ptr.i.i839, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i838 ], [ %add.ptr.i825, %for.body.i.i831.preheader ] - %432 = load ptr, ptr %it.04.i.i832, align 8 - %433 = load ptr, ptr %new_no_pats.i.i, align 8 - %tobool.not.i.i.i.i.i833 = icmp eq ptr %432, null - br i1 %tobool.not.i.i.i.i.i833, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i838, label %if.then.i.i.i.i.i834 - -if.then.i.i.i.i.i834: ; preds = %for.body.i.i831 - %m_ref_count.i.i.i.i.i.i835 = getelementptr inbounds %class.ast, ptr %432, i64 0, i32 2 - %434 = load i32, ptr %m_ref_count.i.i.i.i.i.i835, align 4 - %dec.i.i.i.i.i.i836 = add i32 %434, -1 - store i32 %dec.i.i.i.i.i.i836, ptr %m_ref_count.i.i.i.i.i.i835, align 4 - %cmp.i.i.i.i.i837 = icmp eq i32 %dec.i.i.i.i.i.i836, 0 - br i1 %cmp.i.i.i.i.i837, label %if.then2.i.i.i.i.i844, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i838 - -if.then2.i.i.i.i.i844: ; preds = %if.then.i.i.i.i.i834 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %433, ptr noundef nonnull %432) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i838 unwind label %lpad37.i.i.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i838: ; preds = %if.then2.i.i.i.i.i844, %if.then.i.i.i.i.i834, %for.body.i.i831 - %incdec.ptr.i.i839 = getelementptr inbounds ptr, ptr %it.04.i.i832, i64 1 - %cmp.i.i840 = icmp ult ptr %incdec.ptr.i.i839, %add.ptr.i.i827 - br i1 %cmp.i.i840, label %for.body.i.i831, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i841, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i841: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i838 - %.pre.i842 = load ptr, ptr %m_nodes.i.i903, align 8 - %tobool.not.i.i843 = icmp eq ptr %.pre.i842, null - br i1 %tobool.not.i.i843, label %if.end88.i.i, label %if.then.i.i829 - -if.then.i.i829: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i841, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i823 - %435 = phi ptr [ %.pre.i842, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i841 ], [ %429, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i823 ] - %arrayidx.i.i830 = getelementptr inbounds i32, ptr %435, i64 -1 - store i32 %j.2.i.i.lcssa, ptr %arrayidx.i.i830, align 4 - %.pre2923 = load ptr, ptr %m_nodes.i.i903, align 8 - br label %if.end88.i.i - -if.end88.i.i: ; preds = %if.then.i.i829, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i841, %for.end86.i.i - %436 = phi ptr [ %.pre2923, %if.then.i.i829 ], [ null, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i841 ], [ null, %for.end86.i.i ] - %this.val58.i61.i = load ptr, ptr %28, align 8 - %437 = load ptr, ptr %m_nodes.i.i918, align 8 - %call93.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i61.i, ptr noundef nonnull %88, i32 noundef %j.0.i.i.lcssa, ptr noundef %437, i32 noundef %j.2.i.i.lcssa, ptr noundef %436, ptr noundef %380) - to label %invoke.cont92.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont92.i.i: ; preds = %if.end88.i.i - %this.val57.i63.i = load ptr, ptr %28, align 8 - store ptr %call93.i.i, ptr %new_q.i.i, align 8 - store ptr %this.val57.i63.i, ptr %m_manager.i814, align 8 - %tobool.not.i.i815 = icmp eq ptr %call93.i.i, null - br i1 %tobool.not.i.i815, label %invoke.cont95.i65.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i816 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i816: ; preds = %invoke.cont92.i.i - %m_ref_count.i.i.i.i817 = getelementptr inbounds %class.ast, ptr %call93.i.i, i64 0, i32 2 - %438 = load i32, ptr %m_ref_count.i.i.i.i817, align 4 - %inc.i.i.i.i818 = add i32 %438, 1 - store i32 %inc.i.i.i.i818, ptr %m_ref_count.i.i.i.i817, align 4 - br label %invoke.cont95.i65.i - -invoke.cont95.i65.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i816, %invoke.cont92.i.i - %439 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i805 = icmp eq ptr %439, null - br i1 %tobool.not.i3.i805, label %invoke.cont97.i.i, label %if.then.i.i.i806 - -if.then.i.i.i806: ; preds = %invoke.cont95.i65.i - %440 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i808 = getelementptr inbounds %class.ast, ptr %439, i64 0, i32 2 - %441 = load i32, ptr %m_ref_count.i.i.i.i808, align 4 - %dec.i.i.i.i809 = add i32 %441, -1 - store i32 %dec.i.i.i.i809, ptr %m_ref_count.i.i.i.i808, align 4 - %cmp.i.i.i810 = icmp eq i32 %dec.i.i.i.i809, 0 - br i1 %cmp.i.i.i810, label %if.then2.i.i.i811, label %invoke.cont97.i.i - -if.then2.i.i.i811: ; preds = %if.then.i.i.i806 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %440, ptr noundef nonnull %439) - to label %invoke.cont97.i.i unwind label %lpad96.i.i - -invoke.cont97.i.i: ; preds = %if.then.i.i.i806, %invoke.cont95.i65.i, %if.then2.i.i.i811 - store ptr null, ptr %m_pr.i66.i, align 8 - %cmp101.not.i.i = icmp eq ptr %call93.i.i, %88 - br i1 %cmp101.not.i.i, label %if.end142.i.i, label %if.then102.i.i - -if.then102.i.i: ; preds = %invoke.cont97.i.i - %442 = load i32, ptr %m_spos.i54.i, align 4 - %443 = load ptr, ptr %m_nodes.i30.i, align 8 - %idxprom.i.i801 = zext i32 %442 to i64 - %arrayidx.i.i802 = getelementptr inbounds ptr, ptr %443, i64 %idxprom.i.i801 - %444 = load ptr, ptr %arrayidx.i.i802, align 8 - %tobool.not.i786 = icmp eq ptr %444, null - br i1 %tobool.not.i786, label %if.else.i70.i, label %if.end.i790 - -if.end.i790: ; preds = %if.then102.i.i - %m_ref_count.i.i.i788 = getelementptr inbounds %class.ast, ptr %444, i64 0, i32 2 - %445 = load i32, ptr %m_ref_count.i.i.i788, align 4 - %inc.i.i.i789 = add i32 %445, 1 - store i32 %inc.i.i.i789, ptr %m_ref_count.i.i.i788, align 4 - %.pre2924 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i791 = icmp eq ptr %.pre2924, null - br i1 %tobool.not.i3.i791, label %if.then112.i.i, label %if.then.i.i.i792 - -if.then.i.i.i792: ; preds = %if.end.i790 - %446 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i794 = getelementptr inbounds %class.ast, ptr %.pre2924, i64 0, i32 2 - %447 = load i32, ptr %m_ref_count.i.i.i.i794, align 4 - %dec.i.i.i.i795 = add i32 %447, -1 - store i32 %dec.i.i.i.i795, ptr %m_ref_count.i.i.i.i794, align 4 - %cmp.i.i.i796 = icmp eq i32 %dec.i.i.i.i795, 0 - br i1 %cmp.i.i.i796, label %if.then2.i.i.i797, label %if.then112.i.i - -if.then2.i.i.i797: ; preds = %if.then.i.i.i792 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %446, ptr noundef nonnull %.pre2924) - to label %if.then112.i.i unwind label %lpad96.i.i - -if.then112.i.i: ; preds = %if.then.i.i.i792, %if.end.i790, %if.then2.i.i.i797 - store ptr %444, ptr %m_pr.i66.i, align 8 - %this.val56.i79.i = load ptr, ptr %28, align 8 - %call118.i.i = invoke noundef ptr @_ZN11ast_manager13mk_bind_proofEP10quantifierP3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i79.i, ptr noundef nonnull %88, ptr noundef nonnull %444) - to label %invoke.cont117.i.i unwind label %lpad96.i.i - -invoke.cont117.i.i: ; preds = %if.then112.i.i - %tobool.not.i771 = icmp eq ptr %call118.i.i, null - br i1 %tobool.not.i771, label %if.end.i775, label %_ZN11ast_manager7inc_refEP3ast.exit.i772 - -_ZN11ast_manager7inc_refEP3ast.exit.i772: ; preds = %invoke.cont117.i.i - %m_ref_count.i.i.i773 = getelementptr inbounds %class.ast, ptr %call118.i.i, i64 0, i32 2 - %448 = load i32, ptr %m_ref_count.i.i.i773, align 4 - %inc.i.i.i774 = add i32 %448, 1 - store i32 %inc.i.i.i774, ptr %m_ref_count.i.i.i773, align 4 - br label %if.end.i775 - -if.end.i775: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i772, %invoke.cont117.i.i - %449 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i776 = icmp eq ptr %449, null - br i1 %tobool.not.i3.i776, label %invoke.cont120.i.i, label %if.then.i.i.i777 - -if.then.i.i.i777: ; preds = %if.end.i775 - %450 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i779 = getelementptr inbounds %class.ast, ptr %449, i64 0, i32 2 - %451 = load i32, ptr %m_ref_count.i.i.i.i779, align 4 - %dec.i.i.i.i780 = add i32 %451, -1 - store i32 %dec.i.i.i.i780, ptr %m_ref_count.i.i.i.i779, align 4 - %cmp.i.i.i781 = icmp eq i32 %dec.i.i.i.i780, 0 - br i1 %cmp.i.i.i781, label %if.then2.i.i.i782, label %invoke.cont120.i.i - -if.then2.i.i.i782: ; preds = %if.then.i.i.i777 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %450, ptr noundef nonnull %449) - to label %invoke.cont120.i.i unwind label %lpad96.i.i - -invoke.cont120.i.i: ; preds = %if.then.i.i.i777, %if.end.i775, %if.then2.i.i.i782 - store ptr %call118.i.i, ptr %m_pr.i66.i, align 8 - %this.val55.i82.i = load ptr, ptr %28, align 8 - %call129.i.i = invoke noundef ptr @_ZN11ast_manager14mk_quant_introEP10quantifierS1_P3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i82.i, ptr noundef nonnull %88, ptr noundef %call93.i.i, ptr noundef %call118.i.i) - to label %invoke.cont128.i.i unwind label %lpad96.i.i - -invoke.cont128.i.i: ; preds = %invoke.cont120.i.i - %tobool.not.i757 = icmp eq ptr %call129.i.i, null - br i1 %tobool.not.i757, label %if.end.i761, label %_ZN11ast_manager7inc_refEP3ast.exit.i758 - -_ZN11ast_manager7inc_refEP3ast.exit.i758: ; preds = %invoke.cont128.i.i - %m_ref_count.i.i.i759 = getelementptr inbounds %class.ast, ptr %call129.i.i, i64 0, i32 2 - %452 = load i32, ptr %m_ref_count.i.i.i759, align 4 - %inc.i.i.i760 = add i32 %452, 1 - store i32 %inc.i.i.i760, ptr %m_ref_count.i.i.i759, align 4 - br label %if.end.i761 - -if.end.i761: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i758, %invoke.cont128.i.i - %453 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i762 = icmp eq ptr %453, null - br i1 %tobool.not.i3.i762, label %if.end142.i.ithread-pre-split, label %if.then.i.i.i763 - -if.then.i.i.i763: ; preds = %if.end.i761 - %454 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i765 = getelementptr inbounds %class.ast, ptr %453, i64 0, i32 2 - %455 = load i32, ptr %m_ref_count.i.i.i.i765, align 4 - %dec.i.i.i.i766 = add i32 %455, -1 - store i32 %dec.i.i.i.i766, ptr %m_ref_count.i.i.i.i765, align 4 - %cmp.i.i.i767 = icmp eq i32 %dec.i.i.i.i766, 0 - br i1 %cmp.i.i.i767, label %if.then2.i.i.i768, label %if.end142.i.ithread-pre-split - -if.then2.i.i.i768: ; preds = %if.then.i.i.i763 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %454, ptr noundef nonnull %453) - to label %if.end142.i.ithread-pre-split unwind label %lpad96.i.i - -lpad96.i.i: ; preds = %if.then2.i.i.i811, %if.then2.i.i.i797, %if.then2.i.i.i782, %if.then2.i.i.i768, %if.then2.i.i.i754, %if.then2.i.i.i740, %if.else.i70.i, %invoke.cont120.i.i, %if.then112.i.i - %456 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i179.i.i.i + %lpad.loopexit463.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup.i.i + br label %ehcleanup217.i.i.i -if.else.i70.i: ; preds = %if.then102.i.i - store ptr %444, ptr %m_pr.i66.i, align 8 - %this.val54.i71.i = load ptr, ptr %28, align 8 - %call137.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i71.i, ptr noundef nonnull %88, ptr noundef %call93.i.i) - to label %invoke.cont136.i.i unwind label %lpad96.i.i - -invoke.cont136.i.i: ; preds = %if.else.i70.i - %tobool.not.i743 = icmp eq ptr %call137.i.i, null - br i1 %tobool.not.i743, label %if.end.i747, label %_ZN11ast_manager7inc_refEP3ast.exit.i744 - -_ZN11ast_manager7inc_refEP3ast.exit.i744: ; preds = %invoke.cont136.i.i - %m_ref_count.i.i.i745 = getelementptr inbounds %class.ast, ptr %call137.i.i, i64 0, i32 2 - %457 = load i32, ptr %m_ref_count.i.i.i745, align 4 - %inc.i.i.i746 = add i32 %457, 1 - store i32 %inc.i.i.i746, ptr %m_ref_count.i.i.i745, align 4 - br label %if.end.i747 - -if.end.i747: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i744, %invoke.cont136.i.i - %458 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i748 = icmp eq ptr %458, null - br i1 %tobool.not.i3.i748, label %if.end142.i.ithread-pre-split, label %if.then.i.i.i749 - -if.then.i.i.i749: ; preds = %if.end.i747 - %459 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i751 = getelementptr inbounds %class.ast, ptr %458, i64 0, i32 2 - %460 = load i32, ptr %m_ref_count.i.i.i.i751, align 4 - %dec.i.i.i.i752 = add i32 %460, -1 - store i32 %dec.i.i.i.i752, ptr %m_ref_count.i.i.i.i751, align 4 - %cmp.i.i.i753 = icmp eq i32 %dec.i.i.i.i752, 0 - br i1 %cmp.i.i.i753, label %if.then2.i.i.i754, label %if.end142.i.ithread-pre-split - -if.then2.i.i.i754: ; preds = %if.then.i.i.i749 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %459, ptr noundef nonnull %458) - to label %if.end142.i.ithread-pre-split unwind label %lpad96.i.i - -if.end142.i.ithread-pre-split: ; preds = %if.then.i.i.i749, %if.end.i747, %if.then2.i.i.i754, %if.then.i.i.i763, %if.end.i761, %if.then2.i.i.i768 - %storemerge = phi ptr [ %call129.i.i, %if.then2.i.i.i768 ], [ %call129.i.i, %if.end.i761 ], [ %call129.i.i, %if.then.i.i.i763 ], [ %call137.i.i, %if.then2.i.i.i754 ], [ %call137.i.i, %if.end.i747 ], [ %call137.i.i, %if.then.i.i.i749 ] - store ptr %storemerge, ptr %m_pr.i66.i, align 8 - br label %if.end142.i.i - -if.end142.i.i: ; preds = %if.end142.i.ithread-pre-split, %invoke.cont97.i.i - %461 = phi ptr [ %call93.i.i, %if.end142.i.ithread-pre-split ], [ %88, %invoke.cont97.i.i ] - %tobool.not.i729 = icmp eq ptr %461, null - br i1 %tobool.not.i729, label %if.end.i733, label %_ZN11ast_manager7inc_refEP3ast.exit.i730 - -_ZN11ast_manager7inc_refEP3ast.exit.i730: ; preds = %if.end142.i.i - %m_ref_count.i.i.i731 = getelementptr inbounds %class.ast, ptr %461, i64 0, i32 2 - %462 = load i32, ptr %m_ref_count.i.i.i731, align 4 - %inc.i.i.i732 = add i32 %462, 1 - store i32 %inc.i.i.i732, ptr %m_ref_count.i.i.i731, align 4 - br label %if.end.i733 - -if.end.i733: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i730, %if.end142.i.i - %463 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i3.i734 = icmp eq ptr %463, null - br i1 %tobool.not.i3.i734, label %if.end169.i.i, label %if.then.i.i.i735 - -if.then.i.i.i735: ; preds = %if.end.i733 - %464 = load ptr, ptr %m_manager.i.i736, align 8 - %m_ref_count.i.i.i.i737 = getelementptr inbounds %class.ast, ptr %463, i64 0, i32 2 - %465 = load i32, ptr %m_ref_count.i.i.i.i737, align 4 - %dec.i.i.i.i738 = add i32 %465, -1 - store i32 %dec.i.i.i.i738, ptr %m_ref_count.i.i.i.i737, align 4 - %cmp.i.i.i739 = icmp eq i32 %dec.i.i.i.i738, 0 - br i1 %cmp.i.i.i739, label %if.then2.i.i.i740, label %if.end169.i.i - -if.then2.i.i.i740: ; preds = %if.then.i.i.i735 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %464, ptr noundef nonnull %463) - to label %if.end169.i.i unwind label %lpad96.i.i - -lpad149.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i710 - %lpad.loopexit2861 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i153.i.i.i, %for.body68.i.i.i + %lpad.loopexit466.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad149.i.i + br label %ehcleanup217.i.i.i -lpad149.i.i.loopexit.split-lp: ; preds = %if.then.i.i682 - %lpad.loopexit.split-lp2862 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i137.i.i + %lpad.loopexit468.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad149.i.i + br label %ehcleanup217.i.i.i -lpad149.i.i: ; preds = %lpad149.i.i.loopexit.split-lp, %lpad149.i.i.loopexit - %lpad.phi2863 = phi { ptr, i32 } [ %lpad.loopexit2861, %lpad149.i.i.loopexit ], [ %lpad.loopexit.split-lp2862, %lpad149.i.i.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2.i.i) #18 - br label %ehcleanup.i.i +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i100.i, %for.body47.i.i.i + %lpad.loopexit471.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup217.i.i.i -if.end169.i.i: ; preds = %if.then2.i.i.i740, %if.end.i733, %if.then.i.i.i735 - store ptr %461, ptr %m_r.i72.i, align 8 - %this.val53.i73.i = load ptr, ptr %28, align 8 - store ptr null, ptr %pr2.i.i, align 8 - store ptr %this.val53.i73.i, ptr %m_manager.i, align 8 - %466 = load i32, ptr %m_spos.i54.i, align 4 - %467 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i689 = icmp eq ptr %467, null - br i1 %cmp.i.i.i689, label %invoke.cont172.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i - -_ZN6vectorIP3appLb0EjE3endEv.exit.i: ; preds = %if.end169.i.i - %arrayidx.i.i.i692 = getelementptr inbounds i32, ptr %467, i64 -1 - %468 = load i32, ptr %arrayidx.i.i.i692, align 4 - %469 = zext i32 %468 to i64 - %add.ptr.i.i693 = getelementptr inbounds ptr, ptr %467, i64 %469 - %cmp3.i.i694 = icmp ugt i32 %468, %466 - br i1 %cmp3.i.i694, label %for.body.i.i697.preheader, label %if.then.i.i695 - -for.body.i.i697.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i - %idx.ext.i690 = zext i32 %466 to i64 - %add.ptr.i691 = getelementptr inbounds ptr, ptr %467, i64 %idx.ext.i690 - br label %for.body.i.i697 - -for.body.i.i697: ; preds = %for.body.i.i697.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i704 - %it.04.i.i698 = phi ptr [ %incdec.ptr.i.i705, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i704 ], [ %add.ptr.i691, %for.body.i.i697.preheader ] - %470 = load ptr, ptr %it.04.i.i698, align 8 - %471 = load ptr, ptr %m_result_pr_stack.i712, align 8 - %tobool.not.i.i.i.i.i699 = icmp eq ptr %470, null - br i1 %tobool.not.i.i.i.i.i699, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i704, label %if.then.i.i.i.i.i700 - -if.then.i.i.i.i.i700: ; preds = %for.body.i.i697 - %m_ref_count.i.i.i.i.i.i701 = getelementptr inbounds %class.ast, ptr %470, i64 0, i32 2 - %472 = load i32, ptr %m_ref_count.i.i.i.i.i.i701, align 4 - %dec.i.i.i.i.i.i702 = add i32 %472, -1 - store i32 %dec.i.i.i.i.i.i702, ptr %m_ref_count.i.i.i.i.i.i701, align 4 - %cmp.i.i.i.i.i703 = icmp eq i32 %dec.i.i.i.i.i.i702, 0 - br i1 %cmp.i.i.i.i.i703, label %if.then2.i.i.i.i.i710, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i704 - -if.then2.i.i.i.i.i710: ; preds = %if.then.i.i.i.i.i700 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %471, ptr noundef nonnull %470) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i704 unwind label %lpad149.i.i.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i704: ; preds = %if.then2.i.i.i.i.i710, %if.then.i.i.i.i.i700, %for.body.i.i697 - %incdec.ptr.i.i705 = getelementptr inbounds ptr, ptr %it.04.i.i698, i64 1 - %cmp.i.i706 = icmp ult ptr %incdec.ptr.i.i705, %add.ptr.i.i693 - br i1 %cmp.i.i706, label %for.body.i.i697, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i707, !llvm.loop !18 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i707: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i704 - %.pre.i708 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i709 = icmp eq ptr %.pre.i708, null - br i1 %tobool.not.i.i709, label %invoke.cont172.i.i, label %if.then.i.i695 - -if.then.i.i695: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i707, %_ZN6vectorIP3appLb0EjE3endEv.exit.i - %473 = phi ptr [ %.pre.i708, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i707 ], [ %467, %_ZN6vectorIP3appLb0EjE3endEv.exit.i ] - %arrayidx.i.i696 = getelementptr inbounds i32, ptr %473, i64 -1 - store i32 %466, ptr %arrayidx.i.i696, align 4 - br label %invoke.cont172.i.i - -invoke.cont172.i.i: ; preds = %if.then.i.i695, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i707, %if.end169.i.i - %474 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i.i.i.i668 = icmp eq ptr %474, null - br i1 %tobool.not.i.i.i.i668, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i669 - -if.then.i.i.i.i669: ; preds = %invoke.cont172.i.i - %m_ref_count.i.i.i.i.i670 = getelementptr inbounds %class.ast, ptr %474, i64 0, i32 2 - %475 = load i32, ptr %m_ref_count.i.i.i.i.i670, align 4 - %inc.i.i.i.i.i671 = add i32 %475, 1 - store i32 %inc.i.i.i.i.i671, ptr %m_ref_count.i.i.i.i.i670, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.then2.i.i.i411.i.i.i, %if.then2.i.i.i401.i.i.i, %if.then.i392.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i, %if.then.i.i369.i.i.i, %if.end88.i.i.i + %lpad.loopexit.split-lp.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup217.i.i.i + +for.inc61.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i, %invoke.cont49.i.i.i + %j.1.i.i.i = phi i32 [ %inc55.i.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i ], [ %j.0478.i.i.i, %invoke.cont49.i.i.i ] + %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 + %exitcond485.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %idx.ext42.i.i.i + br i1 %exitcond485.not.i.i.i, label %for.end63.i.i.i, label %for.body47.i.i.i, !llvm.loop !26 + +for.end63.i.i.i: ; preds = %for.inc61.i.i.i, %if.then40.i.i.i + %j.0.lcssa.i.i.i = phi i32 [ 0, %if.then40.i.i.i ], [ %j.1.i.i.i, %for.inc61.i.i.i ] + %415 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i.i = icmp eq ptr %415, null + br i1 %cmp.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i80.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i80.i.i: ; preds = %for.end63.i.i.i + %arrayidx.i.i.i.i81.i.i = getelementptr inbounds i32, ptr %415, i64 -1 + %416 = load i32, ptr %arrayidx.i.i.i.i81.i.i, align 4 + %417 = zext i32 %416 to i64 + %add.ptr.i.i129.i.i.i = getelementptr inbounds ptr, ptr %415, i64 %417 + %cmp3.i.i.i82.i.i = icmp ugt i32 %416, %j.0.lcssa.i.i.i + br i1 %cmp3.i.i.i82.i.i, label %for.body.i.i132.preheader.i.i.i, label %if.then.i.i130.i.i.i + +for.body.i.i132.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i80.i.i + %idx.ext.i127.i.i.i = zext i32 %j.0.lcssa.i.i.i to i64 + %add.ptr.i128.i.i.i = getelementptr inbounds ptr, ptr %415, i64 %idx.ext.i127.i.i.i + br label %for.body.i.i132.i.i.i + +for.body.i.i132.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i134.i.i, %for.body.i.i132.preheader.i.i.i + %it.04.i.i.i128.i.i = phi ptr [ %incdec.ptr.i.i.i135.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i134.i.i ], [ %add.ptr.i128.i.i.i, %for.body.i.i132.preheader.i.i.i ] + %418 = load ptr, ptr %it.04.i.i.i128.i.i, align 8 + %419 = load ptr, ptr %new_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i129.i.i = icmp eq ptr %418, null + br i1 %tobool.not.i.i.i.i.i.i129.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i134.i.i, label %if.then.i.i.i.i.i.i130.i.i + +if.then.i.i.i.i.i.i130.i.i: ; preds = %for.body.i.i132.i.i.i + %m_ref_count.i.i.i.i.i.i.i131.i.i = getelementptr inbounds %class.ast, ptr %418, i64 0, i32 2 + %420 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i131.i.i, align 4 + %dec.i.i.i.i.i.i.i132.i.i = add i32 %420, -1 + store i32 %dec.i.i.i.i.i.i.i132.i.i, ptr %m_ref_count.i.i.i.i.i.i.i131.i.i, align 4 + %cmp.i.i.i.i.i.i133.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i132.i.i, 0 + br i1 %cmp.i.i.i.i.i.i133.i.i, label %if.then2.i.i.i.i.i.i137.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i134.i.i + +if.then2.i.i.i.i.i.i137.i.i: ; preds = %if.then.i.i.i.i.i.i130.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %419, ptr noundef nonnull %418) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i134.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i134.i.i: ; preds = %if.then2.i.i.i.i.i.i137.i.i, %if.then.i.i.i.i.i.i130.i.i, %for.body.i.i132.i.i.i + %incdec.ptr.i.i.i135.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i128.i.i, i64 1 + %cmp.i.i133.i.i.i = icmp ult ptr %incdec.ptr.i.i.i135.i.i, %add.ptr.i.i129.i.i.i + br i1 %cmp.i.i133.i.i.i, label %for.body.i.i132.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i136.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i136.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i134.i.i + %.pre.i134.i.i.i = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %tobool.not.i.i135.i.i.i = icmp eq ptr %.pre.i134.i.i.i, null + br i1 %tobool.not.i.i135.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i, label %if.then.i.i130.i.i.i + +if.then.i.i130.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i136.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i80.i.i + %421 = phi ptr [ %.pre.i134.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i136.i.i ], [ %415, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i80.i.i ] + %arrayidx.i.i131.i.i.i = getelementptr inbounds i32, ptr %421, i64 -1 + store i32 %j.0.lcssa.i.i.i, ptr %arrayidx.i.i131.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i: ; preds = %if.then.i.i130.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i136.i.i, %for.end63.i.i.i + br i1 %cmp3.not.i.i93.i.i.i, label %for.end86.i.i.i, label %for.body68.preheader.i.i.i + +for.body68.preheader.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + %wide.trip.count489.i.i.i = zext i32 %379 to i64 + br label %for.body68.i.i.i + +for.body68.i.i.i: ; preds = %for.inc84.i.i.i, %for.body68.preheader.i.i.i + %indvars.iv486.i.i.i = phi i64 [ 0, %for.body68.preheader.i.i.i ], [ %indvars.iv.next487.i.i.i, %for.inc84.i.i.i ] + %j.2481.i.i.i = phi i32 [ 0, %for.body68.preheader.i.i.i ], [ %j.3.i.i.i, %for.inc84.i.i.i ] + %422 = load ptr, ptr %28, align 8 + %arrayidx71.i.i.i = getelementptr inbounds ptr, ptr %add.ptr43.i.i.i, i64 %indvars.iv486.i.i.i + %423 = load ptr, ptr %arrayidx71.i.i.i, align 8 + %call73.i.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %422, ptr noundef %423) + to label %invoke.cont72.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +invoke.cont72.i.i.i: ; preds = %for.body68.i.i.i + br i1 %call73.i.i.i, label %invoke.cont79.i.i.i, label %for.inc84.i.i.i + +invoke.cont79.i.i.i: ; preds = %invoke.cont72.i.i.i + %424 = load ptr, ptr %arrayidx71.i.i.i, align 8 + %425 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %idxprom.i.i138.i.i.i = zext i32 %j.2481.i.i.i to i64 + %arrayidx.i.i139.i.i.i = getelementptr inbounds ptr, ptr %425, i64 %idxprom.i.i138.i.i.i + %426 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %inc78.i.i.i = add i32 %j.2481.i.i.i, 1 + %tobool.not.i.i143.i.i.i = icmp eq ptr %424, null + br i1 %tobool.not.i.i143.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i, label %if.then.i.i144.i.i.i + +if.then.i.i144.i.i.i: ; preds = %invoke.cont79.i.i.i + %m_ref_count.i.i.i145.i.i.i = getelementptr inbounds %class.ast, ptr %424, i64 0, i32 2 + %427 = load i32, ptr %m_ref_count.i.i.i145.i.i.i, align 4 + %inc.i.i.i146.i.i.i = add i32 %427, 1 + store i32 %inc.i.i.i146.i.i.i, ptr %m_ref_count.i.i.i145.i.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i: ; preds = %if.then.i.i144.i.i.i, %invoke.cont79.i.i.i + %428 = load ptr, ptr %arrayidx.i.i139.i.i.i, align 8 + %tobool.not.i2.i148.i.i.i = icmp eq ptr %428, null + br i1 %tobool.not.i2.i148.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i, label %if.then.i3.i149.i.i.i + +if.then.i3.i149.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + %m_ref_count.i.i4.i150.i.i.i = getelementptr inbounds %class.ast, ptr %428, i64 0, i32 2 + %429 = load i32, ptr %m_ref_count.i.i4.i150.i.i.i, align 4 + %dec.i.i.i151.i.i.i = add i32 %429, -1 + store i32 %dec.i.i.i151.i.i.i, ptr %m_ref_count.i.i4.i150.i.i.i, align 4 + %cmp.i.i152.i.i.i = icmp eq i32 %dec.i.i.i151.i.i.i, 0 + br i1 %cmp.i.i152.i.i.i, label %if.then2.i.i153.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i + +if.then2.i.i153.i.i.i: ; preds = %if.then.i3.i149.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %426, ptr noundef nonnull %428) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i: ; preds = %if.then2.i.i153.i.i.i, %if.then.i3.i149.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + store ptr %424, ptr %arrayidx.i.i139.i.i.i, align 8 + br label %for.inc84.i.i.i + +for.inc84.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i, %invoke.cont72.i.i.i + %j.3.i.i.i = phi i32 [ %inc78.i.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i ], [ %j.2481.i.i.i, %invoke.cont72.i.i.i ] + %indvars.iv.next487.i.i.i = add nuw nsw i64 %indvars.iv486.i.i.i, 1 + %exitcond490.not.i.i.i = icmp eq i64 %indvars.iv.next487.i.i.i, %wide.trip.count489.i.i.i + br i1 %exitcond490.not.i.i.i, label %for.end86.i.i.i, label %for.body68.i.i.i, !llvm.loop !27 + +for.end86.i.i.i: ; preds = %for.inc84.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + %j.2.lcssa.i.i.i = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i ], [ %j.3.i.i.i, %for.inc84.i.i.i ] + %430 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i157.i.i.i = icmp eq ptr %430, null + br i1 %cmp.i.i.i157.i.i.i, label %if.end88.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i: ; preds = %for.end86.i.i.i + %arrayidx.i.i.i161.i.i.i = getelementptr inbounds i32, ptr %430, i64 -1 + %431 = load i32, ptr %arrayidx.i.i.i161.i.i.i, align 4 + %432 = zext i32 %431 to i64 + %add.ptr.i.i162.i.i.i = getelementptr inbounds ptr, ptr %430, i64 %432 + %cmp3.i.i163.i.i.i = icmp ugt i32 %431, %j.2.lcssa.i.i.i + br i1 %cmp3.i.i163.i.i.i, label %for.body.i.i166.preheader.i.i.i, label %if.then.i.i164.i.i.i + +for.body.i.i166.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + %idx.ext.i159.i.i.i = zext i32 %j.2.lcssa.i.i.i to i64 + %add.ptr.i160.i.i.i = getelementptr inbounds ptr, ptr %430, i64 %idx.ext.i159.i.i.i + br label %for.body.i.i166.i.i.i + +for.body.i.i166.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i, %for.body.i.i166.preheader.i.i.i + %it.04.i.i167.i.i.i = phi ptr [ %incdec.ptr.i.i174.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i ], [ %add.ptr.i160.i.i.i, %for.body.i.i166.preheader.i.i.i ] + %433 = load ptr, ptr %it.04.i.i167.i.i.i, align 8 + %434 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i168.i.i.i = icmp eq ptr %433, null + br i1 %tobool.not.i.i.i.i.i168.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i, label %if.then.i.i.i.i.i169.i.i.i + +if.then.i.i.i.i.i169.i.i.i: ; preds = %for.body.i.i166.i.i.i + %m_ref_count.i.i.i.i.i.i170.i.i.i = getelementptr inbounds %class.ast, ptr %433, i64 0, i32 2 + %435 = load i32, ptr %m_ref_count.i.i.i.i.i.i170.i.i.i, align 4 + %dec.i.i.i.i.i.i171.i.i.i = add i32 %435, -1 + store i32 %dec.i.i.i.i.i.i171.i.i.i, ptr %m_ref_count.i.i.i.i.i.i170.i.i.i, align 4 + %cmp.i.i.i.i.i172.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i171.i.i.i, 0 + br i1 %cmp.i.i.i.i.i172.i.i.i, label %if.then2.i.i.i.i.i179.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i + +if.then2.i.i.i.i.i179.i.i.i: ; preds = %if.then.i.i.i.i.i169.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %434, ptr noundef nonnull %433) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i: ; preds = %if.then2.i.i.i.i.i179.i.i.i, %if.then.i.i.i.i.i169.i.i.i, %for.body.i.i166.i.i.i + %incdec.ptr.i.i174.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i167.i.i.i, i64 1 + %cmp.i.i175.i.i.i = icmp ult ptr %incdec.ptr.i.i174.i.i.i, %add.ptr.i.i162.i.i.i + br i1 %cmp.i.i175.i.i.i, label %for.body.i.i166.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i + %.pre.i177.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %tobool.not.i.i178.i.i.i = icmp eq ptr %.pre.i177.i.i.i, null + br i1 %tobool.not.i.i178.i.i.i, label %if.end88.i.i.i, label %if.then.i.i164.i.i.i + +if.then.i.i164.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + %436 = phi ptr [ %.pre.i177.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i ], [ %430, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i ] + %arrayidx.i.i165.i.i.i = getelementptr inbounds i32, ptr %436, i64 -1 + store i32 %j.2.lcssa.i.i.i, ptr %arrayidx.i.i165.i.i.i, align 4 + %.pre492.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + br label %if.end88.i.i.i + +if.end88.i.i.i: ; preds = %if.then.i.i164.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, %for.end86.i.i.i + %437 = phi ptr [ %.pre492.i.i.i, %if.then.i.i164.i.i.i ], [ null, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i ], [ null, %for.end86.i.i.i ] + %this.val58.i83.i.i = load ptr, ptr %28, align 8 + %438 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %call93.i.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i83.i.i, ptr noundef nonnull %88, i32 noundef %j.0.lcssa.i.i.i, ptr noundef %438, i32 noundef %j.2.lcssa.i.i.i, ptr noundef %437, ptr noundef %377) + to label %invoke.cont92.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont92.i.i.i: ; preds = %if.end88.i.i.i + %this.val57.i84.i.i = load ptr, ptr %28, align 8 + store ptr %call93.i.i.i, ptr %new_q.i.i.i, align 8 + store ptr %this.val57.i84.i.i, ptr %m_manager.i184.i.i.i, align 8 + %tobool.not.i.i185.i.i.i = icmp eq ptr %call93.i.i.i, null + br i1 %tobool.not.i.i185.i.i.i, label %invoke.cont95.i86.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i: ; preds = %invoke.cont92.i.i.i + %m_ref_count.i.i.i.i.i85.i.i = getelementptr inbounds %class.ast, ptr %call93.i.i.i, i64 0, i32 2 + %439 = load i32, ptr %m_ref_count.i.i.i.i.i85.i.i, align 4 + %inc.i.i.i.i186.i.i.i = add i32 %439, 1 + store i32 %inc.i.i.i.i186.i.i.i, ptr %m_ref_count.i.i.i.i.i85.i.i, align 4 + br label %invoke.cont95.i86.i.i + +invoke.cont95.i86.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i, %invoke.cont92.i.i.i + %440 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i.i.i.i = icmp eq ptr %440, null + br i1 %tobool.not.i3.i.i.i.i, label %invoke.cont97.i.i.i, label %if.then.i.i.i.i88.i.i + +if.then.i.i.i.i88.i.i: ; preds = %invoke.cont95.i86.i.i + %441 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i188.i.i.i = getelementptr inbounds %class.ast, ptr %440, i64 0, i32 2 + %442 = load i32, ptr %m_ref_count.i.i.i.i188.i.i.i, align 4 + %dec.i.i.i.i.i.i.i = add i32 %442, -1 + store i32 %dec.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i188.i.i.i, align 4 + %cmp.i.i.i189.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i189.i.i.i, label %if.then2.i.i.i.i.i.i, label %invoke.cont97.i.i.i + +if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i88.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %441, ptr noundef nonnull %440) + to label %invoke.cont97.i.i.i unwind label %lpad96.i.i.i + +invoke.cont97.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i88.i.i, %invoke.cont95.i86.i.i + store ptr null, ptr %m_pr.i87.i.i, align 8 + %cmp101.not.i.i.i = icmp eq ptr %call93.i.i.i, %88 + br i1 %cmp101.not.i.i.i, label %if.end142.i.i.i, label %if.then102.i.i.i + +if.then102.i.i.i: ; preds = %invoke.cont97.i.i.i + %443 = load i32, ptr %m_spos.i69.i.i, align 4 + %444 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %idxprom.i.i192.i.i.i = zext i32 %443 to i64 + %arrayidx.i.i193.i.i.i = getelementptr inbounds ptr, ptr %444, i64 %idxprom.i.i192.i.i.i + %445 = load ptr, ptr %arrayidx.i.i193.i.i.i, align 8 + %tobool.not.i.i.i.i = icmp eq ptr %445, null + br i1 %tobool.not.i.i.i.i, label %if.else.i126.i.i, label %if.end.i197.i.i.i + +if.end.i197.i.i.i: ; preds = %if.then102.i.i.i + %m_ref_count.i.i.i195.i.i.i = getelementptr inbounds %class.ast, ptr %445, i64 0, i32 2 + %446 = load i32, ptr %m_ref_count.i.i.i195.i.i.i, align 4 + %inc.i.i.i196.i.i.i = add i32 %446, 1 + store i32 %inc.i.i.i196.i.i.i, ptr %m_ref_count.i.i.i195.i.i.i, align 4 + %.pre493.i.i.i = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i198.i.i.i = icmp eq ptr %.pre493.i.i.i, null + br i1 %tobool.not.i3.i198.i.i.i, label %if.then112.i.i.i, label %if.then.i.i.i199.i.i.i + +if.then.i.i.i199.i.i.i: ; preds = %if.end.i197.i.i.i + %447 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i201.i.i.i = getelementptr inbounds %class.ast, ptr %.pre493.i.i.i, i64 0, i32 2 + %448 = load i32, ptr %m_ref_count.i.i.i.i201.i.i.i, align 4 + %dec.i.i.i.i202.i.i.i = add i32 %448, -1 + store i32 %dec.i.i.i.i202.i.i.i, ptr %m_ref_count.i.i.i.i201.i.i.i, align 4 + %cmp.i.i.i203.i.i.i = icmp eq i32 %dec.i.i.i.i202.i.i.i, 0 + br i1 %cmp.i.i.i203.i.i.i, label %if.then2.i.i.i204.i.i.i, label %if.then112.i.i.i + +if.then2.i.i.i204.i.i.i: ; preds = %if.then.i.i.i199.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %447, ptr noundef nonnull %.pre493.i.i.i) + to label %if.then112.i.i.i unwind label %lpad96.i.i.i + +if.then112.i.i.i: ; preds = %if.then2.i.i.i204.i.i.i, %if.then.i.i.i199.i.i.i, %if.end.i197.i.i.i + store ptr %445, ptr %m_pr.i87.i.i, align 8 + %this.val56.i89.i.i = load ptr, ptr %28, align 8 + %call118.i.i.i = invoke noundef ptr @_ZN11ast_manager13mk_bind_proofEP10quantifierP3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i89.i.i, ptr noundef nonnull %88, ptr noundef nonnull %445) + to label %invoke.cont117.i.i.i unwind label %lpad96.i.i.i + +invoke.cont117.i.i.i: ; preds = %if.then112.i.i.i + %tobool.not.i208.i.i.i = icmp eq ptr %call118.i.i.i, null + br i1 %tobool.not.i208.i.i.i, label %if.end.i212.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i: ; preds = %invoke.cont117.i.i.i + %m_ref_count.i.i.i210.i.i.i = getelementptr inbounds %class.ast, ptr %call118.i.i.i, i64 0, i32 2 + %449 = load i32, ptr %m_ref_count.i.i.i210.i.i.i, align 4 + %inc.i.i.i211.i.i.i = add i32 %449, 1 + store i32 %inc.i.i.i211.i.i.i, ptr %m_ref_count.i.i.i210.i.i.i, align 4 + br label %if.end.i212.i.i.i + +if.end.i212.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i, %invoke.cont117.i.i.i + %450 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i213.i.i.i = icmp eq ptr %450, null + br i1 %tobool.not.i3.i213.i.i.i, label %invoke.cont120.i.i.i, label %if.then.i.i.i214.i.i.i + +if.then.i.i.i214.i.i.i: ; preds = %if.end.i212.i.i.i + %451 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i216.i.i.i = getelementptr inbounds %class.ast, ptr %450, i64 0, i32 2 + %452 = load i32, ptr %m_ref_count.i.i.i.i216.i.i.i, align 4 + %dec.i.i.i.i217.i.i.i = add i32 %452, -1 + store i32 %dec.i.i.i.i217.i.i.i, ptr %m_ref_count.i.i.i.i216.i.i.i, align 4 + %cmp.i.i.i218.i.i.i = icmp eq i32 %dec.i.i.i.i217.i.i.i, 0 + br i1 %cmp.i.i.i218.i.i.i, label %if.then2.i.i.i219.i.i.i, label %invoke.cont120.i.i.i + +if.then2.i.i.i219.i.i.i: ; preds = %if.then.i.i.i214.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %451, ptr noundef nonnull %450) + to label %invoke.cont120.i.i.i unwind label %lpad96.i.i.i + +invoke.cont120.i.i.i: ; preds = %if.then2.i.i.i219.i.i.i, %if.then.i.i.i214.i.i.i, %if.end.i212.i.i.i + store ptr %call118.i.i.i, ptr %m_pr.i87.i.i, align 8 + %this.val55.i91.i.i = load ptr, ptr %28, align 8 + %call129.i.i.i = invoke noundef ptr @_ZN11ast_manager14mk_quant_introEP10quantifierS1_P3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i91.i.i, ptr noundef nonnull %88, ptr noundef %call93.i.i.i, ptr noundef %call118.i.i.i) + to label %invoke.cont128.i.i.i unwind label %lpad96.i.i.i + +invoke.cont128.i.i.i: ; preds = %invoke.cont120.i.i.i + %tobool.not.i222.i.i.i = icmp eq ptr %call129.i.i.i, null + br i1 %tobool.not.i222.i.i.i, label %if.end.i226.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i: ; preds = %invoke.cont128.i.i.i + %m_ref_count.i.i.i224.i.i.i = getelementptr inbounds %class.ast, ptr %call129.i.i.i, i64 0, i32 2 + %453 = load i32, ptr %m_ref_count.i.i.i224.i.i.i, align 4 + %inc.i.i.i225.i.i.i = add i32 %453, 1 + store i32 %inc.i.i.i225.i.i.i, ptr %m_ref_count.i.i.i224.i.i.i, align 4 + br label %if.end.i226.i.i.i + +if.end.i226.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i, %invoke.cont128.i.i.i + %454 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i227.i.i.i = icmp eq ptr %454, null + br i1 %tobool.not.i3.i227.i.i.i, label %if.end142thread-pre-split.i.i.i, label %if.then.i.i.i228.i.i.i + +if.then.i.i.i228.i.i.i: ; preds = %if.end.i226.i.i.i + %455 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i230.i.i.i = getelementptr inbounds %class.ast, ptr %454, i64 0, i32 2 + %456 = load i32, ptr %m_ref_count.i.i.i.i230.i.i.i, align 4 + %dec.i.i.i.i231.i.i.i = add i32 %456, -1 + store i32 %dec.i.i.i.i231.i.i.i, ptr %m_ref_count.i.i.i.i230.i.i.i, align 4 + %cmp.i.i.i232.i.i.i = icmp eq i32 %dec.i.i.i.i231.i.i.i, 0 + br i1 %cmp.i.i.i232.i.i.i, label %if.then2.i.i.i233.i.i.i, label %if.end142thread-pre-split.i.i.i + +if.then2.i.i.i233.i.i.i: ; preds = %if.then.i.i.i228.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %455, ptr noundef nonnull %454) + to label %if.end142thread-pre-split.i.i.i unwind label %lpad96.i.i.i + +lpad96.i.i.i: ; preds = %if.then2.i.i.i261.i.i.i, %if.then2.i.i.i247.i.i.i, %if.else.i126.i.i, %if.then2.i.i.i233.i.i.i, %invoke.cont120.i.i.i, %if.then2.i.i.i219.i.i.i, %if.then112.i.i.i, %if.then2.i.i.i204.i.i.i, %if.then2.i.i.i.i.i.i + %457 = landingpad { ptr, i32 } + cleanup + br label %ehcleanup.i.i.i + +if.else.i126.i.i: ; preds = %if.then102.i.i.i + %this.val54.i127.i.i = load ptr, ptr %28, align 8 + %call137.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i127.i.i, ptr noundef nonnull %88, ptr noundef %call93.i.i.i) + to label %invoke.cont136.i.i.i unwind label %lpad96.i.i.i + +invoke.cont136.i.i.i: ; preds = %if.else.i126.i.i + %tobool.not.i236.i.i.i = icmp eq ptr %call137.i.i.i, null + br i1 %tobool.not.i236.i.i.i, label %if.end.i240.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i: ; preds = %invoke.cont136.i.i.i + %m_ref_count.i.i.i238.i.i.i = getelementptr inbounds %class.ast, ptr %call137.i.i.i, i64 0, i32 2 + %458 = load i32, ptr %m_ref_count.i.i.i238.i.i.i, align 4 + %inc.i.i.i239.i.i.i = add i32 %458, 1 + store i32 %inc.i.i.i239.i.i.i, ptr %m_ref_count.i.i.i238.i.i.i, align 4 + br label %if.end.i240.i.i.i + +if.end.i240.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i, %invoke.cont136.i.i.i + %459 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i241.i.i.i = icmp eq ptr %459, null + br i1 %tobool.not.i3.i241.i.i.i, label %if.end142thread-pre-split.i.i.i, label %if.then.i.i.i242.i.i.i + +if.then.i.i.i242.i.i.i: ; preds = %if.end.i240.i.i.i + %460 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i244.i.i.i = getelementptr inbounds %class.ast, ptr %459, i64 0, i32 2 + %461 = load i32, ptr %m_ref_count.i.i.i.i244.i.i.i, align 4 + %dec.i.i.i.i245.i.i.i = add i32 %461, -1 + store i32 %dec.i.i.i.i245.i.i.i, ptr %m_ref_count.i.i.i.i244.i.i.i, align 4 + %cmp.i.i.i246.i.i.i = icmp eq i32 %dec.i.i.i.i245.i.i.i, 0 + br i1 %cmp.i.i.i246.i.i.i, label %if.then2.i.i.i247.i.i.i, label %if.end142thread-pre-split.i.i.i + +if.then2.i.i.i247.i.i.i: ; preds = %if.then.i.i.i242.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %460, ptr noundef nonnull %459) + to label %if.end142thread-pre-split.i.i.i unwind label %lpad96.i.i.i + +if.end142thread-pre-split.i.i.i: ; preds = %if.then2.i.i.i247.i.i.i, %if.then.i.i.i242.i.i.i, %if.end.i240.i.i.i, %if.then2.i.i.i233.i.i.i, %if.then.i.i.i228.i.i.i, %if.end.i226.i.i.i + %storemerge.i.i.i = phi ptr [ %call129.i.i.i, %if.then2.i.i.i233.i.i.i ], [ %call129.i.i.i, %if.end.i226.i.i.i ], [ %call129.i.i.i, %if.then.i.i.i228.i.i.i ], [ %call137.i.i.i, %if.then2.i.i.i247.i.i.i ], [ %call137.i.i.i, %if.end.i240.i.i.i ], [ %call137.i.i.i, %if.then.i.i.i242.i.i.i ] + store ptr %storemerge.i.i.i, ptr %m_pr.i87.i.i, align 8 + br label %if.end142.i.i.i + +if.end142.i.i.i: ; preds = %if.end142thread-pre-split.i.i.i, %invoke.cont97.i.i.i + %462 = phi ptr [ %call93.i.i.i, %if.end142thread-pre-split.i.i.i ], [ %88, %invoke.cont97.i.i.i ] + %tobool.not.i250.i.i.i = icmp eq ptr %462, null + br i1 %tobool.not.i250.i.i.i, label %if.end.i254.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i: ; preds = %if.end142.i.i.i + %m_ref_count.i.i.i252.i.i.i = getelementptr inbounds %class.ast, ptr %462, i64 0, i32 2 + %463 = load i32, ptr %m_ref_count.i.i.i252.i.i.i, align 4 + %inc.i.i.i253.i.i.i = add i32 %463, 1 + store i32 %inc.i.i.i253.i.i.i, ptr %m_ref_count.i.i.i252.i.i.i, align 4 + br label %if.end.i254.i.i.i + +if.end.i254.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i, %if.end142.i.i.i + %464 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i3.i255.i.i.i = icmp eq ptr %464, null + br i1 %tobool.not.i3.i255.i.i.i, label %if.end169.i.i.i, label %if.then.i.i.i256.i.i.i + +if.then.i.i.i256.i.i.i: ; preds = %if.end.i254.i.i.i + %465 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i258.i.i.i = getelementptr inbounds %class.ast, ptr %464, i64 0, i32 2 + %466 = load i32, ptr %m_ref_count.i.i.i.i258.i.i.i, align 4 + %dec.i.i.i.i259.i.i.i = add i32 %466, -1 + store i32 %dec.i.i.i.i259.i.i.i, ptr %m_ref_count.i.i.i.i258.i.i.i, align 4 + %cmp.i.i.i260.i.i.i = icmp eq i32 %dec.i.i.i.i259.i.i.i, 0 + br i1 %cmp.i.i.i260.i.i.i, label %if.then2.i.i.i261.i.i.i, label %if.end169.i.i.i + +if.then2.i.i.i261.i.i.i: ; preds = %if.then.i.i.i256.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %465, ptr noundef nonnull %464) + to label %if.end169.i.i.i unwind label %lpad96.i.i.i + +lpad149.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i301.i.i.i + %lpad.loopexit460.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad149.i.i.i -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %if.then.i.i.i.i669, %invoke.cont172.i.i - %476 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i673 = icmp eq ptr %476, null - br i1 %cmp.i.i673, label %if.then.i.i682, label %lor.lhs.false.i.i674 - -lor.lhs.false.i.i674: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - %arrayidx.i.i675 = getelementptr inbounds i32, ptr %476, i64 -1 - %477 = load i32, ptr %arrayidx.i.i675, align 4 - %arrayidx4.i.i676 = getelementptr inbounds i32, ptr %476, i64 -2 - %478 = load i32, ptr %arrayidx4.i.i676, align 4 - %cmp5.i.i677 = icmp eq i32 %477, %478 - br i1 %cmp5.i.i677, label %if.then.i.i682, label %_ZN7obj_refI3app11ast_managerED2Ev.exit - -if.then.i.i682: ; preds = %lor.lhs.false.i.i674, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc686 unwind label %lpad149.i.i.loopexit.split-lp - -.noexc686: ; preds = %if.then.i.i682 - %.pre.i.i683 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i684 = getelementptr inbounds i32, ptr %.pre.i.i683, i64 -1 - %.pre1.i.i685 = load i32, ptr %arrayidx8.phi.trans.insert.i.i684, align 4 - br label %_ZN7obj_refI3app11ast_managerED2Ev.exit - -_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %lor.lhs.false.i.i674, %.noexc686 - %479 = phi i32 [ %.pre1.i.i685, %.noexc686 ], [ %477, %lor.lhs.false.i.i674 ] - %480 = phi ptr [ %.pre.i.i683, %.noexc686 ], [ %476, %lor.lhs.false.i.i674 ] - %idx.ext.i.i678 = zext i32 %479 to i64 - %add.ptr.i.i679 = getelementptr inbounds ptr, ptr %480, i64 %idx.ext.i.i678 - store ptr %474, ptr %add.ptr.i.i679, align 8 - %481 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i680 = getelementptr inbounds i32, ptr %481, i64 -1 - %482 = load i32, ptr %arrayidx10.i.i680, align 4 - %inc.i.i681 = add i32 %482, 1 - store i32 %inc.i.i681, ptr %arrayidx10.i.i680, align 4 - br i1 %tobool.not.i.i815, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit, label %if.then.i.i.i652 - -if.then.i.i.i652: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit - %m_ref_count.i.i.i.i654 = getelementptr inbounds %class.ast, ptr %call93.i.i, i64 0, i32 2 - %483 = load i32, ptr %m_ref_count.i.i.i.i654, align 4 - %dec.i.i.i.i655 = add i32 %483, -1 - store i32 %dec.i.i.i.i655, ptr %m_ref_count.i.i.i.i654, align 4 - %cmp.i.i.i656 = icmp eq i32 %dec.i.i.i.i655, 0 - br i1 %cmp.i.i.i656, label %if.then2.i.i.i658, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - -if.then2.i.i.i658: ; preds = %if.then.i.i.i652 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val57.i63.i, ptr noundef nonnull %call93.i.i) - to label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit unwind label %terminate.lpad.i - -terminate.lpad.i: ; preds = %if.then2.i.i.i658 - %484 = landingpad { ptr, i32 } +lpad149.loopexit.split-lp.i.i.i: ; preds = %if.then.i.i310.i.i.i + %lpad.loopexit.split-lp461.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad149.i.i.i + +lpad149.i.i.i: ; preds = %lpad149.loopexit.split-lp.i.i.i, %lpad149.loopexit.i.i.i + %lpad.phi462.i.i.i = phi { ptr, i32 } [ %lpad.loopexit460.i.i.i, %lpad149.loopexit.i.i.i ], [ %lpad.loopexit.split-lp461.i.i.i, %lpad149.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2.i.i.i) #18 + br label %ehcleanup.i.i.i + +if.end169.i.i.i: ; preds = %if.then2.i.i.i261.i.i.i, %if.then.i.i.i256.i.i.i, %if.end.i254.i.i.i + store ptr %462, ptr %m_r.i92.i.i, align 8 + %this.val53.i93.i.i = load ptr, ptr %28, align 8 + store ptr null, ptr %pr2.i.i.i, align 8 + store ptr %this.val53.i93.i.i, ptr %m_manager.i263.i.i.i, align 8 + %467 = load i32, ptr %m_spos.i69.i.i, align 4 + %468 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i282.i94.i.i = icmp eq ptr %468, null + br i1 %cmp.i.i.i282.i94.i.i, label %invoke.cont172.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i95.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i.i95.i.i: ; preds = %if.end169.i.i.i + %arrayidx.i.i.i285.i.i.i = getelementptr inbounds i32, ptr %468, i64 -1 + %469 = load i32, ptr %arrayidx.i.i.i285.i.i.i, align 4 + %470 = zext i32 %469 to i64 + %add.ptr.i.i286.i.i.i = getelementptr inbounds ptr, ptr %468, i64 %470 + %cmp3.i.i287.i.i.i = icmp ugt i32 %469, %467 + br i1 %cmp3.i.i287.i.i.i, label %for.body.i.i290.preheader.i.i.i, label %if.then.i.i288.i.i.i + +for.body.i.i290.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i95.i.i + %idx.ext.i283.i.i.i = zext i32 %467 to i64 + %add.ptr.i284.i.i.i = getelementptr inbounds ptr, ptr %468, i64 %idx.ext.i283.i.i.i + br label %for.body.i.i290.i.i.i + +for.body.i.i290.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i124.i.i, %for.body.i.i290.preheader.i.i.i + %it.04.i.i291.i.i.i = phi ptr [ %incdec.ptr.i.i297.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i124.i.i ], [ %add.ptr.i284.i.i.i, %for.body.i.i290.preheader.i.i.i ] + %471 = load ptr, ptr %it.04.i.i291.i.i.i, align 8 + %472 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i292.i.i.i = icmp eq ptr %471, null + br i1 %tobool.not.i.i.i.i.i292.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i124.i.i, label %if.then.i.i.i.i.i293.i.i.i + +if.then.i.i.i.i.i293.i.i.i: ; preds = %for.body.i.i290.i.i.i + %m_ref_count.i.i.i.i.i.i294.i.i.i = getelementptr inbounds %class.ast, ptr %471, i64 0, i32 2 + %473 = load i32, ptr %m_ref_count.i.i.i.i.i.i294.i.i.i, align 4 + %dec.i.i.i.i.i.i295.i.i.i = add i32 %473, -1 + store i32 %dec.i.i.i.i.i.i295.i.i.i, ptr %m_ref_count.i.i.i.i.i.i294.i.i.i, align 4 + %cmp.i.i.i.i.i296.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i295.i.i.i, 0 + br i1 %cmp.i.i.i.i.i296.i.i.i, label %if.then2.i.i.i.i.i301.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i124.i.i + +if.then2.i.i.i.i.i301.i.i.i: ; preds = %if.then.i.i.i.i.i293.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %472, ptr noundef nonnull %471) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i124.i.i unwind label %lpad149.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i124.i.i: ; preds = %if.then2.i.i.i.i.i301.i.i.i, %if.then.i.i.i.i.i293.i.i.i, %for.body.i.i290.i.i.i + %incdec.ptr.i.i297.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i291.i.i.i, i64 1 + %cmp.i.i298.i.i.i = icmp ult ptr %incdec.ptr.i.i297.i.i.i, %add.ptr.i.i286.i.i.i + br i1 %cmp.i.i298.i.i.i, label %for.body.i.i290.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i125.i.i, !llvm.loop !18 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i125.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i124.i.i + %.pre.i299.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i300.i.i.i = icmp eq ptr %.pre.i299.i.i.i, null + br i1 %tobool.not.i.i300.i.i.i, label %invoke.cont172.i.i.i, label %if.then.i.i288.i.i.i + +if.then.i.i288.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i125.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i95.i.i + %474 = phi ptr [ %.pre.i299.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i125.i.i ], [ %468, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i95.i.i ] + %arrayidx.i.i289.i.i.i = getelementptr inbounds i32, ptr %474, i64 -1 + store i32 %467, ptr %arrayidx.i.i289.i.i.i, align 4 + br label %invoke.cont172.i.i.i + +invoke.cont172.i.i.i: ; preds = %if.then.i.i288.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i125.i.i, %if.end169.i.i.i + %475 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i.i.i.i.i96.i.i = icmp eq ptr %475, null + br i1 %tobool.not.i.i.i.i.i96.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i99.i.i, label %if.then.i.i.i.i304.i.i.i + +if.then.i.i.i.i304.i.i.i: ; preds = %invoke.cont172.i.i.i + %m_ref_count.i.i.i.i.i.i97.i.i = getelementptr inbounds %class.ast, ptr %475, i64 0, i32 2 + %476 = load i32, ptr %m_ref_count.i.i.i.i.i.i97.i.i, align 4 + %inc.i.i.i.i.i.i98.i.i = add i32 %476, 1 + store i32 %inc.i.i.i.i.i.i98.i.i, ptr %m_ref_count.i.i.i.i.i.i97.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i99.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i99.i.i: ; preds = %if.then.i.i.i.i304.i.i.i, %invoke.cont172.i.i.i + %477 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i306.i.i.i = icmp eq ptr %477, null + br i1 %cmp.i.i306.i.i.i, label %if.then.i.i310.i.i.i, label %lor.lhs.false.i.i.i100.i.i + +lor.lhs.false.i.i.i100.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i99.i.i + %arrayidx.i.i307.i.i.i = getelementptr inbounds i32, ptr %477, i64 -1 + %478 = load i32, ptr %arrayidx.i.i307.i.i.i, align 4 + %arrayidx4.i.i.i101.i.i = getelementptr inbounds i32, ptr %477, i64 -2 + %479 = load i32, ptr %arrayidx4.i.i.i101.i.i, align 4 + %cmp5.i.i.i102.i.i = icmp eq i32 %478, %479 + br i1 %cmp5.i.i.i102.i.i, label %if.then.i.i310.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + +if.then.i.i310.i.i.i: ; preds = %lor.lhs.false.i.i.i100.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i99.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc311.i.i.i unwind label %lpad149.loopexit.split-lp.i.i.i + +.noexc311.i.i.i: ; preds = %if.then.i.i310.i.i.i + %.pre.i.i.i121.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i122.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i121.i.i, i64 -1 + %.pre1.i.i.i123.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i122.i.i, align 4 + br label %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + +_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i: ; preds = %.noexc311.i.i.i, %lor.lhs.false.i.i.i100.i.i + %480 = phi i32 [ %.pre1.i.i.i123.i.i, %.noexc311.i.i.i ], [ %478, %lor.lhs.false.i.i.i100.i.i ] + %481 = phi ptr [ %.pre.i.i.i121.i.i, %.noexc311.i.i.i ], [ %477, %lor.lhs.false.i.i.i100.i.i ] + %idx.ext.i.i308.i.i.i = zext i32 %480 to i64 + %add.ptr.i.i309.i.i.i = getelementptr inbounds ptr, ptr %481, i64 %idx.ext.i.i308.i.i.i + store ptr %475, ptr %add.ptr.i.i309.i.i.i, align 8 + %482 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i.i103.i.i = getelementptr inbounds i32, ptr %482, i64 -1 + %483 = load i32, ptr %arrayidx10.i.i.i103.i.i, align 4 + %inc.i.i.i104.i.i = add i32 %483, 1 + store i32 %inc.i.i.i104.i.i, ptr %arrayidx10.i.i.i103.i.i, align 4 + br i1 %tobool.not.i.i185.i.i.i, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i, label %if.then.i.i.i320.i.i.i + +if.then.i.i.i320.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + %m_ref_count.i.i.i.i322.i.i.i = getelementptr inbounds %class.ast, ptr %call93.i.i.i, i64 0, i32 2 + %484 = load i32, ptr %m_ref_count.i.i.i.i322.i.i.i, align 4 + %dec.i.i.i.i323.i.i.i = add i32 %484, -1 + store i32 %dec.i.i.i.i323.i.i.i, ptr %m_ref_count.i.i.i.i322.i.i.i, align 4 + %cmp.i.i.i324.i.i.i = icmp eq i32 %dec.i.i.i.i323.i.i.i, 0 + br i1 %cmp.i.i.i324.i.i.i, label %if.then2.i.i.i325.i.i.i, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + +if.then2.i.i.i325.i.i.i: ; preds = %if.then.i.i.i320.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val57.i84.i.i, ptr noundef nonnull %call93.i.i.i) + to label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i unwind label %terminate.lpad.i326.i.i.i + +terminate.lpad.i326.i.i.i: ; preds = %if.then2.i.i.i325.i.i.i + %485 = landingpad { ptr, i32 } catch ptr null - %485 = extractvalue { ptr, i32 } %484, 0 - call void @__clang_call_terminate(ptr %485) #19 + %486 = extractvalue { ptr, i32 } %485, 0 + tail call void @__clang_call_terminate(ptr %486) #19 unreachable -_ZN7obj_refI10quantifier11ast_managerED2Ev.exit: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit, %if.then.i.i.i652, %if.then2.i.i.i658 - %486 = load i32, ptr %m_spos.i54.i, align 4 - %487 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i628 = icmp eq ptr %487, null - br i1 %cmp.i.i.i628, label %invoke.cont181.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i: ; preds = %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - %arrayidx.i.i.i630 = getelementptr inbounds i32, ptr %487, i64 -1 - %488 = load i32, ptr %arrayidx.i.i.i630, align 4 - %489 = zext i32 %488 to i64 - %add.ptr.i.i631 = getelementptr inbounds ptr, ptr %487, i64 %489 - %cmp3.i.i632 = icmp ugt i32 %488, %486 - br i1 %cmp3.i.i632, label %for.body.i.i635.preheader, label %if.then.i.i633 - -for.body.i.i635.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - %idx.ext.i = zext i32 %486 to i64 - %add.ptr.i629 = getelementptr inbounds ptr, ptr %487, i64 %idx.ext.i - br label %for.body.i.i635 - -for.body.i.i635: ; preds = %for.body.i.i635.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i642 - %it.04.i.i636 = phi ptr [ %incdec.ptr.i.i643, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i642 ], [ %add.ptr.i629, %for.body.i.i635.preheader ] - %490 = load ptr, ptr %it.04.i.i636, align 8 - %491 = load ptr, ptr %m_result_stack.i956, align 8 - %tobool.not.i.i.i.i.i637 = icmp eq ptr %490, null - br i1 %tobool.not.i.i.i.i.i637, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i642, label %if.then.i.i.i.i.i638 - -if.then.i.i.i.i.i638: ; preds = %for.body.i.i635 - %m_ref_count.i.i.i.i.i.i639 = getelementptr inbounds %class.ast, ptr %490, i64 0, i32 2 - %492 = load i32, ptr %m_ref_count.i.i.i.i.i.i639, align 4 - %dec.i.i.i.i.i.i640 = add i32 %492, -1 - store i32 %dec.i.i.i.i.i.i640, ptr %m_ref_count.i.i.i.i.i.i639, align 4 - %cmp.i.i.i.i.i641 = icmp eq i32 %dec.i.i.i.i.i.i640, 0 - br i1 %cmp.i.i.i.i.i641, label %if.then2.i.i.i.i.i648, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i642 - -if.then2.i.i.i.i.i648: ; preds = %if.then.i.i.i.i.i638 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %491, ptr noundef nonnull %490) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i642 unwind label %lpad37.i.i.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i642: ; preds = %if.then2.i.i.i.i.i648, %if.then.i.i.i.i.i638, %for.body.i.i635 - %incdec.ptr.i.i643 = getelementptr inbounds ptr, ptr %it.04.i.i636, i64 1 - %cmp.i.i644 = icmp ult ptr %incdec.ptr.i.i643, %add.ptr.i.i631 - br i1 %cmp.i.i644, label %for.body.i.i635, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i645, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i645: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i642 - %.pre.i646 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i647 = icmp eq ptr %.pre.i646, null - br i1 %tobool.not.i.i647, label %invoke.cont181.i.i, label %if.then.i.i633 - -if.then.i.i633: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i645, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - %493 = phi ptr [ %.pre.i646, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i645 ], [ %487, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i ] - %arrayidx.i.i634 = getelementptr inbounds i32, ptr %493, i64 -1 - store i32 %486, ptr %arrayidx.i.i634, align 4 - br label %invoke.cont181.i.i - -invoke.cont181.i.i: ; preds = %if.then.i.i633, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i645, %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - %494 = load ptr, ptr %m_r.i72.i, align 8 - %tobool.not.i.i.i.i613 = icmp eq ptr %494, null - br i1 %tobool.not.i.i.i.i613, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i614 - -if.then.i.i.i.i614: ; preds = %invoke.cont181.i.i - %m_ref_count.i.i.i.i.i615 = getelementptr inbounds %class.ast, ptr %494, i64 0, i32 2 - %495 = load i32, ptr %m_ref_count.i.i.i.i.i615, align 4 - %inc.i.i.i.i.i = add i32 %495, 1 - store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i615, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %if.then.i.i.i.i614, %invoke.cont181.i.i - %496 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i617 = icmp eq ptr %496, null - br i1 %cmp.i.i617, label %if.then.i.i622, label %lor.lhs.false.i.i - -lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - %arrayidx.i.i618 = getelementptr inbounds i32, ptr %496, i64 -1 - %497 = load i32, ptr %arrayidx.i.i618, align 4 - %arrayidx4.i.i = getelementptr inbounds i32, ptr %496, i64 -2 - %498 = load i32, ptr %arrayidx4.i.i, align 4 - %cmp5.i.i = icmp eq i32 %497, %498 - br i1 %cmp5.i.i, label %if.then.i.i622, label %invoke.cont185.i.i - -if.then.i.i622: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc625 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc625: ; preds = %if.then.i.i622 - %.pre.i.i623 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i623, i64 -1 - %.pre1.i.i624 = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 - br label %invoke.cont185.i.i - -invoke.cont185.i.i: ; preds = %.noexc625, %lor.lhs.false.i.i - %499 = phi i32 [ %.pre1.i.i624, %.noexc625 ], [ %497, %lor.lhs.false.i.i ] - %500 = phi ptr [ %.pre.i.i623, %.noexc625 ], [ %496, %lor.lhs.false.i.i ] - %idx.ext.i.i619 = zext i32 %499 to i64 - %add.ptr.i.i620 = getelementptr inbounds ptr, ptr %500, i64 %idx.ext.i.i619 - store ptr %494, ptr %add.ptr.i.i620, align 8 - %501 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i = getelementptr inbounds i32, ptr %501, i64 -1 - %502 = load i32, ptr %arrayidx10.i.i, align 4 - %inc.i.i621 = add i32 %502, 1 - store i32 %inc.i.i621, ptr %arrayidx10.i.i, align 4 - %503 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i609 = icmp eq ptr %503, null - br i1 %cmp.i609, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit, label %if.then.i606 - -if.then.i606: ; preds = %invoke.cont185.i.i - %arrayidx.i611 = getelementptr inbounds i32, ptr %503, i64 -1 - %504 = load i32, ptr %arrayidx.i611, align 4 - %sub.i75.i = sub i32 %504, %350 - store i32 %sub.i75.i, ptr %arrayidx.i611, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit: ; preds = %invoke.cont185.i.i, %if.then.i606 - %505 = load ptr, ptr %m_shifts.i.i, align 8 - %cmp.i602 = icmp eq ptr %505, null - br i1 %cmp.i602, label %_ZN6vectorIjLb0EjE6shrinkEj.exit, label %if.then.i599 - -if.then.i599: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit - %arrayidx.i604 = getelementptr inbounds i32, ptr %505, i64 -1 - %506 = load i32, ptr %arrayidx.i604, align 4 - %sub194.i.i = sub i32 %506, %350 - store i32 %sub194.i.i, ptr %arrayidx.i604, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit - -_ZN6vectorIjLb0EjE6shrinkEj.exit: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit, %if.then.i599 +_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i: ; preds = %if.then2.i.i.i325.i.i.i, %if.then.i.i.i320.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + %487 = load i32, ptr %m_spos.i69.i.i, align 4 + %488 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i329.i.i.i = icmp eq ptr %488, null + br i1 %cmp.i.i.i329.i.i.i, label %invoke.cont181.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i: ; preds = %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + %arrayidx.i.i.i333.i.i.i = getelementptr inbounds i32, ptr %488, i64 -1 + %489 = load i32, ptr %arrayidx.i.i.i333.i.i.i, align 4 + %490 = zext i32 %489 to i64 + %add.ptr.i.i334.i.i.i = getelementptr inbounds ptr, ptr %488, i64 %490 + %cmp3.i.i335.i.i.i = icmp ugt i32 %489, %487 + br i1 %cmp3.i.i335.i.i.i, label %for.body.i.i338.preheader.i.i.i, label %if.then.i.i336.i.i.i + +for.body.i.i338.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + %idx.ext.i331.i.i.i = zext i32 %487 to i64 + %add.ptr.i332.i.i.i = getelementptr inbounds ptr, ptr %488, i64 %idx.ext.i331.i.i.i + br label %for.body.i.i338.i.i.i + +for.body.i.i338.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i, %for.body.i.i338.preheader.i.i.i + %it.04.i.i339.i.i.i = phi ptr [ %incdec.ptr.i.i346.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i ], [ %add.ptr.i332.i.i.i, %for.body.i.i338.preheader.i.i.i ] + %491 = load ptr, ptr %it.04.i.i339.i.i.i, align 8 + %492 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i340.i.i.i = icmp eq ptr %491, null + br i1 %tobool.not.i.i.i.i.i340.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i, label %if.then.i.i.i.i.i341.i.i.i + +if.then.i.i.i.i.i341.i.i.i: ; preds = %for.body.i.i338.i.i.i + %m_ref_count.i.i.i.i.i.i342.i.i.i = getelementptr inbounds %class.ast, ptr %491, i64 0, i32 2 + %493 = load i32, ptr %m_ref_count.i.i.i.i.i.i342.i.i.i, align 4 + %dec.i.i.i.i.i.i343.i.i.i = add i32 %493, -1 + store i32 %dec.i.i.i.i.i.i343.i.i.i, ptr %m_ref_count.i.i.i.i.i.i342.i.i.i, align 4 + %cmp.i.i.i.i.i344.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i343.i.i.i, 0 + br i1 %cmp.i.i.i.i.i344.i.i.i, label %if.then2.i.i.i.i.i351.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i + +if.then2.i.i.i.i.i351.i.i.i: ; preds = %if.then.i.i.i.i.i341.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %492, ptr noundef nonnull %491) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i unwind label %lpad37.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i: ; preds = %if.then2.i.i.i.i.i351.i.i.i, %if.then.i.i.i.i.i341.i.i.i, %for.body.i.i338.i.i.i + %incdec.ptr.i.i346.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i339.i.i.i, i64 1 + %cmp.i.i347.i.i.i = icmp ult ptr %incdec.ptr.i.i346.i.i.i, %add.ptr.i.i334.i.i.i + br i1 %cmp.i.i347.i.i.i, label %for.body.i.i338.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i + %.pre.i349.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i350.i.i.i = icmp eq ptr %.pre.i349.i.i.i, null + br i1 %tobool.not.i.i350.i.i.i, label %invoke.cont181.i.i.i, label %if.then.i.i336.i.i.i + +if.then.i.i336.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + %494 = phi ptr [ %.pre.i349.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i ], [ %488, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i ] + %arrayidx.i.i337.i.i.i = getelementptr inbounds i32, ptr %494, i64 -1 + store i32 %487, ptr %arrayidx.i.i337.i.i.i, align 4 + br label %invoke.cont181.i.i.i + +invoke.cont181.i.i.i: ; preds = %if.then.i.i336.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + %495 = load ptr, ptr %m_r.i92.i.i, align 8 + %tobool.not.i.i.i.i355.i.i.i = icmp eq ptr %495, null + br i1 %tobool.not.i.i.i.i355.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i105.i.i, label %if.then.i.i.i.i356.i.i.i + +if.then.i.i.i.i356.i.i.i: ; preds = %invoke.cont181.i.i.i + %m_ref_count.i.i.i.i.i357.i.i.i = getelementptr inbounds %class.ast, ptr %495, i64 0, i32 2 + %496 = load i32, ptr %m_ref_count.i.i.i.i.i357.i.i.i, align 4 + %inc.i.i.i.i.i358.i.i.i = add i32 %496, 1 + store i32 %inc.i.i.i.i.i358.i.i.i, ptr %m_ref_count.i.i.i.i.i357.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i105.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i105.i.i: ; preds = %if.then.i.i.i.i356.i.i.i, %invoke.cont181.i.i.i + %497 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i360.i.i.i = icmp eq ptr %497, null + br i1 %cmp.i.i360.i.i.i, label %if.then.i.i369.i.i.i, label %lor.lhs.false.i.i361.i.i.i + +lor.lhs.false.i.i361.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i105.i.i + %arrayidx.i.i362.i.i.i = getelementptr inbounds i32, ptr %497, i64 -1 + %498 = load i32, ptr %arrayidx.i.i362.i.i.i, align 4 + %arrayidx4.i.i363.i.i.i = getelementptr inbounds i32, ptr %497, i64 -2 + %499 = load i32, ptr %arrayidx4.i.i363.i.i.i, align 4 + %cmp5.i.i364.i.i.i = icmp eq i32 %498, %499 + br i1 %cmp5.i.i364.i.i.i, label %if.then.i.i369.i.i.i, label %invoke.cont185.i.i.i + +if.then.i.i369.i.i.i: ; preds = %lor.lhs.false.i.i361.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i105.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc373.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc373.i.i.i: ; preds = %if.then.i.i369.i.i.i + %.pre.i.i370.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i371.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i370.i.i.i, i64 -1 + %.pre1.i.i372.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i371.i.i.i, align 4 + br label %invoke.cont185.i.i.i + +invoke.cont185.i.i.i: ; preds = %.noexc373.i.i.i, %lor.lhs.false.i.i361.i.i.i + %500 = phi i32 [ %.pre1.i.i372.i.i.i, %.noexc373.i.i.i ], [ %498, %lor.lhs.false.i.i361.i.i.i ] + %501 = phi ptr [ %.pre.i.i370.i.i.i, %.noexc373.i.i.i ], [ %497, %lor.lhs.false.i.i361.i.i.i ] + %idx.ext.i.i365.i.i.i = zext i32 %500 to i64 + %add.ptr.i.i366.i.i.i = getelementptr inbounds ptr, ptr %501, i64 %idx.ext.i.i365.i.i.i + store ptr %495, ptr %add.ptr.i.i366.i.i.i, align 8 + %502 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i367.i.i.i = getelementptr inbounds i32, ptr %502, i64 -1 + %503 = load i32, ptr %arrayidx10.i.i367.i.i.i, align 4 + %inc.i.i368.i.i.i = add i32 %503, 1 + store i32 %inc.i.i368.i.i.i, ptr %arrayidx10.i.i367.i.i.i, align 4 + %504 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i374.i.i.i = icmp eq ptr %504, null + br i1 %cmp.i374.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i, label %if.then.i380.i.i.i + +if.then.i380.i.i.i: ; preds = %invoke.cont185.i.i.i + %arrayidx.i376.i.i.i = getelementptr inbounds i32, ptr %504, i64 -1 + %505 = load i32, ptr %arrayidx.i376.i.i.i, align 4 + %sub.i106.i.i = sub i32 %505, %347 + store i32 %sub.i106.i.i, ptr %arrayidx.i376.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i: ; preds = %if.then.i380.i.i.i, %invoke.cont185.i.i.i + %506 = load ptr, ptr %m_shifts.i.i.i, align 8 + %cmp.i383.i.i.i = icmp eq ptr %506, null + br i1 %cmp.i383.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i, label %if.then.i388.i.i.i + +if.then.i388.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i + %arrayidx.i385.i.i.i = getelementptr inbounds i32, ptr %506, i64 -1 + %507 = load i32, ptr %arrayidx.i385.i.i.i, align 4 + %sub194.i.i.i = sub i32 %507, %347 + store i32 %sub194.i.i.i, ptr %arrayidx.i385.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i: ; preds = %if.then.i388.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont196.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont196.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit - %507 = load ptr, ptr %m_r.i72.i, align 8 - %bf.load203.i.i = load i32, ptr %90, align 8 - %bf.clear204.i.i = and i32 %bf.load203.i.i, 1 - %tobool.i76.i.not = icmp eq i32 %bf.clear204.i.i, 0 - br i1 %tobool.i76.i.not, label %invoke.cont205.i.i, label %if.then.i596 - -if.then.i596: ; preds = %invoke.cont196.i.i - %508 = load ptr, ptr %m_pr.i66.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %88, ptr noundef %507, ptr noundef %508) - to label %invoke.cont205.i.ithread-pre-split unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont205.i.ithread-pre-split: ; preds = %if.then.i596 - %.pr2793 = load ptr, ptr %m_r.i72.i, align 8 - br label %invoke.cont205.i.i - -invoke.cont205.i.i: ; preds = %invoke.cont205.i.ithread-pre-split, %invoke.cont196.i.i - %509 = phi ptr [ %.pr2793, %invoke.cont205.i.ithread-pre-split ], [ %507, %invoke.cont196.i.i ] - %tobool.not.i3.i586 = icmp eq ptr %509, null - br i1 %tobool.not.i3.i586, label %invoke.cont207.i.i, label %if.then.i.i.i587 - -if.then.i.i.i587: ; preds = %invoke.cont205.i.i - %510 = load ptr, ptr %m_manager.i.i736, align 8 - %m_ref_count.i.i.i.i589 = getelementptr inbounds %class.ast, ptr %509, i64 0, i32 2 - %511 = load i32, ptr %m_ref_count.i.i.i.i589, align 4 - %dec.i.i.i.i590 = add i32 %511, -1 - store i32 %dec.i.i.i.i590, ptr %m_ref_count.i.i.i.i589, align 4 - %cmp.i.i.i591 = icmp eq i32 %dec.i.i.i.i590, 0 - br i1 %cmp.i.i.i591, label %if.then2.i.i.i592, label %invoke.cont207.i.i - -if.then2.i.i.i592: ; preds = %if.then.i.i.i587 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %510, ptr noundef nonnull %509) - to label %invoke.cont207.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont207.i.i: ; preds = %if.then.i.i.i587, %invoke.cont205.i.i, %if.then2.i.i.i592 - store ptr null, ptr %m_r.i72.i, align 8 - %512 = load ptr, ptr %m_pr.i66.i, align 8 - %tobool.not.i3.i577 = icmp eq ptr %512, null - br i1 %tobool.not.i3.i577, label %invoke.cont210.i.i, label %if.then.i.i.i578 - -if.then.i.i.i578: ; preds = %invoke.cont207.i.i - %513 = load ptr, ptr %m_manager.i.i807, align 8 - %m_ref_count.i.i.i.i580 = getelementptr inbounds %class.ast, ptr %512, i64 0, i32 2 - %514 = load i32, ptr %m_ref_count.i.i.i.i580, align 4 - %dec.i.i.i.i581 = add i32 %514, -1 - store i32 %dec.i.i.i.i581, ptr %m_ref_count.i.i.i.i580, align 4 - %cmp.i.i.i582 = icmp eq i32 %dec.i.i.i.i581, 0 - br i1 %cmp.i.i.i582, label %if.then2.i.i.i583, label %invoke.cont210.i.i - -if.then2.i.i.i583: ; preds = %if.then.i.i.i578 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %513, ptr noundef nonnull %512) - to label %invoke.cont210.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont210.i.i: ; preds = %if.then.i.i.i578, %invoke.cont207.i.i, %if.then2.i.i.i583 - store ptr null, ptr %m_pr.i66.i, align 8 - %515 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i574 = getelementptr inbounds i32, ptr %515, i64 -1 - %516 = load i32, ptr %arrayidx.i574, align 4 - %dec.i = add i32 %516, -1 - store i32 %dec.i, ptr %arrayidx.i574, align 4 - %517 = load ptr, ptr %m_r.i72.i, align 8 - %this.val59.i77.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i = icmp eq ptr %88, %517 - %cmp.i.i.i569 = icmp eq ptr %this.val59.i77.i, null - %or.cond.i = select i1 %cmp.not.i, i1 true, i1 %cmp.i.i.i569 - br i1 %or.cond.i, label %invoke.cont216.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %invoke.cont210.i.i - %arrayidx.i.i.i570 = getelementptr inbounds i32, ptr %this.val59.i77.i, i64 -1 - %518 = load i32, ptr %arrayidx.i.i.i570, align 4 - %cmp3.i.i.i = icmp eq i32 %518, 0 - br i1 %cmp3.i.i.i, label %invoke.cont216.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - %519 = add i32 %518, -1 - %520 = zext i32 %519 to i64 - %m_new_child.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i77.i, i64 %520, i32 1 - %bf.load.i.i571 = load i32, ptr %m_new_child.i.i, align 8 - %bf.set.i.i572 = or i32 %bf.load.i.i571, 2 - store i32 %bf.set.i.i572, ptr %m_new_child.i.i, align 8 - br label %invoke.cont216.i.i - -invoke.cont216.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %invoke.cont210.i.i - %521 = load ptr, ptr %m_nodes.i.i903, align 8 - %cmp.i.i.i545 = icmp eq ptr %521, null - br i1 %cmp.i.i.i545, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit568, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i546 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i546: ; preds = %invoke.cont216.i.i - %arrayidx.i.i.i547 = getelementptr inbounds i32, ptr %521, i64 -1 - %522 = load i32, ptr %arrayidx.i.i.i547, align 4 - %523 = zext i32 %522 to i64 - %add.ptr.i.i548 = getelementptr inbounds ptr, ptr %521, i64 %523 - %cmp3.i.not.i.i549 = icmp eq i32 %522, 0 - br i1 %cmp3.i.not.i.i549, label %if.then.i.i.i.i.i563, label %for.body.i.i.i550 - -for.body.i.i.i550: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i546, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i557 - %it.04.i.i.i551 = phi ptr [ %incdec.ptr.i.i.i558, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i557 ], [ %521, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i546 ] - %524 = load ptr, ptr %it.04.i.i.i551, align 8 - %525 = load ptr, ptr %new_no_pats.i.i, align 8 - %tobool.not.i.i.i.i.i.i552 = icmp eq ptr %524, null - br i1 %tobool.not.i.i.i.i.i.i552, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i557, label %if.then.i.i.i.i.i.i553 - -if.then.i.i.i.i.i.i553: ; preds = %for.body.i.i.i550 - %m_ref_count.i.i.i.i.i.i.i554 = getelementptr inbounds %class.ast, ptr %524, i64 0, i32 2 - %526 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i554, align 4 - %dec.i.i.i.i.i.i.i555 = add i32 %526, -1 - store i32 %dec.i.i.i.i.i.i.i555, ptr %m_ref_count.i.i.i.i.i.i.i554, align 4 - %cmp.i.i.i.i.i.i556 = icmp eq i32 %dec.i.i.i.i.i.i.i555, 0 - br i1 %cmp.i.i.i.i.i.i556, label %if.then2.i.i.i.i.i.i566, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i557 - -if.then2.i.i.i.i.i.i566: ; preds = %if.then.i.i.i.i.i.i553 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %525, ptr noundef nonnull %524) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i557 unwind label %terminate.lpad.i.i567 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i557: ; preds = %if.then2.i.i.i.i.i.i566, %if.then.i.i.i.i.i.i553, %for.body.i.i.i550 - %incdec.ptr.i.i.i558 = getelementptr inbounds ptr, ptr %it.04.i.i.i551, i64 1 - %cmp.i1.i.i559 = icmp ult ptr %incdec.ptr.i.i.i558, %add.ptr.i.i548 - br i1 %cmp.i1.i.i559, label %for.body.i.i.i550, label %invoke.cont8.i.i560, !llvm.loop !17 - -invoke.cont8.i.i560: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i557 - %.pre.i.i561 = load ptr, ptr %m_nodes.i.i903, align 8 - %tobool.not.i.i.i.i.i562 = icmp eq ptr %.pre.i.i561, null - br i1 %tobool.not.i.i.i.i.i562, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit568, label %if.then.i.i.i.i.i563 - -if.then.i.i.i.i.i563: ; preds = %invoke.cont8.i.i560, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i546 - %527 = phi ptr [ %.pre.i.i561, %invoke.cont8.i.i560 ], [ %521, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i546 ] - %add.ptr.i.i.i.i.i.i564 = getelementptr inbounds i32, ptr %527, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i564) - to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit568 unwind label %terminate.lpad.i.i.i.i565 - -terminate.lpad.i.i.i.i565: ; preds = %if.then.i.i.i.i.i563 - %528 = landingpad { ptr, i32 } + to label %invoke.cont196.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont196.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i + %508 = load ptr, ptr %m_r.i92.i.i, align 8 + %bf.load203.i.i.i = load i32, ptr %90, align 8 + %bf.clear204.i.i.i = and i32 %bf.load203.i.i.i, 1 + %tobool.not.i107.i.i = icmp eq i32 %bf.clear204.i.i.i, 0 + br i1 %tobool.not.i107.i.i, label %invoke.cont205.i.i.i, label %if.then.i392.i.i.i + +if.then.i392.i.i.i: ; preds = %invoke.cont196.i.i.i + %509 = load ptr, ptr %m_pr.i87.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %88, ptr noundef %508, ptr noundef %509) + to label %invoke.cont205thread-pre-split.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont205thread-pre-split.i.i.i: ; preds = %if.then.i392.i.i.i + %.pr459.i.i.i = load ptr, ptr %m_r.i92.i.i, align 8 + br label %invoke.cont205.i.i.i + +invoke.cont205.i.i.i: ; preds = %invoke.cont205thread-pre-split.i.i.i, %invoke.cont196.i.i.i + %510 = phi ptr [ %.pr459.i.i.i, %invoke.cont205thread-pre-split.i.i.i ], [ %508, %invoke.cont196.i.i.i ] + %tobool.not.i3.i395.i.i.i = icmp eq ptr %510, null + br i1 %tobool.not.i3.i395.i.i.i, label %invoke.cont207.i.i.i, label %if.then.i.i.i396.i.i.i + +if.then.i.i.i396.i.i.i: ; preds = %invoke.cont205.i.i.i + %511 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i398.i.i.i = getelementptr inbounds %class.ast, ptr %510, i64 0, i32 2 + %512 = load i32, ptr %m_ref_count.i.i.i.i398.i.i.i, align 4 + %dec.i.i.i.i399.i.i.i = add i32 %512, -1 + store i32 %dec.i.i.i.i399.i.i.i, ptr %m_ref_count.i.i.i.i398.i.i.i, align 4 + %cmp.i.i.i400.i.i.i = icmp eq i32 %dec.i.i.i.i399.i.i.i, 0 + br i1 %cmp.i.i.i400.i.i.i, label %if.then2.i.i.i401.i.i.i, label %invoke.cont207.i.i.i + +if.then2.i.i.i401.i.i.i: ; preds = %if.then.i.i.i396.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %511, ptr noundef nonnull %510) + to label %invoke.cont207.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont207.i.i.i: ; preds = %if.then2.i.i.i401.i.i.i, %if.then.i.i.i396.i.i.i, %invoke.cont205.i.i.i + store ptr null, ptr %m_r.i92.i.i, align 8 + %513 = load ptr, ptr %m_pr.i87.i.i, align 8 + %tobool.not.i3.i405.i.i.i = icmp eq ptr %513, null + br i1 %tobool.not.i3.i405.i.i.i, label %invoke.cont210.i.i.i, label %if.then.i.i.i406.i.i.i + +if.then.i.i.i406.i.i.i: ; preds = %invoke.cont207.i.i.i + %514 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i408.i.i.i = getelementptr inbounds %class.ast, ptr %513, i64 0, i32 2 + %515 = load i32, ptr %m_ref_count.i.i.i.i408.i.i.i, align 4 + %dec.i.i.i.i409.i.i.i = add i32 %515, -1 + store i32 %dec.i.i.i.i409.i.i.i, ptr %m_ref_count.i.i.i.i408.i.i.i, align 4 + %cmp.i.i.i410.i.i.i = icmp eq i32 %dec.i.i.i.i409.i.i.i, 0 + br i1 %cmp.i.i.i410.i.i.i, label %if.then2.i.i.i411.i.i.i, label %invoke.cont210.i.i.i + +if.then2.i.i.i411.i.i.i: ; preds = %if.then.i.i.i406.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %514, ptr noundef nonnull %513) + to label %invoke.cont210.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont210.i.i.i: ; preds = %if.then2.i.i.i411.i.i.i, %if.then.i.i.i406.i.i.i, %invoke.cont207.i.i.i + store ptr null, ptr %m_pr.i87.i.i, align 8 + %516 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i414.i.i.i = getelementptr inbounds i32, ptr %516, i64 -1 + %517 = load i32, ptr %arrayidx.i414.i.i.i, align 4 + %dec.i.i109.i.i = add i32 %517, -1 + store i32 %dec.i.i109.i.i, ptr %arrayidx.i414.i.i.i, align 4 + %518 = load ptr, ptr %m_r.i92.i.i, align 8 + %this.val59.i110.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i111.i.i = icmp eq ptr %518, %88 + %cmp.i.i.i415.i112.i.i = icmp eq ptr %this.val59.i110.i.i, null + %or.cond.i.i113.i.i = select i1 %cmp.not.i.i111.i.i, i1 true, i1 %cmp.i.i.i415.i112.i.i + br i1 %or.cond.i.i113.i.i, label %invoke.cont216.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i114.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i114.i.i: ; preds = %invoke.cont210.i.i.i + %arrayidx.i.i.i416.i115.i.i = getelementptr inbounds i32, ptr %this.val59.i110.i.i, i64 -1 + %519 = load i32, ptr %arrayidx.i.i.i416.i115.i.i, align 4 + %cmp3.i.i.i.i116.i.i = icmp eq i32 %519, 0 + br i1 %cmp3.i.i.i.i116.i.i, label %invoke.cont216.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i117.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i117.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i114.i.i + %520 = add i32 %519, -1 + %521 = zext i32 %520 to i64 + %m_new_child.i.i.i118.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i110.i.i, i64 %521, i32 1 + %bf.load.i.i.i.i.i = load i32, ptr %m_new_child.i.i.i118.i.i, align 8 + %bf.set.i.i.i119.i.i = or i32 %bf.load.i.i.i.i.i, 2 + store i32 %bf.set.i.i.i119.i.i, ptr %m_new_child.i.i.i118.i.i, align 8 + br label %invoke.cont216.i.i.i + +invoke.cont216.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i117.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i114.i.i, %invoke.cont210.i.i.i + %522 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i419.i.i.i = icmp eq ptr %522, null + br i1 %cmp.i.i.i419.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i: ; preds = %invoke.cont216.i.i.i + %arrayidx.i.i.i420.i.i.i = getelementptr inbounds i32, ptr %522, i64 -1 + %523 = load i32, ptr %arrayidx.i.i.i420.i.i.i, align 4 + %524 = zext i32 %523 to i64 + %add.ptr.i.i421.i.i.i = getelementptr inbounds ptr, ptr %522, i64 %524 + %cmp3.i.not.i.i.i.i.i = icmp eq i32 %523, 0 + br i1 %cmp3.i.not.i.i.i.i.i, label %if.then.i.i.i.i.i427.i.i.i, label %for.body.i.i.i.i.i.i + +for.body.i.i.i.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + %it.04.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i ], [ %522, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i ] + %525 = load ptr, ptr %it.04.i.i.i.i.i.i, align 8 + %526 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i422.i.i.i = icmp eq ptr %525, null + br i1 %tobool.not.i.i.i.i.i.i422.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i423.i.i.i + +if.then.i.i.i.i.i.i423.i.i.i: ; preds = %for.body.i.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i424.i.i.i = getelementptr inbounds %class.ast, ptr %525, i64 0, i32 2 + %527 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i424.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i.i = add i32 %527, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i424.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i423.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %526, ptr noundef nonnull %525) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i unwind label %terminate.lpad.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i423.i.i.i, %for.body.i.i.i.i.i.i + %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i.i, i64 1 + %cmp.i1.i.i.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i.i, %add.ptr.i.i421.i.i.i + br i1 %cmp.i1.i.i.i.i.i, label %for.body.i.i.i.i.i.i, label %invoke.cont8.i.i.i.i.i, !llvm.loop !17 + +invoke.cont8.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + %.pre.i.i425.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %tobool.not.i.i.i.i.i426.i.i.i = icmp eq ptr %.pre.i.i425.i.i.i, null + br i1 %tobool.not.i.i.i.i.i426.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i, label %if.then.i.i.i.i.i427.i.i.i + +if.then.i.i.i.i.i427.i.i.i: ; preds = %invoke.cont8.i.i.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i + %528 = phi ptr [ %.pre.i.i425.i.i.i, %invoke.cont8.i.i.i.i.i ], [ %522, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i ] + %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %528, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i.i.i.i) + to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i unwind label %terminate.lpad.i.i.i.i.i.i.i + +terminate.lpad.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i427.i.i.i + %529 = landingpad { ptr, i32 } catch ptr null - %529 = extractvalue { ptr, i32 } %528, 0 - call void @__clang_call_terminate(ptr %529) #19 + %530 = extractvalue { ptr, i32 } %529, 0 + tail call void @__clang_call_terminate(ptr %530) #19 unreachable -terminate.lpad.i.i567: ; preds = %if.then2.i.i.i.i.i.i566 - %530 = landingpad { ptr, i32 } +terminate.lpad.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i.i + %531 = landingpad { ptr, i32 } catch ptr null - %531 = extractvalue { ptr, i32 } %530, 0 - call void @__clang_call_terminate(ptr %531) #19 + %532 = extractvalue { ptr, i32 } %531, 0 + tail call void @__clang_call_terminate(ptr %532) #19 unreachable -_ZN10ref_vectorI4expr11ast_managerED2Ev.exit568: ; preds = %invoke.cont216.i.i, %invoke.cont8.i.i560, %if.then.i.i.i.i.i563 - %532 = load ptr, ptr %m_nodes.i.i918, align 8 - %cmp.i.i.i538 = icmp eq ptr %532, null - br i1 %cmp.i.i.i538, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit568 - %arrayidx.i.i.i539 = getelementptr inbounds i32, ptr %532, i64 -1 - %533 = load i32, ptr %arrayidx.i.i.i539, align 4 - %534 = zext i32 %533 to i64 - %add.ptr.i.i540 = getelementptr inbounds ptr, ptr %532, i64 %534 - %cmp3.i.not.i.i = icmp eq i32 %533, 0 - br i1 %cmp3.i.not.i.i, label %if.then.i.i.i.i.i543, label %for.body.i.i.i - -for.body.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %it.04.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i ], [ %532, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %535 = load ptr, ptr %it.04.i.i.i, align 8 - %536 = load ptr, ptr %new_pats.i.i, align 8 - %tobool.not.i.i.i.i.i.i = icmp eq ptr %535, null - br i1 %tobool.not.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %for.body.i.i.i - %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %535, i64 0, i32 2 - %537 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 - %dec.i.i.i.i.i.i.i = add i32 %537, -1 - store i32 %dec.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 - %cmp.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - -if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %536, ptr noundef nonnull %535) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i unwind label %terminate.lpad.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %for.body.i.i.i - %incdec.ptr.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i, i64 1 - %cmp.i1.i.i = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i540 - br i1 %cmp.i1.i.i, label %for.body.i.i.i, label %invoke.cont8.i.i, !llvm.loop !17 - -invoke.cont8.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %.pre.i.i541 = load ptr, ptr %m_nodes.i.i918, align 8 - %tobool.not.i.i.i.i.i542 = icmp eq ptr %.pre.i.i541, null - br i1 %tobool.not.i.i.i.i.i542, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i.i.i543 - -if.then.i.i.i.i.i543: ; preds = %invoke.cont8.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - %538 = phi ptr [ %.pre.i.i541, %invoke.cont8.i.i ], [ %532, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %add.ptr.i.i.i.i.i.i = getelementptr inbounds i32, ptr %538, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i.i.i.i - -terminate.lpad.i.i.i.i: ; preds = %if.then.i.i.i.i.i543 - %539 = landingpad { ptr, i32 } +_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i: ; preds = %if.then.i.i.i.i.i427.i.i.i, %invoke.cont8.i.i.i.i.i, %invoke.cont216.i.i.i + %533 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i429.i.i.i = icmp eq ptr %533, null + br i1 %cmp.i.i.i429.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i + %arrayidx.i.i.i431.i.i.i = getelementptr inbounds i32, ptr %533, i64 -1 + %534 = load i32, ptr %arrayidx.i.i.i431.i.i.i, align 4 + %535 = zext i32 %534 to i64 + %add.ptr.i.i432.i.i.i = getelementptr inbounds ptr, ptr %533, i64 %535 + %cmp3.i.not.i.i433.i.i.i = icmp eq i32 %534, 0 + br i1 %cmp3.i.not.i.i433.i.i.i, label %if.then.i.i.i.i.i447.i.i.i, label %for.body.i.i.i434.i.i.i + +for.body.i.i.i434.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + %it.04.i.i.i435.i.i.i = phi ptr [ %incdec.ptr.i.i.i442.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i ], [ %533, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i ] + %536 = load ptr, ptr %it.04.i.i.i435.i.i.i, align 8 + %537 = load ptr, ptr %new_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i436.i.i.i = icmp eq ptr %536, null + br i1 %tobool.not.i.i.i.i.i.i436.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i, label %if.then.i.i.i.i.i.i437.i.i.i + +if.then.i.i.i.i.i.i437.i.i.i: ; preds = %for.body.i.i.i434.i.i.i + %m_ref_count.i.i.i.i.i.i.i438.i.i.i = getelementptr inbounds %class.ast, ptr %536, i64 0, i32 2 + %538 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i438.i.i.i, align 4 + %dec.i.i.i.i.i.i.i439.i.i.i = add i32 %538, -1 + store i32 %dec.i.i.i.i.i.i.i439.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i438.i.i.i, align 4 + %cmp.i.i.i.i.i.i440.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i439.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i440.i.i.i, label %if.then2.i.i.i.i.i.i450.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + +if.then2.i.i.i.i.i.i450.i.i.i: ; preds = %if.then.i.i.i.i.i.i437.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %537, ptr noundef nonnull %536) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i unwind label %terminate.lpad.i.i451.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i: ; preds = %if.then2.i.i.i.i.i.i450.i.i.i, %if.then.i.i.i.i.i.i437.i.i.i, %for.body.i.i.i434.i.i.i + %incdec.ptr.i.i.i442.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i435.i.i.i, i64 1 + %cmp.i1.i.i443.i.i.i = icmp ult ptr %incdec.ptr.i.i.i442.i.i.i, %add.ptr.i.i432.i.i.i + br i1 %cmp.i1.i.i443.i.i.i, label %for.body.i.i.i434.i.i.i, label %invoke.cont8.i.i444.i.i.i, !llvm.loop !17 + +invoke.cont8.i.i444.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + %.pre.i.i445.i.i.i = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i446.i.i.i = icmp eq ptr %.pre.i.i445.i.i.i, null + br i1 %tobool.not.i.i.i.i.i446.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i.i.i447.i.i.i + +if.then.i.i.i.i.i447.i.i.i: ; preds = %invoke.cont8.i.i444.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i + %539 = phi ptr [ %.pre.i.i445.i.i.i, %invoke.cont8.i.i444.i.i.i ], [ %533, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i ] + %add.ptr.i.i.i.i.i.i448.i.i.i = getelementptr inbounds i32, ptr %539, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i448.i.i.i) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i449.i.i.i + +terminate.lpad.i.i.i.i449.i.i.i: ; preds = %if.then.i.i.i.i.i447.i.i.i + %540 = landingpad { ptr, i32 } catch ptr null - %540 = extractvalue { ptr, i32 } %539, 0 - call void @__clang_call_terminate(ptr %540) #19 + %541 = extractvalue { ptr, i32 } %540, 0 + tail call void @__clang_call_terminate(ptr %541) #19 unreachable -terminate.lpad.i.i: ; preds = %if.then2.i.i.i.i.i.i - %541 = landingpad { ptr, i32 } +terminate.lpad.i.i451.i.i.i: ; preds = %if.then2.i.i.i.i.i.i450.i.i.i + %542 = landingpad { ptr, i32 } catch ptr null - %542 = extractvalue { ptr, i32 } %541, 0 - call void @__clang_call_terminate(ptr %542) #19 + %543 = extractvalue { ptr, i32 } %542, 0 + tail call void @__clang_call_terminate(ptr %543) #19 unreachable -ehcleanup.i.i: ; preds = %lpad149.i.i, %lpad96.i.i - %.pn.i67.i = phi { ptr, i32 } [ %lpad.phi2863, %lpad149.i.i ], [ %456, %lpad96.i.i ] - call void @_ZN7obj_refI10quantifier11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_q.i.i) #18 - br label %ehcleanup217.i.i +ehcleanup.i.i.i: ; preds = %lpad149.i.i.i, %lpad96.i.i.i + %.pn.i90.i.i = phi { ptr, i32 } [ %lpad.phi462.i.i.i, %lpad149.i.i.i ], [ %457, %lpad96.i.i.i ] + call void @_ZN7obj_refI10quantifier11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_q.i.i.i) #18 + br label %ehcleanup217.i.i.i -ehcleanup217.i.i: ; preds = %lpad37.i.i.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit, %ehcleanup.i.i - %.pn50.i.i = phi { ptr, i32 } [ %.pn.i67.i, %ehcleanup.i.i ], [ %lpad.loopexit2858, %lpad37.i.i.loopexit ], [ %lpad.loopexit2864, %lpad37.i.i.loopexit.split-lp.loopexit ], [ %lpad.loopexit2867, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2870, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2873, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2874, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i) #18 - br label %ehcleanup218.i.i +ehcleanup217.i.i.i: ; preds = %ehcleanup.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.i.i.i + %.pn50.i.i.i = phi { ptr, i32 } [ %.pn.i90.i.i, %ehcleanup.i.i.i ], [ %lpad.loopexit.i120.i.i, %lpad37.loopexit.i.i.i ], [ %lpad.loopexit463.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit466.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit468.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit471.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit.split-lp.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i) #18 + br label %ehcleanup218.i.i.i -ehcleanup218.i.i: ; preds = %lpad.i914, %ehcleanup217.i.i - %.pn50.pn.i.i = phi { ptr, i32 } [ %.pn50.i.i, %ehcleanup217.i.i ], [ %405, %lpad.i914 ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i) #18 +ehcleanup218.i.i.i: ; preds = %ehcleanup217.i.i.i, %lpad.i117.i.body.i.i + %.pn50.pn.i.i.i = phi { ptr, i32 } [ %.pn50.i.i.i, %ehcleanup217.i.i.i ], [ %eh.lpad-body.i.i, %lpad.i117.i.body.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i) #18 br label %common.resume -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i: ; preds = %_ZNK10quantifier9get_childEj.exit, %if.then.i.i.i.i.i543, %invoke.cont8.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit568 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_q.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2.i.i) - br label %while.cond.i.backedgethread-pre-split - -sw.bb36.i: ; preds = %if.end31.i - %543 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i96.i = getelementptr inbounds i32, ptr %543, i64 -1 - %544 = load i32, ptr %arrayidx.i96.i, align 4 - %dec.i97.i = add i32 %544, -1 - store i32 %dec.i97.i, ptr %arrayidx.i96.i, align 4 - call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %88) - br label %while.cond.i.backedgethread-pre-split - -sw.default.i: ; preds = %if.end31.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 793, ptr noundef nonnull @.str.5) - call void @exit(i32 noundef 114) #19 +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i, %if.then.i.i.i.i.i447.i.i.i, %invoke.cont8.i.i444.i.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_q.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i + +sw.bb36.i.i: ; preds = %if.end31.i.i + %544 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i166.i.i = getelementptr inbounds i32, ptr %544, i64 -1 + %545 = load i32, ptr %arrayidx.i166.i.i, align 4 + %dec.i167.i.i = add i32 %545, -1 + store i32 %dec.i167.i.i, ptr %arrayidx.i166.i.i, align 4 + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %88) + br label %while.cond.backedgethread-pre-split.i.i + +sw.default.i.i: ; preds = %if.end31.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 793, ptr noundef nonnull @.str.5) + tail call void @exit(i32 noundef 114) #19 unreachable -while.end.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, %while.cond.i.backedge, %if.else.i - %m_result_stack.i98.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i99.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %545 = load ptr, ptr %m_nodes.i99.i, align 8 - %cmp.i.i.i100.i = icmp eq ptr %545, null - br i1 %cmp.i.i.i100.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i.i - -if.end.i.i.i.i: ; preds = %while.end.i - %arrayidx.i.i.i101.i = getelementptr inbounds i32, ptr %545, i64 -1 - %546 = load i32, ptr %arrayidx.i.i.i101.i, align 4 - %547 = add i32 %546, -1 - %548 = zext i32 %547 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i.i, %while.end.i - %retval.0.i.i.i.i = phi i64 [ %548, %if.end.i.i.i.i ], [ 4294967295, %while.end.i ] - %arrayidx.i1.i.i.i = getelementptr inbounds ptr, ptr %545, i64 %retval.0.i.i.i.i - %549 = load ptr, ptr %arrayidx.i1.i.i.i, align 8 - %tobool.not.i.i86 = icmp eq ptr %549, null - br i1 %tobool.not.i.i86, label %if.end.i102.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i - -_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %549, i64 0, i32 2 - %550 = load i32, ptr %m_ref_count.i.i.i.i, align 4 - %inc.i.i.i.i = add i32 %550, 1 - store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 - br label %if.end.i102.i - -if.end.i102.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %551 = load ptr, ptr %result, align 8 - %tobool.not.i3.i.i = icmp eq ptr %551, null - br i1 %tobool.not.i3.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %if.end.i102.i - %m_manager.i.i.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %552 = load ptr, ptr %m_manager.i.i.i, align 8 - %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %551, i64 0, i32 2 - %553 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 - %dec.i.i.i.i.i = add i32 %553, -1 - store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 - %cmp.i.i.i103.i = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i103.i, label %if.then2.i.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - -if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %552, ptr noundef nonnull %551) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.end.i102.i - store ptr %549, ptr %result, align 8 - %554 = load ptr, ptr %m_nodes.i99.i, align 8 - %cmp.i.i.i106.i = icmp eq ptr %554, null - br i1 %cmp.i.i.i106.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i107.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - %.pre.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i = add i32 %.pre.i.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - -if.end.i.i.i107.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - %arrayidx.i.i.i108.i = getelementptr inbounds i32, ptr %554, i64 -1 - %555 = load i32, ptr %arrayidx.i.i.i108.i, align 4 - %556 = add i32 %555, -1 - %557 = zext i32 %556 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i107.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i - %dec.i.pre-phi.i.i = phi i32 [ %.pre1.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %556, %if.end.i.i.i107.i ] - %retval.0.i.i.i109.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %557, %if.end.i.i.i107.i ] - %arrayidx.i1.i.i110.i = getelementptr inbounds ptr, ptr %554, i64 %retval.0.i.i.i109.i - %558 = load ptr, ptr %arrayidx.i1.i.i110.i, align 8 - %arrayidx.i.i111.i = getelementptr inbounds i32, ptr %554, i64 -1 - store i32 %dec.i.pre-phi.i.i, ptr %arrayidx.i.i111.i, align 4 - %559 = load ptr, ptr %m_result_stack.i98.i, align 8 - %tobool.not.i.i.i.i112.i = icmp eq ptr %558, null - br i1 %tobool.not.i.i.i.i112.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i113.i - -if.then.i.i.i.i113.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - %m_ref_count.i.i.i.i.i114.i = getelementptr inbounds %class.ast, ptr %558, i64 0, i32 2 - %560 = load i32, ptr %m_ref_count.i.i.i.i.i114.i, align 4 - %dec.i.i.i.i.i.i87 = add i32 %560, -1 - store i32 %dec.i.i.i.i.i.i87, ptr %m_ref_count.i.i.i.i.i114.i, align 4 - %cmp.i.i.i.i.i88 = icmp eq i32 %dec.i.i.i.i.i.i87, 0 - br i1 %cmp.i.i.i.i.i88, label %if.then2.i.i.i.i.i92, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -if.then2.i.i.i.i.i92: ; preds = %if.then.i.i.i.i113.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %559, ptr noundef nonnull %558) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i.i92, %if.then.i.i.i.i113.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - %m_result_pr_stack.i115.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_nodes.i116.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %561 = load ptr, ptr %m_nodes.i116.i, align 8 - %cmp.i.i.i117.i = icmp eq ptr %561, null - br i1 %cmp.i.i.i117.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i118.i - -if.end.i.i.i118.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %arrayidx.i.i.i119.i = getelementptr inbounds i32, ptr %561, i64 -1 - %562 = load i32, ptr %arrayidx.i.i.i119.i, align 4 - %563 = add i32 %562, -1 - %564 = zext i32 %563 to i64 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i118.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %retval.0.i.i.i120.i = phi i64 [ %564, %if.end.i.i.i118.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i ] - %arrayidx.i1.i.i121.i = getelementptr inbounds ptr, ptr %561, i64 %retval.0.i.i.i120.i - %565 = load ptr, ptr %arrayidx.i1.i.i121.i, align 8 - %tobool.not.i122.i = icmp eq ptr %565, null - br i1 %tobool.not.i122.i, label %if.end.i126.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i123.i - -_ZN11ast_manager7inc_refEP3ast.exit.i123.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %m_ref_count.i.i.i124.i = getelementptr inbounds %class.ast, ptr %565, i64 0, i32 2 - %566 = load i32, ptr %m_ref_count.i.i.i124.i, align 4 - %inc.i.i.i125.i = add i32 %566, 1 - store i32 %inc.i.i.i125.i, ptr %m_ref_count.i.i.i124.i, align 4 - br label %if.end.i126.i - -if.end.i126.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i123.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %567 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i127.i = icmp eq ptr %567, null - br i1 %tobool.not.i3.i127.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i128.i - -if.then.i.i.i128.i: ; preds = %if.end.i126.i - %m_manager.i.i129.i = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 - %568 = load ptr, ptr %m_manager.i.i129.i, align 8 - %m_ref_count.i.i.i.i130.i = getelementptr inbounds %class.ast, ptr %567, i64 0, i32 2 - %569 = load i32, ptr %m_ref_count.i.i.i.i130.i, align 4 - %dec.i.i.i.i131.i = add i32 %569, -1 - store i32 %dec.i.i.i.i131.i, ptr %m_ref_count.i.i.i.i130.i, align 4 - %cmp.i.i.i132.i = icmp eq i32 %dec.i.i.i.i131.i, 0 - br i1 %cmp.i.i.i132.i, label %if.then2.i.i.i133.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - -if.then2.i.i.i133.i: ; preds = %if.then.i.i.i128.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %568, ptr noundef nonnull %567) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i133.i, %if.then.i.i.i128.i, %if.end.i126.i - store ptr %565, ptr %result_pr, align 8 - %570 = load ptr, ptr %m_nodes.i116.i, align 8 - %cmp.i.i.i136.i = icmp eq ptr %570, null - br i1 %cmp.i.i.i136.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i137.i - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - %.pre.i149.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i150.i = add i32 %.pre.i149.i, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - -if.end.i.i.i137.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - %arrayidx.i.i.i138.i = getelementptr inbounds i32, ptr %570, i64 -1 - %571 = load i32, ptr %arrayidx.i.i.i138.i, align 4 - %572 = add i32 %571, -1 - %573 = zext i32 %572 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - -_ZN6vectorIP3appLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i137.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i - %dec.i.pre-phi.i139.i = phi i32 [ %.pre1.i150.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %572, %if.end.i.i.i137.i ] - %retval.0.i.i.i140.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %573, %if.end.i.i.i137.i ] - %arrayidx.i1.i.i141.i = getelementptr inbounds ptr, ptr %570, i64 %retval.0.i.i.i140.i - %574 = load ptr, ptr %arrayidx.i1.i.i141.i, align 8 - %arrayidx.i.i142.i = getelementptr inbounds i32, ptr %570, i64 -1 - store i32 %dec.i.pre-phi.i139.i, ptr %arrayidx.i.i142.i, align 4 - %575 = load ptr, ptr %m_result_pr_stack.i115.i, align 8 - %tobool.not.i.i.i.i143.i = icmp eq ptr %574, null - br i1 %tobool.not.i.i.i.i143.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i144.i - -if.then.i.i.i.i144.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - %m_ref_count.i.i.i.i.i145.i = getelementptr inbounds %class.ast, ptr %574, i64 0, i32 2 - %576 = load i32, ptr %m_ref_count.i.i.i.i.i145.i, align 4 - %dec.i.i.i.i.i146.i = add i32 %576, -1 - store i32 %dec.i.i.i.i.i146.i, ptr %m_ref_count.i.i.i.i.i145.i, align 4 - %cmp.i.i.i.i147.i = icmp eq i32 %dec.i.i.i.i.i146.i, 0 - br i1 %cmp.i.i.i.i147.i, label %if.then2.i.i.i.i148.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -if.then2.i.i.i.i148.i: ; preds = %if.then.i.i.i.i144.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %575, ptr noundef nonnull %574) - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i148.i, %if.then.i.i.i.i144.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - %577 = load ptr, ptr %result_pr, align 8 - %cmp.i89 = icmp eq ptr %577, null - br i1 %cmp.i89, label %if.then48.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -if.then48.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %this.val.i90 = load ptr, ptr %28, align 8 - %578 = load ptr, ptr %m_root.i, align 8 - %call50.i = call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i90, ptr noundef %578) - %tobool.not.i151.i = icmp eq ptr %call50.i, null - br i1 %tobool.not.i151.i, label %if.end.i155.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i152.i - -_ZN11ast_manager7inc_refEP3ast.exit.i152.i: ; preds = %if.then48.i - %m_ref_count.i.i.i153.i = getelementptr inbounds %class.ast, ptr %call50.i, i64 0, i32 2 - %579 = load i32, ptr %m_ref_count.i.i.i153.i, align 4 - %inc.i.i.i154.i = add i32 %579, 1 - store i32 %inc.i.i.i154.i, ptr %m_ref_count.i.i.i153.i, align 4 - br label %if.end.i155.i - -if.end.i155.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i152.i, %if.then48.i - %580 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i156.i = icmp eq ptr %580, null - br i1 %tobool.not.i3.i156.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit163.i, label %if.then.i.i.i157.i - -if.then.i.i.i157.i: ; preds = %if.end.i155.i - %m_manager.i.i158.i = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 - %581 = load ptr, ptr %m_manager.i.i158.i, align 8 - %m_ref_count.i.i.i.i159.i = getelementptr inbounds %class.ast, ptr %580, i64 0, i32 2 - %582 = load i32, ptr %m_ref_count.i.i.i.i159.i, align 4 - %dec.i.i.i.i160.i = add i32 %582, -1 - store i32 %dec.i.i.i.i160.i, ptr %m_ref_count.i.i.i.i159.i, align 4 - %cmp.i.i.i161.i = icmp eq i32 %dec.i.i.i.i160.i, 0 - br i1 %cmp.i.i.i161.i, label %if.then2.i.i.i162.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit163.i - -if.then2.i.i.i162.i: ; preds = %if.then.i.i.i157.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %581, ptr noundef nonnull %580) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit163.i - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit163.i: ; preds = %if.then2.i.i.i162.i, %if.then.i.i.i157.i, %if.end.i155.i - store ptr %call50.i, ptr %result_pr, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -unreachable.i78: ; preds = %invoke.cont11.i +while.end.i.i: ; preds = %while.cond.backedge.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %if.else.i + %m_result_stack.i168.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i169.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %546 = load ptr, ptr %m_nodes.i169.i.i, align 8 + %cmp.i.i.i170.i.i = icmp eq ptr %546, null + br i1 %cmp.i.i.i170.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i, label %if.end.i.i.i171.i.i + +if.end.i.i.i171.i.i: ; preds = %while.end.i.i + %arrayidx.i.i.i172.i.i = getelementptr inbounds i32, ptr %546, i64 -1 + %547 = load i32, ptr %arrayidx.i.i.i172.i.i, align 4 + %548 = add i32 %547, -1 + %549 = zext i32 %548 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i: ; preds = %if.end.i.i.i171.i.i, %while.end.i.i + %retval.0.i.i.i173.i.i = phi i64 [ %549, %if.end.i.i.i171.i.i ], [ 4294967295, %while.end.i.i ] + %arrayidx.i1.i.i.i.i = getelementptr inbounds ptr, ptr %546, i64 %retval.0.i.i.i173.i.i + %550 = load ptr, ptr %arrayidx.i1.i.i.i.i, align 8 + %tobool.not.i174.i.i = icmp eq ptr %550, null + br i1 %tobool.not.i174.i.i, label %if.end.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %m_ref_count.i.i.i.i98.i = getelementptr inbounds %class.ast, ptr %550, i64 0, i32 2 + %551 = load i32, ptr %m_ref_count.i.i.i.i98.i, align 4 + %inc.i.i.i175.i.i = add i32 %551, 1 + store i32 %inc.i.i.i175.i.i, ptr %m_ref_count.i.i.i.i98.i, align 4 + br label %if.end.i.i.i + +if.end.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %552 = load ptr, ptr %result, align 8 + %tobool.not.i3.i.i.i = icmp eq ptr %552, null + br i1 %tobool.not.i3.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i, label %if.then.i.i.i176.i.i + +if.then.i.i.i176.i.i: ; preds = %if.end.i.i.i + %m_manager.i.i177.i.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %553 = load ptr, ptr %m_manager.i.i177.i.i, align 8 + %m_ref_count.i.i.i.i178.i.i = getelementptr inbounds %class.ast, ptr %552, i64 0, i32 2 + %554 = load i32, ptr %m_ref_count.i.i.i.i178.i.i, align 4 + %dec.i.i.i.i179.i.i = add i32 %554, -1 + store i32 %dec.i.i.i.i179.i.i, ptr %m_ref_count.i.i.i.i178.i.i, align 4 + %cmp.i.i.i180.i.i = icmp eq i32 %dec.i.i.i.i179.i.i, 0 + br i1 %cmp.i.i.i180.i.i, label %if.then2.i.i.i181.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + +if.then2.i.i.i181.i.i: ; preds = %if.then.i.i.i176.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %553, ptr noundef nonnull %552) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i: ; preds = %if.then2.i.i.i181.i.i, %if.then.i.i.i176.i.i, %if.end.i.i.i + store ptr %550, ptr %result, align 8 + %555 = load ptr, ptr %m_nodes.i169.i.i, align 8 + %cmp.i.i.i184.i.i = icmp eq ptr %555, null + br i1 %cmp.i.i.i184.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i, label %if.end.i.i.i185.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + %.pre.i196.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i = add i32 %.pre.i196.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + +if.end.i.i.i185.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + %arrayidx.i.i.i186.i.i = getelementptr inbounds i32, ptr %555, i64 -1 + %556 = load i32, ptr %arrayidx.i.i.i186.i.i, align 4 + %557 = add i32 %556, -1 + %558 = zext i32 %557 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i185.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i + %dec.i.pre-phi.i.i.i = phi i32 [ %.pre1.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %557, %if.end.i.i.i185.i.i ] + %retval.0.i.i.i187.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %558, %if.end.i.i.i185.i.i ] + %arrayidx.i1.i.i188.i.i = getelementptr inbounds ptr, ptr %555, i64 %retval.0.i.i.i187.i.i + %559 = load ptr, ptr %arrayidx.i1.i.i188.i.i, align 8 + %arrayidx.i.i189.i.i = getelementptr inbounds i32, ptr %555, i64 -1 + store i32 %dec.i.pre-phi.i.i.i, ptr %arrayidx.i.i189.i.i, align 4 + %560 = load ptr, ptr %m_result_stack.i168.i.i, align 8 + %tobool.not.i.i.i.i190.i.i = icmp eq ptr %559, null + br i1 %tobool.not.i.i.i.i190.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i, label %if.then.i.i.i.i191.i.i + +if.then.i.i.i.i191.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + %m_ref_count.i.i.i.i.i192.i.i = getelementptr inbounds %class.ast, ptr %559, i64 0, i32 2 + %561 = load i32, ptr %m_ref_count.i.i.i.i.i192.i.i, align 4 + %dec.i.i.i.i.i193.i.i = add i32 %561, -1 + store i32 %dec.i.i.i.i.i193.i.i, ptr %m_ref_count.i.i.i.i.i192.i.i, align 4 + %cmp.i.i.i.i194.i.i = icmp eq i32 %dec.i.i.i.i.i193.i.i, 0 + br i1 %cmp.i.i.i.i194.i.i, label %if.then2.i.i.i.i195.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +if.then2.i.i.i.i195.i.i: ; preds = %if.then.i.i.i.i191.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %560, ptr noundef nonnull %559) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i: ; preds = %if.then2.i.i.i.i195.i.i, %if.then.i.i.i.i191.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + %m_result_pr_stack.i197.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_nodes.i198.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %562 = load ptr, ptr %m_nodes.i198.i.i, align 8 + %cmp.i.i.i199.i.i = icmp eq ptr %562, null + br i1 %cmp.i.i.i199.i.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i, label %if.end.i.i.i200.i.i + +if.end.i.i.i200.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %arrayidx.i.i.i201.i.i = getelementptr inbounds i32, ptr %562, i64 -1 + %563 = load i32, ptr %arrayidx.i.i.i201.i.i, align 4 + %564 = add i32 %563, -1 + %565 = zext i32 %564 to i64 + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i: ; preds = %if.end.i.i.i200.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %retval.0.i.i.i202.i.i = phi i64 [ %565, %if.end.i.i.i200.i.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i ] + %arrayidx.i1.i.i203.i.i = getelementptr inbounds ptr, ptr %562, i64 %retval.0.i.i.i202.i.i + %566 = load ptr, ptr %arrayidx.i1.i.i203.i.i, align 8 + %tobool.not.i204.i.i = icmp eq ptr %566, null + br i1 %tobool.not.i204.i.i, label %if.end.i208.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i205.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i205.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %m_ref_count.i.i.i206.i.i = getelementptr inbounds %class.ast, ptr %566, i64 0, i32 2 + %567 = load i32, ptr %m_ref_count.i.i.i206.i.i, align 4 + %inc.i.i.i207.i.i = add i32 %567, 1 + store i32 %inc.i.i.i207.i.i, ptr %m_ref_count.i.i.i206.i.i, align 4 + br label %if.end.i208.i.i + +if.end.i208.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i205.i.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %568 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i209.i.i = icmp eq ptr %568, null + br i1 %tobool.not.i3.i209.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i, label %if.then.i.i.i210.i.i + +if.then.i.i.i210.i.i: ; preds = %if.end.i208.i.i + %m_manager.i.i211.i.i = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 + %569 = load ptr, ptr %m_manager.i.i211.i.i, align 8 + %m_ref_count.i.i.i.i212.i.i = getelementptr inbounds %class.ast, ptr %568, i64 0, i32 2 + %570 = load i32, ptr %m_ref_count.i.i.i.i212.i.i, align 4 + %dec.i.i.i.i213.i.i = add i32 %570, -1 + store i32 %dec.i.i.i.i213.i.i, ptr %m_ref_count.i.i.i.i212.i.i, align 4 + %cmp.i.i.i214.i.i = icmp eq i32 %dec.i.i.i.i213.i.i, 0 + br i1 %cmp.i.i.i214.i.i, label %if.then2.i.i.i215.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + +if.then2.i.i.i215.i.i: ; preds = %if.then.i.i.i210.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %569, ptr noundef nonnull %568) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i: ; preds = %if.then2.i.i.i215.i.i, %if.then.i.i.i210.i.i, %if.end.i208.i.i + store ptr %566, ptr %result_pr, align 8 + %571 = load ptr, ptr %m_nodes.i198.i.i, align 8 + %cmp.i.i.i218.i.i = icmp eq ptr %571, null + br i1 %cmp.i.i.i218.i.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i, label %if.end.i.i.i219.i.i + +entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + %.pre.i231.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i232.i.i = add i32 %.pre.i231.i.i, -1 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + +if.end.i.i.i219.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + %arrayidx.i.i.i220.i.i = getelementptr inbounds i32, ptr %571, i64 -1 + %572 = load i32, ptr %arrayidx.i.i.i220.i.i, align 4 + %573 = add i32 %572, -1 + %574 = zext i32 %573 to i64 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + +_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i219.i.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i + %dec.i.pre-phi.i221.i.i = phi i32 [ %.pre1.i232.i.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %573, %if.end.i.i.i219.i.i ] + %retval.0.i.i.i222.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %574, %if.end.i.i.i219.i.i ] + %arrayidx.i1.i.i223.i.i = getelementptr inbounds ptr, ptr %571, i64 %retval.0.i.i.i222.i.i + %575 = load ptr, ptr %arrayidx.i1.i.i223.i.i, align 8 + %arrayidx.i.i224.i.i = getelementptr inbounds i32, ptr %571, i64 -1 + store i32 %dec.i.pre-phi.i221.i.i, ptr %arrayidx.i.i224.i.i, align 4 + %576 = load ptr, ptr %m_result_pr_stack.i197.i.i, align 8 + %tobool.not.i.i.i.i225.i.i = icmp eq ptr %575, null + br i1 %tobool.not.i.i.i.i225.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i, label %if.then.i.i.i.i226.i.i + +if.then.i.i.i.i226.i.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + %m_ref_count.i.i.i.i.i227.i.i = getelementptr inbounds %class.ast, ptr %575, i64 0, i32 2 + %577 = load i32, ptr %m_ref_count.i.i.i.i.i227.i.i, align 4 + %dec.i.i.i.i.i228.i.i = add i32 %577, -1 + store i32 %dec.i.i.i.i.i228.i.i, ptr %m_ref_count.i.i.i.i.i227.i.i, align 4 + %cmp.i.i.i.i229.i.i = icmp eq i32 %dec.i.i.i.i.i228.i.i, 0 + br i1 %cmp.i.i.i.i229.i.i, label %if.then2.i.i.i.i230.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +if.then2.i.i.i.i230.i.i: ; preds = %if.then.i.i.i.i226.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %576, ptr noundef nonnull %575) + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i: ; preds = %if.then2.i.i.i.i230.i.i, %if.then.i.i.i.i226.i.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + %578 = load ptr, ptr %result_pr, align 8 + %cmp.i.i32 = icmp eq ptr %578, null + br i1 %cmp.i.i32, label %if.then48.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +if.then48.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %this.val.i.i = load ptr, ptr %28, align 8 + %579 = load ptr, ptr %m_root.i, align 8 + %call50.i.i = tail call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i, ptr noundef %579) + %tobool.not.i233.i.i = icmp eq ptr %call50.i.i, null + br i1 %tobool.not.i233.i.i, label %if.end.i237.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i234.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i234.i.i: ; preds = %if.then48.i.i + %m_ref_count.i.i.i235.i.i = getelementptr inbounds %class.ast, ptr %call50.i.i, i64 0, i32 2 + %580 = load i32, ptr %m_ref_count.i.i.i235.i.i, align 4 + %inc.i.i.i236.i.i = add i32 %580, 1 + store i32 %inc.i.i.i236.i.i, ptr %m_ref_count.i.i.i235.i.i, align 4 + br label %if.end.i237.i.i + +if.end.i237.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i234.i.i, %if.then48.i.i + %581 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i238.i.i = icmp eq ptr %581, null + br i1 %tobool.not.i3.i238.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i, label %if.then.i.i.i239.i.i + +if.then.i.i.i239.i.i: ; preds = %if.end.i237.i.i + %m_manager.i.i240.i.i = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 + %582 = load ptr, ptr %m_manager.i.i240.i.i, align 8 + %m_ref_count.i.i.i.i241.i.i = getelementptr inbounds %class.ast, ptr %581, i64 0, i32 2 + %583 = load i32, ptr %m_ref_count.i.i.i.i241.i.i, align 4 + %dec.i.i.i.i242.i.i = add i32 %583, -1 + store i32 %dec.i.i.i.i242.i.i, ptr %m_ref_count.i.i.i.i241.i.i, align 4 + %cmp.i.i.i243.i.i = icmp eq i32 %dec.i.i.i.i242.i.i, 0 + br i1 %cmp.i.i.i243.i.i, label %if.then2.i.i.i244.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i + +if.then2.i.i.i244.i.i: ; preds = %if.then.i.i.i239.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %582, ptr noundef nonnull %581) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i: ; preds = %if.then2.i.i.i244.i.i, %if.then.i.i.i239.i.i, %if.end.i237.i.i + store ptr %call50.i.i, ptr %result_pr, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +unreachable.i.i: ; preds = %invoke.cont11.i.i unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit163.i - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i62) - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i) +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i.i) br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit unreachable.i: ; preds = %invoke.cont12.i unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp10.i) br label %if.end8 if.else: ; preds = %if.end - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i31) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i47) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp8.i) - %583 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i529 = icmp eq ptr %583, null - br i1 %tobool.not.i3.i529, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit536, label %if.then.i.i.i530 - -if.then.i.i.i530: ; preds = %if.else - %m_manager.i.i531 = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 - %584 = load ptr, ptr %m_manager.i.i531, align 8 - %m_ref_count.i.i.i.i532 = getelementptr inbounds %class.ast, ptr %583, i64 0, i32 2 - %585 = load i32, ptr %m_ref_count.i.i.i.i532, align 4 - %dec.i.i.i.i533 = add i32 %585, -1 - store i32 %dec.i.i.i.i533, ptr %m_ref_count.i.i.i.i532, align 4 - %cmp.i.i.i534 = icmp eq i32 %dec.i.i.i.i533, 0 - br i1 %cmp.i.i.i534, label %if.then2.i.i.i535, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit536 - -if.then2.i.i.i535: ; preds = %if.then.i.i.i530 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %584, ptr noundef nonnull %583) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit536 - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit536: ; preds = %if.else, %if.then.i.i.i530, %if.then2.i.i.i535 + %584 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i.i48 = icmp eq ptr %584, null + br i1 %tobool.not.i3.i.i48, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54, label %if.then.i.i.i.i49 + +if.then.i.i.i.i49: ; preds = %if.else + %m_manager.i.i.i50 = getelementptr inbounds %class.obj_ref.42, ptr %result_pr, i64 0, i32 1 + %585 = load ptr, ptr %m_manager.i.i.i50, align 8 + %m_ref_count.i.i.i.i.i51 = getelementptr inbounds %class.ast, ptr %584, i64 0, i32 2 + %586 = load i32, ptr %m_ref_count.i.i.i.i.i51, align 4 + %dec.i.i.i.i.i52 = add i32 %586, -1 + store i32 %dec.i.i.i.i.i52, ptr %m_ref_count.i.i.i.i.i51, align 4 + %cmp.i.i.i.i53 = icmp eq i32 %dec.i.i.i.i.i52, 0 + br i1 %cmp.i.i.i.i53, label %if.then2.i.i.i.i408, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + +if.then2.i.i.i.i408: ; preds = %if.then.i.i.i.i49 + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %585, ptr noundef nonnull %584) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54: ; preds = %if.then2.i.i.i.i408, %if.then.i.i.i.i49, %if.else store ptr null, ptr %result_pr, align 8 - %586 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val.i33 = load ptr, ptr %586, align 8 - %call2.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i33) - br i1 %call2.i, label %if.end15.i, label %if.then.i36 - -if.then.i36: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit536 - %m_cancel_check.i37 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %587 = load i8, ptr %m_cancel_check.i37, align 1 - %588 = and i8 %587, 1 - %tobool.not.i38 = icmp eq i8 %588, 0 - br i1 %tobool.not.i38, label %if.end.i53, label %if.then4.i39 - -if.then4.i39: ; preds = %if.then.i36 + %587 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val.i55 = load ptr, ptr %587, align 8 + %call2.i.i56 = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i55) + br i1 %call2.i.i56, label %if.end15.i, label %if.then.i57 + +if.then.i57: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + %m_cancel_check.i58 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %588 = load i8, ptr %m_cancel_check.i58, align 1 + %589 = and i8 %588, 1 + %tobool.not.i59 = icmp eq i8 %589, 0 + br i1 %tobool.not.i59, label %if.end.i67, label %if.then4.i60 + +if.then4.i60: ; preds = %if.then.i57 tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i40 = tail call ptr @__cxa_allocate_exception(i64 40) #18 - %this.val8.i = load ptr, ptr %586, align 8 - %call7.i42 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val8.i) - to label %invoke.cont.i unwind label %ehcleanup13.i.thread + %exception.i61 = tail call ptr @__cxa_allocate_exception(i64 40) #18 + %this.val8.i = load ptr, ptr %587, align 8 + %call7.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val8.i) + to label %invoke.cont.i unwind label %ehcleanup13.thread.i -invoke.cont.i: ; preds = %if.then4.i39 +invoke.cont.i: ; preds = %if.then4.i60 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #18 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31, ptr noundef %call7.i42, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) - to label %invoke.cont10.i unwind label %ehcleanup13.i.thread2798 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47, ptr noundef %call7.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) + to label %invoke.cont10.i unwind label %ehcleanup13.thread58.i invoke.cont10.i: ; preds = %invoke.cont.i - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i40, align 8 - %m_msg.i.i527 = getelementptr inbounds %class.default_exception, ptr %exception.i40, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i527, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31) #18 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i40, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i40, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #21 - to label %unreachable.i52 unwind label %ehcleanup13.i - -ehcleanup13.i.thread: ; preds = %if.then4.i39 - %589 = landingpad { ptr, i32 } + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i61, align 8 + %m_msg.i.i.i65 = getelementptr inbounds %class.default_exception, ptr %exception.i61, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i65, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #18 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i61, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i61, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #21 + to label %unreachable.i66 unwind label %ehcleanup13.i + +ehcleanup13.thread.i: ; preds = %if.then4.i60 + %590 = landingpad { ptr, i32 } cleanup - br label %cleanup.action.i47 + br label %cleanup.action.i62 -ehcleanup13.i.thread2798: ; preds = %invoke.cont.i - %590 = landingpad { ptr, i32 } +ehcleanup13.thread58.i: ; preds = %invoke.cont.i + %591 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #18 - br label %cleanup.action.i47 + br label %cleanup.action.i62 ehcleanup13.i: ; preds = %invoke.cont10.i - %591 = landingpad { ptr, i32 } + %592 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31) #18 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #18 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #18 br label %common.resume -cleanup.action.i47: ; preds = %ehcleanup13.i.thread2798, %ehcleanup13.i.thread - %.pn.pn.i442797 = phi { ptr, i32 } [ %589, %ehcleanup13.i.thread ], [ %590, %ehcleanup13.i.thread2798 ] - call void @__cxa_free_exception(ptr %exception.i40) #18 +cleanup.action.i62: ; preds = %ehcleanup13.thread58.i, %ehcleanup13.thread.i + %.pn.pn57.i = phi { ptr, i32 } [ %590, %ehcleanup13.thread.i ], [ %591, %ehcleanup13.thread58.i ] + call void @__cxa_free_exception(ptr %exception.i61) #18 br label %common.resume -if.end.i53: ; preds = %if.then.i36 - %tobool.not.i514 = icmp eq ptr %t, null - br i1 %tobool.not.i514, label %if.end.i518, label %_ZN11ast_manager7inc_refEP3ast.exit.i515 - -_ZN11ast_manager7inc_refEP3ast.exit.i515: ; preds = %if.end.i53 - %m_ref_count.i.i.i516 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %592 = load i32, ptr %m_ref_count.i.i.i516, align 4 - %inc.i.i.i517 = add i32 %592, 1 - store i32 %inc.i.i.i517, ptr %m_ref_count.i.i.i516, align 4 - br label %if.end.i518 - -if.end.i518: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i515, %if.end.i53 - %593 = load ptr, ptr %result, align 8 - %tobool.not.i3.i519 = icmp eq ptr %593, null - br i1 %tobool.not.i3.i519, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit526, label %if.then.i.i.i520 - -if.then.i.i.i520: ; preds = %if.end.i518 - %m_manager.i.i521 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %594 = load ptr, ptr %m_manager.i.i521, align 8 - %m_ref_count.i.i.i.i522 = getelementptr inbounds %class.ast, ptr %593, i64 0, i32 2 - %595 = load i32, ptr %m_ref_count.i.i.i.i522, align 4 - %dec.i.i.i.i523 = add i32 %595, -1 - store i32 %dec.i.i.i.i523, ptr %m_ref_count.i.i.i.i522, align 4 - %cmp.i.i.i524 = icmp eq i32 %dec.i.i.i.i523, 0 - br i1 %cmp.i.i.i524, label %if.then2.i.i.i525, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit526 - -if.then2.i.i.i525: ; preds = %if.then.i.i.i520 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %594, ptr noundef nonnull %593) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit526 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit526: ; preds = %if.end.i518, %if.then.i.i.i520, %if.then2.i.i.i525 +if.end.i67: ; preds = %if.then.i57 + %tobool.not.i.i68 = icmp eq ptr %t, null + br i1 %tobool.not.i.i68, label %if.end.i.i72, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i69 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i69: ; preds = %if.end.i67 + %m_ref_count.i.i.i.i70 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %593 = load i32, ptr %m_ref_count.i.i.i.i70, align 4 + %inc.i.i.i.i71 = add i32 %593, 1 + store i32 %inc.i.i.i.i71, ptr %m_ref_count.i.i.i.i70, align 4 + br label %if.end.i.i72 + +if.end.i.i72: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i69, %if.end.i67 + %594 = load ptr, ptr %result, align 8 + %tobool.not.i3.i9.i = icmp eq ptr %594, null + br i1 %tobool.not.i3.i9.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73, label %if.then.i.i.i10.i + +if.then.i.i.i10.i: ; preds = %if.end.i.i72 + %m_manager.i.i11.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %595 = load ptr, ptr %m_manager.i.i11.i, align 8 + %m_ref_count.i.i.i.i12.i = getelementptr inbounds %class.ast, ptr %594, i64 0, i32 2 + %596 = load i32, ptr %m_ref_count.i.i.i.i12.i, align 4 + %dec.i.i.i.i13.i = add i32 %596, -1 + store i32 %dec.i.i.i.i13.i, ptr %m_ref_count.i.i.i.i12.i, align 4 + %cmp.i.i.i14.i = icmp eq i32 %dec.i.i.i.i13.i, 0 + br i1 %cmp.i.i.i14.i, label %if.then2.i.i.i15.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73 + +if.then2.i.i.i15.i: ; preds = %if.then.i.i.i10.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %595, ptr noundef nonnull %594) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73 + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73: ; preds = %if.then2.i.i.i15.i, %if.then.i.i.i10.i, %if.end.i.i72 store ptr %t, ptr %result, align 8 br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.end15.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit536 - %m_root.i54 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 - store ptr %t, ptr %m_root.i54, align 8 - %m_num_qvars.i55 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 - store i32 0, ptr %m_num_qvars.i55, align 8 - %m_num_steps.i56 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 2 - store i32 0, ptr %m_num_steps.i56, align 8 - %call16.i57 = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef 3) - br i1 %call16.i57, label %if.then17.i, label %if.else.i58 +if.end15.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + %m_root.i74 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 + store ptr %t, ptr %m_root.i74, align 8 + %m_num_qvars.i75 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 + store i32 0, ptr %m_num_qvars.i75, align 8 + %m_num_steps.i76 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 2 + store i32 0, ptr %m_num_steps.i76, align 8 + %call16.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef 3) + br i1 %call16.i, label %if.then17.i, label %if.else.i77 if.then17.i: ; preds = %if.end15.i - %m_result_stack.i513 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i506 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %596 = load ptr, ptr %m_nodes.i506, align 8 - %cmp.i.i.i507 = icmp eq ptr %596, null - br i1 %cmp.i.i.i507, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit512, label %if.end.i.i.i508 - -if.end.i.i.i508: ; preds = %if.then17.i - %arrayidx.i.i.i509 = getelementptr inbounds i32, ptr %596, i64 -1 - %597 = load i32, ptr %arrayidx.i.i.i509, align 4 - %598 = add i32 %597, -1 - %599 = zext i32 %598 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit512 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit512: ; preds = %if.then17.i, %if.end.i.i.i508 - %retval.0.i.i.i510 = phi i64 [ %599, %if.end.i.i.i508 ], [ 4294967295, %if.then17.i ] - %arrayidx.i1.i.i511 = getelementptr inbounds ptr, ptr %596, i64 %retval.0.i.i.i510 - %600 = load ptr, ptr %arrayidx.i1.i.i511, align 8 - %tobool.not.i493 = icmp eq ptr %600, null - br i1 %tobool.not.i493, label %if.end.i497, label %_ZN11ast_manager7inc_refEP3ast.exit.i494 - -_ZN11ast_manager7inc_refEP3ast.exit.i494: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit512 - %m_ref_count.i.i.i495 = getelementptr inbounds %class.ast, ptr %600, i64 0, i32 2 - %601 = load i32, ptr %m_ref_count.i.i.i495, align 4 - %inc.i.i.i496 = add i32 %601, 1 - store i32 %inc.i.i.i496, ptr %m_ref_count.i.i.i495, align 4 - br label %if.end.i497 - -if.end.i497: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i494, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit512 - %602 = load ptr, ptr %result, align 8 - %tobool.not.i3.i498 = icmp eq ptr %602, null - br i1 %tobool.not.i3.i498, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit505, label %if.then.i.i.i499 - -if.then.i.i.i499: ; preds = %if.end.i497 - %m_manager.i.i500 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %603 = load ptr, ptr %m_manager.i.i500, align 8 - %m_ref_count.i.i.i.i501 = getelementptr inbounds %class.ast, ptr %602, i64 0, i32 2 - %604 = load i32, ptr %m_ref_count.i.i.i.i501, align 4 - %dec.i.i.i.i502 = add i32 %604, -1 - store i32 %dec.i.i.i.i502, ptr %m_ref_count.i.i.i.i501, align 4 - %cmp.i.i.i503 = icmp eq i32 %dec.i.i.i.i502, 0 - br i1 %cmp.i.i.i503, label %if.then2.i.i.i504, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit505 - -if.then2.i.i.i504: ; preds = %if.then.i.i.i499 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %603, ptr noundef nonnull %602) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit505 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit505: ; preds = %if.end.i497, %if.then.i.i.i499, %if.then2.i.i.i504 - store ptr %600, ptr %result, align 8 - %605 = load ptr, ptr %m_nodes.i506, align 8 - %cmp.i.i.i474 = icmp eq ptr %605, null - br i1 %cmp.i.i.i474, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i488, label %if.end.i.i.i475 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i488: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit505 - %.pre.i489 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i490 = add i32 %.pre.i489, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i477 - -if.end.i.i.i475: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit505 - %arrayidx.i.i.i476 = getelementptr inbounds i32, ptr %605, i64 -1 - %606 = load i32, ptr %arrayidx.i.i.i476, align 4 - %607 = add i32 %606, -1 - %608 = zext i32 %607 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i477 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i477: ; preds = %if.end.i.i.i475, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i488 - %dec.i.pre-phi.i478 = phi i32 [ %.pre1.i490, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i488 ], [ %607, %if.end.i.i.i475 ] - %retval.0.i.i.i479 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i488 ], [ %608, %if.end.i.i.i475 ] - %arrayidx.i1.i.i480 = getelementptr inbounds ptr, ptr %605, i64 %retval.0.i.i.i479 - %609 = load ptr, ptr %arrayidx.i1.i.i480, align 8 - %arrayidx.i.i481 = getelementptr inbounds i32, ptr %605, i64 -1 - store i32 %dec.i.pre-phi.i478, ptr %arrayidx.i.i481, align 4 - %610 = load ptr, ptr %m_result_stack.i513, align 8 - %tobool.not.i.i.i.i482 = icmp eq ptr %609, null - br i1 %tobool.not.i.i.i.i482, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit, label %if.then.i.i.i.i483 - -if.then.i.i.i.i483: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i477 - %m_ref_count.i.i.i.i.i484 = getelementptr inbounds %class.ast, ptr %609, i64 0, i32 2 - %611 = load i32, ptr %m_ref_count.i.i.i.i.i484, align 4 - %dec.i.i.i.i.i485 = add i32 %611, -1 - store i32 %dec.i.i.i.i.i485, ptr %m_ref_count.i.i.i.i.i484, align 4 - %cmp.i.i.i.i486 = icmp eq i32 %dec.i.i.i.i.i485, 0 - br i1 %cmp.i.i.i.i486, label %if.then2.i.i.i.i487, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit - -if.then2.i.i.i.i487: ; preds = %if.then.i.i.i.i483 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %610, ptr noundef nonnull %609) + %m_result_stack.i.i388 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i389 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %597 = load ptr, ptr %m_nodes.i.i389, align 8 + %cmp.i.i.i16.i = icmp eq ptr %597, null + br i1 %cmp.i.i.i16.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i392, label %if.end.i.i.i.i390 + +if.end.i.i.i.i390: ; preds = %if.then17.i + %arrayidx.i.i.i.i391 = getelementptr inbounds i32, ptr %597, i64 -1 + %598 = load i32, ptr %arrayidx.i.i.i.i391, align 4 + %599 = add i32 %598, -1 + %600 = zext i32 %599 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i392 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i392: ; preds = %if.end.i.i.i.i390, %if.then17.i + %retval.0.i.i.i.i393 = phi i64 [ %600, %if.end.i.i.i.i390 ], [ 4294967295, %if.then17.i ] + %arrayidx.i1.i.i.i394 = getelementptr inbounds ptr, ptr %597, i64 %retval.0.i.i.i.i393 + %601 = load ptr, ptr %arrayidx.i1.i.i.i394, align 8 + %tobool.not.i17.i = icmp eq ptr %601, null + br i1 %tobool.not.i17.i, label %if.end.i21.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i18.i + +_ZN11ast_manager7inc_refEP3ast.exit.i18.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i392 + %m_ref_count.i.i.i19.i = getelementptr inbounds %class.ast, ptr %601, i64 0, i32 2 + %602 = load i32, ptr %m_ref_count.i.i.i19.i, align 4 + %inc.i.i.i20.i = add i32 %602, 1 + store i32 %inc.i.i.i20.i, ptr %m_ref_count.i.i.i19.i, align 4 + br label %if.end.i21.i + +if.end.i21.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i18.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i392 + %603 = load ptr, ptr %result, align 8 + %tobool.not.i3.i22.i = icmp eq ptr %603, null + br i1 %tobool.not.i3.i22.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i, label %if.then.i.i.i23.i + +if.then.i.i.i23.i: ; preds = %if.end.i21.i + %m_manager.i.i24.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %604 = load ptr, ptr %m_manager.i.i24.i, align 8 + %m_ref_count.i.i.i.i25.i = getelementptr inbounds %class.ast, ptr %603, i64 0, i32 2 + %605 = load i32, ptr %m_ref_count.i.i.i.i25.i, align 4 + %dec.i.i.i.i26.i = add i32 %605, -1 + store i32 %dec.i.i.i.i26.i, ptr %m_ref_count.i.i.i.i25.i, align 4 + %cmp.i.i.i27.i = icmp eq i32 %dec.i.i.i.i26.i, 0 + br i1 %cmp.i.i.i27.i, label %if.then2.i.i.i28.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + +if.then2.i.i.i28.i: ; preds = %if.then.i.i.i23.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %604, ptr noundef nonnull %603) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i: ; preds = %if.then2.i.i.i28.i, %if.then.i.i.i23.i, %if.end.i21.i + store ptr %601, ptr %result, align 8 + %606 = load ptr, ptr %m_nodes.i.i389, align 8 + %cmp.i.i.i32.i395 = icmp eq ptr %606, null + br i1 %cmp.i.i.i32.i395, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i405, label %if.end.i.i.i33.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i405: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + %.pre.i.i406 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i407 = add i32 %.pre.i.i406, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i396 + +if.end.i.i.i33.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + %arrayidx.i.i.i34.i = getelementptr inbounds i32, ptr %606, i64 -1 + %607 = load i32, ptr %arrayidx.i.i.i34.i, align 4 + %608 = add i32 %607, -1 + %609 = zext i32 %608 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i396 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i396: ; preds = %if.end.i.i.i33.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i405 + %dec.i.pre-phi.i.i397 = phi i32 [ %.pre1.i.i407, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i405 ], [ %608, %if.end.i.i.i33.i ] + %retval.0.i.i.i35.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i405 ], [ %609, %if.end.i.i.i33.i ] + %arrayidx.i1.i.i36.i = getelementptr inbounds ptr, ptr %606, i64 %retval.0.i.i.i35.i + %610 = load ptr, ptr %arrayidx.i1.i.i36.i, align 8 + %arrayidx.i.i.i398 = getelementptr inbounds i32, ptr %606, i64 -1 + store i32 %dec.i.pre-phi.i.i397, ptr %arrayidx.i.i.i398, align 4 + %611 = load ptr, ptr %m_result_stack.i.i388, align 8 + %tobool.not.i.i.i.i.i399 = icmp eq ptr %610, null + br i1 %tobool.not.i.i.i.i.i399, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit, label %if.then.i.i.i.i.i400 + +if.then.i.i.i.i.i400: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i396 + %m_ref_count.i.i.i.i.i.i401 = getelementptr inbounds %class.ast, ptr %610, i64 0, i32 2 + %612 = load i32, ptr %m_ref_count.i.i.i.i.i.i401, align 4 + %dec.i.i.i.i.i.i402 = add i32 %612, -1 + store i32 %dec.i.i.i.i.i.i402, ptr %m_ref_count.i.i.i.i.i.i401, align 4 + %cmp.i.i.i.i.i403 = icmp eq i32 %dec.i.i.i.i.i.i402, 0 + br i1 %cmp.i.i.i.i.i403, label %if.then2.i.i.i.i.i404, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit + +if.then2.i.i.i.i.i404: ; preds = %if.then.i.i.i.i.i400 + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %611, ptr noundef nonnull %610) br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.else.i58: ; preds = %if.end15.i - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i202) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i203) - %612 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2062902 = icmp eq ptr %612, null - br i1 %cmp.i.i2062902, label %while.end.i449, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph: ; preds = %if.else.i58 - %m_cancel_check.i214 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %613 = getelementptr inbounds i8, ptr %this, i64 144 - %m_cache.i.i414 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %m_nodes.i.i424 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %m_bindings.i65.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 - %m_shifts.i69.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 - %m_result_stack.i2061 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i.i2021 = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i194, i64 0, i32 1 - %m_nodes.i.i1983 = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i195, i64 0, i32 1 - %m_r.i48.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_pr.i49.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %m_manager.i.i1882 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %m_manager.i.i1772 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %m_manager.i2270 = getelementptr inbounds %class.obj_ref, ptr %tmp.i.i, i64 0, i32 1 - %m_inv_shifter.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 5 - %m_manager.i2624 = getelementptr inbounds %class.obj_ref.42, ptr %new_t.i.i198, i64 0, i32 1 - %m_pr2.i.i357 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 - br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph, %while.cond.i204.backedge - %614 = phi ptr [ %612, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph ], [ %643, %while.cond.i204.backedge ] - %arrayidx.i.i208 = getelementptr inbounds i32, ptr %614, i64 -1 - %615 = load i32, ptr %arrayidx.i.i208, align 4 - %cmp3.i.i209 = icmp eq i32 %615, 0 - br i1 %cmp3.i.i209, label %while.end.i449, label %while.body.i211 - -while.body.i211: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210 - %this.val14.i = load ptr, ptr %586, align 8 - %call2.i.i212 = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val14.i) - br i1 %call2.i.i212, label %if.end15.i235, label %if.then.i213 - -if.then.i213: ; preds = %while.body.i211 - %616 = load i8, ptr %m_cancel_check.i214, align 1 - %617 = and i8 %616, 1 - %tobool.not.i215 = icmp eq i8 %617, 0 - br i1 %tobool.not.i215, label %if.end15.i235, label %if.then5.i216 - -if.then5.i216: ; preds = %if.then.i213 +if.else.i77: ; preds = %if.end15.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i45) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i.i46) + %613 = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i36.i.i = icmp eq ptr %613, null + br i1 %cmp.i36.i.i, label %while.end.i.i115, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79: ; preds = %if.else.i77 + %m_cancel_check.i.i80 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %614 = getelementptr inbounds i8, ptr %this, i64 144 + %m_cache.i.i.i81 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %m_nodes.i.i.i82 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %m_bindings.i.i.i83 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 + %m_shifts.i.i.i84 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 + %m_result_stack.i.i43.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i.i48.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i.i42, i64 0, i32 1 + %m_nodes.i.i80.i.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i.i43, i64 0, i32 1 + %m_r.i64.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_pr.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %m_manager.i.i.i70.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %m_manager.i.i263.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %m_manager.i385.i.i.i = getelementptr inbounds %class.obj_ref, ptr %tmp.i.i.i, i64 0, i32 1 + %m_inv_shifter.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 5 + %m_manager.i.i.i.i85 = getelementptr inbounds %class.obj_ref.42, ptr %new_t.i.i.i44, i64 0, i32 1 + %m_pr2.i.i.i86 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 + br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87: ; preds = %while.cond.backedge.i.i113, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 + %615 = phi ptr [ %613, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 ], [ %644, %while.cond.backedge.i.i113 ] + %arrayidx.i.i37.i = getelementptr inbounds i32, ptr %615, i64 -1 + %616 = load i32, ptr %arrayidx.i.i37.i, align 4 + %cmp3.i.i.i88 = icmp eq i32 %616, 0 + br i1 %cmp3.i.i.i88, label %while.end.i.i115, label %while.body.i.i89 + +while.body.i.i89: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87 + %this.val14.i.i = load ptr, ptr %587, align 8 + %call2.i.i.i90 = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val14.i.i) + br i1 %call2.i.i.i90, label %if.end15.i.i103, label %if.then.i.i91 + +if.then.i.i91: ; preds = %while.body.i.i89 + %617 = load i8, ptr %m_cancel_check.i.i80, align 1 + %618 = and i8 %617, 1 + %tobool.not.i38.i = icmp eq i8 %618, 0 + br i1 %tobool.not.i38.i, label %if.end15.i.i103, label %if.then5.i.i92 + +if.then5.i.i92: ; preds = %if.then.i.i91 call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i217 = call ptr @__cxa_allocate_exception(i64 40) #18 - %this.val.i218 = load ptr, ptr %586, align 8 - %call8.i219 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i218) - to label %invoke.cont.i226 unwind label %ehcleanup14.i221.thread - -invoke.cont.i226: ; preds = %if.then5.i216 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) #18 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i202, ptr noundef %call8.i219, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) - to label %invoke.cont11.i231 unwind label %ehcleanup14.i221.thread2805 - -invoke.cont11.i231: ; preds = %invoke.cont.i226 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i217, align 8 - %m_msg.i.i.i232 = getelementptr inbounds %class.default_exception, ptr %exception.i217, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i232, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i202) #18 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i217, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i217, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #21 - to label %unreachable.i234 unwind label %ehcleanup14.i221 - -ehcleanup14.i221.thread: ; preds = %if.then5.i216 - %618 = landingpad { ptr, i32 } - cleanup - br label %cleanup.action.i225 - -ehcleanup14.i221.thread2805: ; preds = %invoke.cont.i226 + %exception.i.i93 = call ptr @__cxa_allocate_exception(i64 40) #18 + %this.val.i.i94 = load ptr, ptr %587, align 8 + %call8.i.i95 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i.i94) + to label %invoke.cont.i.i98 unwind label %ehcleanup14.thread.i.i96 + +invoke.cont.i.i98: ; preds = %if.then5.i.i92 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #18 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45, ptr noundef %call8.i.i95, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) + to label %invoke.cont11.i.i99 unwind label %ehcleanup14.thread5.i.i + +invoke.cont11.i.i99: ; preds = %invoke.cont.i.i98 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i93, align 8 + %m_msg.i.i.i.i100 = getelementptr inbounds %class.default_exception, ptr %exception.i.i93, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i.i100, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45) #18 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i93, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i.i93, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #21 + to label %unreachable.i.i102 unwind label %ehcleanup14.i.i101 + +ehcleanup14.thread.i.i96: ; preds = %if.then5.i.i92 %619 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) #18 - br label %cleanup.action.i225 + br label %cleanup.action.i.i97 -ehcleanup14.i221: ; preds = %invoke.cont11.i231 +ehcleanup14.thread5.i.i: ; preds = %invoke.cont.i.i98 %620 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i202) #18 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) #18 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #18 + br label %cleanup.action.i.i97 + +ehcleanup14.i.i101: ; preds = %invoke.cont11.i.i99 + %621 = landingpad { ptr, i32 } + cleanup + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45) #18 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #18 br label %common.resume -cleanup.action.i225: ; preds = %ehcleanup14.i221.thread2805, %ehcleanup14.i221.thread - %.pn.pn.i2232804 = phi { ptr, i32 } [ %618, %ehcleanup14.i221.thread ], [ %619, %ehcleanup14.i221.thread2805 ] - call void @__cxa_free_exception(ptr %exception.i217) #18 +cleanup.action.i.i97: ; preds = %ehcleanup14.thread5.i.i, %ehcleanup14.thread.i.i96 + %.pn.pn4.i.i = phi { ptr, i32 } [ %619, %ehcleanup14.thread.i.i96 ], [ %620, %ehcleanup14.thread5.i.i ] + call void @__cxa_free_exception(ptr %exception.i.i93) #18 br label %common.resume -if.end15.i235: ; preds = %if.then.i213, %while.body.i211 - %621 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i.i236 = icmp eq ptr %621, null - br i1 %cmp.i.i.i236, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239, label %if.end.i.i.i237 - -if.end.i.i.i237: ; preds = %if.end15.i235 - %arrayidx.i.i.i238 = getelementptr inbounds i32, ptr %621, i64 -1 - %622 = load i32, ptr %arrayidx.i.i.i238, align 4 - %623 = add i32 %622, -1 - %624 = zext i32 %623 to i64 - br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239: ; preds = %if.end.i.i.i237, %if.end15.i235 - %retval.0.i.i.i240 = phi i64 [ %624, %if.end.i.i.i237 ], [ 4294967295, %if.end15.i235 ] - %arrayidx.i1.i.i241 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %621, i64 %retval.0.i.i.i240 - %625 = load ptr, ptr %arrayidx.i1.i.i241, align 8 - %626 = load i32, ptr %m_num_steps.i56, align 8 - %inc.i243 = add i32 %626, 1 - store i32 %inc.i243, ptr %m_num_steps.i56, align 8 - %this.val16.i = load ptr, ptr %613, align 8 - call fastcc void @_ZNK12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE15check_max_stepsEv(ptr %this.val16.i, i32 %inc.i243) - %627 = getelementptr i8, ptr %arrayidx.i1.i.i241, i64 8 - %call17.val.i245 = load i32, ptr %627, align 8 - %628 = and i32 %call17.val.i245, -51 - %or.cond2823.not = icmp eq i32 %628, 1 - br i1 %or.cond2823.not, label %if.then20.i413, label %if.end28.i - -if.then20.i413: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239 - %629 = load ptr, ptr %m_cache.i.i414, align 8 - %call.i.i.i415 = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %629, ptr noundef %625, i32 noundef 0) - %tobool22.not.i416 = icmp eq ptr %call.i.i.i415, null - br i1 %tobool22.not.i416, label %if.end28.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i423 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i423: ; preds = %if.then20.i413 - %m_ref_count.i.i.i.i.i.i421 = getelementptr inbounds %class.ast, ptr %call.i.i.i415, i64 0, i32 2 - %630 = load i32, ptr %m_ref_count.i.i.i.i.i.i421, align 4 - %inc.i.i.i.i.i.i422 = add i32 %630, 1 - store i32 %inc.i.i.i.i.i.i422, ptr %m_ref_count.i.i.i.i.i.i421, align 4 - %631 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i19.i = icmp eq ptr %631, null - br i1 %cmp.i.i19.i, label %if.then.i.i.i445, label %lor.lhs.false.i.i.i425 - -lor.lhs.false.i.i.i425: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i423 - %arrayidx.i.i20.i = getelementptr inbounds i32, ptr %631, i64 -1 - %632 = load i32, ptr %arrayidx.i.i20.i, align 4 - %arrayidx4.i.i.i426 = getelementptr inbounds i32, ptr %631, i64 -2 - %633 = load i32, ptr %arrayidx4.i.i.i426, align 4 - %cmp5.i.i.i427 = icmp eq i32 %632, %633 - br i1 %cmp5.i.i.i427, label %if.then.i.i.i445, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i428 - -if.then.i.i.i445: ; preds = %lor.lhs.false.i.i.i425, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i423 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - %.pre.i.i.i446 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i.i447 = getelementptr inbounds i32, ptr %.pre.i.i.i446, i64 -1 - %.pre1.i.i.i448 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i447, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i428 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i428: ; preds = %if.then.i.i.i445, %lor.lhs.false.i.i.i425 - %634 = phi i32 [ %.pre1.i.i.i448, %if.then.i.i.i445 ], [ %632, %lor.lhs.false.i.i.i425 ] - %635 = phi ptr [ %.pre.i.i.i446, %if.then.i.i.i445 ], [ %631, %lor.lhs.false.i.i.i425 ] - %idx.ext.i.i.i429 = zext i32 %634 to i64 - %add.ptr.i.i.i430 = getelementptr inbounds ptr, ptr %635, i64 %idx.ext.i.i.i429 - store ptr %call.i.i.i415, ptr %add.ptr.i.i.i430, align 8 - %636 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i.i431 = getelementptr inbounds i32, ptr %636, i64 -1 - %637 = load i32, ptr %arrayidx10.i.i.i431, align 4 - %inc.i.i.i432 = add i32 %637, 1 - store i32 %inc.i.i.i432, ptr %arrayidx10.i.i.i431, align 4 - %638 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i22.i = getelementptr inbounds i32, ptr %638, i64 -1 - %639 = load i32, ptr %arrayidx.i22.i, align 4 - %dec.i.i433 = add i32 %639, -1 - store i32 %dec.i.i433, ptr %arrayidx.i22.i, align 4 - %this.val15.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i.i434 = icmp eq ptr %625, %call.i.i.i415 - %cmp.i.i.i.i435 = icmp eq ptr %this.val15.i, null - %or.cond.i.i436 = select i1 %cmp.not.i.i434, i1 true, i1 %cmp.i.i.i.i435 - br i1 %or.cond.i.i436, label %while.cond.i204.backedge, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i437 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i437: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i428 - %arrayidx.i.i.i.i438 = getelementptr inbounds i32, ptr %this.val15.i, i64 -1 - %640 = load i32, ptr %arrayidx.i.i.i.i438, align 4 - %cmp3.i.i.i.i439 = icmp eq i32 %640, 0 - br i1 %cmp3.i.i.i.i439, label %while.cond.i204.backedgethread-pre-split, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i440 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i440: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i437 - %641 = add i32 %640, -1 - %642 = zext i32 %641 to i64 - %m_new_child.i.i.i441 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i, i64 %642, i32 1 - %bf.load.i.i.i442 = load i32, ptr %m_new_child.i.i.i441, align 8 - %bf.set.i.i.i443 = or i32 %bf.load.i.i.i442, 2 - store i32 %bf.set.i.i.i443, ptr %m_new_child.i.i.i441, align 8 - br label %while.cond.i204.backedgethread-pre-split - -while.cond.i204.backedgethread-pre-split: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i440, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i437, %sw.bb33.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - %.pr = load ptr, ptr %m_frame_stack.i, align 8 - br label %while.cond.i204.backedge - -while.cond.i204.backedge: ; preds = %while.cond.i204.backedgethread-pre-split, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i428 - %643 = phi ptr [ %.pr, %while.cond.i204.backedgethread-pre-split ], [ %this.val15.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i428 ] - %cmp.i.i206 = icmp eq ptr %643, null - br i1 %cmp.i.i206, label %while.end.i449, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210, !llvm.loop !28 - -if.end28.i: ; preds = %if.then20.i413, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239 - %m_kind.i.i247 = getelementptr inbounds %class.ast, ptr %625, i64 0, i32 1 - %bf.load.i.i248 = load i32, ptr %m_kind.i.i247, align 4 - %trunc2824 = trunc i32 %bf.load.i.i248 to i16 - switch i16 %trunc2824, label %sw.default.i407 [ - i16 0, label %sw.bb.i326 - i16 2, label %sw.bb31.i - i16 1, label %sw.bb33.i +if.end15.i.i103: ; preds = %if.then.i.i91, %while.body.i.i89 + %622 = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i.i39.i = icmp eq ptr %622, null + br i1 %cmp.i.i.i39.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104, label %if.end.i.i.i40.i + +if.end.i.i.i40.i: ; preds = %if.end15.i.i103 + %arrayidx.i.i.i41.i = getelementptr inbounds i32, ptr %622, i64 -1 + %623 = load i32, ptr %arrayidx.i.i.i41.i, align 4 + %624 = add i32 %623, -1 + %625 = zext i32 %624 to i64 + br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104: ; preds = %if.end.i.i.i40.i, %if.end15.i.i103 + %retval.0.i.i.i42.i = phi i64 [ %625, %if.end.i.i.i40.i ], [ 4294967295, %if.end15.i.i103 ] + %arrayidx.i1.i.i43.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %622, i64 %retval.0.i.i.i42.i + %626 = load ptr, ptr %arrayidx.i1.i.i43.i, align 8 + %627 = load i32, ptr %m_num_steps.i76, align 8 + %inc.i.i105 = add i32 %627, 1 + store i32 %inc.i.i105, ptr %m_num_steps.i76, align 8 + %this.val16.i.i = load ptr, ptr %614, align 8 + call fastcc void @_ZNK12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE15check_max_stepsEv(ptr %this.val16.i.i, i32 %inc.i.i105) + %628 = getelementptr i8, ptr %arrayidx.i1.i.i43.i, i64 8 + %call17.val.i.i106 = load i32, ptr %628, align 8 + %629 = and i32 %call17.val.i.i106, -51 + %or.cond.not.i.i107 = icmp eq i32 %629, 1 + br i1 %or.cond.not.i.i107, label %if.then20.i.i361, label %if.end28.i.i + +if.then20.i.i361: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + %630 = load ptr, ptr %m_cache.i.i.i81, align 8 + %call.i.i.i.i362 = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %630, ptr noundef %626, i32 noundef 0) + %tobool22.not.i.i363 = icmp eq ptr %call.i.i.i.i362, null + br i1 %tobool22.not.i.i363, label %if.end28.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i364 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i364: ; preds = %if.then20.i.i361 + %m_ref_count.i.i.i.i.i.i.i365 = getelementptr inbounds %class.ast, ptr %call.i.i.i.i362, i64 0, i32 2 + %631 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i365, align 4 + %inc.i.i.i.i.i.i.i366 = add i32 %631, 1 + store i32 %inc.i.i.i.i.i.i.i366, ptr %m_ref_count.i.i.i.i.i.i.i365, align 4 + %632 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i19.i.i = icmp eq ptr %632, null + br i1 %cmp.i.i19.i.i, label %if.then.i.i.i53.i, label %lor.lhs.false.i.i.i.i367 + +lor.lhs.false.i.i.i.i367: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i364 + %arrayidx.i.i20.i.i = getelementptr inbounds i32, ptr %632, i64 -1 + %633 = load i32, ptr %arrayidx.i.i20.i.i, align 4 + %arrayidx4.i.i.i.i368 = getelementptr inbounds i32, ptr %632, i64 -2 + %634 = load i32, ptr %arrayidx4.i.i.i.i368, align 4 + %cmp5.i.i.i.i369 = icmp eq i32 %633, %634 + br i1 %cmp5.i.i.i.i369, label %if.then.i.i.i53.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i370 + +if.then.i.i.i53.i: ; preds = %lor.lhs.false.i.i.i.i367, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i364 + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i.i.i385 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i386 = getelementptr inbounds i32, ptr %.pre.i.i.i.i385, i64 -1 + %.pre1.i.i.i.i387 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i386, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i370 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i370: ; preds = %if.then.i.i.i53.i, %lor.lhs.false.i.i.i.i367 + %635 = phi i32 [ %.pre1.i.i.i.i387, %if.then.i.i.i53.i ], [ %633, %lor.lhs.false.i.i.i.i367 ] + %636 = phi ptr [ %.pre.i.i.i.i385, %if.then.i.i.i53.i ], [ %632, %lor.lhs.false.i.i.i.i367 ] + %idx.ext.i.i.i.i371 = zext i32 %635 to i64 + %add.ptr.i.i.i.i372 = getelementptr inbounds ptr, ptr %636, i64 %idx.ext.i.i.i.i371 + store ptr %call.i.i.i.i362, ptr %add.ptr.i.i.i.i372, align 8 + %637 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i373 = getelementptr inbounds i32, ptr %637, i64 -1 + %638 = load i32, ptr %arrayidx10.i.i.i.i373, align 4 + %inc.i.i.i51.i374 = add i32 %638, 1 + store i32 %inc.i.i.i51.i374, ptr %arrayidx10.i.i.i.i373, align 4 + %639 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i22.i.i = getelementptr inbounds i32, ptr %639, i64 -1 + %640 = load i32, ptr %arrayidx.i22.i.i, align 4 + %dec.i.i.i375 = add i32 %640, -1 + store i32 %dec.i.i.i375, ptr %arrayidx.i22.i.i, align 4 + %this.val15.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i376 = icmp eq ptr %626, %call.i.i.i.i362 + %cmp.i.i.i.i52.i = icmp eq ptr %this.val15.i.i, null + %or.cond.i.i.i377 = select i1 %cmp.not.i.i.i376, i1 true, i1 %cmp.i.i.i.i52.i + br i1 %or.cond.i.i.i377, label %while.cond.backedge.i.i113, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i378 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i378: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i370 + %arrayidx.i.i.i.i.i379 = getelementptr inbounds i32, ptr %this.val15.i.i, i64 -1 + %641 = load i32, ptr %arrayidx.i.i.i.i.i379, align 4 + %cmp3.i.i.i.i.i380 = icmp eq i32 %641, 0 + br i1 %cmp3.i.i.i.i.i380, label %while.cond.backedgethread-pre-split.i.i111, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i381 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i381: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i378 + %642 = add i32 %641, -1 + %643 = zext i32 %642 to i64 + %m_new_child.i.i.i.i382 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i.i, i64 %643, i32 1 + %bf.load.i.i.i.i383 = load i32, ptr %m_new_child.i.i.i.i382, align 8 + %bf.set.i.i.i.i384 = or i32 %bf.load.i.i.i.i383, 2 + store i32 %bf.set.i.i.i.i384, ptr %m_new_child.i.i.i.i382, align 8 + br label %while.cond.backedgethread-pre-split.i.i111 + +while.cond.backedgethread-pre-split.i.i111: ; preds = %sw.bb33.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i381, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i378 + %.pr.i.i112 = load ptr, ptr %m_frame_stack.i, align 8 + br label %while.cond.backedge.i.i113 + +while.cond.backedge.i.i113: ; preds = %while.cond.backedgethread-pre-split.i.i111, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i370 + %644 = phi ptr [ %.pr.i.i112, %while.cond.backedgethread-pre-split.i.i111 ], [ %this.val15.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i370 ] + %cmp.i.i.i114 = icmp eq ptr %644, null + br i1 %cmp.i.i.i114, label %while.end.i.i115, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87, !llvm.loop !28 + +if.end28.i.i: ; preds = %if.then20.i.i361, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + %m_kind.i.i.i108 = getelementptr inbounds %class.ast, ptr %626, i64 0, i32 1 + %bf.load.i.i.i109 = load i32, ptr %m_kind.i.i.i108, align 4 + %trunc.i.i110 = trunc i32 %bf.load.i.i.i109 to i16 + switch i16 %trunc.i.i110, label %sw.default.i.i360 [ + i16 0, label %sw.bb.i.i258 + i16 2, label %sw.bb31.i.i + i16 1, label %sw.bb33.i.i ] -sw.bb.i326: ; preds = %if.end28.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i198) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tmp.i.i) - %bf.load.i23.i = load i32, ptr %627, align 8 - %bf.lshr.i.i328 = lshr i32 %bf.load.i23.i, 2 - %bf.clear.i24.i = and i32 %bf.lshr.i.i328, 3 - switch i32 %bf.clear.i24.i, label %entry.unreachabledefault.i.i406 [ - i32 0, label %sw.bb.i.i340 - i32 1, label %sw.bb215.i.i - i32 2, label %sw.bb235.i.i - i32 3, label %sw.bb292.i.i +sw.bb.i.i258: ; preds = %if.end28.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i.i44) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tmp.i.i.i) + %bf.load.i23.i.i = load i32, ptr %628, align 8 + %bf.lshr.i.i.i259 = lshr i32 %bf.load.i23.i.i, 2 + %bf.clear.i24.i.i = and i32 %bf.lshr.i.i.i259, 3 + switch i32 %bf.clear.i24.i.i, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i272 + i32 1, label %sw.bb215.i.i.i + i32 2, label %sw.bb235.i.i.i + i32 3, label %sw.bb292.i.i.i ] -sw.bb.i.i340: ; preds = %sw.bb.i326 - %m_num_args.i2761 = getelementptr inbounds %class.app, ptr %625, i64 0, i32 2 - %644 = load i32, ptr %m_num_args.i2761, align 8 - %m_decl.i.i.i.i = getelementptr inbounds %class.app, ptr %625, i64 0, i32 1 - %m_spos.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %621, i64 %retval.0.i.i.i240, i32 2 - %arrayidx.i17.i = getelementptr inbounds %class.app, ptr %625, i64 0, i32 3, i64 2 - %arrayidx.i.i2758 = getelementptr inbounds %class.app, ptr %625, i64 0, i32 3, i64 1 - br label %while.cond.i.i342 - -while.cond.i.i342: ; preds = %if.end.i.i401, %sw.bb.i.i340 - %bf.load2.i.i343 = load i32, ptr %627, align 8 - %bf.lshr3.i.i344 = lshr i32 %bf.load2.i.i343, 6 - %cmp.i25.i = icmp ult i32 %bf.lshr3.i.i344, %644 - br i1 %cmp.i25.i, label %while.body.i.i400, label %while.end.i.i345 - -while.body.i.i400: ; preds = %while.cond.i.i342 - %bf.lshr.mask.i = and i32 %bf.load2.i.i343, -64 - %cmp.i2675 = icmp eq i32 %bf.lshr.mask.i, 64 - br i1 %cmp.i2675, label %land.lhs.true.i2677, label %if.end.i.i401 - -land.lhs.true.i2677: ; preds = %while.body.i.i400 - %bf.load.i.i.i.i = load i32, ptr %m_kind.i.i247, align 4 - %bf.clear.i.i.i.i = and i32 %bf.load.i.i.i.i, 65535 - %cmp.i.i.i2679 = icmp eq i32 %bf.clear.i.i.i.i, 0 - br i1 %cmp.i.i.i2679, label %land.rhs.i.i.i, label %if.end.i.i401 - -land.rhs.i.i.i: ; preds = %land.lhs.true.i2677 - %645 = load ptr, ptr %m_decl.i.i.i.i, align 8 - %m_info.i.i.i.i.i = getelementptr inbounds %class.decl, ptr %645, i64 0, i32 2 - %646 = load ptr, ptr %m_info.i.i.i.i.i, align 8 - %tobool.not.i.i.i.i.i2759 = icmp eq ptr %646, null - br i1 %tobool.not.i.i.i.i.i2759, label %if.end.i.i401, label %_ZNK11ast_manager6is_iteEPK4expr.exit.i - -_ZNK11ast_manager6is_iteEPK4expr.exit.i: ; preds = %land.rhs.i.i.i - %647 = load i32, ptr %646, align 8 - %cmp.i.i.i.i.i.i2760 = icmp eq i32 %647, 0 - %m_kind.i.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %646, i64 0, i32 1 - %648 = load i32, ptr %m_kind.i.i.i.i.i.i, align 4 - %cmp2.i.i.i.i.i.i = icmp eq i32 %648, 4 - %649 = select i1 %cmp.i.i.i.i.i.i2760, i1 %cmp2.i.i.i.i.i.i, i1 false - br i1 %649, label %if.then.i2680, label %if.end.i.i401 - -if.then.i2680: ; preds = %_ZNK11ast_manager6is_iteEPK4expr.exit.i - %650 = load i32, ptr %m_spos.i, align 4 - %651 = load ptr, ptr %m_nodes.i.i424, align 8 - %idxprom.i.i.i = zext i32 %650 to i64 - %arrayidx.i.i.i2683 = getelementptr inbounds ptr, ptr %651, i64 %idxprom.i.i.i - %652 = load ptr, ptr %arrayidx.i.i.i2683, align 8 - %this.val13.i2684 = load ptr, ptr %586, align 8 - %m_true.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i2684, i64 0, i32 15 - %653 = load ptr, ptr %m_true.i.i, align 8 - %cmp.i.i2685 = icmp eq ptr %653, %652 - br i1 %cmp.i.i2685, label %if.end14.i, label %if.else.i2686 - -if.else.i2686: ; preds = %if.then.i2680 - %m_false.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i2684, i64 0, i32 16 - %654 = load ptr, ptr %m_false.i.i, align 8 - %cmp.i16.i = icmp eq ptr %654, %652 - br i1 %cmp.i16.i, label %if.end14.i, label %if.end.i.i401 - -if.end14.i: ; preds = %if.else.i2686, %if.then.i2680 - %arg.0.i.in = phi ptr [ %arrayidx.i.i2758, %if.then.i2680 ], [ %arrayidx.i17.i, %if.else.i2686 ] - %arg.0.i = load ptr, ptr %arg.0.i.in, align 8 - %tobool.not.i2688 = icmp eq ptr %arg.0.i, null - br i1 %tobool.not.i2688, label %if.end.i.i401, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i: ; preds = %if.end14.i - %arrayidx.i.i.i.i2692 = getelementptr inbounds i32, ptr %651, i64 -1 - %655 = load i32, ptr %arrayidx.i.i.i.i2692, align 4 - %656 = zext i32 %655 to i64 - %add.ptr.i.i.i2693 = getelementptr inbounds ptr, ptr %651, i64 %656 - %cmp3.i.i.i2694 = icmp ugt i32 %655, %650 - br i1 %cmp3.i.i.i2694, label %for.body.i.i.i2747.preheader, label %if.then.i.i.i2695 - -for.body.i.i.i2747.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - %arrayidx.i.i.i2683.le = getelementptr inbounds ptr, ptr %651, i64 %idxprom.i.i.i - br label %for.body.i.i.i2747 - -for.body.i.i.i2747: ; preds = %for.body.i.i.i2747.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2753 - %it.04.i.i.i2748 = phi ptr [ %incdec.ptr.i.i.i2754, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2753 ], [ %arrayidx.i.i.i2683.le, %for.body.i.i.i2747.preheader ] - %657 = load ptr, ptr %it.04.i.i.i2748, align 8 - %658 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i.i.i2749 = icmp eq ptr %657, null - br i1 %tobool.not.i.i.i.i.i.i2749, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2753, label %if.then.i.i.i.i.i.i2750 - -if.then.i.i.i.i.i.i2750: ; preds = %for.body.i.i.i2747 - %m_ref_count.i.i.i.i.i.i.i2751 = getelementptr inbounds %class.ast, ptr %657, i64 0, i32 2 - %659 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2751, align 4 - %dec.i.i.i.i.i.i.i2752 = add i32 %659, -1 - store i32 %dec.i.i.i.i.i.i.i2752, ptr %m_ref_count.i.i.i.i.i.i.i2751, align 4 - %cmp.i.i.i.i.i21.i = icmp eq i32 %dec.i.i.i.i.i.i.i2752, 0 - br i1 %cmp.i.i.i.i.i21.i, label %if.then2.i.i.i.i.i.i2757, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2753 - -if.then2.i.i.i.i.i.i2757: ; preds = %if.then.i.i.i.i.i.i2750 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %658, ptr noundef nonnull %657) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2753 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2753: ; preds = %if.then2.i.i.i.i.i.i2757, %if.then.i.i.i.i.i.i2750, %for.body.i.i.i2747 - %incdec.ptr.i.i.i2754 = getelementptr inbounds ptr, ptr %it.04.i.i.i2748, i64 1 - %cmp.i.i22.i = icmp ult ptr %incdec.ptr.i.i.i2754, %add.ptr.i.i.i2693 - br i1 %cmp.i.i22.i, label %for.body.i.i.i2747, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2753 - %.pre.i.i2755 = load ptr, ptr %m_nodes.i.i424, align 8 - %tobool.not.i.i.i2756 = icmp eq ptr %.pre.i.i2755, null - br i1 %tobool.not.i.i.i2756, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2700, label %if.then.i.i.i2695 - -if.then.i.i.i2695: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - %660 = phi ptr [ %.pre.i.i2755, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i ], [ %651, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i ] - %arrayidx.i.i20.i2696 = getelementptr inbounds i32, ptr %660, i64 -1 - store i32 %650, ptr %arrayidx.i.i20.i2696, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2700 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2700: ; preds = %if.then.i.i.i2695, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i - %m_ref_count.i.i.i.i.i.i2698 = getelementptr inbounds %class.ast, ptr %arg.0.i, i64 0, i32 2 - %661 = load i32, ptr %m_ref_count.i.i.i.i.i.i2698, align 4 - %inc.i.i.i.i.i.i2699 = add i32 %661, 1 - store i32 %inc.i.i.i.i.i.i2699, ptr %m_ref_count.i.i.i.i.i.i2698, align 4 - %662 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i26.i = icmp eq ptr %662, null - br i1 %cmp.i.i26.i, label %if.then.i.i29.i, label %lor.lhs.false.i.i.i2701 - -lor.lhs.false.i.i.i2701: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2700 - %arrayidx.i.i27.i = getelementptr inbounds i32, ptr %662, i64 -1 - %663 = load i32, ptr %arrayidx.i.i27.i, align 4 - %arrayidx4.i.i.i2702 = getelementptr inbounds i32, ptr %662, i64 -2 - %664 = load i32, ptr %arrayidx4.i.i.i2702, align 4 - %cmp5.i.i.i2703 = icmp eq i32 %663, %664 - br i1 %cmp5.i.i.i2703, label %if.then.i.i29.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2704 - -if.then.i.i29.i: ; preds = %lor.lhs.false.i.i.i2701, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2700 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - %.pre.i.i.i2744 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i.i2745 = getelementptr inbounds i32, ptr %.pre.i.i.i2744, i64 -1 - %.pre1.i.i.i2746 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i2745, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2704 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2704: ; preds = %if.then.i.i29.i, %lor.lhs.false.i.i.i2701 - %665 = phi i32 [ %.pre1.i.i.i2746, %if.then.i.i29.i ], [ %663, %lor.lhs.false.i.i.i2701 ] - %666 = phi ptr [ %.pre.i.i.i2744, %if.then.i.i29.i ], [ %662, %lor.lhs.false.i.i.i2701 ] - %idx.ext.i.i.i2705 = zext i32 %665 to i64 - %add.ptr.i.i28.i = getelementptr inbounds ptr, ptr %666, i64 %idx.ext.i.i.i2705 - store ptr %arg.0.i, ptr %add.ptr.i.i28.i, align 8 - %667 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i.i2706 = getelementptr inbounds i32, ptr %667, i64 -1 - %668 = load i32, ptr %arrayidx10.i.i.i2706, align 4 - %inc.i.i.i2707 = add i32 %668, 1 - store i32 %inc.i.i.i2707, ptr %arrayidx10.i.i.i2706, align 4 - %bf.load20.i = load i32, ptr %627, align 8 - %bf.clear.i2708 = and i32 %bf.load20.i, -13 - %bf.set.i2709 = or disjoint i32 %bf.clear.i2708, 4 - store i32 %bf.set.i2709, ptr %627, align 8 - %bf.lshr22.i = lshr i32 %bf.load20.i, 4 - %bf.clear23.i = and i32 %bf.lshr22.i, 3 - %call24.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %arg.0.i, i32 noundef %bf.clear23.i) - br i1 %call24.i, label %if.then25.i, label %if.end42.i - -if.then25.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2704 - %669 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i32.i = icmp eq ptr %669, null - br i1 %cmp.i.i.i32.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2712, label %if.end.i.i.i.i2711 - -if.end.i.i.i.i2711: ; preds = %if.then25.i - %arrayidx.i.i.i33.i = getelementptr inbounds i32, ptr %669, i64 -1 - %670 = load i32, ptr %arrayidx.i.i.i33.i, align 4 - %671 = add i32 %670, -1 - %672 = zext i32 %671 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2712 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2712: ; preds = %if.end.i.i.i.i2711, %if.then25.i - %retval.0.i.i.i.i2713 = phi i64 [ %672, %if.end.i.i.i.i2711 ], [ 4294967295, %if.then25.i ] - %arrayidx.i1.i.i.i2714 = getelementptr inbounds ptr, ptr %669, i64 %retval.0.i.i.i.i2713 - %673 = load ptr, ptr %arrayidx.i1.i.i.i2714, align 8 - %tobool.not.i.i2715 = icmp eq ptr %673, null - br i1 %tobool.not.i.i2715, label %if.end.i.i2719, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i2716 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i2716: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2712 - %m_ref_count.i.i.i.i2717 = getelementptr inbounds %class.ast, ptr %673, i64 0, i32 2 - %674 = load i32, ptr %m_ref_count.i.i.i.i2717, align 4 - %inc.i.i.i.i2718 = add i32 %674, 1 - store i32 %inc.i.i.i.i2718, ptr %m_ref_count.i.i.i.i2717, align 4 - br label %if.end.i.i2719 - -if.end.i.i2719: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i2716, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2712 - %675 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i.i2720 = icmp eq ptr %675, null - br i1 %tobool.not.i3.i.i2720, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2725, label %if.then.i.i.i.i2721 - -if.then.i.i.i.i2721: ; preds = %if.end.i.i2719 - %676 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i.i2723 = getelementptr inbounds %class.ast, ptr %675, i64 0, i32 2 - %677 = load i32, ptr %m_ref_count.i.i.i.i.i2723, align 4 - %dec.i.i.i.i.i2724 = add i32 %677, -1 - store i32 %dec.i.i.i.i.i2724, ptr %m_ref_count.i.i.i.i.i2723, align 4 - %cmp.i.i.i34.i = icmp eq i32 %dec.i.i.i.i.i2724, 0 - br i1 %cmp.i.i.i34.i, label %if.then2.i.i.i.i2743, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2725 - -if.then2.i.i.i.i2743: ; preds = %if.then.i.i.i.i2721 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %676, ptr noundef nonnull %675) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2725 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2725: ; preds = %if.then2.i.i.i.i2743, %if.then.i.i.i.i2721, %if.end.i.i2719 - store ptr %673, ptr %m_r.i48.i, align 8 - %678 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i37.i = icmp eq ptr %678, null - br i1 %cmp.i.i.i37.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2741, label %if.end.i.i.i38.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2741: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2725 - %.pre.i46.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i2742 = add i32 %.pre.i46.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2726 - -if.end.i.i.i38.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2725 - %arrayidx.i.i.i39.i = getelementptr inbounds i32, ptr %678, i64 -1 - %679 = load i32, ptr %arrayidx.i.i.i39.i, align 4 - %680 = add i32 %679, -1 - %681 = zext i32 %680 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2726 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2726: ; preds = %if.end.i.i.i38.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2741 - %dec.i.pre-phi.i.i2727 = phi i32 [ %.pre1.i.i2742, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2741 ], [ %680, %if.end.i.i.i38.i ] - %retval.0.i.i.i40.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2741 ], [ %681, %if.end.i.i.i38.i ] - %arrayidx.i1.i.i41.i = getelementptr inbounds ptr, ptr %678, i64 %retval.0.i.i.i40.i - %682 = load ptr, ptr %arrayidx.i1.i.i41.i, align 8 - %arrayidx.i.i42.i = getelementptr inbounds i32, ptr %678, i64 -1 - store i32 %dec.i.pre-phi.i.i2727, ptr %arrayidx.i.i42.i, align 4 - %683 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i43.i = icmp eq ptr %682, null - br i1 %tobool.not.i.i.i.i43.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2730, label %if.then.i.i.i.i44.i - -if.then.i.i.i.i44.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2726 - %m_ref_count.i.i.i.i.i45.i = getelementptr inbounds %class.ast, ptr %682, i64 0, i32 2 - %684 = load i32, ptr %m_ref_count.i.i.i.i.i45.i, align 4 - %dec.i.i.i.i.i.i2728 = add i32 %684, -1 - store i32 %dec.i.i.i.i.i.i2728, ptr %m_ref_count.i.i.i.i.i45.i, align 4 - %cmp.i.i.i.i.i2729 = icmp eq i32 %dec.i.i.i.i.i.i2728, 0 - br i1 %cmp.i.i.i.i.i2729, label %if.then2.i.i.i.i.i2740, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2730 - -if.then2.i.i.i.i.i2740: ; preds = %if.then.i.i.i.i44.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %683, ptr noundef nonnull %682) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2730 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2730: ; preds = %if.then2.i.i.i.i.i2740, %if.then.i.i.i.i44.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2726 - %685 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i49.i = icmp eq ptr %685, null - br i1 %cmp.i.i.i49.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i, label %if.end.i.i.i50.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2730 - %.pre.i64.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i65.i = add i32 %.pre.i64.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - -if.end.i.i.i50.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2730 - %arrayidx.i.i.i51.i = getelementptr inbounds i32, ptr %685, i64 -1 - %686 = load i32, ptr %arrayidx.i.i.i51.i, align 4 - %687 = add i32 %686, -1 - %688 = zext i32 %687 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i: ; preds = %if.end.i.i.i50.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i - %dec.i.pre-phi.i53.i = phi i32 [ %.pre1.i65.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i ], [ %687, %if.end.i.i.i50.i ] - %retval.0.i.i.i54.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i ], [ %688, %if.end.i.i.i50.i ] - %arrayidx.i1.i.i55.i = getelementptr inbounds ptr, ptr %685, i64 %retval.0.i.i.i54.i - %689 = load ptr, ptr %arrayidx.i1.i.i55.i, align 8 - %arrayidx.i.i56.i = getelementptr inbounds i32, ptr %685, i64 -1 - store i32 %dec.i.pre-phi.i53.i, ptr %arrayidx.i.i56.i, align 4 - %690 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i57.i = icmp eq ptr %689, null - br i1 %tobool.not.i.i.i.i57.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i, label %if.then.i.i.i.i58.i - -if.then.i.i.i.i58.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - %m_ref_count.i.i.i.i.i59.i = getelementptr inbounds %class.ast, ptr %689, i64 0, i32 2 - %691 = load i32, ptr %m_ref_count.i.i.i.i.i59.i, align 4 - %dec.i.i.i.i.i60.i = add i32 %691, -1 - store i32 %dec.i.i.i.i.i60.i, ptr %m_ref_count.i.i.i.i.i59.i, align 4 - %cmp.i.i.i.i61.i = icmp eq i32 %dec.i.i.i.i.i60.i, 0 - br i1 %cmp.i.i.i.i61.i, label %if.then2.i.i.i.i62.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - -if.then2.i.i.i.i62.i: ; preds = %if.then.i.i.i.i58.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %690, ptr noundef nonnull %689) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i: ; preds = %if.then2.i.i.i.i62.i, %if.then.i.i.i.i58.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - %692 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i68.i = icmp eq ptr %692, null - br i1 %tobool.not.i.i.i.i68.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i, label %if.then.i.i.i.i69.i - -if.then.i.i.i.i69.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - %m_ref_count.i.i.i.i.i70.i = getelementptr inbounds %class.ast, ptr %692, i64 0, i32 2 - %693 = load i32, ptr %m_ref_count.i.i.i.i.i70.i, align 4 - %inc.i.i.i.i.i71.i = add i32 %693, 1 - store i32 %inc.i.i.i.i.i71.i, ptr %m_ref_count.i.i.i.i.i70.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i: ; preds = %if.then.i.i.i.i69.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - %694 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i74.i = icmp eq ptr %694, null - br i1 %cmp.i.i74.i, label %if.then.i.i83.i, label %lor.lhs.false.i.i75.i - -lor.lhs.false.i.i75.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - %arrayidx.i.i76.i = getelementptr inbounds i32, ptr %694, i64 -1 - %695 = load i32, ptr %arrayidx.i.i76.i, align 4 - %arrayidx4.i.i77.i = getelementptr inbounds i32, ptr %694, i64 -2 - %696 = load i32, ptr %arrayidx4.i.i77.i, align 4 - %cmp5.i.i78.i = icmp eq i32 %695, %696 - br i1 %cmp5.i.i78.i, label %if.then.i.i83.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - -if.then.i.i83.i: ; preds = %lor.lhs.false.i.i75.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - %.pre.i.i84.i = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i85.i = getelementptr inbounds i32, ptr %.pre.i.i84.i, i64 -1 - %.pre1.i.i86.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i85.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i: ; preds = %if.then.i.i83.i, %lor.lhs.false.i.i75.i - %697 = phi i32 [ %.pre1.i.i86.i, %if.then.i.i83.i ], [ %695, %lor.lhs.false.i.i75.i ] - %698 = phi ptr [ %.pre.i.i84.i, %if.then.i.i83.i ], [ %694, %lor.lhs.false.i.i75.i ] - %idx.ext.i.i79.i = zext i32 %697 to i64 - %add.ptr.i.i80.i = getelementptr inbounds ptr, ptr %698, i64 %idx.ext.i.i79.i - store ptr %692, ptr %add.ptr.i.i80.i, align 8 - %699 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i81.i = getelementptr inbounds i32, ptr %699, i64 -1 - %700 = load i32, ptr %arrayidx10.i.i81.i, align 4 - %inc.i.i82.i = add i32 %700, 1 - store i32 %inc.i.i82.i, ptr %arrayidx10.i.i81.i, align 4 - %bf.load38.i = load i32, ptr %627, align 8 - %bf.clear39.i = and i32 %bf.load38.i, 1 - %tobool40.i.not = icmp eq i32 %bf.clear39.i, 0 - br i1 %tobool40.i.not, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i, label %if.then.i.i2739 - -if.then.i.i2739: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - %701 = load ptr, ptr %m_r.i48.i, align 8 - call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %625, i32 noundef 0, ptr noundef %701) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i - -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i: ; preds = %if.then.i.i2739, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - %702 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i89.i = getelementptr inbounds i32, ptr %702, i64 -1 - %703 = load i32, ptr %arrayidx.i89.i, align 4 - %dec.i.i2732 = add i32 %703, -1 - store i32 %dec.i.i2732, ptr %arrayidx.i89.i, align 4 - %this.val15.i2733 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i90.i = icmp eq ptr %this.val15.i2733, null - br i1 %cmp.i.i90.i, label %if.end42.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2734 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2734: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i - %arrayidx.i.i91.i = getelementptr inbounds i32, ptr %this.val15.i2733, i64 -1 - %704 = load i32, ptr %arrayidx.i.i91.i, align 4 - %cmp3.i.i92.i = icmp eq i32 %704, 0 - br i1 %cmp3.i.i92.i, label %if.end42.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2735 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2735: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2734 - %705 = add i32 %704, -1 - %706 = zext i32 %705 to i64 - %m_new_child.i.i2736 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i2733, i64 %706, i32 1 - %bf.load.i.i2737 = load i32, ptr %m_new_child.i.i2736, align 8 - %bf.set.i.i2738 = or i32 %bf.load.i.i2737, 2 - store i32 %bf.set.i.i2738, ptr %m_new_child.i.i2736, align 8 - br label %if.end42.i - -if.end42.i: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2734, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2735, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2704 - %707 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i95.i = icmp eq ptr %707, null - br i1 %tobool.not.i3.i95.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit, label %if.then.i.i.i96.i - -if.then.i.i.i96.i: ; preds = %if.end42.i - %708 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i98.i = getelementptr inbounds %class.ast, ptr %707, i64 0, i32 2 - %709 = load i32, ptr %m_ref_count.i.i.i.i98.i, align 4 - %dec.i.i.i.i99.i = add i32 %709, -1 - store i32 %dec.i.i.i.i99.i, ptr %m_ref_count.i.i.i.i98.i, align 4 - %cmp.i.i.i100.i2710 = icmp eq i32 %dec.i.i.i.i99.i, 0 - br i1 %cmp.i.i.i100.i2710, label %if.then2.i.i.i101.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit - -if.then2.i.i.i101.i: ; preds = %if.then.i.i.i96.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %708, ptr noundef nonnull %707) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit - -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit: ; preds = %if.end42.i, %if.then.i.i.i96.i, %if.then2.i.i.i101.i - store ptr null, ptr %m_r.i48.i, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.end.i.i401: ; preds = %if.else.i2686, %land.rhs.i.i.i, %land.lhs.true.i2677, %if.end14.i, %_ZNK11ast_manager6is_iteEPK4expr.exit.i, %while.body.i.i400 - %idxprom.i2671 = zext nneg i32 %bf.lshr3.i.i344 to i64 - %arrayidx.i2672 = getelementptr inbounds %class.app, ptr %625, i64 0, i32 3, i64 %idxprom.i2671 - %710 = load ptr, ptr %arrayidx.i2672, align 8 - %bf.shl.i.i403 = add i32 %bf.lshr.mask.i, 64 - %bf.clear13.i.i = and i32 %bf.load2.i.i343, 63 - %bf.set.i.i404 = or disjoint i32 %bf.shl.i.i403, %bf.clear13.i.i - store i32 %bf.set.i.i404, ptr %627, align 8 - %bf.lshr15.i.i = lshr i32 %bf.load2.i.i343, 4 - %bf.clear16.i.i = and i32 %bf.lshr15.i.i, 3 - %call17.i.i405 = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %710, i32 noundef %bf.clear16.i.i) - br i1 %call17.i.i405, label %while.cond.i.i342, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, !llvm.loop !29 - -while.end.i.i345: ; preds = %while.cond.i.i342 - %711 = load ptr, ptr %m_decl.i.i.i.i, align 8 - %712 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i2628 = icmp eq ptr %712, null - br i1 %cmp.i.i2628, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2633, label %if.end.i.i2629 - -if.end.i.i2629: ; preds = %while.end.i.i345 - %arrayidx.i.i2630 = getelementptr inbounds i32, ptr %712, i64 -1 - %713 = load i32, ptr %arrayidx.i.i2630, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2633 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2633: ; preds = %while.end.i.i345, %if.end.i.i2629 - %retval.0.i.i2632 = phi i32 [ %713, %if.end.i.i2629 ], [ 0, %while.end.i.i345 ] - %714 = load i32, ptr %m_spos.i, align 4 - %sub53.i.i = sub i32 %retval.0.i.i2632, %714 - %idx.ext.i.i351 = zext i32 %714 to i64 - %add.ptr.i.i352 = getelementptr inbounds ptr, ptr %712, i64 %idx.ext.i.i351 - %this.val59.i.i353 = load ptr, ptr %586, align 8 - store ptr null, ptr %new_t.i.i198, align 8 - store ptr %this.val59.i.i353, ptr %m_manager.i2624, align 8 - %715 = load ptr, ptr %613, align 8 - %call58.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(580) %715, ptr noundef nonnull %711, i32 noundef %sub53.i.i, ptr noundef %add.ptr.i.i352, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i, ptr noundef nonnull align 8 dereferenceable(16) %m_pr2.i.i357) - to label %invoke.cont.i.i359 unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp, !range !21 - -invoke.cont.i.i359: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2633 - %cmp59.not.i.i = icmp eq i32 %call58.i.i, 5 - br i1 %cmp59.not.i.i, label %if.else169.i.i, label %if.then60.i.i - -if.then60.i.i: ; preds = %invoke.cont.i.i359 - %716 = load i32, ptr %m_spos.i, align 4 - %717 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i2598 = icmp eq ptr %717, null - br i1 %cmp.i.i.i2598, label %invoke.cont63.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2599 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2599: ; preds = %if.then60.i.i - %arrayidx.i.i.i2602 = getelementptr inbounds i32, ptr %717, i64 -1 - %718 = load i32, ptr %arrayidx.i.i.i2602, align 4 - %719 = zext i32 %718 to i64 - %add.ptr.i.i2603 = getelementptr inbounds ptr, ptr %717, i64 %719 - %cmp3.i.i2604 = icmp ugt i32 %718, %716 - br i1 %cmp3.i.i2604, label %for.body.i.i2607.preheader, label %if.then.i.i2605 - -for.body.i.i2607.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2599 - %idx.ext.i2600 = zext i32 %716 to i64 - %add.ptr.i2601 = getelementptr inbounds ptr, ptr %717, i64 %idx.ext.i2600 - br label %for.body.i.i2607 - -for.body.i.i2607: ; preds = %for.body.i.i2607.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2614 - %it.04.i.i2608 = phi ptr [ %incdec.ptr.i.i2615, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2614 ], [ %add.ptr.i2601, %for.body.i.i2607.preheader ] - %720 = load ptr, ptr %it.04.i.i2608, align 8 - %721 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i.i2609 = icmp eq ptr %720, null - br i1 %tobool.not.i.i.i.i.i2609, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2614, label %if.then.i.i.i.i.i2610 - -if.then.i.i.i.i.i2610: ; preds = %for.body.i.i2607 - %m_ref_count.i.i.i.i.i.i2611 = getelementptr inbounds %class.ast, ptr %720, i64 0, i32 2 - %722 = load i32, ptr %m_ref_count.i.i.i.i.i.i2611, align 4 - %dec.i.i.i.i.i.i2612 = add i32 %722, -1 - store i32 %dec.i.i.i.i.i.i2612, ptr %m_ref_count.i.i.i.i.i.i2611, align 4 - %cmp.i.i.i.i.i2613 = icmp eq i32 %dec.i.i.i.i.i.i2612, 0 - br i1 %cmp.i.i.i.i.i2613, label %if.then2.i.i.i.i.i2620, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2614 - -if.then2.i.i.i.i.i2620: ; preds = %if.then.i.i.i.i.i2610 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %721, ptr noundef nonnull %720) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2614 unwind label %lpad.i.i358.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2614: ; preds = %if.then2.i.i.i.i.i2620, %if.then.i.i.i.i.i2610, %for.body.i.i2607 - %incdec.ptr.i.i2615 = getelementptr inbounds ptr, ptr %it.04.i.i2608, i64 1 - %cmp.i.i2616 = icmp ult ptr %incdec.ptr.i.i2615, %add.ptr.i.i2603 - br i1 %cmp.i.i2616, label %for.body.i.i2607, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2617, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2617: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2614 - %.pre.i2618 = load ptr, ptr %m_nodes.i.i424, align 8 - %tobool.not.i.i2619 = icmp eq ptr %.pre.i2618, null - br i1 %tobool.not.i.i2619, label %invoke.cont63.i.i, label %if.then.i.i2605 - -if.then.i.i2605: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2617, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2599 - %723 = phi ptr [ %.pre.i2618, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2617 ], [ %717, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2599 ] - %arrayidx.i.i2606 = getelementptr inbounds i32, ptr %723, i64 -1 - store i32 %716, ptr %arrayidx.i.i2606, align 4 - br label %invoke.cont63.i.i - -invoke.cont63.i.i: ; preds = %if.then.i.i2605, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2617, %if.then60.i.i - %724 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2575 = icmp eq ptr %724, null - br i1 %tobool.not.i.i.i.i2575, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2579, label %if.then.i.i.i.i2576 - -if.then.i.i.i.i2576: ; preds = %invoke.cont63.i.i - %m_ref_count.i.i.i.i.i2577 = getelementptr inbounds %class.ast, ptr %724, i64 0, i32 2 - %725 = load i32, ptr %m_ref_count.i.i.i.i.i2577, align 4 - %inc.i.i.i.i.i2578 = add i32 %725, 1 - store i32 %inc.i.i.i.i.i2578, ptr %m_ref_count.i.i.i.i.i2577, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2579 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2579: ; preds = %if.then.i.i.i.i2576, %invoke.cont63.i.i - %726 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i2581 = icmp eq ptr %726, null - br i1 %cmp.i.i2581, label %if.then.i.i2590, label %lor.lhs.false.i.i2582 - -lor.lhs.false.i.i2582: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2579 - %arrayidx.i.i2583 = getelementptr inbounds i32, ptr %726, i64 -1 - %727 = load i32, ptr %arrayidx.i.i2583, align 4 - %arrayidx4.i.i2584 = getelementptr inbounds i32, ptr %726, i64 -2 - %728 = load i32, ptr %arrayidx4.i.i2584, align 4 - %cmp5.i.i2585 = icmp eq i32 %727, %728 - br i1 %cmp5.i.i2585, label %if.then.i.i2590, label %if.then71.i.i - -if.then.i.i2590: ; preds = %lor.lhs.false.i.i2582, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2579 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - to label %.noexc2594 unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -.noexc2594: ; preds = %if.then.i.i2590 - %.pre.i.i2591 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i2592 = getelementptr inbounds i32, ptr %.pre.i.i2591, i64 -1 - %.pre1.i.i2593 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2592, align 4 - br label %if.then71.i.i - -if.then71.i.i: ; preds = %.noexc2594, %lor.lhs.false.i.i2582 - %729 = phi i32 [ %.pre1.i.i2593, %.noexc2594 ], [ %727, %lor.lhs.false.i.i2582 ] - %730 = phi ptr [ %.pre.i.i2591, %.noexc2594 ], [ %726, %lor.lhs.false.i.i2582 ] - %idx.ext.i.i2586 = zext i32 %729 to i64 - %add.ptr.i.i2587 = getelementptr inbounds ptr, ptr %730, i64 %idx.ext.i.i2586 - store ptr %724, ptr %add.ptr.i.i2587, align 8 - %731 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i2588 = getelementptr inbounds i32, ptr %731, i64 -1 - %732 = load i32, ptr %arrayidx10.i.i2588, align 4 - %inc.i.i2589 = add i32 %732, 1 - store i32 %inc.i.i2589, ptr %arrayidx10.i.i2588, align 4 - %bf.load77.i.i = load i32, ptr %627, align 8 - %bf.clear78.i.i = and i32 %bf.load77.i.i, 1 - %tobool.i.i364.not = icmp eq i32 %bf.clear78.i.i, 0 - br i1 %tobool.i.i364.not, label %invoke.cont79.i.i365, label %if.then.i2572 - -if.then.i2572: ; preds = %if.then71.i.i - %733 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %625, i32 noundef 0, ptr noundef %733) - to label %invoke.cont79.i.i365 unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -invoke.cont79.i.i365: ; preds = %if.then71.i.i, %if.then.i2572 - %734 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2568 = getelementptr inbounds i32, ptr %734, i64 -1 - %735 = load i32, ptr %arrayidx.i2568, align 4 - %dec.i2569 = add i32 %735, -1 - store i32 %dec.i2569, ptr %arrayidx.i2568, align 4 - %this.val62.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2558 = icmp eq ptr %this.val62.i.i, null - br i1 %cmp.i.i2558, label %invoke.cont81.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2559 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2559: ; preds = %invoke.cont79.i.i365 - %arrayidx.i.i2560 = getelementptr inbounds i32, ptr %this.val62.i.i, i64 -1 - %736 = load i32, ptr %arrayidx.i.i2560, align 4 - %cmp3.i.i2561 = icmp eq i32 %736, 0 - br i1 %cmp3.i.i2561, label %invoke.cont81.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2562 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2562: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2559 - %737 = add i32 %736, -1 - %738 = zext i32 %737 to i64 - %m_new_child.i2563 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val62.i.i, i64 %738, i32 1 - %bf.load.i2564 = load i32, ptr %m_new_child.i2563, align 8 - %bf.set.i2565 = or i32 %bf.load.i2564, 2 - store i32 %bf.set.i2565, ptr %m_new_child.i2563, align 8 - br label %invoke.cont81.i.i - -invoke.cont81.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2562, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2559, %invoke.cont79.i.i365 - %739 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2549 = icmp eq ptr %739, null - br i1 %tobool.not.i3.i2549, label %cleanup.i.i367.thread, label %if.then.i.i.i2550 - -if.then.i.i.i2550: ; preds = %invoke.cont81.i.i - %740 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i2552 = getelementptr inbounds %class.ast, ptr %739, i64 0, i32 2 - %741 = load i32, ptr %m_ref_count.i.i.i.i2552, align 4 - %dec.i.i.i.i2553 = add i32 %741, -1 - store i32 %dec.i.i.i.i2553, ptr %m_ref_count.i.i.i.i2552, align 4 - %cmp.i.i.i2554 = icmp eq i32 %dec.i.i.i.i2553, 0 - br i1 %cmp.i.i.i2554, label %if.then2.i.i.i2555, label %cleanup.i.i367.thread - -if.then2.i.i.i2555: ; preds = %if.then.i.i.i2550 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %740, ptr noundef nonnull %739) - to label %cleanup.i.i367.thread unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -lpad.i.i358.loopexit: ; preds = %if.then2.i.i.i.i.i2453 - %lpad.loopexit = landingpad { ptr, i32 } +sw.bb.i.i.i272: ; preds = %sw.bb.i.i258 + %m_num_args.i.i.i.i273 = getelementptr inbounds %class.app, ptr %626, i64 0, i32 2 + %645 = load i32, ptr %m_num_args.i.i.i.i273, align 8 + %m_decl.i.i.i.i.i.i.i = getelementptr inbounds %class.app, ptr %626, i64 0, i32 1 + %m_spos.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %622, i64 %retval.0.i.i.i42.i, i32 2 + %arrayidx.i17.i.i.i.i = getelementptr inbounds %class.app, ptr %626, i64 0, i32 3, i64 2 + %arrayidx.i.i.i25.i.i = getelementptr inbounds %class.app, ptr %626, i64 0, i32 3, i64 1 + br label %while.cond.i.i.i274 + +while.cond.i.i.i274: ; preds = %if.end.i.i.i319, %sw.bb.i.i.i272 + %bf.load2.i.i.i275 = load i32, ptr %628, align 8 + %bf.lshr3.i.i.i276 = lshr i32 %bf.load2.i.i.i275, 6 + %cmp.i26.i.i = icmp ult i32 %bf.lshr3.i.i.i276, %645 + br i1 %cmp.i26.i.i, label %while.body.i.i.i318, label %while.end.i.i.i277 + +while.body.i.i.i318: ; preds = %while.cond.i.i.i274 + %bf.lshr.mask.i.i.i.i = and i32 %bf.load2.i.i.i275, -64 + %cmp.i.i30.i.i = icmp eq i32 %bf.lshr.mask.i.i.i.i, 64 + br i1 %cmp.i.i30.i.i, label %land.lhs.true.i.i.i.i, label %if.end.i.i.i319 + +land.lhs.true.i.i.i.i: ; preds = %while.body.i.i.i318 + %bf.load.i.i.i.i.i.i.i = load i32, ptr %m_kind.i.i.i108, align 4 + %bf.clear.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i, 65535 + %cmp.i.i.i.i.i.i323 = icmp eq i32 %bf.clear.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i323, label %land.rhs.i.i.i.i.i.i, label %if.end.i.i.i319 + +land.rhs.i.i.i.i.i.i: ; preds = %land.lhs.true.i.i.i.i + %646 = load ptr, ptr %m_decl.i.i.i.i.i.i.i, align 8 + %m_info.i.i.i.i.i.i.i.i = getelementptr inbounds %class.decl, ptr %646, i64 0, i32 2 + %647 = load ptr, ptr %m_info.i.i.i.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i324 = icmp eq ptr %647, null + br i1 %tobool.not.i.i.i.i.i.i.i.i324, label %if.end.i.i.i319, label %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i + +_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i.i + %648 = load i32, ptr %647, align 8 + %cmp.i.i.i.i.i.i.i.i.i325 = icmp eq i32 %648, 0 + %m_kind.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %647, i64 0, i32 1 + %649 = load i32, ptr %m_kind.i.i.i.i.i.i.i.i.i, align 4 + %cmp2.i.i.i.i.i.i.i.i.i = icmp eq i32 %649, 4 + %650 = select i1 %cmp.i.i.i.i.i.i.i.i.i325, i1 %cmp2.i.i.i.i.i.i.i.i.i, i1 false + br i1 %650, label %if.then.i.i32.i.i, label %if.end.i.i.i319 + +if.then.i.i32.i.i: ; preds = %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i + %651 = load i32, ptr %m_spos.i.i.i.i, align 4 + %652 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %idxprom.i.i.i.i.i.i = zext i32 %651 to i64 + %arrayidx.i.i.i.i.i.i326 = getelementptr inbounds ptr, ptr %652, i64 %idxprom.i.i.i.i.i.i + %653 = load ptr, ptr %arrayidx.i.i.i.i.i.i326, align 8 + %this.val13.i.i.i.i = load ptr, ptr %587, align 8 + %m_true.i.i.i.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i.i.i.i, i64 0, i32 15 + %654 = load ptr, ptr %m_true.i.i.i.i.i, align 8 + %cmp.i.i.i33.i.i = icmp eq ptr %654, %653 + br i1 %cmp.i.i.i33.i.i, label %if.end14.i.i.i.i, label %if.else.i.i.i.i327 + +if.else.i.i.i.i327: ; preds = %if.then.i.i32.i.i + %m_false.i.i.i.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i.i.i.i, i64 0, i32 16 + %655 = load ptr, ptr %m_false.i.i.i.i.i, align 8 + %cmp.i16.i.i.i.i = icmp eq ptr %655, %653 + br i1 %cmp.i16.i.i.i.i, label %if.end14.i.i.i.i, label %if.end.i.i.i319 + +if.end14.i.i.i.i: ; preds = %if.else.i.i.i.i327, %if.then.i.i32.i.i + %arg.0.in.i.i.i.i = phi ptr [ %arrayidx.i.i.i25.i.i, %if.then.i.i32.i.i ], [ %arrayidx.i17.i.i.i.i, %if.else.i.i.i.i327 ] + %arg.0.i.i.i.i = load ptr, ptr %arg.0.in.i.i.i.i, align 8 + %tobool.not.i.i.i.i328 = icmp eq ptr %arg.0.i.i.i.i, null + br i1 %tobool.not.i.i.i.i328, label %if.end.i.i.i319, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i: ; preds = %if.end14.i.i.i.i + %arrayidx.i.i.i.i.i.i.i329 = getelementptr inbounds i32, ptr %652, i64 -1 + %656 = load i32, ptr %arrayidx.i.i.i.i.i.i.i329, align 4 + %657 = zext i32 %656 to i64 + %add.ptr.i.i.i.i.i.i330 = getelementptr inbounds ptr, ptr %652, i64 %657 + %cmp3.i.i.i.i.i.i331 = icmp ugt i32 %656, %651 + br i1 %cmp3.i.i.i.i.i.i331, label %for.body.i.i.i.i.i.i349.preheader, label %if.then.i.i.i.i34.i.i + +for.body.i.i.i.i.i.i349.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + %arrayidx.i.i.i.i.i.i326.le = getelementptr inbounds ptr, ptr %652, i64 %idxprom.i.i.i.i.i.i + br label %for.body.i.i.i.i.i.i349 + +for.body.i.i.i.i.i.i349: ; preds = %for.body.i.i.i.i.i.i349.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i355 + %it.04.i.i.i.i.i.i350 = phi ptr [ %incdec.ptr.i.i.i.i.i.i356, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i355 ], [ %arrayidx.i.i.i.i.i.i326.le, %for.body.i.i.i.i.i.i349.preheader ] + %658 = load ptr, ptr %it.04.i.i.i.i.i.i350, align 8 + %659 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i.i351 = icmp eq ptr %658, null + br i1 %tobool.not.i.i.i.i.i.i.i.i.i351, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i355, label %if.then.i.i.i.i.i.i.i.i.i352 + +if.then.i.i.i.i.i.i.i.i.i352: ; preds = %for.body.i.i.i.i.i.i349 + %m_ref_count.i.i.i.i.i.i.i.i.i.i353 = getelementptr inbounds %class.ast, ptr %658, i64 0, i32 2 + %660 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i353, align 4 + %dec.i.i.i.i.i.i.i.i.i.i354 = add i32 %660, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i.i354, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i353, align 4 + %cmp.i.i.i.i.i21.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i.i354, 0 + br i1 %cmp.i.i.i.i.i21.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i.i358, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i355 + +if.then2.i.i.i.i.i.i.i.i.i358: ; preds = %if.then.i.i.i.i.i.i.i.i.i352 + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %659, ptr noundef nonnull %658) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i355 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i355: ; preds = %if.then2.i.i.i.i.i.i.i.i.i358, %if.then.i.i.i.i.i.i.i.i.i352, %for.body.i.i.i.i.i.i349 + %incdec.ptr.i.i.i.i.i.i356 = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i.i350, i64 1 + %cmp.i.i22.i.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i.i356, %add.ptr.i.i.i.i.i.i330 + br i1 %cmp.i.i22.i.i.i.i, label %for.body.i.i.i.i.i.i349, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i355 + %.pre.i.i.i.i.i357 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i.i.i38.i.i = icmp eq ptr %.pre.i.i.i.i.i357, null + br i1 %tobool.not.i.i.i.i38.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i34.i.i + +if.then.i.i.i.i34.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + %661 = phi ptr [ %.pre.i.i.i.i.i357, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i ], [ %652, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i ] + %arrayidx.i.i20.i.i.i.i = getelementptr inbounds i32, ptr %661, i64 -1 + store i32 %651, ptr %arrayidx.i.i20.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i34.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i332 = getelementptr inbounds %class.ast, ptr %arg.0.i.i.i.i, i64 0, i32 2 + %662 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i332, align 4 + %inc.i.i.i.i.i.i.i.i.i = add i32 %662, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i332, align 4 + %663 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i26.i.i.i.i = icmp eq ptr %663, null + br i1 %cmp.i.i26.i.i.i.i, label %if.then.i.i29.i.i.i.i, label %lor.lhs.false.i.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + %arrayidx.i.i27.i.i.i.i = getelementptr inbounds i32, ptr %663, i64 -1 + %664 = load i32, ptr %arrayidx.i.i27.i.i.i.i, align 4 + %arrayidx4.i.i.i.i.i.i = getelementptr inbounds i32, ptr %663, i64 -2 + %665 = load i32, ptr %arrayidx4.i.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i.i = icmp eq i32 %664, %665 + br i1 %cmp5.i.i.i.i.i.i, label %if.then.i.i29.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + +if.then.i.i29.i.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i.i.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i29.i.i.i.i, %lor.lhs.false.i.i.i.i.i.i + %666 = phi i32 [ %.pre1.i.i.i.i.i.i, %if.then.i.i29.i.i.i.i ], [ %664, %lor.lhs.false.i.i.i.i.i.i ] + %667 = phi ptr [ %.pre.i.i.i.i.i.i, %if.then.i.i29.i.i.i.i ], [ %663, %lor.lhs.false.i.i.i.i.i.i ] + %idx.ext.i.i.i.i.i.i = zext i32 %666 to i64 + %add.ptr.i.i28.i.i.i.i = getelementptr inbounds ptr, ptr %667, i64 %idx.ext.i.i.i.i.i.i + store ptr %arg.0.i.i.i.i, ptr %add.ptr.i.i28.i.i.i.i, align 8 + %668 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i.i.i = getelementptr inbounds i32, ptr %668, i64 -1 + %669 = load i32, ptr %arrayidx10.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i333 = add i32 %669, 1 + store i32 %inc.i.i.i.i.i.i333, ptr %arrayidx10.i.i.i.i.i.i, align 4 + %bf.load20.i.i.i.i = load i32, ptr %628, align 8 + %bf.clear.i.i.i.i = and i32 %bf.load20.i.i.i.i, -13 + %bf.set.i.i35.i.i = or disjoint i32 %bf.clear.i.i.i.i, 4 + store i32 %bf.set.i.i35.i.i, ptr %628, align 8 + %bf.lshr22.i.i.i.i = lshr i32 %bf.load20.i.i.i.i, 4 + %bf.clear23.i.i.i.i = and i32 %bf.lshr22.i.i.i.i, 3 + %call24.i.i.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %arg.0.i.i.i.i, i32 noundef %bf.clear23.i.i.i.i) + br i1 %call24.i.i.i.i, label %if.then25.i.i.i.i, label %if.end42.i.i.i.i + +if.then25.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + %670 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i32.i.i.i.i = icmp eq ptr %670, null + br i1 %cmp.i.i.i32.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i, label %if.end.i.i.i.i.i.i.i + +if.end.i.i.i.i.i.i.i: ; preds = %if.then25.i.i.i.i + %arrayidx.i.i.i33.i.i.i.i = getelementptr inbounds i32, ptr %670, i64 -1 + %671 = load i32, ptr %arrayidx.i.i.i33.i.i.i.i, align 4 + %672 = add i32 %671, -1 + %673 = zext i32 %672 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i, %if.then25.i.i.i.i + %retval.0.i.i.i.i.i.i.i = phi i64 [ %673, %if.end.i.i.i.i.i.i.i ], [ 4294967295, %if.then25.i.i.i.i ] + %arrayidx.i1.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %670, i64 %retval.0.i.i.i.i.i.i.i + %674 = load ptr, ptr %arrayidx.i1.i.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i48.i = icmp eq ptr %674, null + br i1 %tobool.not.i.i.i.i48.i, label %if.end.i.i.i.i.i335, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i334 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i334: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + %m_ref_count.i.i.i.i.i36.i.i = getelementptr inbounds %class.ast, ptr %674, i64 0, i32 2 + %675 = load i32, ptr %m_ref_count.i.i.i.i.i36.i.i, align 4 + %inc.i.i.i.i.i37.i.i = add i32 %675, 1 + store i32 %inc.i.i.i.i.i37.i.i, ptr %m_ref_count.i.i.i.i.i36.i.i, align 4 + br label %if.end.i.i.i.i.i335 + +if.end.i.i.i.i.i335: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i334, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + %676 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i.i.i.i = icmp eq ptr %676, null + br i1 %tobool.not.i3.i.i.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i336 + +if.then.i.i.i.i.i.i.i336: ; preds = %if.end.i.i.i.i.i335 + %677 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i.i.i.i.i337 = getelementptr inbounds %class.ast, ptr %676, i64 0, i32 2 + %678 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i337, align 4 + %dec.i.i.i.i.i.i.i.i338 = add i32 %678, -1 + store i32 %dec.i.i.i.i.i.i.i.i338, ptr %m_ref_count.i.i.i.i.i.i.i.i337, align 4 + %cmp.i.i.i34.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i338, 0 + br i1 %cmp.i.i.i34.i.i.i.i, label %if.then2.i.i.i.i.i.i.i348, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + +if.then2.i.i.i.i.i.i.i348: ; preds = %if.then.i.i.i.i.i.i.i336 + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %677, ptr noundef nonnull %676) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i348, %if.then.i.i.i.i.i.i.i336, %if.end.i.i.i.i.i335 + store ptr %674, ptr %m_r.i64.i.i, align 8 + %679 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i37.i.i.i.i = icmp eq ptr %679, null + br i1 %cmp.i.i.i37.i.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i, label %if.end.i.i.i38.i.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + %.pre.i46.i.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i.i.i347 = add i32 %.pre.i46.i.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + +if.end.i.i.i38.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + %arrayidx.i.i.i39.i.i.i.i = getelementptr inbounds i32, ptr %679, i64 -1 + %680 = load i32, ptr %arrayidx.i.i.i39.i.i.i.i, align 4 + %681 = add i32 %680, -1 + %682 = zext i32 %681 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i: ; preds = %if.end.i.i.i38.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i + %dec.i.pre-phi.i.i.i.i.i = phi i32 [ %.pre1.i.i.i.i.i347, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i ], [ %681, %if.end.i.i.i38.i.i.i.i ] + %retval.0.i.i.i40.i.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i ], [ %682, %if.end.i.i.i38.i.i.i.i ] + %arrayidx.i1.i.i41.i.i.i.i = getelementptr inbounds ptr, ptr %679, i64 %retval.0.i.i.i40.i.i.i.i + %683 = load ptr, ptr %arrayidx.i1.i.i41.i.i.i.i, align 8 + %arrayidx.i.i42.i.i.i.i = getelementptr inbounds i32, ptr %679, i64 -1 + store i32 %dec.i.pre-phi.i.i.i.i.i, ptr %arrayidx.i.i42.i.i.i.i, align 4 + %684 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i43.i.i.i.i = icmp eq ptr %683, null + br i1 %tobool.not.i.i.i.i43.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i, label %if.then.i.i.i.i44.i.i.i.i + +if.then.i.i.i.i44.i.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + %m_ref_count.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %class.ast, ptr %683, i64 0, i32 2 + %685 = load i32, ptr %m_ref_count.i.i.i.i.i45.i.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i339 = add i32 %685, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i339, ptr %m_ref_count.i.i.i.i.i45.i.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i340 = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i339, 0 + br i1 %cmp.i.i.i.i.i.i.i.i340, label %if.then2.i.i.i.i.i.i.i.i346, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i346: ; preds = %if.then.i.i.i.i44.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %684, ptr noundef nonnull %683) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i346, %if.then.i.i.i.i44.i.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + %686 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i49.i.i.i.i = icmp eq ptr %686, null + br i1 %cmp.i.i.i49.i.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i, label %if.end.i.i.i50.i.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + %.pre.i64.i.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i65.i.i.i.i = add i32 %.pre.i64.i.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + +if.end.i.i.i50.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + %arrayidx.i.i.i51.i.i.i.i = getelementptr inbounds i32, ptr %686, i64 -1 + %687 = load i32, ptr %arrayidx.i.i.i51.i.i.i.i, align 4 + %688 = add i32 %687, -1 + %689 = zext i32 %688 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i: ; preds = %if.end.i.i.i50.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i + %dec.i.pre-phi.i53.i.i.i.i = phi i32 [ %.pre1.i65.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i ], [ %688, %if.end.i.i.i50.i.i.i.i ] + %retval.0.i.i.i54.i.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i ], [ %689, %if.end.i.i.i50.i.i.i.i ] + %arrayidx.i1.i.i55.i.i.i.i = getelementptr inbounds ptr, ptr %686, i64 %retval.0.i.i.i54.i.i.i.i + %690 = load ptr, ptr %arrayidx.i1.i.i55.i.i.i.i, align 8 + %arrayidx.i.i56.i.i.i.i = getelementptr inbounds i32, ptr %686, i64 -1 + store i32 %dec.i.pre-phi.i53.i.i.i.i, ptr %arrayidx.i.i56.i.i.i.i, align 4 + %691 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i57.i.i.i.i = icmp eq ptr %690, null + br i1 %tobool.not.i.i.i.i57.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i, label %if.then.i.i.i.i58.i.i.i.i + +if.then.i.i.i.i58.i.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + %m_ref_count.i.i.i.i.i59.i.i.i.i = getelementptr inbounds %class.ast, ptr %690, i64 0, i32 2 + %692 = load i32, ptr %m_ref_count.i.i.i.i.i59.i.i.i.i, align 4 + %dec.i.i.i.i.i60.i.i.i.i = add i32 %692, -1 + store i32 %dec.i.i.i.i.i60.i.i.i.i, ptr %m_ref_count.i.i.i.i.i59.i.i.i.i, align 4 + %cmp.i.i.i.i61.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i60.i.i.i.i, 0 + br i1 %cmp.i.i.i.i61.i.i.i.i, label %if.then2.i.i.i.i62.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + +if.then2.i.i.i.i62.i.i.i.i: ; preds = %if.then.i.i.i.i58.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %691, ptr noundef nonnull %690) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i: ; preds = %if.then2.i.i.i.i62.i.i.i.i, %if.then.i.i.i.i58.i.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + %693 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i68.i.i.i.i = icmp eq ptr %693, null + br i1 %tobool.not.i.i.i.i68.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i, label %if.then.i.i.i.i69.i.i.i.i + +if.then.i.i.i.i69.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + %m_ref_count.i.i.i.i.i70.i.i.i.i = getelementptr inbounds %class.ast, ptr %693, i64 0, i32 2 + %694 = load i32, ptr %m_ref_count.i.i.i.i.i70.i.i.i.i, align 4 + %inc.i.i.i.i.i71.i.i.i.i = add i32 %694, 1 + store i32 %inc.i.i.i.i.i71.i.i.i.i, ptr %m_ref_count.i.i.i.i.i70.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i: ; preds = %if.then.i.i.i.i69.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + %695 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i74.i.i.i.i = icmp eq ptr %695, null + br i1 %cmp.i.i74.i.i.i.i, label %if.then.i.i83.i.i.i.i, label %lor.lhs.false.i.i75.i.i.i.i + +lor.lhs.false.i.i75.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + %arrayidx.i.i76.i.i.i.i = getelementptr inbounds i32, ptr %695, i64 -1 + %696 = load i32, ptr %arrayidx.i.i76.i.i.i.i, align 4 + %arrayidx4.i.i77.i.i.i.i = getelementptr inbounds i32, ptr %695, i64 -2 + %697 = load i32, ptr %arrayidx4.i.i77.i.i.i.i, align 4 + %cmp5.i.i78.i.i.i.i = icmp eq i32 %696, %697 + br i1 %cmp5.i.i78.i.i.i.i, label %if.then.i.i83.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + +if.then.i.i83.i.i.i.i: ; preds = %lor.lhs.false.i.i75.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i84.i.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i85.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i84.i.i.i.i, i64 -1 + %.pre1.i.i86.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i85.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i: ; preds = %if.then.i.i83.i.i.i.i, %lor.lhs.false.i.i75.i.i.i.i + %698 = phi i32 [ %.pre1.i.i86.i.i.i.i, %if.then.i.i83.i.i.i.i ], [ %696, %lor.lhs.false.i.i75.i.i.i.i ] + %699 = phi ptr [ %.pre.i.i84.i.i.i.i, %if.then.i.i83.i.i.i.i ], [ %695, %lor.lhs.false.i.i75.i.i.i.i ] + %idx.ext.i.i79.i.i.i.i = zext i32 %698 to i64 + %add.ptr.i.i80.i.i.i.i = getelementptr inbounds ptr, ptr %699, i64 %idx.ext.i.i79.i.i.i.i + store ptr %693, ptr %add.ptr.i.i80.i.i.i.i, align 8 + %700 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i81.i.i.i.i = getelementptr inbounds i32, ptr %700, i64 -1 + %701 = load i32, ptr %arrayidx10.i.i81.i.i.i.i, align 4 + %inc.i.i82.i.i.i.i = add i32 %701, 1 + store i32 %inc.i.i82.i.i.i.i, ptr %arrayidx10.i.i81.i.i.i.i, align 4 + %bf.load38.i.i.i.i = load i32, ptr %628, align 8 + %bf.clear39.i.i.i.i = and i32 %bf.load38.i.i.i.i, 1 + %tobool40.not.i.i.i.i = icmp eq i32 %bf.clear39.i.i.i.i, 0 + br i1 %tobool40.not.i.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i, label %if.then.i.i.i.i49.i + +if.then.i.i.i.i49.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + %702 = load ptr, ptr %m_r.i64.i.i, align 8 + call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %626, i32 noundef 0, ptr noundef %702) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i: ; preds = %if.then.i.i.i.i49.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + %703 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i89.i.i.i.i = getelementptr inbounds i32, ptr %703, i64 -1 + %704 = load i32, ptr %arrayidx.i89.i.i.i.i, align 4 + %dec.i.i.i.i50.i = add i32 %704, -1 + store i32 %dec.i.i.i.i50.i, ptr %arrayidx.i89.i.i.i.i, align 4 + %this.val15.i.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i90.i.i.i.i = icmp eq ptr %this.val15.i.i.i.i, null + br i1 %cmp.i.i90.i.i.i.i, label %if.end42.i.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i341 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i341: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i + %arrayidx.i.i91.i.i.i.i = getelementptr inbounds i32, ptr %this.val15.i.i.i.i, i64 -1 + %705 = load i32, ptr %arrayidx.i.i91.i.i.i.i, align 4 + %cmp3.i.i92.i.i.i.i = icmp eq i32 %705, 0 + br i1 %cmp3.i.i92.i.i.i.i, label %if.end42.i.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i342 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i342: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i341 + %706 = add i32 %705, -1 + %707 = zext i32 %706 to i64 + %m_new_child.i.i.i.i.i343 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i.i.i.i, i64 %707, i32 1 + %bf.load.i.i.i.i.i344 = load i32, ptr %m_new_child.i.i.i.i.i343, align 8 + %bf.set.i.i.i.i.i345 = or i32 %bf.load.i.i.i.i.i344, 2 + store i32 %bf.set.i.i.i.i.i345, ptr %m_new_child.i.i.i.i.i343, align 8 + br label %if.end42.i.i.i.i + +if.end42.i.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i342, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i341, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + %708 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i95.i.i.i.i = icmp eq ptr %708, null + br i1 %tobool.not.i3.i95.i.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i, label %if.then.i.i.i96.i.i.i.i + +if.then.i.i.i96.i.i.i.i: ; preds = %if.end42.i.i.i.i + %709 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i98.i.i.i.i = getelementptr inbounds %class.ast, ptr %708, i64 0, i32 2 + %710 = load i32, ptr %m_ref_count.i.i.i.i98.i.i.i.i, align 4 + %dec.i.i.i.i99.i.i.i.i = add i32 %710, -1 + store i32 %dec.i.i.i.i99.i.i.i.i, ptr %m_ref_count.i.i.i.i98.i.i.i.i, align 4 + %cmp.i.i.i100.i.i.i.i = icmp eq i32 %dec.i.i.i.i99.i.i.i.i, 0 + br i1 %cmp.i.i.i100.i.i.i.i, label %if.then2.i.i.i101.i.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + +if.then2.i.i.i101.i.i.i.i: ; preds = %if.then.i.i.i96.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %709, ptr noundef nonnull %708) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i: ; preds = %if.then2.i.i.i101.i.i.i.i, %if.then.i.i.i96.i.i.i.i, %if.end42.i.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.end.i.i.i319: ; preds = %if.end14.i.i.i.i, %if.else.i.i.i.i327, %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i, %land.rhs.i.i.i.i.i.i, %land.lhs.true.i.i.i.i, %while.body.i.i.i318 + %idxprom.i.i.i.i320 = zext nneg i32 %bf.lshr3.i.i.i276 to i64 + %arrayidx.i.i31.i.i = getelementptr inbounds %class.app, ptr %626, i64 0, i32 3, i64 %idxprom.i.i.i.i320 + %711 = load ptr, ptr %arrayidx.i.i31.i.i, align 8 + %bf.shl.i.i.i321 = add i32 %bf.lshr.mask.i.i.i.i, 64 + %bf.clear13.i.i.i = and i32 %bf.load2.i.i.i275, 63 + %bf.set.i.i.i322 = or disjoint i32 %bf.shl.i.i.i321, %bf.clear13.i.i.i + store i32 %bf.set.i.i.i322, ptr %628, align 8 + %bf.lshr15.i.i.i = lshr i32 %bf.load2.i.i.i275, 4 + %bf.clear16.i.i.i = and i32 %bf.lshr15.i.i.i, 3 + %call17.i.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %711, i32 noundef %bf.clear16.i.i.i) + br i1 %call17.i.i.i, label %while.cond.i.i.i274, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, !llvm.loop !29 + +while.end.i.i.i277: ; preds = %while.cond.i.i.i274 + %712 = load ptr, ptr %m_decl.i.i.i.i.i.i.i, align 8 + %713 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i90.i.i.i = icmp eq ptr %713, null + br i1 %cmp.i.i90.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i278, label %if.end.i.i91.i.i.i + +if.end.i.i91.i.i.i: ; preds = %while.end.i.i.i277 + %arrayidx.i.i92.i.i.i = getelementptr inbounds i32, ptr %713, i64 -1 + %714 = load i32, ptr %arrayidx.i.i92.i.i.i, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i278 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i278: ; preds = %if.end.i.i91.i.i.i, %while.end.i.i.i277 + %retval.0.i.i.i.i.i279 = phi i32 [ %714, %if.end.i.i91.i.i.i ], [ 0, %while.end.i.i.i277 ] + %715 = load i32, ptr %m_spos.i.i.i.i, align 4 + %sub53.i.i.i = sub i32 %retval.0.i.i.i.i.i279, %715 + %idx.ext.i.i.i280 = zext i32 %715 to i64 + %add.ptr.i.i.i281 = getelementptr inbounds ptr, ptr %713, i64 %idx.ext.i.i.i280 + %this.val59.i.i.i282 = load ptr, ptr %587, align 8 + store ptr null, ptr %new_t.i.i.i44, align 8 + store ptr %this.val59.i.i.i282, ptr %m_manager.i.i.i.i85, align 8 + %716 = load ptr, ptr %614, align 8 + %call58.i.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(580) %716, ptr noundef nonnull %712, i32 noundef %sub53.i.i.i, ptr noundef %add.ptr.i.i.i281, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i64.i.i, ptr noundef nonnull align 8 dereferenceable(16) %m_pr2.i.i.i86) + to label %invoke.cont.i.i.i283 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i, !range !21 + +invoke.cont.i.i.i283: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i278 + %cmp59.not.i.i.i = icmp eq i32 %call58.i.i.i, 5 + br i1 %cmp59.not.i.i.i, label %if.else169.i.i.i, label %if.then60.i.i.i + +if.then60.i.i.i: ; preds = %invoke.cont.i.i.i283 + %717 = load i32, ptr %m_spos.i.i.i.i, align 4 + %718 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i97.i.i.i = icmp eq ptr %718, null + br i1 %cmp.i.i.i97.i.i.i, label %invoke.cont63.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i284 + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i284: ; preds = %if.then60.i.i.i + %arrayidx.i.i.i98.i.i.i = getelementptr inbounds i32, ptr %718, i64 -1 + %719 = load i32, ptr %arrayidx.i.i.i98.i.i.i, align 4 + %720 = zext i32 %719 to i64 + %add.ptr.i.i.i.i.i285 = getelementptr inbounds ptr, ptr %718, i64 %720 + %cmp3.i.i99.i.i.i = icmp ugt i32 %719, %717 + br i1 %cmp3.i.i99.i.i.i, label %for.body.i.i.preheader.i.i.i301, label %if.then.i.i100.i.i.i + +for.body.i.i.preheader.i.i.i301: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i284 + %idx.ext.i.i27.i.i = zext i32 %717 to i64 + %add.ptr.i.i28.i.i = getelementptr inbounds ptr, ptr %718, i64 %idx.ext.i.i27.i.i + br label %for.body.i.i.i.i.i302 + +for.body.i.i.i.i.i302: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i305, %for.body.i.i.preheader.i.i.i301 + %it.04.i.i.i.i.i303 = phi ptr [ %incdec.ptr.i.i.i.i.i306, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i305 ], [ %add.ptr.i.i28.i.i, %for.body.i.i.preheader.i.i.i301 ] + %721 = load ptr, ptr %it.04.i.i.i.i.i303, align 8 + %722 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i102.i.i.i = icmp eq ptr %721, null + br i1 %tobool.not.i.i.i.i.i102.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i305, label %if.then.i.i.i.i.i.i.i.i304 + +if.then.i.i.i.i.i.i.i.i304: ; preds = %for.body.i.i.i.i.i302 + %m_ref_count.i.i.i.i.i.i103.i.i.i = getelementptr inbounds %class.ast, ptr %721, i64 0, i32 2 + %723 = load i32, ptr %m_ref_count.i.i.i.i.i.i103.i.i.i, align 4 + %dec.i.i.i.i.i.i104.i.i.i = add i32 %723, -1 + store i32 %dec.i.i.i.i.i.i104.i.i.i, ptr %m_ref_count.i.i.i.i.i.i103.i.i.i, align 4 + %cmp.i.i.i.i.i105.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i104.i.i.i, 0 + br i1 %cmp.i.i.i.i.i105.i.i.i, label %if.then2.i.i.i.i.i108.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i305 + +if.then2.i.i.i.i.i108.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i304 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %722, ptr noundef nonnull %721) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i305 unwind label %lpad.loopexit.split-lp.loopexit.i.i.i308 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i305: ; preds = %if.then2.i.i.i.i.i108.i.i.i, %if.then.i.i.i.i.i.i.i.i304, %for.body.i.i.i.i.i302 + %incdec.ptr.i.i.i.i.i306 = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i303, i64 1 + %cmp.i.i106.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i306, %add.ptr.i.i.i.i.i285 + br i1 %cmp.i.i106.i.i.i, label %for.body.i.i.i.i.i302, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i307, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i307: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i305 + %.pre.i.i29.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i107.i.i.i = icmp eq ptr %.pre.i.i29.i.i, null + br i1 %tobool.not.i.i107.i.i.i, label %invoke.cont63.i.i.i, label %if.then.i.i100.i.i.i + +if.then.i.i100.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i307, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i284 + %724 = phi ptr [ %.pre.i.i29.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i307 ], [ %718, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i284 ] + %arrayidx.i.i101.i.i.i = getelementptr inbounds i32, ptr %724, i64 -1 + store i32 %717, ptr %arrayidx.i.i101.i.i.i, align 4 + br label %invoke.cont63.i.i.i + +invoke.cont63.i.i.i: ; preds = %if.then.i.i100.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i307, %if.then60.i.i.i + %725 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i286 = icmp eq ptr %725, null + br i1 %tobool.not.i.i.i.i.i.i.i286, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i288, label %if.then.i.i.i.i110.i.i.i + +if.then.i.i.i.i110.i.i.i: ; preds = %invoke.cont63.i.i.i + %m_ref_count.i.i.i.i.i111.i.i.i = getelementptr inbounds %class.ast, ptr %725, i64 0, i32 2 + %726 = load i32, ptr %m_ref_count.i.i.i.i.i111.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i287 = add i32 %726, 1 + store i32 %inc.i.i.i.i.i.i.i.i287, ptr %m_ref_count.i.i.i.i.i111.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i288 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i288: ; preds = %if.then.i.i.i.i110.i.i.i, %invoke.cont63.i.i.i + %727 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i113.i.i.i = icmp eq ptr %727, null + br i1 %cmp.i.i113.i.i.i, label %if.then.i.i116.i.i.i, label %lor.lhs.false.i.i.i.i.i289 + +lor.lhs.false.i.i.i.i.i289: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i288 + %arrayidx.i.i114.i.i.i = getelementptr inbounds i32, ptr %727, i64 -1 + %728 = load i32, ptr %arrayidx.i.i114.i.i.i, align 4 + %arrayidx4.i.i.i.i.i290 = getelementptr inbounds i32, ptr %727, i64 -2 + %729 = load i32, ptr %arrayidx4.i.i.i.i.i290, align 4 + %cmp5.i.i.i.i.i291 = icmp eq i32 %728, %729 + br i1 %cmp5.i.i.i.i.i291, label %if.then.i.i116.i.i.i, label %if.then71.i.i.i + +if.then.i.i116.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i289, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i288 + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc119.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc119.i.i.i: ; preds = %if.then.i.i116.i.i.i + %.pre.i.i117.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i300 = getelementptr inbounds i32, ptr %.pre.i.i117.i.i.i, i64 -1 + %.pre1.i.i118.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i300, align 4 + br label %if.then71.i.i.i + +if.then71.i.i.i: ; preds = %.noexc119.i.i.i, %lor.lhs.false.i.i.i.i.i289 + %730 = phi i32 [ %.pre1.i.i118.i.i.i, %.noexc119.i.i.i ], [ %728, %lor.lhs.false.i.i.i.i.i289 ] + %731 = phi ptr [ %.pre.i.i117.i.i.i, %.noexc119.i.i.i ], [ %727, %lor.lhs.false.i.i.i.i.i289 ] + %idx.ext.i.i.i.i.i292 = zext i32 %730 to i64 + %add.ptr.i.i115.i.i.i = getelementptr inbounds ptr, ptr %731, i64 %idx.ext.i.i.i.i.i292 + store ptr %725, ptr %add.ptr.i.i115.i.i.i, align 8 + %732 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i.i293 = getelementptr inbounds i32, ptr %732, i64 -1 + %733 = load i32, ptr %arrayidx10.i.i.i.i.i293, align 4 + %inc.i.i.i.i.i294 = add i32 %733, 1 + store i32 %inc.i.i.i.i.i294, ptr %arrayidx10.i.i.i.i.i293, align 4 + %bf.load77.i.i.i = load i32, ptr %628, align 8 + %bf.clear78.i.i.i = and i32 %bf.load77.i.i.i, 1 + %tobool.not.i.i.i295 = icmp eq i32 %bf.clear78.i.i.i, 0 + br i1 %tobool.not.i.i.i295, label %invoke.cont79.i.i.i296, label %if.then.i121.i.i.i + +if.then.i121.i.i.i: ; preds = %if.then71.i.i.i + %734 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %626, i32 noundef 0, ptr noundef %734) + to label %invoke.cont79.i.i.i296 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont79.i.i.i296: ; preds = %if.then.i121.i.i.i, %if.then71.i.i.i + %735 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i124.i.i.i = getelementptr inbounds i32, ptr %735, i64 -1 + %736 = load i32, ptr %arrayidx.i124.i.i.i, align 4 + %dec.i125.i.i.i = add i32 %736, -1 + store i32 %dec.i125.i.i.i, ptr %arrayidx.i124.i.i.i, align 4 + %this.val62.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i126.i.i.i = icmp eq ptr %this.val62.i.i.i, null + br i1 %cmp.i.i126.i.i.i, label %invoke.cont81.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i: ; preds = %invoke.cont79.i.i.i296 + %arrayidx.i.i128.i.i.i = getelementptr inbounds i32, ptr %this.val62.i.i.i, i64 -1 + %737 = load i32, ptr %arrayidx.i.i128.i.i.i, align 4 + %cmp3.i.i129.i.i.i = icmp eq i32 %737, 0 + br i1 %cmp3.i.i129.i.i.i, label %invoke.cont81.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i + %738 = add i32 %737, -1 + %739 = zext i32 %738 to i64 + %m_new_child.i131.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val62.i.i.i, i64 %739, i32 1 + %bf.load.i132.i.i.i = load i32, ptr %m_new_child.i131.i.i.i, align 8 + %bf.set.i133.i.i.i = or i32 %bf.load.i132.i.i.i, 2 + store i32 %bf.set.i133.i.i.i, ptr %m_new_child.i131.i.i.i, align 8 + br label %invoke.cont81.i.i.i + +invoke.cont81.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i, %invoke.cont79.i.i.i296 + %740 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i.i.i297 = icmp eq ptr %740, null + br i1 %tobool.not.i3.i.i.i.i297, label %cleanup.thread.i.i.i, label %if.then.i.i.i137.i.i.i + +if.then.i.i.i137.i.i.i: ; preds = %invoke.cont81.i.i.i + %741 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i138.i.i.i = getelementptr inbounds %class.ast, ptr %740, i64 0, i32 2 + %742 = load i32, ptr %m_ref_count.i.i.i.i138.i.i.i, align 4 + %dec.i.i.i.i.i.i.i298 = add i32 %742, -1 + store i32 %dec.i.i.i.i.i.i.i298, ptr %m_ref_count.i.i.i.i138.i.i.i, align 4 + %cmp.i.i.i139.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i298, 0 + br i1 %cmp.i.i.i139.i.i.i, label %if.then2.i.i.i.i.i.i299, label %cleanup.thread.i.i.i + +if.then2.i.i.i.i.i.i299: ; preds = %if.then.i.i.i137.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %741, ptr noundef nonnull %740) + to label %cleanup.thread.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +lpad.loopexit.i.i.i317: ; preds = %if.then2.i.i.i.i.i238.i.i.i + %lpad.loopexit532.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i358 + br label %lpad.i.i.i -lpad.i.i358.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i2620 - %lpad.loopexit2826 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.i.i.i308: ; preds = %if.then2.i.i.i.i.i108.i.i.i + %lpad.loopexit534.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i358 + br label %lpad.i.i.i -lpad.i.i358.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i2590, %if.then.i2572, %if.then2.i.i.i2555, %if.then.i.i2423, %if.then.i2405, %if.then2.i.i.i2386, %if.else181.i.i, %invoke.cont176.i.i, %if.then174.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2633 - %lpad.loopexit.split-lp2827 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.then2.i.i.i287.i.i.i, %if.then.i264.i.i.i, %if.then.i.i257.i.i.i, %if.then2.i.i.i187.i.i, %if.then2.i.i.i200.i.i, %if.then174.i.i.i, %if.then2.i.i.i.i.i.i299, %if.then.i121.i.i.i, %if.then.i.i116.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i278 + %lpad.loopexit.split-lp535.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i358 + br label %lpad.i.i.i -lpad.i.i358: ; preds = %lpad.i.i358.loopexit.split-lp.loopexit, %lpad.i.i358.loopexit.split-lp.loopexit.split-lp, %lpad.i.i358.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %lpad.i.i358.loopexit ], [ %lpad.loopexit2826, %lpad.i.i358.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2827, %lpad.i.i358.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i198) #18 +lpad.i.i.i: ; preds = %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i308, %lpad.loopexit.i.i.i317 + %lpad.phi.i.i.i = phi { ptr, i32 } [ %lpad.loopexit532.i.i.i, %lpad.loopexit.i.i.i317 ], [ %lpad.loopexit534.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i308 ], [ %lpad.loopexit.split-lp535.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i.i44) #18 br label %common.resume -if.else169.i.i: ; preds = %invoke.cont.i.i359 - %bf.load170.i.i = load i32, ptr %627, align 8 - %742 = and i32 %bf.load170.i.i, 2 - %tobool173.not.i.i = icmp eq i32 %742, 0 - br i1 %tobool173.not.i.i, label %if.else181.i.i, label %if.then174.i.i - -if.then174.i.i: ; preds = %if.else169.i.i - %this.val58.i.i370 = load ptr, ptr %586, align 8 - %call177.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i.i370, ptr noundef nonnull %711, i32 noundef %sub53.i.i, ptr noundef %add.ptr.i.i352) - to label %invoke.cont176.i.i unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -invoke.cont176.i.i: ; preds = %if.then174.i.i - %call180.i.i = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i, ptr noundef %call177.i.i) - to label %if.end186.i.i unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -if.else181.i.i: ; preds = %if.else169.i.i - %call184.i.i374 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i, ptr noundef nonnull %625) - to label %if.end186.i.i unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -if.end186.i.i: ; preds = %if.else181.i.i, %invoke.cont176.i.i - %743 = load i32, ptr %m_spos.i, align 4 - %744 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i2431 = icmp eq ptr %744, null - br i1 %cmp.i.i.i2431, label %invoke.cont189.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2432 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2432: ; preds = %if.end186.i.i - %arrayidx.i.i.i2435 = getelementptr inbounds i32, ptr %744, i64 -1 - %745 = load i32, ptr %arrayidx.i.i.i2435, align 4 - %746 = zext i32 %745 to i64 - %add.ptr.i.i2436 = getelementptr inbounds ptr, ptr %744, i64 %746 - %cmp3.i.i2437 = icmp ugt i32 %745, %743 - br i1 %cmp3.i.i2437, label %for.body.i.i2440.preheader, label %if.then.i.i2438 - -for.body.i.i2440.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2432 - %idx.ext.i2433 = zext i32 %743 to i64 - %add.ptr.i2434 = getelementptr inbounds ptr, ptr %744, i64 %idx.ext.i2433 - br label %for.body.i.i2440 - -for.body.i.i2440: ; preds = %for.body.i.i2440.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2447 - %it.04.i.i2441 = phi ptr [ %incdec.ptr.i.i2448, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2447 ], [ %add.ptr.i2434, %for.body.i.i2440.preheader ] - %747 = load ptr, ptr %it.04.i.i2441, align 8 - %748 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i.i2442 = icmp eq ptr %747, null - br i1 %tobool.not.i.i.i.i.i2442, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2447, label %if.then.i.i.i.i.i2443 - -if.then.i.i.i.i.i2443: ; preds = %for.body.i.i2440 - %m_ref_count.i.i.i.i.i.i2444 = getelementptr inbounds %class.ast, ptr %747, i64 0, i32 2 - %749 = load i32, ptr %m_ref_count.i.i.i.i.i.i2444, align 4 - %dec.i.i.i.i.i.i2445 = add i32 %749, -1 - store i32 %dec.i.i.i.i.i.i2445, ptr %m_ref_count.i.i.i.i.i.i2444, align 4 - %cmp.i.i.i.i.i2446 = icmp eq i32 %dec.i.i.i.i.i.i2445, 0 - br i1 %cmp.i.i.i.i.i2446, label %if.then2.i.i.i.i.i2453, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2447 - -if.then2.i.i.i.i.i2453: ; preds = %if.then.i.i.i.i.i2443 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %748, ptr noundef nonnull %747) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2447 unwind label %lpad.i.i358.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2447: ; preds = %if.then2.i.i.i.i.i2453, %if.then.i.i.i.i.i2443, %for.body.i.i2440 - %incdec.ptr.i.i2448 = getelementptr inbounds ptr, ptr %it.04.i.i2441, i64 1 - %cmp.i.i2449 = icmp ult ptr %incdec.ptr.i.i2448, %add.ptr.i.i2436 - br i1 %cmp.i.i2449, label %for.body.i.i2440, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2450, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2450: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2447 - %.pre.i2451 = load ptr, ptr %m_nodes.i.i424, align 8 - %tobool.not.i.i2452 = icmp eq ptr %.pre.i2451, null - br i1 %tobool.not.i.i2452, label %invoke.cont189.i.i, label %if.then.i.i2438 - -if.then.i.i2438: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2450, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2432 - %750 = phi ptr [ %.pre.i2451, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2450 ], [ %744, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2432 ] - %arrayidx.i.i2439 = getelementptr inbounds i32, ptr %750, i64 -1 - store i32 %743, ptr %arrayidx.i.i2439, align 4 - br label %invoke.cont189.i.i - -invoke.cont189.i.i: ; preds = %if.then.i.i2438, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2450, %if.end186.i.i - %751 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2408 = icmp eq ptr %751, null - br i1 %tobool.not.i.i.i.i2408, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2412, label %if.then.i.i.i.i2409 - -if.then.i.i.i.i2409: ; preds = %invoke.cont189.i.i - %m_ref_count.i.i.i.i.i2410 = getelementptr inbounds %class.ast, ptr %751, i64 0, i32 2 - %752 = load i32, ptr %m_ref_count.i.i.i.i.i2410, align 4 - %inc.i.i.i.i.i2411 = add i32 %752, 1 - store i32 %inc.i.i.i.i.i2411, ptr %m_ref_count.i.i.i.i.i2410, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2412 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2412: ; preds = %if.then.i.i.i.i2409, %invoke.cont189.i.i - %753 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i2414 = icmp eq ptr %753, null - br i1 %cmp.i.i2414, label %if.then.i.i2423, label %lor.lhs.false.i.i2415 - -lor.lhs.false.i.i2415: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2412 - %arrayidx.i.i2416 = getelementptr inbounds i32, ptr %753, i64 -1 - %754 = load i32, ptr %arrayidx.i.i2416, align 4 - %arrayidx4.i.i2417 = getelementptr inbounds i32, ptr %753, i64 -2 - %755 = load i32, ptr %arrayidx4.i.i2417, align 4 - %cmp5.i.i2418 = icmp eq i32 %754, %755 - br i1 %cmp5.i.i2418, label %if.then.i.i2423, label %invoke.cont194.i.i - -if.then.i.i2423: ; preds = %lor.lhs.false.i.i2415, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2412 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - to label %.noexc2427 unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -.noexc2427: ; preds = %if.then.i.i2423 - %.pre.i.i2424 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i2425 = getelementptr inbounds i32, ptr %.pre.i.i2424, i64 -1 - %.pre1.i.i2426 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2425, align 4 - br label %invoke.cont194.i.i - -invoke.cont194.i.i: ; preds = %.noexc2427, %lor.lhs.false.i.i2415 - %756 = phi i32 [ %.pre1.i.i2426, %.noexc2427 ], [ %754, %lor.lhs.false.i.i2415 ] - %757 = phi ptr [ %.pre.i.i2424, %.noexc2427 ], [ %753, %lor.lhs.false.i.i2415 ] - %idx.ext.i.i2419 = zext i32 %756 to i64 - %add.ptr.i.i2420 = getelementptr inbounds ptr, ptr %757, i64 %idx.ext.i.i2419 - store ptr %751, ptr %add.ptr.i.i2420, align 8 - %758 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i2421 = getelementptr inbounds i32, ptr %758, i64 -1 - %759 = load i32, ptr %arrayidx10.i.i2421, align 4 - %inc.i.i2422 = add i32 %759, 1 - store i32 %inc.i.i2422, ptr %arrayidx10.i.i2421, align 4 - %bf.load203.i.i372 = load i32, ptr %627, align 8 - %bf.clear204.i.i373 = and i32 %bf.load203.i.i372, 1 - %tobool205.i.i.not = icmp eq i32 %bf.clear204.i.i373, 0 - br i1 %tobool205.i.i.not, label %invoke.cont206.i.i, label %if.then.i2405 - -if.then.i2405: ; preds = %invoke.cont194.i.i - %760 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %625, i32 noundef 0, ptr noundef %760) - to label %invoke.cont206.i.i unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -invoke.cont206.i.i: ; preds = %invoke.cont194.i.i, %if.then.i2405 - %761 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2401 = getelementptr inbounds i32, ptr %761, i64 -1 - %762 = load i32, ptr %arrayidx.i2401, align 4 - %dec.i2402 = add i32 %762, -1 - store i32 %dec.i2402, ptr %arrayidx.i2401, align 4 - %763 = load ptr, ptr %m_r.i48.i, align 8 - %this.val64.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i2389 = icmp eq ptr %625, %763 - %cmp.i.i.i2390 = icmp eq ptr %this.val64.i.i, null - %or.cond.i2391 = select i1 %cmp.not.i2389, i1 true, i1 %cmp.i.i.i2390 - br i1 %or.cond.i2391, label %invoke.cont211.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2392 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2392: ; preds = %invoke.cont206.i.i - %arrayidx.i.i.i2393 = getelementptr inbounds i32, ptr %this.val64.i.i, i64 -1 - %764 = load i32, ptr %arrayidx.i.i.i2393, align 4 - %cmp3.i.i.i2394 = icmp eq i32 %764, 0 - br i1 %cmp3.i.i.i2394, label %invoke.cont211.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2395 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2395: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2392 - %765 = add i32 %764, -1 - %766 = zext i32 %765 to i64 - %m_new_child.i.i2396 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val64.i.i, i64 %766, i32 1 - %bf.load.i.i2397 = load i32, ptr %m_new_child.i.i2396, align 8 - %bf.set.i.i2398 = or i32 %bf.load.i.i2397, 2 - store i32 %bf.set.i.i2398, ptr %m_new_child.i.i2396, align 8 - %.pr2813.pre = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont211.i.i - -invoke.cont211.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2395, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2392, %invoke.cont206.i.i - %767 = phi ptr [ %763, %invoke.cont206.i.i ], [ %763, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2392 ], [ %.pr2813.pre, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2395 ] - %tobool.not.i3.i2380 = icmp eq ptr %767, null - br i1 %tobool.not.i3.i2380, label %cleanup.i.i367.thread, label %if.then.i.i.i2381 - -if.then.i.i.i2381: ; preds = %invoke.cont211.i.i - %768 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i2383 = getelementptr inbounds %class.ast, ptr %767, i64 0, i32 2 - %769 = load i32, ptr %m_ref_count.i.i.i.i2383, align 4 - %dec.i.i.i.i2384 = add i32 %769, -1 - store i32 %dec.i.i.i.i2384, ptr %m_ref_count.i.i.i.i2383, align 4 - %cmp.i.i.i2385 = icmp eq i32 %dec.i.i.i.i2384, 0 - br i1 %cmp.i.i.i2385, label %if.then2.i.i.i2386, label %cleanup.i.i367.thread - -if.then2.i.i.i2386: ; preds = %if.then.i.i.i2381 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %768, ptr noundef nonnull %767) - to label %cleanup.i.i367 unwind label %lpad.i.i358.loopexit.split-lp.loopexit.split-lp - -cleanup.i.i367.thread: ; preds = %if.then.i.i.i2381, %invoke.cont211.i.i, %if.then.i.i.i2550, %invoke.cont81.i.i, %if.then2.i.i.i2555 - store ptr null, ptr %m_r.i48.i, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -cleanup.i.i367: ; preds = %if.then2.i.i.i2386 - %.pre2931 = load ptr, ptr %new_t.i.i198, align 8 - store ptr null, ptr %m_r.i48.i, align 8 - %tobool.not.i.i2369 = icmp eq ptr %.pre2931, null - br i1 %tobool.not.i.i2369, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i2370 - -if.then.i.i.i2370: ; preds = %cleanup.i.i367 - %770 = load ptr, ptr %m_manager.i2624, align 8 - %m_ref_count.i.i.i.i2372 = getelementptr inbounds %class.ast, ptr %.pre2931, i64 0, i32 2 - %771 = load i32, ptr %m_ref_count.i.i.i.i2372, align 4 - %dec.i.i.i.i2373 = add i32 %771, -1 - store i32 %dec.i.i.i.i2373, ptr %m_ref_count.i.i.i.i2372, align 4 - %cmp.i.i.i2374 = icmp eq i32 %dec.i.i.i.i2373, 0 - br i1 %cmp.i.i.i2374, label %if.then2.i.i.i2376, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i2376: ; preds = %if.then.i.i.i2370 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %770, ptr noundef nonnull %.pre2931) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i2377 - -terminate.lpad.i2377: ; preds = %if.then2.i.i.i2376 - %772 = landingpad { ptr, i32 } - catch ptr null - %773 = extractvalue { ptr, i32 } %772, 0 - call void @__clang_call_terminate(ptr %773) #19 - unreachable - -sw.bb215.i.i: ; preds = %sw.bb.i326 - %774 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i2362 = icmp eq ptr %774, null - br i1 %cmp.i.i.i2362, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2367, label %if.end.i.i.i2363 - -if.end.i.i.i2363: ; preds = %sw.bb215.i.i - %arrayidx.i.i.i2364 = getelementptr inbounds i32, ptr %774, i64 -1 - %775 = load i32, ptr %arrayidx.i.i.i2364, align 4 - %776 = add i32 %775, -1 - %777 = zext i32 %776 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2367 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2367: ; preds = %sw.bb215.i.i, %if.end.i.i.i2363 - %retval.0.i.i.i2365 = phi i64 [ %777, %if.end.i.i.i2363 ], [ 4294967295, %sw.bb215.i.i ] - %arrayidx.i1.i.i2366 = getelementptr inbounds ptr, ptr %774, i64 %retval.0.i.i.i2365 - %778 = load ptr, ptr %arrayidx.i1.i.i2366, align 8 - %tobool.not.i2348 = icmp eq ptr %778, null - br i1 %tobool.not.i2348, label %if.end.i2352, label %_ZN11ast_manager7inc_refEP3ast.exit.i2349 - -_ZN11ast_manager7inc_refEP3ast.exit.i2349: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2367 - %m_ref_count.i.i.i2350 = getelementptr inbounds %class.ast, ptr %778, i64 0, i32 2 - %779 = load i32, ptr %m_ref_count.i.i.i2350, align 4 - %inc.i.i.i2351 = add i32 %779, 1 - store i32 %inc.i.i.i2351, ptr %m_ref_count.i.i.i2350, align 4 - br label %if.end.i2352 - -if.end.i2352: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i2349, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2367 - %780 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2353 = icmp eq ptr %780, null - br i1 %tobool.not.i3.i2353, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2360, label %if.then.i.i.i2354 - -if.then.i.i.i2354: ; preds = %if.end.i2352 - %781 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i2356 = getelementptr inbounds %class.ast, ptr %780, i64 0, i32 2 - %782 = load i32, ptr %m_ref_count.i.i.i.i2356, align 4 - %dec.i.i.i.i2357 = add i32 %782, -1 - store i32 %dec.i.i.i.i2357, ptr %m_ref_count.i.i.i.i2356, align 4 - %cmp.i.i.i2358 = icmp eq i32 %dec.i.i.i.i2357, 0 - br i1 %cmp.i.i.i2358, label %if.then2.i.i.i2359, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2360 - -if.then2.i.i.i2359: ; preds = %if.then.i.i.i2354 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %781, ptr noundef nonnull %780) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2360 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2360: ; preds = %if.end.i2352, %if.then.i.i.i2354, %if.then2.i.i.i2359 - store ptr %778, ptr %m_r.i48.i, align 8 - %783 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i2329 = icmp eq ptr %783, null - br i1 %cmp.i.i.i2329, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2343, label %if.end.i.i.i2330 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2343: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2360 - %.pre.i2344 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i2345 = add i32 %.pre.i2344, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2332 - -if.end.i.i.i2330: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2360 - %arrayidx.i.i.i2331 = getelementptr inbounds i32, ptr %783, i64 -1 - %784 = load i32, ptr %arrayidx.i.i.i2331, align 4 - %785 = add i32 %784, -1 - %786 = zext i32 %785 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2332 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i2332: ; preds = %if.end.i.i.i2330, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2343 - %dec.i.pre-phi.i2333 = phi i32 [ %.pre1.i2345, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2343 ], [ %785, %if.end.i.i.i2330 ] - %retval.0.i.i.i2334 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2343 ], [ %786, %if.end.i.i.i2330 ] - %arrayidx.i1.i.i2335 = getelementptr inbounds ptr, ptr %783, i64 %retval.0.i.i.i2334 - %787 = load ptr, ptr %arrayidx.i1.i.i2335, align 8 - %arrayidx.i.i2336 = getelementptr inbounds i32, ptr %783, i64 -1 - store i32 %dec.i.pre-phi.i2333, ptr %arrayidx.i.i2336, align 4 - %788 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i2337 = icmp eq ptr %787, null - br i1 %tobool.not.i.i.i.i2337, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2346, label %if.then.i.i.i.i2338 - -if.then.i.i.i.i2338: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2332 - %m_ref_count.i.i.i.i.i2339 = getelementptr inbounds %class.ast, ptr %787, i64 0, i32 2 - %789 = load i32, ptr %m_ref_count.i.i.i.i.i2339, align 4 - %dec.i.i.i.i.i2340 = add i32 %789, -1 - store i32 %dec.i.i.i.i.i2340, ptr %m_ref_count.i.i.i.i.i2339, align 4 - %cmp.i.i.i.i2341 = icmp eq i32 %dec.i.i.i.i.i2340, 0 - br i1 %cmp.i.i.i.i2341, label %if.then2.i.i.i.i2342, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2346 - -if.then2.i.i.i.i2342: ; preds = %if.then.i.i.i.i2338 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %788, ptr noundef nonnull %787) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2346 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2346: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2332, %if.then.i.i.i.i2338, %if.then2.i.i.i.i2342 - %790 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i2309 = icmp eq ptr %790, null - br i1 %cmp.i.i.i2309, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2323, label %if.end.i.i.i2310 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2323: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2346 - %.pre.i2324 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i2325 = add i32 %.pre.i2324, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2312 - -if.end.i.i.i2310: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2346 - %arrayidx.i.i.i2311 = getelementptr inbounds i32, ptr %790, i64 -1 - %791 = load i32, ptr %arrayidx.i.i.i2311, align 4 - %792 = add i32 %791, -1 - %793 = zext i32 %792 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2312 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i2312: ; preds = %if.end.i.i.i2310, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2323 - %dec.i.pre-phi.i2313 = phi i32 [ %.pre1.i2325, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2323 ], [ %792, %if.end.i.i.i2310 ] - %retval.0.i.i.i2314 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2323 ], [ %793, %if.end.i.i.i2310 ] - %arrayidx.i1.i.i2315 = getelementptr inbounds ptr, ptr %790, i64 %retval.0.i.i.i2314 - %794 = load ptr, ptr %arrayidx.i1.i.i2315, align 8 - %arrayidx.i.i2316 = getelementptr inbounds i32, ptr %790, i64 -1 - store i32 %dec.i.pre-phi.i2313, ptr %arrayidx.i.i2316, align 4 - %795 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i2317 = icmp eq ptr %794, null - br i1 %tobool.not.i.i.i.i2317, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2326, label %if.then.i.i.i.i2318 - -if.then.i.i.i.i2318: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2312 - %m_ref_count.i.i.i.i.i2319 = getelementptr inbounds %class.ast, ptr %794, i64 0, i32 2 - %796 = load i32, ptr %m_ref_count.i.i.i.i.i2319, align 4 - %dec.i.i.i.i.i2320 = add i32 %796, -1 - store i32 %dec.i.i.i.i.i2320, ptr %m_ref_count.i.i.i.i.i2319, align 4 - %cmp.i.i.i.i2321 = icmp eq i32 %dec.i.i.i.i.i2320, 0 - br i1 %cmp.i.i.i.i2321, label %if.then2.i.i.i.i2322, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2326 - -if.then2.i.i.i.i2322: ; preds = %if.then.i.i.i.i2318 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %795, ptr noundef nonnull %794) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2326 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2326: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2312, %if.then.i.i.i.i2318, %if.then2.i.i.i.i2322 - %797 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2287 = icmp eq ptr %797, null - br i1 %tobool.not.i.i.i.i2287, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2291, label %if.then.i.i.i.i2288 - -if.then.i.i.i.i2288: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2326 - %m_ref_count.i.i.i.i.i2289 = getelementptr inbounds %class.ast, ptr %797, i64 0, i32 2 - %798 = load i32, ptr %m_ref_count.i.i.i.i.i2289, align 4 - %inc.i.i.i.i.i2290 = add i32 %798, 1 - store i32 %inc.i.i.i.i.i2290, ptr %m_ref_count.i.i.i.i.i2289, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2291 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2291: ; preds = %if.then.i.i.i.i2288, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2326 - %799 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i2293 = icmp eq ptr %799, null - br i1 %cmp.i.i2293, label %if.then.i.i2302, label %lor.lhs.false.i.i2294 - -lor.lhs.false.i.i2294: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2291 - %arrayidx.i.i2295 = getelementptr inbounds i32, ptr %799, i64 -1 - %800 = load i32, ptr %arrayidx.i.i2295, align 4 - %arrayidx4.i.i2296 = getelementptr inbounds i32, ptr %799, i64 -2 - %801 = load i32, ptr %arrayidx4.i.i2296, align 4 - %cmp5.i.i2297 = icmp eq i32 %800, %801 - br i1 %cmp5.i.i2297, label %if.then.i.i2302, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2306 - -if.then.i.i2302: ; preds = %lor.lhs.false.i.i2294, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2291 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - %.pre.i.i2303 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i2304 = getelementptr inbounds i32, ptr %.pre.i.i2303, i64 -1 - %.pre1.i.i2305 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2304, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2306 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2306: ; preds = %lor.lhs.false.i.i2294, %if.then.i.i2302 - %802 = phi i32 [ %.pre1.i.i2305, %if.then.i.i2302 ], [ %800, %lor.lhs.false.i.i2294 ] - %803 = phi ptr [ %.pre.i.i2303, %if.then.i.i2302 ], [ %799, %lor.lhs.false.i.i2294 ] - %idx.ext.i.i2298 = zext i32 %802 to i64 - %add.ptr.i.i2299 = getelementptr inbounds ptr, ptr %803, i64 %idx.ext.i.i2298 - store ptr %797, ptr %add.ptr.i.i2299, align 8 - %804 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i2300 = getelementptr inbounds i32, ptr %804, i64 -1 - %805 = load i32, ptr %arrayidx10.i.i2300, align 4 - %inc.i.i2301 = add i32 %805, 1 - store i32 %inc.i.i2301, ptr %arrayidx10.i.i2300, align 4 - %bf.load231.i.i = load i32, ptr %627, align 8 - %bf.clear232.i.i = and i32 %bf.load231.i.i, 1 - %tobool233.i.i.not = icmp eq i32 %bf.clear232.i.i, 0 - br i1 %tobool233.i.i.not, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2286, label %if.then.i2285 - -if.then.i2285: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2306 - %806 = load ptr, ptr %m_r.i48.i, align 8 - call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %625, i32 noundef 0, ptr noundef %806) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2286 - -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2286: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2306, %if.then.i2285 - %807 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2281 = getelementptr inbounds i32, ptr %807, i64 -1 - %808 = load i32, ptr %arrayidx.i2281, align 4 - %dec.i2282 = add i32 %808, -1 - store i32 %dec.i2282, ptr %arrayidx.i2281, align 4 - %this.val61.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2271 = icmp eq ptr %this.val61.i.i, null - br i1 %cmp.i.i2271, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2272 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2272: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2286 - %arrayidx.i.i2273 = getelementptr inbounds i32, ptr %this.val61.i.i, i64 -1 - %809 = load i32, ptr %arrayidx.i.i2273, align 4 - %cmp3.i.i2274 = icmp eq i32 %809, 0 - br i1 %cmp3.i.i2274, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2275 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2275: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2272 - %810 = add i32 %809, -1 - %811 = zext i32 %810 to i64 - %m_new_child.i2276 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val61.i.i, i64 %811, i32 1 - %bf.load.i2277 = load i32, ptr %m_new_child.i2276, align 8 - %bf.set.i2278 = or i32 %bf.load.i2277, 2 - store i32 %bf.set.i2278, ptr %m_new_child.i2276, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -sw.bb235.i.i: ; preds = %sw.bb.i326 - %this.val.i.i329 = load ptr, ptr %586, align 8 - store ptr null, ptr %tmp.i.i, align 8 - store ptr %this.val.i.i329, ptr %m_manager.i2270, align 8 - %m_num_args.i2269 = getelementptr inbounds %class.app, ptr %625, i64 0, i32 2 - %812 = load i32, ptr %m_num_args.i2269, align 8 - %813 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i2264 = icmp eq ptr %813, null - br i1 %cmp.i2264, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2263, label %if.then.i2260 - -if.then.i2260: ; preds = %sw.bb235.i.i - %arrayidx.i2266 = getelementptr inbounds i32, ptr %813, i64 -1 - %814 = load i32, ptr %arrayidx.i2266, align 4 - %sub242.i.i = sub i32 %814, %812 - store i32 %sub242.i.i, ptr %arrayidx.i2266, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2263 - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2263: ; preds = %sw.bb235.i.i, %if.then.i2260 - %815 = load ptr, ptr %m_shifts.i69.i, align 8 - %cmp.i2254 = icmp eq ptr %815, null - br i1 %cmp.i2254, label %_ZN6vectorIjLb0EjE6shrinkEj.exit2253, label %if.then.i2250 - -if.then.i2250: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2263 - %arrayidx.i2256 = getelementptr inbounds i32, ptr %815, i64 -1 - %816 = load i32, ptr %arrayidx.i2256, align 4 - %sub246.i.i = sub i32 %816, %812 - store i32 %sub246.i.i, ptr %arrayidx.i2256, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit2253 - -_ZN6vectorIjLb0EjE6shrinkEj.exit2253: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2263, %if.then.i2250 - %817 = load i32, ptr %m_num_qvars.i55, align 8 - %sub248.i.i = sub i32 %817, %812 - store i32 %sub248.i.i, ptr %m_num_qvars.i55, align 8 +if.else169.i.i.i: ; preds = %invoke.cont.i.i.i283 + %bf.load170.i.i.i = load i32, ptr %628, align 8 + %743 = and i32 %bf.load170.i.i.i, 2 + %tobool173.not.i.i.i = icmp eq i32 %743, 0 + br i1 %tobool173.not.i.i.i, label %if.end.i180.i.i, label %if.then174.i.i.i + +if.then174.i.i.i: ; preds = %if.else169.i.i.i + %this.val58.i.i.i309 = load ptr, ptr %587, align 8 + %call177.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i.i.i309, ptr noundef nonnull %712, i32 noundef %sub53.i.i.i, ptr noundef %add.ptr.i.i.i281) + to label %invoke.cont176.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont176.i.i.i: ; preds = %if.then174.i.i.i + %tobool.not.i189.i.i = icmp eq ptr %call177.i.i.i, null + br i1 %tobool.not.i189.i.i, label %if.end.i193.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i190.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i190.i.i: ; preds = %invoke.cont176.i.i.i + %m_ref_count.i.i.i191.i.i = getelementptr inbounds %class.ast, ptr %call177.i.i.i, i64 0, i32 2 + %744 = load i32, ptr %m_ref_count.i.i.i191.i.i, align 4 + %inc.i.i.i192.i.i = add i32 %744, 1 + store i32 %inc.i.i.i192.i.i, ptr %m_ref_count.i.i.i191.i.i, align 4 + br label %if.end.i193.i.i + +if.end.i193.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i190.i.i, %invoke.cont176.i.i.i + %745 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i194.i.i = icmp eq ptr %745, null + br i1 %tobool.not.i3.i194.i.i, label %if.end186.i.i.i, label %if.then.i.i.i195.i.i + +if.then.i.i.i195.i.i: ; preds = %if.end.i193.i.i + %746 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i197.i.i = getelementptr inbounds %class.ast, ptr %745, i64 0, i32 2 + %747 = load i32, ptr %m_ref_count.i.i.i.i197.i.i, align 4 + %dec.i.i.i.i198.i.i = add i32 %747, -1 + store i32 %dec.i.i.i.i198.i.i, ptr %m_ref_count.i.i.i.i197.i.i, align 4 + %cmp.i.i.i199.i.i310 = icmp eq i32 %dec.i.i.i.i198.i.i, 0 + br i1 %cmp.i.i.i199.i.i310, label %if.then2.i.i.i200.i.i, label %if.end186.i.i.i + +if.then2.i.i.i200.i.i: ; preds = %if.then.i.i.i195.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %746, ptr noundef nonnull %745) + to label %if.end186.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end.i180.i.i: ; preds = %if.else169.i.i.i + %m_ref_count.i.i.i178.i.i = getelementptr inbounds %class.ast, ptr %626, i64 0, i32 2 + %748 = load i32, ptr %m_ref_count.i.i.i178.i.i, align 4 + %inc.i.i.i179.i.i = add i32 %748, 1 + store i32 %inc.i.i.i179.i.i, ptr %m_ref_count.i.i.i178.i.i, align 4 + %749 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i181.i.i = icmp eq ptr %749, null + br i1 %tobool.not.i3.i181.i.i, label %if.end186.i.i.i, label %if.then.i.i.i182.i.i + +if.then.i.i.i182.i.i: ; preds = %if.end.i180.i.i + %750 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i184.i.i = getelementptr inbounds %class.ast, ptr %749, i64 0, i32 2 + %751 = load i32, ptr %m_ref_count.i.i.i.i184.i.i, align 4 + %dec.i.i.i.i185.i.i = add i32 %751, -1 + store i32 %dec.i.i.i.i185.i.i, ptr %m_ref_count.i.i.i.i184.i.i, align 4 + %cmp.i.i.i186.i.i = icmp eq i32 %dec.i.i.i.i185.i.i, 0 + br i1 %cmp.i.i.i186.i.i, label %if.then2.i.i.i187.i.i, label %if.end186.i.i.i + +if.then2.i.i.i187.i.i: ; preds = %if.then.i.i.i182.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %750, ptr noundef nonnull %749) + to label %if.end186.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end186.i.i.i: ; preds = %if.then2.i.i.i187.i.i, %if.then.i.i.i182.i.i, %if.end.i180.i.i, %if.then2.i.i.i200.i.i, %if.then.i.i.i195.i.i, %if.end.i193.i.i + %storemerge.i.i311 = phi ptr [ %call177.i.i.i, %if.then2.i.i.i200.i.i ], [ %call177.i.i.i, %if.end.i193.i.i ], [ %call177.i.i.i, %if.then.i.i.i195.i.i ], [ %626, %if.then2.i.i.i187.i.i ], [ %626, %if.end.i180.i.i ], [ %626, %if.then.i.i.i182.i.i ] + store ptr %storemerge.i.i311, ptr %m_r.i64.i.i, align 8 + %752 = load i32, ptr %m_spos.i.i.i.i, align 4 + %753 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i216.i.i.i = icmp eq ptr %753, null + br i1 %cmp.i.i.i216.i.i.i, label %invoke.cont189.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i: ; preds = %if.end186.i.i.i + %arrayidx.i.i.i220.i.i.i = getelementptr inbounds i32, ptr %753, i64 -1 + %754 = load i32, ptr %arrayidx.i.i.i220.i.i.i, align 4 + %755 = zext i32 %754 to i64 + %add.ptr.i.i221.i.i.i = getelementptr inbounds ptr, ptr %753, i64 %755 + %cmp3.i.i222.i.i.i = icmp ugt i32 %754, %752 + br i1 %cmp3.i.i222.i.i.i, label %for.body.i.i225.preheader.i.i.i, label %if.then.i.i223.i.i.i + +for.body.i.i225.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + %idx.ext.i218.i.i.i = zext i32 %752 to i64 + %add.ptr.i219.i.i.i = getelementptr inbounds ptr, ptr %753, i64 %idx.ext.i218.i.i.i + br label %for.body.i.i225.i.i.i + +for.body.i.i225.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i, %for.body.i.i225.preheader.i.i.i + %it.04.i.i226.i.i.i = phi ptr [ %incdec.ptr.i.i233.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i ], [ %add.ptr.i219.i.i.i, %for.body.i.i225.preheader.i.i.i ] + %756 = load ptr, ptr %it.04.i.i226.i.i.i, align 8 + %757 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i227.i.i.i = icmp eq ptr %756, null + br i1 %tobool.not.i.i.i.i.i227.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i, label %if.then.i.i.i.i.i228.i.i.i + +if.then.i.i.i.i.i228.i.i.i: ; preds = %for.body.i.i225.i.i.i + %m_ref_count.i.i.i.i.i.i229.i.i.i = getelementptr inbounds %class.ast, ptr %756, i64 0, i32 2 + %758 = load i32, ptr %m_ref_count.i.i.i.i.i.i229.i.i.i, align 4 + %dec.i.i.i.i.i.i230.i.i.i = add i32 %758, -1 + store i32 %dec.i.i.i.i.i.i230.i.i.i, ptr %m_ref_count.i.i.i.i.i.i229.i.i.i, align 4 + %cmp.i.i.i.i.i231.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i230.i.i.i, 0 + br i1 %cmp.i.i.i.i.i231.i.i.i, label %if.then2.i.i.i.i.i238.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i + +if.then2.i.i.i.i.i238.i.i.i: ; preds = %if.then.i.i.i.i.i228.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %757, ptr noundef nonnull %756) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i unwind label %lpad.loopexit.i.i.i317 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i: ; preds = %if.then2.i.i.i.i.i238.i.i.i, %if.then.i.i.i.i.i228.i.i.i, %for.body.i.i225.i.i.i + %incdec.ptr.i.i233.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i226.i.i.i, i64 1 + %cmp.i.i234.i.i.i = icmp ult ptr %incdec.ptr.i.i233.i.i.i, %add.ptr.i.i221.i.i.i + br i1 %cmp.i.i234.i.i.i, label %for.body.i.i225.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i + %.pre.i236.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i237.i.i.i = icmp eq ptr %.pre.i236.i.i.i, null + br i1 %tobool.not.i.i237.i.i.i, label %invoke.cont189.ithread-pre-split.i.i, label %if.then.i.i223.i.i.i + +if.then.i.i223.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + %759 = phi ptr [ %.pre.i236.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i ], [ %753, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i ] + %arrayidx.i.i224.i.i.i = getelementptr inbounds i32, ptr %759, i64 -1 + store i32 %752, ptr %arrayidx.i.i224.i.i.i, align 4 + br label %invoke.cont189.ithread-pre-split.i.i + +invoke.cont189.ithread-pre-split.i.i: ; preds = %if.then.i.i223.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i + %.pr40.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont189.i.i.i + +invoke.cont189.i.i.i: ; preds = %invoke.cont189.ithread-pre-split.i.i, %if.end186.i.i.i + %760 = phi ptr [ %.pr40.i.i, %invoke.cont189.ithread-pre-split.i.i ], [ %storemerge.i.i311, %if.end186.i.i.i ] + %tobool.not.i.i.i.i242.i.i.i = icmp eq ptr %760, null + br i1 %tobool.not.i.i.i.i242.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i, label %if.then.i.i.i.i243.i.i.i + +if.then.i.i.i.i243.i.i.i: ; preds = %invoke.cont189.i.i.i + %m_ref_count.i.i.i.i.i244.i.i.i = getelementptr inbounds %class.ast, ptr %760, i64 0, i32 2 + %761 = load i32, ptr %m_ref_count.i.i.i.i.i244.i.i.i, align 4 + %inc.i.i.i.i.i245.i.i.i = add i32 %761, 1 + store i32 %inc.i.i.i.i.i245.i.i.i, ptr %m_ref_count.i.i.i.i.i244.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i: ; preds = %if.then.i.i.i.i243.i.i.i, %invoke.cont189.i.i.i + %762 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i248.i.i.i = icmp eq ptr %762, null + br i1 %cmp.i.i248.i.i.i, label %if.then.i.i257.i.i.i, label %lor.lhs.false.i.i249.i.i.i + +lor.lhs.false.i.i249.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + %arrayidx.i.i250.i.i.i = getelementptr inbounds i32, ptr %762, i64 -1 + %763 = load i32, ptr %arrayidx.i.i250.i.i.i, align 4 + %arrayidx4.i.i251.i.i.i = getelementptr inbounds i32, ptr %762, i64 -2 + %764 = load i32, ptr %arrayidx4.i.i251.i.i.i, align 4 + %cmp5.i.i252.i.i.i = icmp eq i32 %763, %764 + br i1 %cmp5.i.i252.i.i.i, label %if.then.i.i257.i.i.i, label %invoke.cont194.i.i.i + +if.then.i.i257.i.i.i: ; preds = %lor.lhs.false.i.i249.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc261.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc261.i.i.i: ; preds = %if.then.i.i257.i.i.i + %.pre.i.i258.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i259.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i258.i.i.i, i64 -1 + %.pre1.i.i260.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i259.i.i.i, align 4 + br label %invoke.cont194.i.i.i + +invoke.cont194.i.i.i: ; preds = %.noexc261.i.i.i, %lor.lhs.false.i.i249.i.i.i + %765 = phi i32 [ %.pre1.i.i260.i.i.i, %.noexc261.i.i.i ], [ %763, %lor.lhs.false.i.i249.i.i.i ] + %766 = phi ptr [ %.pre.i.i258.i.i.i, %.noexc261.i.i.i ], [ %762, %lor.lhs.false.i.i249.i.i.i ] + %idx.ext.i.i253.i.i.i = zext i32 %765 to i64 + %add.ptr.i.i254.i.i.i = getelementptr inbounds ptr, ptr %766, i64 %idx.ext.i.i253.i.i.i + store ptr %760, ptr %add.ptr.i.i254.i.i.i, align 8 + %767 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i255.i.i.i = getelementptr inbounds i32, ptr %767, i64 -1 + %768 = load i32, ptr %arrayidx10.i.i255.i.i.i, align 4 + %inc.i.i256.i.i.i = add i32 %768, 1 + store i32 %inc.i.i256.i.i.i, ptr %arrayidx10.i.i255.i.i.i, align 4 + %bf.load203.i.i.i312 = load i32, ptr %628, align 8 + %bf.clear204.i.i.i313 = and i32 %bf.load203.i.i.i312, 1 + %tobool205.not.i.i.i = icmp eq i32 %bf.clear204.i.i.i313, 0 + br i1 %tobool205.not.i.i.i, label %invoke.cont206.i.i.i, label %if.then.i264.i.i.i + +if.then.i264.i.i.i: ; preds = %invoke.cont194.i.i.i + %769 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %626, i32 noundef 0, ptr noundef %769) + to label %invoke.cont206.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont206.i.i.i: ; preds = %if.then.i264.i.i.i, %invoke.cont194.i.i.i + %770 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i268.i.i.i = getelementptr inbounds i32, ptr %770, i64 -1 + %771 = load i32, ptr %arrayidx.i268.i.i.i, align 4 + %dec.i269.i.i.i = add i32 %771, -1 + store i32 %dec.i269.i.i.i, ptr %arrayidx.i268.i.i.i, align 4 + %772 = load ptr, ptr %m_r.i64.i.i, align 8 + %this.val64.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i270.i.i.i = icmp eq ptr %772, %626 + %cmp.i.i.i271.i.i.i = icmp eq ptr %this.val64.i.i.i, null + %or.cond.i.i.i.i314 = select i1 %cmp.not.i270.i.i.i, i1 true, i1 %cmp.i.i.i271.i.i.i + br i1 %or.cond.i.i.i.i314, label %invoke.cont211.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i: ; preds = %invoke.cont206.i.i.i + %arrayidx.i.i.i273.i.i.i = getelementptr inbounds i32, ptr %this.val64.i.i.i, i64 -1 + %773 = load i32, ptr %arrayidx.i.i.i273.i.i.i, align 4 + %cmp3.i.i.i274.i.i.i = icmp eq i32 %773, 0 + br i1 %cmp3.i.i.i274.i.i.i, label %invoke.cont211.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i + %774 = add i32 %773, -1 + %775 = zext i32 %774 to i64 + %m_new_child.i.i276.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val64.i.i.i, i64 %775, i32 1 + %bf.load.i.i277.i.i.i = load i32, ptr %m_new_child.i.i276.i.i.i, align 8 + %bf.set.i.i278.i.i.i = or i32 %bf.load.i.i277.i.i.i, 2 + store i32 %bf.set.i.i278.i.i.i, ptr %m_new_child.i.i276.i.i.i, align 8 + %.pr.pre.i.i.i315 = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont211.i.i.i + +invoke.cont211.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i, %invoke.cont206.i.i.i + %776 = phi ptr [ %772, %invoke.cont206.i.i.i ], [ %772, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i ], [ %.pr.pre.i.i.i315, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i ] + %tobool.not.i3.i281.i.i.i = icmp eq ptr %776, null + br i1 %tobool.not.i3.i281.i.i.i, label %cleanup.thread.i.i.i, label %if.then.i.i.i282.i.i.i + +if.then.i.i.i282.i.i.i: ; preds = %invoke.cont211.i.i.i + %777 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i284.i.i.i = getelementptr inbounds %class.ast, ptr %776, i64 0, i32 2 + %778 = load i32, ptr %m_ref_count.i.i.i.i284.i.i.i, align 4 + %dec.i.i.i.i285.i.i.i = add i32 %778, -1 + store i32 %dec.i.i.i.i285.i.i.i, ptr %m_ref_count.i.i.i.i284.i.i.i, align 4 + %cmp.i.i.i286.i.i.i = icmp eq i32 %dec.i.i.i.i285.i.i.i, 0 + br i1 %cmp.i.i.i286.i.i.i, label %if.then2.i.i.i287.i.i.i, label %cleanup.thread.i.i.i + +if.then2.i.i.i287.i.i.i: ; preds = %if.then.i.i.i282.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %777, ptr noundef nonnull %776) + to label %cleanup.i.i.i316 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +cleanup.thread.i.i.i: ; preds = %if.then.i.i.i282.i.i.i, %invoke.cont211.i.i.i, %if.then2.i.i.i.i.i.i299, %if.then.i.i.i137.i.i.i, %invoke.cont81.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +cleanup.i.i.i316: ; preds = %if.then2.i.i.i287.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +sw.bb215.i.i.i: ; preds = %sw.bb.i.i258 + %779 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i299.i.i.i = icmp eq ptr %779, null + br i1 %cmp.i.i.i299.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i264, label %if.end.i.i.i.i.i.i263 + +if.end.i.i.i.i.i.i263: ; preds = %sw.bb215.i.i.i + %arrayidx.i.i.i300.i.i.i = getelementptr inbounds i32, ptr %779, i64 -1 + %780 = load i32, ptr %arrayidx.i.i.i300.i.i.i, align 4 + %781 = add i32 %780, -1 + %782 = zext i32 %781 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i264 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i264: ; preds = %if.end.i.i.i.i.i.i263, %sw.bb215.i.i.i + %retval.0.i.i.i.i.i.i265 = phi i64 [ %782, %if.end.i.i.i.i.i.i263 ], [ 4294967295, %sw.bb215.i.i.i ] + %arrayidx.i1.i.i.i.i.i266 = getelementptr inbounds ptr, ptr %779, i64 %retval.0.i.i.i.i.i.i265 + %783 = load ptr, ptr %arrayidx.i1.i.i.i.i.i266, align 8 + %tobool.not.i301.i.i.i = icmp eq ptr %783, null + br i1 %tobool.not.i301.i.i.i, label %if.end.i303.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i267 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i267: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i264 + %m_ref_count.i.i.i.i.i47.i = getelementptr inbounds %class.ast, ptr %783, i64 0, i32 2 + %784 = load i32, ptr %m_ref_count.i.i.i.i.i47.i, align 4 + %inc.i.i.i302.i.i.i = add i32 %784, 1 + store i32 %inc.i.i.i302.i.i.i, ptr %m_ref_count.i.i.i.i.i47.i, align 4 + br label %if.end.i303.i.i.i + +if.end.i303.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i267, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i264 + %785 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i304.i.i.i = icmp eq ptr %785, null + br i1 %tobool.not.i3.i304.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i, label %if.then.i.i.i305.i.i.i + +if.then.i.i.i305.i.i.i: ; preds = %if.end.i303.i.i.i + %786 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i307.i.i.i = getelementptr inbounds %class.ast, ptr %785, i64 0, i32 2 + %787 = load i32, ptr %m_ref_count.i.i.i.i307.i.i.i, align 4 + %dec.i.i.i.i308.i.i.i = add i32 %787, -1 + store i32 %dec.i.i.i.i308.i.i.i, ptr %m_ref_count.i.i.i.i307.i.i.i, align 4 + %cmp.i.i.i309.i.i.i = icmp eq i32 %dec.i.i.i.i308.i.i.i, 0 + br i1 %cmp.i.i.i309.i.i.i, label %if.then2.i.i.i310.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + +if.then2.i.i.i310.i.i.i: ; preds = %if.then.i.i.i305.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %786, ptr noundef nonnull %785) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i: ; preds = %if.then2.i.i.i310.i.i.i, %if.then.i.i.i305.i.i.i, %if.end.i303.i.i.i + store ptr %783, ptr %m_r.i64.i.i, align 8 + %788 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i314.i.i.i = icmp eq ptr %788, null + br i1 %cmp.i.i.i314.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i271, label %if.end.i.i.i315.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i271: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + %.pre.i326.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i327.i.i.i = add i32 %.pre.i326.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i268 + +if.end.i.i.i315.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + %arrayidx.i.i.i316.i.i.i = getelementptr inbounds i32, ptr %788, i64 -1 + %789 = load i32, ptr %arrayidx.i.i.i316.i.i.i, align 4 + %790 = add i32 %789, -1 + %791 = zext i32 %790 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i268 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i268: ; preds = %if.end.i.i.i315.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i271 + %dec.i.pre-phi.i.i.i.i = phi i32 [ %.pre1.i327.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i271 ], [ %790, %if.end.i.i.i315.i.i.i ] + %retval.0.i.i.i317.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i271 ], [ %791, %if.end.i.i.i315.i.i.i ] + %arrayidx.i1.i.i318.i.i.i = getelementptr inbounds ptr, ptr %788, i64 %retval.0.i.i.i317.i.i.i + %792 = load ptr, ptr %arrayidx.i1.i.i318.i.i.i, align 8 + %arrayidx.i.i319.i.i.i = getelementptr inbounds i32, ptr %788, i64 -1 + store i32 %dec.i.pre-phi.i.i.i.i, ptr %arrayidx.i.i319.i.i.i, align 4 + %793 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i320.i.i.i = icmp eq ptr %792, null + br i1 %tobool.not.i.i.i.i320.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i269, label %if.then.i.i.i.i321.i.i.i + +if.then.i.i.i.i321.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i268 + %m_ref_count.i.i.i.i.i322.i.i.i = getelementptr inbounds %class.ast, ptr %792, i64 0, i32 2 + %794 = load i32, ptr %m_ref_count.i.i.i.i.i322.i.i.i, align 4 + %dec.i.i.i.i.i323.i.i.i = add i32 %794, -1 + store i32 %dec.i.i.i.i.i323.i.i.i, ptr %m_ref_count.i.i.i.i.i322.i.i.i, align 4 + %cmp.i.i.i.i324.i.i.i = icmp eq i32 %dec.i.i.i.i.i323.i.i.i, 0 + br i1 %cmp.i.i.i.i324.i.i.i, label %if.then2.i.i.i.i325.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i269 + +if.then2.i.i.i.i325.i.i.i: ; preds = %if.then.i.i.i.i321.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %793, ptr noundef nonnull %792) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i269 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i269: ; preds = %if.then2.i.i.i.i325.i.i.i, %if.then.i.i.i.i321.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i268 + %795 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i330.i.i.i = icmp eq ptr %795, null + br i1 %cmp.i.i.i330.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i, label %if.end.i.i.i331.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i269 + %.pre.i345.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i346.i.i.i = add i32 %.pre.i345.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + +if.end.i.i.i331.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i269 + %arrayidx.i.i.i332.i.i.i = getelementptr inbounds i32, ptr %795, i64 -1 + %796 = load i32, ptr %arrayidx.i.i.i332.i.i.i, align 4 + %797 = add i32 %796, -1 + %798 = zext i32 %797 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i: ; preds = %if.end.i.i.i331.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i + %dec.i.pre-phi.i334.i.i.i = phi i32 [ %.pre1.i346.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i ], [ %797, %if.end.i.i.i331.i.i.i ] + %retval.0.i.i.i335.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i ], [ %798, %if.end.i.i.i331.i.i.i ] + %arrayidx.i1.i.i336.i.i.i = getelementptr inbounds ptr, ptr %795, i64 %retval.0.i.i.i335.i.i.i + %799 = load ptr, ptr %arrayidx.i1.i.i336.i.i.i, align 8 + %arrayidx.i.i337.i.i.i270 = getelementptr inbounds i32, ptr %795, i64 -1 + store i32 %dec.i.pre-phi.i334.i.i.i, ptr %arrayidx.i.i337.i.i.i270, align 4 + %800 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i338.i.i.i = icmp eq ptr %799, null + br i1 %tobool.not.i.i.i.i338.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i, label %if.then.i.i.i.i339.i.i.i + +if.then.i.i.i.i339.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + %m_ref_count.i.i.i.i.i340.i.i.i = getelementptr inbounds %class.ast, ptr %799, i64 0, i32 2 + %801 = load i32, ptr %m_ref_count.i.i.i.i.i340.i.i.i, align 4 + %dec.i.i.i.i.i341.i.i.i = add i32 %801, -1 + store i32 %dec.i.i.i.i.i341.i.i.i, ptr %m_ref_count.i.i.i.i.i340.i.i.i, align 4 + %cmp.i.i.i.i342.i.i.i = icmp eq i32 %dec.i.i.i.i.i341.i.i.i, 0 + br i1 %cmp.i.i.i.i342.i.i.i, label %if.then2.i.i.i.i343.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + +if.then2.i.i.i.i343.i.i.i: ; preds = %if.then.i.i.i.i339.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %800, ptr noundef nonnull %799) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i: ; preds = %if.then2.i.i.i.i343.i.i.i, %if.then.i.i.i.i339.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + %802 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i349.i.i.i = icmp eq ptr %802, null + br i1 %tobool.not.i.i.i.i349.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i, label %if.then.i.i.i.i350.i.i.i + +if.then.i.i.i.i350.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + %m_ref_count.i.i.i.i.i351.i.i.i = getelementptr inbounds %class.ast, ptr %802, i64 0, i32 2 + %803 = load i32, ptr %m_ref_count.i.i.i.i.i351.i.i.i, align 4 + %inc.i.i.i.i.i352.i.i.i = add i32 %803, 1 + store i32 %inc.i.i.i.i.i352.i.i.i, ptr %m_ref_count.i.i.i.i.i351.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i: ; preds = %if.then.i.i.i.i350.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + %804 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i355.i.i.i = icmp eq ptr %804, null + br i1 %cmp.i.i355.i.i.i, label %if.then.i.i364.i.i.i, label %lor.lhs.false.i.i356.i.i.i + +lor.lhs.false.i.i356.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + %arrayidx.i.i357.i.i.i = getelementptr inbounds i32, ptr %804, i64 -1 + %805 = load i32, ptr %arrayidx.i.i357.i.i.i, align 4 + %arrayidx4.i.i358.i.i.i = getelementptr inbounds i32, ptr %804, i64 -2 + %806 = load i32, ptr %arrayidx4.i.i358.i.i.i, align 4 + %cmp5.i.i359.i.i.i = icmp eq i32 %805, %806 + br i1 %cmp5.i.i359.i.i.i, label %if.then.i.i364.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + +if.then.i.i364.i.i.i: ; preds = %lor.lhs.false.i.i356.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i365.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i366.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i365.i.i.i, i64 -1 + %.pre1.i.i367.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i366.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i: ; preds = %if.then.i.i364.i.i.i, %lor.lhs.false.i.i356.i.i.i + %807 = phi i32 [ %.pre1.i.i367.i.i.i, %if.then.i.i364.i.i.i ], [ %805, %lor.lhs.false.i.i356.i.i.i ] + %808 = phi ptr [ %.pre.i.i365.i.i.i, %if.then.i.i364.i.i.i ], [ %804, %lor.lhs.false.i.i356.i.i.i ] + %idx.ext.i.i360.i.i.i = zext i32 %807 to i64 + %add.ptr.i.i361.i.i.i = getelementptr inbounds ptr, ptr %808, i64 %idx.ext.i.i360.i.i.i + store ptr %802, ptr %add.ptr.i.i361.i.i.i, align 8 + %809 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i362.i.i.i = getelementptr inbounds i32, ptr %809, i64 -1 + %810 = load i32, ptr %arrayidx10.i.i362.i.i.i, align 4 + %inc.i.i363.i.i.i = add i32 %810, 1 + store i32 %inc.i.i363.i.i.i, ptr %arrayidx10.i.i362.i.i.i, align 4 + %bf.load231.i.i.i = load i32, ptr %628, align 8 + %bf.clear232.i.i.i = and i32 %bf.load231.i.i.i, 1 + %tobool233.not.i.i.i = icmp eq i32 %bf.clear232.i.i.i, 0 + br i1 %tobool233.not.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i, label %if.then.i370.i.i.i + +if.then.i370.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + %811 = load ptr, ptr %m_r.i64.i.i, align 8 + call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %626, i32 noundef 0, ptr noundef %811) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i: ; preds = %if.then.i370.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + %812 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i373.i.i.i = getelementptr inbounds i32, ptr %812, i64 -1 + %813 = load i32, ptr %arrayidx.i373.i.i.i, align 4 + %dec.i374.i.i.i = add i32 %813, -1 + store i32 %dec.i374.i.i.i, ptr %arrayidx.i373.i.i.i, align 4 + %this.val61.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i375.i.i.i = icmp eq ptr %this.val61.i.i.i, null + br i1 %cmp.i.i375.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i + %arrayidx.i.i377.i.i.i = getelementptr inbounds i32, ptr %this.val61.i.i.i, i64 -1 + %814 = load i32, ptr %arrayidx.i.i377.i.i.i, align 4 + %cmp3.i.i378.i.i.i = icmp eq i32 %814, 0 + br i1 %cmp3.i.i378.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i + %815 = add i32 %814, -1 + %816 = zext i32 %815 to i64 + %m_new_child.i380.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val61.i.i.i, i64 %816, i32 1 + %bf.load.i381.i.i.i = load i32, ptr %m_new_child.i380.i.i.i, align 8 + %bf.set.i382.i.i.i = or i32 %bf.load.i381.i.i.i, 2 + store i32 %bf.set.i382.i.i.i, ptr %m_new_child.i380.i.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +sw.bb235.i.i.i: ; preds = %sw.bb.i.i258 + %this.val.i.i.i260 = load ptr, ptr %587, align 8 + store ptr null, ptr %tmp.i.i.i, align 8 + store ptr %this.val.i.i.i260, ptr %m_manager.i385.i.i.i, align 8 + %m_num_args.i386.i.i.i = getelementptr inbounds %class.app, ptr %626, i64 0, i32 2 + %817 = load i32, ptr %m_num_args.i386.i.i.i, align 8 + %818 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i387.i.i.i = icmp eq ptr %818, null + br i1 %cmp.i387.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i261, label %if.then.i393.i.i.i + +if.then.i393.i.i.i: ; preds = %sw.bb235.i.i.i + %arrayidx.i389.i.i.i = getelementptr inbounds i32, ptr %818, i64 -1 + %819 = load i32, ptr %arrayidx.i389.i.i.i, align 4 + %sub242.i.i.i = sub i32 %819, %817 + store i32 %sub242.i.i.i, ptr %arrayidx.i389.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i261 + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i261: ; preds = %if.then.i393.i.i.i, %sw.bb235.i.i.i + %820 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i396.i.i.i = icmp eq ptr %820, null + br i1 %cmp.i396.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i262, label %if.then.i401.i.i.i + +if.then.i401.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i261 + %arrayidx.i398.i.i.i = getelementptr inbounds i32, ptr %820, i64 -1 + %821 = load i32, ptr %arrayidx.i398.i.i.i, align 4 + %sub246.i.i.i = sub i32 %821, %817 + store i32 %sub246.i.i.i, ptr %arrayidx.i398.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i262 + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i262: ; preds = %if.then.i401.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i261 + %822 = load i32, ptr %m_num_qvars.i75, align 8 + %sub248.i.i.i = sub i32 %822, %817 + store i32 %sub248.i.i.i, ptr %m_num_qvars.i75, align 8 invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont250.i.i unwind label %lpad249.i.i.loopexit.split-lp - -invoke.cont250.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit2253 - %818 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i2242 = icmp eq ptr %818, null - br i1 %cmp.i.i.i2242, label %invoke.cont252.i.i, label %if.end.i.i.i2243 - -if.end.i.i.i2243: ; preds = %invoke.cont250.i.i - %arrayidx.i.i.i2244 = getelementptr inbounds i32, ptr %818, i64 -1 - %819 = load i32, ptr %arrayidx.i.i.i2244, align 4 - %820 = add i32 %819, -1 - %821 = zext i32 %820 to i64 - br label %invoke.cont252.i.i - -invoke.cont252.i.i: ; preds = %if.end.i.i.i2243, %invoke.cont250.i.i - %retval.0.i.i.i2245 = phi i64 [ %821, %if.end.i.i.i2243 ], [ 4294967295, %invoke.cont250.i.i ] - %arrayidx.i1.i.i2246 = getelementptr inbounds ptr, ptr %818, i64 %retval.0.i.i.i2245 - %822 = load ptr, ptr %arrayidx.i1.i.i2246, align 8 - %tobool.not.i2227 = icmp eq ptr %822, null - br i1 %tobool.not.i2227, label %if.end.i2231, label %_ZN11ast_manager7inc_refEP3ast.exit.i2228 - -_ZN11ast_manager7inc_refEP3ast.exit.i2228: ; preds = %invoke.cont252.i.i - %m_ref_count.i.i.i2229 = getelementptr inbounds %class.ast, ptr %822, i64 0, i32 2 - %823 = load i32, ptr %m_ref_count.i.i.i2229, align 4 - %inc.i.i.i2230 = add i32 %823, 1 - store i32 %inc.i.i.i2230, ptr %m_ref_count.i.i.i2229, align 4 - br label %if.end.i2231 - -if.end.i2231: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i2228, %invoke.cont252.i.i - %824 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2232 = icmp eq ptr %824, null - br i1 %tobool.not.i3.i2232, label %invoke.cont255.i.i, label %if.then.i.i.i2233 - -if.then.i.i.i2233: ; preds = %if.end.i2231 - %825 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i2235 = getelementptr inbounds %class.ast, ptr %824, i64 0, i32 2 - %826 = load i32, ptr %m_ref_count.i.i.i.i2235, align 4 - %dec.i.i.i.i2236 = add i32 %826, -1 - store i32 %dec.i.i.i.i2236, ptr %m_ref_count.i.i.i.i2235, align 4 - %cmp.i.i.i2237 = icmp eq i32 %dec.i.i.i.i2236, 0 - br i1 %cmp.i.i.i2237, label %if.then2.i.i.i2238, label %invoke.cont255.i.i - -if.then2.i.i.i2238: ; preds = %if.then.i.i.i2233 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %825, ptr noundef nonnull %824) - to label %invoke.cont255.i.i unwind label %lpad249.i.i.loopexit.split-lp - -invoke.cont255.i.i: ; preds = %if.then.i.i.i2233, %if.end.i2231, %if.then2.i.i.i2238 - store ptr %822, ptr %m_r.i48.i, align 8 - %m_kind.i.i.i2213 = getelementptr inbounds %class.ast, ptr %822, i64 0, i32 1 - %bf.load.i.i.i2214 = load i32, ptr %m_kind.i.i.i2213, align 4 - %bf.clear.i.i.i2215 = and i32 %bf.load.i.i.i2214, 65535 - %cmp.i.i2216 = icmp eq i32 %bf.clear.i.i.i2215, 0 - br i1 %cmp.i.i2216, label %invoke.cont260.i.i, label %if.then262.i.i - -invoke.cont260.i.i: ; preds = %invoke.cont255.i.i - %m_num_args.i.i.i2218 = getelementptr inbounds %class.app, ptr %822, i64 0, i32 2 - %827 = load i32, ptr %m_num_args.i.i.i2218, align 8 - %cmp.i.i.i2219 = icmp eq i32 %827, 0 - %m_args.i.i.i2220 = getelementptr inbounds %class.app, ptr %822, i64 0, i32 3 - %idx.ext.i.i.i2221 = zext i32 %827 to i64 - %add.ptr.i.i.i2222 = getelementptr inbounds ptr, ptr %m_args.i.i.i2220, i64 %idx.ext.i.i.i2221 - %cond.i.i.i2223 = select i1 %cmp.i.i.i2219, ptr @_ZN3app16g_constant_flagsE, ptr %add.ptr.i.i.i2222 - %bf.load.i.i2224 = load i32, ptr %cond.i.i.i2223, align 4 - %828 = and i32 %bf.load.i.i2224, 65536 - %tobool.i.i2225.not = icmp eq i32 %828, 0 - br i1 %tobool.i.i2225.not, label %if.then262.i.i, label %if.end269.i.i - -if.then262.i.i: ; preds = %invoke.cont255.i.i, %invoke.cont260.i.i - invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %m_inv_shifter.i.i, ptr noundef nonnull %822, i32 noundef %812, ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i) - to label %invoke.cont266.i.i unwind label %lpad249.i.i.loopexit.split-lp - -invoke.cont266.i.i: ; preds = %if.then262.i.i - %829 = load ptr, ptr %m_r.i48.i, align 8 - %830 = load ptr, ptr %tmp.i.i, align 8 - store ptr %830, ptr %m_r.i48.i, align 8 - store ptr %829, ptr %tmp.i.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %829, null - br i1 %tobool.not.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit, label %if.then.i.i.i.i2205 - -if.then.i.i.i.i2205: ; preds = %invoke.cont266.i.i - %831 = load ptr, ptr %m_manager.i2270, align 8 - %m_ref_count.i.i.i.i.i2207 = getelementptr inbounds %class.ast, ptr %829, i64 0, i32 2 - %832 = load i32, ptr %m_ref_count.i.i.i.i.i2207, align 4 - %dec.i.i.i.i.i2208 = add i32 %832, -1 - store i32 %dec.i.i.i.i.i2208, ptr %m_ref_count.i.i.i.i.i2207, align 4 - %cmp.i.i.i.i2209 = icmp eq i32 %dec.i.i.i.i.i2208, 0 - br i1 %cmp.i.i.i.i2209, label %if.then2.i.i.i.i2211, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit - -if.then2.i.i.i.i2211: ; preds = %if.then.i.i.i.i2205 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %831, ptr noundef nonnull %829) - to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit unwind label %terminate.lpad.i2212 - -terminate.lpad.i2212: ; preds = %if.then2.i.i.i.i2211 - %833 = landingpad { ptr, i32 } + to label %invoke.cont250.i.i.i unwind label %lpad249.loopexit.split-lp.i.i.i + +invoke.cont250.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i262 + %823 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i406.i.i.i = icmp eq ptr %823, null + br i1 %cmp.i.i.i406.i.i.i, label %invoke.cont252.i.i.i, label %if.end.i.i.i407.i.i.i + +if.end.i.i.i407.i.i.i: ; preds = %invoke.cont250.i.i.i + %arrayidx.i.i.i408.i.i.i = getelementptr inbounds i32, ptr %823, i64 -1 + %824 = load i32, ptr %arrayidx.i.i.i408.i.i.i, align 4 + %825 = add i32 %824, -1 + %826 = zext i32 %825 to i64 + br label %invoke.cont252.i.i.i + +invoke.cont252.i.i.i: ; preds = %if.end.i.i.i407.i.i.i, %invoke.cont250.i.i.i + %retval.0.i.i.i409.i.i.i = phi i64 [ %826, %if.end.i.i.i407.i.i.i ], [ 4294967295, %invoke.cont250.i.i.i ] + %arrayidx.i1.i.i410.i.i.i = getelementptr inbounds ptr, ptr %823, i64 %retval.0.i.i.i409.i.i.i + %827 = load ptr, ptr %arrayidx.i1.i.i410.i.i.i, align 8 + %tobool.not.i412.i.i.i = icmp eq ptr %827, null + br i1 %tobool.not.i412.i.i.i, label %if.end.i416.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i: ; preds = %invoke.cont252.i.i.i + %m_ref_count.i.i.i414.i.i.i = getelementptr inbounds %class.ast, ptr %827, i64 0, i32 2 + %828 = load i32, ptr %m_ref_count.i.i.i414.i.i.i, align 4 + %inc.i.i.i415.i.i.i = add i32 %828, 1 + store i32 %inc.i.i.i415.i.i.i, ptr %m_ref_count.i.i.i414.i.i.i, align 4 + br label %if.end.i416.i.i.i + +if.end.i416.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i, %invoke.cont252.i.i.i + %829 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i417.i.i.i = icmp eq ptr %829, null + br i1 %tobool.not.i3.i417.i.i.i, label %invoke.cont255.i.i.i, label %if.then.i.i.i418.i.i.i + +if.then.i.i.i418.i.i.i: ; preds = %if.end.i416.i.i.i + %830 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i420.i.i.i = getelementptr inbounds %class.ast, ptr %829, i64 0, i32 2 + %831 = load i32, ptr %m_ref_count.i.i.i.i420.i.i.i, align 4 + %dec.i.i.i.i421.i.i.i = add i32 %831, -1 + store i32 %dec.i.i.i.i421.i.i.i, ptr %m_ref_count.i.i.i.i420.i.i.i, align 4 + %cmp.i.i.i422.i.i.i = icmp eq i32 %dec.i.i.i.i421.i.i.i, 0 + br i1 %cmp.i.i.i422.i.i.i, label %if.then2.i.i.i423.i.i.i, label %invoke.cont255.i.i.i + +if.then2.i.i.i423.i.i.i: ; preds = %if.then.i.i.i418.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %830, ptr noundef nonnull %829) + to label %invoke.cont255.i.i.i unwind label %lpad249.loopexit.split-lp.i.i.i + +invoke.cont255.i.i.i: ; preds = %if.then2.i.i.i423.i.i.i, %if.then.i.i.i418.i.i.i, %if.end.i416.i.i.i + store ptr %827, ptr %m_r.i64.i.i, align 8 + %m_kind.i.i.i426.i.i.i = getelementptr inbounds %class.ast, ptr %827, i64 0, i32 1 + %bf.load.i.i.i427.i.i.i = load i32, ptr %m_kind.i.i.i426.i.i.i, align 4 + %bf.clear.i.i.i428.i.i.i = and i32 %bf.load.i.i.i427.i.i.i, 65535 + %cmp.i.i429.i.i.i = icmp eq i32 %bf.clear.i.i.i428.i.i.i, 0 + br i1 %cmp.i.i429.i.i.i, label %invoke.cont260.i.i.i, label %if.then262.i.i.i + +invoke.cont260.i.i.i: ; preds = %invoke.cont255.i.i.i + %m_num_args.i.i.i431.i.i.i = getelementptr inbounds %class.app, ptr %827, i64 0, i32 2 + %832 = load i32, ptr %m_num_args.i.i.i431.i.i.i, align 8 + %cmp.i.i.i432.i.i.i = icmp eq i32 %832, 0 + %m_args.i.i.i433.i.i.i = getelementptr inbounds %class.app, ptr %827, i64 0, i32 3 + %idx.ext.i.i.i434.i.i.i = zext i32 %832 to i64 + %add.ptr.i.i.i435.i.i.i = getelementptr inbounds ptr, ptr %m_args.i.i.i433.i.i.i, i64 %idx.ext.i.i.i434.i.i.i + %cond.i.i.i436.i.i.i = select i1 %cmp.i.i.i432.i.i.i, ptr @_ZN3app16g_constant_flagsE, ptr %add.ptr.i.i.i435.i.i.i + %bf.load.i.i437.i.i.i = load i32, ptr %cond.i.i.i436.i.i.i, align 4 + %833 = and i32 %bf.load.i.i437.i.i.i, 65536 + %tobool.i.i438.not.i.i.i = icmp eq i32 %833, 0 + br i1 %tobool.i.i438.not.i.i.i, label %if.then262.i.i.i, label %if.end269.i.i.i + +if.then262.i.i.i: ; preds = %invoke.cont260.i.i.i, %invoke.cont255.i.i.i + invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %m_inv_shifter.i.i.i, ptr noundef nonnull %827, i32 noundef %817, ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i.i) + to label %invoke.cont266.i.i.i unwind label %lpad249.loopexit.split-lp.i.i.i + +invoke.cont266.i.i.i: ; preds = %if.then262.i.i.i + %834 = load ptr, ptr %m_r.i64.i.i, align 8 + %835 = load ptr, ptr %tmp.i.i.i, align 8 + store ptr %835, ptr %m_r.i64.i.i, align 8 + store ptr %834, ptr %tmp.i.i.i, align 8 + %tobool.not.i.i.i440.i.i.i = icmp eq ptr %834, null + br i1 %tobool.not.i.i.i440.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i, label %if.then.i.i.i.i441.i.i.i + +if.then.i.i.i.i441.i.i.i: ; preds = %invoke.cont266.i.i.i + %836 = load ptr, ptr %m_manager.i385.i.i.i, align 8 + %m_ref_count.i.i.i.i.i443.i.i.i = getelementptr inbounds %class.ast, ptr %834, i64 0, i32 2 + %837 = load i32, ptr %m_ref_count.i.i.i.i.i443.i.i.i, align 4 + %dec.i.i.i.i.i444.i.i.i = add i32 %837, -1 + store i32 %dec.i.i.i.i.i444.i.i.i, ptr %m_ref_count.i.i.i.i.i443.i.i.i, align 4 + %cmp.i.i.i.i445.i.i.i = icmp eq i32 %dec.i.i.i.i.i444.i.i.i, 0 + br i1 %cmp.i.i.i.i445.i.i.i, label %if.then2.i.i.i.i446.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i + +if.then2.i.i.i.i446.i.i.i: ; preds = %if.then.i.i.i.i441.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %836, ptr noundef nonnull %834) + to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i unwind label %terminate.lpad.i447.i.i.i + +terminate.lpad.i447.i.i.i: ; preds = %if.then2.i.i.i.i446.i.i.i + %838 = landingpad { ptr, i32 } catch ptr null - %834 = extractvalue { ptr, i32 } %833, 0 - call void @__clang_call_terminate(ptr %834) #19 + %839 = extractvalue { ptr, i32 } %838, 0 + call void @__clang_call_terminate(ptr %839) #19 unreachable -_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit: ; preds = %invoke.cont266.i.i, %if.then.i.i.i.i2205, %if.then2.i.i.i.i2211 - store ptr null, ptr %tmp.i.i, align 8 - br label %if.end269.i.i +_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i: ; preds = %if.then2.i.i.i.i446.i.i.i, %if.then.i.i.i.i441.i.i.i, %invoke.cont266.i.i.i + store ptr null, ptr %tmp.i.i.i, align 8 + br label %if.end269.i.i.i -lpad249.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i2201 - %lpad.loopexit2829 = landingpad { ptr, i32 } +lpad249.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i472.i.i.i + %lpad.loopexit537.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad249.i.i + br label %lpad249.i.i.i -lpad249.i.i.loopexit.split-lp: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit2253, %if.then262.i.i, %if.then.i2153, %if.then.i.i2171, %if.then2.i.i.i2238 - %lpad.loopexit.split-lp = landingpad { ptr, i32 } +lpad249.loopexit.split-lp.i.i.i: ; preds = %if.then.i498.i.i.i, %if.then.i.i491.i.i.i, %if.then262.i.i.i, %if.then2.i.i.i423.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i262 + %lpad.loopexit.split-lp538.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad249.i.i + br label %lpad249.i.i.i -lpad249.i.i: ; preds = %lpad249.i.i.loopexit.split-lp, %lpad249.i.i.loopexit - %lpad.phi2830 = phi { ptr, i32 } [ %lpad.loopexit2829, %lpad249.i.i.loopexit ], [ %lpad.loopexit.split-lp, %lpad249.i.i.loopexit.split-lp ] - call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i) #18 +lpad249.i.i.i: ; preds = %lpad249.loopexit.split-lp.i.i.i, %lpad249.loopexit.i.i.i + %lpad.phi539.i.i.i = phi { ptr, i32 } [ %lpad.loopexit537.i.i.i, %lpad249.loopexit.i.i.i ], [ %lpad.loopexit.split-lp538.i.i.i, %lpad249.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i.i) #18 br label %common.resume -if.end269.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit, %invoke.cont260.i.i - %m_spos271.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %621, i64 %retval.0.i.i.i240, i32 2 - %835 = load i32, ptr %m_spos271.i.i, align 4 - %836 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i2179 = icmp eq ptr %836, null - br i1 %cmp.i.i.i2179, label %invoke.cont272.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2180 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2180: ; preds = %if.end269.i.i - %arrayidx.i.i.i2183 = getelementptr inbounds i32, ptr %836, i64 -1 - %837 = load i32, ptr %arrayidx.i.i.i2183, align 4 - %838 = zext i32 %837 to i64 - %add.ptr.i.i2184 = getelementptr inbounds ptr, ptr %836, i64 %838 - %cmp3.i.i2185 = icmp ugt i32 %837, %835 - br i1 %cmp3.i.i2185, label %for.body.i.i2188.preheader, label %if.then.i.i2186 - -for.body.i.i2188.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2180 - %idx.ext.i2181 = zext i32 %835 to i64 - %add.ptr.i2182 = getelementptr inbounds ptr, ptr %836, i64 %idx.ext.i2181 - br label %for.body.i.i2188 - -for.body.i.i2188: ; preds = %for.body.i.i2188.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2195 - %it.04.i.i2189 = phi ptr [ %incdec.ptr.i.i2196, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2195 ], [ %add.ptr.i2182, %for.body.i.i2188.preheader ] - %839 = load ptr, ptr %it.04.i.i2189, align 8 - %840 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i.i2190 = icmp eq ptr %839, null - br i1 %tobool.not.i.i.i.i.i2190, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2195, label %if.then.i.i.i.i.i2191 - -if.then.i.i.i.i.i2191: ; preds = %for.body.i.i2188 - %m_ref_count.i.i.i.i.i.i2192 = getelementptr inbounds %class.ast, ptr %839, i64 0, i32 2 - %841 = load i32, ptr %m_ref_count.i.i.i.i.i.i2192, align 4 - %dec.i.i.i.i.i.i2193 = add i32 %841, -1 - store i32 %dec.i.i.i.i.i.i2193, ptr %m_ref_count.i.i.i.i.i.i2192, align 4 - %cmp.i.i.i.i.i2194 = icmp eq i32 %dec.i.i.i.i.i.i2193, 0 - br i1 %cmp.i.i.i.i.i2194, label %if.then2.i.i.i.i.i2201, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2195 - -if.then2.i.i.i.i.i2201: ; preds = %if.then.i.i.i.i.i2191 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %840, ptr noundef nonnull %839) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2195 unwind label %lpad249.i.i.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2195: ; preds = %if.then2.i.i.i.i.i2201, %if.then.i.i.i.i.i2191, %for.body.i.i2188 - %incdec.ptr.i.i2196 = getelementptr inbounds ptr, ptr %it.04.i.i2189, i64 1 - %cmp.i.i2197 = icmp ult ptr %incdec.ptr.i.i2196, %add.ptr.i.i2184 - br i1 %cmp.i.i2197, label %for.body.i.i2188, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2198, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2198: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2195 - %.pre.i2199 = load ptr, ptr %m_nodes.i.i424, align 8 - %tobool.not.i.i2200 = icmp eq ptr %.pre.i2199, null - br i1 %tobool.not.i.i2200, label %invoke.cont272.i.i, label %if.then.i.i2186 - -if.then.i.i2186: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2198, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2180 - %842 = phi ptr [ %.pre.i2199, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2198 ], [ %836, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2180 ] - %arrayidx.i.i2187 = getelementptr inbounds i32, ptr %842, i64 -1 - store i32 %835, ptr %arrayidx.i.i2187, align 4 - br label %invoke.cont272.i.i - -invoke.cont272.i.i: ; preds = %if.then.i.i2186, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2198, %if.end269.i.i - %843 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2156 = icmp eq ptr %843, null - br i1 %tobool.not.i.i.i.i2156, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2160, label %if.then.i.i.i.i2157 - -if.then.i.i.i.i2157: ; preds = %invoke.cont272.i.i - %m_ref_count.i.i.i.i.i2158 = getelementptr inbounds %class.ast, ptr %843, i64 0, i32 2 - %844 = load i32, ptr %m_ref_count.i.i.i.i.i2158, align 4 - %inc.i.i.i.i.i2159 = add i32 %844, 1 - store i32 %inc.i.i.i.i.i2159, ptr %m_ref_count.i.i.i.i.i2158, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2160 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2160: ; preds = %if.then.i.i.i.i2157, %invoke.cont272.i.i - %845 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i2162 = icmp eq ptr %845, null - br i1 %cmp.i.i2162, label %if.then.i.i2171, label %lor.lhs.false.i.i2163 - -lor.lhs.false.i.i2163: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2160 - %arrayidx.i.i2164 = getelementptr inbounds i32, ptr %845, i64 -1 - %846 = load i32, ptr %arrayidx.i.i2164, align 4 - %arrayidx4.i.i2165 = getelementptr inbounds i32, ptr %845, i64 -2 - %847 = load i32, ptr %arrayidx4.i.i2165, align 4 - %cmp5.i.i2166 = icmp eq i32 %846, %847 - br i1 %cmp5.i.i2166, label %if.then.i.i2171, label %invoke.cont277.i.i - -if.then.i.i2171: ; preds = %lor.lhs.false.i.i2163, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2160 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - to label %.noexc2175 unwind label %lpad249.i.i.loopexit.split-lp - -.noexc2175: ; preds = %if.then.i.i2171 - %.pre.i.i2172 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i2173 = getelementptr inbounds i32, ptr %.pre.i.i2172, i64 -1 - %.pre1.i.i2174 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2173, align 4 - br label %invoke.cont277.i.i - -invoke.cont277.i.i: ; preds = %.noexc2175, %lor.lhs.false.i.i2163 - %848 = phi i32 [ %.pre1.i.i2174, %.noexc2175 ], [ %846, %lor.lhs.false.i.i2163 ] - %849 = phi ptr [ %.pre.i.i2172, %.noexc2175 ], [ %845, %lor.lhs.false.i.i2163 ] - %idx.ext.i.i2167 = zext i32 %848 to i64 - %add.ptr.i.i2168 = getelementptr inbounds ptr, ptr %849, i64 %idx.ext.i.i2167 - store ptr %843, ptr %add.ptr.i.i2168, align 8 - %850 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i2169 = getelementptr inbounds i32, ptr %850, i64 -1 - %851 = load i32, ptr %arrayidx10.i.i2169, align 4 - %inc.i.i2170 = add i32 %851, 1 - store i32 %inc.i.i2170, ptr %arrayidx10.i.i2169, align 4 - %bf.load286.i.i = load i32, ptr %627, align 8 - %bf.clear287.i.i = and i32 %bf.load286.i.i, 1 - %tobool288.i.i.not = icmp eq i32 %bf.clear287.i.i, 0 - br i1 %tobool288.i.i.not, label %invoke.cont289.i.i, label %if.then.i2153 - -if.then.i2153: ; preds = %invoke.cont277.i.i - %852 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %625, i32 noundef 0, ptr noundef %852) - to label %invoke.cont289.i.i unwind label %lpad249.i.i.loopexit.split-lp - -invoke.cont289.i.i: ; preds = %invoke.cont277.i.i, %if.then.i2153 - %853 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2149 = getelementptr inbounds i32, ptr %853, i64 -1 - %854 = load i32, ptr %arrayidx.i2149, align 4 - %dec.i2150 = add i32 %854, -1 - store i32 %dec.i2150, ptr %arrayidx.i2149, align 4 - %this.val60.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2139 = icmp eq ptr %this.val60.i.i, null - br i1 %cmp.i.i2139, label %invoke.cont291.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2140 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2140: ; preds = %invoke.cont289.i.i - %arrayidx.i.i2141 = getelementptr inbounds i32, ptr %this.val60.i.i, i64 -1 - %855 = load i32, ptr %arrayidx.i.i2141, align 4 - %cmp3.i.i2142 = icmp eq i32 %855, 0 - br i1 %cmp3.i.i2142, label %invoke.cont291.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2143 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2143: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2140 - %856 = add i32 %855, -1 - %857 = zext i32 %856 to i64 - %m_new_child.i2144 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val60.i.i, i64 %857, i32 1 - %bf.load.i2145 = load i32, ptr %m_new_child.i2144, align 8 - %bf.set.i2146 = or i32 %bf.load.i2145, 2 - store i32 %bf.set.i2146, ptr %m_new_child.i2144, align 8 - br label %invoke.cont291.i.i - -invoke.cont291.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2143, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2140, %invoke.cont289.i.i - %858 = load ptr, ptr %tmp.i.i, align 8 - %tobool.not.i.i2130 = icmp eq ptr %858, null - br i1 %tobool.not.i.i2130, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i2131 - -if.then.i.i.i2131: ; preds = %invoke.cont291.i.i - %859 = load ptr, ptr %m_manager.i2270, align 8 - %m_ref_count.i.i.i.i2133 = getelementptr inbounds %class.ast, ptr %858, i64 0, i32 2 - %860 = load i32, ptr %m_ref_count.i.i.i.i2133, align 4 - %dec.i.i.i.i2134 = add i32 %860, -1 - store i32 %dec.i.i.i.i2134, ptr %m_ref_count.i.i.i.i2133, align 4 - %cmp.i.i.i2135 = icmp eq i32 %dec.i.i.i.i2134, 0 - br i1 %cmp.i.i.i2135, label %if.then2.i.i.i2137, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i2137: ; preds = %if.then.i.i.i2131 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %859, ptr noundef nonnull %858) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i2138 - -terminate.lpad.i2138: ; preds = %if.then2.i.i.i2137 - %861 = landingpad { ptr, i32 } +if.end269.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i, %invoke.cont260.i.i.i + %m_spos271.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %622, i64 %retval.0.i.i.i42.i, i32 2 + %840 = load i32, ptr %m_spos271.i.i.i, align 4 + %841 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i450.i.i.i = icmp eq ptr %841, null + br i1 %cmp.i.i.i450.i.i.i, label %invoke.cont272.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i: ; preds = %if.end269.i.i.i + %arrayidx.i.i.i454.i.i.i = getelementptr inbounds i32, ptr %841, i64 -1 + %842 = load i32, ptr %arrayidx.i.i.i454.i.i.i, align 4 + %843 = zext i32 %842 to i64 + %add.ptr.i.i455.i.i.i = getelementptr inbounds ptr, ptr %841, i64 %843 + %cmp3.i.i456.i.i.i = icmp ugt i32 %842, %840 + br i1 %cmp3.i.i456.i.i.i, label %for.body.i.i459.preheader.i.i.i, label %if.then.i.i457.i.i.i + +for.body.i.i459.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + %idx.ext.i452.i.i.i = zext i32 %840 to i64 + %add.ptr.i453.i.i.i = getelementptr inbounds ptr, ptr %841, i64 %idx.ext.i452.i.i.i + br label %for.body.i.i459.i.i.i + +for.body.i.i459.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i, %for.body.i.i459.preheader.i.i.i + %it.04.i.i460.i.i.i = phi ptr [ %incdec.ptr.i.i467.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i ], [ %add.ptr.i453.i.i.i, %for.body.i.i459.preheader.i.i.i ] + %844 = load ptr, ptr %it.04.i.i460.i.i.i, align 8 + %845 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i461.i.i.i = icmp eq ptr %844, null + br i1 %tobool.not.i.i.i.i.i461.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i, label %if.then.i.i.i.i.i462.i.i.i + +if.then.i.i.i.i.i462.i.i.i: ; preds = %for.body.i.i459.i.i.i + %m_ref_count.i.i.i.i.i.i463.i.i.i = getelementptr inbounds %class.ast, ptr %844, i64 0, i32 2 + %846 = load i32, ptr %m_ref_count.i.i.i.i.i.i463.i.i.i, align 4 + %dec.i.i.i.i.i.i464.i.i.i = add i32 %846, -1 + store i32 %dec.i.i.i.i.i.i464.i.i.i, ptr %m_ref_count.i.i.i.i.i.i463.i.i.i, align 4 + %cmp.i.i.i.i.i465.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i464.i.i.i, 0 + br i1 %cmp.i.i.i.i.i465.i.i.i, label %if.then2.i.i.i.i.i472.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i + +if.then2.i.i.i.i.i472.i.i.i: ; preds = %if.then.i.i.i.i.i462.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %845, ptr noundef nonnull %844) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i unwind label %lpad249.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i: ; preds = %if.then2.i.i.i.i.i472.i.i.i, %if.then.i.i.i.i.i462.i.i.i, %for.body.i.i459.i.i.i + %incdec.ptr.i.i467.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i460.i.i.i, i64 1 + %cmp.i.i468.i.i.i = icmp ult ptr %incdec.ptr.i.i467.i.i.i, %add.ptr.i.i455.i.i.i + br i1 %cmp.i.i468.i.i.i, label %for.body.i.i459.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i + %.pre.i470.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i471.i.i.i = icmp eq ptr %.pre.i470.i.i.i, null + br i1 %tobool.not.i.i471.i.i.i, label %invoke.cont272.i.i.i, label %if.then.i.i457.i.i.i + +if.then.i.i457.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + %847 = phi ptr [ %.pre.i470.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i ], [ %841, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i ] + %arrayidx.i.i458.i.i.i = getelementptr inbounds i32, ptr %847, i64 -1 + store i32 %840, ptr %arrayidx.i.i458.i.i.i, align 4 + br label %invoke.cont272.i.i.i + +invoke.cont272.i.i.i: ; preds = %if.then.i.i457.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, %if.end269.i.i.i + %848 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i476.i.i.i = icmp eq ptr %848, null + br i1 %tobool.not.i.i.i.i476.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i, label %if.then.i.i.i.i477.i.i.i + +if.then.i.i.i.i477.i.i.i: ; preds = %invoke.cont272.i.i.i + %m_ref_count.i.i.i.i.i478.i.i.i = getelementptr inbounds %class.ast, ptr %848, i64 0, i32 2 + %849 = load i32, ptr %m_ref_count.i.i.i.i.i478.i.i.i, align 4 + %inc.i.i.i.i.i479.i.i.i = add i32 %849, 1 + store i32 %inc.i.i.i.i.i479.i.i.i, ptr %m_ref_count.i.i.i.i.i478.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i: ; preds = %if.then.i.i.i.i477.i.i.i, %invoke.cont272.i.i.i + %850 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i482.i.i.i = icmp eq ptr %850, null + br i1 %cmp.i.i482.i.i.i, label %if.then.i.i491.i.i.i, label %lor.lhs.false.i.i483.i.i.i + +lor.lhs.false.i.i483.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + %arrayidx.i.i484.i.i.i = getelementptr inbounds i32, ptr %850, i64 -1 + %851 = load i32, ptr %arrayidx.i.i484.i.i.i, align 4 + %arrayidx4.i.i485.i.i.i = getelementptr inbounds i32, ptr %850, i64 -2 + %852 = load i32, ptr %arrayidx4.i.i485.i.i.i, align 4 + %cmp5.i.i486.i.i.i = icmp eq i32 %851, %852 + br i1 %cmp5.i.i486.i.i.i, label %if.then.i.i491.i.i.i, label %invoke.cont277.i.i.i + +if.then.i.i491.i.i.i: ; preds = %lor.lhs.false.i.i483.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc495.i.i.i unwind label %lpad249.loopexit.split-lp.i.i.i + +.noexc495.i.i.i: ; preds = %if.then.i.i491.i.i.i + %.pre.i.i492.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i493.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i492.i.i.i, i64 -1 + %.pre1.i.i494.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i493.i.i.i, align 4 + br label %invoke.cont277.i.i.i + +invoke.cont277.i.i.i: ; preds = %.noexc495.i.i.i, %lor.lhs.false.i.i483.i.i.i + %853 = phi i32 [ %.pre1.i.i494.i.i.i, %.noexc495.i.i.i ], [ %851, %lor.lhs.false.i.i483.i.i.i ] + %854 = phi ptr [ %.pre.i.i492.i.i.i, %.noexc495.i.i.i ], [ %850, %lor.lhs.false.i.i483.i.i.i ] + %idx.ext.i.i487.i.i.i = zext i32 %853 to i64 + %add.ptr.i.i488.i.i.i = getelementptr inbounds ptr, ptr %854, i64 %idx.ext.i.i487.i.i.i + store ptr %848, ptr %add.ptr.i.i488.i.i.i, align 8 + %855 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i489.i.i.i = getelementptr inbounds i32, ptr %855, i64 -1 + %856 = load i32, ptr %arrayidx10.i.i489.i.i.i, align 4 + %inc.i.i490.i.i.i = add i32 %856, 1 + store i32 %inc.i.i490.i.i.i, ptr %arrayidx10.i.i489.i.i.i, align 4 + %bf.load286.i.i.i = load i32, ptr %628, align 8 + %bf.clear287.i.i.i = and i32 %bf.load286.i.i.i, 1 + %tobool288.not.i.i.i = icmp eq i32 %bf.clear287.i.i.i, 0 + br i1 %tobool288.not.i.i.i, label %invoke.cont289.i.i.i, label %if.then.i498.i.i.i + +if.then.i498.i.i.i: ; preds = %invoke.cont277.i.i.i + %857 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %626, i32 noundef 0, ptr noundef %857) + to label %invoke.cont289.i.i.i unwind label %lpad249.loopexit.split-lp.i.i.i + +invoke.cont289.i.i.i: ; preds = %if.then.i498.i.i.i, %invoke.cont277.i.i.i + %858 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i502.i.i.i = getelementptr inbounds i32, ptr %858, i64 -1 + %859 = load i32, ptr %arrayidx.i502.i.i.i, align 4 + %dec.i503.i.i.i = add i32 %859, -1 + store i32 %dec.i503.i.i.i, ptr %arrayidx.i502.i.i.i, align 4 + %this.val60.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i504.i.i.i = icmp eq ptr %this.val60.i.i.i, null + br i1 %cmp.i.i504.i.i.i, label %invoke.cont291.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i: ; preds = %invoke.cont289.i.i.i + %arrayidx.i.i506.i.i.i = getelementptr inbounds i32, ptr %this.val60.i.i.i, i64 -1 + %860 = load i32, ptr %arrayidx.i.i506.i.i.i, align 4 + %cmp3.i.i507.i.i.i = icmp eq i32 %860, 0 + br i1 %cmp3.i.i507.i.i.i, label %invoke.cont291.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i + %861 = add i32 %860, -1 + %862 = zext i32 %861 to i64 + %m_new_child.i509.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val60.i.i.i, i64 %862, i32 1 + %bf.load.i510.i.i.i = load i32, ptr %m_new_child.i509.i.i.i, align 8 + %bf.set.i511.i.i.i = or i32 %bf.load.i510.i.i.i, 2 + store i32 %bf.set.i511.i.i.i, ptr %m_new_child.i509.i.i.i, align 8 + br label %invoke.cont291.i.i.i + +invoke.cont291.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i, %invoke.cont289.i.i.i + %863 = load ptr, ptr %tmp.i.i.i, align 8 + %tobool.not.i.i514.i.i.i = icmp eq ptr %863, null + br i1 %tobool.not.i.i514.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i515.i.i.i + +if.then.i.i.i515.i.i.i: ; preds = %invoke.cont291.i.i.i + %864 = load ptr, ptr %m_manager.i385.i.i.i, align 8 + %m_ref_count.i.i.i.i517.i.i.i = getelementptr inbounds %class.ast, ptr %863, i64 0, i32 2 + %865 = load i32, ptr %m_ref_count.i.i.i.i517.i.i.i, align 4 + %dec.i.i.i.i518.i.i.i = add i32 %865, -1 + store i32 %dec.i.i.i.i518.i.i.i, ptr %m_ref_count.i.i.i.i517.i.i.i, align 4 + %cmp.i.i.i519.i.i.i = icmp eq i32 %dec.i.i.i.i518.i.i.i, 0 + br i1 %cmp.i.i.i519.i.i.i, label %if.then2.i.i.i520.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.then2.i.i.i520.i.i.i: ; preds = %if.then.i.i.i515.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %864, ptr noundef nonnull %863) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i521.i.i.i + +terminate.lpad.i521.i.i.i: ; preds = %if.then2.i.i.i520.i.i.i + %866 = landingpad { ptr, i32 } catch ptr null - %862 = extractvalue { ptr, i32 } %861, 0 - call void @__clang_call_terminate(ptr %862) #19 + %867 = extractvalue { ptr, i32 } %866, 0 + call void @__clang_call_terminate(ptr %867) #19 unreachable -sw.bb292.i.i: ; preds = %sw.bb.i326 +sw.bb292.i.i.i: ; preds = %sw.bb.i.i258 call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 520, ptr noundef nonnull @.str.17) call void @exit(i32 noundef 107) #19 unreachable -entry.unreachabledefault.i.i406: ; preds = %sw.bb.i326 +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i: ; preds = %if.end.i.i.i319, %if.then2.i.i.i520.i.i.i, %if.then.i.i.i515.i.i.i, %invoke.cont291.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i, %cleanup.i.i.i316, %cleanup.thread.i.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i.i44) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %tmp.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.bb31.i.i: ; preds = %if.end28.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i.i42) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i.i43) + %m_num_decls.i.i.i.i125 = getelementptr inbounds %class.quantifier, ptr %626, i64 0, i32 2 + %868 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %bf.load.i39.i.i = load i32, ptr %628, align 8 + %cmp.i40.i.i = icmp ult i32 %bf.load.i39.i.i, 64 + br i1 %cmp.i40.i.i, label %if.then.i.i.i248, label %cond.end.i.i.i126 + +if.then.i.i.i248: ; preds = %sw.bb31.i.i + call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + %m_expr.i.i.i.i249 = getelementptr inbounds %class.quantifier, ptr %626, i64 0, i32 3 + %869 = load ptr, ptr %m_expr.i.i.i.i249, align 8 + store ptr %869, ptr %m_root.i74, align 8 + %870 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i.i128.i.i = icmp eq ptr %870, null + br i1 %cmp.i.i128.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i250, label %if.end.i.i129.i.i + +if.end.i.i129.i.i: ; preds = %if.then.i.i.i248 + %arrayidx.i.i130.i.i = getelementptr inbounds i32, ptr %870, i64 -1 + %871 = load i32, ptr %arrayidx.i.i130.i.i, align 4 + br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i250 + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i250: ; preds = %if.end.i.i129.i.i, %if.then.i.i.i248 + %retval.0.i.i131.i.i = phi i32 [ %871, %if.end.i.i129.i.i ], [ 0, %if.then.i.i.i248 ] + %cmp4326.not.i.i.i = icmp eq i32 %868, 0 + br i1 %cmp4326.not.i.i.i, label %for.end.i.i.i256, label %for.body.i.i.i251 + +for.body.i.i.i251: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i250, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i253 + %i.0327.i.i.i = phi i32 [ %inc.i.i.i254, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i253 ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i250 ] + %872 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i50.i.i.i = icmp eq ptr %872, null + br i1 %cmp.i50.i.i.i, label %if.then.i.i139.i.i, label %lor.lhs.false.i.i132.i.i + +lor.lhs.false.i.i132.i.i: ; preds = %for.body.i.i.i251 + %arrayidx.i51.i.i.i = getelementptr inbounds i32, ptr %872, i64 -1 + %873 = load i32, ptr %arrayidx.i51.i.i.i, align 4 + %arrayidx4.i.i133.i.i = getelementptr inbounds i32, ptr %872, i64 -2 + %874 = load i32, ptr %arrayidx4.i.i133.i.i, align 4 + %cmp5.i.i134.i.i = icmp eq i32 %873, %874 + br i1 %cmp5.i.i134.i.i, label %if.then.i.i139.i.i, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i252 + +if.then.i.i139.i.i: ; preds = %lor.lhs.false.i.i132.i.i, %for.body.i.i.i251 + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i.i83) + %.pre.i.i140.i.i = load ptr, ptr %m_bindings.i.i.i83, align 8 + %arrayidx8.phi.trans.insert.i.i141.i.i = getelementptr inbounds i32, ptr %.pre.i.i140.i.i, i64 -1 + %.pre1.i.i142.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i141.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i252 + +_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i252: ; preds = %if.then.i.i139.i.i, %lor.lhs.false.i.i132.i.i + %875 = phi i32 [ %.pre1.i.i142.i.i, %if.then.i.i139.i.i ], [ %873, %lor.lhs.false.i.i132.i.i ] + %876 = phi ptr [ %.pre.i.i140.i.i, %if.then.i.i139.i.i ], [ %872, %lor.lhs.false.i.i132.i.i ] + %idx.ext.i.i135.i.i = zext i32 %875 to i64 + %add.ptr.i.i136.i.i = getelementptr inbounds ptr, ptr %876, i64 %idx.ext.i.i135.i.i + store ptr null, ptr %add.ptr.i.i136.i.i, align 8 + %877 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %arrayidx10.i.i137.i.i = getelementptr inbounds i32, ptr %877, i64 -1 + %878 = load i32, ptr %arrayidx10.i.i137.i.i, align 4 + %inc.i.i138.i.i = add i32 %878, 1 + store i32 %inc.i.i138.i.i, ptr %arrayidx10.i.i137.i.i, align 4 + %879 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i53.i.i.i = icmp eq ptr %879, null + br i1 %cmp.i53.i.i.i, label %if.then.i63.i.i.i, label %lor.lhs.false.i54.i.i.i + +lor.lhs.false.i54.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i252 + %arrayidx.i55.i.i.i = getelementptr inbounds i32, ptr %879, i64 -1 + %880 = load i32, ptr %arrayidx.i55.i.i.i, align 4 + %arrayidx4.i56.i.i.i = getelementptr inbounds i32, ptr %879, i64 -2 + %881 = load i32, ptr %arrayidx4.i56.i.i.i, align 4 + %cmp5.i57.i.i.i = icmp eq i32 %880, %881 + br i1 %cmp5.i57.i.i.i, label %if.then.i63.i.i.i, label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i253 + +if.then.i63.i.i.i: ; preds = %lor.lhs.false.i54.i.i.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i252 + call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i.i84) + %.pre.i64.i.i.i = load ptr, ptr %m_shifts.i.i.i84, align 8 + %arrayidx8.phi.trans.insert.i65.i.i.i = getelementptr inbounds i32, ptr %.pre.i64.i.i.i, i64 -1 + %.pre1.i66.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i65.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i253 + +_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i253: ; preds = %if.then.i63.i.i.i, %lor.lhs.false.i54.i.i.i + %882 = phi i32 [ %.pre1.i66.i.i.i, %if.then.i63.i.i.i ], [ %880, %lor.lhs.false.i54.i.i.i ] + %883 = phi ptr [ %.pre.i64.i.i.i, %if.then.i63.i.i.i ], [ %879, %lor.lhs.false.i54.i.i.i ] + %idx.ext.i59.i.i.i = zext i32 %882 to i64 + %add.ptr.i60.i.i.i = getelementptr inbounds i32, ptr %883, i64 %idx.ext.i59.i.i.i + store i32 %retval.0.i.i131.i.i, ptr %add.ptr.i60.i.i.i, align 4 + %884 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %arrayidx10.i61.i.i.i = getelementptr inbounds i32, ptr %884, i64 -1 + %885 = load i32, ptr %arrayidx10.i61.i.i.i, align 4 + %inc.i62.i.i.i = add i32 %885, 1 + store i32 %inc.i62.i.i.i, ptr %arrayidx10.i61.i.i.i, align 4 + %inc.i.i.i254 = add nuw i32 %i.0327.i.i.i, 1 + %exitcond.not.i.i.i255 = icmp eq i32 %inc.i.i.i254, %868 + br i1 %exitcond.not.i.i.i255, label %for.end.i.i.i256, label %for.body.i.i.i251, !llvm.loop !30 + +for.end.i.i.i256: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i253, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i250 + %886 = load i32, ptr %m_num_qvars.i75, align 8 + %add.i.i.i257 = add i32 %886, %868 + store i32 %add.i.i.i257, ptr %m_num_qvars.i75, align 8 + br label %cond.end.i.i.i126 + +cond.end.i.i.i126: ; preds = %for.end.i.i.i256, %sw.bb31.i.i + %m_num_patterns.i.i.i.i.i127 = getelementptr inbounds %class.quantifier, ptr %626, i64 0, i32 11 + %887 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %add.i.i.i.i128 = add i32 %887, 1 + %m_num_no_patterns.i.i.i.i.i129 = getelementptr inbounds %class.quantifier, ptr %626, i64 0, i32 12 + %888 = load i32, ptr %m_num_no_patterns.i.i.i.i.i129, align 4 + %add3.i.i.i.i130 = add i32 %add.i.i.i.i128, %888 + %m_patterns_decls.i.i.i.i.i.i.i.i131 = getelementptr inbounds %class.quantifier, ptr %626, i64 0, i32 13 + %m_expr.i.i.i.i.i132 = getelementptr inbounds %class.quantifier, ptr %626, i64 0, i32 3 + br label %while.cond.i41.i.i + +while.cond.i41.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i236, %cond.end.i.i.i126 + %bf.load11.i.i.i133 = load i32, ptr %628, align 8 + %bf.lshr12.i.i.i134 = lshr i32 %bf.load11.i.i.i133, 6 + %cmp13.i.i.i135 = icmp ult i32 %bf.lshr12.i.i.i134, %add3.i.i.i.i130 + br i1 %cmp13.i.i.i135, label %while.body.i121.i.i, label %while.end.i42.i.i + +while.body.i121.i.i: ; preds = %while.cond.i41.i.i + %cmp.i67.i.i.i = icmp ult i32 %bf.load11.i.i.i133, 64 + br i1 %cmp.i67.i.i.i, label %_ZNK10quantifier9get_childEj.exit.i.i.i236, label %if.else.i.i122.i.i + +if.else.i.i122.i.i: ; preds = %while.body.i121.i.i + %889 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %cmp3.not.i.i.i.i232 = icmp ult i32 %889, %bf.lshr12.i.i.i134 + br i1 %cmp3.not.i.i.i.i232, label %if.else6.i.i.i.i241, label %if.then4.i.i.i.i233 + +if.then4.i.i.i.i233: ; preds = %if.else.i.i122.i.i + %890 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i.i.i.i.i234 = zext i32 %890 to i64 + %add.ptr.i.i.i.i.i.i.i235 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i.i.i.i.i234 + %add.ptr.i.i.i.i123.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i.i.i.i235, i64 %idx.ext.i.i.i.i.i.i.i234 + %891 = zext nneg i32 %bf.lshr12.i.i.i134 to i64 + %892 = getelementptr ptr, ptr %add.ptr.i.i.i.i123.i.i, i64 %891 + %arrayidx.i.i.i124.i.i = getelementptr ptr, ptr %892, i64 -1 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i236 + +if.else6.i.i.i.i241: ; preds = %if.else.i.i122.i.i + %893 = xor i32 %889, -1 + %sub9.i.i.i.i242 = add nsw i32 %bf.lshr12.i.i.i134, %893 + %894 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i7.i.i.i.i243 = zext i32 %894 to i64 + %add.ptr.i.i.i8.i.i.i.i244 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i7.i.i.i.i243 + %add.ptr.i.i9.i.i.i.i245 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i.i.i.i244, i64 %idx.ext.i.i.i7.i.i.i.i243 + %idxprom.i10.i.i.i.i246 = zext i32 %sub9.i.i.i.i242 to i64 + %arrayidx.i11.i.i.i.i247 = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i.i.i.i245, i64 %idxprom.i10.i.i.i.i246 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i236 + +_ZNK10quantifier9get_childEj.exit.i.i.i236: ; preds = %if.else6.i.i.i.i241, %if.then4.i.i.i.i233, %while.body.i121.i.i + %retval.0.in.i.i.i.i237 = phi ptr [ %arrayidx.i.i.i124.i.i, %if.then4.i.i.i.i233 ], [ %arrayidx.i11.i.i.i.i247, %if.else6.i.i.i.i241 ], [ %m_expr.i.i.i.i.i132, %while.body.i121.i.i ] + %retval.0.i69.i.i.i = load ptr, ptr %retval.0.in.i.i.i.i237, align 8 + %895 = and i32 %bf.load11.i.i.i133, -64 + %bf.shl.i125.i.i = add i32 %895, 64 + %bf.clear.i126.i.i = and i32 %bf.load11.i.i.i133, 63 + %bf.set.i127.i.i = or disjoint i32 %bf.shl.i125.i.i, %bf.clear.i126.i.i + store i32 %bf.set.i127.i.i, ptr %628, align 8 + %bf.lshr24.i.i.i238 = lshr i32 %bf.load11.i.i.i133, 4 + %bf.clear25.i.i.i239 = and i32 %bf.lshr24.i.i.i238, 3 + %call26.i.i.i240 = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i69.i.i.i, i32 noundef %bf.clear25.i.i.i239) + br i1 %call26.i.i.i240, label %while.cond.i41.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, !llvm.loop !31 + +while.end.i42.i.i: ; preds = %while.cond.i41.i.i + %896 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %m_spos.i.i.i136 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %622, i64 %retval.0.i.i.i42.i, i32 2 + %897 = load i32, ptr %m_spos.i.i.i136, align 4 + %idx.ext.i44.i.i = zext i32 %897 to i64 + %add.ptr.i45.i.i = getelementptr inbounds ptr, ptr %896, i64 %idx.ext.i44.i.i + %898 = load ptr, ptr %add.ptr.i45.i.i, align 8 + %899 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %900 = load i32, ptr %m_num_no_patterns.i.i.i.i.i129, align 4 + %901 = load ptr, ptr %587, align 8 + %902 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i46.i.i = zext i32 %902 to i64 + %add.ptr.i.i.i47.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i46.i.i + %add.ptr.i71.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i47.i.i, i64 %idx.ext.i.i.i46.i.i + %903 = ptrtoint ptr %901 to i64 + store i64 %903, ptr %new_pats.i.i.i42, align 8 + store ptr null, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp3.not.i.i.i.i.i137 = icmp eq i32 %899, 0 + br i1 %cmp3.not.i.i.i.i.i137, label %invoke.cont.i56.i.i, label %for.body.lr.ph.i.i.i.i.i138 + +for.body.lr.ph.i.i.i.i.i138: ; preds = %while.end.i42.i.i + %wide.trip.count.i.i.i.i.i139 = zext i32 %899 to i64 + br label %for.body.i.i.i49.i.i + +for.body.i.i.i49.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147, %for.body.lr.ph.i.i.i.i.i138 + %indvars.iv.i.i.i.i.i140 = phi i64 [ 0, %for.body.lr.ph.i.i.i.i.i138 ], [ %indvars.iv.next.i.i.i.i.i149, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 ] + %arrayidx.i.i72.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i71.i.i.i, i64 %indvars.iv.i.i.i.i.i140 + %904 = load ptr, ptr %arrayidx.i.i72.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i50.i.i = icmp eq ptr %904, null + br i1 %tobool.not.i.i.i.i.i.i.i50.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142, label %if.then.i.i.i.i.i.i.i51.i.i + +if.then.i.i.i.i.i.i.i51.i.i: ; preds = %for.body.i.i.i49.i.i + %m_ref_count.i.i.i.i.i.i.i.i52.i.i = getelementptr inbounds %class.ast, ptr %904, i64 0, i32 2 + %905 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i52.i.i, align 4 + %inc.i.i.i.i.i.i.i.i.i.i141 = add i32 %905, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i.i141, ptr %m_ref_count.i.i.i.i.i.i.i.i52.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142: ; preds = %if.then.i.i.i.i.i.i.i51.i.i, %for.body.i.i.i49.i.i + %906 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i.i.i.i.i143 = icmp eq ptr %906, null + br i1 %cmp.i.i.i.i.i.i.i143, label %if.then.i241.i.i, label %lor.lhs.false.i.i.i.i.i.i.i144 + +lor.lhs.false.i.i.i.i.i.i.i144: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + %arrayidx.i.i.i.i.i53.i.i = getelementptr inbounds i32, ptr %906, i64 -1 + %907 = load i32, ptr %arrayidx.i.i.i.i.i53.i.i, align 4 + %arrayidx4.i.i.i.i.i.i.i145 = getelementptr inbounds i32, ptr %906, i64 -2 + %908 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i145, align 4 + %cmp5.i.i.i.i.i.i.i146 = icmp eq i32 %907, %908 + br i1 %cmp5.i.i.i.i.i.i.i146, label %if.else.i217.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + +if.then.i241.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i214.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i215.i.i) + %call.i245.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc244.i.i unwind label %lpad.i.i.i.i227 + +call.i.noexc244.i.i: ; preds = %if.then.i241.i.i + store i32 2, ptr %call.i245.i.i, align 4 + %incdec.ptr.i242.i.i = getelementptr inbounds i32, ptr %call.i245.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i242.i.i, align 4 + %incdec.ptr2.i243.i.i = getelementptr inbounds i32, ptr %call.i245.i.i, i64 2 + store ptr %incdec.ptr2.i243.i.i, ptr %m_nodes.i.i.i48.i.i, align 8 + br label %.noexc.i.i.i.i228 + +if.else.i217.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i.i144 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i214.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i215.i.i) + %mul9.i219.i.i = mul i32 %907, 3 + %add10.i220.i.i = add i32 %mul9.i219.i.i, 1 + %shr.i221.i.i = lshr i32 %add10.i220.i.i, 1 + %mul12.i222.i.i = shl i32 %shr.i221.i.i, 3 + %add13.i223.i.i = add i32 %mul12.i222.i.i, 8 + %cmp15.not.i224.i.i = icmp ugt i32 %shr.i221.i.i, %907 + br i1 %cmp15.not.i224.i.i, label %lor.lhs.false.i234.i.i, label %if.then17.i225.i.i + +lor.lhs.false.i234.i.i: ; preds = %if.else.i217.i.i + %mul6.i235.i.i = shl i32 %907, 3 + %add7.i236.i.i = add i32 %mul6.i235.i.i, 8 + %cmp16.not.i237.i.i = icmp ugt i32 %add13.i223.i.i, %add7.i236.i.i + br i1 %cmp16.not.i237.i.i, label %if.end.i238.i.i, label %if.then17.i225.i.i + +if.then17.i225.i.i: ; preds = %lor.lhs.false.i234.i.i, %if.else.i217.i.i + %exception.i226.i.i = call ptr @__cxa_allocate_exception(i64 40) #18 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i215.i.i) #18 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i214.i.i, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i215.i.i) + to label %invoke.cont.i230.i.i unwind label %cleanup.action.i227.i.i + +invoke.cont.i230.i.i: ; preds = %if.then17.i225.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i226.i.i, align 8 + %m_msg.i.i231.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i226.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i231.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i214.i.i) #18 + invoke void @__cxa_throw(ptr nonnull %exception.i226.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #21 + to label %unreachable.i233.i.i unwind label %ehcleanup.i232.i.i + +ehcleanup.i232.i.i: ; preds = %invoke.cont.i230.i.i + %909 = landingpad { ptr, i32 } + cleanup + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i214.i.i) #18 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i215.i.i) #18 + br label %lpad.i.i.body.i.i226 + +cleanup.action.i227.i.i: ; preds = %if.then17.i225.i.i + %910 = landingpad { ptr, i32 } + cleanup + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i215.i.i) #18 + call void @__cxa_free_exception(ptr %exception.i226.i.i) #18 + br label %lpad.i.i.body.i.i226 + +if.end.i238.i.i: ; preds = %lor.lhs.false.i234.i.i + %conv24.i239.i.i = zext i32 %add13.i223.i.i to i64 + %call25.i247.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i.i.i.i145, i64 noundef %conv24.i239.i.i) + to label %call25.i.noexc246.i.i unwind label %lpad.i.i.i.i227 + +call25.i.noexc246.i.i: ; preds = %if.end.i238.i.i + %add.ptr26.i240.i.i = getelementptr inbounds i32, ptr %call25.i247.i.i, i64 2 + store ptr %add.ptr26.i240.i.i, ptr %m_nodes.i.i.i48.i.i, align 8 + store i32 %shr.i221.i.i, ptr %call25.i247.i.i, align 4 + br label %.noexc.i.i.i.i228 + +unreachable.i233.i.i: ; preds = %invoke.cont.i230.i.i unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i: ; preds = %if.end.i.i401, %cleanup.i.i367.thread, %if.then2.i.i.i2137, %if.then.i.i.i2131, %invoke.cont291.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2275, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2272, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2286, %if.then2.i.i.i2376, %if.then.i.i.i2370, %cleanup.i.i367, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i198) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %tmp.i.i) - br label %while.cond.i204.backedgethread-pre-split - -sw.bb31.i: ; preds = %if.end28.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i194) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i195) - %m_num_decls.i2129 = getelementptr inbounds %class.quantifier, ptr %625, i64 0, i32 2 - %863 = load i32, ptr %m_num_decls.i2129, align 4 - %bf.load.i30.i = load i32, ptr %627, align 8 - %cmp.i31.i = icmp ult i32 %bf.load.i30.i, 64 - br i1 %cmp.i31.i, label %if.then.i.i317, label %cond.end.i.i252 - -if.then.i.i317: ; preds = %sw.bb31.i - call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - %m_expr.i2128 = getelementptr inbounds %class.quantifier, ptr %625, i64 0, i32 3 - %864 = load ptr, ptr %m_expr.i2128, align 8 - store ptr %864, ptr %m_root.i54, align 8 - %865 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i2123 = icmp eq ptr %865, null - br i1 %cmp.i2123, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2127, label %if.end.i2124 - -if.end.i2124: ; preds = %if.then.i.i317 - %arrayidx.i2125 = getelementptr inbounds i32, ptr %865, i64 -1 - %866 = load i32, ptr %arrayidx.i2125, align 4 - br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2127 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2127: ; preds = %if.then.i.i317, %if.end.i2124 - %retval.0.i2126 = phi i32 [ %866, %if.end.i2124 ], [ 0, %if.then.i.i317 ] - %cmp4.i.i3202891.not = icmp eq i32 %863, 0 - br i1 %cmp4.i.i3202891.not, label %for.end.i.i321, label %for.body.i.i322 - -for.body.i.i322: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2127, %_ZN6vectorIjLb0EjE9push_backERKj.exit2107 - %i.0.i66.i2892 = phi i32 [ %inc.i.i325, %_ZN6vectorIjLb0EjE9push_backERKj.exit2107 ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2127 ] - %867 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i2108 = icmp eq ptr %867, null - br i1 %cmp.i2108, label %if.then.i2118, label %lor.lhs.false.i2109 - -lor.lhs.false.i2109: ; preds = %for.body.i.i322 - %arrayidx.i2110 = getelementptr inbounds i32, ptr %867, i64 -1 - %868 = load i32, ptr %arrayidx.i2110, align 4 - %arrayidx4.i2111 = getelementptr inbounds i32, ptr %867, i64 -2 - %869 = load i32, ptr %arrayidx4.i2111, align 4 - %cmp5.i2112 = icmp eq i32 %868, %869 - br i1 %cmp5.i2112, label %if.then.i2118, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2122 - -if.then.i2118: ; preds = %lor.lhs.false.i2109, %for.body.i.i322 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i65.i) - %.pre.i2119 = load ptr, ptr %m_bindings.i65.i, align 8 - %arrayidx8.phi.trans.insert.i2120 = getelementptr inbounds i32, ptr %.pre.i2119, i64 -1 - %.pre1.i2121 = load i32, ptr %arrayidx8.phi.trans.insert.i2120, align 4 - br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2122 - -_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2122: ; preds = %lor.lhs.false.i2109, %if.then.i2118 - %870 = phi i32 [ %.pre1.i2121, %if.then.i2118 ], [ %868, %lor.lhs.false.i2109 ] - %871 = phi ptr [ %.pre.i2119, %if.then.i2118 ], [ %867, %lor.lhs.false.i2109 ] - %idx.ext.i2114 = zext i32 %870 to i64 - %add.ptr.i2115 = getelementptr inbounds ptr, ptr %871, i64 %idx.ext.i2114 - store ptr null, ptr %add.ptr.i2115, align 8 - %872 = load ptr, ptr %m_bindings.i65.i, align 8 - %arrayidx10.i2116 = getelementptr inbounds i32, ptr %872, i64 -1 - %873 = load i32, ptr %arrayidx10.i2116, align 4 - %inc.i2117 = add i32 %873, 1 - store i32 %inc.i2117, ptr %arrayidx10.i2116, align 4 - %874 = load ptr, ptr %m_shifts.i69.i, align 8 - %cmp.i2093 = icmp eq ptr %874, null - br i1 %cmp.i2093, label %if.then.i2103, label %lor.lhs.false.i2094 - -lor.lhs.false.i2094: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2122 - %arrayidx.i2095 = getelementptr inbounds i32, ptr %874, i64 -1 - %875 = load i32, ptr %arrayidx.i2095, align 4 - %arrayidx4.i2096 = getelementptr inbounds i32, ptr %874, i64 -2 - %876 = load i32, ptr %arrayidx4.i2096, align 4 - %cmp5.i2097 = icmp eq i32 %875, %876 - br i1 %cmp5.i2097, label %if.then.i2103, label %_ZN6vectorIjLb0EjE9push_backERKj.exit2107 - -if.then.i2103: ; preds = %lor.lhs.false.i2094, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2122 - call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i69.i) - %.pre.i2104 = load ptr, ptr %m_shifts.i69.i, align 8 - %arrayidx8.phi.trans.insert.i2105 = getelementptr inbounds i32, ptr %.pre.i2104, i64 -1 - %.pre1.i2106 = load i32, ptr %arrayidx8.phi.trans.insert.i2105, align 4 - br label %_ZN6vectorIjLb0EjE9push_backERKj.exit2107 - -_ZN6vectorIjLb0EjE9push_backERKj.exit2107: ; preds = %lor.lhs.false.i2094, %if.then.i2103 - %877 = phi i32 [ %.pre1.i2106, %if.then.i2103 ], [ %875, %lor.lhs.false.i2094 ] - %878 = phi ptr [ %.pre.i2104, %if.then.i2103 ], [ %874, %lor.lhs.false.i2094 ] - %idx.ext.i2099 = zext i32 %877 to i64 - %add.ptr.i2100 = getelementptr inbounds i32, ptr %878, i64 %idx.ext.i2099 - store i32 %retval.0.i2126, ptr %add.ptr.i2100, align 4 - %879 = load ptr, ptr %m_shifts.i69.i, align 8 - %arrayidx10.i2101 = getelementptr inbounds i32, ptr %879, i64 -1 - %880 = load i32, ptr %arrayidx10.i2101, align 4 - %inc.i2102 = add i32 %880, 1 - store i32 %inc.i2102, ptr %arrayidx10.i2101, align 4 - %inc.i.i325 = add nuw i32 %i.0.i66.i2892, 1 - %exitcond2911.not = icmp eq i32 %inc.i.i325, %863 - br i1 %exitcond2911.not, label %for.end.i.i321, label %for.body.i.i322, !llvm.loop !30 - -for.end.i.i321: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit2107, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2127 - %881 = load i32, ptr %m_num_qvars.i55, align 8 - %add.i68.i = add i32 %881, %863 - store i32 %add.i68.i, ptr %m_num_qvars.i55, align 8 - br label %cond.end.i.i252 - -cond.end.i.i252: ; preds = %for.end.i.i321, %sw.bb31.i - %m_num_patterns.i.i2089 = getelementptr inbounds %class.quantifier, ptr %625, i64 0, i32 11 - %882 = load i32, ptr %m_num_patterns.i.i2089, align 8 - %add.i2090 = add i32 %882, 1 - %m_num_no_patterns.i.i2091 = getelementptr inbounds %class.quantifier, ptr %625, i64 0, i32 12 - %883 = load i32, ptr %m_num_no_patterns.i.i2091, align 4 - %add3.i2092 = add i32 %add.i2090, %883 - %m_patterns_decls.i.i.i.i.i2068 = getelementptr inbounds %class.quantifier, ptr %625, i64 0, i32 13 - %m_expr.i.i2087 = getelementptr inbounds %class.quantifier, ptr %625, i64 0, i32 3 - br label %while.cond.i34.i - -while.cond.i34.i: ; preds = %_ZNK10quantifier9get_childEj.exit2088, %cond.end.i.i252 - %bf.load11.i.i254 = load i32, ptr %627, align 8 - %bf.lshr12.i.i255 = lshr i32 %bf.load11.i.i254, 6 - %cmp13.i.i256 = icmp ult i32 %bf.lshr12.i.i255, %add3.i2092 - br i1 %cmp13.i.i256, label %while.body.i57.i, label %while.end.i35.i - -while.body.i57.i: ; preds = %while.cond.i34.i - %cmp.i2062 = icmp ult i32 %bf.load11.i.i254, 64 - br i1 %cmp.i2062, label %_ZNK10quantifier9get_childEj.exit2088, label %if.else.i2063 - -if.else.i2063: ; preds = %while.body.i57.i - %884 = load i32, ptr %m_num_patterns.i.i2089, align 8 - %cmp3.not.i2065 = icmp ult i32 %884, %bf.lshr12.i.i255 - br i1 %cmp3.not.i2065, label %if.else6.i2077, label %if.then4.i2066 - -if.then4.i2066: ; preds = %if.else.i2063 - %885 = load i32, ptr %m_num_decls.i2129, align 4 - %idx.ext.i.i.i.i2070 = zext i32 %885 to i64 - %add.ptr.i.i.i.i2071 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2068, i64 %idx.ext.i.i.i.i2070 - %add.ptr.i.i.i2072 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i2071, i64 %idx.ext.i.i.i.i2070 - %886 = zext nneg i32 %bf.lshr12.i.i255 to i64 - %887 = getelementptr ptr, ptr %add.ptr.i.i.i2072, i64 %886 - %arrayidx.i.i2074 = getelementptr ptr, ptr %887, i64 -1 - br label %_ZNK10quantifier9get_childEj.exit2088 - -if.else6.i2077: ; preds = %if.else.i2063 - %888 = xor i32 %884, -1 - %sub9.i2078 = add i32 %bf.lshr12.i.i255, %888 - %889 = load i32, ptr %m_num_decls.i2129, align 4 - %idx.ext.i.i.i7.i2081 = zext i32 %889 to i64 - %add.ptr.i.i.i8.i2082 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2068, i64 %idx.ext.i.i.i7.i2081 - %add.ptr.i.i9.i2083 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i2082, i64 %idx.ext.i.i.i7.i2081 - %idxprom.i10.i2084 = zext i32 %sub9.i2078 to i64 - %arrayidx.i11.i2085 = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i2083, i64 %idxprom.i10.i2084 - br label %_ZNK10quantifier9get_childEj.exit2088 - -_ZNK10quantifier9get_childEj.exit2088: ; preds = %while.body.i57.i, %if.then4.i2066, %if.else6.i2077 - %retval.0.in.i2075 = phi ptr [ %arrayidx.i.i2074, %if.then4.i2066 ], [ %arrayidx.i11.i2085, %if.else6.i2077 ], [ %m_expr.i.i2087, %while.body.i57.i ] - %retval.0.i2076 = load ptr, ptr %retval.0.in.i2075, align 8 - %890 = and i32 %bf.load11.i.i254, -64 - %bf.shl.i59.i = add i32 %890, 64 - %bf.clear.i60.i = and i32 %bf.load11.i.i254, 63 - %bf.set.i61.i = or disjoint i32 %bf.shl.i59.i, %bf.clear.i60.i - store i32 %bf.set.i61.i, ptr %627, align 8 - %bf.lshr24.i.i313 = lshr i32 %bf.load11.i.i254, 4 - %bf.clear25.i.i314 = and i32 %bf.lshr24.i.i313, 3 - %call26.i62.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i2076, i32 noundef %bf.clear25.i.i314) - br i1 %call26.i62.i, label %while.cond.i34.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, !llvm.loop !31 - -while.end.i35.i: ; preds = %while.cond.i34.i - %891 = load ptr, ptr %m_nodes.i.i424, align 8 - %m_spos.i38.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %621, i64 %retval.0.i.i.i240, i32 2 - %892 = load i32, ptr %m_spos.i38.i, align 4 - %idx.ext.i39.i = zext i32 %892 to i64 - %add.ptr.i40.i = getelementptr inbounds ptr, ptr %891, i64 %idx.ext.i39.i - %893 = load ptr, ptr %add.ptr.i40.i, align 8 - %894 = load i32, ptr %m_num_patterns.i.i2089, align 8 - %895 = load i32, ptr %m_num_no_patterns.i.i2091, align 4 - %896 = load ptr, ptr %586, align 8 - %897 = load i32, ptr %m_num_decls.i2129, align 4 - %idx.ext.i.i2055 = zext i32 %897 to i64 - %add.ptr.i.i2056 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2068, i64 %idx.ext.i.i2055 - %add.ptr.i2057 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i2056, i64 %idx.ext.i.i2055 - %898 = ptrtoint ptr %896 to i64 - store i64 %898, ptr %new_pats.i.i194, align 8 - store ptr null, ptr %m_nodes.i.i2021, align 8 - %cmp3.not.i.i2022 = icmp eq i32 %894, 0 - br i1 %cmp3.not.i.i2022, label %invoke.cont.i46.i, label %for.body.lr.ph.i.i2023 - -for.body.lr.ph.i.i2023: ; preds = %while.end.i35.i - %wide.trip.count.i.i2024 = zext i32 %894 to i64 - br label %for.body.i.i2025 - -for.body.i.i2025: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2038, %for.body.lr.ph.i.i2023 - %indvars.iv.i.i2026 = phi i64 [ 0, %for.body.lr.ph.i.i2023 ], [ %indvars.iv.next.i.i2043, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2038 ] - %arrayidx.i.i2027 = getelementptr inbounds ptr, ptr %add.ptr.i2057, i64 %indvars.iv.i.i2026 - %899 = load ptr, ptr %arrayidx.i.i2027, align 8 - %tobool.not.i.i.i.i.i.i2028 = icmp eq ptr %899, null - br i1 %tobool.not.i.i.i.i.i.i2028, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2032, label %if.then.i.i.i.i.i.i2029 - -if.then.i.i.i.i.i.i2029: ; preds = %for.body.i.i2025 - %m_ref_count.i.i.i.i.i.i.i2030 = getelementptr inbounds %class.ast, ptr %899, i64 0, i32 2 - %900 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2030, align 4 - %inc.i.i.i.i.i.i.i2031 = add i32 %900, 1 - store i32 %inc.i.i.i.i.i.i.i2031, ptr %m_ref_count.i.i.i.i.i.i.i2030, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2032 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2032: ; preds = %if.then.i.i.i.i.i.i2029, %for.body.i.i2025 - %901 = load ptr, ptr %m_nodes.i.i2021, align 8 - %cmp.i.i.i.i2033 = icmp eq ptr %901, null - br i1 %cmp.i.i.i.i2033, label %if.then.i.i.i.i2046, label %lor.lhs.false.i.i.i.i2034 - -lor.lhs.false.i.i.i.i2034: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2032 - %arrayidx.i.i.i.i2035 = getelementptr inbounds i32, ptr %901, i64 -1 - %902 = load i32, ptr %arrayidx.i.i.i.i2035, align 4 - %arrayidx4.i.i.i.i2036 = getelementptr inbounds i32, ptr %901, i64 -2 - %903 = load i32, ptr %arrayidx4.i.i.i.i2036, align 4 - %cmp5.i.i.i.i2037 = icmp eq i32 %902, %903 - br i1 %cmp5.i.i.i.i2037, label %if.then.i.i.i.i2046, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2038 - -if.then.i.i.i.i2046: ; preds = %lor.lhs.false.i.i.i.i2034, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2032 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i2021) - to label %.noexc.i2048 unwind label %lpad.i2047 - -.noexc.i2048: ; preds = %if.then.i.i.i.i2046 - %.pre.i.i.i.i2049 = load ptr, ptr %m_nodes.i.i2021, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i2050 = getelementptr inbounds i32, ptr %.pre.i.i.i.i2049, i64 -1 - %.pre1.i.i.i.i2051 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i2050, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2038 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2038: ; preds = %.noexc.i2048, %lor.lhs.false.i.i.i.i2034 - %904 = phi i32 [ %.pre1.i.i.i.i2051, %.noexc.i2048 ], [ %902, %lor.lhs.false.i.i.i.i2034 ] - %905 = phi ptr [ %.pre.i.i.i.i2049, %.noexc.i2048 ], [ %901, %lor.lhs.false.i.i.i.i2034 ] - %idx.ext.i.i.i.i2039 = zext i32 %904 to i64 - %add.ptr.i.i.i.i2040 = getelementptr inbounds ptr, ptr %905, i64 %idx.ext.i.i.i.i2039 - store ptr %899, ptr %add.ptr.i.i.i.i2040, align 8 - %906 = load ptr, ptr %m_nodes.i.i2021, align 8 - %arrayidx10.i.i.i.i2041 = getelementptr inbounds i32, ptr %906, i64 -1 - %907 = load i32, ptr %arrayidx10.i.i.i.i2041, align 4 - %inc.i.i.i.i2042 = add i32 %907, 1 - store i32 %inc.i.i.i.i2042, ptr %arrayidx10.i.i.i.i2041, align 4 - %indvars.iv.next.i.i2043 = add nuw nsw i64 %indvars.iv.i.i2026, 1 - %exitcond.not.i.i2044 = icmp eq i64 %indvars.iv.next.i.i2043, %wide.trip.count.i.i2024 - br i1 %exitcond.not.i.i2044, label %invoke.cont.i46.i.loopexit, label %for.body.i.i2025, !llvm.loop !25 - -lpad.i2047: ; preds = %if.then.i.i.i.i2046 - %908 = landingpad { ptr, i32 } +.noexc.i.i.i.i228: ; preds = %call25.i.noexc246.i.i, %call.i.noexc244.i.i + %.pre.i.i.i.i.i.i.i229 = phi ptr [ %add.ptr26.i240.i.i, %call25.i.noexc246.i.i ], [ %incdec.ptr2.i243.i.i, %call.i.noexc244.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i214.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i215.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i230 = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i.i229, i64 -1 + %.pre1.i.i.i.i.i.i.i231 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i230, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147: ; preds = %.noexc.i.i.i.i228, %lor.lhs.false.i.i.i.i.i.i.i144 + %911 = phi i32 [ %.pre1.i.i.i.i.i.i.i231, %.noexc.i.i.i.i228 ], [ %907, %lor.lhs.false.i.i.i.i.i.i.i144 ] + %912 = phi ptr [ %.pre.i.i.i.i.i.i.i229, %.noexc.i.i.i.i228 ], [ %906, %lor.lhs.false.i.i.i.i.i.i.i144 ] + %idx.ext.i.i.i.i73.i.i.i = zext i32 %911 to i64 + %add.ptr.i.i.i.i74.i.i.i = getelementptr inbounds ptr, ptr %912, i64 %idx.ext.i.i.i.i73.i.i.i + store ptr %904, ptr %add.ptr.i.i.i.i74.i.i.i, align 8 + %913 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %arrayidx10.i.i.i.i.i.i.i148 = getelementptr inbounds i32, ptr %913, i64 -1 + %914 = load i32, ptr %arrayidx10.i.i.i.i.i.i.i148, align 4 + %inc.i.i.i.i.i54.i.i = add i32 %914, 1 + store i32 %inc.i.i.i.i.i54.i.i, ptr %arrayidx10.i.i.i.i.i.i.i148, align 4 + %indvars.iv.next.i.i.i.i.i149 = add nuw nsw i64 %indvars.iv.i.i.i.i.i140, 1 + %exitcond.not.i.i.i.i.i150 = icmp eq i64 %indvars.iv.next.i.i.i.i.i149, %wide.trip.count.i.i.i.i.i139 + br i1 %exitcond.not.i.i.i.i.i150, label %invoke.cont.loopexit.i.i.i151, label %for.body.i.i.i49.i.i, !llvm.loop !25 + +lpad.i.i.i.i227: ; preds = %if.end.i238.i.i, %if.then.i241.i.i + %915 = landingpad { ptr, i32 } cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i194) #18 + br label %lpad.i.i.body.i.i226 + +lpad.i.i.body.i.i226: ; preds = %lpad.i.i.i.i227, %cleanup.action.i227.i.i, %ehcleanup.i232.i.i + %eh.lpad-body248.i.i = phi { ptr, i32 } [ %915, %lpad.i.i.i.i227 ], [ %909, %ehcleanup.i232.i.i ], [ %910, %cleanup.action.i227.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i42) #18 br label %common.resume -invoke.cont.i46.i.loopexit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2038 - %.pre2928 = load ptr, ptr %586, align 8 - %.pre2929 = load i32, ptr %m_num_decls.i2129, align 4 - %.pre2933 = zext i32 %.pre2929 to i64 - %.pre2934 = ptrtoint ptr %.pre2928 to i64 - br label %invoke.cont.i46.i - -invoke.cont.i46.i: ; preds = %invoke.cont.i46.i.loopexit, %while.end.i35.i - %.pre-phi = phi i64 [ %.pre2934, %invoke.cont.i46.i.loopexit ], [ %898, %while.end.i35.i ] - %idx.ext.i.i2018.pre-phi = phi i64 [ %.pre2933, %invoke.cont.i46.i.loopexit ], [ %idx.ext.i.i2055, %while.end.i35.i ] - %add.ptr.i.i2019 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2068, i64 %idx.ext.i.i2018.pre-phi - %add.ptr.i2020 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i2019, i64 %idx.ext.i.i2018.pre-phi - store i64 %.pre-phi, ptr %new_no_pats.i.i195, align 8 - store ptr null, ptr %m_nodes.i.i1983, align 8 - %cmp3.not.i.i1984 = icmp eq i32 %895, 0 - br i1 %cmp3.not.i.i1984, label %if.then40.i.i277, label %for.body.lr.ph.i.i1985 - -for.body.lr.ph.i.i1985: ; preds = %invoke.cont.i46.i - %wide.trip.count.i.i1986 = zext i32 %895 to i64 - br label %for.body.i.i1987 - -for.body.i.i1987: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2000, %for.body.lr.ph.i.i1985 - %indvars.iv.i.i1988 = phi i64 [ 0, %for.body.lr.ph.i.i1985 ], [ %indvars.iv.next.i.i2005, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2000 ] - %arrayidx.i.i1989 = getelementptr inbounds ptr, ptr %add.ptr.i2020, i64 %indvars.iv.i.i1988 - %909 = load ptr, ptr %arrayidx.i.i1989, align 8 - %tobool.not.i.i.i.i.i.i1990 = icmp eq ptr %909, null - br i1 %tobool.not.i.i.i.i.i.i1990, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i1994, label %if.then.i.i.i.i.i.i1991 - -if.then.i.i.i.i.i.i1991: ; preds = %for.body.i.i1987 - %m_ref_count.i.i.i.i.i.i.i1992 = getelementptr inbounds %class.ast, ptr %909, i64 0, i32 2 - %910 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i1992, align 4 - %inc.i.i.i.i.i.i.i1993 = add i32 %910, 1 - store i32 %inc.i.i.i.i.i.i.i1993, ptr %m_ref_count.i.i.i.i.i.i.i1992, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i1994 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i1994: ; preds = %if.then.i.i.i.i.i.i1991, %for.body.i.i1987 - %911 = load ptr, ptr %m_nodes.i.i1983, align 8 - %cmp.i.i.i.i1995 = icmp eq ptr %911, null - br i1 %cmp.i.i.i.i1995, label %if.then.i.i.i.i2008, label %lor.lhs.false.i.i.i.i1996 - -lor.lhs.false.i.i.i.i1996: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i1994 - %arrayidx.i.i.i.i1997 = getelementptr inbounds i32, ptr %911, i64 -1 - %912 = load i32, ptr %arrayidx.i.i.i.i1997, align 4 - %arrayidx4.i.i.i.i1998 = getelementptr inbounds i32, ptr %911, i64 -2 - %913 = load i32, ptr %arrayidx4.i.i.i.i1998, align 4 - %cmp5.i.i.i.i1999 = icmp eq i32 %912, %913 - br i1 %cmp5.i.i.i.i1999, label %if.then.i.i.i.i2008, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2000 - -if.then.i.i.i.i2008: ; preds = %lor.lhs.false.i.i.i.i1996, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i1994 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i1983) - to label %.noexc.i2010 unwind label %lpad.i2009 - -.noexc.i2010: ; preds = %if.then.i.i.i.i2008 - %.pre.i.i.i.i2011 = load ptr, ptr %m_nodes.i.i1983, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i2012 = getelementptr inbounds i32, ptr %.pre.i.i.i.i2011, i64 -1 - %.pre1.i.i.i.i2013 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i2012, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2000 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2000: ; preds = %.noexc.i2010, %lor.lhs.false.i.i.i.i1996 - %914 = phi i32 [ %.pre1.i.i.i.i2013, %.noexc.i2010 ], [ %912, %lor.lhs.false.i.i.i.i1996 ] - %915 = phi ptr [ %.pre.i.i.i.i2011, %.noexc.i2010 ], [ %911, %lor.lhs.false.i.i.i.i1996 ] - %idx.ext.i.i.i.i2001 = zext i32 %914 to i64 - %add.ptr.i.i.i.i2002 = getelementptr inbounds ptr, ptr %915, i64 %idx.ext.i.i.i.i2001 - store ptr %909, ptr %add.ptr.i.i.i.i2002, align 8 - %916 = load ptr, ptr %m_nodes.i.i1983, align 8 - %arrayidx10.i.i.i.i2003 = getelementptr inbounds i32, ptr %916, i64 -1 - %917 = load i32, ptr %arrayidx10.i.i.i.i2003, align 4 - %inc.i.i.i.i2004 = add i32 %917, 1 - store i32 %inc.i.i.i.i2004, ptr %arrayidx10.i.i.i.i2003, align 4 - %indvars.iv.next.i.i2005 = add nuw nsw i64 %indvars.iv.i.i1988, 1 - %exitcond.not.i.i2006 = icmp eq i64 %indvars.iv.next.i.i2005, %wide.trip.count.i.i1986 - br i1 %exitcond.not.i.i2006, label %if.then40.i.i277, label %for.body.i.i1987, !llvm.loop !25 - -lpad.i2009: ; preds = %if.then.i.i.i.i2008 - %918 = landingpad { ptr, i32 } +invoke.cont.loopexit.i.i.i151: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + %.pre.i55.i.i = load ptr, ptr %587, align 8 + %.pre342.i.i.i = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %.pre343.i.i.i = zext i32 %.pre342.i.i.i to i64 + %.pre344.i.i.i = ptrtoint ptr %.pre.i55.i.i to i64 + br label %invoke.cont.i56.i.i + +invoke.cont.i56.i.i: ; preds = %invoke.cont.loopexit.i.i.i151, %while.end.i42.i.i + %.pre-phi.i.i.i152 = phi i64 [ %.pre344.i.i.i, %invoke.cont.loopexit.i.i.i151 ], [ %903, %while.end.i42.i.i ] + %idx.ext.i.i77.pre-phi.i.i.i = phi i64 [ %.pre343.i.i.i, %invoke.cont.loopexit.i.i.i151 ], [ %idx.ext.i.i.i46.i.i, %while.end.i42.i.i ] + %add.ptr.i.i78.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i77.pre-phi.i.i.i + %add.ptr.i79.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i78.i.i.i, i64 %idx.ext.i.i77.pre-phi.i.i.i + store i64 %.pre-phi.i.i.i152, ptr %new_no_pats.i.i.i43, align 8 + store ptr null, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp3.not.i.i81.i.i.i = icmp eq i32 %900, 0 + br i1 %cmp3.not.i.i81.i.i.i, label %if.then40.i.i.i153, label %for.body.lr.ph.i.i82.i.i.i + +for.body.lr.ph.i.i82.i.i.i: ; preds = %invoke.cont.i56.i.i + %wide.trip.count.i.i83.i.i.i = zext i32 %900 to i64 + br label %for.body.i.i84.i.i.i + +for.body.i.i84.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i, %for.body.lr.ph.i.i82.i.i.i + %indvars.iv.i.i85.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i82.i.i.i ], [ %indvars.iv.next.i.i102.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i ] + %arrayidx.i.i86.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i79.i.i.i, i64 %indvars.iv.i.i85.i.i.i + %916 = load ptr, ptr %arrayidx.i.i86.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i87.i.i.i = icmp eq ptr %916, null + br i1 %tobool.not.i.i.i.i.i.i87.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i, label %if.then.i.i.i.i.i.i88.i.i.i + +if.then.i.i.i.i.i.i88.i.i.i: ; preds = %for.body.i.i84.i.i.i + %m_ref_count.i.i.i.i.i.i.i89.i.i.i = getelementptr inbounds %class.ast, ptr %916, i64 0, i32 2 + %917 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i89.i.i.i, align 4 + %inc.i.i.i.i.i.i.i90.i.i.i = add i32 %917, 1 + store i32 %inc.i.i.i.i.i.i.i90.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i89.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i: ; preds = %if.then.i.i.i.i.i.i88.i.i.i, %for.body.i.i84.i.i.i + %918 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i.i92.i.i.i = icmp eq ptr %918, null + br i1 %cmp.i.i.i.i92.i.i.i, label %if.then.i211.i.i, label %lor.lhs.false.i.i.i.i93.i.i.i + +lor.lhs.false.i.i.i.i93.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + %arrayidx.i.i.i.i94.i.i.i = getelementptr inbounds i32, ptr %918, i64 -1 + %919 = load i32, ptr %arrayidx.i.i.i.i94.i.i.i, align 4 + %arrayidx4.i.i.i.i95.i.i.i = getelementptr inbounds i32, ptr %918, i64 -2 + %920 = load i32, ptr %arrayidx4.i.i.i.i95.i.i.i, align 4 + %cmp5.i.i.i.i96.i.i.i = icmp eq i32 %919, %920 + br i1 %cmp5.i.i.i.i96.i.i.i, label %if.else.i204.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i + +if.then.i211.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %call.i212.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc.i.i223 unwind label %lpad.i105.i.i.i + +call.i.noexc.i.i223: ; preds = %if.then.i211.i.i + store i32 2, ptr %call.i212.i.i, align 4 + %incdec.ptr.i.i.i224 = getelementptr inbounds i32, ptr %call.i212.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i.i.i224, align 4 + %incdec.ptr2.i.i.i225 = getelementptr inbounds i32, ptr %call.i212.i.i, i64 2 + store ptr %incdec.ptr2.i.i.i225, ptr %m_nodes.i.i80.i.i.i, align 8 + br label %.noexc.i106.i.i.i + +if.else.i204.i.i: ; preds = %lor.lhs.false.i.i.i.i93.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %mul9.i.i.i205 = mul i32 %919, 3 + %add10.i.i.i206 = add i32 %mul9.i.i.i205, 1 + %shr.i.i.i207 = lshr i32 %add10.i.i.i206, 1 + %mul12.i.i.i208 = shl i32 %shr.i.i.i207, 3 + %add13.i.i.i209 = add i32 %mul12.i.i.i208, 8 + %cmp15.not.i.i.i210 = icmp ugt i32 %shr.i.i.i207, %919 + br i1 %cmp15.not.i.i.i210, label %lor.lhs.false.i.i.i216, label %if.then17.i.i.i211 + +lor.lhs.false.i.i.i216: ; preds = %if.else.i204.i.i + %mul6.i.i.i217 = shl i32 %919, 3 + %add7.i.i.i218 = add i32 %mul6.i.i.i217, 8 + %cmp16.not.i.i.i219 = icmp ugt i32 %add13.i.i.i209, %add7.i.i.i218 + br i1 %cmp16.not.i.i.i219, label %if.end.i210.i.i, label %if.then17.i.i.i211 + +if.then17.i.i.i211: ; preds = %lor.lhs.false.i.i.i216, %if.else.i204.i.i + %exception.i.i.i212 = call ptr @__cxa_allocate_exception(i64 40) #18 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #18 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) + to label %invoke.cont.i207.i.i unwind label %cleanup.action.i.i.i213 + +invoke.cont.i207.i.i: ; preds = %if.then17.i.i.i211 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i.i212, align 8 + %m_msg.i.i208.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i.i212, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i208.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40) #18 + invoke void @__cxa_throw(ptr nonnull %exception.i.i.i212, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #21 + to label %unreachable.i.i.i215 unwind label %ehcleanup.i209.i.i + +ehcleanup.i209.i.i: ; preds = %invoke.cont.i207.i.i + %921 = landingpad { ptr, i32 } cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i195) #18 - br label %ehcleanup.i.i259 - -if.then40.i.i277: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2000, %invoke.cont.i46.i - %add.ptr41.i.i278 = getelementptr inbounds ptr, ptr %add.ptr.i40.i, i64 1 - %idx.ext42.i.i279 = zext i32 %894 to i64 - %add.ptr43.i.i280 = getelementptr inbounds ptr, ptr %add.ptr41.i.i278, i64 %idx.ext42.i.i279 - br i1 %cmp3.not.i.i2022, label %for.end63.i.i285, label %for.body47.i.i302 - -for.body47.i.i302: ; preds = %if.then40.i.i277, %for.inc61.i.i305 - %indvars.iv2912 = phi i64 [ %indvars.iv.next2913, %for.inc61.i.i305 ], [ 0, %if.then40.i.i277 ] - %j.0.i.i2822894 = phi i32 [ %j.1.i.i306, %for.inc61.i.i305 ], [ 0, %if.then40.i.i277 ] - %919 = load ptr, ptr %586, align 8 - %arrayidx.i55.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i278, i64 %indvars.iv2912 - %920 = load ptr, ptr %arrayidx.i55.i, align 8 - %call50.i.i303 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %919, ptr noundef %920) - to label %invoke.cont49.i.i304 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont49.i.i304: ; preds = %for.body47.i.i302 - br i1 %call50.i.i303, label %invoke.cont56.i.i309, label %for.inc61.i.i305 - -invoke.cont56.i.i309: ; preds = %invoke.cont49.i.i304 - %921 = load ptr, ptr %arrayidx.i55.i, align 8 - %922 = load ptr, ptr %m_nodes.i.i2021, align 8 - %idxprom.i.i1979 = zext i32 %j.0.i.i2822894 to i64 - %arrayidx.i.i1980 = getelementptr inbounds ptr, ptr %922, i64 %idxprom.i.i1979 - %923 = load ptr, ptr %new_pats.i.i194, align 8 - %inc55.i.i310 = add i32 %j.0.i.i2822894, 1 - %tobool.not.i.i1965 = icmp eq ptr %921, null - br i1 %tobool.not.i.i1965, label %_ZN11ast_manager7inc_refEP3ast.exit.i1969, label %if.then.i.i1966 - -if.then.i.i1966: ; preds = %invoke.cont56.i.i309 - %m_ref_count.i.i.i1967 = getelementptr inbounds %class.ast, ptr %921, i64 0, i32 2 - %924 = load i32, ptr %m_ref_count.i.i.i1967, align 4 - %inc.i.i.i1968 = add i32 %924, 1 - store i32 %inc.i.i.i1968, ptr %m_ref_count.i.i.i1967, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i1969 - -_ZN11ast_manager7inc_refEP3ast.exit.i1969: ; preds = %if.then.i.i1966, %invoke.cont56.i.i309 - %925 = load ptr, ptr %arrayidx.i.i1980, align 8 - %tobool.not.i2.i1970 = icmp eq ptr %925, null - br i1 %tobool.not.i2.i1970, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1977, label %if.then.i3.i1971 - -if.then.i3.i1971: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1969 - %m_ref_count.i.i4.i1972 = getelementptr inbounds %class.ast, ptr %925, i64 0, i32 2 - %926 = load i32, ptr %m_ref_count.i.i4.i1972, align 4 - %dec.i.i.i1973 = add i32 %926, -1 - store i32 %dec.i.i.i1973, ptr %m_ref_count.i.i4.i1972, align 4 - %cmp.i.i1974 = icmp eq i32 %dec.i.i.i1973, 0 - br i1 %cmp.i.i1974, label %if.then2.i.i1975, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1977 - -if.then2.i.i1975: ; preds = %if.then.i3.i1971 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %923, ptr noundef nonnull %925) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1977 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1977: ; preds = %if.then2.i.i1975, %_ZN11ast_manager7inc_refEP3ast.exit.i1969, %if.then.i3.i1971 - store ptr %921, ptr %arrayidx.i.i1980, align 8 - br label %for.inc61.i.i305 - -lpad37.i.i262.loopexit: ; preds = %if.then2.i.i.i.i.i1857 - %lpad.loopexit2831 = landingpad { ptr, i32 } + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40) #18 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #18 + br label %lpad.i105.i.body.i.i + +cleanup.action.i.i.i213: ; preds = %if.then17.i.i.i211 + %922 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #18 + call void @__cxa_free_exception(ptr %exception.i.i.i212) #18 + br label %lpad.i105.i.body.i.i + +if.end.i210.i.i: ; preds = %lor.lhs.false.i.i.i216 + %conv24.i.i.i220 = zext i32 %add13.i.i.i209 to i64 + %call25.i213.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i95.i.i.i, i64 noundef %conv24.i.i.i220) + to label %call25.i.noexc.i.i221 unwind label %lpad.i105.i.i.i + +call25.i.noexc.i.i221: ; preds = %if.end.i210.i.i + %add.ptr26.i.i.i222 = getelementptr inbounds i32, ptr %call25.i213.i.i, i64 2 + store ptr %add.ptr26.i.i.i222, ptr %m_nodes.i.i80.i.i.i, align 8 + store i32 %shr.i.i.i207, ptr %call25.i213.i.i, align 4 + br label %.noexc.i106.i.i.i + +unreachable.i.i.i215: ; preds = %invoke.cont.i207.i.i + unreachable -lpad37.i.i262.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1916 - %lpad.loopexit2834 = landingpad { ptr, i32 } +.noexc.i106.i.i.i: ; preds = %call25.i.noexc.i.i221, %call.i.noexc.i.i223 + %.pre.i.i.i.i107.i.i.i = phi ptr [ %add.ptr26.i.i.i222, %call25.i.noexc.i.i221 ], [ %incdec.ptr2.i.i.i225, %call.i.noexc.i.i223 ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %arrayidx8.phi.trans.insert.i.i.i.i108.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i107.i.i.i, i64 -1 + %.pre1.i.i.i.i109.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i108.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i: ; preds = %.noexc.i106.i.i.i, %lor.lhs.false.i.i.i.i93.i.i.i + %923 = phi i32 [ %.pre1.i.i.i.i109.i.i.i, %.noexc.i106.i.i.i ], [ %919, %lor.lhs.false.i.i.i.i93.i.i.i ] + %924 = phi ptr [ %.pre.i.i.i.i107.i.i.i, %.noexc.i106.i.i.i ], [ %918, %lor.lhs.false.i.i.i.i93.i.i.i ] + %idx.ext.i.i.i.i98.i.i.i = zext i32 %923 to i64 + %add.ptr.i.i.i.i99.i.i.i = getelementptr inbounds ptr, ptr %924, i64 %idx.ext.i.i.i.i98.i.i.i + store ptr %916, ptr %add.ptr.i.i.i.i99.i.i.i, align 8 + %925 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %arrayidx10.i.i.i.i100.i.i.i = getelementptr inbounds i32, ptr %925, i64 -1 + %926 = load i32, ptr %arrayidx10.i.i.i.i100.i.i.i, align 4 + %inc.i.i.i.i101.i.i.i = add i32 %926, 1 + store i32 %inc.i.i.i.i101.i.i.i, ptr %arrayidx10.i.i.i.i100.i.i.i, align 4 + %indvars.iv.next.i.i102.i.i.i = add nuw nsw i64 %indvars.iv.i.i85.i.i.i, 1 + %exitcond.not.i.i103.i.i.i = icmp eq i64 %indvars.iv.next.i.i102.i.i.i, %wide.trip.count.i.i83.i.i.i + br i1 %exitcond.not.i.i103.i.i.i, label %if.then40.i.i.i153, label %for.body.i.i84.i.i.i, !llvm.loop !25 + +lpad.i105.i.i.i: ; preds = %if.end.i210.i.i, %if.then.i211.i.i + %927 = landingpad { ptr, i32 } + cleanup + br label %lpad.i105.i.body.i.i + +lpad.i105.i.body.i.i: ; preds = %lpad.i105.i.i.i, %cleanup.action.i.i.i213, %ehcleanup.i209.i.i + %eh.lpad-body.i.i214 = phi { ptr, i32 } [ %927, %lpad.i105.i.i.i ], [ %921, %ehcleanup.i209.i.i ], [ %922, %cleanup.action.i.i.i213 ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i43) #18 + br label %ehcleanup.i.i.i161 + +if.then40.i.i.i153: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i, %invoke.cont.i56.i.i + %add.ptr41.i.i.i154 = getelementptr inbounds ptr, ptr %add.ptr.i45.i.i, i64 1 + %idx.ext42.i.i.i155 = zext i32 %899 to i64 + %add.ptr43.i.i.i156 = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i154, i64 %idx.ext42.i.i.i155 + br i1 %cmp3.not.i.i.i.i.i137, label %for.end63.i.i.i166, label %for.body47.i.i.i157 + +for.body47.i.i.i157: ; preds = %if.then40.i.i.i153, %for.inc61.i.i.i163 + %indvars.iv.i.i.i158 = phi i64 [ %indvars.iv.next.i.i.i165, %for.inc61.i.i.i163 ], [ 0, %if.then40.i.i.i153 ] + %j.0329.i.i.i = phi i32 [ %j.1.i.i.i164, %for.inc61.i.i.i163 ], [ 0, %if.then40.i.i.i153 ] + %928 = load ptr, ptr %587, align 8 + %arrayidx.i57.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i154, i64 %indvars.iv.i.i.i158 + %929 = load ptr, ptr %arrayidx.i57.i.i, align 8 + %call50.i.i.i159 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %928, ptr noundef %929) + to label %invoke.cont49.i.i.i162 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 + +invoke.cont49.i.i.i162: ; preds = %for.body47.i.i.i157 + br i1 %call50.i.i.i159, label %invoke.cont56.i.i.i199, label %for.inc61.i.i.i163 + +invoke.cont56.i.i.i199: ; preds = %invoke.cont49.i.i.i162 + %930 = load ptr, ptr %arrayidx.i57.i.i, align 8 + %931 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %idxprom.i.i112.i.i.i = zext i32 %j.0329.i.i.i to i64 + %arrayidx.i.i113.i.i.i = getelementptr inbounds ptr, ptr %931, i64 %idxprom.i.i112.i.i.i + %932 = load ptr, ptr %new_pats.i.i.i42, align 8 + %inc55.i.i.i200 = add i32 %j.0329.i.i.i, 1 + %tobool.not.i.i.i114.i.i = icmp eq ptr %930, null + br i1 %tobool.not.i.i.i114.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i118.i.i, label %if.then.i.i.i115.i.i + +if.then.i.i.i115.i.i: ; preds = %invoke.cont56.i.i.i199 + %m_ref_count.i.i.i.i116.i.i = getelementptr inbounds %class.ast, ptr %930, i64 0, i32 2 + %933 = load i32, ptr %m_ref_count.i.i.i.i116.i.i, align 4 + %inc.i.i.i.i117.i.i = add i32 %933, 1 + store i32 %inc.i.i.i.i117.i.i, ptr %m_ref_count.i.i.i.i116.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i.i118.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i118.i.i: ; preds = %if.then.i.i.i115.i.i, %invoke.cont56.i.i.i199 + %934 = load ptr, ptr %arrayidx.i.i113.i.i.i, align 8 + %tobool.not.i2.i.i.i.i201 = icmp eq ptr %934, null + br i1 %tobool.not.i2.i.i.i.i201, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i204, label %if.then.i3.i.i.i.i202 + +if.then.i3.i.i.i.i202: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i118.i.i + %m_ref_count.i.i4.i.i.i.i203 = getelementptr inbounds %class.ast, ptr %934, i64 0, i32 2 + %935 = load i32, ptr %m_ref_count.i.i4.i.i.i.i203, align 4 + %dec.i.i.i.i.i45.i = add i32 %935, -1 + store i32 %dec.i.i.i.i.i45.i, ptr %m_ref_count.i.i4.i.i.i.i203, align 4 + %cmp.i.i.i119.i.i = icmp eq i32 %dec.i.i.i.i.i45.i, 0 + br i1 %cmp.i.i.i119.i.i, label %if.then2.i.i.i.i46.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i204 + +if.then2.i.i.i.i46.i: ; preds = %if.then.i3.i.i.i.i202 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %932, ptr noundef nonnull %934) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i204 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i204: ; preds = %if.then2.i.i.i.i46.i, %if.then.i3.i.i.i.i202, %_ZN11ast_manager7inc_refEP3ast.exit.i.i118.i.i + store ptr %930, ptr %arrayidx.i.i113.i.i.i, align 8 + br label %for.inc61.i.i.i163 + +lpad37.loopexit.i.i.i193: ; preds = %if.then2.i.i.i.i.i218.i.i.i + %lpad.loopexit.i101.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body68.i.i291, %if.then2.i.i1930 - %lpad.loopexit2837 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.i.i.i196: ; preds = %if.then2.i.i.i.i.i167.i.i.i + %lpad.loopexit314.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1961 - %lpad.loopexit2840 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173: ; preds = %if.then2.i.i141.i.i.i, %for.body68.i.i.i170 + %lpad.loopexit317.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body47.i.i302, %if.then2.i.i1975 - %lpad.loopexit2843 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i198: ; preds = %if.then2.i.i.i.i.i.i113.i.i + %lpad.loopexit319.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then96.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit1796, %if.then2.i.i.i1776, %if.then2.i.i.i1786, %if.then.i1790, %if.then.i.i1827, %if.then2.i.i.i1872, %if.then2.i.i.i1886 - %lpad.loopexit.split-lp2844 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160: ; preds = %if.then2.i.i.i.i46.i, %for.body47.i.i.i157 + %lpad.loopexit322.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 - -lpad37.i.i262: ; preds = %lpad37.i.i262.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit - %lpad.phi2833 = phi { ptr, i32 } [ %lpad.loopexit2831, %lpad37.i.i262.loopexit ], [ %lpad.loopexit2834, %lpad37.i.i262.loopexit.split-lp.loopexit ], [ %lpad.loopexit2837, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2840, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2843, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2844, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i195) #18 - br label %ehcleanup.i.i259 - -for.inc61.i.i305: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1977, %invoke.cont49.i.i304 - %j.1.i.i306 = phi i32 [ %inc55.i.i310, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1977 ], [ %j.0.i.i2822894, %invoke.cont49.i.i304 ] - %indvars.iv.next2913 = add nuw nsw i64 %indvars.iv2912, 1 - %exitcond2916.not = icmp eq i64 %indvars.iv.next2913, %idx.ext42.i.i279 - br i1 %exitcond2916.not, label %for.end63.i.i285, label %for.body47.i.i302, !llvm.loop !32 - -for.end63.i.i285: ; preds = %for.inc61.i.i305, %if.then40.i.i277 - %j.0.i.i282.lcssa = phi i32 [ 0, %if.then40.i.i277 ], [ %j.1.i.i306, %for.inc61.i.i305 ] - %927 = load ptr, ptr %m_nodes.i.i2021, align 8 - %cmp.i.i.i1939 = icmp eq ptr %927, null - br i1 %cmp.i.i.i1939, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1963, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1940 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1940: ; preds = %for.end63.i.i285 - %arrayidx.i.i.i1943 = getelementptr inbounds i32, ptr %927, i64 -1 - %928 = load i32, ptr %arrayidx.i.i.i1943, align 4 - %929 = zext i32 %928 to i64 - %add.ptr.i.i1944 = getelementptr inbounds ptr, ptr %927, i64 %929 - %cmp3.i.i1945 = icmp ugt i32 %928, %j.0.i.i282.lcssa - br i1 %cmp3.i.i1945, label %for.body.i.i1948.preheader, label %if.then.i.i1946 - -for.body.i.i1948.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1940 - %idx.ext.i1941 = zext i32 %j.0.i.i282.lcssa to i64 - %add.ptr.i1942 = getelementptr inbounds ptr, ptr %927, i64 %idx.ext.i1941 - br label %for.body.i.i1948 - -for.body.i.i1948: ; preds = %for.body.i.i1948.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1955 - %it.04.i.i1949 = phi ptr [ %incdec.ptr.i.i1956, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1955 ], [ %add.ptr.i1942, %for.body.i.i1948.preheader ] - %930 = load ptr, ptr %it.04.i.i1949, align 8 - %931 = load ptr, ptr %new_pats.i.i194, align 8 - %tobool.not.i.i.i.i.i1950 = icmp eq ptr %930, null - br i1 %tobool.not.i.i.i.i.i1950, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1955, label %if.then.i.i.i.i.i1951 - -if.then.i.i.i.i.i1951: ; preds = %for.body.i.i1948 - %m_ref_count.i.i.i.i.i.i1952 = getelementptr inbounds %class.ast, ptr %930, i64 0, i32 2 - %932 = load i32, ptr %m_ref_count.i.i.i.i.i.i1952, align 4 - %dec.i.i.i.i.i.i1953 = add i32 %932, -1 - store i32 %dec.i.i.i.i.i.i1953, ptr %m_ref_count.i.i.i.i.i.i1952, align 4 - %cmp.i.i.i.i.i1954 = icmp eq i32 %dec.i.i.i.i.i.i1953, 0 - br i1 %cmp.i.i.i.i.i1954, label %if.then2.i.i.i.i.i1961, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1955 - -if.then2.i.i.i.i.i1961: ; preds = %if.then.i.i.i.i.i1951 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %931, ptr noundef nonnull %930) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1955 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1955: ; preds = %if.then2.i.i.i.i.i1961, %if.then.i.i.i.i.i1951, %for.body.i.i1948 - %incdec.ptr.i.i1956 = getelementptr inbounds ptr, ptr %it.04.i.i1949, i64 1 - %cmp.i.i1957 = icmp ult ptr %incdec.ptr.i.i1956, %add.ptr.i.i1944 - br i1 %cmp.i.i1957, label %for.body.i.i1948, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1958, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1958: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1955 - %.pre.i1959 = load ptr, ptr %m_nodes.i.i2021, align 8 - %tobool.not.i.i1960 = icmp eq ptr %.pre.i1959, null - br i1 %tobool.not.i.i1960, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1963, label %if.then.i.i1946 - -if.then.i.i1946: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1958, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1940 - %933 = phi ptr [ %.pre.i1959, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1958 ], [ %927, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1940 ] - %arrayidx.i.i1947 = getelementptr inbounds i32, ptr %933, i64 -1 - store i32 %j.0.i.i282.lcssa, ptr %arrayidx.i.i1947, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1963 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1963: ; preds = %for.end63.i.i285, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1958, %if.then.i.i1946 - br i1 %cmp3.not.i.i1984, label %for.end86.i.i290, label %for.body68.i.i291.preheader - -for.body68.i.i291.preheader: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1963 - %wide.trip.count2920 = zext i32 %895 to i64 - br label %for.body68.i.i291 - -for.body68.i.i291: ; preds = %for.body68.i.i291.preheader, %for.inc84.i.i296 - %indvars.iv2917 = phi i64 [ 0, %for.body68.i.i291.preheader ], [ %indvars.iv.next2918, %for.inc84.i.i296 ] - %j.2.i.i2872898 = phi i32 [ 0, %for.body68.i.i291.preheader ], [ %j.3.i.i297, %for.inc84.i.i296 ] - %934 = load ptr, ptr %586, align 8 - %arrayidx71.i.i293 = getelementptr inbounds ptr, ptr %add.ptr43.i.i280, i64 %indvars.iv2917 - %935 = load ptr, ptr %arrayidx71.i.i293, align 8 - %call73.i.i294 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %934, ptr noundef %935) - to label %invoke.cont72.i.i295 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont72.i.i295: ; preds = %for.body68.i.i291 - br i1 %call73.i.i294, label %invoke.cont79.i53.i, label %for.inc84.i.i296 - -invoke.cont79.i53.i: ; preds = %invoke.cont72.i.i295 - %936 = load ptr, ptr %arrayidx71.i.i293, align 8 - %937 = load ptr, ptr %m_nodes.i.i1983, align 8 - %idxprom.i.i1934 = zext i32 %j.2.i.i2872898 to i64 - %arrayidx.i.i1935 = getelementptr inbounds ptr, ptr %937, i64 %idxprom.i.i1934 - %938 = load ptr, ptr %new_no_pats.i.i195, align 8 - %inc78.i.i300 = add i32 %j.2.i.i2872898, 1 - %tobool.not.i.i1920 = icmp eq ptr %936, null - br i1 %tobool.not.i.i1920, label %_ZN11ast_manager7inc_refEP3ast.exit.i1924, label %if.then.i.i1921 - -if.then.i.i1921: ; preds = %invoke.cont79.i53.i - %m_ref_count.i.i.i1922 = getelementptr inbounds %class.ast, ptr %936, i64 0, i32 2 - %939 = load i32, ptr %m_ref_count.i.i.i1922, align 4 - %inc.i.i.i1923 = add i32 %939, 1 - store i32 %inc.i.i.i1923, ptr %m_ref_count.i.i.i1922, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i1924 - -_ZN11ast_manager7inc_refEP3ast.exit.i1924: ; preds = %if.then.i.i1921, %invoke.cont79.i53.i - %940 = load ptr, ptr %arrayidx.i.i1935, align 8 - %tobool.not.i2.i1925 = icmp eq ptr %940, null - br i1 %tobool.not.i2.i1925, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1932, label %if.then.i3.i1926 - -if.then.i3.i1926: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1924 - %m_ref_count.i.i4.i1927 = getelementptr inbounds %class.ast, ptr %940, i64 0, i32 2 - %941 = load i32, ptr %m_ref_count.i.i4.i1927, align 4 - %dec.i.i.i1928 = add i32 %941, -1 - store i32 %dec.i.i.i1928, ptr %m_ref_count.i.i4.i1927, align 4 - %cmp.i.i1929 = icmp eq i32 %dec.i.i.i1928, 0 - br i1 %cmp.i.i1929, label %if.then2.i.i1930, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1932 - -if.then2.i.i1930: ; preds = %if.then.i3.i1926 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %938, ptr noundef nonnull %940) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1932 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1932: ; preds = %if.then2.i.i1930, %_ZN11ast_manager7inc_refEP3ast.exit.i1924, %if.then.i3.i1926 - store ptr %936, ptr %arrayidx.i.i1935, align 8 - br label %for.inc84.i.i296 - -for.inc84.i.i296: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1932, %invoke.cont72.i.i295 - %j.3.i.i297 = phi i32 [ %inc78.i.i300, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1932 ], [ %j.2.i.i2872898, %invoke.cont72.i.i295 ] - %indvars.iv.next2918 = add nuw nsw i64 %indvars.iv2917, 1 - %exitcond2921.not = icmp eq i64 %indvars.iv.next2918, %wide.trip.count2920 - br i1 %exitcond2921.not, label %for.end86.i.i290, label %for.body68.i.i291, !llvm.loop !33 - -for.end86.i.i290: ; preds = %for.inc84.i.i296, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1963 - %j.2.i.i287.lcssa = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1963 ], [ %j.3.i.i297, %for.inc84.i.i296 ] - %942 = load ptr, ptr %m_nodes.i.i1983, align 8 - %cmp.i.i.i1894 = icmp eq ptr %942, null - br i1 %cmp.i.i.i1894, label %if.then92.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1895 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1895: ; preds = %for.end86.i.i290 - %arrayidx.i.i.i1898 = getelementptr inbounds i32, ptr %942, i64 -1 - %943 = load i32, ptr %arrayidx.i.i.i1898, align 4 - %944 = zext i32 %943 to i64 - %add.ptr.i.i1899 = getelementptr inbounds ptr, ptr %942, i64 %944 - %cmp3.i.i1900 = icmp ugt i32 %943, %j.2.i.i287.lcssa - br i1 %cmp3.i.i1900, label %for.body.i.i1903.preheader, label %if.then.i.i1901 - -for.body.i.i1903.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1895 - %idx.ext.i1896 = zext i32 %j.2.i.i287.lcssa to i64 - %add.ptr.i1897 = getelementptr inbounds ptr, ptr %942, i64 %idx.ext.i1896 - br label %for.body.i.i1903 - -for.body.i.i1903: ; preds = %for.body.i.i1903.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1910 - %it.04.i.i1904 = phi ptr [ %incdec.ptr.i.i1911, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1910 ], [ %add.ptr.i1897, %for.body.i.i1903.preheader ] - %945 = load ptr, ptr %it.04.i.i1904, align 8 - %946 = load ptr, ptr %new_no_pats.i.i195, align 8 - %tobool.not.i.i.i.i.i1905 = icmp eq ptr %945, null - br i1 %tobool.not.i.i.i.i.i1905, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1910, label %if.then.i.i.i.i.i1906 - -if.then.i.i.i.i.i1906: ; preds = %for.body.i.i1903 - %m_ref_count.i.i.i.i.i.i1907 = getelementptr inbounds %class.ast, ptr %945, i64 0, i32 2 - %947 = load i32, ptr %m_ref_count.i.i.i.i.i.i1907, align 4 - %dec.i.i.i.i.i.i1908 = add i32 %947, -1 - store i32 %dec.i.i.i.i.i.i1908, ptr %m_ref_count.i.i.i.i.i.i1907, align 4 - %cmp.i.i.i.i.i1909 = icmp eq i32 %dec.i.i.i.i.i.i1908, 0 - br i1 %cmp.i.i.i.i.i1909, label %if.then2.i.i.i.i.i1916, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1910 - -if.then2.i.i.i.i.i1916: ; preds = %if.then.i.i.i.i.i1906 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %946, ptr noundef nonnull %945) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1910 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1910: ; preds = %if.then2.i.i.i.i.i1916, %if.then.i.i.i.i.i1906, %for.body.i.i1903 - %incdec.ptr.i.i1911 = getelementptr inbounds ptr, ptr %it.04.i.i1904, i64 1 - %cmp.i.i1912 = icmp ult ptr %incdec.ptr.i.i1911, %add.ptr.i.i1899 - br i1 %cmp.i.i1912, label %for.body.i.i1903, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1913, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1913: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1910 - %.pre.i1914 = load ptr, ptr %m_nodes.i.i1983, align 8 - %tobool.not.i.i1915 = icmp eq ptr %.pre.i1914, null - br i1 %tobool.not.i.i1915, label %if.then92.i.i, label %if.then.i.i1901 - -if.then.i.i1901: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1913, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1895 - %948 = phi ptr [ %.pre.i1914, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1913 ], [ %942, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1895 ] - %arrayidx.i.i1902 = getelementptr inbounds i32, ptr %948, i64 -1 - store i32 %j.2.i.i287.lcssa, ptr %arrayidx.i.i1902, align 4 - br label %if.then92.i.i - -if.then92.i.i: ; preds = %for.end86.i.i290, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1913, %if.then.i.i1901 - %bf.load93.i.i = load i32, ptr %627, align 8 - %949 = and i32 %bf.load93.i.i, 2 - %tobool.not.i.i270 = icmp eq i32 %949, 0 - br i1 %tobool.not.i.i270, label %if.else.i.i276, label %if.then96.i.i - -if.then96.i.i: ; preds = %if.then92.i.i - %this.val.i50.i = load ptr, ptr %586, align 8 - %950 = load ptr, ptr %m_nodes.i.i2021, align 8 - %951 = load ptr, ptr %m_nodes.i.i1983, align 8 - %call101.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i50.i, ptr noundef nonnull %625, i32 noundef %j.0.i.i282.lcssa, ptr noundef %950, i32 noundef %j.2.i.i287.lcssa, ptr noundef %951, ptr noundef %893) - to label %invoke.cont100.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont100.i.i: ; preds = %if.then96.i.i - %tobool.not.i1875 = icmp eq ptr %call101.i.i, null - br i1 %tobool.not.i1875, label %if.end.i1879, label %_ZN11ast_manager7inc_refEP3ast.exit.i1876 - -_ZN11ast_manager7inc_refEP3ast.exit.i1876: ; preds = %invoke.cont100.i.i - %m_ref_count.i.i.i1877 = getelementptr inbounds %class.ast, ptr %call101.i.i, i64 0, i32 2 - %952 = load i32, ptr %m_ref_count.i.i.i1877, align 4 - %inc.i.i.i1878 = add i32 %952, 1 - store i32 %inc.i.i.i1878, ptr %m_ref_count.i.i.i1877, align 4 - br label %if.end.i1879 - -if.end.i1879: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1876, %invoke.cont100.i.i - %953 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i1880 = icmp eq ptr %953, null - br i1 %tobool.not.i3.i1880, label %if.end109.i.i, label %if.then.i.i.i1881 - -if.then.i.i.i1881: ; preds = %if.end.i1879 - %954 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i1883 = getelementptr inbounds %class.ast, ptr %953, i64 0, i32 2 - %955 = load i32, ptr %m_ref_count.i.i.i.i1883, align 4 - %dec.i.i.i.i1884 = add i32 %955, -1 - store i32 %dec.i.i.i.i1884, ptr %m_ref_count.i.i.i.i1883, align 4 - %cmp.i.i.i1885 = icmp eq i32 %dec.i.i.i.i1884, 0 - br i1 %cmp.i.i.i1885, label %if.then2.i.i.i1886, label %if.end109.i.i - -if.then2.i.i.i1886: ; preds = %if.then.i.i.i1881 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %954, ptr noundef nonnull %953) - to label %if.end109.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.else.i.i276: ; preds = %if.then92.i.i - %tobool.not.i1861 = icmp eq ptr %625, null - br i1 %tobool.not.i1861, label %if.end.i1865, label %_ZN11ast_manager7inc_refEP3ast.exit.i1862 - -_ZN11ast_manager7inc_refEP3ast.exit.i1862: ; preds = %if.else.i.i276 - %m_ref_count.i.i.i1863 = getelementptr inbounds %class.ast, ptr %625, i64 0, i32 2 - %956 = load i32, ptr %m_ref_count.i.i.i1863, align 4 - %inc.i.i.i1864 = add i32 %956, 1 - store i32 %inc.i.i.i1864, ptr %m_ref_count.i.i.i1863, align 4 - br label %if.end.i1865 - -if.end.i1865: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1862, %if.else.i.i276 - %957 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i1866 = icmp eq ptr %957, null - br i1 %tobool.not.i3.i1866, label %if.end109.i.i, label %if.then.i.i.i1867 - -if.then.i.i.i1867: ; preds = %if.end.i1865 - %958 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i1869 = getelementptr inbounds %class.ast, ptr %957, i64 0, i32 2 - %959 = load i32, ptr %m_ref_count.i.i.i.i1869, align 4 - %dec.i.i.i.i1870 = add i32 %959, -1 - store i32 %dec.i.i.i.i1870, ptr %m_ref_count.i.i.i.i1869, align 4 - %cmp.i.i.i1871 = icmp eq i32 %dec.i.i.i.i1870, 0 - br i1 %cmp.i.i.i1871, label %if.then2.i.i.i1872, label %if.end109.i.i - -if.then2.i.i.i1872: ; preds = %if.then.i.i.i1867 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %958, ptr noundef nonnull %957) - to label %if.end109.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.end109.i.i: ; preds = %if.then.i.i.i1867, %if.end.i1865, %if.then2.i.i.i1872, %if.then.i.i.i1881, %if.end.i1879, %if.then2.i.i.i1886 - %storemerge2825 = phi ptr [ %call101.i.i, %if.then2.i.i.i1886 ], [ %call101.i.i, %if.end.i1879 ], [ %call101.i.i, %if.then.i.i.i1881 ], [ %625, %if.then2.i.i.i1872 ], [ %625, %if.end.i1865 ], [ %625, %if.then.i.i.i1867 ] - store ptr %storemerge2825, ptr %m_r.i48.i, align 8 - %960 = load i32, ptr %m_spos.i38.i, align 4 - %961 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i.i1835 = icmp eq ptr %961, null - br i1 %cmp.i.i.i1835, label %invoke.cont112.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1836 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1836: ; preds = %if.end109.i.i - %arrayidx.i.i.i1839 = getelementptr inbounds i32, ptr %961, i64 -1 - %962 = load i32, ptr %arrayidx.i.i.i1839, align 4 - %963 = zext i32 %962 to i64 - %add.ptr.i.i1840 = getelementptr inbounds ptr, ptr %961, i64 %963 - %cmp3.i.i1841 = icmp ugt i32 %962, %960 - br i1 %cmp3.i.i1841, label %for.body.i.i1844.preheader, label %if.then.i.i1842 - -for.body.i.i1844.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1836 - %idx.ext.i1837 = zext i32 %960 to i64 - %add.ptr.i1838 = getelementptr inbounds ptr, ptr %961, i64 %idx.ext.i1837 - br label %for.body.i.i1844 - -for.body.i.i1844: ; preds = %for.body.i.i1844.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1851 - %it.04.i.i1845 = phi ptr [ %incdec.ptr.i.i1852, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1851 ], [ %add.ptr.i1838, %for.body.i.i1844.preheader ] - %964 = load ptr, ptr %it.04.i.i1845, align 8 - %965 = load ptr, ptr %m_result_stack.i2061, align 8 - %tobool.not.i.i.i.i.i1846 = icmp eq ptr %964, null - br i1 %tobool.not.i.i.i.i.i1846, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1851, label %if.then.i.i.i.i.i1847 - -if.then.i.i.i.i.i1847: ; preds = %for.body.i.i1844 - %m_ref_count.i.i.i.i.i.i1848 = getelementptr inbounds %class.ast, ptr %964, i64 0, i32 2 - %966 = load i32, ptr %m_ref_count.i.i.i.i.i.i1848, align 4 - %dec.i.i.i.i.i.i1849 = add i32 %966, -1 - store i32 %dec.i.i.i.i.i.i1849, ptr %m_ref_count.i.i.i.i.i.i1848, align 4 - %cmp.i.i.i.i.i1850 = icmp eq i32 %dec.i.i.i.i.i.i1849, 0 - br i1 %cmp.i.i.i.i.i1850, label %if.then2.i.i.i.i.i1857, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1851 - -if.then2.i.i.i.i.i1857: ; preds = %if.then.i.i.i.i.i1847 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %965, ptr noundef nonnull %964) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1851 unwind label %lpad37.i.i262.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1851: ; preds = %if.then2.i.i.i.i.i1857, %if.then.i.i.i.i.i1847, %for.body.i.i1844 - %incdec.ptr.i.i1852 = getelementptr inbounds ptr, ptr %it.04.i.i1845, i64 1 - %cmp.i.i1853 = icmp ult ptr %incdec.ptr.i.i1852, %add.ptr.i.i1840 - br i1 %cmp.i.i1853, label %for.body.i.i1844, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1854, !llvm.loop !17 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1854: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1851 - %.pre.i1855 = load ptr, ptr %m_nodes.i.i424, align 8 - %tobool.not.i.i1856 = icmp eq ptr %.pre.i1855, null - br i1 %tobool.not.i.i1856, label %invoke.cont112.i.ithread-pre-split, label %if.then.i.i1842 - -if.then.i.i1842: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1854, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1836 - %967 = phi ptr [ %.pre.i1855, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1854 ], [ %961, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1836 ] - %arrayidx.i.i1843 = getelementptr inbounds i32, ptr %967, i64 -1 - store i32 %960, ptr %arrayidx.i.i1843, align 4 - br label %invoke.cont112.i.ithread-pre-split - -invoke.cont112.i.ithread-pre-split: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1854, %if.then.i.i1842 - %.pr2943 = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont112.i.i - -invoke.cont112.i.i: ; preds = %invoke.cont112.i.ithread-pre-split, %if.end109.i.i - %968 = phi ptr [ %.pr2943, %invoke.cont112.i.ithread-pre-split ], [ %storemerge2825, %if.end109.i.i ] - %tobool.not.i.i.i.i1812 = icmp eq ptr %968, null - br i1 %tobool.not.i.i.i.i1812, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1816, label %if.then.i.i.i.i1813 - -if.then.i.i.i.i1813: ; preds = %invoke.cont112.i.i - %m_ref_count.i.i.i.i.i1814 = getelementptr inbounds %class.ast, ptr %968, i64 0, i32 2 - %969 = load i32, ptr %m_ref_count.i.i.i.i.i1814, align 4 - %inc.i.i.i.i.i1815 = add i32 %969, 1 - store i32 %inc.i.i.i.i.i1815, ptr %m_ref_count.i.i.i.i.i1814, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1816 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1816: ; preds = %if.then.i.i.i.i1813, %invoke.cont112.i.i - %970 = load ptr, ptr %m_nodes.i.i424, align 8 - %cmp.i.i1818 = icmp eq ptr %970, null - br i1 %cmp.i.i1818, label %if.then.i.i1827, label %lor.lhs.false.i.i1819 - -lor.lhs.false.i.i1819: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1816 - %arrayidx.i.i1820 = getelementptr inbounds i32, ptr %970, i64 -1 - %971 = load i32, ptr %arrayidx.i.i1820, align 4 - %arrayidx4.i.i1821 = getelementptr inbounds i32, ptr %970, i64 -2 - %972 = load i32, ptr %arrayidx4.i.i1821, align 4 - %cmp5.i.i1822 = icmp eq i32 %971, %972 - br i1 %cmp5.i.i1822, label %if.then.i.i1827, label %invoke.cont116.i.i - -if.then.i.i1827: ; preds = %lor.lhs.false.i.i1819, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1816 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i424) - to label %.noexc1831 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1831: ; preds = %if.then.i.i1827 - %.pre.i.i1828 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx8.phi.trans.insert.i.i1829 = getelementptr inbounds i32, ptr %.pre.i.i1828, i64 -1 - %.pre1.i.i1830 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1829, align 4 - br label %invoke.cont116.i.i - -invoke.cont116.i.i: ; preds = %.noexc1831, %lor.lhs.false.i.i1819 - %973 = phi i32 [ %.pre1.i.i1830, %.noexc1831 ], [ %971, %lor.lhs.false.i.i1819 ] - %974 = phi ptr [ %.pre.i.i1828, %.noexc1831 ], [ %970, %lor.lhs.false.i.i1819 ] - %idx.ext.i.i1823 = zext i32 %973 to i64 - %add.ptr.i.i1824 = getelementptr inbounds ptr, ptr %974, i64 %idx.ext.i.i1823 - store ptr %968, ptr %add.ptr.i.i1824, align 8 - %975 = load ptr, ptr %m_nodes.i.i424, align 8 - %arrayidx10.i.i1825 = getelementptr inbounds i32, ptr %975, i64 -1 - %976 = load i32, ptr %arrayidx10.i.i1825, align 4 - %inc.i.i1826 = add i32 %976, 1 - store i32 %inc.i.i1826, ptr %arrayidx10.i.i1825, align 4 - %977 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i1807 = icmp eq ptr %977, null - br i1 %cmp.i1807, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1806, label %if.then.i1803 - -if.then.i1803: ; preds = %invoke.cont116.i.i - %arrayidx.i1809 = getelementptr inbounds i32, ptr %977, i64 -1 - %978 = load i32, ptr %arrayidx.i1809, align 4 - %sub.i51.i = sub i32 %978, %863 - store i32 %sub.i51.i, ptr %arrayidx.i1809, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1806 - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1806: ; preds = %invoke.cont116.i.i, %if.then.i1803 - %979 = load ptr, ptr %m_shifts.i69.i, align 8 - %cmp.i1797 = icmp eq ptr %979, null - br i1 %cmp.i1797, label %_ZN6vectorIjLb0EjE6shrinkEj.exit1796, label %if.then.i1793 - -if.then.i1793: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1806 - %arrayidx.i1799 = getelementptr inbounds i32, ptr %979, i64 -1 - %980 = load i32, ptr %arrayidx.i1799, align 4 - %sub124.i.i = sub i32 %980, %863 - store i32 %sub124.i.i, ptr %arrayidx.i1799, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit1796 - -_ZN6vectorIjLb0EjE6shrinkEj.exit1796: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1806, %if.then.i1793 - invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont125.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont125.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit1796 - %981 = load ptr, ptr %m_r.i48.i, align 8 - %bf.load132.i.i = load i32, ptr %627, align 8 - %bf.clear133.i.i = and i32 %bf.load132.i.i, 1 - %tobool134.i.i.not = icmp eq i32 %bf.clear133.i.i, 0 - br i1 %tobool134.i.i.not, label %invoke.cont135.i.i, label %if.then.i1790 - -if.then.i1790: ; preds = %invoke.cont125.i.i - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %625, i32 noundef 0, ptr noundef %981) - to label %invoke.cont135.i.ithread-pre-split unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont135.i.ithread-pre-split: ; preds = %if.then.i1790 - %.pr2822 = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont135.i.i - -invoke.cont135.i.i: ; preds = %invoke.cont135.i.ithread-pre-split, %invoke.cont125.i.i - %982 = phi ptr [ %.pr2822, %invoke.cont135.i.ithread-pre-split ], [ %981, %invoke.cont125.i.i ] - %tobool.not.i3.i1780 = icmp eq ptr %982, null - br i1 %tobool.not.i3.i1780, label %invoke.cont137.i.i, label %if.then.i.i.i1781 - -if.then.i.i.i1781: ; preds = %invoke.cont135.i.i - %983 = load ptr, ptr %m_manager.i.i1882, align 8 - %m_ref_count.i.i.i.i1783 = getelementptr inbounds %class.ast, ptr %982, i64 0, i32 2 - %984 = load i32, ptr %m_ref_count.i.i.i.i1783, align 4 - %dec.i.i.i.i1784 = add i32 %984, -1 - store i32 %dec.i.i.i.i1784, ptr %m_ref_count.i.i.i.i1783, align 4 - %cmp.i.i.i1785 = icmp eq i32 %dec.i.i.i.i1784, 0 - br i1 %cmp.i.i.i1785, label %if.then2.i.i.i1786, label %invoke.cont137.i.i - -if.then2.i.i.i1786: ; preds = %if.then.i.i.i1781 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %983, ptr noundef nonnull %982) - to label %invoke.cont137.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont137.i.i: ; preds = %if.then.i.i.i1781, %invoke.cont135.i.i, %if.then2.i.i.i1786 - store ptr null, ptr %m_r.i48.i, align 8 - %985 = load ptr, ptr %m_pr.i49.i, align 8 - %tobool.not.i3.i1770 = icmp eq ptr %985, null - br i1 %tobool.not.i3.i1770, label %invoke.cont140.i.i, label %if.then.i.i.i1771 - -if.then.i.i.i1771: ; preds = %invoke.cont137.i.i - %986 = load ptr, ptr %m_manager.i.i1772, align 8 - %m_ref_count.i.i.i.i1773 = getelementptr inbounds %class.ast, ptr %985, i64 0, i32 2 - %987 = load i32, ptr %m_ref_count.i.i.i.i1773, align 4 - %dec.i.i.i.i1774 = add i32 %987, -1 - store i32 %dec.i.i.i.i1774, ptr %m_ref_count.i.i.i.i1773, align 4 - %cmp.i.i.i1775 = icmp eq i32 %dec.i.i.i.i1774, 0 - br i1 %cmp.i.i.i1775, label %if.then2.i.i.i1776, label %invoke.cont140.i.i - -if.then2.i.i.i1776: ; preds = %if.then.i.i.i1771 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %986, ptr noundef nonnull %985) - to label %invoke.cont140.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont140.i.i: ; preds = %if.then.i.i.i1771, %invoke.cont137.i.i, %if.then2.i.i.i1776 - store ptr null, ptr %m_pr.i49.i, align 8 - %988 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1766 = getelementptr inbounds i32, ptr %988, i64 -1 - %989 = load i32, ptr %arrayidx.i1766, align 4 - %dec.i1767 = add i32 %989, -1 - store i32 %dec.i1767, ptr %arrayidx.i1766, align 4 - %990 = load ptr, ptr %m_r.i48.i, align 8 - %this.val47.i.i275 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i1754 = icmp eq ptr %625, %990 - %cmp.i.i.i1755 = icmp eq ptr %this.val47.i.i275, null - %or.cond.i1756 = select i1 %cmp.not.i1754, i1 true, i1 %cmp.i.i.i1755 - br i1 %or.cond.i1756, label %invoke.cont146.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1757 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1757: ; preds = %invoke.cont140.i.i - %arrayidx.i.i.i1758 = getelementptr inbounds i32, ptr %this.val47.i.i275, i64 -1 - %991 = load i32, ptr %arrayidx.i.i.i1758, align 4 - %cmp3.i.i.i1759 = icmp eq i32 %991, 0 - br i1 %cmp3.i.i.i1759, label %invoke.cont146.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1760 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1760: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1757 - %992 = add i32 %991, -1 - %993 = zext i32 %992 to i64 - %m_new_child.i.i1761 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val47.i.i275, i64 %993, i32 1 - %bf.load.i.i1762 = load i32, ptr %m_new_child.i.i1761, align 8 - %bf.set.i.i1763 = or i32 %bf.load.i.i1762, 2 - store i32 %bf.set.i.i1763, ptr %m_new_child.i.i1761, align 8 - br label %invoke.cont146.i.i - -invoke.cont146.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1760, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1757, %invoke.cont140.i.i - %994 = load ptr, ptr %m_nodes.i.i1983, align 8 - %cmp.i.i.i1730 = icmp eq ptr %994, null - br i1 %cmp.i.i.i1730, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1753, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1731 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1731: ; preds = %invoke.cont146.i.i - %arrayidx.i.i.i1732 = getelementptr inbounds i32, ptr %994, i64 -1 - %995 = load i32, ptr %arrayidx.i.i.i1732, align 4 - %996 = zext i32 %995 to i64 - %add.ptr.i.i1733 = getelementptr inbounds ptr, ptr %994, i64 %996 - %cmp3.i.not.i.i1734 = icmp eq i32 %995, 0 - br i1 %cmp3.i.not.i.i1734, label %if.then.i.i.i.i.i1748, label %for.body.i.i.i1735 - -for.body.i.i.i1735: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1731, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1742 - %it.04.i.i.i1736 = phi ptr [ %incdec.ptr.i.i.i1743, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1742 ], [ %994, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1731 ] - %997 = load ptr, ptr %it.04.i.i.i1736, align 8 - %998 = load ptr, ptr %new_no_pats.i.i195, align 8 - %tobool.not.i.i.i.i.i.i1737 = icmp eq ptr %997, null - br i1 %tobool.not.i.i.i.i.i.i1737, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1742, label %if.then.i.i.i.i.i.i1738 - -if.then.i.i.i.i.i.i1738: ; preds = %for.body.i.i.i1735 - %m_ref_count.i.i.i.i.i.i.i1739 = getelementptr inbounds %class.ast, ptr %997, i64 0, i32 2 - %999 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i1739, align 4 - %dec.i.i.i.i.i.i.i1740 = add i32 %999, -1 - store i32 %dec.i.i.i.i.i.i.i1740, ptr %m_ref_count.i.i.i.i.i.i.i1739, align 4 - %cmp.i.i.i.i.i.i1741 = icmp eq i32 %dec.i.i.i.i.i.i.i1740, 0 - br i1 %cmp.i.i.i.i.i.i1741, label %if.then2.i.i.i.i.i.i1751, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1742 - -if.then2.i.i.i.i.i.i1751: ; preds = %if.then.i.i.i.i.i.i1738 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %998, ptr noundef nonnull %997) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1742 unwind label %terminate.lpad.i.i1752 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1742: ; preds = %if.then2.i.i.i.i.i.i1751, %if.then.i.i.i.i.i.i1738, %for.body.i.i.i1735 - %incdec.ptr.i.i.i1743 = getelementptr inbounds ptr, ptr %it.04.i.i.i1736, i64 1 - %cmp.i1.i.i1744 = icmp ult ptr %incdec.ptr.i.i.i1743, %add.ptr.i.i1733 - br i1 %cmp.i1.i.i1744, label %for.body.i.i.i1735, label %invoke.cont8.i.i1745, !llvm.loop !17 - -invoke.cont8.i.i1745: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1742 - %.pre.i.i1746 = load ptr, ptr %m_nodes.i.i1983, align 8 - %tobool.not.i.i.i.i.i1747 = icmp eq ptr %.pre.i.i1746, null - br i1 %tobool.not.i.i.i.i.i1747, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1753, label %if.then.i.i.i.i.i1748 - -if.then.i.i.i.i.i1748: ; preds = %invoke.cont8.i.i1745, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1731 - %1000 = phi ptr [ %.pre.i.i1746, %invoke.cont8.i.i1745 ], [ %994, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1731 ] - %add.ptr.i.i.i.i.i.i1749 = getelementptr inbounds i32, ptr %1000, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i1749) - to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1753 unwind label %terminate.lpad.i.i.i.i1750 - -terminate.lpad.i.i.i.i1750: ; preds = %if.then.i.i.i.i.i1748 - %1001 = landingpad { ptr, i32 } - catch ptr null - %1002 = extractvalue { ptr, i32 } %1001, 0 - call void @__clang_call_terminate(ptr %1002) #19 - unreachable + br label %lpad37.i.i.i -terminate.lpad.i.i1752: ; preds = %if.then2.i.i.i.i.i.i1751 - %1003 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179: ; preds = %if.then2.i.i.i267.i.i.i, %if.then2.i.i.i257.i.i.i, %if.then.i248.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i, %if.then.i.i228.i.i.i, %if.then2.i.i.i191.i.i.i, %if.then2.i.i.i.i102.i.i, %if.then96.i.i.i + %lpad.loopexit.split-lp.i.i.i180 = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i + +lpad37.i.i.i: ; preds = %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i198, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173, %lpad37.loopexit.split-lp.loopexit.i.i.i196, %lpad37.loopexit.i.i.i193 + %lpad.phi.i58.i.i = phi { ptr, i32 } [ %lpad.loopexit.i101.i.i, %lpad37.loopexit.i.i.i193 ], [ %lpad.loopexit314.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i196 ], [ %lpad.loopexit317.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 ], [ %lpad.loopexit319.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i198 ], [ %lpad.loopexit322.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 ], [ %lpad.loopexit.split-lp.i.i.i180, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i43) #18 + br label %ehcleanup.i.i.i161 + +for.inc61.i.i.i163: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i204, %invoke.cont49.i.i.i162 + %j.1.i.i.i164 = phi i32 [ %inc55.i.i.i200, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i204 ], [ %j.0329.i.i.i, %invoke.cont49.i.i.i162 ] + %indvars.iv.next.i.i.i165 = add nuw nsw i64 %indvars.iv.i.i.i158, 1 + %exitcond336.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i165, %idx.ext42.i.i.i155 + br i1 %exitcond336.not.i.i.i, label %for.end63.i.i.i166, label %for.body47.i.i.i157, !llvm.loop !32 + +for.end63.i.i.i166: ; preds = %for.inc61.i.i.i163, %if.then40.i.i.i153 + %j.0.lcssa.i.i.i167 = phi i32 [ 0, %if.then40.i.i.i153 ], [ %j.1.i.i.i164, %for.inc61.i.i.i163 ] + %936 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i.i60.i.i = icmp eq ptr %936, null + br i1 %cmp.i.i.i.i60.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i: ; preds = %for.end63.i.i.i166 + %arrayidx.i.i.i.i62.i.i = getelementptr inbounds i32, ptr %936, i64 -1 + %937 = load i32, ptr %arrayidx.i.i.i.i62.i.i, align 4 + %938 = zext i32 %937 to i64 + %add.ptr.i.i117.i.i.i = getelementptr inbounds ptr, ptr %936, i64 %938 + %cmp3.i.i.i63.i.i = icmp ugt i32 %937, %j.0.lcssa.i.i.i167 + br i1 %cmp3.i.i.i63.i.i, label %for.body.i.i120.preheader.i.i.i, label %if.then.i.i118.i.i.i + +for.body.i.i120.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + %idx.ext.i115.i.i.i = zext i32 %j.0.lcssa.i.i.i167 to i64 + %add.ptr.i116.i.i.i = getelementptr inbounds ptr, ptr %936, i64 %idx.ext.i115.i.i.i + br label %for.body.i.i120.i.i.i + +for.body.i.i120.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i110.i.i, %for.body.i.i120.preheader.i.i.i + %it.04.i.i.i104.i.i = phi ptr [ %incdec.ptr.i.i.i111.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i110.i.i ], [ %add.ptr.i116.i.i.i, %for.body.i.i120.preheader.i.i.i ] + %939 = load ptr, ptr %it.04.i.i.i104.i.i, align 8 + %940 = load ptr, ptr %new_pats.i.i.i42, align 8 + %tobool.not.i.i.i.i.i.i105.i.i = icmp eq ptr %939, null + br i1 %tobool.not.i.i.i.i.i.i105.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i110.i.i, label %if.then.i.i.i.i.i.i106.i.i + +if.then.i.i.i.i.i.i106.i.i: ; preds = %for.body.i.i120.i.i.i + %m_ref_count.i.i.i.i.i.i.i107.i.i = getelementptr inbounds %class.ast, ptr %939, i64 0, i32 2 + %941 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i107.i.i, align 4 + %dec.i.i.i.i.i.i.i108.i.i = add i32 %941, -1 + store i32 %dec.i.i.i.i.i.i.i108.i.i, ptr %m_ref_count.i.i.i.i.i.i.i107.i.i, align 4 + %cmp.i.i.i.i.i.i109.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i108.i.i, 0 + br i1 %cmp.i.i.i.i.i.i109.i.i, label %if.then2.i.i.i.i.i.i113.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i110.i.i + +if.then2.i.i.i.i.i.i113.i.i: ; preds = %if.then.i.i.i.i.i.i106.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %940, ptr noundef nonnull %939) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i110.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i198 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i110.i.i: ; preds = %if.then2.i.i.i.i.i.i113.i.i, %if.then.i.i.i.i.i.i106.i.i, %for.body.i.i120.i.i.i + %incdec.ptr.i.i.i111.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i104.i.i, i64 1 + %cmp.i.i121.i.i.i = icmp ult ptr %incdec.ptr.i.i.i111.i.i, %add.ptr.i.i117.i.i.i + br i1 %cmp.i.i121.i.i.i, label %for.body.i.i120.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i112.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i112.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i110.i.i + %.pre.i122.i.i.i = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %tobool.not.i.i123.i.i.i = icmp eq ptr %.pre.i122.i.i.i, null + br i1 %tobool.not.i.i123.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168, label %if.then.i.i118.i.i.i + +if.then.i.i118.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i112.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + %942 = phi ptr [ %.pre.i122.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i112.i.i ], [ %936, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i ] + %arrayidx.i.i119.i.i.i = getelementptr inbounds i32, ptr %942, i64 -1 + store i32 %j.0.lcssa.i.i.i167, ptr %arrayidx.i.i119.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168: ; preds = %if.then.i.i118.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i112.i.i, %for.end63.i.i.i166 + br i1 %cmp3.not.i.i81.i.i.i, label %for.end86.i.i.i177, label %for.body68.preheader.i.i.i169 + +for.body68.preheader.i.i.i169: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + %wide.trip.count340.i.i.i = zext i32 %900 to i64 + br label %for.body68.i.i.i170 + +for.body68.i.i.i170: ; preds = %for.inc84.i.i.i175, %for.body68.preheader.i.i.i169 + %indvars.iv337.i.i.i = phi i64 [ 0, %for.body68.preheader.i.i.i169 ], [ %indvars.iv.next338.i.i.i, %for.inc84.i.i.i175 ] + %j.2332.i.i.i = phi i32 [ 0, %for.body68.preheader.i.i.i169 ], [ %j.3.i.i.i176, %for.inc84.i.i.i175 ] + %943 = load ptr, ptr %587, align 8 + %arrayidx71.i.i.i171 = getelementptr inbounds ptr, ptr %add.ptr43.i.i.i156, i64 %indvars.iv337.i.i.i + %944 = load ptr, ptr %arrayidx71.i.i.i171, align 8 + %call73.i.i.i172 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %943, ptr noundef %944) + to label %invoke.cont72.i.i.i174 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 + +invoke.cont72.i.i.i174: ; preds = %for.body68.i.i.i170 + br i1 %call73.i.i.i172, label %invoke.cont79.i103.i.i, label %for.inc84.i.i.i175 + +invoke.cont79.i103.i.i: ; preds = %invoke.cont72.i.i.i174 + %945 = load ptr, ptr %arrayidx71.i.i.i171, align 8 + %946 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %idxprom.i.i126.i.i.i = zext i32 %j.2332.i.i.i to i64 + %arrayidx.i.i127.i.i.i = getelementptr inbounds ptr, ptr %946, i64 %idxprom.i.i126.i.i.i + %947 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %inc78.i.i.i197 = add i32 %j.2332.i.i.i, 1 + %tobool.not.i.i131.i.i.i = icmp eq ptr %945, null + br i1 %tobool.not.i.i131.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i, label %if.then.i.i132.i.i.i + +if.then.i.i132.i.i.i: ; preds = %invoke.cont79.i103.i.i + %m_ref_count.i.i.i133.i.i.i = getelementptr inbounds %class.ast, ptr %945, i64 0, i32 2 + %948 = load i32, ptr %m_ref_count.i.i.i133.i.i.i, align 4 + %inc.i.i.i134.i.i.i = add i32 %948, 1 + store i32 %inc.i.i.i134.i.i.i, ptr %m_ref_count.i.i.i133.i.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i: ; preds = %if.then.i.i132.i.i.i, %invoke.cont79.i103.i.i + %949 = load ptr, ptr %arrayidx.i.i127.i.i.i, align 8 + %tobool.not.i2.i136.i.i.i = icmp eq ptr %949, null + br i1 %tobool.not.i2.i136.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i, label %if.then.i3.i137.i.i.i + +if.then.i3.i137.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + %m_ref_count.i.i4.i138.i.i.i = getelementptr inbounds %class.ast, ptr %949, i64 0, i32 2 + %950 = load i32, ptr %m_ref_count.i.i4.i138.i.i.i, align 4 + %dec.i.i.i139.i.i.i = add i32 %950, -1 + store i32 %dec.i.i.i139.i.i.i, ptr %m_ref_count.i.i4.i138.i.i.i, align 4 + %cmp.i.i140.i.i.i = icmp eq i32 %dec.i.i.i139.i.i.i, 0 + br i1 %cmp.i.i140.i.i.i, label %if.then2.i.i141.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i + +if.then2.i.i141.i.i.i: ; preds = %if.then.i3.i137.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %947, ptr noundef nonnull %949) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i: ; preds = %if.then2.i.i141.i.i.i, %if.then.i3.i137.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + store ptr %945, ptr %arrayidx.i.i127.i.i.i, align 8 + br label %for.inc84.i.i.i175 + +for.inc84.i.i.i175: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i, %invoke.cont72.i.i.i174 + %j.3.i.i.i176 = phi i32 [ %inc78.i.i.i197, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i ], [ %j.2332.i.i.i, %invoke.cont72.i.i.i174 ] + %indvars.iv.next338.i.i.i = add nuw nsw i64 %indvars.iv337.i.i.i, 1 + %exitcond341.not.i.i.i = icmp eq i64 %indvars.iv.next338.i.i.i, %wide.trip.count340.i.i.i + br i1 %exitcond341.not.i.i.i, label %for.end86.i.i.i177, label %for.body68.i.i.i170, !llvm.loop !33 + +for.end86.i.i.i177: ; preds = %for.inc84.i.i.i175, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + %j.2.lcssa.i.i.i178 = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 ], [ %j.3.i.i.i176, %for.inc84.i.i.i175 ] + %951 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i145.i.i.i = icmp eq ptr %951, null + br i1 %cmp.i.i.i145.i.i.i, label %if.then92.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i: ; preds = %for.end86.i.i.i177 + %arrayidx.i.i.i149.i.i.i = getelementptr inbounds i32, ptr %951, i64 -1 + %952 = load i32, ptr %arrayidx.i.i.i149.i.i.i, align 4 + %953 = zext i32 %952 to i64 + %add.ptr.i.i150.i.i.i = getelementptr inbounds ptr, ptr %951, i64 %953 + %cmp3.i.i151.i.i.i = icmp ugt i32 %952, %j.2.lcssa.i.i.i178 + br i1 %cmp3.i.i151.i.i.i, label %for.body.i.i154.preheader.i.i.i, label %if.then.i.i152.i.i.i + +for.body.i.i154.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + %idx.ext.i147.i.i.i = zext i32 %j.2.lcssa.i.i.i178 to i64 + %add.ptr.i148.i.i.i = getelementptr inbounds ptr, ptr %951, i64 %idx.ext.i147.i.i.i + br label %for.body.i.i154.i.i.i + +for.body.i.i154.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i, %for.body.i.i154.preheader.i.i.i + %it.04.i.i155.i.i.i = phi ptr [ %incdec.ptr.i.i162.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i ], [ %add.ptr.i148.i.i.i, %for.body.i.i154.preheader.i.i.i ] + %954 = load ptr, ptr %it.04.i.i155.i.i.i, align 8 + %955 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %tobool.not.i.i.i.i.i156.i.i.i = icmp eq ptr %954, null + br i1 %tobool.not.i.i.i.i.i156.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i, label %if.then.i.i.i.i.i157.i.i.i + +if.then.i.i.i.i.i157.i.i.i: ; preds = %for.body.i.i154.i.i.i + %m_ref_count.i.i.i.i.i.i158.i.i.i = getelementptr inbounds %class.ast, ptr %954, i64 0, i32 2 + %956 = load i32, ptr %m_ref_count.i.i.i.i.i.i158.i.i.i, align 4 + %dec.i.i.i.i.i.i159.i.i.i = add i32 %956, -1 + store i32 %dec.i.i.i.i.i.i159.i.i.i, ptr %m_ref_count.i.i.i.i.i.i158.i.i.i, align 4 + %cmp.i.i.i.i.i160.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i159.i.i.i, 0 + br i1 %cmp.i.i.i.i.i160.i.i.i, label %if.then2.i.i.i.i.i167.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i + +if.then2.i.i.i.i.i167.i.i.i: ; preds = %if.then.i.i.i.i.i157.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %955, ptr noundef nonnull %954) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.i.i.i196 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i: ; preds = %if.then2.i.i.i.i.i167.i.i.i, %if.then.i.i.i.i.i157.i.i.i, %for.body.i.i154.i.i.i + %incdec.ptr.i.i162.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i155.i.i.i, i64 1 + %cmp.i.i163.i.i.i = icmp ult ptr %incdec.ptr.i.i162.i.i.i, %add.ptr.i.i150.i.i.i + br i1 %cmp.i.i163.i.i.i, label %for.body.i.i154.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i + %.pre.i165.i.i.i = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %tobool.not.i.i166.i.i.i = icmp eq ptr %.pre.i165.i.i.i, null + br i1 %tobool.not.i.i166.i.i.i, label %if.then92.i.i.i, label %if.then.i.i152.i.i.i + +if.then.i.i152.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + %957 = phi ptr [ %.pre.i165.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i ], [ %951, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i ] + %arrayidx.i.i153.i.i.i = getelementptr inbounds i32, ptr %957, i64 -1 + store i32 %j.2.lcssa.i.i.i178, ptr %arrayidx.i.i153.i.i.i, align 4 + br label %if.then92.i.i.i + +if.then92.i.i.i: ; preds = %if.then.i.i152.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, %for.end86.i.i.i177 + %bf.load93.i.i.i = load i32, ptr %628, align 8 + %958 = and i32 %bf.load93.i.i.i, 2 + %tobool.not.i65.i.i = icmp eq i32 %958, 0 + br i1 %tobool.not.i65.i.i, label %if.else.i.i.i194, label %if.then96.i.i.i + +if.then96.i.i.i: ; preds = %if.then92.i.i.i + %this.val.i66.i.i = load ptr, ptr %587, align 8 + %959 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %960 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %call101.i.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i66.i.i, ptr noundef nonnull %626, i32 noundef %j.0.lcssa.i.i.i167, ptr noundef %959, i32 noundef %j.2.lcssa.i.i.i178, ptr noundef %960, ptr noundef %898) + to label %invoke.cont100.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont100.i.i.i: ; preds = %if.then96.i.i.i + %tobool.not.i.i67.i.i = icmp eq ptr %call101.i.i.i, null + br i1 %tobool.not.i.i67.i.i, label %if.end.i177.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i: ; preds = %invoke.cont100.i.i.i + %m_ref_count.i.i.i175.i.i.i = getelementptr inbounds %class.ast, ptr %call101.i.i.i, i64 0, i32 2 + %961 = load i32, ptr %m_ref_count.i.i.i175.i.i.i, align 4 + %inc.i.i.i176.i.i.i = add i32 %961, 1 + store i32 %inc.i.i.i176.i.i.i, ptr %m_ref_count.i.i.i175.i.i.i, align 4 + br label %if.end.i177.i.i.i + +if.end.i177.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i, %invoke.cont100.i.i.i + %962 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i68.i.i = icmp eq ptr %962, null + br i1 %tobool.not.i3.i.i68.i.i, label %if.end109.i.i.i, label %if.then.i.i.i.i69.i.i + +if.then.i.i.i.i69.i.i: ; preds = %if.end.i177.i.i.i + %963 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i.i71.i.i = getelementptr inbounds %class.ast, ptr %962, i64 0, i32 2 + %964 = load i32, ptr %m_ref_count.i.i.i.i.i71.i.i, align 4 + %dec.i.i.i.i.i72.i.i = add i32 %964, -1 + store i32 %dec.i.i.i.i.i72.i.i, ptr %m_ref_count.i.i.i.i.i71.i.i, align 4 + %cmp.i.i.i178.i.i.i = icmp eq i32 %dec.i.i.i.i.i72.i.i, 0 + br i1 %cmp.i.i.i178.i.i.i, label %if.then2.i.i.i.i102.i.i, label %if.end109.i.i.i + +if.then2.i.i.i.i102.i.i: ; preds = %if.then.i.i.i.i69.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %963, ptr noundef nonnull %962) + to label %if.end109.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +if.else.i.i.i194: ; preds = %if.then92.i.i.i + %tobool.not.i180.i.i.i = icmp eq ptr %626, null + br i1 %tobool.not.i180.i.i.i, label %if.end.i184.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i: ; preds = %if.else.i.i.i194 + %m_ref_count.i.i.i182.i.i.i = getelementptr inbounds %class.ast, ptr %626, i64 0, i32 2 + %965 = load i32, ptr %m_ref_count.i.i.i182.i.i.i, align 4 + %inc.i.i.i183.i.i.i = add i32 %965, 1 + store i32 %inc.i.i.i183.i.i.i, ptr %m_ref_count.i.i.i182.i.i.i, align 4 + br label %if.end.i184.i.i.i + +if.end.i184.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i, %if.else.i.i.i194 + %966 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i185.i.i.i = icmp eq ptr %966, null + br i1 %tobool.not.i3.i185.i.i.i, label %if.end109.i.i.i, label %if.then.i.i.i186.i.i.i + +if.then.i.i.i186.i.i.i: ; preds = %if.end.i184.i.i.i + %967 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i188.i.i.i195 = getelementptr inbounds %class.ast, ptr %966, i64 0, i32 2 + %968 = load i32, ptr %m_ref_count.i.i.i.i188.i.i.i195, align 4 + %dec.i.i.i.i189.i.i.i = add i32 %968, -1 + store i32 %dec.i.i.i.i189.i.i.i, ptr %m_ref_count.i.i.i.i188.i.i.i195, align 4 + %cmp.i.i.i190.i.i.i = icmp eq i32 %dec.i.i.i.i189.i.i.i, 0 + br i1 %cmp.i.i.i190.i.i.i, label %if.then2.i.i.i191.i.i.i, label %if.end109.i.i.i + +if.then2.i.i.i191.i.i.i: ; preds = %if.then.i.i.i186.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %967, ptr noundef nonnull %966) + to label %if.end109.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +if.end109.i.i.i: ; preds = %if.then2.i.i.i191.i.i.i, %if.then.i.i.i186.i.i.i, %if.end.i184.i.i.i, %if.then2.i.i.i.i102.i.i, %if.then.i.i.i.i69.i.i, %if.end.i177.i.i.i + %storemerge.i.i.i181 = phi ptr [ %call101.i.i.i, %if.then2.i.i.i.i102.i.i ], [ %call101.i.i.i, %if.end.i177.i.i.i ], [ %call101.i.i.i, %if.then.i.i.i.i69.i.i ], [ %626, %if.then2.i.i.i191.i.i.i ], [ %626, %if.end.i184.i.i.i ], [ %626, %if.then.i.i.i186.i.i.i ] + store ptr %storemerge.i.i.i181, ptr %m_r.i64.i.i, align 8 + %969 = load i32, ptr %m_spos.i.i.i136, align 4 + %970 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i196.i.i.i = icmp eq ptr %970, null + br i1 %cmp.i.i.i196.i.i.i, label %invoke.cont112.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i: ; preds = %if.end109.i.i.i + %arrayidx.i.i.i200.i.i.i = getelementptr inbounds i32, ptr %970, i64 -1 + %971 = load i32, ptr %arrayidx.i.i.i200.i.i.i, align 4 + %972 = zext i32 %971 to i64 + %add.ptr.i.i201.i.i.i = getelementptr inbounds ptr, ptr %970, i64 %972 + %cmp3.i.i202.i.i.i = icmp ugt i32 %971, %969 + br i1 %cmp3.i.i202.i.i.i, label %for.body.i.i205.preheader.i.i.i, label %if.then.i.i203.i.i.i + +for.body.i.i205.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + %idx.ext.i198.i.i.i = zext i32 %969 to i64 + %add.ptr.i199.i.i.i = getelementptr inbounds ptr, ptr %970, i64 %idx.ext.i198.i.i.i + br label %for.body.i.i205.i.i.i + +for.body.i.i205.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i, %for.body.i.i205.preheader.i.i.i + %it.04.i.i206.i.i.i = phi ptr [ %incdec.ptr.i.i213.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i ], [ %add.ptr.i199.i.i.i, %for.body.i.i205.preheader.i.i.i ] + %973 = load ptr, ptr %it.04.i.i206.i.i.i, align 8 + %974 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i207.i.i.i = icmp eq ptr %973, null + br i1 %tobool.not.i.i.i.i.i207.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i, label %if.then.i.i.i.i.i208.i.i.i + +if.then.i.i.i.i.i208.i.i.i: ; preds = %for.body.i.i205.i.i.i + %m_ref_count.i.i.i.i.i.i209.i.i.i = getelementptr inbounds %class.ast, ptr %973, i64 0, i32 2 + %975 = load i32, ptr %m_ref_count.i.i.i.i.i.i209.i.i.i, align 4 + %dec.i.i.i.i.i.i210.i.i.i = add i32 %975, -1 + store i32 %dec.i.i.i.i.i.i210.i.i.i, ptr %m_ref_count.i.i.i.i.i.i209.i.i.i, align 4 + %cmp.i.i.i.i.i211.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i210.i.i.i, 0 + br i1 %cmp.i.i.i.i.i211.i.i.i, label %if.then2.i.i.i.i.i218.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i + +if.then2.i.i.i.i.i218.i.i.i: ; preds = %if.then.i.i.i.i.i208.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %974, ptr noundef nonnull %973) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i unwind label %lpad37.loopexit.i.i.i193 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i: ; preds = %if.then2.i.i.i.i.i218.i.i.i, %if.then.i.i.i.i.i208.i.i.i, %for.body.i.i205.i.i.i + %incdec.ptr.i.i213.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i206.i.i.i, i64 1 + %cmp.i.i214.i.i.i = icmp ult ptr %incdec.ptr.i.i213.i.i.i, %add.ptr.i.i201.i.i.i + br i1 %cmp.i.i214.i.i.i, label %for.body.i.i205.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i, !llvm.loop !17 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i + %.pre.i216.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i217.i.i.i = icmp eq ptr %.pre.i216.i.i.i, null + br i1 %tobool.not.i.i217.i.i.i, label %invoke.cont112thread-pre-split.i.i.i, label %if.then.i.i203.i.i.i + +if.then.i.i203.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + %976 = phi ptr [ %.pre.i216.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i ], [ %970, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i ] + %arrayidx.i.i204.i.i.i = getelementptr inbounds i32, ptr %976, i64 -1 + store i32 %969, ptr %arrayidx.i.i204.i.i.i, align 4 + br label %invoke.cont112thread-pre-split.i.i.i + +invoke.cont112thread-pre-split.i.i.i: ; preds = %if.then.i.i203.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i + %.pr345.i.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont112.i.i.i + +invoke.cont112.i.i.i: ; preds = %invoke.cont112thread-pre-split.i.i.i, %if.end109.i.i.i + %977 = phi ptr [ %.pr345.i.i.i, %invoke.cont112thread-pre-split.i.i.i ], [ %storemerge.i.i.i181, %if.end109.i.i.i ] + %tobool.not.i.i.i.i.i73.i.i = icmp eq ptr %977, null + br i1 %tobool.not.i.i.i.i.i73.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i, label %if.then.i.i.i.i222.i.i.i + +if.then.i.i.i.i222.i.i.i: ; preds = %invoke.cont112.i.i.i + %m_ref_count.i.i.i.i.i.i74.i.i = getelementptr inbounds %class.ast, ptr %977, i64 0, i32 2 + %978 = load i32, ptr %m_ref_count.i.i.i.i.i.i74.i.i, align 4 + %inc.i.i.i.i.i.i75.i.i = add i32 %978, 1 + store i32 %inc.i.i.i.i.i.i75.i.i, ptr %m_ref_count.i.i.i.i.i.i74.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i: ; preds = %if.then.i.i.i.i222.i.i.i, %invoke.cont112.i.i.i + %979 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i224.i.i.i = icmp eq ptr %979, null + br i1 %cmp.i.i224.i.i.i, label %if.then.i.i228.i.i.i, label %lor.lhs.false.i.i.i77.i.i + +lor.lhs.false.i.i.i77.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + %arrayidx.i.i225.i.i.i = getelementptr inbounds i32, ptr %979, i64 -1 + %980 = load i32, ptr %arrayidx.i.i225.i.i.i, align 4 + %arrayidx4.i.i.i78.i.i = getelementptr inbounds i32, ptr %979, i64 -2 + %981 = load i32, ptr %arrayidx4.i.i.i78.i.i, align 4 + %cmp5.i.i.i79.i.i = icmp eq i32 %980, %981 + br i1 %cmp5.i.i.i79.i.i, label %if.then.i.i228.i.i.i, label %invoke.cont116.i.i.i + +if.then.i.i228.i.i.i: ; preds = %lor.lhs.false.i.i.i77.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc229.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +.noexc229.i.i.i: ; preds = %if.then.i.i228.i.i.i + %.pre.i.i.i98.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i99.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i98.i.i, i64 -1 + %.pre1.i.i.i100.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i99.i.i, align 4 + br label %invoke.cont116.i.i.i + +invoke.cont116.i.i.i: ; preds = %.noexc229.i.i.i, %lor.lhs.false.i.i.i77.i.i + %982 = phi i32 [ %.pre1.i.i.i100.i.i, %.noexc229.i.i.i ], [ %980, %lor.lhs.false.i.i.i77.i.i ] + %983 = phi ptr [ %.pre.i.i.i98.i.i, %.noexc229.i.i.i ], [ %979, %lor.lhs.false.i.i.i77.i.i ] + %idx.ext.i.i226.i.i.i = zext i32 %982 to i64 + %add.ptr.i.i227.i.i.i = getelementptr inbounds ptr, ptr %983, i64 %idx.ext.i.i226.i.i.i + store ptr %977, ptr %add.ptr.i.i227.i.i.i, align 8 + %984 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i80.i.i = getelementptr inbounds i32, ptr %984, i64 -1 + %985 = load i32, ptr %arrayidx10.i.i.i80.i.i, align 4 + %inc.i.i.i81.i.i = add i32 %985, 1 + store i32 %inc.i.i.i81.i.i, ptr %arrayidx10.i.i.i80.i.i, align 4 + %986 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i230.i.i.i = icmp eq ptr %986, null + br i1 %cmp.i230.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i, label %if.then.i236.i.i.i + +if.then.i236.i.i.i: ; preds = %invoke.cont116.i.i.i + %arrayidx.i232.i.i.i = getelementptr inbounds i32, ptr %986, i64 -1 + %987 = load i32, ptr %arrayidx.i232.i.i.i, align 4 + %sub.i.i.i182 = sub i32 %987, %868 + store i32 %sub.i.i.i182, ptr %arrayidx.i232.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i: ; preds = %if.then.i236.i.i.i, %invoke.cont116.i.i.i + %988 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i239.i.i.i = icmp eq ptr %988, null + br i1 %cmp.i239.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i, label %if.then.i244.i.i.i + +if.then.i244.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + %arrayidx.i241.i.i.i = getelementptr inbounds i32, ptr %988, i64 -1 + %989 = load i32, ptr %arrayidx.i241.i.i.i, align 4 + %sub124.i.i.i = sub i32 %989, %868 + store i32 %sub124.i.i.i, ptr %arrayidx.i241.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i: ; preds = %if.then.i244.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + to label %invoke.cont125.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont125.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i + %990 = load ptr, ptr %m_r.i64.i.i, align 8 + %bf.load132.i.i.i = load i32, ptr %628, align 8 + %bf.clear133.i.i.i = and i32 %bf.load132.i.i.i, 1 + %tobool134.not.i.i.i = icmp eq i32 %bf.clear133.i.i.i, 0 + br i1 %tobool134.not.i.i.i, label %invoke.cont135.i.i.i, label %if.then.i248.i.i.i + +if.then.i248.i.i.i: ; preds = %invoke.cont125.i.i.i + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %626, i32 noundef 0, ptr noundef %990) + to label %invoke.cont135thread-pre-split.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont135thread-pre-split.i.i.i: ; preds = %if.then.i248.i.i.i + %.pr.i.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont135.i.i.i + +invoke.cont135.i.i.i: ; preds = %invoke.cont135thread-pre-split.i.i.i, %invoke.cont125.i.i.i + %991 = phi ptr [ %.pr.i.i.i, %invoke.cont135thread-pre-split.i.i.i ], [ %990, %invoke.cont125.i.i.i ] + %tobool.not.i3.i251.i.i.i = icmp eq ptr %991, null + br i1 %tobool.not.i3.i251.i.i.i, label %invoke.cont137.i.i.i, label %if.then.i.i.i252.i.i.i + +if.then.i.i.i252.i.i.i: ; preds = %invoke.cont135.i.i.i + %992 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i254.i.i.i = getelementptr inbounds %class.ast, ptr %991, i64 0, i32 2 + %993 = load i32, ptr %m_ref_count.i.i.i.i254.i.i.i, align 4 + %dec.i.i.i.i255.i.i.i = add i32 %993, -1 + store i32 %dec.i.i.i.i255.i.i.i, ptr %m_ref_count.i.i.i.i254.i.i.i, align 4 + %cmp.i.i.i256.i.i.i = icmp eq i32 %dec.i.i.i.i255.i.i.i, 0 + br i1 %cmp.i.i.i256.i.i.i, label %if.then2.i.i.i257.i.i.i, label %invoke.cont137.i.i.i + +if.then2.i.i.i257.i.i.i: ; preds = %if.then.i.i.i252.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %992, ptr noundef nonnull %991) + to label %invoke.cont137.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont137.i.i.i: ; preds = %if.then2.i.i.i257.i.i.i, %if.then.i.i.i252.i.i.i, %invoke.cont135.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + %994 = load ptr, ptr %m_pr.i.i.i, align 8 + %tobool.not.i3.i261.i.i.i = icmp eq ptr %994, null + br i1 %tobool.not.i3.i261.i.i.i, label %invoke.cont140.i.i.i, label %if.then.i.i.i262.i.i.i + +if.then.i.i.i262.i.i.i: ; preds = %invoke.cont137.i.i.i + %995 = load ptr, ptr %m_manager.i.i263.i.i.i, align 8 + %m_ref_count.i.i.i.i264.i.i.i = getelementptr inbounds %class.ast, ptr %994, i64 0, i32 2 + %996 = load i32, ptr %m_ref_count.i.i.i.i264.i.i.i, align 4 + %dec.i.i.i.i265.i.i.i = add i32 %996, -1 + store i32 %dec.i.i.i.i265.i.i.i, ptr %m_ref_count.i.i.i.i264.i.i.i, align 4 + %cmp.i.i.i266.i.i.i = icmp eq i32 %dec.i.i.i.i265.i.i.i, 0 + br i1 %cmp.i.i.i266.i.i.i, label %if.then2.i.i.i267.i.i.i, label %invoke.cont140.i.i.i + +if.then2.i.i.i267.i.i.i: ; preds = %if.then.i.i.i262.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %995, ptr noundef nonnull %994) + to label %invoke.cont140.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont140.i.i.i: ; preds = %if.then2.i.i.i267.i.i.i, %if.then.i.i.i262.i.i.i, %invoke.cont137.i.i.i + store ptr null, ptr %m_pr.i.i.i, align 8 + %997 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i269.i.i.i = getelementptr inbounds i32, ptr %997, i64 -1 + %998 = load i32, ptr %arrayidx.i269.i.i.i, align 4 + %dec.i.i.i.i183 = add i32 %998, -1 + store i32 %dec.i.i.i.i183, ptr %arrayidx.i269.i.i.i, align 4 + %999 = load ptr, ptr %m_r.i64.i.i, align 8 + %this.val47.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i.i184 = icmp eq ptr %999, %626 + %cmp.i.i.i270.i.i.i = icmp eq ptr %this.val47.i.i.i, null + %or.cond.i.i84.i.i = select i1 %cmp.not.i.i.i.i184, i1 true, i1 %cmp.i.i.i270.i.i.i + br i1 %or.cond.i.i84.i.i, label %invoke.cont146.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i: ; preds = %invoke.cont140.i.i.i + %arrayidx.i.i.i271.i.i.i = getelementptr inbounds i32, ptr %this.val47.i.i.i, i64 -1 + %1000 = load i32, ptr %arrayidx.i.i.i271.i.i.i, align 4 + %cmp3.i.i.i.i86.i.i = icmp eq i32 %1000, 0 + br i1 %cmp3.i.i.i.i86.i.i, label %invoke.cont146.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i + %1001 = add i32 %1000, -1 + %1002 = zext i32 %1001 to i64 + %m_new_child.i.i.i88.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val47.i.i.i, i64 %1002, i32 1 + %bf.load.i.i.i89.i.i = load i32, ptr %m_new_child.i.i.i88.i.i, align 8 + %bf.set.i.i.i90.i.i = or i32 %bf.load.i.i.i89.i.i, 2 + store i32 %bf.set.i.i.i90.i.i, ptr %m_new_child.i.i.i88.i.i, align 8 + br label %invoke.cont146.i.i.i + +invoke.cont146.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i, %invoke.cont140.i.i.i + %1003 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i274.i.i.i = icmp eq ptr %1003, null + br i1 %cmp.i.i.i274.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i191, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i185 + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i185: ; preds = %invoke.cont146.i.i.i + %arrayidx.i.i.i275.i.i.i = getelementptr inbounds i32, ptr %1003, i64 -1 + %1004 = load i32, ptr %arrayidx.i.i.i275.i.i.i, align 4 + %1005 = zext i32 %1004 to i64 + %add.ptr.i.i276.i.i.i = getelementptr inbounds ptr, ptr %1003, i64 %1005 + %cmp3.i.not.i.i.i.i.i186 = icmp eq i32 %1004, 0 + br i1 %cmp3.i.not.i.i.i.i.i186, label %if.then.i.i.i.i.i282.i.i.i, label %for.body.i.i.i.i91.i.i + +for.body.i.i.i.i91.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i185, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + %it.04.i.i.i.i92.i.i = phi ptr [ %incdec.ptr.i.i.i.i96.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i ], [ %1003, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i185 ] + %1006 = load ptr, ptr %it.04.i.i.i.i92.i.i, align 8 + %1007 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %tobool.not.i.i.i.i.i.i277.i.i.i = icmp eq ptr %1006, null + br i1 %tobool.not.i.i.i.i.i.i277.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i, label %if.then.i.i.i.i.i.i278.i.i.i + +if.then.i.i.i.i.i.i278.i.i.i: ; preds = %for.body.i.i.i.i91.i.i + %m_ref_count.i.i.i.i.i.i.i279.i.i.i = getelementptr inbounds %class.ast, ptr %1006, i64 0, i32 2 + %1008 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i279.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i93.i.i = add i32 %1008, -1 + store i32 %dec.i.i.i.i.i.i.i.i93.i.i, ptr %m_ref_count.i.i.i.i.i.i.i279.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i94.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i93.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i94.i.i, label %if.then2.i.i.i.i.i.i.i97.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + +if.then2.i.i.i.i.i.i.i97.i.i: ; preds = %if.then.i.i.i.i.i.i278.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1007, ptr noundef nonnull %1006) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i unwind label %terminate.lpad.i.i.i.i.i192 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i: ; preds = %if.then2.i.i.i.i.i.i.i97.i.i, %if.then.i.i.i.i.i.i278.i.i.i, %for.body.i.i.i.i91.i.i + %incdec.ptr.i.i.i.i96.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i92.i.i, i64 1 + %cmp.i1.i.i.i.i.i187 = icmp ult ptr %incdec.ptr.i.i.i.i96.i.i, %add.ptr.i.i276.i.i.i + br i1 %cmp.i1.i.i.i.i.i187, label %for.body.i.i.i.i91.i.i, label %invoke.cont8.i.i.i.i.i188, !llvm.loop !17 + +invoke.cont8.i.i.i.i.i188: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + %.pre.i.i280.i.i.i = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %tobool.not.i.i.i.i.i281.i.i.i = icmp eq ptr %.pre.i.i280.i.i.i, null + br i1 %tobool.not.i.i.i.i.i281.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i191, label %if.then.i.i.i.i.i282.i.i.i + +if.then.i.i.i.i.i282.i.i.i: ; preds = %invoke.cont8.i.i.i.i.i188, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i185 + %1009 = phi ptr [ %.pre.i.i280.i.i.i, %invoke.cont8.i.i.i.i.i188 ], [ %1003, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i185 ] + %add.ptr.i.i.i.i.i.i.i.i.i189 = getelementptr inbounds i32, ptr %1009, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i.i.i.i189) + to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i191 unwind label %terminate.lpad.i.i.i.i.i.i.i190 + +terminate.lpad.i.i.i.i.i.i.i190: ; preds = %if.then.i.i.i.i.i282.i.i.i + %1010 = landingpad { ptr, i32 } catch ptr null - %1004 = extractvalue { ptr, i32 } %1003, 0 - call void @__clang_call_terminate(ptr %1004) #19 + %1011 = extractvalue { ptr, i32 } %1010, 0 + call void @__clang_call_terminate(ptr %1011) #19 unreachable -_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1753: ; preds = %invoke.cont146.i.i, %invoke.cont8.i.i1745, %if.then.i.i.i.i.i1748 - %1005 = load ptr, ptr %m_nodes.i.i2021, align 8 - %cmp.i.i.i1705 = icmp eq ptr %1005, null - br i1 %cmp.i.i.i1705, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1706 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1706: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1753 - %arrayidx.i.i.i1707 = getelementptr inbounds i32, ptr %1005, i64 -1 - %1006 = load i32, ptr %arrayidx.i.i.i1707, align 4 - %1007 = zext i32 %1006 to i64 - %add.ptr.i.i1708 = getelementptr inbounds ptr, ptr %1005, i64 %1007 - %cmp3.i.not.i.i1709 = icmp eq i32 %1006, 0 - br i1 %cmp3.i.not.i.i1709, label %if.then.i.i.i.i.i1723, label %for.body.i.i.i1710 - -for.body.i.i.i1710: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1706, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1717 - %it.04.i.i.i1711 = phi ptr [ %incdec.ptr.i.i.i1718, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1717 ], [ %1005, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1706 ] - %1008 = load ptr, ptr %it.04.i.i.i1711, align 8 - %1009 = load ptr, ptr %new_pats.i.i194, align 8 - %tobool.not.i.i.i.i.i.i1712 = icmp eq ptr %1008, null - br i1 %tobool.not.i.i.i.i.i.i1712, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1717, label %if.then.i.i.i.i.i.i1713 - -if.then.i.i.i.i.i.i1713: ; preds = %for.body.i.i.i1710 - %m_ref_count.i.i.i.i.i.i.i1714 = getelementptr inbounds %class.ast, ptr %1008, i64 0, i32 2 - %1010 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i1714, align 4 - %dec.i.i.i.i.i.i.i1715 = add i32 %1010, -1 - store i32 %dec.i.i.i.i.i.i.i1715, ptr %m_ref_count.i.i.i.i.i.i.i1714, align 4 - %cmp.i.i.i.i.i.i1716 = icmp eq i32 %dec.i.i.i.i.i.i.i1715, 0 - br i1 %cmp.i.i.i.i.i.i1716, label %if.then2.i.i.i.i.i.i1726, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1717 - -if.then2.i.i.i.i.i.i1726: ; preds = %if.then.i.i.i.i.i.i1713 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1009, ptr noundef nonnull %1008) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1717 unwind label %terminate.lpad.i.i1727 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1717: ; preds = %if.then2.i.i.i.i.i.i1726, %if.then.i.i.i.i.i.i1713, %for.body.i.i.i1710 - %incdec.ptr.i.i.i1718 = getelementptr inbounds ptr, ptr %it.04.i.i.i1711, i64 1 - %cmp.i1.i.i1719 = icmp ult ptr %incdec.ptr.i.i.i1718, %add.ptr.i.i1708 - br i1 %cmp.i1.i.i1719, label %for.body.i.i.i1710, label %invoke.cont8.i.i1720, !llvm.loop !17 - -invoke.cont8.i.i1720: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1717 - %.pre.i.i1721 = load ptr, ptr %m_nodes.i.i2021, align 8 - %tobool.not.i.i.i.i.i1722 = icmp eq ptr %.pre.i.i1721, null - br i1 %tobool.not.i.i.i.i.i1722, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i.i.i1723 - -if.then.i.i.i.i.i1723: ; preds = %invoke.cont8.i.i1720, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1706 - %1011 = phi ptr [ %.pre.i.i1721, %invoke.cont8.i.i1720 ], [ %1005, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1706 ] - %add.ptr.i.i.i.i.i.i1724 = getelementptr inbounds i32, ptr %1011, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i1724) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i.i.i.i1725 - -terminate.lpad.i.i.i.i1725: ; preds = %if.then.i.i.i.i.i1723 +terminate.lpad.i.i.i.i.i192: ; preds = %if.then2.i.i.i.i.i.i.i97.i.i %1012 = landingpad { ptr, i32 } catch ptr null %1013 = extractvalue { ptr, i32 } %1012, 0 call void @__clang_call_terminate(ptr %1013) #19 unreachable -terminate.lpad.i.i1727: ; preds = %if.then2.i.i.i.i.i.i1726 - %1014 = landingpad { ptr, i32 } +_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i191: ; preds = %if.then.i.i.i.i.i282.i.i.i, %invoke.cont8.i.i.i.i.i188, %invoke.cont146.i.i.i + %1014 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i284.i.i.i = icmp eq ptr %1014, null + br i1 %cmp.i.i.i284.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i191 + %arrayidx.i.i.i286.i.i.i = getelementptr inbounds i32, ptr %1014, i64 -1 + %1015 = load i32, ptr %arrayidx.i.i.i286.i.i.i, align 4 + %1016 = zext i32 %1015 to i64 + %add.ptr.i.i287.i.i.i = getelementptr inbounds ptr, ptr %1014, i64 %1016 + %cmp3.i.not.i.i288.i.i.i = icmp eq i32 %1015, 0 + br i1 %cmp3.i.not.i.i288.i.i.i, label %if.then.i.i.i.i.i302.i.i.i, label %for.body.i.i.i289.i.i.i + +for.body.i.i.i289.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + %it.04.i.i.i290.i.i.i = phi ptr [ %incdec.ptr.i.i.i297.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i ], [ %1014, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i ] + %1017 = load ptr, ptr %it.04.i.i.i290.i.i.i, align 8 + %1018 = load ptr, ptr %new_pats.i.i.i42, align 8 + %tobool.not.i.i.i.i.i.i291.i.i.i = icmp eq ptr %1017, null + br i1 %tobool.not.i.i.i.i.i.i291.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i, label %if.then.i.i.i.i.i.i292.i.i.i + +if.then.i.i.i.i.i.i292.i.i.i: ; preds = %for.body.i.i.i289.i.i.i + %m_ref_count.i.i.i.i.i.i.i293.i.i.i = getelementptr inbounds %class.ast, ptr %1017, i64 0, i32 2 + %1019 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i293.i.i.i, align 4 + %dec.i.i.i.i.i.i.i294.i.i.i = add i32 %1019, -1 + store i32 %dec.i.i.i.i.i.i.i294.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i293.i.i.i, align 4 + %cmp.i.i.i.i.i.i295.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i294.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i295.i.i.i, label %if.then2.i.i.i.i.i.i305.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + +if.then2.i.i.i.i.i.i305.i.i.i: ; preds = %if.then.i.i.i.i.i.i292.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1018, ptr noundef nonnull %1017) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i unwind label %terminate.lpad.i.i306.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i: ; preds = %if.then2.i.i.i.i.i.i305.i.i.i, %if.then.i.i.i.i.i.i292.i.i.i, %for.body.i.i.i289.i.i.i + %incdec.ptr.i.i.i297.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i290.i.i.i, i64 1 + %cmp.i1.i.i298.i.i.i = icmp ult ptr %incdec.ptr.i.i.i297.i.i.i, %add.ptr.i.i287.i.i.i + br i1 %cmp.i1.i.i298.i.i.i, label %for.body.i.i.i289.i.i.i, label %invoke.cont8.i.i299.i.i.i, !llvm.loop !17 + +invoke.cont8.i.i299.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + %.pre.i.i300.i.i.i = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %tobool.not.i.i.i.i.i301.i.i.i = icmp eq ptr %.pre.i.i300.i.i.i, null + br i1 %tobool.not.i.i.i.i.i301.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i.i.i302.i.i.i + +if.then.i.i.i.i.i302.i.i.i: ; preds = %invoke.cont8.i.i299.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i + %1020 = phi ptr [ %.pre.i.i300.i.i.i, %invoke.cont8.i.i299.i.i.i ], [ %1014, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i ] + %add.ptr.i.i.i.i.i.i303.i.i.i = getelementptr inbounds i32, ptr %1020, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i303.i.i.i) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i304.i.i.i + +terminate.lpad.i.i.i.i304.i.i.i: ; preds = %if.then.i.i.i.i.i302.i.i.i + %1021 = landingpad { ptr, i32 } + catch ptr null + %1022 = extractvalue { ptr, i32 } %1021, 0 + call void @__clang_call_terminate(ptr %1022) #19 + unreachable + +terminate.lpad.i.i306.i.i.i: ; preds = %if.then2.i.i.i.i.i.i305.i.i.i + %1023 = landingpad { ptr, i32 } catch ptr null - %1015 = extractvalue { ptr, i32 } %1014, 0 - call void @__clang_call_terminate(ptr %1015) #19 + %1024 = extractvalue { ptr, i32 } %1023, 0 + call void @__clang_call_terminate(ptr %1024) #19 unreachable -ehcleanup.i.i259: ; preds = %lpad.i2009, %lpad37.i.i262 - %.pn.i45.i = phi { ptr, i32 } [ %lpad.phi2833, %lpad37.i.i262 ], [ %918, %lpad.i2009 ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i194) #18 +ehcleanup.i.i.i161: ; preds = %lpad37.i.i.i, %lpad.i105.i.body.i.i + %.pn.i59.i.i = phi { ptr, i32 } [ %lpad.phi.i58.i.i, %lpad37.i.i.i ], [ %eh.lpad-body.i.i214, %lpad.i105.i.body.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i42) #18 br label %common.resume -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i: ; preds = %_ZNK10quantifier9get_childEj.exit2088, %if.then.i.i.i.i.i1723, %invoke.cont8.i.i1720, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1753 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i194) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i195) - br label %while.cond.i204.backedgethread-pre-split - -sw.bb33.i: ; preds = %if.end28.i - %1016 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i71.i = getelementptr inbounds i32, ptr %1016, i64 -1 - %1017 = load i32, ptr %arrayidx.i71.i, align 4 - %dec.i72.i = add i32 %1017, -1 - store i32 %dec.i72.i, ptr %arrayidx.i71.i, align 4 - call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %625) - br label %while.cond.i204.backedgethread-pre-split - -sw.default.i407: ; preds = %if.end28.i +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i236, %if.then.i.i.i.i.i302.i.i.i, %invoke.cont8.i.i299.i.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i191 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i.i42) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i.i43) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.bb33.i.i: ; preds = %if.end28.i.i + %1025 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i144.i.i = getelementptr inbounds i32, ptr %1025, i64 -1 + %1026 = load i32, ptr %arrayidx.i144.i.i, align 4 + %dec.i145.i.i = add i32 %1026, -1 + store i32 %dec.i145.i.i, ptr %arrayidx.i144.i.i, align 4 + call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %626) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.default.i.i360: ; preds = %if.end28.i.i call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 793, ptr noundef nonnull @.str.5) call void @exit(i32 noundef 114) #19 unreachable -while.end.i449: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210, %while.cond.i204.backedge, %if.else.i58 - %m_result_stack.i73.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i74.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1018 = load ptr, ptr %m_nodes.i74.i, align 8 - %cmp.i.i.i75.i = icmp eq ptr %1018, null - br i1 %cmp.i.i.i75.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i451, label %if.end.i.i.i.i450 - -if.end.i.i.i.i450: ; preds = %while.end.i449 - %arrayidx.i.i.i76.i = getelementptr inbounds i32, ptr %1018, i64 -1 - %1019 = load i32, ptr %arrayidx.i.i.i76.i, align 4 - %1020 = add i32 %1019, -1 - %1021 = zext i32 %1020 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i451 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i451: ; preds = %if.end.i.i.i.i450, %while.end.i449 - %retval.0.i.i.i.i452 = phi i64 [ %1021, %if.end.i.i.i.i450 ], [ 4294967295, %while.end.i449 ] - %arrayidx.i1.i.i.i453 = getelementptr inbounds ptr, ptr %1018, i64 %retval.0.i.i.i.i452 - %1022 = load ptr, ptr %arrayidx.i1.i.i.i453, align 8 - %tobool.not.i77.i = icmp eq ptr %1022, null - br i1 %tobool.not.i77.i, label %if.end.i78.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i454 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i454: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i451 - %m_ref_count.i.i.i.i455 = getelementptr inbounds %class.ast, ptr %1022, i64 0, i32 2 - %1023 = load i32, ptr %m_ref_count.i.i.i.i455, align 4 - %inc.i.i.i.i456 = add i32 %1023, 1 - store i32 %inc.i.i.i.i456, ptr %m_ref_count.i.i.i.i455, align 4 - br label %if.end.i78.i - -if.end.i78.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i454, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i451 - %1024 = load ptr, ptr %result, align 8 - %tobool.not.i3.i.i457 = icmp eq ptr %1024, null - br i1 %tobool.not.i3.i.i457, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i462, label %if.then.i.i.i.i458 - -if.then.i.i.i.i458: ; preds = %if.end.i78.i - %m_manager.i.i.i459 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %1025 = load ptr, ptr %m_manager.i.i.i459, align 8 - %m_ref_count.i.i.i.i.i460 = getelementptr inbounds %class.ast, ptr %1024, i64 0, i32 2 - %1026 = load i32, ptr %m_ref_count.i.i.i.i.i460, align 4 - %dec.i.i.i.i.i461 = add i32 %1026, -1 - store i32 %dec.i.i.i.i.i461, ptr %m_ref_count.i.i.i.i.i460, align 4 - %cmp.i.i.i79.i = icmp eq i32 %dec.i.i.i.i.i461, 0 - br i1 %cmp.i.i.i79.i, label %if.then2.i.i.i.i472, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i462 - -if.then2.i.i.i.i472: ; preds = %if.then.i.i.i.i458 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1025, ptr noundef nonnull %1024) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i462 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i462: ; preds = %if.then2.i.i.i.i472, %if.then.i.i.i.i458, %if.end.i78.i - store ptr %1022, ptr %result, align 8 - %1027 = load ptr, ptr %m_nodes.i74.i, align 8 - %cmp.i.i.i82.i = icmp eq ptr %1027, null - br i1 %cmp.i.i.i82.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i469, label %if.end.i.i.i83.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i469: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i462 - %.pre.i.i470 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i471 = add i32 %.pre.i.i470, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i463 - -if.end.i.i.i83.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i462 - %arrayidx.i.i.i84.i = getelementptr inbounds i32, ptr %1027, i64 -1 - %1028 = load i32, ptr %arrayidx.i.i.i84.i, align 4 +while.end.i.i115: ; preds = %while.cond.backedge.i.i113, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87, %if.else.i77 + %m_result_stack.i146.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i147.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1027 = load ptr, ptr %m_nodes.i147.i.i, align 8 + %cmp.i.i.i148.i.i = icmp eq ptr %1027, null + br i1 %cmp.i.i.i148.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116, label %if.end.i.i.i149.i.i + +if.end.i.i.i149.i.i: ; preds = %while.end.i.i115 + %arrayidx.i.i.i150.i.i = getelementptr inbounds i32, ptr %1027, i64 -1 + %1028 = load i32, ptr %arrayidx.i.i.i150.i.i, align 4 %1029 = add i32 %1028, -1 %1030 = zext i32 %1029 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i463 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i463: ; preds = %if.end.i.i.i83.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i469 - %dec.i.pre-phi.i.i464 = phi i32 [ %.pre1.i.i471, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i469 ], [ %1029, %if.end.i.i.i83.i ] - %retval.0.i.i.i85.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i469 ], [ %1030, %if.end.i.i.i83.i ] - %arrayidx.i1.i.i86.i = getelementptr inbounds ptr, ptr %1027, i64 %retval.0.i.i.i85.i - %1031 = load ptr, ptr %arrayidx.i1.i.i86.i, align 8 - %arrayidx.i.i87.i = getelementptr inbounds i32, ptr %1027, i64 -1 - store i32 %dec.i.pre-phi.i.i464, ptr %arrayidx.i.i87.i, align 4 - %1032 = load ptr, ptr %m_result_stack.i73.i, align 8 - %tobool.not.i.i.i.i88.i = icmp eq ptr %1031, null - br i1 %tobool.not.i.i.i.i88.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit, label %if.then.i.i.i.i89.i - -if.then.i.i.i.i89.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i463 - %m_ref_count.i.i.i.i.i90.i = getelementptr inbounds %class.ast, ptr %1031, i64 0, i32 2 - %1033 = load i32, ptr %m_ref_count.i.i.i.i.i90.i, align 4 - %dec.i.i.i.i.i.i465 = add i32 %1033, -1 - store i32 %dec.i.i.i.i.i.i465, ptr %m_ref_count.i.i.i.i.i90.i, align 4 - %cmp.i.i.i.i.i466 = icmp eq i32 %dec.i.i.i.i.i.i465, 0 - br i1 %cmp.i.i.i.i.i466, label %if.then2.i.i.i.i.i468, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -if.then2.i.i.i.i.i468: ; preds = %if.then.i.i.i.i89.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1032, ptr noundef nonnull %1031) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -unreachable.i234: ; preds = %invoke.cont11.i231 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116: ; preds = %if.end.i.i.i149.i.i, %while.end.i.i115 + %retval.0.i.i.i151.i.i = phi i64 [ %1030, %if.end.i.i.i149.i.i ], [ 4294967295, %while.end.i.i115 ] + %arrayidx.i1.i.i.i.i117 = getelementptr inbounds ptr, ptr %1027, i64 %retval.0.i.i.i151.i.i + %1031 = load ptr, ptr %arrayidx.i1.i.i.i.i117, align 8 + %tobool.not.i152.i.i = icmp eq ptr %1031, null + br i1 %tobool.not.i152.i.i, label %if.end.i154.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + %m_ref_count.i.i.i.i44.i = getelementptr inbounds %class.ast, ptr %1031, i64 0, i32 2 + %1032 = load i32, ptr %m_ref_count.i.i.i.i44.i, align 4 + %inc.i.i.i153.i.i = add i32 %1032, 1 + store i32 %inc.i.i.i153.i.i, ptr %m_ref_count.i.i.i.i44.i, align 4 + br label %if.end.i154.i.i + +if.end.i154.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + %1033 = load ptr, ptr %result, align 8 + %tobool.not.i3.i.i.i119 = icmp eq ptr %1033, null + br i1 %tobool.not.i3.i.i.i119, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120, label %if.then.i.i.i155.i.i + +if.then.i.i.i155.i.i: ; preds = %if.end.i154.i.i + %m_manager.i.i156.i.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %1034 = load ptr, ptr %m_manager.i.i156.i.i, align 8 + %m_ref_count.i.i.i.i157.i.i = getelementptr inbounds %class.ast, ptr %1033, i64 0, i32 2 + %1035 = load i32, ptr %m_ref_count.i.i.i.i157.i.i, align 4 + %dec.i.i.i.i158.i.i = add i32 %1035, -1 + store i32 %dec.i.i.i.i158.i.i, ptr %m_ref_count.i.i.i.i157.i.i, align 4 + %cmp.i.i.i159.i.i = icmp eq i32 %dec.i.i.i.i158.i.i, 0 + br i1 %cmp.i.i.i159.i.i, label %if.then2.i.i.i160.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + +if.then2.i.i.i160.i.i: ; preds = %if.then.i.i.i155.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1034, ptr noundef nonnull %1033) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120: ; preds = %if.then2.i.i.i160.i.i, %if.then.i.i.i155.i.i, %if.end.i154.i.i + store ptr %1031, ptr %result, align 8 + %1036 = load ptr, ptr %m_nodes.i147.i.i, align 8 + %cmp.i.i.i163.i.i = icmp eq ptr %1036, null + br i1 %cmp.i.i.i163.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123, label %if.end.i.i.i164.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + %.pre.i175.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i124 = add i32 %.pre.i175.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + +if.end.i.i.i164.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + %arrayidx.i.i.i165.i.i = getelementptr inbounds i32, ptr %1036, i64 -1 + %1037 = load i32, ptr %arrayidx.i.i.i165.i.i, align 4 + %1038 = add i32 %1037, -1 + %1039 = zext i32 %1038 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121: ; preds = %if.end.i.i.i164.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 + %dec.i.pre-phi.i.i.i122 = phi i32 [ %.pre1.i.i.i124, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 ], [ %1038, %if.end.i.i.i164.i.i ] + %retval.0.i.i.i166.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 ], [ %1039, %if.end.i.i.i164.i.i ] + %arrayidx.i1.i.i167.i.i = getelementptr inbounds ptr, ptr %1036, i64 %retval.0.i.i.i166.i.i + %1040 = load ptr, ptr %arrayidx.i1.i.i167.i.i, align 8 + %arrayidx.i.i168.i.i = getelementptr inbounds i32, ptr %1036, i64 -1 + store i32 %dec.i.pre-phi.i.i.i122, ptr %arrayidx.i.i168.i.i, align 4 + %1041 = load ptr, ptr %m_result_stack.i146.i.i, align 8 + %tobool.not.i.i.i.i169.i.i = icmp eq ptr %1040, null + br i1 %tobool.not.i.i.i.i169.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i, label %if.then.i.i.i.i170.i.i + +if.then.i.i.i.i170.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + %m_ref_count.i.i.i.i.i171.i.i = getelementptr inbounds %class.ast, ptr %1040, i64 0, i32 2 + %1042 = load i32, ptr %m_ref_count.i.i.i.i.i171.i.i, align 4 + %dec.i.i.i.i.i172.i.i = add i32 %1042, -1 + store i32 %dec.i.i.i.i.i172.i.i, ptr %m_ref_count.i.i.i.i.i171.i.i, align 4 + %cmp.i.i.i.i173.i.i = icmp eq i32 %dec.i.i.i.i.i172.i.i, 0 + br i1 %cmp.i.i.i.i173.i.i, label %if.then2.i.i.i.i174.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +if.then2.i.i.i.i174.i.i: ; preds = %if.then.i.i.i.i170.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1041, ptr noundef nonnull %1040) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +unreachable.i.i102: ; preds = %invoke.cont11.i.i99 unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i463, %if.then.i.i.i.i89.i, %if.then2.i.i.i.i.i468 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i202) - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i203) +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i: ; preds = %if.then2.i.i.i.i174.i.i, %if.then.i.i.i.i170.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i45) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i.i46) br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -unreachable.i52: ; preds = %invoke.cont10.i +unreachable.i66: ; preds = %invoke.cont10.i unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %if.then2.i.i.i.i487, %if.then.i.i.i.i483, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i477, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit526, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i31) +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i396, %if.then.i.i.i.i.i400, %if.then2.i.i.i.i.i404, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i47) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp8.i) br label %if.end8 @@ -11128,8 +11425,8 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5re br i1 %cmp.i28, label %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread, label %while.body.i.preheader _ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit - %bf.load.i86106 = load i32, ptr %.pre, align 8 - %bf.lshr.i87107 = lshr i32 %bf.load.i86106, 30 + %bf.load.i86107 = load i32, ptr %.pre, align 8 + %bf.lshr.i87108 = lshr i32 %bf.load.i86107, 30 br label %while.end while.body.i.preheader: ; preds = %if.end, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit @@ -11140,7 +11437,7 @@ while.body.i: ; preds = %while.body.i.prehea %c.0.i = phi ptr [ %4, %sw.bb.i ], [ %2, %while.body.i.preheader ] %bf.load.i.i29 = load i32, ptr %c.0.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i29, 30 - switch i32 %bf.lshr.i.i, label %while.body.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %while.body.i.unreachabledefault [ i32 0, label %sw.bb.i i32 1, label %sw.bb3.i i32 2, label %sw.bb5.i @@ -11169,7 +11466,10 @@ sw.bb7.i: ; preds = %while.body.i %10 = load i32, ptr %9, align 4 br label %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit -while.body.unreachabledefault.i: ; preds = %while.body.i +while.body.i.unreachabledefault: ; preds = %while.body.i + unreachable + +default.unreachable103: ; preds = %for.body unreachable _ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit: ; preds = %sw.bb3.i, %sw.bb5.i, %sw.bb7.i @@ -11227,7 +11527,7 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9pu while.end: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit %c.0.lcssa = phi ptr [ %2, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ null, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %20, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] - %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87107, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] + %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87108, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] %cmp8.not = icmp eq i32 %bf.lshr.i.lcssa, 3 br i1 %cmp8.not, label %if.end10, label %if.then9 @@ -11264,7 +11564,7 @@ for.body: ; preds = %for.body.lr.ph, %_Z %31 = load ptr, ptr %30, align 8 %bf.load = load i32, ptr %27, align 8 %bf.lshr = lshr i32 %bf.load, 30 - switch i32 %bf.lshr, label %for.body.unreachabledefault [ + switch i32 %bf.lshr, label %default.unreachable103 [ i32 0, label %sw.bb i32 1, label %sw.bb18 i32 2, label %sw.bb30 @@ -11373,9 +11673,6 @@ sw.bb38: ; preds = %for.body tail call void @exit(i32 noundef 114) #19 unreachable -for.body.unreachabledefault: ; preds = %for.body - unreachable - if.end.i52: ; preds = %sw.bb, %if.end25, %sw.bb30 %vs.1 = phi ptr [ %31, %sw.bb30 ], [ %vs.0, %if.end25 ], [ %31, %sw.bb ] %sz.0 = phi i32 [ %dec34, %sw.bb30 ], [ %inc29, %if.end25 ], [ %29, %sw.bb ] @@ -11706,7 +12003,7 @@ for.body: ; preds = %for.body.preheader, %26 = load ptr, ptr %arrayidx.i18, align 8 %bf.load.i19 = load i32, ptr %26, align 8 %bf.lshr.i20 = lshr i32 %bf.load.i19, 30 - switch i32 %bf.lshr.i20, label %for.body.unreachabledefault [ + switch i32 %bf.lshr.i20, label %default.unreachable [ i32 0, label %sw.bb i32 2, label %sw.bb8 i32 1, label %sw.bb9 @@ -11866,7 +12163,7 @@ sw.bb11: ; preds = %for.body tail call void @exit(i32 noundef 114) #19 unreachable -for.body.unreachabledefault: ; preds = %for.body +default.unreachable: ; preds = %for.body unreachable sw.epilog: ; preds = %if.then2.i.i.i35, %if.then.i.i.i31, %sw.bb8, %_ZN14parray_managerIN11ast_manager17expr_array_configEE10rpush_backERPP4exprRjRKS4_.exit, %_ZN14parray_managerIN11ast_manager17expr_array_configEE4rsetEPP4exprjRKS4_.exit @@ -11894,7 +12191,7 @@ while.body: ; preds = %if.end, %entry %bf.load.i = phi i32 [ %bf.load.i.pre, %entry ], [ %bf.set, %if.end ] %c.addr.0 = phi ptr [ %c, %entry ], [ %next.0, %if.end ] %bf.lshr.i = lshr i32 %bf.load.i, 30 - switch i32 %bf.lshr.i, label %while.body.unreachabledefault [ + switch i32 %bf.lshr.i, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.epilog @@ -11975,7 +12272,7 @@ _ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i: tail call void @_ZN22small_object_allocator10deallocateEmPv(ptr noundef nonnull align 8 dereferenceable(520) %12, i64 noundef %add.i, ptr noundef nonnull %arrayidx.i.i) br label %sw.epilog.thread -while.body.unreachabledefault: ; preds = %while.body +default.unreachable: ; preds = %while.body unreachable sw.epilog.thread: ; preds = %_ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEjPP4expr.exit, %_ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i @@ -12058,93 +12355,92 @@ _ZN7obj_refI4expr11ast_managerE7dec_refEv.exit: ; preds = %if.end, %if.then.i. ; Function Attrs: mustprogress uwtable define internal fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef %max_depth) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { if.end: - %t.i = alloca %class.obj_ref.42, align 8 %cmp = icmp eq i32 %max_depth, 0 br i1 %cmp, label %if.then6, label %if.end11 if.then6: ; preds = %if.end - %tobool.not.i.i.i.i56 = icmp eq ptr %t, null - br i1 %tobool.not.i.i.i.i56, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60, label %if.then.i.i.i.i57 - -if.then.i.i.i.i57: ; preds = %if.then6 - %m_ref_count.i.i.i.i.i58 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %0 = load i32, ptr %m_ref_count.i.i.i.i.i58, align 4 - %inc.i.i.i.i.i59 = add i32 %0, 1 - store i32 %inc.i.i.i.i.i59, ptr %m_ref_count.i.i.i.i.i58, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60: ; preds = %if.then.i.i.i.i57, %if.then6 - %m_nodes.i61 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1 = load ptr, ptr %m_nodes.i61, align 8 - %cmp.i.i62 = icmp eq ptr %1, null - br i1 %cmp.i.i62, label %if.then.i.i71, label %lor.lhs.false.i.i63 - -lor.lhs.false.i.i63: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - %arrayidx.i.i64 = getelementptr inbounds i32, ptr %1, i64 -1 - %2 = load i32, ptr %arrayidx.i.i64, align 4 - %arrayidx4.i.i65 = getelementptr inbounds i32, ptr %1, i64 -2 - %3 = load i32, ptr %arrayidx4.i.i65, align 4 - %cmp5.i.i66 = icmp eq i32 %2, %3 - br i1 %cmp5.i.i66, label %if.then.i.i71, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - -if.then.i.i71: ; preds = %lor.lhs.false.i.i63, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i61) - %.pre.i.i72 = load ptr, ptr %m_nodes.i61, align 8 - %arrayidx8.phi.trans.insert.i.i73 = getelementptr inbounds i32, ptr %.pre.i.i72, i64 -1 - %.pre1.i.i74 = load i32, ptr %arrayidx8.phi.trans.insert.i.i73, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75: ; preds = %lor.lhs.false.i.i63, %if.then.i.i71 - %4 = phi i32 [ %.pre1.i.i74, %if.then.i.i71 ], [ %2, %lor.lhs.false.i.i63 ] - %5 = phi ptr [ %.pre.i.i72, %if.then.i.i71 ], [ %1, %lor.lhs.false.i.i63 ] - %idx.ext.i.i67 = zext i32 %4 to i64 - %add.ptr.i.i68 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i67 - store ptr %t, ptr %add.ptr.i.i68, align 8 - %6 = load ptr, ptr %m_nodes.i61, align 8 - %arrayidx10.i.i69 = getelementptr inbounds i32, ptr %6, i64 -1 - %7 = load i32, ptr %arrayidx10.i.i69, align 4 - %inc.i.i70 = add i32 %7, 1 - store i32 %inc.i.i70, ptr %arrayidx10.i.i69, align 4 - %m_nodes.i78 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %8 = load ptr, ptr %m_nodes.i78, align 8 - %cmp.i.i79 = icmp eq ptr %8, null - br i1 %cmp.i.i79, label %if.then.i.i88, label %lor.lhs.false.i.i80 - -lor.lhs.false.i.i80: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - %arrayidx.i.i81 = getelementptr inbounds i32, ptr %8, i64 -1 - %9 = load i32, ptr %arrayidx.i.i81, align 4 - %arrayidx4.i.i82 = getelementptr inbounds i32, ptr %8, i64 -2 - %10 = load i32, ptr %arrayidx4.i.i82, align 4 - %cmp5.i.i83 = icmp eq i32 %9, %10 - br i1 %cmp5.i.i83, label %if.then.i.i88, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - -if.then.i.i88: ; preds = %lor.lhs.false.i.i80, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i78) - %.pre.i.i89 = load ptr, ptr %m_nodes.i78, align 8 - %arrayidx8.phi.trans.insert.i.i90 = getelementptr inbounds i32, ptr %.pre.i.i89, i64 -1 - %.pre1.i.i91 = load i32, ptr %arrayidx8.phi.trans.insert.i.i90, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92: ; preds = %lor.lhs.false.i.i80, %if.then.i.i88 - %11 = phi i32 [ %.pre1.i.i91, %if.then.i.i88 ], [ %9, %lor.lhs.false.i.i80 ] - %12 = phi ptr [ %.pre.i.i89, %if.then.i.i88 ], [ %8, %lor.lhs.false.i.i80 ] - %idx.ext.i.i84 = zext i32 %11 to i64 - %add.ptr.i.i85 = getelementptr inbounds ptr, ptr %12, i64 %idx.ext.i.i84 - store ptr null, ptr %add.ptr.i.i85, align 8 - %13 = load ptr, ptr %m_nodes.i78, align 8 - %arrayidx10.i.i86 = getelementptr inbounds i32, ptr %13, i64 -1 - %14 = load i32, ptr %arrayidx10.i.i86, align 4 - %inc.i.i87 = add i32 %14, 1 - store i32 %inc.i.i87, ptr %arrayidx10.i.i86, align 4 + %tobool.not.i.i.i.i52 = icmp eq ptr %t, null + br i1 %tobool.not.i.i.i.i52, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56, label %if.then.i.i.i.i53 + +if.then.i.i.i.i53: ; preds = %if.then6 + %m_ref_count.i.i.i.i.i54 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %0 = load i32, ptr %m_ref_count.i.i.i.i.i54, align 4 + %inc.i.i.i.i.i55 = add i32 %0, 1 + store i32 %inc.i.i.i.i.i55, ptr %m_ref_count.i.i.i.i.i54, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56: ; preds = %if.then.i.i.i.i53, %if.then6 + %m_nodes.i57 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1 = load ptr, ptr %m_nodes.i57, align 8 + %cmp.i.i58 = icmp eq ptr %1, null + br i1 %cmp.i.i58, label %if.then.i.i67, label %lor.lhs.false.i.i59 + +lor.lhs.false.i.i59: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + %arrayidx.i.i60 = getelementptr inbounds i32, ptr %1, i64 -1 + %2 = load i32, ptr %arrayidx.i.i60, align 4 + %arrayidx4.i.i61 = getelementptr inbounds i32, ptr %1, i64 -2 + %3 = load i32, ptr %arrayidx4.i.i61, align 4 + %cmp5.i.i62 = icmp eq i32 %2, %3 + br i1 %cmp5.i.i62, label %if.then.i.i67, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + +if.then.i.i67: ; preds = %lor.lhs.false.i.i59, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i57) + %.pre.i.i68 = load ptr, ptr %m_nodes.i57, align 8 + %arrayidx8.phi.trans.insert.i.i69 = getelementptr inbounds i32, ptr %.pre.i.i68, i64 -1 + %.pre1.i.i70 = load i32, ptr %arrayidx8.phi.trans.insert.i.i69, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71: ; preds = %lor.lhs.false.i.i59, %if.then.i.i67 + %4 = phi i32 [ %.pre1.i.i70, %if.then.i.i67 ], [ %2, %lor.lhs.false.i.i59 ] + %5 = phi ptr [ %.pre.i.i68, %if.then.i.i67 ], [ %1, %lor.lhs.false.i.i59 ] + %idx.ext.i.i63 = zext i32 %4 to i64 + %add.ptr.i.i64 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i63 + store ptr %t, ptr %add.ptr.i.i64, align 8 + %6 = load ptr, ptr %m_nodes.i57, align 8 + %arrayidx10.i.i65 = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx10.i.i65, align 4 + %inc.i.i66 = add i32 %7, 1 + store i32 %inc.i.i66, ptr %arrayidx10.i.i65, align 4 + %m_nodes.i74 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %8 = load ptr, ptr %m_nodes.i74, align 8 + %cmp.i.i75 = icmp eq ptr %8, null + br i1 %cmp.i.i75, label %if.then.i.i84, label %lor.lhs.false.i.i76 + +lor.lhs.false.i.i76: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + %arrayidx.i.i77 = getelementptr inbounds i32, ptr %8, i64 -1 + %9 = load i32, ptr %arrayidx.i.i77, align 4 + %arrayidx4.i.i78 = getelementptr inbounds i32, ptr %8, i64 -2 + %10 = load i32, ptr %arrayidx4.i.i78, align 4 + %cmp5.i.i79 = icmp eq i32 %9, %10 + br i1 %cmp5.i.i79, label %if.then.i.i84, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + +if.then.i.i84: ; preds = %lor.lhs.false.i.i76, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i74) + %.pre.i.i85 = load ptr, ptr %m_nodes.i74, align 8 + %arrayidx8.phi.trans.insert.i.i86 = getelementptr inbounds i32, ptr %.pre.i.i85, i64 -1 + %.pre1.i.i87 = load i32, ptr %arrayidx8.phi.trans.insert.i.i86, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88: ; preds = %lor.lhs.false.i.i76, %if.then.i.i84 + %11 = phi i32 [ %.pre1.i.i87, %if.then.i.i84 ], [ %9, %lor.lhs.false.i.i76 ] + %12 = phi ptr [ %.pre.i.i85, %if.then.i.i84 ], [ %8, %lor.lhs.false.i.i76 ] + %idx.ext.i.i80 = zext i32 %11 to i64 + %add.ptr.i.i81 = getelementptr inbounds ptr, ptr %12, i64 %idx.ext.i.i80 + store ptr null, ptr %add.ptr.i.i81, align 8 + %13 = load ptr, ptr %m_nodes.i74, align 8 + %arrayidx10.i.i82 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx10.i.i82, align 4 + %inc.i.i83 = add i32 %14, 1 + store i32 %inc.i.i83, ptr %arrayidx10.i.i82, align 4 br label %return if.end11: ; preds = %if.end %15 = getelementptr inbounds i8, ptr %this, i64 120 - %this.val35 = load ptr, ptr %15, align 8 + %this.val31 = load ptr, ptr %15, align 8 %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 %16 = load i32, ptr %m_ref_count.i.i.i, align 4 %cmp.i9.i = icmp ult i32 %16, 2 - %cmp2.not.i.i = icmp eq ptr %this.val35, %t + %cmp2.not.i.i = icmp eq ptr %this.val31, %t %or.cond.i.i = select i1 %cmp.i9.i, i1 true, i1 %cmp2.not.i.i br i1 %or.cond.i.i, label %if.end30, label %land.rhs.i.i @@ -12168,120 +12464,120 @@ if.then13: ; preds = %land.rhs.i.i, %land %18 = load ptr, ptr %m_cache.i, align 8 %call.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %18, ptr noundef nonnull %t, i32 noundef 0) %tobool15.not = icmp eq ptr %call.i.i, null - br i1 %tobool15.not, label %if.end30, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99: ; preds = %if.then13 - %m_ref_count.i.i.i.i.i97 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 - %19 = load i32, ptr %m_ref_count.i.i.i.i.i97, align 4 - %inc.i.i.i.i.i98 = add i32 %19, 1 - store i32 %inc.i.i.i.i.i98, ptr %m_ref_count.i.i.i.i.i97, align 4 - %m_nodes.i100 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %20 = load ptr, ptr %m_nodes.i100, align 8 - %cmp.i.i101 = icmp eq ptr %20, null - br i1 %cmp.i.i101, label %if.then.i.i110, label %lor.lhs.false.i.i102 - -lor.lhs.false.i.i102: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - %arrayidx.i.i103 = getelementptr inbounds i32, ptr %20, i64 -1 - %21 = load i32, ptr %arrayidx.i.i103, align 4 - %arrayidx4.i.i104 = getelementptr inbounds i32, ptr %20, i64 -2 - %22 = load i32, ptr %arrayidx4.i.i104, align 4 - %cmp5.i.i105 = icmp eq i32 %21, %22 - br i1 %cmp5.i.i105, label %if.then.i.i110, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - -if.then.i.i110: ; preds = %lor.lhs.false.i.i102, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i100) - %.pre.i.i111 = load ptr, ptr %m_nodes.i100, align 8 - %arrayidx8.phi.trans.insert.i.i112 = getelementptr inbounds i32, ptr %.pre.i.i111, i64 -1 - %.pre1.i.i113 = load i32, ptr %arrayidx8.phi.trans.insert.i.i112, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114: ; preds = %lor.lhs.false.i.i102, %if.then.i.i110 - %23 = phi i32 [ %.pre1.i.i113, %if.then.i.i110 ], [ %21, %lor.lhs.false.i.i102 ] - %24 = phi ptr [ %.pre.i.i111, %if.then.i.i110 ], [ %20, %lor.lhs.false.i.i102 ] - %idx.ext.i.i106 = zext i32 %23 to i64 - %add.ptr.i.i107 = getelementptr inbounds ptr, ptr %24, i64 %idx.ext.i.i106 - store ptr %call.i.i, ptr %add.ptr.i.i107, align 8 - %25 = load ptr, ptr %m_nodes.i100, align 8 - %arrayidx10.i.i108 = getelementptr inbounds i32, ptr %25, i64 -1 - %26 = load i32, ptr %arrayidx10.i.i108, align 4 - %inc.i.i109 = add i32 %26, 1 - store i32 %inc.i.i109, ptr %arrayidx10.i.i108, align 4 + br i1 %tobool15.not, label %if.end30, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95: ; preds = %if.then13 + %m_ref_count.i.i.i.i.i93 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 + %19 = load i32, ptr %m_ref_count.i.i.i.i.i93, align 4 + %inc.i.i.i.i.i94 = add i32 %19, 1 + store i32 %inc.i.i.i.i.i94, ptr %m_ref_count.i.i.i.i.i93, align 4 + %m_nodes.i96 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %20 = load ptr, ptr %m_nodes.i96, align 8 + %cmp.i.i97 = icmp eq ptr %20, null + br i1 %cmp.i.i97, label %if.then.i.i106, label %lor.lhs.false.i.i98 + +lor.lhs.false.i.i98: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + %arrayidx.i.i99 = getelementptr inbounds i32, ptr %20, i64 -1 + %21 = load i32, ptr %arrayidx.i.i99, align 4 + %arrayidx4.i.i100 = getelementptr inbounds i32, ptr %20, i64 -2 + %22 = load i32, ptr %arrayidx4.i.i100, align 4 + %cmp5.i.i101 = icmp eq i32 %21, %22 + br i1 %cmp5.i.i101, label %if.then.i.i106, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + +if.then.i.i106: ; preds = %lor.lhs.false.i.i98, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i96) + %.pre.i.i107 = load ptr, ptr %m_nodes.i96, align 8 + %arrayidx8.phi.trans.insert.i.i108 = getelementptr inbounds i32, ptr %.pre.i.i107, i64 -1 + %.pre1.i.i109 = load i32, ptr %arrayidx8.phi.trans.insert.i.i108, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110: ; preds = %lor.lhs.false.i.i98, %if.then.i.i106 + %23 = phi i32 [ %.pre1.i.i109, %if.then.i.i106 ], [ %21, %lor.lhs.false.i.i98 ] + %24 = phi ptr [ %.pre.i.i107, %if.then.i.i106 ], [ %20, %lor.lhs.false.i.i98 ] + %idx.ext.i.i102 = zext i32 %23 to i64 + %add.ptr.i.i103 = getelementptr inbounds ptr, ptr %24, i64 %idx.ext.i.i102 + store ptr %call.i.i, ptr %add.ptr.i.i103, align 8 + %25 = load ptr, ptr %m_nodes.i96, align 8 + %arrayidx10.i.i104 = getelementptr inbounds i32, ptr %25, i64 -1 + %26 = load i32, ptr %arrayidx10.i.i104, align 4 + %inc.i.i105 = add i32 %26, 1 + store i32 %inc.i.i105, ptr %arrayidx10.i.i104, align 4 %27 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val33 = load ptr, ptr %27, align 8 - %cmp.not.i115 = icmp eq ptr %call.i.i, %t - %cmp.i.i.i116 = icmp eq ptr %this.val33, null - %or.cond.i117 = select i1 %cmp.not.i115, i1 true, i1 %cmp.i.i.i116 - br i1 %or.cond.i117, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit125, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - %arrayidx.i.i.i119 = getelementptr inbounds i32, ptr %this.val33, i64 -1 - %28 = load i32, ptr %arrayidx.i.i.i119, align 4 - %cmp3.i.i.i120 = icmp eq i32 %28, 0 - br i1 %cmp3.i.i.i120, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit125, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118 + %this.val30 = load ptr, ptr %27, align 8 + %cmp.not.i111 = icmp eq ptr %call.i.i, %t + %cmp.i.i.i112 = icmp eq ptr %this.val30, null + %or.cond.i113 = select i1 %cmp.not.i111, i1 true, i1 %cmp.i.i.i112 + br i1 %or.cond.i113, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit121, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + %arrayidx.i.i.i115 = getelementptr inbounds i32, ptr %this.val30, i64 -1 + %28 = load i32, ptr %arrayidx.i.i.i115, align 4 + %cmp3.i.i.i116 = icmp eq i32 %28, 0 + br i1 %cmp3.i.i.i116, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit121, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114 %29 = add i32 %28, -1 %30 = zext i32 %29 to i64 - %m_new_child.i.i122 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val33, i64 %30, i32 1 - %bf.load.i.i123 = load i32, ptr %m_new_child.i.i122, align 8 - %bf.set.i.i124 = or i32 %bf.load.i.i123, 2 - store i32 %bf.set.i.i124, ptr %m_new_child.i.i122, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit125 + %m_new_child.i.i118 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val30, i64 %30, i32 1 + %bf.load.i.i119 = load i32, ptr %m_new_child.i.i118, align 8 + %bf.set.i.i120 = or i32 %bf.load.i.i119, 2 + store i32 %bf.set.i.i120, ptr %m_new_child.i.i118, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit121 -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit125: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121 +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit121: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117 %m_cache_pr.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 %31 = load ptr, ptr %m_cache_pr.i, align 8 - %call.i.i126 = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %31, ptr noundef nonnull %t, i32 noundef 0) - %tobool.not.i.i.i.i128 = icmp eq ptr %call.i.i126, null - br i1 %tobool.not.i.i.i.i128, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132, label %if.then.i.i.i.i129 - -if.then.i.i.i.i129: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit125 - %m_ref_count.i.i.i.i.i130 = getelementptr inbounds %class.ast, ptr %call.i.i126, i64 0, i32 2 - %32 = load i32, ptr %m_ref_count.i.i.i.i.i130, align 4 - %inc.i.i.i.i.i131 = add i32 %32, 1 - store i32 %inc.i.i.i.i.i131, ptr %m_ref_count.i.i.i.i.i130, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132: ; preds = %if.then.i.i.i.i129, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit125 - %m_nodes.i133 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %33 = load ptr, ptr %m_nodes.i133, align 8 - %cmp.i.i134 = icmp eq ptr %33, null - br i1 %cmp.i.i134, label %if.then.i.i143, label %lor.lhs.false.i.i135 - -lor.lhs.false.i.i135: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - %arrayidx.i.i136 = getelementptr inbounds i32, ptr %33, i64 -1 - %34 = load i32, ptr %arrayidx.i.i136, align 4 - %arrayidx4.i.i137 = getelementptr inbounds i32, ptr %33, i64 -2 - %35 = load i32, ptr %arrayidx4.i.i137, align 4 - %cmp5.i.i138 = icmp eq i32 %34, %35 - br i1 %cmp5.i.i138, label %if.then.i.i143, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 - -if.then.i.i143: ; preds = %lor.lhs.false.i.i135, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i133) - %.pre.i.i144 = load ptr, ptr %m_nodes.i133, align 8 - %arrayidx8.phi.trans.insert.i.i145 = getelementptr inbounds i32, ptr %.pre.i.i144, i64 -1 - %.pre1.i.i146 = load i32, ptr %arrayidx8.phi.trans.insert.i.i145, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147: ; preds = %lor.lhs.false.i.i135, %if.then.i.i143 - %36 = phi i32 [ %.pre1.i.i146, %if.then.i.i143 ], [ %34, %lor.lhs.false.i.i135 ] - %37 = phi ptr [ %.pre.i.i144, %if.then.i.i143 ], [ %33, %lor.lhs.false.i.i135 ] - %idx.ext.i.i139 = zext i32 %36 to i64 - %add.ptr.i.i140 = getelementptr inbounds ptr, ptr %37, i64 %idx.ext.i.i139 - store ptr %call.i.i126, ptr %add.ptr.i.i140, align 8 - %38 = load ptr, ptr %m_nodes.i133, align 8 - %arrayidx10.i.i141 = getelementptr inbounds i32, ptr %38, i64 -1 - %39 = load i32, ptr %arrayidx10.i.i141, align 4 - %inc.i.i142 = add i32 %39, 1 - store i32 %inc.i.i142, ptr %arrayidx10.i.i141, align 4 + %call.i.i122 = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %31, ptr noundef nonnull %t, i32 noundef 0) + %tobool.not.i.i.i.i124 = icmp eq ptr %call.i.i122, null + br i1 %tobool.not.i.i.i.i124, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128, label %if.then.i.i.i.i125 + +if.then.i.i.i.i125: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit121 + %m_ref_count.i.i.i.i.i126 = getelementptr inbounds %class.ast, ptr %call.i.i122, i64 0, i32 2 + %32 = load i32, ptr %m_ref_count.i.i.i.i.i126, align 4 + %inc.i.i.i.i.i127 = add i32 %32, 1 + store i32 %inc.i.i.i.i.i127, ptr %m_ref_count.i.i.i.i.i126, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128: ; preds = %if.then.i.i.i.i125, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE18set_new_child_flagEP4exprS5_.exit121 + %m_nodes.i129 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %33 = load ptr, ptr %m_nodes.i129, align 8 + %cmp.i.i130 = icmp eq ptr %33, null + br i1 %cmp.i.i130, label %if.then.i.i139, label %lor.lhs.false.i.i131 + +lor.lhs.false.i.i131: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + %arrayidx.i.i132 = getelementptr inbounds i32, ptr %33, i64 -1 + %34 = load i32, ptr %arrayidx.i.i132, align 4 + %arrayidx4.i.i133 = getelementptr inbounds i32, ptr %33, i64 -2 + %35 = load i32, ptr %arrayidx4.i.i133, align 4 + %cmp5.i.i134 = icmp eq i32 %34, %35 + br i1 %cmp5.i.i134, label %if.then.i.i139, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 + +if.then.i.i139: ; preds = %lor.lhs.false.i.i131, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i129) + %.pre.i.i140 = load ptr, ptr %m_nodes.i129, align 8 + %arrayidx8.phi.trans.insert.i.i141 = getelementptr inbounds i32, ptr %.pre.i.i140, i64 -1 + %.pre1.i.i142 = load i32, ptr %arrayidx8.phi.trans.insert.i.i141, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143: ; preds = %lor.lhs.false.i.i131, %if.then.i.i139 + %36 = phi i32 [ %.pre1.i.i142, %if.then.i.i139 ], [ %34, %lor.lhs.false.i.i131 ] + %37 = phi ptr [ %.pre.i.i140, %if.then.i.i139 ], [ %33, %lor.lhs.false.i.i131 ] + %idx.ext.i.i135 = zext i32 %36 to i64 + %add.ptr.i.i136 = getelementptr inbounds ptr, ptr %37, i64 %idx.ext.i.i135 + store ptr %call.i.i122, ptr %add.ptr.i.i136, align 8 + %38 = load ptr, ptr %m_nodes.i129, align 8 + %arrayidx10.i.i137 = getelementptr inbounds i32, ptr %38, i64 -1 + %39 = load i32, ptr %arrayidx10.i.i137, align 4 + %inc.i.i138 = add i32 %39, 1 + store i32 %inc.i.i138, ptr %arrayidx10.i.i137, align 4 br label %return if.end30: ; preds = %land.rhs.i.i, %land.lhs.true4.i.i, %if.end11, %if.then13 %conv.i.i.i = phi i32 [ 1, %if.then13 ], [ 0, %if.end11 ], [ 0, %land.lhs.true4.i.i ], [ 0, %land.rhs.i.i ] %m_kind.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 1 %bf.load.i = load i32, ptr %m_kind.i, align 4 - %trunc241 = trunc i32 %bf.load.i to i16 - switch i16 %trunc241, label %sw.default [ + %trunc214 = trunc i32 %bf.load.i to i16 + switch i16 %trunc214, label %sw.default [ i16 0, label %sw.bb i16 1, label %sw.bb76 i16 2, label %sw.bb78 @@ -12291,166 +12587,65 @@ sw.bb: ; preds = %if.end30 %m_num_args.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 2 %40 = load i32, ptr %m_num_args.i, align 8 %cmp34 = icmp eq i32 %40, 0 - br i1 %cmp34, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %if.end71 - -lpad.i: ; preds = %if.then.i.i16.i, %if.then.i.i.i261 - %41 = landingpad { ptr, i32 } - cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t.i) #18 - resume { ptr, i32 } %41 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %sw.bb - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %t.i) - %42 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val4.i = load ptr, ptr %42, align 8 - store ptr %t, ptr %t.i, align 8 - %m_manager.i.i = getelementptr inbounds %class.obj_ref.42, ptr %t.i, i64 0, i32 1 - store ptr %this.val4.i, ptr %m_manager.i.i, align 8 - %43 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i.i = add i32 %43, 2 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %44 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %44, null - br i1 %cmp.i.i.i, label %if.then.i.i.i261, label %lor.lhs.false.i.i.i254 - -lor.lhs.false.i.i.i254: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %44, i64 -1 - %45 = load i32, ptr %arrayidx.i.i.i, align 4 - %arrayidx4.i.i.i255 = getelementptr inbounds i32, ptr %44, i64 -2 - %46 = load i32, ptr %arrayidx4.i.i.i255, align 4 - %cmp5.i.i.i256 = icmp eq i32 %45, %46 - br i1 %cmp5.i.i.i256, label %if.then.i.i.i261, label %invoke.cont10.i - -if.then.i.i.i261: ; preds = %lor.lhs.false.i.i.i254, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc.i unwind label %lpad.i - -.noexc.i: ; preds = %if.then.i.i.i261 - %.pre.i.i.i262 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i263 = getelementptr inbounds i32, ptr %.pre.i.i.i262, i64 -1 - %.pre1.i.i.i264 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i263, align 4 - br label %invoke.cont10.i - -invoke.cont10.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i254 - %47 = phi i32 [ %.pre1.i.i.i264, %.noexc.i ], [ %45, %lor.lhs.false.i.i.i254 ] - %48 = phi ptr [ %.pre.i.i.i262, %.noexc.i ], [ %44, %lor.lhs.false.i.i.i254 ] - %idx.ext.i.i.i257 = zext i32 %47 to i64 - %add.ptr.i.i.i258 = getelementptr inbounds ptr, ptr %48, i64 %idx.ext.i.i.i257 - store ptr %t, ptr %add.ptr.i.i.i258, align 8 - %49 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i259 = getelementptr inbounds i32, ptr %49, i64 -1 - %50 = load i32, ptr %arrayidx10.i.i.i259, align 4 - %inc.i.i.i260 = add i32 %50, 1 - store i32 %inc.i.i.i260, ptr %arrayidx10.i.i.i259, align 4 - %m_nodes.i6.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %51 = load ptr, ptr %m_nodes.i6.i, align 8 - %cmp.i.i7.i = icmp eq ptr %51, null - br i1 %cmp.i.i7.i, label %if.then.i.i16.i, label %lor.lhs.false.i.i8.i - -lor.lhs.false.i.i8.i: ; preds = %invoke.cont10.i - %arrayidx.i.i9.i = getelementptr inbounds i32, ptr %51, i64 -1 - %52 = load i32, ptr %arrayidx.i.i9.i, align 4 - %arrayidx4.i.i10.i = getelementptr inbounds i32, ptr %51, i64 -2 - %53 = load i32, ptr %arrayidx4.i.i10.i, align 4 - %cmp5.i.i11.i = icmp eq i32 %52, %53 - br i1 %cmp5.i.i11.i, label %if.then.i.i16.i, label %if.then.i.i.i99.i - -if.then.i.i16.i: ; preds = %lor.lhs.false.i.i8.i, %invoke.cont10.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i6.i) - to label %.noexc20.i unwind label %lpad.i - -.noexc20.i: ; preds = %if.then.i.i16.i - %.pre.i.i17.i = load ptr, ptr %m_nodes.i6.i, align 8 - %arrayidx8.phi.trans.insert.i.i18.i = getelementptr inbounds i32, ptr %.pre.i.i17.i, i64 -1 - %.pre1.i.i19.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i18.i, align 4 - br label %if.then.i.i.i99.i - -if.then.i.i.i99.i: ; preds = %lor.lhs.false.i.i8.i, %.noexc20.i - %54 = phi i32 [ %.pre1.i.i19.i, %.noexc20.i ], [ %52, %lor.lhs.false.i.i8.i ] - %55 = phi ptr [ %.pre.i.i17.i, %.noexc20.i ], [ %51, %lor.lhs.false.i.i8.i ] - %idx.ext.i.i12.i = zext i32 %54 to i64 - %add.ptr.i.i13.i = getelementptr inbounds ptr, ptr %55, i64 %idx.ext.i.i12.i - store ptr null, ptr %add.ptr.i.i13.i, align 8 - %56 = load ptr, ptr %m_nodes.i6.i, align 8 - %arrayidx10.i.i14.i = getelementptr inbounds i32, ptr %56, i64 -1 - %57 = load i32, ptr %arrayidx10.i.i14.i, align 4 - %inc.i.i15.i = add i32 %57, 1 - store i32 %inc.i.i15.i, ptr %arrayidx10.i.i14.i, align 4 - %58 = load i32, ptr %m_ref_count.i.i.i, align 4 - %dec.i.i.i.i102.i = add i32 %58, -1 - store i32 %dec.i.i.i.i102.i, ptr %m_ref_count.i.i.i, align 4 - %cmp.i.i.i103.i = icmp eq i32 %dec.i.i.i.i102.i, 0 - br i1 %cmp.i.i.i103.i, label %if.then2.i.i.i104.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb1EEEbP3app.exit - -if.then2.i.i.i104.i: ; preds = %if.then.i.i.i99.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val4.i, ptr noundef nonnull %t) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb1EEEbP3app.exit unwind label %terminate.lpad.i.i - -terminate.lpad.i.i: ; preds = %if.then2.i.i.i104.i - %59 = landingpad { ptr, i32 } - catch ptr null - %60 = extractvalue { ptr, i32 } %59, 0 - tail call void @__clang_call_terminate(ptr %60) #19 - unreachable + br i1 %cmp34, label %if.then35, label %if.end71 -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb1EEEbP3app.exit: ; preds = %if.then.i.i.i99.i, %if.then2.i.i.i104.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %t.i) +if.then35: ; preds = %sw.bb + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb1EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %t) br label %return if.end71: ; preds = %sw.bb %cmp72.not = icmp eq i32 %max_depth, 3 %dec = shl i32 %max_depth, 4 - %61 = add i32 %dec, 48 - %62 = getelementptr inbounds i8, ptr %this, i64 40 + %41 = add i32 %dec, 48 + %42 = getelementptr inbounds i8, ptr %this, i64 40 %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %63 = load ptr, ptr %m_nodes.i.i.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %63, null + %43 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i.i = icmp eq ptr %43, null br i1 %cmp.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %if.end71 - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %63, i64 -1 - %64 = load i32, ptr %arrayidx.i.i.i.i, align 4 + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %43, i64 -1 + %44 = load i32, ptr %arrayidx.i.i.i.i, align 4 br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i: ; preds = %if.end.i.i.i.i, %if.end71 - %retval.0.i.i.i.i = phi i32 [ %64, %if.end.i.i.i.i ], [ 0, %if.end71 ] - %65 = load ptr, ptr %62, align 8 - %cmp.i.i.i207 = icmp eq ptr %65, null - br i1 %cmp.i.i.i207, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %retval.0.i.i.i.i = phi i32 [ %44, %if.end.i.i.i.i ], [ 0, %if.end71 ] + %45 = load ptr, ptr %42, align 8 + %cmp.i.i.i182 = icmp eq ptr %45, null + br i1 %cmp.i.i.i182, label %if.then.i.i.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - %arrayidx.i.i.i208 = getelementptr inbounds i32, ptr %65, i64 -1 - %66 = load i32, ptr %arrayidx.i.i.i208, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %65, i64 -2 - %67 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %66, %67 + %arrayidx.i.i.i183 = getelementptr inbounds i32, ptr %45, i64 -1 + %46 = load i32, ptr %arrayidx.i.i.i183, align 4 + %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %45, i64 -2 + %47 = load i32, ptr %arrayidx4.i.i.i, align 4 + %cmp5.i.i.i = icmp eq i32 %46, %47 br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %62) - %.pre.i.i.i = load ptr, ptr %62, align 8 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %42) + %.pre.i.i.i = load ptr, ptr %42, align 8 %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit _ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit: ; preds = %lor.lhs.false.i.i.i, %if.then.i.i.i - %68 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %66, %lor.lhs.false.i.i.i ] - %69 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %65, %lor.lhs.false.i.i.i ] - %70 = and i32 %61, 48 - %bf.value10.masked.i.i.i = select i1 %cmp72.not, i32 48, i32 %70 + %48 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %46, %lor.lhs.false.i.i.i ] + %49 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %45, %lor.lhs.false.i.i.i ] + %50 = and i32 %41, 48 + %bf.value10.masked.i.i.i = select i1 %cmp72.not, i32 48, i32 %50 %bf.clear15.i.i.i = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i - %idx.ext.i.i.i = zext i32 %68 to i64 - %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %69, i64 %idx.ext.i.i.i + %idx.ext.i.i.i = zext i32 %48 to i64 + %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %49, i64 %idx.ext.i.i.i store ptr %t, ptr %add.ptr.i.i.i, align 8 %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 8 store i32 %bf.clear15.i.i.i, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i, align 8 %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 12 store i32 %retval.0.i.i.i.i, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i, align 4 - %71 = load ptr, ptr %62, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %71, i64 -1 - %72 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %72, 1 + %51 = load ptr, ptr %42, align 8 + %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %51, i64 -1 + %52 = load i32, ptr %arrayidx10.i.i.i, align 4 + %inc.i.i.i = add i32 %52, 1 store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 br label %return @@ -12461,57 +12656,57 @@ sw.bb76: ; preds = %if.end30 sw.bb78: ; preds = %if.end30 %cmp79.not = icmp eq i32 %max_depth, 3 %dec81 = shl i32 %max_depth, 4 - %73 = add i32 %dec81, 48 - %74 = getelementptr inbounds i8, ptr %this, i64 40 - %m_nodes.i.i.i209 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %75 = load ptr, ptr %m_nodes.i.i.i209, align 8 - %cmp.i.i.i.i210 = icmp eq ptr %75, null - br i1 %cmp.i.i.i.i210, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213, label %if.end.i.i.i.i211 - -if.end.i.i.i.i211: ; preds = %sw.bb78 - %arrayidx.i.i.i.i212 = getelementptr inbounds i32, ptr %75, i64 -1 - %76 = load i32, ptr %arrayidx.i.i.i.i212, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213: ; preds = %if.end.i.i.i.i211, %sw.bb78 - %retval.0.i.i.i.i214 = phi i32 [ %76, %if.end.i.i.i.i211 ], [ 0, %sw.bb78 ] - %77 = load ptr, ptr %74, align 8 - %cmp.i.i.i215 = icmp eq ptr %77, null - br i1 %cmp.i.i.i215, label %if.then.i.i.i230, label %lor.lhs.false.i.i.i216 - -lor.lhs.false.i.i.i216: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - %arrayidx.i.i.i217 = getelementptr inbounds i32, ptr %77, i64 -1 - %78 = load i32, ptr %arrayidx.i.i.i217, align 4 - %arrayidx4.i.i.i218 = getelementptr inbounds i32, ptr %77, i64 -2 - %79 = load i32, ptr %arrayidx4.i.i.i218, align 4 - %cmp5.i.i.i219 = icmp eq i32 %78, %79 - br i1 %cmp5.i.i.i219, label %if.then.i.i.i230, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit234 - -if.then.i.i.i230: ; preds = %lor.lhs.false.i.i.i216, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %74) - %.pre.i.i.i231 = load ptr, ptr %74, align 8 - %arrayidx8.phi.trans.insert.i.i.i232 = getelementptr inbounds i32, ptr %.pre.i.i.i231, i64 -1 - %.pre1.i.i.i233 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i232, align 4 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit234 - -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit234: ; preds = %lor.lhs.false.i.i.i216, %if.then.i.i.i230 - %80 = phi i32 [ %.pre1.i.i.i233, %if.then.i.i.i230 ], [ %78, %lor.lhs.false.i.i.i216 ] - %81 = phi ptr [ %.pre.i.i.i231, %if.then.i.i.i230 ], [ %77, %lor.lhs.false.i.i.i216 ] - %82 = and i32 %73, 48 - %bf.value10.masked.i.i.i222 = select i1 %cmp79.not, i32 48, i32 %82 - %bf.clear15.i.i.i223 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i222 - %idx.ext.i.i.i224 = zext i32 %80 to i64 - %add.ptr.i.i.i225 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %81, i64 %idx.ext.i.i.i224 - store ptr %t, ptr %add.ptr.i.i.i225, align 8 - %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i226 = getelementptr inbounds i8, ptr %add.ptr.i.i.i225, i64 8 - store i32 %bf.clear15.i.i.i223, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i226, align 8 - %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i227 = getelementptr inbounds i8, ptr %add.ptr.i.i.i225, i64 12 - store i32 %retval.0.i.i.i.i214, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i227, align 4 - %83 = load ptr, ptr %74, align 8 - %arrayidx10.i.i.i228 = getelementptr inbounds i32, ptr %83, i64 -1 - %84 = load i32, ptr %arrayidx10.i.i.i228, align 4 - %inc.i.i.i229 = add i32 %84, 1 - store i32 %inc.i.i.i229, ptr %arrayidx10.i.i.i228, align 4 + %53 = add i32 %dec81, 48 + %54 = getelementptr inbounds i8, ptr %this, i64 40 + %m_nodes.i.i.i184 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %55 = load ptr, ptr %m_nodes.i.i.i184, align 8 + %cmp.i.i.i.i185 = icmp eq ptr %55, null + br i1 %cmp.i.i.i.i185, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188, label %if.end.i.i.i.i186 + +if.end.i.i.i.i186: ; preds = %sw.bb78 + %arrayidx.i.i.i.i187 = getelementptr inbounds i32, ptr %55, i64 -1 + %56 = load i32, ptr %arrayidx.i.i.i.i187, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188: ; preds = %if.end.i.i.i.i186, %sw.bb78 + %retval.0.i.i.i.i189 = phi i32 [ %56, %if.end.i.i.i.i186 ], [ 0, %sw.bb78 ] + %57 = load ptr, ptr %54, align 8 + %cmp.i.i.i190 = icmp eq ptr %57, null + br i1 %cmp.i.i.i190, label %if.then.i.i.i205, label %lor.lhs.false.i.i.i191 + +lor.lhs.false.i.i.i191: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + %arrayidx.i.i.i192 = getelementptr inbounds i32, ptr %57, i64 -1 + %58 = load i32, ptr %arrayidx.i.i.i192, align 4 + %arrayidx4.i.i.i193 = getelementptr inbounds i32, ptr %57, i64 -2 + %59 = load i32, ptr %arrayidx4.i.i.i193, align 4 + %cmp5.i.i.i194 = icmp eq i32 %58, %59 + br i1 %cmp5.i.i.i194, label %if.then.i.i.i205, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit209 + +if.then.i.i.i205: ; preds = %lor.lhs.false.i.i.i191, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %54) + %.pre.i.i.i206 = load ptr, ptr %54, align 8 + %arrayidx8.phi.trans.insert.i.i.i207 = getelementptr inbounds i32, ptr %.pre.i.i.i206, i64 -1 + %.pre1.i.i.i208 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i207, align 4 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit209 + +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit209: ; preds = %lor.lhs.false.i.i.i191, %if.then.i.i.i205 + %60 = phi i32 [ %.pre1.i.i.i208, %if.then.i.i.i205 ], [ %58, %lor.lhs.false.i.i.i191 ] + %61 = phi ptr [ %.pre.i.i.i206, %if.then.i.i.i205 ], [ %57, %lor.lhs.false.i.i.i191 ] + %62 = and i32 %53, 48 + %bf.value10.masked.i.i.i197 = select i1 %cmp79.not, i32 48, i32 %62 + %bf.clear15.i.i.i198 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i197 + %idx.ext.i.i.i199 = zext i32 %60 to i64 + %add.ptr.i.i.i200 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %61, i64 %idx.ext.i.i.i199 + store ptr %t, ptr %add.ptr.i.i.i200, align 8 + %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i201 = getelementptr inbounds i8, ptr %add.ptr.i.i.i200, i64 8 + store i32 %bf.clear15.i.i.i198, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i201, align 8 + %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i202 = getelementptr inbounds i8, ptr %add.ptr.i.i.i200, i64 12 + store i32 %retval.0.i.i.i.i189, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i202, align 4 + %63 = load ptr, ptr %54, align 8 + %arrayidx10.i.i.i203 = getelementptr inbounds i32, ptr %63, i64 -1 + %64 = load i32, ptr %arrayidx10.i.i.i203, align 4 + %inc.i.i.i204 = add i32 %64, 1 + store i32 %inc.i.i.i204, ptr %arrayidx10.i.i.i203, align 4 br label %return sw.default: ; preds = %if.end30 @@ -12519,8 +12714,8 @@ sw.default: ; preds = %if.end30 tail call void @exit(i32 noundef 114) #19 unreachable -return: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb1EEEbP3app.exit, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit234, %sw.bb76, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 ], [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit234 ], [ true, %sw.bb76 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit ], [ true, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb1EEEbP3app.exit ] +return: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit209, %sw.bb76, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit, %if.then35, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 ], [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit209 ], [ true, %sw.bb76 ], [ true, %if.then35 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit ] ret i1 %retval.0 } @@ -12590,6 +12785,125 @@ _ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit: ; preds = %lor.lhs.false.i, %i ret ptr %this } +; Function Attrs: mustprogress uwtable +define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb1EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +entry: + %t = alloca %class.obj_ref.42, align 8 + %0 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val3 = load ptr, ptr %0, align 8 + store ptr %t0, ptr %t, align 8 + %m_manager.i = getelementptr inbounds %class.obj_ref.42, ptr %t, i64 0, i32 1 + store ptr %this.val3, ptr %m_manager.i, align 8 + %tobool.not.i.i = icmp eq ptr %t0, null + br i1 %tobool.not.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i + +lpad: ; preds = %if.then.i.i15, %if.then.i.i + %1 = landingpad { ptr, i32 } + cleanup + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t) #18 + resume { ptr, i32 } %1 + +if.then.i.i.i.i: ; preds = %entry + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %2 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %2, 2 + store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %entry, %if.then.i.i.i.i + %m_nodes.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %3 = load ptr, ptr %m_nodes.i, align 8 + %cmp.i.i = icmp eq ptr %3, null + br i1 %cmp.i.i, label %if.then.i.i, label %lor.lhs.false.i.i + +lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i = getelementptr inbounds i32, ptr %3, i64 -1 + %4 = load i32, ptr %arrayidx.i.i, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %3, i64 -2 + %5 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %4, %5 + br i1 %cmp5.i.i, label %if.then.i.i, label %invoke.cont10 + +if.then.i.i: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i) + to label %.noexc unwind label %lpad + +.noexc: ; preds = %if.then.i.i + %.pre.i.i = load ptr, ptr %m_nodes.i, align 8 + %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i, i64 -1 + %.pre1.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 + br label %invoke.cont10 + +invoke.cont10: ; preds = %.noexc, %lor.lhs.false.i.i + %6 = phi i32 [ %.pre1.i.i, %.noexc ], [ %4, %lor.lhs.false.i.i ] + %7 = phi ptr [ %.pre.i.i, %.noexc ], [ %3, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %6 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %7, i64 %idx.ext.i.i + store ptr %t0, ptr %add.ptr.i.i, align 8 + %8 = load ptr, ptr %m_nodes.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %8, i64 -1 + %9 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %9, 1 + store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 + %m_nodes.i5 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %10 = load ptr, ptr %m_nodes.i5, align 8 + %cmp.i.i6 = icmp eq ptr %10, null + br i1 %cmp.i.i6, label %if.then.i.i15, label %lor.lhs.false.i.i7 + +lor.lhs.false.i.i7: ; preds = %invoke.cont10 + %arrayidx.i.i8 = getelementptr inbounds i32, ptr %10, i64 -1 + %11 = load i32, ptr %arrayidx.i.i8, align 4 + %arrayidx4.i.i9 = getelementptr inbounds i32, ptr %10, i64 -2 + %12 = load i32, ptr %arrayidx4.i.i9, align 4 + %cmp5.i.i10 = icmp eq i32 %11, %12 + br i1 %cmp5.i.i10, label %if.then.i.i15, label %cleanup + +if.then.i.i15: ; preds = %lor.lhs.false.i.i7, %invoke.cont10 + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i5) + to label %.noexc19 unwind label %lpad + +.noexc19: ; preds = %if.then.i.i15 + %.pre.i.i16 = load ptr, ptr %m_nodes.i5, align 8 + %arrayidx8.phi.trans.insert.i.i17 = getelementptr inbounds i32, ptr %.pre.i.i16, i64 -1 + %.pre1.i.i18 = load i32, ptr %arrayidx8.phi.trans.insert.i.i17, align 4 + br label %cleanup + +cleanup: ; preds = %.noexc19, %lor.lhs.false.i.i7 + %13 = phi i32 [ %.pre1.i.i18, %.noexc19 ], [ %11, %lor.lhs.false.i.i7 ] + %14 = phi ptr [ %.pre.i.i16, %.noexc19 ], [ %10, %lor.lhs.false.i.i7 ] + %idx.ext.i.i11 = zext i32 %13 to i64 + %add.ptr.i.i12 = getelementptr inbounds ptr, ptr %14, i64 %idx.ext.i.i11 + store ptr null, ptr %add.ptr.i.i12, align 8 + %15 = load ptr, ptr %m_nodes.i5, align 8 + %arrayidx10.i.i13 = getelementptr inbounds i32, ptr %15, i64 -1 + %16 = load i32, ptr %arrayidx10.i.i13, align 4 + %inc.i.i14 = add i32 %16, 1 + store i32 %inc.i.i14, ptr %arrayidx10.i.i13, align 4 + br i1 %tobool.not.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit, label %if.then.i.i.i98 + +if.then.i.i.i98: ; preds = %cleanup + %m_ref_count.i.i.i.i100 = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %17 = load i32, ptr %m_ref_count.i.i.i.i100, align 4 + %dec.i.i.i.i101 = add i32 %17, -1 + store i32 %dec.i.i.i.i101, ptr %m_ref_count.i.i.i.i100, align 4 + %cmp.i.i.i102 = icmp eq i32 %dec.i.i.i.i101, 0 + br i1 %cmp.i.i.i102, label %if.then2.i.i.i103, label %_ZN7obj_refI3app11ast_managerED2Ev.exit + +if.then2.i.i.i103: ; preds = %if.then.i.i.i98 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val3, ptr noundef nonnull %t0) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit unwind label %terminate.lpad.i + +terminate.lpad.i: ; preds = %if.then2.i.i.i103 + %18 = landingpad { ptr, i32 } + catch ptr null + %19 = extractvalue { ptr, i32 } %18, 0 + tail call void @__clang_call_terminate(ptr %19) #19 + unreachable + +_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %cleanup, %if.then.i.i.i98, %if.then2.i.i.i103 + ret void +} + ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %v) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { if.end: @@ -20282,62 +20596,61 @@ unreachable: ; preds = %invoke.cont ; Function Attrs: mustprogress uwtable define internal fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef %max_depth) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { if.end: - %t.i = alloca %class.obj_ref.42, align 8 %cmp = icmp eq i32 %max_depth, 0 br i1 %cmp, label %if.then4, label %if.end7 if.then4: ; preds = %if.end - %tobool.not.i.i.i.i37 = icmp eq ptr %t, null - br i1 %tobool.not.i.i.i.i37, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41, label %if.then.i.i.i.i38 - -if.then.i.i.i.i38: ; preds = %if.then4 - %m_ref_count.i.i.i.i.i39 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %0 = load i32, ptr %m_ref_count.i.i.i.i.i39, align 4 - %inc.i.i.i.i.i40 = add i32 %0, 1 - store i32 %inc.i.i.i.i.i40, ptr %m_ref_count.i.i.i.i.i39, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41: ; preds = %if.then.i.i.i.i38, %if.then4 - %m_nodes.i42 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1 = load ptr, ptr %m_nodes.i42, align 8 - %cmp.i.i43 = icmp eq ptr %1, null - br i1 %cmp.i.i43, label %if.then.i.i52, label %lor.lhs.false.i.i44 - -lor.lhs.false.i.i44: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - %arrayidx.i.i45 = getelementptr inbounds i32, ptr %1, i64 -1 - %2 = load i32, ptr %arrayidx.i.i45, align 4 - %arrayidx4.i.i46 = getelementptr inbounds i32, ptr %1, i64 -2 - %3 = load i32, ptr %arrayidx4.i.i46, align 4 - %cmp5.i.i47 = icmp eq i32 %2, %3 - br i1 %cmp5.i.i47, label %if.then.i.i52, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - -if.then.i.i52: ; preds = %lor.lhs.false.i.i44, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i42) - %.pre.i.i53 = load ptr, ptr %m_nodes.i42, align 8 - %arrayidx8.phi.trans.insert.i.i54 = getelementptr inbounds i32, ptr %.pre.i.i53, i64 -1 - %.pre1.i.i55 = load i32, ptr %arrayidx8.phi.trans.insert.i.i54, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56: ; preds = %lor.lhs.false.i.i44, %if.then.i.i52 - %4 = phi i32 [ %.pre1.i.i55, %if.then.i.i52 ], [ %2, %lor.lhs.false.i.i44 ] - %5 = phi ptr [ %.pre.i.i53, %if.then.i.i52 ], [ %1, %lor.lhs.false.i.i44 ] - %idx.ext.i.i48 = zext i32 %4 to i64 - %add.ptr.i.i49 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i48 - store ptr %t, ptr %add.ptr.i.i49, align 8 - %6 = load ptr, ptr %m_nodes.i42, align 8 - %arrayidx10.i.i50 = getelementptr inbounds i32, ptr %6, i64 -1 - %7 = load i32, ptr %arrayidx10.i.i50, align 4 - %inc.i.i51 = add i32 %7, 1 - store i32 %inc.i.i51, ptr %arrayidx10.i.i50, align 4 + %tobool.not.i.i.i.i33 = icmp eq ptr %t, null + br i1 %tobool.not.i.i.i.i33, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37, label %if.then.i.i.i.i34 + +if.then.i.i.i.i34: ; preds = %if.then4 + %m_ref_count.i.i.i.i.i35 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %0 = load i32, ptr %m_ref_count.i.i.i.i.i35, align 4 + %inc.i.i.i.i.i36 = add i32 %0, 1 + store i32 %inc.i.i.i.i.i36, ptr %m_ref_count.i.i.i.i.i35, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37: ; preds = %if.then.i.i.i.i34, %if.then4 + %m_nodes.i38 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1 = load ptr, ptr %m_nodes.i38, align 8 + %cmp.i.i39 = icmp eq ptr %1, null + br i1 %cmp.i.i39, label %if.then.i.i48, label %lor.lhs.false.i.i40 + +lor.lhs.false.i.i40: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + %arrayidx.i.i41 = getelementptr inbounds i32, ptr %1, i64 -1 + %2 = load i32, ptr %arrayidx.i.i41, align 4 + %arrayidx4.i.i42 = getelementptr inbounds i32, ptr %1, i64 -2 + %3 = load i32, ptr %arrayidx4.i.i42, align 4 + %cmp5.i.i43 = icmp eq i32 %2, %3 + br i1 %cmp5.i.i43, label %if.then.i.i48, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + +if.then.i.i48: ; preds = %lor.lhs.false.i.i40, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i38) + %.pre.i.i49 = load ptr, ptr %m_nodes.i38, align 8 + %arrayidx8.phi.trans.insert.i.i50 = getelementptr inbounds i32, ptr %.pre.i.i49, i64 -1 + %.pre1.i.i51 = load i32, ptr %arrayidx8.phi.trans.insert.i.i50, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52: ; preds = %lor.lhs.false.i.i40, %if.then.i.i48 + %4 = phi i32 [ %.pre1.i.i51, %if.then.i.i48 ], [ %2, %lor.lhs.false.i.i40 ] + %5 = phi ptr [ %.pre.i.i49, %if.then.i.i48 ], [ %1, %lor.lhs.false.i.i40 ] + %idx.ext.i.i44 = zext i32 %4 to i64 + %add.ptr.i.i45 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i44 + store ptr %t, ptr %add.ptr.i.i45, align 8 + %6 = load ptr, ptr %m_nodes.i38, align 8 + %arrayidx10.i.i46 = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx10.i.i46, align 4 + %inc.i.i47 = add i32 %7, 1 + store i32 %inc.i.i47, ptr %arrayidx10.i.i46, align 4 br label %return if.end7: ; preds = %if.end %8 = getelementptr inbounds i8, ptr %this, i64 120 - %this.val34 = load ptr, ptr %8, align 8 + %this.val30 = load ptr, ptr %8, align 8 %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 %9 = load i32, ptr %m_ref_count.i.i.i, align 4 %cmp.i9.i = icmp ult i32 %9, 2 - %cmp2.not.i.i = icmp eq ptr %this.val34, %t + %cmp2.not.i.i = icmp eq ptr %this.val30, %t %or.cond.i.i = select i1 %cmp.i9.i, i1 true, i1 %cmp2.not.i.i br i1 %or.cond.i.i, label %if.end21, label %land.rhs.i.i @@ -20361,72 +20674,72 @@ if.then9: ; preds = %land.rhs.i.i, %land %11 = load ptr, ptr %m_cache.i, align 8 %call.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %11, ptr noundef nonnull %t, i32 noundef 0) %tobool11.not = icmp eq ptr %call.i.i, null - br i1 %tobool11.not, label %if.end21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63: ; preds = %if.then9 - %m_ref_count.i.i.i.i.i61 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 - %12 = load i32, ptr %m_ref_count.i.i.i.i.i61, align 4 - %inc.i.i.i.i.i62 = add i32 %12, 1 - store i32 %inc.i.i.i.i.i62, ptr %m_ref_count.i.i.i.i.i61, align 4 - %m_nodes.i64 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %13 = load ptr, ptr %m_nodes.i64, align 8 - %cmp.i.i65 = icmp eq ptr %13, null - br i1 %cmp.i.i65, label %if.then.i.i74, label %lor.lhs.false.i.i66 - -lor.lhs.false.i.i66: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - %arrayidx.i.i67 = getelementptr inbounds i32, ptr %13, i64 -1 - %14 = load i32, ptr %arrayidx.i.i67, align 4 - %arrayidx4.i.i68 = getelementptr inbounds i32, ptr %13, i64 -2 - %15 = load i32, ptr %arrayidx4.i.i68, align 4 - %cmp5.i.i69 = icmp eq i32 %14, %15 - br i1 %cmp5.i.i69, label %if.then.i.i74, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - -if.then.i.i74: ; preds = %lor.lhs.false.i.i66, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i64) - %.pre.i.i75 = load ptr, ptr %m_nodes.i64, align 8 - %arrayidx8.phi.trans.insert.i.i76 = getelementptr inbounds i32, ptr %.pre.i.i75, i64 -1 - %.pre1.i.i77 = load i32, ptr %arrayidx8.phi.trans.insert.i.i76, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78: ; preds = %lor.lhs.false.i.i66, %if.then.i.i74 - %16 = phi i32 [ %.pre1.i.i77, %if.then.i.i74 ], [ %14, %lor.lhs.false.i.i66 ] - %17 = phi ptr [ %.pre.i.i75, %if.then.i.i74 ], [ %13, %lor.lhs.false.i.i66 ] - %idx.ext.i.i70 = zext i32 %16 to i64 - %add.ptr.i.i71 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i70 - store ptr %call.i.i, ptr %add.ptr.i.i71, align 8 - %18 = load ptr, ptr %m_nodes.i64, align 8 - %arrayidx10.i.i72 = getelementptr inbounds i32, ptr %18, i64 -1 - %19 = load i32, ptr %arrayidx10.i.i72, align 4 - %inc.i.i73 = add i32 %19, 1 - store i32 %inc.i.i73, ptr %arrayidx10.i.i72, align 4 + br i1 %tobool11.not, label %if.end21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59: ; preds = %if.then9 + %m_ref_count.i.i.i.i.i57 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 + %12 = load i32, ptr %m_ref_count.i.i.i.i.i57, align 4 + %inc.i.i.i.i.i58 = add i32 %12, 1 + store i32 %inc.i.i.i.i.i58, ptr %m_ref_count.i.i.i.i.i57, align 4 + %m_nodes.i60 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %13 = load ptr, ptr %m_nodes.i60, align 8 + %cmp.i.i61 = icmp eq ptr %13, null + br i1 %cmp.i.i61, label %if.then.i.i70, label %lor.lhs.false.i.i62 + +lor.lhs.false.i.i62: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + %arrayidx.i.i63 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx.i.i63, align 4 + %arrayidx4.i.i64 = getelementptr inbounds i32, ptr %13, i64 -2 + %15 = load i32, ptr %arrayidx4.i.i64, align 4 + %cmp5.i.i65 = icmp eq i32 %14, %15 + br i1 %cmp5.i.i65, label %if.then.i.i70, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + +if.then.i.i70: ; preds = %lor.lhs.false.i.i62, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i60) + %.pre.i.i71 = load ptr, ptr %m_nodes.i60, align 8 + %arrayidx8.phi.trans.insert.i.i72 = getelementptr inbounds i32, ptr %.pre.i.i71, i64 -1 + %.pre1.i.i73 = load i32, ptr %arrayidx8.phi.trans.insert.i.i72, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74: ; preds = %lor.lhs.false.i.i62, %if.then.i.i70 + %16 = phi i32 [ %.pre1.i.i73, %if.then.i.i70 ], [ %14, %lor.lhs.false.i.i62 ] + %17 = phi ptr [ %.pre.i.i71, %if.then.i.i70 ], [ %13, %lor.lhs.false.i.i62 ] + %idx.ext.i.i66 = zext i32 %16 to i64 + %add.ptr.i.i67 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i66 + store ptr %call.i.i, ptr %add.ptr.i.i67, align 8 + %18 = load ptr, ptr %m_nodes.i60, align 8 + %arrayidx10.i.i68 = getelementptr inbounds i32, ptr %18, i64 -1 + %19 = load i32, ptr %arrayidx10.i.i68, align 4 + %inc.i.i69 = add i32 %19, 1 + store i32 %inc.i.i69, ptr %arrayidx10.i.i68, align 4 %20 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val32 = load ptr, ptr %20, align 8 - %cmp.not.i79 = icmp eq ptr %call.i.i, %t - %cmp.i.i.i80 = icmp eq ptr %this.val32, null - %or.cond.i81 = select i1 %cmp.not.i79, i1 true, i1 %cmp.i.i.i80 - br i1 %or.cond.i81, label %return, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - %arrayidx.i.i.i83 = getelementptr inbounds i32, ptr %this.val32, i64 -1 - %21 = load i32, ptr %arrayidx.i.i.i83, align 4 - %cmp3.i.i.i84 = icmp eq i32 %21, 0 - br i1 %cmp3.i.i.i84, label %return, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 + %this.val = load ptr, ptr %20, align 8 + %cmp.not.i75 = icmp eq ptr %call.i.i, %t + %cmp.i.i.i76 = icmp eq ptr %this.val, null + %or.cond.i77 = select i1 %cmp.not.i75, i1 true, i1 %cmp.i.i.i76 + br i1 %or.cond.i77, label %return, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + %arrayidx.i.i.i79 = getelementptr inbounds i32, ptr %this.val, i64 -1 + %21 = load i32, ptr %arrayidx.i.i.i79, align 4 + %cmp3.i.i.i80 = icmp eq i32 %21, 0 + br i1 %cmp3.i.i.i80, label %return, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 %22 = add i32 %21, -1 %23 = zext i32 %22 to i64 - %m_new_child.i.i86 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val32, i64 %23, i32 1 - %bf.load.i.i87 = load i32, ptr %m_new_child.i.i86, align 8 - %bf.set.i.i88 = or i32 %bf.load.i.i87, 2 - store i32 %bf.set.i.i88, ptr %m_new_child.i.i86, align 8 + %m_new_child.i.i82 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val, i64 %23, i32 1 + %bf.load.i.i83 = load i32, ptr %m_new_child.i.i82, align 8 + %bf.set.i.i84 = or i32 %bf.load.i.i83, 2 + store i32 %bf.set.i.i84, ptr %m_new_child.i.i82, align 8 br label %return if.end21: ; preds = %land.rhs.i.i, %land.lhs.true4.i.i, %if.end7, %if.then9 %conv.i.i.i = phi i32 [ 1, %if.then9 ], [ 0, %if.end7 ], [ 0, %land.lhs.true4.i.i ], [ 0, %land.rhs.i.i ] %m_kind.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 1 %bf.load.i = load i32, ptr %m_kind.i, align 4 - %trunc166 = trunc i32 %bf.load.i to i16 - switch i16 %trunc166, label %sw.default [ + %trunc139 = trunc i32 %bf.load.i to i16 + switch i16 %trunc139, label %sw.default [ i16 0, label %sw.bb i16 1, label %sw.bb64 i16 2, label %sw.bb66 @@ -20436,132 +20749,65 @@ sw.bb: ; preds = %if.end21 %m_num_args.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 2 %24 = load i32, ptr %m_num_args.i, align 8 %cmp25 = icmp eq i32 %24, 0 - br i1 %cmp25, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %if.end59 - -lpad.i: ; preds = %if.then.i.i.i186 - %25 = landingpad { ptr, i32 } - cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t.i) #18 - resume { ptr, i32 } %25 + br i1 %cmp25, label %if.then26, label %if.end59 -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %sw.bb - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %t.i) - %26 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val.i = load ptr, ptr %26, align 8 - store ptr %t, ptr %t.i, align 8 - %m_manager.i.i = getelementptr inbounds %class.obj_ref.42, ptr %t.i, i64 0, i32 1 - store ptr %this.val.i, ptr %m_manager.i.i, align 8 - %27 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i.i = add i32 %27, 2 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %28 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %28, null - br i1 %cmp.i.i.i, label %if.then.i.i.i186, label %lor.lhs.false.i.i.i179 - -lor.lhs.false.i.i.i179: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %28, i64 -1 - %29 = load i32, ptr %arrayidx.i.i.i, align 4 - %arrayidx4.i.i.i180 = getelementptr inbounds i32, ptr %28, i64 -2 - %30 = load i32, ptr %arrayidx4.i.i.i180, align 4 - %cmp5.i.i.i181 = icmp eq i32 %29, %30 - br i1 %cmp5.i.i.i181, label %if.then.i.i.i186, label %if.then.i.i.i31.i - -if.then.i.i.i186: ; preds = %lor.lhs.false.i.i.i179, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc.i unwind label %lpad.i - -.noexc.i: ; preds = %if.then.i.i.i186 - %.pre.i.i.i187 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i188 = getelementptr inbounds i32, ptr %.pre.i.i.i187, i64 -1 - %.pre1.i.i.i189 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i188, align 4 - br label %if.then.i.i.i31.i - -if.then.i.i.i31.i: ; preds = %lor.lhs.false.i.i.i179, %.noexc.i - %31 = phi i32 [ %.pre1.i.i.i189, %.noexc.i ], [ %29, %lor.lhs.false.i.i.i179 ] - %32 = phi ptr [ %.pre.i.i.i187, %.noexc.i ], [ %28, %lor.lhs.false.i.i.i179 ] - %idx.ext.i.i.i182 = zext i32 %31 to i64 - %add.ptr.i.i.i183 = getelementptr inbounds ptr, ptr %32, i64 %idx.ext.i.i.i182 - store ptr %t, ptr %add.ptr.i.i.i183, align 8 - %33 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i184 = getelementptr inbounds i32, ptr %33, i64 -1 - %34 = load i32, ptr %arrayidx10.i.i.i184, align 4 - %inc.i.i.i185 = add i32 %34, 1 - store i32 %inc.i.i.i185, ptr %arrayidx10.i.i.i184, align 4 - %35 = load i32, ptr %m_ref_count.i.i.i, align 4 - %dec.i.i.i.i34.i = add i32 %35, -1 - store i32 %dec.i.i.i.i34.i, ptr %m_ref_count.i.i.i, align 4 - %cmp.i.i.i35.i = icmp eq i32 %dec.i.i.i.i34.i, 0 - br i1 %cmp.i.i.i35.i, label %if.then2.i.i.i36.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb0EEEbP3app.exit - -if.then2.i.i.i36.i: ; preds = %if.then.i.i.i31.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i, ptr noundef nonnull %t) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb0EEEbP3app.exit unwind label %terminate.lpad.i.i - -terminate.lpad.i.i: ; preds = %if.then2.i.i.i36.i - %36 = landingpad { ptr, i32 } - catch ptr null - %37 = extractvalue { ptr, i32 } %36, 0 - tail call void @__clang_call_terminate(ptr %37) #19 - unreachable - -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb0EEEbP3app.exit: ; preds = %if.then.i.i.i31.i, %if.then2.i.i.i36.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %t.i) +if.then26: ; preds = %sw.bb + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb0EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %t) br label %return if.end59: ; preds = %sw.bb %cmp60.not = icmp eq i32 %max_depth, 3 %dec = shl i32 %max_depth, 4 - %38 = add i32 %dec, 48 - %39 = getelementptr inbounds i8, ptr %this, i64 40 + %25 = add i32 %dec, 48 + %26 = getelementptr inbounds i8, ptr %this, i64 40 %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %40 = load ptr, ptr %m_nodes.i.i.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %40, null + %27 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i.i = icmp eq ptr %27, null br i1 %cmp.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %if.end59 - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %40, i64 -1 - %41 = load i32, ptr %arrayidx.i.i.i.i, align 4 + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %27, i64 -1 + %28 = load i32, ptr %arrayidx.i.i.i.i, align 4 br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i: ; preds = %if.end.i.i.i.i, %if.end59 - %retval.0.i.i.i.i = phi i32 [ %41, %if.end.i.i.i.i ], [ 0, %if.end59 ] - %42 = load ptr, ptr %39, align 8 - %cmp.i.i.i132 = icmp eq ptr %42, null - br i1 %cmp.i.i.i132, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %retval.0.i.i.i.i = phi i32 [ %28, %if.end.i.i.i.i ], [ 0, %if.end59 ] + %29 = load ptr, ptr %26, align 8 + %cmp.i.i.i107 = icmp eq ptr %29, null + br i1 %cmp.i.i.i107, label %if.then.i.i.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - %arrayidx.i.i.i133 = getelementptr inbounds i32, ptr %42, i64 -1 - %43 = load i32, ptr %arrayidx.i.i.i133, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %42, i64 -2 - %44 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %43, %44 + %arrayidx.i.i.i108 = getelementptr inbounds i32, ptr %29, i64 -1 + %30 = load i32, ptr %arrayidx.i.i.i108, align 4 + %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %29, i64 -2 + %31 = load i32, ptr %arrayidx4.i.i.i, align 4 + %cmp5.i.i.i = icmp eq i32 %30, %31 br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %39) - %.pre.i.i.i = load ptr, ptr %39, align 8 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %26) + %.pre.i.i.i = load ptr, ptr %26, align 8 %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit _ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit: ; preds = %lor.lhs.false.i.i.i, %if.then.i.i.i - %45 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %43, %lor.lhs.false.i.i.i ] - %46 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %42, %lor.lhs.false.i.i.i ] - %47 = and i32 %38, 48 - %bf.value10.masked.i.i.i = select i1 %cmp60.not, i32 48, i32 %47 + %32 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %30, %lor.lhs.false.i.i.i ] + %33 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %29, %lor.lhs.false.i.i.i ] + %34 = and i32 %25, 48 + %bf.value10.masked.i.i.i = select i1 %cmp60.not, i32 48, i32 %34 %bf.clear15.i.i.i = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i - %idx.ext.i.i.i = zext i32 %45 to i64 - %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %46, i64 %idx.ext.i.i.i + %idx.ext.i.i.i = zext i32 %32 to i64 + %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %33, i64 %idx.ext.i.i.i store ptr %t, ptr %add.ptr.i.i.i, align 8 %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 8 store i32 %bf.clear15.i.i.i, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i, align 8 %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 12 store i32 %retval.0.i.i.i.i, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i, align 4 - %48 = load ptr, ptr %39, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %48, i64 -1 - %49 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %49, 1 + %35 = load ptr, ptr %26, align 8 + %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %35, i64 -1 + %36 = load i32, ptr %arrayidx10.i.i.i, align 4 + %inc.i.i.i = add i32 %36, 1 store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 br label %return @@ -20572,57 +20818,57 @@ sw.bb64: ; preds = %if.end21 sw.bb66: ; preds = %if.end21 %cmp67.not = icmp eq i32 %max_depth, 3 %dec69 = shl i32 %max_depth, 4 - %50 = add i32 %dec69, 48 - %51 = getelementptr inbounds i8, ptr %this, i64 40 - %m_nodes.i.i.i134 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %52 = load ptr, ptr %m_nodes.i.i.i134, align 8 - %cmp.i.i.i.i135 = icmp eq ptr %52, null - br i1 %cmp.i.i.i.i135, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138, label %if.end.i.i.i.i136 - -if.end.i.i.i.i136: ; preds = %sw.bb66 - %arrayidx.i.i.i.i137 = getelementptr inbounds i32, ptr %52, i64 -1 - %53 = load i32, ptr %arrayidx.i.i.i.i137, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138: ; preds = %if.end.i.i.i.i136, %sw.bb66 - %retval.0.i.i.i.i139 = phi i32 [ %53, %if.end.i.i.i.i136 ], [ 0, %sw.bb66 ] - %54 = load ptr, ptr %51, align 8 - %cmp.i.i.i140 = icmp eq ptr %54, null - br i1 %cmp.i.i.i140, label %if.then.i.i.i155, label %lor.lhs.false.i.i.i141 - -lor.lhs.false.i.i.i141: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - %arrayidx.i.i.i142 = getelementptr inbounds i32, ptr %54, i64 -1 - %55 = load i32, ptr %arrayidx.i.i.i142, align 4 - %arrayidx4.i.i.i143 = getelementptr inbounds i32, ptr %54, i64 -2 - %56 = load i32, ptr %arrayidx4.i.i.i143, align 4 - %cmp5.i.i.i144 = icmp eq i32 %55, %56 - br i1 %cmp5.i.i.i144, label %if.then.i.i.i155, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit159 - -if.then.i.i.i155: ; preds = %lor.lhs.false.i.i.i141, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %51) - %.pre.i.i.i156 = load ptr, ptr %51, align 8 - %arrayidx8.phi.trans.insert.i.i.i157 = getelementptr inbounds i32, ptr %.pre.i.i.i156, i64 -1 - %.pre1.i.i.i158 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i157, align 4 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit159 - -_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit159: ; preds = %lor.lhs.false.i.i.i141, %if.then.i.i.i155 - %57 = phi i32 [ %.pre1.i.i.i158, %if.then.i.i.i155 ], [ %55, %lor.lhs.false.i.i.i141 ] - %58 = phi ptr [ %.pre.i.i.i156, %if.then.i.i.i155 ], [ %54, %lor.lhs.false.i.i.i141 ] - %59 = and i32 %50, 48 - %bf.value10.masked.i.i.i147 = select i1 %cmp67.not, i32 48, i32 %59 - %bf.clear15.i.i.i148 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i147 - %idx.ext.i.i.i149 = zext i32 %57 to i64 - %add.ptr.i.i.i150 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %58, i64 %idx.ext.i.i.i149 - store ptr %t, ptr %add.ptr.i.i.i150, align 8 - %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i151 = getelementptr inbounds i8, ptr %add.ptr.i.i.i150, i64 8 - store i32 %bf.clear15.i.i.i148, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i151, align 8 - %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i152 = getelementptr inbounds i8, ptr %add.ptr.i.i.i150, i64 12 - store i32 %retval.0.i.i.i.i139, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i152, align 4 - %60 = load ptr, ptr %51, align 8 - %arrayidx10.i.i.i153 = getelementptr inbounds i32, ptr %60, i64 -1 - %61 = load i32, ptr %arrayidx10.i.i.i153, align 4 - %inc.i.i.i154 = add i32 %61, 1 - store i32 %inc.i.i.i154, ptr %arrayidx10.i.i.i153, align 4 + %37 = add i32 %dec69, 48 + %38 = getelementptr inbounds i8, ptr %this, i64 40 + %m_nodes.i.i.i109 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %39 = load ptr, ptr %m_nodes.i.i.i109, align 8 + %cmp.i.i.i.i110 = icmp eq ptr %39, null + br i1 %cmp.i.i.i.i110, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113, label %if.end.i.i.i.i111 + +if.end.i.i.i.i111: ; preds = %sw.bb66 + %arrayidx.i.i.i.i112 = getelementptr inbounds i32, ptr %39, i64 -1 + %40 = load i32, ptr %arrayidx.i.i.i.i112, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113: ; preds = %if.end.i.i.i.i111, %sw.bb66 + %retval.0.i.i.i.i114 = phi i32 [ %40, %if.end.i.i.i.i111 ], [ 0, %sw.bb66 ] + %41 = load ptr, ptr %38, align 8 + %cmp.i.i.i115 = icmp eq ptr %41, null + br i1 %cmp.i.i.i115, label %if.then.i.i.i130, label %lor.lhs.false.i.i.i116 + +lor.lhs.false.i.i.i116: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + %arrayidx.i.i.i117 = getelementptr inbounds i32, ptr %41, i64 -1 + %42 = load i32, ptr %arrayidx.i.i.i117, align 4 + %arrayidx4.i.i.i118 = getelementptr inbounds i32, ptr %41, i64 -2 + %43 = load i32, ptr %arrayidx4.i.i.i118, align 4 + %cmp5.i.i.i119 = icmp eq i32 %42, %43 + br i1 %cmp5.i.i.i119, label %if.then.i.i.i130, label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit134 + +if.then.i.i.i130: ; preds = %lor.lhs.false.i.i.i116, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %38) + %.pre.i.i.i131 = load ptr, ptr %38, align 8 + %arrayidx8.phi.trans.insert.i.i.i132 = getelementptr inbounds i32, ptr %.pre.i.i.i131, i64 -1 + %.pre1.i.i.i133 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i132, align 4 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit134 + +_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit134: ; preds = %lor.lhs.false.i.i.i116, %if.then.i.i.i130 + %44 = phi i32 [ %.pre1.i.i.i133, %if.then.i.i.i130 ], [ %42, %lor.lhs.false.i.i.i116 ] + %45 = phi ptr [ %.pre.i.i.i131, %if.then.i.i.i130 ], [ %41, %lor.lhs.false.i.i.i116 ] + %46 = and i32 %37, 48 + %bf.value10.masked.i.i.i122 = select i1 %cmp67.not, i32 48, i32 %46 + %bf.clear15.i.i.i123 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i122 + %idx.ext.i.i.i124 = zext i32 %44 to i64 + %add.ptr.i.i.i125 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %45, i64 %idx.ext.i.i.i124 + store ptr %t, ptr %add.ptr.i.i.i125, align 8 + %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i126 = getelementptr inbounds i8, ptr %add.ptr.i.i.i125, i64 8 + store i32 %bf.clear15.i.i.i123, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i126, align 8 + %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i127 = getelementptr inbounds i8, ptr %add.ptr.i.i.i125, i64 12 + store i32 %retval.0.i.i.i.i114, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i127, align 4 + %47 = load ptr, ptr %38, align 8 + %arrayidx10.i.i.i128 = getelementptr inbounds i32, ptr %47, i64 -1 + %48 = load i32, ptr %arrayidx10.i.i.i128, align 4 + %inc.i.i.i129 = add i32 %48, 1 + store i32 %inc.i.i.i129, ptr %arrayidx10.i.i.i128, align 4 br label %return sw.default: ; preds = %if.end21 @@ -20630,11 +20876,96 @@ sw.default: ; preds = %if.end21 tail call void @exit(i32 noundef 114) #19 unreachable -return: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb0EEEbP3app.exit, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit159, %sw.bb64, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit159 ], [ true, %sw.bb64 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit ], [ true, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb0EEEbP3app.exit ], [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 ], [ true, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 ], [ true, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85 ] +return: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit134, %sw.bb64, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit, %if.then26, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit134 ], [ true, %sw.bb64 ], [ true, %if.then26 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE10push_frameEP4exprbj.exit ], [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 ], [ true, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 ], [ true, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81 ] ret i1 %retval.0 } +; Function Attrs: mustprogress uwtable +define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE13process_constILb0EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +entry: + %t = alloca %class.obj_ref.42, align 8 + %0 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val = load ptr, ptr %0, align 8 + store ptr %t0, ptr %t, align 8 + %m_manager.i = getelementptr inbounds %class.obj_ref.42, ptr %t, i64 0, i32 1 + store ptr %this.val, ptr %m_manager.i, align 8 + %tobool.not.i.i = icmp eq ptr %t0, null + br i1 %tobool.not.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i + +lpad: ; preds = %if.then.i.i + %1 = landingpad { ptr, i32 } + cleanup + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t) #18 + resume { ptr, i32 } %1 + +if.then.i.i.i.i: ; preds = %entry + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %2 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %2, 2 + store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %entry, %if.then.i.i.i.i + %m_nodes.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %3 = load ptr, ptr %m_nodes.i, align 8 + %cmp.i.i = icmp eq ptr %3, null + br i1 %cmp.i.i, label %if.then.i.i, label %lor.lhs.false.i.i + +lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i = getelementptr inbounds i32, ptr %3, i64 -1 + %4 = load i32, ptr %arrayidx.i.i, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %3, i64 -2 + %5 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %4, %5 + br i1 %cmp5.i.i, label %if.then.i.i, label %cleanup + +if.then.i.i: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i) + to label %.noexc unwind label %lpad + +.noexc: ; preds = %if.then.i.i + %.pre.i.i = load ptr, ptr %m_nodes.i, align 8 + %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i, i64 -1 + %.pre1.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 + br label %cleanup + +cleanup: ; preds = %.noexc, %lor.lhs.false.i.i + %6 = phi i32 [ %.pre1.i.i, %.noexc ], [ %4, %lor.lhs.false.i.i ] + %7 = phi ptr [ %.pre.i.i, %.noexc ], [ %3, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %6 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %7, i64 %idx.ext.i.i + store ptr %t0, ptr %add.ptr.i.i, align 8 + %8 = load ptr, ptr %m_nodes.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %8, i64 -1 + %9 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %9, 1 + store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 + br i1 %tobool.not.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit, label %if.then.i.i.i30 + +if.then.i.i.i30: ; preds = %cleanup + %m_ref_count.i.i.i.i32 = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %10 = load i32, ptr %m_ref_count.i.i.i.i32, align 4 + %dec.i.i.i.i33 = add i32 %10, -1 + store i32 %dec.i.i.i.i33, ptr %m_ref_count.i.i.i.i32, align 4 + %cmp.i.i.i34 = icmp eq i32 %dec.i.i.i.i33, 0 + br i1 %cmp.i.i.i34, label %if.then2.i.i.i35, label %_ZN7obj_refI3app11ast_managerED2Ev.exit + +if.then2.i.i.i35: ; preds = %if.then.i.i.i30 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val, ptr noundef nonnull %t0) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit unwind label %terminate.lpad.i + +terminate.lpad.i: ; preds = %if.then2.i.i.i35 + %11 = landingpad { ptr, i32 } + catch ptr null + %12 = extractvalue { ptr, i32 } %11, 0 + tail call void @__clang_call_terminate(ptr %12) #19 + unreachable + +_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %cleanup, %if.then.i.i.i30, %if.then2.i.i.i35 + ret void +} + ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_119elim_uncnstr_tactic6rw_cfgEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %v) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { if.end: @@ -20891,8 +21222,8 @@ _ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cel br i1 %cmp.i28, label %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit.thread, label %while.body.i.preheader _ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit.thread: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cellELb0EjE5resetEv.exit - %bf.load.i86106 = load i32, ptr %.pre, align 8 - %bf.lshr.i87107 = lshr i32 %bf.load.i86106, 30 + %bf.load.i86107 = load i32, ptr %.pre, align 8 + %bf.lshr.i87108 = lshr i32 %bf.load.i86107, 30 br label %while.end while.body.i.preheader: ; preds = %if.end, %_ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cellELb0EjE5resetEv.exit @@ -20903,7 +21234,7 @@ while.body.i: ; preds = %while.body.i.prehea %c.0.i = phi ptr [ %4, %sw.bb.i ], [ %2, %while.body.i.preheader ] %bf.load.i.i29 = load i32, ptr %c.0.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i29, 30 - switch i32 %bf.lshr.i.i, label %while.body.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %while.body.i.unreachabledefault [ i32 0, label %sw.bb.i i32 1, label %sw.bb3.i i32 2, label %sw.bb5.i @@ -20932,7 +21263,10 @@ sw.bb7.i: ; preds = %while.body.i %10 = load i32, ptr %9, align 4 br label %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit -while.body.unreachabledefault.i: ; preds = %while.body.i +while.body.i.unreachabledefault: ; preds = %while.body.i + unreachable + +default.unreachable103: ; preds = %for.body unreachable _ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit: ; preds = %sw.bb3.i, %sw.bb5.i, %sw.bb7.i @@ -20990,7 +21324,7 @@ _ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cel while.end: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cellELb0EjE9push_backERKS5_.exit, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit.thread, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit %c.0.lcssa = phi ptr [ %2, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit ], [ null, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %20, %_ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cellELb0EjE9push_backERKS5_.exit ] - %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87107, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cellELb0EjE9push_backERKS5_.exit ] + %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87108, %_ZNK14parray_managerIN11ast_manager28expr_dependency_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager28expr_dependency_array_configEE4cellELb0EjE9push_backERKS5_.exit ] %cmp8.not = icmp eq i32 %bf.lshr.i.lcssa, 3 br i1 %cmp8.not, label %if.end10, label %if.then9 @@ -21027,7 +21361,7 @@ for.body: ; preds = %for.body.lr.ph, %_Z %31 = load ptr, ptr %30, align 8 %bf.load = load i32, ptr %27, align 8 %bf.lshr = lshr i32 %bf.load, 30 - switch i32 %bf.lshr, label %for.body.unreachabledefault [ + switch i32 %bf.lshr, label %default.unreachable103 [ i32 0, label %sw.bb i32 1, label %sw.bb18 i32 2, label %sw.bb30 @@ -21136,9 +21470,6 @@ sw.bb38: ; preds = %for.body tail call void @exit(i32 noundef 114) #19 unreachable -for.body.unreachabledefault: ; preds = %for.body - unreachable - if.end.i52: ; preds = %sw.bb, %if.end25, %sw.bb30 %vs.1 = phi ptr [ %31, %sw.bb30 ], [ %vs.0, %if.end25 ], [ %31, %sw.bb ] %sz.0 = phi i32 [ %dec34, %sw.bb30 ], [ %inc29, %if.end25 ], [ %29, %sw.bb ] @@ -21473,7 +21804,7 @@ for.body: ; preds = %for.body.preheader, %25 = load ptr, ptr %arrayidx.i18, align 8 %bf.load.i19 = load i32, ptr %25, align 8 %bf.lshr.i20 = lshr i32 %bf.load.i19, 30 - switch i32 %bf.lshr.i20, label %for.body.unreachabledefault [ + switch i32 %bf.lshr.i20, label %default.unreachable [ i32 0, label %sw.bb i32 2, label %sw.bb8 i32 1, label %sw.bb9 @@ -21563,7 +21894,7 @@ sw.bb11: ; preds = %for.body call void @exit(i32 noundef 114) #19 unreachable -for.body.unreachabledefault: ; preds = %for.body +default.unreachable: ; preds = %for.body unreachable sw.epilog: ; preds = %if.then6.i.i.i.i41, %if.then.i.i.i.i34, %sw.bb8, %sw.bb9, %_ZN14parray_managerIN11ast_manager28expr_dependency_array_configEE4rsetEPPN18dependency_managerINS0_22expr_dependency_configEE10dependencyEjRKS7_.exit @@ -21978,7 +22309,7 @@ while.body: ; preds = %if.end, %entry %bf.load.i = phi i32 [ %bf.load.i.pre, %entry ], [ %bf.set, %if.end ] %c.addr.0 = phi ptr [ %c, %entry ], [ %next.0, %if.end ] %bf.lshr.i = lshr i32 %bf.load.i, 30 - switch i32 %bf.lshr.i, label %while.body.unreachabledefault [ + switch i32 %bf.lshr.i, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.epilog @@ -22065,7 +22396,7 @@ _ZN14parray_managerIN11ast_manager28expr_dependency_array_configEE8capacityEPPN1 tail call void @_ZN22small_object_allocator10deallocateEmPv(ptr noundef nonnull align 8 dereferenceable(520) %10, i64 noundef %add.i, ptr noundef nonnull %arrayidx.i.i) br label %sw.epilog.thread -while.body.unreachabledefault: ; preds = %while.body +default.unreachable: ; preds = %while.body unreachable sw.epilog.thread: ; preds = %_ZN14parray_managerIN11ast_manager28expr_dependency_array_configEE7dec_refEjPPN18dependency_managerINS0_22expr_dependency_configEE10dependencyE.exit, %_ZN14parray_managerIN11ast_manager28expr_dependency_array_configEE8capacityEPPN18dependency_managerINS0_22expr_dependency_configEE10dependencyE.exit.i diff --git a/bench/z3/optimized/q_eval.cpp.ll b/bench/z3/optimized/q_eval.cpp.ll index 857a917b679..813df453bf5 100644 --- a/bench/z3/optimized/q_eval.cpp.ll +++ b/bench/z3/optimized/q_eval.cpp.ll @@ -581,7 +581,7 @@ invoke.cont10: ; preds = %_ZN11ast_manager7in to label %invoke.cont17 unwind label %lpad12, !range !6 invoke.cont17: ; preds = %invoke.cont10 - switch i32 %call18, label %cleanup [ + switch i32 %call18, label %default.unreachable63 [ i32 -1, label %sw.bb i32 1, label %sw.bb22 i32 0, label %sw.bb30 @@ -649,9 +649,12 @@ if.end33: ; preds = %sw.bb30 store i32 %rem, ptr %idx, align 4 br label %cleanup -cleanup: ; preds = %invoke.cont17, %if.end33, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit34, %if.then32, %if.end28, %if.end - %retval.1 = phi i32 [ 0, %if.then32 ], [ 1, %if.end28 ], [ 1, %if.end ], [ %retval.059, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit34 ], [ %retval.059, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit ], [ %retval.059, %if.end33 ], [ %retval.059, %invoke.cont17 ] - %cond = phi i1 [ false, %if.then32 ], [ false, %if.end28 ], [ false, %if.end ], [ true, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit34 ], [ true, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit ], [ true, %if.end33 ], [ true, %invoke.cont17 ] +default.unreachable63: ; preds = %invoke.cont17 + unreachable + +cleanup: ; preds = %if.end33, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit34, %if.then32, %if.end28, %if.end + %retval.1 = phi i32 [ 0, %if.then32 ], [ 1, %if.end28 ], [ 1, %if.end ], [ %retval.059, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit34 ], [ %retval.059, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit ], [ %retval.059, %if.end33 ] + %cond = phi i1 [ false, %if.then32 ], [ false, %if.end28 ], [ false, %if.end ], [ true, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit34 ], [ true, %_ZN6vectorIPN3euf5enodeELb0EjE6shrinkEj.exit ], [ true, %if.end33 ] br i1 %tobool.not.i.i5.i, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit.i, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %cleanup diff --git a/bench/z3/optimized/qe_mbp.cpp.ll b/bench/z3/optimized/qe_mbp.cpp.ll index 9547557630b..3e3f9f11a0b 100644 --- a/bench/z3/optimized/qe_mbp.cpp.ll +++ b/bench/z3/optimized/qe_mbp.cpp.ll @@ -10914,23 +10914,31 @@ declare void @_ZN13rewriter_coreD2Ev(ptr noundef nonnull align 8 dereferenceable ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEEclEP4exprR7obj_refIS3_11ast_managerERS5_I3appS6_E(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, ptr nocapture noundef nonnull align 8 dereferenceable(16) %result, ptr nocapture noundef nonnull align 8 dereferenceable(16) %result_pr) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { entry: - %new_pats.i.i198 = alloca %class.ref_vector.78, align 8 - %new_no_pats.i.i199 = alloca %class.ref_vector.78, align 8 - %new_t.i.i202 = alloca %class.obj_ref.93, align 8 - %tmp.i.i = alloca %class.obj_ref, align 8 - %ref.tmp.i206 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp9.i207 = alloca %"class.std::allocator", align 1 - %new_pats.i.i = alloca %class.ref_vector.78, align 8 - %new_no_pats.i.i = alloca %class.ref_vector.78, align 8 - %new_q.i.i = alloca %class.obj_ref.133, align 8 - %pr2.i.i = alloca %class.obj_ref.93, align 8 - %new_t.i.i = alloca %class.obj_ref.93, align 8 - %pr2303.i.i = alloca %class.obj_ref.93, align 8 - %pr1305.i.i = alloca %class.obj_ref.93, align 8 - %ref.tmp.i60 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp9.i61 = alloca %"class.std::allocator", align 1 - %ref.tmp.i31 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i213.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i214.i.i = alloca %"class.std::allocator", align 1 + %ref.tmp.i.i.i40 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i.i.i41 = alloca %"class.std::allocator", align 1 + %new_pats.i.i.i42 = alloca %class.ref_vector.78, align 8 + %new_no_pats.i.i.i43 = alloca %class.ref_vector.78, align 8 + %new_t.i.i.i44 = alloca %class.obj_ref.93, align 8 + %tmp.i.i.i = alloca %class.obj_ref, align 8 + %ref.tmp.i.i45 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp9.i.i46 = alloca %"class.std::allocator", align 1 + %ref.tmp.i47 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp8.i = alloca %"class.std::allocator", align 1 + %ref.tmp.i257.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i258.i.i = alloca %"class.std::allocator", align 1 + %ref.tmp.i.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i.i.i = alloca %"class.std::allocator", align 1 + %new_pats.i.i.i = alloca %class.ref_vector.78, align 8 + %new_no_pats.i.i.i = alloca %class.ref_vector.78, align 8 + %new_q.i.i.i = alloca %class.obj_ref.133, align 8 + %pr2.i.i.i = alloca %class.obj_ref.93, align 8 + %new_t.i.i.i = alloca %class.obj_ref.93, align 8 + %pr2303.i.i.i = alloca %class.obj_ref.93, align 8 + %pr1305.i.i.i = alloca %class.obj_ref.93, align 8 + %ref.tmp.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp9.i.i = alloca %"class.std::allocator", align 1 %ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp9.i = alloca %"class.std::allocator", align 1 %m_frame_stack.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 6 @@ -10954,13 +10962,13 @@ lor.lhs.false: ; preds = %entry br i1 %cmp.not, label %if.end, label %_ZN6vectorIN13rewriter_core5frameELb0EjE5resetEv.exit lor.lhs.false.thread: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit - %m_cache2783 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %5 = load ptr, ptr %m_cache2783, align 8 - %m_cache_stack2784 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 4 - %6 = load ptr, ptr %m_cache_stack2784, align 8 + %m_cache413 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %5 = load ptr, ptr %m_cache413, align 8 + %m_cache_stack414 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 4 + %6 = load ptr, ptr %m_cache_stack414, align 8 %7 = load ptr, ptr %6, align 8 - %cmp.not2785 = icmp eq ptr %5, %7 - br i1 %cmp.not2785, label %if.end, label %if.then.i + %cmp.not415 = icmp eq ptr %5, %7 + br i1 %cmp.not415, label %if.end, label %if.then.i if.then.i: ; preds = %lor.lhs.false.thread, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit store i32 0, ptr %arrayidx.i, align 4 @@ -11092,31 +11100,31 @@ if.then7: ; preds = %if.end call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i) %25 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i189 = icmp eq ptr %25, null - br i1 %tobool.not.i3.i189, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit196, label %if.then.i.i.i190 - -if.then.i.i.i190: ; preds = %if.then7 - %m_manager.i.i191 = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 - %26 = load ptr, ptr %m_manager.i.i191, align 8 - %m_ref_count.i.i.i.i192 = getelementptr inbounds %class.ast, ptr %25, i64 0, i32 2 - %27 = load i32, ptr %m_ref_count.i.i.i.i192, align 4 - %dec.i.i.i.i193 = add i32 %27, -1 - store i32 %dec.i.i.i.i193, ptr %m_ref_count.i.i.i.i192, align 4 - %cmp.i.i.i194 = icmp eq i32 %dec.i.i.i.i193, 0 - br i1 %cmp.i.i.i194, label %if.then2.i.i.i195, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit196 + %tobool.not.i3.i.i = icmp eq ptr %25, null + br i1 %tobool.not.i3.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i.i + +if.then.i.i.i.i: ; preds = %if.then7 + %m_manager.i.i.i = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 + %26 = load ptr, ptr %m_manager.i.i.i, align 8 + %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %25, i64 0, i32 2 + %27 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 + %dec.i.i.i.i.i = add i32 %27, -1 + store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 + %cmp.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i, label %if.then2.i.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i -if.then2.i.i.i195: ; preds = %if.then.i.i.i190 +if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %26, ptr noundef nonnull %25) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit196 + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit196: ; preds = %if.then7, %if.then.i.i.i190, %if.then2.i.i.i195 +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.then7 store ptr null, ptr %result_pr, align 8 %28 = getelementptr inbounds i8, ptr %this, i64 8 %this.val12.i = load ptr, ptr %28, align 8 - %call2.i187 = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val12.i) - br i1 %call2.i187, label %if.end16.i, label %if.then.i28 + %call2.i.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val12.i) + br i1 %call2.i.i, label %if.end16.i, label %if.then.i28 -if.then.i28: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit196 +if.then.i28: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i %m_cancel_check.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 %29 = load i8, ptr %m_cancel_check.i, align 1 %30 = and i8 %29, 1 @@ -11128,27 +11136,27 @@ if.then4.i: ; preds = %if.then.i28 %exception.i = tail call ptr @__cxa_allocate_exception(i64 40) #14 %this.val.i = load ptr, ptr %28, align 8 %call8.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i) - to label %invoke.cont7.i unwind label %ehcleanup14.i.thread + to label %invoke.cont7.i unwind label %ehcleanup14.thread.i invoke.cont7.i: ; preds = %if.then4.i call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #14 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i, ptr noundef %call8.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) - to label %invoke.cont11.i unwind label %ehcleanup14.i.thread2791 + to label %invoke.cont11.i unwind label %ehcleanup14.thread112.i invoke.cont11.i: ; preds = %invoke.cont7.i store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i, align 8 - %m_msg.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #14 + %m_msg.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #14 store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i, align 8 invoke void @__cxa_throw(ptr nonnull %exception.i, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #17 to label %unreachable.i unwind label %ehcleanup14.i -ehcleanup14.i.thread: ; preds = %if.then4.i +ehcleanup14.thread.i: ; preds = %if.then4.i %31 = landingpad { ptr, i32 } cleanup br label %cleanup.action.i -ehcleanup14.i.thread2791: ; preds = %invoke.cont7.i +ehcleanup14.thread112.i: ; preds = %invoke.cont7.i %32 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #14 @@ -11161,46 +11169,46 @@ ehcleanup14.i: ; preds = %invoke.cont11.i call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #14 br label %common.resume -cleanup.action.i: ; preds = %ehcleanup14.i.thread2791, %ehcleanup14.i.thread - %.pn.pn.i2790 = phi { ptr, i32 } [ %31, %ehcleanup14.i.thread ], [ %32, %ehcleanup14.i.thread2791 ] +cleanup.action.i: ; preds = %ehcleanup14.thread112.i, %ehcleanup14.thread.i + %.pn.pn111.i = phi { ptr, i32 } [ %31, %ehcleanup14.thread.i ], [ %32, %ehcleanup14.thread112.i ] call void @__cxa_free_exception(ptr %exception.i) #14 br label %common.resume if.end.i: ; preds = %if.then.i28 - %tobool.not.i174 = icmp eq ptr %t, null - br i1 %tobool.not.i174, label %if.end.i178, label %_ZN11ast_manager7inc_refEP3ast.exit.i175 + %tobool.not.i.i30 = icmp eq ptr %t, null + br i1 %tobool.not.i.i30, label %if.end.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i -_ZN11ast_manager7inc_refEP3ast.exit.i175: ; preds = %if.end.i - %m_ref_count.i.i.i176 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %34 = load i32, ptr %m_ref_count.i.i.i176, align 4 - %inc.i.i.i177 = add i32 %34, 1 - store i32 %inc.i.i.i177, ptr %m_ref_count.i.i.i176, align 4 - br label %if.end.i178 +_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %if.end.i + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %34 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i = add i32 %34, 1 + store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %if.end.i.i -if.end.i178: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i175, %if.end.i +if.end.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i, %if.end.i %35 = load ptr, ptr %result, align 8 - %tobool.not.i3.i179 = icmp eq ptr %35, null - br i1 %tobool.not.i3.i179, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit186, label %if.then.i.i.i180 - -if.then.i.i.i180: ; preds = %if.end.i178 - %m_manager.i.i181 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %36 = load ptr, ptr %m_manager.i.i181, align 8 - %m_ref_count.i.i.i.i182 = getelementptr inbounds %class.ast, ptr %35, i64 0, i32 2 - %37 = load i32, ptr %m_ref_count.i.i.i.i182, align 4 - %dec.i.i.i.i183 = add i32 %37, -1 - store i32 %dec.i.i.i.i183, ptr %m_ref_count.i.i.i.i182, align 4 - %cmp.i.i.i184 = icmp eq i32 %dec.i.i.i.i183, 0 - br i1 %cmp.i.i.i184, label %if.then2.i.i.i185, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit186 - -if.then2.i.i.i185: ; preds = %if.then.i.i.i180 + %tobool.not.i3.i14.i = icmp eq ptr %35, null + br i1 %tobool.not.i3.i14.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i15.i + +if.then.i.i.i15.i: ; preds = %if.end.i.i + %m_manager.i.i16.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %36 = load ptr, ptr %m_manager.i.i16.i, align 8 + %m_ref_count.i.i.i.i17.i = getelementptr inbounds %class.ast, ptr %35, i64 0, i32 2 + %37 = load i32, ptr %m_ref_count.i.i.i.i17.i, align 4 + %dec.i.i.i.i18.i = add i32 %37, -1 + store i32 %dec.i.i.i.i18.i, ptr %m_ref_count.i.i.i.i17.i, align 4 + %cmp.i.i.i19.i = icmp eq i32 %dec.i.i.i.i18.i, 0 + br i1 %cmp.i.i.i19.i, label %if.then2.i.i.i20.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i + +if.then2.i.i.i20.i: ; preds = %if.then.i.i.i15.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %36, ptr noundef nonnull %35) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit186 + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit186: ; preds = %if.end.i178, %if.then.i.i.i180, %if.then2.i.i.i185 +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i20.i, %if.then.i.i.i15.i, %if.end.i.i store ptr %t, ptr %result, align 8 br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb1EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit -if.end16.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit196 +if.end16.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i %m_root.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 store ptr %t, ptr %m_root.i, align 8 %m_num_qvars.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 @@ -11211,6359 +11219,6660 @@ if.end16.i: ; preds = %_ZN7obj_refI3app11a br i1 %call17.i, label %if.then18.i, label %if.else.i if.then18.i: ; preds = %if.end16.i - %m_result_stack.i173 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i167 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %38 = load ptr, ptr %m_nodes.i167, align 8 - %cmp.i.i.i168 = icmp eq ptr %38, null - br i1 %cmp.i.i.i168, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit, label %if.end.i.i.i169 + %m_result_stack.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %38 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i.i21.i = icmp eq ptr %38, null + br i1 %cmp.i.i.i21.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i.i -if.end.i.i.i169: ; preds = %if.then18.i - %arrayidx.i.i.i170 = getelementptr inbounds i32, ptr %38, i64 -1 - %39 = load i32, ptr %arrayidx.i.i.i170, align 4 +if.end.i.i.i.i: ; preds = %if.then18.i + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %38, i64 -1 + %39 = load i32, ptr %arrayidx.i.i.i.i, align 4 %40 = add i32 %39, -1 %41 = zext i32 %40 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit: ; preds = %if.then18.i, %if.end.i.i.i169 - %retval.0.i.i.i171 = phi i64 [ %41, %if.end.i.i.i169 ], [ 4294967295, %if.then18.i ] - %arrayidx.i1.i.i172 = getelementptr inbounds ptr, ptr %38, i64 %retval.0.i.i.i171 - %42 = load ptr, ptr %arrayidx.i1.i.i172, align 8 - %tobool.not.i155 = icmp eq ptr %42, null - br i1 %tobool.not.i155, label %if.end.i159, label %_ZN11ast_manager7inc_refEP3ast.exit.i156 - -_ZN11ast_manager7inc_refEP3ast.exit.i156: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %m_ref_count.i.i.i157 = getelementptr inbounds %class.ast, ptr %42, i64 0, i32 2 - %43 = load i32, ptr %m_ref_count.i.i.i157, align 4 - %inc.i.i.i158 = add i32 %43, 1 - store i32 %inc.i.i.i158, ptr %m_ref_count.i.i.i157, align 4 - br label %if.end.i159 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i -if.end.i159: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i156, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i.i, %if.then18.i + %retval.0.i.i.i.i = phi i64 [ %41, %if.end.i.i.i.i ], [ 4294967295, %if.then18.i ] + %arrayidx.i1.i.i.i = getelementptr inbounds ptr, ptr %38, i64 %retval.0.i.i.i.i + %42 = load ptr, ptr %arrayidx.i1.i.i.i, align 8 + %tobool.not.i22.i = icmp eq ptr %42, null + br i1 %tobool.not.i22.i, label %if.end.i26.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i23.i + +_ZN11ast_manager7inc_refEP3ast.exit.i23.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + %m_ref_count.i.i.i24.i = getelementptr inbounds %class.ast, ptr %42, i64 0, i32 2 + %43 = load i32, ptr %m_ref_count.i.i.i24.i, align 4 + %inc.i.i.i25.i = add i32 %43, 1 + store i32 %inc.i.i.i25.i, ptr %m_ref_count.i.i.i24.i, align 4 + br label %if.end.i26.i + +if.end.i26.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i23.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i %44 = load ptr, ptr %result, align 8 - %tobool.not.i3.i160 = icmp eq ptr %44, null - br i1 %tobool.not.i3.i160, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit, label %if.then.i.i.i161 - -if.then.i.i.i161: ; preds = %if.end.i159 - %m_manager.i.i162 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %45 = load ptr, ptr %m_manager.i.i162, align 8 - %m_ref_count.i.i.i.i163 = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 - %46 = load i32, ptr %m_ref_count.i.i.i.i163, align 4 - %dec.i.i.i.i164 = add i32 %46, -1 - store i32 %dec.i.i.i.i164, ptr %m_ref_count.i.i.i.i163, align 4 - %cmp.i.i.i165 = icmp eq i32 %dec.i.i.i.i164, 0 - br i1 %cmp.i.i.i165, label %if.then2.i.i.i166, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - -if.then2.i.i.i166: ; preds = %if.then.i.i.i161 + %tobool.not.i3.i27.i = icmp eq ptr %44, null + br i1 %tobool.not.i3.i27.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i, label %if.then.i.i.i28.i + +if.then.i.i.i28.i: ; preds = %if.end.i26.i + %m_manager.i.i29.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %45 = load ptr, ptr %m_manager.i.i29.i, align 8 + %m_ref_count.i.i.i.i30.i = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 + %46 = load i32, ptr %m_ref_count.i.i.i.i30.i, align 4 + %dec.i.i.i.i31.i = add i32 %46, -1 + store i32 %dec.i.i.i.i31.i, ptr %m_ref_count.i.i.i.i30.i, align 4 + %cmp.i.i.i32.i = icmp eq i32 %dec.i.i.i.i31.i, 0 + br i1 %cmp.i.i.i32.i, label %if.then2.i.i.i33.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + +if.then2.i.i.i33.i: ; preds = %if.then.i.i.i28.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %45, ptr noundef nonnull %44) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit: ; preds = %if.end.i159, %if.then.i.i.i161, %if.then2.i.i.i166 +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i: ; preds = %if.then2.i.i.i33.i, %if.then.i.i.i28.i, %if.end.i26.i store ptr %42, ptr %result, align 8 - %47 = load ptr, ptr %m_nodes.i167, align 8 - %cmp.i.i.i139 = icmp eq ptr %47, null - br i1 %cmp.i.i.i139, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i, label %if.end.i.i.i140 + %47 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i.i37.i = icmp eq ptr %47, null + br i1 %cmp.i.i.i37.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i38.i -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - %.pre.i152 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i153 = add i32 %.pre.i152, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + %.pre.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i = add i32 %.pre.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i -if.end.i.i.i140: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - %arrayidx.i.i.i141 = getelementptr inbounds i32, ptr %47, i64 -1 - %48 = load i32, ptr %arrayidx.i.i.i141, align 4 +if.end.i.i.i38.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + %arrayidx.i.i.i39.i = getelementptr inbounds i32, ptr %47, i64 -1 + %48 = load i32, ptr %arrayidx.i.i.i39.i, align 4 %49 = add i32 %48, -1 %50 = zext i32 %49 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i140, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i - %dec.i.pre-phi.i142 = phi i32 [ %.pre1.i153, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i ], [ %49, %if.end.i.i.i140 ] - %retval.0.i.i.i143 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i ], [ %50, %if.end.i.i.i140 ] - %arrayidx.i1.i.i144 = getelementptr inbounds ptr, ptr %47, i64 %retval.0.i.i.i143 - %51 = load ptr, ptr %arrayidx.i1.i.i144, align 8 - %arrayidx.i.i145 = getelementptr inbounds i32, ptr %47, i64 -1 - store i32 %dec.i.pre-phi.i142, ptr %arrayidx.i.i145, align 4 - %52 = load ptr, ptr %m_result_stack.i173, align 8 - %tobool.not.i.i.i.i146 = icmp eq ptr %51, null - br i1 %tobool.not.i.i.i.i146, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, label %if.then.i.i.i.i147 - -if.then.i.i.i.i147: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - %m_ref_count.i.i.i.i.i148 = getelementptr inbounds %class.ast, ptr %51, i64 0, i32 2 - %53 = load i32, ptr %m_ref_count.i.i.i.i.i148, align 4 - %dec.i.i.i.i.i149 = add i32 %53, -1 - store i32 %dec.i.i.i.i.i149, ptr %m_ref_count.i.i.i.i.i148, align 4 - %cmp.i.i.i.i150 = icmp eq i32 %dec.i.i.i.i.i149, 0 - br i1 %cmp.i.i.i.i150, label %if.then2.i.i.i.i151, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i -if.then2.i.i.i.i151: ; preds = %if.then.i.i.i.i147 +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i38.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i + %dec.i.pre-phi.i.i = phi i32 [ %.pre1.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %49, %if.end.i.i.i38.i ] + %retval.0.i.i.i40.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %50, %if.end.i.i.i38.i ] + %arrayidx.i1.i.i41.i = getelementptr inbounds ptr, ptr %47, i64 %retval.0.i.i.i40.i + %51 = load ptr, ptr %arrayidx.i1.i.i41.i, align 8 + %arrayidx.i.i.i = getelementptr inbounds i32, ptr %47, i64 -1 + store i32 %dec.i.pre-phi.i.i, ptr %arrayidx.i.i.i, align 4 + %52 = load ptr, ptr %m_result_stack.i.i, align 8 + %tobool.not.i.i.i.i.i33 = icmp eq ptr %51, null + br i1 %tobool.not.i.i.i.i.i33, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i.i34 + +if.then.i.i.i.i.i34: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + %m_ref_count.i.i.i.i.i.i35 = getelementptr inbounds %class.ast, ptr %51, i64 0, i32 2 + %53 = load i32, ptr %m_ref_count.i.i.i.i.i.i35, align 4 + %dec.i.i.i.i.i.i36 = add i32 %53, -1 + store i32 %dec.i.i.i.i.i.i36, ptr %m_ref_count.i.i.i.i.i.i35, align 4 + %cmp.i.i.i.i.i37 = icmp eq i32 %dec.i.i.i.i.i.i36, 0 + br i1 %cmp.i.i.i.i.i37, label %if.then2.i.i.i.i.i39, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +if.then2.i.i.i.i.i39: ; preds = %if.then.i.i.i.i.i34 tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %52, ptr noundef nonnull %51) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i, %if.then.i.i.i.i147, %if.then2.i.i.i.i151 - %m_result_pr_stack.i137 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_nodes.i131 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %54 = load ptr, ptr %m_nodes.i131, align 8 - %cmp.i.i.i132 = icmp eq ptr %54, null - br i1 %cmp.i.i.i132, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit, label %if.end.i.i.i133 +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i.i39, %if.then.i.i.i.i.i34, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + %m_result_pr_stack.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_nodes.i42.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %54 = load ptr, ptr %m_nodes.i42.i, align 8 + %cmp.i.i.i43.i = icmp eq ptr %54, null + br i1 %cmp.i.i.i43.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i44.i -if.end.i.i.i133: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - %arrayidx.i.i.i134 = getelementptr inbounds i32, ptr %54, i64 -1 - %55 = load i32, ptr %arrayidx.i.i.i134, align 4 +if.end.i.i.i44.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + %arrayidx.i.i.i45.i = getelementptr inbounds i32, ptr %54, i64 -1 + %55 = load i32, ptr %arrayidx.i.i.i45.i, align 4 %56 = add i32 %55, -1 %57 = zext i32 %56 to i64 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, %if.end.i.i.i133 - %retval.0.i.i.i135 = phi i64 [ %57, %if.end.i.i.i133 ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit ] - %arrayidx.i1.i.i136 = getelementptr inbounds ptr, ptr %54, i64 %retval.0.i.i.i135 - %58 = load ptr, ptr %arrayidx.i1.i.i136, align 8 - %tobool.not.i118 = icmp eq ptr %58, null - br i1 %tobool.not.i118, label %if.end.i122, label %_ZN11ast_manager7inc_refEP3ast.exit.i119 - -_ZN11ast_manager7inc_refEP3ast.exit.i119: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %m_ref_count.i.i.i120 = getelementptr inbounds %class.ast, ptr %58, i64 0, i32 2 - %59 = load i32, ptr %m_ref_count.i.i.i120, align 4 - %inc.i.i.i121 = add i32 %59, 1 - store i32 %inc.i.i.i121, ptr %m_ref_count.i.i.i120, align 4 - br label %if.end.i122 + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i -if.end.i122: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i119, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i44.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + %retval.0.i.i.i46.i = phi i64 [ %57, %if.end.i.i.i44.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i ] + %arrayidx.i1.i.i47.i = getelementptr inbounds ptr, ptr %54, i64 %retval.0.i.i.i46.i + %58 = load ptr, ptr %arrayidx.i1.i.i47.i, align 8 + %tobool.not.i48.i = icmp eq ptr %58, null + br i1 %tobool.not.i48.i, label %if.end.i52.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i49.i + +_ZN11ast_manager7inc_refEP3ast.exit.i49.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + %m_ref_count.i.i.i50.i = getelementptr inbounds %class.ast, ptr %58, i64 0, i32 2 + %59 = load i32, ptr %m_ref_count.i.i.i50.i, align 4 + %inc.i.i.i51.i = add i32 %59, 1 + store i32 %inc.i.i.i51.i, ptr %m_ref_count.i.i.i50.i, align 4 + br label %if.end.i52.i + +if.end.i52.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i49.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i %60 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i123 = icmp eq ptr %60, null - br i1 %tobool.not.i3.i123, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit130, label %if.then.i.i.i124 - -if.then.i.i.i124: ; preds = %if.end.i122 - %m_manager.i.i125 = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 - %61 = load ptr, ptr %m_manager.i.i125, align 8 - %m_ref_count.i.i.i.i126 = getelementptr inbounds %class.ast, ptr %60, i64 0, i32 2 - %62 = load i32, ptr %m_ref_count.i.i.i.i126, align 4 - %dec.i.i.i.i127 = add i32 %62, -1 - store i32 %dec.i.i.i.i127, ptr %m_ref_count.i.i.i.i126, align 4 - %cmp.i.i.i128 = icmp eq i32 %dec.i.i.i.i127, 0 - br i1 %cmp.i.i.i128, label %if.then2.i.i.i129, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit130 + %tobool.not.i3.i53.i = icmp eq ptr %60, null + br i1 %tobool.not.i3.i53.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i, label %if.then.i.i.i54.i + +if.then.i.i.i54.i: ; preds = %if.end.i52.i + %m_manager.i.i55.i = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 + %61 = load ptr, ptr %m_manager.i.i55.i, align 8 + %m_ref_count.i.i.i.i56.i = getelementptr inbounds %class.ast, ptr %60, i64 0, i32 2 + %62 = load i32, ptr %m_ref_count.i.i.i.i56.i, align 4 + %dec.i.i.i.i57.i = add i32 %62, -1 + store i32 %dec.i.i.i.i57.i, ptr %m_ref_count.i.i.i.i56.i, align 4 + %cmp.i.i.i58.i = icmp eq i32 %dec.i.i.i.i57.i, 0 + br i1 %cmp.i.i.i58.i, label %if.then2.i.i.i59.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i -if.then2.i.i.i129: ; preds = %if.then.i.i.i124 +if.then2.i.i.i59.i: ; preds = %if.then.i.i.i54.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %61, ptr noundef nonnull %60) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit130 + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit130: ; preds = %if.end.i122, %if.then.i.i.i124, %if.then2.i.i.i129 +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i: ; preds = %if.then2.i.i.i59.i, %if.then.i.i.i54.i, %if.end.i52.i store ptr %58, ptr %result_pr, align 8 - %63 = load ptr, ptr %m_nodes.i131, align 8 - %cmp.i.i.i105 = icmp eq ptr %63, null - br i1 %cmp.i.i.i105, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i, label %if.end.i.i.i106 + %63 = load ptr, ptr %m_nodes.i42.i, align 8 + %cmp.i.i.i63.i = icmp eq ptr %63, null + br i1 %cmp.i.i.i63.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i64.i -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit130 - %.pre.i116 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i = add i32 %.pre.i116, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i +entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + %.pre.i76.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i77.i = add i32 %.pre.i76.i, -1 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i -if.end.i.i.i106: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit130 - %arrayidx.i.i.i107 = getelementptr inbounds i32, ptr %63, i64 -1 - %64 = load i32, ptr %arrayidx.i.i.i107, align 4 +if.end.i.i.i64.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + %arrayidx.i.i.i65.i = getelementptr inbounds i32, ptr %63, i64 -1 + %64 = load i32, ptr %arrayidx.i.i.i65.i, align 4 %65 = add i32 %64, -1 %66 = zext i32 %65 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i - -_ZN6vectorIP3appLb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i106, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i - %dec.i.pre-phi.i = phi i32 [ %.pre1.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i ], [ %65, %if.end.i.i.i106 ] - %retval.0.i.i.i108 = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i ], [ %66, %if.end.i.i.i106 ] - %arrayidx.i1.i.i109 = getelementptr inbounds ptr, ptr %63, i64 %retval.0.i.i.i108 - %67 = load ptr, ptr %arrayidx.i1.i.i109, align 8 - %arrayidx.i.i110 = getelementptr inbounds i32, ptr %63, i64 -1 - store i32 %dec.i.pre-phi.i, ptr %arrayidx.i.i110, align 4 - %68 = load ptr, ptr %m_result_pr_stack.i137, align 8 - %tobool.not.i.i.i.i = icmp eq ptr %67, null - br i1 %tobool.not.i.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, label %if.then.i.i.i.i111 - -if.then.i.i.i.i111: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i - %m_ref_count.i.i.i.i.i112 = getelementptr inbounds %class.ast, ptr %67, i64 0, i32 2 - %69 = load i32, ptr %m_ref_count.i.i.i.i.i112, align 4 - %dec.i.i.i.i.i113 = add i32 %69, -1 - store i32 %dec.i.i.i.i.i113, ptr %m_ref_count.i.i.i.i.i112, align 4 - %cmp.i.i.i.i114 = icmp eq i32 %dec.i.i.i.i.i113, 0 - br i1 %cmp.i.i.i.i114, label %if.then2.i.i.i.i115, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i -if.then2.i.i.i.i115: ; preds = %if.then.i.i.i.i111 +_ZN6vectorIP3appLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i64.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i + %dec.i.pre-phi.i66.i = phi i32 [ %.pre1.i77.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %65, %if.end.i.i.i64.i ] + %retval.0.i.i.i67.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %66, %if.end.i.i.i64.i ] + %arrayidx.i1.i.i68.i = getelementptr inbounds ptr, ptr %63, i64 %retval.0.i.i.i67.i + %67 = load ptr, ptr %arrayidx.i1.i.i68.i, align 8 + %arrayidx.i.i69.i = getelementptr inbounds i32, ptr %63, i64 -1 + store i32 %dec.i.pre-phi.i66.i, ptr %arrayidx.i.i69.i, align 4 + %68 = load ptr, ptr %m_result_pr_stack.i.i, align 8 + %tobool.not.i.i.i.i70.i = icmp eq ptr %67, null + br i1 %tobool.not.i.i.i.i70.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i71.i + +if.then.i.i.i.i71.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i + %m_ref_count.i.i.i.i.i72.i = getelementptr inbounds %class.ast, ptr %67, i64 0, i32 2 + %69 = load i32, ptr %m_ref_count.i.i.i.i.i72.i, align 4 + %dec.i.i.i.i.i73.i = add i32 %69, -1 + store i32 %dec.i.i.i.i.i73.i, ptr %m_ref_count.i.i.i.i.i72.i, align 4 + %cmp.i.i.i.i74.i = icmp eq i32 %dec.i.i.i.i.i73.i, 0 + br i1 %cmp.i.i.i.i74.i, label %if.then2.i.i.i.i75.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +if.then2.i.i.i.i75.i: ; preds = %if.then.i.i.i.i71.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %68, ptr noundef nonnull %67) - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i, %if.then.i.i.i.i111, %if.then2.i.i.i.i115 +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i75.i, %if.then.i.i.i.i71.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i %70 = load ptr, ptr %result_pr, align 8 - %cmp.i30 = icmp eq ptr %70, null - br i1 %cmp.i30, label %if.then28.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb1EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit + %cmp.i38 = icmp eq ptr %70, null + br i1 %cmp.i38, label %if.then28.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb1EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit -if.then28.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit +if.then28.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i %this.val13.i = load ptr, ptr %28, align 8 %call30.i = tail call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val13.i, ptr noundef %t) - %tobool.not.i97 = icmp eq ptr %call30.i, null - br i1 %tobool.not.i97, label %if.end.i99, label %_ZN11ast_manager7inc_refEP3ast.exit.i + %tobool.not.i78.i = icmp eq ptr %call30.i, null + br i1 %tobool.not.i78.i, label %if.end.i82.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i79.i -_ZN11ast_manager7inc_refEP3ast.exit.i: ; preds = %if.then28.i - %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %call30.i, i64 0, i32 2 - %71 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i98 = add i32 %71, 1 - store i32 %inc.i.i.i98, ptr %m_ref_count.i.i.i, align 4 - br label %if.end.i99 +_ZN11ast_manager7inc_refEP3ast.exit.i79.i: ; preds = %if.then28.i + %m_ref_count.i.i.i80.i = getelementptr inbounds %class.ast, ptr %call30.i, i64 0, i32 2 + %71 = load i32, ptr %m_ref_count.i.i.i80.i, align 4 + %inc.i.i.i81.i = add i32 %71, 1 + store i32 %inc.i.i.i81.i, ptr %m_ref_count.i.i.i80.i, align 4 + br label %if.end.i82.i -if.end.i99: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i, %if.then28.i +if.end.i82.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i79.i, %if.then28.i %72 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i = icmp eq ptr %72, null - br i1 %tobool.not.i3.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit, label %if.then.i.i.i100 - -if.then.i.i.i100: ; preds = %if.end.i99 - %m_manager.i.i101 = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 - %73 = load ptr, ptr %m_manager.i.i101, align 8 - %m_ref_count.i.i.i.i102 = getelementptr inbounds %class.ast, ptr %72, i64 0, i32 2 - %74 = load i32, ptr %m_ref_count.i.i.i.i102, align 4 - %dec.i.i.i.i = add i32 %74, -1 - store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i102, align 4 - %cmp.i.i.i103 = icmp eq i32 %dec.i.i.i.i, 0 - br i1 %cmp.i.i.i103, label %if.then2.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit - -if.then2.i.i.i: ; preds = %if.then.i.i.i100 + %tobool.not.i3.i83.i = icmp eq ptr %72, null + br i1 %tobool.not.i3.i83.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i, label %if.then.i.i.i84.i + +if.then.i.i.i84.i: ; preds = %if.end.i82.i + %m_manager.i.i85.i = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 + %73 = load ptr, ptr %m_manager.i.i85.i, align 8 + %m_ref_count.i.i.i.i86.i = getelementptr inbounds %class.ast, ptr %72, i64 0, i32 2 + %74 = load i32, ptr %m_ref_count.i.i.i.i86.i, align 4 + %dec.i.i.i.i87.i = add i32 %74, -1 + store i32 %dec.i.i.i.i87.i, ptr %m_ref_count.i.i.i.i86.i, align 4 + %cmp.i.i.i88.i = icmp eq i32 %dec.i.i.i.i87.i, 0 + br i1 %cmp.i.i.i88.i, label %if.then2.i.i.i89.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i + +if.then2.i.i.i89.i: ; preds = %if.then.i.i.i84.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %73, ptr noundef nonnull %72) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit: ; preds = %if.end.i99, %if.then.i.i.i100, %if.then2.i.i.i +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i: ; preds = %if.then2.i.i.i89.i, %if.then.i.i.i84.i, %if.end.i82.i store ptr %call30.i, ptr %result_pr, align 8 br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb1EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit if.else.i: ; preds = %if.end16.i - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i60) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i61) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i.i) %75 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i622903 = icmp eq ptr %75, null - br i1 %cmp.i.i622903, label %while.end.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph + %cmp.i331.i.i = icmp eq ptr %75, null + br i1 %cmp.i331.i.i, label %while.end.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph: ; preds = %if.else.i - %m_cancel_check.i65 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %m_cache.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %m_cache_pr.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 - %m_nodes.i30.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %m_bindings.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 - %m_shifts.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 - %m_result_stack.i970 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i.i932 = getelementptr inbounds %class.ref_vector_core.79, ptr %new_pats.i.i, i64 0, i32 1 - %m_nodes.i.i917 = getelementptr inbounds %class.ref_vector_core.79, ptr %new_no_pats.i.i, i64 0, i32 1 - %m_manager.i828 = getelementptr inbounds %class.obj_ref.133, ptr %new_q.i.i, i64 0, i32 1 - %m_pr.i64.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %m_manager.i.i821 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %m_r.i71.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_manager.i.i750 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %m_manager.i = getelementptr inbounds %class.obj_ref.93, ptr %pr2.i.i, i64 0, i32 1 - %m_result_pr_stack.i726 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_manager.i1248 = getelementptr inbounds %class.obj_ref.93, ptr %pr2303.i.i, i64 0, i32 1 - %m_manager.i1247 = getelementptr inbounds %class.obj_ref.93, ptr %pr1305.i.i, i64 0, i32 1 - %m_manager.i1707 = getelementptr inbounds %class.obj_ref.93, ptr %new_t.i.i, i64 0, i32 1 - %m_cfg.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 - %m_pr2.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 - %m_manager.i.i1563 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8, i32 1 - br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph, %while.cond.i.backedge - %76 = phi ptr [ %75, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph ], [ %114, %while.cond.i.backedge ] - %arrayidx.i.i63 = getelementptr inbounds i32, ptr %76, i64 -1 - %77 = load i32, ptr %arrayidx.i.i63, align 4 - %cmp3.i.i = icmp eq i32 %77, 0 - br i1 %cmp3.i.i, label %while.end.i, label %while.body.i - -while.body.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i - %this.val18.i = load ptr, ptr %28, align 8 - %call2.i.i = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val18.i) - br i1 %call2.i.i, label %if.end15.i83, label %if.then.i64 - -if.then.i64: ; preds = %while.body.i - %78 = load i8, ptr %m_cancel_check.i65, align 1 - %79 = and i8 %78, 1 - %tobool.not.i66 = icmp eq i8 %79, 0 - br i1 %tobool.not.i66, label %if.end15.i83, label %if.then5.i - -if.then5.i: ; preds = %if.then.i64 - call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i67 = call ptr @__cxa_allocate_exception(i64 40) #14 - %this.val17.i = load ptr, ptr %28, align 8 - %call8.i68 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val17.i) - to label %invoke.cont.i75 unwind label %ehcleanup14.i70.thread - -invoke.cont.i75: ; preds = %if.then5.i - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i61) #14 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i60, ptr noundef %call8.i68, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i61) - to label %invoke.cont11.i80 unwind label %ehcleanup14.i70.thread2798 - -invoke.cont11.i80: ; preds = %invoke.cont.i75 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i67, align 8 - %m_msg.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i67, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i60) #14 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i67, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i67, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #17 - to label %unreachable.i82 unwind label %ehcleanup14.i70 - -ehcleanup14.i70.thread: ; preds = %if.then5.i - %80 = landingpad { ptr, i32 } - cleanup - br label %cleanup.action.i74 - -ehcleanup14.i70.thread2798: ; preds = %invoke.cont.i75 - %81 = landingpad { ptr, i32 } - cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i61) #14 - br label %cleanup.action.i74 - -ehcleanup14.i70: ; preds = %invoke.cont11.i80 - %82 = landingpad { ptr, i32 } - cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i60) #14 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i61) #14 - br label %common.resume - -cleanup.action.i74: ; preds = %ehcleanup14.i70.thread2798, %ehcleanup14.i70.thread - %.pn.pn.i722797 = phi { ptr, i32 } [ %80, %ehcleanup14.i70.thread ], [ %81, %ehcleanup14.i70.thread2798 ] - call void @__cxa_free_exception(ptr %exception.i67) #14 - br label %common.resume - -if.end15.i83: ; preds = %if.then.i64, %while.body.i - %83 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i.i = icmp eq ptr %83, null - br i1 %cmp.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i, label %if.end.i.i.i - -if.end.i.i.i: ; preds = %if.end15.i83 - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %83, i64 -1 - %84 = load i32, ptr %arrayidx.i.i.i, align 4 - %85 = add i32 %84, -1 - %86 = zext i32 %85 to i64 - br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i, %if.end15.i83 - %retval.0.i.i.i = phi i64 [ %86, %if.end.i.i.i ], [ 4294967295, %if.end15.i83 ] - %arrayidx.i1.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i - %87 = load ptr, ptr %arrayidx.i1.i.i, align 8 - %88 = load i32, ptr %m_num_steps.i, align 8 - %inc.i = add i32 %88, 1 - store i32 %inc.i, ptr %m_num_steps.i, align 8 - %89 = getelementptr i8, ptr %arrayidx.i1.i.i, i64 8 - %call17.val.i = load i32, ptr %89, align 8 - %90 = and i32 %call17.val.i, -51 - %or.cond.not = icmp eq i32 %90, 1 - br i1 %or.cond.not, label %if.then20.i, label %if.end31.i - -if.then20.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i - %91 = load ptr, ptr %m_cache.i.i, align 8 - %call.i.i.i = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %91, ptr noundef %87, i32 noundef 0) - %tobool22.not.i = icmp eq ptr %call.i.i.i, null - br i1 %tobool22.not.i, label %if.end31.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %if.then20.i - %m_ref_count.i.i.i.i.i.i89 = getelementptr inbounds %class.ast, ptr %call.i.i.i, i64 0, i32 2 - %92 = load i32, ptr %m_ref_count.i.i.i.i.i.i89, align 4 - %inc.i.i.i.i.i.i = add i32 %92, 1 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i89, align 4 - %93 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i23.i = icmp eq ptr %93, null - br i1 %cmp.i.i23.i, label %if.then.i.i.i, label %lor.lhs.false.i.i.i - -lor.lhs.false.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i24.i = getelementptr inbounds i32, ptr %93, i64 -1 - %94 = load i32, ptr %arrayidx.i.i24.i, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %93, i64 -2 - %95 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %94, %95 - br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - %.pre.i.i.i = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 - %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %if.then.i.i.i, %lor.lhs.false.i.i.i - %96 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %94, %lor.lhs.false.i.i.i ] - %97 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %93, %lor.lhs.false.i.i.i ] - %idx.ext.i.i.i = zext i32 %96 to i64 - %add.ptr.i.i.i = getelementptr inbounds ptr, ptr %97, i64 %idx.ext.i.i.i - store ptr %call.i.i.i, ptr %add.ptr.i.i.i, align 8 - %98 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %98, i64 -1 - %99 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %99, 1 - store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 - %100 = load ptr, ptr %m_cache_pr.i.i, align 8 - %call.i.i25.i = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %100, ptr noundef %87, i32 noundef 0) - %tobool.not.i.i.i.i26.i = icmp eq ptr %call.i.i25.i, null - br i1 %tobool.not.i.i.i.i26.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %if.then.i.i.i.i27.i - -if.then.i.i.i.i27.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %m_ref_count.i.i.i.i.i28.i = getelementptr inbounds %class.ast, ptr %call.i.i25.i, i64 0, i32 2 - %101 = load i32, ptr %m_ref_count.i.i.i.i.i28.i, align 4 - %inc.i.i.i.i.i29.i = add i32 %101, 1 - store i32 %inc.i.i.i.i.i29.i, ptr %m_ref_count.i.i.i.i.i28.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %if.then.i.i.i.i27.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %102 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i31.i = icmp eq ptr %102, null - br i1 %cmp.i.i31.i, label %if.then.i.i40.i, label %lor.lhs.false.i.i32.i - -lor.lhs.false.i.i32.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i33.i = getelementptr inbounds i32, ptr %102, i64 -1 - %103 = load i32, ptr %arrayidx.i.i33.i, align 4 - %arrayidx4.i.i34.i = getelementptr inbounds i32, ptr %102, i64 -2 - %104 = load i32, ptr %arrayidx4.i.i34.i, align 4 - %cmp5.i.i35.i = icmp eq i32 %103, %104 - br i1 %cmp5.i.i35.i, label %if.then.i.i40.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i40.i: ; preds = %lor.lhs.false.i.i32.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - %.pre.i.i41.i = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i42.i = getelementptr inbounds i32, ptr %.pre.i.i41.i, i64 -1 - %.pre1.i.i43.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i42.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %if.then.i.i40.i, %lor.lhs.false.i.i32.i - %105 = phi i32 [ %.pre1.i.i43.i, %if.then.i.i40.i ], [ %103, %lor.lhs.false.i.i32.i ] - %106 = phi ptr [ %.pre.i.i41.i, %if.then.i.i40.i ], [ %102, %lor.lhs.false.i.i32.i ] - %idx.ext.i.i36.i = zext i32 %105 to i64 - %add.ptr.i.i37.i = getelementptr inbounds ptr, ptr %106, i64 %idx.ext.i.i36.i - store ptr %call.i.i25.i, ptr %add.ptr.i.i37.i, align 8 - %107 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i38.i = getelementptr inbounds i32, ptr %107, i64 -1 - %108 = load i32, ptr %arrayidx10.i.i38.i, align 4 - %inc.i.i39.i = add i32 %108, 1 - store i32 %inc.i.i39.i, ptr %arrayidx10.i.i38.i, align 4 - %109 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i45.i = getelementptr inbounds i32, ptr %109, i64 -1 - %110 = load i32, ptr %arrayidx.i45.i, align 4 - %dec.i.i = add i32 %110, -1 - store i32 %dec.i.i, ptr %arrayidx.i45.i, align 4 - %this.val19.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i.i = icmp eq ptr %87, %call.i.i.i - %cmp.i.i.i.i = icmp eq ptr %this.val19.i, null - %or.cond.i.i = select i1 %cmp.not.i.i, i1 true, i1 %cmp.i.i.i.i - br i1 %or.cond.i.i, label %while.cond.i.backedge, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %this.val19.i, i64 -1 - %111 = load i32, ptr %arrayidx.i.i.i.i, align 4 - %cmp3.i.i.i.i = icmp eq i32 %111, 0 - br i1 %cmp3.i.i.i.i, label %while.cond.i.backedgethread-pre-split, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i - %112 = add i32 %111, -1 - %113 = zext i32 %112 to i64 - %m_new_child.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val19.i, i64 %113, i32 1 - %bf.load.i.i.i = load i32, ptr %m_new_child.i.i.i, align 8 - %bf.set.i.i.i = or i32 %bf.load.i.i.i, 2 - store i32 %bf.set.i.i.i, ptr %m_new_child.i.i.i, align 8 - br label %while.cond.i.backedgethread-pre-split - -while.cond.i.backedgethread-pre-split: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i, %sw.bb36.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - %.pr2952 = load ptr, ptr %m_frame_stack.i, align 8 - br label %while.cond.i.backedge - -while.cond.i.backedge: ; preds = %while.cond.i.backedgethread-pre-split, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %114 = phi ptr [ %.pr2952, %while.cond.i.backedgethread-pre-split ], [ %this.val19.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i ] - %cmp.i.i62 = icmp eq ptr %114, null - br i1 %cmp.i.i62, label %while.end.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, !llvm.loop !48 - -if.end31.i: ; preds = %if.then20.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i - %m_kind.i.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 1 - %bf.load.i.i = load i32, ptr %m_kind.i.i, align 4 - %trunc = trunc i32 %bf.load.i.i to i16 - switch i16 %trunc, label %sw.default.i [ - i16 0, label %sw.bb.i - i16 2, label %sw.bb34.i - i16 1, label %sw.bb36.i - ] - -sw.bb.i: ; preds = %if.end31.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2303.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr1305.i.i) - %bf.load.i46.i = load i32, ptr %89, align 8 - %bf.lshr.i.i = lshr i32 %bf.load.i46.i, 2 - %bf.clear.i47.i = and i32 %bf.lshr.i.i, 3 - switch i32 %bf.clear.i47.i, label %entry.unreachabledefault.i.i [ - i32 0, label %sw.bb.i.i - i32 1, label %sw.bb302.i.i - i32 2, label %sw.bb358.i.i - i32 3, label %sw.bb359.i.i - ] - -sw.bb.i.i: ; preds = %sw.bb.i - %m_num_args.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 2 - %115 = load i32, ptr %m_num_args.i, align 8 - br label %while.cond.i.i - -while.cond.i.i: ; preds = %while.body.i.i, %sw.bb.i.i - %bf.load2.i.i = load i32, ptr %89, align 8 - %bf.lshr3.i.i = lshr i32 %bf.load2.i.i, 6 - %cmp.i48.i = icmp ult i32 %bf.lshr3.i.i, %115 - br i1 %cmp.i48.i, label %while.body.i.i, label %while.end.i.i - -while.body.i.i: ; preds = %while.cond.i.i - %idxprom.i = zext nneg i32 %bf.lshr3.i.i to i64 - %arrayidx.i1717 = getelementptr inbounds %class.app, ptr %87, i64 0, i32 3, i64 %idxprom.i - %116 = load ptr, ptr %arrayidx.i1717, align 8 - %117 = and i32 %bf.load2.i.i, -64 - %bf.shl.i.i = add i32 %117, 64 - %bf.clear12.i.i = and i32 %bf.load2.i.i, 63 - %bf.set.i.i = or disjoint i32 %bf.shl.i.i, %bf.clear12.i.i - store i32 %bf.set.i.i, ptr %89, align 8 - %bf.lshr14.i.i = lshr i32 %bf.load2.i.i, 4 - %bf.clear15.i.i = and i32 %bf.lshr14.i.i, 3 - %call16.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %116, i32 noundef %bf.clear15.i.i) - br i1 %call16.i.i, label %while.cond.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, !llvm.loop !49 - -while.end.i.i: ; preds = %while.cond.i.i - %m_decl.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 1 - %118 = load ptr, ptr %m_decl.i, align 8 - %119 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1711 = icmp eq ptr %119, null - br i1 %cmp.i.i1711, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i1712 - -if.end.i.i1712: ; preds = %while.end.i.i - %arrayidx.i.i1713 = getelementptr inbounds i32, ptr %119, i64 -1 - %120 = load i32, ptr %arrayidx.i.i1713, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %while.end.i.i, %if.end.i.i1712 - %retval.0.i.i1715 = phi i32 [ %120, %if.end.i.i1712 ], [ 0, %while.end.i.i ] - %m_spos.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i, i32 2 - %121 = load i32, ptr %m_spos.i.i, align 4 - %sub.i.i = sub i32 %retval.0.i.i1715, %121 - %idx.ext.i.i = zext i32 %121 to i64 - %add.ptr.i.i = getelementptr inbounds ptr, ptr %119, i64 %idx.ext.i.i - %this.val56.i.i = load ptr, ptr %28, align 8 - store ptr null, ptr %new_t.i.i, align 8 - store ptr %this.val56.i.i, ptr %m_manager.i1707, align 8 - invoke void @_ZN13rewriter_core15elim_reflex_prsEj(ptr noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %121) - to label %invoke.cont.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %122 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1702 = icmp eq ptr %122, null - br i1 %cmp.i.i1702, label %invoke.cont26.i.i, label %if.end.i.i1703 - -if.end.i.i1703: ; preds = %invoke.cont.i.i - %arrayidx.i.i1704 = getelementptr inbounds i32, ptr %122, i64 -1 - %123 = load i32, ptr %arrayidx.i.i1704, align 4 - br label %invoke.cont26.i.i - -invoke.cont26.i.i: ; preds = %if.end.i.i1703, %invoke.cont.i.i - %retval.0.i.i = phi i32 [ %123, %if.end.i.i1703 ], [ 0, %invoke.cont.i.i ] - %124 = load i32, ptr %m_spos.i.i, align 4 - %sub29.i.i = sub i32 %retval.0.i.i, %124 - %cmp30.i.i = icmp eq i32 %retval.0.i.i, %124 - br i1 %cmp30.i.i, label %invoke.cont32.i.i, label %if.else.i.i - -invoke.cont32.i.i: ; preds = %invoke.cont26.i.i - %m_ref_count.i.i.i1689 = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 - %125 = load i32, ptr %m_ref_count.i.i.i1689, align 4 - %inc.i.i.i1690 = add i32 %125, 1 - store i32 %inc.i.i.i1690, ptr %m_ref_count.i.i.i1689, align 4 - store ptr %87, ptr %new_t.i.i, align 8 - %126 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i1678 = icmp eq ptr %126, null - br i1 %tobool.not.i3.i1678, label %if.end54.i.i, label %if.then.i.i.i1679 - -if.then.i.i.i1679: ; preds = %invoke.cont32.i.i - %127 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i1681 = getelementptr inbounds %class.ast, ptr %126, i64 0, i32 2 - %128 = load i32, ptr %m_ref_count.i.i.i.i1681, align 4 - %dec.i.i.i.i1682 = add i32 %128, -1 - store i32 %dec.i.i.i.i1682, ptr %m_ref_count.i.i.i.i1681, align 4 - %cmp.i.i.i1683 = icmp eq i32 %dec.i.i.i.i1682, 0 - br i1 %cmp.i.i.i1683, label %if.then2.i.i.i1684, label %if.end54.i.i - -if.then2.i.i.i1684: ; preds = %if.then.i.i.i1679 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %127, ptr noundef nonnull %126) - to label %if.end54.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -lpad.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i1339 - %lpad.loopexit2859 = landingpad { ptr, i32 } - cleanup - br label %lpad.i.i - -lpad.i.i.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1392 - %lpad.loopexit2862 = landingpad { ptr, i32 } - cleanup - br label %lpad.i.i - -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1594 - %lpad.loopexit2865 = landingpad { ptr, i32 } - cleanup - br label %lpad.i.i - -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1643 - %lpad.loopexit2868 = landingpad { ptr, i32 } - cleanup - br label %lpad.i.i - -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then2.i.i.i1684, %if.then2.i.i.i1658, %if.then.i.i1613, %if.then2.i.i.i1567, %if.then2.i.i.i1553, %if.then.i.i1535, %if.then2.i.i.i1517, %if.then.i1507, %if.then2.i.i.i1490, %if.then2.i.i.i1480, %if.then2.i.i.i1435, %if.then2.i.i.i1421, %if.then2.i.i.i1407, %if.then.i.i1362, %if.then.i1344, %if.then.i.i1309, %if.then2.i.i.i1291, %if.then2.i.i.i1266, %invoke.cont245.i.i, %if.then240.i.i, %if.end85.i.i, %if.then74.i.i, %if.end54.i.i, %invoke.cont39.i.i, %if.else.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %lpad.loopexit.split-lp2869 = landingpad { ptr, i32 } - cleanup - br label %lpad.i.i - -lpad.i.i: ; preds = %lpad.i.i.loopexit.split-lp.loopexit, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.i.i.loopexit - %lpad.phi2861 = phi { ptr, i32 } [ %lpad.loopexit2859, %lpad.i.i.loopexit ], [ %lpad.loopexit2862, %lpad.i.i.loopexit.split-lp.loopexit ], [ %lpad.loopexit2865, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2868, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2869, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i) #14 - br label %common.resume - -if.else.i.i: ; preds = %invoke.cont26.i.i - %this.val55.i.i = load ptr, ptr %28, align 8 - %call38.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i.i, ptr noundef %118, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i) - to label %invoke.cont37.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont37.i.i: ; preds = %if.else.i.i - %tobool.not.i1663 = icmp eq ptr %call38.i.i, null - br i1 %tobool.not.i1663, label %invoke.cont39.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i1664 - -_ZN11ast_manager7inc_refEP3ast.exit.i1664: ; preds = %invoke.cont37.i.i - %m_ref_count.i.i.i1665 = getelementptr inbounds %class.ast, ptr %call38.i.i, i64 0, i32 2 - %129 = load i32, ptr %m_ref_count.i.i.i1665, align 4 - %inc.i.i.i1666 = add i32 %129, 1 - store i32 %inc.i.i.i1666, ptr %m_ref_count.i.i.i1665, align 4 - br label %invoke.cont39.i.i - -invoke.cont39.i.i: ; preds = %invoke.cont37.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i1664 - store ptr %call38.i.i, ptr %new_t.i.i, align 8 - %this.val54.i.i = load ptr, ptr %28, align 8 - %130 = load ptr, ptr %m_nodes.i30.i, align 8 - %131 = load i32, ptr %m_spos.i.i, align 4 - %idx.ext47.i.i = zext i32 %131 to i64 - %add.ptr48.i.i = getelementptr inbounds ptr, ptr %130, i64 %idx.ext47.i.i - %call50.i.i = invoke noundef ptr @_ZN11ast_manager13mk_congruenceEP3appS1_jPKS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i.i, ptr noundef nonnull %87, ptr noundef %call38.i.i, i32 noundef %sub29.i.i, ptr noundef %add.ptr48.i.i) - to label %invoke.cont49.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont49.i.i: ; preds = %invoke.cont39.i.i - %tobool.not.i1647 = icmp eq ptr %call50.i.i, null - br i1 %tobool.not.i1647, label %if.end.i1651, label %_ZN11ast_manager7inc_refEP3ast.exit.i1648 - -_ZN11ast_manager7inc_refEP3ast.exit.i1648: ; preds = %invoke.cont49.i.i - %m_ref_count.i.i.i1649 = getelementptr inbounds %class.ast, ptr %call50.i.i, i64 0, i32 2 - %132 = load i32, ptr %m_ref_count.i.i.i1649, align 4 - %inc.i.i.i1650 = add i32 %132, 1 - store i32 %inc.i.i.i1650, ptr %m_ref_count.i.i.i1649, align 4 - br label %if.end.i1651 - -if.end.i1651: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1648, %invoke.cont49.i.i - %133 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i1652 = icmp eq ptr %133, null - br i1 %tobool.not.i3.i1652, label %if.end54.i.i, label %if.then.i.i.i1653 - -if.then.i.i.i1653: ; preds = %if.end.i1651 - %134 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i1655 = getelementptr inbounds %class.ast, ptr %133, i64 0, i32 2 - %135 = load i32, ptr %m_ref_count.i.i.i.i1655, align 4 - %dec.i.i.i.i1656 = add i32 %135, -1 - store i32 %dec.i.i.i.i1656, ptr %m_ref_count.i.i.i.i1655, align 4 - %cmp.i.i.i1657 = icmp eq i32 %dec.i.i.i.i1656, 0 - br i1 %cmp.i.i.i1657, label %if.then2.i.i.i1658, label %if.end54.i.i - -if.then2.i.i.i1658: ; preds = %if.then.i.i.i1653 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %134, ptr noundef nonnull %133) - to label %if.end54.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.end54.i.i: ; preds = %if.then.i.i.i1653, %if.end.i1651, %if.then2.i.i.i1658, %if.then.i.i.i1679, %invoke.cont32.i.i, %if.then2.i.i.i1684 - %storemerge2951 = phi ptr [ null, %if.then2.i.i.i1684 ], [ null, %invoke.cont32.i.i ], [ null, %if.then.i.i.i1679 ], [ %call50.i.i, %if.then2.i.i.i1658 ], [ %call50.i.i, %if.end.i1651 ], [ %call50.i.i, %if.then.i.i.i1653 ] - %136 = phi ptr [ %87, %if.then2.i.i.i1684 ], [ %87, %invoke.cont32.i.i ], [ %87, %if.then.i.i.i1679 ], [ %call38.i.i, %if.then2.i.i.i1658 ], [ %call38.i.i, %if.end.i1651 ], [ %call38.i.i, %if.then.i.i.i1653 ] - store ptr %storemerge2951, ptr %m_pr.i64.i, align 8 - %137 = load ptr, ptr %m_cfg.i.i, align 8 - %call56.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %137, ptr noundef %118, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i71.i) - to label %invoke.cont55.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont55.i.i: ; preds = %if.end54.i.i - %cmp57.not.i.i = icmp eq i32 %call56.i.i, 5 - br i1 %cmp57.not.i.i, label %if.else235.i.i, label %if.then58.i.i - -if.then58.i.i: ; preds = %invoke.cont55.i.i - %138 = load i32, ptr %m_spos.i.i, align 4 - %139 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1621 = icmp eq ptr %139, null - br i1 %cmp.i.i.i1621, label %invoke.cont61.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1622 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1622: ; preds = %if.then58.i.i - %arrayidx.i.i.i1625 = getelementptr inbounds i32, ptr %139, i64 -1 - %140 = load i32, ptr %arrayidx.i.i.i1625, align 4 - %141 = zext i32 %140 to i64 - %add.ptr.i.i1626 = getelementptr inbounds ptr, ptr %139, i64 %141 - %cmp3.i.i1627 = icmp ugt i32 %140, %138 - br i1 %cmp3.i.i1627, label %for.body.i.i1630.preheader, label %if.then.i.i1628 - -for.body.i.i1630.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1622 - %idx.ext.i1623 = zext i32 %138 to i64 - %add.ptr.i1624 = getelementptr inbounds ptr, ptr %139, i64 %idx.ext.i1623 - br label %for.body.i.i1630 - -for.body.i.i1630: ; preds = %for.body.i.i1630.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1637 - %it.04.i.i1631 = phi ptr [ %incdec.ptr.i.i1638, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1637 ], [ %add.ptr.i1624, %for.body.i.i1630.preheader ] - %142 = load ptr, ptr %it.04.i.i1631, align 8 - %143 = load ptr, ptr %m_result_stack.i970, align 8 - %tobool.not.i.i.i.i.i1632 = icmp eq ptr %142, null - br i1 %tobool.not.i.i.i.i.i1632, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1637, label %if.then.i.i.i.i.i1633 - -if.then.i.i.i.i.i1633: ; preds = %for.body.i.i1630 - %m_ref_count.i.i.i.i.i.i1634 = getelementptr inbounds %class.ast, ptr %142, i64 0, i32 2 - %144 = load i32, ptr %m_ref_count.i.i.i.i.i.i1634, align 4 - %dec.i.i.i.i.i.i1635 = add i32 %144, -1 - store i32 %dec.i.i.i.i.i.i1635, ptr %m_ref_count.i.i.i.i.i.i1634, align 4 - %cmp.i.i.i.i.i1636 = icmp eq i32 %dec.i.i.i.i.i.i1635, 0 - br i1 %cmp.i.i.i.i.i1636, label %if.then2.i.i.i.i.i1643, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1637 - -if.then2.i.i.i.i.i1643: ; preds = %if.then.i.i.i.i.i1633 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %143, ptr noundef nonnull %142) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1637 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1637: ; preds = %if.then2.i.i.i.i.i1643, %if.then.i.i.i.i.i1633, %for.body.i.i1630 - %incdec.ptr.i.i1638 = getelementptr inbounds ptr, ptr %it.04.i.i1631, i64 1 - %cmp.i.i1639 = icmp ult ptr %incdec.ptr.i.i1638, %add.ptr.i.i1626 - br i1 %cmp.i.i1639, label %for.body.i.i1630, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1640, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1640: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1637 - %.pre.i1641 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i1642 = icmp eq ptr %.pre.i1641, null - br i1 %tobool.not.i.i1642, label %invoke.cont61.i.i, label %if.then.i.i1628 - -if.then.i.i1628: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1640, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1622 - %145 = phi ptr [ %.pre.i1641, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1640 ], [ %139, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1622 ] - %arrayidx.i.i1629 = getelementptr inbounds i32, ptr %145, i64 -1 - store i32 %138, ptr %arrayidx.i.i1629, align 4 - br label %invoke.cont61.i.i - -invoke.cont61.i.i: ; preds = %if.then.i.i1628, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1640, %if.then58.i.i - %146 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i.i.i.i1598 = icmp eq ptr %146, null - br i1 %tobool.not.i.i.i.i1598, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1602, label %if.then.i.i.i.i1599 - -if.then.i.i.i.i1599: ; preds = %invoke.cont61.i.i - %m_ref_count.i.i.i.i.i1600 = getelementptr inbounds %class.ast, ptr %146, i64 0, i32 2 - %147 = load i32, ptr %m_ref_count.i.i.i.i.i1600, align 4 - %inc.i.i.i.i.i1601 = add i32 %147, 1 - store i32 %inc.i.i.i.i.i1601, ptr %m_ref_count.i.i.i.i.i1600, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1602 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1602: ; preds = %if.then.i.i.i.i1599, %invoke.cont61.i.i - %148 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1604 = icmp eq ptr %148, null - br i1 %cmp.i.i1604, label %if.then.i.i1613, label %lor.lhs.false.i.i1605 - -lor.lhs.false.i.i1605: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1602 - %arrayidx.i.i1606 = getelementptr inbounds i32, ptr %148, i64 -1 - %149 = load i32, ptr %arrayidx.i.i1606, align 4 - %arrayidx4.i.i1607 = getelementptr inbounds i32, ptr %148, i64 -2 - %150 = load i32, ptr %arrayidx4.i.i1607, align 4 - %cmp5.i.i1608 = icmp eq i32 %149, %150 - br i1 %cmp5.i.i1608, label %if.then.i.i1613, label %invoke.cont66.i.i - -if.then.i.i1613: ; preds = %lor.lhs.false.i.i1605, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1602 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc1617 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1617: ; preds = %if.then.i.i1613 - %.pre.i.i1614 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1615 = getelementptr inbounds i32, ptr %.pre.i.i1614, i64 -1 - %.pre1.i.i1616 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1615, align 4 - br label %invoke.cont66.i.i - -invoke.cont66.i.i: ; preds = %.noexc1617, %lor.lhs.false.i.i1605 - %151 = phi i32 [ %.pre1.i.i1616, %.noexc1617 ], [ %149, %lor.lhs.false.i.i1605 ] - %152 = phi ptr [ %.pre.i.i1614, %.noexc1617 ], [ %148, %lor.lhs.false.i.i1605 ] - %idx.ext.i.i1609 = zext i32 %151 to i64 - %add.ptr.i.i1610 = getelementptr inbounds ptr, ptr %152, i64 %idx.ext.i.i1609 - store ptr %146, ptr %add.ptr.i.i1610, align 8 - %153 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1611 = getelementptr inbounds i32, ptr %153, i64 -1 - %154 = load i32, ptr %arrayidx10.i.i1611, align 4 - %inc.i.i1612 = add i32 %154, 1 - store i32 %inc.i.i1612, ptr %arrayidx10.i.i1611, align 4 - %155 = load i32, ptr %m_spos.i.i, align 4 - %156 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1572 = icmp eq ptr %156, null - br i1 %cmp.i.i.i1572, label %invoke.cont70.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i1573 - -_ZN6vectorIP3appLb0EjE3endEv.exit.i1573: ; preds = %invoke.cont66.i.i - %arrayidx.i.i.i1576 = getelementptr inbounds i32, ptr %156, i64 -1 - %157 = load i32, ptr %arrayidx.i.i.i1576, align 4 - %158 = zext i32 %157 to i64 - %add.ptr.i.i1577 = getelementptr inbounds ptr, ptr %156, i64 %158 - %cmp3.i.i1578 = icmp ugt i32 %157, %155 - br i1 %cmp3.i.i1578, label %for.body.i.i1581.preheader, label %if.then.i.i1579 - -for.body.i.i1581.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i1573 - %idx.ext.i1574 = zext i32 %155 to i64 - %add.ptr.i1575 = getelementptr inbounds ptr, ptr %156, i64 %idx.ext.i1574 - br label %for.body.i.i1581 - -for.body.i.i1581: ; preds = %for.body.i.i1581.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1588 - %it.04.i.i1582 = phi ptr [ %incdec.ptr.i.i1589, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1588 ], [ %add.ptr.i1575, %for.body.i.i1581.preheader ] - %159 = load ptr, ptr %it.04.i.i1582, align 8 - %160 = load ptr, ptr %m_result_pr_stack.i726, align 8 - %tobool.not.i.i.i.i.i1583 = icmp eq ptr %159, null - br i1 %tobool.not.i.i.i.i.i1583, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1588, label %if.then.i.i.i.i.i1584 - -if.then.i.i.i.i.i1584: ; preds = %for.body.i.i1581 - %m_ref_count.i.i.i.i.i.i1585 = getelementptr inbounds %class.ast, ptr %159, i64 0, i32 2 - %161 = load i32, ptr %m_ref_count.i.i.i.i.i.i1585, align 4 - %dec.i.i.i.i.i.i1586 = add i32 %161, -1 - store i32 %dec.i.i.i.i.i.i1586, ptr %m_ref_count.i.i.i.i.i.i1585, align 4 - %cmp.i.i.i.i.i1587 = icmp eq i32 %dec.i.i.i.i.i.i1586, 0 - br i1 %cmp.i.i.i.i.i1587, label %if.then2.i.i.i.i.i1594, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1588 - -if.then2.i.i.i.i.i1594: ; preds = %if.then.i.i.i.i.i1584 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %160, ptr noundef nonnull %159) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1588 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1588: ; preds = %if.then2.i.i.i.i.i1594, %if.then.i.i.i.i.i1584, %for.body.i.i1581 - %incdec.ptr.i.i1589 = getelementptr inbounds ptr, ptr %it.04.i.i1582, i64 1 - %cmp.i.i1590 = icmp ult ptr %incdec.ptr.i.i1589, %add.ptr.i.i1577 - br i1 %cmp.i.i1590, label %for.body.i.i1581, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1591, !llvm.loop !31 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1591: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1588 - %.pre.i1592 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i1593 = icmp eq ptr %.pre.i1592, null - br i1 %tobool.not.i.i1593, label %invoke.cont70.i.i, label %if.then.i.i1579 - -if.then.i.i1579: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1591, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1573 - %162 = phi ptr [ %.pre.i1592, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1591 ], [ %156, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1573 ] - %arrayidx.i.i1580 = getelementptr inbounds i32, ptr %162, i64 -1 - store i32 %155, ptr %arrayidx.i.i1580, align 4 - br label %invoke.cont70.i.i - -invoke.cont70.i.i: ; preds = %if.then.i.i1579, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1591, %invoke.cont66.i.i - %163 = load ptr, ptr %m_pr2.i.i, align 8 - %cmp.i1570 = icmp eq ptr %163, null - br i1 %cmp.i1570, label %if.then74.i.i, label %if.end85.i.i - -if.then74.i.i: ; preds = %invoke.cont70.i.i - %this.val53.i.i = load ptr, ptr %28, align 8 - %164 = load ptr, ptr %m_r.i71.i, align 8 - %call81.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val53.i.i, ptr noundef %136, ptr noundef %164) - to label %invoke.cont80.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont80.i.i: ; preds = %if.then74.i.i - %tobool.not.i1556 = icmp eq ptr %call81.i.i, null - br i1 %tobool.not.i1556, label %if.end.i1560, label %_ZN11ast_manager7inc_refEP3ast.exit.i1557 - -_ZN11ast_manager7inc_refEP3ast.exit.i1557: ; preds = %invoke.cont80.i.i - %m_ref_count.i.i.i1558 = getelementptr inbounds %class.ast, ptr %call81.i.i, i64 0, i32 2 - %165 = load i32, ptr %m_ref_count.i.i.i1558, align 4 - %inc.i.i.i1559 = add i32 %165, 1 - store i32 %inc.i.i.i1559, ptr %m_ref_count.i.i.i1558, align 4 - br label %if.end.i1560 - -if.end.i1560: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1557, %invoke.cont80.i.i - %166 = load ptr, ptr %m_pr2.i.i, align 8 - %tobool.not.i3.i1561 = icmp eq ptr %166, null - br i1 %tobool.not.i3.i1561, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1569, label %if.then.i.i.i1562 - -if.then.i.i.i1562: ; preds = %if.end.i1560 - %167 = load ptr, ptr %m_manager.i.i1563, align 8 - %m_ref_count.i.i.i.i1564 = getelementptr inbounds %class.ast, ptr %166, i64 0, i32 2 - %168 = load i32, ptr %m_ref_count.i.i.i.i1564, align 4 - %dec.i.i.i.i1565 = add i32 %168, -1 - store i32 %dec.i.i.i.i1565, ptr %m_ref_count.i.i.i.i1564, align 4 - %cmp.i.i.i1566 = icmp eq i32 %dec.i.i.i.i1565, 0 - br i1 %cmp.i.i.i1566, label %if.then2.i.i.i1567, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1569 - -if.then2.i.i.i1567: ; preds = %if.then.i.i.i1562 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %167, ptr noundef nonnull %166) - to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1569 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1569: ; preds = %if.then2.i.i.i1567, %if.end.i1560, %if.then.i.i.i1562 - store ptr %call81.i.i, ptr %m_pr2.i.i, align 8 - br label %if.end85.i.i - -if.end85.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1569, %invoke.cont70.i.i - %169 = phi ptr [ %call81.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1569 ], [ %163, %invoke.cont70.i.i ] - %this.val52.i.i = load ptr, ptr %28, align 8 - %170 = load ptr, ptr %m_pr.i64.i, align 8 - %call92.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val52.i.i, ptr noundef %170, ptr noundef %169) - to label %invoke.cont91.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont91.i.i: ; preds = %if.end85.i.i - %tobool.not.i1542 = icmp eq ptr %call92.i.i, null - br i1 %tobool.not.i1542, label %if.end.i1546, label %_ZN11ast_manager7inc_refEP3ast.exit.i1543 - -_ZN11ast_manager7inc_refEP3ast.exit.i1543: ; preds = %invoke.cont91.i.i - %m_ref_count.i.i.i1544 = getelementptr inbounds %class.ast, ptr %call92.i.i, i64 0, i32 2 - %171 = load i32, ptr %m_ref_count.i.i.i1544, align 4 - %inc.i.i.i1545 = add i32 %171, 1 - store i32 %inc.i.i.i1545, ptr %m_ref_count.i.i.i1544, align 4 - br label %if.end.i1546 - -if.end.i1546: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1543, %invoke.cont91.i.i - %172 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i1547 = icmp eq ptr %172, null - br i1 %tobool.not.i3.i1547, label %invoke.cont94.i.i, label %if.then.i.i.i1548 - -if.then.i.i.i1548: ; preds = %if.end.i1546 - %173 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i1550 = getelementptr inbounds %class.ast, ptr %172, i64 0, i32 2 - %174 = load i32, ptr %m_ref_count.i.i.i.i1550, align 4 - %dec.i.i.i.i1551 = add i32 %174, -1 - store i32 %dec.i.i.i.i1551, ptr %m_ref_count.i.i.i.i1550, align 4 - %cmp.i.i.i1552 = icmp eq i32 %dec.i.i.i.i1551, 0 - br i1 %cmp.i.i.i1552, label %if.then2.i.i.i1553, label %invoke.cont94.i.i - -if.then2.i.i.i1553: ; preds = %if.then.i.i.i1548 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %173, ptr noundef nonnull %172) - to label %invoke.cont94.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont94.i.i: ; preds = %if.then.i.i.i1548, %if.end.i1546, %if.then2.i.i.i1553 - store ptr %call92.i.i, ptr %m_pr.i64.i, align 8 - br i1 %tobool.not.i1542, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1524, label %if.then.i.i.i.i1521 - -if.then.i.i.i.i1521: ; preds = %invoke.cont94.i.i - %m_ref_count.i.i.i.i.i1522 = getelementptr inbounds %class.ast, ptr %call92.i.i, i64 0, i32 2 - %175 = load i32, ptr %m_ref_count.i.i.i.i.i1522, align 4 - %inc.i.i.i.i.i1523 = add i32 %175, 1 - store i32 %inc.i.i.i.i.i1523, ptr %m_ref_count.i.i.i.i.i1522, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1524 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1524: ; preds = %if.then.i.i.i.i1521, %invoke.cont94.i.i - %176 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1526 = icmp eq ptr %176, null - br i1 %cmp.i.i1526, label %if.then.i.i1535, label %lor.lhs.false.i.i1527 - -lor.lhs.false.i.i1527: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1524 - %arrayidx.i.i1528 = getelementptr inbounds i32, ptr %176, i64 -1 - %177 = load i32, ptr %arrayidx.i.i1528, align 4 - %arrayidx4.i.i1529 = getelementptr inbounds i32, ptr %176, i64 -2 - %178 = load i32, ptr %arrayidx4.i.i1529, align 4 - %cmp5.i.i1530 = icmp eq i32 %177, %178 - br i1 %cmp5.i.i1530, label %if.then.i.i1535, label %invoke.cont99.i.i - -if.then.i.i1535: ; preds = %lor.lhs.false.i.i1527, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1524 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1539 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1539: ; preds = %if.then.i.i1535 - %.pre.i.i1536 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1537 = getelementptr inbounds i32, ptr %.pre.i.i1536, i64 -1 - %.pre1.i.i1538 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1537, align 4 - br label %invoke.cont99.i.i - -invoke.cont99.i.i: ; preds = %.noexc1539, %lor.lhs.false.i.i1527 - %179 = phi i32 [ %.pre1.i.i1538, %.noexc1539 ], [ %177, %lor.lhs.false.i.i1527 ] - %180 = phi ptr [ %.pre.i.i1536, %.noexc1539 ], [ %176, %lor.lhs.false.i.i1527 ] - %idx.ext.i.i1531 = zext i32 %179 to i64 - %add.ptr.i.i1532 = getelementptr inbounds ptr, ptr %180, i64 %idx.ext.i.i1531 - store ptr %call92.i.i, ptr %add.ptr.i.i1532, align 8 - %181 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1533 = getelementptr inbounds i32, ptr %181, i64 -1 - %182 = load i32, ptr %arrayidx10.i.i1533, align 4 - %inc.i.i1534 = add i32 %182, 1 - store i32 %inc.i.i1534, ptr %arrayidx10.i.i1533, align 4 - %183 = load ptr, ptr %m_pr2.i.i, align 8 - %tobool.not.i3.i1511 = icmp eq ptr %183, null - br i1 %tobool.not.i3.i1511, label %if.then105.i.i, label %if.then.i.i.i1512 - -if.then.i.i.i1512: ; preds = %invoke.cont99.i.i - %184 = load ptr, ptr %m_manager.i.i1563, align 8 - %m_ref_count.i.i.i.i1514 = getelementptr inbounds %class.ast, ptr %183, i64 0, i32 2 - %185 = load i32, ptr %m_ref_count.i.i.i.i1514, align 4 - %dec.i.i.i.i1515 = add i32 %185, -1 - store i32 %dec.i.i.i.i1515, ptr %m_ref_count.i.i.i.i1514, align 4 - %cmp.i.i.i1516 = icmp eq i32 %dec.i.i.i.i1515, 0 - br i1 %cmp.i.i.i1516, label %if.then2.i.i.i1517, label %if.then105.i.i - -if.then2.i.i.i1517: ; preds = %if.then.i.i.i1512 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %184, ptr noundef nonnull %183) - to label %if.then105.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.then105.i.i: ; preds = %if.then.i.i.i1512, %invoke.cont99.i.i, %if.then2.i.i.i1517 - store ptr null, ptr %m_pr2.i.i, align 8 - %bf.load111.i.i = load i32, ptr %89, align 8 - %bf.clear112.i.i = and i32 %bf.load111.i.i, 1 - %tobool.i.i.not = icmp eq i32 %bf.clear112.i.i, 0 - br i1 %tobool.i.i.not, label %invoke.cont113.i.i, label %if.then.i1507 - -if.then.i1507: ; preds = %if.then105.i.i - %186 = load ptr, ptr %m_pr.i64.i, align 8 - %187 = load ptr, ptr %m_r.i71.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %187, ptr noundef %186) - to label %invoke.cont113.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont113.i.i: ; preds = %if.then105.i.i, %if.then.i1507 - %188 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1503 = getelementptr inbounds i32, ptr %188, i64 -1 - %189 = load i32, ptr %arrayidx.i1503, align 4 - %dec.i1504 = add i32 %189, -1 - store i32 %dec.i1504, ptr %arrayidx.i1503, align 4 - %this.val58.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i1493 = icmp eq ptr %this.val58.i.i, null - br i1 %cmp.i.i1493, label %invoke.cont115.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1494 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1494: ; preds = %invoke.cont113.i.i - %arrayidx.i.i1495 = getelementptr inbounds i32, ptr %this.val58.i.i, i64 -1 - %190 = load i32, ptr %arrayidx.i.i1495, align 4 - %cmp3.i.i1496 = icmp eq i32 %190, 0 - br i1 %cmp3.i.i1496, label %invoke.cont115.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1497 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1497: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1494 - %191 = add i32 %190, -1 - %192 = zext i32 %191 to i64 - %m_new_child.i1498 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val58.i.i, i64 %192, i32 1 - %bf.load.i1499 = load i32, ptr %m_new_child.i1498, align 8 - %bf.set.i1500 = or i32 %bf.load.i1499, 2 - store i32 %bf.set.i1500, ptr %m_new_child.i1498, align 8 - br label %invoke.cont115.i.i - -invoke.cont115.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1497, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1494, %invoke.cont113.i.i - %193 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i3.i1484 = icmp eq ptr %193, null - br i1 %tobool.not.i3.i1484, label %invoke.cont117.i.i, label %if.then.i.i.i1485 - -if.then.i.i.i1485: ; preds = %invoke.cont115.i.i - %194 = load ptr, ptr %m_manager.i.i750, align 8 - %m_ref_count.i.i.i.i1487 = getelementptr inbounds %class.ast, ptr %193, i64 0, i32 2 - %195 = load i32, ptr %m_ref_count.i.i.i.i1487, align 4 - %dec.i.i.i.i1488 = add i32 %195, -1 - store i32 %dec.i.i.i.i1488, ptr %m_ref_count.i.i.i.i1487, align 4 - %cmp.i.i.i1489 = icmp eq i32 %dec.i.i.i.i1488, 0 - br i1 %cmp.i.i.i1489, label %if.then2.i.i.i1490, label %invoke.cont117.i.i - -if.then2.i.i.i1490: ; preds = %if.then.i.i.i1485 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %194, ptr noundef nonnull %193) - to label %invoke.cont117.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont117.i.i: ; preds = %if.then.i.i.i1485, %invoke.cont115.i.i, %if.then2.i.i.i1490 - store ptr null, ptr %m_r.i71.i, align 8 - %196 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i1474 = icmp eq ptr %196, null - br i1 %tobool.not.i3.i1474, label %cleanup.i.i, label %if.then.i.i.i1475 - -if.then.i.i.i1475: ; preds = %invoke.cont117.i.i - %197 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i1477 = getelementptr inbounds %class.ast, ptr %196, i64 0, i32 2 - %198 = load i32, ptr %m_ref_count.i.i.i.i1477, align 4 - %dec.i.i.i.i1478 = add i32 %198, -1 - store i32 %dec.i.i.i.i1478, ptr %m_ref_count.i.i.i.i1477, align 4 - %cmp.i.i.i1479 = icmp eq i32 %dec.i.i.i.i1478, 0 - br i1 %cmp.i.i.i1479, label %if.then2.i.i.i1480, label %cleanup.i.i - -if.then2.i.i.i1480: ; preds = %if.then.i.i.i1475 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %197, ptr noundef nonnull %196) - to label %cleanup.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.else235.i.i: ; preds = %invoke.cont55.i.i - %bf.load236.i.i = load i32, ptr %89, align 8 - %199 = and i32 %bf.load236.i.i, 2 - %tobool239.not.i.i = icmp eq i32 %199, 0 - br i1 %tobool239.not.i.i, label %if.end.i1400, label %if.then240.i.i - -if.then240.i.i: ; preds = %if.else235.i.i - %this.val50.i.i = load ptr, ptr %28, align 8 - %call243.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val50.i.i, ptr noundef %118, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i) - to label %invoke.cont242.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont242.i.i: ; preds = %if.then240.i.i - %tobool.not.i1424 = icmp eq ptr %call243.i.i, null - br i1 %tobool.not.i1424, label %if.end.i1428, label %_ZN11ast_manager7inc_refEP3ast.exit.i1425 - -_ZN11ast_manager7inc_refEP3ast.exit.i1425: ; preds = %invoke.cont242.i.i - %m_ref_count.i.i.i1426 = getelementptr inbounds %class.ast, ptr %call243.i.i, i64 0, i32 2 - %200 = load i32, ptr %m_ref_count.i.i.i1426, align 4 - %inc.i.i.i1427 = add i32 %200, 1 - store i32 %inc.i.i.i1427, ptr %m_ref_count.i.i.i1426, align 4 - br label %if.end.i1428 - -if.end.i1428: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1425, %invoke.cont242.i.i - %201 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i3.i1429 = icmp eq ptr %201, null - br i1 %tobool.not.i3.i1429, label %invoke.cont245.i.i, label %if.then.i.i.i1430 - -if.then.i.i.i1430: ; preds = %if.end.i1428 - %202 = load ptr, ptr %m_manager.i.i750, align 8 - %m_ref_count.i.i.i.i1432 = getelementptr inbounds %class.ast, ptr %201, i64 0, i32 2 - %203 = load i32, ptr %m_ref_count.i.i.i.i1432, align 4 - %dec.i.i.i.i1433 = add i32 %203, -1 - store i32 %dec.i.i.i.i1433, ptr %m_ref_count.i.i.i.i1432, align 4 - %cmp.i.i.i1434 = icmp eq i32 %dec.i.i.i.i1433, 0 - br i1 %cmp.i.i.i1434, label %if.then2.i.i.i1435, label %invoke.cont245.i.i - -if.then2.i.i.i1435: ; preds = %if.then.i.i.i1430 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %202, ptr noundef nonnull %201) - to label %invoke.cont245.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont245.i.i: ; preds = %if.then.i.i.i1430, %if.end.i1428, %if.then2.i.i.i1435 - store ptr %call243.i.i, ptr %m_r.i71.i, align 8 - %this.val49.i.i = load ptr, ptr %28, align 8 - %call252.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val49.i.i, ptr noundef nonnull %87, ptr noundef %call243.i.i) - to label %invoke.cont251.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont251.i.i: ; preds = %invoke.cont245.i.i - %tobool.not.i1410 = icmp eq ptr %call252.i.i, null - br i1 %tobool.not.i1410, label %if.end.i1414, label %_ZN11ast_manager7inc_refEP3ast.exit.i1411 - -_ZN11ast_manager7inc_refEP3ast.exit.i1411: ; preds = %invoke.cont251.i.i - %m_ref_count.i.i.i1412 = getelementptr inbounds %class.ast, ptr %call252.i.i, i64 0, i32 2 - %204 = load i32, ptr %m_ref_count.i.i.i1412, align 4 - %inc.i.i.i1413 = add i32 %204, 1 - store i32 %inc.i.i.i1413, ptr %m_ref_count.i.i.i1412, align 4 - br label %if.end.i1414 - -if.end.i1414: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1411, %invoke.cont251.i.i - %205 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i1415 = icmp eq ptr %205, null - br i1 %tobool.not.i3.i1415, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1423, label %if.then.i.i.i1416 - -if.then.i.i.i1416: ; preds = %if.end.i1414 - %206 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i1418 = getelementptr inbounds %class.ast, ptr %205, i64 0, i32 2 - %207 = load i32, ptr %m_ref_count.i.i.i.i1418, align 4 - %dec.i.i.i.i1419 = add i32 %207, -1 - store i32 %dec.i.i.i.i1419, ptr %m_ref_count.i.i.i.i1418, align 4 - %cmp.i.i.i1420 = icmp eq i32 %dec.i.i.i.i1419, 0 - br i1 %cmp.i.i.i1420, label %if.then2.i.i.i1421, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1423 - -if.then2.i.i.i1421: ; preds = %if.then.i.i.i1416 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %206, ptr noundef nonnull %205) - to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1423 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1423: ; preds = %if.then2.i.i.i1421, %if.end.i1414, %if.then.i.i.i1416 - store ptr %call252.i.i, ptr %m_pr.i64.i, align 8 - br label %if.end261.i.i - -if.end.i1400: ; preds = %if.else235.i.i - %m_ref_count.i.i.i1398 = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 - %208 = load i32, ptr %m_ref_count.i.i.i1398, align 4 - %inc.i.i.i1399 = add i32 %208, 1 - store i32 %inc.i.i.i1399, ptr %m_ref_count.i.i.i1398, align 4 - %209 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i3.i1401 = icmp eq ptr %209, null - br i1 %tobool.not.i3.i1401, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1409, label %if.then.i.i.i1402 - -if.then.i.i.i1402: ; preds = %if.end.i1400 - %210 = load ptr, ptr %m_manager.i.i750, align 8 - %m_ref_count.i.i.i.i1404 = getelementptr inbounds %class.ast, ptr %209, i64 0, i32 2 - %211 = load i32, ptr %m_ref_count.i.i.i.i1404, align 4 - %dec.i.i.i.i1405 = add i32 %211, -1 - store i32 %dec.i.i.i.i1405, ptr %m_ref_count.i.i.i.i1404, align 4 - %cmp.i.i.i1406 = icmp eq i32 %dec.i.i.i.i1405, 0 - br i1 %cmp.i.i.i1406, label %if.then2.i.i.i1407, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1409 - -if.then2.i.i.i1407: ; preds = %if.then.i.i.i1402 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %210, ptr noundef nonnull %209) - to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1409 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1409: ; preds = %if.then2.i.i.i1407, %if.end.i1400, %if.then.i.i.i1402 - store ptr %87, ptr %m_r.i71.i, align 8 - br label %if.end261.i.i - -if.end261.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1423, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1409 - %212 = load i32, ptr %m_spos.i.i, align 4 - %213 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1370 = icmp eq ptr %213, null - br i1 %cmp.i.i.i1370, label %invoke.cont264.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1371 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1371: ; preds = %if.end261.i.i - %arrayidx.i.i.i1374 = getelementptr inbounds i32, ptr %213, i64 -1 - %214 = load i32, ptr %arrayidx.i.i.i1374, align 4 - %215 = zext i32 %214 to i64 - %add.ptr.i.i1375 = getelementptr inbounds ptr, ptr %213, i64 %215 - %cmp3.i.i1376 = icmp ugt i32 %214, %212 - br i1 %cmp3.i.i1376, label %for.body.i.i1379.preheader, label %if.then.i.i1377 - -for.body.i.i1379.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1371 - %idx.ext.i1372 = zext i32 %212 to i64 - %add.ptr.i1373 = getelementptr inbounds ptr, ptr %213, i64 %idx.ext.i1372 - br label %for.body.i.i1379 - -for.body.i.i1379: ; preds = %for.body.i.i1379.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1386 - %it.04.i.i1380 = phi ptr [ %incdec.ptr.i.i1387, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1386 ], [ %add.ptr.i1373, %for.body.i.i1379.preheader ] - %216 = load ptr, ptr %it.04.i.i1380, align 8 - %217 = load ptr, ptr %m_result_stack.i970, align 8 - %tobool.not.i.i.i.i.i1381 = icmp eq ptr %216, null - br i1 %tobool.not.i.i.i.i.i1381, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1386, label %if.then.i.i.i.i.i1382 - -if.then.i.i.i.i.i1382: ; preds = %for.body.i.i1379 - %m_ref_count.i.i.i.i.i.i1383 = getelementptr inbounds %class.ast, ptr %216, i64 0, i32 2 - %218 = load i32, ptr %m_ref_count.i.i.i.i.i.i1383, align 4 - %dec.i.i.i.i.i.i1384 = add i32 %218, -1 - store i32 %dec.i.i.i.i.i.i1384, ptr %m_ref_count.i.i.i.i.i.i1383, align 4 - %cmp.i.i.i.i.i1385 = icmp eq i32 %dec.i.i.i.i.i.i1384, 0 - br i1 %cmp.i.i.i.i.i1385, label %if.then2.i.i.i.i.i1392, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1386 - -if.then2.i.i.i.i.i1392: ; preds = %if.then.i.i.i.i.i1382 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %217, ptr noundef nonnull %216) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1386 unwind label %lpad.i.i.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1386: ; preds = %if.then2.i.i.i.i.i1392, %if.then.i.i.i.i.i1382, %for.body.i.i1379 - %incdec.ptr.i.i1387 = getelementptr inbounds ptr, ptr %it.04.i.i1380, i64 1 - %cmp.i.i1388 = icmp ult ptr %incdec.ptr.i.i1387, %add.ptr.i.i1375 - br i1 %cmp.i.i1388, label %for.body.i.i1379, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1389, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1389: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1386 - %.pre.i1390 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i1391 = icmp eq ptr %.pre.i1390, null - br i1 %tobool.not.i.i1391, label %invoke.cont264.i.i, label %if.then.i.i1377 - -if.then.i.i1377: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1389, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1371 - %219 = phi ptr [ %.pre.i1390, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1389 ], [ %213, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1371 ] - %arrayidx.i.i1378 = getelementptr inbounds i32, ptr %219, i64 -1 - store i32 %212, ptr %arrayidx.i.i1378, align 4 - br label %invoke.cont264.i.i - -invoke.cont264.i.i: ; preds = %if.then.i.i1377, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1389, %if.end261.i.i - %220 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i.i.i.i1347 = icmp eq ptr %220, null - br i1 %tobool.not.i.i.i.i1347, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1351, label %if.then.i.i.i.i1348 - -if.then.i.i.i.i1348: ; preds = %invoke.cont264.i.i - %m_ref_count.i.i.i.i.i1349 = getelementptr inbounds %class.ast, ptr %220, i64 0, i32 2 - %221 = load i32, ptr %m_ref_count.i.i.i.i.i1349, align 4 - %inc.i.i.i.i.i1350 = add i32 %221, 1 - store i32 %inc.i.i.i.i.i1350, ptr %m_ref_count.i.i.i.i.i1349, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1351 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1351: ; preds = %if.then.i.i.i.i1348, %invoke.cont264.i.i - %222 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1353 = icmp eq ptr %222, null - br i1 %cmp.i.i1353, label %if.then.i.i1362, label %lor.lhs.false.i.i1354 - -lor.lhs.false.i.i1354: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1351 - %arrayidx.i.i1355 = getelementptr inbounds i32, ptr %222, i64 -1 - %223 = load i32, ptr %arrayidx.i.i1355, align 4 - %arrayidx4.i.i1356 = getelementptr inbounds i32, ptr %222, i64 -2 - %224 = load i32, ptr %arrayidx4.i.i1356, align 4 - %cmp5.i.i1357 = icmp eq i32 %223, %224 - br i1 %cmp5.i.i1357, label %if.then.i.i1362, label %invoke.cont269.i.i - -if.then.i.i1362: ; preds = %lor.lhs.false.i.i1354, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1351 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc1366 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1366: ; preds = %if.then.i.i1362 - %.pre.i.i1363 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1364 = getelementptr inbounds i32, ptr %.pre.i.i1363, i64 -1 - %.pre1.i.i1365 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1364, align 4 - br label %invoke.cont269.i.i - -invoke.cont269.i.i: ; preds = %.noexc1366, %lor.lhs.false.i.i1354 - %225 = phi i32 [ %.pre1.i.i1365, %.noexc1366 ], [ %223, %lor.lhs.false.i.i1354 ] - %226 = phi ptr [ %.pre.i.i1363, %.noexc1366 ], [ %222, %lor.lhs.false.i.i1354 ] - %idx.ext.i.i1358 = zext i32 %225 to i64 - %add.ptr.i.i1359 = getelementptr inbounds ptr, ptr %226, i64 %idx.ext.i.i1358 - store ptr %220, ptr %add.ptr.i.i1359, align 8 - %227 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1360 = getelementptr inbounds i32, ptr %227, i64 -1 - %228 = load i32, ptr %arrayidx10.i.i1360, align 4 - %inc.i.i1361 = add i32 %228, 1 - store i32 %inc.i.i1361, ptr %arrayidx10.i.i1360, align 4 - %bf.load277.i.i = load i32, ptr %89, align 8 - %bf.clear278.i.i = and i32 %bf.load277.i.i, 1 - %tobool279.i.i.not = icmp eq i32 %bf.clear278.i.i, 0 - br i1 %tobool279.i.i.not, label %invoke.cont280.i.i, label %if.then.i1344 - -if.then.i1344: ; preds = %invoke.cont269.i.i - %229 = load ptr, ptr %m_pr.i64.i, align 8 - %230 = load ptr, ptr %m_r.i71.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %230, ptr noundef %229) - to label %invoke.cont280.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont280.i.i: ; preds = %invoke.cont269.i.i, %if.then.i1344 - %231 = load i32, ptr %m_spos.i.i, align 4 - %232 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1317 = icmp eq ptr %232, null - br i1 %cmp.i.i.i1317, label %invoke.cont283.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i1318 - -_ZN6vectorIP3appLb0EjE3endEv.exit.i1318: ; preds = %invoke.cont280.i.i - %arrayidx.i.i.i1321 = getelementptr inbounds i32, ptr %232, i64 -1 - %233 = load i32, ptr %arrayidx.i.i.i1321, align 4 - %234 = zext i32 %233 to i64 - %add.ptr.i.i1322 = getelementptr inbounds ptr, ptr %232, i64 %234 - %cmp3.i.i1323 = icmp ugt i32 %233, %231 - br i1 %cmp3.i.i1323, label %for.body.i.i1326.preheader, label %if.then.i.i1324 - -for.body.i.i1326.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i1318 - %idx.ext.i1319 = zext i32 %231 to i64 - %add.ptr.i1320 = getelementptr inbounds ptr, ptr %232, i64 %idx.ext.i1319 - br label %for.body.i.i1326 - -for.body.i.i1326: ; preds = %for.body.i.i1326.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1333 - %it.04.i.i1327 = phi ptr [ %incdec.ptr.i.i1334, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1333 ], [ %add.ptr.i1320, %for.body.i.i1326.preheader ] - %235 = load ptr, ptr %it.04.i.i1327, align 8 - %236 = load ptr, ptr %m_result_pr_stack.i726, align 8 - %tobool.not.i.i.i.i.i1328 = icmp eq ptr %235, null - br i1 %tobool.not.i.i.i.i.i1328, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1333, label %if.then.i.i.i.i.i1329 - -if.then.i.i.i.i.i1329: ; preds = %for.body.i.i1326 - %m_ref_count.i.i.i.i.i.i1330 = getelementptr inbounds %class.ast, ptr %235, i64 0, i32 2 - %237 = load i32, ptr %m_ref_count.i.i.i.i.i.i1330, align 4 - %dec.i.i.i.i.i.i1331 = add i32 %237, -1 - store i32 %dec.i.i.i.i.i.i1331, ptr %m_ref_count.i.i.i.i.i.i1330, align 4 - %cmp.i.i.i.i.i1332 = icmp eq i32 %dec.i.i.i.i.i.i1331, 0 - br i1 %cmp.i.i.i.i.i1332, label %if.then2.i.i.i.i.i1339, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1333 - -if.then2.i.i.i.i.i1339: ; preds = %if.then.i.i.i.i.i1329 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %236, ptr noundef nonnull %235) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1333 unwind label %lpad.i.i.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1333: ; preds = %if.then2.i.i.i.i.i1339, %if.then.i.i.i.i.i1329, %for.body.i.i1326 - %incdec.ptr.i.i1334 = getelementptr inbounds ptr, ptr %it.04.i.i1327, i64 1 - %cmp.i.i1335 = icmp ult ptr %incdec.ptr.i.i1334, %add.ptr.i.i1322 - br i1 %cmp.i.i1335, label %for.body.i.i1326, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1336, !llvm.loop !31 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1336: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1333 - %.pre.i1337 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i1338 = icmp eq ptr %.pre.i1337, null - br i1 %tobool.not.i.i1338, label %invoke.cont283.i.i, label %if.then.i.i1324 - -if.then.i.i1324: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1336, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1318 - %238 = phi ptr [ %.pre.i1337, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1336 ], [ %232, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1318 ] - %arrayidx.i.i1325 = getelementptr inbounds i32, ptr %238, i64 -1 - store i32 %231, ptr %arrayidx.i.i1325, align 4 - br label %invoke.cont283.i.i - -invoke.cont283.i.i: ; preds = %if.then.i.i1324, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1336, %invoke.cont280.i.i - %239 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i.i.i.i1294 = icmp eq ptr %239, null - br i1 %tobool.not.i.i.i.i1294, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1298, label %if.then.i.i.i.i1295 - -if.then.i.i.i.i1295: ; preds = %invoke.cont283.i.i - %m_ref_count.i.i.i.i.i1296 = getelementptr inbounds %class.ast, ptr %239, i64 0, i32 2 - %240 = load i32, ptr %m_ref_count.i.i.i.i.i1296, align 4 - %inc.i.i.i.i.i1297 = add i32 %240, 1 - store i32 %inc.i.i.i.i.i1297, ptr %m_ref_count.i.i.i.i.i1296, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1298 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1298: ; preds = %if.then.i.i.i.i1295, %invoke.cont283.i.i - %241 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1300 = icmp eq ptr %241, null - br i1 %cmp.i.i1300, label %if.then.i.i1309, label %lor.lhs.false.i.i1301 - -lor.lhs.false.i.i1301: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1298 - %arrayidx.i.i1302 = getelementptr inbounds i32, ptr %241, i64 -1 - %242 = load i32, ptr %arrayidx.i.i1302, align 4 - %arrayidx4.i.i1303 = getelementptr inbounds i32, ptr %241, i64 -2 - %243 = load i32, ptr %arrayidx4.i.i1303, align 4 - %cmp5.i.i1304 = icmp eq i32 %242, %243 - br i1 %cmp5.i.i1304, label %if.then.i.i1309, label %invoke.cont287.i.i - -if.then.i.i1309: ; preds = %lor.lhs.false.i.i1301, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1298 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1313 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1313: ; preds = %if.then.i.i1309 - %.pre.i.i1310 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1311 = getelementptr inbounds i32, ptr %.pre.i.i1310, i64 -1 - %.pre1.i.i1312 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1311, align 4 - br label %invoke.cont287.i.i - -invoke.cont287.i.i: ; preds = %.noexc1313, %lor.lhs.false.i.i1301 - %244 = phi i32 [ %.pre1.i.i1312, %.noexc1313 ], [ %242, %lor.lhs.false.i.i1301 ] - %245 = phi ptr [ %.pre.i.i1310, %.noexc1313 ], [ %241, %lor.lhs.false.i.i1301 ] - %idx.ext.i.i1305 = zext i32 %244 to i64 - %add.ptr.i.i1306 = getelementptr inbounds ptr, ptr %245, i64 %idx.ext.i.i1305 - store ptr %239, ptr %add.ptr.i.i1306, align 8 - %246 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1307 = getelementptr inbounds i32, ptr %246, i64 -1 - %247 = load i32, ptr %arrayidx10.i.i1307, align 4 - %inc.i.i1308 = add i32 %247, 1 - store i32 %inc.i.i1308, ptr %arrayidx10.i.i1307, align 4 - %248 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i1285 = icmp eq ptr %248, null - br i1 %tobool.not.i3.i1285, label %invoke.cont291.i.i, label %if.then.i.i.i1286 - -if.then.i.i.i1286: ; preds = %invoke.cont287.i.i - %249 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i1288 = getelementptr inbounds %class.ast, ptr %248, i64 0, i32 2 - %250 = load i32, ptr %m_ref_count.i.i.i.i1288, align 4 - %dec.i.i.i.i1289 = add i32 %250, -1 - store i32 %dec.i.i.i.i1289, ptr %m_ref_count.i.i.i.i1288, align 4 - %cmp.i.i.i1290 = icmp eq i32 %dec.i.i.i.i1289, 0 - br i1 %cmp.i.i.i1290, label %if.then2.i.i.i1291, label %invoke.cont291.i.i - -if.then2.i.i.i1291: ; preds = %if.then.i.i.i1286 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %249, ptr noundef nonnull %248) - to label %invoke.cont291.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont291.i.i: ; preds = %if.then.i.i.i1286, %invoke.cont287.i.i, %if.then2.i.i.i1291 - store ptr null, ptr %m_pr.i64.i, align 8 - %251 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1281 = getelementptr inbounds i32, ptr %251, i64 -1 - %252 = load i32, ptr %arrayidx.i1281, align 4 - %dec.i1282 = add i32 %252, -1 - store i32 %dec.i1282, ptr %arrayidx.i1281, align 4 - %253 = load ptr, ptr %m_r.i71.i, align 8 - %this.val59.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i1269 = icmp eq ptr %87, %253 - %cmp.i.i.i1270 = icmp eq ptr %this.val59.i.i, null - %or.cond.i1271 = select i1 %cmp.not.i1269, i1 true, i1 %cmp.i.i.i1270 - br i1 %or.cond.i1271, label %invoke.cont297.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1272 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1272: ; preds = %invoke.cont291.i.i - %arrayidx.i.i.i1273 = getelementptr inbounds i32, ptr %this.val59.i.i, i64 -1 - %254 = load i32, ptr %arrayidx.i.i.i1273, align 4 - %cmp3.i.i.i1274 = icmp eq i32 %254, 0 - br i1 %cmp3.i.i.i1274, label %invoke.cont297.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1275 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1275: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1272 - %255 = add i32 %254, -1 - %256 = zext i32 %255 to i64 - %m_new_child.i.i1276 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i.i, i64 %256, i32 1 - %bf.load.i.i1277 = load i32, ptr %m_new_child.i.i1276, align 8 - %bf.set.i.i1278 = or i32 %bf.load.i.i1277, 2 - store i32 %bf.set.i.i1278, ptr %m_new_child.i.i1276, align 8 - %.pr.pre = load ptr, ptr %m_r.i71.i, align 8 - br label %invoke.cont297.i.i - -invoke.cont297.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1275, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1272, %invoke.cont291.i.i - %257 = phi ptr [ %253, %invoke.cont291.i.i ], [ %253, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1272 ], [ %.pr.pre, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1275 ] - %tobool.not.i3.i1260 = icmp eq ptr %257, null - br i1 %tobool.not.i3.i1260, label %cleanup.i.i, label %if.then.i.i.i1261 - -if.then.i.i.i1261: ; preds = %invoke.cont297.i.i - %258 = load ptr, ptr %m_manager.i.i750, align 8 - %m_ref_count.i.i.i.i1263 = getelementptr inbounds %class.ast, ptr %257, i64 0, i32 2 - %259 = load i32, ptr %m_ref_count.i.i.i.i1263, align 4 - %dec.i.i.i.i1264 = add i32 %259, -1 - store i32 %dec.i.i.i.i1264, ptr %m_ref_count.i.i.i.i1263, align 4 - %cmp.i.i.i1265 = icmp eq i32 %dec.i.i.i.i1264, 0 - br i1 %cmp.i.i.i1265, label %if.then2.i.i.i1266, label %cleanup.i.i - -if.then2.i.i.i1266: ; preds = %if.then.i.i.i1261 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %258, ptr noundef nonnull %257) - to label %if.then2.i.i.i1266._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1268_crit_edge unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.then2.i.i.i1266._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1268_crit_edge: ; preds = %if.then2.i.i.i1266 - %.pre2940.pre = load ptr, ptr %new_t.i.i, align 8 - br label %cleanup.i.i - -cleanup.i.i: ; preds = %if.then.i.i.i1261, %invoke.cont297.i.i, %if.then2.i.i.i1266._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1268_crit_edge, %if.then.i.i.i1475, %invoke.cont117.i.i, %if.then2.i.i.i1480 - %m_pr.i64.i.sink = phi ptr [ %m_pr.i64.i, %if.then2.i.i.i1480 ], [ %m_pr.i64.i, %invoke.cont117.i.i ], [ %m_pr.i64.i, %if.then.i.i.i1475 ], [ %m_r.i71.i, %if.then2.i.i.i1266._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1268_crit_edge ], [ %m_r.i71.i, %invoke.cont297.i.i ], [ %m_r.i71.i, %if.then.i.i.i1261 ] - %260 = phi ptr [ %136, %if.then2.i.i.i1480 ], [ %136, %invoke.cont117.i.i ], [ %136, %if.then.i.i.i1475 ], [ %.pre2940.pre, %if.then2.i.i.i1266._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1268_crit_edge ], [ %136, %invoke.cont297.i.i ], [ %136, %if.then.i.i.i1261 ] - store ptr null, ptr %m_pr.i64.i.sink, align 8 - %tobool.not.i.i1249 = icmp eq ptr %260, null - br i1 %tobool.not.i.i1249, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i1250 - -if.then.i.i.i1250: ; preds = %cleanup.i.i - %261 = load ptr, ptr %m_manager.i1707, align 8 - %m_ref_count.i.i.i.i1252 = getelementptr inbounds %class.ast, ptr %260, i64 0, i32 2 - %262 = load i32, ptr %m_ref_count.i.i.i.i1252, align 4 - %dec.i.i.i.i1253 = add i32 %262, -1 - store i32 %dec.i.i.i.i1253, ptr %m_ref_count.i.i.i.i1252, align 4 - %cmp.i.i.i1254 = icmp eq i32 %dec.i.i.i.i1253, 0 - br i1 %cmp.i.i.i1254, label %if.then2.i.i.i1256, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i1256: ; preds = %if.then.i.i.i1250 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %261, ptr noundef nonnull %260) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i1257 - -terminate.lpad.i1257: ; preds = %if.then2.i.i.i1256 - %263 = landingpad { ptr, i32 } - catch ptr null - %264 = extractvalue { ptr, i32 } %263, 0 - call void @__clang_call_terminate(ptr %264) #15 - unreachable - -sw.bb302.i.i: ; preds = %sw.bb.i - %this.val48.i.i = load ptr, ptr %28, align 8 - store ptr %this.val48.i.i, ptr %m_manager.i1248, align 8 - store ptr null, ptr %pr1305.i.i, align 8 - store ptr %this.val48.i.i, ptr %m_manager.i1247, align 8 - %265 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1240 = icmp eq ptr %265, null - br i1 %cmp.i.i.i1240, label %invoke.cont311.i.i, label %if.end.i.i.i1241 - -if.end.i.i.i1241: ; preds = %sw.bb302.i.i - %arrayidx.i.i.i1242 = getelementptr inbounds i32, ptr %265, i64 -1 - %266 = load i32, ptr %arrayidx.i.i.i1242, align 4 - %267 = add i32 %266, -1 - %268 = zext i32 %267 to i64 - br label %invoke.cont311.i.i - -invoke.cont311.i.i: ; preds = %if.end.i.i.i1241, %sw.bb302.i.i - %retval.0.i.i.i1243 = phi i64 [ %268, %if.end.i.i.i1241 ], [ 4294967295, %sw.bb302.i.i ] - %arrayidx.i1.i.i1244 = getelementptr inbounds ptr, ptr %265, i64 %retval.0.i.i.i1243 - %269 = load ptr, ptr %arrayidx.i1.i.i1244, align 8 - %tobool.not.i1225 = icmp eq ptr %269, null - br i1 %tobool.not.i1225, label %if.end.i.i.i1206, label %invoke.cont313.i.i - -invoke.cont313.i.i: ; preds = %invoke.cont311.i.i - %m_ref_count.i.i.i1227 = getelementptr inbounds %class.ast, ptr %269, i64 0, i32 2 - %270 = load i32, ptr %m_ref_count.i.i.i1227, align 4 - %inc.i.i.i1228 = add i32 %270, 1 - store i32 %inc.i.i.i1228, ptr %m_ref_count.i.i.i1227, align 4 - %.pre2938 = load ptr, ptr %m_nodes.i30.i, align 8, !nonnull !50, !noundef !50 - br label %if.end.i.i.i1206 - -if.end.i.i.i1206: ; preds = %invoke.cont311.i.i, %invoke.cont313.i.i - %271 = phi ptr [ %.pre2938, %invoke.cont313.i.i ], [ %265, %invoke.cont311.i.i ] - store ptr %269, ptr %pr2303.i.i, align 8 - %arrayidx.i.i.i1207 = getelementptr inbounds i32, ptr %271, i64 -1 - %272 = load i32, ptr %arrayidx.i.i.i1207, align 4 - %273 = add i32 %272, -1 - %274 = zext i32 %273 to i64 - %arrayidx.i1.i.i1211 = getelementptr inbounds ptr, ptr %271, i64 %274 - %275 = load ptr, ptr %arrayidx.i1.i.i1211, align 8 - %arrayidx.i.i1212 = getelementptr inbounds i32, ptr %271, i64 -1 - store i32 %273, ptr %arrayidx.i.i1212, align 4 - %276 = load ptr, ptr %m_result_pr_stack.i726, align 8 - %tobool.not.i.i.i.i1213 = icmp eq ptr %275, null - br i1 %tobool.not.i.i.i.i1213, label %invoke.cont316.i.i, label %if.then.i.i.i.i1214 - -if.then.i.i.i.i1214: ; preds = %if.end.i.i.i1206 - %m_ref_count.i.i.i.i.i1215 = getelementptr inbounds %class.ast, ptr %275, i64 0, i32 2 - %277 = load i32, ptr %m_ref_count.i.i.i.i.i1215, align 4 - %dec.i.i.i.i.i1216 = add i32 %277, -1 - store i32 %dec.i.i.i.i.i1216, ptr %m_ref_count.i.i.i.i.i1215, align 4 - %cmp.i.i.i.i1217 = icmp eq i32 %dec.i.i.i.i.i1216, 0 - br i1 %cmp.i.i.i.i1217, label %if.then2.i.i.i.i1218, label %invoke.cont316.i.i - -if.then2.i.i.i.i1218: ; preds = %if.then.i.i.i.i1214 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %276, ptr noundef nonnull %275) - to label %invoke.cont316.i.i unwind label %lpad310.i.i - -invoke.cont316.i.i: ; preds = %if.then.i.i.i.i1214, %if.end.i.i.i1206, %if.then2.i.i.i.i1218 - %278 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1197 = icmp eq ptr %278, null - br i1 %cmp.i.i.i1197, label %invoke.cont318.i.i, label %if.end.i.i.i1198 - -if.end.i.i.i1198: ; preds = %invoke.cont316.i.i - %arrayidx.i.i.i1199 = getelementptr inbounds i32, ptr %278, i64 -1 - %279 = load i32, ptr %arrayidx.i.i.i1199, align 4 - %280 = add i32 %279, -1 - %281 = zext i32 %280 to i64 - br label %invoke.cont318.i.i - -invoke.cont318.i.i: ; preds = %if.end.i.i.i1198, %invoke.cont316.i.i - %retval.0.i.i.i1200 = phi i64 [ %281, %if.end.i.i.i1198 ], [ 4294967295, %invoke.cont316.i.i ] - %arrayidx.i1.i.i1201 = getelementptr inbounds ptr, ptr %278, i64 %retval.0.i.i.i1200 - %282 = load ptr, ptr %arrayidx.i1.i.i1201, align 8 - %tobool.not.i1182 = icmp eq ptr %282, null - br i1 %tobool.not.i1182, label %invoke.cont320.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i1183 - -_ZN11ast_manager7inc_refEP3ast.exit.i1183: ; preds = %invoke.cont318.i.i - %m_ref_count.i.i.i1184 = getelementptr inbounds %class.ast, ptr %282, i64 0, i32 2 - %283 = load i32, ptr %m_ref_count.i.i.i1184, align 4 - %inc.i.i.i1185 = add i32 %283, 1 - store i32 %inc.i.i.i1185, ptr %m_ref_count.i.i.i1184, align 4 - br label %invoke.cont320.i.i - -invoke.cont320.i.i: ; preds = %invoke.cont318.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i1183 - store ptr %282, ptr %pr1305.i.i, align 8 - %284 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1162 = icmp eq ptr %284, null - br i1 %cmp.i.i.i1162, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1176, label %if.end.i.i.i1163 - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1176: ; preds = %invoke.cont320.i.i - %.pre.i1177 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1178 = add i32 %.pre.i1177, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i1165 - -if.end.i.i.i1163: ; preds = %invoke.cont320.i.i - %arrayidx.i.i.i1164 = getelementptr inbounds i32, ptr %284, i64 -1 - %285 = load i32, ptr %arrayidx.i.i.i1164, align 4 - %286 = add i32 %285, -1 - %287 = zext i32 %286 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i1165 - -_ZN6vectorIP3appLb0EjE4backEv.exit.i1165: ; preds = %if.end.i.i.i1163, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1176 - %dec.i.pre-phi.i1166 = phi i32 [ %.pre1.i1178, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1176 ], [ %286, %if.end.i.i.i1163 ] - %retval.0.i.i.i1167 = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1176 ], [ %287, %if.end.i.i.i1163 ] - %arrayidx.i1.i.i1168 = getelementptr inbounds ptr, ptr %284, i64 %retval.0.i.i.i1167 - %288 = load ptr, ptr %arrayidx.i1.i.i1168, align 8 - %arrayidx.i.i1169 = getelementptr inbounds i32, ptr %284, i64 -1 - store i32 %dec.i.pre-phi.i1166, ptr %arrayidx.i.i1169, align 4 - %289 = load ptr, ptr %m_result_pr_stack.i726, align 8 - %tobool.not.i.i.i.i1170 = icmp eq ptr %288, null - br i1 %tobool.not.i.i.i.i1170, label %invoke.cont323.i.i, label %if.then.i.i.i.i1171 - -if.then.i.i.i.i1171: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i1165 - %m_ref_count.i.i.i.i.i1172 = getelementptr inbounds %class.ast, ptr %288, i64 0, i32 2 - %290 = load i32, ptr %m_ref_count.i.i.i.i.i1172, align 4 - %dec.i.i.i.i.i1173 = add i32 %290, -1 - store i32 %dec.i.i.i.i.i1173, ptr %m_ref_count.i.i.i.i.i1172, align 4 - %cmp.i.i.i.i1174 = icmp eq i32 %dec.i.i.i.i.i1173, 0 - br i1 %cmp.i.i.i.i1174, label %if.then2.i.i.i.i1175, label %invoke.cont323.i.i - -if.then2.i.i.i.i1175: ; preds = %if.then.i.i.i.i1171 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %289, ptr noundef nonnull %288) - to label %invoke.cont323.i.i unwind label %lpad310.i.i - -invoke.cont323.i.i: ; preds = %if.then.i.i.i.i1171, %_ZN6vectorIP3appLb0EjE4backEv.exit.i1165, %if.then2.i.i.i.i1175 - %this.val.i.i = load ptr, ptr %28, align 8 - %call328.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i, ptr noundef %282, ptr noundef %269) - to label %invoke.cont327.i.i unwind label %lpad310.i.i - -invoke.cont327.i.i: ; preds = %invoke.cont323.i.i - %tobool.not.i1147 = icmp eq ptr %call328.i.i, null - br i1 %tobool.not.i1147, label %if.end.i1151, label %_ZN11ast_manager7inc_refEP3ast.exit.i1148 - -_ZN11ast_manager7inc_refEP3ast.exit.i1148: ; preds = %invoke.cont327.i.i - %m_ref_count.i.i.i1149 = getelementptr inbounds %class.ast, ptr %call328.i.i, i64 0, i32 2 - %291 = load i32, ptr %m_ref_count.i.i.i1149, align 4 - %inc.i.i.i1150 = add i32 %291, 1 - store i32 %inc.i.i.i1150, ptr %m_ref_count.i.i.i1149, align 4 - br label %if.end.i1151 - -if.end.i1151: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1148, %invoke.cont327.i.i - %292 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i1152 = icmp eq ptr %292, null - br i1 %tobool.not.i3.i1152, label %invoke.cont330.i.i, label %if.then.i.i.i1153 - -if.then.i.i.i1153: ; preds = %if.end.i1151 - %293 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i1155 = getelementptr inbounds %class.ast, ptr %292, i64 0, i32 2 - %294 = load i32, ptr %m_ref_count.i.i.i.i1155, align 4 - %dec.i.i.i.i1156 = add i32 %294, -1 - store i32 %dec.i.i.i.i1156, ptr %m_ref_count.i.i.i.i1155, align 4 - %cmp.i.i.i1157 = icmp eq i32 %dec.i.i.i.i1156, 0 - br i1 %cmp.i.i.i1157, label %if.then2.i.i.i1158, label %invoke.cont330.i.i - -if.then2.i.i.i1158: ; preds = %if.then.i.i.i1153 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %293, ptr noundef nonnull %292) - to label %invoke.cont330.i.i unwind label %lpad310.i.i - -invoke.cont330.i.i: ; preds = %if.then.i.i.i1153, %if.end.i1151, %if.then2.i.i.i1158 - store ptr %call328.i.i, ptr %m_pr.i64.i, align 8 - br i1 %tobool.not.i1147, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1129, label %if.then.i.i.i.i1126 - -if.then.i.i.i.i1126: ; preds = %invoke.cont330.i.i - %m_ref_count.i.i.i.i.i1127 = getelementptr inbounds %class.ast, ptr %call328.i.i, i64 0, i32 2 - %295 = load i32, ptr %m_ref_count.i.i.i.i.i1127, align 4 - %inc.i.i.i.i.i1128 = add i32 %295, 1 - store i32 %inc.i.i.i.i.i1128, ptr %m_ref_count.i.i.i.i.i1127, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1129 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1129: ; preds = %if.then.i.i.i.i1126, %invoke.cont330.i.i - %296 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1131 = icmp eq ptr %296, null - br i1 %cmp.i.i1131, label %if.then.i.i1140, label %lor.lhs.false.i.i1132 - -lor.lhs.false.i.i1132: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1129 - %arrayidx.i.i1133 = getelementptr inbounds i32, ptr %296, i64 -1 - %297 = load i32, ptr %arrayidx.i.i1133, align 4 - %arrayidx4.i.i1134 = getelementptr inbounds i32, ptr %296, i64 -2 - %298 = load i32, ptr %arrayidx4.i.i1134, align 4 - %cmp5.i.i1135 = icmp eq i32 %297, %298 - br i1 %cmp5.i.i1135, label %if.then.i.i1140, label %invoke.cont335.i.i - -if.then.i.i1140: ; preds = %lor.lhs.false.i.i1132, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1129 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1144 unwind label %lpad310.i.i - -.noexc1144: ; preds = %if.then.i.i1140 - %.pre.i.i1141 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1142 = getelementptr inbounds i32, ptr %.pre.i.i1141, i64 -1 - %.pre1.i.i1143 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1142, align 4 - br label %invoke.cont335.i.i - -invoke.cont335.i.i: ; preds = %.noexc1144, %lor.lhs.false.i.i1132 - %299 = phi i32 [ %.pre1.i.i1143, %.noexc1144 ], [ %297, %lor.lhs.false.i.i1132 ] - %300 = phi ptr [ %.pre.i.i1141, %.noexc1144 ], [ %296, %lor.lhs.false.i.i1132 ] - %idx.ext.i.i1136 = zext i32 %299 to i64 - %add.ptr.i.i1137 = getelementptr inbounds ptr, ptr %300, i64 %idx.ext.i.i1136 - store ptr %call328.i.i, ptr %add.ptr.i.i1137, align 8 - %301 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1138 = getelementptr inbounds i32, ptr %301, i64 -1 - %302 = load i32, ptr %arrayidx10.i.i1138, align 4 - %inc.i.i1139 = add i32 %302, 1 - store i32 %inc.i.i1139, ptr %arrayidx10.i.i1138, align 4 - br i1 %tobool.not.i1182, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1124, label %if.then.i.i.i1116 - -if.then.i.i.i1116: ; preds = %invoke.cont335.i.i - %m_ref_count.i.i.i.i1118 = getelementptr inbounds %class.ast, ptr %282, i64 0, i32 2 - %303 = load i32, ptr %m_ref_count.i.i.i.i1118, align 4 - %dec.i.i.i.i1119 = add i32 %303, -1 - store i32 %dec.i.i.i.i1119, ptr %m_ref_count.i.i.i.i1118, align 4 - %cmp.i.i.i1120 = icmp eq i32 %dec.i.i.i.i1119, 0 - br i1 %cmp.i.i.i1120, label %if.then2.i.i.i1122, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1124 - -if.then2.i.i.i1122: ; preds = %if.then.i.i.i1116 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i, ptr noundef nonnull %282) - to label %_ZN7obj_refI3app11ast_managerED2Ev.exit1124 unwind label %terminate.lpad.i1123 - -terminate.lpad.i1123: ; preds = %if.then2.i.i.i1122 - %304 = landingpad { ptr, i32 } - catch ptr null - %305 = extractvalue { ptr, i32 } %304, 0 - call void @__clang_call_terminate(ptr %305) #15 - unreachable - -_ZN7obj_refI3app11ast_managerED2Ev.exit1124: ; preds = %invoke.cont335.i.i, %if.then.i.i.i1116, %if.then2.i.i.i1122 - br i1 %tobool.not.i1225, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1114, label %if.then.i.i.i1106 - -if.then.i.i.i1106: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1124 - %m_ref_count.i.i.i.i1108 = getelementptr inbounds %class.ast, ptr %269, i64 0, i32 2 - %306 = load i32, ptr %m_ref_count.i.i.i.i1108, align 4 - %dec.i.i.i.i1109 = add i32 %306, -1 - store i32 %dec.i.i.i.i1109, ptr %m_ref_count.i.i.i.i1108, align 4 - %cmp.i.i.i1110 = icmp eq i32 %dec.i.i.i.i1109, 0 - br i1 %cmp.i.i.i1110, label %if.then2.i.i.i1112, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1114 - -if.then2.i.i.i1112: ; preds = %if.then.i.i.i1106 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i, ptr noundef nonnull %269) - to label %_ZN7obj_refI3app11ast_managerED2Ev.exit1114 unwind label %terminate.lpad.i1113 - -terminate.lpad.i1113: ; preds = %if.then2.i.i.i1112 - %307 = landingpad { ptr, i32 } - catch ptr null - %308 = extractvalue { ptr, i32 } %307, 0 - call void @__clang_call_terminate(ptr %308) #15 - unreachable - -_ZN7obj_refI3app11ast_managerED2Ev.exit1114: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1124, %if.then.i.i.i1106, %if.then2.i.i.i1112 - %309 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1098 = icmp eq ptr %309, null - br i1 %cmp.i.i.i1098, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1103, label %if.end.i.i.i1099 - -if.end.i.i.i1099: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1114 - %arrayidx.i.i.i1100 = getelementptr inbounds i32, ptr %309, i64 -1 - %310 = load i32, ptr %arrayidx.i.i.i1100, align 4 - %311 = add i32 %310, -1 - %312 = zext i32 %311 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1103 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1103: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1114, %if.end.i.i.i1099 - %retval.0.i.i.i1101 = phi i64 [ %312, %if.end.i.i.i1099 ], [ 4294967295, %_ZN7obj_refI3app11ast_managerED2Ev.exit1114 ] - %arrayidx.i1.i.i1102 = getelementptr inbounds ptr, ptr %309, i64 %retval.0.i.i.i1101 - %313 = load ptr, ptr %arrayidx.i1.i.i1102, align 8 - %tobool.not.i1084 = icmp eq ptr %313, null - br i1 %tobool.not.i1084, label %if.end.i1088, label %_ZN11ast_manager7inc_refEP3ast.exit.i1085 - -_ZN11ast_manager7inc_refEP3ast.exit.i1085: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1103 - %m_ref_count.i.i.i1086 = getelementptr inbounds %class.ast, ptr %313, i64 0, i32 2 - %314 = load i32, ptr %m_ref_count.i.i.i1086, align 4 - %inc.i.i.i1087 = add i32 %314, 1 - store i32 %inc.i.i.i1087, ptr %m_ref_count.i.i.i1086, align 4 - br label %if.end.i1088 - -if.end.i1088: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1085, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1103 - %315 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i3.i1089 = icmp eq ptr %315, null - br i1 %tobool.not.i3.i1089, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1096, label %if.then.i.i.i1090 - -if.then.i.i.i1090: ; preds = %if.end.i1088 - %316 = load ptr, ptr %m_manager.i.i750, align 8 - %m_ref_count.i.i.i.i1092 = getelementptr inbounds %class.ast, ptr %315, i64 0, i32 2 - %317 = load i32, ptr %m_ref_count.i.i.i.i1092, align 4 - %dec.i.i.i.i1093 = add i32 %317, -1 - store i32 %dec.i.i.i.i1093, ptr %m_ref_count.i.i.i.i1092, align 4 - %cmp.i.i.i1094 = icmp eq i32 %dec.i.i.i.i1093, 0 - br i1 %cmp.i.i.i1094, label %if.then2.i.i.i1095, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1096 - -if.then2.i.i.i1095: ; preds = %if.then.i.i.i1090 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %316, ptr noundef nonnull %315) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1096 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1096: ; preds = %if.end.i1088, %if.then.i.i.i1090, %if.then2.i.i.i1095 - store ptr %313, ptr %m_r.i71.i, align 8 - %318 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1065 = icmp eq ptr %318, null - br i1 %cmp.i.i.i1065, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1079, label %if.end.i.i.i1066 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1079: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1096 - %.pre.i1080 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1081 = add i32 %.pre.i1080, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1068 - -if.end.i.i.i1066: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1096 - %arrayidx.i.i.i1067 = getelementptr inbounds i32, ptr %318, i64 -1 - %319 = load i32, ptr %arrayidx.i.i.i1067, align 4 - %320 = add i32 %319, -1 - %321 = zext i32 %320 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1068 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i1068: ; preds = %if.end.i.i.i1066, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1079 - %dec.i.pre-phi.i1069 = phi i32 [ %.pre1.i1081, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1079 ], [ %320, %if.end.i.i.i1066 ] - %retval.0.i.i.i1070 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1079 ], [ %321, %if.end.i.i.i1066 ] - %arrayidx.i1.i.i1071 = getelementptr inbounds ptr, ptr %318, i64 %retval.0.i.i.i1070 - %322 = load ptr, ptr %arrayidx.i1.i.i1071, align 8 - %arrayidx.i.i1072 = getelementptr inbounds i32, ptr %318, i64 -1 - store i32 %dec.i.pre-phi.i1069, ptr %arrayidx.i.i1072, align 4 - %323 = load ptr, ptr %m_result_stack.i970, align 8 - %tobool.not.i.i.i.i1073 = icmp eq ptr %322, null - br i1 %tobool.not.i.i.i.i1073, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1082, label %if.then.i.i.i.i1074 - -if.then.i.i.i.i1074: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1068 - %m_ref_count.i.i.i.i.i1075 = getelementptr inbounds %class.ast, ptr %322, i64 0, i32 2 - %324 = load i32, ptr %m_ref_count.i.i.i.i.i1075, align 4 - %dec.i.i.i.i.i1076 = add i32 %324, -1 - store i32 %dec.i.i.i.i.i1076, ptr %m_ref_count.i.i.i.i.i1075, align 4 - %cmp.i.i.i.i1077 = icmp eq i32 %dec.i.i.i.i.i1076, 0 - br i1 %cmp.i.i.i.i1077, label %if.then2.i.i.i.i1078, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1082 - -if.then2.i.i.i.i1078: ; preds = %if.then.i.i.i.i1074 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %323, ptr noundef nonnull %322) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1082 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1082: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1068, %if.then.i.i.i.i1074, %if.then2.i.i.i.i1078 - %325 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1045 = icmp eq ptr %325, null - br i1 %cmp.i.i.i1045, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1059, label %if.end.i.i.i1046 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1059: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1082 - %.pre.i1060 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1061 = add i32 %.pre.i1060, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1048 - -if.end.i.i.i1046: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1082 - %arrayidx.i.i.i1047 = getelementptr inbounds i32, ptr %325, i64 -1 - %326 = load i32, ptr %arrayidx.i.i.i1047, align 4 - %327 = add i32 %326, -1 - %328 = zext i32 %327 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1048 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i1048: ; preds = %if.end.i.i.i1046, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1059 - %dec.i.pre-phi.i1049 = phi i32 [ %.pre1.i1061, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1059 ], [ %327, %if.end.i.i.i1046 ] - %retval.0.i.i.i1050 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1059 ], [ %328, %if.end.i.i.i1046 ] - %arrayidx.i1.i.i1051 = getelementptr inbounds ptr, ptr %325, i64 %retval.0.i.i.i1050 - %329 = load ptr, ptr %arrayidx.i1.i.i1051, align 8 - %arrayidx.i.i1052 = getelementptr inbounds i32, ptr %325, i64 -1 - store i32 %dec.i.pre-phi.i1049, ptr %arrayidx.i.i1052, align 4 - %330 = load ptr, ptr %m_result_stack.i970, align 8 - %tobool.not.i.i.i.i1053 = icmp eq ptr %329, null - br i1 %tobool.not.i.i.i.i1053, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1062, label %if.then.i.i.i.i1054 - -if.then.i.i.i.i1054: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1048 - %m_ref_count.i.i.i.i.i1055 = getelementptr inbounds %class.ast, ptr %329, i64 0, i32 2 - %331 = load i32, ptr %m_ref_count.i.i.i.i.i1055, align 4 - %dec.i.i.i.i.i1056 = add i32 %331, -1 - store i32 %dec.i.i.i.i.i1056, ptr %m_ref_count.i.i.i.i.i1055, align 4 - %cmp.i.i.i.i1057 = icmp eq i32 %dec.i.i.i.i.i1056, 0 - br i1 %cmp.i.i.i.i1057, label %if.then2.i.i.i.i1058, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1062 - -if.then2.i.i.i.i1058: ; preds = %if.then.i.i.i.i1054 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %330, ptr noundef nonnull %329) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1062 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1062: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1048, %if.then.i.i.i.i1054, %if.then2.i.i.i.i1058 - %332 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i.i.i.i1023 = icmp eq ptr %332, null - br i1 %tobool.not.i.i.i.i1023, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1027, label %if.then.i.i.i.i1024 - -if.then.i.i.i.i1024: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1062 - %m_ref_count.i.i.i.i.i1025 = getelementptr inbounds %class.ast, ptr %332, i64 0, i32 2 - %333 = load i32, ptr %m_ref_count.i.i.i.i.i1025, align 4 - %inc.i.i.i.i.i1026 = add i32 %333, 1 - store i32 %inc.i.i.i.i.i1026, ptr %m_ref_count.i.i.i.i.i1025, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1027 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1027: ; preds = %if.then.i.i.i.i1024, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1062 - %334 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1029 = icmp eq ptr %334, null - br i1 %cmp.i.i1029, label %if.then.i.i1038, label %lor.lhs.false.i.i1030 - -lor.lhs.false.i.i1030: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1027 - %arrayidx.i.i1031 = getelementptr inbounds i32, ptr %334, i64 -1 - %335 = load i32, ptr %arrayidx.i.i1031, align 4 - %arrayidx4.i.i1032 = getelementptr inbounds i32, ptr %334, i64 -2 - %336 = load i32, ptr %arrayidx4.i.i1032, align 4 - %cmp5.i.i1033 = icmp eq i32 %335, %336 - br i1 %cmp5.i.i1033, label %if.then.i.i1038, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1042 - -if.then.i.i1038: ; preds = %lor.lhs.false.i.i1030, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1027 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - %.pre.i.i1039 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1040 = getelementptr inbounds i32, ptr %.pre.i.i1039, i64 -1 - %.pre1.i.i1041 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1040, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1042 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1042: ; preds = %lor.lhs.false.i.i1030, %if.then.i.i1038 - %337 = phi i32 [ %.pre1.i.i1041, %if.then.i.i1038 ], [ %335, %lor.lhs.false.i.i1030 ] - %338 = phi ptr [ %.pre.i.i1039, %if.then.i.i1038 ], [ %334, %lor.lhs.false.i.i1030 ] - %idx.ext.i.i1034 = zext i32 %337 to i64 - %add.ptr.i.i1035 = getelementptr inbounds ptr, ptr %338, i64 %idx.ext.i.i1034 - store ptr %332, ptr %add.ptr.i.i1035, align 8 - %339 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1036 = getelementptr inbounds i32, ptr %339, i64 -1 - %340 = load i32, ptr %arrayidx10.i.i1036, align 4 - %inc.i.i1037 = add i32 %340, 1 - store i32 %inc.i.i1037, ptr %arrayidx10.i.i1036, align 4 - %bf.load354.i.i = load i32, ptr %89, align 8 - %bf.clear355.i.i = and i32 %bf.load354.i.i, 1 - %tobool356.i.i.not = icmp eq i32 %bf.clear355.i.i, 0 - br i1 %tobool356.i.i.not, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit1022, label %if.then.i1021 - -if.then.i1021: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1042 - %341 = load ptr, ptr %m_pr.i64.i, align 8 - %342 = load ptr, ptr %m_r.i71.i, align 8 - call void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %87, ptr noundef %342, ptr noundef %341) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit1022 - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit1022: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1042, %if.then.i1021 - %343 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1017 = getelementptr inbounds i32, ptr %343, i64 -1 - %344 = load i32, ptr %arrayidx.i1017, align 4 - %dec.i1018 = add i32 %344, -1 - store i32 %dec.i1018, ptr %arrayidx.i1017, align 4 - %this.val57.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i1010 = icmp eq ptr %this.val57.i.i, null - br i1 %cmp.i.i1010, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1011 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1011: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit1022 - %arrayidx.i.i1012 = getelementptr inbounds i32, ptr %this.val57.i.i, i64 -1 - %345 = load i32, ptr %arrayidx.i.i1012, align 4 - %cmp3.i.i1013 = icmp eq i32 %345, 0 - br i1 %cmp3.i.i1013, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1014 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1014: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1011 - %346 = add i32 %345, -1 - %347 = zext i32 %346 to i64 - %m_new_child.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val57.i.i, i64 %347, i32 1 - %bf.load.i1015 = load i32, ptr %m_new_child.i, align 8 - %bf.set.i = or i32 %bf.load.i1015, 2 - store i32 %bf.set.i, ptr %m_new_child.i, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i: ; preds = %if.else.i + %m_cancel_check.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %m_cache.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %m_cache_pr.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 + %m_nodes.i30.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %m_bindings.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 + %m_shifts.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 + %m_result_stack.i.i67.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i.i.i.i = getelementptr inbounds %class.ref_vector_core.79, ptr %new_pats.i.i.i, i64 0, i32 1 + %m_nodes.i.i92.i.i.i = getelementptr inbounds %class.ref_vector_core.79, ptr %new_no_pats.i.i.i, i64 0, i32 1 + %m_manager.i184.i.i.i = getelementptr inbounds %class.obj_ref.133, ptr %new_q.i.i.i, i64 0, i32 1 + %m_pr.i88.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %m_manager.i.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %m_r.i93.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_manager.i.i257.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %m_manager.i263.i.i.i = getelementptr inbounds %class.obj_ref.93, ptr %pr2.i.i.i, i64 0, i32 1 + %m_result_pr_stack.i280.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_manager.i436.i.i.i = getelementptr inbounds %class.obj_ref.93, ptr %pr2303.i.i.i, i64 0, i32 1 + %m_manager.i437.i.i.i = getelementptr inbounds %class.obj_ref.93, ptr %pr1305.i.i.i, i64 0, i32 1 + %m_manager.i.i.i.i = getelementptr inbounds %class.obj_ref.93, ptr %new_t.i.i.i, i64 0, i32 1 + %m_cfg.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + %m_pr2.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 + %m_manager.i.i151.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8, i32 1 + br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %while.cond.backedge.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i + %76 = phi ptr [ %75, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i ], [ %114, %while.cond.backedge.i.i ] + %arrayidx.i.i91.i = getelementptr inbounds i32, ptr %76, i64 -1 + %77 = load i32, ptr %arrayidx.i.i91.i, align 4 + %cmp3.i.i.i = icmp eq i32 %77, 0 + br i1 %cmp3.i.i.i, label %while.end.i.i, label %while.body.i.i + +while.body.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i + %this.val18.i.i = load ptr, ptr %28, align 8 + %call2.i.i.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val18.i.i) + br i1 %call2.i.i.i, label %if.end15.i.i, label %if.then.i.i31 + +if.then.i.i31: ; preds = %while.body.i.i + %78 = load i8, ptr %m_cancel_check.i.i, align 1 + %79 = and i8 %78, 1 + %tobool.not.i92.i = icmp eq i8 %79, 0 + br i1 %tobool.not.i92.i, label %if.end15.i.i, label %if.then5.i.i -lpad310.i.i: ; preds = %if.then2.i.i.i.i1218, %if.then2.i.i.i.i1175, %if.then2.i.i.i1158, %if.then.i.i1140, %invoke.cont323.i.i - %348 = landingpad { ptr, i32 } +if.then5.i.i: ; preds = %if.then.i.i31 + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) + %exception.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #14 + %this.val17.i.i = load ptr, ptr %28, align 8 + %call8.i.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val17.i.i) + to label %invoke.cont.i.i unwind label %ehcleanup14.thread.i.i + +invoke.cont.i.i: ; preds = %if.then5.i.i + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #14 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i, ptr noundef %call8.i.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) + to label %invoke.cont11.i.i unwind label %ehcleanup14.thread297.i.i + +invoke.cont11.i.i: ; preds = %invoke.cont.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i, align 8 + %m_msg.i.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) #14 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i.i, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #17 + to label %unreachable.i.i unwind label %ehcleanup14.i.i + +ehcleanup14.thread.i.i: ; preds = %if.then5.i.i + %80 = landingpad { ptr, i32 } cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr1305.i.i) #14 - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2303.i.i) #14 - br label %common.resume - -sw.bb358.i.i: ; preds = %sw.bb.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 515, ptr noundef nonnull @.str.15) - call void @exit(i32 noundef 107) #15 - unreachable - -sw.bb359.i.i: ; preds = %sw.bb.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 520, ptr noundef nonnull @.str.15) - call void @exit(i32 noundef 107) #15 - unreachable - -entry.unreachabledefault.i.i: ; preds = %sw.bb.i - unreachable - -common.resume: ; preds = %cleanup.action.i47, %ehcleanup13.i, %cleanup.action.i229, %ehcleanup14.i225, %lpad.i.i375, %lpad246.i.i, %cleanup.action.i, %ehcleanup14.i, %cleanup.action.i74, %ehcleanup14.i70, %lpad.i.i, %lpad310.i.i, %ehcleanup.i.i263, %lpad.i2061, %ehcleanup211.i.i, %lpad.i958 - %common.resume.op = phi { ptr, i32 } [ %394, %lpad.i958 ], [ %.pn50.pn.i.i, %ehcleanup211.i.i ], [ %906, %lpad.i2061 ], [ %.pn.i45.i, %ehcleanup.i.i263 ], [ %348, %lpad310.i.i ], [ %lpad.phi2861, %lpad.i.i ], [ %.pn.pn.i722797, %cleanup.action.i74 ], [ %82, %ehcleanup14.i70 ], [ %.pn.pn.i2790, %cleanup.action.i ], [ %33, %ehcleanup14.i ], [ %lpad.phi2843, %lpad246.i.i ], [ %lpad.phi, %lpad.i.i375 ], [ %.pn.pn.i2272817, %cleanup.action.i229 ], [ %618, %ehcleanup14.i225 ], [ %.pn.pn.i442810, %cleanup.action.i47 ], [ %590, %ehcleanup13.i ] - resume { ptr, i32 } %common.resume.op - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i: ; preds = %while.body.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1014, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1011, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit1022, %if.then2.i.i.i1256, %if.then.i.i.i1250, %cleanup.i.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2303.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr1305.i.i) - br label %while.cond.i.backedgethread-pre-split - -sw.bb34.i: ; preds = %if.end31.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_q.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2.i.i) - %m_num_decls.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 2 - %349 = load i32, ptr %m_num_decls.i, align 4 - %bf.load.i50.i = load i32, ptr %89, align 8 - %cmp.i51.i = icmp ult i32 %bf.load.i50.i, 64 - br i1 %cmp.i51.i, label %if.then.i.i85, label %cond.end.i.i - -if.then.i.i85: ; preds = %sw.bb34.i - call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - %m_expr.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 - %350 = load ptr, ptr %m_expr.i, align 8 - store ptr %350, ptr %m_root.i, align 8 - %351 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i1005 = icmp eq ptr %351, null - br i1 %cmp.i1005, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1009, label %if.end.i1006 - -if.end.i1006: ; preds = %if.then.i.i85 - %arrayidx.i1007 = getelementptr inbounds i32, ptr %351, i64 -1 - %352 = load i32, ptr %arrayidx.i1007, align 4 - br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1009 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1009: ; preds = %if.then.i.i85, %if.end.i1006 - %retval.0.i1008 = phi i32 [ %352, %if.end.i1006 ], [ 0, %if.then.i.i85 ] - %cmp4.i.i2894.not = icmp eq i32 %349, 0 - br i1 %cmp4.i.i2894.not, label %for.end.i.i, label %for.body.i.i86 - -for.body.i.i86: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1009, %_ZN6vectorIjLb0EjE9push_backERKj.exit - %i.0.i.i2895 = phi i32 [ %inc.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1009 ] - %353 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i991 = icmp eq ptr %353, null - br i1 %cmp.i991, label %if.then.i1001, label %lor.lhs.false.i992 - -lor.lhs.false.i992: ; preds = %for.body.i.i86 - %arrayidx.i993 = getelementptr inbounds i32, ptr %353, i64 -1 - %354 = load i32, ptr %arrayidx.i993, align 4 - %arrayidx4.i994 = getelementptr inbounds i32, ptr %353, i64 -2 - %355 = load i32, ptr %arrayidx4.i994, align 4 - %cmp5.i995 = icmp eq i32 %354, %355 - br i1 %cmp5.i995, label %if.then.i1001, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - -if.then.i1001: ; preds = %lor.lhs.false.i992, %for.body.i.i86 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i) - %.pre.i1002 = load ptr, ptr %m_bindings.i.i, align 8 - %arrayidx8.phi.trans.insert.i1003 = getelementptr inbounds i32, ptr %.pre.i1002, i64 -1 - %.pre1.i1004 = load i32, ptr %arrayidx8.phi.trans.insert.i1003, align 4 - br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - -_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit: ; preds = %lor.lhs.false.i992, %if.then.i1001 - %356 = phi i32 [ %.pre1.i1004, %if.then.i1001 ], [ %354, %lor.lhs.false.i992 ] - %357 = phi ptr [ %.pre.i1002, %if.then.i1001 ], [ %353, %lor.lhs.false.i992 ] - %idx.ext.i997 = zext i32 %356 to i64 - %add.ptr.i998 = getelementptr inbounds ptr, ptr %357, i64 %idx.ext.i997 - store ptr null, ptr %add.ptr.i998, align 8 - %358 = load ptr, ptr %m_bindings.i.i, align 8 - %arrayidx10.i999 = getelementptr inbounds i32, ptr %358, i64 -1 - %359 = load i32, ptr %arrayidx10.i999, align 4 - %inc.i1000 = add i32 %359, 1 - store i32 %inc.i1000, ptr %arrayidx10.i999, align 4 - %360 = load ptr, ptr %m_shifts.i.i, align 8 - %cmp.i982 = icmp eq ptr %360, null - br i1 %cmp.i982, label %if.then.i988, label %lor.lhs.false.i - -lor.lhs.false.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - %arrayidx.i983 = getelementptr inbounds i32, ptr %360, i64 -1 - %361 = load i32, ptr %arrayidx.i983, align 4 - %arrayidx4.i = getelementptr inbounds i32, ptr %360, i64 -2 - %362 = load i32, ptr %arrayidx4.i, align 4 - %cmp5.i = icmp eq i32 %361, %362 - br i1 %cmp5.i, label %if.then.i988, label %_ZN6vectorIjLb0EjE9push_backERKj.exit - -if.then.i988: ; preds = %lor.lhs.false.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i) - %.pre.i989 = load ptr, ptr %m_shifts.i.i, align 8 - %arrayidx8.phi.trans.insert.i = getelementptr inbounds i32, ptr %.pre.i989, i64 -1 - %.pre1.i990 = load i32, ptr %arrayidx8.phi.trans.insert.i, align 4 - br label %_ZN6vectorIjLb0EjE9push_backERKj.exit - -_ZN6vectorIjLb0EjE9push_backERKj.exit: ; preds = %lor.lhs.false.i, %if.then.i988 - %363 = phi i32 [ %.pre1.i990, %if.then.i988 ], [ %361, %lor.lhs.false.i ] - %364 = phi ptr [ %.pre.i989, %if.then.i988 ], [ %360, %lor.lhs.false.i ] - %idx.ext.i985 = zext i32 %363 to i64 - %add.ptr.i986 = getelementptr inbounds i32, ptr %364, i64 %idx.ext.i985 - store i32 %retval.0.i1008, ptr %add.ptr.i986, align 4 - %365 = load ptr, ptr %m_shifts.i.i, align 8 - %arrayidx10.i = getelementptr inbounds i32, ptr %365, i64 -1 - %366 = load i32, ptr %arrayidx10.i, align 4 - %inc.i987 = add i32 %366, 1 - store i32 %inc.i987, ptr %arrayidx10.i, align 4 - %inc.i.i = add nuw i32 %i.0.i.i2895, 1 - %exitcond.not = icmp eq i32 %inc.i.i, %349 - br i1 %exitcond.not, label %for.end.i.i, label %for.body.i.i86, !llvm.loop !51 - -for.end.i.i: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1009 - %367 = load i32, ptr %m_num_qvars.i, align 8 - %add.i.i = add i32 %367, %349 - store i32 %add.i.i, ptr %m_num_qvars.i, align 8 - br label %cond.end.i.i - -cond.end.i.i: ; preds = %for.end.i.i, %sw.bb34.i - %m_num_patterns.i.i981 = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 11 - %368 = load i32, ptr %m_num_patterns.i.i981, align 8 - %add.i = add i32 %368, 1 - %m_num_no_patterns.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 12 - %369 = load i32, ptr %m_num_no_patterns.i.i, align 4 - %add3.i = add i32 %add.i, %369 - %m_patterns_decls.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 13 - %m_expr.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 - br label %while.cond.i52.i - -while.cond.i52.i: ; preds = %_ZNK10quantifier9get_childEj.exit, %cond.end.i.i - %bf.load11.i.i = load i32, ptr %89, align 8 - %bf.lshr12.i.i = lshr i32 %bf.load11.i.i, 6 - %cmp13.i.i = icmp ult i32 %bf.lshr12.i.i, %add3.i - br i1 %cmp13.i.i, label %while.body.i87.i, label %while.end.i53.i - -while.body.i87.i: ; preds = %while.cond.i52.i - %cmp.i971 = icmp ult i32 %bf.load11.i.i, 64 - br i1 %cmp.i971, label %_ZNK10quantifier9get_childEj.exit, label %if.else.i972 - -if.else.i972: ; preds = %while.body.i87.i - %370 = load i32, ptr %m_num_patterns.i.i981, align 8 - %cmp3.not.i = icmp ult i32 %370, %bf.lshr12.i.i - br i1 %cmp3.not.i, label %if.else6.i, label %if.then4.i973 - -if.then4.i973: ; preds = %if.else.i972 - %371 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i.i.i974 = zext i32 %371 to i64 - %add.ptr.i.i.i.i975 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i.i.i974 - %add.ptr.i.i.i976 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i975, i64 %idx.ext.i.i.i.i974 - %372 = zext nneg i32 %bf.lshr12.i.i to i64 - %373 = getelementptr ptr, ptr %add.ptr.i.i.i976, i64 %372 - %arrayidx.i.i978 = getelementptr ptr, ptr %373, i64 -1 - br label %_ZNK10quantifier9get_childEj.exit + br label %cleanup.action.i.i -if.else6.i: ; preds = %if.else.i972 - %374 = xor i32 %370, -1 - %sub9.i = add i32 %bf.lshr12.i.i, %374 - %375 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i.i7.i = zext i32 %375 to i64 - %add.ptr.i.i.i8.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i.i7.i - %add.ptr.i.i9.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i, i64 %idx.ext.i.i.i7.i - %idxprom.i10.i = zext i32 %sub9.i to i64 - %arrayidx.i11.i = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i, i64 %idxprom.i10.i - br label %_ZNK10quantifier9get_childEj.exit +ehcleanup14.thread297.i.i: ; preds = %invoke.cont.i.i + %81 = landingpad { ptr, i32 } + cleanup + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #14 + br label %cleanup.action.i.i -_ZNK10quantifier9get_childEj.exit: ; preds = %while.body.i87.i, %if.then4.i973, %if.else6.i - %retval.0.in.i = phi ptr [ %arrayidx.i.i978, %if.then4.i973 ], [ %arrayidx.i11.i, %if.else6.i ], [ %m_expr.i.i, %while.body.i87.i ] - %retval.0.i979 = load ptr, ptr %retval.0.in.i, align 8 - %376 = and i32 %bf.load11.i.i, -64 - %bf.shl.i89.i = add i32 %376, 64 - %bf.clear.i90.i = and i32 %bf.load11.i.i, 63 - %bf.set.i91.i = or disjoint i32 %bf.shl.i89.i, %bf.clear.i90.i - store i32 %bf.set.i91.i, ptr %89, align 8 - %bf.lshr24.i.i = lshr i32 %bf.load11.i.i, 4 - %bf.clear25.i.i = and i32 %bf.lshr24.i.i, 3 - %call26.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i979, i32 noundef %bf.clear25.i.i) - br i1 %call26.i.i, label %while.cond.i52.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, !llvm.loop !52 - -while.end.i53.i: ; preds = %while.cond.i52.i - %377 = load ptr, ptr %m_nodes.i.i, align 8 - %m_spos.i54.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i, i32 2 - %378 = load i32, ptr %m_spos.i54.i, align 4 - %idx.ext.i55.i = zext i32 %378 to i64 - %add.ptr.i56.i = getelementptr inbounds ptr, ptr %377, i64 %idx.ext.i55.i - %379 = load ptr, ptr %add.ptr.i56.i, align 8 - %380 = load i32, ptr %m_num_patterns.i.i981, align 8 - %381 = load i32, ptr %m_num_no_patterns.i.i, align 4 - %382 = load ptr, ptr %28, align 8 - %383 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i966 = zext i32 %383 to i64 - %add.ptr.i.i967 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i966 - %add.ptr.i968 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i967, i64 %idx.ext.i.i966 - %384 = ptrtoint ptr %382 to i64 - store i64 %384, ptr %new_pats.i.i, align 8 - store ptr null, ptr %m_nodes.i.i932, align 8 - %cmp3.not.i.i933 = icmp eq i32 %380, 0 - br i1 %cmp3.not.i.i933, label %invoke.cont.i60.i, label %for.body.lr.ph.i.i934 - -for.body.lr.ph.i.i934: ; preds = %while.end.i53.i - %wide.trip.count.i.i935 = zext i32 %380 to i64 - br label %for.body.i.i936 - -for.body.i.i936: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i949, %for.body.lr.ph.i.i934 - %indvars.iv.i.i937 = phi i64 [ 0, %for.body.lr.ph.i.i934 ], [ %indvars.iv.next.i.i954, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i949 ] - %arrayidx.i.i938 = getelementptr inbounds ptr, ptr %add.ptr.i968, i64 %indvars.iv.i.i937 - %385 = load ptr, ptr %arrayidx.i.i938, align 8 - %tobool.not.i.i.i.i.i.i939 = icmp eq ptr %385, null - br i1 %tobool.not.i.i.i.i.i.i939, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i943, label %if.then.i.i.i.i.i.i940 - -if.then.i.i.i.i.i.i940: ; preds = %for.body.i.i936 - %m_ref_count.i.i.i.i.i.i.i941 = getelementptr inbounds %class.ast, ptr %385, i64 0, i32 2 - %386 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i941, align 4 - %inc.i.i.i.i.i.i.i942 = add i32 %386, 1 - store i32 %inc.i.i.i.i.i.i.i942, ptr %m_ref_count.i.i.i.i.i.i.i941, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i943 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i943: ; preds = %if.then.i.i.i.i.i.i940, %for.body.i.i936 - %387 = load ptr, ptr %m_nodes.i.i932, align 8 - %cmp.i.i.i.i944 = icmp eq ptr %387, null - br i1 %cmp.i.i.i.i944, label %if.then.i.i.i.i957, label %lor.lhs.false.i.i.i.i945 - -lor.lhs.false.i.i.i.i945: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i943 - %arrayidx.i.i.i.i946 = getelementptr inbounds i32, ptr %387, i64 -1 - %388 = load i32, ptr %arrayidx.i.i.i.i946, align 4 - %arrayidx4.i.i.i.i947 = getelementptr inbounds i32, ptr %387, i64 -2 - %389 = load i32, ptr %arrayidx4.i.i.i.i947, align 4 - %cmp5.i.i.i.i948 = icmp eq i32 %388, %389 - br i1 %cmp5.i.i.i.i948, label %if.then.i.i.i.i957, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i949 - -if.then.i.i.i.i957: ; preds = %lor.lhs.false.i.i.i.i945, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i943 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i932) - to label %.noexc.i959 unwind label %lpad.i958 - -.noexc.i959: ; preds = %if.then.i.i.i.i957 - %.pre.i.i.i.i960 = load ptr, ptr %m_nodes.i.i932, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i961 = getelementptr inbounds i32, ptr %.pre.i.i.i.i960, i64 -1 - %.pre1.i.i.i.i962 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i961, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i949 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i949: ; preds = %.noexc.i959, %lor.lhs.false.i.i.i.i945 - %390 = phi i32 [ %.pre1.i.i.i.i962, %.noexc.i959 ], [ %388, %lor.lhs.false.i.i.i.i945 ] - %391 = phi ptr [ %.pre.i.i.i.i960, %.noexc.i959 ], [ %387, %lor.lhs.false.i.i.i.i945 ] - %idx.ext.i.i.i.i950 = zext i32 %390 to i64 - %add.ptr.i.i.i.i951 = getelementptr inbounds ptr, ptr %391, i64 %idx.ext.i.i.i.i950 - store ptr %385, ptr %add.ptr.i.i.i.i951, align 8 - %392 = load ptr, ptr %m_nodes.i.i932, align 8 - %arrayidx10.i.i.i.i952 = getelementptr inbounds i32, ptr %392, i64 -1 - %393 = load i32, ptr %arrayidx10.i.i.i.i952, align 4 - %inc.i.i.i.i953 = add i32 %393, 1 - store i32 %inc.i.i.i.i953, ptr %arrayidx10.i.i.i.i952, align 4 - %indvars.iv.next.i.i954 = add nuw nsw i64 %indvars.iv.i.i937, 1 - %exitcond.not.i.i955 = icmp eq i64 %indvars.iv.next.i.i954, %wide.trip.count.i.i935 - br i1 %exitcond.not.i.i955, label %invoke.cont.i60.i.loopexit, label %for.body.i.i936, !llvm.loop !53 - -lpad.i958: ; preds = %if.then.i.i.i.i957 - %394 = landingpad { ptr, i32 } +ehcleanup14.i.i: ; preds = %invoke.cont11.i.i + %82 = landingpad { ptr, i32 } cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i) #14 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) #14 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #14 br label %common.resume -invoke.cont.i60.i.loopexit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i949 - %.pre = load ptr, ptr %28, align 8 - %.pre2935 = load i32, ptr %m_num_decls.i, align 4 - %.pre2948 = zext i32 %.pre2935 to i64 - %.pre2949 = ptrtoint ptr %.pre to i64 - br label %invoke.cont.i60.i - -invoke.cont.i60.i: ; preds = %invoke.cont.i60.i.loopexit, %while.end.i53.i - %.pre-phi2950 = phi i64 [ %.pre2949, %invoke.cont.i60.i.loopexit ], [ %384, %while.end.i53.i ] - %idx.ext.i.i929.pre-phi = phi i64 [ %.pre2948, %invoke.cont.i60.i.loopexit ], [ %idx.ext.i.i966, %while.end.i53.i ] - %add.ptr.i.i930 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i929.pre-phi - %add.ptr.i931 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i930, i64 %idx.ext.i.i929.pre-phi - store i64 %.pre-phi2950, ptr %new_no_pats.i.i, align 8 - store ptr null, ptr %m_nodes.i.i917, align 8 - %cmp3.not.i.i = icmp eq i32 %381, 0 - br i1 %cmp3.not.i.i, label %if.then40.i.i, label %for.body.lr.ph.i.i +cleanup.action.i.i: ; preds = %ehcleanup14.thread297.i.i, %ehcleanup14.thread.i.i + %.pn.pn296.i.i = phi { ptr, i32 } [ %80, %ehcleanup14.thread.i.i ], [ %81, %ehcleanup14.thread297.i.i ] + call void @__cxa_free_exception(ptr %exception.i.i) #14 + br label %common.resume -for.body.lr.ph.i.i: ; preds = %invoke.cont.i60.i - %wide.trip.count.i.i = zext i32 %381 to i64 - br label %for.body.i.i918 +if.end15.i.i: ; preds = %if.then.i.i31, %while.body.i.i + %83 = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i.i93.i = icmp eq ptr %83, null + br i1 %cmp.i.i.i93.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, label %if.end.i.i.i94.i -for.body.i.i918: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i, %for.body.lr.ph.i.i - %indvars.iv.i.i = phi i64 [ 0, %for.body.lr.ph.i.i ], [ %indvars.iv.next.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i ] - %arrayidx.i.i919 = getelementptr inbounds ptr, ptr %add.ptr.i931, i64 %indvars.iv.i.i - %395 = load ptr, ptr %arrayidx.i.i919, align 8 - %tobool.not.i.i.i.i.i.i920 = icmp eq ptr %395, null - br i1 %tobool.not.i.i.i.i.i.i920, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i.i.i921 - -if.then.i.i.i.i.i.i921: ; preds = %for.body.i.i918 - %m_ref_count.i.i.i.i.i.i.i922 = getelementptr inbounds %class.ast, ptr %395, i64 0, i32 2 - %396 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i922, align 4 - %inc.i.i.i.i.i.i.i = add i32 %396, 1 - store i32 %inc.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i922, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i +if.end.i.i.i94.i: ; preds = %if.end15.i.i + %arrayidx.i.i.i95.i = getelementptr inbounds i32, ptr %83, i64 -1 + %84 = load i32, ptr %arrayidx.i.i.i95.i, align 4 + %85 = add i32 %84, -1 + %86 = zext i32 %85 to i64 + br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i.i.i921, %for.body.i.i918 - %397 = load ptr, ptr %m_nodes.i.i917, align 8 - %cmp.i.i.i.i923 = icmp eq ptr %397, null - br i1 %cmp.i.i.i.i923, label %if.then.i.i.i.i927, label %lor.lhs.false.i.i.i.i +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i94.i, %if.end15.i.i + %retval.0.i.i.i96.i = phi i64 [ %86, %if.end.i.i.i94.i ], [ 4294967295, %if.end15.i.i ] + %arrayidx.i1.i.i97.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i96.i + %87 = load ptr, ptr %arrayidx.i1.i.i97.i, align 8 + %88 = load i32, ptr %m_num_steps.i, align 8 + %inc.i.i = add i32 %88, 1 + store i32 %inc.i.i, ptr %m_num_steps.i, align 8 + %89 = getelementptr i8, ptr %arrayidx.i1.i.i97.i, i64 8 + %call17.val.i.i = load i32, ptr %89, align 8 + %90 = and i32 %call17.val.i.i, -51 + %or.cond.not.i.i = icmp eq i32 %90, 1 + br i1 %or.cond.not.i.i, label %if.then20.i.i, label %if.end31.i.i + +if.then20.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i + %91 = load ptr, ptr %m_cache.i.i.i, align 8 + %call.i.i.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %91, ptr noundef %87, i32 noundef 0) + %tobool22.not.i.i = icmp eq ptr %call.i.i.i.i, null + br i1 %tobool22.not.i.i, label %if.end31.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then20.i.i + %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %call.i.i.i.i, i64 0, i32 2 + %92 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i = add i32 %92, 1 + store i32 %inc.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 + %93 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i23.i.i = icmp eq ptr %93, null + br i1 %cmp.i.i23.i.i, label %if.then.i.i.i107.i, label %lor.lhs.false.i.i.i.i lor.lhs.false.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - %arrayidx.i.i.i.i924 = getelementptr inbounds i32, ptr %397, i64 -1 - %398 = load i32, ptr %arrayidx.i.i.i.i924, align 4 - %arrayidx4.i.i.i.i = getelementptr inbounds i32, ptr %397, i64 -2 - %399 = load i32, ptr %arrayidx4.i.i.i.i, align 4 - %cmp5.i.i.i.i = icmp eq i32 %398, %399 - br i1 %cmp5.i.i.i.i, label %if.then.i.i.i.i927, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i - -if.then.i.i.i.i927: ; preds = %lor.lhs.false.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i917) - to label %.noexc.i unwind label %lpad.i928 - -.noexc.i: ; preds = %if.then.i.i.i.i927 - %.pre.i.i.i.i = load ptr, ptr %m_nodes.i.i917, align 8 + %arrayidx.i.i24.i.i = getelementptr inbounds i32, ptr %93, i64 -1 + %94 = load i32, ptr %arrayidx.i.i24.i.i, align 4 + %arrayidx4.i.i.i.i = getelementptr inbounds i32, ptr %93, i64 -2 + %95 = load i32, ptr %arrayidx4.i.i.i.i, align 4 + %cmp5.i.i.i.i = icmp eq i32 %94, %95 + br i1 %cmp5.i.i.i.i, label %if.then.i.i.i107.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +if.then.i.i.i107.i: ; preds = %lor.lhs.false.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + %.pre.i.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 %arrayidx8.phi.trans.insert.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i, i64 -1 %.pre1.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i, align 4 br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i.i - %400 = phi i32 [ %.pre1.i.i.i.i, %.noexc.i ], [ %398, %lor.lhs.false.i.i.i.i ] - %401 = phi ptr [ %.pre.i.i.i.i, %.noexc.i ], [ %397, %lor.lhs.false.i.i.i.i ] - %idx.ext.i.i.i.i = zext i32 %400 to i64 - %add.ptr.i.i.i.i = getelementptr inbounds ptr, ptr %401, i64 %idx.ext.i.i.i.i - store ptr %395, ptr %add.ptr.i.i.i.i, align 8 - %402 = load ptr, ptr %m_nodes.i.i917, align 8 - %arrayidx10.i.i.i.i = getelementptr inbounds i32, ptr %402, i64 -1 - %403 = load i32, ptr %arrayidx10.i.i.i.i, align 4 - %inc.i.i.i.i925 = add i32 %403, 1 - store i32 %inc.i.i.i.i925, ptr %arrayidx10.i.i.i.i, align 4 - %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 - %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i - br i1 %exitcond.not.i.i, label %if.then40.i.i, label %for.body.i.i918, !llvm.loop !53 +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %if.then.i.i.i107.i, %lor.lhs.false.i.i.i.i + %96 = phi i32 [ %.pre1.i.i.i.i, %if.then.i.i.i107.i ], [ %94, %lor.lhs.false.i.i.i.i ] + %97 = phi ptr [ %.pre.i.i.i.i, %if.then.i.i.i107.i ], [ %93, %lor.lhs.false.i.i.i.i ] + %idx.ext.i.i.i.i = zext i32 %96 to i64 + %add.ptr.i.i.i.i = getelementptr inbounds ptr, ptr %97, i64 %idx.ext.i.i.i.i + store ptr %call.i.i.i.i, ptr %add.ptr.i.i.i.i, align 8 + %98 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i.i.i = getelementptr inbounds i32, ptr %98, i64 -1 + %99 = load i32, ptr %arrayidx10.i.i.i.i, align 4 + %inc.i.i.i105.i = add i32 %99, 1 + store i32 %inc.i.i.i105.i, ptr %arrayidx10.i.i.i.i, align 4 + %100 = load ptr, ptr %m_cache_pr.i.i.i, align 8 + %call.i.i25.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %100, ptr noundef %87, i32 noundef 0) + %tobool.not.i.i.i.i26.i.i = icmp eq ptr %call.i.i25.i.i, null + br i1 %tobool.not.i.i.i.i26.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i27.i.i + +if.then.i.i.i.i27.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %m_ref_count.i.i.i.i.i28.i.i = getelementptr inbounds %class.ast, ptr %call.i.i25.i.i, i64 0, i32 2 + %101 = load i32, ptr %m_ref_count.i.i.i.i.i28.i.i, align 4 + %inc.i.i.i.i.i29.i.i = add i32 %101, 1 + store i32 %inc.i.i.i.i.i29.i.i, ptr %m_ref_count.i.i.i.i.i28.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i27.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %102 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i31.i.i = icmp eq ptr %102, null + br i1 %cmp.i.i31.i.i, label %if.then.i.i40.i.i, label %lor.lhs.false.i.i32.i.i + +lor.lhs.false.i.i32.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + %arrayidx.i.i33.i.i = getelementptr inbounds i32, ptr %102, i64 -1 + %103 = load i32, ptr %arrayidx.i.i33.i.i, align 4 + %arrayidx4.i.i34.i.i = getelementptr inbounds i32, ptr %102, i64 -2 + %104 = load i32, ptr %arrayidx4.i.i34.i.i, align 4 + %cmp5.i.i35.i.i = icmp eq i32 %103, %104 + br i1 %cmp5.i.i35.i.i, label %if.then.i.i40.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +if.then.i.i40.i.i: ; preds = %lor.lhs.false.i.i32.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + %.pre.i.i41.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i42.i.i = getelementptr inbounds i32, ptr %.pre.i.i41.i.i, i64 -1 + %.pre1.i.i43.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i42.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %if.then.i.i40.i.i, %lor.lhs.false.i.i32.i.i + %105 = phi i32 [ %.pre1.i.i43.i.i, %if.then.i.i40.i.i ], [ %103, %lor.lhs.false.i.i32.i.i ] + %106 = phi ptr [ %.pre.i.i41.i.i, %if.then.i.i40.i.i ], [ %102, %lor.lhs.false.i.i32.i.i ] + %idx.ext.i.i36.i.i = zext i32 %105 to i64 + %add.ptr.i.i37.i.i = getelementptr inbounds ptr, ptr %106, i64 %idx.ext.i.i36.i.i + store ptr %call.i.i25.i.i, ptr %add.ptr.i.i37.i.i, align 8 + %107 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i38.i.i = getelementptr inbounds i32, ptr %107, i64 -1 + %108 = load i32, ptr %arrayidx10.i.i38.i.i, align 4 + %inc.i.i39.i.i = add i32 %108, 1 + store i32 %inc.i.i39.i.i, ptr %arrayidx10.i.i38.i.i, align 4 + %109 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %109, i64 -1 + %110 = load i32, ptr %arrayidx.i45.i.i, align 4 + %dec.i.i.i = add i32 %110, -1 + store i32 %dec.i.i.i, ptr %arrayidx.i45.i.i, align 4 + %this.val19.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i = icmp eq ptr %87, %call.i.i.i.i + %cmp.i.i.i.i106.i = icmp eq ptr %this.val19.i.i, null + %or.cond.i.i.i = select i1 %cmp.not.i.i.i, i1 true, i1 %cmp.i.i.i.i106.i + br i1 %or.cond.i.i.i, label %while.cond.backedge.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %arrayidx.i.i.i.i.i = getelementptr inbounds i32, ptr %this.val19.i.i, i64 -1 + %111 = load i32, ptr %arrayidx.i.i.i.i.i, align 4 + %cmp3.i.i.i.i.i = icmp eq i32 %111, 0 + br i1 %cmp3.i.i.i.i.i, label %while.cond.backedgethread-pre-split.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i + %112 = add i32 %111, -1 + %113 = zext i32 %112 to i64 + %m_new_child.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val19.i.i, i64 %113, i32 1 + %bf.load.i.i.i.i = load i32, ptr %m_new_child.i.i.i.i, align 8 + %bf.set.i.i.i.i = or i32 %bf.load.i.i.i.i, 2 + store i32 %bf.set.i.i.i.i, ptr %m_new_child.i.i.i.i, align 8 + br label %while.cond.backedgethread-pre-split.i.i + +while.cond.backedgethread-pre-split.i.i: ; preds = %sw.bb36.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i + %.pr.i.i = load ptr, ptr %m_frame_stack.i, align 8 + br label %while.cond.backedge.i.i + +while.cond.backedge.i.i: ; preds = %while.cond.backedgethread-pre-split.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %114 = phi ptr [ %.pr.i.i, %while.cond.backedgethread-pre-split.i.i ], [ %this.val19.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i ] + %cmp.i.i.i = icmp eq ptr %114, null + br i1 %cmp.i.i.i, label %while.end.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, !llvm.loop !48 + +if.end31.i.i: ; preds = %if.then20.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i + %m_kind.i.i.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 1 + %bf.load.i.i.i = load i32, ptr %m_kind.i.i.i, align 4 + %trunc.i.i = trunc i32 %bf.load.i.i.i to i16 + switch i16 %trunc.i.i, label %sw.default.i.i [ + i16 0, label %sw.bb.i.i + i16 2, label %sw.bb34.i.i + i16 1, label %sw.bb36.i.i + ] -lpad.i928: ; preds = %if.then.i.i.i.i927 - %404 = landingpad { ptr, i32 } - cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i) #14 - br label %ehcleanup211.i.i +sw.bb.i.i: ; preds = %if.end31.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2303.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr1305.i.i.i) + %bf.load.i46.i.i = load i32, ptr %89, align 8 + %bf.lshr.i.i.i = lshr i32 %bf.load.i46.i.i, 2 + %bf.clear.i47.i.i = and i32 %bf.lshr.i.i.i, 3 + switch i32 %bf.clear.i47.i.i, label %sw.bb.i.i.unreachabledefault [ + i32 0, label %sw.bb.i.i.i + i32 1, label %sw.bb302.i.i.i + i32 2, label %sw.bb358.i.i.i + i32 3, label %sw.bb359.i.i.i + ] -if.then40.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i, %invoke.cont.i60.i - %add.ptr41.i.i = getelementptr inbounds ptr, ptr %add.ptr.i56.i, i64 1 - %idx.ext42.i.i = zext i32 %380 to i64 - %add.ptr43.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i, i64 %idx.ext42.i.i - br i1 %cmp3.not.i.i933, label %for.end63.i.i, label %for.body47.i.i +sw.bb.i.i.i: ; preds = %sw.bb.i.i + %m_num_args.i.i.i.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 2 + %115 = load i32, ptr %m_num_args.i.i.i.i, align 8 + br label %while.cond.i.i.i -for.body47.i.i: ; preds = %if.then40.i.i, %for.inc61.i.i - %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc61.i.i ], [ 0, %if.then40.i.i ] - %j.0.i.i2897 = phi i32 [ %j.1.i.i, %for.inc61.i.i ], [ 0, %if.then40.i.i ] - %405 = load ptr, ptr %28, align 8 - %arrayidx.i83.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i, i64 %indvars.iv - %406 = load ptr, ptr %arrayidx.i83.i, align 8 - %call50.i84.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %405, ptr noundef %406) - to label %invoke.cont49.i85.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont49.i85.i: ; preds = %for.body47.i.i - br i1 %call50.i84.i, label %invoke.cont56.i.i, label %for.inc61.i.i - -invoke.cont56.i.i: ; preds = %invoke.cont49.i85.i - %407 = load ptr, ptr %arrayidx.i83.i, align 8 - %408 = load ptr, ptr %m_nodes.i.i932, align 8 - %idxprom.i.i913 = zext i32 %j.0.i.i2897 to i64 - %arrayidx.i.i914 = getelementptr inbounds ptr, ptr %408, i64 %idxprom.i.i913 - %409 = load ptr, ptr %new_pats.i.i, align 8 - %inc55.i.i = add i32 %j.0.i.i2897, 1 - %tobool.not.i.i899 = icmp eq ptr %407, null - br i1 %tobool.not.i.i899, label %_ZN11ast_manager7inc_refEP3ast.exit.i903, label %if.then.i.i900 - -if.then.i.i900: ; preds = %invoke.cont56.i.i - %m_ref_count.i.i.i901 = getelementptr inbounds %class.ast, ptr %407, i64 0, i32 2 - %410 = load i32, ptr %m_ref_count.i.i.i901, align 4 - %inc.i.i.i902 = add i32 %410, 1 - store i32 %inc.i.i.i902, ptr %m_ref_count.i.i.i901, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i903 - -_ZN11ast_manager7inc_refEP3ast.exit.i903: ; preds = %if.then.i.i900, %invoke.cont56.i.i - %411 = load ptr, ptr %arrayidx.i.i914, align 8 - %tobool.not.i2.i904 = icmp eq ptr %411, null - br i1 %tobool.not.i2.i904, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit911, label %if.then.i3.i905 - -if.then.i3.i905: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i903 - %m_ref_count.i.i4.i906 = getelementptr inbounds %class.ast, ptr %411, i64 0, i32 2 - %412 = load i32, ptr %m_ref_count.i.i4.i906, align 4 - %dec.i.i.i907 = add i32 %412, -1 - store i32 %dec.i.i.i907, ptr %m_ref_count.i.i4.i906, align 4 - %cmp.i.i908 = icmp eq i32 %dec.i.i.i907, 0 - br i1 %cmp.i.i908, label %if.then2.i.i909, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit911 - -if.then2.i.i909: ; preds = %if.then.i3.i905 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %409, ptr noundef nonnull %411) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit911 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit911: ; preds = %if.then2.i.i909, %_ZN11ast_manager7inc_refEP3ast.exit.i903, %if.then.i3.i905 - store ptr %407, ptr %arrayidx.i.i914, align 8 - br label %for.inc61.i.i +while.cond.i.i.i: ; preds = %while.body.i.i.i, %sw.bb.i.i.i + %bf.load2.i.i.i = load i32, ptr %89, align 8 + %bf.lshr3.i.i.i = lshr i32 %bf.load2.i.i.i, 6 + %cmp.i48.i.i = icmp ult i32 %bf.lshr3.i.i.i, %115 + br i1 %cmp.i48.i.i, label %while.body.i.i.i, label %while.end.i.i.i + +while.body.i.i.i: ; preds = %while.cond.i.i.i + %idxprom.i.i.i.i = zext nneg i32 %bf.lshr3.i.i.i to i64 + %arrayidx.i.i62.i.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 3, i64 %idxprom.i.i.i.i + %116 = load ptr, ptr %arrayidx.i.i62.i.i, align 8 + %117 = and i32 %bf.load2.i.i.i, -64 + %bf.shl.i.i.i = add i32 %117, 64 + %bf.clear12.i.i.i = and i32 %bf.load2.i.i.i, 63 + %bf.set.i.i.i = or disjoint i32 %bf.shl.i.i.i, %bf.clear12.i.i.i + store i32 %bf.set.i.i.i, ptr %89, align 8 + %bf.lshr14.i.i.i = lshr i32 %bf.load2.i.i.i, 4 + %bf.clear15.i.i.i = and i32 %bf.lshr14.i.i.i, 3 + %call16.i.i.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %116, i32 noundef %bf.clear15.i.i.i) + br i1 %call16.i.i.i, label %while.cond.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, !llvm.loop !49 + +while.end.i.i.i: ; preds = %while.cond.i.i.i + %m_decl.i.i.i.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 1 + %118 = load ptr, ptr %m_decl.i.i.i.i, align 8 + %119 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i49.i.i = icmp eq ptr %119, null + br i1 %cmp.i.i.i49.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i, label %if.end.i.i.i.i.i + +if.end.i.i.i.i.i: ; preds = %while.end.i.i.i + %arrayidx.i.i.i50.i.i = getelementptr inbounds i32, ptr %119, i64 -1 + %120 = load i32, ptr %arrayidx.i.i.i50.i.i, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i.i.i.i, %while.end.i.i.i + %retval.0.i.i.i.i.i = phi i32 [ %120, %if.end.i.i.i.i.i ], [ 0, %while.end.i.i.i ] + %m_spos.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i96.i, i32 2 + %121 = load i32, ptr %m_spos.i.i.i, align 4 + %sub.i.i.i = sub i32 %retval.0.i.i.i.i.i, %121 + %idx.ext.i.i.i = zext i32 %121 to i64 + %add.ptr.i.i.i = getelementptr inbounds ptr, ptr %119, i64 %idx.ext.i.i.i + %this.val56.i.i.i = load ptr, ptr %28, align 8 + store ptr null, ptr %new_t.i.i.i, align 8 + store ptr %this.val56.i.i.i, ptr %m_manager.i.i.i.i, align 8 + invoke void @_ZN13rewriter_core15elim_reflex_prsEj(ptr noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %121) + to label %invoke.cont.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %122 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i64.i.i.i = icmp eq ptr %122, null + br i1 %cmp.i.i64.i.i.i, label %invoke.cont26.i.i.i, label %if.end.i.i65.i.i.i + +if.end.i.i65.i.i.i: ; preds = %invoke.cont.i.i.i + %arrayidx.i.i66.i.i.i = getelementptr inbounds i32, ptr %122, i64 -1 + %123 = load i32, ptr %arrayidx.i.i66.i.i.i, align 4 + br label %invoke.cont26.i.i.i + +invoke.cont26.i.i.i: ; preds = %if.end.i.i65.i.i.i, %invoke.cont.i.i.i + %retval.0.i.i67.i.i.i = phi i32 [ %123, %if.end.i.i65.i.i.i ], [ 0, %invoke.cont.i.i.i ] + %124 = load i32, ptr %m_spos.i.i.i, align 4 + %sub29.i.i.i = sub i32 %retval.0.i.i67.i.i.i, %124 + %cmp30.i.i.i = icmp eq i32 %retval.0.i.i67.i.i.i, %124 + br i1 %cmp30.i.i.i, label %invoke.cont32.i.i.i, label %if.else.i.i.i + +invoke.cont32.i.i.i: ; preds = %invoke.cont26.i.i.i + %m_ref_count.i.i.i.i.i104.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 + %125 = load i32, ptr %m_ref_count.i.i.i.i.i104.i, align 4 + %inc.i.i.i.i.i.i = add i32 %125, 1 + store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i104.i, align 4 + store ptr %87, ptr %new_t.i.i.i, align 8 + %126 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i69.i.i.i = icmp eq ptr %126, null + br i1 %tobool.not.i3.i69.i.i.i, label %if.end54.i.i.i, label %if.then.i.i.i70.i.i.i + +if.then.i.i.i70.i.i.i: ; preds = %invoke.cont32.i.i.i + %127 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i72.i.i.i = getelementptr inbounds %class.ast, ptr %126, i64 0, i32 2 + %128 = load i32, ptr %m_ref_count.i.i.i.i72.i.i.i, align 4 + %dec.i.i.i.i73.i.i.i = add i32 %128, -1 + store i32 %dec.i.i.i.i73.i.i.i, ptr %m_ref_count.i.i.i.i72.i.i.i, align 4 + %cmp.i.i.i74.i.i.i = icmp eq i32 %dec.i.i.i.i73.i.i.i, 0 + br i1 %cmp.i.i.i74.i.i.i, label %if.then2.i.i.i75.i.i.i, label %if.end54.i.i.i + +if.then2.i.i.i75.i.i.i: ; preds = %if.then.i.i.i70.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %127, ptr noundef nonnull %126) + to label %if.end54.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i -lpad37.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i662 - %lpad.loopexit2871 = landingpad { ptr, i32 } +lpad.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i377.i.i.i + %lpad.loopexit661.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup210.i.i + br label %eh.resume.i.i.i -lpad37.i.i.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i858 - %lpad.loopexit2877 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i324.i.i.i + %lpad.loopexit663.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup210.i.i + br label %eh.resume.i.i.i -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body68.i.i, %if.then2.i.i - %lpad.loopexit2880 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i142.i.i.i + %lpad.loopexit666.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup210.i.i + br label %eh.resume.i.i.i -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i895 - %lpad.loopexit2883 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i + %lpad.loopexit669.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup210.i.i + br label %eh.resume.i.i.i -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body47.i.i, %if.then2.i.i909 - %lpad.loopexit2886 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.then2.i.i.i426.i.i.i, %if.then2.i.i.i409.i.i.i, %if.then.i.i396.i.i.i, %if.then.i350.i.i.i, %if.then.i.i343.i.i.i, %if.then2.i.i.i297.i.i.i, %if.then2.i.i.i283.i.i.i, %invoke.cont245.i.i.i, %if.then2.i.i.i269.i.i.i, %if.then240.i.i.i, %if.then2.i.i.i225.i.i.i, %if.then2.i.i.i216.i.i.i, %if.then.i.i53.i.i, %if.then2.i.i.i199.i.i.i, %if.then.i.i187.i.i.i, %if.then2.i.i.i169.i.i.i, %if.end85.i.i.i, %if.then2.i.i.i155.i.i.i, %if.then74.i.i.i, %if.then.i.i119.i.i.i, %if.end54.i.i.i, %if.then2.i.i.i105.i.i.i, %invoke.cont39.i.i.i, %if.else.i.i.i, %if.then2.i.i.i75.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %lpad.loopexit.split-lp670.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup210.i.i + br label %eh.resume.i.i.i + +if.else.i.i.i: ; preds = %invoke.cont26.i.i.i + %this.val55.i.i.i = load ptr, ptr %28, align 8 + %call38.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i.i.i, ptr noundef %118, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i) + to label %invoke.cont37.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont37.i.i.i: ; preds = %if.else.i.i.i + %tobool.not.i78.i.i.i = icmp eq ptr %call38.i.i.i, null + br i1 %tobool.not.i78.i.i.i, label %invoke.cont39.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i: ; preds = %invoke.cont37.i.i.i + %m_ref_count.i.i.i80.i.i.i = getelementptr inbounds %class.ast, ptr %call38.i.i.i, i64 0, i32 2 + %129 = load i32, ptr %m_ref_count.i.i.i80.i.i.i, align 4 + %inc.i.i.i81.i.i.i = add i32 %129, 1 + store i32 %inc.i.i.i81.i.i.i, ptr %m_ref_count.i.i.i80.i.i.i, align 4 + br label %invoke.cont39.i.i.i + +invoke.cont39.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i, %invoke.cont37.i.i.i + store ptr %call38.i.i.i, ptr %new_t.i.i.i, align 8 + %this.val54.i.i.i = load ptr, ptr %28, align 8 + %130 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %131 = load i32, ptr %m_spos.i.i.i, align 4 + %idx.ext47.i.i.i = zext i32 %131 to i64 + %add.ptr48.i.i.i = getelementptr inbounds ptr, ptr %130, i64 %idx.ext47.i.i.i + %call50.i.i.i = invoke noundef ptr @_ZN11ast_manager13mk_congruenceEP3appS1_jPKS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i.i.i, ptr noundef nonnull %87, ptr noundef %call38.i.i.i, i32 noundef %sub29.i.i.i, ptr noundef %add.ptr48.i.i.i) + to label %invoke.cont49.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont49.i.i.i: ; preds = %invoke.cont39.i.i.i + %tobool.not.i94.i.i.i = icmp eq ptr %call50.i.i.i, null + br i1 %tobool.not.i94.i.i.i, label %if.end.i98.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i: ; preds = %invoke.cont49.i.i.i + %m_ref_count.i.i.i96.i.i.i = getelementptr inbounds %class.ast, ptr %call50.i.i.i, i64 0, i32 2 + %132 = load i32, ptr %m_ref_count.i.i.i96.i.i.i, align 4 + %inc.i.i.i97.i.i.i = add i32 %132, 1 + store i32 %inc.i.i.i97.i.i.i, ptr %m_ref_count.i.i.i96.i.i.i, align 4 + br label %if.end.i98.i.i.i + +if.end.i98.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i, %invoke.cont49.i.i.i + %133 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i99.i.i.i = icmp eq ptr %133, null + br i1 %tobool.not.i3.i99.i.i.i, label %if.end54.i.i.i, label %if.then.i.i.i100.i.i.i + +if.then.i.i.i100.i.i.i: ; preds = %if.end.i98.i.i.i + %134 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i102.i.i.i = getelementptr inbounds %class.ast, ptr %133, i64 0, i32 2 + %135 = load i32, ptr %m_ref_count.i.i.i.i102.i.i.i, align 4 + %dec.i.i.i.i103.i.i.i = add i32 %135, -1 + store i32 %dec.i.i.i.i103.i.i.i, ptr %m_ref_count.i.i.i.i102.i.i.i, align 4 + %cmp.i.i.i104.i.i.i = icmp eq i32 %dec.i.i.i.i103.i.i.i, 0 + br i1 %cmp.i.i.i104.i.i.i, label %if.then2.i.i.i105.i.i.i, label %if.end54.i.i.i + +if.then2.i.i.i105.i.i.i: ; preds = %if.then.i.i.i100.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %134, ptr noundef nonnull %133) + to label %if.end54.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end54.i.i.i: ; preds = %if.then2.i.i.i105.i.i.i, %if.then.i.i.i100.i.i.i, %if.end.i98.i.i.i, %if.then2.i.i.i75.i.i.i, %if.then.i.i.i70.i.i.i, %invoke.cont32.i.i.i + %storemerge.i.i = phi ptr [ null, %if.then2.i.i.i75.i.i.i ], [ null, %if.then.i.i.i70.i.i.i ], [ null, %invoke.cont32.i.i.i ], [ %call50.i.i.i, %if.then2.i.i.i105.i.i.i ], [ %call50.i.i.i, %if.then.i.i.i100.i.i.i ], [ %call50.i.i.i, %if.end.i98.i.i.i ] + %.pre673.pre.i.i.i = phi ptr [ %87, %if.then2.i.i.i75.i.i.i ], [ %87, %if.then.i.i.i70.i.i.i ], [ %87, %invoke.cont32.i.i.i ], [ %call38.i.i.i, %if.then2.i.i.i105.i.i.i ], [ %call38.i.i.i, %if.then.i.i.i100.i.i.i ], [ %call38.i.i.i, %if.end.i98.i.i.i ] + store ptr %storemerge.i.i, ptr %m_pr.i88.i.i, align 8 + %136 = load ptr, ptr %m_cfg.i.i.i, align 8 + %call56.i.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %136, ptr noundef %118, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i93.i.i) + to label %invoke.cont55.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont55.i.i.i: ; preds = %if.end54.i.i.i + %cmp57.not.i.i.i = icmp eq i32 %call56.i.i.i, 5 + br i1 %cmp57.not.i.i.i, label %if.else235.i.i.i, label %if.then58.i.i.i + +if.then58.i.i.i: ; preds = %invoke.cont55.i.i.i + %137 = load i32, ptr %m_spos.i.i.i, align 4 + %138 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i110.i.i.i = icmp eq ptr %138, null + br i1 %cmp.i.i.i110.i.i.i, label %invoke.cont61.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i: ; preds = %if.then58.i.i.i + %arrayidx.i.i.i.i.i.i = getelementptr inbounds i32, ptr %138, i64 -1 + %139 = load i32, ptr %arrayidx.i.i.i.i.i.i, align 4 + %140 = zext i32 %139 to i64 + %add.ptr.i.i.i.i.i = getelementptr inbounds ptr, ptr %138, i64 %140 + %cmp3.i.i.i51.i.i = icmp ugt i32 %139, %137 + br i1 %cmp3.i.i.i51.i.i, label %for.body.i.i.preheader.i.i.i, label %if.then.i.i.i.i102.i + +for.body.i.i.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + %idx.ext.i.i59.i.i = zext i32 %137 to i64 + %add.ptr.i.i60.i.i = getelementptr inbounds ptr, ptr %138, i64 %idx.ext.i.i59.i.i + br label %for.body.i.i.i.i.i + +for.body.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, %for.body.i.i.preheader.i.i.i + %it.04.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i ], [ %add.ptr.i.i60.i.i, %for.body.i.i.preheader.i.i.i ] + %141 = load ptr, ptr %it.04.i.i.i.i.i, align 8 + %142 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i = icmp eq ptr %141, null + br i1 %tobool.not.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %141, i64 0, i32 2 + %143 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i = add i32 %143, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %142, ptr noundef nonnull %141) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i, %for.body.i.i.i.i.i + %incdec.ptr.i.i.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i, i64 1 + %cmp.i.i112.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i, %add.ptr.i.i.i.i.i + br i1 %cmp.i.i112.i.i.i, label %for.body.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + %.pre.i.i61.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i.i.i103.i = icmp eq ptr %.pre.i.i61.i.i, null + br i1 %tobool.not.i.i.i.i103.i, label %invoke.cont61.i.i.i, label %if.then.i.i.i.i102.i + +if.then.i.i.i.i102.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + %144 = phi ptr [ %.pre.i.i61.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i ], [ %138, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i ] + %arrayidx.i.i111.i.i.i = getelementptr inbounds i32, ptr %144, i64 -1 + store i32 %137, ptr %arrayidx.i.i111.i.i.i, align 4 + br label %invoke.cont61.i.i.i + +invoke.cont61.i.i.i: ; preds = %if.then.i.i.i.i102.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %if.then58.i.i.i + %145 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i = icmp eq ptr %145, null + br i1 %tobool.not.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i: ; preds = %invoke.cont61.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %145, i64 0, i32 2 + %146 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i = add i32 %146, 1 + store i32 %inc.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %invoke.cont61.i.i.i + %147 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i116.i.i.i = icmp eq ptr %147, null + br i1 %cmp.i.i116.i.i.i, label %if.then.i.i119.i.i.i, label %lor.lhs.false.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + %arrayidx.i.i117.i.i.i = getelementptr inbounds i32, ptr %147, i64 -1 + %148 = load i32, ptr %arrayidx.i.i117.i.i.i, align 4 + %arrayidx4.i.i.i.i.i = getelementptr inbounds i32, ptr %147, i64 -2 + %149 = load i32, ptr %arrayidx4.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i = icmp eq i32 %148, %149 + br i1 %cmp5.i.i.i.i.i, label %if.then.i.i119.i.i.i, label %invoke.cont66.i.i.i + +if.then.i.i119.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc120.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc120.i.i.i: ; preds = %if.then.i.i119.i.i.i + %.pre.i.i.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i, align 4 + br label %invoke.cont66.i.i.i + +invoke.cont66.i.i.i: ; preds = %.noexc120.i.i.i, %lor.lhs.false.i.i.i.i.i + %150 = phi i32 [ %.pre1.i.i.i.i.i, %.noexc120.i.i.i ], [ %148, %lor.lhs.false.i.i.i.i.i ] + %151 = phi ptr [ %.pre.i.i.i.i.i, %.noexc120.i.i.i ], [ %147, %lor.lhs.false.i.i.i.i.i ] + %idx.ext.i.i.i.i.i = zext i32 %150 to i64 + %add.ptr.i.i118.i.i.i = getelementptr inbounds ptr, ptr %151, i64 %idx.ext.i.i.i.i.i + store ptr %145, ptr %add.ptr.i.i118.i.i.i, align 8 + %152 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i.i.i.i = getelementptr inbounds i32, ptr %152, i64 -1 + %153 = load i32, ptr %arrayidx10.i.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %153, 1 + store i32 %inc.i.i.i.i.i, ptr %arrayidx10.i.i.i.i.i, align 4 + %154 = load i32, ptr %m_spos.i.i.i, align 4 + %155 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i123.i.i.i = icmp eq ptr %155, null + br i1 %cmp.i.i.i123.i.i.i, label %invoke.cont70.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i: ; preds = %invoke.cont66.i.i.i + %arrayidx.i.i.i126.i.i.i = getelementptr inbounds i32, ptr %155, i64 -1 + %156 = load i32, ptr %arrayidx.i.i.i126.i.i.i, align 4 + %157 = zext i32 %156 to i64 + %add.ptr.i.i127.i.i.i = getelementptr inbounds ptr, ptr %155, i64 %157 + %cmp3.i.i128.i.i.i = icmp ugt i32 %156, %154 + br i1 %cmp3.i.i128.i.i.i, label %for.body.i.i131.preheader.i.i.i, label %if.then.i.i129.i.i.i + +for.body.i.i131.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + %idx.ext.i124.i.i.i = zext i32 %154 to i64 + %add.ptr.i125.i.i.i = getelementptr inbounds ptr, ptr %155, i64 %idx.ext.i124.i.i.i + br label %for.body.i.i131.i.i.i + +for.body.i.i131.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, %for.body.i.i131.preheader.i.i.i + %it.04.i.i132.i.i.i = phi ptr [ %incdec.ptr.i.i138.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i ], [ %add.ptr.i125.i.i.i, %for.body.i.i131.preheader.i.i.i ] + %158 = load ptr, ptr %it.04.i.i132.i.i.i, align 8 + %159 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i133.i.i.i = icmp eq ptr %158, null + br i1 %tobool.not.i.i.i.i.i133.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i134.i.i.i + +if.then.i.i.i.i.i134.i.i.i: ; preds = %for.body.i.i131.i.i.i + %m_ref_count.i.i.i.i.i.i135.i.i.i = getelementptr inbounds %class.ast, ptr %158, i64 0, i32 2 + %160 = load i32, ptr %m_ref_count.i.i.i.i.i.i135.i.i.i, align 4 + %dec.i.i.i.i.i.i136.i.i.i = add i32 %160, -1 + store i32 %dec.i.i.i.i.i.i136.i.i.i, ptr %m_ref_count.i.i.i.i.i.i135.i.i.i, align 4 + %cmp.i.i.i.i.i137.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i136.i.i.i, 0 + br i1 %cmp.i.i.i.i.i137.i.i.i, label %if.then2.i.i.i.i.i142.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + +if.then2.i.i.i.i.i142.i.i.i: ; preds = %if.then.i.i.i.i.i134.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %159, ptr noundef nonnull %158) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i142.i.i.i, %if.then.i.i.i.i.i134.i.i.i, %for.body.i.i131.i.i.i + %incdec.ptr.i.i138.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i132.i.i.i, i64 1 + %cmp.i.i139.i.i.i = icmp ult ptr %incdec.ptr.i.i138.i.i.i, %add.ptr.i.i127.i.i.i + br i1 %cmp.i.i139.i.i.i, label %for.body.i.i131.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, !llvm.loop !31 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + %.pre.i140.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i141.i.i.i = icmp eq ptr %.pre.i140.i.i.i, null + br i1 %tobool.not.i.i141.i.i.i, label %invoke.cont70.i.i.i, label %if.then.i.i129.i.i.i + +if.then.i.i129.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + %161 = phi ptr [ %.pre.i140.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i ], [ %155, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i ] + %arrayidx.i.i130.i.i.i = getelementptr inbounds i32, ptr %161, i64 -1 + store i32 %154, ptr %arrayidx.i.i130.i.i.i, align 4 + br label %invoke.cont70.i.i.i + +invoke.cont70.i.i.i: ; preds = %if.then.i.i129.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %invoke.cont66.i.i.i + %162 = load ptr, ptr %m_pr2.i.i.i, align 8 + %cmp.i.i52.i.i = icmp eq ptr %162, null + br i1 %cmp.i.i52.i.i, label %if.then74.i.i.i, label %if.end85.i.i.i + +if.then74.i.i.i: ; preds = %invoke.cont70.i.i.i + %this.val53.i.i.i = load ptr, ptr %28, align 8 + %163 = load ptr, ptr %m_r.i93.i.i, align 8 + %call81.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val53.i.i.i, ptr noundef %.pre673.pre.i.i.i, ptr noundef %163) + to label %invoke.cont80.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont80.i.i.i: ; preds = %if.then74.i.i.i + %tobool.not.i144.i.i.i = icmp eq ptr %call81.i.i.i, null + br i1 %tobool.not.i144.i.i.i, label %if.end.i148.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i: ; preds = %invoke.cont80.i.i.i + %m_ref_count.i.i.i146.i.i.i = getelementptr inbounds %class.ast, ptr %call81.i.i.i, i64 0, i32 2 + %164 = load i32, ptr %m_ref_count.i.i.i146.i.i.i, align 4 + %inc.i.i.i147.i.i.i = add i32 %164, 1 + store i32 %inc.i.i.i147.i.i.i, ptr %m_ref_count.i.i.i146.i.i.i, align 4 + br label %if.end.i148.i.i.i + +if.end.i148.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i, %invoke.cont80.i.i.i + %165 = load ptr, ptr %m_pr2.i.i.i, align 8 + %tobool.not.i3.i149.i.i.i = icmp eq ptr %165, null + br i1 %tobool.not.i3.i149.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i, label %if.then.i.i.i150.i.i.i + +if.then.i.i.i150.i.i.i: ; preds = %if.end.i148.i.i.i + %166 = load ptr, ptr %m_manager.i.i151.i.i.i, align 8 + %m_ref_count.i.i.i.i152.i.i.i = getelementptr inbounds %class.ast, ptr %165, i64 0, i32 2 + %167 = load i32, ptr %m_ref_count.i.i.i.i152.i.i.i, align 4 + %dec.i.i.i.i153.i.i.i = add i32 %167, -1 + store i32 %dec.i.i.i.i153.i.i.i, ptr %m_ref_count.i.i.i.i152.i.i.i, align 4 + %cmp.i.i.i154.i.i.i = icmp eq i32 %dec.i.i.i.i153.i.i.i, 0 + br i1 %cmp.i.i.i154.i.i.i, label %if.then2.i.i.i155.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i + +if.then2.i.i.i155.i.i.i: ; preds = %if.then.i.i.i150.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %166, ptr noundef nonnull %165) + to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i: ; preds = %if.then2.i.i.i155.i.i.i, %if.then.i.i.i150.i.i.i, %if.end.i148.i.i.i + store ptr %call81.i.i.i, ptr %m_pr2.i.i.i, align 8 + br label %if.end85.i.i.i + +if.end85.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i, %invoke.cont70.i.i.i + %168 = phi ptr [ %call81.i.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i ], [ %162, %invoke.cont70.i.i.i ] + %this.val52.i.i.i = load ptr, ptr %28, align 8 + %169 = load ptr, ptr %m_pr.i88.i.i, align 8 + %call92.i.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val52.i.i.i, ptr noundef %169, ptr noundef %168) + to label %invoke.cont91.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont91.i.i.i: ; preds = %if.end85.i.i.i + %tobool.not.i158.i.i.i = icmp eq ptr %call92.i.i.i, null + br i1 %tobool.not.i158.i.i.i, label %if.end.i162.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i: ; preds = %invoke.cont91.i.i.i + %m_ref_count.i.i.i160.i.i.i = getelementptr inbounds %class.ast, ptr %call92.i.i.i, i64 0, i32 2 + %170 = load i32, ptr %m_ref_count.i.i.i160.i.i.i, align 4 + %inc.i.i.i161.i.i.i = add i32 %170, 1 + store i32 %inc.i.i.i161.i.i.i, ptr %m_ref_count.i.i.i160.i.i.i, align 4 + br label %if.end.i162.i.i.i + +if.end.i162.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i, %invoke.cont91.i.i.i + %171 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i163.i.i.i = icmp eq ptr %171, null + br i1 %tobool.not.i3.i163.i.i.i, label %invoke.cont94.i.i.i, label %if.then.i.i.i164.i.i.i + +if.then.i.i.i164.i.i.i: ; preds = %if.end.i162.i.i.i + %172 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i166.i.i.i = getelementptr inbounds %class.ast, ptr %171, i64 0, i32 2 + %173 = load i32, ptr %m_ref_count.i.i.i.i166.i.i.i, align 4 + %dec.i.i.i.i167.i.i.i = add i32 %173, -1 + store i32 %dec.i.i.i.i167.i.i.i, ptr %m_ref_count.i.i.i.i166.i.i.i, align 4 + %cmp.i.i.i168.i.i.i = icmp eq i32 %dec.i.i.i.i167.i.i.i, 0 + br i1 %cmp.i.i.i168.i.i.i, label %if.then2.i.i.i169.i.i.i, label %invoke.cont94.i.i.i + +if.then2.i.i.i169.i.i.i: ; preds = %if.then.i.i.i164.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %172, ptr noundef nonnull %171) + to label %invoke.cont94.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont94.i.i.i: ; preds = %if.then2.i.i.i169.i.i.i, %if.then.i.i.i164.i.i.i, %if.end.i162.i.i.i + store ptr %call92.i.i.i, ptr %m_pr.i88.i.i, align 8 + br i1 %tobool.not.i158.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i174.i.i.i + +if.then.i.i.i.i174.i.i.i: ; preds = %invoke.cont94.i.i.i + %m_ref_count.i.i.i.i.i175.i.i.i = getelementptr inbounds %class.ast, ptr %call92.i.i.i, i64 0, i32 2 + %174 = load i32, ptr %m_ref_count.i.i.i.i.i175.i.i.i, align 4 + %inc.i.i.i.i.i176.i.i.i = add i32 %174, 1 + store i32 %inc.i.i.i.i.i176.i.i.i, ptr %m_ref_count.i.i.i.i.i175.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i174.i.i.i, %invoke.cont94.i.i.i + %175 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i178.i.i.i = icmp eq ptr %175, null + br i1 %cmp.i.i178.i.i.i, label %if.then.i.i187.i.i.i, label %lor.lhs.false.i.i179.i.i.i + +lor.lhs.false.i.i179.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + %arrayidx.i.i180.i.i.i = getelementptr inbounds i32, ptr %175, i64 -1 + %176 = load i32, ptr %arrayidx.i.i180.i.i.i, align 4 + %arrayidx4.i.i181.i.i.i = getelementptr inbounds i32, ptr %175, i64 -2 + %177 = load i32, ptr %arrayidx4.i.i181.i.i.i, align 4 + %cmp5.i.i182.i.i.i = icmp eq i32 %176, %177 + br i1 %cmp5.i.i182.i.i.i, label %if.then.i.i187.i.i.i, label %invoke.cont99.i.i.i + +if.then.i.i187.i.i.i: ; preds = %lor.lhs.false.i.i179.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc191.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc191.i.i.i: ; preds = %if.then.i.i187.i.i.i + %.pre.i.i188.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i189.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i188.i.i.i, i64 -1 + %.pre1.i.i190.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i189.i.i.i, align 4 + br label %invoke.cont99.i.i.i + +invoke.cont99.i.i.i: ; preds = %.noexc191.i.i.i, %lor.lhs.false.i.i179.i.i.i + %178 = phi i32 [ %.pre1.i.i190.i.i.i, %.noexc191.i.i.i ], [ %176, %lor.lhs.false.i.i179.i.i.i ] + %179 = phi ptr [ %.pre.i.i188.i.i.i, %.noexc191.i.i.i ], [ %175, %lor.lhs.false.i.i179.i.i.i ] + %idx.ext.i.i183.i.i.i = zext i32 %178 to i64 + %add.ptr.i.i184.i.i.i = getelementptr inbounds ptr, ptr %179, i64 %idx.ext.i.i183.i.i.i + store ptr %call92.i.i.i, ptr %add.ptr.i.i184.i.i.i, align 8 + %180 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i185.i.i.i = getelementptr inbounds i32, ptr %180, i64 -1 + %181 = load i32, ptr %arrayidx10.i.i185.i.i.i, align 4 + %inc.i.i186.i.i.i = add i32 %181, 1 + store i32 %inc.i.i186.i.i.i, ptr %arrayidx10.i.i185.i.i.i, align 4 + %182 = load ptr, ptr %m_pr2.i.i.i, align 8 + %tobool.not.i3.i193.i.i.i = icmp eq ptr %182, null + br i1 %tobool.not.i3.i193.i.i.i, label %if.then105.i.i.i, label %if.then.i.i.i194.i.i.i + +if.then.i.i.i194.i.i.i: ; preds = %invoke.cont99.i.i.i + %183 = load ptr, ptr %m_manager.i.i151.i.i.i, align 8 + %m_ref_count.i.i.i.i196.i.i.i = getelementptr inbounds %class.ast, ptr %182, i64 0, i32 2 + %184 = load i32, ptr %m_ref_count.i.i.i.i196.i.i.i, align 4 + %dec.i.i.i.i197.i.i.i = add i32 %184, -1 + store i32 %dec.i.i.i.i197.i.i.i, ptr %m_ref_count.i.i.i.i196.i.i.i, align 4 + %cmp.i.i.i198.i.i.i = icmp eq i32 %dec.i.i.i.i197.i.i.i, 0 + br i1 %cmp.i.i.i198.i.i.i, label %if.then2.i.i.i199.i.i.i, label %if.then105.i.i.i + +if.then2.i.i.i199.i.i.i: ; preds = %if.then.i.i.i194.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %183, ptr noundef nonnull %182) + to label %if.then105.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.then105.i.i.i: ; preds = %if.then2.i.i.i199.i.i.i, %if.then.i.i.i194.i.i.i, %invoke.cont99.i.i.i + store ptr null, ptr %m_pr2.i.i.i, align 8 + %bf.load111.i.i.i = load i32, ptr %89, align 8 + %bf.clear112.i.i.i = and i32 %bf.load111.i.i.i, 1 + %tobool.not.i.i.i = icmp eq i32 %bf.clear112.i.i.i, 0 + br i1 %tobool.not.i.i.i, label %invoke.cont113.i.i.i, label %if.then.i.i53.i.i + +if.then.i.i53.i.i: ; preds = %if.then105.i.i.i + %185 = load ptr, ptr %m_pr.i88.i.i, align 8 + %186 = load ptr, ptr %m_r.i93.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %186, ptr noundef %185) + to label %invoke.cont113.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont113.i.i.i: ; preds = %if.then.i.i53.i.i, %if.then105.i.i.i + %187 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i204.i.i.i = getelementptr inbounds i32, ptr %187, i64 -1 + %188 = load i32, ptr %arrayidx.i204.i.i.i, align 4 + %dec.i.i.i.i = add i32 %188, -1 + store i32 %dec.i.i.i.i, ptr %arrayidx.i204.i.i.i, align 4 + %this.val58.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i205.i.i.i = icmp eq ptr %this.val58.i.i.i, null + br i1 %cmp.i.i205.i.i.i, label %invoke.cont115.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i: ; preds = %invoke.cont113.i.i.i + %arrayidx.i.i206.i.i.i = getelementptr inbounds i32, ptr %this.val58.i.i.i, i64 -1 + %189 = load i32, ptr %arrayidx.i.i206.i.i.i, align 4 + %cmp3.i.i207.i.i.i = icmp eq i32 %189, 0 + br i1 %cmp3.i.i207.i.i.i, label %invoke.cont115.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i + %190 = add i32 %189, -1 + %191 = zext i32 %190 to i64 + %m_new_child.i.i56.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val58.i.i.i, i64 %191, i32 1 + %bf.load.i.i57.i.i = load i32, ptr %m_new_child.i.i56.i.i, align 8 + %bf.set.i.i58.i.i = or i32 %bf.load.i.i57.i.i, 2 + store i32 %bf.set.i.i58.i.i, ptr %m_new_child.i.i56.i.i, align 8 + br label %invoke.cont115.i.i.i + +invoke.cont115.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i, %invoke.cont113.i.i.i + %192 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i3.i210.i.i.i = icmp eq ptr %192, null + br i1 %tobool.not.i3.i210.i.i.i, label %invoke.cont117.i.i.i, label %if.then.i.i.i211.i.i.i + +if.then.i.i.i211.i.i.i: ; preds = %invoke.cont115.i.i.i + %193 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i213.i.i.i = getelementptr inbounds %class.ast, ptr %192, i64 0, i32 2 + %194 = load i32, ptr %m_ref_count.i.i.i.i213.i.i.i, align 4 + %dec.i.i.i.i214.i.i.i = add i32 %194, -1 + store i32 %dec.i.i.i.i214.i.i.i, ptr %m_ref_count.i.i.i.i213.i.i.i, align 4 + %cmp.i.i.i215.i.i.i = icmp eq i32 %dec.i.i.i.i214.i.i.i, 0 + br i1 %cmp.i.i.i215.i.i.i, label %if.then2.i.i.i216.i.i.i, label %invoke.cont117.i.i.i + +if.then2.i.i.i216.i.i.i: ; preds = %if.then.i.i.i211.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %193, ptr noundef nonnull %192) + to label %invoke.cont117.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont117.i.i.i: ; preds = %if.then2.i.i.i216.i.i.i, %if.then.i.i.i211.i.i.i, %invoke.cont115.i.i.i + store ptr null, ptr %m_r.i93.i.i, align 8 + %195 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i219.i.i.i = icmp eq ptr %195, null + br i1 %tobool.not.i3.i219.i.i.i, label %cleanup.i.i.i, label %if.then.i.i.i220.i.i.i + +if.then.i.i.i220.i.i.i: ; preds = %invoke.cont117.i.i.i + %196 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i222.i.i.i = getelementptr inbounds %class.ast, ptr %195, i64 0, i32 2 + %197 = load i32, ptr %m_ref_count.i.i.i.i222.i.i.i, align 4 + %dec.i.i.i.i223.i.i.i = add i32 %197, -1 + store i32 %dec.i.i.i.i223.i.i.i, ptr %m_ref_count.i.i.i.i222.i.i.i, align 4 + %cmp.i.i.i224.i.i.i = icmp eq i32 %dec.i.i.i.i223.i.i.i, 0 + br i1 %cmp.i.i.i224.i.i.i, label %if.then2.i.i.i225.i.i.i, label %cleanup.i.i.i + +if.then2.i.i.i225.i.i.i: ; preds = %if.then.i.i.i220.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %196, ptr noundef nonnull %195) + to label %cleanup.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.else235.i.i.i: ; preds = %invoke.cont55.i.i.i + %bf.load236.i.i.i = load i32, ptr %89, align 8 + %198 = and i32 %bf.load236.i.i.i, 2 + %tobool239.not.i.i.i = icmp eq i32 %198, 0 + br i1 %tobool239.not.i.i.i, label %if.end.i290.i.i.i, label %if.then240.i.i.i + +if.then240.i.i.i: ; preds = %if.else235.i.i.i + %this.val50.i.i.i = load ptr, ptr %28, align 8 + %call243.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val50.i.i.i, ptr noundef %118, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i) + to label %invoke.cont242.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont242.i.i.i: ; preds = %if.then240.i.i.i + %tobool.not.i258.i.i.i = icmp eq ptr %call243.i.i.i, null + br i1 %tobool.not.i258.i.i.i, label %if.end.i262.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i: ; preds = %invoke.cont242.i.i.i + %m_ref_count.i.i.i260.i.i.i = getelementptr inbounds %class.ast, ptr %call243.i.i.i, i64 0, i32 2 + %199 = load i32, ptr %m_ref_count.i.i.i260.i.i.i, align 4 + %inc.i.i.i261.i.i.i = add i32 %199, 1 + store i32 %inc.i.i.i261.i.i.i, ptr %m_ref_count.i.i.i260.i.i.i, align 4 + br label %if.end.i262.i.i.i + +if.end.i262.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i, %invoke.cont242.i.i.i + %200 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i3.i263.i.i.i = icmp eq ptr %200, null + br i1 %tobool.not.i3.i263.i.i.i, label %invoke.cont245.i.i.i, label %if.then.i.i.i264.i.i.i + +if.then.i.i.i264.i.i.i: ; preds = %if.end.i262.i.i.i + %201 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i266.i.i.i = getelementptr inbounds %class.ast, ptr %200, i64 0, i32 2 + %202 = load i32, ptr %m_ref_count.i.i.i.i266.i.i.i, align 4 + %dec.i.i.i.i267.i.i.i = add i32 %202, -1 + store i32 %dec.i.i.i.i267.i.i.i, ptr %m_ref_count.i.i.i.i266.i.i.i, align 4 + %cmp.i.i.i268.i.i.i = icmp eq i32 %dec.i.i.i.i267.i.i.i, 0 + br i1 %cmp.i.i.i268.i.i.i, label %if.then2.i.i.i269.i.i.i, label %invoke.cont245.i.i.i + +if.then2.i.i.i269.i.i.i: ; preds = %if.then.i.i.i264.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %201, ptr noundef nonnull %200) + to label %invoke.cont245.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont245.i.i.i: ; preds = %if.then2.i.i.i269.i.i.i, %if.then.i.i.i264.i.i.i, %if.end.i262.i.i.i + store ptr %call243.i.i.i, ptr %m_r.i93.i.i, align 8 + %this.val49.i.i.i = load ptr, ptr %28, align 8 + %call252.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val49.i.i.i, ptr noundef nonnull %87, ptr noundef %call243.i.i.i) + to label %invoke.cont251.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont251.i.i.i: ; preds = %invoke.cont245.i.i.i + %tobool.not.i272.i.i.i = icmp eq ptr %call252.i.i.i, null + br i1 %tobool.not.i272.i.i.i, label %if.end.i276.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i: ; preds = %invoke.cont251.i.i.i + %m_ref_count.i.i.i274.i.i.i = getelementptr inbounds %class.ast, ptr %call252.i.i.i, i64 0, i32 2 + %203 = load i32, ptr %m_ref_count.i.i.i274.i.i.i, align 4 + %inc.i.i.i275.i.i.i = add i32 %203, 1 + store i32 %inc.i.i.i275.i.i.i, ptr %m_ref_count.i.i.i274.i.i.i, align 4 + br label %if.end.i276.i.i.i + +if.end.i276.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i, %invoke.cont251.i.i.i + %204 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i277.i.i.i = icmp eq ptr %204, null + br i1 %tobool.not.i3.i277.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i, label %if.then.i.i.i278.i.i.i + +if.then.i.i.i278.i.i.i: ; preds = %if.end.i276.i.i.i + %205 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i280.i.i.i = getelementptr inbounds %class.ast, ptr %204, i64 0, i32 2 + %206 = load i32, ptr %m_ref_count.i.i.i.i280.i.i.i, align 4 + %dec.i.i.i.i281.i.i.i = add i32 %206, -1 + store i32 %dec.i.i.i.i281.i.i.i, ptr %m_ref_count.i.i.i.i280.i.i.i, align 4 + %cmp.i.i.i282.i.i.i = icmp eq i32 %dec.i.i.i.i281.i.i.i, 0 + br i1 %cmp.i.i.i282.i.i.i, label %if.then2.i.i.i283.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i + +if.then2.i.i.i283.i.i.i: ; preds = %if.then.i.i.i278.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %205, ptr noundef nonnull %204) + to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i: ; preds = %if.then2.i.i.i283.i.i.i, %if.then.i.i.i278.i.i.i, %if.end.i276.i.i.i + store ptr %call252.i.i.i, ptr %m_pr.i88.i.i, align 8 + br label %if.end261.i.i.i + +if.end.i290.i.i.i: ; preds = %if.else235.i.i.i + %m_ref_count.i.i.i288.i.i.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 + %207 = load i32, ptr %m_ref_count.i.i.i288.i.i.i, align 4 + %inc.i.i.i289.i.i.i = add i32 %207, 1 + store i32 %inc.i.i.i289.i.i.i, ptr %m_ref_count.i.i.i288.i.i.i, align 4 + %208 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i3.i291.i.i.i = icmp eq ptr %208, null + br i1 %tobool.not.i3.i291.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i, label %if.then.i.i.i292.i.i.i + +if.then.i.i.i292.i.i.i: ; preds = %if.end.i290.i.i.i + %209 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i294.i.i.i = getelementptr inbounds %class.ast, ptr %208, i64 0, i32 2 + %210 = load i32, ptr %m_ref_count.i.i.i.i294.i.i.i, align 4 + %dec.i.i.i.i295.i.i.i = add i32 %210, -1 + store i32 %dec.i.i.i.i295.i.i.i, ptr %m_ref_count.i.i.i.i294.i.i.i, align 4 + %cmp.i.i.i296.i.i.i = icmp eq i32 %dec.i.i.i.i295.i.i.i, 0 + br i1 %cmp.i.i.i296.i.i.i, label %if.then2.i.i.i297.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i + +if.then2.i.i.i297.i.i.i: ; preds = %if.then.i.i.i292.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %209, ptr noundef nonnull %208) + to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i: ; preds = %if.then2.i.i.i297.i.i.i, %if.then.i.i.i292.i.i.i, %if.end.i290.i.i.i + store ptr %87, ptr %m_r.i93.i.i, align 8 + br label %if.end261.i.i.i + +if.end261.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i + %211 = load i32, ptr %m_spos.i.i.i, align 4 + %212 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i302.i.i.i = icmp eq ptr %212, null + br i1 %cmp.i.i.i302.i.i.i, label %invoke.cont264.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i: ; preds = %if.end261.i.i.i + %arrayidx.i.i.i306.i.i.i = getelementptr inbounds i32, ptr %212, i64 -1 + %213 = load i32, ptr %arrayidx.i.i.i306.i.i.i, align 4 + %214 = zext i32 %213 to i64 + %add.ptr.i.i307.i.i.i = getelementptr inbounds ptr, ptr %212, i64 %214 + %cmp3.i.i308.i.i.i = icmp ugt i32 %213, %211 + br i1 %cmp3.i.i308.i.i.i, label %for.body.i.i311.preheader.i.i.i, label %if.then.i.i309.i.i.i + +for.body.i.i311.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + %idx.ext.i304.i.i.i = zext i32 %211 to i64 + %add.ptr.i305.i.i.i = getelementptr inbounds ptr, ptr %212, i64 %idx.ext.i304.i.i.i + br label %for.body.i.i311.i.i.i + +for.body.i.i311.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i, %for.body.i.i311.preheader.i.i.i + %it.04.i.i312.i.i.i = phi ptr [ %incdec.ptr.i.i319.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i ], [ %add.ptr.i305.i.i.i, %for.body.i.i311.preheader.i.i.i ] + %215 = load ptr, ptr %it.04.i.i312.i.i.i, align 8 + %216 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i313.i.i.i = icmp eq ptr %215, null + br i1 %tobool.not.i.i.i.i.i313.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i, label %if.then.i.i.i.i.i314.i.i.i + +if.then.i.i.i.i.i314.i.i.i: ; preds = %for.body.i.i311.i.i.i + %m_ref_count.i.i.i.i.i.i315.i.i.i = getelementptr inbounds %class.ast, ptr %215, i64 0, i32 2 + %217 = load i32, ptr %m_ref_count.i.i.i.i.i.i315.i.i.i, align 4 + %dec.i.i.i.i.i.i316.i.i.i = add i32 %217, -1 + store i32 %dec.i.i.i.i.i.i316.i.i.i, ptr %m_ref_count.i.i.i.i.i.i315.i.i.i, align 4 + %cmp.i.i.i.i.i317.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i316.i.i.i, 0 + br i1 %cmp.i.i.i.i.i317.i.i.i, label %if.then2.i.i.i.i.i324.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i + +if.then2.i.i.i.i.i324.i.i.i: ; preds = %if.then.i.i.i.i.i314.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %216, ptr noundef nonnull %215) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i: ; preds = %if.then2.i.i.i.i.i324.i.i.i, %if.then.i.i.i.i.i314.i.i.i, %for.body.i.i311.i.i.i + %incdec.ptr.i.i319.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i312.i.i.i, i64 1 + %cmp.i.i320.i.i.i = icmp ult ptr %incdec.ptr.i.i319.i.i.i, %add.ptr.i.i307.i.i.i + br i1 %cmp.i.i320.i.i.i, label %for.body.i.i311.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i + %.pre.i322.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i323.i.i.i = icmp eq ptr %.pre.i322.i.i.i, null + br i1 %tobool.not.i.i323.i.i.i, label %invoke.cont264.i.i.i, label %if.then.i.i309.i.i.i + +if.then.i.i309.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + %218 = phi ptr [ %.pre.i322.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i ], [ %212, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i ] + %arrayidx.i.i310.i.i.i = getelementptr inbounds i32, ptr %218, i64 -1 + store i32 %211, ptr %arrayidx.i.i310.i.i.i, align 4 + br label %invoke.cont264.i.i.i + +invoke.cont264.i.i.i: ; preds = %if.then.i.i309.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, %if.end261.i.i.i + %219 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i.i.i.i328.i.i.i = icmp eq ptr %219, null + br i1 %tobool.not.i.i.i.i328.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i, label %if.then.i.i.i.i329.i.i.i + +if.then.i.i.i.i329.i.i.i: ; preds = %invoke.cont264.i.i.i + %m_ref_count.i.i.i.i.i330.i.i.i = getelementptr inbounds %class.ast, ptr %219, i64 0, i32 2 + %220 = load i32, ptr %m_ref_count.i.i.i.i.i330.i.i.i, align 4 + %inc.i.i.i.i.i331.i.i.i = add i32 %220, 1 + store i32 %inc.i.i.i.i.i331.i.i.i, ptr %m_ref_count.i.i.i.i.i330.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i: ; preds = %if.then.i.i.i.i329.i.i.i, %invoke.cont264.i.i.i + %221 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i334.i.i.i = icmp eq ptr %221, null + br i1 %cmp.i.i334.i.i.i, label %if.then.i.i343.i.i.i, label %lor.lhs.false.i.i335.i.i.i + +lor.lhs.false.i.i335.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + %arrayidx.i.i336.i.i.i = getelementptr inbounds i32, ptr %221, i64 -1 + %222 = load i32, ptr %arrayidx.i.i336.i.i.i, align 4 + %arrayidx4.i.i337.i.i.i = getelementptr inbounds i32, ptr %221, i64 -2 + %223 = load i32, ptr %arrayidx4.i.i337.i.i.i, align 4 + %cmp5.i.i338.i.i.i = icmp eq i32 %222, %223 + br i1 %cmp5.i.i338.i.i.i, label %if.then.i.i343.i.i.i, label %invoke.cont269.i.i.i + +if.then.i.i343.i.i.i: ; preds = %lor.lhs.false.i.i335.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc347.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc347.i.i.i: ; preds = %if.then.i.i343.i.i.i + %.pre.i.i344.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i345.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i344.i.i.i, i64 -1 + %.pre1.i.i346.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i345.i.i.i, align 4 + br label %invoke.cont269.i.i.i + +invoke.cont269.i.i.i: ; preds = %.noexc347.i.i.i, %lor.lhs.false.i.i335.i.i.i + %224 = phi i32 [ %.pre1.i.i346.i.i.i, %.noexc347.i.i.i ], [ %222, %lor.lhs.false.i.i335.i.i.i ] + %225 = phi ptr [ %.pre.i.i344.i.i.i, %.noexc347.i.i.i ], [ %221, %lor.lhs.false.i.i335.i.i.i ] + %idx.ext.i.i339.i.i.i = zext i32 %224 to i64 + %add.ptr.i.i340.i.i.i = getelementptr inbounds ptr, ptr %225, i64 %idx.ext.i.i339.i.i.i + store ptr %219, ptr %add.ptr.i.i340.i.i.i, align 8 + %226 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i341.i.i.i = getelementptr inbounds i32, ptr %226, i64 -1 + %227 = load i32, ptr %arrayidx10.i.i341.i.i.i, align 4 + %inc.i.i342.i.i.i = add i32 %227, 1 + store i32 %inc.i.i342.i.i.i, ptr %arrayidx10.i.i341.i.i.i, align 4 + %bf.load277.i.i.i = load i32, ptr %89, align 8 + %bf.clear278.i.i.i = and i32 %bf.load277.i.i.i, 1 + %tobool279.not.i.i.i = icmp eq i32 %bf.clear278.i.i.i, 0 + br i1 %tobool279.not.i.i.i, label %invoke.cont280.i.i.i, label %if.then.i350.i.i.i + +if.then.i350.i.i.i: ; preds = %invoke.cont269.i.i.i + %228 = load ptr, ptr %m_pr.i88.i.i, align 8 + %229 = load ptr, ptr %m_r.i93.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %229, ptr noundef %228) + to label %invoke.cont280.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont280.i.i.i: ; preds = %if.then.i350.i.i.i, %invoke.cont269.i.i.i + %230 = load i32, ptr %m_spos.i.i.i, align 4 + %231 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i355.i.i.i = icmp eq ptr %231, null + br i1 %cmp.i.i.i355.i.i.i, label %invoke.cont283.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i: ; preds = %invoke.cont280.i.i.i + %arrayidx.i.i.i359.i.i.i = getelementptr inbounds i32, ptr %231, i64 -1 + %232 = load i32, ptr %arrayidx.i.i.i359.i.i.i, align 4 + %233 = zext i32 %232 to i64 + %add.ptr.i.i360.i.i.i = getelementptr inbounds ptr, ptr %231, i64 %233 + %cmp3.i.i361.i.i.i = icmp ugt i32 %232, %230 + br i1 %cmp3.i.i361.i.i.i, label %for.body.i.i364.preheader.i.i.i, label %if.then.i.i362.i.i.i + +for.body.i.i364.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + %idx.ext.i357.i.i.i = zext i32 %230 to i64 + %add.ptr.i358.i.i.i = getelementptr inbounds ptr, ptr %231, i64 %idx.ext.i357.i.i.i + br label %for.body.i.i364.i.i.i + +for.body.i.i364.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i, %for.body.i.i364.preheader.i.i.i + %it.04.i.i365.i.i.i = phi ptr [ %incdec.ptr.i.i372.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i ], [ %add.ptr.i358.i.i.i, %for.body.i.i364.preheader.i.i.i ] + %234 = load ptr, ptr %it.04.i.i365.i.i.i, align 8 + %235 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i366.i.i.i = icmp eq ptr %234, null + br i1 %tobool.not.i.i.i.i.i366.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i, label %if.then.i.i.i.i.i367.i.i.i + +if.then.i.i.i.i.i367.i.i.i: ; preds = %for.body.i.i364.i.i.i + %m_ref_count.i.i.i.i.i.i368.i.i.i = getelementptr inbounds %class.ast, ptr %234, i64 0, i32 2 + %236 = load i32, ptr %m_ref_count.i.i.i.i.i.i368.i.i.i, align 4 + %dec.i.i.i.i.i.i369.i.i.i = add i32 %236, -1 + store i32 %dec.i.i.i.i.i.i369.i.i.i, ptr %m_ref_count.i.i.i.i.i.i368.i.i.i, align 4 + %cmp.i.i.i.i.i370.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i369.i.i.i, 0 + br i1 %cmp.i.i.i.i.i370.i.i.i, label %if.then2.i.i.i.i.i377.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i + +if.then2.i.i.i.i.i377.i.i.i: ; preds = %if.then.i.i.i.i.i367.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %235, ptr noundef nonnull %234) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i unwind label %lpad.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i: ; preds = %if.then2.i.i.i.i.i377.i.i.i, %if.then.i.i.i.i.i367.i.i.i, %for.body.i.i364.i.i.i + %incdec.ptr.i.i372.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i365.i.i.i, i64 1 + %cmp.i.i373.i.i.i = icmp ult ptr %incdec.ptr.i.i372.i.i.i, %add.ptr.i.i360.i.i.i + br i1 %cmp.i.i373.i.i.i, label %for.body.i.i364.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, !llvm.loop !31 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i + %.pre.i375.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i376.i.i.i = icmp eq ptr %.pre.i375.i.i.i, null + br i1 %tobool.not.i.i376.i.i.i, label %invoke.cont283.i.i.i, label %if.then.i.i362.i.i.i + +if.then.i.i362.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + %237 = phi ptr [ %.pre.i375.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i ], [ %231, %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i ] + %arrayidx.i.i363.i.i.i = getelementptr inbounds i32, ptr %237, i64 -1 + store i32 %230, ptr %arrayidx.i.i363.i.i.i, align 4 + br label %invoke.cont283.i.i.i + +invoke.cont283.i.i.i: ; preds = %if.then.i.i362.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, %invoke.cont280.i.i.i + %238 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i.i.i.i381.i.i.i = icmp eq ptr %238, null + br i1 %tobool.not.i.i.i.i381.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i, label %if.then.i.i.i.i382.i.i.i + +if.then.i.i.i.i382.i.i.i: ; preds = %invoke.cont283.i.i.i + %m_ref_count.i.i.i.i.i383.i.i.i = getelementptr inbounds %class.ast, ptr %238, i64 0, i32 2 + %239 = load i32, ptr %m_ref_count.i.i.i.i.i383.i.i.i, align 4 + %inc.i.i.i.i.i384.i.i.i = add i32 %239, 1 + store i32 %inc.i.i.i.i.i384.i.i.i, ptr %m_ref_count.i.i.i.i.i383.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i: ; preds = %if.then.i.i.i.i382.i.i.i, %invoke.cont283.i.i.i + %240 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i387.i.i.i = icmp eq ptr %240, null + br i1 %cmp.i.i387.i.i.i, label %if.then.i.i396.i.i.i, label %lor.lhs.false.i.i388.i.i.i + +lor.lhs.false.i.i388.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + %arrayidx.i.i389.i.i.i = getelementptr inbounds i32, ptr %240, i64 -1 + %241 = load i32, ptr %arrayidx.i.i389.i.i.i, align 4 + %arrayidx4.i.i390.i.i.i = getelementptr inbounds i32, ptr %240, i64 -2 + %242 = load i32, ptr %arrayidx4.i.i390.i.i.i, align 4 + %cmp5.i.i391.i.i.i = icmp eq i32 %241, %242 + br i1 %cmp5.i.i391.i.i.i, label %if.then.i.i396.i.i.i, label %invoke.cont287.i.i.i + +if.then.i.i396.i.i.i: ; preds = %lor.lhs.false.i.i388.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc400.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc400.i.i.i: ; preds = %if.then.i.i396.i.i.i + %.pre.i.i397.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i398.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i397.i.i.i, i64 -1 + %.pre1.i.i399.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i398.i.i.i, align 4 + br label %invoke.cont287.i.i.i + +invoke.cont287.i.i.i: ; preds = %.noexc400.i.i.i, %lor.lhs.false.i.i388.i.i.i + %243 = phi i32 [ %.pre1.i.i399.i.i.i, %.noexc400.i.i.i ], [ %241, %lor.lhs.false.i.i388.i.i.i ] + %244 = phi ptr [ %.pre.i.i397.i.i.i, %.noexc400.i.i.i ], [ %240, %lor.lhs.false.i.i388.i.i.i ] + %idx.ext.i.i392.i.i.i = zext i32 %243 to i64 + %add.ptr.i.i393.i.i.i = getelementptr inbounds ptr, ptr %244, i64 %idx.ext.i.i392.i.i.i + store ptr %238, ptr %add.ptr.i.i393.i.i.i, align 8 + %245 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i394.i.i.i = getelementptr inbounds i32, ptr %245, i64 -1 + %246 = load i32, ptr %arrayidx10.i.i394.i.i.i, align 4 + %inc.i.i395.i.i.i = add i32 %246, 1 + store i32 %inc.i.i395.i.i.i, ptr %arrayidx10.i.i394.i.i.i, align 4 + %247 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i403.i.i.i = icmp eq ptr %247, null + br i1 %tobool.not.i3.i403.i.i.i, label %invoke.cont291.i.i.i, label %if.then.i.i.i404.i.i.i + +if.then.i.i.i404.i.i.i: ; preds = %invoke.cont287.i.i.i + %248 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i406.i.i.i = getelementptr inbounds %class.ast, ptr %247, i64 0, i32 2 + %249 = load i32, ptr %m_ref_count.i.i.i.i406.i.i.i, align 4 + %dec.i.i.i.i407.i.i.i = add i32 %249, -1 + store i32 %dec.i.i.i.i407.i.i.i, ptr %m_ref_count.i.i.i.i406.i.i.i, align 4 + %cmp.i.i.i408.i.i.i = icmp eq i32 %dec.i.i.i.i407.i.i.i, 0 + br i1 %cmp.i.i.i408.i.i.i, label %if.then2.i.i.i409.i.i.i, label %invoke.cont291.i.i.i + +if.then2.i.i.i409.i.i.i: ; preds = %if.then.i.i.i404.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %248, ptr noundef nonnull %247) + to label %invoke.cont291.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont291.i.i.i: ; preds = %if.then2.i.i.i409.i.i.i, %if.then.i.i.i404.i.i.i, %invoke.cont287.i.i.i + store ptr null, ptr %m_pr.i88.i.i, align 8 + %250 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i413.i.i.i = getelementptr inbounds i32, ptr %250, i64 -1 + %251 = load i32, ptr %arrayidx.i413.i.i.i, align 4 + %dec.i414.i.i.i = add i32 %251, -1 + store i32 %dec.i414.i.i.i, ptr %arrayidx.i413.i.i.i, align 4 + %252 = load ptr, ptr %m_r.i93.i.i, align 8 + %this.val59.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i.i = icmp eq ptr %252, %87 + %cmp.i.i.i415.i.i.i = icmp eq ptr %this.val59.i.i.i, null + %or.cond.i.i.i.i = select i1 %cmp.not.i.i.i.i, i1 true, i1 %cmp.i.i.i415.i.i.i + br i1 %or.cond.i.i.i.i, label %invoke.cont297.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i: ; preds = %invoke.cont291.i.i.i + %arrayidx.i.i.i416.i.i.i = getelementptr inbounds i32, ptr %this.val59.i.i.i, i64 -1 + %253 = load i32, ptr %arrayidx.i.i.i416.i.i.i, align 4 + %cmp3.i.i.i.i.i.i = icmp eq i32 %253, 0 + br i1 %cmp3.i.i.i.i.i.i, label %invoke.cont297.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i + %254 = add i32 %253, -1 + %255 = zext i32 %254 to i64 + %m_new_child.i.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i.i.i, i64 %255, i32 1 + %bf.load.i.i417.i.i.i = load i32, ptr %m_new_child.i.i.i.i.i, align 8 + %bf.set.i.i.i.i.i = or i32 %bf.load.i.i417.i.i.i, 2 + store i32 %bf.set.i.i.i.i.i, ptr %m_new_child.i.i.i.i.i, align 8 + %.pr.pre.i.i.i = load ptr, ptr %m_r.i93.i.i, align 8 + br label %invoke.cont297.i.i.i + +invoke.cont297.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i, %invoke.cont291.i.i.i + %256 = phi ptr [ %252, %invoke.cont291.i.i.i ], [ %252, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i ], [ %.pr.pre.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i ] + %tobool.not.i3.i420.i.i.i = icmp eq ptr %256, null + br i1 %tobool.not.i3.i420.i.i.i, label %cleanup.i.i.i, label %if.then.i.i.i421.i.i.i + +if.then.i.i.i421.i.i.i: ; preds = %invoke.cont297.i.i.i + %257 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i423.i.i.i = getelementptr inbounds %class.ast, ptr %256, i64 0, i32 2 + %258 = load i32, ptr %m_ref_count.i.i.i.i423.i.i.i, align 4 + %dec.i.i.i.i424.i.i.i = add i32 %258, -1 + store i32 %dec.i.i.i.i424.i.i.i, ptr %m_ref_count.i.i.i.i423.i.i.i, align 4 + %cmp.i.i.i425.i.i.i = icmp eq i32 %dec.i.i.i.i424.i.i.i, 0 + br i1 %cmp.i.i.i425.i.i.i, label %if.then2.i.i.i426.i.i.i, label %cleanup.i.i.i + +if.then2.i.i.i426.i.i.i: ; preds = %if.then.i.i.i421.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %257, ptr noundef nonnull %256) + to label %cleanup.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +cleanup.i.i.i: ; preds = %if.then2.i.i.i426.i.i.i, %if.then.i.i.i421.i.i.i, %invoke.cont297.i.i.i, %if.then2.i.i.i225.i.i.i, %if.then.i.i.i220.i.i.i, %invoke.cont117.i.i.i + %m_r.sink.i.i.i = phi ptr [ %m_pr.i88.i.i, %if.then2.i.i.i225.i.i.i ], [ %m_pr.i88.i.i, %invoke.cont117.i.i.i ], [ %m_pr.i88.i.i, %if.then.i.i.i220.i.i.i ], [ %m_r.i93.i.i, %invoke.cont297.i.i.i ], [ %m_r.i93.i.i, %if.then.i.i.i421.i.i.i ], [ %m_r.i93.i.i, %if.then2.i.i.i426.i.i.i ] + store ptr null, ptr %m_r.sink.i.i.i, align 8 + %tobool.not.i.i429.i.i.i = icmp eq ptr %.pre673.pre.i.i.i, null + br i1 %tobool.not.i.i429.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i430.i.i.i + +if.then.i.i.i430.i.i.i: ; preds = %cleanup.i.i.i + %m_ref_count.i.i.i.i432.i.i.i = getelementptr inbounds %class.ast, ptr %.pre673.pre.i.i.i, i64 0, i32 2 + %259 = load i32, ptr %m_ref_count.i.i.i.i432.i.i.i, align 4 + %dec.i.i.i.i433.i.i.i = add i32 %259, -1 + store i32 %dec.i.i.i.i433.i.i.i, ptr %m_ref_count.i.i.i.i432.i.i.i, align 4 + %cmp.i.i.i434.i.i.i = icmp eq i32 %dec.i.i.i.i433.i.i.i, 0 + br i1 %cmp.i.i.i434.i.i.i, label %if.then2.i.i.i435.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.then2.i.i.i435.i.i.i: ; preds = %if.then.i.i.i430.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i.i.i, ptr noundef nonnull %.pre673.pre.i.i.i) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i + +terminate.lpad.i.i.i.i: ; preds = %if.then2.i.i.i435.i.i.i + %260 = landingpad { ptr, i32 } + catch ptr null + %261 = extractvalue { ptr, i32 } %260, 0 + tail call void @__clang_call_terminate(ptr %261) #15 + unreachable -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.end88.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit, %if.then2.i.i.i597, %if.then2.i.i.i606, %if.then.i610, %if.then.i.i636 - %lpad.loopexit.split-lp2887 = landingpad { ptr, i32 } - cleanup - br label %ehcleanup210.i.i +sw.bb302.i.i.i: ; preds = %sw.bb.i.i + %this.val48.i.i.i = load ptr, ptr %28, align 8 + store ptr %this.val48.i.i.i, ptr %m_manager.i436.i.i.i, align 8 + store ptr null, ptr %pr1305.i.i.i, align 8 + store ptr %this.val48.i.i.i, ptr %m_manager.i437.i.i.i, align 8 + %262 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i440.i.i.i = icmp eq ptr %262, null + br i1 %cmp.i.i.i440.i.i.i, label %invoke.cont311.i.i.i, label %if.end.i.i.i.i.i.i + +if.end.i.i.i.i.i.i: ; preds = %sw.bb302.i.i.i + %arrayidx.i.i.i441.i.i.i = getelementptr inbounds i32, ptr %262, i64 -1 + %263 = load i32, ptr %arrayidx.i.i.i441.i.i.i, align 4 + %264 = add i32 %263, -1 + %265 = zext i32 %264 to i64 + br label %invoke.cont311.i.i.i + +invoke.cont311.i.i.i: ; preds = %if.end.i.i.i.i.i.i, %sw.bb302.i.i.i + %retval.0.i.i.i.i.i.i = phi i64 [ %265, %if.end.i.i.i.i.i.i ], [ 4294967295, %sw.bb302.i.i.i ] + %arrayidx.i1.i.i.i.i.i = getelementptr inbounds ptr, ptr %262, i64 %retval.0.i.i.i.i.i.i + %266 = load ptr, ptr %arrayidx.i1.i.i.i.i.i, align 8 + %tobool.not.i442.i.i.i = icmp eq ptr %266, null + br i1 %tobool.not.i442.i.i.i, label %if.end.i.i.i459.i.i.i, label %invoke.cont313.i.i.i + +invoke.cont313.i.i.i: ; preds = %invoke.cont311.i.i.i + %m_ref_count.i.i.i444.i.i.i = getelementptr inbounds %class.ast, ptr %266, i64 0, i32 2 + %267 = load i32, ptr %m_ref_count.i.i.i444.i.i.i, align 4 + %inc.i.i.i445.i.i.i = add i32 %267, 1 + store i32 %inc.i.i.i445.i.i.i, ptr %m_ref_count.i.i.i444.i.i.i, align 4 + %.pre.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8, !nonnull !50, !noundef !50 + br label %if.end.i.i.i459.i.i.i + +if.end.i.i.i459.i.i.i: ; preds = %invoke.cont313.i.i.i, %invoke.cont311.i.i.i + %268 = phi ptr [ %.pre.i.i.i, %invoke.cont313.i.i.i ], [ %262, %invoke.cont311.i.i.i ] + store ptr %266, ptr %pr2303.i.i.i, align 8 + %arrayidx.i.i.i460.i.i.i = getelementptr inbounds i32, ptr %268, i64 -1 + %269 = load i32, ptr %arrayidx.i.i.i460.i.i.i, align 4 + %270 = add i32 %269, -1 + %271 = zext i32 %270 to i64 + %arrayidx.i1.i.i462.i.i.i = getelementptr inbounds ptr, ptr %268, i64 %271 + %272 = load ptr, ptr %arrayidx.i1.i.i462.i.i.i, align 8 + store i32 %270, ptr %arrayidx.i.i.i460.i.i.i, align 4 + %273 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i464.i.i.i = icmp eq ptr %272, null + br i1 %tobool.not.i.i.i.i464.i.i.i, label %invoke.cont316.i.i.i, label %if.then.i.i.i.i465.i.i.i + +if.then.i.i.i.i465.i.i.i: ; preds = %if.end.i.i.i459.i.i.i + %m_ref_count.i.i.i.i.i466.i.i.i = getelementptr inbounds %class.ast, ptr %272, i64 0, i32 2 + %274 = load i32, ptr %m_ref_count.i.i.i.i.i466.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i = add i32 %274, -1 + store i32 %dec.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i466.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i, label %invoke.cont316.i.i.i + +if.then2.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i465.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %273, ptr noundef nonnull %272) + to label %invoke.cont316.i.i.i unwind label %lpad310.i.i.i + +invoke.cont316.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i, %if.then.i.i.i.i465.i.i.i, %if.end.i.i.i459.i.i.i + %275 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i471.i.i.i = icmp eq ptr %275, null + br i1 %cmp.i.i.i471.i.i.i, label %invoke.cont318.i.i.i, label %if.end.i.i.i472.i.i.i + +if.end.i.i.i472.i.i.i: ; preds = %invoke.cont316.i.i.i + %arrayidx.i.i.i473.i.i.i = getelementptr inbounds i32, ptr %275, i64 -1 + %276 = load i32, ptr %arrayidx.i.i.i473.i.i.i, align 4 + %277 = add i32 %276, -1 + %278 = zext i32 %277 to i64 + br label %invoke.cont318.i.i.i + +invoke.cont318.i.i.i: ; preds = %if.end.i.i.i472.i.i.i, %invoke.cont316.i.i.i + %retval.0.i.i.i474.i.i.i = phi i64 [ %278, %if.end.i.i.i472.i.i.i ], [ 4294967295, %invoke.cont316.i.i.i ] + %arrayidx.i1.i.i475.i.i.i = getelementptr inbounds ptr, ptr %275, i64 %retval.0.i.i.i474.i.i.i + %279 = load ptr, ptr %arrayidx.i1.i.i475.i.i.i, align 8 + %tobool.not.i477.i.i.i = icmp eq ptr %279, null + br i1 %tobool.not.i477.i.i.i, label %if.end.i.i.i494.i.i.i, label %invoke.cont320.i.i.i + +invoke.cont320.i.i.i: ; preds = %invoke.cont318.i.i.i + %m_ref_count.i.i.i479.i.i.i = getelementptr inbounds %class.ast, ptr %279, i64 0, i32 2 + %280 = load i32, ptr %m_ref_count.i.i.i479.i.i.i, align 4 + %inc.i.i.i480.i.i.i = add i32 %280, 1 + store i32 %inc.i.i.i480.i.i.i, ptr %m_ref_count.i.i.i479.i.i.i, align 4 + %.pre.i101.i = load ptr, ptr %m_nodes.i30.i.i, align 8, !nonnull !50, !noundef !50 + br label %if.end.i.i.i494.i.i.i + +if.end.i.i.i494.i.i.i: ; preds = %invoke.cont320.i.i.i, %invoke.cont318.i.i.i + %281 = phi ptr [ %.pre.i101.i, %invoke.cont320.i.i.i ], [ %275, %invoke.cont318.i.i.i ] + store ptr %279, ptr %pr1305.i.i.i, align 8 + %arrayidx.i.i.i495.i.i.i = getelementptr inbounds i32, ptr %281, i64 -1 + %282 = load i32, ptr %arrayidx.i.i.i495.i.i.i, align 4 + %283 = add i32 %282, -1 + %284 = zext i32 %283 to i64 + %arrayidx.i1.i.i499.i.i.i = getelementptr inbounds ptr, ptr %281, i64 %284 + %285 = load ptr, ptr %arrayidx.i1.i.i499.i.i.i, align 8 + store i32 %283, ptr %arrayidx.i.i.i495.i.i.i, align 4 + %286 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i501.i.i.i = icmp eq ptr %285, null + br i1 %tobool.not.i.i.i.i501.i.i.i, label %invoke.cont323.i.i.i, label %if.then.i.i.i.i502.i.i.i + +if.then.i.i.i.i502.i.i.i: ; preds = %if.end.i.i.i494.i.i.i + %m_ref_count.i.i.i.i.i503.i.i.i = getelementptr inbounds %class.ast, ptr %285, i64 0, i32 2 + %287 = load i32, ptr %m_ref_count.i.i.i.i.i503.i.i.i, align 4 + %dec.i.i.i.i.i504.i.i.i = add i32 %287, -1 + store i32 %dec.i.i.i.i.i504.i.i.i, ptr %m_ref_count.i.i.i.i.i503.i.i.i, align 4 + %cmp.i.i.i.i505.i.i.i = icmp eq i32 %dec.i.i.i.i.i504.i.i.i, 0 + br i1 %cmp.i.i.i.i505.i.i.i, label %if.then2.i.i.i.i506.i.i.i, label %invoke.cont323.i.i.i + +if.then2.i.i.i.i506.i.i.i: ; preds = %if.then.i.i.i.i502.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %286, ptr noundef nonnull %285) + to label %invoke.cont323.i.i.i unwind label %lpad310.i.i.i + +invoke.cont323.i.i.i: ; preds = %if.then2.i.i.i.i506.i.i.i, %if.then.i.i.i.i502.i.i.i, %if.end.i.i.i494.i.i.i + %this.val.i.i.i = load ptr, ptr %28, align 8 + %call328.i.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i.i, ptr noundef %279, ptr noundef %266) + to label %invoke.cont327.i.i.i unwind label %lpad310.i.i.i + +invoke.cont327.i.i.i: ; preds = %invoke.cont323.i.i.i + %tobool.not.i512.i.i.i = icmp eq ptr %call328.i.i.i, null + br i1 %tobool.not.i512.i.i.i, label %if.end.i516.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i: ; preds = %invoke.cont327.i.i.i + %m_ref_count.i.i.i514.i.i.i = getelementptr inbounds %class.ast, ptr %call328.i.i.i, i64 0, i32 2 + %288 = load i32, ptr %m_ref_count.i.i.i514.i.i.i, align 4 + %inc.i.i.i515.i.i.i = add i32 %288, 1 + store i32 %inc.i.i.i515.i.i.i, ptr %m_ref_count.i.i.i514.i.i.i, align 4 + br label %if.end.i516.i.i.i + +if.end.i516.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i, %invoke.cont327.i.i.i + %289 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i517.i.i.i = icmp eq ptr %289, null + br i1 %tobool.not.i3.i517.i.i.i, label %invoke.cont330.i.i.i, label %if.then.i.i.i518.i.i.i + +if.then.i.i.i518.i.i.i: ; preds = %if.end.i516.i.i.i + %290 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i520.i.i.i = getelementptr inbounds %class.ast, ptr %289, i64 0, i32 2 + %291 = load i32, ptr %m_ref_count.i.i.i.i520.i.i.i, align 4 + %dec.i.i.i.i521.i.i.i = add i32 %291, -1 + store i32 %dec.i.i.i.i521.i.i.i, ptr %m_ref_count.i.i.i.i520.i.i.i, align 4 + %cmp.i.i.i522.i.i.i = icmp eq i32 %dec.i.i.i.i521.i.i.i, 0 + br i1 %cmp.i.i.i522.i.i.i, label %if.then2.i.i.i523.i.i.i, label %invoke.cont330.i.i.i + +if.then2.i.i.i523.i.i.i: ; preds = %if.then.i.i.i518.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %290, ptr noundef nonnull %289) + to label %invoke.cont330.i.i.i unwind label %lpad310.i.i.i + +invoke.cont330.i.i.i: ; preds = %if.then2.i.i.i523.i.i.i, %if.then.i.i.i518.i.i.i, %if.end.i516.i.i.i + store ptr %call328.i.i.i, ptr %m_pr.i88.i.i, align 8 + br i1 %tobool.not.i512.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i, label %if.then.i.i.i.i528.i.i.i + +if.then.i.i.i.i528.i.i.i: ; preds = %invoke.cont330.i.i.i + %m_ref_count.i.i.i.i.i529.i.i.i = getelementptr inbounds %class.ast, ptr %call328.i.i.i, i64 0, i32 2 + %292 = load i32, ptr %m_ref_count.i.i.i.i.i529.i.i.i, align 4 + %inc.i.i.i.i.i530.i.i.i = add i32 %292, 1 + store i32 %inc.i.i.i.i.i530.i.i.i, ptr %m_ref_count.i.i.i.i.i529.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i: ; preds = %if.then.i.i.i.i528.i.i.i, %invoke.cont330.i.i.i + %293 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i533.i.i.i = icmp eq ptr %293, null + br i1 %cmp.i.i533.i.i.i, label %if.then.i.i542.i.i.i, label %lor.lhs.false.i.i534.i.i.i + +lor.lhs.false.i.i534.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + %arrayidx.i.i535.i.i.i = getelementptr inbounds i32, ptr %293, i64 -1 + %294 = load i32, ptr %arrayidx.i.i535.i.i.i, align 4 + %arrayidx4.i.i536.i.i.i = getelementptr inbounds i32, ptr %293, i64 -2 + %295 = load i32, ptr %arrayidx4.i.i536.i.i.i, align 4 + %cmp5.i.i537.i.i.i = icmp eq i32 %294, %295 + br i1 %cmp5.i.i537.i.i.i, label %if.then.i.i542.i.i.i, label %invoke.cont335.i.i.i + +if.then.i.i542.i.i.i: ; preds = %lor.lhs.false.i.i534.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc546.i.i.i unwind label %lpad310.i.i.i + +.noexc546.i.i.i: ; preds = %if.then.i.i542.i.i.i + %.pre.i.i543.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i544.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i543.i.i.i, i64 -1 + %.pre1.i.i545.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i544.i.i.i, align 4 + br label %invoke.cont335.i.i.i + +invoke.cont335.i.i.i: ; preds = %.noexc546.i.i.i, %lor.lhs.false.i.i534.i.i.i + %296 = phi i32 [ %.pre1.i.i545.i.i.i, %.noexc546.i.i.i ], [ %294, %lor.lhs.false.i.i534.i.i.i ] + %297 = phi ptr [ %.pre.i.i543.i.i.i, %.noexc546.i.i.i ], [ %293, %lor.lhs.false.i.i534.i.i.i ] + %idx.ext.i.i538.i.i.i = zext i32 %296 to i64 + %add.ptr.i.i539.i.i.i = getelementptr inbounds ptr, ptr %297, i64 %idx.ext.i.i538.i.i.i + store ptr %call328.i.i.i, ptr %add.ptr.i.i539.i.i.i, align 8 + %298 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i540.i.i.i = getelementptr inbounds i32, ptr %298, i64 -1 + %299 = load i32, ptr %arrayidx10.i.i540.i.i.i, align 4 + %inc.i.i541.i.i.i = add i32 %299, 1 + store i32 %inc.i.i541.i.i.i, ptr %arrayidx10.i.i540.i.i.i, align 4 + br i1 %tobool.not.i477.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i, label %if.then.i.i.i549.i.i.i + +if.then.i.i.i549.i.i.i: ; preds = %invoke.cont335.i.i.i + %m_ref_count.i.i.i.i551.i.i.i = getelementptr inbounds %class.ast, ptr %279, i64 0, i32 2 + %300 = load i32, ptr %m_ref_count.i.i.i.i551.i.i.i, align 4 + %dec.i.i.i.i552.i.i.i = add i32 %300, -1 + store i32 %dec.i.i.i.i552.i.i.i, ptr %m_ref_count.i.i.i.i551.i.i.i, align 4 + %cmp.i.i.i553.i.i.i = icmp eq i32 %dec.i.i.i.i552.i.i.i, 0 + br i1 %cmp.i.i.i553.i.i.i, label %if.then2.i.i.i554.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + +if.then2.i.i.i554.i.i.i: ; preds = %if.then.i.i.i549.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i.i, ptr noundef nonnull %279) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i unwind label %terminate.lpad.i555.i.i.i + +terminate.lpad.i555.i.i.i: ; preds = %if.then2.i.i.i554.i.i.i + %301 = landingpad { ptr, i32 } + catch ptr null + %302 = extractvalue { ptr, i32 } %301, 0 + tail call void @__clang_call_terminate(ptr %302) #15 + unreachable -for.inc61.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit911, %invoke.cont49.i85.i - %j.1.i.i = phi i32 [ %inc55.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit911 ], [ %j.0.i.i2897, %invoke.cont49.i85.i ] - %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond2918.not = icmp eq i64 %indvars.iv.next, %idx.ext42.i.i - br i1 %exitcond2918.not, label %for.end63.i.i, label %for.body47.i.i, !llvm.loop !54 +_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i: ; preds = %if.then2.i.i.i554.i.i.i, %if.then.i.i.i549.i.i.i, %invoke.cont335.i.i.i + br i1 %tobool.not.i442.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i, label %if.then.i.i.i558.i.i.i -for.end63.i.i: ; preds = %for.inc61.i.i, %if.then40.i.i - %j.0.i.i.lcssa = phi i32 [ 0, %if.then40.i.i ], [ %j.1.i.i, %for.inc61.i.i ] - %413 = load ptr, ptr %m_nodes.i.i932, align 8 - %cmp.i.i.i873 = icmp eq ptr %413, null - br i1 %cmp.i.i.i873, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit897, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i874 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i874: ; preds = %for.end63.i.i - %arrayidx.i.i.i877 = getelementptr inbounds i32, ptr %413, i64 -1 - %414 = load i32, ptr %arrayidx.i.i.i877, align 4 - %415 = zext i32 %414 to i64 - %add.ptr.i.i878 = getelementptr inbounds ptr, ptr %413, i64 %415 - %cmp3.i.i879 = icmp ugt i32 %414, %j.0.i.i.lcssa - br i1 %cmp3.i.i879, label %for.body.i.i882.preheader, label %if.then.i.i880 - -for.body.i.i882.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i874 - %idx.ext.i875 = zext i32 %j.0.i.i.lcssa to i64 - %add.ptr.i876 = getelementptr inbounds ptr, ptr %413, i64 %idx.ext.i875 - br label %for.body.i.i882 - -for.body.i.i882: ; preds = %for.body.i.i882.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i889 - %it.04.i.i883 = phi ptr [ %incdec.ptr.i.i890, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i889 ], [ %add.ptr.i876, %for.body.i.i882.preheader ] - %416 = load ptr, ptr %it.04.i.i883, align 8 - %417 = load ptr, ptr %new_pats.i.i, align 8 - %tobool.not.i.i.i.i.i884 = icmp eq ptr %416, null - br i1 %tobool.not.i.i.i.i.i884, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i889, label %if.then.i.i.i.i.i885 - -if.then.i.i.i.i.i885: ; preds = %for.body.i.i882 - %m_ref_count.i.i.i.i.i.i886 = getelementptr inbounds %class.ast, ptr %416, i64 0, i32 2 - %418 = load i32, ptr %m_ref_count.i.i.i.i.i.i886, align 4 - %dec.i.i.i.i.i.i887 = add i32 %418, -1 - store i32 %dec.i.i.i.i.i.i887, ptr %m_ref_count.i.i.i.i.i.i886, align 4 - %cmp.i.i.i.i.i888 = icmp eq i32 %dec.i.i.i.i.i.i887, 0 - br i1 %cmp.i.i.i.i.i888, label %if.then2.i.i.i.i.i895, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i889 - -if.then2.i.i.i.i.i895: ; preds = %if.then.i.i.i.i.i885 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %417, ptr noundef nonnull %416) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i889 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i889: ; preds = %if.then2.i.i.i.i.i895, %if.then.i.i.i.i.i885, %for.body.i.i882 - %incdec.ptr.i.i890 = getelementptr inbounds ptr, ptr %it.04.i.i883, i64 1 - %cmp.i.i891 = icmp ult ptr %incdec.ptr.i.i890, %add.ptr.i.i878 - br i1 %cmp.i.i891, label %for.body.i.i882, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i892, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i892: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i889 - %.pre.i893 = load ptr, ptr %m_nodes.i.i932, align 8 - %tobool.not.i.i894 = icmp eq ptr %.pre.i893, null - br i1 %tobool.not.i.i894, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit897, label %if.then.i.i880 - -if.then.i.i880: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i892, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i874 - %419 = phi ptr [ %.pre.i893, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i892 ], [ %413, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i874 ] - %arrayidx.i.i881 = getelementptr inbounds i32, ptr %419, i64 -1 - store i32 %j.0.i.i.lcssa, ptr %arrayidx.i.i881, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit897 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit897: ; preds = %for.end63.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i892, %if.then.i.i880 - br i1 %cmp3.not.i.i, label %for.end86.i.i, label %for.body68.i.i.preheader +if.then.i.i.i558.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + %m_ref_count.i.i.i.i560.i.i.i = getelementptr inbounds %class.ast, ptr %266, i64 0, i32 2 + %303 = load i32, ptr %m_ref_count.i.i.i.i560.i.i.i, align 4 + %dec.i.i.i.i561.i.i.i = add i32 %303, -1 + store i32 %dec.i.i.i.i561.i.i.i, ptr %m_ref_count.i.i.i.i560.i.i.i, align 4 + %cmp.i.i.i562.i.i.i = icmp eq i32 %dec.i.i.i.i561.i.i.i, 0 + br i1 %cmp.i.i.i562.i.i.i, label %if.then2.i.i.i563.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i -for.body68.i.i.preheader: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit897 - %wide.trip.count2922 = zext i32 %381 to i64 - br label %for.body68.i.i +if.then2.i.i.i563.i.i.i: ; preds = %if.then.i.i.i558.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i.i, ptr noundef nonnull %266) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i unwind label %terminate.lpad.i564.i.i.i -for.body68.i.i: ; preds = %for.body68.i.i.preheader, %for.inc84.i.i - %indvars.iv2919 = phi i64 [ 0, %for.body68.i.i.preheader ], [ %indvars.iv.next2920, %for.inc84.i.i ] - %j.2.i.i2900 = phi i32 [ 0, %for.body68.i.i.preheader ], [ %j.3.i.i, %for.inc84.i.i ] - %420 = load ptr, ptr %28, align 8 - %arrayidx71.i.i = getelementptr inbounds ptr, ptr %add.ptr43.i.i, i64 %indvars.iv2919 - %421 = load ptr, ptr %arrayidx71.i.i, align 8 - %call73.i81.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %420, ptr noundef %421) - to label %invoke.cont72.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit +terminate.lpad.i564.i.i.i: ; preds = %if.then2.i.i.i563.i.i.i + %304 = landingpad { ptr, i32 } + catch ptr null + %305 = extractvalue { ptr, i32 } %304, 0 + tail call void @__clang_call_terminate(ptr %305) #15 + unreachable -invoke.cont72.i.i: ; preds = %for.body68.i.i - br i1 %call73.i81.i, label %invoke.cont79.i.i, label %for.inc84.i.i +_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i: ; preds = %if.then2.i.i.i563.i.i.i, %if.then.i.i.i558.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + %306 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i568.i.i.i = icmp eq ptr %306, null + br i1 %cmp.i.i.i568.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i, label %if.end.i.i.i569.i.i.i + +if.end.i.i.i569.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i + %arrayidx.i.i.i570.i.i.i = getelementptr inbounds i32, ptr %306, i64 -1 + %307 = load i32, ptr %arrayidx.i.i.i570.i.i.i, align 4 + %308 = add i32 %307, -1 + %309 = zext i32 %308 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i569.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i + %retval.0.i.i.i571.i.i.i = phi i64 [ %309, %if.end.i.i.i569.i.i.i ], [ 4294967295, %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i ] + %arrayidx.i1.i.i572.i.i.i = getelementptr inbounds ptr, ptr %306, i64 %retval.0.i.i.i571.i.i.i + %310 = load ptr, ptr %arrayidx.i1.i.i572.i.i.i, align 8 + %tobool.not.i573.i.i.i = icmp eq ptr %310, null + br i1 %tobool.not.i573.i.i.i, label %if.end.i577.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + %m_ref_count.i.i.i575.i.i.i = getelementptr inbounds %class.ast, ptr %310, i64 0, i32 2 + %311 = load i32, ptr %m_ref_count.i.i.i575.i.i.i, align 4 + %inc.i.i.i576.i.i.i = add i32 %311, 1 + store i32 %inc.i.i.i576.i.i.i, ptr %m_ref_count.i.i.i575.i.i.i, align 4 + br label %if.end.i577.i.i.i + +if.end.i577.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + %312 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i3.i578.i.i.i = icmp eq ptr %312, null + br i1 %tobool.not.i3.i578.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i, label %if.then.i.i.i579.i.i.i + +if.then.i.i.i579.i.i.i: ; preds = %if.end.i577.i.i.i + %313 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i581.i.i.i = getelementptr inbounds %class.ast, ptr %312, i64 0, i32 2 + %314 = load i32, ptr %m_ref_count.i.i.i.i581.i.i.i, align 4 + %dec.i.i.i.i582.i.i.i = add i32 %314, -1 + store i32 %dec.i.i.i.i582.i.i.i, ptr %m_ref_count.i.i.i.i581.i.i.i, align 4 + %cmp.i.i.i583.i.i.i = icmp eq i32 %dec.i.i.i.i582.i.i.i, 0 + br i1 %cmp.i.i.i583.i.i.i, label %if.then2.i.i.i584.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + +if.then2.i.i.i584.i.i.i: ; preds = %if.then.i.i.i579.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %313, ptr noundef nonnull %312) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i: ; preds = %if.then2.i.i.i584.i.i.i, %if.then.i.i.i579.i.i.i, %if.end.i577.i.i.i + store ptr %310, ptr %m_r.i93.i.i, align 8 + %315 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i588.i.i.i = icmp eq ptr %315, null + br i1 %cmp.i.i.i588.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i, label %if.end.i.i.i589.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + %.pre.i601.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i602.i.i.i = add i32 %.pre.i601.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + +if.end.i.i.i589.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + %arrayidx.i.i.i590.i.i.i = getelementptr inbounds i32, ptr %315, i64 -1 + %316 = load i32, ptr %arrayidx.i.i.i590.i.i.i, align 4 + %317 = add i32 %316, -1 + %318 = zext i32 %317 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i: ; preds = %if.end.i.i.i589.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i + %dec.i.pre-phi.i591.i.i.i = phi i32 [ %.pre1.i602.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i ], [ %317, %if.end.i.i.i589.i.i.i ] + %retval.0.i.i.i592.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i ], [ %318, %if.end.i.i.i589.i.i.i ] + %arrayidx.i1.i.i593.i.i.i = getelementptr inbounds ptr, ptr %315, i64 %retval.0.i.i.i592.i.i.i + %319 = load ptr, ptr %arrayidx.i1.i.i593.i.i.i, align 8 + %arrayidx.i.i594.i.i.i = getelementptr inbounds i32, ptr %315, i64 -1 + store i32 %dec.i.pre-phi.i591.i.i.i, ptr %arrayidx.i.i594.i.i.i, align 4 + %320 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i595.i.i.i = icmp eq ptr %319, null + br i1 %tobool.not.i.i.i.i595.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i, label %if.then.i.i.i.i596.i.i.i + +if.then.i.i.i.i596.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + %m_ref_count.i.i.i.i.i597.i.i.i = getelementptr inbounds %class.ast, ptr %319, i64 0, i32 2 + %321 = load i32, ptr %m_ref_count.i.i.i.i.i597.i.i.i, align 4 + %dec.i.i.i.i.i598.i.i.i = add i32 %321, -1 + store i32 %dec.i.i.i.i.i598.i.i.i, ptr %m_ref_count.i.i.i.i.i597.i.i.i, align 4 + %cmp.i.i.i.i599.i.i.i = icmp eq i32 %dec.i.i.i.i.i598.i.i.i, 0 + br i1 %cmp.i.i.i.i599.i.i.i, label %if.then2.i.i.i.i600.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + +if.then2.i.i.i.i600.i.i.i: ; preds = %if.then.i.i.i.i596.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %320, ptr noundef nonnull %319) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i: ; preds = %if.then2.i.i.i.i600.i.i.i, %if.then.i.i.i.i596.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + %322 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i605.i.i.i = icmp eq ptr %322, null + br i1 %cmp.i.i.i605.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i, label %if.end.i.i.i606.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + %.pre.i620.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i621.i.i.i = add i32 %.pre.i620.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + +if.end.i.i.i606.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + %arrayidx.i.i.i607.i.i.i = getelementptr inbounds i32, ptr %322, i64 -1 + %323 = load i32, ptr %arrayidx.i.i.i607.i.i.i, align 4 + %324 = add i32 %323, -1 + %325 = zext i32 %324 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i: ; preds = %if.end.i.i.i606.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i + %dec.i.pre-phi.i609.i.i.i = phi i32 [ %.pre1.i621.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i ], [ %324, %if.end.i.i.i606.i.i.i ] + %retval.0.i.i.i610.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i ], [ %325, %if.end.i.i.i606.i.i.i ] + %arrayidx.i1.i.i611.i.i.i = getelementptr inbounds ptr, ptr %322, i64 %retval.0.i.i.i610.i.i.i + %326 = load ptr, ptr %arrayidx.i1.i.i611.i.i.i, align 8 + %arrayidx.i.i612.i.i.i = getelementptr inbounds i32, ptr %322, i64 -1 + store i32 %dec.i.pre-phi.i609.i.i.i, ptr %arrayidx.i.i612.i.i.i, align 4 + %327 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i613.i.i.i = icmp eq ptr %326, null + br i1 %tobool.not.i.i.i.i613.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i, label %if.then.i.i.i.i614.i.i.i + +if.then.i.i.i.i614.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + %m_ref_count.i.i.i.i.i615.i.i.i = getelementptr inbounds %class.ast, ptr %326, i64 0, i32 2 + %328 = load i32, ptr %m_ref_count.i.i.i.i.i615.i.i.i, align 4 + %dec.i.i.i.i.i616.i.i.i = add i32 %328, -1 + store i32 %dec.i.i.i.i.i616.i.i.i, ptr %m_ref_count.i.i.i.i.i615.i.i.i, align 4 + %cmp.i.i.i.i617.i.i.i = icmp eq i32 %dec.i.i.i.i.i616.i.i.i, 0 + br i1 %cmp.i.i.i.i617.i.i.i, label %if.then2.i.i.i.i618.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + +if.then2.i.i.i.i618.i.i.i: ; preds = %if.then.i.i.i.i614.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %327, ptr noundef nonnull %326) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i: ; preds = %if.then2.i.i.i.i618.i.i.i, %if.then.i.i.i.i614.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + %329 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i.i.i.i624.i.i.i = icmp eq ptr %329, null + br i1 %tobool.not.i.i.i.i624.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i, label %if.then.i.i.i.i625.i.i.i + +if.then.i.i.i.i625.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + %m_ref_count.i.i.i.i.i626.i.i.i = getelementptr inbounds %class.ast, ptr %329, i64 0, i32 2 + %330 = load i32, ptr %m_ref_count.i.i.i.i.i626.i.i.i, align 4 + %inc.i.i.i.i.i627.i.i.i = add i32 %330, 1 + store i32 %inc.i.i.i.i.i627.i.i.i, ptr %m_ref_count.i.i.i.i.i626.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i: ; preds = %if.then.i.i.i.i625.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + %331 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i630.i.i.i = icmp eq ptr %331, null + br i1 %cmp.i.i630.i.i.i, label %if.then.i.i639.i.i.i, label %lor.lhs.false.i.i631.i.i.i + +lor.lhs.false.i.i631.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + %arrayidx.i.i632.i.i.i = getelementptr inbounds i32, ptr %331, i64 -1 + %332 = load i32, ptr %arrayidx.i.i632.i.i.i, align 4 + %arrayidx4.i.i633.i.i.i = getelementptr inbounds i32, ptr %331, i64 -2 + %333 = load i32, ptr %arrayidx4.i.i633.i.i.i, align 4 + %cmp5.i.i634.i.i.i = icmp eq i32 %332, %333 + br i1 %cmp5.i.i634.i.i.i, label %if.then.i.i639.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + +if.then.i.i639.i.i.i: ; preds = %lor.lhs.false.i.i631.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + %.pre.i.i640.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i641.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i640.i.i.i, i64 -1 + %.pre1.i.i642.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i641.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i: ; preds = %if.then.i.i639.i.i.i, %lor.lhs.false.i.i631.i.i.i + %334 = phi i32 [ %.pre1.i.i642.i.i.i, %if.then.i.i639.i.i.i ], [ %332, %lor.lhs.false.i.i631.i.i.i ] + %335 = phi ptr [ %.pre.i.i640.i.i.i, %if.then.i.i639.i.i.i ], [ %331, %lor.lhs.false.i.i631.i.i.i ] + %idx.ext.i.i635.i.i.i = zext i32 %334 to i64 + %add.ptr.i.i636.i.i.i = getelementptr inbounds ptr, ptr %335, i64 %idx.ext.i.i635.i.i.i + store ptr %329, ptr %add.ptr.i.i636.i.i.i, align 8 + %336 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i637.i.i.i = getelementptr inbounds i32, ptr %336, i64 -1 + %337 = load i32, ptr %arrayidx10.i.i637.i.i.i, align 4 + %inc.i.i638.i.i.i = add i32 %337, 1 + store i32 %inc.i.i638.i.i.i, ptr %arrayidx10.i.i637.i.i.i, align 4 + %bf.load354.i.i.i = load i32, ptr %89, align 8 + %bf.clear355.i.i.i = and i32 %bf.load354.i.i.i, 1 + %tobool356.not.i.i.i = icmp eq i32 %bf.clear355.i.i.i, 0 + br i1 %tobool356.not.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit646.i.i.i, label %if.then.i645.i.i.i + +if.then.i645.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + %338 = load ptr, ptr %m_pr.i88.i.i, align 8 + %339 = load ptr, ptr %m_r.i93.i.i, align 8 + tail call void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %87, ptr noundef %339, ptr noundef %338) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit646.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit646.i.i.i: ; preds = %if.then.i645.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + %340 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i648.i.i.i = getelementptr inbounds i32, ptr %340, i64 -1 + %341 = load i32, ptr %arrayidx.i648.i.i.i, align 4 + %dec.i649.i.i.i = add i32 %341, -1 + store i32 %dec.i649.i.i.i, ptr %arrayidx.i648.i.i.i, align 4 + %this.val57.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i650.i.i.i = icmp eq ptr %this.val57.i.i.i, null + br i1 %cmp.i.i650.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit646.i.i.i + %arrayidx.i.i652.i.i.i = getelementptr inbounds i32, ptr %this.val57.i.i.i, i64 -1 + %342 = load i32, ptr %arrayidx.i.i652.i.i.i, align 4 + %cmp3.i.i653.i.i.i = icmp eq i32 %342, 0 + br i1 %cmp3.i.i653.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i + %343 = add i32 %342, -1 + %344 = zext i32 %343 to i64 + %m_new_child.i655.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val57.i.i.i, i64 %344, i32 1 + %bf.load.i656.i.i.i = load i32, ptr %m_new_child.i655.i.i.i, align 8 + %bf.set.i657.i.i.i = or i32 %bf.load.i656.i.i.i, 2 + store i32 %bf.set.i657.i.i.i, ptr %m_new_child.i655.i.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i + +lpad310.i.i.i: ; preds = %if.then.i.i542.i.i.i, %if.then2.i.i.i523.i.i.i, %invoke.cont323.i.i.i, %if.then2.i.i.i.i506.i.i.i, %if.then2.i.i.i.i.i.i.i + %345 = landingpad { ptr, i32 } + cleanup + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr1305.i.i.i) #14 + br label %eh.resume.i.i.i -invoke.cont79.i.i: ; preds = %invoke.cont72.i.i - %422 = load ptr, ptr %arrayidx71.i.i, align 8 - %423 = load ptr, ptr %m_nodes.i.i917, align 8 - %idxprom.i.i870 = zext i32 %j.2.i.i2900 to i64 - %arrayidx.i.i871 = getelementptr inbounds ptr, ptr %423, i64 %idxprom.i.i870 - %424 = load ptr, ptr %new_no_pats.i.i, align 8 - %inc78.i.i = add i32 %j.2.i.i2900, 1 - %tobool.not.i.i862 = icmp eq ptr %422, null - br i1 %tobool.not.i.i862, label %_ZN11ast_manager7inc_refEP3ast.exit.i866, label %if.then.i.i863 - -if.then.i.i863: ; preds = %invoke.cont79.i.i - %m_ref_count.i.i.i864 = getelementptr inbounds %class.ast, ptr %422, i64 0, i32 2 - %425 = load i32, ptr %m_ref_count.i.i.i864, align 4 - %inc.i.i.i865 = add i32 %425, 1 - store i32 %inc.i.i.i865, ptr %m_ref_count.i.i.i864, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i866 - -_ZN11ast_manager7inc_refEP3ast.exit.i866: ; preds = %if.then.i.i863, %invoke.cont79.i.i - %426 = load ptr, ptr %arrayidx.i.i871, align 8 - %tobool.not.i2.i = icmp eq ptr %426, null - br i1 %tobool.not.i2.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit, label %if.then.i3.i +sw.bb358.i.i.i: ; preds = %sw.bb.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 515, ptr noundef nonnull @.str.15) + tail call void @exit(i32 noundef 107) #15 + unreachable -if.then.i3.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i866 - %m_ref_count.i.i4.i = getelementptr inbounds %class.ast, ptr %426, i64 0, i32 2 - %427 = load i32, ptr %m_ref_count.i.i4.i, align 4 - %dec.i.i.i = add i32 %427, -1 - store i32 %dec.i.i.i, ptr %m_ref_count.i.i4.i, align 4 - %cmp.i.i867 = icmp eq i32 %dec.i.i.i, 0 - br i1 %cmp.i.i867, label %if.then2.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit +sw.bb359.i.i.i: ; preds = %sw.bb.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 520, ptr noundef nonnull @.str.15) + tail call void @exit(i32 noundef 107) #15 + unreachable -if.then2.i.i: ; preds = %if.then.i3.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %424, ptr noundef nonnull %426) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit +sw.bb.i.i.unreachabledefault: ; preds = %sw.bb.i.i + unreachable -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit: ; preds = %if.then2.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i866, %if.then.i3.i - store ptr %422, ptr %arrayidx.i.i871, align 8 - br label %for.inc84.i.i +default.unreachable: ; preds = %sw.bb.i.i262 + unreachable -for.inc84.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit, %invoke.cont72.i.i - %j.3.i.i = phi i32 [ %inc78.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit ], [ %j.2.i.i2900, %invoke.cont72.i.i ] - %indvars.iv.next2920 = add nuw nsw i64 %indvars.iv2919, 1 - %exitcond2923.not = icmp eq i64 %indvars.iv.next2920, %wide.trip.count2922 - br i1 %exitcond2923.not, label %for.end86.i.i, label %for.body68.i.i, !llvm.loop !55 - -for.end86.i.i: ; preds = %for.inc84.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit897 - %j.2.i.i.lcssa = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit897 ], [ %j.3.i.i, %for.inc84.i.i ] - %428 = load ptr, ptr %m_nodes.i.i917, align 8 - %cmp.i.i.i836 = icmp eq ptr %428, null - br i1 %cmp.i.i.i836, label %if.end88.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i837 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i837: ; preds = %for.end86.i.i - %arrayidx.i.i.i840 = getelementptr inbounds i32, ptr %428, i64 -1 - %429 = load i32, ptr %arrayidx.i.i.i840, align 4 - %430 = zext i32 %429 to i64 - %add.ptr.i.i841 = getelementptr inbounds ptr, ptr %428, i64 %430 - %cmp3.i.i842 = icmp ugt i32 %429, %j.2.i.i.lcssa - br i1 %cmp3.i.i842, label %for.body.i.i845.preheader, label %if.then.i.i843 - -for.body.i.i845.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i837 - %idx.ext.i838 = zext i32 %j.2.i.i.lcssa to i64 - %add.ptr.i839 = getelementptr inbounds ptr, ptr %428, i64 %idx.ext.i838 - br label %for.body.i.i845 - -for.body.i.i845: ; preds = %for.body.i.i845.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i852 - %it.04.i.i846 = phi ptr [ %incdec.ptr.i.i853, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i852 ], [ %add.ptr.i839, %for.body.i.i845.preheader ] - %431 = load ptr, ptr %it.04.i.i846, align 8 - %432 = load ptr, ptr %new_no_pats.i.i, align 8 - %tobool.not.i.i.i.i.i847 = icmp eq ptr %431, null - br i1 %tobool.not.i.i.i.i.i847, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i852, label %if.then.i.i.i.i.i848 - -if.then.i.i.i.i.i848: ; preds = %for.body.i.i845 - %m_ref_count.i.i.i.i.i.i849 = getelementptr inbounds %class.ast, ptr %431, i64 0, i32 2 - %433 = load i32, ptr %m_ref_count.i.i.i.i.i.i849, align 4 - %dec.i.i.i.i.i.i850 = add i32 %433, -1 - store i32 %dec.i.i.i.i.i.i850, ptr %m_ref_count.i.i.i.i.i.i849, align 4 - %cmp.i.i.i.i.i851 = icmp eq i32 %dec.i.i.i.i.i.i850, 0 - br i1 %cmp.i.i.i.i.i851, label %if.then2.i.i.i.i.i858, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i852 - -if.then2.i.i.i.i.i858: ; preds = %if.then.i.i.i.i.i848 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %432, ptr noundef nonnull %431) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i852 unwind label %lpad37.i.i.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i852: ; preds = %if.then2.i.i.i.i.i858, %if.then.i.i.i.i.i848, %for.body.i.i845 - %incdec.ptr.i.i853 = getelementptr inbounds ptr, ptr %it.04.i.i846, i64 1 - %cmp.i.i854 = icmp ult ptr %incdec.ptr.i.i853, %add.ptr.i.i841 - br i1 %cmp.i.i854, label %for.body.i.i845, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i855, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i855: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i852 - %.pre.i856 = load ptr, ptr %m_nodes.i.i917, align 8 - %tobool.not.i.i857 = icmp eq ptr %.pre.i856, null - br i1 %tobool.not.i.i857, label %if.end88.i.i, label %if.then.i.i843 - -if.then.i.i843: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i855, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i837 - %434 = phi ptr [ %.pre.i856, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i855 ], [ %428, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i837 ] - %arrayidx.i.i844 = getelementptr inbounds i32, ptr %434, i64 -1 - store i32 %j.2.i.i.lcssa, ptr %arrayidx.i.i844, align 4 - %.pre2936 = load ptr, ptr %m_nodes.i.i917, align 8 - br label %if.end88.i.i +common.resume: ; preds = %ehcleanup13.i, %cleanup.action.i62, %ehcleanup14.i.i101, %cleanup.action.i.i97, %lpad.i.i.i, %lpad246.i.i.i, %lpad.i.i.body.i.i229, %ehcleanup.i.i.i161, %ehcleanup14.i, %cleanup.action.i, %ehcleanup14.i.i, %cleanup.action.i.i, %eh.resume.i.i.i, %lpad.i.i.body.i.i, %ehcleanup211.i.i.i + %common.resume.op = phi { ptr, i32 } [ %.pn.i.i.i, %eh.resume.i.i.i ], [ %eh.lpad-body291.i.i, %lpad.i.i.body.i.i ], [ %.pn50.pn.i.i.i, %ehcleanup211.i.i.i ], [ %82, %ehcleanup14.i.i ], [ %.pn.pn296.i.i, %cleanup.action.i.i ], [ %33, %ehcleanup14.i ], [ %.pn.pn111.i, %cleanup.action.i ], [ %lpad.phi539.i.i.i, %lpad246.i.i.i ], [ %lpad.phi.i.i.i, %lpad.i.i.i ], [ %eh.lpad-body247.i.i, %lpad.i.i.body.i.i229 ], [ %.pn.i59.i.i, %ehcleanup.i.i.i161 ], [ %619, %ehcleanup14.i.i101 ], [ %.pn.pn4.i.i, %cleanup.action.i.i97 ], [ %591, %ehcleanup13.i ], [ %.pn.pn57.i, %cleanup.action.i62 ] + resume { ptr, i32 } %common.resume.op -if.end88.i.i: ; preds = %if.then.i.i843, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i855, %for.end86.i.i - %435 = phi ptr [ %.pre2936, %if.then.i.i843 ], [ null, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i855 ], [ null, %for.end86.i.i ] - %this.val58.i61.i = load ptr, ptr %28, align 8 - %436 = load ptr, ptr %m_nodes.i.i932, align 8 - %call93.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i61.i, ptr noundef nonnull %87, i32 noundef %j.0.i.i.lcssa, ptr noundef %436, i32 noundef %j.2.i.i.lcssa, ptr noundef %435, ptr noundef %379) - to label %invoke.cont92.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont92.i.i: ; preds = %if.end88.i.i - %this.val57.i63.i = load ptr, ptr %28, align 8 - store ptr %call93.i.i, ptr %new_q.i.i, align 8 - store ptr %this.val57.i63.i, ptr %m_manager.i828, align 8 - %tobool.not.i.i829 = icmp eq ptr %call93.i.i, null - br i1 %tobool.not.i.i829, label %invoke.cont95.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i830 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i830: ; preds = %invoke.cont92.i.i - %m_ref_count.i.i.i.i831 = getelementptr inbounds %class.ast, ptr %call93.i.i, i64 0, i32 2 - %437 = load i32, ptr %m_ref_count.i.i.i.i831, align 4 - %inc.i.i.i.i832 = add i32 %437, 1 - store i32 %inc.i.i.i.i832, ptr %m_ref_count.i.i.i.i831, align 4 - br label %invoke.cont95.i.i +eh.resume.i.i.i: ; preds = %lpad310.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.i.i.i + %pr2303.sink.i.i.i = phi ptr [ %pr2303.i.i.i, %lpad310.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.i.i.i ] + %.pn.i.i.i = phi { ptr, i32 } [ %345, %lpad310.i.i.i ], [ %lpad.loopexit663.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit669.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit.split-lp670.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ], [ %lpad.loopexit666.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit661.i.i.i, %lpad.loopexit.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2303.sink.i.i.i) #14 + br label %common.resume -invoke.cont95.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i830, %invoke.cont92.i.i - %438 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i819 = icmp eq ptr %438, null - br i1 %tobool.not.i3.i819, label %invoke.cont97.i.i, label %if.then.i.i.i820 - -if.then.i.i.i820: ; preds = %invoke.cont95.i.i - %439 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i822 = getelementptr inbounds %class.ast, ptr %438, i64 0, i32 2 - %440 = load i32, ptr %m_ref_count.i.i.i.i822, align 4 - %dec.i.i.i.i823 = add i32 %440, -1 - store i32 %dec.i.i.i.i823, ptr %m_ref_count.i.i.i.i822, align 4 - %cmp.i.i.i824 = icmp eq i32 %dec.i.i.i.i823, 0 - br i1 %cmp.i.i.i824, label %if.then2.i.i.i825, label %invoke.cont97.i.i - -if.then2.i.i.i825: ; preds = %if.then.i.i.i820 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %439, ptr noundef nonnull %438) - to label %invoke.cont97.i.i unwind label %lpad96.i.i - -invoke.cont97.i.i: ; preds = %if.then.i.i.i820, %invoke.cont95.i.i, %if.then2.i.i.i825 - store ptr null, ptr %m_pr.i64.i, align 8 - %cmp101.not.i.i = icmp eq ptr %call93.i.i, %87 - br i1 %cmp101.not.i.i, label %if.end140.i.i, label %if.then102.i.i - -if.then102.i.i: ; preds = %invoke.cont97.i.i - %441 = load i32, ptr %m_spos.i54.i, align 4 - %442 = load ptr, ptr %m_nodes.i30.i, align 8 - %idxprom.i.i815 = zext i32 %441 to i64 - %arrayidx.i.i816 = getelementptr inbounds ptr, ptr %442, i64 %idxprom.i.i815 - %443 = load ptr, ptr %arrayidx.i.i816, align 8 - %tobool.not.i800 = icmp eq ptr %443, null - br i1 %tobool.not.i800, label %if.else.i69.i, label %if.end.i804 - -if.end.i804: ; preds = %if.then102.i.i - %m_ref_count.i.i.i802 = getelementptr inbounds %class.ast, ptr %443, i64 0, i32 2 - %444 = load i32, ptr %m_ref_count.i.i.i802, align 4 - %inc.i.i.i803 = add i32 %444, 1 - store i32 %inc.i.i.i803, ptr %m_ref_count.i.i.i802, align 4 - %.pre2937 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i805 = icmp eq ptr %.pre2937, null - br i1 %tobool.not.i3.i805, label %if.then112.i.i, label %if.then.i.i.i806 - -if.then.i.i.i806: ; preds = %if.end.i804 - %445 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i808 = getelementptr inbounds %class.ast, ptr %.pre2937, i64 0, i32 2 - %446 = load i32, ptr %m_ref_count.i.i.i.i808, align 4 - %dec.i.i.i.i809 = add i32 %446, -1 - store i32 %dec.i.i.i.i809, ptr %m_ref_count.i.i.i.i808, align 4 - %cmp.i.i.i810 = icmp eq i32 %dec.i.i.i.i809, 0 - br i1 %cmp.i.i.i810, label %if.then2.i.i.i811, label %if.then112.i.i - -if.then2.i.i.i811: ; preds = %if.then.i.i.i806 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %445, ptr noundef nonnull %.pre2937) - to label %if.then112.i.i unwind label %lpad96.i.i - -if.then112.i.i: ; preds = %if.then.i.i.i806, %if.end.i804, %if.then2.i.i.i811 - store ptr %443, ptr %m_pr.i64.i, align 8 - %this.val56.i78.i = load ptr, ptr %28, align 8 - %call117.i.i = invoke noundef ptr @_ZN11ast_manager13mk_bind_proofEP10quantifierP3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i78.i, ptr noundef nonnull %87, ptr noundef nonnull %443) - to label %invoke.cont116.i.i unwind label %lpad96.i.i - -invoke.cont116.i.i: ; preds = %if.then112.i.i - %tobool.not.i785 = icmp eq ptr %call117.i.i, null - br i1 %tobool.not.i785, label %if.end.i789, label %_ZN11ast_manager7inc_refEP3ast.exit.i786 - -_ZN11ast_manager7inc_refEP3ast.exit.i786: ; preds = %invoke.cont116.i.i - %m_ref_count.i.i.i787 = getelementptr inbounds %class.ast, ptr %call117.i.i, i64 0, i32 2 - %447 = load i32, ptr %m_ref_count.i.i.i787, align 4 - %inc.i.i.i788 = add i32 %447, 1 - store i32 %inc.i.i.i788, ptr %m_ref_count.i.i.i787, align 4 - br label %if.end.i789 - -if.end.i789: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i786, %invoke.cont116.i.i - %448 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i790 = icmp eq ptr %448, null - br i1 %tobool.not.i3.i790, label %invoke.cont119.i.i, label %if.then.i.i.i791 - -if.then.i.i.i791: ; preds = %if.end.i789 - %449 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i793 = getelementptr inbounds %class.ast, ptr %448, i64 0, i32 2 - %450 = load i32, ptr %m_ref_count.i.i.i.i793, align 4 - %dec.i.i.i.i794 = add i32 %450, -1 - store i32 %dec.i.i.i.i794, ptr %m_ref_count.i.i.i.i793, align 4 - %cmp.i.i.i795 = icmp eq i32 %dec.i.i.i.i794, 0 - br i1 %cmp.i.i.i795, label %if.then2.i.i.i796, label %invoke.cont119.i.i - -if.then2.i.i.i796: ; preds = %if.then.i.i.i791 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %449, ptr noundef nonnull %448) - to label %invoke.cont119.i.i unwind label %lpad96.i.i - -invoke.cont119.i.i: ; preds = %if.then.i.i.i791, %if.end.i789, %if.then2.i.i.i796 - store ptr %call117.i.i, ptr %m_pr.i64.i, align 8 - %this.val55.i79.i = load ptr, ptr %28, align 8 - %call127.i.i = invoke noundef ptr @_ZN11ast_manager14mk_quant_introEP10quantifierS1_P3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i79.i, ptr noundef nonnull %87, ptr noundef %call93.i.i, ptr noundef %call117.i.i) - to label %invoke.cont126.i.i unwind label %lpad96.i.i - -invoke.cont126.i.i: ; preds = %invoke.cont119.i.i - %tobool.not.i771 = icmp eq ptr %call127.i.i, null - br i1 %tobool.not.i771, label %if.end.i775, label %_ZN11ast_manager7inc_refEP3ast.exit.i772 - -_ZN11ast_manager7inc_refEP3ast.exit.i772: ; preds = %invoke.cont126.i.i - %m_ref_count.i.i.i773 = getelementptr inbounds %class.ast, ptr %call127.i.i, i64 0, i32 2 - %451 = load i32, ptr %m_ref_count.i.i.i773, align 4 - %inc.i.i.i774 = add i32 %451, 1 - store i32 %inc.i.i.i774, ptr %m_ref_count.i.i.i773, align 4 - br label %if.end.i775 - -if.end.i775: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i772, %invoke.cont126.i.i - %452 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i776 = icmp eq ptr %452, null - br i1 %tobool.not.i3.i776, label %if.end140.i.ithread-pre-split, label %if.then.i.i.i777 - -if.then.i.i.i777: ; preds = %if.end.i775 - %453 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i779 = getelementptr inbounds %class.ast, ptr %452, i64 0, i32 2 - %454 = load i32, ptr %m_ref_count.i.i.i.i779, align 4 - %dec.i.i.i.i780 = add i32 %454, -1 - store i32 %dec.i.i.i.i780, ptr %m_ref_count.i.i.i.i779, align 4 - %cmp.i.i.i781 = icmp eq i32 %dec.i.i.i.i780, 0 - br i1 %cmp.i.i.i781, label %if.then2.i.i.i782, label %if.end140.i.ithread-pre-split - -if.then2.i.i.i782: ; preds = %if.then.i.i.i777 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %453, ptr noundef nonnull %452) - to label %if.end140.i.ithread-pre-split unwind label %lpad96.i.i - -lpad96.i.i: ; preds = %if.then2.i.i.i825, %if.then2.i.i.i811, %if.then2.i.i.i796, %if.then2.i.i.i782, %if.then2.i.i.i768, %if.then2.i.i.i754, %if.else.i69.i, %invoke.cont119.i.i, %if.then112.i.i - %455 = landingpad { ptr, i32 } +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i: ; preds = %while.body.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb1EEEvP4exprS5_P3appb.exit646.i.i.i, %if.then2.i.i.i435.i.i.i, %if.then.i.i.i430.i.i.i, %cleanup.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2303.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr1305.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i + +sw.bb34.i.i: ; preds = %if.end31.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_q.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2.i.i.i) + %m_num_decls.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 2 + %346 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %bf.load.i63.i.i = load i32, ptr %89, align 8 + %cmp.i64.i.i = icmp ult i32 %bf.load.i63.i.i, 64 + br i1 %cmp.i64.i.i, label %if.then.i.i.i, label %cond.end.i.i.i + +if.then.i.i.i: ; preds = %sw.bb34.i.i + tail call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + %m_expr.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 + %347 = load ptr, ptr %m_expr.i.i.i.i, align 8 + store ptr %347, ptr %m_root.i, align 8 + %348 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i.i150.i.i = icmp eq ptr %348, null + br i1 %cmp.i.i150.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i, label %if.end.i.i151.i.i + +if.end.i.i151.i.i: ; preds = %if.then.i.i.i + %arrayidx.i.i152.i.i = getelementptr inbounds i32, ptr %348, i64 -1 + %349 = load i32, ptr %arrayidx.i.i152.i.i, align 4 + br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i151.i.i, %if.then.i.i.i + %retval.0.i.i153.i.i = phi i32 [ %349, %if.end.i.i151.i.i ], [ 0, %if.then.i.i.i ] + %cmp4475.not.i.i.i = icmp eq i32 %346, 0 + br i1 %cmp4475.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i + +for.body.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + %i.0476.i.i.i = phi i32 [ %inc.i.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i ] + %350 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i62.i.i.i = icmp eq ptr %350, null + br i1 %cmp.i62.i.i.i, label %if.then.i.i161.i.i, label %lor.lhs.false.i.i154.i.i + +lor.lhs.false.i.i154.i.i: ; preds = %for.body.i.i.i + %arrayidx.i63.i.i.i = getelementptr inbounds i32, ptr %350, i64 -1 + %351 = load i32, ptr %arrayidx.i63.i.i.i, align 4 + %arrayidx4.i.i155.i.i = getelementptr inbounds i32, ptr %350, i64 -2 + %352 = load i32, ptr %arrayidx4.i.i155.i.i, align 4 + %cmp5.i.i156.i.i = icmp eq i32 %351, %352 + br i1 %cmp5.i.i156.i.i, label %if.then.i.i161.i.i, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + +if.then.i.i161.i.i: ; preds = %lor.lhs.false.i.i154.i.i, %for.body.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i.i) + %.pre.i.i162.i.i = load ptr, ptr %m_bindings.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i163.i.i = getelementptr inbounds i32, ptr %.pre.i.i162.i.i, i64 -1 + %.pre1.i.i164.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i163.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i: ; preds = %if.then.i.i161.i.i, %lor.lhs.false.i.i154.i.i + %353 = phi i32 [ %.pre1.i.i164.i.i, %if.then.i.i161.i.i ], [ %351, %lor.lhs.false.i.i154.i.i ] + %354 = phi ptr [ %.pre.i.i162.i.i, %if.then.i.i161.i.i ], [ %350, %lor.lhs.false.i.i154.i.i ] + %idx.ext.i.i157.i.i = zext i32 %353 to i64 + %add.ptr.i.i158.i.i = getelementptr inbounds ptr, ptr %354, i64 %idx.ext.i.i157.i.i + store ptr null, ptr %add.ptr.i.i158.i.i, align 8 + %355 = load ptr, ptr %m_bindings.i.i.i, align 8 + %arrayidx10.i.i159.i.i = getelementptr inbounds i32, ptr %355, i64 -1 + %356 = load i32, ptr %arrayidx10.i.i159.i.i, align 4 + %inc.i.i160.i.i = add i32 %356, 1 + store i32 %inc.i.i160.i.i, ptr %arrayidx10.i.i159.i.i, align 4 + %357 = load ptr, ptr %m_shifts.i.i.i, align 8 + %cmp.i65.i.i.i = icmp eq ptr %357, null + br i1 %cmp.i65.i.i.i, label %if.then.i75.i.i.i, label %lor.lhs.false.i66.i.i.i + +lor.lhs.false.i66.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + %arrayidx.i67.i.i.i = getelementptr inbounds i32, ptr %357, i64 -1 + %358 = load i32, ptr %arrayidx.i67.i.i.i, align 4 + %arrayidx4.i68.i.i.i = getelementptr inbounds i32, ptr %357, i64 -2 + %359 = load i32, ptr %arrayidx4.i68.i.i.i, align 4 + %cmp5.i69.i.i.i = icmp eq i32 %358, %359 + br i1 %cmp5.i69.i.i.i, label %if.then.i75.i.i.i, label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + +if.then.i75.i.i.i: ; preds = %lor.lhs.false.i66.i.i.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + tail call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i.i) + %.pre.i76.i.i.i = load ptr, ptr %m_shifts.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i77.i.i.i = getelementptr inbounds i32, ptr %.pre.i76.i.i.i, i64 -1 + %.pre1.i78.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i77.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + +_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i: ; preds = %if.then.i75.i.i.i, %lor.lhs.false.i66.i.i.i + %360 = phi i32 [ %.pre1.i78.i.i.i, %if.then.i75.i.i.i ], [ %358, %lor.lhs.false.i66.i.i.i ] + %361 = phi ptr [ %.pre.i76.i.i.i, %if.then.i75.i.i.i ], [ %357, %lor.lhs.false.i66.i.i.i ] + %idx.ext.i71.i.i.i = zext i32 %360 to i64 + %add.ptr.i72.i.i.i = getelementptr inbounds i32, ptr %361, i64 %idx.ext.i71.i.i.i + store i32 %retval.0.i.i153.i.i, ptr %add.ptr.i72.i.i.i, align 4 + %362 = load ptr, ptr %m_shifts.i.i.i, align 8 + %arrayidx10.i73.i.i.i = getelementptr inbounds i32, ptr %362, i64 -1 + %363 = load i32, ptr %arrayidx10.i73.i.i.i, align 4 + %inc.i74.i.i.i = add i32 %363, 1 + store i32 %inc.i74.i.i.i, ptr %arrayidx10.i73.i.i.i, align 4 + %inc.i.i.i = add nuw i32 %i.0476.i.i.i, 1 + %exitcond.not.i.i.i = icmp eq i32 %inc.i.i.i, %346 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i, !llvm.loop !51 + +for.end.i.i.i: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i + %364 = load i32, ptr %m_num_qvars.i, align 8 + %add.i.i.i = add i32 %364, %346 + store i32 %add.i.i.i, ptr %m_num_qvars.i, align 8 + br label %cond.end.i.i.i + +cond.end.i.i.i: ; preds = %for.end.i.i.i, %sw.bb34.i.i + %m_num_patterns.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 11 + %365 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %add.i.i.i.i = add i32 %365, 1 + %m_num_no_patterns.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 12 + %366 = load i32, ptr %m_num_no_patterns.i.i.i.i.i, align 4 + %add3.i.i.i.i = add i32 %add.i.i.i.i, %366 + %m_patterns_decls.i.i.i.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 13 + %m_expr.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 + br label %while.cond.i65.i.i + +while.cond.i65.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i, %cond.end.i.i.i + %bf.load11.i.i.i = load i32, ptr %89, align 8 + %bf.lshr12.i.i.i = lshr i32 %bf.load11.i.i.i, 6 + %cmp13.i.i.i = icmp ult i32 %bf.lshr12.i.i.i, %add3.i.i.i.i + br i1 %cmp13.i.i.i, label %while.body.i145.i.i, label %while.end.i66.i.i + +while.body.i145.i.i: ; preds = %while.cond.i65.i.i + %cmp.i79.i.i.i = icmp ult i32 %bf.load11.i.i.i, 64 + br i1 %cmp.i79.i.i.i, label %_ZNK10quantifier9get_childEj.exit.i.i.i, label %if.else.i.i.i.i + +if.else.i.i.i.i: ; preds = %while.body.i145.i.i + %367 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %cmp3.not.i.i.i.i = icmp ult i32 %367, %bf.lshr12.i.i.i + br i1 %cmp3.not.i.i.i.i, label %if.else6.i.i.i.i, label %if.then4.i.i.i.i + +if.then4.i.i.i.i: ; preds = %if.else.i.i.i.i + %368 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i.i.i.i.i = zext i32 %368 to i64 + %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i.i.i.i.i + %add.ptr.i.i.i.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i.i.i.i.i + %369 = zext nneg i32 %bf.lshr12.i.i.i to i64 + %370 = getelementptr ptr, ptr %add.ptr.i.i.i.i.i.i, i64 %369 + %arrayidx.i.i.i146.i.i = getelementptr ptr, ptr %370, i64 -1 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i + +if.else6.i.i.i.i: ; preds = %if.else.i.i.i.i + %371 = xor i32 %367, -1 + %sub9.i.i.i.i = add nsw i32 %bf.lshr12.i.i.i, %371 + %372 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i7.i.i.i.i = zext i32 %372 to i64 + %add.ptr.i.i.i8.i.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i7.i.i.i.i + %add.ptr.i.i9.i.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i.i.i.i, i64 %idx.ext.i.i.i7.i.i.i.i + %idxprom.i10.i.i.i.i = zext i32 %sub9.i.i.i.i to i64 + %arrayidx.i11.i.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i.i.i.i, i64 %idxprom.i10.i.i.i.i + br label %_ZNK10quantifier9get_childEj.exit.i.i.i + +_ZNK10quantifier9get_childEj.exit.i.i.i: ; preds = %if.else6.i.i.i.i, %if.then4.i.i.i.i, %while.body.i145.i.i + %retval.0.in.i.i.i.i = phi ptr [ %arrayidx.i.i.i146.i.i, %if.then4.i.i.i.i ], [ %arrayidx.i11.i.i.i.i, %if.else6.i.i.i.i ], [ %m_expr.i.i.i.i.i, %while.body.i145.i.i ] + %retval.0.i81.i.i.i = load ptr, ptr %retval.0.in.i.i.i.i, align 8 + %373 = and i32 %bf.load11.i.i.i, -64 + %bf.shl.i147.i.i = add i32 %373, 64 + %bf.clear.i148.i.i = and i32 %bf.load11.i.i.i, 63 + %bf.set.i149.i.i = or disjoint i32 %bf.shl.i147.i.i, %bf.clear.i148.i.i + store i32 %bf.set.i149.i.i, ptr %89, align 8 + %bf.lshr24.i.i.i = lshr i32 %bf.load11.i.i.i, 4 + %bf.clear25.i.i.i = and i32 %bf.lshr24.i.i.i, 3 + %call26.i.i.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i81.i.i.i, i32 noundef %bf.clear25.i.i.i) + br i1 %call26.i.i.i, label %while.cond.i65.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, !llvm.loop !52 + +while.end.i66.i.i: ; preds = %while.cond.i65.i.i + %374 = load ptr, ptr %m_nodes.i.i.i, align 8 + %m_spos.i69.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i96.i, i32 2 + %375 = load i32, ptr %m_spos.i69.i.i, align 4 + %idx.ext.i70.i.i = zext i32 %375 to i64 + %add.ptr.i71.i.i = getelementptr inbounds ptr, ptr %374, i64 %idx.ext.i70.i.i + %376 = load ptr, ptr %add.ptr.i71.i.i, align 8 + %377 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %378 = load i32, ptr %m_num_no_patterns.i.i.i.i.i, align 4 + %379 = load ptr, ptr %28, align 8 + %380 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i72.i.i = zext i32 %380 to i64 + %add.ptr.i.i.i73.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i72.i.i + %add.ptr.i83.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i73.i.i, i64 %idx.ext.i.i.i72.i.i + %381 = ptrtoint ptr %379 to i64 + store i64 %381, ptr %new_pats.i.i.i, align 8 + store ptr null, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp3.not.i.i.i.i.i = icmp eq i32 %377, 0 + br i1 %cmp3.not.i.i.i.i.i, label %invoke.cont.i78.i.i, label %for.body.lr.ph.i.i.i.i.i + +for.body.lr.ph.i.i.i.i.i: ; preds = %while.end.i66.i.i + %wide.trip.count.i.i.i.i.i = zext i32 %377 to i64 + br label %for.body.i.i.i74.i.i + +for.body.i.i.i74.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i, %for.body.lr.ph.i.i.i.i.i + %indvars.iv.i.i.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i.i.i ], [ %indvars.iv.next.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i ] + %arrayidx.i.i84.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i83.i.i.i, i64 %indvars.iv.i.i.i.i.i + %382 = load ptr, ptr %arrayidx.i.i84.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i.i = icmp eq ptr %382, null + br i1 %tobool.not.i.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i74.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %382, i64 0, i32 2 + %383 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i.i.i = add i32 %383, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i, %for.body.i.i.i74.i.i + %384 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i75.i.i = icmp eq ptr %384, null + br i1 %cmp.i.i.i.i.i75.i.i, label %if.then.i284.i.i, label %lor.lhs.false.i.i.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + %arrayidx.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %384, i64 -1 + %385 = load i32, ptr %arrayidx.i.i.i.i.i.i.i, align 4 + %arrayidx4.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %384, i64 -2 + %386 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i.i.i = icmp eq i32 %385, %386 + br i1 %cmp5.i.i.i.i.i.i.i, label %if.else.i260.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + +if.then.i284.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i257.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i258.i.i) + %call.i288.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc287.i.i unwind label %lpad.i.i.i.i + +call.i.noexc287.i.i: ; preds = %if.then.i284.i.i + store i32 2, ptr %call.i288.i.i, align 4 + %incdec.ptr.i285.i.i = getelementptr inbounds i32, ptr %call.i288.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i285.i.i, align 4 + %incdec.ptr2.i286.i.i = getelementptr inbounds i32, ptr %call.i288.i.i, i64 2 + store ptr %incdec.ptr2.i286.i.i, ptr %m_nodes.i.i.i.i.i, align 8 + br label %.noexc.i.i.i.i + +if.else.i260.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i257.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i258.i.i) + %mul9.i262.i.i = mul i32 %385, 3 + %add10.i263.i.i = add i32 %mul9.i262.i.i, 1 + %shr.i264.i.i = lshr i32 %add10.i263.i.i, 1 + %mul12.i265.i.i = shl i32 %shr.i264.i.i, 3 + %add13.i266.i.i = add i32 %mul12.i265.i.i, 8 + %cmp15.not.i267.i.i = icmp ugt i32 %shr.i264.i.i, %385 + br i1 %cmp15.not.i267.i.i, label %lor.lhs.false.i277.i.i, label %if.then17.i268.i.i + +lor.lhs.false.i277.i.i: ; preds = %if.else.i260.i.i + %mul6.i278.i.i = shl i32 %385, 3 + %add7.i279.i.i = add i32 %mul6.i278.i.i, 8 + %cmp16.not.i280.i.i = icmp ugt i32 %add13.i266.i.i, %add7.i279.i.i + br i1 %cmp16.not.i280.i.i, label %if.end.i281.i.i, label %if.then17.i268.i.i + +if.then17.i268.i.i: ; preds = %lor.lhs.false.i277.i.i, %if.else.i260.i.i + %exception.i269.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #14 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) #14 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i257.i.i, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) + to label %invoke.cont.i273.i.i unwind label %cleanup.action.i270.i.i + +invoke.cont.i273.i.i: ; preds = %if.then17.i268.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i269.i.i, align 8 + %m_msg.i.i274.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i269.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i274.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i257.i.i) #14 + invoke void @__cxa_throw(ptr nonnull %exception.i269.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #17 + to label %unreachable.i276.i.i unwind label %ehcleanup.i275.i.i + +ehcleanup.i275.i.i: ; preds = %invoke.cont.i273.i.i + %387 = landingpad { ptr, i32 } cleanup - br label %ehcleanup.i.i + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i257.i.i) #14 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) #14 + br label %lpad.i.i.body.i.i -if.else.i69.i: ; preds = %if.then102.i.i - store ptr %443, ptr %m_pr.i64.i, align 8 - %this.val54.i70.i = load ptr, ptr %28, align 8 - %call135.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i70.i, ptr noundef nonnull %87, ptr noundef %call93.i.i) - to label %invoke.cont134.i.i unwind label %lpad96.i.i - -invoke.cont134.i.i: ; preds = %if.else.i69.i - %tobool.not.i757 = icmp eq ptr %call135.i.i, null - br i1 %tobool.not.i757, label %if.end.i761, label %_ZN11ast_manager7inc_refEP3ast.exit.i758 - -_ZN11ast_manager7inc_refEP3ast.exit.i758: ; preds = %invoke.cont134.i.i - %m_ref_count.i.i.i759 = getelementptr inbounds %class.ast, ptr %call135.i.i, i64 0, i32 2 - %456 = load i32, ptr %m_ref_count.i.i.i759, align 4 - %inc.i.i.i760 = add i32 %456, 1 - store i32 %inc.i.i.i760, ptr %m_ref_count.i.i.i759, align 4 - br label %if.end.i761 - -if.end.i761: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i758, %invoke.cont134.i.i - %457 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i762 = icmp eq ptr %457, null - br i1 %tobool.not.i3.i762, label %if.end140.i.ithread-pre-split, label %if.then.i.i.i763 - -if.then.i.i.i763: ; preds = %if.end.i761 - %458 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i765 = getelementptr inbounds %class.ast, ptr %457, i64 0, i32 2 - %459 = load i32, ptr %m_ref_count.i.i.i.i765, align 4 - %dec.i.i.i.i766 = add i32 %459, -1 - store i32 %dec.i.i.i.i766, ptr %m_ref_count.i.i.i.i765, align 4 - %cmp.i.i.i767 = icmp eq i32 %dec.i.i.i.i766, 0 - br i1 %cmp.i.i.i767, label %if.then2.i.i.i768, label %if.end140.i.ithread-pre-split - -if.then2.i.i.i768: ; preds = %if.then.i.i.i763 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %458, ptr noundef nonnull %457) - to label %if.end140.i.ithread-pre-split unwind label %lpad96.i.i - -if.end140.i.ithread-pre-split: ; preds = %if.then.i.i.i763, %if.end.i761, %if.then2.i.i.i768, %if.then.i.i.i777, %if.end.i775, %if.then2.i.i.i782 - %storemerge = phi ptr [ %call127.i.i, %if.then2.i.i.i782 ], [ %call127.i.i, %if.end.i775 ], [ %call127.i.i, %if.then.i.i.i777 ], [ %call135.i.i, %if.then2.i.i.i768 ], [ %call135.i.i, %if.end.i761 ], [ %call135.i.i, %if.then.i.i.i763 ] - store ptr %storemerge, ptr %m_pr.i64.i, align 8 - br label %if.end140.i.i - -if.end140.i.i: ; preds = %if.end140.i.ithread-pre-split, %invoke.cont97.i.i - %460 = phi ptr [ %call93.i.i, %if.end140.i.ithread-pre-split ], [ %87, %invoke.cont97.i.i ] - %tobool.not.i743 = icmp eq ptr %460, null - br i1 %tobool.not.i743, label %if.end.i747, label %_ZN11ast_manager7inc_refEP3ast.exit.i744 - -_ZN11ast_manager7inc_refEP3ast.exit.i744: ; preds = %if.end140.i.i - %m_ref_count.i.i.i745 = getelementptr inbounds %class.ast, ptr %460, i64 0, i32 2 - %461 = load i32, ptr %m_ref_count.i.i.i745, align 4 - %inc.i.i.i746 = add i32 %461, 1 - store i32 %inc.i.i.i746, ptr %m_ref_count.i.i.i745, align 4 - br label %if.end.i747 - -if.end.i747: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i744, %if.end140.i.i - %462 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i3.i748 = icmp eq ptr %462, null - br i1 %tobool.not.i3.i748, label %if.end165.i.i, label %if.then.i.i.i749 - -if.then.i.i.i749: ; preds = %if.end.i747 - %463 = load ptr, ptr %m_manager.i.i750, align 8 - %m_ref_count.i.i.i.i751 = getelementptr inbounds %class.ast, ptr %462, i64 0, i32 2 - %464 = load i32, ptr %m_ref_count.i.i.i.i751, align 4 - %dec.i.i.i.i752 = add i32 %464, -1 - store i32 %dec.i.i.i.i752, ptr %m_ref_count.i.i.i.i751, align 4 - %cmp.i.i.i753 = icmp eq i32 %dec.i.i.i.i752, 0 - br i1 %cmp.i.i.i753, label %if.then2.i.i.i754, label %if.end165.i.i - -if.then2.i.i.i754: ; preds = %if.then.i.i.i749 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %463, ptr noundef nonnull %462) - to label %if.end165.i.i unwind label %lpad96.i.i - -lpad147.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i724 - %lpad.loopexit2874 = landingpad { ptr, i32 } +cleanup.action.i270.i.i: ; preds = %if.then17.i268.i.i + %388 = landingpad { ptr, i32 } cleanup - br label %lpad147.i.i + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i258.i.i) #14 + call void @__cxa_free_exception(ptr %exception.i269.i.i) #14 + br label %lpad.i.i.body.i.i + +if.end.i281.i.i: ; preds = %lor.lhs.false.i277.i.i + %conv24.i282.i.i = zext i32 %add13.i266.i.i to i64 + %call25.i290.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i.i.i.i, i64 noundef %conv24.i282.i.i) + to label %call25.i.noexc289.i.i unwind label %lpad.i.i.i.i + +call25.i.noexc289.i.i: ; preds = %if.end.i281.i.i + %add.ptr26.i283.i.i = getelementptr inbounds i32, ptr %call25.i290.i.i, i64 2 + store ptr %add.ptr26.i283.i.i, ptr %m_nodes.i.i.i.i.i, align 8 + store i32 %shr.i264.i.i, ptr %call25.i290.i.i, align 4 + br label %.noexc.i.i.i.i + +unreachable.i276.i.i: ; preds = %invoke.cont.i273.i.i + unreachable -lpad147.i.i.loopexit.split-lp: ; preds = %if.then.i.i696 - %lpad.loopexit.split-lp2875 = landingpad { ptr, i32 } +.noexc.i.i.i.i: ; preds = %call25.i.noexc289.i.i, %call.i.noexc287.i.i + %.pre.i.i.i.i.i.i.i = phi ptr [ %add.ptr26.i283.i.i, %call25.i.noexc289.i.i ], [ %incdec.ptr2.i286.i.i, %call.i.noexc287.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i257.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i258.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i: ; preds = %.noexc.i.i.i.i, %lor.lhs.false.i.i.i.i.i.i.i + %389 = phi i32 [ %.pre1.i.i.i.i.i.i.i, %.noexc.i.i.i.i ], [ %385, %lor.lhs.false.i.i.i.i.i.i.i ] + %390 = phi ptr [ %.pre.i.i.i.i.i.i.i, %.noexc.i.i.i.i ], [ %384, %lor.lhs.false.i.i.i.i.i.i.i ] + %idx.ext.i.i.i.i85.i.i.i = zext i32 %389 to i64 + %add.ptr.i.i.i.i86.i.i.i = getelementptr inbounds ptr, ptr %390, i64 %idx.ext.i.i.i.i85.i.i.i + store ptr %382, ptr %add.ptr.i.i.i.i86.i.i.i, align 8 + %391 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %arrayidx10.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %391, i64 -1 + %392 = load i32, ptr %arrayidx10.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i76.i.i = add i32 %392, 1 + store i32 %inc.i.i.i.i.i76.i.i, ptr %arrayidx10.i.i.i.i.i.i.i, align 4 + %indvars.iv.next.i.i.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i.i.i, 1 + %exitcond.not.i.i.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i.i.i, %wide.trip.count.i.i.i.i.i + br i1 %exitcond.not.i.i.i.i.i, label %invoke.cont.loopexit.i.i.i, label %for.body.i.i.i74.i.i, !llvm.loop !53 + +lpad.i.i.i.i: ; preds = %if.end.i281.i.i, %if.then.i284.i.i + %393 = landingpad { ptr, i32 } cleanup - br label %lpad147.i.i - -lpad147.i.i: ; preds = %lpad147.i.i.loopexit.split-lp, %lpad147.i.i.loopexit - %lpad.phi2876 = phi { ptr, i32 } [ %lpad.loopexit2874, %lpad147.i.i.loopexit ], [ %lpad.loopexit.split-lp2875, %lpad147.i.i.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2.i.i) #14 - br label %ehcleanup.i.i - -if.end165.i.i: ; preds = %if.then2.i.i.i754, %if.end.i747, %if.then.i.i.i749 - store ptr %460, ptr %m_r.i71.i, align 8 - %this.val53.i72.i = load ptr, ptr %28, align 8 - store ptr null, ptr %pr2.i.i, align 8 - store ptr %this.val53.i72.i, ptr %m_manager.i, align 8 - %465 = load i32, ptr %m_spos.i54.i, align 4 - %466 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i703 = icmp eq ptr %466, null - br i1 %cmp.i.i.i703, label %invoke.cont168.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i - -_ZN6vectorIP3appLb0EjE3endEv.exit.i: ; preds = %if.end165.i.i - %arrayidx.i.i.i706 = getelementptr inbounds i32, ptr %466, i64 -1 - %467 = load i32, ptr %arrayidx.i.i.i706, align 4 - %468 = zext i32 %467 to i64 - %add.ptr.i.i707 = getelementptr inbounds ptr, ptr %466, i64 %468 - %cmp3.i.i708 = icmp ugt i32 %467, %465 - br i1 %cmp3.i.i708, label %for.body.i.i711.preheader, label %if.then.i.i709 - -for.body.i.i711.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i - %idx.ext.i704 = zext i32 %465 to i64 - %add.ptr.i705 = getelementptr inbounds ptr, ptr %466, i64 %idx.ext.i704 - br label %for.body.i.i711 - -for.body.i.i711: ; preds = %for.body.i.i711.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i718 - %it.04.i.i712 = phi ptr [ %incdec.ptr.i.i719, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i718 ], [ %add.ptr.i705, %for.body.i.i711.preheader ] - %469 = load ptr, ptr %it.04.i.i712, align 8 - %470 = load ptr, ptr %m_result_pr_stack.i726, align 8 - %tobool.not.i.i.i.i.i713 = icmp eq ptr %469, null - br i1 %tobool.not.i.i.i.i.i713, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i718, label %if.then.i.i.i.i.i714 - -if.then.i.i.i.i.i714: ; preds = %for.body.i.i711 - %m_ref_count.i.i.i.i.i.i715 = getelementptr inbounds %class.ast, ptr %469, i64 0, i32 2 - %471 = load i32, ptr %m_ref_count.i.i.i.i.i.i715, align 4 - %dec.i.i.i.i.i.i716 = add i32 %471, -1 - store i32 %dec.i.i.i.i.i.i716, ptr %m_ref_count.i.i.i.i.i.i715, align 4 - %cmp.i.i.i.i.i717 = icmp eq i32 %dec.i.i.i.i.i.i716, 0 - br i1 %cmp.i.i.i.i.i717, label %if.then2.i.i.i.i.i724, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i718 - -if.then2.i.i.i.i.i724: ; preds = %if.then.i.i.i.i.i714 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %470, ptr noundef nonnull %469) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i718 unwind label %lpad147.i.i.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i718: ; preds = %if.then2.i.i.i.i.i724, %if.then.i.i.i.i.i714, %for.body.i.i711 - %incdec.ptr.i.i719 = getelementptr inbounds ptr, ptr %it.04.i.i712, i64 1 - %cmp.i.i720 = icmp ult ptr %incdec.ptr.i.i719, %add.ptr.i.i707 - br i1 %cmp.i.i720, label %for.body.i.i711, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i721, !llvm.loop !31 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i721: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i718 - %.pre.i722 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i723 = icmp eq ptr %.pre.i722, null - br i1 %tobool.not.i.i723, label %invoke.cont168.i.i, label %if.then.i.i709 - -if.then.i.i709: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i721, %_ZN6vectorIP3appLb0EjE3endEv.exit.i - %472 = phi ptr [ %.pre.i722, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i721 ], [ %466, %_ZN6vectorIP3appLb0EjE3endEv.exit.i ] - %arrayidx.i.i710 = getelementptr inbounds i32, ptr %472, i64 -1 - store i32 %465, ptr %arrayidx.i.i710, align 4 - br label %invoke.cont168.i.i - -invoke.cont168.i.i: ; preds = %if.then.i.i709, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i721, %if.end165.i.i - %473 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i.i.i.i682 = icmp eq ptr %473, null - br i1 %tobool.not.i.i.i.i682, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i683 - -if.then.i.i.i.i683: ; preds = %invoke.cont168.i.i - %m_ref_count.i.i.i.i.i684 = getelementptr inbounds %class.ast, ptr %473, i64 0, i32 2 - %474 = load i32, ptr %m_ref_count.i.i.i.i.i684, align 4 - %inc.i.i.i.i.i685 = add i32 %474, 1 - store i32 %inc.i.i.i.i.i685, ptr %m_ref_count.i.i.i.i.i684, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %if.then.i.i.i.i683, %invoke.cont168.i.i - %475 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i687 = icmp eq ptr %475, null - br i1 %cmp.i.i687, label %if.then.i.i696, label %lor.lhs.false.i.i688 - -lor.lhs.false.i.i688: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - %arrayidx.i.i689 = getelementptr inbounds i32, ptr %475, i64 -1 - %476 = load i32, ptr %arrayidx.i.i689, align 4 - %arrayidx4.i.i690 = getelementptr inbounds i32, ptr %475, i64 -2 - %477 = load i32, ptr %arrayidx4.i.i690, align 4 - %cmp5.i.i691 = icmp eq i32 %476, %477 - br i1 %cmp5.i.i691, label %if.then.i.i696, label %_ZN7obj_refI3app11ast_managerED2Ev.exit - -if.then.i.i696: ; preds = %lor.lhs.false.i.i688, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc700 unwind label %lpad147.i.i.loopexit.split-lp + br label %lpad.i.i.body.i.i -.noexc700: ; preds = %if.then.i.i696 - %.pre.i.i697 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i698 = getelementptr inbounds i32, ptr %.pre.i.i697, i64 -1 - %.pre1.i.i699 = load i32, ptr %arrayidx8.phi.trans.insert.i.i698, align 4 - br label %_ZN7obj_refI3app11ast_managerED2Ev.exit +lpad.i.i.body.i.i: ; preds = %lpad.i.i.i.i, %cleanup.action.i270.i.i, %ehcleanup.i275.i.i + %eh.lpad-body291.i.i = phi { ptr, i32 } [ %393, %lpad.i.i.i.i ], [ %387, %ehcleanup.i275.i.i ], [ %388, %cleanup.action.i270.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i) #14 + br label %common.resume -_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %lor.lhs.false.i.i688, %.noexc700 - %478 = phi i32 [ %.pre1.i.i699, %.noexc700 ], [ %476, %lor.lhs.false.i.i688 ] - %479 = phi ptr [ %.pre.i.i697, %.noexc700 ], [ %475, %lor.lhs.false.i.i688 ] - %idx.ext.i.i692 = zext i32 %478 to i64 - %add.ptr.i.i693 = getelementptr inbounds ptr, ptr %479, i64 %idx.ext.i.i692 - store ptr %473, ptr %add.ptr.i.i693, align 8 - %480 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i694 = getelementptr inbounds i32, ptr %480, i64 -1 - %481 = load i32, ptr %arrayidx10.i.i694, align 4 - %inc.i.i695 = add i32 %481, 1 - store i32 %inc.i.i695, ptr %arrayidx10.i.i694, align 4 - br i1 %tobool.not.i.i829, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit, label %if.then.i.i.i666 - -if.then.i.i.i666: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit - %m_ref_count.i.i.i.i668 = getelementptr inbounds %class.ast, ptr %call93.i.i, i64 0, i32 2 - %482 = load i32, ptr %m_ref_count.i.i.i.i668, align 4 - %dec.i.i.i.i669 = add i32 %482, -1 - store i32 %dec.i.i.i.i669, ptr %m_ref_count.i.i.i.i668, align 4 - %cmp.i.i.i670 = icmp eq i32 %dec.i.i.i.i669, 0 - br i1 %cmp.i.i.i670, label %if.then2.i.i.i672, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - -if.then2.i.i.i672: ; preds = %if.then.i.i.i666 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val57.i63.i, ptr noundef nonnull %call93.i.i) - to label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit unwind label %terminate.lpad.i +invoke.cont.loopexit.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + %.pre.i77.i.i = load ptr, ptr %28, align 8 + %.pre491.i.i.i = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %.pre494.i.i.i = zext i32 %.pre491.i.i.i to i64 + %.pre495.i.i.i = ptrtoint ptr %.pre.i77.i.i to i64 + br label %invoke.cont.i78.i.i + +invoke.cont.i78.i.i: ; preds = %invoke.cont.loopexit.i.i.i, %while.end.i66.i.i + %.pre-phi.i.i.i = phi i64 [ %.pre495.i.i.i, %invoke.cont.loopexit.i.i.i ], [ %381, %while.end.i66.i.i ] + %idx.ext.i.i89.pre-phi.i.i.i = phi i64 [ %.pre494.i.i.i, %invoke.cont.loopexit.i.i.i ], [ %idx.ext.i.i.i72.i.i, %while.end.i66.i.i ] + %add.ptr.i.i90.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i89.pre-phi.i.i.i + %add.ptr.i91.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i90.i.i.i, i64 %idx.ext.i.i89.pre-phi.i.i.i + store i64 %.pre-phi.i.i.i, ptr %new_no_pats.i.i.i, align 8 + store ptr null, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp3.not.i.i93.i.i.i = icmp eq i32 %378, 0 + br i1 %cmp3.not.i.i93.i.i.i, label %if.then40.i.i.i, label %for.body.lr.ph.i.i94.i.i.i + +for.body.lr.ph.i.i94.i.i.i: ; preds = %invoke.cont.i78.i.i + %wide.trip.count.i.i95.i.i.i = zext i32 %378 to i64 + br label %for.body.i.i96.i.i.i + +for.body.i.i96.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i, %for.body.lr.ph.i.i94.i.i.i + %indvars.iv.i.i97.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i94.i.i.i ], [ %indvars.iv.next.i.i114.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i ] + %arrayidx.i.i98.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i91.i.i.i, i64 %indvars.iv.i.i97.i.i.i + %394 = load ptr, ptr %arrayidx.i.i98.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i99.i.i.i = icmp eq ptr %394, null + br i1 %tobool.not.i.i.i.i.i.i99.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i, label %if.then.i.i.i.i.i.i100.i.i.i + +if.then.i.i.i.i.i.i100.i.i.i: ; preds = %for.body.i.i96.i.i.i + %m_ref_count.i.i.i.i.i.i.i101.i.i.i = getelementptr inbounds %class.ast, ptr %394, i64 0, i32 2 + %395 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i101.i.i.i, align 4 + %inc.i.i.i.i.i.i.i102.i.i.i = add i32 %395, 1 + store i32 %inc.i.i.i.i.i.i.i102.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i101.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i: ; preds = %if.then.i.i.i.i.i.i100.i.i.i, %for.body.i.i96.i.i.i + %396 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i.i104.i.i.i = icmp eq ptr %396, null + br i1 %cmp.i.i.i.i104.i.i.i, label %if.then.i254.i.i, label %lor.lhs.false.i.i.i.i105.i.i.i + +lor.lhs.false.i.i.i.i105.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + %arrayidx.i.i.i.i106.i.i.i = getelementptr inbounds i32, ptr %396, i64 -1 + %397 = load i32, ptr %arrayidx.i.i.i.i106.i.i.i, align 4 + %arrayidx4.i.i.i.i107.i.i.i = getelementptr inbounds i32, ptr %396, i64 -2 + %398 = load i32, ptr %arrayidx4.i.i.i.i107.i.i.i, align 4 + %cmp5.i.i.i.i108.i.i.i = icmp eq i32 %397, %398 + br i1 %cmp5.i.i.i.i108.i.i.i, label %if.else.i247.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i + +if.then.i254.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %call.i255.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc.i.i unwind label %lpad.i117.i.i.i + +call.i.noexc.i.i: ; preds = %if.then.i254.i.i + store i32 2, ptr %call.i255.i.i, align 4 + %incdec.ptr.i.i.i = getelementptr inbounds i32, ptr %call.i255.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i.i.i, align 4 + %incdec.ptr2.i.i.i = getelementptr inbounds i32, ptr %call.i255.i.i, i64 2 + store ptr %incdec.ptr2.i.i.i, ptr %m_nodes.i.i92.i.i.i, align 8 + br label %.noexc.i118.i.i.i + +if.else.i247.i.i: ; preds = %lor.lhs.false.i.i.i.i105.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %mul9.i.i.i = mul i32 %397, 3 + %add10.i.i.i = add i32 %mul9.i.i.i, 1 + %shr.i.i.i = lshr i32 %add10.i.i.i, 1 + %mul12.i.i.i = shl i32 %shr.i.i.i, 3 + %add13.i.i.i = add i32 %mul12.i.i.i, 8 + %cmp15.not.i.i.i = icmp ugt i32 %shr.i.i.i, %397 + br i1 %cmp15.not.i.i.i, label %lor.lhs.false.i.i.i, label %if.then17.i.i.i + +lor.lhs.false.i.i.i: ; preds = %if.else.i247.i.i + %mul6.i.i.i = shl i32 %397, 3 + %add7.i.i.i = add i32 %mul6.i.i.i, 8 + %cmp16.not.i.i.i = icmp ugt i32 %add13.i.i.i, %add7.i.i.i + br i1 %cmp16.not.i.i.i, label %if.end.i253.i.i, label %if.then17.i.i.i + +if.then17.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.else.i247.i.i + %exception.i.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #14 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #14 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) + to label %invoke.cont.i250.i.i unwind label %cleanup.action.i.i.i + +invoke.cont.i250.i.i: ; preds = %if.then17.i.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i.i, align 8 + %m_msg.i.i251.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i251.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i) #14 + invoke void @__cxa_throw(ptr nonnull %exception.i.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #17 + to label %unreachable.i.i.i unwind label %ehcleanup.i252.i.i + +ehcleanup.i252.i.i: ; preds = %invoke.cont.i250.i.i + %399 = landingpad { ptr, i32 } + cleanup + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i) #14 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #14 + br label %lpad.i117.i.body.i.i -terminate.lpad.i: ; preds = %if.then2.i.i.i672 - %483 = landingpad { ptr, i32 } - catch ptr null - %484 = extractvalue { ptr, i32 } %483, 0 - call void @__clang_call_terminate(ptr %484) #15 +cleanup.action.i.i.i: ; preds = %if.then17.i.i.i + %400 = landingpad { ptr, i32 } + cleanup + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #14 + call void @__cxa_free_exception(ptr %exception.i.i.i) #14 + br label %lpad.i117.i.body.i.i + +if.end.i253.i.i: ; preds = %lor.lhs.false.i.i.i + %conv24.i.i.i = zext i32 %add13.i.i.i to i64 + %call25.i256.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i107.i.i.i, i64 noundef %conv24.i.i.i) + to label %call25.i.noexc.i.i unwind label %lpad.i117.i.i.i + +call25.i.noexc.i.i: ; preds = %if.end.i253.i.i + %add.ptr26.i.i.i = getelementptr inbounds i32, ptr %call25.i256.i.i, i64 2 + store ptr %add.ptr26.i.i.i, ptr %m_nodes.i.i92.i.i.i, align 8 + store i32 %shr.i.i.i, ptr %call25.i256.i.i, align 4 + br label %.noexc.i118.i.i.i + +unreachable.i.i.i: ; preds = %invoke.cont.i250.i.i unreachable -_ZN7obj_refI10quantifier11ast_managerED2Ev.exit: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit, %if.then.i.i.i666, %if.then2.i.i.i672 - %485 = load i32, ptr %m_spos.i54.i, align 4 - %486 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i642 = icmp eq ptr %486, null - br i1 %cmp.i.i.i642, label %invoke.cont176.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i: ; preds = %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - %arrayidx.i.i.i644 = getelementptr inbounds i32, ptr %486, i64 -1 - %487 = load i32, ptr %arrayidx.i.i.i644, align 4 - %488 = zext i32 %487 to i64 - %add.ptr.i.i645 = getelementptr inbounds ptr, ptr %486, i64 %488 - %cmp3.i.i646 = icmp ugt i32 %487, %485 - br i1 %cmp3.i.i646, label %for.body.i.i649.preheader, label %if.then.i.i647 - -for.body.i.i649.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - %idx.ext.i = zext i32 %485 to i64 - %add.ptr.i643 = getelementptr inbounds ptr, ptr %486, i64 %idx.ext.i - br label %for.body.i.i649 - -for.body.i.i649: ; preds = %for.body.i.i649.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i656 - %it.04.i.i650 = phi ptr [ %incdec.ptr.i.i657, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i656 ], [ %add.ptr.i643, %for.body.i.i649.preheader ] - %489 = load ptr, ptr %it.04.i.i650, align 8 - %490 = load ptr, ptr %m_result_stack.i970, align 8 - %tobool.not.i.i.i.i.i651 = icmp eq ptr %489, null - br i1 %tobool.not.i.i.i.i.i651, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i656, label %if.then.i.i.i.i.i652 - -if.then.i.i.i.i.i652: ; preds = %for.body.i.i649 - %m_ref_count.i.i.i.i.i.i653 = getelementptr inbounds %class.ast, ptr %489, i64 0, i32 2 - %491 = load i32, ptr %m_ref_count.i.i.i.i.i.i653, align 4 - %dec.i.i.i.i.i.i654 = add i32 %491, -1 - store i32 %dec.i.i.i.i.i.i654, ptr %m_ref_count.i.i.i.i.i.i653, align 4 - %cmp.i.i.i.i.i655 = icmp eq i32 %dec.i.i.i.i.i.i654, 0 - br i1 %cmp.i.i.i.i.i655, label %if.then2.i.i.i.i.i662, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i656 - -if.then2.i.i.i.i.i662: ; preds = %if.then.i.i.i.i.i652 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %490, ptr noundef nonnull %489) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i656 unwind label %lpad37.i.i.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i656: ; preds = %if.then2.i.i.i.i.i662, %if.then.i.i.i.i.i652, %for.body.i.i649 - %incdec.ptr.i.i657 = getelementptr inbounds ptr, ptr %it.04.i.i650, i64 1 - %cmp.i.i658 = icmp ult ptr %incdec.ptr.i.i657, %add.ptr.i.i645 - br i1 %cmp.i.i658, label %for.body.i.i649, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i659, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i659: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i656 - %.pre.i660 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i661 = icmp eq ptr %.pre.i660, null - br i1 %tobool.not.i.i661, label %invoke.cont176.i.i, label %if.then.i.i647 - -if.then.i.i647: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i659, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - %492 = phi ptr [ %.pre.i660, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i659 ], [ %486, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i ] - %arrayidx.i.i648 = getelementptr inbounds i32, ptr %492, i64 -1 - store i32 %485, ptr %arrayidx.i.i648, align 4 - br label %invoke.cont176.i.i - -invoke.cont176.i.i: ; preds = %if.then.i.i647, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i659, %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - %493 = load ptr, ptr %m_r.i71.i, align 8 - %tobool.not.i.i.i.i627 = icmp eq ptr %493, null - br i1 %tobool.not.i.i.i.i627, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i628 - -if.then.i.i.i.i628: ; preds = %invoke.cont176.i.i - %m_ref_count.i.i.i.i.i629 = getelementptr inbounds %class.ast, ptr %493, i64 0, i32 2 - %494 = load i32, ptr %m_ref_count.i.i.i.i.i629, align 4 - %inc.i.i.i.i.i = add i32 %494, 1 - store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i629, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i +.noexc.i118.i.i.i: ; preds = %call25.i.noexc.i.i, %call.i.noexc.i.i + %.pre.i.i.i.i119.i.i.i = phi ptr [ %add.ptr26.i.i.i, %call25.i.noexc.i.i ], [ %incdec.ptr2.i.i.i, %call.i.noexc.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i120.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i119.i.i.i, i64 -1 + %.pre1.i.i.i.i121.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i120.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i: ; preds = %.noexc.i118.i.i.i, %lor.lhs.false.i.i.i.i105.i.i.i + %401 = phi i32 [ %.pre1.i.i.i.i121.i.i.i, %.noexc.i118.i.i.i ], [ %397, %lor.lhs.false.i.i.i.i105.i.i.i ] + %402 = phi ptr [ %.pre.i.i.i.i119.i.i.i, %.noexc.i118.i.i.i ], [ %396, %lor.lhs.false.i.i.i.i105.i.i.i ] + %idx.ext.i.i.i.i110.i.i.i = zext i32 %401 to i64 + %add.ptr.i.i.i.i111.i.i.i = getelementptr inbounds ptr, ptr %402, i64 %idx.ext.i.i.i.i110.i.i.i + store ptr %394, ptr %add.ptr.i.i.i.i111.i.i.i, align 8 + %403 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %arrayidx10.i.i.i.i112.i.i.i = getelementptr inbounds i32, ptr %403, i64 -1 + %404 = load i32, ptr %arrayidx10.i.i.i.i112.i.i.i, align 4 + %inc.i.i.i.i113.i.i.i = add i32 %404, 1 + store i32 %inc.i.i.i.i113.i.i.i, ptr %arrayidx10.i.i.i.i112.i.i.i, align 4 + %indvars.iv.next.i.i114.i.i.i = add nuw nsw i64 %indvars.iv.i.i97.i.i.i, 1 + %exitcond.not.i.i115.i.i.i = icmp eq i64 %indvars.iv.next.i.i114.i.i.i, %wide.trip.count.i.i95.i.i.i + br i1 %exitcond.not.i.i115.i.i.i, label %if.then40.i.i.i, label %for.body.i.i96.i.i.i, !llvm.loop !53 + +lpad.i117.i.i.i: ; preds = %if.end.i253.i.i, %if.then.i254.i.i + %405 = landingpad { ptr, i32 } + cleanup + br label %lpad.i117.i.body.i.i + +lpad.i117.i.body.i.i: ; preds = %lpad.i117.i.i.i, %cleanup.action.i.i.i, %ehcleanup.i252.i.i + %eh.lpad-body.i.i = phi { ptr, i32 } [ %405, %lpad.i117.i.i.i ], [ %399, %ehcleanup.i252.i.i ], [ %400, %cleanup.action.i.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i) #14 + br label %ehcleanup211.i.i.i + +if.then40.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i, %invoke.cont.i78.i.i + %add.ptr41.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i71.i.i, i64 1 + %idx.ext42.i.i.i = zext i32 %377 to i64 + %add.ptr43.i.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i, i64 %idx.ext42.i.i.i + br i1 %cmp3.not.i.i.i.i.i, label %for.end63.i.i.i, label %for.body47.i.i.i + +for.body47.i.i.i: ; preds = %if.then40.i.i.i, %for.inc61.i.i.i + %indvars.iv.i.i.i = phi i64 [ %indvars.iv.next.i.i.i, %for.inc61.i.i.i ], [ 0, %if.then40.i.i.i ] + %j.0478.i.i.i = phi i32 [ %j.1.i.i.i, %for.inc61.i.i.i ], [ 0, %if.then40.i.i.i ] + %406 = load ptr, ptr %28, align 8 + %arrayidx.i79.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i, i64 %indvars.iv.i.i.i + %407 = load ptr, ptr %arrayidx.i79.i.i, align 8 + %call50.i80.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %406, ptr noundef %407) + to label %invoke.cont49.i81.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +invoke.cont49.i81.i.i: ; preds = %for.body47.i.i.i + br i1 %call50.i80.i.i, label %invoke.cont56.i.i.i, label %for.inc61.i.i.i + +invoke.cont56.i.i.i: ; preds = %invoke.cont49.i81.i.i + %408 = load ptr, ptr %arrayidx.i79.i.i, align 8 + %409 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %idxprom.i.i124.i.i.i = zext i32 %j.0478.i.i.i to i64 + %arrayidx.i.i125.i.i.i = getelementptr inbounds ptr, ptr %409, i64 %idxprom.i.i124.i.i.i + %410 = load ptr, ptr %new_pats.i.i.i, align 8 + %inc55.i.i.i = add i32 %j.0478.i.i.i, 1 + %tobool.not.i.i.i139.i.i = icmp eq ptr %408, null + br i1 %tobool.not.i.i.i139.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i, label %if.then.i.i.i140.i.i + +if.then.i.i.i140.i.i: ; preds = %invoke.cont56.i.i.i + %m_ref_count.i.i.i.i141.i.i = getelementptr inbounds %class.ast, ptr %408, i64 0, i32 2 + %411 = load i32, ptr %m_ref_count.i.i.i.i141.i.i, align 4 + %inc.i.i.i.i142.i.i = add i32 %411, 1 + store i32 %inc.i.i.i.i142.i.i, ptr %m_ref_count.i.i.i.i141.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i: ; preds = %if.then.i.i.i140.i.i, %invoke.cont56.i.i.i + %412 = load ptr, ptr %arrayidx.i.i125.i.i.i, align 8 + %tobool.not.i2.i.i.i.i = icmp eq ptr %412, null + br i1 %tobool.not.i2.i.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i, label %if.then.i3.i.i.i.i + +if.then.i3.i.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + %m_ref_count.i.i4.i.i.i.i = getelementptr inbounds %class.ast, ptr %412, i64 0, i32 2 + %413 = load i32, ptr %m_ref_count.i.i4.i.i.i.i, align 4 + %dec.i.i.i.i.i99.i = add i32 %413, -1 + store i32 %dec.i.i.i.i.i99.i, ptr %m_ref_count.i.i4.i.i.i.i, align 4 + %cmp.i.i.i143.i.i = icmp eq i32 %dec.i.i.i.i.i99.i, 0 + br i1 %cmp.i.i.i143.i.i, label %if.then2.i.i.i.i100.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i + +if.then2.i.i.i.i100.i: ; preds = %if.then.i3.i.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %410, ptr noundef nonnull %412) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i100.i, %if.then.i3.i.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + store ptr %408, ptr %arrayidx.i.i125.i.i.i, align 8 + br label %for.inc61.i.i.i + +lpad37.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i351.i.i.i + %lpad.loopexit.i121.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup210.i.i.i -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %if.then.i.i.i.i628, %invoke.cont176.i.i - %495 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i631 = icmp eq ptr %495, null - br i1 %cmp.i.i631, label %if.then.i.i636, label %lor.lhs.false.i.i +lpad37.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i179.i.i.i + %lpad.loopexit463.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup210.i.i.i -lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - %arrayidx.i.i632 = getelementptr inbounds i32, ptr %495, i64 -1 - %496 = load i32, ptr %arrayidx.i.i632, align 4 - %arrayidx4.i.i = getelementptr inbounds i32, ptr %495, i64 -2 - %497 = load i32, ptr %arrayidx4.i.i, align 4 - %cmp5.i.i = icmp eq i32 %496, %497 - br i1 %cmp5.i.i, label %if.then.i.i636, label %invoke.cont180.i.i - -if.then.i.i636: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc639 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc639: ; preds = %if.then.i.i636 - %.pre.i.i637 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i637, i64 -1 - %.pre1.i.i638 = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 - br label %invoke.cont180.i.i - -invoke.cont180.i.i: ; preds = %.noexc639, %lor.lhs.false.i.i - %498 = phi i32 [ %.pre1.i.i638, %.noexc639 ], [ %496, %lor.lhs.false.i.i ] - %499 = phi ptr [ %.pre.i.i637, %.noexc639 ], [ %495, %lor.lhs.false.i.i ] - %idx.ext.i.i633 = zext i32 %498 to i64 - %add.ptr.i.i634 = getelementptr inbounds ptr, ptr %499, i64 %idx.ext.i.i633 - store ptr %493, ptr %add.ptr.i.i634, align 8 - %500 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i = getelementptr inbounds i32, ptr %500, i64 -1 - %501 = load i32, ptr %arrayidx10.i.i, align 4 - %inc.i.i635 = add i32 %501, 1 - store i32 %inc.i.i635, ptr %arrayidx10.i.i, align 4 - %502 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i623 = icmp eq ptr %502, null - br i1 %cmp.i623, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit, label %if.then.i620 - -if.then.i620: ; preds = %invoke.cont180.i.i - %arrayidx.i625 = getelementptr inbounds i32, ptr %502, i64 -1 - %503 = load i32, ptr %arrayidx.i625, align 4 - %sub.i74.i = sub i32 %503, %349 - store i32 %sub.i74.i, ptr %arrayidx.i625, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i153.i.i.i, %for.body68.i.i.i + %lpad.loopexit466.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup210.i.i.i -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit: ; preds = %invoke.cont180.i.i, %if.then.i620 - %504 = load ptr, ptr %m_shifts.i.i, align 8 - %cmp.i616 = icmp eq ptr %504, null - br i1 %cmp.i616, label %_ZN6vectorIjLb0EjE6shrinkEj.exit, label %if.then.i613 +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i138.i.i + %lpad.loopexit468.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup210.i.i.i -if.then.i613: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit - %arrayidx.i618 = getelementptr inbounds i32, ptr %504, i64 -1 - %505 = load i32, ptr %arrayidx.i618, align 4 - %sub188.i.i = sub i32 %505, %349 - store i32 %sub188.i.i, ptr %arrayidx.i618, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i100.i, %for.body47.i.i.i + %lpad.loopexit471.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup210.i.i.i -_ZN6vectorIjLb0EjE6shrinkEj.exit: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit, %if.then.i613 - invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont190.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont190.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit - %506 = load ptr, ptr %m_r.i71.i, align 8 - %bf.load196.i.i = load i32, ptr %89, align 8 - %bf.clear197.i.i = and i32 %bf.load196.i.i, 1 - %tobool.i75.i.not = icmp eq i32 %bf.clear197.i.i, 0 - br i1 %tobool.i75.i.not, label %invoke.cont198.i.i, label %if.then.i610 - -if.then.i610: ; preds = %invoke.cont190.i.i - %507 = load ptr, ptr %m_pr.i64.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %506, ptr noundef %507) - to label %invoke.cont198.i.ithread-pre-split unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont198.i.ithread-pre-split: ; preds = %if.then.i610 - %.pr2806 = load ptr, ptr %m_r.i71.i, align 8 - br label %invoke.cont198.i.i - -invoke.cont198.i.i: ; preds = %invoke.cont198.i.ithread-pre-split, %invoke.cont190.i.i - %508 = phi ptr [ %.pr2806, %invoke.cont198.i.ithread-pre-split ], [ %506, %invoke.cont190.i.i ] - %tobool.not.i3.i600 = icmp eq ptr %508, null - br i1 %tobool.not.i3.i600, label %invoke.cont200.i.i, label %if.then.i.i.i601 - -if.then.i.i.i601: ; preds = %invoke.cont198.i.i - %509 = load ptr, ptr %m_manager.i.i750, align 8 - %m_ref_count.i.i.i.i603 = getelementptr inbounds %class.ast, ptr %508, i64 0, i32 2 - %510 = load i32, ptr %m_ref_count.i.i.i.i603, align 4 - %dec.i.i.i.i604 = add i32 %510, -1 - store i32 %dec.i.i.i.i604, ptr %m_ref_count.i.i.i.i603, align 4 - %cmp.i.i.i605 = icmp eq i32 %dec.i.i.i.i604, 0 - br i1 %cmp.i.i.i605, label %if.then2.i.i.i606, label %invoke.cont200.i.i - -if.then2.i.i.i606: ; preds = %if.then.i.i.i601 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %509, ptr noundef nonnull %508) - to label %invoke.cont200.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont200.i.i: ; preds = %if.then.i.i.i601, %invoke.cont198.i.i, %if.then2.i.i.i606 - store ptr null, ptr %m_r.i71.i, align 8 - %511 = load ptr, ptr %m_pr.i64.i, align 8 - %tobool.not.i3.i591 = icmp eq ptr %511, null - br i1 %tobool.not.i3.i591, label %invoke.cont203.i.i, label %if.then.i.i.i592 - -if.then.i.i.i592: ; preds = %invoke.cont200.i.i - %512 = load ptr, ptr %m_manager.i.i821, align 8 - %m_ref_count.i.i.i.i594 = getelementptr inbounds %class.ast, ptr %511, i64 0, i32 2 - %513 = load i32, ptr %m_ref_count.i.i.i.i594, align 4 - %dec.i.i.i.i595 = add i32 %513, -1 - store i32 %dec.i.i.i.i595, ptr %m_ref_count.i.i.i.i594, align 4 - %cmp.i.i.i596 = icmp eq i32 %dec.i.i.i.i595, 0 - br i1 %cmp.i.i.i596, label %if.then2.i.i.i597, label %invoke.cont203.i.i - -if.then2.i.i.i597: ; preds = %if.then.i.i.i592 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %512, ptr noundef nonnull %511) - to label %invoke.cont203.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont203.i.i: ; preds = %if.then.i.i.i592, %invoke.cont200.i.i, %if.then2.i.i.i597 - store ptr null, ptr %m_pr.i64.i, align 8 - %514 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i588 = getelementptr inbounds i32, ptr %514, i64 -1 - %515 = load i32, ptr %arrayidx.i588, align 4 - %dec.i = add i32 %515, -1 - store i32 %dec.i, ptr %arrayidx.i588, align 4 - %516 = load ptr, ptr %m_r.i71.i, align 8 - %this.val59.i76.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i = icmp eq ptr %87, %516 - %cmp.i.i.i583 = icmp eq ptr %this.val59.i76.i, null - %or.cond.i = select i1 %cmp.not.i, i1 true, i1 %cmp.i.i.i583 - br i1 %or.cond.i, label %invoke.cont209.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %invoke.cont203.i.i - %arrayidx.i.i.i584 = getelementptr inbounds i32, ptr %this.val59.i76.i, i64 -1 - %517 = load i32, ptr %arrayidx.i.i.i584, align 4 - %cmp3.i.i.i = icmp eq i32 %517, 0 - br i1 %cmp3.i.i.i, label %invoke.cont209.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.then2.i.i.i411.i.i.i, %if.then2.i.i.i401.i.i.i, %if.then.i392.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i, %if.then.i.i369.i.i.i, %if.end88.i.i.i + %lpad.loopexit.split-lp.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup210.i.i.i + +for.inc61.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i, %invoke.cont49.i81.i.i + %j.1.i.i.i = phi i32 [ %inc55.i.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i ], [ %j.0478.i.i.i, %invoke.cont49.i81.i.i ] + %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 + %exitcond485.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %idx.ext42.i.i.i + br i1 %exitcond485.not.i.i.i, label %for.end63.i.i.i, label %for.body47.i.i.i, !llvm.loop !54 + +for.end63.i.i.i: ; preds = %for.inc61.i.i.i, %if.then40.i.i.i + %j.0.lcssa.i.i.i = phi i32 [ 0, %if.then40.i.i.i ], [ %j.1.i.i.i, %for.inc61.i.i.i ] + %414 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i.i = icmp eq ptr %414, null + br i1 %cmp.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i: ; preds = %for.end63.i.i.i + %arrayidx.i.i.i.i83.i.i = getelementptr inbounds i32, ptr %414, i64 -1 + %415 = load i32, ptr %arrayidx.i.i.i.i83.i.i, align 4 + %416 = zext i32 %415 to i64 + %add.ptr.i.i129.i.i.i = getelementptr inbounds ptr, ptr %414, i64 %416 + %cmp3.i.i.i84.i.i = icmp ugt i32 %415, %j.0.lcssa.i.i.i + br i1 %cmp3.i.i.i84.i.i, label %for.body.i.i132.preheader.i.i.i, label %if.then.i.i130.i.i.i + +for.body.i.i132.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i + %idx.ext.i127.i.i.i = zext i32 %j.0.lcssa.i.i.i to i64 + %add.ptr.i128.i.i.i = getelementptr inbounds ptr, ptr %414, i64 %idx.ext.i127.i.i.i + br label %for.body.i.i132.i.i.i + +for.body.i.i132.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i135.i.i, %for.body.i.i132.preheader.i.i.i + %it.04.i.i.i129.i.i = phi ptr [ %incdec.ptr.i.i.i136.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i135.i.i ], [ %add.ptr.i128.i.i.i, %for.body.i.i132.preheader.i.i.i ] + %417 = load ptr, ptr %it.04.i.i.i129.i.i, align 8 + %418 = load ptr, ptr %new_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i130.i.i = icmp eq ptr %417, null + br i1 %tobool.not.i.i.i.i.i.i130.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i135.i.i, label %if.then.i.i.i.i.i.i131.i.i + +if.then.i.i.i.i.i.i131.i.i: ; preds = %for.body.i.i132.i.i.i + %m_ref_count.i.i.i.i.i.i.i132.i.i = getelementptr inbounds %class.ast, ptr %417, i64 0, i32 2 + %419 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i132.i.i, align 4 + %dec.i.i.i.i.i.i.i133.i.i = add i32 %419, -1 + store i32 %dec.i.i.i.i.i.i.i133.i.i, ptr %m_ref_count.i.i.i.i.i.i.i132.i.i, align 4 + %cmp.i.i.i.i.i.i134.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i133.i.i, 0 + br i1 %cmp.i.i.i.i.i.i134.i.i, label %if.then2.i.i.i.i.i.i138.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i135.i.i + +if.then2.i.i.i.i.i.i138.i.i: ; preds = %if.then.i.i.i.i.i.i131.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %418, ptr noundef nonnull %417) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i135.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i135.i.i: ; preds = %if.then2.i.i.i.i.i.i138.i.i, %if.then.i.i.i.i.i.i131.i.i, %for.body.i.i132.i.i.i + %incdec.ptr.i.i.i136.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i129.i.i, i64 1 + %cmp.i.i133.i.i.i = icmp ult ptr %incdec.ptr.i.i.i136.i.i, %add.ptr.i.i129.i.i.i + br i1 %cmp.i.i133.i.i.i, label %for.body.i.i132.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i137.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i137.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i135.i.i + %.pre.i134.i.i.i = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %tobool.not.i.i135.i.i.i = icmp eq ptr %.pre.i134.i.i.i, null + br i1 %tobool.not.i.i135.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i, label %if.then.i.i130.i.i.i + +if.then.i.i130.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i137.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i + %420 = phi ptr [ %.pre.i134.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i137.i.i ], [ %414, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i ] + %arrayidx.i.i131.i.i.i = getelementptr inbounds i32, ptr %420, i64 -1 + store i32 %j.0.lcssa.i.i.i, ptr %arrayidx.i.i131.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i: ; preds = %if.then.i.i130.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i137.i.i, %for.end63.i.i.i + br i1 %cmp3.not.i.i93.i.i.i, label %for.end86.i.i.i, label %for.body68.preheader.i.i.i + +for.body68.preheader.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + %wide.trip.count489.i.i.i = zext i32 %378 to i64 + br label %for.body68.i.i.i + +for.body68.i.i.i: ; preds = %for.inc84.i.i.i, %for.body68.preheader.i.i.i + %indvars.iv486.i.i.i = phi i64 [ 0, %for.body68.preheader.i.i.i ], [ %indvars.iv.next487.i.i.i, %for.inc84.i.i.i ] + %j.2481.i.i.i = phi i32 [ 0, %for.body68.preheader.i.i.i ], [ %j.3.i.i.i, %for.inc84.i.i.i ] + %421 = load ptr, ptr %28, align 8 + %arrayidx71.i.i.i = getelementptr inbounds ptr, ptr %add.ptr43.i.i.i, i64 %indvars.iv486.i.i.i + %422 = load ptr, ptr %arrayidx71.i.i.i, align 8 + %call73.i.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %421, ptr noundef %422) + to label %invoke.cont72.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +invoke.cont72.i.i.i: ; preds = %for.body68.i.i.i + br i1 %call73.i.i.i, label %invoke.cont79.i.i.i, label %for.inc84.i.i.i + +invoke.cont79.i.i.i: ; preds = %invoke.cont72.i.i.i + %423 = load ptr, ptr %arrayidx71.i.i.i, align 8 + %424 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %idxprom.i.i138.i.i.i = zext i32 %j.2481.i.i.i to i64 + %arrayidx.i.i139.i.i.i = getelementptr inbounds ptr, ptr %424, i64 %idxprom.i.i138.i.i.i + %425 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %inc78.i.i.i = add i32 %j.2481.i.i.i, 1 + %tobool.not.i.i143.i.i.i = icmp eq ptr %423, null + br i1 %tobool.not.i.i143.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i, label %if.then.i.i144.i.i.i + +if.then.i.i144.i.i.i: ; preds = %invoke.cont79.i.i.i + %m_ref_count.i.i.i145.i.i.i = getelementptr inbounds %class.ast, ptr %423, i64 0, i32 2 + %426 = load i32, ptr %m_ref_count.i.i.i145.i.i.i, align 4 + %inc.i.i.i146.i.i.i = add i32 %426, 1 + store i32 %inc.i.i.i146.i.i.i, ptr %m_ref_count.i.i.i145.i.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i: ; preds = %if.then.i.i144.i.i.i, %invoke.cont79.i.i.i + %427 = load ptr, ptr %arrayidx.i.i139.i.i.i, align 8 + %tobool.not.i2.i148.i.i.i = icmp eq ptr %427, null + br i1 %tobool.not.i2.i148.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i, label %if.then.i3.i149.i.i.i + +if.then.i3.i149.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + %m_ref_count.i.i4.i150.i.i.i = getelementptr inbounds %class.ast, ptr %427, i64 0, i32 2 + %428 = load i32, ptr %m_ref_count.i.i4.i150.i.i.i, align 4 + %dec.i.i.i151.i.i.i = add i32 %428, -1 + store i32 %dec.i.i.i151.i.i.i, ptr %m_ref_count.i.i4.i150.i.i.i, align 4 + %cmp.i.i152.i.i.i = icmp eq i32 %dec.i.i.i151.i.i.i, 0 + br i1 %cmp.i.i152.i.i.i, label %if.then2.i.i153.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i + +if.then2.i.i153.i.i.i: ; preds = %if.then.i3.i149.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %425, ptr noundef nonnull %427) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i: ; preds = %if.then2.i.i153.i.i.i, %if.then.i3.i149.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + store ptr %423, ptr %arrayidx.i.i139.i.i.i, align 8 + br label %for.inc84.i.i.i + +for.inc84.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i, %invoke.cont72.i.i.i + %j.3.i.i.i = phi i32 [ %inc78.i.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i ], [ %j.2481.i.i.i, %invoke.cont72.i.i.i ] + %indvars.iv.next487.i.i.i = add nuw nsw i64 %indvars.iv486.i.i.i, 1 + %exitcond490.not.i.i.i = icmp eq i64 %indvars.iv.next487.i.i.i, %wide.trip.count489.i.i.i + br i1 %exitcond490.not.i.i.i, label %for.end86.i.i.i, label %for.body68.i.i.i, !llvm.loop !55 + +for.end86.i.i.i: ; preds = %for.inc84.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + %j.2.lcssa.i.i.i = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i ], [ %j.3.i.i.i, %for.inc84.i.i.i ] + %429 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i157.i.i.i = icmp eq ptr %429, null + br i1 %cmp.i.i.i157.i.i.i, label %if.end88.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i: ; preds = %for.end86.i.i.i + %arrayidx.i.i.i161.i.i.i = getelementptr inbounds i32, ptr %429, i64 -1 + %430 = load i32, ptr %arrayidx.i.i.i161.i.i.i, align 4 + %431 = zext i32 %430 to i64 + %add.ptr.i.i162.i.i.i = getelementptr inbounds ptr, ptr %429, i64 %431 + %cmp3.i.i163.i.i.i = icmp ugt i32 %430, %j.2.lcssa.i.i.i + br i1 %cmp3.i.i163.i.i.i, label %for.body.i.i166.preheader.i.i.i, label %if.then.i.i164.i.i.i + +for.body.i.i166.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + %idx.ext.i159.i.i.i = zext i32 %j.2.lcssa.i.i.i to i64 + %add.ptr.i160.i.i.i = getelementptr inbounds ptr, ptr %429, i64 %idx.ext.i159.i.i.i + br label %for.body.i.i166.i.i.i + +for.body.i.i166.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i, %for.body.i.i166.preheader.i.i.i + %it.04.i.i167.i.i.i = phi ptr [ %incdec.ptr.i.i174.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i ], [ %add.ptr.i160.i.i.i, %for.body.i.i166.preheader.i.i.i ] + %432 = load ptr, ptr %it.04.i.i167.i.i.i, align 8 + %433 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i168.i.i.i = icmp eq ptr %432, null + br i1 %tobool.not.i.i.i.i.i168.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i, label %if.then.i.i.i.i.i169.i.i.i + +if.then.i.i.i.i.i169.i.i.i: ; preds = %for.body.i.i166.i.i.i + %m_ref_count.i.i.i.i.i.i170.i.i.i = getelementptr inbounds %class.ast, ptr %432, i64 0, i32 2 + %434 = load i32, ptr %m_ref_count.i.i.i.i.i.i170.i.i.i, align 4 + %dec.i.i.i.i.i.i171.i.i.i = add i32 %434, -1 + store i32 %dec.i.i.i.i.i.i171.i.i.i, ptr %m_ref_count.i.i.i.i.i.i170.i.i.i, align 4 + %cmp.i.i.i.i.i172.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i171.i.i.i, 0 + br i1 %cmp.i.i.i.i.i172.i.i.i, label %if.then2.i.i.i.i.i179.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i + +if.then2.i.i.i.i.i179.i.i.i: ; preds = %if.then.i.i.i.i.i169.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %433, ptr noundef nonnull %432) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i: ; preds = %if.then2.i.i.i.i.i179.i.i.i, %if.then.i.i.i.i.i169.i.i.i, %for.body.i.i166.i.i.i + %incdec.ptr.i.i174.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i167.i.i.i, i64 1 + %cmp.i.i175.i.i.i = icmp ult ptr %incdec.ptr.i.i174.i.i.i, %add.ptr.i.i162.i.i.i + br i1 %cmp.i.i175.i.i.i, label %for.body.i.i166.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i + %.pre.i177.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %tobool.not.i.i178.i.i.i = icmp eq ptr %.pre.i177.i.i.i, null + br i1 %tobool.not.i.i178.i.i.i, label %if.end88.i.i.i, label %if.then.i.i164.i.i.i + +if.then.i.i164.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + %435 = phi ptr [ %.pre.i177.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i ], [ %429, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i ] + %arrayidx.i.i165.i.i.i = getelementptr inbounds i32, ptr %435, i64 -1 + store i32 %j.2.lcssa.i.i.i, ptr %arrayidx.i.i165.i.i.i, align 4 + %.pre492.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + br label %if.end88.i.i.i + +if.end88.i.i.i: ; preds = %if.then.i.i164.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, %for.end86.i.i.i + %436 = phi ptr [ %.pre492.i.i.i, %if.then.i.i164.i.i.i ], [ null, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i ], [ null, %for.end86.i.i.i ] + %this.val58.i85.i.i = load ptr, ptr %28, align 8 + %437 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %call93.i.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i85.i.i, ptr noundef nonnull %87, i32 noundef %j.0.lcssa.i.i.i, ptr noundef %437, i32 noundef %j.2.lcssa.i.i.i, ptr noundef %436, ptr noundef %376) + to label %invoke.cont92.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont92.i.i.i: ; preds = %if.end88.i.i.i + %this.val57.i86.i.i = load ptr, ptr %28, align 8 + store ptr %call93.i.i.i, ptr %new_q.i.i.i, align 8 + store ptr %this.val57.i86.i.i, ptr %m_manager.i184.i.i.i, align 8 + %tobool.not.i.i185.i.i.i = icmp eq ptr %call93.i.i.i, null + br i1 %tobool.not.i.i185.i.i.i, label %invoke.cont95.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i: ; preds = %invoke.cont92.i.i.i + %m_ref_count.i.i.i.i.i87.i.i = getelementptr inbounds %class.ast, ptr %call93.i.i.i, i64 0, i32 2 + %438 = load i32, ptr %m_ref_count.i.i.i.i.i87.i.i, align 4 + %inc.i.i.i.i186.i.i.i = add i32 %438, 1 + store i32 %inc.i.i.i.i186.i.i.i, ptr %m_ref_count.i.i.i.i.i87.i.i, align 4 + br label %invoke.cont95.i.i.i + +invoke.cont95.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i, %invoke.cont92.i.i.i + %439 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i.i.i.i = icmp eq ptr %439, null + br i1 %tobool.not.i3.i.i.i.i, label %invoke.cont97.i.i.i, label %if.then.i.i.i.i89.i.i + +if.then.i.i.i.i89.i.i: ; preds = %invoke.cont95.i.i.i + %440 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i188.i.i.i = getelementptr inbounds %class.ast, ptr %439, i64 0, i32 2 + %441 = load i32, ptr %m_ref_count.i.i.i.i188.i.i.i, align 4 + %dec.i.i.i.i.i.i.i = add i32 %441, -1 + store i32 %dec.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i188.i.i.i, align 4 + %cmp.i.i.i189.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i189.i.i.i, label %if.then2.i.i.i.i.i.i, label %invoke.cont97.i.i.i + +if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i89.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %440, ptr noundef nonnull %439) + to label %invoke.cont97.i.i.i unwind label %lpad96.i.i.i + +invoke.cont97.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i89.i.i, %invoke.cont95.i.i.i + store ptr null, ptr %m_pr.i88.i.i, align 8 + %cmp101.not.i.i.i = icmp eq ptr %call93.i.i.i, %87 + br i1 %cmp101.not.i.i.i, label %if.end140.i.i.i, label %if.then102.i.i.i + +if.then102.i.i.i: ; preds = %invoke.cont97.i.i.i + %442 = load i32, ptr %m_spos.i69.i.i, align 4 + %443 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %idxprom.i.i192.i.i.i = zext i32 %442 to i64 + %arrayidx.i.i193.i.i.i = getelementptr inbounds ptr, ptr %443, i64 %idxprom.i.i192.i.i.i + %444 = load ptr, ptr %arrayidx.i.i193.i.i.i, align 8 + %tobool.not.i.i.i.i = icmp eq ptr %444, null + br i1 %tobool.not.i.i.i.i, label %if.else.i127.i.i, label %if.end.i197.i.i.i + +if.end.i197.i.i.i: ; preds = %if.then102.i.i.i + %m_ref_count.i.i.i195.i.i.i = getelementptr inbounds %class.ast, ptr %444, i64 0, i32 2 + %445 = load i32, ptr %m_ref_count.i.i.i195.i.i.i, align 4 + %inc.i.i.i196.i.i.i = add i32 %445, 1 + store i32 %inc.i.i.i196.i.i.i, ptr %m_ref_count.i.i.i195.i.i.i, align 4 + %.pre493.i.i.i = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i198.i.i.i = icmp eq ptr %.pre493.i.i.i, null + br i1 %tobool.not.i3.i198.i.i.i, label %if.then112.i.i.i, label %if.then.i.i.i199.i.i.i + +if.then.i.i.i199.i.i.i: ; preds = %if.end.i197.i.i.i + %446 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i201.i.i.i = getelementptr inbounds %class.ast, ptr %.pre493.i.i.i, i64 0, i32 2 + %447 = load i32, ptr %m_ref_count.i.i.i.i201.i.i.i, align 4 + %dec.i.i.i.i202.i.i.i = add i32 %447, -1 + store i32 %dec.i.i.i.i202.i.i.i, ptr %m_ref_count.i.i.i.i201.i.i.i, align 4 + %cmp.i.i.i203.i.i.i = icmp eq i32 %dec.i.i.i.i202.i.i.i, 0 + br i1 %cmp.i.i.i203.i.i.i, label %if.then2.i.i.i204.i.i.i, label %if.then112.i.i.i + +if.then2.i.i.i204.i.i.i: ; preds = %if.then.i.i.i199.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %446, ptr noundef nonnull %.pre493.i.i.i) + to label %if.then112.i.i.i unwind label %lpad96.i.i.i + +if.then112.i.i.i: ; preds = %if.then2.i.i.i204.i.i.i, %if.then.i.i.i199.i.i.i, %if.end.i197.i.i.i + store ptr %444, ptr %m_pr.i88.i.i, align 8 + %this.val56.i90.i.i = load ptr, ptr %28, align 8 + %call117.i.i.i = invoke noundef ptr @_ZN11ast_manager13mk_bind_proofEP10quantifierP3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i90.i.i, ptr noundef nonnull %87, ptr noundef nonnull %444) + to label %invoke.cont116.i.i.i unwind label %lpad96.i.i.i + +invoke.cont116.i.i.i: ; preds = %if.then112.i.i.i + %tobool.not.i208.i.i.i = icmp eq ptr %call117.i.i.i, null + br i1 %tobool.not.i208.i.i.i, label %if.end.i212.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i: ; preds = %invoke.cont116.i.i.i + %m_ref_count.i.i.i210.i.i.i = getelementptr inbounds %class.ast, ptr %call117.i.i.i, i64 0, i32 2 + %448 = load i32, ptr %m_ref_count.i.i.i210.i.i.i, align 4 + %inc.i.i.i211.i.i.i = add i32 %448, 1 + store i32 %inc.i.i.i211.i.i.i, ptr %m_ref_count.i.i.i210.i.i.i, align 4 + br label %if.end.i212.i.i.i + +if.end.i212.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i, %invoke.cont116.i.i.i + %449 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i213.i.i.i = icmp eq ptr %449, null + br i1 %tobool.not.i3.i213.i.i.i, label %invoke.cont119.i.i.i, label %if.then.i.i.i214.i.i.i + +if.then.i.i.i214.i.i.i: ; preds = %if.end.i212.i.i.i + %450 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i216.i.i.i = getelementptr inbounds %class.ast, ptr %449, i64 0, i32 2 + %451 = load i32, ptr %m_ref_count.i.i.i.i216.i.i.i, align 4 + %dec.i.i.i.i217.i.i.i = add i32 %451, -1 + store i32 %dec.i.i.i.i217.i.i.i, ptr %m_ref_count.i.i.i.i216.i.i.i, align 4 + %cmp.i.i.i218.i.i.i = icmp eq i32 %dec.i.i.i.i217.i.i.i, 0 + br i1 %cmp.i.i.i218.i.i.i, label %if.then2.i.i.i219.i.i.i, label %invoke.cont119.i.i.i + +if.then2.i.i.i219.i.i.i: ; preds = %if.then.i.i.i214.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %450, ptr noundef nonnull %449) + to label %invoke.cont119.i.i.i unwind label %lpad96.i.i.i + +invoke.cont119.i.i.i: ; preds = %if.then2.i.i.i219.i.i.i, %if.then.i.i.i214.i.i.i, %if.end.i212.i.i.i + store ptr %call117.i.i.i, ptr %m_pr.i88.i.i, align 8 + %this.val55.i92.i.i = load ptr, ptr %28, align 8 + %call127.i.i.i = invoke noundef ptr @_ZN11ast_manager14mk_quant_introEP10quantifierS1_P3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i92.i.i, ptr noundef nonnull %87, ptr noundef %call93.i.i.i, ptr noundef %call117.i.i.i) + to label %invoke.cont126.i.i.i unwind label %lpad96.i.i.i + +invoke.cont126.i.i.i: ; preds = %invoke.cont119.i.i.i + %tobool.not.i222.i.i.i = icmp eq ptr %call127.i.i.i, null + br i1 %tobool.not.i222.i.i.i, label %if.end.i226.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i: ; preds = %invoke.cont126.i.i.i + %m_ref_count.i.i.i224.i.i.i = getelementptr inbounds %class.ast, ptr %call127.i.i.i, i64 0, i32 2 + %452 = load i32, ptr %m_ref_count.i.i.i224.i.i.i, align 4 + %inc.i.i.i225.i.i.i = add i32 %452, 1 + store i32 %inc.i.i.i225.i.i.i, ptr %m_ref_count.i.i.i224.i.i.i, align 4 + br label %if.end.i226.i.i.i + +if.end.i226.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i, %invoke.cont126.i.i.i + %453 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i227.i.i.i = icmp eq ptr %453, null + br i1 %tobool.not.i3.i227.i.i.i, label %if.end140thread-pre-split.i.i.i, label %if.then.i.i.i228.i.i.i + +if.then.i.i.i228.i.i.i: ; preds = %if.end.i226.i.i.i + %454 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i230.i.i.i = getelementptr inbounds %class.ast, ptr %453, i64 0, i32 2 + %455 = load i32, ptr %m_ref_count.i.i.i.i230.i.i.i, align 4 + %dec.i.i.i.i231.i.i.i = add i32 %455, -1 + store i32 %dec.i.i.i.i231.i.i.i, ptr %m_ref_count.i.i.i.i230.i.i.i, align 4 + %cmp.i.i.i232.i.i.i = icmp eq i32 %dec.i.i.i.i231.i.i.i, 0 + br i1 %cmp.i.i.i232.i.i.i, label %if.then2.i.i.i233.i.i.i, label %if.end140thread-pre-split.i.i.i + +if.then2.i.i.i233.i.i.i: ; preds = %if.then.i.i.i228.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %454, ptr noundef nonnull %453) + to label %if.end140thread-pre-split.i.i.i unwind label %lpad96.i.i.i + +lpad96.i.i.i: ; preds = %if.then2.i.i.i261.i.i.i, %if.then2.i.i.i247.i.i.i, %if.else.i127.i.i, %if.then2.i.i.i233.i.i.i, %invoke.cont119.i.i.i, %if.then2.i.i.i219.i.i.i, %if.then112.i.i.i, %if.then2.i.i.i204.i.i.i, %if.then2.i.i.i.i.i.i + %456 = landingpad { ptr, i32 } + cleanup + br label %ehcleanup.i.i.i + +if.else.i127.i.i: ; preds = %if.then102.i.i.i + %this.val54.i128.i.i = load ptr, ptr %28, align 8 + %call135.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i128.i.i, ptr noundef nonnull %87, ptr noundef %call93.i.i.i) + to label %invoke.cont134.i.i.i unwind label %lpad96.i.i.i + +invoke.cont134.i.i.i: ; preds = %if.else.i127.i.i + %tobool.not.i236.i.i.i = icmp eq ptr %call135.i.i.i, null + br i1 %tobool.not.i236.i.i.i, label %if.end.i240.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i: ; preds = %invoke.cont134.i.i.i + %m_ref_count.i.i.i238.i.i.i = getelementptr inbounds %class.ast, ptr %call135.i.i.i, i64 0, i32 2 + %457 = load i32, ptr %m_ref_count.i.i.i238.i.i.i, align 4 + %inc.i.i.i239.i.i.i = add i32 %457, 1 + store i32 %inc.i.i.i239.i.i.i, ptr %m_ref_count.i.i.i238.i.i.i, align 4 + br label %if.end.i240.i.i.i + +if.end.i240.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i, %invoke.cont134.i.i.i + %458 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i241.i.i.i = icmp eq ptr %458, null + br i1 %tobool.not.i3.i241.i.i.i, label %if.end140thread-pre-split.i.i.i, label %if.then.i.i.i242.i.i.i + +if.then.i.i.i242.i.i.i: ; preds = %if.end.i240.i.i.i + %459 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i244.i.i.i = getelementptr inbounds %class.ast, ptr %458, i64 0, i32 2 + %460 = load i32, ptr %m_ref_count.i.i.i.i244.i.i.i, align 4 + %dec.i.i.i.i245.i.i.i = add i32 %460, -1 + store i32 %dec.i.i.i.i245.i.i.i, ptr %m_ref_count.i.i.i.i244.i.i.i, align 4 + %cmp.i.i.i246.i.i.i = icmp eq i32 %dec.i.i.i.i245.i.i.i, 0 + br i1 %cmp.i.i.i246.i.i.i, label %if.then2.i.i.i247.i.i.i, label %if.end140thread-pre-split.i.i.i + +if.then2.i.i.i247.i.i.i: ; preds = %if.then.i.i.i242.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %459, ptr noundef nonnull %458) + to label %if.end140thread-pre-split.i.i.i unwind label %lpad96.i.i.i + +if.end140thread-pre-split.i.i.i: ; preds = %if.then2.i.i.i247.i.i.i, %if.then.i.i.i242.i.i.i, %if.end.i240.i.i.i, %if.then2.i.i.i233.i.i.i, %if.then.i.i.i228.i.i.i, %if.end.i226.i.i.i + %storemerge.i.i.i = phi ptr [ %call127.i.i.i, %if.then2.i.i.i233.i.i.i ], [ %call127.i.i.i, %if.end.i226.i.i.i ], [ %call127.i.i.i, %if.then.i.i.i228.i.i.i ], [ %call135.i.i.i, %if.then2.i.i.i247.i.i.i ], [ %call135.i.i.i, %if.end.i240.i.i.i ], [ %call135.i.i.i, %if.then.i.i.i242.i.i.i ] + store ptr %storemerge.i.i.i, ptr %m_pr.i88.i.i, align 8 + br label %if.end140.i.i.i + +if.end140.i.i.i: ; preds = %if.end140thread-pre-split.i.i.i, %invoke.cont97.i.i.i + %461 = phi ptr [ %call93.i.i.i, %if.end140thread-pre-split.i.i.i ], [ %87, %invoke.cont97.i.i.i ] + %tobool.not.i250.i.i.i = icmp eq ptr %461, null + br i1 %tobool.not.i250.i.i.i, label %if.end.i254.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i: ; preds = %if.end140.i.i.i + %m_ref_count.i.i.i252.i.i.i = getelementptr inbounds %class.ast, ptr %461, i64 0, i32 2 + %462 = load i32, ptr %m_ref_count.i.i.i252.i.i.i, align 4 + %inc.i.i.i253.i.i.i = add i32 %462, 1 + store i32 %inc.i.i.i253.i.i.i, ptr %m_ref_count.i.i.i252.i.i.i, align 4 + br label %if.end.i254.i.i.i + +if.end.i254.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i, %if.end140.i.i.i + %463 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i3.i255.i.i.i = icmp eq ptr %463, null + br i1 %tobool.not.i3.i255.i.i.i, label %if.end165.i.i.i, label %if.then.i.i.i256.i.i.i + +if.then.i.i.i256.i.i.i: ; preds = %if.end.i254.i.i.i + %464 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i258.i.i.i = getelementptr inbounds %class.ast, ptr %463, i64 0, i32 2 + %465 = load i32, ptr %m_ref_count.i.i.i.i258.i.i.i, align 4 + %dec.i.i.i.i259.i.i.i = add i32 %465, -1 + store i32 %dec.i.i.i.i259.i.i.i, ptr %m_ref_count.i.i.i.i258.i.i.i, align 4 + %cmp.i.i.i260.i.i.i = icmp eq i32 %dec.i.i.i.i259.i.i.i, 0 + br i1 %cmp.i.i.i260.i.i.i, label %if.then2.i.i.i261.i.i.i, label %if.end165.i.i.i + +if.then2.i.i.i261.i.i.i: ; preds = %if.then.i.i.i256.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %464, ptr noundef nonnull %463) + to label %if.end165.i.i.i unwind label %lpad96.i.i.i + +lpad147.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i301.i.i.i + %lpad.loopexit460.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad147.i.i.i -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - %518 = add i32 %517, -1 - %519 = zext i32 %518 to i64 - %m_new_child.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i76.i, i64 %519, i32 1 - %bf.load.i.i585 = load i32, ptr %m_new_child.i.i, align 8 - %bf.set.i.i586 = or i32 %bf.load.i.i585, 2 - store i32 %bf.set.i.i586, ptr %m_new_child.i.i, align 8 - br label %invoke.cont209.i.i - -invoke.cont209.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %invoke.cont203.i.i - %520 = load ptr, ptr %m_nodes.i.i917, align 8 - %cmp.i.i.i559 = icmp eq ptr %520, null - br i1 %cmp.i.i.i559, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit582, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i560 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i560: ; preds = %invoke.cont209.i.i - %arrayidx.i.i.i561 = getelementptr inbounds i32, ptr %520, i64 -1 - %521 = load i32, ptr %arrayidx.i.i.i561, align 4 - %522 = zext i32 %521 to i64 - %add.ptr.i.i562 = getelementptr inbounds ptr, ptr %520, i64 %522 - %cmp3.i.not.i.i563 = icmp eq i32 %521, 0 - br i1 %cmp3.i.not.i.i563, label %if.then.i.i.i.i.i577, label %for.body.i.i.i564 - -for.body.i.i.i564: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i560, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i571 - %it.04.i.i.i565 = phi ptr [ %incdec.ptr.i.i.i572, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i571 ], [ %520, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i560 ] - %523 = load ptr, ptr %it.04.i.i.i565, align 8 - %524 = load ptr, ptr %new_no_pats.i.i, align 8 - %tobool.not.i.i.i.i.i.i566 = icmp eq ptr %523, null - br i1 %tobool.not.i.i.i.i.i.i566, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i571, label %if.then.i.i.i.i.i.i567 - -if.then.i.i.i.i.i.i567: ; preds = %for.body.i.i.i564 - %m_ref_count.i.i.i.i.i.i.i568 = getelementptr inbounds %class.ast, ptr %523, i64 0, i32 2 - %525 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i568, align 4 - %dec.i.i.i.i.i.i.i569 = add i32 %525, -1 - store i32 %dec.i.i.i.i.i.i.i569, ptr %m_ref_count.i.i.i.i.i.i.i568, align 4 - %cmp.i.i.i.i.i.i570 = icmp eq i32 %dec.i.i.i.i.i.i.i569, 0 - br i1 %cmp.i.i.i.i.i.i570, label %if.then2.i.i.i.i.i.i580, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i571 - -if.then2.i.i.i.i.i.i580: ; preds = %if.then.i.i.i.i.i.i567 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %524, ptr noundef nonnull %523) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i571 unwind label %terminate.lpad.i.i581 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i571: ; preds = %if.then2.i.i.i.i.i.i580, %if.then.i.i.i.i.i.i567, %for.body.i.i.i564 - %incdec.ptr.i.i.i572 = getelementptr inbounds ptr, ptr %it.04.i.i.i565, i64 1 - %cmp.i1.i.i573 = icmp ult ptr %incdec.ptr.i.i.i572, %add.ptr.i.i562 - br i1 %cmp.i1.i.i573, label %for.body.i.i.i564, label %invoke.cont.i.i574, !llvm.loop !9 - -invoke.cont.i.i574: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i571 - %.pre.i.i575 = load ptr, ptr %m_nodes.i.i917, align 8 - %tobool.not.i.i.i.i.i576 = icmp eq ptr %.pre.i.i575, null - br i1 %tobool.not.i.i.i.i.i576, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit582, label %if.then.i.i.i.i.i577 - -if.then.i.i.i.i.i577: ; preds = %invoke.cont.i.i574, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i560 - %526 = phi ptr [ %.pre.i.i575, %invoke.cont.i.i574 ], [ %520, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i560 ] - %add.ptr.i.i.i.i.i.i578 = getelementptr inbounds i32, ptr %526, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i578) - to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit582 unwind label %terminate.lpad.i.i.i.i579 - -terminate.lpad.i.i.i.i579: ; preds = %if.then.i.i.i.i.i577 - %527 = landingpad { ptr, i32 } +lpad147.loopexit.split-lp.i.i.i: ; preds = %if.then.i.i310.i.i.i + %lpad.loopexit.split-lp461.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad147.i.i.i + +lpad147.i.i.i: ; preds = %lpad147.loopexit.split-lp.i.i.i, %lpad147.loopexit.i.i.i + %lpad.phi462.i.i.i = phi { ptr, i32 } [ %lpad.loopexit460.i.i.i, %lpad147.loopexit.i.i.i ], [ %lpad.loopexit.split-lp461.i.i.i, %lpad147.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2.i.i.i) #14 + br label %ehcleanup.i.i.i + +if.end165.i.i.i: ; preds = %if.then2.i.i.i261.i.i.i, %if.then.i.i.i256.i.i.i, %if.end.i254.i.i.i + store ptr %461, ptr %m_r.i93.i.i, align 8 + %this.val53.i94.i.i = load ptr, ptr %28, align 8 + store ptr null, ptr %pr2.i.i.i, align 8 + store ptr %this.val53.i94.i.i, ptr %m_manager.i263.i.i.i, align 8 + %466 = load i32, ptr %m_spos.i69.i.i, align 4 + %467 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i282.i95.i.i = icmp eq ptr %467, null + br i1 %cmp.i.i.i282.i95.i.i, label %invoke.cont168.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i96.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i.i96.i.i: ; preds = %if.end165.i.i.i + %arrayidx.i.i.i285.i.i.i = getelementptr inbounds i32, ptr %467, i64 -1 + %468 = load i32, ptr %arrayidx.i.i.i285.i.i.i, align 4 + %469 = zext i32 %468 to i64 + %add.ptr.i.i286.i.i.i = getelementptr inbounds ptr, ptr %467, i64 %469 + %cmp3.i.i287.i.i.i = icmp ugt i32 %468, %466 + br i1 %cmp3.i.i287.i.i.i, label %for.body.i.i290.preheader.i.i.i, label %if.then.i.i288.i.i.i + +for.body.i.i290.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i96.i.i + %idx.ext.i283.i.i.i = zext i32 %466 to i64 + %add.ptr.i284.i.i.i = getelementptr inbounds ptr, ptr %467, i64 %idx.ext.i283.i.i.i + br label %for.body.i.i290.i.i.i + +for.body.i.i290.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i125.i.i, %for.body.i.i290.preheader.i.i.i + %it.04.i.i291.i.i.i = phi ptr [ %incdec.ptr.i.i297.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i125.i.i ], [ %add.ptr.i284.i.i.i, %for.body.i.i290.preheader.i.i.i ] + %470 = load ptr, ptr %it.04.i.i291.i.i.i, align 8 + %471 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i292.i.i.i = icmp eq ptr %470, null + br i1 %tobool.not.i.i.i.i.i292.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i125.i.i, label %if.then.i.i.i.i.i293.i.i.i + +if.then.i.i.i.i.i293.i.i.i: ; preds = %for.body.i.i290.i.i.i + %m_ref_count.i.i.i.i.i.i294.i.i.i = getelementptr inbounds %class.ast, ptr %470, i64 0, i32 2 + %472 = load i32, ptr %m_ref_count.i.i.i.i.i.i294.i.i.i, align 4 + %dec.i.i.i.i.i.i295.i.i.i = add i32 %472, -1 + store i32 %dec.i.i.i.i.i.i295.i.i.i, ptr %m_ref_count.i.i.i.i.i.i294.i.i.i, align 4 + %cmp.i.i.i.i.i296.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i295.i.i.i, 0 + br i1 %cmp.i.i.i.i.i296.i.i.i, label %if.then2.i.i.i.i.i301.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i125.i.i + +if.then2.i.i.i.i.i301.i.i.i: ; preds = %if.then.i.i.i.i.i293.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %471, ptr noundef nonnull %470) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i125.i.i unwind label %lpad147.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i125.i.i: ; preds = %if.then2.i.i.i.i.i301.i.i.i, %if.then.i.i.i.i.i293.i.i.i, %for.body.i.i290.i.i.i + %incdec.ptr.i.i297.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i291.i.i.i, i64 1 + %cmp.i.i298.i.i.i = icmp ult ptr %incdec.ptr.i.i297.i.i.i, %add.ptr.i.i286.i.i.i + br i1 %cmp.i.i298.i.i.i, label %for.body.i.i290.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i126.i.i, !llvm.loop !31 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i126.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i125.i.i + %.pre.i299.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i300.i.i.i = icmp eq ptr %.pre.i299.i.i.i, null + br i1 %tobool.not.i.i300.i.i.i, label %invoke.cont168.i.i.i, label %if.then.i.i288.i.i.i + +if.then.i.i288.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i126.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i96.i.i + %473 = phi ptr [ %.pre.i299.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i126.i.i ], [ %467, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i96.i.i ] + %arrayidx.i.i289.i.i.i = getelementptr inbounds i32, ptr %473, i64 -1 + store i32 %466, ptr %arrayidx.i.i289.i.i.i, align 4 + br label %invoke.cont168.i.i.i + +invoke.cont168.i.i.i: ; preds = %if.then.i.i288.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i126.i.i, %if.end165.i.i.i + %474 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i.i.i.i.i97.i.i = icmp eq ptr %474, null + br i1 %tobool.not.i.i.i.i.i97.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i100.i.i, label %if.then.i.i.i.i304.i.i.i + +if.then.i.i.i.i304.i.i.i: ; preds = %invoke.cont168.i.i.i + %m_ref_count.i.i.i.i.i.i98.i.i = getelementptr inbounds %class.ast, ptr %474, i64 0, i32 2 + %475 = load i32, ptr %m_ref_count.i.i.i.i.i.i98.i.i, align 4 + %inc.i.i.i.i.i.i99.i.i = add i32 %475, 1 + store i32 %inc.i.i.i.i.i.i99.i.i, ptr %m_ref_count.i.i.i.i.i.i98.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i100.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i100.i.i: ; preds = %if.then.i.i.i.i304.i.i.i, %invoke.cont168.i.i.i + %476 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i306.i.i.i = icmp eq ptr %476, null + br i1 %cmp.i.i306.i.i.i, label %if.then.i.i310.i.i.i, label %lor.lhs.false.i.i.i101.i.i + +lor.lhs.false.i.i.i101.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i100.i.i + %arrayidx.i.i307.i.i.i = getelementptr inbounds i32, ptr %476, i64 -1 + %477 = load i32, ptr %arrayidx.i.i307.i.i.i, align 4 + %arrayidx4.i.i.i102.i.i = getelementptr inbounds i32, ptr %476, i64 -2 + %478 = load i32, ptr %arrayidx4.i.i.i102.i.i, align 4 + %cmp5.i.i.i103.i.i = icmp eq i32 %477, %478 + br i1 %cmp5.i.i.i103.i.i, label %if.then.i.i310.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + +if.then.i.i310.i.i.i: ; preds = %lor.lhs.false.i.i.i101.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i100.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc311.i.i.i unwind label %lpad147.loopexit.split-lp.i.i.i + +.noexc311.i.i.i: ; preds = %if.then.i.i310.i.i.i + %.pre.i.i.i122.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i123.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i122.i.i, i64 -1 + %.pre1.i.i.i124.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i123.i.i, align 4 + br label %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + +_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i: ; preds = %.noexc311.i.i.i, %lor.lhs.false.i.i.i101.i.i + %479 = phi i32 [ %.pre1.i.i.i124.i.i, %.noexc311.i.i.i ], [ %477, %lor.lhs.false.i.i.i101.i.i ] + %480 = phi ptr [ %.pre.i.i.i122.i.i, %.noexc311.i.i.i ], [ %476, %lor.lhs.false.i.i.i101.i.i ] + %idx.ext.i.i308.i.i.i = zext i32 %479 to i64 + %add.ptr.i.i309.i.i.i = getelementptr inbounds ptr, ptr %480, i64 %idx.ext.i.i308.i.i.i + store ptr %474, ptr %add.ptr.i.i309.i.i.i, align 8 + %481 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i.i104.i.i = getelementptr inbounds i32, ptr %481, i64 -1 + %482 = load i32, ptr %arrayidx10.i.i.i104.i.i, align 4 + %inc.i.i.i105.i.i = add i32 %482, 1 + store i32 %inc.i.i.i105.i.i, ptr %arrayidx10.i.i.i104.i.i, align 4 + br i1 %tobool.not.i.i185.i.i.i, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i, label %if.then.i.i.i320.i.i.i + +if.then.i.i.i320.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + %m_ref_count.i.i.i.i322.i.i.i = getelementptr inbounds %class.ast, ptr %call93.i.i.i, i64 0, i32 2 + %483 = load i32, ptr %m_ref_count.i.i.i.i322.i.i.i, align 4 + %dec.i.i.i.i323.i.i.i = add i32 %483, -1 + store i32 %dec.i.i.i.i323.i.i.i, ptr %m_ref_count.i.i.i.i322.i.i.i, align 4 + %cmp.i.i.i324.i.i.i = icmp eq i32 %dec.i.i.i.i323.i.i.i, 0 + br i1 %cmp.i.i.i324.i.i.i, label %if.then2.i.i.i325.i.i.i, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + +if.then2.i.i.i325.i.i.i: ; preds = %if.then.i.i.i320.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val57.i86.i.i, ptr noundef nonnull %call93.i.i.i) + to label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i unwind label %terminate.lpad.i326.i.i.i + +terminate.lpad.i326.i.i.i: ; preds = %if.then2.i.i.i325.i.i.i + %484 = landingpad { ptr, i32 } catch ptr null - %528 = extractvalue { ptr, i32 } %527, 0 - call void @__clang_call_terminate(ptr %528) #15 + %485 = extractvalue { ptr, i32 } %484, 0 + tail call void @__clang_call_terminate(ptr %485) #15 unreachable -terminate.lpad.i.i581: ; preds = %if.then2.i.i.i.i.i.i580 - %529 = landingpad { ptr, i32 } +_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i: ; preds = %if.then2.i.i.i325.i.i.i, %if.then.i.i.i320.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + %486 = load i32, ptr %m_spos.i69.i.i, align 4 + %487 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i329.i.i.i = icmp eq ptr %487, null + br i1 %cmp.i.i.i329.i.i.i, label %invoke.cont176.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i: ; preds = %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + %arrayidx.i.i.i333.i.i.i = getelementptr inbounds i32, ptr %487, i64 -1 + %488 = load i32, ptr %arrayidx.i.i.i333.i.i.i, align 4 + %489 = zext i32 %488 to i64 + %add.ptr.i.i334.i.i.i = getelementptr inbounds ptr, ptr %487, i64 %489 + %cmp3.i.i335.i.i.i = icmp ugt i32 %488, %486 + br i1 %cmp3.i.i335.i.i.i, label %for.body.i.i338.preheader.i.i.i, label %if.then.i.i336.i.i.i + +for.body.i.i338.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + %idx.ext.i331.i.i.i = zext i32 %486 to i64 + %add.ptr.i332.i.i.i = getelementptr inbounds ptr, ptr %487, i64 %idx.ext.i331.i.i.i + br label %for.body.i.i338.i.i.i + +for.body.i.i338.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i, %for.body.i.i338.preheader.i.i.i + %it.04.i.i339.i.i.i = phi ptr [ %incdec.ptr.i.i346.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i ], [ %add.ptr.i332.i.i.i, %for.body.i.i338.preheader.i.i.i ] + %490 = load ptr, ptr %it.04.i.i339.i.i.i, align 8 + %491 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i340.i.i.i = icmp eq ptr %490, null + br i1 %tobool.not.i.i.i.i.i340.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i, label %if.then.i.i.i.i.i341.i.i.i + +if.then.i.i.i.i.i341.i.i.i: ; preds = %for.body.i.i338.i.i.i + %m_ref_count.i.i.i.i.i.i342.i.i.i = getelementptr inbounds %class.ast, ptr %490, i64 0, i32 2 + %492 = load i32, ptr %m_ref_count.i.i.i.i.i.i342.i.i.i, align 4 + %dec.i.i.i.i.i.i343.i.i.i = add i32 %492, -1 + store i32 %dec.i.i.i.i.i.i343.i.i.i, ptr %m_ref_count.i.i.i.i.i.i342.i.i.i, align 4 + %cmp.i.i.i.i.i344.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i343.i.i.i, 0 + br i1 %cmp.i.i.i.i.i344.i.i.i, label %if.then2.i.i.i.i.i351.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i + +if.then2.i.i.i.i.i351.i.i.i: ; preds = %if.then.i.i.i.i.i341.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %491, ptr noundef nonnull %490) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i unwind label %lpad37.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i: ; preds = %if.then2.i.i.i.i.i351.i.i.i, %if.then.i.i.i.i.i341.i.i.i, %for.body.i.i338.i.i.i + %incdec.ptr.i.i346.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i339.i.i.i, i64 1 + %cmp.i.i347.i.i.i = icmp ult ptr %incdec.ptr.i.i346.i.i.i, %add.ptr.i.i334.i.i.i + br i1 %cmp.i.i347.i.i.i, label %for.body.i.i338.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i + %.pre.i349.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i350.i.i.i = icmp eq ptr %.pre.i349.i.i.i, null + br i1 %tobool.not.i.i350.i.i.i, label %invoke.cont176.i.i.i, label %if.then.i.i336.i.i.i + +if.then.i.i336.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + %493 = phi ptr [ %.pre.i349.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i ], [ %487, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i ] + %arrayidx.i.i337.i.i.i = getelementptr inbounds i32, ptr %493, i64 -1 + store i32 %486, ptr %arrayidx.i.i337.i.i.i, align 4 + br label %invoke.cont176.i.i.i + +invoke.cont176.i.i.i: ; preds = %if.then.i.i336.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + %494 = load ptr, ptr %m_r.i93.i.i, align 8 + %tobool.not.i.i.i.i355.i.i.i = icmp eq ptr %494, null + br i1 %tobool.not.i.i.i.i355.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i106.i.i, label %if.then.i.i.i.i356.i.i.i + +if.then.i.i.i.i356.i.i.i: ; preds = %invoke.cont176.i.i.i + %m_ref_count.i.i.i.i.i357.i.i.i = getelementptr inbounds %class.ast, ptr %494, i64 0, i32 2 + %495 = load i32, ptr %m_ref_count.i.i.i.i.i357.i.i.i, align 4 + %inc.i.i.i.i.i358.i.i.i = add i32 %495, 1 + store i32 %inc.i.i.i.i.i358.i.i.i, ptr %m_ref_count.i.i.i.i.i357.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i106.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i106.i.i: ; preds = %if.then.i.i.i.i356.i.i.i, %invoke.cont176.i.i.i + %496 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i360.i.i.i = icmp eq ptr %496, null + br i1 %cmp.i.i360.i.i.i, label %if.then.i.i369.i.i.i, label %lor.lhs.false.i.i361.i.i.i + +lor.lhs.false.i.i361.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i106.i.i + %arrayidx.i.i362.i.i.i = getelementptr inbounds i32, ptr %496, i64 -1 + %497 = load i32, ptr %arrayidx.i.i362.i.i.i, align 4 + %arrayidx4.i.i363.i.i.i = getelementptr inbounds i32, ptr %496, i64 -2 + %498 = load i32, ptr %arrayidx4.i.i363.i.i.i, align 4 + %cmp5.i.i364.i.i.i = icmp eq i32 %497, %498 + br i1 %cmp5.i.i364.i.i.i, label %if.then.i.i369.i.i.i, label %invoke.cont180.i.i.i + +if.then.i.i369.i.i.i: ; preds = %lor.lhs.false.i.i361.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i106.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc373.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc373.i.i.i: ; preds = %if.then.i.i369.i.i.i + %.pre.i.i370.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i371.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i370.i.i.i, i64 -1 + %.pre1.i.i372.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i371.i.i.i, align 4 + br label %invoke.cont180.i.i.i + +invoke.cont180.i.i.i: ; preds = %.noexc373.i.i.i, %lor.lhs.false.i.i361.i.i.i + %499 = phi i32 [ %.pre1.i.i372.i.i.i, %.noexc373.i.i.i ], [ %497, %lor.lhs.false.i.i361.i.i.i ] + %500 = phi ptr [ %.pre.i.i370.i.i.i, %.noexc373.i.i.i ], [ %496, %lor.lhs.false.i.i361.i.i.i ] + %idx.ext.i.i365.i.i.i = zext i32 %499 to i64 + %add.ptr.i.i366.i.i.i = getelementptr inbounds ptr, ptr %500, i64 %idx.ext.i.i365.i.i.i + store ptr %494, ptr %add.ptr.i.i366.i.i.i, align 8 + %501 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i367.i.i.i = getelementptr inbounds i32, ptr %501, i64 -1 + %502 = load i32, ptr %arrayidx10.i.i367.i.i.i, align 4 + %inc.i.i368.i.i.i = add i32 %502, 1 + store i32 %inc.i.i368.i.i.i, ptr %arrayidx10.i.i367.i.i.i, align 4 + %503 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i374.i.i.i = icmp eq ptr %503, null + br i1 %cmp.i374.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i, label %if.then.i380.i.i.i + +if.then.i380.i.i.i: ; preds = %invoke.cont180.i.i.i + %arrayidx.i376.i.i.i = getelementptr inbounds i32, ptr %503, i64 -1 + %504 = load i32, ptr %arrayidx.i376.i.i.i, align 4 + %sub.i107.i.i = sub i32 %504, %346 + store i32 %sub.i107.i.i, ptr %arrayidx.i376.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i: ; preds = %if.then.i380.i.i.i, %invoke.cont180.i.i.i + %505 = load ptr, ptr %m_shifts.i.i.i, align 8 + %cmp.i383.i.i.i = icmp eq ptr %505, null + br i1 %cmp.i383.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i, label %if.then.i388.i.i.i + +if.then.i388.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i + %arrayidx.i385.i.i.i = getelementptr inbounds i32, ptr %505, i64 -1 + %506 = load i32, ptr %arrayidx.i385.i.i.i, align 4 + %sub188.i.i.i = sub i32 %506, %346 + store i32 %sub188.i.i.i, ptr %arrayidx.i385.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i: ; preds = %if.then.i388.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i + invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + to label %invoke.cont190.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont190.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i + %507 = load ptr, ptr %m_r.i93.i.i, align 8 + %bf.load196.i.i.i = load i32, ptr %89, align 8 + %bf.clear197.i.i.i = and i32 %bf.load196.i.i.i, 1 + %tobool.not.i108.i.i = icmp eq i32 %bf.clear197.i.i.i, 0 + br i1 %tobool.not.i108.i.i, label %invoke.cont198.i.i.i, label %if.then.i392.i.i.i + +if.then.i392.i.i.i: ; preds = %invoke.cont190.i.i.i + %508 = load ptr, ptr %m_pr.i88.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %507, ptr noundef %508) + to label %invoke.cont198thread-pre-split.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont198thread-pre-split.i.i.i: ; preds = %if.then.i392.i.i.i + %.pr459.i.i.i = load ptr, ptr %m_r.i93.i.i, align 8 + br label %invoke.cont198.i.i.i + +invoke.cont198.i.i.i: ; preds = %invoke.cont198thread-pre-split.i.i.i, %invoke.cont190.i.i.i + %509 = phi ptr [ %.pr459.i.i.i, %invoke.cont198thread-pre-split.i.i.i ], [ %507, %invoke.cont190.i.i.i ] + %tobool.not.i3.i395.i.i.i = icmp eq ptr %509, null + br i1 %tobool.not.i3.i395.i.i.i, label %invoke.cont200.i.i.i, label %if.then.i.i.i396.i.i.i + +if.then.i.i.i396.i.i.i: ; preds = %invoke.cont198.i.i.i + %510 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i398.i.i.i = getelementptr inbounds %class.ast, ptr %509, i64 0, i32 2 + %511 = load i32, ptr %m_ref_count.i.i.i.i398.i.i.i, align 4 + %dec.i.i.i.i399.i.i.i = add i32 %511, -1 + store i32 %dec.i.i.i.i399.i.i.i, ptr %m_ref_count.i.i.i.i398.i.i.i, align 4 + %cmp.i.i.i400.i.i.i = icmp eq i32 %dec.i.i.i.i399.i.i.i, 0 + br i1 %cmp.i.i.i400.i.i.i, label %if.then2.i.i.i401.i.i.i, label %invoke.cont200.i.i.i + +if.then2.i.i.i401.i.i.i: ; preds = %if.then.i.i.i396.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %510, ptr noundef nonnull %509) + to label %invoke.cont200.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont200.i.i.i: ; preds = %if.then2.i.i.i401.i.i.i, %if.then.i.i.i396.i.i.i, %invoke.cont198.i.i.i + store ptr null, ptr %m_r.i93.i.i, align 8 + %512 = load ptr, ptr %m_pr.i88.i.i, align 8 + %tobool.not.i3.i405.i.i.i = icmp eq ptr %512, null + br i1 %tobool.not.i3.i405.i.i.i, label %invoke.cont203.i.i.i, label %if.then.i.i.i406.i.i.i + +if.then.i.i.i406.i.i.i: ; preds = %invoke.cont200.i.i.i + %513 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i408.i.i.i = getelementptr inbounds %class.ast, ptr %512, i64 0, i32 2 + %514 = load i32, ptr %m_ref_count.i.i.i.i408.i.i.i, align 4 + %dec.i.i.i.i409.i.i.i = add i32 %514, -1 + store i32 %dec.i.i.i.i409.i.i.i, ptr %m_ref_count.i.i.i.i408.i.i.i, align 4 + %cmp.i.i.i410.i.i.i = icmp eq i32 %dec.i.i.i.i409.i.i.i, 0 + br i1 %cmp.i.i.i410.i.i.i, label %if.then2.i.i.i411.i.i.i, label %invoke.cont203.i.i.i + +if.then2.i.i.i411.i.i.i: ; preds = %if.then.i.i.i406.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %513, ptr noundef nonnull %512) + to label %invoke.cont203.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont203.i.i.i: ; preds = %if.then2.i.i.i411.i.i.i, %if.then.i.i.i406.i.i.i, %invoke.cont200.i.i.i + store ptr null, ptr %m_pr.i88.i.i, align 8 + %515 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i414.i.i.i = getelementptr inbounds i32, ptr %515, i64 -1 + %516 = load i32, ptr %arrayidx.i414.i.i.i, align 4 + %dec.i.i110.i.i = add i32 %516, -1 + store i32 %dec.i.i110.i.i, ptr %arrayidx.i414.i.i.i, align 4 + %517 = load ptr, ptr %m_r.i93.i.i, align 8 + %this.val59.i111.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i112.i.i = icmp eq ptr %517, %87 + %cmp.i.i.i415.i113.i.i = icmp eq ptr %this.val59.i111.i.i, null + %or.cond.i.i114.i.i = select i1 %cmp.not.i.i112.i.i, i1 true, i1 %cmp.i.i.i415.i113.i.i + br i1 %or.cond.i.i114.i.i, label %invoke.cont209.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i115.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i115.i.i: ; preds = %invoke.cont203.i.i.i + %arrayidx.i.i.i416.i116.i.i = getelementptr inbounds i32, ptr %this.val59.i111.i.i, i64 -1 + %518 = load i32, ptr %arrayidx.i.i.i416.i116.i.i, align 4 + %cmp3.i.i.i.i117.i.i = icmp eq i32 %518, 0 + br i1 %cmp3.i.i.i.i117.i.i, label %invoke.cont209.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i118.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i118.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i115.i.i + %519 = add i32 %518, -1 + %520 = zext i32 %519 to i64 + %m_new_child.i.i.i119.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i111.i.i, i64 %520, i32 1 + %bf.load.i.i.i.i.i = load i32, ptr %m_new_child.i.i.i119.i.i, align 8 + %bf.set.i.i.i120.i.i = or i32 %bf.load.i.i.i.i.i, 2 + store i32 %bf.set.i.i.i120.i.i, ptr %m_new_child.i.i.i119.i.i, align 8 + br label %invoke.cont209.i.i.i + +invoke.cont209.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i118.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i115.i.i, %invoke.cont203.i.i.i + %521 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i419.i.i.i = icmp eq ptr %521, null + br i1 %cmp.i.i.i419.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i: ; preds = %invoke.cont209.i.i.i + %arrayidx.i.i.i420.i.i.i = getelementptr inbounds i32, ptr %521, i64 -1 + %522 = load i32, ptr %arrayidx.i.i.i420.i.i.i, align 4 + %523 = zext i32 %522 to i64 + %add.ptr.i.i421.i.i.i = getelementptr inbounds ptr, ptr %521, i64 %523 + %cmp3.i.not.i.i.i.i.i = icmp eq i32 %522, 0 + br i1 %cmp3.i.not.i.i.i.i.i, label %if.then.i.i.i.i.i427.i.i.i, label %for.body.i.i.i.i.i.i + +for.body.i.i.i.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + %it.04.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i ], [ %521, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i ] + %524 = load ptr, ptr %it.04.i.i.i.i.i.i, align 8 + %525 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i422.i.i.i = icmp eq ptr %524, null + br i1 %tobool.not.i.i.i.i.i.i422.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i423.i.i.i + +if.then.i.i.i.i.i.i423.i.i.i: ; preds = %for.body.i.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i424.i.i.i = getelementptr inbounds %class.ast, ptr %524, i64 0, i32 2 + %526 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i424.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i.i = add i32 %526, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i424.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i423.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %525, ptr noundef nonnull %524) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i unwind label %terminate.lpad.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i423.i.i.i, %for.body.i.i.i.i.i.i + %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i.i, i64 1 + %cmp.i1.i.i.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i.i, %add.ptr.i.i421.i.i.i + br i1 %cmp.i1.i.i.i.i.i, label %for.body.i.i.i.i.i.i, label %invoke.cont.i.i.i.i.i, !llvm.loop !9 + +invoke.cont.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + %.pre.i.i425.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %tobool.not.i.i.i.i.i426.i.i.i = icmp eq ptr %.pre.i.i425.i.i.i, null + br i1 %tobool.not.i.i.i.i.i426.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i, label %if.then.i.i.i.i.i427.i.i.i + +if.then.i.i.i.i.i427.i.i.i: ; preds = %invoke.cont.i.i.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i + %527 = phi ptr [ %.pre.i.i425.i.i.i, %invoke.cont.i.i.i.i.i ], [ %521, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i ] + %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %527, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i.i.i.i) + to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i unwind label %terminate.lpad.i.i.i.i.i.i.i + +terminate.lpad.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i427.i.i.i + %528 = landingpad { ptr, i32 } catch ptr null - %530 = extractvalue { ptr, i32 } %529, 0 - call void @__clang_call_terminate(ptr %530) #15 + %529 = extractvalue { ptr, i32 } %528, 0 + tail call void @__clang_call_terminate(ptr %529) #15 unreachable -_ZN10ref_vectorI4expr11ast_managerED2Ev.exit582: ; preds = %invoke.cont209.i.i, %invoke.cont.i.i574, %if.then.i.i.i.i.i577 - %531 = load ptr, ptr %m_nodes.i.i932, align 8 - %cmp.i.i.i551 = icmp eq ptr %531, null - br i1 %cmp.i.i.i551, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit582 - %arrayidx.i.i.i552 = getelementptr inbounds i32, ptr %531, i64 -1 - %532 = load i32, ptr %arrayidx.i.i.i552, align 4 - %533 = zext i32 %532 to i64 - %add.ptr.i.i553 = getelementptr inbounds ptr, ptr %531, i64 %533 - %cmp3.i.not.i.i = icmp eq i32 %532, 0 - br i1 %cmp3.i.not.i.i, label %if.then.i.i.i.i.i557, label %for.body.i.i.i - -for.body.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %it.04.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i ], [ %531, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %534 = load ptr, ptr %it.04.i.i.i, align 8 - %535 = load ptr, ptr %new_pats.i.i, align 8 - %tobool.not.i.i.i.i.i.i = icmp eq ptr %534, null - br i1 %tobool.not.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %for.body.i.i.i - %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %534, i64 0, i32 2 - %536 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 - %dec.i.i.i.i.i.i.i = add i32 %536, -1 - store i32 %dec.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 - %cmp.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - -if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %535, ptr noundef nonnull %534) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i unwind label %terminate.lpad.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %for.body.i.i.i - %incdec.ptr.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i, i64 1 - %cmp.i1.i.i = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i553 - br i1 %cmp.i1.i.i, label %for.body.i.i.i, label %invoke.cont.i.i554, !llvm.loop !9 - -invoke.cont.i.i554: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %.pre.i.i555 = load ptr, ptr %m_nodes.i.i932, align 8 - %tobool.not.i.i.i.i.i556 = icmp eq ptr %.pre.i.i555, null - br i1 %tobool.not.i.i.i.i.i556, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i.i.i557 - -if.then.i.i.i.i.i557: ; preds = %invoke.cont.i.i554, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - %537 = phi ptr [ %.pre.i.i555, %invoke.cont.i.i554 ], [ %531, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %add.ptr.i.i.i.i.i.i = getelementptr inbounds i32, ptr %537, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i.i.i.i +terminate.lpad.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i.i + %530 = landingpad { ptr, i32 } + catch ptr null + %531 = extractvalue { ptr, i32 } %530, 0 + tail call void @__clang_call_terminate(ptr %531) #15 + unreachable -terminate.lpad.i.i.i.i: ; preds = %if.then.i.i.i.i.i557 - %538 = landingpad { ptr, i32 } +_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i: ; preds = %if.then.i.i.i.i.i427.i.i.i, %invoke.cont.i.i.i.i.i, %invoke.cont209.i.i.i + %532 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i429.i.i.i = icmp eq ptr %532, null + br i1 %cmp.i.i.i429.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i + %arrayidx.i.i.i431.i.i.i = getelementptr inbounds i32, ptr %532, i64 -1 + %533 = load i32, ptr %arrayidx.i.i.i431.i.i.i, align 4 + %534 = zext i32 %533 to i64 + %add.ptr.i.i432.i.i.i = getelementptr inbounds ptr, ptr %532, i64 %534 + %cmp3.i.not.i.i433.i.i.i = icmp eq i32 %533, 0 + br i1 %cmp3.i.not.i.i433.i.i.i, label %if.then.i.i.i.i.i447.i.i.i, label %for.body.i.i.i434.i.i.i + +for.body.i.i.i434.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + %it.04.i.i.i435.i.i.i = phi ptr [ %incdec.ptr.i.i.i442.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i ], [ %532, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i ] + %535 = load ptr, ptr %it.04.i.i.i435.i.i.i, align 8 + %536 = load ptr, ptr %new_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i436.i.i.i = icmp eq ptr %535, null + br i1 %tobool.not.i.i.i.i.i.i436.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i, label %if.then.i.i.i.i.i.i437.i.i.i + +if.then.i.i.i.i.i.i437.i.i.i: ; preds = %for.body.i.i.i434.i.i.i + %m_ref_count.i.i.i.i.i.i.i438.i.i.i = getelementptr inbounds %class.ast, ptr %535, i64 0, i32 2 + %537 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i438.i.i.i, align 4 + %dec.i.i.i.i.i.i.i439.i.i.i = add i32 %537, -1 + store i32 %dec.i.i.i.i.i.i.i439.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i438.i.i.i, align 4 + %cmp.i.i.i.i.i.i440.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i439.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i440.i.i.i, label %if.then2.i.i.i.i.i.i450.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + +if.then2.i.i.i.i.i.i450.i.i.i: ; preds = %if.then.i.i.i.i.i.i437.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %536, ptr noundef nonnull %535) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i unwind label %terminate.lpad.i.i451.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i: ; preds = %if.then2.i.i.i.i.i.i450.i.i.i, %if.then.i.i.i.i.i.i437.i.i.i, %for.body.i.i.i434.i.i.i + %incdec.ptr.i.i.i442.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i435.i.i.i, i64 1 + %cmp.i1.i.i443.i.i.i = icmp ult ptr %incdec.ptr.i.i.i442.i.i.i, %add.ptr.i.i432.i.i.i + br i1 %cmp.i1.i.i443.i.i.i, label %for.body.i.i.i434.i.i.i, label %invoke.cont.i.i444.i.i.i, !llvm.loop !9 + +invoke.cont.i.i444.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + %.pre.i.i445.i.i.i = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i446.i.i.i = icmp eq ptr %.pre.i.i445.i.i.i, null + br i1 %tobool.not.i.i.i.i.i446.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i.i.i447.i.i.i + +if.then.i.i.i.i.i447.i.i.i: ; preds = %invoke.cont.i.i444.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i + %538 = phi ptr [ %.pre.i.i445.i.i.i, %invoke.cont.i.i444.i.i.i ], [ %532, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i ] + %add.ptr.i.i.i.i.i.i448.i.i.i = getelementptr inbounds i32, ptr %538, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i448.i.i.i) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i449.i.i.i + +terminate.lpad.i.i.i.i449.i.i.i: ; preds = %if.then.i.i.i.i.i447.i.i.i + %539 = landingpad { ptr, i32 } catch ptr null - %539 = extractvalue { ptr, i32 } %538, 0 - call void @__clang_call_terminate(ptr %539) #15 + %540 = extractvalue { ptr, i32 } %539, 0 + tail call void @__clang_call_terminate(ptr %540) #15 unreachable -terminate.lpad.i.i: ; preds = %if.then2.i.i.i.i.i.i - %540 = landingpad { ptr, i32 } +terminate.lpad.i.i451.i.i.i: ; preds = %if.then2.i.i.i.i.i.i450.i.i.i + %541 = landingpad { ptr, i32 } catch ptr null - %541 = extractvalue { ptr, i32 } %540, 0 - call void @__clang_call_terminate(ptr %541) #15 + %542 = extractvalue { ptr, i32 } %541, 0 + tail call void @__clang_call_terminate(ptr %542) #15 unreachable -ehcleanup.i.i: ; preds = %lpad147.i.i, %lpad96.i.i - %.pn.i66.i = phi { ptr, i32 } [ %lpad.phi2876, %lpad147.i.i ], [ %455, %lpad96.i.i ] - call void @_ZN7obj_refI10quantifier11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_q.i.i) #14 - br label %ehcleanup210.i.i +ehcleanup.i.i.i: ; preds = %lpad147.i.i.i, %lpad96.i.i.i + %.pn.i91.i.i = phi { ptr, i32 } [ %lpad.phi462.i.i.i, %lpad147.i.i.i ], [ %456, %lpad96.i.i.i ] + call void @_ZN7obj_refI10quantifier11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_q.i.i.i) #14 + br label %ehcleanup210.i.i.i -ehcleanup210.i.i: ; preds = %lpad37.i.i.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit, %ehcleanup.i.i - %.pn50.i.i = phi { ptr, i32 } [ %.pn.i66.i, %ehcleanup.i.i ], [ %lpad.loopexit2871, %lpad37.i.i.loopexit ], [ %lpad.loopexit2877, %lpad37.i.i.loopexit.split-lp.loopexit ], [ %lpad.loopexit2880, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2883, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2886, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2887, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i) #14 - br label %ehcleanup211.i.i +ehcleanup210.i.i.i: ; preds = %ehcleanup.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.i.i.i + %.pn50.i.i.i = phi { ptr, i32 } [ %.pn.i91.i.i, %ehcleanup.i.i.i ], [ %lpad.loopexit.i121.i.i, %lpad37.loopexit.i.i.i ], [ %lpad.loopexit463.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit466.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit468.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit471.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit.split-lp.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i) #14 + br label %ehcleanup211.i.i.i -ehcleanup211.i.i: ; preds = %lpad.i928, %ehcleanup210.i.i - %.pn50.pn.i.i = phi { ptr, i32 } [ %.pn50.i.i, %ehcleanup210.i.i ], [ %404, %lpad.i928 ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i) #14 +ehcleanup211.i.i.i: ; preds = %ehcleanup210.i.i.i, %lpad.i117.i.body.i.i + %.pn50.pn.i.i.i = phi { ptr, i32 } [ %.pn50.i.i.i, %ehcleanup210.i.i.i ], [ %eh.lpad-body.i.i, %lpad.i117.i.body.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i) #14 br label %common.resume -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i: ; preds = %_ZNK10quantifier9get_childEj.exit, %if.then.i.i.i.i.i557, %invoke.cont.i.i554, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit582 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_q.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2.i.i) - br label %while.cond.i.backedgethread-pre-split - -sw.bb36.i: ; preds = %if.end31.i - %542 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i95.i = getelementptr inbounds i32, ptr %542, i64 -1 - %543 = load i32, ptr %arrayidx.i95.i, align 4 - %dec.i96.i = add i32 %543, -1 - store i32 %dec.i96.i, ptr %arrayidx.i95.i, align 4 - call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %87) - br label %while.cond.i.backedgethread-pre-split - -sw.default.i: ; preds = %if.end31.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 793, ptr noundef nonnull @.str.12) - call void @exit(i32 noundef 114) #15 +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i, %if.then.i.i.i.i.i447.i.i.i, %invoke.cont.i.i444.i.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_q.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i + +sw.bb36.i.i: ; preds = %if.end31.i.i + %543 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i166.i.i = getelementptr inbounds i32, ptr %543, i64 -1 + %544 = load i32, ptr %arrayidx.i166.i.i, align 4 + %dec.i167.i.i = add i32 %544, -1 + store i32 %dec.i167.i.i, ptr %arrayidx.i166.i.i, align 4 + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %87) + br label %while.cond.backedgethread-pre-split.i.i + +sw.default.i.i: ; preds = %if.end31.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 793, ptr noundef nonnull @.str.12) + tail call void @exit(i32 noundef 114) #15 unreachable -while.end.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, %while.cond.i.backedge, %if.else.i - %m_result_stack.i97.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i98.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %544 = load ptr, ptr %m_nodes.i98.i, align 8 - %cmp.i.i.i99.i = icmp eq ptr %544, null - br i1 %cmp.i.i.i99.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i.i - -if.end.i.i.i.i: ; preds = %while.end.i - %arrayidx.i.i.i100.i = getelementptr inbounds i32, ptr %544, i64 -1 - %545 = load i32, ptr %arrayidx.i.i.i100.i, align 4 - %546 = add i32 %545, -1 - %547 = zext i32 %546 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i.i, %while.end.i - %retval.0.i.i.i.i = phi i64 [ %547, %if.end.i.i.i.i ], [ 4294967295, %while.end.i ] - %arrayidx.i1.i.i.i = getelementptr inbounds ptr, ptr %544, i64 %retval.0.i.i.i.i - %548 = load ptr, ptr %arrayidx.i1.i.i.i, align 8 - %tobool.not.i.i90 = icmp eq ptr %548, null - br i1 %tobool.not.i.i90, label %if.end.i101.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i - -_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %548, i64 0, i32 2 - %549 = load i32, ptr %m_ref_count.i.i.i.i, align 4 - %inc.i.i.i.i = add i32 %549, 1 - store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 - br label %if.end.i101.i - -if.end.i101.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %550 = load ptr, ptr %result, align 8 - %tobool.not.i3.i.i = icmp eq ptr %550, null - br i1 %tobool.not.i3.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %if.end.i101.i - %m_manager.i.i.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %551 = load ptr, ptr %m_manager.i.i.i, align 8 - %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %550, i64 0, i32 2 - %552 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 - %dec.i.i.i.i.i = add i32 %552, -1 - store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 - %cmp.i.i.i102.i = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i102.i, label %if.then2.i.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - -if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %551, ptr noundef nonnull %550) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.end.i101.i - store ptr %548, ptr %result, align 8 - %553 = load ptr, ptr %m_nodes.i98.i, align 8 - %cmp.i.i.i105.i = icmp eq ptr %553, null - br i1 %cmp.i.i.i105.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i106.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - %.pre.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i = add i32 %.pre.i.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - -if.end.i.i.i106.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - %arrayidx.i.i.i107.i = getelementptr inbounds i32, ptr %553, i64 -1 - %554 = load i32, ptr %arrayidx.i.i.i107.i, align 4 - %555 = add i32 %554, -1 - %556 = zext i32 %555 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i106.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i - %dec.i.pre-phi.i.i = phi i32 [ %.pre1.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %555, %if.end.i.i.i106.i ] - %retval.0.i.i.i108.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %556, %if.end.i.i.i106.i ] - %arrayidx.i1.i.i109.i = getelementptr inbounds ptr, ptr %553, i64 %retval.0.i.i.i108.i - %557 = load ptr, ptr %arrayidx.i1.i.i109.i, align 8 - %arrayidx.i.i110.i = getelementptr inbounds i32, ptr %553, i64 -1 - store i32 %dec.i.pre-phi.i.i, ptr %arrayidx.i.i110.i, align 4 - %558 = load ptr, ptr %m_result_stack.i97.i, align 8 - %tobool.not.i.i.i.i111.i = icmp eq ptr %557, null - br i1 %tobool.not.i.i.i.i111.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i112.i - -if.then.i.i.i.i112.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - %m_ref_count.i.i.i.i.i113.i = getelementptr inbounds %class.ast, ptr %557, i64 0, i32 2 - %559 = load i32, ptr %m_ref_count.i.i.i.i.i113.i, align 4 - %dec.i.i.i.i.i.i91 = add i32 %559, -1 - store i32 %dec.i.i.i.i.i.i91, ptr %m_ref_count.i.i.i.i.i113.i, align 4 - %cmp.i.i.i.i.i92 = icmp eq i32 %dec.i.i.i.i.i.i91, 0 - br i1 %cmp.i.i.i.i.i92, label %if.then2.i.i.i.i.i96, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -if.then2.i.i.i.i.i96: ; preds = %if.then.i.i.i.i112.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %558, ptr noundef nonnull %557) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i.i96, %if.then.i.i.i.i112.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - %m_result_pr_stack.i114.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_nodes.i115.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %560 = load ptr, ptr %m_nodes.i115.i, align 8 - %cmp.i.i.i116.i = icmp eq ptr %560, null - br i1 %cmp.i.i.i116.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i117.i - -if.end.i.i.i117.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %arrayidx.i.i.i118.i = getelementptr inbounds i32, ptr %560, i64 -1 - %561 = load i32, ptr %arrayidx.i.i.i118.i, align 4 - %562 = add i32 %561, -1 - %563 = zext i32 %562 to i64 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i117.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %retval.0.i.i.i119.i = phi i64 [ %563, %if.end.i.i.i117.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i ] - %arrayidx.i1.i.i120.i = getelementptr inbounds ptr, ptr %560, i64 %retval.0.i.i.i119.i - %564 = load ptr, ptr %arrayidx.i1.i.i120.i, align 8 - %tobool.not.i121.i = icmp eq ptr %564, null - br i1 %tobool.not.i121.i, label %if.end.i125.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i122.i - -_ZN11ast_manager7inc_refEP3ast.exit.i122.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %m_ref_count.i.i.i123.i = getelementptr inbounds %class.ast, ptr %564, i64 0, i32 2 - %565 = load i32, ptr %m_ref_count.i.i.i123.i, align 4 - %inc.i.i.i124.i = add i32 %565, 1 - store i32 %inc.i.i.i124.i, ptr %m_ref_count.i.i.i123.i, align 4 - br label %if.end.i125.i - -if.end.i125.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i122.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %566 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i126.i = icmp eq ptr %566, null - br i1 %tobool.not.i3.i126.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i127.i - -if.then.i.i.i127.i: ; preds = %if.end.i125.i - %m_manager.i.i128.i = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 - %567 = load ptr, ptr %m_manager.i.i128.i, align 8 - %m_ref_count.i.i.i.i129.i = getelementptr inbounds %class.ast, ptr %566, i64 0, i32 2 - %568 = load i32, ptr %m_ref_count.i.i.i.i129.i, align 4 - %dec.i.i.i.i130.i = add i32 %568, -1 - store i32 %dec.i.i.i.i130.i, ptr %m_ref_count.i.i.i.i129.i, align 4 - %cmp.i.i.i131.i = icmp eq i32 %dec.i.i.i.i130.i, 0 - br i1 %cmp.i.i.i131.i, label %if.then2.i.i.i132.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - -if.then2.i.i.i132.i: ; preds = %if.then.i.i.i127.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %567, ptr noundef nonnull %566) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i132.i, %if.then.i.i.i127.i, %if.end.i125.i - store ptr %564, ptr %result_pr, align 8 - %569 = load ptr, ptr %m_nodes.i115.i, align 8 - %cmp.i.i.i135.i = icmp eq ptr %569, null - br i1 %cmp.i.i.i135.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i136.i - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - %.pre.i148.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i149.i = add i32 %.pre.i148.i, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - -if.end.i.i.i136.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - %arrayidx.i.i.i137.i = getelementptr inbounds i32, ptr %569, i64 -1 - %570 = load i32, ptr %arrayidx.i.i.i137.i, align 4 - %571 = add i32 %570, -1 - %572 = zext i32 %571 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - -_ZN6vectorIP3appLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i136.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i - %dec.i.pre-phi.i138.i = phi i32 [ %.pre1.i149.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %571, %if.end.i.i.i136.i ] - %retval.0.i.i.i139.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %572, %if.end.i.i.i136.i ] - %arrayidx.i1.i.i140.i = getelementptr inbounds ptr, ptr %569, i64 %retval.0.i.i.i139.i - %573 = load ptr, ptr %arrayidx.i1.i.i140.i, align 8 - %arrayidx.i.i141.i = getelementptr inbounds i32, ptr %569, i64 -1 - store i32 %dec.i.pre-phi.i138.i, ptr %arrayidx.i.i141.i, align 4 - %574 = load ptr, ptr %m_result_pr_stack.i114.i, align 8 - %tobool.not.i.i.i.i142.i = icmp eq ptr %573, null - br i1 %tobool.not.i.i.i.i142.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i143.i - -if.then.i.i.i.i143.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - %m_ref_count.i.i.i.i.i144.i = getelementptr inbounds %class.ast, ptr %573, i64 0, i32 2 - %575 = load i32, ptr %m_ref_count.i.i.i.i.i144.i, align 4 - %dec.i.i.i.i.i145.i = add i32 %575, -1 - store i32 %dec.i.i.i.i.i145.i, ptr %m_ref_count.i.i.i.i.i144.i, align 4 - %cmp.i.i.i.i146.i = icmp eq i32 %dec.i.i.i.i.i145.i, 0 - br i1 %cmp.i.i.i.i146.i, label %if.then2.i.i.i.i147.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -if.then2.i.i.i.i147.i: ; preds = %if.then.i.i.i.i143.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %574, ptr noundef nonnull %573) - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i147.i, %if.then.i.i.i.i143.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - %576 = load ptr, ptr %result_pr, align 8 - %cmp.i93 = icmp eq ptr %576, null - br i1 %cmp.i93, label %if.then48.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit - -if.then48.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %this.val.i94 = load ptr, ptr %28, align 8 - %577 = load ptr, ptr %m_root.i, align 8 - %call50.i = call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i94, ptr noundef %577) - %tobool.not.i150.i = icmp eq ptr %call50.i, null - br i1 %tobool.not.i150.i, label %if.end.i154.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i151.i - -_ZN11ast_manager7inc_refEP3ast.exit.i151.i: ; preds = %if.then48.i - %m_ref_count.i.i.i152.i = getelementptr inbounds %class.ast, ptr %call50.i, i64 0, i32 2 - %578 = load i32, ptr %m_ref_count.i.i.i152.i, align 4 - %inc.i.i.i153.i = add i32 %578, 1 - store i32 %inc.i.i.i153.i, ptr %m_ref_count.i.i.i152.i, align 4 - br label %if.end.i154.i - -if.end.i154.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i151.i, %if.then48.i - %579 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i155.i = icmp eq ptr %579, null - br i1 %tobool.not.i3.i155.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit162.i, label %if.then.i.i.i156.i - -if.then.i.i.i156.i: ; preds = %if.end.i154.i - %m_manager.i.i157.i = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 - %580 = load ptr, ptr %m_manager.i.i157.i, align 8 - %m_ref_count.i.i.i.i158.i = getelementptr inbounds %class.ast, ptr %579, i64 0, i32 2 - %581 = load i32, ptr %m_ref_count.i.i.i.i158.i, align 4 - %dec.i.i.i.i159.i = add i32 %581, -1 - store i32 %dec.i.i.i.i159.i, ptr %m_ref_count.i.i.i.i158.i, align 4 - %cmp.i.i.i160.i = icmp eq i32 %dec.i.i.i.i159.i, 0 - br i1 %cmp.i.i.i160.i, label %if.then2.i.i.i161.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit162.i - -if.then2.i.i.i161.i: ; preds = %if.then.i.i.i156.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %580, ptr noundef nonnull %579) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit162.i - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit162.i: ; preds = %if.then2.i.i.i161.i, %if.then.i.i.i156.i, %if.end.i154.i - store ptr %call50.i, ptr %result_pr, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit - -unreachable.i82: ; preds = %invoke.cont11.i80 +while.end.i.i: ; preds = %while.cond.backedge.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %if.else.i + %m_result_stack.i168.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i169.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %545 = load ptr, ptr %m_nodes.i169.i.i, align 8 + %cmp.i.i.i170.i.i = icmp eq ptr %545, null + br i1 %cmp.i.i.i170.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i, label %if.end.i.i.i171.i.i + +if.end.i.i.i171.i.i: ; preds = %while.end.i.i + %arrayidx.i.i.i172.i.i = getelementptr inbounds i32, ptr %545, i64 -1 + %546 = load i32, ptr %arrayidx.i.i.i172.i.i, align 4 + %547 = add i32 %546, -1 + %548 = zext i32 %547 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i: ; preds = %if.end.i.i.i171.i.i, %while.end.i.i + %retval.0.i.i.i173.i.i = phi i64 [ %548, %if.end.i.i.i171.i.i ], [ 4294967295, %while.end.i.i ] + %arrayidx.i1.i.i.i.i = getelementptr inbounds ptr, ptr %545, i64 %retval.0.i.i.i173.i.i + %549 = load ptr, ptr %arrayidx.i1.i.i.i.i, align 8 + %tobool.not.i174.i.i = icmp eq ptr %549, null + br i1 %tobool.not.i174.i.i, label %if.end.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %m_ref_count.i.i.i.i98.i = getelementptr inbounds %class.ast, ptr %549, i64 0, i32 2 + %550 = load i32, ptr %m_ref_count.i.i.i.i98.i, align 4 + %inc.i.i.i175.i.i = add i32 %550, 1 + store i32 %inc.i.i.i175.i.i, ptr %m_ref_count.i.i.i.i98.i, align 4 + br label %if.end.i.i.i + +if.end.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %551 = load ptr, ptr %result, align 8 + %tobool.not.i3.i.i.i = icmp eq ptr %551, null + br i1 %tobool.not.i3.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i, label %if.then.i.i.i176.i.i + +if.then.i.i.i176.i.i: ; preds = %if.end.i.i.i + %m_manager.i.i177.i.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %552 = load ptr, ptr %m_manager.i.i177.i.i, align 8 + %m_ref_count.i.i.i.i178.i.i = getelementptr inbounds %class.ast, ptr %551, i64 0, i32 2 + %553 = load i32, ptr %m_ref_count.i.i.i.i178.i.i, align 4 + %dec.i.i.i.i179.i.i = add i32 %553, -1 + store i32 %dec.i.i.i.i179.i.i, ptr %m_ref_count.i.i.i.i178.i.i, align 4 + %cmp.i.i.i180.i.i = icmp eq i32 %dec.i.i.i.i179.i.i, 0 + br i1 %cmp.i.i.i180.i.i, label %if.then2.i.i.i181.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + +if.then2.i.i.i181.i.i: ; preds = %if.then.i.i.i176.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %552, ptr noundef nonnull %551) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i: ; preds = %if.then2.i.i.i181.i.i, %if.then.i.i.i176.i.i, %if.end.i.i.i + store ptr %549, ptr %result, align 8 + %554 = load ptr, ptr %m_nodes.i169.i.i, align 8 + %cmp.i.i.i184.i.i = icmp eq ptr %554, null + br i1 %cmp.i.i.i184.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i, label %if.end.i.i.i185.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + %.pre.i196.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i = add i32 %.pre.i196.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + +if.end.i.i.i185.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + %arrayidx.i.i.i186.i.i = getelementptr inbounds i32, ptr %554, i64 -1 + %555 = load i32, ptr %arrayidx.i.i.i186.i.i, align 4 + %556 = add i32 %555, -1 + %557 = zext i32 %556 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i185.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i + %dec.i.pre-phi.i.i.i = phi i32 [ %.pre1.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %556, %if.end.i.i.i185.i.i ] + %retval.0.i.i.i187.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %557, %if.end.i.i.i185.i.i ] + %arrayidx.i1.i.i188.i.i = getelementptr inbounds ptr, ptr %554, i64 %retval.0.i.i.i187.i.i + %558 = load ptr, ptr %arrayidx.i1.i.i188.i.i, align 8 + %arrayidx.i.i189.i.i = getelementptr inbounds i32, ptr %554, i64 -1 + store i32 %dec.i.pre-phi.i.i.i, ptr %arrayidx.i.i189.i.i, align 4 + %559 = load ptr, ptr %m_result_stack.i168.i.i, align 8 + %tobool.not.i.i.i.i190.i.i = icmp eq ptr %558, null + br i1 %tobool.not.i.i.i.i190.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i, label %if.then.i.i.i.i191.i.i + +if.then.i.i.i.i191.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + %m_ref_count.i.i.i.i.i192.i.i = getelementptr inbounds %class.ast, ptr %558, i64 0, i32 2 + %560 = load i32, ptr %m_ref_count.i.i.i.i.i192.i.i, align 4 + %dec.i.i.i.i.i193.i.i = add i32 %560, -1 + store i32 %dec.i.i.i.i.i193.i.i, ptr %m_ref_count.i.i.i.i.i192.i.i, align 4 + %cmp.i.i.i.i194.i.i = icmp eq i32 %dec.i.i.i.i.i193.i.i, 0 + br i1 %cmp.i.i.i.i194.i.i, label %if.then2.i.i.i.i195.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +if.then2.i.i.i.i195.i.i: ; preds = %if.then.i.i.i.i191.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %559, ptr noundef nonnull %558) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i: ; preds = %if.then2.i.i.i.i195.i.i, %if.then.i.i.i.i191.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + %m_result_pr_stack.i197.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_nodes.i198.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %561 = load ptr, ptr %m_nodes.i198.i.i, align 8 + %cmp.i.i.i199.i.i = icmp eq ptr %561, null + br i1 %cmp.i.i.i199.i.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i, label %if.end.i.i.i200.i.i + +if.end.i.i.i200.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %arrayidx.i.i.i201.i.i = getelementptr inbounds i32, ptr %561, i64 -1 + %562 = load i32, ptr %arrayidx.i.i.i201.i.i, align 4 + %563 = add i32 %562, -1 + %564 = zext i32 %563 to i64 + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i: ; preds = %if.end.i.i.i200.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %retval.0.i.i.i202.i.i = phi i64 [ %564, %if.end.i.i.i200.i.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i ] + %arrayidx.i1.i.i203.i.i = getelementptr inbounds ptr, ptr %561, i64 %retval.0.i.i.i202.i.i + %565 = load ptr, ptr %arrayidx.i1.i.i203.i.i, align 8 + %tobool.not.i204.i.i = icmp eq ptr %565, null + br i1 %tobool.not.i204.i.i, label %if.end.i208.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i205.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i205.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %m_ref_count.i.i.i206.i.i = getelementptr inbounds %class.ast, ptr %565, i64 0, i32 2 + %566 = load i32, ptr %m_ref_count.i.i.i206.i.i, align 4 + %inc.i.i.i207.i.i = add i32 %566, 1 + store i32 %inc.i.i.i207.i.i, ptr %m_ref_count.i.i.i206.i.i, align 4 + br label %if.end.i208.i.i + +if.end.i208.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i205.i.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %567 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i209.i.i = icmp eq ptr %567, null + br i1 %tobool.not.i3.i209.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i, label %if.then.i.i.i210.i.i + +if.then.i.i.i210.i.i: ; preds = %if.end.i208.i.i + %m_manager.i.i211.i.i = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 + %568 = load ptr, ptr %m_manager.i.i211.i.i, align 8 + %m_ref_count.i.i.i.i212.i.i = getelementptr inbounds %class.ast, ptr %567, i64 0, i32 2 + %569 = load i32, ptr %m_ref_count.i.i.i.i212.i.i, align 4 + %dec.i.i.i.i213.i.i = add i32 %569, -1 + store i32 %dec.i.i.i.i213.i.i, ptr %m_ref_count.i.i.i.i212.i.i, align 4 + %cmp.i.i.i214.i.i = icmp eq i32 %dec.i.i.i.i213.i.i, 0 + br i1 %cmp.i.i.i214.i.i, label %if.then2.i.i.i215.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + +if.then2.i.i.i215.i.i: ; preds = %if.then.i.i.i210.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %568, ptr noundef nonnull %567) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i: ; preds = %if.then2.i.i.i215.i.i, %if.then.i.i.i210.i.i, %if.end.i208.i.i + store ptr %565, ptr %result_pr, align 8 + %570 = load ptr, ptr %m_nodes.i198.i.i, align 8 + %cmp.i.i.i218.i.i = icmp eq ptr %570, null + br i1 %cmp.i.i.i218.i.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i, label %if.end.i.i.i219.i.i + +entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + %.pre.i231.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i232.i.i = add i32 %.pre.i231.i.i, -1 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + +if.end.i.i.i219.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + %arrayidx.i.i.i220.i.i = getelementptr inbounds i32, ptr %570, i64 -1 + %571 = load i32, ptr %arrayidx.i.i.i220.i.i, align 4 + %572 = add i32 %571, -1 + %573 = zext i32 %572 to i64 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + +_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i219.i.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i + %dec.i.pre-phi.i221.i.i = phi i32 [ %.pre1.i232.i.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %572, %if.end.i.i.i219.i.i ] + %retval.0.i.i.i222.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %573, %if.end.i.i.i219.i.i ] + %arrayidx.i1.i.i223.i.i = getelementptr inbounds ptr, ptr %570, i64 %retval.0.i.i.i222.i.i + %574 = load ptr, ptr %arrayidx.i1.i.i223.i.i, align 8 + %arrayidx.i.i224.i.i = getelementptr inbounds i32, ptr %570, i64 -1 + store i32 %dec.i.pre-phi.i221.i.i, ptr %arrayidx.i.i224.i.i, align 4 + %575 = load ptr, ptr %m_result_pr_stack.i197.i.i, align 8 + %tobool.not.i.i.i.i225.i.i = icmp eq ptr %574, null + br i1 %tobool.not.i.i.i.i225.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i, label %if.then.i.i.i.i226.i.i + +if.then.i.i.i.i226.i.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + %m_ref_count.i.i.i.i.i227.i.i = getelementptr inbounds %class.ast, ptr %574, i64 0, i32 2 + %576 = load i32, ptr %m_ref_count.i.i.i.i.i227.i.i, align 4 + %dec.i.i.i.i.i228.i.i = add i32 %576, -1 + store i32 %dec.i.i.i.i.i228.i.i, ptr %m_ref_count.i.i.i.i.i227.i.i, align 4 + %cmp.i.i.i.i229.i.i = icmp eq i32 %dec.i.i.i.i.i228.i.i, 0 + br i1 %cmp.i.i.i.i229.i.i, label %if.then2.i.i.i.i230.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +if.then2.i.i.i.i230.i.i: ; preds = %if.then.i.i.i.i226.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %575, ptr noundef nonnull %574) + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i: ; preds = %if.then2.i.i.i.i230.i.i, %if.then.i.i.i.i226.i.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + %577 = load ptr, ptr %result_pr, align 8 + %cmp.i.i32 = icmp eq ptr %577, null + br i1 %cmp.i.i32, label %if.then48.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i + +if.then48.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %this.val.i.i = load ptr, ptr %28, align 8 + %578 = load ptr, ptr %m_root.i, align 8 + %call50.i.i = tail call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i, ptr noundef %578) + %tobool.not.i233.i.i = icmp eq ptr %call50.i.i, null + br i1 %tobool.not.i233.i.i, label %if.end.i237.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i234.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i234.i.i: ; preds = %if.then48.i.i + %m_ref_count.i.i.i235.i.i = getelementptr inbounds %class.ast, ptr %call50.i.i, i64 0, i32 2 + %579 = load i32, ptr %m_ref_count.i.i.i235.i.i, align 4 + %inc.i.i.i236.i.i = add i32 %579, 1 + store i32 %inc.i.i.i236.i.i, ptr %m_ref_count.i.i.i235.i.i, align 4 + br label %if.end.i237.i.i + +if.end.i237.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i234.i.i, %if.then48.i.i + %580 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i238.i.i = icmp eq ptr %580, null + br i1 %tobool.not.i3.i238.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i, label %if.then.i.i.i239.i.i + +if.then.i.i.i239.i.i: ; preds = %if.end.i237.i.i + %m_manager.i.i240.i.i = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 + %581 = load ptr, ptr %m_manager.i.i240.i.i, align 8 + %m_ref_count.i.i.i.i241.i.i = getelementptr inbounds %class.ast, ptr %580, i64 0, i32 2 + %582 = load i32, ptr %m_ref_count.i.i.i.i241.i.i, align 4 + %dec.i.i.i.i242.i.i = add i32 %582, -1 + store i32 %dec.i.i.i.i242.i.i, ptr %m_ref_count.i.i.i.i241.i.i, align 4 + %cmp.i.i.i243.i.i = icmp eq i32 %dec.i.i.i.i242.i.i, 0 + br i1 %cmp.i.i.i243.i.i, label %if.then2.i.i.i244.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i + +if.then2.i.i.i244.i.i: ; preds = %if.then.i.i.i239.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %581, ptr noundef nonnull %580) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i: ; preds = %if.then2.i.i.i244.i.i, %if.then.i.i.i239.i.i, %if.end.i237.i.i + store ptr %call50.i.i, ptr %result_pr, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i + +unreachable.i.i: ; preds = %invoke.cont11.i.i unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit162.i - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i60) - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i61) +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit245.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i.i) br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb1EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit unreachable.i: ; preds = %invoke.cont11.i unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb1EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit186, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb1EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i) br label %if.end8 if.else: ; preds = %if.end - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i31) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i47) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp8.i) - %582 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i542 = icmp eq ptr %582, null - br i1 %tobool.not.i3.i542, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit549, label %if.then.i.i.i543 - -if.then.i.i.i543: ; preds = %if.else - %m_manager.i.i544 = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 - %583 = load ptr, ptr %m_manager.i.i544, align 8 - %m_ref_count.i.i.i.i545 = getelementptr inbounds %class.ast, ptr %582, i64 0, i32 2 - %584 = load i32, ptr %m_ref_count.i.i.i.i545, align 4 - %dec.i.i.i.i546 = add i32 %584, -1 - store i32 %dec.i.i.i.i546, ptr %m_ref_count.i.i.i.i545, align 4 - %cmp.i.i.i547 = icmp eq i32 %dec.i.i.i.i546, 0 - br i1 %cmp.i.i.i547, label %if.then2.i.i.i548, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit549 - -if.then2.i.i.i548: ; preds = %if.then.i.i.i543 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %583, ptr noundef nonnull %582) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit549 - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit549: ; preds = %if.else, %if.then.i.i.i543, %if.then2.i.i.i548 + %583 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i.i48 = icmp eq ptr %583, null + br i1 %tobool.not.i3.i.i48, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54, label %if.then.i.i.i.i49 + +if.then.i.i.i.i49: ; preds = %if.else + %m_manager.i.i.i50 = getelementptr inbounds %class.obj_ref.93, ptr %result_pr, i64 0, i32 1 + %584 = load ptr, ptr %m_manager.i.i.i50, align 8 + %m_ref_count.i.i.i.i.i51 = getelementptr inbounds %class.ast, ptr %583, i64 0, i32 2 + %585 = load i32, ptr %m_ref_count.i.i.i.i.i51, align 4 + %dec.i.i.i.i.i52 = add i32 %585, -1 + store i32 %dec.i.i.i.i.i52, ptr %m_ref_count.i.i.i.i.i51, align 4 + %cmp.i.i.i.i53 = icmp eq i32 %dec.i.i.i.i.i52, 0 + br i1 %cmp.i.i.i.i53, label %if.then2.i.i.i.i412, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + +if.then2.i.i.i.i412: ; preds = %if.then.i.i.i.i49 + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %584, ptr noundef nonnull %583) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54: ; preds = %if.then2.i.i.i.i412, %if.then.i.i.i.i49, %if.else store ptr null, ptr %result_pr, align 8 - %585 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val.i33 = load ptr, ptr %585, align 8 - %call2.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i33) - br i1 %call2.i, label %if.end15.i, label %if.then.i36 - -if.then.i36: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit549 - %m_cancel_check.i37 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %586 = load i8, ptr %m_cancel_check.i37, align 1 - %587 = and i8 %586, 1 - %tobool.not.i38 = icmp eq i8 %587, 0 - br i1 %tobool.not.i38, label %if.end.i52, label %if.then4.i39 - -if.then4.i39: ; preds = %if.then.i36 + %586 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val.i55 = load ptr, ptr %586, align 8 + %call2.i.i56 = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i55) + br i1 %call2.i.i56, label %if.end15.i, label %if.then.i57 + +if.then.i57: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + %m_cancel_check.i58 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %587 = load i8, ptr %m_cancel_check.i58, align 1 + %588 = and i8 %587, 1 + %tobool.not.i59 = icmp eq i8 %588, 0 + br i1 %tobool.not.i59, label %if.end.i67, label %if.then4.i60 + +if.then4.i60: ; preds = %if.then.i57 tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i40 = tail call ptr @__cxa_allocate_exception(i64 40) #14 - %this.val8.i = load ptr, ptr %585, align 8 + %exception.i61 = tail call ptr @__cxa_allocate_exception(i64 40) #14 + %this.val8.i = load ptr, ptr %586, align 8 %call7.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val8.i) - to label %invoke.cont.i unwind label %ehcleanup13.i.thread + to label %invoke.cont.i unwind label %ehcleanup13.thread.i -invoke.cont.i: ; preds = %if.then4.i39 +invoke.cont.i: ; preds = %if.then4.i60 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #14 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31, ptr noundef %call7.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) - to label %invoke.cont10.i unwind label %ehcleanup13.i.thread2811 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47, ptr noundef %call7.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) + to label %invoke.cont10.i unwind label %ehcleanup13.thread58.i invoke.cont10.i: ; preds = %invoke.cont.i - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i40, align 8 - %m_msg.i.i540 = getelementptr inbounds %class.default_exception, ptr %exception.i40, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i540, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31) #14 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i40, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i40, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #17 - to label %unreachable.i51 unwind label %ehcleanup13.i - -ehcleanup13.i.thread: ; preds = %if.then4.i39 - %588 = landingpad { ptr, i32 } + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i61, align 8 + %m_msg.i.i.i65 = getelementptr inbounds %class.default_exception, ptr %exception.i61, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i65, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #14 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i61, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i61, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #17 + to label %unreachable.i66 unwind label %ehcleanup13.i + +ehcleanup13.thread.i: ; preds = %if.then4.i60 + %589 = landingpad { ptr, i32 } cleanup - br label %cleanup.action.i47 + br label %cleanup.action.i62 -ehcleanup13.i.thread2811: ; preds = %invoke.cont.i - %589 = landingpad { ptr, i32 } +ehcleanup13.thread58.i: ; preds = %invoke.cont.i + %590 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #14 - br label %cleanup.action.i47 + br label %cleanup.action.i62 ehcleanup13.i: ; preds = %invoke.cont10.i - %590 = landingpad { ptr, i32 } + %591 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31) #14 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #14 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #14 br label %common.resume -cleanup.action.i47: ; preds = %ehcleanup13.i.thread2811, %ehcleanup13.i.thread - %.pn.pn.i442810 = phi { ptr, i32 } [ %588, %ehcleanup13.i.thread ], [ %589, %ehcleanup13.i.thread2811 ] - call void @__cxa_free_exception(ptr %exception.i40) #14 +cleanup.action.i62: ; preds = %ehcleanup13.thread58.i, %ehcleanup13.thread.i + %.pn.pn57.i = phi { ptr, i32 } [ %589, %ehcleanup13.thread.i ], [ %590, %ehcleanup13.thread58.i ] + call void @__cxa_free_exception(ptr %exception.i61) #14 br label %common.resume -if.end.i52: ; preds = %if.then.i36 - %tobool.not.i527 = icmp eq ptr %t, null - br i1 %tobool.not.i527, label %if.end.i531, label %_ZN11ast_manager7inc_refEP3ast.exit.i528 - -_ZN11ast_manager7inc_refEP3ast.exit.i528: ; preds = %if.end.i52 - %m_ref_count.i.i.i529 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %591 = load i32, ptr %m_ref_count.i.i.i529, align 4 - %inc.i.i.i530 = add i32 %591, 1 - store i32 %inc.i.i.i530, ptr %m_ref_count.i.i.i529, align 4 - br label %if.end.i531 - -if.end.i531: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i528, %if.end.i52 - %592 = load ptr, ptr %result, align 8 - %tobool.not.i3.i532 = icmp eq ptr %592, null - br i1 %tobool.not.i3.i532, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit539, label %if.then.i.i.i533 - -if.then.i.i.i533: ; preds = %if.end.i531 - %m_manager.i.i534 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %593 = load ptr, ptr %m_manager.i.i534, align 8 - %m_ref_count.i.i.i.i535 = getelementptr inbounds %class.ast, ptr %592, i64 0, i32 2 - %594 = load i32, ptr %m_ref_count.i.i.i.i535, align 4 - %dec.i.i.i.i536 = add i32 %594, -1 - store i32 %dec.i.i.i.i536, ptr %m_ref_count.i.i.i.i535, align 4 - %cmp.i.i.i537 = icmp eq i32 %dec.i.i.i.i536, 0 - br i1 %cmp.i.i.i537, label %if.then2.i.i.i538, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit539 - -if.then2.i.i.i538: ; preds = %if.then.i.i.i533 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %593, ptr noundef nonnull %592) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit539 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit539: ; preds = %if.end.i531, %if.then.i.i.i533, %if.then2.i.i.i538 +if.end.i67: ; preds = %if.then.i57 + %tobool.not.i.i68 = icmp eq ptr %t, null + br i1 %tobool.not.i.i68, label %if.end.i.i72, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i69 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i69: ; preds = %if.end.i67 + %m_ref_count.i.i.i.i70 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %592 = load i32, ptr %m_ref_count.i.i.i.i70, align 4 + %inc.i.i.i.i71 = add i32 %592, 1 + store i32 %inc.i.i.i.i71, ptr %m_ref_count.i.i.i.i70, align 4 + br label %if.end.i.i72 + +if.end.i.i72: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i69, %if.end.i67 + %593 = load ptr, ptr %result, align 8 + %tobool.not.i3.i9.i = icmp eq ptr %593, null + br i1 %tobool.not.i3.i9.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73, label %if.then.i.i.i10.i + +if.then.i.i.i10.i: ; preds = %if.end.i.i72 + %m_manager.i.i11.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %594 = load ptr, ptr %m_manager.i.i11.i, align 8 + %m_ref_count.i.i.i.i12.i = getelementptr inbounds %class.ast, ptr %593, i64 0, i32 2 + %595 = load i32, ptr %m_ref_count.i.i.i.i12.i, align 4 + %dec.i.i.i.i13.i = add i32 %595, -1 + store i32 %dec.i.i.i.i13.i, ptr %m_ref_count.i.i.i.i12.i, align 4 + %cmp.i.i.i14.i = icmp eq i32 %dec.i.i.i.i13.i, 0 + br i1 %cmp.i.i.i14.i, label %if.then2.i.i.i15.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73 + +if.then2.i.i.i15.i: ; preds = %if.then.i.i.i10.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %594, ptr noundef nonnull %593) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73 + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73: ; preds = %if.then2.i.i.i15.i, %if.then.i.i.i10.i, %if.end.i.i72 store ptr %t, ptr %result, align 8 br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit -if.end15.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit549 - %m_root.i53 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 - store ptr %t, ptr %m_root.i53, align 8 - %m_num_qvars.i54 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 - store i32 0, ptr %m_num_qvars.i54, align 8 - %m_num_steps.i55 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 2 - store i32 0, ptr %m_num_steps.i55, align 8 +if.end15.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + %m_root.i74 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 + store ptr %t, ptr %m_root.i74, align 8 + %m_num_qvars.i75 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 + store i32 0, ptr %m_num_qvars.i75, align 8 + %m_num_steps.i76 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 2 + store i32 0, ptr %m_num_steps.i76, align 8 %call16.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef 3) - br i1 %call16.i, label %if.then17.i, label %if.else.i56 + br i1 %call16.i, label %if.then17.i, label %if.else.i77 if.then17.i: ; preds = %if.end15.i - %m_result_stack.i526 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i519 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %595 = load ptr, ptr %m_nodes.i519, align 8 - %cmp.i.i.i520 = icmp eq ptr %595, null - br i1 %cmp.i.i.i520, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit525, label %if.end.i.i.i521 - -if.end.i.i.i521: ; preds = %if.then17.i - %arrayidx.i.i.i522 = getelementptr inbounds i32, ptr %595, i64 -1 - %596 = load i32, ptr %arrayidx.i.i.i522, align 4 - %597 = add i32 %596, -1 - %598 = zext i32 %597 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit525 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit525: ; preds = %if.then17.i, %if.end.i.i.i521 - %retval.0.i.i.i523 = phi i64 [ %598, %if.end.i.i.i521 ], [ 4294967295, %if.then17.i ] - %arrayidx.i1.i.i524 = getelementptr inbounds ptr, ptr %595, i64 %retval.0.i.i.i523 - %599 = load ptr, ptr %arrayidx.i1.i.i524, align 8 - %tobool.not.i506 = icmp eq ptr %599, null - br i1 %tobool.not.i506, label %if.end.i510, label %_ZN11ast_manager7inc_refEP3ast.exit.i507 - -_ZN11ast_manager7inc_refEP3ast.exit.i507: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit525 - %m_ref_count.i.i.i508 = getelementptr inbounds %class.ast, ptr %599, i64 0, i32 2 - %600 = load i32, ptr %m_ref_count.i.i.i508, align 4 - %inc.i.i.i509 = add i32 %600, 1 - store i32 %inc.i.i.i509, ptr %m_ref_count.i.i.i508, align 4 - br label %if.end.i510 - -if.end.i510: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i507, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit525 - %601 = load ptr, ptr %result, align 8 - %tobool.not.i3.i511 = icmp eq ptr %601, null - br i1 %tobool.not.i3.i511, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit518, label %if.then.i.i.i512 - -if.then.i.i.i512: ; preds = %if.end.i510 - %m_manager.i.i513 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %602 = load ptr, ptr %m_manager.i.i513, align 8 - %m_ref_count.i.i.i.i514 = getelementptr inbounds %class.ast, ptr %601, i64 0, i32 2 - %603 = load i32, ptr %m_ref_count.i.i.i.i514, align 4 - %dec.i.i.i.i515 = add i32 %603, -1 - store i32 %dec.i.i.i.i515, ptr %m_ref_count.i.i.i.i514, align 4 - %cmp.i.i.i516 = icmp eq i32 %dec.i.i.i.i515, 0 - br i1 %cmp.i.i.i516, label %if.then2.i.i.i517, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit518 - -if.then2.i.i.i517: ; preds = %if.then.i.i.i512 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %602, ptr noundef nonnull %601) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit518 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit518: ; preds = %if.end.i510, %if.then.i.i.i512, %if.then2.i.i.i517 - store ptr %599, ptr %result, align 8 - %604 = load ptr, ptr %m_nodes.i519, align 8 - %cmp.i.i.i487 = icmp eq ptr %604, null - br i1 %cmp.i.i.i487, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i501, label %if.end.i.i.i488 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i501: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit518 - %.pre.i502 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i503 = add i32 %.pre.i502, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i490 - -if.end.i.i.i488: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit518 - %arrayidx.i.i.i489 = getelementptr inbounds i32, ptr %604, i64 -1 - %605 = load i32, ptr %arrayidx.i.i.i489, align 4 - %606 = add i32 %605, -1 - %607 = zext i32 %606 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i490 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i490: ; preds = %if.end.i.i.i488, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i501 - %dec.i.pre-phi.i491 = phi i32 [ %.pre1.i503, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i501 ], [ %606, %if.end.i.i.i488 ] - %retval.0.i.i.i492 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i501 ], [ %607, %if.end.i.i.i488 ] - %arrayidx.i1.i.i493 = getelementptr inbounds ptr, ptr %604, i64 %retval.0.i.i.i492 - %608 = load ptr, ptr %arrayidx.i1.i.i493, align 8 - %arrayidx.i.i494 = getelementptr inbounds i32, ptr %604, i64 -1 - store i32 %dec.i.pre-phi.i491, ptr %arrayidx.i.i494, align 4 - %609 = load ptr, ptr %m_result_stack.i526, align 8 - %tobool.not.i.i.i.i495 = icmp eq ptr %608, null - br i1 %tobool.not.i.i.i.i495, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit, label %if.then.i.i.i.i496 - -if.then.i.i.i.i496: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i490 - %m_ref_count.i.i.i.i.i497 = getelementptr inbounds %class.ast, ptr %608, i64 0, i32 2 - %610 = load i32, ptr %m_ref_count.i.i.i.i.i497, align 4 - %dec.i.i.i.i.i498 = add i32 %610, -1 - store i32 %dec.i.i.i.i.i498, ptr %m_ref_count.i.i.i.i.i497, align 4 - %cmp.i.i.i.i499 = icmp eq i32 %dec.i.i.i.i.i498, 0 - br i1 %cmp.i.i.i.i499, label %if.then2.i.i.i.i500, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit - -if.then2.i.i.i.i500: ; preds = %if.then.i.i.i.i496 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %609, ptr noundef nonnull %608) + %m_result_stack.i.i392 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i393 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %596 = load ptr, ptr %m_nodes.i.i393, align 8 + %cmp.i.i.i16.i = icmp eq ptr %596, null + br i1 %cmp.i.i.i16.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i396, label %if.end.i.i.i.i394 + +if.end.i.i.i.i394: ; preds = %if.then17.i + %arrayidx.i.i.i.i395 = getelementptr inbounds i32, ptr %596, i64 -1 + %597 = load i32, ptr %arrayidx.i.i.i.i395, align 4 + %598 = add i32 %597, -1 + %599 = zext i32 %598 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i396 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i396: ; preds = %if.end.i.i.i.i394, %if.then17.i + %retval.0.i.i.i.i397 = phi i64 [ %599, %if.end.i.i.i.i394 ], [ 4294967295, %if.then17.i ] + %arrayidx.i1.i.i.i398 = getelementptr inbounds ptr, ptr %596, i64 %retval.0.i.i.i.i397 + %600 = load ptr, ptr %arrayidx.i1.i.i.i398, align 8 + %tobool.not.i17.i = icmp eq ptr %600, null + br i1 %tobool.not.i17.i, label %if.end.i21.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i18.i + +_ZN11ast_manager7inc_refEP3ast.exit.i18.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i396 + %m_ref_count.i.i.i19.i = getelementptr inbounds %class.ast, ptr %600, i64 0, i32 2 + %601 = load i32, ptr %m_ref_count.i.i.i19.i, align 4 + %inc.i.i.i20.i = add i32 %601, 1 + store i32 %inc.i.i.i20.i, ptr %m_ref_count.i.i.i19.i, align 4 + br label %if.end.i21.i + +if.end.i21.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i18.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i396 + %602 = load ptr, ptr %result, align 8 + %tobool.not.i3.i22.i = icmp eq ptr %602, null + br i1 %tobool.not.i3.i22.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i, label %if.then.i.i.i23.i + +if.then.i.i.i23.i: ; preds = %if.end.i21.i + %m_manager.i.i24.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %603 = load ptr, ptr %m_manager.i.i24.i, align 8 + %m_ref_count.i.i.i.i25.i = getelementptr inbounds %class.ast, ptr %602, i64 0, i32 2 + %604 = load i32, ptr %m_ref_count.i.i.i.i25.i, align 4 + %dec.i.i.i.i26.i = add i32 %604, -1 + store i32 %dec.i.i.i.i26.i, ptr %m_ref_count.i.i.i.i25.i, align 4 + %cmp.i.i.i27.i = icmp eq i32 %dec.i.i.i.i26.i, 0 + br i1 %cmp.i.i.i27.i, label %if.then2.i.i.i28.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + +if.then2.i.i.i28.i: ; preds = %if.then.i.i.i23.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %603, ptr noundef nonnull %602) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i: ; preds = %if.then2.i.i.i28.i, %if.then.i.i.i23.i, %if.end.i21.i + store ptr %600, ptr %result, align 8 + %605 = load ptr, ptr %m_nodes.i.i393, align 8 + %cmp.i.i.i32.i399 = icmp eq ptr %605, null + br i1 %cmp.i.i.i32.i399, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i409, label %if.end.i.i.i33.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i409: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + %.pre.i.i410 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i411 = add i32 %.pre.i.i410, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i400 + +if.end.i.i.i33.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + %arrayidx.i.i.i34.i = getelementptr inbounds i32, ptr %605, i64 -1 + %606 = load i32, ptr %arrayidx.i.i.i34.i, align 4 + %607 = add i32 %606, -1 + %608 = zext i32 %607 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i400 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i400: ; preds = %if.end.i.i.i33.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i409 + %dec.i.pre-phi.i.i401 = phi i32 [ %.pre1.i.i411, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i409 ], [ %607, %if.end.i.i.i33.i ] + %retval.0.i.i.i35.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i409 ], [ %608, %if.end.i.i.i33.i ] + %arrayidx.i1.i.i36.i = getelementptr inbounds ptr, ptr %605, i64 %retval.0.i.i.i35.i + %609 = load ptr, ptr %arrayidx.i1.i.i36.i, align 8 + %arrayidx.i.i.i402 = getelementptr inbounds i32, ptr %605, i64 -1 + store i32 %dec.i.pre-phi.i.i401, ptr %arrayidx.i.i.i402, align 4 + %610 = load ptr, ptr %m_result_stack.i.i392, align 8 + %tobool.not.i.i.i.i.i403 = icmp eq ptr %609, null + br i1 %tobool.not.i.i.i.i.i403, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit, label %if.then.i.i.i.i.i404 + +if.then.i.i.i.i.i404: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i400 + %m_ref_count.i.i.i.i.i.i405 = getelementptr inbounds %class.ast, ptr %609, i64 0, i32 2 + %611 = load i32, ptr %m_ref_count.i.i.i.i.i.i405, align 4 + %dec.i.i.i.i.i.i406 = add i32 %611, -1 + store i32 %dec.i.i.i.i.i.i406, ptr %m_ref_count.i.i.i.i.i.i405, align 4 + %cmp.i.i.i.i.i407 = icmp eq i32 %dec.i.i.i.i.i.i406, 0 + br i1 %cmp.i.i.i.i.i407, label %if.then2.i.i.i.i.i408, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit + +if.then2.i.i.i.i.i408: ; preds = %if.then.i.i.i.i.i404 + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %610, ptr noundef nonnull %609) br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit -if.else.i56: ; preds = %if.end15.i - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i206) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i207) - %611 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2102915 = icmp eq ptr %611, null - br i1 %cmp.i.i2102915, label %while.end.i462, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214.lr.ph - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214.lr.ph: ; preds = %if.else.i56 - %m_cancel_check.i218 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %m_cache.i.i427 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %m_nodes.i.i437 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %m_bindings.i65.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 - %m_shifts.i69.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 - %m_result_stack.i2075 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i.i2035 = getelementptr inbounds %class.ref_vector_core.79, ptr %new_pats.i.i198, i64 0, i32 1 - %m_nodes.i.i1997 = getelementptr inbounds %class.ref_vector_core.79, ptr %new_no_pats.i.i199, i64 0, i32 1 - %m_r.i48.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_pr.i49.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %m_manager.i.i1896 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %m_manager.i.i1786 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %m_manager.i2284 = getelementptr inbounds %class.obj_ref, ptr %tmp.i.i, i64 0, i32 1 - %m_inv_shifter.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 5 - %m_manager.i2638 = getelementptr inbounds %class.obj_ref.93, ptr %new_t.i.i202, i64 0, i32 1 - %m_cfg.i.i373 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 - br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214.lr.ph, %while.cond.i208.backedge - %612 = phi ptr [ %611, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214.lr.ph ], [ %641, %while.cond.i208.backedge ] - %arrayidx.i.i212 = getelementptr inbounds i32, ptr %612, i64 -1 - %613 = load i32, ptr %arrayidx.i.i212, align 4 - %cmp3.i.i213 = icmp eq i32 %613, 0 - br i1 %cmp3.i.i213, label %while.end.i462, label %while.body.i215 - -while.body.i215: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214 - %this.val14.i = load ptr, ptr %585, align 8 - %call2.i.i216 = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val14.i) - br i1 %call2.i.i216, label %if.end15.i239, label %if.then.i217 - -if.then.i217: ; preds = %while.body.i215 - %614 = load i8, ptr %m_cancel_check.i218, align 1 - %615 = and i8 %614, 1 - %tobool.not.i219 = icmp eq i8 %615, 0 - br i1 %tobool.not.i219, label %if.end15.i239, label %if.then5.i220 - -if.then5.i220: ; preds = %if.then.i217 +if.else.i77: ; preds = %if.end15.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i45) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i.i46) + %612 = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i36.i.i = icmp eq ptr %612, null + br i1 %cmp.i36.i.i, label %while.end.i.i115, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79: ; preds = %if.else.i77 + %m_cancel_check.i.i80 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %m_cache.i.i.i81 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %m_nodes.i.i.i82 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %m_bindings.i.i.i83 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 + %m_shifts.i.i.i84 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 + %m_result_stack.i.i43.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i.i48.i.i = getelementptr inbounds %class.ref_vector_core.79, ptr %new_pats.i.i.i42, i64 0, i32 1 + %m_nodes.i.i80.i.i.i = getelementptr inbounds %class.ref_vector_core.79, ptr %new_no_pats.i.i.i43, i64 0, i32 1 + %m_r.i64.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_pr.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %m_manager.i.i.i70.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %m_manager.i.i263.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %m_manager.i385.i.i.i = getelementptr inbounds %class.obj_ref, ptr %tmp.i.i.i, i64 0, i32 1 + %m_inv_shifter.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 5 + %m_manager.i.i.i.i85 = getelementptr inbounds %class.obj_ref.93, ptr %new_t.i.i.i44, i64 0, i32 1 + %m_cfg.i.i.i86 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87: ; preds = %while.cond.backedge.i.i113, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 + %613 = phi ptr [ %612, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 ], [ %642, %while.cond.backedge.i.i113 ] + %arrayidx.i.i37.i = getelementptr inbounds i32, ptr %613, i64 -1 + %614 = load i32, ptr %arrayidx.i.i37.i, align 4 + %cmp3.i.i.i88 = icmp eq i32 %614, 0 + br i1 %cmp3.i.i.i88, label %while.end.i.i115, label %while.body.i.i89 + +while.body.i.i89: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87 + %this.val14.i.i = load ptr, ptr %586, align 8 + %call2.i.i.i90 = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val14.i.i) + br i1 %call2.i.i.i90, label %if.end15.i.i103, label %if.then.i.i91 + +if.then.i.i91: ; preds = %while.body.i.i89 + %615 = load i8, ptr %m_cancel_check.i.i80, align 1 + %616 = and i8 %615, 1 + %tobool.not.i38.i = icmp eq i8 %616, 0 + br i1 %tobool.not.i38.i, label %if.end15.i.i103, label %if.then5.i.i92 + +if.then5.i.i92: ; preds = %if.then.i.i91 call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i221 = call ptr @__cxa_allocate_exception(i64 40) #14 - %this.val.i222 = load ptr, ptr %585, align 8 - %call8.i223 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i222) - to label %invoke.cont.i230 unwind label %ehcleanup14.i225.thread - -invoke.cont.i230: ; preds = %if.then5.i220 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i207) #14 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i206, ptr noundef %call8.i223, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i207) - to label %invoke.cont11.i235 unwind label %ehcleanup14.i225.thread2818 - -invoke.cont11.i235: ; preds = %invoke.cont.i230 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i221, align 8 - %m_msg.i.i.i236 = getelementptr inbounds %class.default_exception, ptr %exception.i221, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i236, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i206) #14 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i221, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i221, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #17 - to label %unreachable.i238 unwind label %ehcleanup14.i225 - -ehcleanup14.i225.thread: ; preds = %if.then5.i220 - %616 = landingpad { ptr, i32 } - cleanup - br label %cleanup.action.i229 - -ehcleanup14.i225.thread2818: ; preds = %invoke.cont.i230 + %exception.i.i93 = call ptr @__cxa_allocate_exception(i64 40) #14 + %this.val.i.i94 = load ptr, ptr %586, align 8 + %call8.i.i95 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i.i94) + to label %invoke.cont.i.i98 unwind label %ehcleanup14.thread.i.i96 + +invoke.cont.i.i98: ; preds = %if.then5.i.i92 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #14 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45, ptr noundef %call8.i.i95, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) + to label %invoke.cont11.i.i99 unwind label %ehcleanup14.thread5.i.i + +invoke.cont11.i.i99: ; preds = %invoke.cont.i.i98 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i93, align 8 + %m_msg.i.i.i.i100 = getelementptr inbounds %class.default_exception, ptr %exception.i.i93, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i.i100, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45) #14 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i93, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i.i93, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #17 + to label %unreachable.i.i102 unwind label %ehcleanup14.i.i101 + +ehcleanup14.thread.i.i96: ; preds = %if.then5.i.i92 %617 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i207) #14 - br label %cleanup.action.i229 + br label %cleanup.action.i.i97 -ehcleanup14.i225: ; preds = %invoke.cont11.i235 +ehcleanup14.thread5.i.i: ; preds = %invoke.cont.i.i98 %618 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i206) #14 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i207) #14 - br label %common.resume + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #14 + br label %cleanup.action.i.i97 -cleanup.action.i229: ; preds = %ehcleanup14.i225.thread2818, %ehcleanup14.i225.thread - %.pn.pn.i2272817 = phi { ptr, i32 } [ %616, %ehcleanup14.i225.thread ], [ %617, %ehcleanup14.i225.thread2818 ] - call void @__cxa_free_exception(ptr %exception.i221) #14 +ehcleanup14.i.i101: ; preds = %invoke.cont11.i.i99 + %619 = landingpad { ptr, i32 } + cleanup + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45) #14 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #14 br label %common.resume -if.end15.i239: ; preds = %if.then.i217, %while.body.i215 - %619 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i.i240 = icmp eq ptr %619, null - br i1 %cmp.i.i.i240, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i243, label %if.end.i.i.i241 +cleanup.action.i.i97: ; preds = %ehcleanup14.thread5.i.i, %ehcleanup14.thread.i.i96 + %.pn.pn4.i.i = phi { ptr, i32 } [ %617, %ehcleanup14.thread.i.i96 ], [ %618, %ehcleanup14.thread5.i.i ] + call void @__cxa_free_exception(ptr %exception.i.i93) #14 + br label %common.resume -if.end.i.i.i241: ; preds = %if.end15.i239 - %arrayidx.i.i.i242 = getelementptr inbounds i32, ptr %619, i64 -1 - %620 = load i32, ptr %arrayidx.i.i.i242, align 4 - %621 = add i32 %620, -1 - %622 = zext i32 %621 to i64 - br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i243 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i243: ; preds = %if.end.i.i.i241, %if.end15.i239 - %retval.0.i.i.i244 = phi i64 [ %622, %if.end.i.i.i241 ], [ 4294967295, %if.end15.i239 ] - %arrayidx.i1.i.i245 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i244 - %623 = load ptr, ptr %arrayidx.i1.i.i245, align 8 - %624 = load i32, ptr %m_num_steps.i55, align 8 - %inc.i247 = add i32 %624, 1 - store i32 %inc.i247, ptr %m_num_steps.i55, align 8 - %625 = getelementptr i8, ptr %arrayidx.i1.i.i245, i64 8 - %call17.val.i249 = load i32, ptr %625, align 8 - %626 = and i32 %call17.val.i249, -51 - %or.cond2836.not = icmp eq i32 %626, 1 - br i1 %or.cond2836.not, label %if.then20.i426, label %if.end28.i - -if.then20.i426: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i243 - %627 = load ptr, ptr %m_cache.i.i427, align 8 - %call.i.i.i428 = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %627, ptr noundef %623, i32 noundef 0) - %tobool22.not.i429 = icmp eq ptr %call.i.i.i428, null - br i1 %tobool22.not.i429, label %if.end28.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i436 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i436: ; preds = %if.then20.i426 - %m_ref_count.i.i.i.i.i.i434 = getelementptr inbounds %class.ast, ptr %call.i.i.i428, i64 0, i32 2 - %628 = load i32, ptr %m_ref_count.i.i.i.i.i.i434, align 4 - %inc.i.i.i.i.i.i435 = add i32 %628, 1 - store i32 %inc.i.i.i.i.i.i435, ptr %m_ref_count.i.i.i.i.i.i434, align 4 - %629 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i19.i = icmp eq ptr %629, null - br i1 %cmp.i.i19.i, label %if.then.i.i.i458, label %lor.lhs.false.i.i.i438 - -lor.lhs.false.i.i.i438: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i436 - %arrayidx.i.i20.i = getelementptr inbounds i32, ptr %629, i64 -1 - %630 = load i32, ptr %arrayidx.i.i20.i, align 4 - %arrayidx4.i.i.i439 = getelementptr inbounds i32, ptr %629, i64 -2 - %631 = load i32, ptr %arrayidx4.i.i.i439, align 4 - %cmp5.i.i.i440 = icmp eq i32 %630, %631 - br i1 %cmp5.i.i.i440, label %if.then.i.i.i458, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i441 - -if.then.i.i.i458: ; preds = %lor.lhs.false.i.i.i438, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i436 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - %.pre.i.i.i459 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i.i460 = getelementptr inbounds i32, ptr %.pre.i.i.i459, i64 -1 - %.pre1.i.i.i461 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i460, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i441 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i441: ; preds = %if.then.i.i.i458, %lor.lhs.false.i.i.i438 - %632 = phi i32 [ %.pre1.i.i.i461, %if.then.i.i.i458 ], [ %630, %lor.lhs.false.i.i.i438 ] - %633 = phi ptr [ %.pre.i.i.i459, %if.then.i.i.i458 ], [ %629, %lor.lhs.false.i.i.i438 ] - %idx.ext.i.i.i442 = zext i32 %632 to i64 - %add.ptr.i.i.i443 = getelementptr inbounds ptr, ptr %633, i64 %idx.ext.i.i.i442 - store ptr %call.i.i.i428, ptr %add.ptr.i.i.i443, align 8 - %634 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i.i444 = getelementptr inbounds i32, ptr %634, i64 -1 - %635 = load i32, ptr %arrayidx10.i.i.i444, align 4 - %inc.i.i.i445 = add i32 %635, 1 - store i32 %inc.i.i.i445, ptr %arrayidx10.i.i.i444, align 4 - %636 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i22.i = getelementptr inbounds i32, ptr %636, i64 -1 - %637 = load i32, ptr %arrayidx.i22.i, align 4 - %dec.i.i446 = add i32 %637, -1 - store i32 %dec.i.i446, ptr %arrayidx.i22.i, align 4 - %this.val15.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i.i447 = icmp eq ptr %623, %call.i.i.i428 - %cmp.i.i.i.i448 = icmp eq ptr %this.val15.i, null - %or.cond.i.i449 = select i1 %cmp.not.i.i447, i1 true, i1 %cmp.i.i.i.i448 - br i1 %or.cond.i.i449, label %while.cond.i208.backedge, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i450 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i450: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i441 - %arrayidx.i.i.i.i451 = getelementptr inbounds i32, ptr %this.val15.i, i64 -1 - %638 = load i32, ptr %arrayidx.i.i.i.i451, align 4 - %cmp3.i.i.i.i452 = icmp eq i32 %638, 0 - br i1 %cmp3.i.i.i.i452, label %while.cond.i208.backedgethread-pre-split, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i453 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i453: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i450 - %639 = add i32 %638, -1 - %640 = zext i32 %639 to i64 - %m_new_child.i.i.i454 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i, i64 %640, i32 1 - %bf.load.i.i.i455 = load i32, ptr %m_new_child.i.i.i454, align 8 - %bf.set.i.i.i456 = or i32 %bf.load.i.i.i455, 2 - store i32 %bf.set.i.i.i456, ptr %m_new_child.i.i.i454, align 8 - br label %while.cond.i208.backedgethread-pre-split - -while.cond.i208.backedgethread-pre-split: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i453, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i450, %sw.bb33.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - %.pr = load ptr, ptr %m_frame_stack.i, align 8 - br label %while.cond.i208.backedge - -while.cond.i208.backedge: ; preds = %while.cond.i208.backedgethread-pre-split, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i441 - %641 = phi ptr [ %.pr, %while.cond.i208.backedgethread-pre-split ], [ %this.val15.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i441 ] - %cmp.i.i210 = icmp eq ptr %641, null - br i1 %cmp.i.i210, label %while.end.i462, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214, !llvm.loop !56 - -if.end28.i: ; preds = %if.then20.i426, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i243 - %m_kind.i.i251 = getelementptr inbounds %class.ast, ptr %623, i64 0, i32 1 - %bf.load.i.i252 = load i32, ptr %m_kind.i.i251, align 4 - %trunc2837 = trunc i32 %bf.load.i.i252 to i16 - switch i16 %trunc2837, label %sw.default.i420 [ - i16 0, label %sw.bb.i338 - i16 2, label %sw.bb31.i - i16 1, label %sw.bb33.i +if.end15.i.i103: ; preds = %if.then.i.i91, %while.body.i.i89 + %620 = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i.i39.i = icmp eq ptr %620, null + br i1 %cmp.i.i.i39.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104, label %if.end.i.i.i40.i + +if.end.i.i.i40.i: ; preds = %if.end15.i.i103 + %arrayidx.i.i.i41.i = getelementptr inbounds i32, ptr %620, i64 -1 + %621 = load i32, ptr %arrayidx.i.i.i41.i, align 4 + %622 = add i32 %621, -1 + %623 = zext i32 %622 to i64 + br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104: ; preds = %if.end.i.i.i40.i, %if.end15.i.i103 + %retval.0.i.i.i42.i = phi i64 [ %623, %if.end.i.i.i40.i ], [ 4294967295, %if.end15.i.i103 ] + %arrayidx.i1.i.i43.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i + %624 = load ptr, ptr %arrayidx.i1.i.i43.i, align 8 + %625 = load i32, ptr %m_num_steps.i76, align 8 + %inc.i.i105 = add i32 %625, 1 + store i32 %inc.i.i105, ptr %m_num_steps.i76, align 8 + %626 = getelementptr i8, ptr %arrayidx.i1.i.i43.i, i64 8 + %call17.val.i.i106 = load i32, ptr %626, align 8 + %627 = and i32 %call17.val.i.i106, -51 + %or.cond.not.i.i107 = icmp eq i32 %627, 1 + br i1 %or.cond.not.i.i107, label %if.then20.i.i365, label %if.end28.i.i + +if.then20.i.i365: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + %628 = load ptr, ptr %m_cache.i.i.i81, align 8 + %call.i.i.i.i366 = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %628, ptr noundef %624, i32 noundef 0) + %tobool22.not.i.i367 = icmp eq ptr %call.i.i.i.i366, null + br i1 %tobool22.not.i.i367, label %if.end28.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i368 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i368: ; preds = %if.then20.i.i365 + %m_ref_count.i.i.i.i.i.i.i369 = getelementptr inbounds %class.ast, ptr %call.i.i.i.i366, i64 0, i32 2 + %629 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i369, align 4 + %inc.i.i.i.i.i.i.i370 = add i32 %629, 1 + store i32 %inc.i.i.i.i.i.i.i370, ptr %m_ref_count.i.i.i.i.i.i.i369, align 4 + %630 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i19.i.i = icmp eq ptr %630, null + br i1 %cmp.i.i19.i.i, label %if.then.i.i.i53.i, label %lor.lhs.false.i.i.i.i371 + +lor.lhs.false.i.i.i.i371: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i368 + %arrayidx.i.i20.i.i = getelementptr inbounds i32, ptr %630, i64 -1 + %631 = load i32, ptr %arrayidx.i.i20.i.i, align 4 + %arrayidx4.i.i.i.i372 = getelementptr inbounds i32, ptr %630, i64 -2 + %632 = load i32, ptr %arrayidx4.i.i.i.i372, align 4 + %cmp5.i.i.i.i373 = icmp eq i32 %631, %632 + br i1 %cmp5.i.i.i.i373, label %if.then.i.i.i53.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i374 + +if.then.i.i.i53.i: ; preds = %lor.lhs.false.i.i.i.i371, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i368 + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i.i.i389 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i390 = getelementptr inbounds i32, ptr %.pre.i.i.i.i389, i64 -1 + %.pre1.i.i.i.i391 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i390, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i374 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i374: ; preds = %if.then.i.i.i53.i, %lor.lhs.false.i.i.i.i371 + %633 = phi i32 [ %.pre1.i.i.i.i391, %if.then.i.i.i53.i ], [ %631, %lor.lhs.false.i.i.i.i371 ] + %634 = phi ptr [ %.pre.i.i.i.i389, %if.then.i.i.i53.i ], [ %630, %lor.lhs.false.i.i.i.i371 ] + %idx.ext.i.i.i.i375 = zext i32 %633 to i64 + %add.ptr.i.i.i.i376 = getelementptr inbounds ptr, ptr %634, i64 %idx.ext.i.i.i.i375 + store ptr %call.i.i.i.i366, ptr %add.ptr.i.i.i.i376, align 8 + %635 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i377 = getelementptr inbounds i32, ptr %635, i64 -1 + %636 = load i32, ptr %arrayidx10.i.i.i.i377, align 4 + %inc.i.i.i51.i378 = add i32 %636, 1 + store i32 %inc.i.i.i51.i378, ptr %arrayidx10.i.i.i.i377, align 4 + %637 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i22.i.i = getelementptr inbounds i32, ptr %637, i64 -1 + %638 = load i32, ptr %arrayidx.i22.i.i, align 4 + %dec.i.i.i379 = add i32 %638, -1 + store i32 %dec.i.i.i379, ptr %arrayidx.i22.i.i, align 4 + %this.val15.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i380 = icmp eq ptr %624, %call.i.i.i.i366 + %cmp.i.i.i.i52.i = icmp eq ptr %this.val15.i.i, null + %or.cond.i.i.i381 = select i1 %cmp.not.i.i.i380, i1 true, i1 %cmp.i.i.i.i52.i + br i1 %or.cond.i.i.i381, label %while.cond.backedge.i.i113, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i382 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i382: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i374 + %arrayidx.i.i.i.i.i383 = getelementptr inbounds i32, ptr %this.val15.i.i, i64 -1 + %639 = load i32, ptr %arrayidx.i.i.i.i.i383, align 4 + %cmp3.i.i.i.i.i384 = icmp eq i32 %639, 0 + br i1 %cmp3.i.i.i.i.i384, label %while.cond.backedgethread-pre-split.i.i111, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i385 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i385: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i382 + %640 = add i32 %639, -1 + %641 = zext i32 %640 to i64 + %m_new_child.i.i.i.i386 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i.i, i64 %641, i32 1 + %bf.load.i.i.i.i387 = load i32, ptr %m_new_child.i.i.i.i386, align 8 + %bf.set.i.i.i.i388 = or i32 %bf.load.i.i.i.i387, 2 + store i32 %bf.set.i.i.i.i388, ptr %m_new_child.i.i.i.i386, align 8 + br label %while.cond.backedgethread-pre-split.i.i111 + +while.cond.backedgethread-pre-split.i.i111: ; preds = %sw.bb33.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i385, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i382 + %.pr.i.i112 = load ptr, ptr %m_frame_stack.i, align 8 + br label %while.cond.backedge.i.i113 + +while.cond.backedge.i.i113: ; preds = %while.cond.backedgethread-pre-split.i.i111, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i374 + %642 = phi ptr [ %.pr.i.i112, %while.cond.backedgethread-pre-split.i.i111 ], [ %this.val15.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i374 ] + %cmp.i.i.i114 = icmp eq ptr %642, null + br i1 %cmp.i.i.i114, label %while.end.i.i115, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87, !llvm.loop !56 + +if.end28.i.i: ; preds = %if.then20.i.i365, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + %m_kind.i.i.i108 = getelementptr inbounds %class.ast, ptr %624, i64 0, i32 1 + %bf.load.i.i.i109 = load i32, ptr %m_kind.i.i.i108, align 4 + %trunc.i.i110 = trunc i32 %bf.load.i.i.i109 to i16 + switch i16 %trunc.i.i110, label %sw.default.i.i364 [ + i16 0, label %sw.bb.i.i262 + i16 2, label %sw.bb31.i.i + i16 1, label %sw.bb33.i.i ] -sw.bb.i338: ; preds = %if.end28.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i202) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tmp.i.i) - %bf.load.i23.i = load i32, ptr %625, align 8 - %bf.lshr.i.i340 = lshr i32 %bf.load.i23.i, 2 - %bf.clear.i24.i = and i32 %bf.lshr.i.i340, 3 - switch i32 %bf.clear.i24.i, label %entry.unreachabledefault.i.i419 [ - i32 0, label %sw.bb.i.i360 - i32 1, label %sw.bb212.i.i - i32 2, label %sw.bb232.i.i - i32 3, label %sw.bb288.i.i +sw.bb.i.i262: ; preds = %if.end28.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i.i44) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tmp.i.i.i) + %bf.load.i23.i.i = load i32, ptr %626, align 8 + %bf.lshr.i.i.i263 = lshr i32 %bf.load.i23.i.i, 2 + %bf.clear.i24.i.i = and i32 %bf.lshr.i.i.i263, 3 + switch i32 %bf.clear.i24.i.i, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i278 + i32 1, label %sw.bb212.i.i.i + i32 2, label %sw.bb232.i.i.i + i32 3, label %sw.bb288.i.i.i ] -sw.bb.i.i360: ; preds = %sw.bb.i338 - %m_num_args.i2774 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 2 - %642 = load i32, ptr %m_num_args.i2774, align 8 - %m_decl.i.i.i.i = getelementptr inbounds %class.app, ptr %623, i64 0, i32 1 - %m_spos.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i244, i32 2 - %arrayidx.i17.i = getelementptr inbounds %class.app, ptr %623, i64 0, i32 3, i64 2 - %arrayidx.i.i2771 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 3, i64 1 - br label %while.cond.i.i362 - -while.cond.i.i362: ; preds = %if.end.i.i414, %sw.bb.i.i360 - %bf.load2.i.i363 = load i32, ptr %625, align 8 - %bf.lshr3.i.i364 = lshr i32 %bf.load2.i.i363, 6 - %cmp.i25.i = icmp ult i32 %bf.lshr3.i.i364, %642 - br i1 %cmp.i25.i, label %while.body.i.i413, label %while.end.i.i365 - -while.body.i.i413: ; preds = %while.cond.i.i362 - %bf.lshr.mask.i = and i32 %bf.load2.i.i363, -64 - %cmp.i2689 = icmp eq i32 %bf.lshr.mask.i, 64 - br i1 %cmp.i2689, label %land.lhs.true.i2691, label %if.end.i.i414 - -land.lhs.true.i2691: ; preds = %while.body.i.i413 - %bf.load.i.i.i.i = load i32, ptr %m_kind.i.i251, align 4 - %bf.clear.i.i.i.i = and i32 %bf.load.i.i.i.i, 65535 - %cmp.i.i.i2693 = icmp eq i32 %bf.clear.i.i.i.i, 0 - br i1 %cmp.i.i.i2693, label %land.rhs.i.i.i, label %if.end.i.i414 - -land.rhs.i.i.i: ; preds = %land.lhs.true.i2691 - %643 = load ptr, ptr %m_decl.i.i.i.i, align 8 - %m_info.i.i.i.i.i = getelementptr inbounds %class.decl, ptr %643, i64 0, i32 2 - %644 = load ptr, ptr %m_info.i.i.i.i.i, align 8 - %tobool.not.i.i.i.i.i2772 = icmp eq ptr %644, null - br i1 %tobool.not.i.i.i.i.i2772, label %if.end.i.i414, label %_ZNK11ast_manager6is_iteEPK4expr.exit.i - -_ZNK11ast_manager6is_iteEPK4expr.exit.i: ; preds = %land.rhs.i.i.i - %645 = load i32, ptr %644, align 8 - %cmp.i.i.i.i.i.i2773 = icmp eq i32 %645, 0 - %m_kind.i.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %644, i64 0, i32 1 - %646 = load i32, ptr %m_kind.i.i.i.i.i.i, align 4 - %cmp2.i.i.i.i.i.i = icmp eq i32 %646, 4 - %647 = select i1 %cmp.i.i.i.i.i.i2773, i1 %cmp2.i.i.i.i.i.i, i1 false - br i1 %647, label %if.then.i2694, label %if.end.i.i414 - -if.then.i2694: ; preds = %_ZNK11ast_manager6is_iteEPK4expr.exit.i - %648 = load i32, ptr %m_spos.i, align 4 - %649 = load ptr, ptr %m_nodes.i.i437, align 8 - %idxprom.i.i.i = zext i32 %648 to i64 - %arrayidx.i.i.i2697 = getelementptr inbounds ptr, ptr %649, i64 %idxprom.i.i.i - %650 = load ptr, ptr %arrayidx.i.i.i2697, align 8 - %this.val13.i2698 = load ptr, ptr %585, align 8 - %m_true.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i2698, i64 0, i32 15 - %651 = load ptr, ptr %m_true.i.i, align 8 - %cmp.i.i2699 = icmp eq ptr %651, %650 - br i1 %cmp.i.i2699, label %if.end14.i, label %if.else.i2700 - -if.else.i2700: ; preds = %if.then.i2694 - %m_false.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i2698, i64 0, i32 16 - %652 = load ptr, ptr %m_false.i.i, align 8 - %cmp.i16.i = icmp eq ptr %652, %650 - br i1 %cmp.i16.i, label %if.end14.i, label %if.end.i.i414 - -if.end14.i: ; preds = %if.else.i2700, %if.then.i2694 - %arg.0.i.in = phi ptr [ %arrayidx.i.i2771, %if.then.i2694 ], [ %arrayidx.i17.i, %if.else.i2700 ] - %arg.0.i = load ptr, ptr %arg.0.i.in, align 8 - %tobool.not.i2702 = icmp eq ptr %arg.0.i, null - br i1 %tobool.not.i2702, label %if.end.i.i414, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i: ; preds = %if.end14.i - %arrayidx.i.i.i.i2706 = getelementptr inbounds i32, ptr %649, i64 -1 - %653 = load i32, ptr %arrayidx.i.i.i.i2706, align 4 - %654 = zext i32 %653 to i64 - %add.ptr.i.i.i2707 = getelementptr inbounds ptr, ptr %649, i64 %654 - %cmp3.i.i.i2708 = icmp ugt i32 %653, %648 - br i1 %cmp3.i.i.i2708, label %for.body.i.i.i2760.preheader, label %if.then.i.i.i2709 - -for.body.i.i.i2760.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - %arrayidx.i.i.i2697.le = getelementptr inbounds ptr, ptr %649, i64 %idxprom.i.i.i - br label %for.body.i.i.i2760 - -for.body.i.i.i2760: ; preds = %for.body.i.i.i2760.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2766 - %it.04.i.i.i2761 = phi ptr [ %incdec.ptr.i.i.i2767, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2766 ], [ %arrayidx.i.i.i2697.le, %for.body.i.i.i2760.preheader ] - %655 = load ptr, ptr %it.04.i.i.i2761, align 8 - %656 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i.i.i2762 = icmp eq ptr %655, null - br i1 %tobool.not.i.i.i.i.i.i2762, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2766, label %if.then.i.i.i.i.i.i2763 - -if.then.i.i.i.i.i.i2763: ; preds = %for.body.i.i.i2760 - %m_ref_count.i.i.i.i.i.i.i2764 = getelementptr inbounds %class.ast, ptr %655, i64 0, i32 2 - %657 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2764, align 4 - %dec.i.i.i.i.i.i.i2765 = add i32 %657, -1 - store i32 %dec.i.i.i.i.i.i.i2765, ptr %m_ref_count.i.i.i.i.i.i.i2764, align 4 - %cmp.i.i.i.i.i21.i = icmp eq i32 %dec.i.i.i.i.i.i.i2765, 0 - br i1 %cmp.i.i.i.i.i21.i, label %if.then2.i.i.i.i.i.i2770, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2766 - -if.then2.i.i.i.i.i.i2770: ; preds = %if.then.i.i.i.i.i.i2763 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %656, ptr noundef nonnull %655) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2766 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2766: ; preds = %if.then2.i.i.i.i.i.i2770, %if.then.i.i.i.i.i.i2763, %for.body.i.i.i2760 - %incdec.ptr.i.i.i2767 = getelementptr inbounds ptr, ptr %it.04.i.i.i2761, i64 1 - %cmp.i.i22.i = icmp ult ptr %incdec.ptr.i.i.i2767, %add.ptr.i.i.i2707 - br i1 %cmp.i.i22.i, label %for.body.i.i.i2760, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2766 - %.pre.i.i2768 = load ptr, ptr %m_nodes.i.i437, align 8 - %tobool.not.i.i.i2769 = icmp eq ptr %.pre.i.i2768, null - br i1 %tobool.not.i.i.i2769, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2714, label %if.then.i.i.i2709 - -if.then.i.i.i2709: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - %658 = phi ptr [ %.pre.i.i2768, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i ], [ %649, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i ] - %arrayidx.i.i20.i2710 = getelementptr inbounds i32, ptr %658, i64 -1 - store i32 %648, ptr %arrayidx.i.i20.i2710, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2714 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2714: ; preds = %if.then.i.i.i2709, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i - %m_ref_count.i.i.i.i.i.i2712 = getelementptr inbounds %class.ast, ptr %arg.0.i, i64 0, i32 2 - %659 = load i32, ptr %m_ref_count.i.i.i.i.i.i2712, align 4 - %inc.i.i.i.i.i.i2713 = add i32 %659, 1 - store i32 %inc.i.i.i.i.i.i2713, ptr %m_ref_count.i.i.i.i.i.i2712, align 4 - %660 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i26.i = icmp eq ptr %660, null - br i1 %cmp.i.i26.i, label %if.then.i.i29.i, label %lor.lhs.false.i.i.i2715 - -lor.lhs.false.i.i.i2715: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2714 - %arrayidx.i.i27.i = getelementptr inbounds i32, ptr %660, i64 -1 - %661 = load i32, ptr %arrayidx.i.i27.i, align 4 - %arrayidx4.i.i.i2716 = getelementptr inbounds i32, ptr %660, i64 -2 - %662 = load i32, ptr %arrayidx4.i.i.i2716, align 4 - %cmp5.i.i.i2717 = icmp eq i32 %661, %662 - br i1 %cmp5.i.i.i2717, label %if.then.i.i29.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2718 - -if.then.i.i29.i: ; preds = %lor.lhs.false.i.i.i2715, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2714 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - %.pre.i.i.i2757 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i.i2758 = getelementptr inbounds i32, ptr %.pre.i.i.i2757, i64 -1 - %.pre1.i.i.i2759 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i2758, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2718 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2718: ; preds = %if.then.i.i29.i, %lor.lhs.false.i.i.i2715 - %663 = phi i32 [ %.pre1.i.i.i2759, %if.then.i.i29.i ], [ %661, %lor.lhs.false.i.i.i2715 ] - %664 = phi ptr [ %.pre.i.i.i2757, %if.then.i.i29.i ], [ %660, %lor.lhs.false.i.i.i2715 ] - %idx.ext.i.i.i2719 = zext i32 %663 to i64 - %add.ptr.i.i28.i = getelementptr inbounds ptr, ptr %664, i64 %idx.ext.i.i.i2719 - store ptr %arg.0.i, ptr %add.ptr.i.i28.i, align 8 - %665 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i.i2720 = getelementptr inbounds i32, ptr %665, i64 -1 - %666 = load i32, ptr %arrayidx10.i.i.i2720, align 4 - %inc.i.i.i2721 = add i32 %666, 1 - store i32 %inc.i.i.i2721, ptr %arrayidx10.i.i.i2720, align 4 - %bf.load20.i = load i32, ptr %625, align 8 - %bf.clear.i2722 = and i32 %bf.load20.i, -13 - %bf.set.i2723 = or disjoint i32 %bf.clear.i2722, 4 - store i32 %bf.set.i2723, ptr %625, align 8 - %bf.lshr22.i = lshr i32 %bf.load20.i, 4 - %bf.clear23.i = and i32 %bf.lshr22.i, 3 - %call24.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %arg.0.i, i32 noundef %bf.clear23.i) - br i1 %call24.i, label %if.then25.i, label %if.end42.i - -if.then25.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2718 - %667 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i32.i = icmp eq ptr %667, null - br i1 %cmp.i.i.i32.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2725, label %if.end.i.i.i.i2724 - -if.end.i.i.i.i2724: ; preds = %if.then25.i - %arrayidx.i.i.i33.i = getelementptr inbounds i32, ptr %667, i64 -1 - %668 = load i32, ptr %arrayidx.i.i.i33.i, align 4 - %669 = add i32 %668, -1 - %670 = zext i32 %669 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2725 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2725: ; preds = %if.end.i.i.i.i2724, %if.then25.i - %retval.0.i.i.i.i2726 = phi i64 [ %670, %if.end.i.i.i.i2724 ], [ 4294967295, %if.then25.i ] - %arrayidx.i1.i.i.i2727 = getelementptr inbounds ptr, ptr %667, i64 %retval.0.i.i.i.i2726 - %671 = load ptr, ptr %arrayidx.i1.i.i.i2727, align 8 - %tobool.not.i.i2728 = icmp eq ptr %671, null - br i1 %tobool.not.i.i2728, label %if.end.i.i2732, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i2729 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i2729: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2725 - %m_ref_count.i.i.i.i2730 = getelementptr inbounds %class.ast, ptr %671, i64 0, i32 2 - %672 = load i32, ptr %m_ref_count.i.i.i.i2730, align 4 - %inc.i.i.i.i2731 = add i32 %672, 1 - store i32 %inc.i.i.i.i2731, ptr %m_ref_count.i.i.i.i2730, align 4 - br label %if.end.i.i2732 - -if.end.i.i2732: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i2729, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2725 - %673 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i.i2733 = icmp eq ptr %673, null - br i1 %tobool.not.i3.i.i2733, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2738, label %if.then.i.i.i.i2734 - -if.then.i.i.i.i2734: ; preds = %if.end.i.i2732 - %674 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i.i2736 = getelementptr inbounds %class.ast, ptr %673, i64 0, i32 2 - %675 = load i32, ptr %m_ref_count.i.i.i.i.i2736, align 4 - %dec.i.i.i.i.i2737 = add i32 %675, -1 - store i32 %dec.i.i.i.i.i2737, ptr %m_ref_count.i.i.i.i.i2736, align 4 - %cmp.i.i.i34.i = icmp eq i32 %dec.i.i.i.i.i2737, 0 - br i1 %cmp.i.i.i34.i, label %if.then2.i.i.i.i2756, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2738 - -if.then2.i.i.i.i2756: ; preds = %if.then.i.i.i.i2734 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %674, ptr noundef nonnull %673) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2738 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2738: ; preds = %if.then2.i.i.i.i2756, %if.then.i.i.i.i2734, %if.end.i.i2732 - store ptr %671, ptr %m_r.i48.i, align 8 - %676 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i37.i = icmp eq ptr %676, null - br i1 %cmp.i.i.i37.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2754, label %if.end.i.i.i38.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2754: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2738 - %.pre.i46.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i2755 = add i32 %.pre.i46.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2739 - -if.end.i.i.i38.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2738 - %arrayidx.i.i.i39.i = getelementptr inbounds i32, ptr %676, i64 -1 - %677 = load i32, ptr %arrayidx.i.i.i39.i, align 4 - %678 = add i32 %677, -1 - %679 = zext i32 %678 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2739 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2739: ; preds = %if.end.i.i.i38.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2754 - %dec.i.pre-phi.i.i2740 = phi i32 [ %.pre1.i.i2755, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2754 ], [ %678, %if.end.i.i.i38.i ] - %retval.0.i.i.i40.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2754 ], [ %679, %if.end.i.i.i38.i ] - %arrayidx.i1.i.i41.i = getelementptr inbounds ptr, ptr %676, i64 %retval.0.i.i.i40.i - %680 = load ptr, ptr %arrayidx.i1.i.i41.i, align 8 - %arrayidx.i.i42.i = getelementptr inbounds i32, ptr %676, i64 -1 - store i32 %dec.i.pre-phi.i.i2740, ptr %arrayidx.i.i42.i, align 4 - %681 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i43.i = icmp eq ptr %680, null - br i1 %tobool.not.i.i.i.i43.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2743, label %if.then.i.i.i.i44.i - -if.then.i.i.i.i44.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2739 - %m_ref_count.i.i.i.i.i45.i = getelementptr inbounds %class.ast, ptr %680, i64 0, i32 2 - %682 = load i32, ptr %m_ref_count.i.i.i.i.i45.i, align 4 - %dec.i.i.i.i.i.i2741 = add i32 %682, -1 - store i32 %dec.i.i.i.i.i.i2741, ptr %m_ref_count.i.i.i.i.i45.i, align 4 - %cmp.i.i.i.i.i2742 = icmp eq i32 %dec.i.i.i.i.i.i2741, 0 - br i1 %cmp.i.i.i.i.i2742, label %if.then2.i.i.i.i.i2753, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2743 - -if.then2.i.i.i.i.i2753: ; preds = %if.then.i.i.i.i44.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %681, ptr noundef nonnull %680) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2743 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2743: ; preds = %if.then2.i.i.i.i.i2753, %if.then.i.i.i.i44.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2739 - %683 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i49.i = icmp eq ptr %683, null - br i1 %cmp.i.i.i49.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i, label %if.end.i.i.i50.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2743 - %.pre.i64.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i65.i = add i32 %.pre.i64.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - -if.end.i.i.i50.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2743 - %arrayidx.i.i.i51.i = getelementptr inbounds i32, ptr %683, i64 -1 - %684 = load i32, ptr %arrayidx.i.i.i51.i, align 4 - %685 = add i32 %684, -1 - %686 = zext i32 %685 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i: ; preds = %if.end.i.i.i50.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i - %dec.i.pre-phi.i53.i = phi i32 [ %.pre1.i65.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i ], [ %685, %if.end.i.i.i50.i ] - %retval.0.i.i.i54.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i ], [ %686, %if.end.i.i.i50.i ] - %arrayidx.i1.i.i55.i = getelementptr inbounds ptr, ptr %683, i64 %retval.0.i.i.i54.i - %687 = load ptr, ptr %arrayidx.i1.i.i55.i, align 8 - %arrayidx.i.i56.i = getelementptr inbounds i32, ptr %683, i64 -1 - store i32 %dec.i.pre-phi.i53.i, ptr %arrayidx.i.i56.i, align 4 - %688 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i57.i = icmp eq ptr %687, null - br i1 %tobool.not.i.i.i.i57.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i, label %if.then.i.i.i.i58.i - -if.then.i.i.i.i58.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - %m_ref_count.i.i.i.i.i59.i = getelementptr inbounds %class.ast, ptr %687, i64 0, i32 2 - %689 = load i32, ptr %m_ref_count.i.i.i.i.i59.i, align 4 - %dec.i.i.i.i.i60.i = add i32 %689, -1 - store i32 %dec.i.i.i.i.i60.i, ptr %m_ref_count.i.i.i.i.i59.i, align 4 - %cmp.i.i.i.i61.i = icmp eq i32 %dec.i.i.i.i.i60.i, 0 - br i1 %cmp.i.i.i.i61.i, label %if.then2.i.i.i.i62.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - -if.then2.i.i.i.i62.i: ; preds = %if.then.i.i.i.i58.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %688, ptr noundef nonnull %687) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i: ; preds = %if.then2.i.i.i.i62.i, %if.then.i.i.i.i58.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - %690 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i68.i = icmp eq ptr %690, null - br i1 %tobool.not.i.i.i.i68.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i, label %if.then.i.i.i.i69.i - -if.then.i.i.i.i69.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - %m_ref_count.i.i.i.i.i70.i = getelementptr inbounds %class.ast, ptr %690, i64 0, i32 2 - %691 = load i32, ptr %m_ref_count.i.i.i.i.i70.i, align 4 - %inc.i.i.i.i.i71.i = add i32 %691, 1 - store i32 %inc.i.i.i.i.i71.i, ptr %m_ref_count.i.i.i.i.i70.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i: ; preds = %if.then.i.i.i.i69.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - %692 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i74.i = icmp eq ptr %692, null - br i1 %cmp.i.i74.i, label %if.then.i.i83.i, label %lor.lhs.false.i.i75.i - -lor.lhs.false.i.i75.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - %arrayidx.i.i76.i = getelementptr inbounds i32, ptr %692, i64 -1 - %693 = load i32, ptr %arrayidx.i.i76.i, align 4 - %arrayidx4.i.i77.i = getelementptr inbounds i32, ptr %692, i64 -2 - %694 = load i32, ptr %arrayidx4.i.i77.i, align 4 - %cmp5.i.i78.i = icmp eq i32 %693, %694 - br i1 %cmp5.i.i78.i, label %if.then.i.i83.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - -if.then.i.i83.i: ; preds = %lor.lhs.false.i.i75.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - %.pre.i.i84.i = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i85.i = getelementptr inbounds i32, ptr %.pre.i.i84.i, i64 -1 - %.pre1.i.i86.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i85.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i: ; preds = %if.then.i.i83.i, %lor.lhs.false.i.i75.i - %695 = phi i32 [ %.pre1.i.i86.i, %if.then.i.i83.i ], [ %693, %lor.lhs.false.i.i75.i ] - %696 = phi ptr [ %.pre.i.i84.i, %if.then.i.i83.i ], [ %692, %lor.lhs.false.i.i75.i ] - %idx.ext.i.i79.i = zext i32 %695 to i64 - %add.ptr.i.i80.i = getelementptr inbounds ptr, ptr %696, i64 %idx.ext.i.i79.i - store ptr %690, ptr %add.ptr.i.i80.i, align 8 - %697 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i81.i = getelementptr inbounds i32, ptr %697, i64 -1 - %698 = load i32, ptr %arrayidx10.i.i81.i, align 4 - %inc.i.i82.i = add i32 %698, 1 - store i32 %inc.i.i82.i, ptr %arrayidx10.i.i81.i, align 4 - %bf.load38.i = load i32, ptr %625, align 8 - %bf.clear39.i = and i32 %bf.load38.i, 1 - %tobool40.i.not = icmp eq i32 %bf.clear39.i, 0 - br i1 %tobool40.i.not, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i, label %if.then.i.i2752 - -if.then.i.i2752: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - %699 = load ptr, ptr %m_r.i48.i, align 8 - call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %699) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i: ; preds = %if.then.i.i2752, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - %700 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i89.i = getelementptr inbounds i32, ptr %700, i64 -1 - %701 = load i32, ptr %arrayidx.i89.i, align 4 - %dec.i.i2745 = add i32 %701, -1 - store i32 %dec.i.i2745, ptr %arrayidx.i89.i, align 4 - %this.val15.i2746 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i90.i = icmp eq ptr %this.val15.i2746, null - br i1 %cmp.i.i90.i, label %if.end42.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2747 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2747: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i - %arrayidx.i.i91.i = getelementptr inbounds i32, ptr %this.val15.i2746, i64 -1 - %702 = load i32, ptr %arrayidx.i.i91.i, align 4 - %cmp3.i.i92.i = icmp eq i32 %702, 0 - br i1 %cmp3.i.i92.i, label %if.end42.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2748 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2748: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2747 - %703 = add i32 %702, -1 - %704 = zext i32 %703 to i64 - %m_new_child.i.i2749 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i2746, i64 %704, i32 1 - %bf.load.i.i2750 = load i32, ptr %m_new_child.i.i2749, align 8 - %bf.set.i.i2751 = or i32 %bf.load.i.i2750, 2 - store i32 %bf.set.i.i2751, ptr %m_new_child.i.i2749, align 8 - br label %if.end42.i - -if.end42.i: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2747, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2748, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2718 - %705 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i95.i = icmp eq ptr %705, null - br i1 %tobool.not.i3.i95.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit, label %if.then.i.i.i96.i - -if.then.i.i.i96.i: ; preds = %if.end42.i - %706 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i98.i = getelementptr inbounds %class.ast, ptr %705, i64 0, i32 2 - %707 = load i32, ptr %m_ref_count.i.i.i.i98.i, align 4 - %dec.i.i.i.i99.i = add i32 %707, -1 - store i32 %dec.i.i.i.i99.i, ptr %m_ref_count.i.i.i.i98.i, align 4 - %cmp.i.i.i100.i = icmp eq i32 %dec.i.i.i.i99.i, 0 - br i1 %cmp.i.i.i100.i, label %if.then2.i.i.i101.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit - -if.then2.i.i.i101.i: ; preds = %if.then.i.i.i96.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %706, ptr noundef nonnull %705) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit: ; preds = %if.end42.i, %if.then.i.i.i96.i, %if.then2.i.i.i101.i - store ptr null, ptr %m_r.i48.i, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.end.i.i414: ; preds = %if.else.i2700, %land.rhs.i.i.i, %land.lhs.true.i2691, %if.end14.i, %_ZNK11ast_manager6is_iteEPK4expr.exit.i, %while.body.i.i413 - %idxprom.i2685 = zext nneg i32 %bf.lshr3.i.i364 to i64 - %arrayidx.i2686 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 3, i64 %idxprom.i2685 - %708 = load ptr, ptr %arrayidx.i2686, align 8 - %bf.shl.i.i416 = add i32 %bf.lshr.mask.i, 64 - %bf.clear13.i.i = and i32 %bf.load2.i.i363, 63 - %bf.set.i.i417 = or disjoint i32 %bf.shl.i.i416, %bf.clear13.i.i - store i32 %bf.set.i.i417, ptr %625, align 8 - %bf.lshr15.i.i = lshr i32 %bf.load2.i.i363, 4 - %bf.clear16.i.i = and i32 %bf.lshr15.i.i, 3 - %call17.i.i418 = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %708, i32 noundef %bf.clear16.i.i) - br i1 %call17.i.i418, label %while.cond.i.i362, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, !llvm.loop !57 - -while.end.i.i365: ; preds = %while.cond.i.i362 - %709 = load ptr, ptr %m_decl.i.i.i.i, align 8 - %710 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i2642 = icmp eq ptr %710, null - br i1 %cmp.i.i2642, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2647, label %if.end.i.i2643 - -if.end.i.i2643: ; preds = %while.end.i.i365 - %arrayidx.i.i2644 = getelementptr inbounds i32, ptr %710, i64 -1 - %711 = load i32, ptr %arrayidx.i.i2644, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2647 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2647: ; preds = %while.end.i.i365, %if.end.i.i2643 - %retval.0.i.i2646 = phi i32 [ %711, %if.end.i.i2643 ], [ 0, %while.end.i.i365 ] - %712 = load i32, ptr %m_spos.i, align 4 - %sub53.i.i = sub i32 %retval.0.i.i2646, %712 - %idx.ext.i.i369 = zext i32 %712 to i64 - %add.ptr.i.i370 = getelementptr inbounds ptr, ptr %710, i64 %idx.ext.i.i369 - %this.val59.i.i371 = load ptr, ptr %585, align 8 - store ptr null, ptr %new_t.i.i202, align 8 - store ptr %this.val59.i.i371, ptr %m_manager.i2638, align 8 - %713 = load ptr, ptr %m_cfg.i.i373, align 8 - %call58.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %713, ptr noundef nonnull %709, i32 noundef %sub53.i.i, ptr noundef %add.ptr.i.i370, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i) - to label %invoke.cont.i.i376 unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -invoke.cont.i.i376: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2647 - %cmp59.not.i.i = icmp eq i32 %call58.i.i, 5 - br i1 %cmp59.not.i.i, label %if.else167.i.i, label %if.then60.i.i - -if.then60.i.i: ; preds = %invoke.cont.i.i376 - %714 = load i32, ptr %m_spos.i, align 4 - %715 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i2612 = icmp eq ptr %715, null - br i1 %cmp.i.i.i2612, label %invoke.cont63.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2613 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2613: ; preds = %if.then60.i.i - %arrayidx.i.i.i2616 = getelementptr inbounds i32, ptr %715, i64 -1 - %716 = load i32, ptr %arrayidx.i.i.i2616, align 4 - %717 = zext i32 %716 to i64 - %add.ptr.i.i2617 = getelementptr inbounds ptr, ptr %715, i64 %717 - %cmp3.i.i2618 = icmp ugt i32 %716, %714 - br i1 %cmp3.i.i2618, label %for.body.i.i2621.preheader, label %if.then.i.i2619 - -for.body.i.i2621.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2613 - %idx.ext.i2614 = zext i32 %714 to i64 - %add.ptr.i2615 = getelementptr inbounds ptr, ptr %715, i64 %idx.ext.i2614 - br label %for.body.i.i2621 - -for.body.i.i2621: ; preds = %for.body.i.i2621.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2628 - %it.04.i.i2622 = phi ptr [ %incdec.ptr.i.i2629, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2628 ], [ %add.ptr.i2615, %for.body.i.i2621.preheader ] - %718 = load ptr, ptr %it.04.i.i2622, align 8 - %719 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i.i2623 = icmp eq ptr %718, null - br i1 %tobool.not.i.i.i.i.i2623, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2628, label %if.then.i.i.i.i.i2624 - -if.then.i.i.i.i.i2624: ; preds = %for.body.i.i2621 - %m_ref_count.i.i.i.i.i.i2625 = getelementptr inbounds %class.ast, ptr %718, i64 0, i32 2 - %720 = load i32, ptr %m_ref_count.i.i.i.i.i.i2625, align 4 - %dec.i.i.i.i.i.i2626 = add i32 %720, -1 - store i32 %dec.i.i.i.i.i.i2626, ptr %m_ref_count.i.i.i.i.i.i2625, align 4 - %cmp.i.i.i.i.i2627 = icmp eq i32 %dec.i.i.i.i.i.i2626, 0 - br i1 %cmp.i.i.i.i.i2627, label %if.then2.i.i.i.i.i2634, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2628 - -if.then2.i.i.i.i.i2634: ; preds = %if.then.i.i.i.i.i2624 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %719, ptr noundef nonnull %718) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2628 unwind label %lpad.i.i375.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2628: ; preds = %if.then2.i.i.i.i.i2634, %if.then.i.i.i.i.i2624, %for.body.i.i2621 - %incdec.ptr.i.i2629 = getelementptr inbounds ptr, ptr %it.04.i.i2622, i64 1 - %cmp.i.i2630 = icmp ult ptr %incdec.ptr.i.i2629, %add.ptr.i.i2617 - br i1 %cmp.i.i2630, label %for.body.i.i2621, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2631, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2631: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2628 - %.pre.i2632 = load ptr, ptr %m_nodes.i.i437, align 8 - %tobool.not.i.i2633 = icmp eq ptr %.pre.i2632, null - br i1 %tobool.not.i.i2633, label %invoke.cont63.i.i, label %if.then.i.i2619 - -if.then.i.i2619: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2631, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2613 - %721 = phi ptr [ %.pre.i2632, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2631 ], [ %715, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2613 ] - %arrayidx.i.i2620 = getelementptr inbounds i32, ptr %721, i64 -1 - store i32 %714, ptr %arrayidx.i.i2620, align 4 - br label %invoke.cont63.i.i - -invoke.cont63.i.i: ; preds = %if.then.i.i2619, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2631, %if.then60.i.i - %722 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2589 = icmp eq ptr %722, null - br i1 %tobool.not.i.i.i.i2589, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2593, label %if.then.i.i.i.i2590 - -if.then.i.i.i.i2590: ; preds = %invoke.cont63.i.i - %m_ref_count.i.i.i.i.i2591 = getelementptr inbounds %class.ast, ptr %722, i64 0, i32 2 - %723 = load i32, ptr %m_ref_count.i.i.i.i.i2591, align 4 - %inc.i.i.i.i.i2592 = add i32 %723, 1 - store i32 %inc.i.i.i.i.i2592, ptr %m_ref_count.i.i.i.i.i2591, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2593 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2593: ; preds = %if.then.i.i.i.i2590, %invoke.cont63.i.i - %724 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i2595 = icmp eq ptr %724, null - br i1 %cmp.i.i2595, label %if.then.i.i2604, label %lor.lhs.false.i.i2596 - -lor.lhs.false.i.i2596: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2593 - %arrayidx.i.i2597 = getelementptr inbounds i32, ptr %724, i64 -1 - %725 = load i32, ptr %arrayidx.i.i2597, align 4 - %arrayidx4.i.i2598 = getelementptr inbounds i32, ptr %724, i64 -2 - %726 = load i32, ptr %arrayidx4.i.i2598, align 4 - %cmp5.i.i2599 = icmp eq i32 %725, %726 - br i1 %cmp5.i.i2599, label %if.then.i.i2604, label %if.then71.i.i - -if.then.i.i2604: ; preds = %lor.lhs.false.i.i2596, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2593 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - to label %.noexc2608 unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -.noexc2608: ; preds = %if.then.i.i2604 - %.pre.i.i2605 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i2606 = getelementptr inbounds i32, ptr %.pre.i.i2605, i64 -1 - %.pre1.i.i2607 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2606, align 4 - br label %if.then71.i.i - -if.then71.i.i: ; preds = %.noexc2608, %lor.lhs.false.i.i2596 - %727 = phi i32 [ %.pre1.i.i2607, %.noexc2608 ], [ %725, %lor.lhs.false.i.i2596 ] - %728 = phi ptr [ %.pre.i.i2605, %.noexc2608 ], [ %724, %lor.lhs.false.i.i2596 ] - %idx.ext.i.i2600 = zext i32 %727 to i64 - %add.ptr.i.i2601 = getelementptr inbounds ptr, ptr %728, i64 %idx.ext.i.i2600 - store ptr %722, ptr %add.ptr.i.i2601, align 8 - %729 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i2602 = getelementptr inbounds i32, ptr %729, i64 -1 - %730 = load i32, ptr %arrayidx10.i.i2602, align 4 - %inc.i.i2603 = add i32 %730, 1 - store i32 %inc.i.i2603, ptr %arrayidx10.i.i2602, align 4 - %bf.load76.i.i = load i32, ptr %625, align 8 - %bf.clear77.i.i = and i32 %bf.load76.i.i, 1 - %tobool.i.i380.not = icmp eq i32 %bf.clear77.i.i, 0 - br i1 %tobool.i.i380.not, label %invoke.cont78.i.i, label %if.then.i2586 - -if.then.i2586: ; preds = %if.then71.i.i - %731 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %731) - to label %invoke.cont78.i.i unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -invoke.cont78.i.i: ; preds = %if.then71.i.i, %if.then.i2586 - %732 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2582 = getelementptr inbounds i32, ptr %732, i64 -1 - %733 = load i32, ptr %arrayidx.i2582, align 4 - %dec.i2583 = add i32 %733, -1 - store i32 %dec.i2583, ptr %arrayidx.i2582, align 4 - %this.val62.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2572 = icmp eq ptr %this.val62.i.i, null - br i1 %cmp.i.i2572, label %invoke.cont80.i.i382, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2573 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2573: ; preds = %invoke.cont78.i.i - %arrayidx.i.i2574 = getelementptr inbounds i32, ptr %this.val62.i.i, i64 -1 - %734 = load i32, ptr %arrayidx.i.i2574, align 4 - %cmp3.i.i2575 = icmp eq i32 %734, 0 - br i1 %cmp3.i.i2575, label %invoke.cont80.i.i382, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2576 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2576: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2573 - %735 = add i32 %734, -1 - %736 = zext i32 %735 to i64 - %m_new_child.i2577 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val62.i.i, i64 %736, i32 1 - %bf.load.i2578 = load i32, ptr %m_new_child.i2577, align 8 - %bf.set.i2579 = or i32 %bf.load.i2578, 2 - store i32 %bf.set.i2579, ptr %m_new_child.i2577, align 8 - br label %invoke.cont80.i.i382 - -invoke.cont80.i.i382: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2576, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2573, %invoke.cont78.i.i - %737 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2563 = icmp eq ptr %737, null - br i1 %tobool.not.i3.i2563, label %cleanup.i.i383.thread, label %if.then.i.i.i2564 - -if.then.i.i.i2564: ; preds = %invoke.cont80.i.i382 - %738 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i2566 = getelementptr inbounds %class.ast, ptr %737, i64 0, i32 2 - %739 = load i32, ptr %m_ref_count.i.i.i.i2566, align 4 - %dec.i.i.i.i2567 = add i32 %739, -1 - store i32 %dec.i.i.i.i2567, ptr %m_ref_count.i.i.i.i2566, align 4 - %cmp.i.i.i2568 = icmp eq i32 %dec.i.i.i.i2567, 0 - br i1 %cmp.i.i.i2568, label %if.then2.i.i.i2569, label %cleanup.i.i383.thread - -if.then2.i.i.i2569: ; preds = %if.then.i.i.i2564 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %738, ptr noundef nonnull %737) - to label %cleanup.i.i383.thread unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -lpad.i.i375.loopexit: ; preds = %if.then2.i.i.i.i.i2467 - %lpad.loopexit = landingpad { ptr, i32 } +sw.bb.i.i.i278: ; preds = %sw.bb.i.i262 + %m_num_args.i.i.i.i279 = getelementptr inbounds %class.app, ptr %624, i64 0, i32 2 + %643 = load i32, ptr %m_num_args.i.i.i.i279, align 8 + %m_decl.i.i.i.i.i.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 1 + %m_spos.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i, i32 2 + %arrayidx.i17.i.i.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 3, i64 2 + %arrayidx.i.i.i25.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 3, i64 1 + br label %while.cond.i.i.i280 + +while.cond.i.i.i280: ; preds = %if.end.i.i.i323, %sw.bb.i.i.i278 + %bf.load2.i.i.i281 = load i32, ptr %626, align 8 + %bf.lshr3.i.i.i282 = lshr i32 %bf.load2.i.i.i281, 6 + %cmp.i26.i.i = icmp ult i32 %bf.lshr3.i.i.i282, %643 + br i1 %cmp.i26.i.i, label %while.body.i.i.i322, label %while.end.i.i.i283 + +while.body.i.i.i322: ; preds = %while.cond.i.i.i280 + %bf.lshr.mask.i.i.i.i = and i32 %bf.load2.i.i.i281, -64 + %cmp.i.i30.i.i = icmp eq i32 %bf.lshr.mask.i.i.i.i, 64 + br i1 %cmp.i.i30.i.i, label %land.lhs.true.i.i.i.i, label %if.end.i.i.i323 + +land.lhs.true.i.i.i.i: ; preds = %while.body.i.i.i322 + %bf.load.i.i.i.i.i.i.i = load i32, ptr %m_kind.i.i.i108, align 4 + %bf.clear.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i, 65535 + %cmp.i.i.i.i.i.i327 = icmp eq i32 %bf.clear.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i327, label %land.rhs.i.i.i.i.i.i, label %if.end.i.i.i323 + +land.rhs.i.i.i.i.i.i: ; preds = %land.lhs.true.i.i.i.i + %644 = load ptr, ptr %m_decl.i.i.i.i.i.i.i, align 8 + %m_info.i.i.i.i.i.i.i.i = getelementptr inbounds %class.decl, ptr %644, i64 0, i32 2 + %645 = load ptr, ptr %m_info.i.i.i.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i328 = icmp eq ptr %645, null + br i1 %tobool.not.i.i.i.i.i.i.i.i328, label %if.end.i.i.i323, label %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i + +_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i.i + %646 = load i32, ptr %645, align 8 + %cmp.i.i.i.i.i.i.i.i.i329 = icmp eq i32 %646, 0 + %m_kind.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %645, i64 0, i32 1 + %647 = load i32, ptr %m_kind.i.i.i.i.i.i.i.i.i, align 4 + %cmp2.i.i.i.i.i.i.i.i.i = icmp eq i32 %647, 4 + %648 = select i1 %cmp.i.i.i.i.i.i.i.i.i329, i1 %cmp2.i.i.i.i.i.i.i.i.i, i1 false + br i1 %648, label %if.then.i.i32.i.i, label %if.end.i.i.i323 + +if.then.i.i32.i.i: ; preds = %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i + %649 = load i32, ptr %m_spos.i.i.i.i, align 4 + %650 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %idxprom.i.i.i.i.i.i = zext i32 %649 to i64 + %arrayidx.i.i.i.i.i.i330 = getelementptr inbounds ptr, ptr %650, i64 %idxprom.i.i.i.i.i.i + %651 = load ptr, ptr %arrayidx.i.i.i.i.i.i330, align 8 + %this.val13.i.i.i.i = load ptr, ptr %586, align 8 + %m_true.i.i.i.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i.i.i.i, i64 0, i32 15 + %652 = load ptr, ptr %m_true.i.i.i.i.i, align 8 + %cmp.i.i.i33.i.i = icmp eq ptr %652, %651 + br i1 %cmp.i.i.i33.i.i, label %if.end14.i.i.i.i, label %if.else.i.i.i.i331 + +if.else.i.i.i.i331: ; preds = %if.then.i.i32.i.i + %m_false.i.i.i.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i.i.i.i, i64 0, i32 16 + %653 = load ptr, ptr %m_false.i.i.i.i.i, align 8 + %cmp.i16.i.i.i.i = icmp eq ptr %653, %651 + br i1 %cmp.i16.i.i.i.i, label %if.end14.i.i.i.i, label %if.end.i.i.i323 + +if.end14.i.i.i.i: ; preds = %if.else.i.i.i.i331, %if.then.i.i32.i.i + %arg.0.in.i.i.i.i = phi ptr [ %arrayidx.i.i.i25.i.i, %if.then.i.i32.i.i ], [ %arrayidx.i17.i.i.i.i, %if.else.i.i.i.i331 ] + %arg.0.i.i.i.i = load ptr, ptr %arg.0.in.i.i.i.i, align 8 + %tobool.not.i.i.i.i332 = icmp eq ptr %arg.0.i.i.i.i, null + br i1 %tobool.not.i.i.i.i332, label %if.end.i.i.i323, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i: ; preds = %if.end14.i.i.i.i + %arrayidx.i.i.i.i.i.i.i333 = getelementptr inbounds i32, ptr %650, i64 -1 + %654 = load i32, ptr %arrayidx.i.i.i.i.i.i.i333, align 4 + %655 = zext i32 %654 to i64 + %add.ptr.i.i.i.i.i.i334 = getelementptr inbounds ptr, ptr %650, i64 %655 + %cmp3.i.i.i.i.i.i335 = icmp ugt i32 %654, %649 + br i1 %cmp3.i.i.i.i.i.i335, label %for.body.i.i.i.i.i.i353.preheader, label %if.then.i.i.i.i34.i.i + +for.body.i.i.i.i.i.i353.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + %arrayidx.i.i.i.i.i.i330.le = getelementptr inbounds ptr, ptr %650, i64 %idxprom.i.i.i.i.i.i + br label %for.body.i.i.i.i.i.i353 + +for.body.i.i.i.i.i.i353: ; preds = %for.body.i.i.i.i.i.i353.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i359 + %it.04.i.i.i.i.i.i354 = phi ptr [ %incdec.ptr.i.i.i.i.i.i360, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i359 ], [ %arrayidx.i.i.i.i.i.i330.le, %for.body.i.i.i.i.i.i353.preheader ] + %656 = load ptr, ptr %it.04.i.i.i.i.i.i354, align 8 + %657 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i.i355 = icmp eq ptr %656, null + br i1 %tobool.not.i.i.i.i.i.i.i.i.i355, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i359, label %if.then.i.i.i.i.i.i.i.i.i356 + +if.then.i.i.i.i.i.i.i.i.i356: ; preds = %for.body.i.i.i.i.i.i353 + %m_ref_count.i.i.i.i.i.i.i.i.i.i357 = getelementptr inbounds %class.ast, ptr %656, i64 0, i32 2 + %658 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i357, align 4 + %dec.i.i.i.i.i.i.i.i.i.i358 = add i32 %658, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i.i358, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i357, align 4 + %cmp.i.i.i.i.i21.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i.i358, 0 + br i1 %cmp.i.i.i.i.i21.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i.i362, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i359 + +if.then2.i.i.i.i.i.i.i.i.i362: ; preds = %if.then.i.i.i.i.i.i.i.i.i356 + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %657, ptr noundef nonnull %656) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i359 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i359: ; preds = %if.then2.i.i.i.i.i.i.i.i.i362, %if.then.i.i.i.i.i.i.i.i.i356, %for.body.i.i.i.i.i.i353 + %incdec.ptr.i.i.i.i.i.i360 = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i.i354, i64 1 + %cmp.i.i22.i.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i.i360, %add.ptr.i.i.i.i.i.i334 + br i1 %cmp.i.i22.i.i.i.i, label %for.body.i.i.i.i.i.i353, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i359 + %.pre.i.i.i.i.i361 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i.i.i38.i.i = icmp eq ptr %.pre.i.i.i.i.i361, null + br i1 %tobool.not.i.i.i.i38.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i34.i.i + +if.then.i.i.i.i34.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + %659 = phi ptr [ %.pre.i.i.i.i.i361, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i ], [ %650, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i ] + %arrayidx.i.i20.i.i.i.i = getelementptr inbounds i32, ptr %659, i64 -1 + store i32 %649, ptr %arrayidx.i.i20.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i34.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i336 = getelementptr inbounds %class.ast, ptr %arg.0.i.i.i.i, i64 0, i32 2 + %660 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i336, align 4 + %inc.i.i.i.i.i.i.i.i.i = add i32 %660, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i336, align 4 + %661 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i26.i.i.i.i = icmp eq ptr %661, null + br i1 %cmp.i.i26.i.i.i.i, label %if.then.i.i29.i.i.i.i, label %lor.lhs.false.i.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + %arrayidx.i.i27.i.i.i.i = getelementptr inbounds i32, ptr %661, i64 -1 + %662 = load i32, ptr %arrayidx.i.i27.i.i.i.i, align 4 + %arrayidx4.i.i.i.i.i.i = getelementptr inbounds i32, ptr %661, i64 -2 + %663 = load i32, ptr %arrayidx4.i.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i.i = icmp eq i32 %662, %663 + br i1 %cmp5.i.i.i.i.i.i, label %if.then.i.i29.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + +if.then.i.i29.i.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i.i.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i29.i.i.i.i, %lor.lhs.false.i.i.i.i.i.i + %664 = phi i32 [ %.pre1.i.i.i.i.i.i, %if.then.i.i29.i.i.i.i ], [ %662, %lor.lhs.false.i.i.i.i.i.i ] + %665 = phi ptr [ %.pre.i.i.i.i.i.i, %if.then.i.i29.i.i.i.i ], [ %661, %lor.lhs.false.i.i.i.i.i.i ] + %idx.ext.i.i.i.i.i.i = zext i32 %664 to i64 + %add.ptr.i.i28.i.i.i.i = getelementptr inbounds ptr, ptr %665, i64 %idx.ext.i.i.i.i.i.i + store ptr %arg.0.i.i.i.i, ptr %add.ptr.i.i28.i.i.i.i, align 8 + %666 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i.i.i = getelementptr inbounds i32, ptr %666, i64 -1 + %667 = load i32, ptr %arrayidx10.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i337 = add i32 %667, 1 + store i32 %inc.i.i.i.i.i.i337, ptr %arrayidx10.i.i.i.i.i.i, align 4 + %bf.load20.i.i.i.i = load i32, ptr %626, align 8 + %bf.clear.i.i.i.i = and i32 %bf.load20.i.i.i.i, -13 + %bf.set.i.i35.i.i = or disjoint i32 %bf.clear.i.i.i.i, 4 + store i32 %bf.set.i.i35.i.i, ptr %626, align 8 + %bf.lshr22.i.i.i.i = lshr i32 %bf.load20.i.i.i.i, 4 + %bf.clear23.i.i.i.i = and i32 %bf.lshr22.i.i.i.i, 3 + %call24.i.i.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %arg.0.i.i.i.i, i32 noundef %bf.clear23.i.i.i.i) + br i1 %call24.i.i.i.i, label %if.then25.i.i.i.i, label %if.end42.i.i.i.i + +if.then25.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + %668 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i32.i.i.i.i = icmp eq ptr %668, null + br i1 %cmp.i.i.i32.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i, label %if.end.i.i.i.i.i.i.i + +if.end.i.i.i.i.i.i.i: ; preds = %if.then25.i.i.i.i + %arrayidx.i.i.i33.i.i.i.i = getelementptr inbounds i32, ptr %668, i64 -1 + %669 = load i32, ptr %arrayidx.i.i.i33.i.i.i.i, align 4 + %670 = add i32 %669, -1 + %671 = zext i32 %670 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i, %if.then25.i.i.i.i + %retval.0.i.i.i.i.i.i.i = phi i64 [ %671, %if.end.i.i.i.i.i.i.i ], [ 4294967295, %if.then25.i.i.i.i ] + %arrayidx.i1.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %668, i64 %retval.0.i.i.i.i.i.i.i + %672 = load ptr, ptr %arrayidx.i1.i.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i48.i = icmp eq ptr %672, null + br i1 %tobool.not.i.i.i.i48.i, label %if.end.i.i.i.i.i339, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i338 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i338: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + %m_ref_count.i.i.i.i.i36.i.i = getelementptr inbounds %class.ast, ptr %672, i64 0, i32 2 + %673 = load i32, ptr %m_ref_count.i.i.i.i.i36.i.i, align 4 + %inc.i.i.i.i.i37.i.i = add i32 %673, 1 + store i32 %inc.i.i.i.i.i37.i.i, ptr %m_ref_count.i.i.i.i.i36.i.i, align 4 + br label %if.end.i.i.i.i.i339 + +if.end.i.i.i.i.i339: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i338, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + %674 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i.i.i.i = icmp eq ptr %674, null + br i1 %tobool.not.i3.i.i.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i340 + +if.then.i.i.i.i.i.i.i340: ; preds = %if.end.i.i.i.i.i339 + %675 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i.i.i.i.i341 = getelementptr inbounds %class.ast, ptr %674, i64 0, i32 2 + %676 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i341, align 4 + %dec.i.i.i.i.i.i.i.i342 = add i32 %676, -1 + store i32 %dec.i.i.i.i.i.i.i.i342, ptr %m_ref_count.i.i.i.i.i.i.i.i341, align 4 + %cmp.i.i.i34.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i342, 0 + br i1 %cmp.i.i.i34.i.i.i.i, label %if.then2.i.i.i.i.i.i.i352, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + +if.then2.i.i.i.i.i.i.i352: ; preds = %if.then.i.i.i.i.i.i.i340 + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %675, ptr noundef nonnull %674) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i352, %if.then.i.i.i.i.i.i.i340, %if.end.i.i.i.i.i339 + store ptr %672, ptr %m_r.i64.i.i, align 8 + %677 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i37.i.i.i.i = icmp eq ptr %677, null + br i1 %cmp.i.i.i37.i.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i, label %if.end.i.i.i38.i.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + %.pre.i46.i.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i.i.i351 = add i32 %.pre.i46.i.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + +if.end.i.i.i38.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + %arrayidx.i.i.i39.i.i.i.i = getelementptr inbounds i32, ptr %677, i64 -1 + %678 = load i32, ptr %arrayidx.i.i.i39.i.i.i.i, align 4 + %679 = add i32 %678, -1 + %680 = zext i32 %679 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i: ; preds = %if.end.i.i.i38.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i + %dec.i.pre-phi.i.i.i.i.i = phi i32 [ %.pre1.i.i.i.i.i351, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i ], [ %679, %if.end.i.i.i38.i.i.i.i ] + %retval.0.i.i.i40.i.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i ], [ %680, %if.end.i.i.i38.i.i.i.i ] + %arrayidx.i1.i.i41.i.i.i.i = getelementptr inbounds ptr, ptr %677, i64 %retval.0.i.i.i40.i.i.i.i + %681 = load ptr, ptr %arrayidx.i1.i.i41.i.i.i.i, align 8 + %arrayidx.i.i42.i.i.i.i = getelementptr inbounds i32, ptr %677, i64 -1 + store i32 %dec.i.pre-phi.i.i.i.i.i, ptr %arrayidx.i.i42.i.i.i.i, align 4 + %682 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i43.i.i.i.i = icmp eq ptr %681, null + br i1 %tobool.not.i.i.i.i43.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i, label %if.then.i.i.i.i44.i.i.i.i + +if.then.i.i.i.i44.i.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + %m_ref_count.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %class.ast, ptr %681, i64 0, i32 2 + %683 = load i32, ptr %m_ref_count.i.i.i.i.i45.i.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i343 = add i32 %683, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i343, ptr %m_ref_count.i.i.i.i.i45.i.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i344 = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i343, 0 + br i1 %cmp.i.i.i.i.i.i.i.i344, label %if.then2.i.i.i.i.i.i.i.i350, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i350: ; preds = %if.then.i.i.i.i44.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %682, ptr noundef nonnull %681) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i350, %if.then.i.i.i.i44.i.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + %684 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i49.i.i.i.i = icmp eq ptr %684, null + br i1 %cmp.i.i.i49.i.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i, label %if.end.i.i.i50.i.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + %.pre.i64.i.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i65.i.i.i.i = add i32 %.pre.i64.i.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + +if.end.i.i.i50.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + %arrayidx.i.i.i51.i.i.i.i = getelementptr inbounds i32, ptr %684, i64 -1 + %685 = load i32, ptr %arrayidx.i.i.i51.i.i.i.i, align 4 + %686 = add i32 %685, -1 + %687 = zext i32 %686 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i: ; preds = %if.end.i.i.i50.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i + %dec.i.pre-phi.i53.i.i.i.i = phi i32 [ %.pre1.i65.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i ], [ %686, %if.end.i.i.i50.i.i.i.i ] + %retval.0.i.i.i54.i.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i ], [ %687, %if.end.i.i.i50.i.i.i.i ] + %arrayidx.i1.i.i55.i.i.i.i = getelementptr inbounds ptr, ptr %684, i64 %retval.0.i.i.i54.i.i.i.i + %688 = load ptr, ptr %arrayidx.i1.i.i55.i.i.i.i, align 8 + %arrayidx.i.i56.i.i.i.i = getelementptr inbounds i32, ptr %684, i64 -1 + store i32 %dec.i.pre-phi.i53.i.i.i.i, ptr %arrayidx.i.i56.i.i.i.i, align 4 + %689 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i57.i.i.i.i = icmp eq ptr %688, null + br i1 %tobool.not.i.i.i.i57.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i, label %if.then.i.i.i.i58.i.i.i.i + +if.then.i.i.i.i58.i.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + %m_ref_count.i.i.i.i.i59.i.i.i.i = getelementptr inbounds %class.ast, ptr %688, i64 0, i32 2 + %690 = load i32, ptr %m_ref_count.i.i.i.i.i59.i.i.i.i, align 4 + %dec.i.i.i.i.i60.i.i.i.i = add i32 %690, -1 + store i32 %dec.i.i.i.i.i60.i.i.i.i, ptr %m_ref_count.i.i.i.i.i59.i.i.i.i, align 4 + %cmp.i.i.i.i61.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i60.i.i.i.i, 0 + br i1 %cmp.i.i.i.i61.i.i.i.i, label %if.then2.i.i.i.i62.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + +if.then2.i.i.i.i62.i.i.i.i: ; preds = %if.then.i.i.i.i58.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %689, ptr noundef nonnull %688) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i: ; preds = %if.then2.i.i.i.i62.i.i.i.i, %if.then.i.i.i.i58.i.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + %691 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i68.i.i.i.i = icmp eq ptr %691, null + br i1 %tobool.not.i.i.i.i68.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i, label %if.then.i.i.i.i69.i.i.i.i + +if.then.i.i.i.i69.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + %m_ref_count.i.i.i.i.i70.i.i.i.i = getelementptr inbounds %class.ast, ptr %691, i64 0, i32 2 + %692 = load i32, ptr %m_ref_count.i.i.i.i.i70.i.i.i.i, align 4 + %inc.i.i.i.i.i71.i.i.i.i = add i32 %692, 1 + store i32 %inc.i.i.i.i.i71.i.i.i.i, ptr %m_ref_count.i.i.i.i.i70.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i: ; preds = %if.then.i.i.i.i69.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + %693 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i74.i.i.i.i = icmp eq ptr %693, null + br i1 %cmp.i.i74.i.i.i.i, label %if.then.i.i83.i.i.i.i, label %lor.lhs.false.i.i75.i.i.i.i + +lor.lhs.false.i.i75.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + %arrayidx.i.i76.i.i.i.i = getelementptr inbounds i32, ptr %693, i64 -1 + %694 = load i32, ptr %arrayidx.i.i76.i.i.i.i, align 4 + %arrayidx4.i.i77.i.i.i.i = getelementptr inbounds i32, ptr %693, i64 -2 + %695 = load i32, ptr %arrayidx4.i.i77.i.i.i.i, align 4 + %cmp5.i.i78.i.i.i.i = icmp eq i32 %694, %695 + br i1 %cmp5.i.i78.i.i.i.i, label %if.then.i.i83.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + +if.then.i.i83.i.i.i.i: ; preds = %lor.lhs.false.i.i75.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i84.i.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i85.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i84.i.i.i.i, i64 -1 + %.pre1.i.i86.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i85.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i: ; preds = %if.then.i.i83.i.i.i.i, %lor.lhs.false.i.i75.i.i.i.i + %696 = phi i32 [ %.pre1.i.i86.i.i.i.i, %if.then.i.i83.i.i.i.i ], [ %694, %lor.lhs.false.i.i75.i.i.i.i ] + %697 = phi ptr [ %.pre.i.i84.i.i.i.i, %if.then.i.i83.i.i.i.i ], [ %693, %lor.lhs.false.i.i75.i.i.i.i ] + %idx.ext.i.i79.i.i.i.i = zext i32 %696 to i64 + %add.ptr.i.i80.i.i.i.i = getelementptr inbounds ptr, ptr %697, i64 %idx.ext.i.i79.i.i.i.i + store ptr %691, ptr %add.ptr.i.i80.i.i.i.i, align 8 + %698 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i81.i.i.i.i = getelementptr inbounds i32, ptr %698, i64 -1 + %699 = load i32, ptr %arrayidx10.i.i81.i.i.i.i, align 4 + %inc.i.i82.i.i.i.i = add i32 %699, 1 + store i32 %inc.i.i82.i.i.i.i, ptr %arrayidx10.i.i81.i.i.i.i, align 4 + %bf.load38.i.i.i.i = load i32, ptr %626, align 8 + %bf.clear39.i.i.i.i = and i32 %bf.load38.i.i.i.i, 1 + %tobool40.not.i.i.i.i = icmp eq i32 %bf.clear39.i.i.i.i, 0 + br i1 %tobool40.not.i.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i.i.i.i, label %if.then.i.i.i.i49.i + +if.then.i.i.i.i49.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + %700 = load ptr, ptr %m_r.i64.i.i, align 8 + call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %700) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i.i.i.i: ; preds = %if.then.i.i.i.i49.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + %701 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i89.i.i.i.i = getelementptr inbounds i32, ptr %701, i64 -1 + %702 = load i32, ptr %arrayidx.i89.i.i.i.i, align 4 + %dec.i.i.i.i50.i = add i32 %702, -1 + store i32 %dec.i.i.i.i50.i, ptr %arrayidx.i89.i.i.i.i, align 4 + %this.val15.i.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i90.i.i.i.i = icmp eq ptr %this.val15.i.i.i.i, null + br i1 %cmp.i.i90.i.i.i.i, label %if.end42.i.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i345 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i345: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i.i.i.i + %arrayidx.i.i91.i.i.i.i = getelementptr inbounds i32, ptr %this.val15.i.i.i.i, i64 -1 + %703 = load i32, ptr %arrayidx.i.i91.i.i.i.i, align 4 + %cmp3.i.i92.i.i.i.i = icmp eq i32 %703, 0 + br i1 %cmp3.i.i92.i.i.i.i, label %if.end42.i.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i346 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i346: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i345 + %704 = add i32 %703, -1 + %705 = zext i32 %704 to i64 + %m_new_child.i.i.i.i.i347 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i.i.i.i, i64 %705, i32 1 + %bf.load.i.i.i.i.i348 = load i32, ptr %m_new_child.i.i.i.i.i347, align 8 + %bf.set.i.i.i.i.i349 = or i32 %bf.load.i.i.i.i.i348, 2 + store i32 %bf.set.i.i.i.i.i349, ptr %m_new_child.i.i.i.i.i347, align 8 + br label %if.end42.i.i.i.i + +if.end42.i.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i346, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i345, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + %706 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i95.i.i.i.i = icmp eq ptr %706, null + br i1 %tobool.not.i3.i95.i.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i, label %if.then.i.i.i96.i.i.i.i + +if.then.i.i.i96.i.i.i.i: ; preds = %if.end42.i.i.i.i + %707 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i98.i.i.i.i = getelementptr inbounds %class.ast, ptr %706, i64 0, i32 2 + %708 = load i32, ptr %m_ref_count.i.i.i.i98.i.i.i.i, align 4 + %dec.i.i.i.i99.i.i.i.i = add i32 %708, -1 + store i32 %dec.i.i.i.i99.i.i.i.i, ptr %m_ref_count.i.i.i.i98.i.i.i.i, align 4 + %cmp.i.i.i100.i.i.i.i = icmp eq i32 %dec.i.i.i.i99.i.i.i.i, 0 + br i1 %cmp.i.i.i100.i.i.i.i, label %if.then2.i.i.i101.i.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + +if.then2.i.i.i101.i.i.i.i: ; preds = %if.then.i.i.i96.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %707, ptr noundef nonnull %706) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i: ; preds = %if.then2.i.i.i101.i.i.i.i, %if.then.i.i.i96.i.i.i.i, %if.end42.i.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.end.i.i.i323: ; preds = %if.end14.i.i.i.i, %if.else.i.i.i.i331, %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i, %land.rhs.i.i.i.i.i.i, %land.lhs.true.i.i.i.i, %while.body.i.i.i322 + %idxprom.i.i.i.i324 = zext nneg i32 %bf.lshr3.i.i.i282 to i64 + %arrayidx.i.i31.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 3, i64 %idxprom.i.i.i.i324 + %709 = load ptr, ptr %arrayidx.i.i31.i.i, align 8 + %bf.shl.i.i.i325 = add i32 %bf.lshr.mask.i.i.i.i, 64 + %bf.clear13.i.i.i = and i32 %bf.load2.i.i.i281, 63 + %bf.set.i.i.i326 = or disjoint i32 %bf.shl.i.i.i325, %bf.clear13.i.i.i + store i32 %bf.set.i.i.i326, ptr %626, align 8 + %bf.lshr15.i.i.i = lshr i32 %bf.load2.i.i.i281, 4 + %bf.clear16.i.i.i = and i32 %bf.lshr15.i.i.i, 3 + %call17.i.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %709, i32 noundef %bf.clear16.i.i.i) + br i1 %call17.i.i.i, label %while.cond.i.i.i280, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, !llvm.loop !57 + +while.end.i.i.i283: ; preds = %while.cond.i.i.i280 + %710 = load ptr, ptr %m_decl.i.i.i.i.i.i.i, align 8 + %711 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i90.i.i.i = icmp eq ptr %711, null + br i1 %cmp.i.i90.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i284, label %if.end.i.i91.i.i.i + +if.end.i.i91.i.i.i: ; preds = %while.end.i.i.i283 + %arrayidx.i.i92.i.i.i = getelementptr inbounds i32, ptr %711, i64 -1 + %712 = load i32, ptr %arrayidx.i.i92.i.i.i, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i284 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i284: ; preds = %if.end.i.i91.i.i.i, %while.end.i.i.i283 + %retval.0.i.i.i.i.i285 = phi i32 [ %712, %if.end.i.i91.i.i.i ], [ 0, %while.end.i.i.i283 ] + %713 = load i32, ptr %m_spos.i.i.i.i, align 4 + %sub53.i.i.i = sub i32 %retval.0.i.i.i.i.i285, %713 + %idx.ext.i.i.i286 = zext i32 %713 to i64 + %add.ptr.i.i.i287 = getelementptr inbounds ptr, ptr %711, i64 %idx.ext.i.i.i286 + %this.val59.i.i.i288 = load ptr, ptr %586, align 8 + store ptr null, ptr %new_t.i.i.i44, align 8 + store ptr %this.val59.i.i.i288, ptr %m_manager.i.i.i.i85, align 8 + %714 = load ptr, ptr %m_cfg.i.i.i86, align 8 + %call58.i.i.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %714, ptr noundef nonnull %710, i32 noundef %sub53.i.i.i, ptr noundef %add.ptr.i.i.i287, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i64.i.i) + to label %invoke.cont.i.i.i289 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont.i.i.i289: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i284 + %cmp59.not.i.i.i = icmp eq i32 %call58.i.i.i, 5 + br i1 %cmp59.not.i.i.i, label %if.else167.i.i.i, label %if.then60.i.i.i + +if.then60.i.i.i: ; preds = %invoke.cont.i.i.i289 + %715 = load i32, ptr %m_spos.i.i.i.i, align 4 + %716 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i97.i.i.i = icmp eq ptr %716, null + br i1 %cmp.i.i.i97.i.i.i, label %invoke.cont63.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i290 + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i290: ; preds = %if.then60.i.i.i + %arrayidx.i.i.i98.i.i.i = getelementptr inbounds i32, ptr %716, i64 -1 + %717 = load i32, ptr %arrayidx.i.i.i98.i.i.i, align 4 + %718 = zext i32 %717 to i64 + %add.ptr.i.i.i.i.i291 = getelementptr inbounds ptr, ptr %716, i64 %718 + %cmp3.i.i99.i.i.i = icmp ugt i32 %717, %715 + br i1 %cmp3.i.i99.i.i.i, label %for.body.i.i.preheader.i.i.i307, label %if.then.i.i100.i.i.i + +for.body.i.i.preheader.i.i.i307: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i290 + %idx.ext.i.i27.i.i = zext i32 %715 to i64 + %add.ptr.i.i28.i.i = getelementptr inbounds ptr, ptr %716, i64 %idx.ext.i.i27.i.i + br label %for.body.i.i.i.i.i308 + +for.body.i.i.i.i.i308: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i311, %for.body.i.i.preheader.i.i.i307 + %it.04.i.i.i.i.i309 = phi ptr [ %incdec.ptr.i.i.i.i.i312, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i311 ], [ %add.ptr.i.i28.i.i, %for.body.i.i.preheader.i.i.i307 ] + %719 = load ptr, ptr %it.04.i.i.i.i.i309, align 8 + %720 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i102.i.i.i = icmp eq ptr %719, null + br i1 %tobool.not.i.i.i.i.i102.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i311, label %if.then.i.i.i.i.i.i.i.i310 + +if.then.i.i.i.i.i.i.i.i310: ; preds = %for.body.i.i.i.i.i308 + %m_ref_count.i.i.i.i.i.i103.i.i.i = getelementptr inbounds %class.ast, ptr %719, i64 0, i32 2 + %721 = load i32, ptr %m_ref_count.i.i.i.i.i.i103.i.i.i, align 4 + %dec.i.i.i.i.i.i104.i.i.i = add i32 %721, -1 + store i32 %dec.i.i.i.i.i.i104.i.i.i, ptr %m_ref_count.i.i.i.i.i.i103.i.i.i, align 4 + %cmp.i.i.i.i.i105.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i104.i.i.i, 0 + br i1 %cmp.i.i.i.i.i105.i.i.i, label %if.then2.i.i.i.i.i108.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i311 + +if.then2.i.i.i.i.i108.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i310 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %720, ptr noundef nonnull %719) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i311 unwind label %lpad.loopexit.split-lp.loopexit.i.i.i314 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i311: ; preds = %if.then2.i.i.i.i.i108.i.i.i, %if.then.i.i.i.i.i.i.i.i310, %for.body.i.i.i.i.i308 + %incdec.ptr.i.i.i.i.i312 = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i309, i64 1 + %cmp.i.i106.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i312, %add.ptr.i.i.i.i.i291 + br i1 %cmp.i.i106.i.i.i, label %for.body.i.i.i.i.i308, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i313, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i313: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i311 + %.pre.i.i29.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i107.i.i.i = icmp eq ptr %.pre.i.i29.i.i, null + br i1 %tobool.not.i.i107.i.i.i, label %invoke.cont63.i.i.i, label %if.then.i.i100.i.i.i + +if.then.i.i100.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i313, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i290 + %722 = phi ptr [ %.pre.i.i29.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i313 ], [ %716, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i290 ] + %arrayidx.i.i101.i.i.i = getelementptr inbounds i32, ptr %722, i64 -1 + store i32 %715, ptr %arrayidx.i.i101.i.i.i, align 4 + br label %invoke.cont63.i.i.i + +invoke.cont63.i.i.i: ; preds = %if.then.i.i100.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i313, %if.then60.i.i.i + %723 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i292 = icmp eq ptr %723, null + br i1 %tobool.not.i.i.i.i.i.i.i292, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i294, label %if.then.i.i.i.i110.i.i.i + +if.then.i.i.i.i110.i.i.i: ; preds = %invoke.cont63.i.i.i + %m_ref_count.i.i.i.i.i111.i.i.i = getelementptr inbounds %class.ast, ptr %723, i64 0, i32 2 + %724 = load i32, ptr %m_ref_count.i.i.i.i.i111.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i293 = add i32 %724, 1 + store i32 %inc.i.i.i.i.i.i.i.i293, ptr %m_ref_count.i.i.i.i.i111.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i294 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i294: ; preds = %if.then.i.i.i.i110.i.i.i, %invoke.cont63.i.i.i + %725 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i113.i.i.i = icmp eq ptr %725, null + br i1 %cmp.i.i113.i.i.i, label %if.then.i.i116.i.i.i, label %lor.lhs.false.i.i.i.i.i295 + +lor.lhs.false.i.i.i.i.i295: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i294 + %arrayidx.i.i114.i.i.i = getelementptr inbounds i32, ptr %725, i64 -1 + %726 = load i32, ptr %arrayidx.i.i114.i.i.i, align 4 + %arrayidx4.i.i.i.i.i296 = getelementptr inbounds i32, ptr %725, i64 -2 + %727 = load i32, ptr %arrayidx4.i.i.i.i.i296, align 4 + %cmp5.i.i.i.i.i297 = icmp eq i32 %726, %727 + br i1 %cmp5.i.i.i.i.i297, label %if.then.i.i116.i.i.i, label %if.then71.i.i.i + +if.then.i.i116.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i294 + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc119.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc119.i.i.i: ; preds = %if.then.i.i116.i.i.i + %.pre.i.i117.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i306 = getelementptr inbounds i32, ptr %.pre.i.i117.i.i.i, i64 -1 + %.pre1.i.i118.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i306, align 4 + br label %if.then71.i.i.i + +if.then71.i.i.i: ; preds = %.noexc119.i.i.i, %lor.lhs.false.i.i.i.i.i295 + %728 = phi i32 [ %.pre1.i.i118.i.i.i, %.noexc119.i.i.i ], [ %726, %lor.lhs.false.i.i.i.i.i295 ] + %729 = phi ptr [ %.pre.i.i117.i.i.i, %.noexc119.i.i.i ], [ %725, %lor.lhs.false.i.i.i.i.i295 ] + %idx.ext.i.i.i.i.i298 = zext i32 %728 to i64 + %add.ptr.i.i115.i.i.i = getelementptr inbounds ptr, ptr %729, i64 %idx.ext.i.i.i.i.i298 + store ptr %723, ptr %add.ptr.i.i115.i.i.i, align 8 + %730 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i.i299 = getelementptr inbounds i32, ptr %730, i64 -1 + %731 = load i32, ptr %arrayidx10.i.i.i.i.i299, align 4 + %inc.i.i.i.i.i300 = add i32 %731, 1 + store i32 %inc.i.i.i.i.i300, ptr %arrayidx10.i.i.i.i.i299, align 4 + %bf.load76.i.i.i = load i32, ptr %626, align 8 + %bf.clear77.i.i.i = and i32 %bf.load76.i.i.i, 1 + %tobool.not.i.i.i301 = icmp eq i32 %bf.clear77.i.i.i, 0 + br i1 %tobool.not.i.i.i301, label %invoke.cont78.i.i.i, label %if.then.i121.i.i.i + +if.then.i121.i.i.i: ; preds = %if.then71.i.i.i + %732 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %732) + to label %invoke.cont78.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont78.i.i.i: ; preds = %if.then.i121.i.i.i, %if.then71.i.i.i + %733 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i124.i.i.i = getelementptr inbounds i32, ptr %733, i64 -1 + %734 = load i32, ptr %arrayidx.i124.i.i.i, align 4 + %dec.i125.i.i.i = add i32 %734, -1 + store i32 %dec.i125.i.i.i, ptr %arrayidx.i124.i.i.i, align 4 + %this.val62.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i126.i.i.i = icmp eq ptr %this.val62.i.i.i, null + br i1 %cmp.i.i126.i.i.i, label %invoke.cont80.i.i.i302, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i: ; preds = %invoke.cont78.i.i.i + %arrayidx.i.i128.i.i.i = getelementptr inbounds i32, ptr %this.val62.i.i.i, i64 -1 + %735 = load i32, ptr %arrayidx.i.i128.i.i.i, align 4 + %cmp3.i.i129.i.i.i = icmp eq i32 %735, 0 + br i1 %cmp3.i.i129.i.i.i, label %invoke.cont80.i.i.i302, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i + %736 = add i32 %735, -1 + %737 = zext i32 %736 to i64 + %m_new_child.i131.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val62.i.i.i, i64 %737, i32 1 + %bf.load.i132.i.i.i = load i32, ptr %m_new_child.i131.i.i.i, align 8 + %bf.set.i133.i.i.i = or i32 %bf.load.i132.i.i.i, 2 + store i32 %bf.set.i133.i.i.i, ptr %m_new_child.i131.i.i.i, align 8 + br label %invoke.cont80.i.i.i302 + +invoke.cont80.i.i.i302: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i, %invoke.cont78.i.i.i + %738 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i.i.i303 = icmp eq ptr %738, null + br i1 %tobool.not.i3.i.i.i.i303, label %cleanup.thread.i.i.i, label %if.then.i.i.i137.i.i.i + +if.then.i.i.i137.i.i.i: ; preds = %invoke.cont80.i.i.i302 + %739 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i138.i.i.i = getelementptr inbounds %class.ast, ptr %738, i64 0, i32 2 + %740 = load i32, ptr %m_ref_count.i.i.i.i138.i.i.i, align 4 + %dec.i.i.i.i.i.i.i304 = add i32 %740, -1 + store i32 %dec.i.i.i.i.i.i.i304, ptr %m_ref_count.i.i.i.i138.i.i.i, align 4 + %cmp.i.i.i139.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i304, 0 + br i1 %cmp.i.i.i139.i.i.i, label %if.then2.i.i.i.i.i.i305, label %cleanup.thread.i.i.i + +if.then2.i.i.i.i.i.i305: ; preds = %if.then.i.i.i137.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %739, ptr noundef nonnull %738) + to label %cleanup.thread.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +lpad.loopexit.i.i.i321: ; preds = %if.then2.i.i.i.i.i238.i.i.i + %lpad.loopexit532.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i375 + br label %lpad.i.i.i -lpad.i.i375.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i2634 - %lpad.loopexit2839 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.i.i.i314: ; preds = %if.then2.i.i.i.i.i108.i.i.i + %lpad.loopexit534.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i375 + br label %lpad.i.i.i -lpad.i.i375.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then.i.i2604, %if.then.i2586, %if.then2.i.i.i2569, %if.then.i.i2437, %if.then.i2419, %if.then2.i.i.i2400, %if.else179.i.i, %invoke.cont174.i.i, %if.then172.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2647 - %lpad.loopexit.split-lp2840 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.then2.i.i.i287.i.i.i, %if.then.i264.i.i.i, %if.then.i.i257.i.i.i, %if.then2.i.i.i186.i.i, %if.then2.i.i.i199.i.i, %if.then172.i.i.i, %if.then2.i.i.i.i.i.i305, %if.then.i121.i.i.i, %if.then.i.i116.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i284 + %lpad.loopexit.split-lp535.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i375 + br label %lpad.i.i.i -lpad.i.i375: ; preds = %lpad.i.i375.loopexit.split-lp.loopexit, %lpad.i.i375.loopexit.split-lp.loopexit.split-lp, %lpad.i.i375.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %lpad.i.i375.loopexit ], [ %lpad.loopexit2839, %lpad.i.i375.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2840, %lpad.i.i375.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i202) #14 +lpad.i.i.i: ; preds = %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i314, %lpad.loopexit.i.i.i321 + %lpad.phi.i.i.i = phi { ptr, i32 } [ %lpad.loopexit532.i.i.i, %lpad.loopexit.i.i.i321 ], [ %lpad.loopexit534.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i314 ], [ %lpad.loopexit.split-lp535.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i.i44) #14 br label %common.resume -if.else167.i.i: ; preds = %invoke.cont.i.i376 - %bf.load168.i.i = load i32, ptr %625, align 8 - %740 = and i32 %bf.load168.i.i, 2 - %tobool171.not.i.i = icmp eq i32 %740, 0 - br i1 %tobool171.not.i.i, label %if.else179.i.i, label %if.then172.i.i - -if.then172.i.i: ; preds = %if.else167.i.i - %this.val58.i.i386 = load ptr, ptr %585, align 8 - %call175.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i.i386, ptr noundef nonnull %709, i32 noundef %sub53.i.i, ptr noundef %add.ptr.i.i370) - to label %invoke.cont174.i.i unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -invoke.cont174.i.i: ; preds = %if.then172.i.i - %call178.i.i = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i, ptr noundef %call175.i.i) - to label %if.end184.i.i unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -if.else179.i.i: ; preds = %if.else167.i.i - %call182.i.i = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i, ptr noundef nonnull %623) - to label %if.end184.i.i unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -if.end184.i.i: ; preds = %if.else179.i.i, %invoke.cont174.i.i - %741 = load i32, ptr %m_spos.i, align 4 - %742 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i2445 = icmp eq ptr %742, null - br i1 %cmp.i.i.i2445, label %invoke.cont187.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2446 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2446: ; preds = %if.end184.i.i - %arrayidx.i.i.i2449 = getelementptr inbounds i32, ptr %742, i64 -1 - %743 = load i32, ptr %arrayidx.i.i.i2449, align 4 - %744 = zext i32 %743 to i64 - %add.ptr.i.i2450 = getelementptr inbounds ptr, ptr %742, i64 %744 - %cmp3.i.i2451 = icmp ugt i32 %743, %741 - br i1 %cmp3.i.i2451, label %for.body.i.i2454.preheader, label %if.then.i.i2452 - -for.body.i.i2454.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2446 - %idx.ext.i2447 = zext i32 %741 to i64 - %add.ptr.i2448 = getelementptr inbounds ptr, ptr %742, i64 %idx.ext.i2447 - br label %for.body.i.i2454 - -for.body.i.i2454: ; preds = %for.body.i.i2454.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2461 - %it.04.i.i2455 = phi ptr [ %incdec.ptr.i.i2462, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2461 ], [ %add.ptr.i2448, %for.body.i.i2454.preheader ] - %745 = load ptr, ptr %it.04.i.i2455, align 8 - %746 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i.i2456 = icmp eq ptr %745, null - br i1 %tobool.not.i.i.i.i.i2456, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2461, label %if.then.i.i.i.i.i2457 - -if.then.i.i.i.i.i2457: ; preds = %for.body.i.i2454 - %m_ref_count.i.i.i.i.i.i2458 = getelementptr inbounds %class.ast, ptr %745, i64 0, i32 2 - %747 = load i32, ptr %m_ref_count.i.i.i.i.i.i2458, align 4 - %dec.i.i.i.i.i.i2459 = add i32 %747, -1 - store i32 %dec.i.i.i.i.i.i2459, ptr %m_ref_count.i.i.i.i.i.i2458, align 4 - %cmp.i.i.i.i.i2460 = icmp eq i32 %dec.i.i.i.i.i.i2459, 0 - br i1 %cmp.i.i.i.i.i2460, label %if.then2.i.i.i.i.i2467, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2461 - -if.then2.i.i.i.i.i2467: ; preds = %if.then.i.i.i.i.i2457 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %746, ptr noundef nonnull %745) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2461 unwind label %lpad.i.i375.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2461: ; preds = %if.then2.i.i.i.i.i2467, %if.then.i.i.i.i.i2457, %for.body.i.i2454 - %incdec.ptr.i.i2462 = getelementptr inbounds ptr, ptr %it.04.i.i2455, i64 1 - %cmp.i.i2463 = icmp ult ptr %incdec.ptr.i.i2462, %add.ptr.i.i2450 - br i1 %cmp.i.i2463, label %for.body.i.i2454, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2464, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2464: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2461 - %.pre.i2465 = load ptr, ptr %m_nodes.i.i437, align 8 - %tobool.not.i.i2466 = icmp eq ptr %.pre.i2465, null - br i1 %tobool.not.i.i2466, label %invoke.cont187.i.i, label %if.then.i.i2452 - -if.then.i.i2452: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2464, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2446 - %748 = phi ptr [ %.pre.i2465, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2464 ], [ %742, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2446 ] - %arrayidx.i.i2453 = getelementptr inbounds i32, ptr %748, i64 -1 - store i32 %741, ptr %arrayidx.i.i2453, align 4 - br label %invoke.cont187.i.i - -invoke.cont187.i.i: ; preds = %if.then.i.i2452, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2464, %if.end184.i.i - %749 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2422 = icmp eq ptr %749, null - br i1 %tobool.not.i.i.i.i2422, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2426, label %if.then.i.i.i.i2423 - -if.then.i.i.i.i2423: ; preds = %invoke.cont187.i.i - %m_ref_count.i.i.i.i.i2424 = getelementptr inbounds %class.ast, ptr %749, i64 0, i32 2 - %750 = load i32, ptr %m_ref_count.i.i.i.i.i2424, align 4 - %inc.i.i.i.i.i2425 = add i32 %750, 1 - store i32 %inc.i.i.i.i.i2425, ptr %m_ref_count.i.i.i.i.i2424, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2426 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2426: ; preds = %if.then.i.i.i.i2423, %invoke.cont187.i.i - %751 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i2428 = icmp eq ptr %751, null - br i1 %cmp.i.i2428, label %if.then.i.i2437, label %lor.lhs.false.i.i2429 - -lor.lhs.false.i.i2429: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2426 - %arrayidx.i.i2430 = getelementptr inbounds i32, ptr %751, i64 -1 - %752 = load i32, ptr %arrayidx.i.i2430, align 4 - %arrayidx4.i.i2431 = getelementptr inbounds i32, ptr %751, i64 -2 - %753 = load i32, ptr %arrayidx4.i.i2431, align 4 - %cmp5.i.i2432 = icmp eq i32 %752, %753 - br i1 %cmp5.i.i2432, label %if.then.i.i2437, label %invoke.cont192.i.i - -if.then.i.i2437: ; preds = %lor.lhs.false.i.i2429, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2426 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - to label %.noexc2441 unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -.noexc2441: ; preds = %if.then.i.i2437 - %.pre.i.i2438 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i2439 = getelementptr inbounds i32, ptr %.pre.i.i2438, i64 -1 - %.pre1.i.i2440 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2439, align 4 - br label %invoke.cont192.i.i - -invoke.cont192.i.i: ; preds = %.noexc2441, %lor.lhs.false.i.i2429 - %754 = phi i32 [ %.pre1.i.i2440, %.noexc2441 ], [ %752, %lor.lhs.false.i.i2429 ] - %755 = phi ptr [ %.pre.i.i2438, %.noexc2441 ], [ %751, %lor.lhs.false.i.i2429 ] - %idx.ext.i.i2433 = zext i32 %754 to i64 - %add.ptr.i.i2434 = getelementptr inbounds ptr, ptr %755, i64 %idx.ext.i.i2433 - store ptr %749, ptr %add.ptr.i.i2434, align 8 - %756 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i2435 = getelementptr inbounds i32, ptr %756, i64 -1 - %757 = load i32, ptr %arrayidx10.i.i2435, align 4 - %inc.i.i2436 = add i32 %757, 1 - store i32 %inc.i.i2436, ptr %arrayidx10.i.i2435, align 4 - %bf.load200.i.i = load i32, ptr %625, align 8 - %bf.clear201.i.i = and i32 %bf.load200.i.i, 1 - %tobool202.i.i.not = icmp eq i32 %bf.clear201.i.i, 0 - br i1 %tobool202.i.i.not, label %invoke.cont203.i.i389, label %if.then.i2419 - -if.then.i2419: ; preds = %invoke.cont192.i.i - %758 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %758) - to label %invoke.cont203.i.i389 unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -invoke.cont203.i.i389: ; preds = %invoke.cont192.i.i, %if.then.i2419 - %759 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2415 = getelementptr inbounds i32, ptr %759, i64 -1 - %760 = load i32, ptr %arrayidx.i2415, align 4 - %dec.i2416 = add i32 %760, -1 - store i32 %dec.i2416, ptr %arrayidx.i2415, align 4 - %761 = load ptr, ptr %m_r.i48.i, align 8 - %this.val64.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i2403 = icmp eq ptr %623, %761 - %cmp.i.i.i2404 = icmp eq ptr %this.val64.i.i, null - %or.cond.i2405 = select i1 %cmp.not.i2403, i1 true, i1 %cmp.i.i.i2404 - br i1 %or.cond.i2405, label %invoke.cont208.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2406 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2406: ; preds = %invoke.cont203.i.i389 - %arrayidx.i.i.i2407 = getelementptr inbounds i32, ptr %this.val64.i.i, i64 -1 - %762 = load i32, ptr %arrayidx.i.i.i2407, align 4 - %cmp3.i.i.i2408 = icmp eq i32 %762, 0 - br i1 %cmp3.i.i.i2408, label %invoke.cont208.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2409 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2409: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2406 - %763 = add i32 %762, -1 - %764 = zext i32 %763 to i64 - %m_new_child.i.i2410 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val64.i.i, i64 %764, i32 1 - %bf.load.i.i2411 = load i32, ptr %m_new_child.i.i2410, align 8 - %bf.set.i.i2412 = or i32 %bf.load.i.i2411, 2 - store i32 %bf.set.i.i2412, ptr %m_new_child.i.i2410, align 8 - %.pr2826.pre = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont208.i.i - -invoke.cont208.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2409, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2406, %invoke.cont203.i.i389 - %765 = phi ptr [ %761, %invoke.cont203.i.i389 ], [ %761, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2406 ], [ %.pr2826.pre, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2409 ] - %tobool.not.i3.i2394 = icmp eq ptr %765, null - br i1 %tobool.not.i3.i2394, label %cleanup.i.i383.thread, label %if.then.i.i.i2395 - -if.then.i.i.i2395: ; preds = %invoke.cont208.i.i - %766 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i2397 = getelementptr inbounds %class.ast, ptr %765, i64 0, i32 2 - %767 = load i32, ptr %m_ref_count.i.i.i.i2397, align 4 - %dec.i.i.i.i2398 = add i32 %767, -1 - store i32 %dec.i.i.i.i2398, ptr %m_ref_count.i.i.i.i2397, align 4 - %cmp.i.i.i2399 = icmp eq i32 %dec.i.i.i.i2398, 0 - br i1 %cmp.i.i.i2399, label %if.then2.i.i.i2400, label %cleanup.i.i383.thread - -if.then2.i.i.i2400: ; preds = %if.then.i.i.i2395 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %766, ptr noundef nonnull %765) - to label %cleanup.i.i383 unwind label %lpad.i.i375.loopexit.split-lp.loopexit.split-lp - -cleanup.i.i383.thread: ; preds = %if.then.i.i.i2395, %invoke.cont208.i.i, %if.then.i.i.i2564, %invoke.cont80.i.i382, %if.then2.i.i.i2569 - store ptr null, ptr %m_r.i48.i, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -cleanup.i.i383: ; preds = %if.then2.i.i.i2400 - %.pre2944 = load ptr, ptr %new_t.i.i202, align 8 - store ptr null, ptr %m_r.i48.i, align 8 - %tobool.not.i.i2383 = icmp eq ptr %.pre2944, null - br i1 %tobool.not.i.i2383, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i2384 - -if.then.i.i.i2384: ; preds = %cleanup.i.i383 - %768 = load ptr, ptr %m_manager.i2638, align 8 - %m_ref_count.i.i.i.i2386 = getelementptr inbounds %class.ast, ptr %.pre2944, i64 0, i32 2 - %769 = load i32, ptr %m_ref_count.i.i.i.i2386, align 4 - %dec.i.i.i.i2387 = add i32 %769, -1 - store i32 %dec.i.i.i.i2387, ptr %m_ref_count.i.i.i.i2386, align 4 - %cmp.i.i.i2388 = icmp eq i32 %dec.i.i.i.i2387, 0 - br i1 %cmp.i.i.i2388, label %if.then2.i.i.i2390, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i2390: ; preds = %if.then.i.i.i2384 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %768, ptr noundef nonnull %.pre2944) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i2391 - -terminate.lpad.i2391: ; preds = %if.then2.i.i.i2390 - %770 = landingpad { ptr, i32 } - catch ptr null - %771 = extractvalue { ptr, i32 } %770, 0 - call void @__clang_call_terminate(ptr %771) #15 - unreachable - -sw.bb212.i.i: ; preds = %sw.bb.i338 - %772 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i2376 = icmp eq ptr %772, null - br i1 %cmp.i.i.i2376, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2381, label %if.end.i.i.i2377 - -if.end.i.i.i2377: ; preds = %sw.bb212.i.i - %arrayidx.i.i.i2378 = getelementptr inbounds i32, ptr %772, i64 -1 - %773 = load i32, ptr %arrayidx.i.i.i2378, align 4 - %774 = add i32 %773, -1 - %775 = zext i32 %774 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2381 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2381: ; preds = %sw.bb212.i.i, %if.end.i.i.i2377 - %retval.0.i.i.i2379 = phi i64 [ %775, %if.end.i.i.i2377 ], [ 4294967295, %sw.bb212.i.i ] - %arrayidx.i1.i.i2380 = getelementptr inbounds ptr, ptr %772, i64 %retval.0.i.i.i2379 - %776 = load ptr, ptr %arrayidx.i1.i.i2380, align 8 - %tobool.not.i2362 = icmp eq ptr %776, null - br i1 %tobool.not.i2362, label %if.end.i2366, label %_ZN11ast_manager7inc_refEP3ast.exit.i2363 - -_ZN11ast_manager7inc_refEP3ast.exit.i2363: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2381 - %m_ref_count.i.i.i2364 = getelementptr inbounds %class.ast, ptr %776, i64 0, i32 2 - %777 = load i32, ptr %m_ref_count.i.i.i2364, align 4 - %inc.i.i.i2365 = add i32 %777, 1 - store i32 %inc.i.i.i2365, ptr %m_ref_count.i.i.i2364, align 4 - br label %if.end.i2366 - -if.end.i2366: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i2363, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2381 - %778 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2367 = icmp eq ptr %778, null - br i1 %tobool.not.i3.i2367, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2374, label %if.then.i.i.i2368 - -if.then.i.i.i2368: ; preds = %if.end.i2366 - %779 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i2370 = getelementptr inbounds %class.ast, ptr %778, i64 0, i32 2 - %780 = load i32, ptr %m_ref_count.i.i.i.i2370, align 4 - %dec.i.i.i.i2371 = add i32 %780, -1 - store i32 %dec.i.i.i.i2371, ptr %m_ref_count.i.i.i.i2370, align 4 - %cmp.i.i.i2372 = icmp eq i32 %dec.i.i.i.i2371, 0 - br i1 %cmp.i.i.i2372, label %if.then2.i.i.i2373, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2374 - -if.then2.i.i.i2373: ; preds = %if.then.i.i.i2368 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %779, ptr noundef nonnull %778) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2374 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2374: ; preds = %if.end.i2366, %if.then.i.i.i2368, %if.then2.i.i.i2373 - store ptr %776, ptr %m_r.i48.i, align 8 - %781 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i2343 = icmp eq ptr %781, null - br i1 %cmp.i.i.i2343, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2357, label %if.end.i.i.i2344 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2357: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2374 - %.pre.i2358 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i2359 = add i32 %.pre.i2358, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2346 - -if.end.i.i.i2344: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2374 - %arrayidx.i.i.i2345 = getelementptr inbounds i32, ptr %781, i64 -1 - %782 = load i32, ptr %arrayidx.i.i.i2345, align 4 - %783 = add i32 %782, -1 - %784 = zext i32 %783 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2346 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i2346: ; preds = %if.end.i.i.i2344, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2357 - %dec.i.pre-phi.i2347 = phi i32 [ %.pre1.i2359, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2357 ], [ %783, %if.end.i.i.i2344 ] - %retval.0.i.i.i2348 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2357 ], [ %784, %if.end.i.i.i2344 ] - %arrayidx.i1.i.i2349 = getelementptr inbounds ptr, ptr %781, i64 %retval.0.i.i.i2348 - %785 = load ptr, ptr %arrayidx.i1.i.i2349, align 8 - %arrayidx.i.i2350 = getelementptr inbounds i32, ptr %781, i64 -1 - store i32 %dec.i.pre-phi.i2347, ptr %arrayidx.i.i2350, align 4 - %786 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i2351 = icmp eq ptr %785, null - br i1 %tobool.not.i.i.i.i2351, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2360, label %if.then.i.i.i.i2352 - -if.then.i.i.i.i2352: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2346 - %m_ref_count.i.i.i.i.i2353 = getelementptr inbounds %class.ast, ptr %785, i64 0, i32 2 - %787 = load i32, ptr %m_ref_count.i.i.i.i.i2353, align 4 - %dec.i.i.i.i.i2354 = add i32 %787, -1 - store i32 %dec.i.i.i.i.i2354, ptr %m_ref_count.i.i.i.i.i2353, align 4 - %cmp.i.i.i.i2355 = icmp eq i32 %dec.i.i.i.i.i2354, 0 - br i1 %cmp.i.i.i.i2355, label %if.then2.i.i.i.i2356, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2360 - -if.then2.i.i.i.i2356: ; preds = %if.then.i.i.i.i2352 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %786, ptr noundef nonnull %785) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2360 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2360: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2346, %if.then.i.i.i.i2352, %if.then2.i.i.i.i2356 - %788 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i2323 = icmp eq ptr %788, null - br i1 %cmp.i.i.i2323, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2337, label %if.end.i.i.i2324 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2337: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2360 - %.pre.i2338 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i2339 = add i32 %.pre.i2338, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2326 - -if.end.i.i.i2324: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2360 - %arrayidx.i.i.i2325 = getelementptr inbounds i32, ptr %788, i64 -1 - %789 = load i32, ptr %arrayidx.i.i.i2325, align 4 - %790 = add i32 %789, -1 - %791 = zext i32 %790 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2326 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i2326: ; preds = %if.end.i.i.i2324, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2337 - %dec.i.pre-phi.i2327 = phi i32 [ %.pre1.i2339, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2337 ], [ %790, %if.end.i.i.i2324 ] - %retval.0.i.i.i2328 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2337 ], [ %791, %if.end.i.i.i2324 ] - %arrayidx.i1.i.i2329 = getelementptr inbounds ptr, ptr %788, i64 %retval.0.i.i.i2328 - %792 = load ptr, ptr %arrayidx.i1.i.i2329, align 8 - %arrayidx.i.i2330 = getelementptr inbounds i32, ptr %788, i64 -1 - store i32 %dec.i.pre-phi.i2327, ptr %arrayidx.i.i2330, align 4 - %793 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i2331 = icmp eq ptr %792, null - br i1 %tobool.not.i.i.i.i2331, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2340, label %if.then.i.i.i.i2332 - -if.then.i.i.i.i2332: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2326 - %m_ref_count.i.i.i.i.i2333 = getelementptr inbounds %class.ast, ptr %792, i64 0, i32 2 - %794 = load i32, ptr %m_ref_count.i.i.i.i.i2333, align 4 - %dec.i.i.i.i.i2334 = add i32 %794, -1 - store i32 %dec.i.i.i.i.i2334, ptr %m_ref_count.i.i.i.i.i2333, align 4 - %cmp.i.i.i.i2335 = icmp eq i32 %dec.i.i.i.i.i2334, 0 - br i1 %cmp.i.i.i.i2335, label %if.then2.i.i.i.i2336, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2340 - -if.then2.i.i.i.i2336: ; preds = %if.then.i.i.i.i2332 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %793, ptr noundef nonnull %792) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2340 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2340: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2326, %if.then.i.i.i.i2332, %if.then2.i.i.i.i2336 - %795 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2301 = icmp eq ptr %795, null - br i1 %tobool.not.i.i.i.i2301, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2305, label %if.then.i.i.i.i2302 - -if.then.i.i.i.i2302: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2340 - %m_ref_count.i.i.i.i.i2303 = getelementptr inbounds %class.ast, ptr %795, i64 0, i32 2 - %796 = load i32, ptr %m_ref_count.i.i.i.i.i2303, align 4 - %inc.i.i.i.i.i2304 = add i32 %796, 1 - store i32 %inc.i.i.i.i.i2304, ptr %m_ref_count.i.i.i.i.i2303, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2305 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2305: ; preds = %if.then.i.i.i.i2302, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2340 - %797 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i2307 = icmp eq ptr %797, null - br i1 %cmp.i.i2307, label %if.then.i.i2316, label %lor.lhs.false.i.i2308 - -lor.lhs.false.i.i2308: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2305 - %arrayidx.i.i2309 = getelementptr inbounds i32, ptr %797, i64 -1 - %798 = load i32, ptr %arrayidx.i.i2309, align 4 - %arrayidx4.i.i2310 = getelementptr inbounds i32, ptr %797, i64 -2 - %799 = load i32, ptr %arrayidx4.i.i2310, align 4 - %cmp5.i.i2311 = icmp eq i32 %798, %799 - br i1 %cmp5.i.i2311, label %if.then.i.i2316, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2320 - -if.then.i.i2316: ; preds = %lor.lhs.false.i.i2308, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2305 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - %.pre.i.i2317 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i2318 = getelementptr inbounds i32, ptr %.pre.i.i2317, i64 -1 - %.pre1.i.i2319 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2318, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2320 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2320: ; preds = %lor.lhs.false.i.i2308, %if.then.i.i2316 - %800 = phi i32 [ %.pre1.i.i2319, %if.then.i.i2316 ], [ %798, %lor.lhs.false.i.i2308 ] - %801 = phi ptr [ %.pre.i.i2317, %if.then.i.i2316 ], [ %797, %lor.lhs.false.i.i2308 ] - %idx.ext.i.i2312 = zext i32 %800 to i64 - %add.ptr.i.i2313 = getelementptr inbounds ptr, ptr %801, i64 %idx.ext.i.i2312 - store ptr %795, ptr %add.ptr.i.i2313, align 8 - %802 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i2314 = getelementptr inbounds i32, ptr %802, i64 -1 - %803 = load i32, ptr %arrayidx10.i.i2314, align 4 - %inc.i.i2315 = add i32 %803, 1 - store i32 %inc.i.i2315, ptr %arrayidx10.i.i2314, align 4 - %bf.load228.i.i = load i32, ptr %625, align 8 - %bf.clear229.i.i = and i32 %bf.load228.i.i, 1 - %tobool230.i.i.not = icmp eq i32 %bf.clear229.i.i, 0 - br i1 %tobool230.i.i.not, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit2300, label %if.then.i2299 - -if.then.i2299: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2320 - %804 = load ptr, ptr %m_r.i48.i, align 8 - call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %623, i32 noundef 0, ptr noundef %804) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit2300 - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit2300: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2320, %if.then.i2299 - %805 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2295 = getelementptr inbounds i32, ptr %805, i64 -1 - %806 = load i32, ptr %arrayidx.i2295, align 4 - %dec.i2296 = add i32 %806, -1 - store i32 %dec.i2296, ptr %arrayidx.i2295, align 4 - %this.val61.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2285 = icmp eq ptr %this.val61.i.i, null - br i1 %cmp.i.i2285, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2286 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2286: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit2300 - %arrayidx.i.i2287 = getelementptr inbounds i32, ptr %this.val61.i.i, i64 -1 - %807 = load i32, ptr %arrayidx.i.i2287, align 4 - %cmp3.i.i2288 = icmp eq i32 %807, 0 - br i1 %cmp3.i.i2288, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2289 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2289: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2286 - %808 = add i32 %807, -1 - %809 = zext i32 %808 to i64 - %m_new_child.i2290 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val61.i.i, i64 %809, i32 1 - %bf.load.i2291 = load i32, ptr %m_new_child.i2290, align 8 - %bf.set.i2292 = or i32 %bf.load.i2291, 2 - store i32 %bf.set.i2292, ptr %m_new_child.i2290, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -sw.bb232.i.i: ; preds = %sw.bb.i338 - %this.val.i.i341 = load ptr, ptr %585, align 8 - store ptr null, ptr %tmp.i.i, align 8 - store ptr %this.val.i.i341, ptr %m_manager.i2284, align 8 - %m_num_args.i2283 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 2 - %810 = load i32, ptr %m_num_args.i2283, align 8 - %811 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i2278 = icmp eq ptr %811, null - br i1 %cmp.i2278, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2277, label %if.then.i2274 - -if.then.i2274: ; preds = %sw.bb232.i.i - %arrayidx.i2280 = getelementptr inbounds i32, ptr %811, i64 -1 - %812 = load i32, ptr %arrayidx.i2280, align 4 - %sub239.i.i = sub i32 %812, %810 - store i32 %sub239.i.i, ptr %arrayidx.i2280, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2277 - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2277: ; preds = %sw.bb232.i.i, %if.then.i2274 - %813 = load ptr, ptr %m_shifts.i69.i, align 8 - %cmp.i2268 = icmp eq ptr %813, null - br i1 %cmp.i2268, label %_ZN6vectorIjLb0EjE6shrinkEj.exit2267, label %if.then.i2264 - -if.then.i2264: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2277 - %arrayidx.i2270 = getelementptr inbounds i32, ptr %813, i64 -1 - %814 = load i32, ptr %arrayidx.i2270, align 4 - %sub243.i.i = sub i32 %814, %810 - store i32 %sub243.i.i, ptr %arrayidx.i2270, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit2267 - -_ZN6vectorIjLb0EjE6shrinkEj.exit2267: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2277, %if.then.i2264 - %815 = load i32, ptr %m_num_qvars.i54, align 8 - %sub245.i.i = sub i32 %815, %810 - store i32 %sub245.i.i, ptr %m_num_qvars.i54, align 8 +if.else167.i.i.i: ; preds = %invoke.cont.i.i.i289 + %bf.load168.i.i.i = load i32, ptr %626, align 8 + %741 = and i32 %bf.load168.i.i.i, 2 + %tobool171.not.i.i.i = icmp eq i32 %741, 0 + br i1 %tobool171.not.i.i.i, label %if.end.i179.i.i, label %if.then172.i.i.i + +if.then172.i.i.i: ; preds = %if.else167.i.i.i + %this.val58.i.i.i315 = load ptr, ptr %586, align 8 + %call175.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i.i.i315, ptr noundef nonnull %710, i32 noundef %sub53.i.i.i, ptr noundef %add.ptr.i.i.i287) + to label %invoke.cont174.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont174.i.i.i: ; preds = %if.then172.i.i.i + %tobool.not.i188.i.i = icmp eq ptr %call175.i.i.i, null + br i1 %tobool.not.i188.i.i, label %if.end.i192.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i189.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i189.i.i: ; preds = %invoke.cont174.i.i.i + %m_ref_count.i.i.i190.i.i = getelementptr inbounds %class.ast, ptr %call175.i.i.i, i64 0, i32 2 + %742 = load i32, ptr %m_ref_count.i.i.i190.i.i, align 4 + %inc.i.i.i191.i.i = add i32 %742, 1 + store i32 %inc.i.i.i191.i.i, ptr %m_ref_count.i.i.i190.i.i, align 4 + br label %if.end.i192.i.i + +if.end.i192.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i189.i.i, %invoke.cont174.i.i.i + %743 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i193.i.i = icmp eq ptr %743, null + br i1 %tobool.not.i3.i193.i.i, label %if.end184.i.i.i, label %if.then.i.i.i194.i.i + +if.then.i.i.i194.i.i: ; preds = %if.end.i192.i.i + %744 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i196.i.i = getelementptr inbounds %class.ast, ptr %743, i64 0, i32 2 + %745 = load i32, ptr %m_ref_count.i.i.i.i196.i.i, align 4 + %dec.i.i.i.i197.i.i = add i32 %745, -1 + store i32 %dec.i.i.i.i197.i.i, ptr %m_ref_count.i.i.i.i196.i.i, align 4 + %cmp.i.i.i198.i.i = icmp eq i32 %dec.i.i.i.i197.i.i, 0 + br i1 %cmp.i.i.i198.i.i, label %if.then2.i.i.i199.i.i, label %if.end184.i.i.i + +if.then2.i.i.i199.i.i: ; preds = %if.then.i.i.i194.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %744, ptr noundef nonnull %743) + to label %if.end184.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end.i179.i.i: ; preds = %if.else167.i.i.i + %m_ref_count.i.i.i177.i.i = getelementptr inbounds %class.ast, ptr %624, i64 0, i32 2 + %746 = load i32, ptr %m_ref_count.i.i.i177.i.i, align 4 + %inc.i.i.i178.i.i = add i32 %746, 1 + store i32 %inc.i.i.i178.i.i, ptr %m_ref_count.i.i.i177.i.i, align 4 + %747 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i180.i.i = icmp eq ptr %747, null + br i1 %tobool.not.i3.i180.i.i, label %if.end184.i.i.i, label %if.then.i.i.i181.i.i + +if.then.i.i.i181.i.i: ; preds = %if.end.i179.i.i + %748 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i183.i.i = getelementptr inbounds %class.ast, ptr %747, i64 0, i32 2 + %749 = load i32, ptr %m_ref_count.i.i.i.i183.i.i, align 4 + %dec.i.i.i.i184.i.i = add i32 %749, -1 + store i32 %dec.i.i.i.i184.i.i, ptr %m_ref_count.i.i.i.i183.i.i, align 4 + %cmp.i.i.i185.i.i = icmp eq i32 %dec.i.i.i.i184.i.i, 0 + br i1 %cmp.i.i.i185.i.i, label %if.then2.i.i.i186.i.i, label %if.end184.i.i.i + +if.then2.i.i.i186.i.i: ; preds = %if.then.i.i.i181.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %748, ptr noundef nonnull %747) + to label %if.end184.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end184.i.i.i: ; preds = %if.then2.i.i.i186.i.i, %if.then.i.i.i181.i.i, %if.end.i179.i.i, %if.then2.i.i.i199.i.i, %if.then.i.i.i194.i.i, %if.end.i192.i.i + %storemerge.i.i316 = phi ptr [ %call175.i.i.i, %if.then2.i.i.i199.i.i ], [ %call175.i.i.i, %if.end.i192.i.i ], [ %call175.i.i.i, %if.then.i.i.i194.i.i ], [ %624, %if.then2.i.i.i186.i.i ], [ %624, %if.end.i179.i.i ], [ %624, %if.then.i.i.i181.i.i ] + store ptr %storemerge.i.i316, ptr %m_r.i64.i.i, align 8 + %750 = load i32, ptr %m_spos.i.i.i.i, align 4 + %751 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i216.i.i.i = icmp eq ptr %751, null + br i1 %cmp.i.i.i216.i.i.i, label %invoke.cont187.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i: ; preds = %if.end184.i.i.i + %arrayidx.i.i.i220.i.i.i = getelementptr inbounds i32, ptr %751, i64 -1 + %752 = load i32, ptr %arrayidx.i.i.i220.i.i.i, align 4 + %753 = zext i32 %752 to i64 + %add.ptr.i.i221.i.i.i = getelementptr inbounds ptr, ptr %751, i64 %753 + %cmp3.i.i222.i.i.i = icmp ugt i32 %752, %750 + br i1 %cmp3.i.i222.i.i.i, label %for.body.i.i225.preheader.i.i.i, label %if.then.i.i223.i.i.i + +for.body.i.i225.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + %idx.ext.i218.i.i.i = zext i32 %750 to i64 + %add.ptr.i219.i.i.i = getelementptr inbounds ptr, ptr %751, i64 %idx.ext.i218.i.i.i + br label %for.body.i.i225.i.i.i + +for.body.i.i225.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i, %for.body.i.i225.preheader.i.i.i + %it.04.i.i226.i.i.i = phi ptr [ %incdec.ptr.i.i233.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i ], [ %add.ptr.i219.i.i.i, %for.body.i.i225.preheader.i.i.i ] + %754 = load ptr, ptr %it.04.i.i226.i.i.i, align 8 + %755 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i227.i.i.i = icmp eq ptr %754, null + br i1 %tobool.not.i.i.i.i.i227.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i, label %if.then.i.i.i.i.i228.i.i.i + +if.then.i.i.i.i.i228.i.i.i: ; preds = %for.body.i.i225.i.i.i + %m_ref_count.i.i.i.i.i.i229.i.i.i = getelementptr inbounds %class.ast, ptr %754, i64 0, i32 2 + %756 = load i32, ptr %m_ref_count.i.i.i.i.i.i229.i.i.i, align 4 + %dec.i.i.i.i.i.i230.i.i.i = add i32 %756, -1 + store i32 %dec.i.i.i.i.i.i230.i.i.i, ptr %m_ref_count.i.i.i.i.i.i229.i.i.i, align 4 + %cmp.i.i.i.i.i231.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i230.i.i.i, 0 + br i1 %cmp.i.i.i.i.i231.i.i.i, label %if.then2.i.i.i.i.i238.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i + +if.then2.i.i.i.i.i238.i.i.i: ; preds = %if.then.i.i.i.i.i228.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %755, ptr noundef nonnull %754) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i unwind label %lpad.loopexit.i.i.i321 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i: ; preds = %if.then2.i.i.i.i.i238.i.i.i, %if.then.i.i.i.i.i228.i.i.i, %for.body.i.i225.i.i.i + %incdec.ptr.i.i233.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i226.i.i.i, i64 1 + %cmp.i.i234.i.i.i = icmp ult ptr %incdec.ptr.i.i233.i.i.i, %add.ptr.i.i221.i.i.i + br i1 %cmp.i.i234.i.i.i, label %for.body.i.i225.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i + %.pre.i236.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i237.i.i.i = icmp eq ptr %.pre.i236.i.i.i, null + br i1 %tobool.not.i.i237.i.i.i, label %invoke.cont187.ithread-pre-split.i.i, label %if.then.i.i223.i.i.i + +if.then.i.i223.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + %757 = phi ptr [ %.pre.i236.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i ], [ %751, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i ] + %arrayidx.i.i224.i.i.i = getelementptr inbounds i32, ptr %757, i64 -1 + store i32 %750, ptr %arrayidx.i.i224.i.i.i, align 4 + br label %invoke.cont187.ithread-pre-split.i.i + +invoke.cont187.ithread-pre-split.i.i: ; preds = %if.then.i.i223.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i + %.pr40.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont187.i.i.i + +invoke.cont187.i.i.i: ; preds = %invoke.cont187.ithread-pre-split.i.i, %if.end184.i.i.i + %758 = phi ptr [ %.pr40.i.i, %invoke.cont187.ithread-pre-split.i.i ], [ %storemerge.i.i316, %if.end184.i.i.i ] + %tobool.not.i.i.i.i242.i.i.i = icmp eq ptr %758, null + br i1 %tobool.not.i.i.i.i242.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i, label %if.then.i.i.i.i243.i.i.i + +if.then.i.i.i.i243.i.i.i: ; preds = %invoke.cont187.i.i.i + %m_ref_count.i.i.i.i.i244.i.i.i = getelementptr inbounds %class.ast, ptr %758, i64 0, i32 2 + %759 = load i32, ptr %m_ref_count.i.i.i.i.i244.i.i.i, align 4 + %inc.i.i.i.i.i245.i.i.i = add i32 %759, 1 + store i32 %inc.i.i.i.i.i245.i.i.i, ptr %m_ref_count.i.i.i.i.i244.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i: ; preds = %if.then.i.i.i.i243.i.i.i, %invoke.cont187.i.i.i + %760 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i248.i.i.i = icmp eq ptr %760, null + br i1 %cmp.i.i248.i.i.i, label %if.then.i.i257.i.i.i, label %lor.lhs.false.i.i249.i.i.i + +lor.lhs.false.i.i249.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + %arrayidx.i.i250.i.i.i = getelementptr inbounds i32, ptr %760, i64 -1 + %761 = load i32, ptr %arrayidx.i.i250.i.i.i, align 4 + %arrayidx4.i.i251.i.i.i = getelementptr inbounds i32, ptr %760, i64 -2 + %762 = load i32, ptr %arrayidx4.i.i251.i.i.i, align 4 + %cmp5.i.i252.i.i.i = icmp eq i32 %761, %762 + br i1 %cmp5.i.i252.i.i.i, label %if.then.i.i257.i.i.i, label %invoke.cont192.i.i.i + +if.then.i.i257.i.i.i: ; preds = %lor.lhs.false.i.i249.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc261.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc261.i.i.i: ; preds = %if.then.i.i257.i.i.i + %.pre.i.i258.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i259.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i258.i.i.i, i64 -1 + %.pre1.i.i260.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i259.i.i.i, align 4 + br label %invoke.cont192.i.i.i + +invoke.cont192.i.i.i: ; preds = %.noexc261.i.i.i, %lor.lhs.false.i.i249.i.i.i + %763 = phi i32 [ %.pre1.i.i260.i.i.i, %.noexc261.i.i.i ], [ %761, %lor.lhs.false.i.i249.i.i.i ] + %764 = phi ptr [ %.pre.i.i258.i.i.i, %.noexc261.i.i.i ], [ %760, %lor.lhs.false.i.i249.i.i.i ] + %idx.ext.i.i253.i.i.i = zext i32 %763 to i64 + %add.ptr.i.i254.i.i.i = getelementptr inbounds ptr, ptr %764, i64 %idx.ext.i.i253.i.i.i + store ptr %758, ptr %add.ptr.i.i254.i.i.i, align 8 + %765 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i255.i.i.i = getelementptr inbounds i32, ptr %765, i64 -1 + %766 = load i32, ptr %arrayidx10.i.i255.i.i.i, align 4 + %inc.i.i256.i.i.i = add i32 %766, 1 + store i32 %inc.i.i256.i.i.i, ptr %arrayidx10.i.i255.i.i.i, align 4 + %bf.load200.i.i.i = load i32, ptr %626, align 8 + %bf.clear201.i.i.i = and i32 %bf.load200.i.i.i, 1 + %tobool202.not.i.i.i = icmp eq i32 %bf.clear201.i.i.i, 0 + br i1 %tobool202.not.i.i.i, label %invoke.cont203.i.i.i317, label %if.then.i264.i.i.i + +if.then.i264.i.i.i: ; preds = %invoke.cont192.i.i.i + %767 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %767) + to label %invoke.cont203.i.i.i317 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont203.i.i.i317: ; preds = %if.then.i264.i.i.i, %invoke.cont192.i.i.i + %768 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i268.i.i.i = getelementptr inbounds i32, ptr %768, i64 -1 + %769 = load i32, ptr %arrayidx.i268.i.i.i, align 4 + %dec.i269.i.i.i = add i32 %769, -1 + store i32 %dec.i269.i.i.i, ptr %arrayidx.i268.i.i.i, align 4 + %770 = load ptr, ptr %m_r.i64.i.i, align 8 + %this.val64.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i270.i.i.i = icmp eq ptr %770, %624 + %cmp.i.i.i271.i.i.i = icmp eq ptr %this.val64.i.i.i, null + %or.cond.i.i.i.i318 = select i1 %cmp.not.i270.i.i.i, i1 true, i1 %cmp.i.i.i271.i.i.i + br i1 %or.cond.i.i.i.i318, label %invoke.cont208.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i: ; preds = %invoke.cont203.i.i.i317 + %arrayidx.i.i.i273.i.i.i = getelementptr inbounds i32, ptr %this.val64.i.i.i, i64 -1 + %771 = load i32, ptr %arrayidx.i.i.i273.i.i.i, align 4 + %cmp3.i.i.i274.i.i.i = icmp eq i32 %771, 0 + br i1 %cmp3.i.i.i274.i.i.i, label %invoke.cont208.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i + %772 = add i32 %771, -1 + %773 = zext i32 %772 to i64 + %m_new_child.i.i276.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val64.i.i.i, i64 %773, i32 1 + %bf.load.i.i277.i.i.i = load i32, ptr %m_new_child.i.i276.i.i.i, align 8 + %bf.set.i.i278.i.i.i = or i32 %bf.load.i.i277.i.i.i, 2 + store i32 %bf.set.i.i278.i.i.i, ptr %m_new_child.i.i276.i.i.i, align 8 + %.pr.pre.i.i.i319 = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont208.i.i.i + +invoke.cont208.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i, %invoke.cont203.i.i.i317 + %774 = phi ptr [ %770, %invoke.cont203.i.i.i317 ], [ %770, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i ], [ %.pr.pre.i.i.i319, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i ] + %tobool.not.i3.i281.i.i.i = icmp eq ptr %774, null + br i1 %tobool.not.i3.i281.i.i.i, label %cleanup.thread.i.i.i, label %if.then.i.i.i282.i.i.i + +if.then.i.i.i282.i.i.i: ; preds = %invoke.cont208.i.i.i + %775 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i284.i.i.i = getelementptr inbounds %class.ast, ptr %774, i64 0, i32 2 + %776 = load i32, ptr %m_ref_count.i.i.i.i284.i.i.i, align 4 + %dec.i.i.i.i285.i.i.i = add i32 %776, -1 + store i32 %dec.i.i.i.i285.i.i.i, ptr %m_ref_count.i.i.i.i284.i.i.i, align 4 + %cmp.i.i.i286.i.i.i = icmp eq i32 %dec.i.i.i.i285.i.i.i, 0 + br i1 %cmp.i.i.i286.i.i.i, label %if.then2.i.i.i287.i.i.i, label %cleanup.thread.i.i.i + +if.then2.i.i.i287.i.i.i: ; preds = %if.then.i.i.i282.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %775, ptr noundef nonnull %774) + to label %cleanup.i.i.i320 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +cleanup.thread.i.i.i: ; preds = %if.then.i.i.i282.i.i.i, %invoke.cont208.i.i.i, %if.then2.i.i.i.i.i.i305, %if.then.i.i.i137.i.i.i, %invoke.cont80.i.i.i302 + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +cleanup.i.i.i320: ; preds = %if.then2.i.i.i287.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +sw.bb212.i.i.i: ; preds = %sw.bb.i.i262 + %777 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i299.i.i.i = icmp eq ptr %777, null + br i1 %cmp.i.i.i299.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i270, label %if.end.i.i.i.i.i.i269 + +if.end.i.i.i.i.i.i269: ; preds = %sw.bb212.i.i.i + %arrayidx.i.i.i300.i.i.i = getelementptr inbounds i32, ptr %777, i64 -1 + %778 = load i32, ptr %arrayidx.i.i.i300.i.i.i, align 4 + %779 = add i32 %778, -1 + %780 = zext i32 %779 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i270 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i270: ; preds = %if.end.i.i.i.i.i.i269, %sw.bb212.i.i.i + %retval.0.i.i.i.i.i.i271 = phi i64 [ %780, %if.end.i.i.i.i.i.i269 ], [ 4294967295, %sw.bb212.i.i.i ] + %arrayidx.i1.i.i.i.i.i272 = getelementptr inbounds ptr, ptr %777, i64 %retval.0.i.i.i.i.i.i271 + %781 = load ptr, ptr %arrayidx.i1.i.i.i.i.i272, align 8 + %tobool.not.i301.i.i.i = icmp eq ptr %781, null + br i1 %tobool.not.i301.i.i.i, label %if.end.i303.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i273 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i273: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i270 + %m_ref_count.i.i.i.i.i47.i = getelementptr inbounds %class.ast, ptr %781, i64 0, i32 2 + %782 = load i32, ptr %m_ref_count.i.i.i.i.i47.i, align 4 + %inc.i.i.i302.i.i.i = add i32 %782, 1 + store i32 %inc.i.i.i302.i.i.i, ptr %m_ref_count.i.i.i.i.i47.i, align 4 + br label %if.end.i303.i.i.i + +if.end.i303.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i273, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i270 + %783 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i304.i.i.i = icmp eq ptr %783, null + br i1 %tobool.not.i3.i304.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i, label %if.then.i.i.i305.i.i.i + +if.then.i.i.i305.i.i.i: ; preds = %if.end.i303.i.i.i + %784 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i307.i.i.i = getelementptr inbounds %class.ast, ptr %783, i64 0, i32 2 + %785 = load i32, ptr %m_ref_count.i.i.i.i307.i.i.i, align 4 + %dec.i.i.i.i308.i.i.i = add i32 %785, -1 + store i32 %dec.i.i.i.i308.i.i.i, ptr %m_ref_count.i.i.i.i307.i.i.i, align 4 + %cmp.i.i.i309.i.i.i = icmp eq i32 %dec.i.i.i.i308.i.i.i, 0 + br i1 %cmp.i.i.i309.i.i.i, label %if.then2.i.i.i310.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + +if.then2.i.i.i310.i.i.i: ; preds = %if.then.i.i.i305.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %784, ptr noundef nonnull %783) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i: ; preds = %if.then2.i.i.i310.i.i.i, %if.then.i.i.i305.i.i.i, %if.end.i303.i.i.i + store ptr %781, ptr %m_r.i64.i.i, align 8 + %786 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i314.i.i.i = icmp eq ptr %786, null + br i1 %cmp.i.i.i314.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i277, label %if.end.i.i.i315.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i277: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + %.pre.i326.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i327.i.i.i = add i32 %.pre.i326.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i274 + +if.end.i.i.i315.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + %arrayidx.i.i.i316.i.i.i = getelementptr inbounds i32, ptr %786, i64 -1 + %787 = load i32, ptr %arrayidx.i.i.i316.i.i.i, align 4 + %788 = add i32 %787, -1 + %789 = zext i32 %788 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i274 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i274: ; preds = %if.end.i.i.i315.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i277 + %dec.i.pre-phi.i.i.i.i = phi i32 [ %.pre1.i327.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i277 ], [ %788, %if.end.i.i.i315.i.i.i ] + %retval.0.i.i.i317.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i277 ], [ %789, %if.end.i.i.i315.i.i.i ] + %arrayidx.i1.i.i318.i.i.i = getelementptr inbounds ptr, ptr %786, i64 %retval.0.i.i.i317.i.i.i + %790 = load ptr, ptr %arrayidx.i1.i.i318.i.i.i, align 8 + %arrayidx.i.i319.i.i.i = getelementptr inbounds i32, ptr %786, i64 -1 + store i32 %dec.i.pre-phi.i.i.i.i, ptr %arrayidx.i.i319.i.i.i, align 4 + %791 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i320.i.i.i = icmp eq ptr %790, null + br i1 %tobool.not.i.i.i.i320.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i275, label %if.then.i.i.i.i321.i.i.i + +if.then.i.i.i.i321.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i274 + %m_ref_count.i.i.i.i.i322.i.i.i = getelementptr inbounds %class.ast, ptr %790, i64 0, i32 2 + %792 = load i32, ptr %m_ref_count.i.i.i.i.i322.i.i.i, align 4 + %dec.i.i.i.i.i323.i.i.i = add i32 %792, -1 + store i32 %dec.i.i.i.i.i323.i.i.i, ptr %m_ref_count.i.i.i.i.i322.i.i.i, align 4 + %cmp.i.i.i.i324.i.i.i = icmp eq i32 %dec.i.i.i.i.i323.i.i.i, 0 + br i1 %cmp.i.i.i.i324.i.i.i, label %if.then2.i.i.i.i325.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i275 + +if.then2.i.i.i.i325.i.i.i: ; preds = %if.then.i.i.i.i321.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %791, ptr noundef nonnull %790) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i275 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i275: ; preds = %if.then2.i.i.i.i325.i.i.i, %if.then.i.i.i.i321.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i274 + %793 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i330.i.i.i = icmp eq ptr %793, null + br i1 %cmp.i.i.i330.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i, label %if.end.i.i.i331.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i275 + %.pre.i345.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i346.i.i.i = add i32 %.pre.i345.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + +if.end.i.i.i331.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i275 + %arrayidx.i.i.i332.i.i.i = getelementptr inbounds i32, ptr %793, i64 -1 + %794 = load i32, ptr %arrayidx.i.i.i332.i.i.i, align 4 + %795 = add i32 %794, -1 + %796 = zext i32 %795 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i: ; preds = %if.end.i.i.i331.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i + %dec.i.pre-phi.i334.i.i.i = phi i32 [ %.pre1.i346.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i ], [ %795, %if.end.i.i.i331.i.i.i ] + %retval.0.i.i.i335.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i ], [ %796, %if.end.i.i.i331.i.i.i ] + %arrayidx.i1.i.i336.i.i.i = getelementptr inbounds ptr, ptr %793, i64 %retval.0.i.i.i335.i.i.i + %797 = load ptr, ptr %arrayidx.i1.i.i336.i.i.i, align 8 + %arrayidx.i.i337.i.i.i276 = getelementptr inbounds i32, ptr %793, i64 -1 + store i32 %dec.i.pre-phi.i334.i.i.i, ptr %arrayidx.i.i337.i.i.i276, align 4 + %798 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i338.i.i.i = icmp eq ptr %797, null + br i1 %tobool.not.i.i.i.i338.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i, label %if.then.i.i.i.i339.i.i.i + +if.then.i.i.i.i339.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + %m_ref_count.i.i.i.i.i340.i.i.i = getelementptr inbounds %class.ast, ptr %797, i64 0, i32 2 + %799 = load i32, ptr %m_ref_count.i.i.i.i.i340.i.i.i, align 4 + %dec.i.i.i.i.i341.i.i.i = add i32 %799, -1 + store i32 %dec.i.i.i.i.i341.i.i.i, ptr %m_ref_count.i.i.i.i.i340.i.i.i, align 4 + %cmp.i.i.i.i342.i.i.i = icmp eq i32 %dec.i.i.i.i.i341.i.i.i, 0 + br i1 %cmp.i.i.i.i342.i.i.i, label %if.then2.i.i.i.i343.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + +if.then2.i.i.i.i343.i.i.i: ; preds = %if.then.i.i.i.i339.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %798, ptr noundef nonnull %797) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i: ; preds = %if.then2.i.i.i.i343.i.i.i, %if.then.i.i.i.i339.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + %800 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i349.i.i.i = icmp eq ptr %800, null + br i1 %tobool.not.i.i.i.i349.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i, label %if.then.i.i.i.i350.i.i.i + +if.then.i.i.i.i350.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + %m_ref_count.i.i.i.i.i351.i.i.i = getelementptr inbounds %class.ast, ptr %800, i64 0, i32 2 + %801 = load i32, ptr %m_ref_count.i.i.i.i.i351.i.i.i, align 4 + %inc.i.i.i.i.i352.i.i.i = add i32 %801, 1 + store i32 %inc.i.i.i.i.i352.i.i.i, ptr %m_ref_count.i.i.i.i.i351.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i: ; preds = %if.then.i.i.i.i350.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + %802 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i355.i.i.i = icmp eq ptr %802, null + br i1 %cmp.i.i355.i.i.i, label %if.then.i.i364.i.i.i, label %lor.lhs.false.i.i356.i.i.i + +lor.lhs.false.i.i356.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + %arrayidx.i.i357.i.i.i = getelementptr inbounds i32, ptr %802, i64 -1 + %803 = load i32, ptr %arrayidx.i.i357.i.i.i, align 4 + %arrayidx4.i.i358.i.i.i = getelementptr inbounds i32, ptr %802, i64 -2 + %804 = load i32, ptr %arrayidx4.i.i358.i.i.i, align 4 + %cmp5.i.i359.i.i.i = icmp eq i32 %803, %804 + br i1 %cmp5.i.i359.i.i.i, label %if.then.i.i364.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + +if.then.i.i364.i.i.i: ; preds = %lor.lhs.false.i.i356.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i365.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i366.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i365.i.i.i, i64 -1 + %.pre1.i.i367.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i366.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i: ; preds = %if.then.i.i364.i.i.i, %lor.lhs.false.i.i356.i.i.i + %805 = phi i32 [ %.pre1.i.i367.i.i.i, %if.then.i.i364.i.i.i ], [ %803, %lor.lhs.false.i.i356.i.i.i ] + %806 = phi ptr [ %.pre.i.i365.i.i.i, %if.then.i.i364.i.i.i ], [ %802, %lor.lhs.false.i.i356.i.i.i ] + %idx.ext.i.i360.i.i.i = zext i32 %805 to i64 + %add.ptr.i.i361.i.i.i = getelementptr inbounds ptr, ptr %806, i64 %idx.ext.i.i360.i.i.i + store ptr %800, ptr %add.ptr.i.i361.i.i.i, align 8 + %807 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i362.i.i.i = getelementptr inbounds i32, ptr %807, i64 -1 + %808 = load i32, ptr %arrayidx10.i.i362.i.i.i, align 4 + %inc.i.i363.i.i.i = add i32 %808, 1 + store i32 %inc.i.i363.i.i.i, ptr %arrayidx10.i.i362.i.i.i, align 4 + %bf.load228.i.i.i = load i32, ptr %626, align 8 + %bf.clear229.i.i.i = and i32 %bf.load228.i.i.i, 1 + %tobool230.not.i.i.i = icmp eq i32 %bf.clear229.i.i.i, 0 + br i1 %tobool230.not.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit371.i.i.i, label %if.then.i370.i.i.i + +if.then.i370.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + %809 = load ptr, ptr %m_r.i64.i.i, align 8 + call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %624, i32 noundef 0, ptr noundef %809) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit371.i.i.i + +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit371.i.i.i: ; preds = %if.then.i370.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + %810 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i373.i.i.i = getelementptr inbounds i32, ptr %810, i64 -1 + %811 = load i32, ptr %arrayidx.i373.i.i.i, align 4 + %dec.i374.i.i.i = add i32 %811, -1 + store i32 %dec.i374.i.i.i, ptr %arrayidx.i373.i.i.i, align 4 + %this.val61.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i375.i.i.i = icmp eq ptr %this.val61.i.i.i, null + br i1 %cmp.i.i375.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit371.i.i.i + %arrayidx.i.i377.i.i.i = getelementptr inbounds i32, ptr %this.val61.i.i.i, i64 -1 + %812 = load i32, ptr %arrayidx.i.i377.i.i.i, align 4 + %cmp3.i.i378.i.i.i = icmp eq i32 %812, 0 + br i1 %cmp3.i.i378.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i + %813 = add i32 %812, -1 + %814 = zext i32 %813 to i64 + %m_new_child.i380.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val61.i.i.i, i64 %814, i32 1 + %bf.load.i381.i.i.i = load i32, ptr %m_new_child.i380.i.i.i, align 8 + %bf.set.i382.i.i.i = or i32 %bf.load.i381.i.i.i, 2 + store i32 %bf.set.i382.i.i.i, ptr %m_new_child.i380.i.i.i, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +sw.bb232.i.i.i: ; preds = %sw.bb.i.i262 + %this.val.i.i.i264 = load ptr, ptr %586, align 8 + store ptr null, ptr %tmp.i.i.i, align 8 + store ptr %this.val.i.i.i264, ptr %m_manager.i385.i.i.i, align 8 + %m_num_args.i386.i.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 2 + %815 = load i32, ptr %m_num_args.i386.i.i.i, align 8 + %816 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i387.i.i.i = icmp eq ptr %816, null + br i1 %cmp.i387.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i265, label %if.then.i393.i.i.i + +if.then.i393.i.i.i: ; preds = %sw.bb232.i.i.i + %arrayidx.i389.i.i.i = getelementptr inbounds i32, ptr %816, i64 -1 + %817 = load i32, ptr %arrayidx.i389.i.i.i, align 4 + %sub239.i.i.i = sub i32 %817, %815 + store i32 %sub239.i.i.i, ptr %arrayidx.i389.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i265 + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i265: ; preds = %if.then.i393.i.i.i, %sw.bb232.i.i.i + %818 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i396.i.i.i = icmp eq ptr %818, null + br i1 %cmp.i396.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i266, label %if.then.i401.i.i.i + +if.then.i401.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i265 + %arrayidx.i398.i.i.i = getelementptr inbounds i32, ptr %818, i64 -1 + %819 = load i32, ptr %arrayidx.i398.i.i.i, align 4 + %sub243.i.i.i = sub i32 %819, %815 + store i32 %sub243.i.i.i, ptr %arrayidx.i398.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i266 + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i266: ; preds = %if.then.i401.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i265 + %820 = load i32, ptr %m_num_qvars.i75, align 8 + %sub245.i.i.i = sub i32 %820, %815 + store i32 %sub245.i.i.i, ptr %m_num_qvars.i75, align 8 invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont247.i.i unwind label %lpad246.i.i.loopexit.split-lp - -invoke.cont247.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit2267 - %816 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i2256 = icmp eq ptr %816, null - br i1 %cmp.i.i.i2256, label %invoke.cont249.i.i, label %if.end.i.i.i2257 - -if.end.i.i.i2257: ; preds = %invoke.cont247.i.i - %arrayidx.i.i.i2258 = getelementptr inbounds i32, ptr %816, i64 -1 - %817 = load i32, ptr %arrayidx.i.i.i2258, align 4 - %818 = add i32 %817, -1 - %819 = zext i32 %818 to i64 - br label %invoke.cont249.i.i - -invoke.cont249.i.i: ; preds = %if.end.i.i.i2257, %invoke.cont247.i.i - %retval.0.i.i.i2259 = phi i64 [ %819, %if.end.i.i.i2257 ], [ 4294967295, %invoke.cont247.i.i ] - %arrayidx.i1.i.i2260 = getelementptr inbounds ptr, ptr %816, i64 %retval.0.i.i.i2259 - %820 = load ptr, ptr %arrayidx.i1.i.i2260, align 8 - %tobool.not.i2241 = icmp eq ptr %820, null - br i1 %tobool.not.i2241, label %if.end.i2245, label %_ZN11ast_manager7inc_refEP3ast.exit.i2242 - -_ZN11ast_manager7inc_refEP3ast.exit.i2242: ; preds = %invoke.cont249.i.i - %m_ref_count.i.i.i2243 = getelementptr inbounds %class.ast, ptr %820, i64 0, i32 2 - %821 = load i32, ptr %m_ref_count.i.i.i2243, align 4 - %inc.i.i.i2244 = add i32 %821, 1 - store i32 %inc.i.i.i2244, ptr %m_ref_count.i.i.i2243, align 4 - br label %if.end.i2245 - -if.end.i2245: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i2242, %invoke.cont249.i.i - %822 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2246 = icmp eq ptr %822, null - br i1 %tobool.not.i3.i2246, label %invoke.cont252.i.i, label %if.then.i.i.i2247 - -if.then.i.i.i2247: ; preds = %if.end.i2245 - %823 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i2249 = getelementptr inbounds %class.ast, ptr %822, i64 0, i32 2 - %824 = load i32, ptr %m_ref_count.i.i.i.i2249, align 4 - %dec.i.i.i.i2250 = add i32 %824, -1 - store i32 %dec.i.i.i.i2250, ptr %m_ref_count.i.i.i.i2249, align 4 - %cmp.i.i.i2251 = icmp eq i32 %dec.i.i.i.i2250, 0 - br i1 %cmp.i.i.i2251, label %if.then2.i.i.i2252, label %invoke.cont252.i.i - -if.then2.i.i.i2252: ; preds = %if.then.i.i.i2247 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %823, ptr noundef nonnull %822) - to label %invoke.cont252.i.i unwind label %lpad246.i.i.loopexit.split-lp - -invoke.cont252.i.i: ; preds = %if.then.i.i.i2247, %if.end.i2245, %if.then2.i.i.i2252 - store ptr %820, ptr %m_r.i48.i, align 8 - %m_kind.i.i.i2227 = getelementptr inbounds %class.ast, ptr %820, i64 0, i32 1 - %bf.load.i.i.i2228 = load i32, ptr %m_kind.i.i.i2227, align 4 - %bf.clear.i.i.i2229 = and i32 %bf.load.i.i.i2228, 65535 - %cmp.i.i2230 = icmp eq i32 %bf.clear.i.i.i2229, 0 - br i1 %cmp.i.i2230, label %invoke.cont257.i.i, label %if.then259.i.i - -invoke.cont257.i.i: ; preds = %invoke.cont252.i.i - %m_num_args.i.i.i2232 = getelementptr inbounds %class.app, ptr %820, i64 0, i32 2 - %825 = load i32, ptr %m_num_args.i.i.i2232, align 8 - %cmp.i.i.i2233 = icmp eq i32 %825, 0 - %m_args.i.i.i2234 = getelementptr inbounds %class.app, ptr %820, i64 0, i32 3 - %idx.ext.i.i.i2235 = zext i32 %825 to i64 - %add.ptr.i.i.i2236 = getelementptr inbounds ptr, ptr %m_args.i.i.i2234, i64 %idx.ext.i.i.i2235 - %cond.i.i.i2237 = select i1 %cmp.i.i.i2233, ptr @_ZN3app16g_constant_flagsE, ptr %add.ptr.i.i.i2236 - %bf.load.i.i2238 = load i32, ptr %cond.i.i.i2237, align 4 - %826 = and i32 %bf.load.i.i2238, 65536 - %tobool.i.i2239.not = icmp eq i32 %826, 0 - br i1 %tobool.i.i2239.not, label %if.then259.i.i, label %if.end266.i.i - -if.then259.i.i: ; preds = %invoke.cont252.i.i, %invoke.cont257.i.i - invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %m_inv_shifter.i.i, ptr noundef nonnull %820, i32 noundef %810, ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i) - to label %invoke.cont263.i.i unwind label %lpad246.i.i.loopexit.split-lp - -invoke.cont263.i.i: ; preds = %if.then259.i.i - %827 = load ptr, ptr %m_r.i48.i, align 8 - %828 = load ptr, ptr %tmp.i.i, align 8 - store ptr %828, ptr %m_r.i48.i, align 8 - store ptr %827, ptr %tmp.i.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %827, null - br i1 %tobool.not.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit, label %if.then.i.i.i.i2219 - -if.then.i.i.i.i2219: ; preds = %invoke.cont263.i.i - %829 = load ptr, ptr %m_manager.i2284, align 8 - %m_ref_count.i.i.i.i.i2221 = getelementptr inbounds %class.ast, ptr %827, i64 0, i32 2 - %830 = load i32, ptr %m_ref_count.i.i.i.i.i2221, align 4 - %dec.i.i.i.i.i2222 = add i32 %830, -1 - store i32 %dec.i.i.i.i.i2222, ptr %m_ref_count.i.i.i.i.i2221, align 4 - %cmp.i.i.i.i2223 = icmp eq i32 %dec.i.i.i.i.i2222, 0 - br i1 %cmp.i.i.i.i2223, label %if.then2.i.i.i.i2225, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit - -if.then2.i.i.i.i2225: ; preds = %if.then.i.i.i.i2219 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %829, ptr noundef nonnull %827) - to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit unwind label %terminate.lpad.i2226 - -terminate.lpad.i2226: ; preds = %if.then2.i.i.i.i2225 - %831 = landingpad { ptr, i32 } + to label %invoke.cont247.i.i.i unwind label %lpad246.loopexit.split-lp.i.i.i + +invoke.cont247.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i266 + %821 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i406.i.i.i = icmp eq ptr %821, null + br i1 %cmp.i.i.i406.i.i.i, label %invoke.cont249.i.i.i, label %if.end.i.i.i407.i.i.i + +if.end.i.i.i407.i.i.i: ; preds = %invoke.cont247.i.i.i + %arrayidx.i.i.i408.i.i.i = getelementptr inbounds i32, ptr %821, i64 -1 + %822 = load i32, ptr %arrayidx.i.i.i408.i.i.i, align 4 + %823 = add i32 %822, -1 + %824 = zext i32 %823 to i64 + br label %invoke.cont249.i.i.i + +invoke.cont249.i.i.i: ; preds = %if.end.i.i.i407.i.i.i, %invoke.cont247.i.i.i + %retval.0.i.i.i409.i.i.i = phi i64 [ %824, %if.end.i.i.i407.i.i.i ], [ 4294967295, %invoke.cont247.i.i.i ] + %arrayidx.i1.i.i410.i.i.i = getelementptr inbounds ptr, ptr %821, i64 %retval.0.i.i.i409.i.i.i + %825 = load ptr, ptr %arrayidx.i1.i.i410.i.i.i, align 8 + %tobool.not.i412.i.i.i = icmp eq ptr %825, null + br i1 %tobool.not.i412.i.i.i, label %if.end.i416.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i: ; preds = %invoke.cont249.i.i.i + %m_ref_count.i.i.i414.i.i.i = getelementptr inbounds %class.ast, ptr %825, i64 0, i32 2 + %826 = load i32, ptr %m_ref_count.i.i.i414.i.i.i, align 4 + %inc.i.i.i415.i.i.i = add i32 %826, 1 + store i32 %inc.i.i.i415.i.i.i, ptr %m_ref_count.i.i.i414.i.i.i, align 4 + br label %if.end.i416.i.i.i + +if.end.i416.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i, %invoke.cont249.i.i.i + %827 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i417.i.i.i = icmp eq ptr %827, null + br i1 %tobool.not.i3.i417.i.i.i, label %invoke.cont252.i.i.i, label %if.then.i.i.i418.i.i.i + +if.then.i.i.i418.i.i.i: ; preds = %if.end.i416.i.i.i + %828 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i420.i.i.i = getelementptr inbounds %class.ast, ptr %827, i64 0, i32 2 + %829 = load i32, ptr %m_ref_count.i.i.i.i420.i.i.i, align 4 + %dec.i.i.i.i421.i.i.i = add i32 %829, -1 + store i32 %dec.i.i.i.i421.i.i.i, ptr %m_ref_count.i.i.i.i420.i.i.i, align 4 + %cmp.i.i.i422.i.i.i = icmp eq i32 %dec.i.i.i.i421.i.i.i, 0 + br i1 %cmp.i.i.i422.i.i.i, label %if.then2.i.i.i423.i.i.i, label %invoke.cont252.i.i.i + +if.then2.i.i.i423.i.i.i: ; preds = %if.then.i.i.i418.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %828, ptr noundef nonnull %827) + to label %invoke.cont252.i.i.i unwind label %lpad246.loopexit.split-lp.i.i.i + +invoke.cont252.i.i.i: ; preds = %if.then2.i.i.i423.i.i.i, %if.then.i.i.i418.i.i.i, %if.end.i416.i.i.i + store ptr %825, ptr %m_r.i64.i.i, align 8 + %m_kind.i.i.i426.i.i.i = getelementptr inbounds %class.ast, ptr %825, i64 0, i32 1 + %bf.load.i.i.i427.i.i.i = load i32, ptr %m_kind.i.i.i426.i.i.i, align 4 + %bf.clear.i.i.i428.i.i.i = and i32 %bf.load.i.i.i427.i.i.i, 65535 + %cmp.i.i429.i.i.i = icmp eq i32 %bf.clear.i.i.i428.i.i.i, 0 + br i1 %cmp.i.i429.i.i.i, label %invoke.cont257.i.i.i, label %if.then259.i.i.i + +invoke.cont257.i.i.i: ; preds = %invoke.cont252.i.i.i + %m_num_args.i.i.i431.i.i.i = getelementptr inbounds %class.app, ptr %825, i64 0, i32 2 + %830 = load i32, ptr %m_num_args.i.i.i431.i.i.i, align 8 + %cmp.i.i.i432.i.i.i = icmp eq i32 %830, 0 + %m_args.i.i.i433.i.i.i = getelementptr inbounds %class.app, ptr %825, i64 0, i32 3 + %idx.ext.i.i.i434.i.i.i = zext i32 %830 to i64 + %add.ptr.i.i.i435.i.i.i = getelementptr inbounds ptr, ptr %m_args.i.i.i433.i.i.i, i64 %idx.ext.i.i.i434.i.i.i + %cond.i.i.i436.i.i.i = select i1 %cmp.i.i.i432.i.i.i, ptr @_ZN3app16g_constant_flagsE, ptr %add.ptr.i.i.i435.i.i.i + %bf.load.i.i437.i.i.i = load i32, ptr %cond.i.i.i436.i.i.i, align 4 + %831 = and i32 %bf.load.i.i437.i.i.i, 65536 + %tobool.i.i438.not.i.i.i = icmp eq i32 %831, 0 + br i1 %tobool.i.i438.not.i.i.i, label %if.then259.i.i.i, label %if.end266.i.i.i + +if.then259.i.i.i: ; preds = %invoke.cont257.i.i.i, %invoke.cont252.i.i.i + invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %m_inv_shifter.i.i.i, ptr noundef nonnull %825, i32 noundef %815, ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i.i) + to label %invoke.cont263.i.i.i unwind label %lpad246.loopexit.split-lp.i.i.i + +invoke.cont263.i.i.i: ; preds = %if.then259.i.i.i + %832 = load ptr, ptr %m_r.i64.i.i, align 8 + %833 = load ptr, ptr %tmp.i.i.i, align 8 + store ptr %833, ptr %m_r.i64.i.i, align 8 + store ptr %832, ptr %tmp.i.i.i, align 8 + %tobool.not.i.i.i440.i.i.i = icmp eq ptr %832, null + br i1 %tobool.not.i.i.i440.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i, label %if.then.i.i.i.i441.i.i.i + +if.then.i.i.i.i441.i.i.i: ; preds = %invoke.cont263.i.i.i + %834 = load ptr, ptr %m_manager.i385.i.i.i, align 8 + %m_ref_count.i.i.i.i.i443.i.i.i = getelementptr inbounds %class.ast, ptr %832, i64 0, i32 2 + %835 = load i32, ptr %m_ref_count.i.i.i.i.i443.i.i.i, align 4 + %dec.i.i.i.i.i444.i.i.i = add i32 %835, -1 + store i32 %dec.i.i.i.i.i444.i.i.i, ptr %m_ref_count.i.i.i.i.i443.i.i.i, align 4 + %cmp.i.i.i.i445.i.i.i = icmp eq i32 %dec.i.i.i.i.i444.i.i.i, 0 + br i1 %cmp.i.i.i.i445.i.i.i, label %if.then2.i.i.i.i446.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i + +if.then2.i.i.i.i446.i.i.i: ; preds = %if.then.i.i.i.i441.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %834, ptr noundef nonnull %832) + to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i unwind label %terminate.lpad.i447.i.i.i + +terminate.lpad.i447.i.i.i: ; preds = %if.then2.i.i.i.i446.i.i.i + %836 = landingpad { ptr, i32 } catch ptr null - %832 = extractvalue { ptr, i32 } %831, 0 - call void @__clang_call_terminate(ptr %832) #15 + %837 = extractvalue { ptr, i32 } %836, 0 + call void @__clang_call_terminate(ptr %837) #15 unreachable -_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit: ; preds = %invoke.cont263.i.i, %if.then.i.i.i.i2219, %if.then2.i.i.i.i2225 - store ptr null, ptr %tmp.i.i, align 8 - br label %if.end266.i.i +_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i: ; preds = %if.then2.i.i.i.i446.i.i.i, %if.then.i.i.i.i441.i.i.i, %invoke.cont263.i.i.i + store ptr null, ptr %tmp.i.i.i, align 8 + br label %if.end266.i.i.i -lpad246.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i2215 - %lpad.loopexit2842 = landingpad { ptr, i32 } +lpad246.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i472.i.i.i + %lpad.loopexit537.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad246.i.i + br label %lpad246.i.i.i -lpad246.i.i.loopexit.split-lp: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit2267, %if.then259.i.i, %if.then.i2167, %if.then.i.i2185, %if.then2.i.i.i2252 - %lpad.loopexit.split-lp = landingpad { ptr, i32 } +lpad246.loopexit.split-lp.i.i.i: ; preds = %if.then.i498.i.i.i, %if.then.i.i491.i.i.i, %if.then259.i.i.i, %if.then2.i.i.i423.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i266 + %lpad.loopexit.split-lp538.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad246.i.i + br label %lpad246.i.i.i -lpad246.i.i: ; preds = %lpad246.i.i.loopexit.split-lp, %lpad246.i.i.loopexit - %lpad.phi2843 = phi { ptr, i32 } [ %lpad.loopexit2842, %lpad246.i.i.loopexit ], [ %lpad.loopexit.split-lp, %lpad246.i.i.loopexit.split-lp ] - call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i) #14 +lpad246.i.i.i: ; preds = %lpad246.loopexit.split-lp.i.i.i, %lpad246.loopexit.i.i.i + %lpad.phi539.i.i.i = phi { ptr, i32 } [ %lpad.loopexit537.i.i.i, %lpad246.loopexit.i.i.i ], [ %lpad.loopexit.split-lp538.i.i.i, %lpad246.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i.i) #14 br label %common.resume -if.end266.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit, %invoke.cont257.i.i - %m_spos268.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i244, i32 2 - %833 = load i32, ptr %m_spos268.i.i, align 4 - %834 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i2193 = icmp eq ptr %834, null - br i1 %cmp.i.i.i2193, label %invoke.cont269.i.i347, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2194 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2194: ; preds = %if.end266.i.i - %arrayidx.i.i.i2197 = getelementptr inbounds i32, ptr %834, i64 -1 - %835 = load i32, ptr %arrayidx.i.i.i2197, align 4 - %836 = zext i32 %835 to i64 - %add.ptr.i.i2198 = getelementptr inbounds ptr, ptr %834, i64 %836 - %cmp3.i.i2199 = icmp ugt i32 %835, %833 - br i1 %cmp3.i.i2199, label %for.body.i.i2202.preheader, label %if.then.i.i2200 - -for.body.i.i2202.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2194 - %idx.ext.i2195 = zext i32 %833 to i64 - %add.ptr.i2196 = getelementptr inbounds ptr, ptr %834, i64 %idx.ext.i2195 - br label %for.body.i.i2202 - -for.body.i.i2202: ; preds = %for.body.i.i2202.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2209 - %it.04.i.i2203 = phi ptr [ %incdec.ptr.i.i2210, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2209 ], [ %add.ptr.i2196, %for.body.i.i2202.preheader ] - %837 = load ptr, ptr %it.04.i.i2203, align 8 - %838 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i.i2204 = icmp eq ptr %837, null - br i1 %tobool.not.i.i.i.i.i2204, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2209, label %if.then.i.i.i.i.i2205 - -if.then.i.i.i.i.i2205: ; preds = %for.body.i.i2202 - %m_ref_count.i.i.i.i.i.i2206 = getelementptr inbounds %class.ast, ptr %837, i64 0, i32 2 - %839 = load i32, ptr %m_ref_count.i.i.i.i.i.i2206, align 4 - %dec.i.i.i.i.i.i2207 = add i32 %839, -1 - store i32 %dec.i.i.i.i.i.i2207, ptr %m_ref_count.i.i.i.i.i.i2206, align 4 - %cmp.i.i.i.i.i2208 = icmp eq i32 %dec.i.i.i.i.i.i2207, 0 - br i1 %cmp.i.i.i.i.i2208, label %if.then2.i.i.i.i.i2215, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2209 - -if.then2.i.i.i.i.i2215: ; preds = %if.then.i.i.i.i.i2205 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %838, ptr noundef nonnull %837) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2209 unwind label %lpad246.i.i.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2209: ; preds = %if.then2.i.i.i.i.i2215, %if.then.i.i.i.i.i2205, %for.body.i.i2202 - %incdec.ptr.i.i2210 = getelementptr inbounds ptr, ptr %it.04.i.i2203, i64 1 - %cmp.i.i2211 = icmp ult ptr %incdec.ptr.i.i2210, %add.ptr.i.i2198 - br i1 %cmp.i.i2211, label %for.body.i.i2202, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2212, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2212: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2209 - %.pre.i2213 = load ptr, ptr %m_nodes.i.i437, align 8 - %tobool.not.i.i2214 = icmp eq ptr %.pre.i2213, null - br i1 %tobool.not.i.i2214, label %invoke.cont269.i.i347, label %if.then.i.i2200 - -if.then.i.i2200: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2212, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2194 - %840 = phi ptr [ %.pre.i2213, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2212 ], [ %834, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2194 ] - %arrayidx.i.i2201 = getelementptr inbounds i32, ptr %840, i64 -1 - store i32 %833, ptr %arrayidx.i.i2201, align 4 - br label %invoke.cont269.i.i347 - -invoke.cont269.i.i347: ; preds = %if.then.i.i2200, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2212, %if.end266.i.i - %841 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2170 = icmp eq ptr %841, null - br i1 %tobool.not.i.i.i.i2170, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2174, label %if.then.i.i.i.i2171 - -if.then.i.i.i.i2171: ; preds = %invoke.cont269.i.i347 - %m_ref_count.i.i.i.i.i2172 = getelementptr inbounds %class.ast, ptr %841, i64 0, i32 2 - %842 = load i32, ptr %m_ref_count.i.i.i.i.i2172, align 4 - %inc.i.i.i.i.i2173 = add i32 %842, 1 - store i32 %inc.i.i.i.i.i2173, ptr %m_ref_count.i.i.i.i.i2172, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2174 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2174: ; preds = %if.then.i.i.i.i2171, %invoke.cont269.i.i347 - %843 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i2176 = icmp eq ptr %843, null - br i1 %cmp.i.i2176, label %if.then.i.i2185, label %lor.lhs.false.i.i2177 - -lor.lhs.false.i.i2177: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2174 - %arrayidx.i.i2178 = getelementptr inbounds i32, ptr %843, i64 -1 - %844 = load i32, ptr %arrayidx.i.i2178, align 4 - %arrayidx4.i.i2179 = getelementptr inbounds i32, ptr %843, i64 -2 - %845 = load i32, ptr %arrayidx4.i.i2179, align 4 - %cmp5.i.i2180 = icmp eq i32 %844, %845 - br i1 %cmp5.i.i2180, label %if.then.i.i2185, label %invoke.cont274.i.i - -if.then.i.i2185: ; preds = %lor.lhs.false.i.i2177, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2174 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - to label %.noexc2189 unwind label %lpad246.i.i.loopexit.split-lp - -.noexc2189: ; preds = %if.then.i.i2185 - %.pre.i.i2186 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i2187 = getelementptr inbounds i32, ptr %.pre.i.i2186, i64 -1 - %.pre1.i.i2188 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2187, align 4 - br label %invoke.cont274.i.i - -invoke.cont274.i.i: ; preds = %.noexc2189, %lor.lhs.false.i.i2177 - %846 = phi i32 [ %.pre1.i.i2188, %.noexc2189 ], [ %844, %lor.lhs.false.i.i2177 ] - %847 = phi ptr [ %.pre.i.i2186, %.noexc2189 ], [ %843, %lor.lhs.false.i.i2177 ] - %idx.ext.i.i2181 = zext i32 %846 to i64 - %add.ptr.i.i2182 = getelementptr inbounds ptr, ptr %847, i64 %idx.ext.i.i2181 - store ptr %841, ptr %add.ptr.i.i2182, align 8 - %848 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i2183 = getelementptr inbounds i32, ptr %848, i64 -1 - %849 = load i32, ptr %arrayidx10.i.i2183, align 4 - %inc.i.i2184 = add i32 %849, 1 - store i32 %inc.i.i2184, ptr %arrayidx10.i.i2183, align 4 - %bf.load282.i.i = load i32, ptr %625, align 8 - %bf.clear283.i.i = and i32 %bf.load282.i.i, 1 - %tobool284.i.i.not = icmp eq i32 %bf.clear283.i.i, 0 - br i1 %tobool284.i.i.not, label %invoke.cont285.i.i, label %if.then.i2167 - -if.then.i2167: ; preds = %invoke.cont274.i.i - %850 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %850) - to label %invoke.cont285.i.i unwind label %lpad246.i.i.loopexit.split-lp - -invoke.cont285.i.i: ; preds = %invoke.cont274.i.i, %if.then.i2167 - %851 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2163 = getelementptr inbounds i32, ptr %851, i64 -1 - %852 = load i32, ptr %arrayidx.i2163, align 4 - %dec.i2164 = add i32 %852, -1 - store i32 %dec.i2164, ptr %arrayidx.i2163, align 4 - %this.val60.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2153 = icmp eq ptr %this.val60.i.i, null - br i1 %cmp.i.i2153, label %invoke.cont287.i.i352, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2154 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2154: ; preds = %invoke.cont285.i.i - %arrayidx.i.i2155 = getelementptr inbounds i32, ptr %this.val60.i.i, i64 -1 - %853 = load i32, ptr %arrayidx.i.i2155, align 4 - %cmp3.i.i2156 = icmp eq i32 %853, 0 - br i1 %cmp3.i.i2156, label %invoke.cont287.i.i352, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2157 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2157: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2154 - %854 = add i32 %853, -1 - %855 = zext i32 %854 to i64 - %m_new_child.i2158 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val60.i.i, i64 %855, i32 1 - %bf.load.i2159 = load i32, ptr %m_new_child.i2158, align 8 - %bf.set.i2160 = or i32 %bf.load.i2159, 2 - store i32 %bf.set.i2160, ptr %m_new_child.i2158, align 8 - br label %invoke.cont287.i.i352 - -invoke.cont287.i.i352: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2157, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2154, %invoke.cont285.i.i - %856 = load ptr, ptr %tmp.i.i, align 8 - %tobool.not.i.i2144 = icmp eq ptr %856, null - br i1 %tobool.not.i.i2144, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i2145 - -if.then.i.i.i2145: ; preds = %invoke.cont287.i.i352 - %857 = load ptr, ptr %m_manager.i2284, align 8 - %m_ref_count.i.i.i.i2147 = getelementptr inbounds %class.ast, ptr %856, i64 0, i32 2 - %858 = load i32, ptr %m_ref_count.i.i.i.i2147, align 4 - %dec.i.i.i.i2148 = add i32 %858, -1 - store i32 %dec.i.i.i.i2148, ptr %m_ref_count.i.i.i.i2147, align 4 - %cmp.i.i.i2149 = icmp eq i32 %dec.i.i.i.i2148, 0 - br i1 %cmp.i.i.i2149, label %if.then2.i.i.i2151, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i2151: ; preds = %if.then.i.i.i2145 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %857, ptr noundef nonnull %856) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i2152 - -terminate.lpad.i2152: ; preds = %if.then2.i.i.i2151 - %859 = landingpad { ptr, i32 } +if.end266.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i, %invoke.cont257.i.i.i + %m_spos268.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i, i32 2 + %838 = load i32, ptr %m_spos268.i.i.i, align 4 + %839 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i450.i.i.i = icmp eq ptr %839, null + br i1 %cmp.i.i.i450.i.i.i, label %invoke.cont269.i.i.i267, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i: ; preds = %if.end266.i.i.i + %arrayidx.i.i.i454.i.i.i = getelementptr inbounds i32, ptr %839, i64 -1 + %840 = load i32, ptr %arrayidx.i.i.i454.i.i.i, align 4 + %841 = zext i32 %840 to i64 + %add.ptr.i.i455.i.i.i = getelementptr inbounds ptr, ptr %839, i64 %841 + %cmp3.i.i456.i.i.i = icmp ugt i32 %840, %838 + br i1 %cmp3.i.i456.i.i.i, label %for.body.i.i459.preheader.i.i.i, label %if.then.i.i457.i.i.i + +for.body.i.i459.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + %idx.ext.i452.i.i.i = zext i32 %838 to i64 + %add.ptr.i453.i.i.i = getelementptr inbounds ptr, ptr %839, i64 %idx.ext.i452.i.i.i + br label %for.body.i.i459.i.i.i + +for.body.i.i459.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i, %for.body.i.i459.preheader.i.i.i + %it.04.i.i460.i.i.i = phi ptr [ %incdec.ptr.i.i467.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i ], [ %add.ptr.i453.i.i.i, %for.body.i.i459.preheader.i.i.i ] + %842 = load ptr, ptr %it.04.i.i460.i.i.i, align 8 + %843 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i461.i.i.i = icmp eq ptr %842, null + br i1 %tobool.not.i.i.i.i.i461.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i, label %if.then.i.i.i.i.i462.i.i.i + +if.then.i.i.i.i.i462.i.i.i: ; preds = %for.body.i.i459.i.i.i + %m_ref_count.i.i.i.i.i.i463.i.i.i = getelementptr inbounds %class.ast, ptr %842, i64 0, i32 2 + %844 = load i32, ptr %m_ref_count.i.i.i.i.i.i463.i.i.i, align 4 + %dec.i.i.i.i.i.i464.i.i.i = add i32 %844, -1 + store i32 %dec.i.i.i.i.i.i464.i.i.i, ptr %m_ref_count.i.i.i.i.i.i463.i.i.i, align 4 + %cmp.i.i.i.i.i465.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i464.i.i.i, 0 + br i1 %cmp.i.i.i.i.i465.i.i.i, label %if.then2.i.i.i.i.i472.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i + +if.then2.i.i.i.i.i472.i.i.i: ; preds = %if.then.i.i.i.i.i462.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %843, ptr noundef nonnull %842) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i unwind label %lpad246.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i: ; preds = %if.then2.i.i.i.i.i472.i.i.i, %if.then.i.i.i.i.i462.i.i.i, %for.body.i.i459.i.i.i + %incdec.ptr.i.i467.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i460.i.i.i, i64 1 + %cmp.i.i468.i.i.i = icmp ult ptr %incdec.ptr.i.i467.i.i.i, %add.ptr.i.i455.i.i.i + br i1 %cmp.i.i468.i.i.i, label %for.body.i.i459.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i + %.pre.i470.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i471.i.i.i = icmp eq ptr %.pre.i470.i.i.i, null + br i1 %tobool.not.i.i471.i.i.i, label %invoke.cont269.i.i.i267, label %if.then.i.i457.i.i.i + +if.then.i.i457.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + %845 = phi ptr [ %.pre.i470.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i ], [ %839, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i ] + %arrayidx.i.i458.i.i.i = getelementptr inbounds i32, ptr %845, i64 -1 + store i32 %838, ptr %arrayidx.i.i458.i.i.i, align 4 + br label %invoke.cont269.i.i.i267 + +invoke.cont269.i.i.i267: ; preds = %if.then.i.i457.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, %if.end266.i.i.i + %846 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i476.i.i.i = icmp eq ptr %846, null + br i1 %tobool.not.i.i.i.i476.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i, label %if.then.i.i.i.i477.i.i.i + +if.then.i.i.i.i477.i.i.i: ; preds = %invoke.cont269.i.i.i267 + %m_ref_count.i.i.i.i.i478.i.i.i = getelementptr inbounds %class.ast, ptr %846, i64 0, i32 2 + %847 = load i32, ptr %m_ref_count.i.i.i.i.i478.i.i.i, align 4 + %inc.i.i.i.i.i479.i.i.i = add i32 %847, 1 + store i32 %inc.i.i.i.i.i479.i.i.i, ptr %m_ref_count.i.i.i.i.i478.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i: ; preds = %if.then.i.i.i.i477.i.i.i, %invoke.cont269.i.i.i267 + %848 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i482.i.i.i = icmp eq ptr %848, null + br i1 %cmp.i.i482.i.i.i, label %if.then.i.i491.i.i.i, label %lor.lhs.false.i.i483.i.i.i + +lor.lhs.false.i.i483.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + %arrayidx.i.i484.i.i.i = getelementptr inbounds i32, ptr %848, i64 -1 + %849 = load i32, ptr %arrayidx.i.i484.i.i.i, align 4 + %arrayidx4.i.i485.i.i.i = getelementptr inbounds i32, ptr %848, i64 -2 + %850 = load i32, ptr %arrayidx4.i.i485.i.i.i, align 4 + %cmp5.i.i486.i.i.i = icmp eq i32 %849, %850 + br i1 %cmp5.i.i486.i.i.i, label %if.then.i.i491.i.i.i, label %invoke.cont274.i.i.i + +if.then.i.i491.i.i.i: ; preds = %lor.lhs.false.i.i483.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc495.i.i.i unwind label %lpad246.loopexit.split-lp.i.i.i + +.noexc495.i.i.i: ; preds = %if.then.i.i491.i.i.i + %.pre.i.i492.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i493.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i492.i.i.i, i64 -1 + %.pre1.i.i494.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i493.i.i.i, align 4 + br label %invoke.cont274.i.i.i + +invoke.cont274.i.i.i: ; preds = %.noexc495.i.i.i, %lor.lhs.false.i.i483.i.i.i + %851 = phi i32 [ %.pre1.i.i494.i.i.i, %.noexc495.i.i.i ], [ %849, %lor.lhs.false.i.i483.i.i.i ] + %852 = phi ptr [ %.pre.i.i492.i.i.i, %.noexc495.i.i.i ], [ %848, %lor.lhs.false.i.i483.i.i.i ] + %idx.ext.i.i487.i.i.i = zext i32 %851 to i64 + %add.ptr.i.i488.i.i.i = getelementptr inbounds ptr, ptr %852, i64 %idx.ext.i.i487.i.i.i + store ptr %846, ptr %add.ptr.i.i488.i.i.i, align 8 + %853 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i489.i.i.i = getelementptr inbounds i32, ptr %853, i64 -1 + %854 = load i32, ptr %arrayidx10.i.i489.i.i.i, align 4 + %inc.i.i490.i.i.i = add i32 %854, 1 + store i32 %inc.i.i490.i.i.i, ptr %arrayidx10.i.i489.i.i.i, align 4 + %bf.load282.i.i.i = load i32, ptr %626, align 8 + %bf.clear283.i.i.i = and i32 %bf.load282.i.i.i, 1 + %tobool284.not.i.i.i = icmp eq i32 %bf.clear283.i.i.i, 0 + br i1 %tobool284.not.i.i.i, label %invoke.cont285.i.i.i, label %if.then.i498.i.i.i + +if.then.i498.i.i.i: ; preds = %invoke.cont274.i.i.i + %855 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %855) + to label %invoke.cont285.i.i.i unwind label %lpad246.loopexit.split-lp.i.i.i + +invoke.cont285.i.i.i: ; preds = %if.then.i498.i.i.i, %invoke.cont274.i.i.i + %856 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i502.i.i.i = getelementptr inbounds i32, ptr %856, i64 -1 + %857 = load i32, ptr %arrayidx.i502.i.i.i, align 4 + %dec.i503.i.i.i = add i32 %857, -1 + store i32 %dec.i503.i.i.i, ptr %arrayidx.i502.i.i.i, align 4 + %this.val60.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i504.i.i.i = icmp eq ptr %this.val60.i.i.i, null + br i1 %cmp.i.i504.i.i.i, label %invoke.cont287.i.i.i268, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i: ; preds = %invoke.cont285.i.i.i + %arrayidx.i.i506.i.i.i = getelementptr inbounds i32, ptr %this.val60.i.i.i, i64 -1 + %858 = load i32, ptr %arrayidx.i.i506.i.i.i, align 4 + %cmp3.i.i507.i.i.i = icmp eq i32 %858, 0 + br i1 %cmp3.i.i507.i.i.i, label %invoke.cont287.i.i.i268, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i + %859 = add i32 %858, -1 + %860 = zext i32 %859 to i64 + %m_new_child.i509.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val60.i.i.i, i64 %860, i32 1 + %bf.load.i510.i.i.i = load i32, ptr %m_new_child.i509.i.i.i, align 8 + %bf.set.i511.i.i.i = or i32 %bf.load.i510.i.i.i, 2 + store i32 %bf.set.i511.i.i.i, ptr %m_new_child.i509.i.i.i, align 8 + br label %invoke.cont287.i.i.i268 + +invoke.cont287.i.i.i268: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i, %invoke.cont285.i.i.i + %861 = load ptr, ptr %tmp.i.i.i, align 8 + %tobool.not.i.i514.i.i.i = icmp eq ptr %861, null + br i1 %tobool.not.i.i514.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i515.i.i.i + +if.then.i.i.i515.i.i.i: ; preds = %invoke.cont287.i.i.i268 + %862 = load ptr, ptr %m_manager.i385.i.i.i, align 8 + %m_ref_count.i.i.i.i517.i.i.i = getelementptr inbounds %class.ast, ptr %861, i64 0, i32 2 + %863 = load i32, ptr %m_ref_count.i.i.i.i517.i.i.i, align 4 + %dec.i.i.i.i518.i.i.i = add i32 %863, -1 + store i32 %dec.i.i.i.i518.i.i.i, ptr %m_ref_count.i.i.i.i517.i.i.i, align 4 + %cmp.i.i.i519.i.i.i = icmp eq i32 %dec.i.i.i.i518.i.i.i, 0 + br i1 %cmp.i.i.i519.i.i.i, label %if.then2.i.i.i520.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.then2.i.i.i520.i.i.i: ; preds = %if.then.i.i.i515.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %862, ptr noundef nonnull %861) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i521.i.i.i + +terminate.lpad.i521.i.i.i: ; preds = %if.then2.i.i.i520.i.i.i + %864 = landingpad { ptr, i32 } catch ptr null - %860 = extractvalue { ptr, i32 } %859, 0 - call void @__clang_call_terminate(ptr %860) #15 + %865 = extractvalue { ptr, i32 } %864, 0 + call void @__clang_call_terminate(ptr %865) #15 unreachable -sw.bb288.i.i: ; preds = %sw.bb.i338 +sw.bb288.i.i.i: ; preds = %sw.bb.i.i262 call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 520, ptr noundef nonnull @.str.15) call void @exit(i32 noundef 107) #15 unreachable -entry.unreachabledefault.i.i419: ; preds = %sw.bb.i338 - unreachable - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i: ; preds = %if.end.i.i414, %cleanup.i.i383.thread, %if.then2.i.i.i2151, %if.then.i.i.i2145, %invoke.cont287.i.i352, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2289, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2286, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit2300, %if.then2.i.i.i2390, %if.then.i.i.i2384, %cleanup.i.i383, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i202) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %tmp.i.i) - br label %while.cond.i208.backedgethread-pre-split - -sw.bb31.i: ; preds = %if.end28.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i198) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i199) - %m_num_decls.i2143 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 2 - %861 = load i32, ptr %m_num_decls.i2143, align 4 - %bf.load.i30.i = load i32, ptr %625, align 8 - %cmp.i31.i = icmp ult i32 %bf.load.i30.i, 64 - br i1 %cmp.i31.i, label %if.then.i.i329, label %cond.end.i.i256 - -if.then.i.i329: ; preds = %sw.bb31.i +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i: ; preds = %if.end.i.i.i323, %if.then2.i.i.i520.i.i.i, %if.then.i.i.i515.i.i.i, %invoke.cont287.i.i.i268, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit371.i.i.i, %cleanup.i.i.i320, %cleanup.thread.i.i.i, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i.i44) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %tmp.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.bb31.i.i: ; preds = %if.end28.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i.i42) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i.i43) + %m_num_decls.i.i.i.i125 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 2 + %866 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %bf.load.i39.i.i = load i32, ptr %626, align 8 + %cmp.i40.i.i = icmp ult i32 %bf.load.i39.i.i, 64 + br i1 %cmp.i40.i.i, label %if.then.i.i.i252, label %cond.end.i.i.i126 + +if.then.i.i.i252: ; preds = %sw.bb31.i.i call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - %m_expr.i2142 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 3 - %862 = load ptr, ptr %m_expr.i2142, align 8 - store ptr %862, ptr %m_root.i53, align 8 - %863 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i2137 = icmp eq ptr %863, null - br i1 %cmp.i2137, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2141, label %if.end.i2138 - -if.end.i2138: ; preds = %if.then.i.i329 - %arrayidx.i2139 = getelementptr inbounds i32, ptr %863, i64 -1 - %864 = load i32, ptr %arrayidx.i2139, align 4 - br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2141 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2141: ; preds = %if.then.i.i329, %if.end.i2138 - %retval.0.i2140 = phi i32 [ %864, %if.end.i2138 ], [ 0, %if.then.i.i329 ] - %cmp4.i.i3322904.not = icmp eq i32 %861, 0 - br i1 %cmp4.i.i3322904.not, label %for.end.i.i333, label %for.body.i.i334 - -for.body.i.i334: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2141, %_ZN6vectorIjLb0EjE9push_backERKj.exit2121 - %i.0.i66.i2905 = phi i32 [ %inc.i.i337, %_ZN6vectorIjLb0EjE9push_backERKj.exit2121 ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2141 ] - %865 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i2122 = icmp eq ptr %865, null - br i1 %cmp.i2122, label %if.then.i2132, label %lor.lhs.false.i2123 - -lor.lhs.false.i2123: ; preds = %for.body.i.i334 - %arrayidx.i2124 = getelementptr inbounds i32, ptr %865, i64 -1 - %866 = load i32, ptr %arrayidx.i2124, align 4 - %arrayidx4.i2125 = getelementptr inbounds i32, ptr %865, i64 -2 - %867 = load i32, ptr %arrayidx4.i2125, align 4 - %cmp5.i2126 = icmp eq i32 %866, %867 - br i1 %cmp5.i2126, label %if.then.i2132, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2136 - -if.then.i2132: ; preds = %lor.lhs.false.i2123, %for.body.i.i334 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i65.i) - %.pre.i2133 = load ptr, ptr %m_bindings.i65.i, align 8 - %arrayidx8.phi.trans.insert.i2134 = getelementptr inbounds i32, ptr %.pre.i2133, i64 -1 - %.pre1.i2135 = load i32, ptr %arrayidx8.phi.trans.insert.i2134, align 4 - br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2136 - -_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2136: ; preds = %lor.lhs.false.i2123, %if.then.i2132 - %868 = phi i32 [ %.pre1.i2135, %if.then.i2132 ], [ %866, %lor.lhs.false.i2123 ] - %869 = phi ptr [ %.pre.i2133, %if.then.i2132 ], [ %865, %lor.lhs.false.i2123 ] - %idx.ext.i2128 = zext i32 %868 to i64 - %add.ptr.i2129 = getelementptr inbounds ptr, ptr %869, i64 %idx.ext.i2128 - store ptr null, ptr %add.ptr.i2129, align 8 - %870 = load ptr, ptr %m_bindings.i65.i, align 8 - %arrayidx10.i2130 = getelementptr inbounds i32, ptr %870, i64 -1 - %871 = load i32, ptr %arrayidx10.i2130, align 4 - %inc.i2131 = add i32 %871, 1 - store i32 %inc.i2131, ptr %arrayidx10.i2130, align 4 - %872 = load ptr, ptr %m_shifts.i69.i, align 8 - %cmp.i2107 = icmp eq ptr %872, null - br i1 %cmp.i2107, label %if.then.i2117, label %lor.lhs.false.i2108 - -lor.lhs.false.i2108: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2136 - %arrayidx.i2109 = getelementptr inbounds i32, ptr %872, i64 -1 - %873 = load i32, ptr %arrayidx.i2109, align 4 - %arrayidx4.i2110 = getelementptr inbounds i32, ptr %872, i64 -2 - %874 = load i32, ptr %arrayidx4.i2110, align 4 - %cmp5.i2111 = icmp eq i32 %873, %874 - br i1 %cmp5.i2111, label %if.then.i2117, label %_ZN6vectorIjLb0EjE9push_backERKj.exit2121 - -if.then.i2117: ; preds = %lor.lhs.false.i2108, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2136 - call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i69.i) - %.pre.i2118 = load ptr, ptr %m_shifts.i69.i, align 8 - %arrayidx8.phi.trans.insert.i2119 = getelementptr inbounds i32, ptr %.pre.i2118, i64 -1 - %.pre1.i2120 = load i32, ptr %arrayidx8.phi.trans.insert.i2119, align 4 - br label %_ZN6vectorIjLb0EjE9push_backERKj.exit2121 - -_ZN6vectorIjLb0EjE9push_backERKj.exit2121: ; preds = %lor.lhs.false.i2108, %if.then.i2117 - %875 = phi i32 [ %.pre1.i2120, %if.then.i2117 ], [ %873, %lor.lhs.false.i2108 ] - %876 = phi ptr [ %.pre.i2118, %if.then.i2117 ], [ %872, %lor.lhs.false.i2108 ] - %idx.ext.i2113 = zext i32 %875 to i64 - %add.ptr.i2114 = getelementptr inbounds i32, ptr %876, i64 %idx.ext.i2113 - store i32 %retval.0.i2140, ptr %add.ptr.i2114, align 4 - %877 = load ptr, ptr %m_shifts.i69.i, align 8 - %arrayidx10.i2115 = getelementptr inbounds i32, ptr %877, i64 -1 - %878 = load i32, ptr %arrayidx10.i2115, align 4 - %inc.i2116 = add i32 %878, 1 - store i32 %inc.i2116, ptr %arrayidx10.i2115, align 4 - %inc.i.i337 = add nuw i32 %i.0.i66.i2905, 1 - %exitcond2924.not = icmp eq i32 %inc.i.i337, %861 - br i1 %exitcond2924.not, label %for.end.i.i333, label %for.body.i.i334, !llvm.loop !58 - -for.end.i.i333: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit2121, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2141 - %879 = load i32, ptr %m_num_qvars.i54, align 8 - %add.i68.i = add i32 %879, %861 - store i32 %add.i68.i, ptr %m_num_qvars.i54, align 8 - br label %cond.end.i.i256 - -cond.end.i.i256: ; preds = %for.end.i.i333, %sw.bb31.i - %m_num_patterns.i.i2103 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 11 - %880 = load i32, ptr %m_num_patterns.i.i2103, align 8 - %add.i2104 = add i32 %880, 1 - %m_num_no_patterns.i.i2105 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 12 - %881 = load i32, ptr %m_num_no_patterns.i.i2105, align 4 - %add3.i2106 = add i32 %add.i2104, %881 - %m_patterns_decls.i.i.i.i.i2082 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 13 - %m_expr.i.i2101 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 3 - br label %while.cond.i34.i - -while.cond.i34.i: ; preds = %_ZNK10quantifier9get_childEj.exit2102, %cond.end.i.i256 - %bf.load11.i.i258 = load i32, ptr %625, align 8 - %bf.lshr12.i.i259 = lshr i32 %bf.load11.i.i258, 6 - %cmp13.i.i260 = icmp ult i32 %bf.lshr12.i.i259, %add3.i2106 - br i1 %cmp13.i.i260, label %while.body.i57.i, label %while.end.i35.i - -while.body.i57.i: ; preds = %while.cond.i34.i - %cmp.i2076 = icmp ult i32 %bf.load11.i.i258, 64 - br i1 %cmp.i2076, label %_ZNK10quantifier9get_childEj.exit2102, label %if.else.i2077 - -if.else.i2077: ; preds = %while.body.i57.i - %882 = load i32, ptr %m_num_patterns.i.i2103, align 8 - %cmp3.not.i2079 = icmp ult i32 %882, %bf.lshr12.i.i259 - br i1 %cmp3.not.i2079, label %if.else6.i2091, label %if.then4.i2080 - -if.then4.i2080: ; preds = %if.else.i2077 - %883 = load i32, ptr %m_num_decls.i2143, align 4 - %idx.ext.i.i.i.i2084 = zext i32 %883 to i64 - %add.ptr.i.i.i.i2085 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2082, i64 %idx.ext.i.i.i.i2084 - %add.ptr.i.i.i2086 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i2085, i64 %idx.ext.i.i.i.i2084 - %884 = zext nneg i32 %bf.lshr12.i.i259 to i64 - %885 = getelementptr ptr, ptr %add.ptr.i.i.i2086, i64 %884 - %arrayidx.i.i2088 = getelementptr ptr, ptr %885, i64 -1 - br label %_ZNK10quantifier9get_childEj.exit2102 - -if.else6.i2091: ; preds = %if.else.i2077 - %886 = xor i32 %882, -1 - %sub9.i2092 = add i32 %bf.lshr12.i.i259, %886 - %887 = load i32, ptr %m_num_decls.i2143, align 4 - %idx.ext.i.i.i7.i2095 = zext i32 %887 to i64 - %add.ptr.i.i.i8.i2096 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2082, i64 %idx.ext.i.i.i7.i2095 - %add.ptr.i.i9.i2097 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i2096, i64 %idx.ext.i.i.i7.i2095 - %idxprom.i10.i2098 = zext i32 %sub9.i2092 to i64 - %arrayidx.i11.i2099 = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i2097, i64 %idxprom.i10.i2098 - br label %_ZNK10quantifier9get_childEj.exit2102 - -_ZNK10quantifier9get_childEj.exit2102: ; preds = %while.body.i57.i, %if.then4.i2080, %if.else6.i2091 - %retval.0.in.i2089 = phi ptr [ %arrayidx.i.i2088, %if.then4.i2080 ], [ %arrayidx.i11.i2099, %if.else6.i2091 ], [ %m_expr.i.i2101, %while.body.i57.i ] - %retval.0.i2090 = load ptr, ptr %retval.0.in.i2089, align 8 - %888 = and i32 %bf.load11.i.i258, -64 - %bf.shl.i59.i = add i32 %888, 64 - %bf.clear.i60.i = and i32 %bf.load11.i.i258, 63 - %bf.set.i61.i = or disjoint i32 %bf.shl.i59.i, %bf.clear.i60.i - store i32 %bf.set.i61.i, ptr %625, align 8 - %bf.lshr24.i.i325 = lshr i32 %bf.load11.i.i258, 4 - %bf.clear25.i.i326 = and i32 %bf.lshr24.i.i325, 3 - %call26.i62.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i2090, i32 noundef %bf.clear25.i.i326) - br i1 %call26.i62.i, label %while.cond.i34.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, !llvm.loop !59 - -while.end.i35.i: ; preds = %while.cond.i34.i - %889 = load ptr, ptr %m_nodes.i.i437, align 8 - %m_spos.i38.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i244, i32 2 - %890 = load i32, ptr %m_spos.i38.i, align 4 - %idx.ext.i39.i = zext i32 %890 to i64 - %add.ptr.i40.i = getelementptr inbounds ptr, ptr %889, i64 %idx.ext.i39.i - %891 = load ptr, ptr %add.ptr.i40.i, align 8 - %892 = load i32, ptr %m_num_patterns.i.i2103, align 8 - %893 = load i32, ptr %m_num_no_patterns.i.i2105, align 4 - %894 = load ptr, ptr %585, align 8 - %895 = load i32, ptr %m_num_decls.i2143, align 4 - %idx.ext.i.i2069 = zext i32 %895 to i64 - %add.ptr.i.i2070 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2082, i64 %idx.ext.i.i2069 - %add.ptr.i2071 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i2070, i64 %idx.ext.i.i2069 - %896 = ptrtoint ptr %894 to i64 - store i64 %896, ptr %new_pats.i.i198, align 8 - store ptr null, ptr %m_nodes.i.i2035, align 8 - %cmp3.not.i.i2036 = icmp eq i32 %892, 0 - br i1 %cmp3.not.i.i2036, label %invoke.cont.i46.i, label %for.body.lr.ph.i.i2037 - -for.body.lr.ph.i.i2037: ; preds = %while.end.i35.i - %wide.trip.count.i.i2038 = zext i32 %892 to i64 - br label %for.body.i.i2039 - -for.body.i.i2039: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2052, %for.body.lr.ph.i.i2037 - %indvars.iv.i.i2040 = phi i64 [ 0, %for.body.lr.ph.i.i2037 ], [ %indvars.iv.next.i.i2057, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2052 ] - %arrayidx.i.i2041 = getelementptr inbounds ptr, ptr %add.ptr.i2071, i64 %indvars.iv.i.i2040 - %897 = load ptr, ptr %arrayidx.i.i2041, align 8 - %tobool.not.i.i.i.i.i.i2042 = icmp eq ptr %897, null - br i1 %tobool.not.i.i.i.i.i.i2042, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2046, label %if.then.i.i.i.i.i.i2043 - -if.then.i.i.i.i.i.i2043: ; preds = %for.body.i.i2039 - %m_ref_count.i.i.i.i.i.i.i2044 = getelementptr inbounds %class.ast, ptr %897, i64 0, i32 2 - %898 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2044, align 4 - %inc.i.i.i.i.i.i.i2045 = add i32 %898, 1 - store i32 %inc.i.i.i.i.i.i.i2045, ptr %m_ref_count.i.i.i.i.i.i.i2044, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2046 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2046: ; preds = %if.then.i.i.i.i.i.i2043, %for.body.i.i2039 - %899 = load ptr, ptr %m_nodes.i.i2035, align 8 - %cmp.i.i.i.i2047 = icmp eq ptr %899, null - br i1 %cmp.i.i.i.i2047, label %if.then.i.i.i.i2060, label %lor.lhs.false.i.i.i.i2048 - -lor.lhs.false.i.i.i.i2048: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2046 - %arrayidx.i.i.i.i2049 = getelementptr inbounds i32, ptr %899, i64 -1 - %900 = load i32, ptr %arrayidx.i.i.i.i2049, align 4 - %arrayidx4.i.i.i.i2050 = getelementptr inbounds i32, ptr %899, i64 -2 - %901 = load i32, ptr %arrayidx4.i.i.i.i2050, align 4 - %cmp5.i.i.i.i2051 = icmp eq i32 %900, %901 - br i1 %cmp5.i.i.i.i2051, label %if.then.i.i.i.i2060, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2052 - -if.then.i.i.i.i2060: ; preds = %lor.lhs.false.i.i.i.i2048, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2046 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i2035) - to label %.noexc.i2062 unwind label %lpad.i2061 - -.noexc.i2062: ; preds = %if.then.i.i.i.i2060 - %.pre.i.i.i.i2063 = load ptr, ptr %m_nodes.i.i2035, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i2064 = getelementptr inbounds i32, ptr %.pre.i.i.i.i2063, i64 -1 - %.pre1.i.i.i.i2065 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i2064, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2052 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2052: ; preds = %.noexc.i2062, %lor.lhs.false.i.i.i.i2048 - %902 = phi i32 [ %.pre1.i.i.i.i2065, %.noexc.i2062 ], [ %900, %lor.lhs.false.i.i.i.i2048 ] - %903 = phi ptr [ %.pre.i.i.i.i2063, %.noexc.i2062 ], [ %899, %lor.lhs.false.i.i.i.i2048 ] - %idx.ext.i.i.i.i2053 = zext i32 %902 to i64 - %add.ptr.i.i.i.i2054 = getelementptr inbounds ptr, ptr %903, i64 %idx.ext.i.i.i.i2053 - store ptr %897, ptr %add.ptr.i.i.i.i2054, align 8 - %904 = load ptr, ptr %m_nodes.i.i2035, align 8 - %arrayidx10.i.i.i.i2055 = getelementptr inbounds i32, ptr %904, i64 -1 - %905 = load i32, ptr %arrayidx10.i.i.i.i2055, align 4 - %inc.i.i.i.i2056 = add i32 %905, 1 - store i32 %inc.i.i.i.i2056, ptr %arrayidx10.i.i.i.i2055, align 4 - %indvars.iv.next.i.i2057 = add nuw nsw i64 %indvars.iv.i.i2040, 1 - %exitcond.not.i.i2058 = icmp eq i64 %indvars.iv.next.i.i2057, %wide.trip.count.i.i2038 - br i1 %exitcond.not.i.i2058, label %invoke.cont.i46.i.loopexit, label %for.body.i.i2039, !llvm.loop !53 - -lpad.i2061: ; preds = %if.then.i.i.i.i2060 - %906 = landingpad { ptr, i32 } + %m_expr.i.i.i.i253 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 3 + %867 = load ptr, ptr %m_expr.i.i.i.i253, align 8 + store ptr %867, ptr %m_root.i74, align 8 + %868 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i.i127.i.i = icmp eq ptr %868, null + br i1 %cmp.i.i127.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i254, label %if.end.i.i128.i.i + +if.end.i.i128.i.i: ; preds = %if.then.i.i.i252 + %arrayidx.i.i129.i.i = getelementptr inbounds i32, ptr %868, i64 -1 + %869 = load i32, ptr %arrayidx.i.i129.i.i, align 4 + br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i254 + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i254: ; preds = %if.end.i.i128.i.i, %if.then.i.i.i252 + %retval.0.i.i130.i.i = phi i32 [ %869, %if.end.i.i128.i.i ], [ 0, %if.then.i.i.i252 ] + %cmp4326.not.i.i.i = icmp eq i32 %866, 0 + br i1 %cmp4326.not.i.i.i, label %for.end.i.i.i260, label %for.body.i.i.i255 + +for.body.i.i.i255: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i254, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i257 + %i.0327.i.i.i = phi i32 [ %inc.i.i.i258, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i257 ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i254 ] + %870 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i50.i.i.i = icmp eq ptr %870, null + br i1 %cmp.i50.i.i.i, label %if.then.i.i138.i.i, label %lor.lhs.false.i.i131.i.i + +lor.lhs.false.i.i131.i.i: ; preds = %for.body.i.i.i255 + %arrayidx.i51.i.i.i = getelementptr inbounds i32, ptr %870, i64 -1 + %871 = load i32, ptr %arrayidx.i51.i.i.i, align 4 + %arrayidx4.i.i132.i.i = getelementptr inbounds i32, ptr %870, i64 -2 + %872 = load i32, ptr %arrayidx4.i.i132.i.i, align 4 + %cmp5.i.i133.i.i = icmp eq i32 %871, %872 + br i1 %cmp5.i.i133.i.i, label %if.then.i.i138.i.i, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i256 + +if.then.i.i138.i.i: ; preds = %lor.lhs.false.i.i131.i.i, %for.body.i.i.i255 + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i.i83) + %.pre.i.i139.i.i = load ptr, ptr %m_bindings.i.i.i83, align 8 + %arrayidx8.phi.trans.insert.i.i140.i.i = getelementptr inbounds i32, ptr %.pre.i.i139.i.i, i64 -1 + %.pre1.i.i141.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i140.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i256 + +_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i256: ; preds = %if.then.i.i138.i.i, %lor.lhs.false.i.i131.i.i + %873 = phi i32 [ %.pre1.i.i141.i.i, %if.then.i.i138.i.i ], [ %871, %lor.lhs.false.i.i131.i.i ] + %874 = phi ptr [ %.pre.i.i139.i.i, %if.then.i.i138.i.i ], [ %870, %lor.lhs.false.i.i131.i.i ] + %idx.ext.i.i134.i.i = zext i32 %873 to i64 + %add.ptr.i.i135.i.i = getelementptr inbounds ptr, ptr %874, i64 %idx.ext.i.i134.i.i + store ptr null, ptr %add.ptr.i.i135.i.i, align 8 + %875 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %arrayidx10.i.i136.i.i = getelementptr inbounds i32, ptr %875, i64 -1 + %876 = load i32, ptr %arrayidx10.i.i136.i.i, align 4 + %inc.i.i137.i.i = add i32 %876, 1 + store i32 %inc.i.i137.i.i, ptr %arrayidx10.i.i136.i.i, align 4 + %877 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i53.i.i.i = icmp eq ptr %877, null + br i1 %cmp.i53.i.i.i, label %if.then.i63.i.i.i, label %lor.lhs.false.i54.i.i.i + +lor.lhs.false.i54.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i256 + %arrayidx.i55.i.i.i = getelementptr inbounds i32, ptr %877, i64 -1 + %878 = load i32, ptr %arrayidx.i55.i.i.i, align 4 + %arrayidx4.i56.i.i.i = getelementptr inbounds i32, ptr %877, i64 -2 + %879 = load i32, ptr %arrayidx4.i56.i.i.i, align 4 + %cmp5.i57.i.i.i = icmp eq i32 %878, %879 + br i1 %cmp5.i57.i.i.i, label %if.then.i63.i.i.i, label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i257 + +if.then.i63.i.i.i: ; preds = %lor.lhs.false.i54.i.i.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i256 + call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i.i84) + %.pre.i64.i.i.i = load ptr, ptr %m_shifts.i.i.i84, align 8 + %arrayidx8.phi.trans.insert.i65.i.i.i = getelementptr inbounds i32, ptr %.pre.i64.i.i.i, i64 -1 + %.pre1.i66.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i65.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i257 + +_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i257: ; preds = %if.then.i63.i.i.i, %lor.lhs.false.i54.i.i.i + %880 = phi i32 [ %.pre1.i66.i.i.i, %if.then.i63.i.i.i ], [ %878, %lor.lhs.false.i54.i.i.i ] + %881 = phi ptr [ %.pre.i64.i.i.i, %if.then.i63.i.i.i ], [ %877, %lor.lhs.false.i54.i.i.i ] + %idx.ext.i59.i.i.i = zext i32 %880 to i64 + %add.ptr.i60.i.i.i = getelementptr inbounds i32, ptr %881, i64 %idx.ext.i59.i.i.i + store i32 %retval.0.i.i130.i.i, ptr %add.ptr.i60.i.i.i, align 4 + %882 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %arrayidx10.i61.i.i.i = getelementptr inbounds i32, ptr %882, i64 -1 + %883 = load i32, ptr %arrayidx10.i61.i.i.i, align 4 + %inc.i62.i.i.i = add i32 %883, 1 + store i32 %inc.i62.i.i.i, ptr %arrayidx10.i61.i.i.i, align 4 + %inc.i.i.i258 = add nuw i32 %i.0327.i.i.i, 1 + %exitcond.not.i.i.i259 = icmp eq i32 %inc.i.i.i258, %866 + br i1 %exitcond.not.i.i.i259, label %for.end.i.i.i260, label %for.body.i.i.i255, !llvm.loop !58 + +for.end.i.i.i260: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i257, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i254 + %884 = load i32, ptr %m_num_qvars.i75, align 8 + %add.i.i.i261 = add i32 %884, %866 + store i32 %add.i.i.i261, ptr %m_num_qvars.i75, align 8 + br label %cond.end.i.i.i126 + +cond.end.i.i.i126: ; preds = %for.end.i.i.i260, %sw.bb31.i.i + %m_num_patterns.i.i.i.i.i127 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 11 + %885 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %add.i.i.i.i128 = add i32 %885, 1 + %m_num_no_patterns.i.i.i.i.i129 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 12 + %886 = load i32, ptr %m_num_no_patterns.i.i.i.i.i129, align 4 + %add3.i.i.i.i130 = add i32 %add.i.i.i.i128, %886 + %m_patterns_decls.i.i.i.i.i.i.i.i131 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 13 + %m_expr.i.i.i.i.i132 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 3 + br label %while.cond.i41.i.i + +while.cond.i41.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i240, %cond.end.i.i.i126 + %bf.load11.i.i.i133 = load i32, ptr %626, align 8 + %bf.lshr12.i.i.i134 = lshr i32 %bf.load11.i.i.i133, 6 + %cmp13.i.i.i135 = icmp ult i32 %bf.lshr12.i.i.i134, %add3.i.i.i.i130 + br i1 %cmp13.i.i.i135, label %while.body.i120.i.i, label %while.end.i42.i.i + +while.body.i120.i.i: ; preds = %while.cond.i41.i.i + %cmp.i67.i.i.i = icmp ult i32 %bf.load11.i.i.i133, 64 + br i1 %cmp.i67.i.i.i, label %_ZNK10quantifier9get_childEj.exit.i.i.i240, label %if.else.i.i121.i.i + +if.else.i.i121.i.i: ; preds = %while.body.i120.i.i + %887 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %cmp3.not.i.i.i.i236 = icmp ult i32 %887, %bf.lshr12.i.i.i134 + br i1 %cmp3.not.i.i.i.i236, label %if.else6.i.i.i.i245, label %if.then4.i.i.i.i237 + +if.then4.i.i.i.i237: ; preds = %if.else.i.i121.i.i + %888 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i.i.i.i.i238 = zext i32 %888 to i64 + %add.ptr.i.i.i.i.i.i.i239 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i.i.i.i.i238 + %add.ptr.i.i.i.i122.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i.i.i.i239, i64 %idx.ext.i.i.i.i.i.i.i238 + %889 = zext nneg i32 %bf.lshr12.i.i.i134 to i64 + %890 = getelementptr ptr, ptr %add.ptr.i.i.i.i122.i.i, i64 %889 + %arrayidx.i.i.i123.i.i = getelementptr ptr, ptr %890, i64 -1 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i240 + +if.else6.i.i.i.i245: ; preds = %if.else.i.i121.i.i + %891 = xor i32 %887, -1 + %sub9.i.i.i.i246 = add nsw i32 %bf.lshr12.i.i.i134, %891 + %892 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i7.i.i.i.i247 = zext i32 %892 to i64 + %add.ptr.i.i.i8.i.i.i.i248 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i7.i.i.i.i247 + %add.ptr.i.i9.i.i.i.i249 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i.i.i.i248, i64 %idx.ext.i.i.i7.i.i.i.i247 + %idxprom.i10.i.i.i.i250 = zext i32 %sub9.i.i.i.i246 to i64 + %arrayidx.i11.i.i.i.i251 = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i.i.i.i249, i64 %idxprom.i10.i.i.i.i250 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i240 + +_ZNK10quantifier9get_childEj.exit.i.i.i240: ; preds = %if.else6.i.i.i.i245, %if.then4.i.i.i.i237, %while.body.i120.i.i + %retval.0.in.i.i.i.i241 = phi ptr [ %arrayidx.i.i.i123.i.i, %if.then4.i.i.i.i237 ], [ %arrayidx.i11.i.i.i.i251, %if.else6.i.i.i.i245 ], [ %m_expr.i.i.i.i.i132, %while.body.i120.i.i ] + %retval.0.i69.i.i.i = load ptr, ptr %retval.0.in.i.i.i.i241, align 8 + %893 = and i32 %bf.load11.i.i.i133, -64 + %bf.shl.i124.i.i = add i32 %893, 64 + %bf.clear.i125.i.i = and i32 %bf.load11.i.i.i133, 63 + %bf.set.i126.i.i = or disjoint i32 %bf.shl.i124.i.i, %bf.clear.i125.i.i + store i32 %bf.set.i126.i.i, ptr %626, align 8 + %bf.lshr24.i.i.i242 = lshr i32 %bf.load11.i.i.i133, 4 + %bf.clear25.i.i.i243 = and i32 %bf.lshr24.i.i.i242, 3 + %call26.i.i.i244 = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i69.i.i.i, i32 noundef %bf.clear25.i.i.i243) + br i1 %call26.i.i.i244, label %while.cond.i41.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, !llvm.loop !59 + +while.end.i42.i.i: ; preds = %while.cond.i41.i.i + %894 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %m_spos.i.i.i136 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i, i32 2 + %895 = load i32, ptr %m_spos.i.i.i136, align 4 + %idx.ext.i44.i.i = zext i32 %895 to i64 + %add.ptr.i45.i.i = getelementptr inbounds ptr, ptr %894, i64 %idx.ext.i44.i.i + %896 = load ptr, ptr %add.ptr.i45.i.i, align 8 + %897 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %898 = load i32, ptr %m_num_no_patterns.i.i.i.i.i129, align 4 + %899 = load ptr, ptr %586, align 8 + %900 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i46.i.i = zext i32 %900 to i64 + %add.ptr.i.i.i47.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i46.i.i + %add.ptr.i71.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i47.i.i, i64 %idx.ext.i.i.i46.i.i + %901 = ptrtoint ptr %899 to i64 + store i64 %901, ptr %new_pats.i.i.i42, align 8 + store ptr null, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp3.not.i.i.i.i.i137 = icmp eq i32 %897, 0 + br i1 %cmp3.not.i.i.i.i.i137, label %invoke.cont.i56.i.i, label %for.body.lr.ph.i.i.i.i.i138 + +for.body.lr.ph.i.i.i.i.i138: ; preds = %while.end.i42.i.i + %wide.trip.count.i.i.i.i.i139 = zext i32 %897 to i64 + br label %for.body.i.i.i49.i.i + +for.body.i.i.i49.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147, %for.body.lr.ph.i.i.i.i.i138 + %indvars.iv.i.i.i.i.i140 = phi i64 [ 0, %for.body.lr.ph.i.i.i.i.i138 ], [ %indvars.iv.next.i.i.i.i.i149, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 ] + %arrayidx.i.i72.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i71.i.i.i, i64 %indvars.iv.i.i.i.i.i140 + %902 = load ptr, ptr %arrayidx.i.i72.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i50.i.i = icmp eq ptr %902, null + br i1 %tobool.not.i.i.i.i.i.i.i50.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142, label %if.then.i.i.i.i.i.i.i51.i.i + +if.then.i.i.i.i.i.i.i51.i.i: ; preds = %for.body.i.i.i49.i.i + %m_ref_count.i.i.i.i.i.i.i.i52.i.i = getelementptr inbounds %class.ast, ptr %902, i64 0, i32 2 + %903 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i52.i.i, align 4 + %inc.i.i.i.i.i.i.i.i.i.i141 = add i32 %903, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i.i141, ptr %m_ref_count.i.i.i.i.i.i.i.i52.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142: ; preds = %if.then.i.i.i.i.i.i.i51.i.i, %for.body.i.i.i49.i.i + %904 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i.i.i.i.i143 = icmp eq ptr %904, null + br i1 %cmp.i.i.i.i.i.i.i143, label %if.then.i240.i.i, label %lor.lhs.false.i.i.i.i.i.i.i144 + +lor.lhs.false.i.i.i.i.i.i.i144: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + %arrayidx.i.i.i.i.i53.i.i = getelementptr inbounds i32, ptr %904, i64 -1 + %905 = load i32, ptr %arrayidx.i.i.i.i.i53.i.i, align 4 + %arrayidx4.i.i.i.i.i.i.i145 = getelementptr inbounds i32, ptr %904, i64 -2 + %906 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i145, align 4 + %cmp5.i.i.i.i.i.i.i146 = icmp eq i32 %905, %906 + br i1 %cmp5.i.i.i.i.i.i.i146, label %if.else.i216.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + +if.then.i240.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i213.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i214.i.i) + %call.i244.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc243.i.i unwind label %lpad.i.i.i.i231 + +call.i.noexc243.i.i: ; preds = %if.then.i240.i.i + store i32 2, ptr %call.i244.i.i, align 4 + %incdec.ptr.i241.i.i = getelementptr inbounds i32, ptr %call.i244.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i241.i.i, align 4 + %incdec.ptr2.i242.i.i = getelementptr inbounds i32, ptr %call.i244.i.i, i64 2 + store ptr %incdec.ptr2.i242.i.i, ptr %m_nodes.i.i.i48.i.i, align 8 + br label %.noexc.i.i.i.i232 + +if.else.i216.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i.i144 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i213.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i214.i.i) + %mul9.i218.i.i = mul i32 %905, 3 + %add10.i219.i.i = add i32 %mul9.i218.i.i, 1 + %shr.i220.i.i = lshr i32 %add10.i219.i.i, 1 + %mul12.i221.i.i = shl i32 %shr.i220.i.i, 3 + %add13.i222.i.i = add i32 %mul12.i221.i.i, 8 + %cmp15.not.i223.i.i = icmp ugt i32 %shr.i220.i.i, %905 + br i1 %cmp15.not.i223.i.i, label %lor.lhs.false.i233.i.i, label %if.then17.i224.i.i + +lor.lhs.false.i233.i.i: ; preds = %if.else.i216.i.i + %mul6.i234.i.i = shl i32 %905, 3 + %add7.i235.i.i = add i32 %mul6.i234.i.i, 8 + %cmp16.not.i236.i.i = icmp ugt i32 %add13.i222.i.i, %add7.i235.i.i + br i1 %cmp16.not.i236.i.i, label %if.end.i237.i.i230, label %if.then17.i224.i.i + +if.then17.i224.i.i: ; preds = %lor.lhs.false.i233.i.i, %if.else.i216.i.i + %exception.i225.i.i = call ptr @__cxa_allocate_exception(i64 40) #14 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) #14 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i213.i.i, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) + to label %invoke.cont.i229.i.i unwind label %cleanup.action.i226.i.i + +invoke.cont.i229.i.i: ; preds = %if.then17.i224.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i225.i.i, align 8 + %m_msg.i.i230.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i225.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i230.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i213.i.i) #14 + invoke void @__cxa_throw(ptr nonnull %exception.i225.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #17 + to label %unreachable.i232.i.i unwind label %ehcleanup.i231.i.i + +ehcleanup.i231.i.i: ; preds = %invoke.cont.i229.i.i + %907 = landingpad { ptr, i32 } cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i198) #14 - br label %common.resume + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i213.i.i) #14 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) #14 + br label %lpad.i.i.body.i.i229 -invoke.cont.i46.i.loopexit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2052 - %.pre2941 = load ptr, ptr %585, align 8 - %.pre2942 = load i32, ptr %m_num_decls.i2143, align 4 - %.pre2946 = zext i32 %.pre2942 to i64 - %.pre2947 = ptrtoint ptr %.pre2941 to i64 - br label %invoke.cont.i46.i - -invoke.cont.i46.i: ; preds = %invoke.cont.i46.i.loopexit, %while.end.i35.i - %.pre-phi = phi i64 [ %.pre2947, %invoke.cont.i46.i.loopexit ], [ %896, %while.end.i35.i ] - %idx.ext.i.i2032.pre-phi = phi i64 [ %.pre2946, %invoke.cont.i46.i.loopexit ], [ %idx.ext.i.i2069, %while.end.i35.i ] - %add.ptr.i.i2033 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2082, i64 %idx.ext.i.i2032.pre-phi - %add.ptr.i2034 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i2033, i64 %idx.ext.i.i2032.pre-phi - store i64 %.pre-phi, ptr %new_no_pats.i.i199, align 8 - store ptr null, ptr %m_nodes.i.i1997, align 8 - %cmp3.not.i.i1998 = icmp eq i32 %893, 0 - br i1 %cmp3.not.i.i1998, label %if.then40.i.i287, label %for.body.lr.ph.i.i1999 - -for.body.lr.ph.i.i1999: ; preds = %invoke.cont.i46.i - %wide.trip.count.i.i2000 = zext i32 %893 to i64 - br label %for.body.i.i2001 - -for.body.i.i2001: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2014, %for.body.lr.ph.i.i1999 - %indvars.iv.i.i2002 = phi i64 [ 0, %for.body.lr.ph.i.i1999 ], [ %indvars.iv.next.i.i2019, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2014 ] - %arrayidx.i.i2003 = getelementptr inbounds ptr, ptr %add.ptr.i2034, i64 %indvars.iv.i.i2002 - %907 = load ptr, ptr %arrayidx.i.i2003, align 8 - %tobool.not.i.i.i.i.i.i2004 = icmp eq ptr %907, null - br i1 %tobool.not.i.i.i.i.i.i2004, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2008, label %if.then.i.i.i.i.i.i2005 - -if.then.i.i.i.i.i.i2005: ; preds = %for.body.i.i2001 - %m_ref_count.i.i.i.i.i.i.i2006 = getelementptr inbounds %class.ast, ptr %907, i64 0, i32 2 - %908 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2006, align 4 - %inc.i.i.i.i.i.i.i2007 = add i32 %908, 1 - store i32 %inc.i.i.i.i.i.i.i2007, ptr %m_ref_count.i.i.i.i.i.i.i2006, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2008 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2008: ; preds = %if.then.i.i.i.i.i.i2005, %for.body.i.i2001 - %909 = load ptr, ptr %m_nodes.i.i1997, align 8 - %cmp.i.i.i.i2009 = icmp eq ptr %909, null - br i1 %cmp.i.i.i.i2009, label %if.then.i.i.i.i2022, label %lor.lhs.false.i.i.i.i2010 - -lor.lhs.false.i.i.i.i2010: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2008 - %arrayidx.i.i.i.i2011 = getelementptr inbounds i32, ptr %909, i64 -1 - %910 = load i32, ptr %arrayidx.i.i.i.i2011, align 4 - %arrayidx4.i.i.i.i2012 = getelementptr inbounds i32, ptr %909, i64 -2 - %911 = load i32, ptr %arrayidx4.i.i.i.i2012, align 4 - %cmp5.i.i.i.i2013 = icmp eq i32 %910, %911 - br i1 %cmp5.i.i.i.i2013, label %if.then.i.i.i.i2022, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2014 - -if.then.i.i.i.i2022: ; preds = %lor.lhs.false.i.i.i.i2010, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2008 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i1997) - to label %.noexc.i2024 unwind label %lpad.i2023 - -.noexc.i2024: ; preds = %if.then.i.i.i.i2022 - %.pre.i.i.i.i2025 = load ptr, ptr %m_nodes.i.i1997, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i2026 = getelementptr inbounds i32, ptr %.pre.i.i.i.i2025, i64 -1 - %.pre1.i.i.i.i2027 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i2026, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2014 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2014: ; preds = %.noexc.i2024, %lor.lhs.false.i.i.i.i2010 - %912 = phi i32 [ %.pre1.i.i.i.i2027, %.noexc.i2024 ], [ %910, %lor.lhs.false.i.i.i.i2010 ] - %913 = phi ptr [ %.pre.i.i.i.i2025, %.noexc.i2024 ], [ %909, %lor.lhs.false.i.i.i.i2010 ] - %idx.ext.i.i.i.i2015 = zext i32 %912 to i64 - %add.ptr.i.i.i.i2016 = getelementptr inbounds ptr, ptr %913, i64 %idx.ext.i.i.i.i2015 - store ptr %907, ptr %add.ptr.i.i.i.i2016, align 8 - %914 = load ptr, ptr %m_nodes.i.i1997, align 8 - %arrayidx10.i.i.i.i2017 = getelementptr inbounds i32, ptr %914, i64 -1 - %915 = load i32, ptr %arrayidx10.i.i.i.i2017, align 4 - %inc.i.i.i.i2018 = add i32 %915, 1 - store i32 %inc.i.i.i.i2018, ptr %arrayidx10.i.i.i.i2017, align 4 - %indvars.iv.next.i.i2019 = add nuw nsw i64 %indvars.iv.i.i2002, 1 - %exitcond.not.i.i2020 = icmp eq i64 %indvars.iv.next.i.i2019, %wide.trip.count.i.i2000 - br i1 %exitcond.not.i.i2020, label %if.then40.i.i287, label %for.body.i.i2001, !llvm.loop !53 - -lpad.i2023: ; preds = %if.then.i.i.i.i2022 - %916 = landingpad { ptr, i32 } - cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i199) #14 - br label %ehcleanup.i.i263 - -if.then40.i.i287: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2014, %invoke.cont.i46.i - %add.ptr41.i.i288 = getelementptr inbounds ptr, ptr %add.ptr.i40.i, i64 1 - %idx.ext42.i.i289 = zext i32 %892 to i64 - %add.ptr43.i.i290 = getelementptr inbounds ptr, ptr %add.ptr41.i.i288, i64 %idx.ext42.i.i289 - br i1 %cmp3.not.i.i2036, label %for.end63.i.i295, label %for.body47.i.i314 - -for.body47.i.i314: ; preds = %if.then40.i.i287, %for.inc61.i.i317 - %indvars.iv2925 = phi i64 [ %indvars.iv.next2926, %for.inc61.i.i317 ], [ 0, %if.then40.i.i287 ] - %j.0.i.i2922907 = phi i32 [ %j.1.i.i318, %for.inc61.i.i317 ], [ 0, %if.then40.i.i287 ] - %917 = load ptr, ptr %585, align 8 - %arrayidx.i55.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i288, i64 %indvars.iv2925 - %918 = load ptr, ptr %arrayidx.i55.i, align 8 - %call50.i.i315 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %917, ptr noundef %918) - to label %invoke.cont49.i.i316 unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont49.i.i316: ; preds = %for.body47.i.i314 - br i1 %call50.i.i315, label %invoke.cont56.i.i321, label %for.inc61.i.i317 - -invoke.cont56.i.i321: ; preds = %invoke.cont49.i.i316 - %919 = load ptr, ptr %arrayidx.i55.i, align 8 - %920 = load ptr, ptr %m_nodes.i.i2035, align 8 - %idxprom.i.i1993 = zext i32 %j.0.i.i2922907 to i64 - %arrayidx.i.i1994 = getelementptr inbounds ptr, ptr %920, i64 %idxprom.i.i1993 - %921 = load ptr, ptr %new_pats.i.i198, align 8 - %inc55.i.i322 = add i32 %j.0.i.i2922907, 1 - %tobool.not.i.i1979 = icmp eq ptr %919, null - br i1 %tobool.not.i.i1979, label %_ZN11ast_manager7inc_refEP3ast.exit.i1983, label %if.then.i.i1980 - -if.then.i.i1980: ; preds = %invoke.cont56.i.i321 - %m_ref_count.i.i.i1981 = getelementptr inbounds %class.ast, ptr %919, i64 0, i32 2 - %922 = load i32, ptr %m_ref_count.i.i.i1981, align 4 - %inc.i.i.i1982 = add i32 %922, 1 - store i32 %inc.i.i.i1982, ptr %m_ref_count.i.i.i1981, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i1983 - -_ZN11ast_manager7inc_refEP3ast.exit.i1983: ; preds = %if.then.i.i1980, %invoke.cont56.i.i321 - %923 = load ptr, ptr %arrayidx.i.i1994, align 8 - %tobool.not.i2.i1984 = icmp eq ptr %923, null - br i1 %tobool.not.i2.i1984, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1991, label %if.then.i3.i1985 - -if.then.i3.i1985: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1983 - %m_ref_count.i.i4.i1986 = getelementptr inbounds %class.ast, ptr %923, i64 0, i32 2 - %924 = load i32, ptr %m_ref_count.i.i4.i1986, align 4 - %dec.i.i.i1987 = add i32 %924, -1 - store i32 %dec.i.i.i1987, ptr %m_ref_count.i.i4.i1986, align 4 - %cmp.i.i1988 = icmp eq i32 %dec.i.i.i1987, 0 - br i1 %cmp.i.i1988, label %if.then2.i.i1989, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1991 - -if.then2.i.i1989: ; preds = %if.then.i3.i1985 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %921, ptr noundef nonnull %923) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1991 unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1991: ; preds = %if.then2.i.i1989, %_ZN11ast_manager7inc_refEP3ast.exit.i1983, %if.then.i3.i1985 - store ptr %919, ptr %arrayidx.i.i1994, align 8 - br label %for.inc61.i.i317 - -lpad37.i.i266.loopexit: ; preds = %if.then2.i.i.i.i.i1871 - %lpad.loopexit2844 = landingpad { ptr, i32 } +cleanup.action.i226.i.i: ; preds = %if.then17.i224.i.i + %908 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i266 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) #14 + call void @__cxa_free_exception(ptr %exception.i225.i.i) #14 + br label %lpad.i.i.body.i.i229 + +if.end.i237.i.i230: ; preds = %lor.lhs.false.i233.i.i + %conv24.i238.i.i = zext i32 %add13.i222.i.i to i64 + %call25.i246.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i.i.i.i145, i64 noundef %conv24.i238.i.i) + to label %call25.i.noexc245.i.i unwind label %lpad.i.i.i.i231 + +call25.i.noexc245.i.i: ; preds = %if.end.i237.i.i230 + %add.ptr26.i239.i.i = getelementptr inbounds i32, ptr %call25.i246.i.i, i64 2 + store ptr %add.ptr26.i239.i.i, ptr %m_nodes.i.i.i48.i.i, align 8 + store i32 %shr.i220.i.i, ptr %call25.i246.i.i, align 4 + br label %.noexc.i.i.i.i232 + +unreachable.i232.i.i: ; preds = %invoke.cont.i229.i.i + unreachable -lpad37.i.i266.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1930 - %lpad.loopexit2847 = landingpad { ptr, i32 } +.noexc.i.i.i.i232: ; preds = %call25.i.noexc245.i.i, %call.i.noexc243.i.i + %.pre.i.i.i.i.i.i.i233 = phi ptr [ %add.ptr26.i239.i.i, %call25.i.noexc245.i.i ], [ %incdec.ptr2.i242.i.i, %call.i.noexc243.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i213.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i214.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i234 = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i.i233, i64 -1 + %.pre1.i.i.i.i.i.i.i235 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i234, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147: ; preds = %.noexc.i.i.i.i232, %lor.lhs.false.i.i.i.i.i.i.i144 + %909 = phi i32 [ %.pre1.i.i.i.i.i.i.i235, %.noexc.i.i.i.i232 ], [ %905, %lor.lhs.false.i.i.i.i.i.i.i144 ] + %910 = phi ptr [ %.pre.i.i.i.i.i.i.i233, %.noexc.i.i.i.i232 ], [ %904, %lor.lhs.false.i.i.i.i.i.i.i144 ] + %idx.ext.i.i.i.i73.i.i.i = zext i32 %909 to i64 + %add.ptr.i.i.i.i74.i.i.i = getelementptr inbounds ptr, ptr %910, i64 %idx.ext.i.i.i.i73.i.i.i + store ptr %902, ptr %add.ptr.i.i.i.i74.i.i.i, align 8 + %911 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %arrayidx10.i.i.i.i.i.i.i148 = getelementptr inbounds i32, ptr %911, i64 -1 + %912 = load i32, ptr %arrayidx10.i.i.i.i.i.i.i148, align 4 + %inc.i.i.i.i.i54.i.i = add i32 %912, 1 + store i32 %inc.i.i.i.i.i54.i.i, ptr %arrayidx10.i.i.i.i.i.i.i148, align 4 + %indvars.iv.next.i.i.i.i.i149 = add nuw nsw i64 %indvars.iv.i.i.i.i.i140, 1 + %exitcond.not.i.i.i.i.i150 = icmp eq i64 %indvars.iv.next.i.i.i.i.i149, %wide.trip.count.i.i.i.i.i139 + br i1 %exitcond.not.i.i.i.i.i150, label %invoke.cont.loopexit.i.i.i151, label %for.body.i.i.i49.i.i, !llvm.loop !53 + +lpad.i.i.i.i231: ; preds = %if.end.i237.i.i230, %if.then.i240.i.i + %913 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i266 + br label %lpad.i.i.body.i.i229 -lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body68.i.i301, %if.then2.i.i1944 - %lpad.loopexit2850 = landingpad { ptr, i32 } - cleanup - br label %lpad37.i.i266 +lpad.i.i.body.i.i229: ; preds = %lpad.i.i.i.i231, %cleanup.action.i226.i.i, %ehcleanup.i231.i.i + %eh.lpad-body247.i.i = phi { ptr, i32 } [ %913, %lpad.i.i.i.i231 ], [ %907, %ehcleanup.i231.i.i ], [ %908, %cleanup.action.i226.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i42) #14 + br label %common.resume -lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1975 - %lpad.loopexit2853 = landingpad { ptr, i32 } +invoke.cont.loopexit.i.i.i151: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + %.pre.i55.i.i = load ptr, ptr %586, align 8 + %.pre342.i.i.i = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %.pre343.i.i.i = zext i32 %.pre342.i.i.i to i64 + %.pre344.i.i.i = ptrtoint ptr %.pre.i55.i.i to i64 + br label %invoke.cont.i56.i.i + +invoke.cont.i56.i.i: ; preds = %invoke.cont.loopexit.i.i.i151, %while.end.i42.i.i + %.pre-phi.i.i.i152 = phi i64 [ %.pre344.i.i.i, %invoke.cont.loopexit.i.i.i151 ], [ %901, %while.end.i42.i.i ] + %idx.ext.i.i77.pre-phi.i.i.i = phi i64 [ %.pre343.i.i.i, %invoke.cont.loopexit.i.i.i151 ], [ %idx.ext.i.i.i46.i.i, %while.end.i42.i.i ] + %add.ptr.i.i78.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i77.pre-phi.i.i.i + %add.ptr.i79.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i78.i.i.i, i64 %idx.ext.i.i77.pre-phi.i.i.i + store i64 %.pre-phi.i.i.i152, ptr %new_no_pats.i.i.i43, align 8 + store ptr null, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp3.not.i.i81.i.i.i = icmp eq i32 %898, 0 + br i1 %cmp3.not.i.i81.i.i.i, label %if.then40.i.i.i153, label %for.body.lr.ph.i.i82.i.i.i + +for.body.lr.ph.i.i82.i.i.i: ; preds = %invoke.cont.i56.i.i + %wide.trip.count.i.i83.i.i.i = zext i32 %898 to i64 + br label %for.body.i.i84.i.i.i + +for.body.i.i84.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i, %for.body.lr.ph.i.i82.i.i.i + %indvars.iv.i.i85.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i82.i.i.i ], [ %indvars.iv.next.i.i102.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i ] + %arrayidx.i.i86.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i79.i.i.i, i64 %indvars.iv.i.i85.i.i.i + %914 = load ptr, ptr %arrayidx.i.i86.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i87.i.i.i = icmp eq ptr %914, null + br i1 %tobool.not.i.i.i.i.i.i87.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i, label %if.then.i.i.i.i.i.i88.i.i.i + +if.then.i.i.i.i.i.i88.i.i.i: ; preds = %for.body.i.i84.i.i.i + %m_ref_count.i.i.i.i.i.i.i89.i.i.i = getelementptr inbounds %class.ast, ptr %914, i64 0, i32 2 + %915 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i89.i.i.i, align 4 + %inc.i.i.i.i.i.i.i90.i.i.i = add i32 %915, 1 + store i32 %inc.i.i.i.i.i.i.i90.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i89.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i: ; preds = %if.then.i.i.i.i.i.i88.i.i.i, %for.body.i.i84.i.i.i + %916 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i.i92.i.i.i = icmp eq ptr %916, null + br i1 %cmp.i.i.i.i92.i.i.i, label %if.then.i210.i.i, label %lor.lhs.false.i.i.i.i93.i.i.i + +lor.lhs.false.i.i.i.i93.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + %arrayidx.i.i.i.i94.i.i.i = getelementptr inbounds i32, ptr %916, i64 -1 + %917 = load i32, ptr %arrayidx.i.i.i.i94.i.i.i, align 4 + %arrayidx4.i.i.i.i95.i.i.i = getelementptr inbounds i32, ptr %916, i64 -2 + %918 = load i32, ptr %arrayidx4.i.i.i.i95.i.i.i, align 4 + %cmp5.i.i.i.i96.i.i.i = icmp eq i32 %917, %918 + br i1 %cmp5.i.i.i.i96.i.i.i, label %if.else.i203.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i + +if.then.i210.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %call.i211.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc.i.i226 unwind label %lpad.i105.i.i.i + +call.i.noexc.i.i226: ; preds = %if.then.i210.i.i + store i32 2, ptr %call.i211.i.i, align 4 + %incdec.ptr.i.i.i227 = getelementptr inbounds i32, ptr %call.i211.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i.i.i227, align 4 + %incdec.ptr2.i.i.i228 = getelementptr inbounds i32, ptr %call.i211.i.i, i64 2 + store ptr %incdec.ptr2.i.i.i228, ptr %m_nodes.i.i80.i.i.i, align 8 + br label %.noexc.i106.i.i.i + +if.else.i203.i.i: ; preds = %lor.lhs.false.i.i.i.i93.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %mul9.i.i.i208 = mul i32 %917, 3 + %add10.i.i.i209 = add i32 %mul9.i.i.i208, 1 + %shr.i.i.i210 = lshr i32 %add10.i.i.i209, 1 + %mul12.i.i.i211 = shl i32 %shr.i.i.i210, 3 + %add13.i.i.i212 = add i32 %mul12.i.i.i211, 8 + %cmp15.not.i.i.i213 = icmp ugt i32 %shr.i.i.i210, %917 + br i1 %cmp15.not.i.i.i213, label %lor.lhs.false.i.i.i219, label %if.then17.i.i.i214 + +lor.lhs.false.i.i.i219: ; preds = %if.else.i203.i.i + %mul6.i.i.i220 = shl i32 %917, 3 + %add7.i.i.i221 = add i32 %mul6.i.i.i220, 8 + %cmp16.not.i.i.i222 = icmp ugt i32 %add13.i.i.i212, %add7.i.i.i221 + br i1 %cmp16.not.i.i.i222, label %if.end.i209.i.i, label %if.then17.i.i.i214 + +if.then17.i.i.i214: ; preds = %lor.lhs.false.i.i.i219, %if.else.i203.i.i + %exception.i.i.i215 = call ptr @__cxa_allocate_exception(i64 40) #14 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #14 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) + to label %invoke.cont.i206.i.i unwind label %cleanup.action.i.i.i216 + +invoke.cont.i206.i.i: ; preds = %if.then17.i.i.i214 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i.i215, align 8 + %m_msg.i.i207.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i.i215, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i207.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40) #14 + invoke void @__cxa_throw(ptr nonnull %exception.i.i.i215, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #17 + to label %unreachable.i.i.i218 unwind label %ehcleanup.i208.i.i + +ehcleanup.i208.i.i: ; preds = %invoke.cont.i206.i.i + %919 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i266 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40) #14 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #14 + br label %lpad.i105.i.body.i.i -lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body47.i.i314, %if.then2.i.i1989 - %lpad.loopexit2856 = landingpad { ptr, i32 } +cleanup.action.i.i.i216: ; preds = %if.then17.i.i.i214 + %920 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i266 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #14 + call void @__cxa_free_exception(ptr %exception.i.i.i215) #14 + br label %lpad.i105.i.body.i.i + +if.end.i209.i.i: ; preds = %lor.lhs.false.i.i.i219 + %conv24.i.i.i223 = zext i32 %add13.i.i.i212 to i64 + %call25.i212.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i95.i.i.i, i64 noundef %conv24.i.i.i223) + to label %call25.i.noexc.i.i224 unwind label %lpad.i105.i.i.i + +call25.i.noexc.i.i224: ; preds = %if.end.i209.i.i + %add.ptr26.i.i.i225 = getelementptr inbounds i32, ptr %call25.i212.i.i, i64 2 + store ptr %add.ptr26.i.i.i225, ptr %m_nodes.i.i80.i.i.i, align 8 + store i32 %shr.i.i.i210, ptr %call25.i212.i.i, align 4 + br label %.noexc.i106.i.i.i + +unreachable.i.i.i218: ; preds = %invoke.cont.i206.i.i + unreachable -lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then96.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit1810, %if.then2.i.i.i1790, %if.then2.i.i.i1800, %if.then.i1804, %if.then.i.i1841, %if.then2.i.i.i1886, %if.then2.i.i.i1900 - %lpad.loopexit.split-lp2857 = landingpad { ptr, i32 } +.noexc.i106.i.i.i: ; preds = %call25.i.noexc.i.i224, %call.i.noexc.i.i226 + %.pre.i.i.i.i107.i.i.i = phi ptr [ %add.ptr26.i.i.i225, %call25.i.noexc.i.i224 ], [ %incdec.ptr2.i.i.i228, %call.i.noexc.i.i226 ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %arrayidx8.phi.trans.insert.i.i.i.i108.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i107.i.i.i, i64 -1 + %.pre1.i.i.i.i109.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i108.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i: ; preds = %.noexc.i106.i.i.i, %lor.lhs.false.i.i.i.i93.i.i.i + %921 = phi i32 [ %.pre1.i.i.i.i109.i.i.i, %.noexc.i106.i.i.i ], [ %917, %lor.lhs.false.i.i.i.i93.i.i.i ] + %922 = phi ptr [ %.pre.i.i.i.i107.i.i.i, %.noexc.i106.i.i.i ], [ %916, %lor.lhs.false.i.i.i.i93.i.i.i ] + %idx.ext.i.i.i.i98.i.i.i = zext i32 %921 to i64 + %add.ptr.i.i.i.i99.i.i.i = getelementptr inbounds ptr, ptr %922, i64 %idx.ext.i.i.i.i98.i.i.i + store ptr %914, ptr %add.ptr.i.i.i.i99.i.i.i, align 8 + %923 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %arrayidx10.i.i.i.i100.i.i.i = getelementptr inbounds i32, ptr %923, i64 -1 + %924 = load i32, ptr %arrayidx10.i.i.i.i100.i.i.i, align 4 + %inc.i.i.i.i101.i.i.i = add i32 %924, 1 + store i32 %inc.i.i.i.i101.i.i.i, ptr %arrayidx10.i.i.i.i100.i.i.i, align 4 + %indvars.iv.next.i.i102.i.i.i = add nuw nsw i64 %indvars.iv.i.i85.i.i.i, 1 + %exitcond.not.i.i103.i.i.i = icmp eq i64 %indvars.iv.next.i.i102.i.i.i, %wide.trip.count.i.i83.i.i.i + br i1 %exitcond.not.i.i103.i.i.i, label %if.then40.i.i.i153, label %for.body.i.i84.i.i.i, !llvm.loop !53 + +lpad.i105.i.i.i: ; preds = %if.end.i209.i.i, %if.then.i210.i.i + %925 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i266 - -lpad37.i.i266: ; preds = %lpad37.i.i266.loopexit.split-lp.loopexit, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i266.loopexit - %lpad.phi2846 = phi { ptr, i32 } [ %lpad.loopexit2844, %lpad37.i.i266.loopexit ], [ %lpad.loopexit2847, %lpad37.i.i266.loopexit.split-lp.loopexit ], [ %lpad.loopexit2850, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2853, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2856, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2857, %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i199) #14 - br label %ehcleanup.i.i263 - -for.inc61.i.i317: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1991, %invoke.cont49.i.i316 - %j.1.i.i318 = phi i32 [ %inc55.i.i322, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1991 ], [ %j.0.i.i2922907, %invoke.cont49.i.i316 ] - %indvars.iv.next2926 = add nuw nsw i64 %indvars.iv2925, 1 - %exitcond2929.not = icmp eq i64 %indvars.iv.next2926, %idx.ext42.i.i289 - br i1 %exitcond2929.not, label %for.end63.i.i295, label %for.body47.i.i314, !llvm.loop !60 - -for.end63.i.i295: ; preds = %for.inc61.i.i317, %if.then40.i.i287 - %j.0.i.i292.lcssa = phi i32 [ 0, %if.then40.i.i287 ], [ %j.1.i.i318, %for.inc61.i.i317 ] - %925 = load ptr, ptr %m_nodes.i.i2035, align 8 - %cmp.i.i.i1953 = icmp eq ptr %925, null - br i1 %cmp.i.i.i1953, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1977, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1954 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1954: ; preds = %for.end63.i.i295 - %arrayidx.i.i.i1957 = getelementptr inbounds i32, ptr %925, i64 -1 - %926 = load i32, ptr %arrayidx.i.i.i1957, align 4 - %927 = zext i32 %926 to i64 - %add.ptr.i.i1958 = getelementptr inbounds ptr, ptr %925, i64 %927 - %cmp3.i.i1959 = icmp ugt i32 %926, %j.0.i.i292.lcssa - br i1 %cmp3.i.i1959, label %for.body.i.i1962.preheader, label %if.then.i.i1960 - -for.body.i.i1962.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1954 - %idx.ext.i1955 = zext i32 %j.0.i.i292.lcssa to i64 - %add.ptr.i1956 = getelementptr inbounds ptr, ptr %925, i64 %idx.ext.i1955 - br label %for.body.i.i1962 - -for.body.i.i1962: ; preds = %for.body.i.i1962.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1969 - %it.04.i.i1963 = phi ptr [ %incdec.ptr.i.i1970, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1969 ], [ %add.ptr.i1956, %for.body.i.i1962.preheader ] - %928 = load ptr, ptr %it.04.i.i1963, align 8 - %929 = load ptr, ptr %new_pats.i.i198, align 8 - %tobool.not.i.i.i.i.i1964 = icmp eq ptr %928, null - br i1 %tobool.not.i.i.i.i.i1964, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1969, label %if.then.i.i.i.i.i1965 - -if.then.i.i.i.i.i1965: ; preds = %for.body.i.i1962 - %m_ref_count.i.i.i.i.i.i1966 = getelementptr inbounds %class.ast, ptr %928, i64 0, i32 2 - %930 = load i32, ptr %m_ref_count.i.i.i.i.i.i1966, align 4 - %dec.i.i.i.i.i.i1967 = add i32 %930, -1 - store i32 %dec.i.i.i.i.i.i1967, ptr %m_ref_count.i.i.i.i.i.i1966, align 4 - %cmp.i.i.i.i.i1968 = icmp eq i32 %dec.i.i.i.i.i.i1967, 0 - br i1 %cmp.i.i.i.i.i1968, label %if.then2.i.i.i.i.i1975, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1969 - -if.then2.i.i.i.i.i1975: ; preds = %if.then.i.i.i.i.i1965 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %929, ptr noundef nonnull %928) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1969 unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1969: ; preds = %if.then2.i.i.i.i.i1975, %if.then.i.i.i.i.i1965, %for.body.i.i1962 - %incdec.ptr.i.i1970 = getelementptr inbounds ptr, ptr %it.04.i.i1963, i64 1 - %cmp.i.i1971 = icmp ult ptr %incdec.ptr.i.i1970, %add.ptr.i.i1958 - br i1 %cmp.i.i1971, label %for.body.i.i1962, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1972, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1972: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1969 - %.pre.i1973 = load ptr, ptr %m_nodes.i.i2035, align 8 - %tobool.not.i.i1974 = icmp eq ptr %.pre.i1973, null - br i1 %tobool.not.i.i1974, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1977, label %if.then.i.i1960 - -if.then.i.i1960: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1972, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1954 - %931 = phi ptr [ %.pre.i1973, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1972 ], [ %925, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1954 ] - %arrayidx.i.i1961 = getelementptr inbounds i32, ptr %931, i64 -1 - store i32 %j.0.i.i292.lcssa, ptr %arrayidx.i.i1961, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1977 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1977: ; preds = %for.end63.i.i295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1972, %if.then.i.i1960 - br i1 %cmp3.not.i.i1998, label %for.end86.i.i300, label %for.body68.i.i301.preheader - -for.body68.i.i301.preheader: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1977 - %wide.trip.count2933 = zext i32 %893 to i64 - br label %for.body68.i.i301 - -for.body68.i.i301: ; preds = %for.body68.i.i301.preheader, %for.inc84.i.i306 - %indvars.iv2930 = phi i64 [ 0, %for.body68.i.i301.preheader ], [ %indvars.iv.next2931, %for.inc84.i.i306 ] - %j.2.i.i2972911 = phi i32 [ 0, %for.body68.i.i301.preheader ], [ %j.3.i.i307, %for.inc84.i.i306 ] - %932 = load ptr, ptr %585, align 8 - %arrayidx71.i.i303 = getelementptr inbounds ptr, ptr %add.ptr43.i.i290, i64 %indvars.iv2930 - %933 = load ptr, ptr %arrayidx71.i.i303, align 8 - %call73.i.i304 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %932, ptr noundef %933) - to label %invoke.cont72.i.i305 unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont72.i.i305: ; preds = %for.body68.i.i301 - br i1 %call73.i.i304, label %invoke.cont79.i.i311, label %for.inc84.i.i306 - -invoke.cont79.i.i311: ; preds = %invoke.cont72.i.i305 - %934 = load ptr, ptr %arrayidx71.i.i303, align 8 - %935 = load ptr, ptr %m_nodes.i.i1997, align 8 - %idxprom.i.i1948 = zext i32 %j.2.i.i2972911 to i64 - %arrayidx.i.i1949 = getelementptr inbounds ptr, ptr %935, i64 %idxprom.i.i1948 - %936 = load ptr, ptr %new_no_pats.i.i199, align 8 - %inc78.i.i312 = add i32 %j.2.i.i2972911, 1 - %tobool.not.i.i1934 = icmp eq ptr %934, null - br i1 %tobool.not.i.i1934, label %_ZN11ast_manager7inc_refEP3ast.exit.i1938, label %if.then.i.i1935 - -if.then.i.i1935: ; preds = %invoke.cont79.i.i311 - %m_ref_count.i.i.i1936 = getelementptr inbounds %class.ast, ptr %934, i64 0, i32 2 - %937 = load i32, ptr %m_ref_count.i.i.i1936, align 4 - %inc.i.i.i1937 = add i32 %937, 1 - store i32 %inc.i.i.i1937, ptr %m_ref_count.i.i.i1936, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i1938 - -_ZN11ast_manager7inc_refEP3ast.exit.i1938: ; preds = %if.then.i.i1935, %invoke.cont79.i.i311 - %938 = load ptr, ptr %arrayidx.i.i1949, align 8 - %tobool.not.i2.i1939 = icmp eq ptr %938, null - br i1 %tobool.not.i2.i1939, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1946, label %if.then.i3.i1940 - -if.then.i3.i1940: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1938 - %m_ref_count.i.i4.i1941 = getelementptr inbounds %class.ast, ptr %938, i64 0, i32 2 - %939 = load i32, ptr %m_ref_count.i.i4.i1941, align 4 - %dec.i.i.i1942 = add i32 %939, -1 - store i32 %dec.i.i.i1942, ptr %m_ref_count.i.i4.i1941, align 4 - %cmp.i.i1943 = icmp eq i32 %dec.i.i.i1942, 0 - br i1 %cmp.i.i1943, label %if.then2.i.i1944, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1946 - -if.then2.i.i1944: ; preds = %if.then.i3.i1940 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %936, ptr noundef nonnull %938) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1946 unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1946: ; preds = %if.then2.i.i1944, %_ZN11ast_manager7inc_refEP3ast.exit.i1938, %if.then.i3.i1940 - store ptr %934, ptr %arrayidx.i.i1949, align 8 - br label %for.inc84.i.i306 - -for.inc84.i.i306: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1946, %invoke.cont72.i.i305 - %j.3.i.i307 = phi i32 [ %inc78.i.i312, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1946 ], [ %j.2.i.i2972911, %invoke.cont72.i.i305 ] - %indvars.iv.next2931 = add nuw nsw i64 %indvars.iv2930, 1 - %exitcond2934.not = icmp eq i64 %indvars.iv.next2931, %wide.trip.count2933 - br i1 %exitcond2934.not, label %for.end86.i.i300, label %for.body68.i.i301, !llvm.loop !61 - -for.end86.i.i300: ; preds = %for.inc84.i.i306, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1977 - %j.2.i.i297.lcssa = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1977 ], [ %j.3.i.i307, %for.inc84.i.i306 ] - %940 = load ptr, ptr %m_nodes.i.i1997, align 8 - %cmp.i.i.i1908 = icmp eq ptr %940, null - br i1 %cmp.i.i.i1908, label %if.then92.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1909 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1909: ; preds = %for.end86.i.i300 - %arrayidx.i.i.i1912 = getelementptr inbounds i32, ptr %940, i64 -1 - %941 = load i32, ptr %arrayidx.i.i.i1912, align 4 - %942 = zext i32 %941 to i64 - %add.ptr.i.i1913 = getelementptr inbounds ptr, ptr %940, i64 %942 - %cmp3.i.i1914 = icmp ugt i32 %941, %j.2.i.i297.lcssa - br i1 %cmp3.i.i1914, label %for.body.i.i1917.preheader, label %if.then.i.i1915 - -for.body.i.i1917.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1909 - %idx.ext.i1910 = zext i32 %j.2.i.i297.lcssa to i64 - %add.ptr.i1911 = getelementptr inbounds ptr, ptr %940, i64 %idx.ext.i1910 - br label %for.body.i.i1917 - -for.body.i.i1917: ; preds = %for.body.i.i1917.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1924 - %it.04.i.i1918 = phi ptr [ %incdec.ptr.i.i1925, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1924 ], [ %add.ptr.i1911, %for.body.i.i1917.preheader ] - %943 = load ptr, ptr %it.04.i.i1918, align 8 - %944 = load ptr, ptr %new_no_pats.i.i199, align 8 - %tobool.not.i.i.i.i.i1919 = icmp eq ptr %943, null - br i1 %tobool.not.i.i.i.i.i1919, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1924, label %if.then.i.i.i.i.i1920 - -if.then.i.i.i.i.i1920: ; preds = %for.body.i.i1917 - %m_ref_count.i.i.i.i.i.i1921 = getelementptr inbounds %class.ast, ptr %943, i64 0, i32 2 - %945 = load i32, ptr %m_ref_count.i.i.i.i.i.i1921, align 4 - %dec.i.i.i.i.i.i1922 = add i32 %945, -1 - store i32 %dec.i.i.i.i.i.i1922, ptr %m_ref_count.i.i.i.i.i.i1921, align 4 - %cmp.i.i.i.i.i1923 = icmp eq i32 %dec.i.i.i.i.i.i1922, 0 - br i1 %cmp.i.i.i.i.i1923, label %if.then2.i.i.i.i.i1930, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1924 - -if.then2.i.i.i.i.i1930: ; preds = %if.then.i.i.i.i.i1920 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %944, ptr noundef nonnull %943) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1924 unwind label %lpad37.i.i266.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1924: ; preds = %if.then2.i.i.i.i.i1930, %if.then.i.i.i.i.i1920, %for.body.i.i1917 - %incdec.ptr.i.i1925 = getelementptr inbounds ptr, ptr %it.04.i.i1918, i64 1 - %cmp.i.i1926 = icmp ult ptr %incdec.ptr.i.i1925, %add.ptr.i.i1913 - br i1 %cmp.i.i1926, label %for.body.i.i1917, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1927, !llvm.loop !9 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1927: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1924 - %.pre.i1928 = load ptr, ptr %m_nodes.i.i1997, align 8 - %tobool.not.i.i1929 = icmp eq ptr %.pre.i1928, null - br i1 %tobool.not.i.i1929, label %if.then92.i.i, label %if.then.i.i1915 - -if.then.i.i1915: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1927, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1909 - %946 = phi ptr [ %.pre.i1928, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1927 ], [ %940, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1909 ] - %arrayidx.i.i1916 = getelementptr inbounds i32, ptr %946, i64 -1 - store i32 %j.2.i.i297.lcssa, ptr %arrayidx.i.i1916, align 4 - br label %if.then92.i.i - -if.then92.i.i: ; preds = %for.end86.i.i300, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1927, %if.then.i.i1915 - %bf.load93.i.i = load i32, ptr %625, align 8 - %947 = and i32 %bf.load93.i.i, 2 - %tobool.not.i.i274 = icmp eq i32 %947, 0 - br i1 %tobool.not.i.i274, label %if.else.i.i286, label %if.then96.i.i - -if.then96.i.i: ; preds = %if.then92.i.i - %this.val.i50.i = load ptr, ptr %585, align 8 - %948 = load ptr, ptr %m_nodes.i.i2035, align 8 - %949 = load ptr, ptr %m_nodes.i.i1997, align 8 - %call101.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i50.i, ptr noundef nonnull %623, i32 noundef %j.0.i.i292.lcssa, ptr noundef %948, i32 noundef %j.2.i.i297.lcssa, ptr noundef %949, ptr noundef %891) - to label %invoke.cont100.i.i unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont100.i.i: ; preds = %if.then96.i.i - %tobool.not.i1889 = icmp eq ptr %call101.i.i, null - br i1 %tobool.not.i1889, label %if.end.i1893, label %_ZN11ast_manager7inc_refEP3ast.exit.i1890 - -_ZN11ast_manager7inc_refEP3ast.exit.i1890: ; preds = %invoke.cont100.i.i - %m_ref_count.i.i.i1891 = getelementptr inbounds %class.ast, ptr %call101.i.i, i64 0, i32 2 - %950 = load i32, ptr %m_ref_count.i.i.i1891, align 4 - %inc.i.i.i1892 = add i32 %950, 1 - store i32 %inc.i.i.i1892, ptr %m_ref_count.i.i.i1891, align 4 - br label %if.end.i1893 - -if.end.i1893: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1890, %invoke.cont100.i.i - %951 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i1894 = icmp eq ptr %951, null - br i1 %tobool.not.i3.i1894, label %if.end109.i.i, label %if.then.i.i.i1895 - -if.then.i.i.i1895: ; preds = %if.end.i1893 - %952 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i1897 = getelementptr inbounds %class.ast, ptr %951, i64 0, i32 2 - %953 = load i32, ptr %m_ref_count.i.i.i.i1897, align 4 - %dec.i.i.i.i1898 = add i32 %953, -1 - store i32 %dec.i.i.i.i1898, ptr %m_ref_count.i.i.i.i1897, align 4 - %cmp.i.i.i1899 = icmp eq i32 %dec.i.i.i.i1898, 0 - br i1 %cmp.i.i.i1899, label %if.then2.i.i.i1900, label %if.end109.i.i - -if.then2.i.i.i1900: ; preds = %if.then.i.i.i1895 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %952, ptr noundef nonnull %951) - to label %if.end109.i.i unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.else.i.i286: ; preds = %if.then92.i.i - %tobool.not.i1875 = icmp eq ptr %623, null - br i1 %tobool.not.i1875, label %if.end.i1879, label %_ZN11ast_manager7inc_refEP3ast.exit.i1876 - -_ZN11ast_manager7inc_refEP3ast.exit.i1876: ; preds = %if.else.i.i286 - %m_ref_count.i.i.i1877 = getelementptr inbounds %class.ast, ptr %623, i64 0, i32 2 - %954 = load i32, ptr %m_ref_count.i.i.i1877, align 4 - %inc.i.i.i1878 = add i32 %954, 1 - store i32 %inc.i.i.i1878, ptr %m_ref_count.i.i.i1877, align 4 - br label %if.end.i1879 - -if.end.i1879: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1876, %if.else.i.i286 - %955 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i1880 = icmp eq ptr %955, null - br i1 %tobool.not.i3.i1880, label %if.end109.i.i, label %if.then.i.i.i1881 - -if.then.i.i.i1881: ; preds = %if.end.i1879 - %956 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i1883 = getelementptr inbounds %class.ast, ptr %955, i64 0, i32 2 - %957 = load i32, ptr %m_ref_count.i.i.i.i1883, align 4 - %dec.i.i.i.i1884 = add i32 %957, -1 - store i32 %dec.i.i.i.i1884, ptr %m_ref_count.i.i.i.i1883, align 4 - %cmp.i.i.i1885 = icmp eq i32 %dec.i.i.i.i1884, 0 - br i1 %cmp.i.i.i1885, label %if.then2.i.i.i1886, label %if.end109.i.i - -if.then2.i.i.i1886: ; preds = %if.then.i.i.i1881 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %956, ptr noundef nonnull %955) - to label %if.end109.i.i unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.end109.i.i: ; preds = %if.then.i.i.i1881, %if.end.i1879, %if.then2.i.i.i1886, %if.then.i.i.i1895, %if.end.i1893, %if.then2.i.i.i1900 - %storemerge2838 = phi ptr [ %call101.i.i, %if.then2.i.i.i1900 ], [ %call101.i.i, %if.end.i1893 ], [ %call101.i.i, %if.then.i.i.i1895 ], [ %623, %if.then2.i.i.i1886 ], [ %623, %if.end.i1879 ], [ %623, %if.then.i.i.i1881 ] - store ptr %storemerge2838, ptr %m_r.i48.i, align 8 - %958 = load i32, ptr %m_spos.i38.i, align 4 - %959 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i.i1849 = icmp eq ptr %959, null - br i1 %cmp.i.i.i1849, label %invoke.cont112.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1850 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1850: ; preds = %if.end109.i.i - %arrayidx.i.i.i1853 = getelementptr inbounds i32, ptr %959, i64 -1 - %960 = load i32, ptr %arrayidx.i.i.i1853, align 4 - %961 = zext i32 %960 to i64 - %add.ptr.i.i1854 = getelementptr inbounds ptr, ptr %959, i64 %961 - %cmp3.i.i1855 = icmp ugt i32 %960, %958 - br i1 %cmp3.i.i1855, label %for.body.i.i1858.preheader, label %if.then.i.i1856 - -for.body.i.i1858.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1850 - %idx.ext.i1851 = zext i32 %958 to i64 - %add.ptr.i1852 = getelementptr inbounds ptr, ptr %959, i64 %idx.ext.i1851 - br label %for.body.i.i1858 + br label %lpad.i105.i.body.i.i + +lpad.i105.i.body.i.i: ; preds = %lpad.i105.i.i.i, %cleanup.action.i.i.i216, %ehcleanup.i208.i.i + %eh.lpad-body.i.i217 = phi { ptr, i32 } [ %925, %lpad.i105.i.i.i ], [ %919, %ehcleanup.i208.i.i ], [ %920, %cleanup.action.i.i.i216 ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i43) #14 + br label %ehcleanup.i.i.i161 + +if.then40.i.i.i153: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i, %invoke.cont.i56.i.i + %add.ptr41.i.i.i154 = getelementptr inbounds ptr, ptr %add.ptr.i45.i.i, i64 1 + %idx.ext42.i.i.i155 = zext i32 %897 to i64 + %add.ptr43.i.i.i156 = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i154, i64 %idx.ext42.i.i.i155 + br i1 %cmp3.not.i.i.i.i.i137, label %for.end63.i.i.i166, label %for.body47.i.i.i157 + +for.body47.i.i.i157: ; preds = %if.then40.i.i.i153, %for.inc61.i.i.i163 + %indvars.iv.i.i.i158 = phi i64 [ %indvars.iv.next.i.i.i165, %for.inc61.i.i.i163 ], [ 0, %if.then40.i.i.i153 ] + %j.0329.i.i.i = phi i32 [ %j.1.i.i.i164, %for.inc61.i.i.i163 ], [ 0, %if.then40.i.i.i153 ] + %926 = load ptr, ptr %586, align 8 + %arrayidx.i57.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i154, i64 %indvars.iv.i.i.i158 + %927 = load ptr, ptr %arrayidx.i57.i.i, align 8 + %call50.i.i.i159 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %926, ptr noundef %927) + to label %invoke.cont49.i.i.i162 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 + +invoke.cont49.i.i.i162: ; preds = %for.body47.i.i.i157 + br i1 %call50.i.i.i159, label %invoke.cont56.i.i.i202, label %for.inc61.i.i.i163 + +invoke.cont56.i.i.i202: ; preds = %invoke.cont49.i.i.i162 + %928 = load ptr, ptr %arrayidx.i57.i.i, align 8 + %929 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %idxprom.i.i112.i.i.i = zext i32 %j.0329.i.i.i to i64 + %arrayidx.i.i113.i.i.i = getelementptr inbounds ptr, ptr %929, i64 %idxprom.i.i112.i.i.i + %930 = load ptr, ptr %new_pats.i.i.i42, align 8 + %inc55.i.i.i203 = add i32 %j.0329.i.i.i, 1 + %tobool.not.i.i.i113.i.i = icmp eq ptr %928, null + br i1 %tobool.not.i.i.i113.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i, label %if.then.i.i.i114.i.i + +if.then.i.i.i114.i.i: ; preds = %invoke.cont56.i.i.i202 + %m_ref_count.i.i.i.i115.i.i = getelementptr inbounds %class.ast, ptr %928, i64 0, i32 2 + %931 = load i32, ptr %m_ref_count.i.i.i.i115.i.i, align 4 + %inc.i.i.i.i116.i.i = add i32 %931, 1 + store i32 %inc.i.i.i.i116.i.i, ptr %m_ref_count.i.i.i.i115.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i: ; preds = %if.then.i.i.i114.i.i, %invoke.cont56.i.i.i202 + %932 = load ptr, ptr %arrayidx.i.i113.i.i.i, align 8 + %tobool.not.i2.i.i.i.i204 = icmp eq ptr %932, null + br i1 %tobool.not.i2.i.i.i.i204, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207, label %if.then.i3.i.i.i.i205 + +if.then.i3.i.i.i.i205: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i + %m_ref_count.i.i4.i.i.i.i206 = getelementptr inbounds %class.ast, ptr %932, i64 0, i32 2 + %933 = load i32, ptr %m_ref_count.i.i4.i.i.i.i206, align 4 + %dec.i.i.i.i.i45.i = add i32 %933, -1 + store i32 %dec.i.i.i.i.i45.i, ptr %m_ref_count.i.i4.i.i.i.i206, align 4 + %cmp.i.i.i118.i.i = icmp eq i32 %dec.i.i.i.i.i45.i, 0 + br i1 %cmp.i.i.i118.i.i, label %if.then2.i.i.i.i46.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207 + +if.then2.i.i.i.i46.i: ; preds = %if.then.i3.i.i.i.i205 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %930, ptr noundef nonnull %932) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207: ; preds = %if.then2.i.i.i.i46.i, %if.then.i3.i.i.i.i205, %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i + store ptr %928, ptr %arrayidx.i.i113.i.i.i, align 8 + br label %for.inc61.i.i.i163 + +lpad37.loopexit.i.i.i195: ; preds = %if.then2.i.i.i.i.i218.i.i.i + %lpad.loopexit.i101.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i -for.body.i.i1858: ; preds = %for.body.i.i1858.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1865 - %it.04.i.i1859 = phi ptr [ %incdec.ptr.i.i1866, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1865 ], [ %add.ptr.i1852, %for.body.i.i1858.preheader ] - %962 = load ptr, ptr %it.04.i.i1859, align 8 - %963 = load ptr, ptr %m_result_stack.i2075, align 8 - %tobool.not.i.i.i.i.i1860 = icmp eq ptr %962, null - br i1 %tobool.not.i.i.i.i.i1860, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1865, label %if.then.i.i.i.i.i1861 +lpad37.loopexit.split-lp.loopexit.i.i.i198: ; preds = %if.then2.i.i.i.i.i167.i.i.i + %lpad.loopexit314.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i -if.then.i.i.i.i.i1861: ; preds = %for.body.i.i1858 - %m_ref_count.i.i.i.i.i.i1862 = getelementptr inbounds %class.ast, ptr %962, i64 0, i32 2 - %964 = load i32, ptr %m_ref_count.i.i.i.i.i.i1862, align 4 - %dec.i.i.i.i.i.i1863 = add i32 %964, -1 - store i32 %dec.i.i.i.i.i.i1863, ptr %m_ref_count.i.i.i.i.i.i1862, align 4 - %cmp.i.i.i.i.i1864 = icmp eq i32 %dec.i.i.i.i.i.i1863, 0 - br i1 %cmp.i.i.i.i.i1864, label %if.then2.i.i.i.i.i1871, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1865 +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173: ; preds = %if.then2.i.i141.i.i.i, %for.body68.i.i.i170 + %lpad.loopexit317.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i -if.then2.i.i.i.i.i1871: ; preds = %if.then.i.i.i.i.i1861 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %963, ptr noundef nonnull %962) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1865 unwind label %lpad37.i.i266.loopexit +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201: ; preds = %if.then2.i.i.i.i.i.i112.i.i + %lpad.loopexit319.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1865: ; preds = %if.then2.i.i.i.i.i1871, %if.then.i.i.i.i.i1861, %for.body.i.i1858 - %incdec.ptr.i.i1866 = getelementptr inbounds ptr, ptr %it.04.i.i1859, i64 1 - %cmp.i.i1867 = icmp ult ptr %incdec.ptr.i.i1866, %add.ptr.i.i1854 - br i1 %cmp.i.i1867, label %for.body.i.i1858, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1868, !llvm.loop !9 +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160: ; preds = %if.then2.i.i.i.i46.i, %for.body47.i.i.i157 + %lpad.loopexit322.i.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1868: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1865 - %.pre.i1869 = load ptr, ptr %m_nodes.i.i437, align 8 - %tobool.not.i.i1870 = icmp eq ptr %.pre.i1869, null - br i1 %tobool.not.i.i1870, label %invoke.cont112.i.ithread-pre-split, label %if.then.i.i1856 - -if.then.i.i1856: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1868, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1850 - %965 = phi ptr [ %.pre.i1869, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1868 ], [ %959, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1850 ] - %arrayidx.i.i1857 = getelementptr inbounds i32, ptr %965, i64 -1 - store i32 %958, ptr %arrayidx.i.i1857, align 4 - br label %invoke.cont112.i.ithread-pre-split - -invoke.cont112.i.ithread-pre-split: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1868, %if.then.i.i1856 - %.pr2956 = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont112.i.i - -invoke.cont112.i.i: ; preds = %invoke.cont112.i.ithread-pre-split, %if.end109.i.i - %966 = phi ptr [ %.pr2956, %invoke.cont112.i.ithread-pre-split ], [ %storemerge2838, %if.end109.i.i ] - %tobool.not.i.i.i.i1826 = icmp eq ptr %966, null - br i1 %tobool.not.i.i.i.i1826, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1830, label %if.then.i.i.i.i1827 - -if.then.i.i.i.i1827: ; preds = %invoke.cont112.i.i - %m_ref_count.i.i.i.i.i1828 = getelementptr inbounds %class.ast, ptr %966, i64 0, i32 2 - %967 = load i32, ptr %m_ref_count.i.i.i.i.i1828, align 4 - %inc.i.i.i.i.i1829 = add i32 %967, 1 - store i32 %inc.i.i.i.i.i1829, ptr %m_ref_count.i.i.i.i.i1828, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1830 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1830: ; preds = %if.then.i.i.i.i1827, %invoke.cont112.i.i - %968 = load ptr, ptr %m_nodes.i.i437, align 8 - %cmp.i.i1832 = icmp eq ptr %968, null - br i1 %cmp.i.i1832, label %if.then.i.i1841, label %lor.lhs.false.i.i1833 - -lor.lhs.false.i.i1833: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1830 - %arrayidx.i.i1834 = getelementptr inbounds i32, ptr %968, i64 -1 - %969 = load i32, ptr %arrayidx.i.i1834, align 4 - %arrayidx4.i.i1835 = getelementptr inbounds i32, ptr %968, i64 -2 - %970 = load i32, ptr %arrayidx4.i.i1835, align 4 - %cmp5.i.i1836 = icmp eq i32 %969, %970 - br i1 %cmp5.i.i1836, label %if.then.i.i1841, label %invoke.cont116.i.i280 - -if.then.i.i1841: ; preds = %lor.lhs.false.i.i1833, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1830 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i437) - to label %.noexc1845 unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1845: ; preds = %if.then.i.i1841 - %.pre.i.i1842 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx8.phi.trans.insert.i.i1843 = getelementptr inbounds i32, ptr %.pre.i.i1842, i64 -1 - %.pre1.i.i1844 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1843, align 4 - br label %invoke.cont116.i.i280 - -invoke.cont116.i.i280: ; preds = %.noexc1845, %lor.lhs.false.i.i1833 - %971 = phi i32 [ %.pre1.i.i1844, %.noexc1845 ], [ %969, %lor.lhs.false.i.i1833 ] - %972 = phi ptr [ %.pre.i.i1842, %.noexc1845 ], [ %968, %lor.lhs.false.i.i1833 ] - %idx.ext.i.i1837 = zext i32 %971 to i64 - %add.ptr.i.i1838 = getelementptr inbounds ptr, ptr %972, i64 %idx.ext.i.i1837 - store ptr %966, ptr %add.ptr.i.i1838, align 8 - %973 = load ptr, ptr %m_nodes.i.i437, align 8 - %arrayidx10.i.i1839 = getelementptr inbounds i32, ptr %973, i64 -1 - %974 = load i32, ptr %arrayidx10.i.i1839, align 4 - %inc.i.i1840 = add i32 %974, 1 - store i32 %inc.i.i1840, ptr %arrayidx10.i.i1839, align 4 - %975 = load ptr, ptr %m_bindings.i65.i, align 8 - %cmp.i1821 = icmp eq ptr %975, null - br i1 %cmp.i1821, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1820, label %if.then.i1817 - -if.then.i1817: ; preds = %invoke.cont116.i.i280 - %arrayidx.i1823 = getelementptr inbounds i32, ptr %975, i64 -1 - %976 = load i32, ptr %arrayidx.i1823, align 4 - %sub.i51.i = sub i32 %976, %861 - store i32 %sub.i51.i, ptr %arrayidx.i1823, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1820 - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1820: ; preds = %invoke.cont116.i.i280, %if.then.i1817 - %977 = load ptr, ptr %m_shifts.i69.i, align 8 - %cmp.i1811 = icmp eq ptr %977, null - br i1 %cmp.i1811, label %_ZN6vectorIjLb0EjE6shrinkEj.exit1810, label %if.then.i1807 - -if.then.i1807: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1820 - %arrayidx.i1813 = getelementptr inbounds i32, ptr %977, i64 -1 - %978 = load i32, ptr %arrayidx.i1813, align 4 - %sub124.i.i = sub i32 %978, %861 - store i32 %sub124.i.i, ptr %arrayidx.i1813, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit1810 - -_ZN6vectorIjLb0EjE6shrinkEj.exit1810: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1820, %if.then.i1807 +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179: ; preds = %if.then2.i.i.i267.i.i.i, %if.then2.i.i.i257.i.i.i, %if.then.i248.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i, %if.then.i.i228.i.i.i, %if.then2.i.i.i191.i.i.i, %if.then2.i.i.i.i102.i.i, %if.then96.i.i.i + %lpad.loopexit.split-lp.i.i.i180 = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i + +lpad37.i.i.i: ; preds = %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173, %lpad37.loopexit.split-lp.loopexit.i.i.i198, %lpad37.loopexit.i.i.i195 + %lpad.phi.i58.i.i = phi { ptr, i32 } [ %lpad.loopexit.i101.i.i, %lpad37.loopexit.i.i.i195 ], [ %lpad.loopexit314.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i198 ], [ %lpad.loopexit317.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 ], [ %lpad.loopexit319.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201 ], [ %lpad.loopexit322.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 ], [ %lpad.loopexit.split-lp.i.i.i180, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i43) #14 + br label %ehcleanup.i.i.i161 + +for.inc61.i.i.i163: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207, %invoke.cont49.i.i.i162 + %j.1.i.i.i164 = phi i32 [ %inc55.i.i.i203, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207 ], [ %j.0329.i.i.i, %invoke.cont49.i.i.i162 ] + %indvars.iv.next.i.i.i165 = add nuw nsw i64 %indvars.iv.i.i.i158, 1 + %exitcond336.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i165, %idx.ext42.i.i.i155 + br i1 %exitcond336.not.i.i.i, label %for.end63.i.i.i166, label %for.body47.i.i.i157, !llvm.loop !60 + +for.end63.i.i.i166: ; preds = %for.inc61.i.i.i163, %if.then40.i.i.i153 + %j.0.lcssa.i.i.i167 = phi i32 [ 0, %if.then40.i.i.i153 ], [ %j.1.i.i.i164, %for.inc61.i.i.i163 ] + %934 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i.i60.i.i = icmp eq ptr %934, null + br i1 %cmp.i.i.i.i60.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i: ; preds = %for.end63.i.i.i166 + %arrayidx.i.i.i.i62.i.i = getelementptr inbounds i32, ptr %934, i64 -1 + %935 = load i32, ptr %arrayidx.i.i.i.i62.i.i, align 4 + %936 = zext i32 %935 to i64 + %add.ptr.i.i117.i.i.i = getelementptr inbounds ptr, ptr %934, i64 %936 + %cmp3.i.i.i63.i.i = icmp ugt i32 %935, %j.0.lcssa.i.i.i167 + br i1 %cmp3.i.i.i63.i.i, label %for.body.i.i120.preheader.i.i.i, label %if.then.i.i118.i.i.i + +for.body.i.i120.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + %idx.ext.i115.i.i.i = zext i32 %j.0.lcssa.i.i.i167 to i64 + %add.ptr.i116.i.i.i = getelementptr inbounds ptr, ptr %934, i64 %idx.ext.i115.i.i.i + br label %for.body.i.i120.i.i.i + +for.body.i.i120.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i, %for.body.i.i120.preheader.i.i.i + %it.04.i.i.i103.i.i = phi ptr [ %incdec.ptr.i.i.i110.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i ], [ %add.ptr.i116.i.i.i, %for.body.i.i120.preheader.i.i.i ] + %937 = load ptr, ptr %it.04.i.i.i103.i.i, align 8 + %938 = load ptr, ptr %new_pats.i.i.i42, align 8 + %tobool.not.i.i.i.i.i.i104.i.i = icmp eq ptr %937, null + br i1 %tobool.not.i.i.i.i.i.i104.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i, label %if.then.i.i.i.i.i.i105.i.i + +if.then.i.i.i.i.i.i105.i.i: ; preds = %for.body.i.i120.i.i.i + %m_ref_count.i.i.i.i.i.i.i106.i.i = getelementptr inbounds %class.ast, ptr %937, i64 0, i32 2 + %939 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i106.i.i, align 4 + %dec.i.i.i.i.i.i.i107.i.i = add i32 %939, -1 + store i32 %dec.i.i.i.i.i.i.i107.i.i, ptr %m_ref_count.i.i.i.i.i.i.i106.i.i, align 4 + %cmp.i.i.i.i.i.i108.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i107.i.i, 0 + br i1 %cmp.i.i.i.i.i.i108.i.i, label %if.then2.i.i.i.i.i.i112.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i + +if.then2.i.i.i.i.i.i112.i.i: ; preds = %if.then.i.i.i.i.i.i105.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %938, ptr noundef nonnull %937) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i: ; preds = %if.then2.i.i.i.i.i.i112.i.i, %if.then.i.i.i.i.i.i105.i.i, %for.body.i.i120.i.i.i + %incdec.ptr.i.i.i110.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i103.i.i, i64 1 + %cmp.i.i121.i.i.i = icmp ult ptr %incdec.ptr.i.i.i110.i.i, %add.ptr.i.i117.i.i.i + br i1 %cmp.i.i121.i.i.i, label %for.body.i.i120.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i + %.pre.i122.i.i.i = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %tobool.not.i.i123.i.i.i = icmp eq ptr %.pre.i122.i.i.i, null + br i1 %tobool.not.i.i123.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168, label %if.then.i.i118.i.i.i + +if.then.i.i118.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + %940 = phi ptr [ %.pre.i122.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i ], [ %934, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i ] + %arrayidx.i.i119.i.i.i = getelementptr inbounds i32, ptr %940, i64 -1 + store i32 %j.0.lcssa.i.i.i167, ptr %arrayidx.i.i119.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168: ; preds = %if.then.i.i118.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i, %for.end63.i.i.i166 + br i1 %cmp3.not.i.i81.i.i.i, label %for.end86.i.i.i177, label %for.body68.preheader.i.i.i169 + +for.body68.preheader.i.i.i169: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + %wide.trip.count340.i.i.i = zext i32 %898 to i64 + br label %for.body68.i.i.i170 + +for.body68.i.i.i170: ; preds = %for.inc84.i.i.i175, %for.body68.preheader.i.i.i169 + %indvars.iv337.i.i.i = phi i64 [ 0, %for.body68.preheader.i.i.i169 ], [ %indvars.iv.next338.i.i.i, %for.inc84.i.i.i175 ] + %j.2332.i.i.i = phi i32 [ 0, %for.body68.preheader.i.i.i169 ], [ %j.3.i.i.i176, %for.inc84.i.i.i175 ] + %941 = load ptr, ptr %586, align 8 + %arrayidx71.i.i.i171 = getelementptr inbounds ptr, ptr %add.ptr43.i.i.i156, i64 %indvars.iv337.i.i.i + %942 = load ptr, ptr %arrayidx71.i.i.i171, align 8 + %call73.i.i.i172 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %941, ptr noundef %942) + to label %invoke.cont72.i.i.i174 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 + +invoke.cont72.i.i.i174: ; preds = %for.body68.i.i.i170 + br i1 %call73.i.i.i172, label %invoke.cont79.i.i.i199, label %for.inc84.i.i.i175 + +invoke.cont79.i.i.i199: ; preds = %invoke.cont72.i.i.i174 + %943 = load ptr, ptr %arrayidx71.i.i.i171, align 8 + %944 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %idxprom.i.i126.i.i.i = zext i32 %j.2332.i.i.i to i64 + %arrayidx.i.i127.i.i.i = getelementptr inbounds ptr, ptr %944, i64 %idxprom.i.i126.i.i.i + %945 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %inc78.i.i.i200 = add i32 %j.2332.i.i.i, 1 + %tobool.not.i.i131.i.i.i = icmp eq ptr %943, null + br i1 %tobool.not.i.i131.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i, label %if.then.i.i132.i.i.i + +if.then.i.i132.i.i.i: ; preds = %invoke.cont79.i.i.i199 + %m_ref_count.i.i.i133.i.i.i = getelementptr inbounds %class.ast, ptr %943, i64 0, i32 2 + %946 = load i32, ptr %m_ref_count.i.i.i133.i.i.i, align 4 + %inc.i.i.i134.i.i.i = add i32 %946, 1 + store i32 %inc.i.i.i134.i.i.i, ptr %m_ref_count.i.i.i133.i.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i: ; preds = %if.then.i.i132.i.i.i, %invoke.cont79.i.i.i199 + %947 = load ptr, ptr %arrayidx.i.i127.i.i.i, align 8 + %tobool.not.i2.i136.i.i.i = icmp eq ptr %947, null + br i1 %tobool.not.i2.i136.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i, label %if.then.i3.i137.i.i.i + +if.then.i3.i137.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + %m_ref_count.i.i4.i138.i.i.i = getelementptr inbounds %class.ast, ptr %947, i64 0, i32 2 + %948 = load i32, ptr %m_ref_count.i.i4.i138.i.i.i, align 4 + %dec.i.i.i139.i.i.i = add i32 %948, -1 + store i32 %dec.i.i.i139.i.i.i, ptr %m_ref_count.i.i4.i138.i.i.i, align 4 + %cmp.i.i140.i.i.i = icmp eq i32 %dec.i.i.i139.i.i.i, 0 + br i1 %cmp.i.i140.i.i.i, label %if.then2.i.i141.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i + +if.then2.i.i141.i.i.i: ; preds = %if.then.i3.i137.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %945, ptr noundef nonnull %947) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i: ; preds = %if.then2.i.i141.i.i.i, %if.then.i3.i137.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + store ptr %943, ptr %arrayidx.i.i127.i.i.i, align 8 + br label %for.inc84.i.i.i175 + +for.inc84.i.i.i175: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i, %invoke.cont72.i.i.i174 + %j.3.i.i.i176 = phi i32 [ %inc78.i.i.i200, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i ], [ %j.2332.i.i.i, %invoke.cont72.i.i.i174 ] + %indvars.iv.next338.i.i.i = add nuw nsw i64 %indvars.iv337.i.i.i, 1 + %exitcond341.not.i.i.i = icmp eq i64 %indvars.iv.next338.i.i.i, %wide.trip.count340.i.i.i + br i1 %exitcond341.not.i.i.i, label %for.end86.i.i.i177, label %for.body68.i.i.i170, !llvm.loop !61 + +for.end86.i.i.i177: ; preds = %for.inc84.i.i.i175, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + %j.2.lcssa.i.i.i178 = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 ], [ %j.3.i.i.i176, %for.inc84.i.i.i175 ] + %949 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i145.i.i.i = icmp eq ptr %949, null + br i1 %cmp.i.i.i145.i.i.i, label %if.then92.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i: ; preds = %for.end86.i.i.i177 + %arrayidx.i.i.i149.i.i.i = getelementptr inbounds i32, ptr %949, i64 -1 + %950 = load i32, ptr %arrayidx.i.i.i149.i.i.i, align 4 + %951 = zext i32 %950 to i64 + %add.ptr.i.i150.i.i.i = getelementptr inbounds ptr, ptr %949, i64 %951 + %cmp3.i.i151.i.i.i = icmp ugt i32 %950, %j.2.lcssa.i.i.i178 + br i1 %cmp3.i.i151.i.i.i, label %for.body.i.i154.preheader.i.i.i, label %if.then.i.i152.i.i.i + +for.body.i.i154.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + %idx.ext.i147.i.i.i = zext i32 %j.2.lcssa.i.i.i178 to i64 + %add.ptr.i148.i.i.i = getelementptr inbounds ptr, ptr %949, i64 %idx.ext.i147.i.i.i + br label %for.body.i.i154.i.i.i + +for.body.i.i154.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i, %for.body.i.i154.preheader.i.i.i + %it.04.i.i155.i.i.i = phi ptr [ %incdec.ptr.i.i162.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i ], [ %add.ptr.i148.i.i.i, %for.body.i.i154.preheader.i.i.i ] + %952 = load ptr, ptr %it.04.i.i155.i.i.i, align 8 + %953 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %tobool.not.i.i.i.i.i156.i.i.i = icmp eq ptr %952, null + br i1 %tobool.not.i.i.i.i.i156.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i, label %if.then.i.i.i.i.i157.i.i.i + +if.then.i.i.i.i.i157.i.i.i: ; preds = %for.body.i.i154.i.i.i + %m_ref_count.i.i.i.i.i.i158.i.i.i = getelementptr inbounds %class.ast, ptr %952, i64 0, i32 2 + %954 = load i32, ptr %m_ref_count.i.i.i.i.i.i158.i.i.i, align 4 + %dec.i.i.i.i.i.i159.i.i.i = add i32 %954, -1 + store i32 %dec.i.i.i.i.i.i159.i.i.i, ptr %m_ref_count.i.i.i.i.i.i158.i.i.i, align 4 + %cmp.i.i.i.i.i160.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i159.i.i.i, 0 + br i1 %cmp.i.i.i.i.i160.i.i.i, label %if.then2.i.i.i.i.i167.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i + +if.then2.i.i.i.i.i167.i.i.i: ; preds = %if.then.i.i.i.i.i157.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %953, ptr noundef nonnull %952) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.i.i.i198 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i: ; preds = %if.then2.i.i.i.i.i167.i.i.i, %if.then.i.i.i.i.i157.i.i.i, %for.body.i.i154.i.i.i + %incdec.ptr.i.i162.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i155.i.i.i, i64 1 + %cmp.i.i163.i.i.i = icmp ult ptr %incdec.ptr.i.i162.i.i.i, %add.ptr.i.i150.i.i.i + br i1 %cmp.i.i163.i.i.i, label %for.body.i.i154.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i + %.pre.i165.i.i.i = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %tobool.not.i.i166.i.i.i = icmp eq ptr %.pre.i165.i.i.i, null + br i1 %tobool.not.i.i166.i.i.i, label %if.then92.i.i.i, label %if.then.i.i152.i.i.i + +if.then.i.i152.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + %955 = phi ptr [ %.pre.i165.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i ], [ %949, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i ] + %arrayidx.i.i153.i.i.i = getelementptr inbounds i32, ptr %955, i64 -1 + store i32 %j.2.lcssa.i.i.i178, ptr %arrayidx.i.i153.i.i.i, align 4 + br label %if.then92.i.i.i + +if.then92.i.i.i: ; preds = %if.then.i.i152.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, %for.end86.i.i.i177 + %bf.load93.i.i.i = load i32, ptr %626, align 8 + %956 = and i32 %bf.load93.i.i.i, 2 + %tobool.not.i65.i.i = icmp eq i32 %956, 0 + br i1 %tobool.not.i65.i.i, label %if.else.i.i.i196, label %if.then96.i.i.i + +if.then96.i.i.i: ; preds = %if.then92.i.i.i + %this.val.i66.i.i = load ptr, ptr %586, align 8 + %957 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %958 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %call101.i.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i66.i.i, ptr noundef nonnull %624, i32 noundef %j.0.lcssa.i.i.i167, ptr noundef %957, i32 noundef %j.2.lcssa.i.i.i178, ptr noundef %958, ptr noundef %896) + to label %invoke.cont100.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont100.i.i.i: ; preds = %if.then96.i.i.i + %tobool.not.i.i67.i.i = icmp eq ptr %call101.i.i.i, null + br i1 %tobool.not.i.i67.i.i, label %if.end.i177.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i: ; preds = %invoke.cont100.i.i.i + %m_ref_count.i.i.i175.i.i.i = getelementptr inbounds %class.ast, ptr %call101.i.i.i, i64 0, i32 2 + %959 = load i32, ptr %m_ref_count.i.i.i175.i.i.i, align 4 + %inc.i.i.i176.i.i.i = add i32 %959, 1 + store i32 %inc.i.i.i176.i.i.i, ptr %m_ref_count.i.i.i175.i.i.i, align 4 + br label %if.end.i177.i.i.i + +if.end.i177.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i, %invoke.cont100.i.i.i + %960 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i68.i.i = icmp eq ptr %960, null + br i1 %tobool.not.i3.i.i68.i.i, label %if.end109.i.i.i, label %if.then.i.i.i.i69.i.i + +if.then.i.i.i.i69.i.i: ; preds = %if.end.i177.i.i.i + %961 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i.i71.i.i = getelementptr inbounds %class.ast, ptr %960, i64 0, i32 2 + %962 = load i32, ptr %m_ref_count.i.i.i.i.i71.i.i, align 4 + %dec.i.i.i.i.i72.i.i = add i32 %962, -1 + store i32 %dec.i.i.i.i.i72.i.i, ptr %m_ref_count.i.i.i.i.i71.i.i, align 4 + %cmp.i.i.i178.i.i.i = icmp eq i32 %dec.i.i.i.i.i72.i.i, 0 + br i1 %cmp.i.i.i178.i.i.i, label %if.then2.i.i.i.i102.i.i, label %if.end109.i.i.i + +if.then2.i.i.i.i102.i.i: ; preds = %if.then.i.i.i.i69.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %961, ptr noundef nonnull %960) + to label %if.end109.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +if.else.i.i.i196: ; preds = %if.then92.i.i.i + %tobool.not.i180.i.i.i = icmp eq ptr %624, null + br i1 %tobool.not.i180.i.i.i, label %if.end.i184.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i: ; preds = %if.else.i.i.i196 + %m_ref_count.i.i.i182.i.i.i = getelementptr inbounds %class.ast, ptr %624, i64 0, i32 2 + %963 = load i32, ptr %m_ref_count.i.i.i182.i.i.i, align 4 + %inc.i.i.i183.i.i.i = add i32 %963, 1 + store i32 %inc.i.i.i183.i.i.i, ptr %m_ref_count.i.i.i182.i.i.i, align 4 + br label %if.end.i184.i.i.i + +if.end.i184.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i, %if.else.i.i.i196 + %964 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i185.i.i.i = icmp eq ptr %964, null + br i1 %tobool.not.i3.i185.i.i.i, label %if.end109.i.i.i, label %if.then.i.i.i186.i.i.i + +if.then.i.i.i186.i.i.i: ; preds = %if.end.i184.i.i.i + %965 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i188.i.i.i197 = getelementptr inbounds %class.ast, ptr %964, i64 0, i32 2 + %966 = load i32, ptr %m_ref_count.i.i.i.i188.i.i.i197, align 4 + %dec.i.i.i.i189.i.i.i = add i32 %966, -1 + store i32 %dec.i.i.i.i189.i.i.i, ptr %m_ref_count.i.i.i.i188.i.i.i197, align 4 + %cmp.i.i.i190.i.i.i = icmp eq i32 %dec.i.i.i.i189.i.i.i, 0 + br i1 %cmp.i.i.i190.i.i.i, label %if.then2.i.i.i191.i.i.i, label %if.end109.i.i.i + +if.then2.i.i.i191.i.i.i: ; preds = %if.then.i.i.i186.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %965, ptr noundef nonnull %964) + to label %if.end109.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +if.end109.i.i.i: ; preds = %if.then2.i.i.i191.i.i.i, %if.then.i.i.i186.i.i.i, %if.end.i184.i.i.i, %if.then2.i.i.i.i102.i.i, %if.then.i.i.i.i69.i.i, %if.end.i177.i.i.i + %storemerge.i.i.i181 = phi ptr [ %call101.i.i.i, %if.then2.i.i.i.i102.i.i ], [ %call101.i.i.i, %if.end.i177.i.i.i ], [ %call101.i.i.i, %if.then.i.i.i.i69.i.i ], [ %624, %if.then2.i.i.i191.i.i.i ], [ %624, %if.end.i184.i.i.i ], [ %624, %if.then.i.i.i186.i.i.i ] + store ptr %storemerge.i.i.i181, ptr %m_r.i64.i.i, align 8 + %967 = load i32, ptr %m_spos.i.i.i136, align 4 + %968 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i196.i.i.i = icmp eq ptr %968, null + br i1 %cmp.i.i.i196.i.i.i, label %invoke.cont112.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i: ; preds = %if.end109.i.i.i + %arrayidx.i.i.i200.i.i.i = getelementptr inbounds i32, ptr %968, i64 -1 + %969 = load i32, ptr %arrayidx.i.i.i200.i.i.i, align 4 + %970 = zext i32 %969 to i64 + %add.ptr.i.i201.i.i.i = getelementptr inbounds ptr, ptr %968, i64 %970 + %cmp3.i.i202.i.i.i = icmp ugt i32 %969, %967 + br i1 %cmp3.i.i202.i.i.i, label %for.body.i.i205.preheader.i.i.i, label %if.then.i.i203.i.i.i + +for.body.i.i205.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + %idx.ext.i198.i.i.i = zext i32 %967 to i64 + %add.ptr.i199.i.i.i = getelementptr inbounds ptr, ptr %968, i64 %idx.ext.i198.i.i.i + br label %for.body.i.i205.i.i.i + +for.body.i.i205.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i, %for.body.i.i205.preheader.i.i.i + %it.04.i.i206.i.i.i = phi ptr [ %incdec.ptr.i.i213.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i ], [ %add.ptr.i199.i.i.i, %for.body.i.i205.preheader.i.i.i ] + %971 = load ptr, ptr %it.04.i.i206.i.i.i, align 8 + %972 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i207.i.i.i = icmp eq ptr %971, null + br i1 %tobool.not.i.i.i.i.i207.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i, label %if.then.i.i.i.i.i208.i.i.i + +if.then.i.i.i.i.i208.i.i.i: ; preds = %for.body.i.i205.i.i.i + %m_ref_count.i.i.i.i.i.i209.i.i.i = getelementptr inbounds %class.ast, ptr %971, i64 0, i32 2 + %973 = load i32, ptr %m_ref_count.i.i.i.i.i.i209.i.i.i, align 4 + %dec.i.i.i.i.i.i210.i.i.i = add i32 %973, -1 + store i32 %dec.i.i.i.i.i.i210.i.i.i, ptr %m_ref_count.i.i.i.i.i.i209.i.i.i, align 4 + %cmp.i.i.i.i.i211.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i210.i.i.i, 0 + br i1 %cmp.i.i.i.i.i211.i.i.i, label %if.then2.i.i.i.i.i218.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i + +if.then2.i.i.i.i.i218.i.i.i: ; preds = %if.then.i.i.i.i.i208.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %972, ptr noundef nonnull %971) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i unwind label %lpad37.loopexit.i.i.i195 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i: ; preds = %if.then2.i.i.i.i.i218.i.i.i, %if.then.i.i.i.i.i208.i.i.i, %for.body.i.i205.i.i.i + %incdec.ptr.i.i213.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i206.i.i.i, i64 1 + %cmp.i.i214.i.i.i = icmp ult ptr %incdec.ptr.i.i213.i.i.i, %add.ptr.i.i201.i.i.i + br i1 %cmp.i.i214.i.i.i, label %for.body.i.i205.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i + %.pre.i216.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i217.i.i.i = icmp eq ptr %.pre.i216.i.i.i, null + br i1 %tobool.not.i.i217.i.i.i, label %invoke.cont112thread-pre-split.i.i.i, label %if.then.i.i203.i.i.i + +if.then.i.i203.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + %974 = phi ptr [ %.pre.i216.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i ], [ %968, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i ] + %arrayidx.i.i204.i.i.i = getelementptr inbounds i32, ptr %974, i64 -1 + store i32 %967, ptr %arrayidx.i.i204.i.i.i, align 4 + br label %invoke.cont112thread-pre-split.i.i.i + +invoke.cont112thread-pre-split.i.i.i: ; preds = %if.then.i.i203.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i + %.pr345.i.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont112.i.i.i + +invoke.cont112.i.i.i: ; preds = %invoke.cont112thread-pre-split.i.i.i, %if.end109.i.i.i + %975 = phi ptr [ %.pr345.i.i.i, %invoke.cont112thread-pre-split.i.i.i ], [ %storemerge.i.i.i181, %if.end109.i.i.i ] + %tobool.not.i.i.i.i.i73.i.i = icmp eq ptr %975, null + br i1 %tobool.not.i.i.i.i.i73.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i, label %if.then.i.i.i.i222.i.i.i + +if.then.i.i.i.i222.i.i.i: ; preds = %invoke.cont112.i.i.i + %m_ref_count.i.i.i.i.i.i74.i.i = getelementptr inbounds %class.ast, ptr %975, i64 0, i32 2 + %976 = load i32, ptr %m_ref_count.i.i.i.i.i.i74.i.i, align 4 + %inc.i.i.i.i.i.i75.i.i = add i32 %976, 1 + store i32 %inc.i.i.i.i.i.i75.i.i, ptr %m_ref_count.i.i.i.i.i.i74.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i: ; preds = %if.then.i.i.i.i222.i.i.i, %invoke.cont112.i.i.i + %977 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i224.i.i.i = icmp eq ptr %977, null + br i1 %cmp.i.i224.i.i.i, label %if.then.i.i228.i.i.i, label %lor.lhs.false.i.i.i77.i.i + +lor.lhs.false.i.i.i77.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + %arrayidx.i.i225.i.i.i = getelementptr inbounds i32, ptr %977, i64 -1 + %978 = load i32, ptr %arrayidx.i.i225.i.i.i, align 4 + %arrayidx4.i.i.i78.i.i = getelementptr inbounds i32, ptr %977, i64 -2 + %979 = load i32, ptr %arrayidx4.i.i.i78.i.i, align 4 + %cmp5.i.i.i79.i.i = icmp eq i32 %978, %979 + br i1 %cmp5.i.i.i79.i.i, label %if.then.i.i228.i.i.i, label %invoke.cont116.i.i.i182 + +if.then.i.i228.i.i.i: ; preds = %lor.lhs.false.i.i.i77.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc229.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +.noexc229.i.i.i: ; preds = %if.then.i.i228.i.i.i + %.pre.i.i.i98.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i99.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i98.i.i, i64 -1 + %.pre1.i.i.i100.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i99.i.i, align 4 + br label %invoke.cont116.i.i.i182 + +invoke.cont116.i.i.i182: ; preds = %.noexc229.i.i.i, %lor.lhs.false.i.i.i77.i.i + %980 = phi i32 [ %.pre1.i.i.i100.i.i, %.noexc229.i.i.i ], [ %978, %lor.lhs.false.i.i.i77.i.i ] + %981 = phi ptr [ %.pre.i.i.i98.i.i, %.noexc229.i.i.i ], [ %977, %lor.lhs.false.i.i.i77.i.i ] + %idx.ext.i.i226.i.i.i = zext i32 %980 to i64 + %add.ptr.i.i227.i.i.i = getelementptr inbounds ptr, ptr %981, i64 %idx.ext.i.i226.i.i.i + store ptr %975, ptr %add.ptr.i.i227.i.i.i, align 8 + %982 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i80.i.i = getelementptr inbounds i32, ptr %982, i64 -1 + %983 = load i32, ptr %arrayidx10.i.i.i80.i.i, align 4 + %inc.i.i.i81.i.i = add i32 %983, 1 + store i32 %inc.i.i.i81.i.i, ptr %arrayidx10.i.i.i80.i.i, align 4 + %984 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i230.i.i.i = icmp eq ptr %984, null + br i1 %cmp.i230.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i, label %if.then.i236.i.i.i + +if.then.i236.i.i.i: ; preds = %invoke.cont116.i.i.i182 + %arrayidx.i232.i.i.i = getelementptr inbounds i32, ptr %984, i64 -1 + %985 = load i32, ptr %arrayidx.i232.i.i.i, align 4 + %sub.i.i.i183 = sub i32 %985, %866 + store i32 %sub.i.i.i183, ptr %arrayidx.i232.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i: ; preds = %if.then.i236.i.i.i, %invoke.cont116.i.i.i182 + %986 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i239.i.i.i = icmp eq ptr %986, null + br i1 %cmp.i239.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i, label %if.then.i244.i.i.i + +if.then.i244.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + %arrayidx.i241.i.i.i = getelementptr inbounds i32, ptr %986, i64 -1 + %987 = load i32, ptr %arrayidx.i241.i.i.i, align 4 + %sub124.i.i.i = sub i32 %987, %866 + store i32 %sub124.i.i.i, ptr %arrayidx.i241.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i: ; preds = %if.then.i244.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont125.i.i unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont125.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit1810 - %979 = load ptr, ptr %m_r.i48.i, align 8 - %bf.load131.i.i = load i32, ptr %625, align 8 - %bf.clear132.i.i = and i32 %bf.load131.i.i, 1 - %tobool133.i.i.not = icmp eq i32 %bf.clear132.i.i, 0 - br i1 %tobool133.i.i.not, label %invoke.cont134.i52.i, label %if.then.i1804 - -if.then.i1804: ; preds = %invoke.cont125.i.i - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %979) - to label %invoke.cont134.i52.ithread-pre-split unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont134.i52.ithread-pre-split: ; preds = %if.then.i1804 - %.pr2835 = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont134.i52.i - -invoke.cont134.i52.i: ; preds = %invoke.cont134.i52.ithread-pre-split, %invoke.cont125.i.i - %980 = phi ptr [ %.pr2835, %invoke.cont134.i52.ithread-pre-split ], [ %979, %invoke.cont125.i.i ] - %tobool.not.i3.i1794 = icmp eq ptr %980, null - br i1 %tobool.not.i3.i1794, label %invoke.cont136.i.i, label %if.then.i.i.i1795 - -if.then.i.i.i1795: ; preds = %invoke.cont134.i52.i - %981 = load ptr, ptr %m_manager.i.i1896, align 8 - %m_ref_count.i.i.i.i1797 = getelementptr inbounds %class.ast, ptr %980, i64 0, i32 2 - %982 = load i32, ptr %m_ref_count.i.i.i.i1797, align 4 - %dec.i.i.i.i1798 = add i32 %982, -1 - store i32 %dec.i.i.i.i1798, ptr %m_ref_count.i.i.i.i1797, align 4 - %cmp.i.i.i1799 = icmp eq i32 %dec.i.i.i.i1798, 0 - br i1 %cmp.i.i.i1799, label %if.then2.i.i.i1800, label %invoke.cont136.i.i - -if.then2.i.i.i1800: ; preds = %if.then.i.i.i1795 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %981, ptr noundef nonnull %980) - to label %invoke.cont136.i.i unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont136.i.i: ; preds = %if.then.i.i.i1795, %invoke.cont134.i52.i, %if.then2.i.i.i1800 - store ptr null, ptr %m_r.i48.i, align 8 - %983 = load ptr, ptr %m_pr.i49.i, align 8 - %tobool.not.i3.i1784 = icmp eq ptr %983, null - br i1 %tobool.not.i3.i1784, label %invoke.cont139.i.i, label %if.then.i.i.i1785 - -if.then.i.i.i1785: ; preds = %invoke.cont136.i.i - %984 = load ptr, ptr %m_manager.i.i1786, align 8 - %m_ref_count.i.i.i.i1787 = getelementptr inbounds %class.ast, ptr %983, i64 0, i32 2 - %985 = load i32, ptr %m_ref_count.i.i.i.i1787, align 4 - %dec.i.i.i.i1788 = add i32 %985, -1 - store i32 %dec.i.i.i.i1788, ptr %m_ref_count.i.i.i.i1787, align 4 - %cmp.i.i.i1789 = icmp eq i32 %dec.i.i.i.i1788, 0 - br i1 %cmp.i.i.i1789, label %if.then2.i.i.i1790, label %invoke.cont139.i.i - -if.then2.i.i.i1790: ; preds = %if.then.i.i.i1785 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %984, ptr noundef nonnull %983) - to label %invoke.cont139.i.i unwind label %lpad37.i.i266.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont139.i.i: ; preds = %if.then.i.i.i1785, %invoke.cont136.i.i, %if.then2.i.i.i1790 - store ptr null, ptr %m_pr.i49.i, align 8 - %986 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1780 = getelementptr inbounds i32, ptr %986, i64 -1 - %987 = load i32, ptr %arrayidx.i1780, align 4 - %dec.i1781 = add i32 %987, -1 - store i32 %dec.i1781, ptr %arrayidx.i1780, align 4 - %988 = load ptr, ptr %m_r.i48.i, align 8 - %this.val47.i.i285 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i1768 = icmp eq ptr %623, %988 - %cmp.i.i.i1769 = icmp eq ptr %this.val47.i.i285, null - %or.cond.i1770 = select i1 %cmp.not.i1768, i1 true, i1 %cmp.i.i.i1769 - br i1 %or.cond.i1770, label %invoke.cont145.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1771 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1771: ; preds = %invoke.cont139.i.i - %arrayidx.i.i.i1772 = getelementptr inbounds i32, ptr %this.val47.i.i285, i64 -1 - %989 = load i32, ptr %arrayidx.i.i.i1772, align 4 - %cmp3.i.i.i1773 = icmp eq i32 %989, 0 - br i1 %cmp3.i.i.i1773, label %invoke.cont145.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1774 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1774: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1771 - %990 = add i32 %989, -1 - %991 = zext i32 %990 to i64 - %m_new_child.i.i1775 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val47.i.i285, i64 %991, i32 1 - %bf.load.i.i1776 = load i32, ptr %m_new_child.i.i1775, align 8 - %bf.set.i.i1777 = or i32 %bf.load.i.i1776, 2 - store i32 %bf.set.i.i1777, ptr %m_new_child.i.i1775, align 8 - br label %invoke.cont145.i.i - -invoke.cont145.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1774, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1771, %invoke.cont139.i.i - %992 = load ptr, ptr %m_nodes.i.i1997, align 8 - %cmp.i.i.i1744 = icmp eq ptr %992, null - br i1 %cmp.i.i.i1744, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1767, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1745 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1745: ; preds = %invoke.cont145.i.i - %arrayidx.i.i.i1746 = getelementptr inbounds i32, ptr %992, i64 -1 - %993 = load i32, ptr %arrayidx.i.i.i1746, align 4 - %994 = zext i32 %993 to i64 - %add.ptr.i.i1747 = getelementptr inbounds ptr, ptr %992, i64 %994 - %cmp3.i.not.i.i1748 = icmp eq i32 %993, 0 - br i1 %cmp3.i.not.i.i1748, label %if.then.i.i.i.i.i1762, label %for.body.i.i.i1749 - -for.body.i.i.i1749: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1745, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1756 - %it.04.i.i.i1750 = phi ptr [ %incdec.ptr.i.i.i1757, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1756 ], [ %992, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1745 ] - %995 = load ptr, ptr %it.04.i.i.i1750, align 8 - %996 = load ptr, ptr %new_no_pats.i.i199, align 8 - %tobool.not.i.i.i.i.i.i1751 = icmp eq ptr %995, null - br i1 %tobool.not.i.i.i.i.i.i1751, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1756, label %if.then.i.i.i.i.i.i1752 - -if.then.i.i.i.i.i.i1752: ; preds = %for.body.i.i.i1749 - %m_ref_count.i.i.i.i.i.i.i1753 = getelementptr inbounds %class.ast, ptr %995, i64 0, i32 2 - %997 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i1753, align 4 - %dec.i.i.i.i.i.i.i1754 = add i32 %997, -1 - store i32 %dec.i.i.i.i.i.i.i1754, ptr %m_ref_count.i.i.i.i.i.i.i1753, align 4 - %cmp.i.i.i.i.i.i1755 = icmp eq i32 %dec.i.i.i.i.i.i.i1754, 0 - br i1 %cmp.i.i.i.i.i.i1755, label %if.then2.i.i.i.i.i.i1765, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1756 - -if.then2.i.i.i.i.i.i1765: ; preds = %if.then.i.i.i.i.i.i1752 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %996, ptr noundef nonnull %995) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1756 unwind label %terminate.lpad.i.i1766 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1756: ; preds = %if.then2.i.i.i.i.i.i1765, %if.then.i.i.i.i.i.i1752, %for.body.i.i.i1749 - %incdec.ptr.i.i.i1757 = getelementptr inbounds ptr, ptr %it.04.i.i.i1750, i64 1 - %cmp.i1.i.i1758 = icmp ult ptr %incdec.ptr.i.i.i1757, %add.ptr.i.i1747 - br i1 %cmp.i1.i.i1758, label %for.body.i.i.i1749, label %invoke.cont.i.i1759, !llvm.loop !9 - -invoke.cont.i.i1759: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1756 - %.pre.i.i1760 = load ptr, ptr %m_nodes.i.i1997, align 8 - %tobool.not.i.i.i.i.i1761 = icmp eq ptr %.pre.i.i1760, null - br i1 %tobool.not.i.i.i.i.i1761, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1767, label %if.then.i.i.i.i.i1762 - -if.then.i.i.i.i.i1762: ; preds = %invoke.cont.i.i1759, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1745 - %998 = phi ptr [ %.pre.i.i1760, %invoke.cont.i.i1759 ], [ %992, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1745 ] - %add.ptr.i.i.i.i.i.i1763 = getelementptr inbounds i32, ptr %998, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i1763) - to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1767 unwind label %terminate.lpad.i.i.i.i1764 - -terminate.lpad.i.i.i.i1764: ; preds = %if.then.i.i.i.i.i1762 - %999 = landingpad { ptr, i32 } - catch ptr null - %1000 = extractvalue { ptr, i32 } %999, 0 - call void @__clang_call_terminate(ptr %1000) #15 - unreachable - -terminate.lpad.i.i1766: ; preds = %if.then2.i.i.i.i.i.i1765 - %1001 = landingpad { ptr, i32 } + to label %invoke.cont125.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont125.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i + %988 = load ptr, ptr %m_r.i64.i.i, align 8 + %bf.load131.i.i.i = load i32, ptr %626, align 8 + %bf.clear132.i.i.i = and i32 %bf.load131.i.i.i, 1 + %tobool133.not.i.i.i = icmp eq i32 %bf.clear132.i.i.i, 0 + br i1 %tobool133.not.i.i.i, label %invoke.cont134.i.i.i184, label %if.then.i248.i.i.i + +if.then.i248.i.i.i: ; preds = %invoke.cont125.i.i.i + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %988) + to label %invoke.cont134thread-pre-split.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont134thread-pre-split.i.i.i: ; preds = %if.then.i248.i.i.i + %.pr.i.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont134.i.i.i184 + +invoke.cont134.i.i.i184: ; preds = %invoke.cont134thread-pre-split.i.i.i, %invoke.cont125.i.i.i + %989 = phi ptr [ %.pr.i.i.i, %invoke.cont134thread-pre-split.i.i.i ], [ %988, %invoke.cont125.i.i.i ] + %tobool.not.i3.i251.i.i.i = icmp eq ptr %989, null + br i1 %tobool.not.i3.i251.i.i.i, label %invoke.cont136.i.i.i, label %if.then.i.i.i252.i.i.i + +if.then.i.i.i252.i.i.i: ; preds = %invoke.cont134.i.i.i184 + %990 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i254.i.i.i = getelementptr inbounds %class.ast, ptr %989, i64 0, i32 2 + %991 = load i32, ptr %m_ref_count.i.i.i.i254.i.i.i, align 4 + %dec.i.i.i.i255.i.i.i = add i32 %991, -1 + store i32 %dec.i.i.i.i255.i.i.i, ptr %m_ref_count.i.i.i.i254.i.i.i, align 4 + %cmp.i.i.i256.i.i.i = icmp eq i32 %dec.i.i.i.i255.i.i.i, 0 + br i1 %cmp.i.i.i256.i.i.i, label %if.then2.i.i.i257.i.i.i, label %invoke.cont136.i.i.i + +if.then2.i.i.i257.i.i.i: ; preds = %if.then.i.i.i252.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %990, ptr noundef nonnull %989) + to label %invoke.cont136.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont136.i.i.i: ; preds = %if.then2.i.i.i257.i.i.i, %if.then.i.i.i252.i.i.i, %invoke.cont134.i.i.i184 + store ptr null, ptr %m_r.i64.i.i, align 8 + %992 = load ptr, ptr %m_pr.i.i.i, align 8 + %tobool.not.i3.i261.i.i.i = icmp eq ptr %992, null + br i1 %tobool.not.i3.i261.i.i.i, label %invoke.cont139.i.i.i, label %if.then.i.i.i262.i.i.i + +if.then.i.i.i262.i.i.i: ; preds = %invoke.cont136.i.i.i + %993 = load ptr, ptr %m_manager.i.i263.i.i.i, align 8 + %m_ref_count.i.i.i.i264.i.i.i = getelementptr inbounds %class.ast, ptr %992, i64 0, i32 2 + %994 = load i32, ptr %m_ref_count.i.i.i.i264.i.i.i, align 4 + %dec.i.i.i.i265.i.i.i = add i32 %994, -1 + store i32 %dec.i.i.i.i265.i.i.i, ptr %m_ref_count.i.i.i.i264.i.i.i, align 4 + %cmp.i.i.i266.i.i.i = icmp eq i32 %dec.i.i.i.i265.i.i.i, 0 + br i1 %cmp.i.i.i266.i.i.i, label %if.then2.i.i.i267.i.i.i, label %invoke.cont139.i.i.i + +if.then2.i.i.i267.i.i.i: ; preds = %if.then.i.i.i262.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %993, ptr noundef nonnull %992) + to label %invoke.cont139.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont139.i.i.i: ; preds = %if.then2.i.i.i267.i.i.i, %if.then.i.i.i262.i.i.i, %invoke.cont136.i.i.i + store ptr null, ptr %m_pr.i.i.i, align 8 + %995 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i269.i.i.i = getelementptr inbounds i32, ptr %995, i64 -1 + %996 = load i32, ptr %arrayidx.i269.i.i.i, align 4 + %dec.i.i.i.i185 = add i32 %996, -1 + store i32 %dec.i.i.i.i185, ptr %arrayidx.i269.i.i.i, align 4 + %997 = load ptr, ptr %m_r.i64.i.i, align 8 + %this.val47.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i.i186 = icmp eq ptr %997, %624 + %cmp.i.i.i270.i.i.i = icmp eq ptr %this.val47.i.i.i, null + %or.cond.i.i84.i.i = select i1 %cmp.not.i.i.i.i186, i1 true, i1 %cmp.i.i.i270.i.i.i + br i1 %or.cond.i.i84.i.i, label %invoke.cont145.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i: ; preds = %invoke.cont139.i.i.i + %arrayidx.i.i.i271.i.i.i = getelementptr inbounds i32, ptr %this.val47.i.i.i, i64 -1 + %998 = load i32, ptr %arrayidx.i.i.i271.i.i.i, align 4 + %cmp3.i.i.i.i86.i.i = icmp eq i32 %998, 0 + br i1 %cmp3.i.i.i.i86.i.i, label %invoke.cont145.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i + %999 = add i32 %998, -1 + %1000 = zext i32 %999 to i64 + %m_new_child.i.i.i88.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val47.i.i.i, i64 %1000, i32 1 + %bf.load.i.i.i89.i.i = load i32, ptr %m_new_child.i.i.i88.i.i, align 8 + %bf.set.i.i.i90.i.i = or i32 %bf.load.i.i.i89.i.i, 2 + store i32 %bf.set.i.i.i90.i.i, ptr %m_new_child.i.i.i88.i.i, align 8 + br label %invoke.cont145.i.i.i + +invoke.cont145.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i, %invoke.cont139.i.i.i + %1001 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i274.i.i.i = icmp eq ptr %1001, null + br i1 %cmp.i.i.i274.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187: ; preds = %invoke.cont145.i.i.i + %arrayidx.i.i.i275.i.i.i = getelementptr inbounds i32, ptr %1001, i64 -1 + %1002 = load i32, ptr %arrayidx.i.i.i275.i.i.i, align 4 + %1003 = zext i32 %1002 to i64 + %add.ptr.i.i276.i.i.i = getelementptr inbounds ptr, ptr %1001, i64 %1003 + %cmp3.i.not.i.i.i.i.i188 = icmp eq i32 %1002, 0 + br i1 %cmp3.i.not.i.i.i.i.i188, label %if.then.i.i.i.i.i282.i.i.i, label %for.body.i.i.i.i91.i.i + +for.body.i.i.i.i91.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + %it.04.i.i.i.i92.i.i = phi ptr [ %incdec.ptr.i.i.i.i96.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i ], [ %1001, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 ] + %1004 = load ptr, ptr %it.04.i.i.i.i92.i.i, align 8 + %1005 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %tobool.not.i.i.i.i.i.i277.i.i.i = icmp eq ptr %1004, null + br i1 %tobool.not.i.i.i.i.i.i277.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i, label %if.then.i.i.i.i.i.i278.i.i.i + +if.then.i.i.i.i.i.i278.i.i.i: ; preds = %for.body.i.i.i.i91.i.i + %m_ref_count.i.i.i.i.i.i.i279.i.i.i = getelementptr inbounds %class.ast, ptr %1004, i64 0, i32 2 + %1006 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i279.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i93.i.i = add i32 %1006, -1 + store i32 %dec.i.i.i.i.i.i.i.i93.i.i, ptr %m_ref_count.i.i.i.i.i.i.i279.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i94.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i93.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i94.i.i, label %if.then2.i.i.i.i.i.i.i97.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + +if.then2.i.i.i.i.i.i.i97.i.i: ; preds = %if.then.i.i.i.i.i.i278.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1005, ptr noundef nonnull %1004) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i unwind label %terminate.lpad.i.i.i.i.i194 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i: ; preds = %if.then2.i.i.i.i.i.i.i97.i.i, %if.then.i.i.i.i.i.i278.i.i.i, %for.body.i.i.i.i91.i.i + %incdec.ptr.i.i.i.i96.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i92.i.i, i64 1 + %cmp.i1.i.i.i.i.i189 = icmp ult ptr %incdec.ptr.i.i.i.i96.i.i, %add.ptr.i.i276.i.i.i + br i1 %cmp.i1.i.i.i.i.i189, label %for.body.i.i.i.i91.i.i, label %invoke.cont.i.i.i.i.i190, !llvm.loop !9 + +invoke.cont.i.i.i.i.i190: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + %.pre.i.i280.i.i.i = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %tobool.not.i.i.i.i.i281.i.i.i = icmp eq ptr %.pre.i.i280.i.i.i, null + br i1 %tobool.not.i.i.i.i.i281.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193, label %if.then.i.i.i.i.i282.i.i.i + +if.then.i.i.i.i.i282.i.i.i: ; preds = %invoke.cont.i.i.i.i.i190, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 + %1007 = phi ptr [ %.pre.i.i280.i.i.i, %invoke.cont.i.i.i.i.i190 ], [ %1001, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 ] + %add.ptr.i.i.i.i.i.i.i.i.i191 = getelementptr inbounds i32, ptr %1007, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i.i.i.i191) + to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193 unwind label %terminate.lpad.i.i.i.i.i.i.i192 + +terminate.lpad.i.i.i.i.i.i.i192: ; preds = %if.then.i.i.i.i.i282.i.i.i + %1008 = landingpad { ptr, i32 } catch ptr null - %1002 = extractvalue { ptr, i32 } %1001, 0 - call void @__clang_call_terminate(ptr %1002) #15 + %1009 = extractvalue { ptr, i32 } %1008, 0 + call void @__clang_call_terminate(ptr %1009) #15 unreachable -_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1767: ; preds = %invoke.cont145.i.i, %invoke.cont.i.i1759, %if.then.i.i.i.i.i1762 - %1003 = load ptr, ptr %m_nodes.i.i2035, align 8 - %cmp.i.i.i1719 = icmp eq ptr %1003, null - br i1 %cmp.i.i.i1719, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1720 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1720: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1767 - %arrayidx.i.i.i1721 = getelementptr inbounds i32, ptr %1003, i64 -1 - %1004 = load i32, ptr %arrayidx.i.i.i1721, align 4 - %1005 = zext i32 %1004 to i64 - %add.ptr.i.i1722 = getelementptr inbounds ptr, ptr %1003, i64 %1005 - %cmp3.i.not.i.i1723 = icmp eq i32 %1004, 0 - br i1 %cmp3.i.not.i.i1723, label %if.then.i.i.i.i.i1737, label %for.body.i.i.i1724 - -for.body.i.i.i1724: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1720, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1731 - %it.04.i.i.i1725 = phi ptr [ %incdec.ptr.i.i.i1732, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1731 ], [ %1003, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1720 ] - %1006 = load ptr, ptr %it.04.i.i.i1725, align 8 - %1007 = load ptr, ptr %new_pats.i.i198, align 8 - %tobool.not.i.i.i.i.i.i1726 = icmp eq ptr %1006, null - br i1 %tobool.not.i.i.i.i.i.i1726, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1731, label %if.then.i.i.i.i.i.i1727 - -if.then.i.i.i.i.i.i1727: ; preds = %for.body.i.i.i1724 - %m_ref_count.i.i.i.i.i.i.i1728 = getelementptr inbounds %class.ast, ptr %1006, i64 0, i32 2 - %1008 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i1728, align 4 - %dec.i.i.i.i.i.i.i1729 = add i32 %1008, -1 - store i32 %dec.i.i.i.i.i.i.i1729, ptr %m_ref_count.i.i.i.i.i.i.i1728, align 4 - %cmp.i.i.i.i.i.i1730 = icmp eq i32 %dec.i.i.i.i.i.i.i1729, 0 - br i1 %cmp.i.i.i.i.i.i1730, label %if.then2.i.i.i.i.i.i1740, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1731 - -if.then2.i.i.i.i.i.i1740: ; preds = %if.then.i.i.i.i.i.i1727 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1007, ptr noundef nonnull %1006) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1731 unwind label %terminate.lpad.i.i1741 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1731: ; preds = %if.then2.i.i.i.i.i.i1740, %if.then.i.i.i.i.i.i1727, %for.body.i.i.i1724 - %incdec.ptr.i.i.i1732 = getelementptr inbounds ptr, ptr %it.04.i.i.i1725, i64 1 - %cmp.i1.i.i1733 = icmp ult ptr %incdec.ptr.i.i.i1732, %add.ptr.i.i1722 - br i1 %cmp.i1.i.i1733, label %for.body.i.i.i1724, label %invoke.cont.i.i1734, !llvm.loop !9 - -invoke.cont.i.i1734: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1731 - %.pre.i.i1735 = load ptr, ptr %m_nodes.i.i2035, align 8 - %tobool.not.i.i.i.i.i1736 = icmp eq ptr %.pre.i.i1735, null - br i1 %tobool.not.i.i.i.i.i1736, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i.i.i1737 - -if.then.i.i.i.i.i1737: ; preds = %invoke.cont.i.i1734, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1720 - %1009 = phi ptr [ %.pre.i.i1735, %invoke.cont.i.i1734 ], [ %1003, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1720 ] - %add.ptr.i.i.i.i.i.i1738 = getelementptr inbounds i32, ptr %1009, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i1738) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i.i.i.i1739 - -terminate.lpad.i.i.i.i1739: ; preds = %if.then.i.i.i.i.i1737 +terminate.lpad.i.i.i.i.i194: ; preds = %if.then2.i.i.i.i.i.i.i97.i.i %1010 = landingpad { ptr, i32 } catch ptr null %1011 = extractvalue { ptr, i32 } %1010, 0 call void @__clang_call_terminate(ptr %1011) #15 unreachable -terminate.lpad.i.i1741: ; preds = %if.then2.i.i.i.i.i.i1740 - %1012 = landingpad { ptr, i32 } +_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193: ; preds = %if.then.i.i.i.i.i282.i.i.i, %invoke.cont.i.i.i.i.i190, %invoke.cont145.i.i.i + %1012 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i284.i.i.i = icmp eq ptr %1012, null + br i1 %cmp.i.i.i284.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193 + %arrayidx.i.i.i286.i.i.i = getelementptr inbounds i32, ptr %1012, i64 -1 + %1013 = load i32, ptr %arrayidx.i.i.i286.i.i.i, align 4 + %1014 = zext i32 %1013 to i64 + %add.ptr.i.i287.i.i.i = getelementptr inbounds ptr, ptr %1012, i64 %1014 + %cmp3.i.not.i.i288.i.i.i = icmp eq i32 %1013, 0 + br i1 %cmp3.i.not.i.i288.i.i.i, label %if.then.i.i.i.i.i302.i.i.i, label %for.body.i.i.i289.i.i.i + +for.body.i.i.i289.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + %it.04.i.i.i290.i.i.i = phi ptr [ %incdec.ptr.i.i.i297.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i ], [ %1012, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i ] + %1015 = load ptr, ptr %it.04.i.i.i290.i.i.i, align 8 + %1016 = load ptr, ptr %new_pats.i.i.i42, align 8 + %tobool.not.i.i.i.i.i.i291.i.i.i = icmp eq ptr %1015, null + br i1 %tobool.not.i.i.i.i.i.i291.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i, label %if.then.i.i.i.i.i.i292.i.i.i + +if.then.i.i.i.i.i.i292.i.i.i: ; preds = %for.body.i.i.i289.i.i.i + %m_ref_count.i.i.i.i.i.i.i293.i.i.i = getelementptr inbounds %class.ast, ptr %1015, i64 0, i32 2 + %1017 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i293.i.i.i, align 4 + %dec.i.i.i.i.i.i.i294.i.i.i = add i32 %1017, -1 + store i32 %dec.i.i.i.i.i.i.i294.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i293.i.i.i, align 4 + %cmp.i.i.i.i.i.i295.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i294.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i295.i.i.i, label %if.then2.i.i.i.i.i.i305.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + +if.then2.i.i.i.i.i.i305.i.i.i: ; preds = %if.then.i.i.i.i.i.i292.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1016, ptr noundef nonnull %1015) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i unwind label %terminate.lpad.i.i306.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i: ; preds = %if.then2.i.i.i.i.i.i305.i.i.i, %if.then.i.i.i.i.i.i292.i.i.i, %for.body.i.i.i289.i.i.i + %incdec.ptr.i.i.i297.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i290.i.i.i, i64 1 + %cmp.i1.i.i298.i.i.i = icmp ult ptr %incdec.ptr.i.i.i297.i.i.i, %add.ptr.i.i287.i.i.i + br i1 %cmp.i1.i.i298.i.i.i, label %for.body.i.i.i289.i.i.i, label %invoke.cont.i.i299.i.i.i, !llvm.loop !9 + +invoke.cont.i.i299.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + %.pre.i.i300.i.i.i = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %tobool.not.i.i.i.i.i301.i.i.i = icmp eq ptr %.pre.i.i300.i.i.i, null + br i1 %tobool.not.i.i.i.i.i301.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i.i.i302.i.i.i + +if.then.i.i.i.i.i302.i.i.i: ; preds = %invoke.cont.i.i299.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i + %1018 = phi ptr [ %.pre.i.i300.i.i.i, %invoke.cont.i.i299.i.i.i ], [ %1012, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i ] + %add.ptr.i.i.i.i.i.i303.i.i.i = getelementptr inbounds i32, ptr %1018, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i303.i.i.i) + to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i304.i.i.i + +terminate.lpad.i.i.i.i304.i.i.i: ; preds = %if.then.i.i.i.i.i302.i.i.i + %1019 = landingpad { ptr, i32 } catch ptr null - %1013 = extractvalue { ptr, i32 } %1012, 0 - call void @__clang_call_terminate(ptr %1013) #15 + %1020 = extractvalue { ptr, i32 } %1019, 0 + call void @__clang_call_terminate(ptr %1020) #15 unreachable -ehcleanup.i.i263: ; preds = %lpad.i2023, %lpad37.i.i266 - %.pn.i45.i = phi { ptr, i32 } [ %lpad.phi2846, %lpad37.i.i266 ], [ %916, %lpad.i2023 ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i198) #14 - br label %common.resume +terminate.lpad.i.i306.i.i.i: ; preds = %if.then2.i.i.i.i.i.i305.i.i.i + %1021 = landingpad { ptr, i32 } + catch ptr null + %1022 = extractvalue { ptr, i32 } %1021, 0 + call void @__clang_call_terminate(ptr %1022) #15 + unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i: ; preds = %_ZNK10quantifier9get_childEj.exit2102, %if.then.i.i.i.i.i1737, %invoke.cont.i.i1734, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1767 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i198) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i199) - br label %while.cond.i208.backedgethread-pre-split +ehcleanup.i.i.i161: ; preds = %lpad37.i.i.i, %lpad.i105.i.body.i.i + %.pn.i59.i.i = phi { ptr, i32 } [ %lpad.phi.i58.i.i, %lpad37.i.i.i ], [ %eh.lpad-body.i.i217, %lpad.i105.i.body.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i42) #14 + br label %common.resume -sw.bb33.i: ; preds = %if.end28.i - %1014 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i71.i = getelementptr inbounds i32, ptr %1014, i64 -1 - %1015 = load i32, ptr %arrayidx.i71.i, align 4 - %dec.i72.i = add i32 %1015, -1 - store i32 %dec.i72.i, ptr %arrayidx.i71.i, align 4 - call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %623) - br label %while.cond.i208.backedgethread-pre-split - -sw.default.i420: ; preds = %if.end28.i +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i240, %if.then.i.i.i.i.i302.i.i.i, %invoke.cont.i.i299.i.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i.i42) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i.i43) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.bb33.i.i: ; preds = %if.end28.i.i + %1023 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i143.i.i = getelementptr inbounds i32, ptr %1023, i64 -1 + %1024 = load i32, ptr %arrayidx.i143.i.i, align 4 + %dec.i144.i.i = add i32 %1024, -1 + store i32 %dec.i144.i.i, ptr %arrayidx.i143.i.i, align 4 + call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %624) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.default.i.i364: ; preds = %if.end28.i.i call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.13, i32 noundef 793, ptr noundef nonnull @.str.12) call void @exit(i32 noundef 114) #15 unreachable -while.end.i462: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i214, %while.cond.i208.backedge, %if.else.i56 - %m_result_stack.i73.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i74.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1016 = load ptr, ptr %m_nodes.i74.i, align 8 - %cmp.i.i.i75.i = icmp eq ptr %1016, null - br i1 %cmp.i.i.i75.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i464, label %if.end.i.i.i.i463 - -if.end.i.i.i.i463: ; preds = %while.end.i462 - %arrayidx.i.i.i76.i = getelementptr inbounds i32, ptr %1016, i64 -1 - %1017 = load i32, ptr %arrayidx.i.i.i76.i, align 4 - %1018 = add i32 %1017, -1 - %1019 = zext i32 %1018 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i464 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i464: ; preds = %if.end.i.i.i.i463, %while.end.i462 - %retval.0.i.i.i.i465 = phi i64 [ %1019, %if.end.i.i.i.i463 ], [ 4294967295, %while.end.i462 ] - %arrayidx.i1.i.i.i466 = getelementptr inbounds ptr, ptr %1016, i64 %retval.0.i.i.i.i465 - %1020 = load ptr, ptr %arrayidx.i1.i.i.i466, align 8 - %tobool.not.i77.i = icmp eq ptr %1020, null - br i1 %tobool.not.i77.i, label %if.end.i78.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i467 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i467: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i464 - %m_ref_count.i.i.i.i468 = getelementptr inbounds %class.ast, ptr %1020, i64 0, i32 2 - %1021 = load i32, ptr %m_ref_count.i.i.i.i468, align 4 - %inc.i.i.i.i469 = add i32 %1021, 1 - store i32 %inc.i.i.i.i469, ptr %m_ref_count.i.i.i.i468, align 4 - br label %if.end.i78.i - -if.end.i78.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i467, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i464 - %1022 = load ptr, ptr %result, align 8 - %tobool.not.i3.i.i470 = icmp eq ptr %1022, null - br i1 %tobool.not.i3.i.i470, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i475, label %if.then.i.i.i.i471 - -if.then.i.i.i.i471: ; preds = %if.end.i78.i - %m_manager.i.i.i472 = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 - %1023 = load ptr, ptr %m_manager.i.i.i472, align 8 - %m_ref_count.i.i.i.i.i473 = getelementptr inbounds %class.ast, ptr %1022, i64 0, i32 2 - %1024 = load i32, ptr %m_ref_count.i.i.i.i.i473, align 4 - %dec.i.i.i.i.i474 = add i32 %1024, -1 - store i32 %dec.i.i.i.i.i474, ptr %m_ref_count.i.i.i.i.i473, align 4 - %cmp.i.i.i79.i = icmp eq i32 %dec.i.i.i.i.i474, 0 - br i1 %cmp.i.i.i79.i, label %if.then2.i.i.i.i485, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i475 - -if.then2.i.i.i.i485: ; preds = %if.then.i.i.i.i471 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1023, ptr noundef nonnull %1022) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i475 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i475: ; preds = %if.then2.i.i.i.i485, %if.then.i.i.i.i471, %if.end.i78.i - store ptr %1020, ptr %result, align 8 - %1025 = load ptr, ptr %m_nodes.i74.i, align 8 - %cmp.i.i.i82.i = icmp eq ptr %1025, null - br i1 %cmp.i.i.i82.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i482, label %if.end.i.i.i83.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i482: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i475 - %.pre.i.i483 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i484 = add i32 %.pre.i.i483, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i476 - -if.end.i.i.i83.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i475 - %arrayidx.i.i.i84.i = getelementptr inbounds i32, ptr %1025, i64 -1 - %1026 = load i32, ptr %arrayidx.i.i.i84.i, align 4 +while.end.i.i115: ; preds = %while.cond.backedge.i.i113, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87, %if.else.i77 + %m_result_stack.i145.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i146.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1025 = load ptr, ptr %m_nodes.i146.i.i, align 8 + %cmp.i.i.i147.i.i = icmp eq ptr %1025, null + br i1 %cmp.i.i.i147.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116, label %if.end.i.i.i148.i.i + +if.end.i.i.i148.i.i: ; preds = %while.end.i.i115 + %arrayidx.i.i.i149.i.i = getelementptr inbounds i32, ptr %1025, i64 -1 + %1026 = load i32, ptr %arrayidx.i.i.i149.i.i, align 4 %1027 = add i32 %1026, -1 %1028 = zext i32 %1027 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i476 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i476: ; preds = %if.end.i.i.i83.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i482 - %dec.i.pre-phi.i.i477 = phi i32 [ %.pre1.i.i484, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i482 ], [ %1027, %if.end.i.i.i83.i ] - %retval.0.i.i.i85.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i482 ], [ %1028, %if.end.i.i.i83.i ] - %arrayidx.i1.i.i86.i = getelementptr inbounds ptr, ptr %1025, i64 %retval.0.i.i.i85.i - %1029 = load ptr, ptr %arrayidx.i1.i.i86.i, align 8 - %arrayidx.i.i87.i = getelementptr inbounds i32, ptr %1025, i64 -1 - store i32 %dec.i.pre-phi.i.i477, ptr %arrayidx.i.i87.i, align 4 - %1030 = load ptr, ptr %m_result_stack.i73.i, align 8 - %tobool.not.i.i.i.i88.i = icmp eq ptr %1029, null - br i1 %tobool.not.i.i.i.i88.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit, label %if.then.i.i.i.i89.i - -if.then.i.i.i.i89.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i476 - %m_ref_count.i.i.i.i.i90.i = getelementptr inbounds %class.ast, ptr %1029, i64 0, i32 2 - %1031 = load i32, ptr %m_ref_count.i.i.i.i.i90.i, align 4 - %dec.i.i.i.i.i.i478 = add i32 %1031, -1 - store i32 %dec.i.i.i.i.i.i478, ptr %m_ref_count.i.i.i.i.i90.i, align 4 - %cmp.i.i.i.i.i479 = icmp eq i32 %dec.i.i.i.i.i.i478, 0 - br i1 %cmp.i.i.i.i.i479, label %if.then2.i.i.i.i.i481, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit - -if.then2.i.i.i.i.i481: ; preds = %if.then.i.i.i.i89.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1030, ptr noundef nonnull %1029) - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit - -unreachable.i238: ; preds = %invoke.cont11.i235 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116: ; preds = %if.end.i.i.i148.i.i, %while.end.i.i115 + %retval.0.i.i.i150.i.i = phi i64 [ %1028, %if.end.i.i.i148.i.i ], [ 4294967295, %while.end.i.i115 ] + %arrayidx.i1.i.i.i.i117 = getelementptr inbounds ptr, ptr %1025, i64 %retval.0.i.i.i150.i.i + %1029 = load ptr, ptr %arrayidx.i1.i.i.i.i117, align 8 + %tobool.not.i151.i.i = icmp eq ptr %1029, null + br i1 %tobool.not.i151.i.i, label %if.end.i153.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + %m_ref_count.i.i.i.i44.i = getelementptr inbounds %class.ast, ptr %1029, i64 0, i32 2 + %1030 = load i32, ptr %m_ref_count.i.i.i.i44.i, align 4 + %inc.i.i.i152.i.i = add i32 %1030, 1 + store i32 %inc.i.i.i152.i.i, ptr %m_ref_count.i.i.i.i44.i, align 4 + br label %if.end.i153.i.i + +if.end.i153.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + %1031 = load ptr, ptr %result, align 8 + %tobool.not.i3.i.i.i119 = icmp eq ptr %1031, null + br i1 %tobool.not.i3.i.i.i119, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120, label %if.then.i.i.i154.i.i + +if.then.i.i.i154.i.i: ; preds = %if.end.i153.i.i + %m_manager.i.i155.i.i = getelementptr inbounds %class.obj_ref, ptr %result, i64 0, i32 1 + %1032 = load ptr, ptr %m_manager.i.i155.i.i, align 8 + %m_ref_count.i.i.i.i156.i.i = getelementptr inbounds %class.ast, ptr %1031, i64 0, i32 2 + %1033 = load i32, ptr %m_ref_count.i.i.i.i156.i.i, align 4 + %dec.i.i.i.i157.i.i = add i32 %1033, -1 + store i32 %dec.i.i.i.i157.i.i, ptr %m_ref_count.i.i.i.i156.i.i, align 4 + %cmp.i.i.i158.i.i = icmp eq i32 %dec.i.i.i.i157.i.i, 0 + br i1 %cmp.i.i.i158.i.i, label %if.then2.i.i.i159.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + +if.then2.i.i.i159.i.i: ; preds = %if.then.i.i.i154.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1032, ptr noundef nonnull %1031) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120: ; preds = %if.then2.i.i.i159.i.i, %if.then.i.i.i154.i.i, %if.end.i153.i.i + store ptr %1029, ptr %result, align 8 + %1034 = load ptr, ptr %m_nodes.i146.i.i, align 8 + %cmp.i.i.i162.i.i = icmp eq ptr %1034, null + br i1 %cmp.i.i.i162.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123, label %if.end.i.i.i163.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + %.pre.i174.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i124 = add i32 %.pre.i174.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + +if.end.i.i.i163.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + %arrayidx.i.i.i164.i.i = getelementptr inbounds i32, ptr %1034, i64 -1 + %1035 = load i32, ptr %arrayidx.i.i.i164.i.i, align 4 + %1036 = add i32 %1035, -1 + %1037 = zext i32 %1036 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121: ; preds = %if.end.i.i.i163.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 + %dec.i.pre-phi.i.i.i122 = phi i32 [ %.pre1.i.i.i124, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 ], [ %1036, %if.end.i.i.i163.i.i ] + %retval.0.i.i.i165.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 ], [ %1037, %if.end.i.i.i163.i.i ] + %arrayidx.i1.i.i166.i.i = getelementptr inbounds ptr, ptr %1034, i64 %retval.0.i.i.i165.i.i + %1038 = load ptr, ptr %arrayidx.i1.i.i166.i.i, align 8 + %arrayidx.i.i167.i.i = getelementptr inbounds i32, ptr %1034, i64 -1 + store i32 %dec.i.pre-phi.i.i.i122, ptr %arrayidx.i.i167.i.i, align 4 + %1039 = load ptr, ptr %m_result_stack.i145.i.i, align 8 + %tobool.not.i.i.i.i168.i.i = icmp eq ptr %1038, null + br i1 %tobool.not.i.i.i.i168.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i, label %if.then.i.i.i.i169.i.i + +if.then.i.i.i.i169.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + %m_ref_count.i.i.i.i.i170.i.i = getelementptr inbounds %class.ast, ptr %1038, i64 0, i32 2 + %1040 = load i32, ptr %m_ref_count.i.i.i.i.i170.i.i, align 4 + %dec.i.i.i.i.i171.i.i = add i32 %1040, -1 + store i32 %dec.i.i.i.i.i171.i.i, ptr %m_ref_count.i.i.i.i.i170.i.i, align 4 + %cmp.i.i.i.i172.i.i = icmp eq i32 %dec.i.i.i.i.i171.i.i, 0 + br i1 %cmp.i.i.i.i172.i.i, label %if.then2.i.i.i.i173.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i + +if.then2.i.i.i.i173.i.i: ; preds = %if.then.i.i.i.i169.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1039, ptr noundef nonnull %1038) + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i + +unreachable.i.i102: ; preds = %invoke.cont11.i.i99 unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i476, %if.then.i.i.i.i89.i, %if.then2.i.i.i.i.i481 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i206) - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i207) +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i: ; preds = %if.then2.i.i.i.i173.i.i, %if.then.i.i.i.i169.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i45) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i.i46) br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit -unreachable.i51: ; preds = %invoke.cont10.i +unreachable.i66: ; preds = %invoke.cont10.i unreachable -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit: ; preds = %if.then2.i.i.i.i500, %if.then.i.i.i.i496, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i490, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit539, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i31) +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE9main_loopILb0EEEvP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i400, %if.then.i.i.i.i.i404, %if.then2.i.i.i.i.i408, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS4_I3appS6_E.exit.i + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i47) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp8.i) br label %if.end8 @@ -17620,94 +17929,92 @@ entry: ; Function Attrs: mustprogress uwtable define internal fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef %max_depth) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { if.end: - %t.i = alloca %class.obj_ref.93, align 8 - %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 %cmp = icmp eq i32 %max_depth, 0 - br i1 %cmp, label %if.then6, label %if.end11 - -if.then6: ; preds = %if.end - %tobool.not.i.i.i.i56 = icmp eq ptr %t, null - br i1 %tobool.not.i.i.i.i56, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60, label %if.then.i.i.i.i57 - -if.then.i.i.i.i57: ; preds = %if.then6 - %m_ref_count.i.i.i.i.i58 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %0 = load i32, ptr %m_ref_count.i.i.i.i.i58, align 4 - %inc.i.i.i.i.i59 = add i32 %0, 1 - store i32 %inc.i.i.i.i.i59, ptr %m_ref_count.i.i.i.i.i58, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60: ; preds = %if.then.i.i.i.i57, %if.then6 - %m_nodes.i61 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1 = load ptr, ptr %m_nodes.i61, align 8 - %cmp.i.i62 = icmp eq ptr %1, null - br i1 %cmp.i.i62, label %if.then.i.i71, label %lor.lhs.false.i.i63 - -lor.lhs.false.i.i63: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - %arrayidx.i.i64 = getelementptr inbounds i32, ptr %1, i64 -1 - %2 = load i32, ptr %arrayidx.i.i64, align 4 - %arrayidx4.i.i65 = getelementptr inbounds i32, ptr %1, i64 -2 - %3 = load i32, ptr %arrayidx4.i.i65, align 4 - %cmp5.i.i66 = icmp eq i32 %2, %3 - br i1 %cmp5.i.i66, label %if.then.i.i71, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - -if.then.i.i71: ; preds = %lor.lhs.false.i.i63, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i61) - %.pre.i.i72 = load ptr, ptr %m_nodes.i61, align 8 - %arrayidx8.phi.trans.insert.i.i73 = getelementptr inbounds i32, ptr %.pre.i.i72, i64 -1 - %.pre1.i.i74 = load i32, ptr %arrayidx8.phi.trans.insert.i.i73, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75: ; preds = %lor.lhs.false.i.i63, %if.then.i.i71 - %4 = phi i32 [ %.pre1.i.i74, %if.then.i.i71 ], [ %2, %lor.lhs.false.i.i63 ] - %5 = phi ptr [ %.pre.i.i72, %if.then.i.i71 ], [ %1, %lor.lhs.false.i.i63 ] - %idx.ext.i.i67 = zext i32 %4 to i64 - %add.ptr.i.i68 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i67 - store ptr %t, ptr %add.ptr.i.i68, align 8 - %6 = load ptr, ptr %m_nodes.i61, align 8 - %arrayidx10.i.i69 = getelementptr inbounds i32, ptr %6, i64 -1 - %7 = load i32, ptr %arrayidx10.i.i69, align 4 - %inc.i.i70 = add i32 %7, 1 - store i32 %inc.i.i70, ptr %arrayidx10.i.i69, align 4 - %m_nodes.i78 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %8 = load ptr, ptr %m_nodes.i78, align 8 - %cmp.i.i79 = icmp eq ptr %8, null - br i1 %cmp.i.i79, label %if.then.i.i88, label %lor.lhs.false.i.i80 - -lor.lhs.false.i.i80: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - %arrayidx.i.i81 = getelementptr inbounds i32, ptr %8, i64 -1 - %9 = load i32, ptr %arrayidx.i.i81, align 4 - %arrayidx4.i.i82 = getelementptr inbounds i32, ptr %8, i64 -2 - %10 = load i32, ptr %arrayidx4.i.i82, align 4 - %cmp5.i.i83 = icmp eq i32 %9, %10 - br i1 %cmp5.i.i83, label %if.then.i.i88, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - -if.then.i.i88: ; preds = %lor.lhs.false.i.i80, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i78) - %.pre.i.i89 = load ptr, ptr %m_nodes.i78, align 8 - %arrayidx8.phi.trans.insert.i.i90 = getelementptr inbounds i32, ptr %.pre.i.i89, i64 -1 - %.pre1.i.i91 = load i32, ptr %arrayidx8.phi.trans.insert.i.i90, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 + br i1 %cmp, label %if.then6, label %if.end11 -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92: ; preds = %lor.lhs.false.i.i80, %if.then.i.i88 - %11 = phi i32 [ %.pre1.i.i91, %if.then.i.i88 ], [ %9, %lor.lhs.false.i.i80 ] - %12 = phi ptr [ %.pre.i.i89, %if.then.i.i88 ], [ %8, %lor.lhs.false.i.i80 ] - %idx.ext.i.i84 = zext i32 %11 to i64 - %add.ptr.i.i85 = getelementptr inbounds ptr, ptr %12, i64 %idx.ext.i.i84 - store ptr null, ptr %add.ptr.i.i85, align 8 - %13 = load ptr, ptr %m_nodes.i78, align 8 - %arrayidx10.i.i86 = getelementptr inbounds i32, ptr %13, i64 -1 - %14 = load i32, ptr %arrayidx10.i.i86, align 4 - %inc.i.i87 = add i32 %14, 1 - store i32 %inc.i.i87, ptr %arrayidx10.i.i86, align 4 +if.then6: ; preds = %if.end + %tobool.not.i.i.i.i52 = icmp eq ptr %t, null + br i1 %tobool.not.i.i.i.i52, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56, label %if.then.i.i.i.i53 + +if.then.i.i.i.i53: ; preds = %if.then6 + %m_ref_count.i.i.i.i.i54 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %0 = load i32, ptr %m_ref_count.i.i.i.i.i54, align 4 + %inc.i.i.i.i.i55 = add i32 %0, 1 + store i32 %inc.i.i.i.i.i55, ptr %m_ref_count.i.i.i.i.i54, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56: ; preds = %if.then.i.i.i.i53, %if.then6 + %m_nodes.i57 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1 = load ptr, ptr %m_nodes.i57, align 8 + %cmp.i.i58 = icmp eq ptr %1, null + br i1 %cmp.i.i58, label %if.then.i.i67, label %lor.lhs.false.i.i59 + +lor.lhs.false.i.i59: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + %arrayidx.i.i60 = getelementptr inbounds i32, ptr %1, i64 -1 + %2 = load i32, ptr %arrayidx.i.i60, align 4 + %arrayidx4.i.i61 = getelementptr inbounds i32, ptr %1, i64 -2 + %3 = load i32, ptr %arrayidx4.i.i61, align 4 + %cmp5.i.i62 = icmp eq i32 %2, %3 + br i1 %cmp5.i.i62, label %if.then.i.i67, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + +if.then.i.i67: ; preds = %lor.lhs.false.i.i59, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i57) + %.pre.i.i68 = load ptr, ptr %m_nodes.i57, align 8 + %arrayidx8.phi.trans.insert.i.i69 = getelementptr inbounds i32, ptr %.pre.i.i68, i64 -1 + %.pre1.i.i70 = load i32, ptr %arrayidx8.phi.trans.insert.i.i69, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71: ; preds = %lor.lhs.false.i.i59, %if.then.i.i67 + %4 = phi i32 [ %.pre1.i.i70, %if.then.i.i67 ], [ %2, %lor.lhs.false.i.i59 ] + %5 = phi ptr [ %.pre.i.i68, %if.then.i.i67 ], [ %1, %lor.lhs.false.i.i59 ] + %idx.ext.i.i63 = zext i32 %4 to i64 + %add.ptr.i.i64 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i63 + store ptr %t, ptr %add.ptr.i.i64, align 8 + %6 = load ptr, ptr %m_nodes.i57, align 8 + %arrayidx10.i.i65 = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx10.i.i65, align 4 + %inc.i.i66 = add i32 %7, 1 + store i32 %inc.i.i66, ptr %arrayidx10.i.i65, align 4 + %m_nodes.i74 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %8 = load ptr, ptr %m_nodes.i74, align 8 + %cmp.i.i75 = icmp eq ptr %8, null + br i1 %cmp.i.i75, label %if.then.i.i84, label %lor.lhs.false.i.i76 + +lor.lhs.false.i.i76: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + %arrayidx.i.i77 = getelementptr inbounds i32, ptr %8, i64 -1 + %9 = load i32, ptr %arrayidx.i.i77, align 4 + %arrayidx4.i.i78 = getelementptr inbounds i32, ptr %8, i64 -2 + %10 = load i32, ptr %arrayidx4.i.i78, align 4 + %cmp5.i.i79 = icmp eq i32 %9, %10 + br i1 %cmp5.i.i79, label %if.then.i.i84, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + +if.then.i.i84: ; preds = %lor.lhs.false.i.i76, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i74) + %.pre.i.i85 = load ptr, ptr %m_nodes.i74, align 8 + %arrayidx8.phi.trans.insert.i.i86 = getelementptr inbounds i32, ptr %.pre.i.i85, i64 -1 + %.pre1.i.i87 = load i32, ptr %arrayidx8.phi.trans.insert.i.i86, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88: ; preds = %lor.lhs.false.i.i76, %if.then.i.i84 + %11 = phi i32 [ %.pre1.i.i87, %if.then.i.i84 ], [ %9, %lor.lhs.false.i.i76 ] + %12 = phi ptr [ %.pre.i.i85, %if.then.i.i84 ], [ %8, %lor.lhs.false.i.i76 ] + %idx.ext.i.i80 = zext i32 %11 to i64 + %add.ptr.i.i81 = getelementptr inbounds ptr, ptr %12, i64 %idx.ext.i.i80 + store ptr null, ptr %add.ptr.i.i81, align 8 + %13 = load ptr, ptr %m_nodes.i74, align 8 + %arrayidx10.i.i82 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx10.i.i82, align 4 + %inc.i.i83 = add i32 %14, 1 + store i32 %inc.i.i83, ptr %arrayidx10.i.i82, align 4 br label %return if.end11: ; preds = %if.end %15 = getelementptr inbounds i8, ptr %this, i64 120 - %this.val35 = load ptr, ptr %15, align 8 + %this.val31 = load ptr, ptr %15, align 8 %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 %16 = load i32, ptr %m_ref_count.i.i.i, align 4 %cmp.i9.i = icmp ult i32 %16, 2 - %cmp2.not.i.i = icmp eq ptr %this.val35, %t + %cmp2.not.i.i = icmp eq ptr %this.val31, %t %or.cond.i.i = select i1 %cmp.i9.i, i1 true, i1 %cmp2.not.i.i br i1 %or.cond.i.i, label %if.end30, label %land.rhs.i.i @@ -17731,120 +18038,120 @@ if.then13: ; preds = %land.rhs.i.i, %land %18 = load ptr, ptr %m_cache.i, align 8 %call.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %18, ptr noundef nonnull %t, i32 noundef 0) %tobool15.not = icmp eq ptr %call.i.i, null - br i1 %tobool15.not, label %if.end30, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99: ; preds = %if.then13 - %m_ref_count.i.i.i.i.i97 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 - %19 = load i32, ptr %m_ref_count.i.i.i.i.i97, align 4 - %inc.i.i.i.i.i98 = add i32 %19, 1 - store i32 %inc.i.i.i.i.i98, ptr %m_ref_count.i.i.i.i.i97, align 4 - %m_nodes.i100 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %20 = load ptr, ptr %m_nodes.i100, align 8 - %cmp.i.i101 = icmp eq ptr %20, null - br i1 %cmp.i.i101, label %if.then.i.i110, label %lor.lhs.false.i.i102 - -lor.lhs.false.i.i102: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - %arrayidx.i.i103 = getelementptr inbounds i32, ptr %20, i64 -1 - %21 = load i32, ptr %arrayidx.i.i103, align 4 - %arrayidx4.i.i104 = getelementptr inbounds i32, ptr %20, i64 -2 - %22 = load i32, ptr %arrayidx4.i.i104, align 4 - %cmp5.i.i105 = icmp eq i32 %21, %22 - br i1 %cmp5.i.i105, label %if.then.i.i110, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - -if.then.i.i110: ; preds = %lor.lhs.false.i.i102, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i100) - %.pre.i.i111 = load ptr, ptr %m_nodes.i100, align 8 - %arrayidx8.phi.trans.insert.i.i112 = getelementptr inbounds i32, ptr %.pre.i.i111, i64 -1 - %.pre1.i.i113 = load i32, ptr %arrayidx8.phi.trans.insert.i.i112, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114: ; preds = %lor.lhs.false.i.i102, %if.then.i.i110 - %23 = phi i32 [ %.pre1.i.i113, %if.then.i.i110 ], [ %21, %lor.lhs.false.i.i102 ] - %24 = phi ptr [ %.pre.i.i111, %if.then.i.i110 ], [ %20, %lor.lhs.false.i.i102 ] - %idx.ext.i.i106 = zext i32 %23 to i64 - %add.ptr.i.i107 = getelementptr inbounds ptr, ptr %24, i64 %idx.ext.i.i106 - store ptr %call.i.i, ptr %add.ptr.i.i107, align 8 - %25 = load ptr, ptr %m_nodes.i100, align 8 - %arrayidx10.i.i108 = getelementptr inbounds i32, ptr %25, i64 -1 - %26 = load i32, ptr %arrayidx10.i.i108, align 4 - %inc.i.i109 = add i32 %26, 1 - store i32 %inc.i.i109, ptr %arrayidx10.i.i108, align 4 + br i1 %tobool15.not, label %if.end30, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95: ; preds = %if.then13 + %m_ref_count.i.i.i.i.i93 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 + %19 = load i32, ptr %m_ref_count.i.i.i.i.i93, align 4 + %inc.i.i.i.i.i94 = add i32 %19, 1 + store i32 %inc.i.i.i.i.i94, ptr %m_ref_count.i.i.i.i.i93, align 4 + %m_nodes.i96 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %20 = load ptr, ptr %m_nodes.i96, align 8 + %cmp.i.i97 = icmp eq ptr %20, null + br i1 %cmp.i.i97, label %if.then.i.i106, label %lor.lhs.false.i.i98 + +lor.lhs.false.i.i98: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + %arrayidx.i.i99 = getelementptr inbounds i32, ptr %20, i64 -1 + %21 = load i32, ptr %arrayidx.i.i99, align 4 + %arrayidx4.i.i100 = getelementptr inbounds i32, ptr %20, i64 -2 + %22 = load i32, ptr %arrayidx4.i.i100, align 4 + %cmp5.i.i101 = icmp eq i32 %21, %22 + br i1 %cmp5.i.i101, label %if.then.i.i106, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + +if.then.i.i106: ; preds = %lor.lhs.false.i.i98, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i96) + %.pre.i.i107 = load ptr, ptr %m_nodes.i96, align 8 + %arrayidx8.phi.trans.insert.i.i108 = getelementptr inbounds i32, ptr %.pre.i.i107, i64 -1 + %.pre1.i.i109 = load i32, ptr %arrayidx8.phi.trans.insert.i.i108, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110: ; preds = %lor.lhs.false.i.i98, %if.then.i.i106 + %23 = phi i32 [ %.pre1.i.i109, %if.then.i.i106 ], [ %21, %lor.lhs.false.i.i98 ] + %24 = phi ptr [ %.pre.i.i107, %if.then.i.i106 ], [ %20, %lor.lhs.false.i.i98 ] + %idx.ext.i.i102 = zext i32 %23 to i64 + %add.ptr.i.i103 = getelementptr inbounds ptr, ptr %24, i64 %idx.ext.i.i102 + store ptr %call.i.i, ptr %add.ptr.i.i103, align 8 + %25 = load ptr, ptr %m_nodes.i96, align 8 + %arrayidx10.i.i104 = getelementptr inbounds i32, ptr %25, i64 -1 + %26 = load i32, ptr %arrayidx10.i.i104, align 4 + %inc.i.i105 = add i32 %26, 1 + store i32 %inc.i.i105, ptr %arrayidx10.i.i104, align 4 %27 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val33 = load ptr, ptr %27, align 8 - %cmp.not.i115 = icmp eq ptr %call.i.i, %t - %cmp.i.i.i116 = icmp eq ptr %this.val33, null - %or.cond.i117 = select i1 %cmp.not.i115, i1 true, i1 %cmp.i.i.i116 - br i1 %or.cond.i117, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit125, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - %arrayidx.i.i.i119 = getelementptr inbounds i32, ptr %this.val33, i64 -1 - %28 = load i32, ptr %arrayidx.i.i.i119, align 4 - %cmp3.i.i.i120 = icmp eq i32 %28, 0 - br i1 %cmp3.i.i.i120, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit125, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118 + %this.val30 = load ptr, ptr %27, align 8 + %cmp.not.i111 = icmp eq ptr %call.i.i, %t + %cmp.i.i.i112 = icmp eq ptr %this.val30, null + %or.cond.i113 = select i1 %cmp.not.i111, i1 true, i1 %cmp.i.i.i112 + br i1 %or.cond.i113, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit121, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + %arrayidx.i.i.i115 = getelementptr inbounds i32, ptr %this.val30, i64 -1 + %28 = load i32, ptr %arrayidx.i.i.i115, align 4 + %cmp3.i.i.i116 = icmp eq i32 %28, 0 + br i1 %cmp3.i.i.i116, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit121, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114 %29 = add i32 %28, -1 %30 = zext i32 %29 to i64 - %m_new_child.i.i122 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val33, i64 %30, i32 1 - %bf.load.i.i123 = load i32, ptr %m_new_child.i.i122, align 8 - %bf.set.i.i124 = or i32 %bf.load.i.i123, 2 - store i32 %bf.set.i.i124, ptr %m_new_child.i.i122, align 8 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit125 + %m_new_child.i.i118 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val30, i64 %30, i32 1 + %bf.load.i.i119 = load i32, ptr %m_new_child.i.i118, align 8 + %bf.set.i.i120 = or i32 %bf.load.i.i119, 2 + store i32 %bf.set.i.i120, ptr %m_new_child.i.i118, align 8 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit121 -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit125: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121 +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit121: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117 %m_cache_pr.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 %31 = load ptr, ptr %m_cache_pr.i, align 8 - %call.i.i126 = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %31, ptr noundef nonnull %t, i32 noundef 0) - %tobool.not.i.i.i.i128 = icmp eq ptr %call.i.i126, null - br i1 %tobool.not.i.i.i.i128, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132, label %if.then.i.i.i.i129 - -if.then.i.i.i.i129: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit125 - %m_ref_count.i.i.i.i.i130 = getelementptr inbounds %class.ast, ptr %call.i.i126, i64 0, i32 2 - %32 = load i32, ptr %m_ref_count.i.i.i.i.i130, align 4 - %inc.i.i.i.i.i131 = add i32 %32, 1 - store i32 %inc.i.i.i.i.i131, ptr %m_ref_count.i.i.i.i.i130, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132: ; preds = %if.then.i.i.i.i129, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit125 - %m_nodes.i133 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %33 = load ptr, ptr %m_nodes.i133, align 8 - %cmp.i.i134 = icmp eq ptr %33, null - br i1 %cmp.i.i134, label %if.then.i.i143, label %lor.lhs.false.i.i135 - -lor.lhs.false.i.i135: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - %arrayidx.i.i136 = getelementptr inbounds i32, ptr %33, i64 -1 - %34 = load i32, ptr %arrayidx.i.i136, align 4 - %arrayidx4.i.i137 = getelementptr inbounds i32, ptr %33, i64 -2 - %35 = load i32, ptr %arrayidx4.i.i137, align 4 - %cmp5.i.i138 = icmp eq i32 %34, %35 - br i1 %cmp5.i.i138, label %if.then.i.i143, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 - -if.then.i.i143: ; preds = %lor.lhs.false.i.i135, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i133) - %.pre.i.i144 = load ptr, ptr %m_nodes.i133, align 8 - %arrayidx8.phi.trans.insert.i.i145 = getelementptr inbounds i32, ptr %.pre.i.i144, i64 -1 - %.pre1.i.i146 = load i32, ptr %arrayidx8.phi.trans.insert.i.i145, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147: ; preds = %lor.lhs.false.i.i135, %if.then.i.i143 - %36 = phi i32 [ %.pre1.i.i146, %if.then.i.i143 ], [ %34, %lor.lhs.false.i.i135 ] - %37 = phi ptr [ %.pre.i.i144, %if.then.i.i143 ], [ %33, %lor.lhs.false.i.i135 ] - %idx.ext.i.i139 = zext i32 %36 to i64 - %add.ptr.i.i140 = getelementptr inbounds ptr, ptr %37, i64 %idx.ext.i.i139 - store ptr %call.i.i126, ptr %add.ptr.i.i140, align 8 - %38 = load ptr, ptr %m_nodes.i133, align 8 - %arrayidx10.i.i141 = getelementptr inbounds i32, ptr %38, i64 -1 - %39 = load i32, ptr %arrayidx10.i.i141, align 4 - %inc.i.i142 = add i32 %39, 1 - store i32 %inc.i.i142, ptr %arrayidx10.i.i141, align 4 + %call.i.i122 = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %31, ptr noundef nonnull %t, i32 noundef 0) + %tobool.not.i.i.i.i124 = icmp eq ptr %call.i.i122, null + br i1 %tobool.not.i.i.i.i124, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128, label %if.then.i.i.i.i125 + +if.then.i.i.i.i125: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit121 + %m_ref_count.i.i.i.i.i126 = getelementptr inbounds %class.ast, ptr %call.i.i122, i64 0, i32 2 + %32 = load i32, ptr %m_ref_count.i.i.i.i.i126, align 4 + %inc.i.i.i.i.i127 = add i32 %32, 1 + store i32 %inc.i.i.i.i.i127, ptr %m_ref_count.i.i.i.i.i126, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128: ; preds = %if.then.i.i.i.i125, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE18set_new_child_flagEP4exprS4_.exit121 + %m_nodes.i129 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %33 = load ptr, ptr %m_nodes.i129, align 8 + %cmp.i.i130 = icmp eq ptr %33, null + br i1 %cmp.i.i130, label %if.then.i.i139, label %lor.lhs.false.i.i131 + +lor.lhs.false.i.i131: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + %arrayidx.i.i132 = getelementptr inbounds i32, ptr %33, i64 -1 + %34 = load i32, ptr %arrayidx.i.i132, align 4 + %arrayidx4.i.i133 = getelementptr inbounds i32, ptr %33, i64 -2 + %35 = load i32, ptr %arrayidx4.i.i133, align 4 + %cmp5.i.i134 = icmp eq i32 %34, %35 + br i1 %cmp5.i.i134, label %if.then.i.i139, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 + +if.then.i.i139: ; preds = %lor.lhs.false.i.i131, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i129) + %.pre.i.i140 = load ptr, ptr %m_nodes.i129, align 8 + %arrayidx8.phi.trans.insert.i.i141 = getelementptr inbounds i32, ptr %.pre.i.i140, i64 -1 + %.pre1.i.i142 = load i32, ptr %arrayidx8.phi.trans.insert.i.i141, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143: ; preds = %lor.lhs.false.i.i131, %if.then.i.i139 + %36 = phi i32 [ %.pre1.i.i142, %if.then.i.i139 ], [ %34, %lor.lhs.false.i.i131 ] + %37 = phi ptr [ %.pre.i.i140, %if.then.i.i139 ], [ %33, %lor.lhs.false.i.i131 ] + %idx.ext.i.i135 = zext i32 %36 to i64 + %add.ptr.i.i136 = getelementptr inbounds ptr, ptr %37, i64 %idx.ext.i.i135 + store ptr %call.i.i122, ptr %add.ptr.i.i136, align 8 + %38 = load ptr, ptr %m_nodes.i129, align 8 + %arrayidx10.i.i137 = getelementptr inbounds i32, ptr %38, i64 -1 + %39 = load i32, ptr %arrayidx10.i.i137, align 4 + %inc.i.i138 = add i32 %39, 1 + store i32 %inc.i.i138, ptr %arrayidx10.i.i137, align 4 br label %return if.end30: ; preds = %land.rhs.i.i, %land.lhs.true4.i.i, %if.end11, %if.then13 %conv.i.i.i = phi i32 [ 1, %if.then13 ], [ 0, %if.end11 ], [ 0, %land.lhs.true4.i.i ], [ 0, %land.rhs.i.i ] %m_kind.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 1 %bf.load.i = load i32, ptr %m_kind.i, align 4 - %trunc241 = trunc i32 %bf.load.i to i16 - switch i16 %trunc241, label %sw.default [ + %trunc214 = trunc i32 %bf.load.i to i16 + switch i16 %trunc214, label %sw.default [ i16 0, label %sw.bb i16 1, label %sw.bb76 i16 2, label %sw.bb78 @@ -17854,374 +18161,65 @@ sw.bb: ; preds = %if.end30 %m_num_args.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 2 %40 = load i32, ptr %m_num_args.i, align 8 %cmp34 = icmp eq i32 %40, 0 - br i1 %cmp34, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i, label %if.end71 - -_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i: ; preds = %sw.bb - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %t.i) - %41 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val4.i = load ptr, ptr %41, align 8 - store ptr %t, ptr %t.i, align 8 - %m_manager.i.i = getelementptr inbounds %class.obj_ref.93, ptr %t.i, i64 0, i32 1 - store ptr %this.val4.i, ptr %m_manager.i.i, align 8 - %42 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i = add i32 %42, 1 - store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %43 = load ptr, ptr %m_cfg, align 8 - %m_decl.i.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 1 - %44 = load ptr, ptr %m_decl.i.i, align 8 - %m_r.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_pr.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %call5.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %43, ptr noundef %44, i32 noundef 0, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i) - to label %invoke.cont4.i unwind label %lpad.i - -invoke.cont4.i: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i - %switch.i = icmp eq i32 %call5.i, 5 - br i1 %switch.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %sw.bb17.i - -lpad.i: ; preds = %if.then2.i.i.i94.i, %if.then2.i.i.i.i, %if.then.i.i80.i, %if.else.i, %if.then.i.i58.i, %if.then.i.i37.i, %if.then.i.i16.i, %if.then.i.i.i262, %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i - %45 = landingpad { ptr, i32 } - cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t.i) #14 - resume { ptr, i32 } %45 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %invoke.cont4.i - %46 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i.i = add i32 %46, 1 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %47 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %47, null - br i1 %cmp.i.i.i, label %if.then.i.i.i262, label %lor.lhs.false.i.i.i255 - -lor.lhs.false.i.i.i255: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %47, i64 -1 - %48 = load i32, ptr %arrayidx.i.i.i, align 4 - %arrayidx4.i.i.i256 = getelementptr inbounds i32, ptr %47, i64 -2 - %49 = load i32, ptr %arrayidx4.i.i.i256, align 4 - %cmp5.i.i.i257 = icmp eq i32 %48, %49 - br i1 %cmp5.i.i.i257, label %if.then.i.i.i262, label %invoke.cont8.i - -if.then.i.i.i262: ; preds = %lor.lhs.false.i.i.i255, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc.i unwind label %lpad.i - -.noexc.i: ; preds = %if.then.i.i.i262 - %.pre.i.i.i263 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i264 = getelementptr inbounds i32, ptr %.pre.i.i.i263, i64 -1 - %.pre1.i.i.i265 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i264, align 4 - br label %invoke.cont8.i - -invoke.cont8.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i255 - %50 = phi i32 [ %.pre1.i.i.i265, %.noexc.i ], [ %48, %lor.lhs.false.i.i.i255 ] - %51 = phi ptr [ %.pre.i.i.i263, %.noexc.i ], [ %47, %lor.lhs.false.i.i.i255 ] - %idx.ext.i.i.i258 = zext i32 %50 to i64 - %add.ptr.i.i.i259 = getelementptr inbounds ptr, ptr %51, i64 %idx.ext.i.i.i258 - store ptr %t, ptr %add.ptr.i.i.i259, align 8 - %52 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i260 = getelementptr inbounds i32, ptr %52, i64 -1 - %53 = load i32, ptr %arrayidx10.i.i.i260, align 4 - %inc.i.i.i261 = add i32 %53, 1 - store i32 %inc.i.i.i261, ptr %arrayidx10.i.i.i260, align 4 - %m_nodes.i6.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %54 = load ptr, ptr %m_nodes.i6.i, align 8 - %cmp.i.i7.i = icmp eq ptr %54, null - br i1 %cmp.i.i7.i, label %if.then.i.i16.i, label %lor.lhs.false.i.i8.i - -lor.lhs.false.i.i8.i: ; preds = %invoke.cont8.i - %arrayidx.i.i9.i = getelementptr inbounds i32, ptr %54, i64 -1 - %55 = load i32, ptr %arrayidx.i.i9.i, align 4 - %arrayidx4.i.i10.i = getelementptr inbounds i32, ptr %54, i64 -2 - %56 = load i32, ptr %arrayidx4.i.i10.i, align 4 - %cmp5.i.i11.i = icmp eq i32 %55, %56 - br i1 %cmp5.i.i11.i, label %if.then.i.i16.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i16.i: ; preds = %lor.lhs.false.i.i8.i, %invoke.cont8.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i6.i) - to label %.noexc20.i unwind label %lpad.i - -.noexc20.i: ; preds = %if.then.i.i16.i - %.pre.i.i17.i = load ptr, ptr %m_nodes.i6.i, align 8 - %arrayidx8.phi.trans.insert.i.i18.i = getelementptr inbounds i32, ptr %.pre.i.i17.i, i64 -1 - %.pre1.i.i19.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i18.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %.noexc20.i, %lor.lhs.false.i.i8.i - %57 = phi i32 [ %.pre1.i.i19.i, %.noexc20.i ], [ %55, %lor.lhs.false.i.i8.i ] - %58 = phi ptr [ %.pre.i.i17.i, %.noexc20.i ], [ %54, %lor.lhs.false.i.i8.i ] - %idx.ext.i.i12.i = zext i32 %57 to i64 - %add.ptr.i.i13.i = getelementptr inbounds ptr, ptr %58, i64 %idx.ext.i.i12.i - store ptr null, ptr %add.ptr.i.i13.i, align 8 - %59 = load ptr, ptr %m_nodes.i6.i, align 8 - %arrayidx10.i.i14.i = getelementptr inbounds i32, ptr %59, i64 -1 - %60 = load i32, ptr %arrayidx10.i.i14.i, align 4 - %inc.i.i15.i = add i32 %60, 1 - store i32 %inc.i.i15.i, ptr %arrayidx10.i.i14.i, align 4 - br label %if.then.i.i.i99.i - -sw.bb17.i: ; preds = %invoke.cont4.i - %61 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i.i.i.i22.i = icmp eq ptr %61, null - br i1 %tobool.not.i.i.i.i22.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i, label %if.then.i.i.i.i23.i - -if.then.i.i.i.i23.i: ; preds = %sw.bb17.i - %m_ref_count.i.i.i.i.i24.i = getelementptr inbounds %class.ast, ptr %61, i64 0, i32 2 - %62 = load i32, ptr %m_ref_count.i.i.i.i.i24.i, align 4 - %inc.i.i.i.i.i25.i = add i32 %62, 1 - store i32 %inc.i.i.i.i.i25.i, ptr %m_ref_count.i.i.i.i.i24.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i: ; preds = %if.then.i.i.i.i23.i, %sw.bb17.i - %m_nodes.i27.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %63 = load ptr, ptr %m_nodes.i27.i, align 8 - %cmp.i.i28.i = icmp eq ptr %63, null - br i1 %cmp.i.i28.i, label %if.then.i.i37.i, label %lor.lhs.false.i.i29.i - -lor.lhs.false.i.i29.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i - %arrayidx.i.i30.i = getelementptr inbounds i32, ptr %63, i64 -1 - %64 = load i32, ptr %arrayidx.i.i30.i, align 4 - %arrayidx4.i.i31.i = getelementptr inbounds i32, ptr %63, i64 -2 - %65 = load i32, ptr %arrayidx4.i.i31.i, align 4 - %cmp5.i.i32.i = icmp eq i32 %64, %65 - br i1 %cmp5.i.i32.i, label %if.then.i.i37.i, label %invoke.cont21.i - -if.then.i.i37.i: ; preds = %lor.lhs.false.i.i29.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i27.i) - to label %.noexc41.i unwind label %lpad.i - -.noexc41.i: ; preds = %if.then.i.i37.i - %.pre.i.i38.i = load ptr, ptr %m_nodes.i27.i, align 8 - %arrayidx8.phi.trans.insert.i.i39.i = getelementptr inbounds i32, ptr %.pre.i.i38.i, i64 -1 - %.pre1.i.i40.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i39.i, align 4 - br label %invoke.cont21.i - -invoke.cont21.i: ; preds = %.noexc41.i, %lor.lhs.false.i.i29.i - %66 = phi i32 [ %.pre1.i.i40.i, %.noexc41.i ], [ %64, %lor.lhs.false.i.i29.i ] - %67 = phi ptr [ %.pre.i.i38.i, %.noexc41.i ], [ %63, %lor.lhs.false.i.i29.i ] - %idx.ext.i.i33.i = zext i32 %66 to i64 - %add.ptr.i.i34.i = getelementptr inbounds ptr, ptr %67, i64 %idx.ext.i.i33.i - store ptr %61, ptr %add.ptr.i.i34.i, align 8 - %68 = load ptr, ptr %m_nodes.i27.i, align 8 - %arrayidx10.i.i35.i = getelementptr inbounds i32, ptr %68, i64 -1 - %69 = load i32, ptr %arrayidx10.i.i35.i, align 4 - %inc.i.i36.i = add i32 %69, 1 - store i32 %inc.i.i36.i, ptr %arrayidx10.i.i35.i, align 4 - %70 = load ptr, ptr %m_pr.i, align 8 - %cmp.i.not.i = icmp eq ptr %70, null - br i1 %cmp.i.not.i, label %if.else.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %invoke.cont21.i - %m_ref_count.i.i.i.i.i46.i = getelementptr inbounds %class.ast, ptr %70, i64 0, i32 2 - %71 = load i32, ptr %m_ref_count.i.i.i.i.i46.i, align 4 - %inc.i.i.i.i.i47.i = add i32 %71, 1 - store i32 %inc.i.i.i.i.i47.i, ptr %m_ref_count.i.i.i.i.i46.i, align 4 - %m_nodes.i48.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %72 = load ptr, ptr %m_nodes.i48.i, align 8 - %cmp.i.i49.i = icmp eq ptr %72, null - br i1 %cmp.i.i49.i, label %if.then.i.i58.i, label %lor.lhs.false.i.i50.i - -lor.lhs.false.i.i50.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i51.i = getelementptr inbounds i32, ptr %72, i64 -1 - %73 = load i32, ptr %arrayidx.i.i51.i, align 4 - %arrayidx4.i.i52.i = getelementptr inbounds i32, ptr %72, i64 -2 - %74 = load i32, ptr %arrayidx4.i.i52.i, align 4 - %cmp5.i.i53.i = icmp eq i32 %73, %74 - br i1 %cmp5.i.i53.i, label %if.then.i.i58.i, label %if.end41.i - -if.then.i.i58.i: ; preds = %lor.lhs.false.i.i50.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i48.i) - to label %if.end41.sink.split.i unwind label %lpad.i - -if.else.i: ; preds = %invoke.cont21.i - %this.val.i = load ptr, ptr %41, align 8 - %75 = load ptr, ptr %m_r.i, align 8 - %call38.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i, ptr noundef nonnull %t, ptr noundef %75) - to label %invoke.cont37.i unwind label %lpad.i - -invoke.cont37.i: ; preds = %if.else.i - %tobool.not.i.i.i.i65.i = icmp eq ptr %call38.i, null - br i1 %tobool.not.i.i.i.i65.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i, label %if.then.i.i.i.i66.i - -if.then.i.i.i.i66.i: ; preds = %invoke.cont37.i - %m_ref_count.i.i.i.i.i67.i = getelementptr inbounds %class.ast, ptr %call38.i, i64 0, i32 2 - %76 = load i32, ptr %m_ref_count.i.i.i.i.i67.i, align 4 - %inc.i.i.i.i.i68.i = add i32 %76, 1 - store i32 %inc.i.i.i.i.i68.i, ptr %m_ref_count.i.i.i.i.i67.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i: ; preds = %if.then.i.i.i.i66.i, %invoke.cont37.i - %m_nodes.i70.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %77 = load ptr, ptr %m_nodes.i70.i, align 8 - %cmp.i.i71.i = icmp eq ptr %77, null - br i1 %cmp.i.i71.i, label %if.then.i.i80.i, label %lor.lhs.false.i.i72.i - -lor.lhs.false.i.i72.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i - %arrayidx.i.i73.i = getelementptr inbounds i32, ptr %77, i64 -1 - %78 = load i32, ptr %arrayidx.i.i73.i, align 4 - %arrayidx4.i.i74.i = getelementptr inbounds i32, ptr %77, i64 -2 - %79 = load i32, ptr %arrayidx4.i.i74.i, align 4 - %cmp5.i.i75.i = icmp eq i32 %78, %79 - br i1 %cmp5.i.i75.i, label %if.then.i.i80.i, label %if.end41.i - -if.then.i.i80.i: ; preds = %lor.lhs.false.i.i72.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i70.i) - to label %if.end41.sink.split.i unwind label %lpad.i - -if.end41.sink.split.i: ; preds = %if.then.i.i80.i, %if.then.i.i58.i - %m_nodes.i48.sink.i = phi ptr [ %m_nodes.i48.i, %if.then.i.i58.i ], [ %m_nodes.i70.i, %if.then.i.i80.i ] - %call38.sink.ph.i = phi ptr [ %70, %if.then.i.i58.i ], [ %call38.i, %if.then.i.i80.i ] - %.pre.i.i59.i = load ptr, ptr %m_nodes.i48.sink.i, align 8 - %arrayidx8.phi.trans.insert.i.i82.i = getelementptr inbounds i32, ptr %.pre.i.i59.i, i64 -1 - %.pre1.i.i83.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i82.i, align 4 - br label %if.end41.i - -if.end41.i: ; preds = %if.end41.sink.split.i, %lor.lhs.false.i.i72.i, %lor.lhs.false.i.i50.i - %.sink106.i = phi i32 [ %73, %lor.lhs.false.i.i50.i ], [ %78, %lor.lhs.false.i.i72.i ], [ %.pre1.i.i83.i, %if.end41.sink.split.i ] - %.sink.i = phi ptr [ %72, %lor.lhs.false.i.i50.i ], [ %77, %lor.lhs.false.i.i72.i ], [ %.pre.i.i59.i, %if.end41.sink.split.i ] - %call38.sink.i = phi ptr [ %70, %lor.lhs.false.i.i50.i ], [ %call38.i, %lor.lhs.false.i.i72.i ], [ %call38.sink.ph.i, %if.end41.sink.split.i ] - %m_nodes.i70.sink.i = phi ptr [ %m_nodes.i48.i, %lor.lhs.false.i.i50.i ], [ %m_nodes.i70.i, %lor.lhs.false.i.i72.i ], [ %m_nodes.i48.sink.i, %if.end41.sink.split.i ] - %idx.ext.i.i76.i = zext i32 %.sink106.i to i64 - %add.ptr.i.i77.i = getelementptr inbounds ptr, ptr %.sink.i, i64 %idx.ext.i.i76.i - store ptr %call38.sink.i, ptr %add.ptr.i.i77.i, align 8 - %80 = load ptr, ptr %m_nodes.i70.sink.i, align 8 - %arrayidx10.i.i78.i = getelementptr inbounds i32, ptr %80, i64 -1 - %81 = load i32, ptr %arrayidx10.i.i78.i, align 4 - %inc.i.i79.i = add i32 %81, 1 - store i32 %inc.i.i79.i, ptr %arrayidx10.i.i78.i, align 4 - %82 = load ptr, ptr %m_pr.i, align 8 - %tobool.not.i3.i.i = icmp eq ptr %82, null - br i1 %tobool.not.i3.i.i, label %invoke.cont43.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %if.end41.i - %m_manager.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %83 = load ptr, ptr %m_manager.i.i.i, align 8 - %m_ref_count.i.i.i.i86.i = getelementptr inbounds %class.ast, ptr %82, i64 0, i32 2 - %84 = load i32, ptr %m_ref_count.i.i.i.i86.i, align 4 - %dec.i.i.i.i.i = add i32 %84, -1 - store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i86.i, align 4 - %cmp.i.i.i.i254 = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i254, label %if.then2.i.i.i.i, label %invoke.cont43.i - -if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %83, ptr noundef nonnull %82) - to label %invoke.cont43.i unwind label %lpad.i - -invoke.cont43.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.end41.i - store ptr null, ptr %m_pr.i, align 8 - %85 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i3.i88.i = icmp eq ptr %85, null - br i1 %tobool.not.i3.i88.i, label %invoke.cont46.i, label %if.then.i.i.i89.i - -if.then.i.i.i89.i: ; preds = %invoke.cont43.i - %m_manager.i.i90.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %86 = load ptr, ptr %m_manager.i.i90.i, align 8 - %m_ref_count.i.i.i.i91.i = getelementptr inbounds %class.ast, ptr %85, i64 0, i32 2 - %87 = load i32, ptr %m_ref_count.i.i.i.i91.i, align 4 - %dec.i.i.i.i92.i = add i32 %87, -1 - store i32 %dec.i.i.i.i92.i, ptr %m_ref_count.i.i.i.i91.i, align 4 - %cmp.i.i.i93.i = icmp eq i32 %dec.i.i.i.i92.i, 0 - br i1 %cmp.i.i.i93.i, label %if.then2.i.i.i94.i, label %invoke.cont46.i - -if.then2.i.i.i94.i: ; preds = %if.then.i.i.i89.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %86, ptr noundef nonnull %85) - to label %invoke.cont46.i unwind label %lpad.i - -invoke.cont46.i: ; preds = %if.then2.i.i.i94.i, %if.then.i.i.i89.i, %invoke.cont43.i - store ptr null, ptr %m_r.i, align 8 - %88 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val5.i = load ptr, ptr %88, align 8 - %cmp.i.i96.i = icmp eq ptr %this.val5.i, null - br i1 %cmp.i.i96.i, label %if.then.i.i.i99.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %invoke.cont46.i - %arrayidx.i.i97.i = getelementptr inbounds i32, ptr %this.val5.i, i64 -1 - %89 = load i32, ptr %arrayidx.i.i97.i, align 4 - %cmp3.i.i.i = icmp eq i32 %89, 0 - br i1 %cmp3.i.i.i, label %if.then.i.i.i99.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - %90 = add i32 %89, -1 - %91 = zext i32 %90 to i64 - %m_new_child.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val5.i, i64 %91, i32 1 - %bf.load.i.i = load i32, ptr %m_new_child.i.i, align 8 - %bf.set.i.i = or i32 %bf.load.i.i, 2 - store i32 %bf.set.i.i, ptr %m_new_child.i.i, align 8 - br label %if.then.i.i.i99.i - -if.then.i.i.i99.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %invoke.cont46.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %92 = load i32, ptr %m_ref_count.i.i.i, align 4 - %dec.i.i.i.i102.i = add i32 %92, -1 - store i32 %dec.i.i.i.i102.i, ptr %m_ref_count.i.i.i, align 4 - %cmp.i.i.i103.i = icmp eq i32 %dec.i.i.i.i102.i, 0 - br i1 %cmp.i.i.i103.i, label %if.then2.i.i.i104.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb1EEEbP3app.exit - -if.then2.i.i.i104.i: ; preds = %if.then.i.i.i99.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val4.i, ptr noundef nonnull %t) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb1EEEbP3app.exit unwind label %terminate.lpad.i.i - -terminate.lpad.i.i: ; preds = %if.then2.i.i.i104.i - %93 = landingpad { ptr, i32 } - catch ptr null - %94 = extractvalue { ptr, i32 } %93, 0 - tail call void @__clang_call_terminate(ptr %94) #15 - unreachable + br i1 %cmp34, label %if.then35, label %if.end71 -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb1EEEbP3app.exit: ; preds = %if.then.i.i.i99.i, %if.then2.i.i.i104.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %t.i) +if.then35: ; preds = %sw.bb + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb1EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %t) br label %return if.end71: ; preds = %sw.bb %cmp72.not = icmp eq i32 %max_depth, 3 %dec = shl i32 %max_depth, 4 - %95 = add i32 %dec, 48 - %96 = getelementptr inbounds i8, ptr %this, i64 40 + %41 = add i32 %dec, 48 + %42 = getelementptr inbounds i8, ptr %this, i64 40 %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %97 = load ptr, ptr %m_nodes.i.i.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %97, null + %43 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i.i = icmp eq ptr %43, null br i1 %cmp.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %if.end71 - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %97, i64 -1 - %98 = load i32, ptr %arrayidx.i.i.i.i, align 4 + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %43, i64 -1 + %44 = load i32, ptr %arrayidx.i.i.i.i, align 4 br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i: ; preds = %if.end.i.i.i.i, %if.end71 - %retval.0.i.i.i.i = phi i32 [ %98, %if.end.i.i.i.i ], [ 0, %if.end71 ] - %99 = load ptr, ptr %96, align 8 - %cmp.i.i.i207 = icmp eq ptr %99, null - br i1 %cmp.i.i.i207, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %retval.0.i.i.i.i = phi i32 [ %44, %if.end.i.i.i.i ], [ 0, %if.end71 ] + %45 = load ptr, ptr %42, align 8 + %cmp.i.i.i182 = icmp eq ptr %45, null + br i1 %cmp.i.i.i182, label %if.then.i.i.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - %arrayidx.i.i.i208 = getelementptr inbounds i32, ptr %99, i64 -1 - %100 = load i32, ptr %arrayidx.i.i.i208, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %99, i64 -2 - %101 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %100, %101 + %arrayidx.i.i.i183 = getelementptr inbounds i32, ptr %45, i64 -1 + %46 = load i32, ptr %arrayidx.i.i.i183, align 4 + %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %45, i64 -2 + %47 = load i32, ptr %arrayidx4.i.i.i, align 4 + %cmp5.i.i.i = icmp eq i32 %46, %47 br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %96) - %.pre.i.i.i = load ptr, ptr %96, align 8 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %42) + %.pre.i.i.i = load ptr, ptr %42, align 8 %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit _ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit: ; preds = %lor.lhs.false.i.i.i, %if.then.i.i.i - %102 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %100, %lor.lhs.false.i.i.i ] - %103 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %99, %lor.lhs.false.i.i.i ] - %104 = and i32 %95, 48 - %bf.value10.masked.i.i.i = select i1 %cmp72.not, i32 48, i32 %104 + %48 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %46, %lor.lhs.false.i.i.i ] + %49 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %45, %lor.lhs.false.i.i.i ] + %50 = and i32 %41, 48 + %bf.value10.masked.i.i.i = select i1 %cmp72.not, i32 48, i32 %50 %bf.clear15.i.i.i = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i - %idx.ext.i.i.i = zext i32 %102 to i64 - %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %103, i64 %idx.ext.i.i.i + %idx.ext.i.i.i = zext i32 %48 to i64 + %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %49, i64 %idx.ext.i.i.i store ptr %t, ptr %add.ptr.i.i.i, align 8 %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 8 store i32 %bf.clear15.i.i.i, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i, align 8 %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 12 store i32 %retval.0.i.i.i.i, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i, align 4 - %105 = load ptr, ptr %96, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %105, i64 -1 - %106 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %106, 1 + %51 = load ptr, ptr %42, align 8 + %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %51, i64 -1 + %52 = load i32, ptr %arrayidx10.i.i.i, align 4 + %inc.i.i.i = add i32 %52, 1 store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 br label %return @@ -18232,57 +18230,57 @@ sw.bb76: ; preds = %if.end30 sw.bb78: ; preds = %if.end30 %cmp79.not = icmp eq i32 %max_depth, 3 %dec81 = shl i32 %max_depth, 4 - %107 = add i32 %dec81, 48 - %108 = getelementptr inbounds i8, ptr %this, i64 40 - %m_nodes.i.i.i209 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %109 = load ptr, ptr %m_nodes.i.i.i209, align 8 - %cmp.i.i.i.i210 = icmp eq ptr %109, null - br i1 %cmp.i.i.i.i210, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213, label %if.end.i.i.i.i211 - -if.end.i.i.i.i211: ; preds = %sw.bb78 - %arrayidx.i.i.i.i212 = getelementptr inbounds i32, ptr %109, i64 -1 - %110 = load i32, ptr %arrayidx.i.i.i.i212, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213: ; preds = %if.end.i.i.i.i211, %sw.bb78 - %retval.0.i.i.i.i214 = phi i32 [ %110, %if.end.i.i.i.i211 ], [ 0, %sw.bb78 ] - %111 = load ptr, ptr %108, align 8 - %cmp.i.i.i215 = icmp eq ptr %111, null - br i1 %cmp.i.i.i215, label %if.then.i.i.i230, label %lor.lhs.false.i.i.i216 - -lor.lhs.false.i.i.i216: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - %arrayidx.i.i.i217 = getelementptr inbounds i32, ptr %111, i64 -1 - %112 = load i32, ptr %arrayidx.i.i.i217, align 4 - %arrayidx4.i.i.i218 = getelementptr inbounds i32, ptr %111, i64 -2 - %113 = load i32, ptr %arrayidx4.i.i.i218, align 4 - %cmp5.i.i.i219 = icmp eq i32 %112, %113 - br i1 %cmp5.i.i.i219, label %if.then.i.i.i230, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit234 - -if.then.i.i.i230: ; preds = %lor.lhs.false.i.i.i216, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %108) - %.pre.i.i.i231 = load ptr, ptr %108, align 8 - %arrayidx8.phi.trans.insert.i.i.i232 = getelementptr inbounds i32, ptr %.pre.i.i.i231, i64 -1 - %.pre1.i.i.i233 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i232, align 4 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit234 - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit234: ; preds = %lor.lhs.false.i.i.i216, %if.then.i.i.i230 - %114 = phi i32 [ %.pre1.i.i.i233, %if.then.i.i.i230 ], [ %112, %lor.lhs.false.i.i.i216 ] - %115 = phi ptr [ %.pre.i.i.i231, %if.then.i.i.i230 ], [ %111, %lor.lhs.false.i.i.i216 ] - %116 = and i32 %107, 48 - %bf.value10.masked.i.i.i222 = select i1 %cmp79.not, i32 48, i32 %116 - %bf.clear15.i.i.i223 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i222 - %idx.ext.i.i.i224 = zext i32 %114 to i64 - %add.ptr.i.i.i225 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %115, i64 %idx.ext.i.i.i224 - store ptr %t, ptr %add.ptr.i.i.i225, align 8 - %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i226 = getelementptr inbounds i8, ptr %add.ptr.i.i.i225, i64 8 - store i32 %bf.clear15.i.i.i223, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i226, align 8 - %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i227 = getelementptr inbounds i8, ptr %add.ptr.i.i.i225, i64 12 - store i32 %retval.0.i.i.i.i214, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i227, align 4 - %117 = load ptr, ptr %108, align 8 - %arrayidx10.i.i.i228 = getelementptr inbounds i32, ptr %117, i64 -1 - %118 = load i32, ptr %arrayidx10.i.i.i228, align 4 - %inc.i.i.i229 = add i32 %118, 1 - store i32 %inc.i.i.i229, ptr %arrayidx10.i.i.i228, align 4 + %53 = add i32 %dec81, 48 + %54 = getelementptr inbounds i8, ptr %this, i64 40 + %m_nodes.i.i.i184 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %55 = load ptr, ptr %m_nodes.i.i.i184, align 8 + %cmp.i.i.i.i185 = icmp eq ptr %55, null + br i1 %cmp.i.i.i.i185, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188, label %if.end.i.i.i.i186 + +if.end.i.i.i.i186: ; preds = %sw.bb78 + %arrayidx.i.i.i.i187 = getelementptr inbounds i32, ptr %55, i64 -1 + %56 = load i32, ptr %arrayidx.i.i.i.i187, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188: ; preds = %if.end.i.i.i.i186, %sw.bb78 + %retval.0.i.i.i.i189 = phi i32 [ %56, %if.end.i.i.i.i186 ], [ 0, %sw.bb78 ] + %57 = load ptr, ptr %54, align 8 + %cmp.i.i.i190 = icmp eq ptr %57, null + br i1 %cmp.i.i.i190, label %if.then.i.i.i205, label %lor.lhs.false.i.i.i191 + +lor.lhs.false.i.i.i191: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + %arrayidx.i.i.i192 = getelementptr inbounds i32, ptr %57, i64 -1 + %58 = load i32, ptr %arrayidx.i.i.i192, align 4 + %arrayidx4.i.i.i193 = getelementptr inbounds i32, ptr %57, i64 -2 + %59 = load i32, ptr %arrayidx4.i.i.i193, align 4 + %cmp5.i.i.i194 = icmp eq i32 %58, %59 + br i1 %cmp5.i.i.i194, label %if.then.i.i.i205, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit209 + +if.then.i.i.i205: ; preds = %lor.lhs.false.i.i.i191, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %54) + %.pre.i.i.i206 = load ptr, ptr %54, align 8 + %arrayidx8.phi.trans.insert.i.i.i207 = getelementptr inbounds i32, ptr %.pre.i.i.i206, i64 -1 + %.pre1.i.i.i208 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i207, align 4 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit209 + +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit209: ; preds = %lor.lhs.false.i.i.i191, %if.then.i.i.i205 + %60 = phi i32 [ %.pre1.i.i.i208, %if.then.i.i.i205 ], [ %58, %lor.lhs.false.i.i.i191 ] + %61 = phi ptr [ %.pre.i.i.i206, %if.then.i.i.i205 ], [ %57, %lor.lhs.false.i.i.i191 ] + %62 = and i32 %53, 48 + %bf.value10.masked.i.i.i197 = select i1 %cmp79.not, i32 48, i32 %62 + %bf.clear15.i.i.i198 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i197 + %idx.ext.i.i.i199 = zext i32 %60 to i64 + %add.ptr.i.i.i200 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %61, i64 %idx.ext.i.i.i199 + store ptr %t, ptr %add.ptr.i.i.i200, align 8 + %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i201 = getelementptr inbounds i8, ptr %add.ptr.i.i.i200, i64 8 + store i32 %bf.clear15.i.i.i198, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i201, align 8 + %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i202 = getelementptr inbounds i8, ptr %add.ptr.i.i.i200, i64 12 + store i32 %retval.0.i.i.i.i189, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i202, align 4 + %63 = load ptr, ptr %54, align 8 + %arrayidx10.i.i.i203 = getelementptr inbounds i32, ptr %63, i64 -1 + %64 = load i32, ptr %arrayidx10.i.i.i203, align 4 + %inc.i.i.i204 = add i32 %64, 1 + store i32 %inc.i.i.i204, ptr %arrayidx10.i.i.i203, align 4 br label %return sw.default: ; preds = %if.end30 @@ -18290,8 +18288,8 @@ sw.default: ; preds = %if.end30 tail call void @exit(i32 noundef 114) #15 unreachable -return: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb1EEEbP3app.exit, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit234, %sw.bb76, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 ], [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit234 ], [ true, %sw.bb76 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit ], [ true, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb1EEEbP3app.exit ] +return: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit209, %sw.bb76, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit, %if.then35, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 ], [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit209 ], [ true, %sw.bb76 ], [ true, %if.then35 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit ] ret i1 %retval.0 } @@ -18344,22 +18342,348 @@ _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_. declare noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976), ptr noundef) local_unnamed_addr #0 -declare void @_ZN13rewriter_core5resetEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #0 +declare void @_ZN13rewriter_core5resetEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #0 + +; Function Attrs: mustprogress nounwind uwtable +define linkonce_odr hidden void @_ZN18rewriter_exceptionD0Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #4 comdat align 2 { +entry: + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %this, align 8 + %m_msg.i.i = getelementptr inbounds %class.default_exception, ptr %this, i64 0, i32 1 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i) #14 + tail call void @_ZdlPv(ptr noundef nonnull %this) #16 + ret void +} + +declare noundef ptr @_ZNK17default_exception3msgEv(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0 + +declare noundef i32 @_ZNK12z3_exception10error_codeEv(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 + +; Function Attrs: mustprogress uwtable +define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb1EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +entry: + %t = alloca %class.obj_ref.93, align 8 + %0 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val3 = load ptr, ptr %0, align 8 + store ptr %t0, ptr %t, align 8 + %m_manager.i = getelementptr inbounds %class.obj_ref.93, ptr %t, i64 0, i32 1 + store ptr %this.val3, ptr %m_manager.i, align 8 + %tobool.not.i.i = icmp eq ptr %t0, null + br i1 %tobool.not.i.i, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %entry + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %1 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i = add i32 %1, 1 + store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + +_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit: ; preds = %entry, %_ZN11ast_manager7inc_refEP3ast.exit.i.i + %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + %2 = load ptr, ptr %m_cfg, align 8 + %m_decl.i = getelementptr inbounds %class.app, ptr %t0, i64 0, i32 1 + %3 = load ptr, ptr %m_decl.i, align 8 + %m_r = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_pr = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %call5 = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %2, ptr noundef %3, i32 noundef 0, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(16) %m_r) + to label %invoke.cont4 unwind label %lpad + +invoke.cont4: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + %switch = icmp eq i32 %call5, 5 + br i1 %switch, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %sw.bb17 + +lpad: ; preds = %if.then2.i.i.i93, %if.then2.i.i.i, %if.then.i.i79, %if.then.i.i57, %if.then.i.i36, %if.then.i.i15, %if.then.i.i, %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit, %if.else + %4 = landingpad { ptr, i32 } + cleanup + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t) #14 + resume { ptr, i32 } %4 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %invoke.cont4 + %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %5 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %5, 1 + store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 + %m_nodes.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %6 = load ptr, ptr %m_nodes.i, align 8 + %cmp.i.i = icmp eq ptr %6, null + br i1 %cmp.i.i, label %if.then.i.i, label %lor.lhs.false.i.i + +lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx.i.i, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %6, i64 -2 + %8 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %7, %8 + br i1 %cmp5.i.i, label %if.then.i.i, label %invoke.cont8 + +if.then.i.i: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i) + to label %.noexc unwind label %lpad + +.noexc: ; preds = %if.then.i.i + %.pre.i.i = load ptr, ptr %m_nodes.i, align 8 + %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i, i64 -1 + %.pre1.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 + br label %invoke.cont8 + +invoke.cont8: ; preds = %.noexc, %lor.lhs.false.i.i + %9 = phi i32 [ %.pre1.i.i, %.noexc ], [ %7, %lor.lhs.false.i.i ] + %10 = phi ptr [ %.pre.i.i, %.noexc ], [ %6, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %9 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %10, i64 %idx.ext.i.i + store ptr %t0, ptr %add.ptr.i.i, align 8 + %11 = load ptr, ptr %m_nodes.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %11, i64 -1 + %12 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %12, 1 + store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 + %m_nodes.i5 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %13 = load ptr, ptr %m_nodes.i5, align 8 + %cmp.i.i6 = icmp eq ptr %13, null + br i1 %cmp.i.i6, label %if.then.i.i15, label %lor.lhs.false.i.i7 + +lor.lhs.false.i.i7: ; preds = %invoke.cont8 + %arrayidx.i.i8 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx.i.i8, align 4 + %arrayidx4.i.i9 = getelementptr inbounds i32, ptr %13, i64 -2 + %15 = load i32, ptr %arrayidx4.i.i9, align 4 + %cmp5.i.i10 = icmp eq i32 %14, %15 + br i1 %cmp5.i.i10, label %if.then.i.i15, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +if.then.i.i15: ; preds = %lor.lhs.false.i.i7, %invoke.cont8 + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i5) + to label %.noexc19 unwind label %lpad + +.noexc19: ; preds = %if.then.i.i15 + %.pre.i.i16 = load ptr, ptr %m_nodes.i5, align 8 + %arrayidx8.phi.trans.insert.i.i17 = getelementptr inbounds i32, ptr %.pre.i.i16, i64 -1 + %.pre1.i.i18 = load i32, ptr %arrayidx8.phi.trans.insert.i.i17, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit: ; preds = %lor.lhs.false.i.i7, %.noexc19 + %16 = phi i32 [ %.pre1.i.i18, %.noexc19 ], [ %14, %lor.lhs.false.i.i7 ] + %17 = phi ptr [ %.pre.i.i16, %.noexc19 ], [ %13, %lor.lhs.false.i.i7 ] + %idx.ext.i.i11 = zext i32 %16 to i64 + %add.ptr.i.i12 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i11 + store ptr null, ptr %add.ptr.i.i12, align 8 + %18 = load ptr, ptr %m_nodes.i5, align 8 + %arrayidx10.i.i13 = getelementptr inbounds i32, ptr %18, i64 -1 + %19 = load i32, ptr %arrayidx10.i.i13, align 4 + %inc.i.i14 = add i32 %19, 1 + store i32 %inc.i.i14, ptr %arrayidx10.i.i13, align 4 + br label %if.then.i.i.i98 + +sw.bb17: ; preds = %invoke.cont4 + %20 = load ptr, ptr %m_r, align 8 + %tobool.not.i.i.i.i21 = icmp eq ptr %20, null + br i1 %tobool.not.i.i.i.i21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25, label %if.then.i.i.i.i22 + +if.then.i.i.i.i22: ; preds = %sw.bb17 + %m_ref_count.i.i.i.i.i23 = getelementptr inbounds %class.ast, ptr %20, i64 0, i32 2 + %21 = load i32, ptr %m_ref_count.i.i.i.i.i23, align 4 + %inc.i.i.i.i.i24 = add i32 %21, 1 + store i32 %inc.i.i.i.i.i24, ptr %m_ref_count.i.i.i.i.i23, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25: ; preds = %if.then.i.i.i.i22, %sw.bb17 + %m_nodes.i26 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %22 = load ptr, ptr %m_nodes.i26, align 8 + %cmp.i.i27 = icmp eq ptr %22, null + br i1 %cmp.i.i27, label %if.then.i.i36, label %lor.lhs.false.i.i28 + +lor.lhs.false.i.i28: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25 + %arrayidx.i.i29 = getelementptr inbounds i32, ptr %22, i64 -1 + %23 = load i32, ptr %arrayidx.i.i29, align 4 + %arrayidx4.i.i30 = getelementptr inbounds i32, ptr %22, i64 -2 + %24 = load i32, ptr %arrayidx4.i.i30, align 4 + %cmp5.i.i31 = icmp eq i32 %23, %24 + br i1 %cmp5.i.i31, label %if.then.i.i36, label %invoke.cont21 + +if.then.i.i36: ; preds = %lor.lhs.false.i.i28, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25 + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i26) + to label %.noexc40 unwind label %lpad + +.noexc40: ; preds = %if.then.i.i36 + %.pre.i.i37 = load ptr, ptr %m_nodes.i26, align 8 + %arrayidx8.phi.trans.insert.i.i38 = getelementptr inbounds i32, ptr %.pre.i.i37, i64 -1 + %.pre1.i.i39 = load i32, ptr %arrayidx8.phi.trans.insert.i.i38, align 4 + br label %invoke.cont21 + +invoke.cont21: ; preds = %.noexc40, %lor.lhs.false.i.i28 + %25 = phi i32 [ %.pre1.i.i39, %.noexc40 ], [ %23, %lor.lhs.false.i.i28 ] + %26 = phi ptr [ %.pre.i.i37, %.noexc40 ], [ %22, %lor.lhs.false.i.i28 ] + %idx.ext.i.i32 = zext i32 %25 to i64 + %add.ptr.i.i33 = getelementptr inbounds ptr, ptr %26, i64 %idx.ext.i.i32 + store ptr %20, ptr %add.ptr.i.i33, align 8 + %27 = load ptr, ptr %m_nodes.i26, align 8 + %arrayidx10.i.i34 = getelementptr inbounds i32, ptr %27, i64 -1 + %28 = load i32, ptr %arrayidx10.i.i34, align 4 + %inc.i.i35 = add i32 %28, 1 + store i32 %inc.i.i35, ptr %arrayidx10.i.i34, align 4 + %29 = load ptr, ptr %m_pr, align 8 + %cmp.i.not = icmp eq ptr %29, null + br i1 %cmp.i.not, label %if.else, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %invoke.cont21 + %m_ref_count.i.i.i.i.i45 = getelementptr inbounds %class.ast, ptr %29, i64 0, i32 2 + %30 = load i32, ptr %m_ref_count.i.i.i.i.i45, align 4 + %inc.i.i.i.i.i46 = add i32 %30, 1 + store i32 %inc.i.i.i.i.i46, ptr %m_ref_count.i.i.i.i.i45, align 4 + %m_nodes.i47 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %31 = load ptr, ptr %m_nodes.i47, align 8 + %cmp.i.i48 = icmp eq ptr %31, null + br i1 %cmp.i.i48, label %if.then.i.i57, label %lor.lhs.false.i.i49 + +lor.lhs.false.i.i49: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i50 = getelementptr inbounds i32, ptr %31, i64 -1 + %32 = load i32, ptr %arrayidx.i.i50, align 4 + %arrayidx4.i.i51 = getelementptr inbounds i32, ptr %31, i64 -2 + %33 = load i32, ptr %arrayidx4.i.i51, align 4 + %cmp5.i.i52 = icmp eq i32 %32, %33 + br i1 %cmp5.i.i52, label %if.then.i.i57, label %if.end41 + +if.then.i.i57: ; preds = %lor.lhs.false.i.i49, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i47) + to label %if.end41.sink.split unwind label %lpad + +if.else: ; preds = %invoke.cont21 + %this.val = load ptr, ptr %0, align 8 + %34 = load ptr, ptr %m_r, align 8 + %call38 = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val, ptr noundef nonnull %t0, ptr noundef %34) + to label %invoke.cont37 unwind label %lpad + +invoke.cont37: ; preds = %if.else + %tobool.not.i.i.i.i64 = icmp eq ptr %call38, null + br i1 %tobool.not.i.i.i.i64, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68, label %if.then.i.i.i.i65 + +if.then.i.i.i.i65: ; preds = %invoke.cont37 + %m_ref_count.i.i.i.i.i66 = getelementptr inbounds %class.ast, ptr %call38, i64 0, i32 2 + %35 = load i32, ptr %m_ref_count.i.i.i.i.i66, align 4 + %inc.i.i.i.i.i67 = add i32 %35, 1 + store i32 %inc.i.i.i.i.i67, ptr %m_ref_count.i.i.i.i.i66, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68: ; preds = %if.then.i.i.i.i65, %invoke.cont37 + %m_nodes.i69 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %36 = load ptr, ptr %m_nodes.i69, align 8 + %cmp.i.i70 = icmp eq ptr %36, null + br i1 %cmp.i.i70, label %if.then.i.i79, label %lor.lhs.false.i.i71 + +lor.lhs.false.i.i71: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68 + %arrayidx.i.i72 = getelementptr inbounds i32, ptr %36, i64 -1 + %37 = load i32, ptr %arrayidx.i.i72, align 4 + %arrayidx4.i.i73 = getelementptr inbounds i32, ptr %36, i64 -2 + %38 = load i32, ptr %arrayidx4.i.i73, align 4 + %cmp5.i.i74 = icmp eq i32 %37, %38 + br i1 %cmp5.i.i74, label %if.then.i.i79, label %if.end41 + +if.then.i.i79: ; preds = %lor.lhs.false.i.i71, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68 + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i69) + to label %if.end41.sink.split unwind label %lpad + +if.end41.sink.split: ; preds = %if.then.i.i79, %if.then.i.i57 + %m_nodes.i47.sink = phi ptr [ %m_nodes.i47, %if.then.i.i57 ], [ %m_nodes.i69, %if.then.i.i79 ] + %call38.sink.ph = phi ptr [ %29, %if.then.i.i57 ], [ %call38, %if.then.i.i79 ] + %.pre.i.i58 = load ptr, ptr %m_nodes.i47.sink, align 8 + %arrayidx8.phi.trans.insert.i.i81 = getelementptr inbounds i32, ptr %.pre.i.i58, i64 -1 + %.pre1.i.i82 = load i32, ptr %arrayidx8.phi.trans.insert.i.i81, align 4 + br label %if.end41 + +if.end41: ; preds = %if.end41.sink.split, %lor.lhs.false.i.i71, %lor.lhs.false.i.i49 + %.sink105 = phi i32 [ %32, %lor.lhs.false.i.i49 ], [ %37, %lor.lhs.false.i.i71 ], [ %.pre1.i.i82, %if.end41.sink.split ] + %.sink = phi ptr [ %31, %lor.lhs.false.i.i49 ], [ %36, %lor.lhs.false.i.i71 ], [ %.pre.i.i58, %if.end41.sink.split ] + %call38.sink = phi ptr [ %29, %lor.lhs.false.i.i49 ], [ %call38, %lor.lhs.false.i.i71 ], [ %call38.sink.ph, %if.end41.sink.split ] + %m_nodes.i69.sink = phi ptr [ %m_nodes.i47, %lor.lhs.false.i.i49 ], [ %m_nodes.i69, %lor.lhs.false.i.i71 ], [ %m_nodes.i47.sink, %if.end41.sink.split ] + %idx.ext.i.i75 = zext i32 %.sink105 to i64 + %add.ptr.i.i76 = getelementptr inbounds ptr, ptr %.sink, i64 %idx.ext.i.i75 + store ptr %call38.sink, ptr %add.ptr.i.i76, align 8 + %39 = load ptr, ptr %m_nodes.i69.sink, align 8 + %arrayidx10.i.i77 = getelementptr inbounds i32, ptr %39, i64 -1 + %40 = load i32, ptr %arrayidx10.i.i77, align 4 + %inc.i.i78 = add i32 %40, 1 + store i32 %inc.i.i78, ptr %arrayidx10.i.i77, align 4 + %41 = load ptr, ptr %m_pr, align 8 + %tobool.not.i3.i = icmp eq ptr %41, null + br i1 %tobool.not.i3.i, label %invoke.cont43, label %if.then.i.i.i + +if.then.i.i.i: ; preds = %if.end41 + %m_manager.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %42 = load ptr, ptr %m_manager.i.i, align 8 + %m_ref_count.i.i.i.i85 = getelementptr inbounds %class.ast, ptr %41, i64 0, i32 2 + %43 = load i32, ptr %m_ref_count.i.i.i.i85, align 4 + %dec.i.i.i.i = add i32 %43, -1 + store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i85, align 4 + %cmp.i.i.i = icmp eq i32 %dec.i.i.i.i, 0 + br i1 %cmp.i.i.i, label %if.then2.i.i.i, label %invoke.cont43 + +if.then2.i.i.i: ; preds = %if.then.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %42, ptr noundef nonnull %41) + to label %invoke.cont43 unwind label %lpad + +invoke.cont43: ; preds = %if.then.i.i.i, %if.end41, %if.then2.i.i.i + store ptr null, ptr %m_pr, align 8 + %44 = load ptr, ptr %m_r, align 8 + %tobool.not.i3.i87 = icmp eq ptr %44, null + br i1 %tobool.not.i3.i87, label %invoke.cont46, label %if.then.i.i.i88 + +if.then.i.i.i88: ; preds = %invoke.cont43 + %m_manager.i.i89 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %45 = load ptr, ptr %m_manager.i.i89, align 8 + %m_ref_count.i.i.i.i90 = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 + %46 = load i32, ptr %m_ref_count.i.i.i.i90, align 4 + %dec.i.i.i.i91 = add i32 %46, -1 + store i32 %dec.i.i.i.i91, ptr %m_ref_count.i.i.i.i90, align 4 + %cmp.i.i.i92 = icmp eq i32 %dec.i.i.i.i91, 0 + br i1 %cmp.i.i.i92, label %if.then2.i.i.i93, label %invoke.cont46 + +if.then2.i.i.i93: ; preds = %if.then.i.i.i88 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %45, ptr noundef nonnull %44) + to label %invoke.cont46 unwind label %lpad + +invoke.cont46: ; preds = %if.then.i.i.i88, %invoke.cont43, %if.then2.i.i.i93 + store ptr null, ptr %m_r, align 8 + %47 = getelementptr inbounds i8, ptr %this, i64 40 + %this.val4 = load ptr, ptr %47, align 8 + %cmp.i.i95 = icmp eq ptr %this.val4, null + br i1 %cmp.i.i95, label %if.then.i.i.i98, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i: ; preds = %invoke.cont46 + %arrayidx.i.i96 = getelementptr inbounds i32, ptr %this.val4, i64 -1 + %48 = load i32, ptr %arrayidx.i.i96, align 4 + %cmp3.i.i = icmp eq i32 %48, 0 + br i1 %cmp3.i.i, label %if.then.i.i.i98, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + %49 = add i32 %48, -1 + %50 = zext i32 %49 to i64 + %m_new_child.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val4, i64 %50, i32 1 + %bf.load.i = load i32, ptr %m_new_child.i, align 8 + %bf.set.i = or i32 %bf.load.i, 2 + store i32 %bf.set.i, ptr %m_new_child.i, align 8 + br label %if.then.i.i.i98 + +if.then.i.i.i98: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit, %invoke.cont46, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + %m_ref_count.i.i.i.i100 = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %51 = load i32, ptr %m_ref_count.i.i.i.i100, align 4 + %dec.i.i.i.i101 = add i32 %51, -1 + store i32 %dec.i.i.i.i101, ptr %m_ref_count.i.i.i.i100, align 4 + %cmp.i.i.i102 = icmp eq i32 %dec.i.i.i.i101, 0 + br i1 %cmp.i.i.i102, label %if.then2.i.i.i103, label %_ZN7obj_refI3app11ast_managerED2Ev.exit + +if.then2.i.i.i103: ; preds = %if.then.i.i.i98 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val3, ptr noundef nonnull %t0) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit unwind label %terminate.lpad.i + +terminate.lpad.i: ; preds = %if.then2.i.i.i103 + %52 = landingpad { ptr, i32 } + catch ptr null + %53 = extractvalue { ptr, i32 } %52, 0 + tail call void @__clang_call_terminate(ptr %53) #15 + unreachable -; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr hidden void @_ZN18rewriter_exceptionD0Ev(ptr noundef nonnull align 8 dereferenceable(40) %this) unnamed_addr #4 comdat align 2 { -entry: - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %this, align 8 - %m_msg.i.i = getelementptr inbounds %class.default_exception, ptr %this, i64 0, i32 1 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i) #14 - tail call void @_ZdlPv(ptr noundef nonnull %this) #16 +_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %if.then.i.i.i98, %if.then2.i.i.i103 ret void } -declare noundef ptr @_ZNK17default_exception3msgEv(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0 - -declare noundef i32 @_ZNK12z3_exception10error_codeEv(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 - ; Function Attrs: mustprogress uwtable define linkonce_odr hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef nonnull align 8 dereferenceable(16) %n) local_unnamed_addr #3 comdat align 2 { entry: @@ -19390,63 +19714,61 @@ unreachable: ; preds = %invoke.cont ; Function Attrs: mustprogress uwtable define internal fastcc noundef zeroext i1 @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef %max_depth) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { if.end: - %t.i = alloca %class.obj_ref.93, align 8 - %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 %cmp = icmp eq i32 %max_depth, 0 br i1 %cmp, label %if.then4, label %if.end7 if.then4: ; preds = %if.end - %tobool.not.i.i.i.i37 = icmp eq ptr %t, null - br i1 %tobool.not.i.i.i.i37, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41, label %if.then.i.i.i.i38 - -if.then.i.i.i.i38: ; preds = %if.then4 - %m_ref_count.i.i.i.i.i39 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %0 = load i32, ptr %m_ref_count.i.i.i.i.i39, align 4 - %inc.i.i.i.i.i40 = add i32 %0, 1 - store i32 %inc.i.i.i.i.i40, ptr %m_ref_count.i.i.i.i.i39, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41: ; preds = %if.then.i.i.i.i38, %if.then4 - %m_nodes.i42 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1 = load ptr, ptr %m_nodes.i42, align 8 - %cmp.i.i43 = icmp eq ptr %1, null - br i1 %cmp.i.i43, label %if.then.i.i52, label %lor.lhs.false.i.i44 - -lor.lhs.false.i.i44: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - %arrayidx.i.i45 = getelementptr inbounds i32, ptr %1, i64 -1 - %2 = load i32, ptr %arrayidx.i.i45, align 4 - %arrayidx4.i.i46 = getelementptr inbounds i32, ptr %1, i64 -2 - %3 = load i32, ptr %arrayidx4.i.i46, align 4 - %cmp5.i.i47 = icmp eq i32 %2, %3 - br i1 %cmp5.i.i47, label %if.then.i.i52, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - -if.then.i.i52: ; preds = %lor.lhs.false.i.i44, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i42) - %.pre.i.i53 = load ptr, ptr %m_nodes.i42, align 8 - %arrayidx8.phi.trans.insert.i.i54 = getelementptr inbounds i32, ptr %.pre.i.i53, i64 -1 - %.pre1.i.i55 = load i32, ptr %arrayidx8.phi.trans.insert.i.i54, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56: ; preds = %lor.lhs.false.i.i44, %if.then.i.i52 - %4 = phi i32 [ %.pre1.i.i55, %if.then.i.i52 ], [ %2, %lor.lhs.false.i.i44 ] - %5 = phi ptr [ %.pre.i.i53, %if.then.i.i52 ], [ %1, %lor.lhs.false.i.i44 ] - %idx.ext.i.i48 = zext i32 %4 to i64 - %add.ptr.i.i49 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i48 - store ptr %t, ptr %add.ptr.i.i49, align 8 - %6 = load ptr, ptr %m_nodes.i42, align 8 - %arrayidx10.i.i50 = getelementptr inbounds i32, ptr %6, i64 -1 - %7 = load i32, ptr %arrayidx10.i.i50, align 4 - %inc.i.i51 = add i32 %7, 1 - store i32 %inc.i.i51, ptr %arrayidx10.i.i50, align 4 + %tobool.not.i.i.i.i33 = icmp eq ptr %t, null + br i1 %tobool.not.i.i.i.i33, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37, label %if.then.i.i.i.i34 + +if.then.i.i.i.i34: ; preds = %if.then4 + %m_ref_count.i.i.i.i.i35 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %0 = load i32, ptr %m_ref_count.i.i.i.i.i35, align 4 + %inc.i.i.i.i.i36 = add i32 %0, 1 + store i32 %inc.i.i.i.i.i36, ptr %m_ref_count.i.i.i.i.i35, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37: ; preds = %if.then.i.i.i.i34, %if.then4 + %m_nodes.i38 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1 = load ptr, ptr %m_nodes.i38, align 8 + %cmp.i.i39 = icmp eq ptr %1, null + br i1 %cmp.i.i39, label %if.then.i.i48, label %lor.lhs.false.i.i40 + +lor.lhs.false.i.i40: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + %arrayidx.i.i41 = getelementptr inbounds i32, ptr %1, i64 -1 + %2 = load i32, ptr %arrayidx.i.i41, align 4 + %arrayidx4.i.i42 = getelementptr inbounds i32, ptr %1, i64 -2 + %3 = load i32, ptr %arrayidx4.i.i42, align 4 + %cmp5.i.i43 = icmp eq i32 %2, %3 + br i1 %cmp5.i.i43, label %if.then.i.i48, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + +if.then.i.i48: ; preds = %lor.lhs.false.i.i40, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i38) + %.pre.i.i49 = load ptr, ptr %m_nodes.i38, align 8 + %arrayidx8.phi.trans.insert.i.i50 = getelementptr inbounds i32, ptr %.pre.i.i49, i64 -1 + %.pre1.i.i51 = load i32, ptr %arrayidx8.phi.trans.insert.i.i50, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52: ; preds = %lor.lhs.false.i.i40, %if.then.i.i48 + %4 = phi i32 [ %.pre1.i.i51, %if.then.i.i48 ], [ %2, %lor.lhs.false.i.i40 ] + %5 = phi ptr [ %.pre.i.i49, %if.then.i.i48 ], [ %1, %lor.lhs.false.i.i40 ] + %idx.ext.i.i44 = zext i32 %4 to i64 + %add.ptr.i.i45 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i44 + store ptr %t, ptr %add.ptr.i.i45, align 8 + %6 = load ptr, ptr %m_nodes.i38, align 8 + %arrayidx10.i.i46 = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx10.i.i46, align 4 + %inc.i.i47 = add i32 %7, 1 + store i32 %inc.i.i47, ptr %arrayidx10.i.i46, align 4 br label %return if.end7: ; preds = %if.end %8 = getelementptr inbounds i8, ptr %this, i64 120 - %this.val34 = load ptr, ptr %8, align 8 + %this.val30 = load ptr, ptr %8, align 8 %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 %9 = load i32, ptr %m_ref_count.i.i.i, align 4 %cmp.i9.i = icmp ult i32 %9, 2 - %cmp2.not.i.i = icmp eq ptr %this.val34, %t + %cmp2.not.i.i = icmp eq ptr %this.val30, %t %or.cond.i.i = select i1 %cmp.i9.i, i1 true, i1 %cmp2.not.i.i br i1 %or.cond.i.i, label %if.end21, label %land.rhs.i.i @@ -19470,72 +19792,72 @@ if.then9: ; preds = %land.rhs.i.i, %land %11 = load ptr, ptr %m_cache.i, align 8 %call.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %11, ptr noundef nonnull %t, i32 noundef 0) %tobool11.not = icmp eq ptr %call.i.i, null - br i1 %tobool11.not, label %if.end21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63: ; preds = %if.then9 - %m_ref_count.i.i.i.i.i61 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 - %12 = load i32, ptr %m_ref_count.i.i.i.i.i61, align 4 - %inc.i.i.i.i.i62 = add i32 %12, 1 - store i32 %inc.i.i.i.i.i62, ptr %m_ref_count.i.i.i.i.i61, align 4 - %m_nodes.i64 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %13 = load ptr, ptr %m_nodes.i64, align 8 - %cmp.i.i65 = icmp eq ptr %13, null - br i1 %cmp.i.i65, label %if.then.i.i74, label %lor.lhs.false.i.i66 - -lor.lhs.false.i.i66: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - %arrayidx.i.i67 = getelementptr inbounds i32, ptr %13, i64 -1 - %14 = load i32, ptr %arrayidx.i.i67, align 4 - %arrayidx4.i.i68 = getelementptr inbounds i32, ptr %13, i64 -2 - %15 = load i32, ptr %arrayidx4.i.i68, align 4 - %cmp5.i.i69 = icmp eq i32 %14, %15 - br i1 %cmp5.i.i69, label %if.then.i.i74, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - -if.then.i.i74: ; preds = %lor.lhs.false.i.i66, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i64) - %.pre.i.i75 = load ptr, ptr %m_nodes.i64, align 8 - %arrayidx8.phi.trans.insert.i.i76 = getelementptr inbounds i32, ptr %.pre.i.i75, i64 -1 - %.pre1.i.i77 = load i32, ptr %arrayidx8.phi.trans.insert.i.i76, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78: ; preds = %lor.lhs.false.i.i66, %if.then.i.i74 - %16 = phi i32 [ %.pre1.i.i77, %if.then.i.i74 ], [ %14, %lor.lhs.false.i.i66 ] - %17 = phi ptr [ %.pre.i.i75, %if.then.i.i74 ], [ %13, %lor.lhs.false.i.i66 ] - %idx.ext.i.i70 = zext i32 %16 to i64 - %add.ptr.i.i71 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i70 - store ptr %call.i.i, ptr %add.ptr.i.i71, align 8 - %18 = load ptr, ptr %m_nodes.i64, align 8 - %arrayidx10.i.i72 = getelementptr inbounds i32, ptr %18, i64 -1 - %19 = load i32, ptr %arrayidx10.i.i72, align 4 - %inc.i.i73 = add i32 %19, 1 - store i32 %inc.i.i73, ptr %arrayidx10.i.i72, align 4 + br i1 %tobool11.not, label %if.end21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59: ; preds = %if.then9 + %m_ref_count.i.i.i.i.i57 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 + %12 = load i32, ptr %m_ref_count.i.i.i.i.i57, align 4 + %inc.i.i.i.i.i58 = add i32 %12, 1 + store i32 %inc.i.i.i.i.i58, ptr %m_ref_count.i.i.i.i.i57, align 4 + %m_nodes.i60 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %13 = load ptr, ptr %m_nodes.i60, align 8 + %cmp.i.i61 = icmp eq ptr %13, null + br i1 %cmp.i.i61, label %if.then.i.i70, label %lor.lhs.false.i.i62 + +lor.lhs.false.i.i62: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + %arrayidx.i.i63 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx.i.i63, align 4 + %arrayidx4.i.i64 = getelementptr inbounds i32, ptr %13, i64 -2 + %15 = load i32, ptr %arrayidx4.i.i64, align 4 + %cmp5.i.i65 = icmp eq i32 %14, %15 + br i1 %cmp5.i.i65, label %if.then.i.i70, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + +if.then.i.i70: ; preds = %lor.lhs.false.i.i62, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i60) + %.pre.i.i71 = load ptr, ptr %m_nodes.i60, align 8 + %arrayidx8.phi.trans.insert.i.i72 = getelementptr inbounds i32, ptr %.pre.i.i71, i64 -1 + %.pre1.i.i73 = load i32, ptr %arrayidx8.phi.trans.insert.i.i72, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74: ; preds = %lor.lhs.false.i.i62, %if.then.i.i70 + %16 = phi i32 [ %.pre1.i.i73, %if.then.i.i70 ], [ %14, %lor.lhs.false.i.i62 ] + %17 = phi ptr [ %.pre.i.i71, %if.then.i.i70 ], [ %13, %lor.lhs.false.i.i62 ] + %idx.ext.i.i66 = zext i32 %16 to i64 + %add.ptr.i.i67 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i66 + store ptr %call.i.i, ptr %add.ptr.i.i67, align 8 + %18 = load ptr, ptr %m_nodes.i60, align 8 + %arrayidx10.i.i68 = getelementptr inbounds i32, ptr %18, i64 -1 + %19 = load i32, ptr %arrayidx10.i.i68, align 4 + %inc.i.i69 = add i32 %19, 1 + store i32 %inc.i.i69, ptr %arrayidx10.i.i68, align 4 %20 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val32 = load ptr, ptr %20, align 8 - %cmp.not.i79 = icmp eq ptr %call.i.i, %t - %cmp.i.i.i80 = icmp eq ptr %this.val32, null - %or.cond.i81 = select i1 %cmp.not.i79, i1 true, i1 %cmp.i.i.i80 - br i1 %or.cond.i81, label %return, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - %arrayidx.i.i.i83 = getelementptr inbounds i32, ptr %this.val32, i64 -1 - %21 = load i32, ptr %arrayidx.i.i.i83, align 4 - %cmp3.i.i.i84 = icmp eq i32 %21, 0 - br i1 %cmp3.i.i.i84, label %return, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 + %this.val = load ptr, ptr %20, align 8 + %cmp.not.i75 = icmp eq ptr %call.i.i, %t + %cmp.i.i.i76 = icmp eq ptr %this.val, null + %or.cond.i77 = select i1 %cmp.not.i75, i1 true, i1 %cmp.i.i.i76 + br i1 %or.cond.i77, label %return, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + %arrayidx.i.i.i79 = getelementptr inbounds i32, ptr %this.val, i64 -1 + %21 = load i32, ptr %arrayidx.i.i.i79, align 4 + %cmp3.i.i.i80 = icmp eq i32 %21, 0 + br i1 %cmp3.i.i.i80, label %return, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 %22 = add i32 %21, -1 %23 = zext i32 %22 to i64 - %m_new_child.i.i86 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val32, i64 %23, i32 1 - %bf.load.i.i87 = load i32, ptr %m_new_child.i.i86, align 8 - %bf.set.i.i88 = or i32 %bf.load.i.i87, 2 - store i32 %bf.set.i.i88, ptr %m_new_child.i.i86, align 8 + %m_new_child.i.i82 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val, i64 %23, i32 1 + %bf.load.i.i83 = load i32, ptr %m_new_child.i.i82, align 8 + %bf.set.i.i84 = or i32 %bf.load.i.i83, 2 + store i32 %bf.set.i.i84, ptr %m_new_child.i.i82, align 8 br label %return if.end21: ; preds = %land.rhs.i.i, %land.lhs.true4.i.i, %if.end7, %if.then9 %conv.i.i.i = phi i32 [ 1, %if.then9 ], [ 0, %if.end7 ], [ 0, %land.lhs.true4.i.i ], [ 0, %land.rhs.i.i ] %m_kind.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 1 %bf.load.i = load i32, ptr %m_kind.i, align 4 - %trunc166 = trunc i32 %bf.load.i to i16 - switch i16 %trunc166, label %sw.default [ + %trunc139 = trunc i32 %bf.load.i to i16 + switch i16 %trunc139, label %sw.default [ i16 0, label %sw.bb i16 1, label %sw.bb64 i16 2, label %sw.bb66 @@ -19545,237 +19867,65 @@ sw.bb: ; preds = %if.end21 %m_num_args.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 2 %24 = load i32, ptr %m_num_args.i, align 8 %cmp25 = icmp eq i32 %24, 0 - br i1 %cmp25, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i, label %if.end59 - -_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i: ; preds = %sw.bb - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %t.i) - %25 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val.i = load ptr, ptr %25, align 8 - store ptr %t, ptr %t.i, align 8 - %m_manager.i.i = getelementptr inbounds %class.obj_ref.93, ptr %t.i, i64 0, i32 1 - store ptr %this.val.i, ptr %m_manager.i.i, align 8 - %26 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i = add i32 %26, 1 - store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %27 = load ptr, ptr %m_cfg, align 8 - %m_decl.i.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 1 - %28 = load ptr, ptr %m_decl.i.i, align 8 - %m_r.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %call4.i = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %27, ptr noundef %28, i32 noundef 0, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i) - to label %invoke.cont.i unwind label %lpad.i - -invoke.cont.i: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i - %switch.i = icmp eq i32 %call4.i, 5 - br i1 %switch.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %sw.bb13.i - -lpad.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i20.i, %if.then.i.i.i187, %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i - %29 = landingpad { ptr, i32 } - cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t.i) #14 - resume { ptr, i32 } %29 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %invoke.cont.i - %30 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i.i = add i32 %30, 1 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %31 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %31, null - br i1 %cmp.i.i.i, label %if.then.i.i.i187, label %lor.lhs.false.i.i.i180 - -lor.lhs.false.i.i.i180: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %31, i64 -1 - %32 = load i32, ptr %arrayidx.i.i.i, align 4 - %arrayidx4.i.i.i181 = getelementptr inbounds i32, ptr %31, i64 -2 - %33 = load i32, ptr %arrayidx4.i.i.i181, align 4 - %cmp5.i.i.i182 = icmp eq i32 %32, %33 - br i1 %cmp5.i.i.i182, label %if.then.i.i.i187, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i.i187: ; preds = %lor.lhs.false.i.i.i180, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc.i unwind label %lpad.i - -.noexc.i: ; preds = %if.then.i.i.i187 - %.pre.i.i.i188 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i189 = getelementptr inbounds i32, ptr %.pre.i.i.i188, i64 -1 - %.pre1.i.i.i190 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i189, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i180 - %34 = phi i32 [ %.pre1.i.i.i190, %.noexc.i ], [ %32, %lor.lhs.false.i.i.i180 ] - %35 = phi ptr [ %.pre.i.i.i188, %.noexc.i ], [ %31, %lor.lhs.false.i.i.i180 ] - %idx.ext.i.i.i183 = zext i32 %34 to i64 - %add.ptr.i.i.i184 = getelementptr inbounds ptr, ptr %35, i64 %idx.ext.i.i.i183 - store ptr %t, ptr %add.ptr.i.i.i184, align 8 - %36 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i185 = getelementptr inbounds i32, ptr %36, i64 -1 - %37 = load i32, ptr %arrayidx10.i.i.i185, align 4 - %inc.i.i.i186 = add i32 %37, 1 - store i32 %inc.i.i.i186, ptr %arrayidx10.i.i.i185, align 4 - br label %if.then.i.i.i31.i - -sw.bb13.i: ; preds = %invoke.cont.i - %38 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i.i.i.i5.i = icmp eq ptr %38, null - br i1 %tobool.not.i.i.i.i5.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i, label %if.then.i.i.i.i6.i - -if.then.i.i.i.i6.i: ; preds = %sw.bb13.i - %m_ref_count.i.i.i.i.i7.i = getelementptr inbounds %class.ast, ptr %38, i64 0, i32 2 - %39 = load i32, ptr %m_ref_count.i.i.i.i.i7.i, align 4 - %inc.i.i.i.i.i8.i = add i32 %39, 1 - store i32 %inc.i.i.i.i.i8.i, ptr %m_ref_count.i.i.i.i.i7.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i: ; preds = %if.then.i.i.i.i6.i, %sw.bb13.i - %m_nodes.i10.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %40 = load ptr, ptr %m_nodes.i10.i, align 8 - %cmp.i.i11.i = icmp eq ptr %40, null - br i1 %cmp.i.i11.i, label %if.then.i.i20.i, label %lor.lhs.false.i.i12.i - -lor.lhs.false.i.i12.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i - %arrayidx.i.i13.i = getelementptr inbounds i32, ptr %40, i64 -1 - %41 = load i32, ptr %arrayidx.i.i13.i, align 4 - %arrayidx4.i.i14.i = getelementptr inbounds i32, ptr %40, i64 -2 - %42 = load i32, ptr %arrayidx4.i.i14.i, align 4 - %cmp5.i.i15.i = icmp eq i32 %41, %42 - br i1 %cmp5.i.i15.i, label %if.then.i.i20.i, label %invoke.cont17.i - -if.then.i.i20.i: ; preds = %lor.lhs.false.i.i12.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i10.i) - to label %.noexc24.i unwind label %lpad.i - -.noexc24.i: ; preds = %if.then.i.i20.i - %.pre.i.i21.i = load ptr, ptr %m_nodes.i10.i, align 8 - %arrayidx8.phi.trans.insert.i.i22.i = getelementptr inbounds i32, ptr %.pre.i.i21.i, i64 -1 - %.pre1.i.i23.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i22.i, align 4 - br label %invoke.cont17.i - -invoke.cont17.i: ; preds = %.noexc24.i, %lor.lhs.false.i.i12.i - %43 = phi i32 [ %.pre1.i.i23.i, %.noexc24.i ], [ %41, %lor.lhs.false.i.i12.i ] - %44 = phi ptr [ %.pre.i.i21.i, %.noexc24.i ], [ %40, %lor.lhs.false.i.i12.i ] - %idx.ext.i.i16.i = zext i32 %43 to i64 - %add.ptr.i.i17.i = getelementptr inbounds ptr, ptr %44, i64 %idx.ext.i.i16.i - store ptr %38, ptr %add.ptr.i.i17.i, align 8 - %45 = load ptr, ptr %m_nodes.i10.i, align 8 - %arrayidx10.i.i18.i = getelementptr inbounds i32, ptr %45, i64 -1 - %46 = load i32, ptr %arrayidx10.i.i18.i, align 4 - %inc.i.i19.i = add i32 %46, 1 - store i32 %inc.i.i19.i, ptr %arrayidx10.i.i18.i, align 4 - %47 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i3.i.i = icmp eq ptr %47, null - br i1 %tobool.not.i3.i.i, label %invoke.cont20.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %invoke.cont17.i - %m_manager.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %48 = load ptr, ptr %m_manager.i.i.i, align 8 - %m_ref_count.i.i.i.i26.i = getelementptr inbounds %class.ast, ptr %47, i64 0, i32 2 - %49 = load i32, ptr %m_ref_count.i.i.i.i26.i, align 4 - %dec.i.i.i.i.i = add i32 %49, -1 - store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i26.i, align 4 - %cmp.i.i.i.i179 = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i179, label %if.then2.i.i.i.i, label %invoke.cont20.i - -if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %48, ptr noundef nonnull %47) - to label %invoke.cont20.i unwind label %lpad.i - -invoke.cont20.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %invoke.cont17.i - store ptr null, ptr %m_r.i, align 8 - %50 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val3.i = load ptr, ptr %50, align 8 - %cmp.i.i28.i = icmp eq ptr %this.val3.i, null - br i1 %cmp.i.i28.i, label %if.then.i.i.i31.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %invoke.cont20.i - %arrayidx.i.i29.i = getelementptr inbounds i32, ptr %this.val3.i, i64 -1 - %51 = load i32, ptr %arrayidx.i.i29.i, align 4 - %cmp3.i.i.i = icmp eq i32 %51, 0 - br i1 %cmp3.i.i.i, label %if.then.i.i.i31.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - %52 = add i32 %51, -1 - %53 = zext i32 %52 to i64 - %m_new_child.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val3.i, i64 %53, i32 1 - %bf.load.i.i = load i32, ptr %m_new_child.i.i, align 8 - %bf.set.i.i = or i32 %bf.load.i.i, 2 - store i32 %bf.set.i.i, ptr %m_new_child.i.i, align 8 - br label %if.then.i.i.i31.i - -if.then.i.i.i31.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %invoke.cont20.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %54 = load i32, ptr %m_ref_count.i.i.i, align 4 - %dec.i.i.i.i34.i = add i32 %54, -1 - store i32 %dec.i.i.i.i34.i, ptr %m_ref_count.i.i.i, align 4 - %cmp.i.i.i35.i = icmp eq i32 %dec.i.i.i.i34.i, 0 - br i1 %cmp.i.i.i35.i, label %if.then2.i.i.i36.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb0EEEbP3app.exit - -if.then2.i.i.i36.i: ; preds = %if.then.i.i.i31.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i, ptr noundef nonnull %t) - to label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb0EEEbP3app.exit unwind label %terminate.lpad.i.i + br i1 %cmp25, label %if.then26, label %if.end59 -terminate.lpad.i.i: ; preds = %if.then2.i.i.i36.i - %55 = landingpad { ptr, i32 } - catch ptr null - %56 = extractvalue { ptr, i32 } %55, 0 - tail call void @__clang_call_terminate(ptr %56) #15 - unreachable - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb0EEEbP3app.exit: ; preds = %if.then.i.i.i31.i, %if.then2.i.i.i36.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %t.i) +if.then26: ; preds = %sw.bb + tail call fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb0EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %t) br label %return if.end59: ; preds = %sw.bb %cmp60.not = icmp eq i32 %max_depth, 3 %dec = shl i32 %max_depth, 4 - %57 = add i32 %dec, 48 - %58 = getelementptr inbounds i8, ptr %this, i64 40 + %25 = add i32 %dec, 48 + %26 = getelementptr inbounds i8, ptr %this, i64 40 %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %59 = load ptr, ptr %m_nodes.i.i.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %59, null + %27 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i.i = icmp eq ptr %27, null br i1 %cmp.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %if.end59 - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %59, i64 -1 - %60 = load i32, ptr %arrayidx.i.i.i.i, align 4 + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %27, i64 -1 + %28 = load i32, ptr %arrayidx.i.i.i.i, align 4 br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i: ; preds = %if.end.i.i.i.i, %if.end59 - %retval.0.i.i.i.i = phi i32 [ %60, %if.end.i.i.i.i ], [ 0, %if.end59 ] - %61 = load ptr, ptr %58, align 8 - %cmp.i.i.i132 = icmp eq ptr %61, null - br i1 %cmp.i.i.i132, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %retval.0.i.i.i.i = phi i32 [ %28, %if.end.i.i.i.i ], [ 0, %if.end59 ] + %29 = load ptr, ptr %26, align 8 + %cmp.i.i.i107 = icmp eq ptr %29, null + br i1 %cmp.i.i.i107, label %if.then.i.i.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - %arrayidx.i.i.i133 = getelementptr inbounds i32, ptr %61, i64 -1 - %62 = load i32, ptr %arrayidx.i.i.i133, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %61, i64 -2 - %63 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %62, %63 + %arrayidx.i.i.i108 = getelementptr inbounds i32, ptr %29, i64 -1 + %30 = load i32, ptr %arrayidx.i.i.i108, align 4 + %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %29, i64 -2 + %31 = load i32, ptr %arrayidx4.i.i.i, align 4 + %cmp5.i.i.i = icmp eq i32 %30, %31 br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %58) - %.pre.i.i.i = load ptr, ptr %58, align 8 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %26) + %.pre.i.i.i = load ptr, ptr %26, align 8 %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit _ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit: ; preds = %lor.lhs.false.i.i.i, %if.then.i.i.i - %64 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %62, %lor.lhs.false.i.i.i ] - %65 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %61, %lor.lhs.false.i.i.i ] - %66 = and i32 %57, 48 - %bf.value10.masked.i.i.i = select i1 %cmp60.not, i32 48, i32 %66 + %32 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %30, %lor.lhs.false.i.i.i ] + %33 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %29, %lor.lhs.false.i.i.i ] + %34 = and i32 %25, 48 + %bf.value10.masked.i.i.i = select i1 %cmp60.not, i32 48, i32 %34 %bf.clear15.i.i.i = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i - %idx.ext.i.i.i = zext i32 %64 to i64 - %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %65, i64 %idx.ext.i.i.i + %idx.ext.i.i.i = zext i32 %32 to i64 + %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %33, i64 %idx.ext.i.i.i store ptr %t, ptr %add.ptr.i.i.i, align 8 %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 8 store i32 %bf.clear15.i.i.i, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i, align 8 %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 12 store i32 %retval.0.i.i.i.i, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i, align 4 - %67 = load ptr, ptr %58, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %67, i64 -1 - %68 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %68, 1 + %35 = load ptr, ptr %26, align 8 + %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %35, i64 -1 + %36 = load i32, ptr %arrayidx10.i.i.i, align 4 + %inc.i.i.i = add i32 %36, 1 store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 br label %return @@ -19786,57 +19936,57 @@ sw.bb64: ; preds = %if.end21 sw.bb66: ; preds = %if.end21 %cmp67.not = icmp eq i32 %max_depth, 3 %dec69 = shl i32 %max_depth, 4 - %69 = add i32 %dec69, 48 - %70 = getelementptr inbounds i8, ptr %this, i64 40 - %m_nodes.i.i.i134 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %71 = load ptr, ptr %m_nodes.i.i.i134, align 8 - %cmp.i.i.i.i135 = icmp eq ptr %71, null - br i1 %cmp.i.i.i.i135, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138, label %if.end.i.i.i.i136 - -if.end.i.i.i.i136: ; preds = %sw.bb66 - %arrayidx.i.i.i.i137 = getelementptr inbounds i32, ptr %71, i64 -1 - %72 = load i32, ptr %arrayidx.i.i.i.i137, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138: ; preds = %if.end.i.i.i.i136, %sw.bb66 - %retval.0.i.i.i.i139 = phi i32 [ %72, %if.end.i.i.i.i136 ], [ 0, %sw.bb66 ] - %73 = load ptr, ptr %70, align 8 - %cmp.i.i.i140 = icmp eq ptr %73, null - br i1 %cmp.i.i.i140, label %if.then.i.i.i155, label %lor.lhs.false.i.i.i141 - -lor.lhs.false.i.i.i141: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - %arrayidx.i.i.i142 = getelementptr inbounds i32, ptr %73, i64 -1 - %74 = load i32, ptr %arrayidx.i.i.i142, align 4 - %arrayidx4.i.i.i143 = getelementptr inbounds i32, ptr %73, i64 -2 - %75 = load i32, ptr %arrayidx4.i.i.i143, align 4 - %cmp5.i.i.i144 = icmp eq i32 %74, %75 - br i1 %cmp5.i.i.i144, label %if.then.i.i.i155, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit159 - -if.then.i.i.i155: ; preds = %lor.lhs.false.i.i.i141, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %70) - %.pre.i.i.i156 = load ptr, ptr %70, align 8 - %arrayidx8.phi.trans.insert.i.i.i157 = getelementptr inbounds i32, ptr %.pre.i.i.i156, i64 -1 - %.pre1.i.i.i158 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i157, align 4 - br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit159 - -_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit159: ; preds = %lor.lhs.false.i.i.i141, %if.then.i.i.i155 - %76 = phi i32 [ %.pre1.i.i.i158, %if.then.i.i.i155 ], [ %74, %lor.lhs.false.i.i.i141 ] - %77 = phi ptr [ %.pre.i.i.i156, %if.then.i.i.i155 ], [ %73, %lor.lhs.false.i.i.i141 ] - %78 = and i32 %69, 48 - %bf.value10.masked.i.i.i147 = select i1 %cmp67.not, i32 48, i32 %78 - %bf.clear15.i.i.i148 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i147 - %idx.ext.i.i.i149 = zext i32 %76 to i64 - %add.ptr.i.i.i150 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %77, i64 %idx.ext.i.i.i149 - store ptr %t, ptr %add.ptr.i.i.i150, align 8 - %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i151 = getelementptr inbounds i8, ptr %add.ptr.i.i.i150, i64 8 - store i32 %bf.clear15.i.i.i148, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i151, align 8 - %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i152 = getelementptr inbounds i8, ptr %add.ptr.i.i.i150, i64 12 - store i32 %retval.0.i.i.i.i139, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i152, align 4 - %79 = load ptr, ptr %70, align 8 - %arrayidx10.i.i.i153 = getelementptr inbounds i32, ptr %79, i64 -1 - %80 = load i32, ptr %arrayidx10.i.i.i153, align 4 - %inc.i.i.i154 = add i32 %80, 1 - store i32 %inc.i.i.i154, ptr %arrayidx10.i.i.i153, align 4 + %37 = add i32 %dec69, 48 + %38 = getelementptr inbounds i8, ptr %this, i64 40 + %m_nodes.i.i.i109 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %39 = load ptr, ptr %m_nodes.i.i.i109, align 8 + %cmp.i.i.i.i110 = icmp eq ptr %39, null + br i1 %cmp.i.i.i.i110, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113, label %if.end.i.i.i.i111 + +if.end.i.i.i.i111: ; preds = %sw.bb66 + %arrayidx.i.i.i.i112 = getelementptr inbounds i32, ptr %39, i64 -1 + %40 = load i32, ptr %arrayidx.i.i.i.i112, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113: ; preds = %if.end.i.i.i.i111, %sw.bb66 + %retval.0.i.i.i.i114 = phi i32 [ %40, %if.end.i.i.i.i111 ], [ 0, %sw.bb66 ] + %41 = load ptr, ptr %38, align 8 + %cmp.i.i.i115 = icmp eq ptr %41, null + br i1 %cmp.i.i.i115, label %if.then.i.i.i130, label %lor.lhs.false.i.i.i116 + +lor.lhs.false.i.i.i116: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + %arrayidx.i.i.i117 = getelementptr inbounds i32, ptr %41, i64 -1 + %42 = load i32, ptr %arrayidx.i.i.i117, align 4 + %arrayidx4.i.i.i118 = getelementptr inbounds i32, ptr %41, i64 -2 + %43 = load i32, ptr %arrayidx4.i.i.i118, align 4 + %cmp5.i.i.i119 = icmp eq i32 %42, %43 + br i1 %cmp5.i.i.i119, label %if.then.i.i.i130, label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit134 + +if.then.i.i.i130: ; preds = %lor.lhs.false.i.i.i116, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %38) + %.pre.i.i.i131 = load ptr, ptr %38, align 8 + %arrayidx8.phi.trans.insert.i.i.i132 = getelementptr inbounds i32, ptr %.pre.i.i.i131, i64 -1 + %.pre1.i.i.i133 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i132, align 4 + br label %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit134 + +_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit134: ; preds = %lor.lhs.false.i.i.i116, %if.then.i.i.i130 + %44 = phi i32 [ %.pre1.i.i.i133, %if.then.i.i.i130 ], [ %42, %lor.lhs.false.i.i.i116 ] + %45 = phi ptr [ %.pre.i.i.i131, %if.then.i.i.i130 ], [ %41, %lor.lhs.false.i.i.i116 ] + %46 = and i32 %37, 48 + %bf.value10.masked.i.i.i122 = select i1 %cmp67.not, i32 48, i32 %46 + %bf.clear15.i.i.i123 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i122 + %idx.ext.i.i.i124 = zext i32 %44 to i64 + %add.ptr.i.i.i125 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %45, i64 %idx.ext.i.i.i124 + store ptr %t, ptr %add.ptr.i.i.i125, align 8 + %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i126 = getelementptr inbounds i8, ptr %add.ptr.i.i.i125, i64 8 + store i32 %bf.clear15.i.i.i123, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i126, align 8 + %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i127 = getelementptr inbounds i8, ptr %add.ptr.i.i.i125, i64 12 + store i32 %retval.0.i.i.i.i114, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i127, align 4 + %47 = load ptr, ptr %38, align 8 + %arrayidx10.i.i.i128 = getelementptr inbounds i32, ptr %47, i64 -1 + %48 = load i32, ptr %arrayidx10.i.i.i128, align 4 + %inc.i.i.i129 = add i32 %48, 1 + store i32 %inc.i.i.i129, ptr %arrayidx10.i.i.i128, align 4 br label %return sw.default: ; preds = %if.end21 @@ -19844,11 +19994,200 @@ sw.default: ; preds = %if.end21 tail call void @exit(i32 noundef 114) #15 unreachable -return: ; preds = %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb0EEEbP3app.exit, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit159, %sw.bb64, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit159 ], [ true, %sw.bb64 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit ], [ true, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb0EEEbP3app.exit ], [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 ], [ true, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 ], [ true, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85 ] +return: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit134, %sw.bb64, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit, %if.then26, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit134 ], [ true, %sw.bb64 ], [ true, %if.then26 ], [ false, %_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE10push_frameEP4exprbj.exit ], [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 ], [ true, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 ], [ true, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81 ] ret i1 %retval.0 } +; Function Attrs: mustprogress uwtable +define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE13process_constILb0EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +entry: + %t = alloca %class.obj_ref.93, align 8 + %0 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val = load ptr, ptr %0, align 8 + store ptr %t0, ptr %t, align 8 + %m_manager.i = getelementptr inbounds %class.obj_ref.93, ptr %t, i64 0, i32 1 + store ptr %this.val, ptr %m_manager.i, align 8 + %tobool.not.i.i = icmp eq ptr %t0, null + br i1 %tobool.not.i.i, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %entry + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %1 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i = add i32 %1, 1 + store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + +_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit: ; preds = %entry, %_ZN11ast_manager7inc_refEP3ast.exit.i.i + %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + %2 = load ptr, ptr %m_cfg, align 8 + %m_decl.i = getelementptr inbounds %class.app, ptr %t0, i64 0, i32 1 + %3 = load ptr, ptr %m_decl.i, align 8 + %m_r = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %call4 = invoke fastcc noundef i32 @_ZN12_GLOBAL__N_122app_const_arr_rewriter10reduce_appEP9func_decljPKP4exprR7obj_refIS3_11ast_managerERS7_I3appS8_E(ptr noundef nonnull align 8 dereferenceable(336) %2, ptr noundef %3, i32 noundef 0, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(16) %m_r) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + %switch = icmp eq i32 %call4, 5 + br i1 %switch, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %sw.bb13 + +lpad: ; preds = %if.then2.i.i.i, %if.then.i.i19, %if.then.i.i, %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + %4 = landingpad { ptr, i32 } + cleanup + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t) #14 + resume { ptr, i32 } %4 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %invoke.cont + %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %5 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %5, 1 + store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 + %m_nodes.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %6 = load ptr, ptr %m_nodes.i, align 8 + %cmp.i.i = icmp eq ptr %6, null + br i1 %cmp.i.i, label %if.then.i.i, label %lor.lhs.false.i.i + +lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx.i.i, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %6, i64 -2 + %8 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %7, %8 + br i1 %cmp5.i.i, label %if.then.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +if.then.i.i: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i) + to label %.noexc unwind label %lpad + +.noexc: ; preds = %if.then.i.i + %.pre.i.i = load ptr, ptr %m_nodes.i, align 8 + %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i, i64 -1 + %.pre1.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit: ; preds = %lor.lhs.false.i.i, %.noexc + %9 = phi i32 [ %.pre1.i.i, %.noexc ], [ %7, %lor.lhs.false.i.i ] + %10 = phi ptr [ %.pre.i.i, %.noexc ], [ %6, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %9 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %10, i64 %idx.ext.i.i + store ptr %t0, ptr %add.ptr.i.i, align 8 + %11 = load ptr, ptr %m_nodes.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %11, i64 -1 + %12 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %12, 1 + store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 + br label %if.then.i.i.i30 + +sw.bb13: ; preds = %invoke.cont + %13 = load ptr, ptr %m_r, align 8 + %tobool.not.i.i.i.i4 = icmp eq ptr %13, null + br i1 %tobool.not.i.i.i.i4, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8, label %if.then.i.i.i.i5 + +if.then.i.i.i.i5: ; preds = %sw.bb13 + %m_ref_count.i.i.i.i.i6 = getelementptr inbounds %class.ast, ptr %13, i64 0, i32 2 + %14 = load i32, ptr %m_ref_count.i.i.i.i.i6, align 4 + %inc.i.i.i.i.i7 = add i32 %14, 1 + store i32 %inc.i.i.i.i.i7, ptr %m_ref_count.i.i.i.i.i6, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8: ; preds = %if.then.i.i.i.i5, %sw.bb13 + %m_nodes.i9 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %15 = load ptr, ptr %m_nodes.i9, align 8 + %cmp.i.i10 = icmp eq ptr %15, null + br i1 %cmp.i.i10, label %if.then.i.i19, label %lor.lhs.false.i.i11 + +lor.lhs.false.i.i11: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8 + %arrayidx.i.i12 = getelementptr inbounds i32, ptr %15, i64 -1 + %16 = load i32, ptr %arrayidx.i.i12, align 4 + %arrayidx4.i.i13 = getelementptr inbounds i32, ptr %15, i64 -2 + %17 = load i32, ptr %arrayidx4.i.i13, align 4 + %cmp5.i.i14 = icmp eq i32 %16, %17 + br i1 %cmp5.i.i14, label %if.then.i.i19, label %invoke.cont17 + +if.then.i.i19: ; preds = %lor.lhs.false.i.i11, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8 + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i9) + to label %.noexc23 unwind label %lpad + +.noexc23: ; preds = %if.then.i.i19 + %.pre.i.i20 = load ptr, ptr %m_nodes.i9, align 8 + %arrayidx8.phi.trans.insert.i.i21 = getelementptr inbounds i32, ptr %.pre.i.i20, i64 -1 + %.pre1.i.i22 = load i32, ptr %arrayidx8.phi.trans.insert.i.i21, align 4 + br label %invoke.cont17 + +invoke.cont17: ; preds = %.noexc23, %lor.lhs.false.i.i11 + %18 = phi i32 [ %.pre1.i.i22, %.noexc23 ], [ %16, %lor.lhs.false.i.i11 ] + %19 = phi ptr [ %.pre.i.i20, %.noexc23 ], [ %15, %lor.lhs.false.i.i11 ] + %idx.ext.i.i15 = zext i32 %18 to i64 + %add.ptr.i.i16 = getelementptr inbounds ptr, ptr %19, i64 %idx.ext.i.i15 + store ptr %13, ptr %add.ptr.i.i16, align 8 + %20 = load ptr, ptr %m_nodes.i9, align 8 + %arrayidx10.i.i17 = getelementptr inbounds i32, ptr %20, i64 -1 + %21 = load i32, ptr %arrayidx10.i.i17, align 4 + %inc.i.i18 = add i32 %21, 1 + store i32 %inc.i.i18, ptr %arrayidx10.i.i17, align 4 + %22 = load ptr, ptr %m_r, align 8 + %tobool.not.i3.i = icmp eq ptr %22, null + br i1 %tobool.not.i3.i, label %invoke.cont20, label %if.then.i.i.i + +if.then.i.i.i: ; preds = %invoke.cont17 + %m_manager.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %23 = load ptr, ptr %m_manager.i.i, align 8 + %m_ref_count.i.i.i.i25 = getelementptr inbounds %class.ast, ptr %22, i64 0, i32 2 + %24 = load i32, ptr %m_ref_count.i.i.i.i25, align 4 + %dec.i.i.i.i = add i32 %24, -1 + store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i25, align 4 + %cmp.i.i.i = icmp eq i32 %dec.i.i.i.i, 0 + br i1 %cmp.i.i.i, label %if.then2.i.i.i, label %invoke.cont20 + +if.then2.i.i.i: ; preds = %if.then.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %23, ptr noundef nonnull %22) + to label %invoke.cont20 unwind label %lpad + +invoke.cont20: ; preds = %if.then.i.i.i, %invoke.cont17, %if.then2.i.i.i + store ptr null, ptr %m_r, align 8 + %25 = getelementptr inbounds i8, ptr %this, i64 40 + %this.val2 = load ptr, ptr %25, align 8 + %cmp.i.i27 = icmp eq ptr %this.val2, null + br i1 %cmp.i.i27, label %if.then.i.i.i30, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i: ; preds = %invoke.cont20 + %arrayidx.i.i28 = getelementptr inbounds i32, ptr %this.val2, i64 -1 + %26 = load i32, ptr %arrayidx.i.i28, align 4 + %cmp3.i.i = icmp eq i32 %26, 0 + br i1 %cmp3.i.i, label %if.then.i.i.i30, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + %27 = add i32 %26, -1 + %28 = zext i32 %27 to i64 + %m_new_child.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val2, i64 %28, i32 1 + %bf.load.i = load i32, ptr %m_new_child.i, align 8 + %bf.set.i = or i32 %bf.load.i, 2 + store i32 %bf.set.i, ptr %m_new_child.i, align 8 + br label %if.then.i.i.i30 + +if.then.i.i.i30: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit, %invoke.cont20, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + %m_ref_count.i.i.i.i32 = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %29 = load i32, ptr %m_ref_count.i.i.i.i32, align 4 + %dec.i.i.i.i33 = add i32 %29, -1 + store i32 %dec.i.i.i.i33, ptr %m_ref_count.i.i.i.i32, align 4 + %cmp.i.i.i34 = icmp eq i32 %dec.i.i.i.i33, 0 + br i1 %cmp.i.i.i34, label %if.then2.i.i.i35, label %_ZN7obj_refI3app11ast_managerED2Ev.exit + +if.then2.i.i.i35: ; preds = %if.then.i.i.i30 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val, ptr noundef nonnull %t0) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit unwind label %terminate.lpad.i + +terminate.lpad.i: ; preds = %if.then2.i.i.i35 + %30 = landingpad { ptr, i32 } + catch ptr null + %31 = extractvalue { ptr, i32 } %30, 0 + tail call void @__clang_call_terminate(ptr %31) #15 + unreachable + +_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %if.then.i.i.i30, %if.then2.i.i.i35 + ret void +} + ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN12_GLOBAL__N_122app_const_arr_rewriterEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %v) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { if.end: @@ -20860,7 +21199,7 @@ sw.bb.i: ; preds = %if.end31.i %bf.load.i46.i = load i32, ptr %89, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i46.i, 2 %bf.clear.i47.i = and i32 %bf.lshr.i.i, 3 - switch i32 %bf.clear.i47.i, label %entry.unreachabledefault.i.i [ + switch i32 %bf.clear.i47.i, label %sw.bb.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb298.i.i i32 2, label %sw.bb354.i.i @@ -22849,7 +23188,10 @@ sw.bb355.i.i: ; preds = %sw.bb.i call void @exit(i32 noundef 107) #15 unreachable -entry.unreachabledefault.i.i: ; preds = %sw.bb.i +sw.bb.i.unreachabledefault: ; preds = %sw.bb.i + unreachable + +default.unreachable: ; preds = %sw.bb.i302 unreachable common.resume: ; preds = %cleanup.action.i47, %ehcleanup13.i, %cleanup.action.i227, %ehcleanup14.i223, %lpad.i.i340, %lpad245.i.i, %cleanup.action.i, %ehcleanup14.i, %cleanup.action.i74, %ehcleanup14.i70, %ehcleanup297.i.i, %lpad306.i.i, %ehcleanup.i.i261, %lpad.i2338, %ehcleanup203.i.i, %lpad.i948 @@ -23004,7 +23346,7 @@ if.then4.i963: ; preds = %if.else.i962 if.else6.i: ; preds = %if.else.i962 %474 = xor i32 %470, -1 - %sub9.i = add i32 %bf.lshr12.i.i, %474 + %sub9.i = add nsw i32 %bf.lshr12.i.i, %474 %475 = load i32, ptr %m_num_decls.i, align 4 %idx.ext.i.i.i7.i = zext i32 %475 to i64 %add.ptr.i.i.i8.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i.i7.i @@ -24828,7 +25170,7 @@ sw.bb.i302: ; preds = %if.end28.i %bf.load.i23.i = load i32, ptr %725, align 8 %bf.lshr.i.i304 = lshr i32 %bf.load.i23.i, 2 %bf.clear.i24.i = and i32 %bf.lshr.i.i304, 3 - switch i32 %bf.clear.i24.i, label %entry.unreachabledefault.i.i409 [ + switch i32 %bf.clear.i24.i, label %default.unreachable [ i32 0, label %sw.bb.i.i322 i32 1, label %sw.bb211.i.i i32 2, label %sw.bb231.i.i @@ -26254,9 +26596,6 @@ sw.bb287.i.i: ; preds = %sw.bb.i302 call void @exit(i32 noundef 107) #15 unreachable -entry.unreachabledefault.i.i409: ; preds = %sw.bb.i302 - unreachable - _ZN12rewriter_tplIN12_GLOBAL__N_119rd_over_wr_rewriterEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i: ; preds = %if.end.i.i404, %if.else129.i.i.invoke, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2876, %cleanup.i.i349.thread3263, %if.then2.i.i.i2428, %if.then.i.i.i2422, %invoke.cont286.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2566, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2563, %_ZN12rewriter_tplIN12_GLOBAL__N_119rd_over_wr_rewriterEE12cache_resultILb0EEEvP4exprS5_P3appb.exit2577, %if.then2.i.i.i2667, %if.then.i.i.i2661, %cleanup.i.i349, %_ZN12rewriter_tplIN12_GLOBAL__N_119rd_over_wr_rewriterEE13constant_foldEP3appRN13rewriter_core5frameE.exit call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i200) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %tmp.i.i) @@ -26400,7 +26739,7 @@ if.then4.i2357: ; preds = %if.else.i2354 if.else6.i2368: ; preds = %if.else.i2354 %1001 = xor i32 %997, -1 - %sub9.i2369 = add i32 %bf.lshr12.i.i257, %1001 + %sub9.i2369 = add nsw i32 %bf.lshr12.i.i257, %1001 %1002 = load i32, ptr %m_num_decls.i2420, align 4 %idx.ext.i.i.i7.i2372 = zext i32 %1002 to i64 %add.ptr.i.i.i8.i2373 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2359, i64 %idx.ext.i.i.i7.i2372 diff --git a/bench/z3/optimized/seq_ne_solver.cpp.ll b/bench/z3/optimized/seq_ne_solver.cpp.ll index 8cfadb7ecb4..05d14c28929 100644 --- a/bench/z3/optimized/seq_ne_solver.cpp.ll +++ b/bench/z3/optimized/seq_ne_solver.cpp.ll @@ -3824,8 +3824,8 @@ entry: %n = alloca %"class.smt::theory_seq::ne", align 8 %m_nqs = getelementptr inbounds %"class.smt::theory_seq", ptr %this, i64 0, i32 5 %0 = load i32, ptr %m_nqs, align 8 - %cmp22.not = icmp eq i32 %0, 0 - br i1 %cmp22.not, label %return, label %for.body.lr.ph + %cmp20.not = icmp eq i32 %0, 0 + br i1 %cmp20.not, label %return, label %for.body.lr.ph for.body.lr.ph: ; preds = %entry %m_elems.i = getelementptr inbounds %"class.smt::theory_seq", ptr %this, i64 0, i32 5, i32 3 @@ -3833,11 +3833,8 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %i.023 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] %1 = load ptr, ptr %m_index.i, align 8 - %idxprom.i.i = zext i32 %i.023 to i64 - %arrayidx.i.i = getelementptr inbounds i32, ptr %1, i64 %idxprom.i.i - %2 = load i32, ptr %arrayidx.i.i, align 4 + %2 = load i32, ptr %1, align 4 %3 = load ptr, ptr %m_elems.i, align 8 %idxprom.i1.i = zext i32 %2 to i64 %arrayidx.i2.i = getelementptr inbounds %"class.smt::theory_seq::ne", ptr %3, i64 %idxprom.i1.i @@ -3846,50 +3843,50 @@ for.body: ; preds = %for.body.lr.ph, %fo to label %invoke.cont unwind label %lpad.loopexit, !range !22 invoke.cont: ; preds = %for.body - switch i32 %call4, label %for.inc [ - i32 0, label %cleanup + switch i32 %call4, label %default.unreachable27 [ + i32 0, label %cleanup.thread i32 1, label %sw.bb5 i32 -1, label %sw.bb8 ] lpad.loopexit: ; preds = %for.body, %sw.bb5 - %lpad.loopexit9 = landingpad { ptr, i32 } + %lpad.loopexit8 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp: ; preds = %sw.bb8 - %lpad.loopexit.split-lp10 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp9 = landingpad { ptr, i32 } cleanup br label %lpad lpad: ; preds = %lpad.loopexit.split-lp, %lpad.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit9, %lpad.loopexit ], [ %lpad.loopexit.split-lp10, %lpad.loopexit.split-lp ] + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit8, %lpad.loopexit ], [ %lpad.loopexit.split-lp9, %lpad.loopexit.split-lp ] call void @_ZN3smt10theory_seq2neD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %n) #12 resume { ptr, i32 } %lpad.phi sw.bb5: ; preds = %invoke.cont - %dec = add i32 %i.023, -1 - invoke void @_ZN13scoped_vectorIN3smt10theory_seq2neEE14erase_and_swapEj(ptr noundef nonnull align 8 dereferenceable(64) %m_nqs, i32 noundef %i.023) + invoke void @_ZN13scoped_vectorIN3smt10theory_seq2neEE14erase_and_swapEj(ptr noundef nonnull align 8 dereferenceable(64) %m_nqs, i32 noundef 0) to label %for.inc unwind label %lpad.loopexit sw.bb8: ; preds = %invoke.cont - invoke void @_ZN13scoped_vectorIN3smt10theory_seq2neEE14erase_and_swapEj(ptr noundef nonnull align 8 dereferenceable(64) %m_nqs, i32 noundef %i.023) - to label %cleanup unwind label %lpad.loopexit.split-lp + invoke void @_ZN13scoped_vectorIN3smt10theory_seq2neEE14erase_and_swapEj(ptr noundef nonnull align 8 dereferenceable(64) %m_nqs, i32 noundef 0) + to label %cleanup.thread unwind label %lpad.loopexit.split-lp + +default.unreachable27: ; preds = %invoke.cont + unreachable -cleanup: ; preds = %invoke.cont, %sw.bb8 +cleanup.thread: ; preds = %invoke.cont, %sw.bb8 call void @_ZN3smt10theory_seq2neD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %n) #12 br label %return -for.inc: ; preds = %invoke.cont, %sw.bb5 - %i.2.ph = phi i32 [ %dec, %sw.bb5 ], [ %i.023, %invoke.cont ] +for.inc: ; preds = %sw.bb5 call void @_ZN3smt10theory_seq2neD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %n) #12 - %inc = add i32 %i.2.ph, 1 %4 = load i32, ptr %m_nqs, align 8 - %cmp = icmp ult i32 %inc, %4 - br i1 %cmp, label %for.body, label %return, !llvm.loop !23 + %cmp.not = icmp eq i32 %4, 0 + br i1 %cmp.not, label %return, label %for.body, !llvm.loop !23 -return: ; preds = %for.inc, %entry, %cleanup - %cmp14 = phi i1 [ true, %cleanup ], [ false, %entry ], [ false, %for.inc ] +return: ; preds = %for.inc, %entry, %cleanup.thread + %cmp14 = phi i1 [ true, %cleanup.thread ], [ false, %entry ], [ false, %for.inc ] ret i1 %cmp14 } diff --git a/bench/z3/optimized/spacer_arith_generalizers.cpp.ll b/bench/z3/optimized/spacer_arith_generalizers.cpp.ll index 5394cf65662..5dff0b2b212 100644 --- a/bench/z3/optimized/spacer_arith_generalizers.cpp.ll +++ b/bench/z3/optimized/spacer_arith_generalizers.cpp.ll @@ -193,8 +193,6 @@ $_ZN8rationalD2Ev = comdat any $_ZN7obj_refI4expr11ast_managerED2Ev = comdat any -$_ZN7obj_refI4expr11ast_managerEaSEPS0_ = comdat any - $_ZN6solver11scoped_pushD2Ev = comdat any $_ZmlRK8rationali = comdat any @@ -1586,43 +1584,6 @@ declare noundef ptr @_Z13mk_smt_solverR11ast_managerRK10params_refRK6symbol(ptr declare void @_ZN6solver11assert_exprEP4expr(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef) local_unnamed_addr #0 -; Function Attrs: mustprogress uwtable -define linkonce_odr hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %this, ptr noundef %n) local_unnamed_addr #4 comdat align 2 { -entry: - %tobool.not = icmp eq ptr %n, null - br i1 %tobool.not, label %if.end, label %_ZN11ast_manager7inc_refEP3ast.exit - -_ZN11ast_manager7inc_refEP3ast.exit: ; preds = %entry - %m_ref_count.i.i = getelementptr inbounds %class.ast, ptr %n, i64 0, i32 2 - %0 = load i32, ptr %m_ref_count.i.i, align 4 - %inc.i.i = add i32 %0, 1 - store i32 %inc.i.i, ptr %m_ref_count.i.i, align 4 - br label %if.end - -if.end: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit, %entry - %1 = load ptr, ptr %this, align 8 - %tobool.not.i3 = icmp eq ptr %1, null - br i1 %tobool.not.i3, label %_ZN7obj_refI4expr11ast_managerE7dec_refEv.exit, label %if.then.i.i - -if.then.i.i: ; preds = %if.end - %m_manager.i = getelementptr inbounds %class.obj_ref.61, ptr %this, i64 0, i32 1 - %2 = load ptr, ptr %m_manager.i, align 8 - %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %1, i64 0, i32 2 - %3 = load i32, ptr %m_ref_count.i.i.i, align 4 - %dec.i.i.i = add i32 %3, -1 - store i32 %dec.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %cmp.i.i = icmp eq i32 %dec.i.i.i, 0 - br i1 %cmp.i.i, label %if.then2.i.i, label %_ZN7obj_refI4expr11ast_managerE7dec_refEv.exit - -if.then2.i.i: ; preds = %if.then.i.i - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %2, ptr noundef nonnull %1) - br label %_ZN7obj_refI4expr11ast_managerE7dec_refEv.exit - -_ZN7obj_refI4expr11ast_managerE7dec_refEv.exit: ; preds = %if.end, %if.then.i.i, %if.then2.i.i - store ptr %n, ptr %this, align 8 - ret ptr %this -} - declare noundef i32 @_ZN6solver9check_satEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef, ptr noundef) local_unnamed_addr #0 ; Function Attrs: mustprogress nounwind uwtable @@ -2538,23 +2499,31 @@ entry: ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEEclEP4exprR7obj_refIS4_11ast_managerERS6_I3appS7_E(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, ptr nocapture noundef nonnull align 8 dereferenceable(16) %result, ptr nocapture noundef nonnull align 8 dereferenceable(16) %result_pr) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { entry: - %new_pats.i.i194 = alloca %class.ref_vector, align 8 - %new_no_pats.i.i195 = alloca %class.ref_vector, align 8 - %new_t.i.i198 = alloca %class.obj_ref.62, align 8 - %tmp.i.i = alloca %class.obj_ref.61, align 8 - %ref.tmp.i202 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp9.i203 = alloca %"class.std::allocator.113", align 1 - %new_pats.i.i = alloca %class.ref_vector, align 8 - %new_no_pats.i.i = alloca %class.ref_vector, align 8 - %new_q.i.i = alloca %class.obj_ref.134, align 8 - %pr2.i.i = alloca %class.obj_ref.62, align 8 - %new_t.i.i = alloca %class.obj_ref.62, align 8 - %pr2293.i.i = alloca %class.obj_ref.62, align 8 - %pr1295.i.i = alloca %class.obj_ref.62, align 8 - %ref.tmp.i62 = alloca %"class.std::__cxx11::basic_string", align 8 - %ref.tmp9.i = alloca %"class.std::allocator.113", align 1 - %ref.tmp.i31 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp.i213.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i214.i.i = alloca %"class.std::allocator.113", align 1 + %ref.tmp.i.i.i40 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i.i.i41 = alloca %"class.std::allocator.113", align 1 + %new_pats.i.i.i42 = alloca %class.ref_vector, align 8 + %new_no_pats.i.i.i43 = alloca %class.ref_vector, align 8 + %new_t.i.i.i44 = alloca %class.obj_ref.62, align 8 + %tmp.i.i.i = alloca %class.obj_ref.61, align 8 + %ref.tmp.i.i45 = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp9.i.i46 = alloca %"class.std::allocator.113", align 1 + %ref.tmp.i47 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp8.i = alloca %"class.std::allocator.113", align 1 + %ref.tmp.i259.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i260.i.i = alloca %"class.std::allocator.113", align 1 + %ref.tmp.i.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp18.i.i.i = alloca %"class.std::allocator.113", align 1 + %new_pats.i.i.i = alloca %class.ref_vector, align 8 + %new_no_pats.i.i.i = alloca %class.ref_vector, align 8 + %new_q.i.i.i = alloca %class.obj_ref.134, align 8 + %pr2.i.i.i = alloca %class.obj_ref.62, align 8 + %new_t.i.i.i = alloca %class.obj_ref.62, align 8 + %pr2293.i.i.i = alloca %class.obj_ref.62, align 8 + %pr1295.i.i.i = alloca %class.obj_ref.62, align 8 + %ref.tmp.i.i = alloca %"class.std::__cxx11::basic_string", align 8 + %ref.tmp9.i.i = alloca %"class.std::allocator.113", align 1 %ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp10.i = alloca %"class.std::allocator.113", align 1 %m_frame_stack.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 6 @@ -2578,13 +2547,13 @@ lor.lhs.false: ; preds = %entry br i1 %cmp.not, label %if.end, label %_ZN6vectorIN13rewriter_core5frameELb0EjE5resetEv.exit lor.lhs.false.thread: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit - %m_cache2778 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %5 = load ptr, ptr %m_cache2778, align 8 - %m_cache_stack2779 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 4 - %6 = load ptr, ptr %m_cache_stack2779, align 8 + %m_cache412 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %5 = load ptr, ptr %m_cache412, align 8 + %m_cache_stack413 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 4 + %6 = load ptr, ptr %m_cache_stack413, align 8 %7 = load ptr, ptr %6, align 8 - %cmp.not2780 = icmp eq ptr %5, %7 - br i1 %cmp.not2780, label %if.end, label %if.then.i + %cmp.not414 = icmp eq ptr %5, %7 + br i1 %cmp.not414, label %if.end, label %if.then.i if.then.i: ; preds = %lor.lhs.false.thread, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit store i32 0, ptr %arrayidx.i, align 4 @@ -2716,31 +2685,31 @@ if.then7: ; preds = %if.end call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp10.i) %25 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i185 = icmp eq ptr %25, null - br i1 %tobool.not.i3.i185, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192, label %if.then.i.i.i186 - -if.then.i.i.i186: ; preds = %if.then7 - %m_manager.i.i187 = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 - %26 = load ptr, ptr %m_manager.i.i187, align 8 - %m_ref_count.i.i.i.i188 = getelementptr inbounds %class.ast, ptr %25, i64 0, i32 2 - %27 = load i32, ptr %m_ref_count.i.i.i.i188, align 4 - %dec.i.i.i.i189 = add i32 %27, -1 - store i32 %dec.i.i.i.i189, ptr %m_ref_count.i.i.i.i188, align 4 - %cmp.i.i.i190 = icmp eq i32 %dec.i.i.i.i189, 0 - br i1 %cmp.i.i.i190, label %if.then2.i.i.i191, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 - -if.then2.i.i.i191: ; preds = %if.then.i.i.i186 + %tobool.not.i3.i.i = icmp eq ptr %25, null + br i1 %tobool.not.i3.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i.i + +if.then.i.i.i.i: ; preds = %if.then7 + %m_manager.i.i.i = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 + %26 = load ptr, ptr %m_manager.i.i.i, align 8 + %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %25, i64 0, i32 2 + %27 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 + %dec.i.i.i.i.i = add i32 %27, -1 + store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 + %cmp.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i, label %if.then2.i.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i + +if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %26, ptr noundef nonnull %25) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192: ; preds = %if.then7, %if.then.i.i.i186, %if.then2.i.i.i191 +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.then7 store ptr null, ptr %result_pr, align 8 %28 = getelementptr inbounds i8, ptr %this, i64 8 %this.val12.i = load ptr, ptr %28, align 8 - %call2.i183 = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val12.i) - br i1 %call2.i183, label %if.end17.i, label %if.then.i28 + %call2.i.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val12.i) + br i1 %call2.i.i, label %if.end17.i, label %if.then.i28 -if.then.i28: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 +if.then.i28: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i %m_cancel_check.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 %29 = load i8, ptr %m_cancel_check.i, align 1 %30 = and i8 %29, 1 @@ -2752,27 +2721,27 @@ if.then4.i: ; preds = %if.then.i28 %exception.i = tail call ptr @__cxa_allocate_exception(i64 40) #15 %this.val.i = load ptr, ptr %28, align 8 %call9.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i) - to label %invoke.cont8.i unwind label %ehcleanup15.i.thread + to label %invoke.cont8.i unwind label %ehcleanup15.thread.i invoke.cont8.i: ; preds = %if.then4.i call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) #15 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i, ptr noundef %call9.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) - to label %invoke.cont12.i unwind label %ehcleanup15.i.thread2786 + to label %invoke.cont12.i unwind label %ehcleanup15.thread112.i invoke.cont12.i: ; preds = %invoke.cont8.i store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i, align 8 - %m_msg.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #15 + %m_msg.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) #15 store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i, align 8 invoke void @__cxa_throw(ptr nonnull %exception.i, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #16 to label %unreachable.i unwind label %ehcleanup15.i -ehcleanup15.i.thread: ; preds = %if.then4.i +ehcleanup15.thread.i: ; preds = %if.then4.i %31 = landingpad { ptr, i32 } cleanup br label %cleanup.action.i -ehcleanup15.i.thread2786: ; preds = %invoke.cont8.i +ehcleanup15.thread112.i: ; preds = %invoke.cont8.i %32 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) #15 @@ -2785,46 +2754,46 @@ ehcleanup15.i: ; preds = %invoke.cont12.i call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10.i) #15 br label %common.resume -cleanup.action.i: ; preds = %ehcleanup15.i.thread2786, %ehcleanup15.i.thread - %.pn.pn.i2785 = phi { ptr, i32 } [ %31, %ehcleanup15.i.thread ], [ %32, %ehcleanup15.i.thread2786 ] +cleanup.action.i: ; preds = %ehcleanup15.thread112.i, %ehcleanup15.thread.i + %.pn.pn111.i = phi { ptr, i32 } [ %31, %ehcleanup15.thread.i ], [ %32, %ehcleanup15.thread112.i ] call void @__cxa_free_exception(ptr %exception.i) #15 br label %common.resume if.end.i: ; preds = %if.then.i28 - %tobool.not.i170 = icmp eq ptr %t, null - br i1 %tobool.not.i170, label %if.end.i174, label %_ZN11ast_manager7inc_refEP3ast.exit.i171 + %tobool.not.i.i30 = icmp eq ptr %t, null + br i1 %tobool.not.i.i30, label %if.end.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i -_ZN11ast_manager7inc_refEP3ast.exit.i171: ; preds = %if.end.i - %m_ref_count.i.i.i172 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %34 = load i32, ptr %m_ref_count.i.i.i172, align 4 - %inc.i.i.i173 = add i32 %34, 1 - store i32 %inc.i.i.i173, ptr %m_ref_count.i.i.i172, align 4 - br label %if.end.i174 +_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %if.end.i + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %34 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i = add i32 %34, 1 + store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %if.end.i.i -if.end.i174: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i171, %if.end.i +if.end.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i, %if.end.i %35 = load ptr, ptr %result, align 8 - %tobool.not.i3.i175 = icmp eq ptr %35, null - br i1 %tobool.not.i3.i175, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182, label %if.then.i.i.i176 - -if.then.i.i.i176: ; preds = %if.end.i174 - %m_manager.i.i177 = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 - %36 = load ptr, ptr %m_manager.i.i177, align 8 - %m_ref_count.i.i.i.i178 = getelementptr inbounds %class.ast, ptr %35, i64 0, i32 2 - %37 = load i32, ptr %m_ref_count.i.i.i.i178, align 4 - %dec.i.i.i.i179 = add i32 %37, -1 - store i32 %dec.i.i.i.i179, ptr %m_ref_count.i.i.i.i178, align 4 - %cmp.i.i.i180 = icmp eq i32 %dec.i.i.i.i179, 0 - br i1 %cmp.i.i.i180, label %if.then2.i.i.i181, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182 - -if.then2.i.i.i181: ; preds = %if.then.i.i.i176 + %tobool.not.i3.i14.i = icmp eq ptr %35, null + br i1 %tobool.not.i3.i14.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i15.i + +if.then.i.i.i15.i: ; preds = %if.end.i.i + %m_manager.i.i16.i = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 + %36 = load ptr, ptr %m_manager.i.i16.i, align 8 + %m_ref_count.i.i.i.i17.i = getelementptr inbounds %class.ast, ptr %35, i64 0, i32 2 + %37 = load i32, ptr %m_ref_count.i.i.i.i17.i, align 4 + %dec.i.i.i.i18.i = add i32 %37, -1 + store i32 %dec.i.i.i.i18.i, ptr %m_ref_count.i.i.i.i17.i, align 4 + %cmp.i.i.i19.i = icmp eq i32 %dec.i.i.i.i18.i, 0 + br i1 %cmp.i.i.i19.i, label %if.then2.i.i.i20.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i + +if.then2.i.i.i20.i: ; preds = %if.then.i.i.i15.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %36, ptr noundef nonnull %35) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182 + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182: ; preds = %if.end.i174, %if.then.i.i.i176, %if.then2.i.i.i181 +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i20.i, %if.then.i.i.i15.i, %if.end.i.i store ptr %t, ptr %result, align 8 br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.end17.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit192 +if.end17.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i %m_root.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 store ptr %t, ptr %m_root.i, align 8 %m_num_qvars.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 @@ -2835,6359 +2804,6660 @@ if.end17.i: ; preds = %_ZN7obj_refI3app11a br i1 %call18.i, label %if.then19.i, label %if.else.i if.then19.i: ; preds = %if.end17.i - %m_result_stack.i169 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i163 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %38 = load ptr, ptr %m_nodes.i163, align 8 - %cmp.i.i.i164 = icmp eq ptr %38, null - br i1 %cmp.i.i.i164, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit, label %if.end.i.i.i165 - -if.end.i.i.i165: ; preds = %if.then19.i - %arrayidx.i.i.i166 = getelementptr inbounds i32, ptr %38, i64 -1 - %39 = load i32, ptr %arrayidx.i.i.i166, align 4 + %m_result_stack.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %38 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i.i21.i = icmp eq ptr %38, null + br i1 %cmp.i.i.i21.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i.i + +if.end.i.i.i.i: ; preds = %if.then19.i + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %38, i64 -1 + %39 = load i32, ptr %arrayidx.i.i.i.i, align 4 %40 = add i32 %39, -1 %41 = zext i32 %40 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit: ; preds = %if.then19.i, %if.end.i.i.i165 - %retval.0.i.i.i167 = phi i64 [ %41, %if.end.i.i.i165 ], [ 4294967295, %if.then19.i ] - %arrayidx.i1.i.i168 = getelementptr inbounds ptr, ptr %38, i64 %retval.0.i.i.i167 - %42 = load ptr, ptr %arrayidx.i1.i.i168, align 8 - %tobool.not.i151 = icmp eq ptr %42, null - br i1 %tobool.not.i151, label %if.end.i155, label %_ZN11ast_manager7inc_refEP3ast.exit.i152 - -_ZN11ast_manager7inc_refEP3ast.exit.i152: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %m_ref_count.i.i.i153 = getelementptr inbounds %class.ast, ptr %42, i64 0, i32 2 - %43 = load i32, ptr %m_ref_count.i.i.i153, align 4 - %inc.i.i.i154 = add i32 %43, 1 - store i32 %inc.i.i.i154, ptr %m_ref_count.i.i.i153, align 4 - br label %if.end.i155 - -if.end.i155: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i152, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i.i, %if.then19.i + %retval.0.i.i.i.i = phi i64 [ %41, %if.end.i.i.i.i ], [ 4294967295, %if.then19.i ] + %arrayidx.i1.i.i.i = getelementptr inbounds ptr, ptr %38, i64 %retval.0.i.i.i.i + %42 = load ptr, ptr %arrayidx.i1.i.i.i, align 8 + %tobool.not.i22.i = icmp eq ptr %42, null + br i1 %tobool.not.i22.i, label %if.end.i26.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i23.i + +_ZN11ast_manager7inc_refEP3ast.exit.i23.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + %m_ref_count.i.i.i24.i = getelementptr inbounds %class.ast, ptr %42, i64 0, i32 2 + %43 = load i32, ptr %m_ref_count.i.i.i24.i, align 4 + %inc.i.i.i25.i = add i32 %43, 1 + store i32 %inc.i.i.i25.i, ptr %m_ref_count.i.i.i24.i, align 4 + br label %if.end.i26.i + +if.end.i26.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i23.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i %44 = load ptr, ptr %result, align 8 - %tobool.not.i3.i156 = icmp eq ptr %44, null - br i1 %tobool.not.i3.i156, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit, label %if.then.i.i.i157 - -if.then.i.i.i157: ; preds = %if.end.i155 - %m_manager.i.i158 = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 - %45 = load ptr, ptr %m_manager.i.i158, align 8 - %m_ref_count.i.i.i.i159 = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 - %46 = load i32, ptr %m_ref_count.i.i.i.i159, align 4 - %dec.i.i.i.i160 = add i32 %46, -1 - store i32 %dec.i.i.i.i160, ptr %m_ref_count.i.i.i.i159, align 4 - %cmp.i.i.i161 = icmp eq i32 %dec.i.i.i.i160, 0 - br i1 %cmp.i.i.i161, label %if.then2.i.i.i162, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - -if.then2.i.i.i162: ; preds = %if.then.i.i.i157 + %tobool.not.i3.i27.i = icmp eq ptr %44, null + br i1 %tobool.not.i3.i27.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i, label %if.then.i.i.i28.i + +if.then.i.i.i28.i: ; preds = %if.end.i26.i + %m_manager.i.i29.i = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 + %45 = load ptr, ptr %m_manager.i.i29.i, align 8 + %m_ref_count.i.i.i.i30.i = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 + %46 = load i32, ptr %m_ref_count.i.i.i.i30.i, align 4 + %dec.i.i.i.i31.i = add i32 %46, -1 + store i32 %dec.i.i.i.i31.i, ptr %m_ref_count.i.i.i.i30.i, align 4 + %cmp.i.i.i32.i = icmp eq i32 %dec.i.i.i.i31.i, 0 + br i1 %cmp.i.i.i32.i, label %if.then2.i.i.i33.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + +if.then2.i.i.i33.i: ; preds = %if.then.i.i.i28.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %45, ptr noundef nonnull %44) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit: ; preds = %if.end.i155, %if.then.i.i.i157, %if.then2.i.i.i162 +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i: ; preds = %if.then2.i.i.i33.i, %if.then.i.i.i28.i, %if.end.i26.i store ptr %42, ptr %result, align 8 - %47 = load ptr, ptr %m_nodes.i163, align 8 - %cmp.i.i.i135 = icmp eq ptr %47, null - br i1 %cmp.i.i.i135, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i, label %if.end.i.i.i136 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - %.pre.i148 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i149 = add i32 %.pre.i148, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - -if.end.i.i.i136: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit - %arrayidx.i.i.i137 = getelementptr inbounds i32, ptr %47, i64 -1 - %48 = load i32, ptr %arrayidx.i.i.i137, align 4 + %47 = load ptr, ptr %m_nodes.i.i, align 8 + %cmp.i.i.i37.i = icmp eq ptr %47, null + br i1 %cmp.i.i.i37.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i38.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + %.pre.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i = add i32 %.pre.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + +if.end.i.i.i38.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit34.i + %arrayidx.i.i.i39.i = getelementptr inbounds i32, ptr %47, i64 -1 + %48 = load i32, ptr %arrayidx.i.i.i39.i, align 4 %49 = add i32 %48, -1 %50 = zext i32 %49 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i136, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i - %dec.i.pre-phi.i138 = phi i32 [ %.pre1.i149, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i ], [ %49, %if.end.i.i.i136 ] - %retval.0.i.i.i139 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i ], [ %50, %if.end.i.i.i136 ] - %arrayidx.i1.i.i140 = getelementptr inbounds ptr, ptr %47, i64 %retval.0.i.i.i139 - %51 = load ptr, ptr %arrayidx.i1.i.i140, align 8 - %arrayidx.i.i141 = getelementptr inbounds i32, ptr %47, i64 -1 - store i32 %dec.i.pre-phi.i138, ptr %arrayidx.i.i141, align 4 - %52 = load ptr, ptr %m_result_stack.i169, align 8 - %tobool.not.i.i.i.i142 = icmp eq ptr %51, null - br i1 %tobool.not.i.i.i.i142, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, label %if.then.i.i.i.i143 - -if.then.i.i.i.i143: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i - %m_ref_count.i.i.i.i.i144 = getelementptr inbounds %class.ast, ptr %51, i64 0, i32 2 - %53 = load i32, ptr %m_ref_count.i.i.i.i.i144, align 4 - %dec.i.i.i.i.i145 = add i32 %53, -1 - store i32 %dec.i.i.i.i.i145, ptr %m_ref_count.i.i.i.i.i144, align 4 - %cmp.i.i.i.i146 = icmp eq i32 %dec.i.i.i.i.i145, 0 - br i1 %cmp.i.i.i.i146, label %if.then2.i.i.i.i147, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - -if.then2.i.i.i.i147: ; preds = %if.then.i.i.i.i143 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i38.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i + %dec.i.pre-phi.i.i = phi i32 [ %.pre1.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %49, %if.end.i.i.i38.i ] + %retval.0.i.i.i40.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %50, %if.end.i.i.i38.i ] + %arrayidx.i1.i.i41.i = getelementptr inbounds ptr, ptr %47, i64 %retval.0.i.i.i40.i + %51 = load ptr, ptr %arrayidx.i1.i.i41.i, align 8 + %arrayidx.i.i.i = getelementptr inbounds i32, ptr %47, i64 -1 + store i32 %dec.i.pre-phi.i.i, ptr %arrayidx.i.i.i, align 4 + %52 = load ptr, ptr %m_result_stack.i.i, align 8 + %tobool.not.i.i.i.i.i33 = icmp eq ptr %51, null + br i1 %tobool.not.i.i.i.i.i33, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i.i34 + +if.then.i.i.i.i.i34: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + %m_ref_count.i.i.i.i.i.i35 = getelementptr inbounds %class.ast, ptr %51, i64 0, i32 2 + %53 = load i32, ptr %m_ref_count.i.i.i.i.i.i35, align 4 + %dec.i.i.i.i.i.i36 = add i32 %53, -1 + store i32 %dec.i.i.i.i.i.i36, ptr %m_ref_count.i.i.i.i.i.i35, align 4 + %cmp.i.i.i.i.i37 = icmp eq i32 %dec.i.i.i.i.i.i36, 0 + br i1 %cmp.i.i.i.i.i37, label %if.then2.i.i.i.i.i39, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +if.then2.i.i.i.i.i39: ; preds = %if.then.i.i.i.i.i34 tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %52, ptr noundef nonnull %51) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i, %if.then.i.i.i.i143, %if.then2.i.i.i.i147 - %m_result_pr_stack.i133 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_nodes.i127 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %54 = load ptr, ptr %m_nodes.i127, align 8 - %cmp.i.i.i128 = icmp eq ptr %54, null - br i1 %cmp.i.i.i128, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit, label %if.end.i.i.i129 - -if.end.i.i.i129: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - %arrayidx.i.i.i130 = getelementptr inbounds i32, ptr %54, i64 -1 - %55 = load i32, ptr %arrayidx.i.i.i130, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i.i39, %if.then.i.i.i.i.i34, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i + %m_result_pr_stack.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_nodes.i42.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %54 = load ptr, ptr %m_nodes.i42.i, align 8 + %cmp.i.i.i43.i = icmp eq ptr %54, null + br i1 %cmp.i.i.i43.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i44.i + +if.end.i.i.i44.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + %arrayidx.i.i.i45.i = getelementptr inbounds i32, ptr %54, i64 -1 + %55 = load i32, ptr %arrayidx.i.i.i45.i, align 4 %56 = add i32 %55, -1 %57 = zext i32 %56 to i64 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, %if.end.i.i.i129 - %retval.0.i.i.i131 = phi i64 [ %57, %if.end.i.i.i129 ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit ] - %arrayidx.i1.i.i132 = getelementptr inbounds ptr, ptr %54, i64 %retval.0.i.i.i131 - %58 = load ptr, ptr %arrayidx.i1.i.i132, align 8 - %tobool.not.i114 = icmp eq ptr %58, null - br i1 %tobool.not.i114, label %if.end.i118, label %_ZN11ast_manager7inc_refEP3ast.exit.i115 - -_ZN11ast_manager7inc_refEP3ast.exit.i115: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %m_ref_count.i.i.i116 = getelementptr inbounds %class.ast, ptr %58, i64 0, i32 2 - %59 = load i32, ptr %m_ref_count.i.i.i116, align 4 - %inc.i.i.i117 = add i32 %59, 1 - store i32 %inc.i.i.i117, ptr %m_ref_count.i.i.i116, align 4 - br label %if.end.i118 - -if.end.i118: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i115, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i44.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + %retval.0.i.i.i46.i = phi i64 [ %57, %if.end.i.i.i44.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i ] + %arrayidx.i1.i.i47.i = getelementptr inbounds ptr, ptr %54, i64 %retval.0.i.i.i46.i + %58 = load ptr, ptr %arrayidx.i1.i.i47.i, align 8 + %tobool.not.i48.i = icmp eq ptr %58, null + br i1 %tobool.not.i48.i, label %if.end.i52.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i49.i + +_ZN11ast_manager7inc_refEP3ast.exit.i49.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i + %m_ref_count.i.i.i50.i = getelementptr inbounds %class.ast, ptr %58, i64 0, i32 2 + %59 = load i32, ptr %m_ref_count.i.i.i50.i, align 4 + %inc.i.i.i51.i = add i32 %59, 1 + store i32 %inc.i.i.i51.i, ptr %m_ref_count.i.i.i50.i, align 4 + br label %if.end.i52.i + +if.end.i52.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i49.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i %60 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i119 = icmp eq ptr %60, null - br i1 %tobool.not.i3.i119, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126, label %if.then.i.i.i120 - -if.then.i.i.i120: ; preds = %if.end.i118 - %m_manager.i.i121 = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 - %61 = load ptr, ptr %m_manager.i.i121, align 8 - %m_ref_count.i.i.i.i122 = getelementptr inbounds %class.ast, ptr %60, i64 0, i32 2 - %62 = load i32, ptr %m_ref_count.i.i.i.i122, align 4 - %dec.i.i.i.i123 = add i32 %62, -1 - store i32 %dec.i.i.i.i123, ptr %m_ref_count.i.i.i.i122, align 4 - %cmp.i.i.i124 = icmp eq i32 %dec.i.i.i.i123, 0 - br i1 %cmp.i.i.i124, label %if.then2.i.i.i125, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 - -if.then2.i.i.i125: ; preds = %if.then.i.i.i120 + %tobool.not.i3.i53.i = icmp eq ptr %60, null + br i1 %tobool.not.i3.i53.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i, label %if.then.i.i.i54.i + +if.then.i.i.i54.i: ; preds = %if.end.i52.i + %m_manager.i.i55.i = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 + %61 = load ptr, ptr %m_manager.i.i55.i, align 8 + %m_ref_count.i.i.i.i56.i = getelementptr inbounds %class.ast, ptr %60, i64 0, i32 2 + %62 = load i32, ptr %m_ref_count.i.i.i.i56.i, align 4 + %dec.i.i.i.i57.i = add i32 %62, -1 + store i32 %dec.i.i.i.i57.i, ptr %m_ref_count.i.i.i.i56.i, align 4 + %cmp.i.i.i58.i = icmp eq i32 %dec.i.i.i.i57.i, 0 + br i1 %cmp.i.i.i58.i, label %if.then2.i.i.i59.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + +if.then2.i.i.i59.i: ; preds = %if.then.i.i.i54.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %61, ptr noundef nonnull %60) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126: ; preds = %if.end.i118, %if.then.i.i.i120, %if.then2.i.i.i125 +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i: ; preds = %if.then2.i.i.i59.i, %if.then.i.i.i54.i, %if.end.i52.i store ptr %58, ptr %result_pr, align 8 - %63 = load ptr, ptr %m_nodes.i127, align 8 - %cmp.i.i.i101 = icmp eq ptr %63, null - br i1 %cmp.i.i.i101, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i, label %if.end.i.i.i102 - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 - %.pre.i112 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i = add i32 %.pre.i112, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i - -if.end.i.i.i102: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit126 - %arrayidx.i.i.i103 = getelementptr inbounds i32, ptr %63, i64 -1 - %64 = load i32, ptr %arrayidx.i.i.i103, align 4 + %63 = load ptr, ptr %m_nodes.i42.i, align 8 + %cmp.i.i.i63.i = icmp eq ptr %63, null + br i1 %cmp.i.i.i63.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i64.i + +entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + %.pre.i76.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i77.i = add i32 %.pre.i76.i, -1 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i + +if.end.i.i.i64.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit60.i + %arrayidx.i.i.i65.i = getelementptr inbounds i32, ptr %63, i64 -1 + %64 = load i32, ptr %arrayidx.i.i.i65.i, align 4 %65 = add i32 %64, -1 %66 = zext i32 %65 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i - -_ZN6vectorIP3appLb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i102, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i - %dec.i.pre-phi.i = phi i32 [ %.pre1.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i ], [ %65, %if.end.i.i.i102 ] - %retval.0.i.i.i104 = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i ], [ %66, %if.end.i.i.i102 ] - %arrayidx.i1.i.i105 = getelementptr inbounds ptr, ptr %63, i64 %retval.0.i.i.i104 - %67 = load ptr, ptr %arrayidx.i1.i.i105, align 8 - %arrayidx.i.i106 = getelementptr inbounds i32, ptr %63, i64 -1 - store i32 %dec.i.pre-phi.i, ptr %arrayidx.i.i106, align 4 - %68 = load ptr, ptr %m_result_pr_stack.i133, align 8 - %tobool.not.i.i.i.i = icmp eq ptr %67, null - br i1 %tobool.not.i.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, label %if.then.i.i.i.i107 - -if.then.i.i.i.i107: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i - %m_ref_count.i.i.i.i.i108 = getelementptr inbounds %class.ast, ptr %67, i64 0, i32 2 - %69 = load i32, ptr %m_ref_count.i.i.i.i.i108, align 4 - %dec.i.i.i.i.i109 = add i32 %69, -1 - store i32 %dec.i.i.i.i.i109, ptr %m_ref_count.i.i.i.i.i108, align 4 - %cmp.i.i.i.i110 = icmp eq i32 %dec.i.i.i.i.i109, 0 - br i1 %cmp.i.i.i.i110, label %if.then2.i.i.i.i111, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit - -if.then2.i.i.i.i111: ; preds = %if.then.i.i.i.i107 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i + +_ZN6vectorIP3appLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i64.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i + %dec.i.pre-phi.i66.i = phi i32 [ %.pre1.i77.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %65, %if.end.i.i.i64.i ] + %retval.0.i.i.i67.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %66, %if.end.i.i.i64.i ] + %arrayidx.i1.i.i68.i = getelementptr inbounds ptr, ptr %63, i64 %retval.0.i.i.i67.i + %67 = load ptr, ptr %arrayidx.i1.i.i68.i, align 8 + %arrayidx.i.i69.i = getelementptr inbounds i32, ptr %63, i64 -1 + store i32 %dec.i.pre-phi.i66.i, ptr %arrayidx.i.i69.i, align 4 + %68 = load ptr, ptr %m_result_pr_stack.i.i, align 8 + %tobool.not.i.i.i.i70.i = icmp eq ptr %67, null + br i1 %tobool.not.i.i.i.i70.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i71.i + +if.then.i.i.i.i71.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i + %m_ref_count.i.i.i.i.i72.i = getelementptr inbounds %class.ast, ptr %67, i64 0, i32 2 + %69 = load i32, ptr %m_ref_count.i.i.i.i.i72.i, align 4 + %dec.i.i.i.i.i73.i = add i32 %69, -1 + store i32 %dec.i.i.i.i.i73.i, ptr %m_ref_count.i.i.i.i.i72.i, align 4 + %cmp.i.i.i.i74.i = icmp eq i32 %dec.i.i.i.i.i73.i, 0 + br i1 %cmp.i.i.i.i74.i, label %if.then2.i.i.i.i75.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i + +if.then2.i.i.i.i75.i: ; preds = %if.then.i.i.i.i71.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %68, ptr noundef nonnull %67) - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i, %if.then.i.i.i.i107, %if.then2.i.i.i.i111 +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i75.i, %if.then.i.i.i.i71.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i %70 = load ptr, ptr %result_pr, align 8 - %cmp.i30 = icmp eq ptr %70, null - br i1 %cmp.i30, label %if.then29.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit + %cmp.i38 = icmp eq ptr %70, null + br i1 %cmp.i38, label %if.then29.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.then29.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit +if.then29.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i %this.val13.i = load ptr, ptr %28, align 8 %call31.i = tail call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val13.i, ptr noundef %t) - %tobool.not.i93 = icmp eq ptr %call31.i, null - br i1 %tobool.not.i93, label %if.end.i95, label %_ZN11ast_manager7inc_refEP3ast.exit.i + %tobool.not.i78.i = icmp eq ptr %call31.i, null + br i1 %tobool.not.i78.i, label %if.end.i82.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i79.i -_ZN11ast_manager7inc_refEP3ast.exit.i: ; preds = %if.then29.i - %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %call31.i, i64 0, i32 2 - %71 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i94 = add i32 %71, 1 - store i32 %inc.i.i.i94, ptr %m_ref_count.i.i.i, align 4 - br label %if.end.i95 +_ZN11ast_manager7inc_refEP3ast.exit.i79.i: ; preds = %if.then29.i + %m_ref_count.i.i.i80.i = getelementptr inbounds %class.ast, ptr %call31.i, i64 0, i32 2 + %71 = load i32, ptr %m_ref_count.i.i.i80.i, align 4 + %inc.i.i.i81.i = add i32 %71, 1 + store i32 %inc.i.i.i81.i, ptr %m_ref_count.i.i.i80.i, align 4 + br label %if.end.i82.i -if.end.i95: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i, %if.then29.i +if.end.i82.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i79.i, %if.then29.i %72 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i = icmp eq ptr %72, null - br i1 %tobool.not.i3.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit, label %if.then.i.i.i96 - -if.then.i.i.i96: ; preds = %if.end.i95 - %m_manager.i.i97 = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 - %73 = load ptr, ptr %m_manager.i.i97, align 8 - %m_ref_count.i.i.i.i98 = getelementptr inbounds %class.ast, ptr %72, i64 0, i32 2 - %74 = load i32, ptr %m_ref_count.i.i.i.i98, align 4 - %dec.i.i.i.i = add i32 %74, -1 - store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i98, align 4 - %cmp.i.i.i99 = icmp eq i32 %dec.i.i.i.i, 0 - br i1 %cmp.i.i.i99, label %if.then2.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit - -if.then2.i.i.i: ; preds = %if.then.i.i.i96 + %tobool.not.i3.i83.i = icmp eq ptr %72, null + br i1 %tobool.not.i3.i83.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i, label %if.then.i.i.i84.i + +if.then.i.i.i84.i: ; preds = %if.end.i82.i + %m_manager.i.i85.i = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 + %73 = load ptr, ptr %m_manager.i.i85.i, align 8 + %m_ref_count.i.i.i.i86.i = getelementptr inbounds %class.ast, ptr %72, i64 0, i32 2 + %74 = load i32, ptr %m_ref_count.i.i.i.i86.i, align 4 + %dec.i.i.i.i87.i = add i32 %74, -1 + store i32 %dec.i.i.i.i87.i, ptr %m_ref_count.i.i.i.i86.i, align 4 + %cmp.i.i.i88.i = icmp eq i32 %dec.i.i.i.i87.i, 0 + br i1 %cmp.i.i.i88.i, label %if.then2.i.i.i89.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i + +if.then2.i.i.i89.i: ; preds = %if.then.i.i.i84.i tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %73, ptr noundef nonnull %72) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit: ; preds = %if.end.i95, %if.then.i.i.i96, %if.then2.i.i.i +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i: ; preds = %if.then2.i.i.i89.i, %if.then.i.i.i84.i, %if.end.i82.i store ptr %call31.i, ptr %result_pr, align 8 br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit if.else.i: ; preds = %if.end17.i - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i62) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i.i) %75 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i632898 = icmp eq ptr %75, null - br i1 %cmp.i.i632898, label %while.end.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph + %cmp.i333.i.i = icmp eq ptr %75, null + br i1 %cmp.i333.i.i, label %while.end.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph: ; preds = %if.else.i - %m_cancel_check.i66 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %m_cache.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %m_cache_pr.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 - %m_nodes.i30.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %m_bindings.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 - %m_shifts.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 - %m_result_stack.i965 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i.i927 = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i, i64 0, i32 1 - %m_nodes.i.i912 = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i, i64 0, i32 1 - %m_manager.i823 = getelementptr inbounds %class.obj_ref.134, ptr %new_q.i.i, i64 0, i32 1 - %m_pr.i67.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %m_manager.i.i816 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %m_r.i74.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_manager.i.i745 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %m_manager.i = getelementptr inbounds %class.obj_ref.62, ptr %pr2.i.i, i64 0, i32 1 - %m_result_pr_stack.i721 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_manager.i1243 = getelementptr inbounds %class.obj_ref.62, ptr %pr2293.i.i, i64 0, i32 1 - %m_manager.i1242 = getelementptr inbounds %class.obj_ref.62, ptr %pr1295.i.i, i64 0, i32 1 - %m_manager.i1702 = getelementptr inbounds %class.obj_ref.62, ptr %new_t.i.i, i64 0, i32 1 - %m_cfg.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 - %m_pr2.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 - %m_manager.i.i1558 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8, i32 1 - br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph, %while.cond.i.backedge - %76 = phi ptr [ %75, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.lr.ph ], [ %114, %while.cond.i.backedge ] - %arrayidx.i.i64 = getelementptr inbounds i32, ptr %76, i64 -1 - %77 = load i32, ptr %arrayidx.i.i64, align 4 - %cmp3.i.i = icmp eq i32 %77, 0 - br i1 %cmp3.i.i, label %while.end.i, label %while.body.i - -while.body.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i - %this.val18.i = load ptr, ptr %28, align 8 - %call2.i.i = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val18.i) - br i1 %call2.i.i, label %if.end15.i79, label %if.then.i65 - -if.then.i65: ; preds = %while.body.i - %78 = load i8, ptr %m_cancel_check.i66, align 1 +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i: ; preds = %if.else.i + %m_cancel_check.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %m_cache.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %m_cache_pr.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 + %m_nodes.i30.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %m_bindings.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 + %m_shifts.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 + %m_result_stack.i.i67.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i.i.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i.i, i64 0, i32 1 + %m_nodes.i.i92.i.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i.i, i64 0, i32 1 + %m_manager.i184.i.i.i = getelementptr inbounds %class.obj_ref.134, ptr %new_q.i.i.i, i64 0, i32 1 + %m_pr.i89.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %m_manager.i.i.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %m_r.i95.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_manager.i.i257.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %m_manager.i263.i.i.i = getelementptr inbounds %class.obj_ref.62, ptr %pr2.i.i.i, i64 0, i32 1 + %m_result_pr_stack.i280.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_manager.i436.i.i.i = getelementptr inbounds %class.obj_ref.62, ptr %pr2293.i.i.i, i64 0, i32 1 + %m_manager.i437.i.i.i = getelementptr inbounds %class.obj_ref.62, ptr %pr1295.i.i.i, i64 0, i32 1 + %m_manager.i.i.i.i = getelementptr inbounds %class.obj_ref.62, ptr %new_t.i.i.i, i64 0, i32 1 + %m_cfg.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + %m_pr2.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8 + %m_manager.i.i151.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 8, i32 1 + br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %while.cond.backedge.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i + %76 = phi ptr [ %75, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i ], [ %114, %while.cond.backedge.i.i ] + %arrayidx.i.i91.i = getelementptr inbounds i32, ptr %76, i64 -1 + %77 = load i32, ptr %arrayidx.i.i91.i, align 4 + %cmp3.i.i.i = icmp eq i32 %77, 0 + br i1 %cmp3.i.i.i, label %while.end.i.i, label %while.body.i.i + +while.body.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i + %this.val18.i.i = load ptr, ptr %28, align 8 + %call2.i.i.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val18.i.i) + br i1 %call2.i.i.i, label %if.end15.i.i, label %if.then.i.i31 + +if.then.i.i31: ; preds = %while.body.i.i + %78 = load i8, ptr %m_cancel_check.i.i, align 1 %79 = and i8 %78, 1 - %tobool.not.i67 = icmp eq i8 %79, 0 - br i1 %tobool.not.i67, label %if.end15.i79, label %if.then5.i + %tobool.not.i92.i = icmp eq i8 %79, 0 + br i1 %tobool.not.i92.i, label %if.end15.i.i, label %if.then5.i.i -if.then5.i: ; preds = %if.then.i65 - call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i68 = call ptr @__cxa_allocate_exception(i64 40) #15 - %this.val17.i = load ptr, ptr %28, align 8 - %call8.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val17.i) - to label %invoke.cont.i74 unwind label %ehcleanup14.i.thread - -invoke.cont.i74: ; preds = %if.then5.i - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #15 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i62, ptr noundef %call8.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) - to label %invoke.cont11.i unwind label %ehcleanup14.i.thread2793 - -invoke.cont11.i: ; preds = %invoke.cont.i74 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i68, align 8 - %m_msg.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i68, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i62) #15 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i68, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i68, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #16 - to label %unreachable.i78 unwind label %ehcleanup14.i - -ehcleanup14.i.thread: ; preds = %if.then5.i +if.then5.i.i: ; preds = %if.then.i.i31 + tail call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) + %exception.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #15 + %this.val17.i.i = load ptr, ptr %28, align 8 + %call8.i.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val17.i.i) + to label %invoke.cont.i.i unwind label %ehcleanup14.thread.i.i + +invoke.cont.i.i: ; preds = %if.then5.i.i + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #15 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i, ptr noundef %call8.i.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) + to label %invoke.cont11.i.i unwind label %ehcleanup14.thread299.i.i + +invoke.cont11.i.i: ; preds = %invoke.cont.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i, align 8 + %m_msg.i.i.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) #15 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i.i, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #16 + to label %unreachable.i.i unwind label %ehcleanup14.i.i + +ehcleanup14.thread.i.i: ; preds = %if.then5.i.i %80 = landingpad { ptr, i32 } cleanup - br label %cleanup.action.i73 + br label %cleanup.action.i.i -ehcleanup14.i.thread2793: ; preds = %invoke.cont.i74 +ehcleanup14.thread299.i.i: ; preds = %invoke.cont.i.i %81 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #15 - br label %cleanup.action.i73 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #15 + br label %cleanup.action.i.i -ehcleanup14.i: ; preds = %invoke.cont11.i +ehcleanup14.i.i: ; preds = %invoke.cont11.i.i %82 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i62) #15 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i) #15 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i) #15 br label %common.resume -cleanup.action.i73: ; preds = %ehcleanup14.i.thread2793, %ehcleanup14.i.thread - %.pn.pn.i712792 = phi { ptr, i32 } [ %80, %ehcleanup14.i.thread ], [ %81, %ehcleanup14.i.thread2793 ] - call void @__cxa_free_exception(ptr %exception.i68) #15 +cleanup.action.i.i: ; preds = %ehcleanup14.thread299.i.i, %ehcleanup14.thread.i.i + %.pn.pn298.i.i = phi { ptr, i32 } [ %80, %ehcleanup14.thread.i.i ], [ %81, %ehcleanup14.thread299.i.i ] + call void @__cxa_free_exception(ptr %exception.i.i) #15 br label %common.resume -if.end15.i79: ; preds = %if.then.i65, %while.body.i +if.end15.i.i: ; preds = %if.then.i.i31, %while.body.i.i %83 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i.i = icmp eq ptr %83, null - br i1 %cmp.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i, label %if.end.i.i.i + %cmp.i.i.i93.i = icmp eq ptr %83, null + br i1 %cmp.i.i.i93.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, label %if.end.i.i.i94.i -if.end.i.i.i: ; preds = %if.end15.i79 - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %83, i64 -1 - %84 = load i32, ptr %arrayidx.i.i.i, align 4 +if.end.i.i.i94.i: ; preds = %if.end15.i.i + %arrayidx.i.i.i95.i = getelementptr inbounds i32, ptr %83, i64 -1 + %84 = load i32, ptr %arrayidx.i.i.i95.i, align 4 %85 = add i32 %84, -1 %86 = zext i32 %85 to i64 - br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i: ; preds = %if.end.i.i.i, %if.end15.i79 - %retval.0.i.i.i = phi i64 [ %86, %if.end.i.i.i ], [ 4294967295, %if.end15.i79 ] - %arrayidx.i1.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i - %87 = load ptr, ptr %arrayidx.i1.i.i, align 8 +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i94.i, %if.end15.i.i + %retval.0.i.i.i96.i = phi i64 [ %86, %if.end.i.i.i94.i ], [ 4294967295, %if.end15.i.i ] + %arrayidx.i1.i.i97.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i96.i + %87 = load ptr, ptr %arrayidx.i1.i.i97.i, align 8 %88 = load i32, ptr %m_num_steps.i, align 8 - %inc.i = add i32 %88, 1 - store i32 %inc.i, ptr %m_num_steps.i, align 8 - %89 = getelementptr i8, ptr %arrayidx.i1.i.i, i64 8 - %call17.val.i = load i32, ptr %89, align 8 - %90 = and i32 %call17.val.i, -51 - %or.cond.not = icmp eq i32 %90, 1 - br i1 %or.cond.not, label %if.then20.i, label %if.end31.i - -if.then20.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i - %91 = load ptr, ptr %m_cache.i.i, align 8 - %call.i.i.i = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %91, ptr noundef %87, i32 noundef 0) - %tobool22.not.i = icmp eq ptr %call.i.i.i, null - br i1 %tobool22.not.i, label %if.end31.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %if.then20.i - %m_ref_count.i.i.i.i.i.i85 = getelementptr inbounds %class.ast, ptr %call.i.i.i, i64 0, i32 2 - %92 = load i32, ptr %m_ref_count.i.i.i.i.i.i85, align 4 - %inc.i.i.i.i.i.i = add i32 %92, 1 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i85, align 4 - %93 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i23.i = icmp eq ptr %93, null - br i1 %cmp.i.i23.i, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %inc.i.i = add i32 %88, 1 + store i32 %inc.i.i, ptr %m_num_steps.i, align 8 + %89 = getelementptr i8, ptr %arrayidx.i1.i.i97.i, i64 8 + %call17.val.i.i = load i32, ptr %89, align 8 + %90 = and i32 %call17.val.i.i, -51 + %or.cond.not.i.i = icmp eq i32 %90, 1 + br i1 %or.cond.not.i.i, label %if.then20.i.i, label %if.end31.i.i + +if.then20.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i + %91 = load ptr, ptr %m_cache.i.i.i, align 8 + %call.i.i.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %91, ptr noundef %87, i32 noundef 0) + %tobool22.not.i.i = icmp eq ptr %call.i.i.i.i, null + br i1 %tobool22.not.i.i, label %if.end31.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then20.i.i + %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %call.i.i.i.i, i64 0, i32 2 + %92 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i = add i32 %92, 1 + store i32 %inc.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 + %93 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i23.i.i = icmp eq ptr %93, null + br i1 %cmp.i.i23.i.i, label %if.then.i.i.i107.i, label %lor.lhs.false.i.i.i.i -lor.lhs.false.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i24.i = getelementptr inbounds i32, ptr %93, i64 -1 - %94 = load i32, ptr %arrayidx.i.i24.i, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %93, i64 -2 - %95 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %94, %95 - br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - %.pre.i.i.i = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 - %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i +lor.lhs.false.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + %arrayidx.i.i24.i.i = getelementptr inbounds i32, ptr %93, i64 -1 + %94 = load i32, ptr %arrayidx.i.i24.i.i, align 4 + %arrayidx4.i.i.i.i = getelementptr inbounds i32, ptr %93, i64 -2 + %95 = load i32, ptr %arrayidx4.i.i.i.i, align 4 + %cmp5.i.i.i.i = icmp eq i32 %94, %95 + br i1 %cmp5.i.i.i.i, label %if.then.i.i.i107.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +if.then.i.i.i107.i: ; preds = %lor.lhs.false.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + %.pre.i.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i, i64 -1 + %.pre1.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %if.then.i.i.i, %lor.lhs.false.i.i.i - %96 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %94, %lor.lhs.false.i.i.i ] - %97 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %93, %lor.lhs.false.i.i.i ] - %idx.ext.i.i.i = zext i32 %96 to i64 - %add.ptr.i.i.i = getelementptr inbounds ptr, ptr %97, i64 %idx.ext.i.i.i - store ptr %call.i.i.i, ptr %add.ptr.i.i.i, align 8 - %98 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %98, i64 -1 - %99 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %99, 1 - store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 - %100 = load ptr, ptr %m_cache_pr.i.i, align 8 - %call.i.i25.i = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %100, ptr noundef %87, i32 noundef 0) - %tobool.not.i.i.i.i26.i = icmp eq ptr %call.i.i25.i, null - br i1 %tobool.not.i.i.i.i26.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %if.then.i.i.i.i27.i - -if.then.i.i.i.i27.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %m_ref_count.i.i.i.i.i28.i = getelementptr inbounds %class.ast, ptr %call.i.i25.i, i64 0, i32 2 - %101 = load i32, ptr %m_ref_count.i.i.i.i.i28.i, align 4 - %inc.i.i.i.i.i29.i = add i32 %101, 1 - store i32 %inc.i.i.i.i.i29.i, ptr %m_ref_count.i.i.i.i.i28.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %if.then.i.i.i.i27.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %102 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i31.i = icmp eq ptr %102, null - br i1 %cmp.i.i31.i, label %if.then.i.i40.i, label %lor.lhs.false.i.i32.i - -lor.lhs.false.i.i32.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i33.i = getelementptr inbounds i32, ptr %102, i64 -1 - %103 = load i32, ptr %arrayidx.i.i33.i, align 4 - %arrayidx4.i.i34.i = getelementptr inbounds i32, ptr %102, i64 -2 - %104 = load i32, ptr %arrayidx4.i.i34.i, align 4 - %cmp5.i.i35.i = icmp eq i32 %103, %104 - br i1 %cmp5.i.i35.i, label %if.then.i.i40.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i40.i: ; preds = %lor.lhs.false.i.i32.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - %.pre.i.i41.i = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i42.i = getelementptr inbounds i32, ptr %.pre.i.i41.i, i64 -1 - %.pre1.i.i43.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i42.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %if.then.i.i40.i, %lor.lhs.false.i.i32.i - %105 = phi i32 [ %.pre1.i.i43.i, %if.then.i.i40.i ], [ %103, %lor.lhs.false.i.i32.i ] - %106 = phi ptr [ %.pre.i.i41.i, %if.then.i.i40.i ], [ %102, %lor.lhs.false.i.i32.i ] - %idx.ext.i.i36.i = zext i32 %105 to i64 - %add.ptr.i.i37.i = getelementptr inbounds ptr, ptr %106, i64 %idx.ext.i.i36.i - store ptr %call.i.i25.i, ptr %add.ptr.i.i37.i, align 8 - %107 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i38.i = getelementptr inbounds i32, ptr %107, i64 -1 - %108 = load i32, ptr %arrayidx10.i.i38.i, align 4 - %inc.i.i39.i = add i32 %108, 1 - store i32 %inc.i.i39.i, ptr %arrayidx10.i.i38.i, align 4 +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %if.then.i.i.i107.i, %lor.lhs.false.i.i.i.i + %96 = phi i32 [ %.pre1.i.i.i.i, %if.then.i.i.i107.i ], [ %94, %lor.lhs.false.i.i.i.i ] + %97 = phi ptr [ %.pre.i.i.i.i, %if.then.i.i.i107.i ], [ %93, %lor.lhs.false.i.i.i.i ] + %idx.ext.i.i.i.i = zext i32 %96 to i64 + %add.ptr.i.i.i.i = getelementptr inbounds ptr, ptr %97, i64 %idx.ext.i.i.i.i + store ptr %call.i.i.i.i, ptr %add.ptr.i.i.i.i, align 8 + %98 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i.i.i = getelementptr inbounds i32, ptr %98, i64 -1 + %99 = load i32, ptr %arrayidx10.i.i.i.i, align 4 + %inc.i.i.i105.i = add i32 %99, 1 + store i32 %inc.i.i.i105.i, ptr %arrayidx10.i.i.i.i, align 4 + %100 = load ptr, ptr %m_cache_pr.i.i.i, align 8 + %call.i.i25.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %100, ptr noundef %87, i32 noundef 0) + %tobool.not.i.i.i.i26.i.i = icmp eq ptr %call.i.i25.i.i, null + br i1 %tobool.not.i.i.i.i26.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i27.i.i + +if.then.i.i.i.i27.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %m_ref_count.i.i.i.i.i28.i.i = getelementptr inbounds %class.ast, ptr %call.i.i25.i.i, i64 0, i32 2 + %101 = load i32, ptr %m_ref_count.i.i.i.i.i28.i.i, align 4 + %inc.i.i.i.i.i29.i.i = add i32 %101, 1 + store i32 %inc.i.i.i.i.i29.i.i, ptr %m_ref_count.i.i.i.i.i28.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i27.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %102 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i31.i.i = icmp eq ptr %102, null + br i1 %cmp.i.i31.i.i, label %if.then.i.i40.i.i, label %lor.lhs.false.i.i32.i.i + +lor.lhs.false.i.i32.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + %arrayidx.i.i33.i.i = getelementptr inbounds i32, ptr %102, i64 -1 + %103 = load i32, ptr %arrayidx.i.i33.i.i, align 4 + %arrayidx4.i.i34.i.i = getelementptr inbounds i32, ptr %102, i64 -2 + %104 = load i32, ptr %arrayidx4.i.i34.i.i, align 4 + %cmp5.i.i35.i.i = icmp eq i32 %103, %104 + br i1 %cmp5.i.i35.i.i, label %if.then.i.i40.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +if.then.i.i40.i.i: ; preds = %lor.lhs.false.i.i32.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + %.pre.i.i41.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i42.i.i = getelementptr inbounds i32, ptr %.pre.i.i41.i.i, i64 -1 + %.pre1.i.i43.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i42.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %if.then.i.i40.i.i, %lor.lhs.false.i.i32.i.i + %105 = phi i32 [ %.pre1.i.i43.i.i, %if.then.i.i40.i.i ], [ %103, %lor.lhs.false.i.i32.i.i ] + %106 = phi ptr [ %.pre.i.i41.i.i, %if.then.i.i40.i.i ], [ %102, %lor.lhs.false.i.i32.i.i ] + %idx.ext.i.i36.i.i = zext i32 %105 to i64 + %add.ptr.i.i37.i.i = getelementptr inbounds ptr, ptr %106, i64 %idx.ext.i.i36.i.i + store ptr %call.i.i25.i.i, ptr %add.ptr.i.i37.i.i, align 8 + %107 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i38.i.i = getelementptr inbounds i32, ptr %107, i64 -1 + %108 = load i32, ptr %arrayidx10.i.i38.i.i, align 4 + %inc.i.i39.i.i = add i32 %108, 1 + store i32 %inc.i.i39.i.i, ptr %arrayidx10.i.i38.i.i, align 4 %109 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i45.i = getelementptr inbounds i32, ptr %109, i64 -1 - %110 = load i32, ptr %arrayidx.i45.i, align 4 - %dec.i.i = add i32 %110, -1 - store i32 %dec.i.i, ptr %arrayidx.i45.i, align 4 - %this.val19.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i.i = icmp eq ptr %87, %call.i.i.i - %cmp.i.i.i.i = icmp eq ptr %this.val19.i, null - %or.cond.i.i = select i1 %cmp.not.i.i, i1 true, i1 %cmp.i.i.i.i - br i1 %or.cond.i.i, label %while.cond.i.backedge, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %this.val19.i, i64 -1 - %111 = load i32, ptr %arrayidx.i.i.i.i, align 4 - %cmp3.i.i.i.i = icmp eq i32 %111, 0 - br i1 %cmp3.i.i.i.i, label %while.cond.i.backedgethread-pre-split, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i + %arrayidx.i45.i.i = getelementptr inbounds i32, ptr %109, i64 -1 + %110 = load i32, ptr %arrayidx.i45.i.i, align 4 + %dec.i.i.i = add i32 %110, -1 + store i32 %dec.i.i.i, ptr %arrayidx.i45.i.i, align 4 + %this.val19.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i = icmp eq ptr %87, %call.i.i.i.i + %cmp.i.i.i.i106.i = icmp eq ptr %this.val19.i.i, null + %or.cond.i.i.i = select i1 %cmp.not.i.i.i, i1 true, i1 %cmp.i.i.i.i106.i + br i1 %or.cond.i.i.i, label %while.cond.backedge.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %arrayidx.i.i.i.i.i = getelementptr inbounds i32, ptr %this.val19.i.i, i64 -1 + %111 = load i32, ptr %arrayidx.i.i.i.i.i, align 4 + %cmp3.i.i.i.i.i = icmp eq i32 %111, 0 + br i1 %cmp3.i.i.i.i.i, label %while.cond.backedgethread-pre-split.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i %112 = add i32 %111, -1 %113 = zext i32 %112 to i64 - %m_new_child.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val19.i, i64 %113, i32 1 - %bf.load.i.i.i = load i32, ptr %m_new_child.i.i.i, align 8 - %bf.set.i.i.i = or i32 %bf.load.i.i.i, 2 - store i32 %bf.set.i.i.i, ptr %m_new_child.i.i.i, align 8 - br label %while.cond.i.backedgethread-pre-split - -while.cond.i.backedgethread-pre-split: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i, %sw.bb36.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - %.pr2947 = load ptr, ptr %m_frame_stack.i, align 8 - br label %while.cond.i.backedge - -while.cond.i.backedge: ; preds = %while.cond.i.backedgethread-pre-split, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %114 = phi ptr [ %.pr2947, %while.cond.i.backedgethread-pre-split ], [ %this.val19.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i ] - %cmp.i.i63 = icmp eq ptr %114, null - br i1 %cmp.i.i63, label %while.end.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, !llvm.loop !10 - -if.end31.i: ; preds = %if.then20.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i - %m_kind.i.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 1 - %bf.load.i.i = load i32, ptr %m_kind.i.i, align 4 - %trunc = trunc i32 %bf.load.i.i to i16 - switch i16 %trunc, label %sw.default.i [ - i16 0, label %sw.bb.i - i16 2, label %sw.bb34.i - i16 1, label %sw.bb36.i + %m_new_child.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val19.i.i, i64 %113, i32 1 + %bf.load.i.i.i.i = load i32, ptr %m_new_child.i.i.i.i, align 8 + %bf.set.i.i.i.i = or i32 %bf.load.i.i.i.i, 2 + store i32 %bf.set.i.i.i.i, ptr %m_new_child.i.i.i.i, align 8 + br label %while.cond.backedgethread-pre-split.i.i + +while.cond.backedgethread-pre-split.i.i: ; preds = %sw.bb36.i.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i + %.pr.i.i = load ptr, ptr %m_frame_stack.i, align 8 + br label %while.cond.backedge.i.i + +while.cond.backedge.i.i: ; preds = %while.cond.backedgethread-pre-split.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i + %114 = phi ptr [ %.pr.i.i, %while.cond.backedgethread-pre-split.i.i ], [ %this.val19.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i ] + %cmp.i.i.i = icmp eq ptr %114, null + br i1 %cmp.i.i.i, label %while.end.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, !llvm.loop !10 + +if.end31.i.i: ; preds = %if.then20.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i + %m_kind.i.i.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 1 + %bf.load.i.i.i = load i32, ptr %m_kind.i.i.i, align 4 + %trunc.i.i = trunc i32 %bf.load.i.i.i to i16 + switch i16 %trunc.i.i, label %sw.default.i.i [ + i16 0, label %sw.bb.i.i + i16 2, label %sw.bb34.i.i + i16 1, label %sw.bb36.i.i ] -sw.bb.i: ; preds = %if.end31.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2293.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr1295.i.i) - %bf.load.i46.i = load i32, ptr %89, align 8 - %bf.lshr.i.i = lshr i32 %bf.load.i46.i, 2 - %bf.clear.i47.i = and i32 %bf.lshr.i.i, 3 - switch i32 %bf.clear.i47.i, label %entry.unreachabledefault.i.i [ - i32 0, label %sw.bb.i.i - i32 1, label %sw.bb292.i.i - i32 2, label %sw.bb348.i.i - i32 3, label %sw.bb349.i.i +sw.bb.i.i: ; preds = %if.end31.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2293.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr1295.i.i.i) + %bf.load.i46.i.i = load i32, ptr %89, align 8 + %bf.lshr.i.i.i = lshr i32 %bf.load.i46.i.i, 2 + %bf.clear.i47.i.i = and i32 %bf.lshr.i.i.i, 3 + switch i32 %bf.clear.i47.i.i, label %sw.bb.i.i.unreachabledefault [ + i32 0, label %sw.bb.i.i.i + i32 1, label %sw.bb292.i.i.i + i32 2, label %sw.bb348.i.i.i + i32 3, label %sw.bb349.i.i.i ] -sw.bb.i.i: ; preds = %sw.bb.i - %m_num_args.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 2 - %115 = load i32, ptr %m_num_args.i, align 8 - br label %while.cond.i.i - -while.cond.i.i: ; preds = %while.body.i.i, %sw.bb.i.i - %bf.load2.i.i = load i32, ptr %89, align 8 - %bf.lshr3.i.i = lshr i32 %bf.load2.i.i, 6 - %cmp.i48.i = icmp ult i32 %bf.lshr3.i.i, %115 - br i1 %cmp.i48.i, label %while.body.i.i, label %while.end.i.i - -while.body.i.i: ; preds = %while.cond.i.i - %idxprom.i = zext nneg i32 %bf.lshr3.i.i to i64 - %arrayidx.i1712 = getelementptr inbounds %class.app, ptr %87, i64 0, i32 3, i64 %idxprom.i - %116 = load ptr, ptr %arrayidx.i1712, align 8 - %117 = and i32 %bf.load2.i.i, -64 - %bf.shl.i.i = add i32 %117, 64 - %bf.clear12.i.i = and i32 %bf.load2.i.i, 63 - %bf.set.i.i = or disjoint i32 %bf.shl.i.i, %bf.clear12.i.i - store i32 %bf.set.i.i, ptr %89, align 8 - %bf.lshr14.i.i = lshr i32 %bf.load2.i.i, 4 - %bf.clear15.i.i = and i32 %bf.lshr14.i.i, 3 - %call16.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %116, i32 noundef %bf.clear15.i.i) - br i1 %call16.i.i, label %while.cond.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, !llvm.loop !11 - -while.end.i.i: ; preds = %while.cond.i.i - %m_decl.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 1 - %118 = load ptr, ptr %m_decl.i, align 8 - %119 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1706 = icmp eq ptr %119, null - br i1 %cmp.i.i1706, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i1707 - -if.end.i.i1707: ; preds = %while.end.i.i - %arrayidx.i.i1708 = getelementptr inbounds i32, ptr %119, i64 -1 - %120 = load i32, ptr %arrayidx.i.i1708, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %while.end.i.i, %if.end.i.i1707 - %retval.0.i.i1710 = phi i32 [ %120, %if.end.i.i1707 ], [ 0, %while.end.i.i ] - %m_spos.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i, i32 2 - %121 = load i32, ptr %m_spos.i.i, align 4 - %sub.i.i = sub i32 %retval.0.i.i1710, %121 - %idx.ext.i.i = zext i32 %121 to i64 - %add.ptr.i.i = getelementptr inbounds ptr, ptr %119, i64 %idx.ext.i.i - %this.val56.i.i = load ptr, ptr %28, align 8 - store ptr null, ptr %new_t.i.i, align 8 - store ptr %this.val56.i.i, ptr %m_manager.i1702, align 8 +sw.bb.i.i.i: ; preds = %sw.bb.i.i + %m_num_args.i.i.i.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 2 + %115 = load i32, ptr %m_num_args.i.i.i.i, align 8 + br label %while.cond.i.i.i + +while.cond.i.i.i: ; preds = %while.body.i.i.i, %sw.bb.i.i.i + %bf.load2.i.i.i = load i32, ptr %89, align 8 + %bf.lshr3.i.i.i = lshr i32 %bf.load2.i.i.i, 6 + %cmp.i48.i.i = icmp ult i32 %bf.lshr3.i.i.i, %115 + br i1 %cmp.i48.i.i, label %while.body.i.i.i, label %while.end.i.i.i + +while.body.i.i.i: ; preds = %while.cond.i.i.i + %idxprom.i.i.i.i = zext nneg i32 %bf.lshr3.i.i.i to i64 + %arrayidx.i.i62.i.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 3, i64 %idxprom.i.i.i.i + %116 = load ptr, ptr %arrayidx.i.i62.i.i, align 8 + %117 = and i32 %bf.load2.i.i.i, -64 + %bf.shl.i.i.i = add i32 %117, 64 + %bf.clear12.i.i.i = and i32 %bf.load2.i.i.i, 63 + %bf.set.i.i.i = or disjoint i32 %bf.shl.i.i.i, %bf.clear12.i.i.i + store i32 %bf.set.i.i.i, ptr %89, align 8 + %bf.lshr14.i.i.i = lshr i32 %bf.load2.i.i.i, 4 + %bf.clear15.i.i.i = and i32 %bf.lshr14.i.i.i, 3 + %call16.i.i.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %116, i32 noundef %bf.clear15.i.i.i) + br i1 %call16.i.i.i, label %while.cond.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, !llvm.loop !11 + +while.end.i.i.i: ; preds = %while.cond.i.i.i + %m_decl.i.i.i.i = getelementptr inbounds %class.app, ptr %87, i64 0, i32 1 + %118 = load ptr, ptr %m_decl.i.i.i.i, align 8 + %119 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i49.i.i = icmp eq ptr %119, null + br i1 %cmp.i.i.i49.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i, label %if.end.i.i.i.i.i + +if.end.i.i.i.i.i: ; preds = %while.end.i.i.i + %arrayidx.i.i.i50.i.i = getelementptr inbounds i32, ptr %119, i64 -1 + %120 = load i32, ptr %arrayidx.i.i.i50.i.i, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i.i.i.i, %while.end.i.i.i + %retval.0.i.i.i.i.i = phi i32 [ %120, %if.end.i.i.i.i.i ], [ 0, %while.end.i.i.i ] + %m_spos.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i96.i, i32 2 + %121 = load i32, ptr %m_spos.i.i.i, align 4 + %sub.i.i.i = sub i32 %retval.0.i.i.i.i.i, %121 + %idx.ext.i.i.i = zext i32 %121 to i64 + %add.ptr.i.i.i = getelementptr inbounds ptr, ptr %119, i64 %idx.ext.i.i.i + %this.val56.i.i.i = load ptr, ptr %28, align 8 + store ptr null, ptr %new_t.i.i.i, align 8 + store ptr %this.val56.i.i.i, ptr %m_manager.i.i.i.i, align 8 invoke void @_ZN13rewriter_core15elim_reflex_prsEj(ptr noundef nonnull align 8 dereferenceable(144) %this, i32 noundef %121) - to label %invoke.cont.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %122 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1697 = icmp eq ptr %122, null - br i1 %cmp.i.i1697, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i1698 - -if.end.i.i1698: ; preds = %invoke.cont.i.i - %arrayidx.i.i1699 = getelementptr inbounds i32, ptr %122, i64 -1 - %123 = load i32, ptr %arrayidx.i.i1699, align 4 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %invoke.cont.i.i, %if.end.i.i1698 - %retval.0.i.i = phi i32 [ %123, %if.end.i.i1698 ], [ 0, %invoke.cont.i.i ] - %124 = load i32, ptr %m_spos.i.i, align 4 - %sub29.i.i = sub i32 %retval.0.i.i, %124 - %cmp30.i.i = icmp eq i32 %retval.0.i.i, %124 - br i1 %cmp30.i.i, label %invoke.cont32.i.i, label %if.else.i.i - -invoke.cont32.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %m_ref_count.i.i.i1684 = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 - %125 = load i32, ptr %m_ref_count.i.i.i1684, align 4 - %inc.i.i.i1685 = add i32 %125, 1 - store i32 %inc.i.i.i1685, ptr %m_ref_count.i.i.i1684, align 4 - store ptr %87, ptr %new_t.i.i, align 8 - %126 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i1673 = icmp eq ptr %126, null - br i1 %tobool.not.i3.i1673, label %if.end54.i.i, label %if.then.i.i.i1674 - -if.then.i.i.i1674: ; preds = %invoke.cont32.i.i - %127 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i1676 = getelementptr inbounds %class.ast, ptr %126, i64 0, i32 2 - %128 = load i32, ptr %m_ref_count.i.i.i.i1676, align 4 - %dec.i.i.i.i1677 = add i32 %128, -1 - store i32 %dec.i.i.i.i1677, ptr %m_ref_count.i.i.i.i1676, align 4 - %cmp.i.i.i1678 = icmp eq i32 %dec.i.i.i.i1677, 0 - br i1 %cmp.i.i.i1678, label %if.then2.i.i.i1679, label %if.end54.i.i - -if.then2.i.i.i1679: ; preds = %if.then.i.i.i1674 + to label %invoke.cont.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %122 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i64.i.i.i = icmp eq ptr %122, null + br i1 %cmp.i.i64.i.i.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i, label %if.end.i.i65.i.i.i + +if.end.i.i65.i.i.i: ; preds = %invoke.cont.i.i.i + %arrayidx.i.i66.i.i.i = getelementptr inbounds i32, ptr %122, i64 -1 + %123 = load i32, ptr %arrayidx.i.i66.i.i.i, align 4 + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i65.i.i.i, %invoke.cont.i.i.i + %retval.0.i.i67.i.i.i = phi i32 [ %123, %if.end.i.i65.i.i.i ], [ 0, %invoke.cont.i.i.i ] + %124 = load i32, ptr %m_spos.i.i.i, align 4 + %sub29.i.i.i = sub i32 %retval.0.i.i67.i.i.i, %124 + %cmp30.i.i.i = icmp eq i32 %retval.0.i.i67.i.i.i, %124 + br i1 %cmp30.i.i.i, label %invoke.cont32.i.i.i, label %if.else.i.i.i + +invoke.cont32.i.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %m_ref_count.i.i.i.i.i104.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 + %125 = load i32, ptr %m_ref_count.i.i.i.i.i104.i, align 4 + %inc.i.i.i.i.i.i = add i32 %125, 1 + store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i104.i, align 4 + store ptr %87, ptr %new_t.i.i.i, align 8 + %126 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i69.i.i.i = icmp eq ptr %126, null + br i1 %tobool.not.i3.i69.i.i.i, label %if.end54.i.i.i, label %if.then.i.i.i70.i.i.i + +if.then.i.i.i70.i.i.i: ; preds = %invoke.cont32.i.i.i + %127 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i72.i.i.i = getelementptr inbounds %class.ast, ptr %126, i64 0, i32 2 + %128 = load i32, ptr %m_ref_count.i.i.i.i72.i.i.i, align 4 + %dec.i.i.i.i73.i.i.i = add i32 %128, -1 + store i32 %dec.i.i.i.i73.i.i.i, ptr %m_ref_count.i.i.i.i72.i.i.i, align 4 + %cmp.i.i.i74.i.i.i = icmp eq i32 %dec.i.i.i.i73.i.i.i, 0 + br i1 %cmp.i.i.i74.i.i.i, label %if.then2.i.i.i75.i.i.i, label %if.end54.i.i.i + +if.then2.i.i.i75.i.i.i: ; preds = %if.then.i.i.i70.i.i.i invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %127, ptr noundef nonnull %126) - to label %if.end54.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %if.end54.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i -lpad.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i1334 - %lpad.loopexit2854 = landingpad { ptr, i32 } +lpad.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i377.i.i.i + %lpad.loopexit661.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1387 - %lpad.loopexit2857 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i324.i.i.i + %lpad.loopexit663.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1589 - %lpad.loopexit2860 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i142.i.i.i + %lpad.loopexit666.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1638 - %lpad.loopexit2863 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i + %lpad.loopexit669.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i + br label %eh.resume.i.i.i -lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.end54.i.i, %if.then2.i.i.i1679, %if.then2.i.i.i1653, %if.then.i.i1608, %if.then2.i.i.i1562, %if.then2.i.i.i1548, %if.then.i.i1530, %if.then2.i.i.i1512, %if.then.i1502, %if.then2.i.i.i1485, %if.then2.i.i.i1475, %if.then2.i.i.i1430, %if.then2.i.i.i1416, %if.then2.i.i.i1402, %if.then.i.i1357, %if.then.i1339, %if.then.i.i1304, %if.then2.i.i.i1286, %if.then2.i.i.i1261, %invoke.cont239.i.i, %if.then234.i.i, %if.end83.i.i, %if.then73.i.i, %invoke.cont39.i.i, %if.else.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %lpad.loopexit.split-lp2864 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.end54.i.i.i, %if.then2.i.i.i426.i.i.i, %if.then2.i.i.i409.i.i.i, %if.then.i.i396.i.i.i, %if.then.i350.i.i.i, %if.then.i.i343.i.i.i, %if.then2.i.i.i297.i.i.i, %if.then2.i.i.i283.i.i.i, %invoke.cont239.i.i.i, %if.then2.i.i.i269.i.i.i, %if.then234.i.i.i, %if.then2.i.i.i225.i.i.i, %if.then2.i.i.i216.i.i.i, %if.then.i.i53.i.i, %if.then2.i.i.i199.i.i.i, %if.then.i.i187.i.i.i, %if.then2.i.i.i169.i.i.i, %if.end83.i.i.i, %if.then2.i.i.i155.i.i.i, %if.then73.i.i.i, %if.then.i.i119.i.i.i, %if.then2.i.i.i105.i.i.i, %invoke.cont39.i.i.i, %if.else.i.i.i, %if.then2.i.i.i75.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %lpad.loopexit.split-lp670.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i - -lpad.i.i: ; preds = %lpad.i.i.loopexit.split-lp.loopexit, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.i.i.loopexit - %lpad.phi2856 = phi { ptr, i32 } [ %lpad.loopexit2854, %lpad.i.i.loopexit ], [ %lpad.loopexit2857, %lpad.i.i.loopexit.split-lp.loopexit ], [ %lpad.loopexit2860, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2863, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2864, %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i) #15 - br label %common.resume - -if.else.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - %this.val55.i.i = load ptr, ptr %28, align 8 - %call38.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i.i, ptr noundef %118, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i) - to label %invoke.cont37.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont37.i.i: ; preds = %if.else.i.i - %tobool.not.i1658 = icmp eq ptr %call38.i.i, null - br i1 %tobool.not.i1658, label %invoke.cont39.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i1659 - -_ZN11ast_manager7inc_refEP3ast.exit.i1659: ; preds = %invoke.cont37.i.i - %m_ref_count.i.i.i1660 = getelementptr inbounds %class.ast, ptr %call38.i.i, i64 0, i32 2 - %129 = load i32, ptr %m_ref_count.i.i.i1660, align 4 - %inc.i.i.i1661 = add i32 %129, 1 - store i32 %inc.i.i.i1661, ptr %m_ref_count.i.i.i1660, align 4 - br label %invoke.cont39.i.i - -invoke.cont39.i.i: ; preds = %invoke.cont37.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i1659 - store ptr %call38.i.i, ptr %new_t.i.i, align 8 - %this.val54.i.i = load ptr, ptr %28, align 8 - %130 = load ptr, ptr %m_nodes.i30.i, align 8 - %131 = load i32, ptr %m_spos.i.i, align 4 - %idx.ext47.i.i = zext i32 %131 to i64 - %add.ptr48.i.i = getelementptr inbounds ptr, ptr %130, i64 %idx.ext47.i.i - %call50.i.i = invoke noundef ptr @_ZN11ast_manager13mk_congruenceEP3appS1_jPKS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i.i, ptr noundef nonnull %87, ptr noundef %call38.i.i, i32 noundef %sub29.i.i, ptr noundef %add.ptr48.i.i) - to label %invoke.cont49.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont49.i.i: ; preds = %invoke.cont39.i.i - %tobool.not.i1642 = icmp eq ptr %call50.i.i, null - br i1 %tobool.not.i1642, label %if.end.i1646, label %_ZN11ast_manager7inc_refEP3ast.exit.i1643 - -_ZN11ast_manager7inc_refEP3ast.exit.i1643: ; preds = %invoke.cont49.i.i - %m_ref_count.i.i.i1644 = getelementptr inbounds %class.ast, ptr %call50.i.i, i64 0, i32 2 - %132 = load i32, ptr %m_ref_count.i.i.i1644, align 4 - %inc.i.i.i1645 = add i32 %132, 1 - store i32 %inc.i.i.i1645, ptr %m_ref_count.i.i.i1644, align 4 - br label %if.end.i1646 - -if.end.i1646: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1643, %invoke.cont49.i.i - %133 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i1647 = icmp eq ptr %133, null - br i1 %tobool.not.i3.i1647, label %if.end54.i.i, label %if.then.i.i.i1648 - -if.then.i.i.i1648: ; preds = %if.end.i1646 - %134 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i1650 = getelementptr inbounds %class.ast, ptr %133, i64 0, i32 2 - %135 = load i32, ptr %m_ref_count.i.i.i.i1650, align 4 - %dec.i.i.i.i1651 = add i32 %135, -1 - store i32 %dec.i.i.i.i1651, ptr %m_ref_count.i.i.i.i1650, align 4 - %cmp.i.i.i1652 = icmp eq i32 %dec.i.i.i.i1651, 0 - br i1 %cmp.i.i.i1652, label %if.then2.i.i.i1653, label %if.end54.i.i - -if.then2.i.i.i1653: ; preds = %if.then.i.i.i1648 + br label %eh.resume.i.i.i + +if.else.i.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i + %this.val55.i.i.i = load ptr, ptr %28, align 8 + %call38.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i.i.i, ptr noundef %118, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i) + to label %invoke.cont37.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont37.i.i.i: ; preds = %if.else.i.i.i + %tobool.not.i78.i.i.i = icmp eq ptr %call38.i.i.i, null + br i1 %tobool.not.i78.i.i.i, label %invoke.cont39.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i: ; preds = %invoke.cont37.i.i.i + %m_ref_count.i.i.i80.i.i.i = getelementptr inbounds %class.ast, ptr %call38.i.i.i, i64 0, i32 2 + %129 = load i32, ptr %m_ref_count.i.i.i80.i.i.i, align 4 + %inc.i.i.i81.i.i.i = add i32 %129, 1 + store i32 %inc.i.i.i81.i.i.i, ptr %m_ref_count.i.i.i80.i.i.i, align 4 + br label %invoke.cont39.i.i.i + +invoke.cont39.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i79.i.i.i, %invoke.cont37.i.i.i + store ptr %call38.i.i.i, ptr %new_t.i.i.i, align 8 + %this.val54.i.i.i = load ptr, ptr %28, align 8 + %130 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %131 = load i32, ptr %m_spos.i.i.i, align 4 + %idx.ext47.i.i.i = zext i32 %131 to i64 + %add.ptr48.i.i.i = getelementptr inbounds ptr, ptr %130, i64 %idx.ext47.i.i.i + %call50.i.i.i = invoke noundef ptr @_ZN11ast_manager13mk_congruenceEP3appS1_jPKS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i.i.i, ptr noundef nonnull %87, ptr noundef %call38.i.i.i, i32 noundef %sub29.i.i.i, ptr noundef %add.ptr48.i.i.i) + to label %invoke.cont49.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont49.i.i.i: ; preds = %invoke.cont39.i.i.i + %tobool.not.i94.i.i.i = icmp eq ptr %call50.i.i.i, null + br i1 %tobool.not.i94.i.i.i, label %if.end.i98.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i: ; preds = %invoke.cont49.i.i.i + %m_ref_count.i.i.i96.i.i.i = getelementptr inbounds %class.ast, ptr %call50.i.i.i, i64 0, i32 2 + %132 = load i32, ptr %m_ref_count.i.i.i96.i.i.i, align 4 + %inc.i.i.i97.i.i.i = add i32 %132, 1 + store i32 %inc.i.i.i97.i.i.i, ptr %m_ref_count.i.i.i96.i.i.i, align 4 + br label %if.end.i98.i.i.i + +if.end.i98.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i95.i.i.i, %invoke.cont49.i.i.i + %133 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i99.i.i.i = icmp eq ptr %133, null + br i1 %tobool.not.i3.i99.i.i.i, label %if.end54.i.i.i, label %if.then.i.i.i100.i.i.i + +if.then.i.i.i100.i.i.i: ; preds = %if.end.i98.i.i.i + %134 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i102.i.i.i = getelementptr inbounds %class.ast, ptr %133, i64 0, i32 2 + %135 = load i32, ptr %m_ref_count.i.i.i.i102.i.i.i, align 4 + %dec.i.i.i.i103.i.i.i = add i32 %135, -1 + store i32 %dec.i.i.i.i103.i.i.i, ptr %m_ref_count.i.i.i.i102.i.i.i, align 4 + %cmp.i.i.i104.i.i.i = icmp eq i32 %dec.i.i.i.i103.i.i.i, 0 + br i1 %cmp.i.i.i104.i.i.i, label %if.then2.i.i.i105.i.i.i, label %if.end54.i.i.i + +if.then2.i.i.i105.i.i.i: ; preds = %if.then.i.i.i100.i.i.i invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %134, ptr noundef nonnull %133) - to label %if.end54.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.end54.i.i: ; preds = %if.then.i.i.i1648, %if.end.i1646, %if.then2.i.i.i1653, %if.then.i.i.i1674, %invoke.cont32.i.i, %if.then2.i.i.i1679 - %storemerge2946 = phi ptr [ null, %if.then2.i.i.i1679 ], [ null, %invoke.cont32.i.i ], [ null, %if.then.i.i.i1674 ], [ %call50.i.i, %if.then2.i.i.i1653 ], [ %call50.i.i, %if.end.i1646 ], [ %call50.i.i, %if.then.i.i.i1648 ] - %136 = phi ptr [ %87, %if.then2.i.i.i1679 ], [ %87, %invoke.cont32.i.i ], [ %87, %if.then.i.i.i1674 ], [ %call38.i.i, %if.then2.i.i.i1653 ], [ %call38.i.i, %if.end.i1646 ], [ %call38.i.i, %if.then.i.i.i1648 ] - store ptr %storemerge2946, ptr %m_pr.i67.i, align 8 - %137 = load ptr, ptr %m_cfg.i.i, align 8 - %call56.i.i = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %137, ptr noundef %118, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i74.i) - to label %invoke.cont55.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont55.i.i: ; preds = %if.end54.i.i - %cmp57.not.i.i = icmp eq i32 %call56.i.i, 5 - br i1 %cmp57.not.i.i, label %if.else229.i.i, label %if.then58.i.i - -if.then58.i.i: ; preds = %invoke.cont55.i.i - %138 = load i32, ptr %m_spos.i.i, align 4 - %139 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1616 = icmp eq ptr %139, null - br i1 %cmp.i.i.i1616, label %invoke.cont61.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1617 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1617: ; preds = %if.then58.i.i - %arrayidx.i.i.i1620 = getelementptr inbounds i32, ptr %139, i64 -1 - %140 = load i32, ptr %arrayidx.i.i.i1620, align 4 - %141 = zext i32 %140 to i64 - %add.ptr.i.i1621 = getelementptr inbounds ptr, ptr %139, i64 %141 - %cmp3.i.i1622 = icmp ugt i32 %140, %138 - br i1 %cmp3.i.i1622, label %for.body.i.i1625.preheader, label %if.then.i.i1623 - -for.body.i.i1625.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1617 - %idx.ext.i1618 = zext i32 %138 to i64 - %add.ptr.i1619 = getelementptr inbounds ptr, ptr %139, i64 %idx.ext.i1618 - br label %for.body.i.i1625 - -for.body.i.i1625: ; preds = %for.body.i.i1625.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1632 - %it.04.i.i1626 = phi ptr [ %incdec.ptr.i.i1633, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1632 ], [ %add.ptr.i1619, %for.body.i.i1625.preheader ] - %142 = load ptr, ptr %it.04.i.i1626, align 8 - %143 = load ptr, ptr %m_result_stack.i965, align 8 - %tobool.not.i.i.i.i.i1627 = icmp eq ptr %142, null - br i1 %tobool.not.i.i.i.i.i1627, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1632, label %if.then.i.i.i.i.i1628 - -if.then.i.i.i.i.i1628: ; preds = %for.body.i.i1625 - %m_ref_count.i.i.i.i.i.i1629 = getelementptr inbounds %class.ast, ptr %142, i64 0, i32 2 - %144 = load i32, ptr %m_ref_count.i.i.i.i.i.i1629, align 4 - %dec.i.i.i.i.i.i1630 = add i32 %144, -1 - store i32 %dec.i.i.i.i.i.i1630, ptr %m_ref_count.i.i.i.i.i.i1629, align 4 - %cmp.i.i.i.i.i1631 = icmp eq i32 %dec.i.i.i.i.i.i1630, 0 - br i1 %cmp.i.i.i.i.i1631, label %if.then2.i.i.i.i.i1638, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1632 - -if.then2.i.i.i.i.i1638: ; preds = %if.then.i.i.i.i.i1628 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %143, ptr noundef nonnull %142) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1632 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1632: ; preds = %if.then2.i.i.i.i.i1638, %if.then.i.i.i.i.i1628, %for.body.i.i1625 - %incdec.ptr.i.i1633 = getelementptr inbounds ptr, ptr %it.04.i.i1626, i64 1 - %cmp.i.i1634 = icmp ult ptr %incdec.ptr.i.i1633, %add.ptr.i.i1621 - br i1 %cmp.i.i1634, label %for.body.i.i1625, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1635, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1635: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1632 - %.pre.i1636 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i1637 = icmp eq ptr %.pre.i1636, null - br i1 %tobool.not.i.i1637, label %invoke.cont61.i.i, label %if.then.i.i1623 - -if.then.i.i1623: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1635, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1617 - %145 = phi ptr [ %.pre.i1636, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1635 ], [ %139, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1617 ] - %arrayidx.i.i1624 = getelementptr inbounds i32, ptr %145, i64 -1 - store i32 %138, ptr %arrayidx.i.i1624, align 4 - br label %invoke.cont61.i.i - -invoke.cont61.i.i: ; preds = %if.then.i.i1623, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1635, %if.then58.i.i - %146 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i.i.i.i1593 = icmp eq ptr %146, null - br i1 %tobool.not.i.i.i.i1593, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1597, label %if.then.i.i.i.i1594 - -if.then.i.i.i.i1594: ; preds = %invoke.cont61.i.i - %m_ref_count.i.i.i.i.i1595 = getelementptr inbounds %class.ast, ptr %146, i64 0, i32 2 - %147 = load i32, ptr %m_ref_count.i.i.i.i.i1595, align 4 - %inc.i.i.i.i.i1596 = add i32 %147, 1 - store i32 %inc.i.i.i.i.i1596, ptr %m_ref_count.i.i.i.i.i1595, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1597 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1597: ; preds = %if.then.i.i.i.i1594, %invoke.cont61.i.i - %148 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1599 = icmp eq ptr %148, null - br i1 %cmp.i.i1599, label %if.then.i.i1608, label %lor.lhs.false.i.i1600 - -lor.lhs.false.i.i1600: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1597 - %arrayidx.i.i1601 = getelementptr inbounds i32, ptr %148, i64 -1 - %149 = load i32, ptr %arrayidx.i.i1601, align 4 - %arrayidx4.i.i1602 = getelementptr inbounds i32, ptr %148, i64 -2 - %150 = load i32, ptr %arrayidx4.i.i1602, align 4 - %cmp5.i.i1603 = icmp eq i32 %149, %150 - br i1 %cmp5.i.i1603, label %if.then.i.i1608, label %invoke.cont65.i.i - -if.then.i.i1608: ; preds = %lor.lhs.false.i.i1600, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1597 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc1612 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1612: ; preds = %if.then.i.i1608 - %.pre.i.i1609 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1610 = getelementptr inbounds i32, ptr %.pre.i.i1609, i64 -1 - %.pre1.i.i1611 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1610, align 4 - br label %invoke.cont65.i.i - -invoke.cont65.i.i: ; preds = %.noexc1612, %lor.lhs.false.i.i1600 - %151 = phi i32 [ %.pre1.i.i1611, %.noexc1612 ], [ %149, %lor.lhs.false.i.i1600 ] - %152 = phi ptr [ %.pre.i.i1609, %.noexc1612 ], [ %148, %lor.lhs.false.i.i1600 ] - %idx.ext.i.i1604 = zext i32 %151 to i64 - %add.ptr.i.i1605 = getelementptr inbounds ptr, ptr %152, i64 %idx.ext.i.i1604 - store ptr %146, ptr %add.ptr.i.i1605, align 8 - %153 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1606 = getelementptr inbounds i32, ptr %153, i64 -1 - %154 = load i32, ptr %arrayidx10.i.i1606, align 4 - %inc.i.i1607 = add i32 %154, 1 - store i32 %inc.i.i1607, ptr %arrayidx10.i.i1606, align 4 - %155 = load i32, ptr %m_spos.i.i, align 4 - %156 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1567 = icmp eq ptr %156, null - br i1 %cmp.i.i.i1567, label %invoke.cont69.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i1568 - -_ZN6vectorIP3appLb0EjE3endEv.exit.i1568: ; preds = %invoke.cont65.i.i - %arrayidx.i.i.i1571 = getelementptr inbounds i32, ptr %156, i64 -1 - %157 = load i32, ptr %arrayidx.i.i.i1571, align 4 - %158 = zext i32 %157 to i64 - %add.ptr.i.i1572 = getelementptr inbounds ptr, ptr %156, i64 %158 - %cmp3.i.i1573 = icmp ugt i32 %157, %155 - br i1 %cmp3.i.i1573, label %for.body.i.i1576.preheader, label %if.then.i.i1574 - -for.body.i.i1576.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i1568 - %idx.ext.i1569 = zext i32 %155 to i64 - %add.ptr.i1570 = getelementptr inbounds ptr, ptr %156, i64 %idx.ext.i1569 - br label %for.body.i.i1576 - -for.body.i.i1576: ; preds = %for.body.i.i1576.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1583 - %it.04.i.i1577 = phi ptr [ %incdec.ptr.i.i1584, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1583 ], [ %add.ptr.i1570, %for.body.i.i1576.preheader ] - %159 = load ptr, ptr %it.04.i.i1577, align 8 - %160 = load ptr, ptr %m_result_pr_stack.i721, align 8 - %tobool.not.i.i.i.i.i1578 = icmp eq ptr %159, null - br i1 %tobool.not.i.i.i.i.i1578, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1583, label %if.then.i.i.i.i.i1579 - -if.then.i.i.i.i.i1579: ; preds = %for.body.i.i1576 - %m_ref_count.i.i.i.i.i.i1580 = getelementptr inbounds %class.ast, ptr %159, i64 0, i32 2 - %161 = load i32, ptr %m_ref_count.i.i.i.i.i.i1580, align 4 - %dec.i.i.i.i.i.i1581 = add i32 %161, -1 - store i32 %dec.i.i.i.i.i.i1581, ptr %m_ref_count.i.i.i.i.i.i1580, align 4 - %cmp.i.i.i.i.i1582 = icmp eq i32 %dec.i.i.i.i.i.i1581, 0 - br i1 %cmp.i.i.i.i.i1582, label %if.then2.i.i.i.i.i1589, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1583 - -if.then2.i.i.i.i.i1589: ; preds = %if.then.i.i.i.i.i1579 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %160, ptr noundef nonnull %159) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1583 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1583: ; preds = %if.then2.i.i.i.i.i1589, %if.then.i.i.i.i.i1579, %for.body.i.i1576 - %incdec.ptr.i.i1584 = getelementptr inbounds ptr, ptr %it.04.i.i1577, i64 1 - %cmp.i.i1585 = icmp ult ptr %incdec.ptr.i.i1584, %add.ptr.i.i1572 - br i1 %cmp.i.i1585, label %for.body.i.i1576, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1586, !llvm.loop !9 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1586: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1583 - %.pre.i1587 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i1588 = icmp eq ptr %.pre.i1587, null - br i1 %tobool.not.i.i1588, label %invoke.cont69.i.i, label %if.then.i.i1574 - -if.then.i.i1574: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1586, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1568 - %162 = phi ptr [ %.pre.i1587, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1586 ], [ %156, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1568 ] - %arrayidx.i.i1575 = getelementptr inbounds i32, ptr %162, i64 -1 - store i32 %155, ptr %arrayidx.i.i1575, align 4 - br label %invoke.cont69.i.i - -invoke.cont69.i.i: ; preds = %if.then.i.i1574, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1586, %invoke.cont65.i.i - %163 = load ptr, ptr %m_pr2.i.i, align 8 - %cmp.i1565 = icmp eq ptr %163, null - br i1 %cmp.i1565, label %if.then73.i.i, label %if.end83.i.i - -if.then73.i.i: ; preds = %invoke.cont69.i.i - %this.val53.i.i = load ptr, ptr %28, align 8 - %164 = load ptr, ptr %m_r.i74.i, align 8 - %call79.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val53.i.i, ptr noundef %136, ptr noundef %164) - to label %invoke.cont78.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont78.i.i: ; preds = %if.then73.i.i - %tobool.not.i1551 = icmp eq ptr %call79.i.i, null - br i1 %tobool.not.i1551, label %if.end.i1555, label %_ZN11ast_manager7inc_refEP3ast.exit.i1552 - -_ZN11ast_manager7inc_refEP3ast.exit.i1552: ; preds = %invoke.cont78.i.i - %m_ref_count.i.i.i1553 = getelementptr inbounds %class.ast, ptr %call79.i.i, i64 0, i32 2 - %165 = load i32, ptr %m_ref_count.i.i.i1553, align 4 - %inc.i.i.i1554 = add i32 %165, 1 - store i32 %inc.i.i.i1554, ptr %m_ref_count.i.i.i1553, align 4 - br label %if.end.i1555 - -if.end.i1555: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1552, %invoke.cont78.i.i - %166 = load ptr, ptr %m_pr2.i.i, align 8 - %tobool.not.i3.i1556 = icmp eq ptr %166, null - br i1 %tobool.not.i3.i1556, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1564, label %if.then.i.i.i1557 - -if.then.i.i.i1557: ; preds = %if.end.i1555 - %167 = load ptr, ptr %m_manager.i.i1558, align 8 - %m_ref_count.i.i.i.i1559 = getelementptr inbounds %class.ast, ptr %166, i64 0, i32 2 - %168 = load i32, ptr %m_ref_count.i.i.i.i1559, align 4 - %dec.i.i.i.i1560 = add i32 %168, -1 - store i32 %dec.i.i.i.i1560, ptr %m_ref_count.i.i.i.i1559, align 4 - %cmp.i.i.i1561 = icmp eq i32 %dec.i.i.i.i1560, 0 - br i1 %cmp.i.i.i1561, label %if.then2.i.i.i1562, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1564 - -if.then2.i.i.i1562: ; preds = %if.then.i.i.i1557 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %167, ptr noundef nonnull %166) - to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1564 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1564: ; preds = %if.then2.i.i.i1562, %if.end.i1555, %if.then.i.i.i1557 - store ptr %call79.i.i, ptr %m_pr2.i.i, align 8 - br label %if.end83.i.i - -if.end83.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1564, %invoke.cont69.i.i - %169 = phi ptr [ %call79.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1564 ], [ %163, %invoke.cont69.i.i ] - %this.val52.i.i = load ptr, ptr %28, align 8 - %170 = load ptr, ptr %m_pr.i67.i, align 8 - %call90.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val52.i.i, ptr noundef %170, ptr noundef %169) - to label %invoke.cont89.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont89.i.i: ; preds = %if.end83.i.i - %tobool.not.i1537 = icmp eq ptr %call90.i.i, null - br i1 %tobool.not.i1537, label %if.end.i1541, label %_ZN11ast_manager7inc_refEP3ast.exit.i1538 - -_ZN11ast_manager7inc_refEP3ast.exit.i1538: ; preds = %invoke.cont89.i.i - %m_ref_count.i.i.i1539 = getelementptr inbounds %class.ast, ptr %call90.i.i, i64 0, i32 2 - %171 = load i32, ptr %m_ref_count.i.i.i1539, align 4 - %inc.i.i.i1540 = add i32 %171, 1 - store i32 %inc.i.i.i1540, ptr %m_ref_count.i.i.i1539, align 4 - br label %if.end.i1541 - -if.end.i1541: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1538, %invoke.cont89.i.i - %172 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i1542 = icmp eq ptr %172, null - br i1 %tobool.not.i3.i1542, label %invoke.cont92.i.i, label %if.then.i.i.i1543 - -if.then.i.i.i1543: ; preds = %if.end.i1541 - %173 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i1545 = getelementptr inbounds %class.ast, ptr %172, i64 0, i32 2 - %174 = load i32, ptr %m_ref_count.i.i.i.i1545, align 4 - %dec.i.i.i.i1546 = add i32 %174, -1 - store i32 %dec.i.i.i.i1546, ptr %m_ref_count.i.i.i.i1545, align 4 - %cmp.i.i.i1547 = icmp eq i32 %dec.i.i.i.i1546, 0 - br i1 %cmp.i.i.i1547, label %if.then2.i.i.i1548, label %invoke.cont92.i.i - -if.then2.i.i.i1548: ; preds = %if.then.i.i.i1543 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %173, ptr noundef nonnull %172) - to label %invoke.cont92.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont92.i.i: ; preds = %if.then.i.i.i1543, %if.end.i1541, %if.then2.i.i.i1548 - store ptr %call90.i.i, ptr %m_pr.i67.i, align 8 - br i1 %tobool.not.i1537, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1519, label %if.then.i.i.i.i1516 - -if.then.i.i.i.i1516: ; preds = %invoke.cont92.i.i - %m_ref_count.i.i.i.i.i1517 = getelementptr inbounds %class.ast, ptr %call90.i.i, i64 0, i32 2 - %175 = load i32, ptr %m_ref_count.i.i.i.i.i1517, align 4 - %inc.i.i.i.i.i1518 = add i32 %175, 1 - store i32 %inc.i.i.i.i.i1518, ptr %m_ref_count.i.i.i.i.i1517, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1519 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1519: ; preds = %if.then.i.i.i.i1516, %invoke.cont92.i.i - %176 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1521 = icmp eq ptr %176, null - br i1 %cmp.i.i1521, label %if.then.i.i1530, label %lor.lhs.false.i.i1522 - -lor.lhs.false.i.i1522: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1519 - %arrayidx.i.i1523 = getelementptr inbounds i32, ptr %176, i64 -1 - %177 = load i32, ptr %arrayidx.i.i1523, align 4 - %arrayidx4.i.i1524 = getelementptr inbounds i32, ptr %176, i64 -2 - %178 = load i32, ptr %arrayidx4.i.i1524, align 4 - %cmp5.i.i1525 = icmp eq i32 %177, %178 - br i1 %cmp5.i.i1525, label %if.then.i.i1530, label %invoke.cont97.i.i - -if.then.i.i1530: ; preds = %lor.lhs.false.i.i1522, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1519 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1534 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1534: ; preds = %if.then.i.i1530 - %.pre.i.i1531 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1532 = getelementptr inbounds i32, ptr %.pre.i.i1531, i64 -1 - %.pre1.i.i1533 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1532, align 4 - br label %invoke.cont97.i.i - -invoke.cont97.i.i: ; preds = %.noexc1534, %lor.lhs.false.i.i1522 - %179 = phi i32 [ %.pre1.i.i1533, %.noexc1534 ], [ %177, %lor.lhs.false.i.i1522 ] - %180 = phi ptr [ %.pre.i.i1531, %.noexc1534 ], [ %176, %lor.lhs.false.i.i1522 ] - %idx.ext.i.i1526 = zext i32 %179 to i64 - %add.ptr.i.i1527 = getelementptr inbounds ptr, ptr %180, i64 %idx.ext.i.i1526 - store ptr %call90.i.i, ptr %add.ptr.i.i1527, align 8 - %181 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1528 = getelementptr inbounds i32, ptr %181, i64 -1 - %182 = load i32, ptr %arrayidx10.i.i1528, align 4 - %inc.i.i1529 = add i32 %182, 1 - store i32 %inc.i.i1529, ptr %arrayidx10.i.i1528, align 4 - %183 = load ptr, ptr %m_pr2.i.i, align 8 - %tobool.not.i3.i1506 = icmp eq ptr %183, null - br i1 %tobool.not.i3.i1506, label %if.then103.i.i, label %if.then.i.i.i1507 - -if.then.i.i.i1507: ; preds = %invoke.cont97.i.i - %184 = load ptr, ptr %m_manager.i.i1558, align 8 - %m_ref_count.i.i.i.i1509 = getelementptr inbounds %class.ast, ptr %183, i64 0, i32 2 - %185 = load i32, ptr %m_ref_count.i.i.i.i1509, align 4 - %dec.i.i.i.i1510 = add i32 %185, -1 - store i32 %dec.i.i.i.i1510, ptr %m_ref_count.i.i.i.i1509, align 4 - %cmp.i.i.i1511 = icmp eq i32 %dec.i.i.i.i1510, 0 - br i1 %cmp.i.i.i1511, label %if.then2.i.i.i1512, label %if.then103.i.i - -if.then2.i.i.i1512: ; preds = %if.then.i.i.i1507 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %184, ptr noundef nonnull %183) - to label %if.then103.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.then103.i.i: ; preds = %if.then.i.i.i1507, %invoke.cont97.i.i, %if.then2.i.i.i1512 - store ptr null, ptr %m_pr2.i.i, align 8 - %bf.load108.i.i = load i32, ptr %89, align 8 - %bf.clear109.i.i = and i32 %bf.load108.i.i, 1 - %tobool.i.i.not = icmp eq i32 %bf.clear109.i.i, 0 - br i1 %tobool.i.i.not, label %invoke.cont110.i.i, label %if.then.i1502 - -if.then.i1502: ; preds = %if.then103.i.i - %186 = load ptr, ptr %m_pr.i67.i, align 8 - %187 = load ptr, ptr %m_r.i74.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %187, ptr noundef %186) - to label %invoke.cont110.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont110.i.i: ; preds = %if.then103.i.i, %if.then.i1502 - %188 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1498 = getelementptr inbounds i32, ptr %188, i64 -1 - %189 = load i32, ptr %arrayidx.i1498, align 4 - %dec.i1499 = add i32 %189, -1 - store i32 %dec.i1499, ptr %arrayidx.i1498, align 4 - %this.val58.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i1488 = icmp eq ptr %this.val58.i.i, null - br i1 %cmp.i.i1488, label %invoke.cont112.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1489 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1489: ; preds = %invoke.cont110.i.i - %arrayidx.i.i1490 = getelementptr inbounds i32, ptr %this.val58.i.i, i64 -1 - %190 = load i32, ptr %arrayidx.i.i1490, align 4 - %cmp3.i.i1491 = icmp eq i32 %190, 0 - br i1 %cmp3.i.i1491, label %invoke.cont112.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1492 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1492: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1489 - %191 = add i32 %190, -1 - %192 = zext i32 %191 to i64 - %m_new_child.i1493 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val58.i.i, i64 %192, i32 1 - %bf.load.i1494 = load i32, ptr %m_new_child.i1493, align 8 - %bf.set.i1495 = or i32 %bf.load.i1494, 2 - store i32 %bf.set.i1495, ptr %m_new_child.i1493, align 8 - br label %invoke.cont112.i.i - -invoke.cont112.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1492, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1489, %invoke.cont110.i.i - %193 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i3.i1479 = icmp eq ptr %193, null - br i1 %tobool.not.i3.i1479, label %invoke.cont114.i.i, label %if.then.i.i.i1480 - -if.then.i.i.i1480: ; preds = %invoke.cont112.i.i - %194 = load ptr, ptr %m_manager.i.i745, align 8 - %m_ref_count.i.i.i.i1482 = getelementptr inbounds %class.ast, ptr %193, i64 0, i32 2 - %195 = load i32, ptr %m_ref_count.i.i.i.i1482, align 4 - %dec.i.i.i.i1483 = add i32 %195, -1 - store i32 %dec.i.i.i.i1483, ptr %m_ref_count.i.i.i.i1482, align 4 - %cmp.i.i.i1484 = icmp eq i32 %dec.i.i.i.i1483, 0 - br i1 %cmp.i.i.i1484, label %if.then2.i.i.i1485, label %invoke.cont114.i.i - -if.then2.i.i.i1485: ; preds = %if.then.i.i.i1480 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %194, ptr noundef nonnull %193) - to label %invoke.cont114.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont114.i.i: ; preds = %if.then.i.i.i1480, %invoke.cont112.i.i, %if.then2.i.i.i1485 - store ptr null, ptr %m_r.i74.i, align 8 - %196 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i1469 = icmp eq ptr %196, null - br i1 %tobool.not.i3.i1469, label %cleanup.i.i, label %if.then.i.i.i1470 - -if.then.i.i.i1470: ; preds = %invoke.cont114.i.i - %197 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i1472 = getelementptr inbounds %class.ast, ptr %196, i64 0, i32 2 - %198 = load i32, ptr %m_ref_count.i.i.i.i1472, align 4 - %dec.i.i.i.i1473 = add i32 %198, -1 - store i32 %dec.i.i.i.i1473, ptr %m_ref_count.i.i.i.i1472, align 4 - %cmp.i.i.i1474 = icmp eq i32 %dec.i.i.i.i1473, 0 - br i1 %cmp.i.i.i1474, label %if.then2.i.i.i1475, label %cleanup.i.i - -if.then2.i.i.i1475: ; preds = %if.then.i.i.i1470 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %197, ptr noundef nonnull %196) - to label %cleanup.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.else229.i.i: ; preds = %invoke.cont55.i.i - %bf.load230.i.i = load i32, ptr %89, align 8 - %199 = and i32 %bf.load230.i.i, 2 - %tobool233.not.i.i = icmp eq i32 %199, 0 - br i1 %tobool233.not.i.i, label %if.end.i1395, label %if.then234.i.i - -if.then234.i.i: ; preds = %if.else229.i.i - %this.val50.i.i = load ptr, ptr %28, align 8 - %call237.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val50.i.i, ptr noundef %118, i32 noundef %sub.i.i, ptr noundef %add.ptr.i.i) - to label %invoke.cont236.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont236.i.i: ; preds = %if.then234.i.i - %tobool.not.i1419 = icmp eq ptr %call237.i.i, null - br i1 %tobool.not.i1419, label %if.end.i1423, label %_ZN11ast_manager7inc_refEP3ast.exit.i1420 - -_ZN11ast_manager7inc_refEP3ast.exit.i1420: ; preds = %invoke.cont236.i.i - %m_ref_count.i.i.i1421 = getelementptr inbounds %class.ast, ptr %call237.i.i, i64 0, i32 2 - %200 = load i32, ptr %m_ref_count.i.i.i1421, align 4 - %inc.i.i.i1422 = add i32 %200, 1 - store i32 %inc.i.i.i1422, ptr %m_ref_count.i.i.i1421, align 4 - br label %if.end.i1423 - -if.end.i1423: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1420, %invoke.cont236.i.i - %201 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i3.i1424 = icmp eq ptr %201, null - br i1 %tobool.not.i3.i1424, label %invoke.cont239.i.i, label %if.then.i.i.i1425 - -if.then.i.i.i1425: ; preds = %if.end.i1423 - %202 = load ptr, ptr %m_manager.i.i745, align 8 - %m_ref_count.i.i.i.i1427 = getelementptr inbounds %class.ast, ptr %201, i64 0, i32 2 - %203 = load i32, ptr %m_ref_count.i.i.i.i1427, align 4 - %dec.i.i.i.i1428 = add i32 %203, -1 - store i32 %dec.i.i.i.i1428, ptr %m_ref_count.i.i.i.i1427, align 4 - %cmp.i.i.i1429 = icmp eq i32 %dec.i.i.i.i1428, 0 - br i1 %cmp.i.i.i1429, label %if.then2.i.i.i1430, label %invoke.cont239.i.i - -if.then2.i.i.i1430: ; preds = %if.then.i.i.i1425 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %202, ptr noundef nonnull %201) - to label %invoke.cont239.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont239.i.i: ; preds = %if.then.i.i.i1425, %if.end.i1423, %if.then2.i.i.i1430 - store ptr %call237.i.i, ptr %m_r.i74.i, align 8 - %this.val49.i.i = load ptr, ptr %28, align 8 - %call245.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val49.i.i, ptr noundef nonnull %87, ptr noundef %call237.i.i) - to label %invoke.cont244.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont244.i.i: ; preds = %invoke.cont239.i.i - %tobool.not.i1405 = icmp eq ptr %call245.i.i, null - br i1 %tobool.not.i1405, label %if.end.i1409, label %_ZN11ast_manager7inc_refEP3ast.exit.i1406 - -_ZN11ast_manager7inc_refEP3ast.exit.i1406: ; preds = %invoke.cont244.i.i - %m_ref_count.i.i.i1407 = getelementptr inbounds %class.ast, ptr %call245.i.i, i64 0, i32 2 - %204 = load i32, ptr %m_ref_count.i.i.i1407, align 4 - %inc.i.i.i1408 = add i32 %204, 1 - store i32 %inc.i.i.i1408, ptr %m_ref_count.i.i.i1407, align 4 - br label %if.end.i1409 - -if.end.i1409: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1406, %invoke.cont244.i.i - %205 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i1410 = icmp eq ptr %205, null - br i1 %tobool.not.i3.i1410, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1418, label %if.then.i.i.i1411 - -if.then.i.i.i1411: ; preds = %if.end.i1409 - %206 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i1413 = getelementptr inbounds %class.ast, ptr %205, i64 0, i32 2 - %207 = load i32, ptr %m_ref_count.i.i.i.i1413, align 4 - %dec.i.i.i.i1414 = add i32 %207, -1 - store i32 %dec.i.i.i.i1414, ptr %m_ref_count.i.i.i.i1413, align 4 - %cmp.i.i.i1415 = icmp eq i32 %dec.i.i.i.i1414, 0 - br i1 %cmp.i.i.i1415, label %if.then2.i.i.i1416, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1418 - -if.then2.i.i.i1416: ; preds = %if.then.i.i.i1411 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %206, ptr noundef nonnull %205) - to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1418 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1418: ; preds = %if.then2.i.i.i1416, %if.end.i1409, %if.then.i.i.i1411 - store ptr %call245.i.i, ptr %m_pr.i67.i, align 8 - br label %if.end254.i.i - -if.end.i1395: ; preds = %if.else229.i.i - %m_ref_count.i.i.i1393 = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 - %208 = load i32, ptr %m_ref_count.i.i.i1393, align 4 - %inc.i.i.i1394 = add i32 %208, 1 - store i32 %inc.i.i.i1394, ptr %m_ref_count.i.i.i1393, align 4 - %209 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i3.i1396 = icmp eq ptr %209, null - br i1 %tobool.not.i3.i1396, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1404, label %if.then.i.i.i1397 - -if.then.i.i.i1397: ; preds = %if.end.i1395 - %210 = load ptr, ptr %m_manager.i.i745, align 8 - %m_ref_count.i.i.i.i1399 = getelementptr inbounds %class.ast, ptr %209, i64 0, i32 2 - %211 = load i32, ptr %m_ref_count.i.i.i.i1399, align 4 - %dec.i.i.i.i1400 = add i32 %211, -1 - store i32 %dec.i.i.i.i1400, ptr %m_ref_count.i.i.i.i1399, align 4 - %cmp.i.i.i1401 = icmp eq i32 %dec.i.i.i.i1400, 0 - br i1 %cmp.i.i.i1401, label %if.then2.i.i.i1402, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1404 - -if.then2.i.i.i1402: ; preds = %if.then.i.i.i1397 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %210, ptr noundef nonnull %209) - to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1404 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1404: ; preds = %if.then2.i.i.i1402, %if.end.i1395, %if.then.i.i.i1397 - store ptr %87, ptr %m_r.i74.i, align 8 - br label %if.end254.i.i - -if.end254.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit1418, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1404 - %212 = load i32, ptr %m_spos.i.i, align 4 - %213 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1365 = icmp eq ptr %213, null - br i1 %cmp.i.i.i1365, label %invoke.cont257.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1366 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1366: ; preds = %if.end254.i.i - %arrayidx.i.i.i1369 = getelementptr inbounds i32, ptr %213, i64 -1 - %214 = load i32, ptr %arrayidx.i.i.i1369, align 4 - %215 = zext i32 %214 to i64 - %add.ptr.i.i1370 = getelementptr inbounds ptr, ptr %213, i64 %215 - %cmp3.i.i1371 = icmp ugt i32 %214, %212 - br i1 %cmp3.i.i1371, label %for.body.i.i1374.preheader, label %if.then.i.i1372 - -for.body.i.i1374.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1366 - %idx.ext.i1367 = zext i32 %212 to i64 - %add.ptr.i1368 = getelementptr inbounds ptr, ptr %213, i64 %idx.ext.i1367 - br label %for.body.i.i1374 - -for.body.i.i1374: ; preds = %for.body.i.i1374.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1381 - %it.04.i.i1375 = phi ptr [ %incdec.ptr.i.i1382, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1381 ], [ %add.ptr.i1368, %for.body.i.i1374.preheader ] - %216 = load ptr, ptr %it.04.i.i1375, align 8 - %217 = load ptr, ptr %m_result_stack.i965, align 8 - %tobool.not.i.i.i.i.i1376 = icmp eq ptr %216, null - br i1 %tobool.not.i.i.i.i.i1376, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1381, label %if.then.i.i.i.i.i1377 - -if.then.i.i.i.i.i1377: ; preds = %for.body.i.i1374 - %m_ref_count.i.i.i.i.i.i1378 = getelementptr inbounds %class.ast, ptr %216, i64 0, i32 2 - %218 = load i32, ptr %m_ref_count.i.i.i.i.i.i1378, align 4 - %dec.i.i.i.i.i.i1379 = add i32 %218, -1 - store i32 %dec.i.i.i.i.i.i1379, ptr %m_ref_count.i.i.i.i.i.i1378, align 4 - %cmp.i.i.i.i.i1380 = icmp eq i32 %dec.i.i.i.i.i.i1379, 0 - br i1 %cmp.i.i.i.i.i1380, label %if.then2.i.i.i.i.i1387, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1381 - -if.then2.i.i.i.i.i1387: ; preds = %if.then.i.i.i.i.i1377 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %217, ptr noundef nonnull %216) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1381 unwind label %lpad.i.i.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1381: ; preds = %if.then2.i.i.i.i.i1387, %if.then.i.i.i.i.i1377, %for.body.i.i1374 - %incdec.ptr.i.i1382 = getelementptr inbounds ptr, ptr %it.04.i.i1375, i64 1 - %cmp.i.i1383 = icmp ult ptr %incdec.ptr.i.i1382, %add.ptr.i.i1370 - br i1 %cmp.i.i1383, label %for.body.i.i1374, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1384, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1384: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1381 - %.pre.i1385 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i1386 = icmp eq ptr %.pre.i1385, null - br i1 %tobool.not.i.i1386, label %invoke.cont257.i.i, label %if.then.i.i1372 - -if.then.i.i1372: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1384, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1366 - %219 = phi ptr [ %.pre.i1385, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1384 ], [ %213, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1366 ] - %arrayidx.i.i1373 = getelementptr inbounds i32, ptr %219, i64 -1 - store i32 %212, ptr %arrayidx.i.i1373, align 4 - br label %invoke.cont257.i.i - -invoke.cont257.i.i: ; preds = %if.then.i.i1372, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1384, %if.end254.i.i - %220 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i.i.i.i1342 = icmp eq ptr %220, null - br i1 %tobool.not.i.i.i.i1342, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1346, label %if.then.i.i.i.i1343 - -if.then.i.i.i.i1343: ; preds = %invoke.cont257.i.i - %m_ref_count.i.i.i.i.i1344 = getelementptr inbounds %class.ast, ptr %220, i64 0, i32 2 - %221 = load i32, ptr %m_ref_count.i.i.i.i.i1344, align 4 - %inc.i.i.i.i.i1345 = add i32 %221, 1 - store i32 %inc.i.i.i.i.i1345, ptr %m_ref_count.i.i.i.i.i1344, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1346 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1346: ; preds = %if.then.i.i.i.i1343, %invoke.cont257.i.i - %222 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1348 = icmp eq ptr %222, null - br i1 %cmp.i.i1348, label %if.then.i.i1357, label %lor.lhs.false.i.i1349 - -lor.lhs.false.i.i1349: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1346 - %arrayidx.i.i1350 = getelementptr inbounds i32, ptr %222, i64 -1 - %223 = load i32, ptr %arrayidx.i.i1350, align 4 - %arrayidx4.i.i1351 = getelementptr inbounds i32, ptr %222, i64 -2 - %224 = load i32, ptr %arrayidx4.i.i1351, align 4 - %cmp5.i.i1352 = icmp eq i32 %223, %224 - br i1 %cmp5.i.i1352, label %if.then.i.i1357, label %invoke.cont261.i.i - -if.then.i.i1357: ; preds = %lor.lhs.false.i.i1349, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1346 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc1361 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1361: ; preds = %if.then.i.i1357 - %.pre.i.i1358 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1359 = getelementptr inbounds i32, ptr %.pre.i.i1358, i64 -1 - %.pre1.i.i1360 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1359, align 4 - br label %invoke.cont261.i.i - -invoke.cont261.i.i: ; preds = %.noexc1361, %lor.lhs.false.i.i1349 - %225 = phi i32 [ %.pre1.i.i1360, %.noexc1361 ], [ %223, %lor.lhs.false.i.i1349 ] - %226 = phi ptr [ %.pre.i.i1358, %.noexc1361 ], [ %222, %lor.lhs.false.i.i1349 ] - %idx.ext.i.i1353 = zext i32 %225 to i64 - %add.ptr.i.i1354 = getelementptr inbounds ptr, ptr %226, i64 %idx.ext.i.i1353 - store ptr %220, ptr %add.ptr.i.i1354, align 8 - %227 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1355 = getelementptr inbounds i32, ptr %227, i64 -1 - %228 = load i32, ptr %arrayidx10.i.i1355, align 4 - %inc.i.i1356 = add i32 %228, 1 - store i32 %inc.i.i1356, ptr %arrayidx10.i.i1355, align 4 - %bf.load268.i.i = load i32, ptr %89, align 8 - %bf.clear269.i.i = and i32 %bf.load268.i.i, 1 - %tobool270.i.i.not = icmp eq i32 %bf.clear269.i.i, 0 - br i1 %tobool270.i.i.not, label %invoke.cont271.i.i, label %if.then.i1339 - -if.then.i1339: ; preds = %invoke.cont261.i.i - %229 = load ptr, ptr %m_pr.i67.i, align 8 - %230 = load ptr, ptr %m_r.i74.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %230, ptr noundef %229) - to label %invoke.cont271.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont271.i.i: ; preds = %invoke.cont261.i.i, %if.then.i1339 - %231 = load i32, ptr %m_spos.i.i, align 4 - %232 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1312 = icmp eq ptr %232, null - br i1 %cmp.i.i.i1312, label %invoke.cont274.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i1313 - -_ZN6vectorIP3appLb0EjE3endEv.exit.i1313: ; preds = %invoke.cont271.i.i - %arrayidx.i.i.i1316 = getelementptr inbounds i32, ptr %232, i64 -1 - %233 = load i32, ptr %arrayidx.i.i.i1316, align 4 - %234 = zext i32 %233 to i64 - %add.ptr.i.i1317 = getelementptr inbounds ptr, ptr %232, i64 %234 - %cmp3.i.i1318 = icmp ugt i32 %233, %231 - br i1 %cmp3.i.i1318, label %for.body.i.i1321.preheader, label %if.then.i.i1319 - -for.body.i.i1321.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i1313 - %idx.ext.i1314 = zext i32 %231 to i64 - %add.ptr.i1315 = getelementptr inbounds ptr, ptr %232, i64 %idx.ext.i1314 - br label %for.body.i.i1321 - -for.body.i.i1321: ; preds = %for.body.i.i1321.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1328 - %it.04.i.i1322 = phi ptr [ %incdec.ptr.i.i1329, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1328 ], [ %add.ptr.i1315, %for.body.i.i1321.preheader ] - %235 = load ptr, ptr %it.04.i.i1322, align 8 - %236 = load ptr, ptr %m_result_pr_stack.i721, align 8 - %tobool.not.i.i.i.i.i1323 = icmp eq ptr %235, null - br i1 %tobool.not.i.i.i.i.i1323, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1328, label %if.then.i.i.i.i.i1324 - -if.then.i.i.i.i.i1324: ; preds = %for.body.i.i1321 - %m_ref_count.i.i.i.i.i.i1325 = getelementptr inbounds %class.ast, ptr %235, i64 0, i32 2 - %237 = load i32, ptr %m_ref_count.i.i.i.i.i.i1325, align 4 - %dec.i.i.i.i.i.i1326 = add i32 %237, -1 - store i32 %dec.i.i.i.i.i.i1326, ptr %m_ref_count.i.i.i.i.i.i1325, align 4 - %cmp.i.i.i.i.i1327 = icmp eq i32 %dec.i.i.i.i.i.i1326, 0 - br i1 %cmp.i.i.i.i.i1327, label %if.then2.i.i.i.i.i1334, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1328 - -if.then2.i.i.i.i.i1334: ; preds = %if.then.i.i.i.i.i1324 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %236, ptr noundef nonnull %235) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1328 unwind label %lpad.i.i.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1328: ; preds = %if.then2.i.i.i.i.i1334, %if.then.i.i.i.i.i1324, %for.body.i.i1321 - %incdec.ptr.i.i1329 = getelementptr inbounds ptr, ptr %it.04.i.i1322, i64 1 - %cmp.i.i1330 = icmp ult ptr %incdec.ptr.i.i1329, %add.ptr.i.i1317 - br i1 %cmp.i.i1330, label %for.body.i.i1321, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1331, !llvm.loop !9 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1331: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1328 - %.pre.i1332 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i1333 = icmp eq ptr %.pre.i1332, null - br i1 %tobool.not.i.i1333, label %invoke.cont274.i.i, label %if.then.i.i1319 - -if.then.i.i1319: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1331, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1313 - %238 = phi ptr [ %.pre.i1332, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1331 ], [ %232, %_ZN6vectorIP3appLb0EjE3endEv.exit.i1313 ] - %arrayidx.i.i1320 = getelementptr inbounds i32, ptr %238, i64 -1 - store i32 %231, ptr %arrayidx.i.i1320, align 4 - br label %invoke.cont274.i.i - -invoke.cont274.i.i: ; preds = %if.then.i.i1319, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1331, %invoke.cont271.i.i - %239 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i.i.i.i1289 = icmp eq ptr %239, null - br i1 %tobool.not.i.i.i.i1289, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1293, label %if.then.i.i.i.i1290 - -if.then.i.i.i.i1290: ; preds = %invoke.cont274.i.i - %m_ref_count.i.i.i.i.i1291 = getelementptr inbounds %class.ast, ptr %239, i64 0, i32 2 - %240 = load i32, ptr %m_ref_count.i.i.i.i.i1291, align 4 - %inc.i.i.i.i.i1292 = add i32 %240, 1 - store i32 %inc.i.i.i.i.i1292, ptr %m_ref_count.i.i.i.i.i1291, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1293 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1293: ; preds = %if.then.i.i.i.i1290, %invoke.cont274.i.i - %241 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1295 = icmp eq ptr %241, null - br i1 %cmp.i.i1295, label %if.then.i.i1304, label %lor.lhs.false.i.i1296 - -lor.lhs.false.i.i1296: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1293 - %arrayidx.i.i1297 = getelementptr inbounds i32, ptr %241, i64 -1 - %242 = load i32, ptr %arrayidx.i.i1297, align 4 - %arrayidx4.i.i1298 = getelementptr inbounds i32, ptr %241, i64 -2 - %243 = load i32, ptr %arrayidx4.i.i1298, align 4 - %cmp5.i.i1299 = icmp eq i32 %242, %243 - br i1 %cmp5.i.i1299, label %if.then.i.i1304, label %invoke.cont278.i.i - -if.then.i.i1304: ; preds = %lor.lhs.false.i.i1296, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1293 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1308 unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1308: ; preds = %if.then.i.i1304 - %.pre.i.i1305 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1306 = getelementptr inbounds i32, ptr %.pre.i.i1305, i64 -1 - %.pre1.i.i1307 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1306, align 4 - br label %invoke.cont278.i.i - -invoke.cont278.i.i: ; preds = %.noexc1308, %lor.lhs.false.i.i1296 - %244 = phi i32 [ %.pre1.i.i1307, %.noexc1308 ], [ %242, %lor.lhs.false.i.i1296 ] - %245 = phi ptr [ %.pre.i.i1305, %.noexc1308 ], [ %241, %lor.lhs.false.i.i1296 ] - %idx.ext.i.i1300 = zext i32 %244 to i64 - %add.ptr.i.i1301 = getelementptr inbounds ptr, ptr %245, i64 %idx.ext.i.i1300 - store ptr %239, ptr %add.ptr.i.i1301, align 8 - %246 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1302 = getelementptr inbounds i32, ptr %246, i64 -1 - %247 = load i32, ptr %arrayidx10.i.i1302, align 4 - %inc.i.i1303 = add i32 %247, 1 - store i32 %inc.i.i1303, ptr %arrayidx10.i.i1302, align 4 - %248 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i1280 = icmp eq ptr %248, null - br i1 %tobool.not.i3.i1280, label %invoke.cont282.i.i, label %if.then.i.i.i1281 - -if.then.i.i.i1281: ; preds = %invoke.cont278.i.i - %249 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i1283 = getelementptr inbounds %class.ast, ptr %248, i64 0, i32 2 - %250 = load i32, ptr %m_ref_count.i.i.i.i1283, align 4 - %dec.i.i.i.i1284 = add i32 %250, -1 - store i32 %dec.i.i.i.i1284, ptr %m_ref_count.i.i.i.i1283, align 4 - %cmp.i.i.i1285 = icmp eq i32 %dec.i.i.i.i1284, 0 - br i1 %cmp.i.i.i1285, label %if.then2.i.i.i1286, label %invoke.cont282.i.i - -if.then2.i.i.i1286: ; preds = %if.then.i.i.i1281 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %249, ptr noundef nonnull %248) - to label %invoke.cont282.i.i unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont282.i.i: ; preds = %if.then.i.i.i1281, %invoke.cont278.i.i, %if.then2.i.i.i1286 - store ptr null, ptr %m_pr.i67.i, align 8 - %251 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1276 = getelementptr inbounds i32, ptr %251, i64 -1 - %252 = load i32, ptr %arrayidx.i1276, align 4 - %dec.i1277 = add i32 %252, -1 - store i32 %dec.i1277, ptr %arrayidx.i1276, align 4 - %253 = load ptr, ptr %m_r.i74.i, align 8 - %this.val59.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i1264 = icmp eq ptr %87, %253 - %cmp.i.i.i1265 = icmp eq ptr %this.val59.i.i, null - %or.cond.i1266 = select i1 %cmp.not.i1264, i1 true, i1 %cmp.i.i.i1265 - br i1 %or.cond.i1266, label %invoke.cont287.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1267 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1267: ; preds = %invoke.cont282.i.i - %arrayidx.i.i.i1268 = getelementptr inbounds i32, ptr %this.val59.i.i, i64 -1 - %254 = load i32, ptr %arrayidx.i.i.i1268, align 4 - %cmp3.i.i.i1269 = icmp eq i32 %254, 0 - br i1 %cmp3.i.i.i1269, label %invoke.cont287.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1270 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1270: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1267 - %255 = add i32 %254, -1 - %256 = zext i32 %255 to i64 - %m_new_child.i.i1271 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i.i, i64 %256, i32 1 - %bf.load.i.i1272 = load i32, ptr %m_new_child.i.i1271, align 8 - %bf.set.i.i1273 = or i32 %bf.load.i.i1272, 2 - store i32 %bf.set.i.i1273, ptr %m_new_child.i.i1271, align 8 - %.pr.pre = load ptr, ptr %m_r.i74.i, align 8 - br label %invoke.cont287.i.i - -invoke.cont287.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1270, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1267, %invoke.cont282.i.i - %257 = phi ptr [ %253, %invoke.cont282.i.i ], [ %253, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1267 ], [ %.pr.pre, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1270 ] - %tobool.not.i3.i1255 = icmp eq ptr %257, null - br i1 %tobool.not.i3.i1255, label %cleanup.i.i, label %if.then.i.i.i1256 - -if.then.i.i.i1256: ; preds = %invoke.cont287.i.i - %258 = load ptr, ptr %m_manager.i.i745, align 8 - %m_ref_count.i.i.i.i1258 = getelementptr inbounds %class.ast, ptr %257, i64 0, i32 2 - %259 = load i32, ptr %m_ref_count.i.i.i.i1258, align 4 - %dec.i.i.i.i1259 = add i32 %259, -1 - store i32 %dec.i.i.i.i1259, ptr %m_ref_count.i.i.i.i1258, align 4 - %cmp.i.i.i1260 = icmp eq i32 %dec.i.i.i.i1259, 0 - br i1 %cmp.i.i.i1260, label %if.then2.i.i.i1261, label %cleanup.i.i - -if.then2.i.i.i1261: ; preds = %if.then.i.i.i1256 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %258, ptr noundef nonnull %257) - to label %if.then2.i.i.i1261._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1263_crit_edge unwind label %lpad.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.then2.i.i.i1261._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1263_crit_edge: ; preds = %if.then2.i.i.i1261 - %.pre2935.pre = load ptr, ptr %new_t.i.i, align 8 - br label %cleanup.i.i - -cleanup.i.i: ; preds = %if.then.i.i.i1256, %invoke.cont287.i.i, %if.then2.i.i.i1261._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1263_crit_edge, %if.then.i.i.i1470, %invoke.cont114.i.i, %if.then2.i.i.i1475 - %m_pr.i67.i.sink = phi ptr [ %m_pr.i67.i, %if.then2.i.i.i1475 ], [ %m_pr.i67.i, %invoke.cont114.i.i ], [ %m_pr.i67.i, %if.then.i.i.i1470 ], [ %m_r.i74.i, %if.then2.i.i.i1261._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1263_crit_edge ], [ %m_r.i74.i, %invoke.cont287.i.i ], [ %m_r.i74.i, %if.then.i.i.i1256 ] - %260 = phi ptr [ %136, %if.then2.i.i.i1475 ], [ %136, %invoke.cont114.i.i ], [ %136, %if.then.i.i.i1470 ], [ %.pre2935.pre, %if.then2.i.i.i1261._ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1263_crit_edge ], [ %136, %invoke.cont287.i.i ], [ %136, %if.then.i.i.i1256 ] - store ptr null, ptr %m_pr.i67.i.sink, align 8 - %tobool.not.i.i1244 = icmp eq ptr %260, null - br i1 %tobool.not.i.i1244, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i1245 - -if.then.i.i.i1245: ; preds = %cleanup.i.i - %261 = load ptr, ptr %m_manager.i1702, align 8 - %m_ref_count.i.i.i.i1247 = getelementptr inbounds %class.ast, ptr %260, i64 0, i32 2 - %262 = load i32, ptr %m_ref_count.i.i.i.i1247, align 4 - %dec.i.i.i.i1248 = add i32 %262, -1 - store i32 %dec.i.i.i.i1248, ptr %m_ref_count.i.i.i.i1247, align 4 - %cmp.i.i.i1249 = icmp eq i32 %dec.i.i.i.i1248, 0 - br i1 %cmp.i.i.i1249, label %if.then2.i.i.i1251, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i1251: ; preds = %if.then.i.i.i1245 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %261, ptr noundef nonnull %260) - to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i1252 - -terminate.lpad.i1252: ; preds = %if.then2.i.i.i1251 - %263 = landingpad { ptr, i32 } + to label %if.end54.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end54.i.i.i: ; preds = %if.then2.i.i.i105.i.i.i, %if.then.i.i.i100.i.i.i, %if.end.i98.i.i.i, %if.then2.i.i.i75.i.i.i, %if.then.i.i.i70.i.i.i, %invoke.cont32.i.i.i + %storemerge.i.i = phi ptr [ null, %if.then2.i.i.i75.i.i.i ], [ null, %if.then.i.i.i70.i.i.i ], [ null, %invoke.cont32.i.i.i ], [ %call50.i.i.i, %if.then2.i.i.i105.i.i.i ], [ %call50.i.i.i, %if.then.i.i.i100.i.i.i ], [ %call50.i.i.i, %if.end.i98.i.i.i ] + %.pre673.pre.i.i.i = phi ptr [ %87, %if.then2.i.i.i75.i.i.i ], [ %87, %if.then.i.i.i70.i.i.i ], [ %87, %invoke.cont32.i.i.i ], [ %call38.i.i.i, %if.then2.i.i.i105.i.i.i ], [ %call38.i.i.i, %if.then.i.i.i100.i.i.i ], [ %call38.i.i.i, %if.end.i98.i.i.i ] + store ptr %storemerge.i.i, ptr %m_pr.i89.i.i, align 8 + %136 = load ptr, ptr %m_cfg.i.i.i, align 8 + %call56.i.i.i = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %136, ptr noundef %118, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i95.i.i) + to label %invoke.cont55.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont55.i.i.i: ; preds = %if.end54.i.i.i + %cmp57.not.i.i.i = icmp eq i32 %call56.i.i.i, 5 + br i1 %cmp57.not.i.i.i, label %if.else229.i.i.i, label %if.then58.i.i.i + +if.then58.i.i.i: ; preds = %invoke.cont55.i.i.i + %137 = load i32, ptr %m_spos.i.i.i, align 4 + %138 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i110.i.i.i = icmp eq ptr %138, null + br i1 %cmp.i.i.i110.i.i.i, label %invoke.cont61.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i: ; preds = %if.then58.i.i.i + %arrayidx.i.i.i.i.i.i = getelementptr inbounds i32, ptr %138, i64 -1 + %139 = load i32, ptr %arrayidx.i.i.i.i.i.i, align 4 + %140 = zext i32 %139 to i64 + %add.ptr.i.i.i.i.i = getelementptr inbounds ptr, ptr %138, i64 %140 + %cmp3.i.i.i51.i.i = icmp ugt i32 %139, %137 + br i1 %cmp3.i.i.i51.i.i, label %for.body.i.i.preheader.i.i.i, label %if.then.i.i.i.i102.i + +for.body.i.i.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + %idx.ext.i.i59.i.i = zext i32 %137 to i64 + %add.ptr.i.i60.i.i = getelementptr inbounds ptr, ptr %138, i64 %idx.ext.i.i59.i.i + br label %for.body.i.i.i.i.i + +for.body.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, %for.body.i.i.preheader.i.i.i + %it.04.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i ], [ %add.ptr.i.i60.i.i, %for.body.i.i.preheader.i.i.i ] + %141 = load ptr, ptr %it.04.i.i.i.i.i, align 8 + %142 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i = icmp eq ptr %141, null + br i1 %tobool.not.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %141, i64 0, i32 2 + %143 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i = add i32 %143, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %142, ptr noundef nonnull %141) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i, %for.body.i.i.i.i.i + %incdec.ptr.i.i.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i, i64 1 + %cmp.i.i112.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i, %add.ptr.i.i.i.i.i + br i1 %cmp.i.i112.i.i.i, label %for.body.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + %.pre.i.i61.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i.i.i103.i = icmp eq ptr %.pre.i.i61.i.i, null + br i1 %tobool.not.i.i.i.i103.i, label %invoke.cont61.i.i.i, label %if.then.i.i.i.i102.i + +if.then.i.i.i.i102.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i + %144 = phi ptr [ %.pre.i.i61.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i ], [ %138, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i ] + %arrayidx.i.i111.i.i.i = getelementptr inbounds i32, ptr %144, i64 -1 + store i32 %137, ptr %arrayidx.i.i111.i.i.i, align 4 + br label %invoke.cont61.i.i.i + +invoke.cont61.i.i.i: ; preds = %if.then.i.i.i.i102.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %if.then58.i.i.i + %145 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i = icmp eq ptr %145, null + br i1 %tobool.not.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i: ; preds = %invoke.cont61.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %145, i64 0, i32 2 + %146 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i = add i32 %146, 1 + store i32 %inc.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %invoke.cont61.i.i.i + %147 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i116.i.i.i = icmp eq ptr %147, null + br i1 %cmp.i.i116.i.i.i, label %if.then.i.i119.i.i.i, label %lor.lhs.false.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + %arrayidx.i.i117.i.i.i = getelementptr inbounds i32, ptr %147, i64 -1 + %148 = load i32, ptr %arrayidx.i.i117.i.i.i, align 4 + %arrayidx4.i.i.i.i.i = getelementptr inbounds i32, ptr %147, i64 -2 + %149 = load i32, ptr %arrayidx4.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i = icmp eq i32 %148, %149 + br i1 %cmp5.i.i.i.i.i, label %if.then.i.i119.i.i.i, label %invoke.cont65.i.i.i + +if.then.i.i119.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc120.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc120.i.i.i: ; preds = %if.then.i.i119.i.i.i + %.pre.i.i.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i, align 4 + br label %invoke.cont65.i.i.i + +invoke.cont65.i.i.i: ; preds = %.noexc120.i.i.i, %lor.lhs.false.i.i.i.i.i + %150 = phi i32 [ %.pre1.i.i.i.i.i, %.noexc120.i.i.i ], [ %148, %lor.lhs.false.i.i.i.i.i ] + %151 = phi ptr [ %.pre.i.i.i.i.i, %.noexc120.i.i.i ], [ %147, %lor.lhs.false.i.i.i.i.i ] + %idx.ext.i.i.i.i.i = zext i32 %150 to i64 + %add.ptr.i.i118.i.i.i = getelementptr inbounds ptr, ptr %151, i64 %idx.ext.i.i.i.i.i + store ptr %145, ptr %add.ptr.i.i118.i.i.i, align 8 + %152 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i.i.i.i = getelementptr inbounds i32, ptr %152, i64 -1 + %153 = load i32, ptr %arrayidx10.i.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %153, 1 + store i32 %inc.i.i.i.i.i, ptr %arrayidx10.i.i.i.i.i, align 4 + %154 = load i32, ptr %m_spos.i.i.i, align 4 + %155 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i123.i.i.i = icmp eq ptr %155, null + br i1 %cmp.i.i.i123.i.i.i, label %invoke.cont69.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i: ; preds = %invoke.cont65.i.i.i + %arrayidx.i.i.i126.i.i.i = getelementptr inbounds i32, ptr %155, i64 -1 + %156 = load i32, ptr %arrayidx.i.i.i126.i.i.i, align 4 + %157 = zext i32 %156 to i64 + %add.ptr.i.i127.i.i.i = getelementptr inbounds ptr, ptr %155, i64 %157 + %cmp3.i.i128.i.i.i = icmp ugt i32 %156, %154 + br i1 %cmp3.i.i128.i.i.i, label %for.body.i.i131.preheader.i.i.i, label %if.then.i.i129.i.i.i + +for.body.i.i131.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + %idx.ext.i124.i.i.i = zext i32 %154 to i64 + %add.ptr.i125.i.i.i = getelementptr inbounds ptr, ptr %155, i64 %idx.ext.i124.i.i.i + br label %for.body.i.i131.i.i.i + +for.body.i.i131.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, %for.body.i.i131.preheader.i.i.i + %it.04.i.i132.i.i.i = phi ptr [ %incdec.ptr.i.i138.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i ], [ %add.ptr.i125.i.i.i, %for.body.i.i131.preheader.i.i.i ] + %158 = load ptr, ptr %it.04.i.i132.i.i.i, align 8 + %159 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i133.i.i.i = icmp eq ptr %158, null + br i1 %tobool.not.i.i.i.i.i133.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i134.i.i.i + +if.then.i.i.i.i.i134.i.i.i: ; preds = %for.body.i.i131.i.i.i + %m_ref_count.i.i.i.i.i.i135.i.i.i = getelementptr inbounds %class.ast, ptr %158, i64 0, i32 2 + %160 = load i32, ptr %m_ref_count.i.i.i.i.i.i135.i.i.i, align 4 + %dec.i.i.i.i.i.i136.i.i.i = add i32 %160, -1 + store i32 %dec.i.i.i.i.i.i136.i.i.i, ptr %m_ref_count.i.i.i.i.i.i135.i.i.i, align 4 + %cmp.i.i.i.i.i137.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i136.i.i.i, 0 + br i1 %cmp.i.i.i.i.i137.i.i.i, label %if.then2.i.i.i.i.i142.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + +if.then2.i.i.i.i.i142.i.i.i: ; preds = %if.then.i.i.i.i.i134.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %159, ptr noundef nonnull %158) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i142.i.i.i, %if.then.i.i.i.i.i134.i.i.i, %for.body.i.i131.i.i.i + %incdec.ptr.i.i138.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i132.i.i.i, i64 1 + %cmp.i.i139.i.i.i = icmp ult ptr %incdec.ptr.i.i138.i.i.i, %add.ptr.i.i127.i.i.i + br i1 %cmp.i.i139.i.i.i, label %for.body.i.i131.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i + %.pre.i140.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i141.i.i.i = icmp eq ptr %.pre.i140.i.i.i, null + br i1 %tobool.not.i.i141.i.i.i, label %invoke.cont69.i.i.i, label %if.then.i.i129.i.i.i + +if.then.i.i129.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i + %161 = phi ptr [ %.pre.i140.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i ], [ %155, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i.i.i ] + %arrayidx.i.i130.i.i.i = getelementptr inbounds i32, ptr %161, i64 -1 + store i32 %154, ptr %arrayidx.i.i130.i.i.i, align 4 + br label %invoke.cont69.i.i.i + +invoke.cont69.i.i.i: ; preds = %if.then.i.i129.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i, %invoke.cont65.i.i.i + %162 = load ptr, ptr %m_pr2.i.i.i, align 8 + %cmp.i.i52.i.i = icmp eq ptr %162, null + br i1 %cmp.i.i52.i.i, label %if.then73.i.i.i, label %if.end83.i.i.i + +if.then73.i.i.i: ; preds = %invoke.cont69.i.i.i + %this.val53.i.i.i = load ptr, ptr %28, align 8 + %163 = load ptr, ptr %m_r.i95.i.i, align 8 + %call79.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val53.i.i.i, ptr noundef %.pre673.pre.i.i.i, ptr noundef %163) + to label %invoke.cont78.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont78.i.i.i: ; preds = %if.then73.i.i.i + %tobool.not.i144.i.i.i = icmp eq ptr %call79.i.i.i, null + br i1 %tobool.not.i144.i.i.i, label %if.end.i148.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i: ; preds = %invoke.cont78.i.i.i + %m_ref_count.i.i.i146.i.i.i = getelementptr inbounds %class.ast, ptr %call79.i.i.i, i64 0, i32 2 + %164 = load i32, ptr %m_ref_count.i.i.i146.i.i.i, align 4 + %inc.i.i.i147.i.i.i = add i32 %164, 1 + store i32 %inc.i.i.i147.i.i.i, ptr %m_ref_count.i.i.i146.i.i.i, align 4 + br label %if.end.i148.i.i.i + +if.end.i148.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i145.i.i.i, %invoke.cont78.i.i.i + %165 = load ptr, ptr %m_pr2.i.i.i, align 8 + %tobool.not.i3.i149.i.i.i = icmp eq ptr %165, null + br i1 %tobool.not.i3.i149.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i, label %if.then.i.i.i150.i.i.i + +if.then.i.i.i150.i.i.i: ; preds = %if.end.i148.i.i.i + %166 = load ptr, ptr %m_manager.i.i151.i.i.i, align 8 + %m_ref_count.i.i.i.i152.i.i.i = getelementptr inbounds %class.ast, ptr %165, i64 0, i32 2 + %167 = load i32, ptr %m_ref_count.i.i.i.i152.i.i.i, align 4 + %dec.i.i.i.i153.i.i.i = add i32 %167, -1 + store i32 %dec.i.i.i.i153.i.i.i, ptr %m_ref_count.i.i.i.i152.i.i.i, align 4 + %cmp.i.i.i154.i.i.i = icmp eq i32 %dec.i.i.i.i153.i.i.i, 0 + br i1 %cmp.i.i.i154.i.i.i, label %if.then2.i.i.i155.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i + +if.then2.i.i.i155.i.i.i: ; preds = %if.then.i.i.i150.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %166, ptr noundef nonnull %165) + to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i: ; preds = %if.then2.i.i.i155.i.i.i, %if.then.i.i.i150.i.i.i, %if.end.i148.i.i.i + store ptr %call79.i.i.i, ptr %m_pr2.i.i.i, align 8 + br label %if.end83.i.i.i + +if.end83.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i, %invoke.cont69.i.i.i + %168 = phi ptr [ %call79.i.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit157.i.i.i ], [ %162, %invoke.cont69.i.i.i ] + %this.val52.i.i.i = load ptr, ptr %28, align 8 + %169 = load ptr, ptr %m_pr.i89.i.i, align 8 + %call90.i.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val52.i.i.i, ptr noundef %169, ptr noundef %168) + to label %invoke.cont89.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont89.i.i.i: ; preds = %if.end83.i.i.i + %tobool.not.i158.i.i.i = icmp eq ptr %call90.i.i.i, null + br i1 %tobool.not.i158.i.i.i, label %if.end.i162.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i: ; preds = %invoke.cont89.i.i.i + %m_ref_count.i.i.i160.i.i.i = getelementptr inbounds %class.ast, ptr %call90.i.i.i, i64 0, i32 2 + %170 = load i32, ptr %m_ref_count.i.i.i160.i.i.i, align 4 + %inc.i.i.i161.i.i.i = add i32 %170, 1 + store i32 %inc.i.i.i161.i.i.i, ptr %m_ref_count.i.i.i160.i.i.i, align 4 + br label %if.end.i162.i.i.i + +if.end.i162.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i159.i.i.i, %invoke.cont89.i.i.i + %171 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i163.i.i.i = icmp eq ptr %171, null + br i1 %tobool.not.i3.i163.i.i.i, label %invoke.cont92.i.i.i, label %if.then.i.i.i164.i.i.i + +if.then.i.i.i164.i.i.i: ; preds = %if.end.i162.i.i.i + %172 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i166.i.i.i = getelementptr inbounds %class.ast, ptr %171, i64 0, i32 2 + %173 = load i32, ptr %m_ref_count.i.i.i.i166.i.i.i, align 4 + %dec.i.i.i.i167.i.i.i = add i32 %173, -1 + store i32 %dec.i.i.i.i167.i.i.i, ptr %m_ref_count.i.i.i.i166.i.i.i, align 4 + %cmp.i.i.i168.i.i.i = icmp eq i32 %dec.i.i.i.i167.i.i.i, 0 + br i1 %cmp.i.i.i168.i.i.i, label %if.then2.i.i.i169.i.i.i, label %invoke.cont92.i.i.i + +if.then2.i.i.i169.i.i.i: ; preds = %if.then.i.i.i164.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %172, ptr noundef nonnull %171) + to label %invoke.cont92.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont92.i.i.i: ; preds = %if.then2.i.i.i169.i.i.i, %if.then.i.i.i164.i.i.i, %if.end.i162.i.i.i + store ptr %call90.i.i.i, ptr %m_pr.i89.i.i, align 8 + br i1 %tobool.not.i158.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i174.i.i.i + +if.then.i.i.i.i174.i.i.i: ; preds = %invoke.cont92.i.i.i + %m_ref_count.i.i.i.i.i175.i.i.i = getelementptr inbounds %class.ast, ptr %call90.i.i.i, i64 0, i32 2 + %174 = load i32, ptr %m_ref_count.i.i.i.i.i175.i.i.i, align 4 + %inc.i.i.i.i.i176.i.i.i = add i32 %174, 1 + store i32 %inc.i.i.i.i.i176.i.i.i, ptr %m_ref_count.i.i.i.i.i175.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i174.i.i.i, %invoke.cont92.i.i.i + %175 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i178.i.i.i = icmp eq ptr %175, null + br i1 %cmp.i.i178.i.i.i, label %if.then.i.i187.i.i.i, label %lor.lhs.false.i.i179.i.i.i + +lor.lhs.false.i.i179.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + %arrayidx.i.i180.i.i.i = getelementptr inbounds i32, ptr %175, i64 -1 + %176 = load i32, ptr %arrayidx.i.i180.i.i.i, align 4 + %arrayidx4.i.i181.i.i.i = getelementptr inbounds i32, ptr %175, i64 -2 + %177 = load i32, ptr %arrayidx4.i.i181.i.i.i, align 4 + %cmp5.i.i182.i.i.i = icmp eq i32 %176, %177 + br i1 %cmp5.i.i182.i.i.i, label %if.then.i.i187.i.i.i, label %invoke.cont97.i.i.i + +if.then.i.i187.i.i.i: ; preds = %lor.lhs.false.i.i179.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc191.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc191.i.i.i: ; preds = %if.then.i.i187.i.i.i + %.pre.i.i188.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i189.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i188.i.i.i, i64 -1 + %.pre1.i.i190.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i189.i.i.i, align 4 + br label %invoke.cont97.i.i.i + +invoke.cont97.i.i.i: ; preds = %.noexc191.i.i.i, %lor.lhs.false.i.i179.i.i.i + %178 = phi i32 [ %.pre1.i.i190.i.i.i, %.noexc191.i.i.i ], [ %176, %lor.lhs.false.i.i179.i.i.i ] + %179 = phi ptr [ %.pre.i.i188.i.i.i, %.noexc191.i.i.i ], [ %175, %lor.lhs.false.i.i179.i.i.i ] + %idx.ext.i.i183.i.i.i = zext i32 %178 to i64 + %add.ptr.i.i184.i.i.i = getelementptr inbounds ptr, ptr %179, i64 %idx.ext.i.i183.i.i.i + store ptr %call90.i.i.i, ptr %add.ptr.i.i184.i.i.i, align 8 + %180 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i185.i.i.i = getelementptr inbounds i32, ptr %180, i64 -1 + %181 = load i32, ptr %arrayidx10.i.i185.i.i.i, align 4 + %inc.i.i186.i.i.i = add i32 %181, 1 + store i32 %inc.i.i186.i.i.i, ptr %arrayidx10.i.i185.i.i.i, align 4 + %182 = load ptr, ptr %m_pr2.i.i.i, align 8 + %tobool.not.i3.i193.i.i.i = icmp eq ptr %182, null + br i1 %tobool.not.i3.i193.i.i.i, label %if.then103.i.i.i, label %if.then.i.i.i194.i.i.i + +if.then.i.i.i194.i.i.i: ; preds = %invoke.cont97.i.i.i + %183 = load ptr, ptr %m_manager.i.i151.i.i.i, align 8 + %m_ref_count.i.i.i.i196.i.i.i = getelementptr inbounds %class.ast, ptr %182, i64 0, i32 2 + %184 = load i32, ptr %m_ref_count.i.i.i.i196.i.i.i, align 4 + %dec.i.i.i.i197.i.i.i = add i32 %184, -1 + store i32 %dec.i.i.i.i197.i.i.i, ptr %m_ref_count.i.i.i.i196.i.i.i, align 4 + %cmp.i.i.i198.i.i.i = icmp eq i32 %dec.i.i.i.i197.i.i.i, 0 + br i1 %cmp.i.i.i198.i.i.i, label %if.then2.i.i.i199.i.i.i, label %if.then103.i.i.i + +if.then2.i.i.i199.i.i.i: ; preds = %if.then.i.i.i194.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %183, ptr noundef nonnull %182) + to label %if.then103.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.then103.i.i.i: ; preds = %if.then2.i.i.i199.i.i.i, %if.then.i.i.i194.i.i.i, %invoke.cont97.i.i.i + store ptr null, ptr %m_pr2.i.i.i, align 8 + %bf.load108.i.i.i = load i32, ptr %89, align 8 + %bf.clear109.i.i.i = and i32 %bf.load108.i.i.i, 1 + %tobool.not.i.i.i = icmp eq i32 %bf.clear109.i.i.i, 0 + br i1 %tobool.not.i.i.i, label %invoke.cont110.i.i.i, label %if.then.i.i53.i.i + +if.then.i.i53.i.i: ; preds = %if.then103.i.i.i + %185 = load ptr, ptr %m_pr.i89.i.i, align 8 + %186 = load ptr, ptr %m_r.i95.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %186, ptr noundef %185) + to label %invoke.cont110.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont110.i.i.i: ; preds = %if.then.i.i53.i.i, %if.then103.i.i.i + %187 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i204.i.i.i = getelementptr inbounds i32, ptr %187, i64 -1 + %188 = load i32, ptr %arrayidx.i204.i.i.i, align 4 + %dec.i.i.i.i = add i32 %188, -1 + store i32 %dec.i.i.i.i, ptr %arrayidx.i204.i.i.i, align 4 + %this.val58.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i205.i.i.i = icmp eq ptr %this.val58.i.i.i, null + br i1 %cmp.i.i205.i.i.i, label %invoke.cont112.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i: ; preds = %invoke.cont110.i.i.i + %arrayidx.i.i206.i.i.i = getelementptr inbounds i32, ptr %this.val58.i.i.i, i64 -1 + %189 = load i32, ptr %arrayidx.i.i206.i.i.i, align 4 + %cmp3.i.i207.i.i.i = icmp eq i32 %189, 0 + br i1 %cmp3.i.i207.i.i.i, label %invoke.cont112.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i + %190 = add i32 %189, -1 + %191 = zext i32 %190 to i64 + %m_new_child.i.i56.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val58.i.i.i, i64 %191, i32 1 + %bf.load.i.i57.i.i = load i32, ptr %m_new_child.i.i56.i.i, align 8 + %bf.set.i.i58.i.i = or i32 %bf.load.i.i57.i.i, 2 + store i32 %bf.set.i.i58.i.i, ptr %m_new_child.i.i56.i.i, align 8 + br label %invoke.cont112.i.i.i + +invoke.cont112.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i55.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i54.i.i, %invoke.cont110.i.i.i + %192 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i3.i210.i.i.i = icmp eq ptr %192, null + br i1 %tobool.not.i3.i210.i.i.i, label %invoke.cont114.i.i.i, label %if.then.i.i.i211.i.i.i + +if.then.i.i.i211.i.i.i: ; preds = %invoke.cont112.i.i.i + %193 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i213.i.i.i = getelementptr inbounds %class.ast, ptr %192, i64 0, i32 2 + %194 = load i32, ptr %m_ref_count.i.i.i.i213.i.i.i, align 4 + %dec.i.i.i.i214.i.i.i = add i32 %194, -1 + store i32 %dec.i.i.i.i214.i.i.i, ptr %m_ref_count.i.i.i.i213.i.i.i, align 4 + %cmp.i.i.i215.i.i.i = icmp eq i32 %dec.i.i.i.i214.i.i.i, 0 + br i1 %cmp.i.i.i215.i.i.i, label %if.then2.i.i.i216.i.i.i, label %invoke.cont114.i.i.i + +if.then2.i.i.i216.i.i.i: ; preds = %if.then.i.i.i211.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %193, ptr noundef nonnull %192) + to label %invoke.cont114.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont114.i.i.i: ; preds = %if.then2.i.i.i216.i.i.i, %if.then.i.i.i211.i.i.i, %invoke.cont112.i.i.i + store ptr null, ptr %m_r.i95.i.i, align 8 + %195 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i219.i.i.i = icmp eq ptr %195, null + br i1 %tobool.not.i3.i219.i.i.i, label %cleanup.i.i.i, label %if.then.i.i.i220.i.i.i + +if.then.i.i.i220.i.i.i: ; preds = %invoke.cont114.i.i.i + %196 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i222.i.i.i = getelementptr inbounds %class.ast, ptr %195, i64 0, i32 2 + %197 = load i32, ptr %m_ref_count.i.i.i.i222.i.i.i, align 4 + %dec.i.i.i.i223.i.i.i = add i32 %197, -1 + store i32 %dec.i.i.i.i223.i.i.i, ptr %m_ref_count.i.i.i.i222.i.i.i, align 4 + %cmp.i.i.i224.i.i.i = icmp eq i32 %dec.i.i.i.i223.i.i.i, 0 + br i1 %cmp.i.i.i224.i.i.i, label %if.then2.i.i.i225.i.i.i, label %cleanup.i.i.i + +if.then2.i.i.i225.i.i.i: ; preds = %if.then.i.i.i220.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %196, ptr noundef nonnull %195) + to label %cleanup.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.else229.i.i.i: ; preds = %invoke.cont55.i.i.i + %bf.load230.i.i.i = load i32, ptr %89, align 8 + %198 = and i32 %bf.load230.i.i.i, 2 + %tobool233.not.i.i.i = icmp eq i32 %198, 0 + br i1 %tobool233.not.i.i.i, label %if.end.i290.i.i.i, label %if.then234.i.i.i + +if.then234.i.i.i: ; preds = %if.else229.i.i.i + %this.val50.i.i.i = load ptr, ptr %28, align 8 + %call237.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val50.i.i.i, ptr noundef %118, i32 noundef %sub.i.i.i, ptr noundef %add.ptr.i.i.i) + to label %invoke.cont236.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont236.i.i.i: ; preds = %if.then234.i.i.i + %tobool.not.i258.i.i.i = icmp eq ptr %call237.i.i.i, null + br i1 %tobool.not.i258.i.i.i, label %if.end.i262.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i: ; preds = %invoke.cont236.i.i.i + %m_ref_count.i.i.i260.i.i.i = getelementptr inbounds %class.ast, ptr %call237.i.i.i, i64 0, i32 2 + %199 = load i32, ptr %m_ref_count.i.i.i260.i.i.i, align 4 + %inc.i.i.i261.i.i.i = add i32 %199, 1 + store i32 %inc.i.i.i261.i.i.i, ptr %m_ref_count.i.i.i260.i.i.i, align 4 + br label %if.end.i262.i.i.i + +if.end.i262.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i259.i.i.i, %invoke.cont236.i.i.i + %200 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i3.i263.i.i.i = icmp eq ptr %200, null + br i1 %tobool.not.i3.i263.i.i.i, label %invoke.cont239.i.i.i, label %if.then.i.i.i264.i.i.i + +if.then.i.i.i264.i.i.i: ; preds = %if.end.i262.i.i.i + %201 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i266.i.i.i = getelementptr inbounds %class.ast, ptr %200, i64 0, i32 2 + %202 = load i32, ptr %m_ref_count.i.i.i.i266.i.i.i, align 4 + %dec.i.i.i.i267.i.i.i = add i32 %202, -1 + store i32 %dec.i.i.i.i267.i.i.i, ptr %m_ref_count.i.i.i.i266.i.i.i, align 4 + %cmp.i.i.i268.i.i.i = icmp eq i32 %dec.i.i.i.i267.i.i.i, 0 + br i1 %cmp.i.i.i268.i.i.i, label %if.then2.i.i.i269.i.i.i, label %invoke.cont239.i.i.i + +if.then2.i.i.i269.i.i.i: ; preds = %if.then.i.i.i264.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %201, ptr noundef nonnull %200) + to label %invoke.cont239.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont239.i.i.i: ; preds = %if.then2.i.i.i269.i.i.i, %if.then.i.i.i264.i.i.i, %if.end.i262.i.i.i + store ptr %call237.i.i.i, ptr %m_r.i95.i.i, align 8 + %this.val49.i.i.i = load ptr, ptr %28, align 8 + %call245.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val49.i.i.i, ptr noundef nonnull %87, ptr noundef %call237.i.i.i) + to label %invoke.cont244.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont244.i.i.i: ; preds = %invoke.cont239.i.i.i + %tobool.not.i272.i.i.i = icmp eq ptr %call245.i.i.i, null + br i1 %tobool.not.i272.i.i.i, label %if.end.i276.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i: ; preds = %invoke.cont244.i.i.i + %m_ref_count.i.i.i274.i.i.i = getelementptr inbounds %class.ast, ptr %call245.i.i.i, i64 0, i32 2 + %203 = load i32, ptr %m_ref_count.i.i.i274.i.i.i, align 4 + %inc.i.i.i275.i.i.i = add i32 %203, 1 + store i32 %inc.i.i.i275.i.i.i, ptr %m_ref_count.i.i.i274.i.i.i, align 4 + br label %if.end.i276.i.i.i + +if.end.i276.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i273.i.i.i, %invoke.cont244.i.i.i + %204 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i277.i.i.i = icmp eq ptr %204, null + br i1 %tobool.not.i3.i277.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i, label %if.then.i.i.i278.i.i.i + +if.then.i.i.i278.i.i.i: ; preds = %if.end.i276.i.i.i + %205 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i280.i.i.i = getelementptr inbounds %class.ast, ptr %204, i64 0, i32 2 + %206 = load i32, ptr %m_ref_count.i.i.i.i280.i.i.i, align 4 + %dec.i.i.i.i281.i.i.i = add i32 %206, -1 + store i32 %dec.i.i.i.i281.i.i.i, ptr %m_ref_count.i.i.i.i280.i.i.i, align 4 + %cmp.i.i.i282.i.i.i = icmp eq i32 %dec.i.i.i.i281.i.i.i, 0 + br i1 %cmp.i.i.i282.i.i.i, label %if.then2.i.i.i283.i.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i + +if.then2.i.i.i283.i.i.i: ; preds = %if.then.i.i.i278.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %205, ptr noundef nonnull %204) + to label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i: ; preds = %if.then2.i.i.i283.i.i.i, %if.then.i.i.i278.i.i.i, %if.end.i276.i.i.i + store ptr %call245.i.i.i, ptr %m_pr.i89.i.i, align 8 + br label %if.end254.i.i.i + +if.end.i290.i.i.i: ; preds = %if.else229.i.i.i + %m_ref_count.i.i.i288.i.i.i = getelementptr inbounds %class.ast, ptr %87, i64 0, i32 2 + %207 = load i32, ptr %m_ref_count.i.i.i288.i.i.i, align 4 + %inc.i.i.i289.i.i.i = add i32 %207, 1 + store i32 %inc.i.i.i289.i.i.i, ptr %m_ref_count.i.i.i288.i.i.i, align 4 + %208 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i3.i291.i.i.i = icmp eq ptr %208, null + br i1 %tobool.not.i3.i291.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i, label %if.then.i.i.i292.i.i.i + +if.then.i.i.i292.i.i.i: ; preds = %if.end.i290.i.i.i + %209 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i294.i.i.i = getelementptr inbounds %class.ast, ptr %208, i64 0, i32 2 + %210 = load i32, ptr %m_ref_count.i.i.i.i294.i.i.i, align 4 + %dec.i.i.i.i295.i.i.i = add i32 %210, -1 + store i32 %dec.i.i.i.i295.i.i.i, ptr %m_ref_count.i.i.i.i294.i.i.i, align 4 + %cmp.i.i.i296.i.i.i = icmp eq i32 %dec.i.i.i.i295.i.i.i, 0 + br i1 %cmp.i.i.i296.i.i.i, label %if.then2.i.i.i297.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i + +if.then2.i.i.i297.i.i.i: ; preds = %if.then.i.i.i292.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %209, ptr noundef nonnull %208) + to label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i: ; preds = %if.then2.i.i.i297.i.i.i, %if.then.i.i.i292.i.i.i, %if.end.i290.i.i.i + store ptr %87, ptr %m_r.i95.i.i, align 8 + br label %if.end254.i.i.i + +if.end254.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit299.i.i.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit285.i.i.i + %211 = load i32, ptr %m_spos.i.i.i, align 4 + %212 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i302.i.i.i = icmp eq ptr %212, null + br i1 %cmp.i.i.i302.i.i.i, label %invoke.cont257.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i: ; preds = %if.end254.i.i.i + %arrayidx.i.i.i306.i.i.i = getelementptr inbounds i32, ptr %212, i64 -1 + %213 = load i32, ptr %arrayidx.i.i.i306.i.i.i, align 4 + %214 = zext i32 %213 to i64 + %add.ptr.i.i307.i.i.i = getelementptr inbounds ptr, ptr %212, i64 %214 + %cmp3.i.i308.i.i.i = icmp ugt i32 %213, %211 + br i1 %cmp3.i.i308.i.i.i, label %for.body.i.i311.preheader.i.i.i, label %if.then.i.i309.i.i.i + +for.body.i.i311.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + %idx.ext.i304.i.i.i = zext i32 %211 to i64 + %add.ptr.i305.i.i.i = getelementptr inbounds ptr, ptr %212, i64 %idx.ext.i304.i.i.i + br label %for.body.i.i311.i.i.i + +for.body.i.i311.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i, %for.body.i.i311.preheader.i.i.i + %it.04.i.i312.i.i.i = phi ptr [ %incdec.ptr.i.i319.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i ], [ %add.ptr.i305.i.i.i, %for.body.i.i311.preheader.i.i.i ] + %215 = load ptr, ptr %it.04.i.i312.i.i.i, align 8 + %216 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i313.i.i.i = icmp eq ptr %215, null + br i1 %tobool.not.i.i.i.i.i313.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i, label %if.then.i.i.i.i.i314.i.i.i + +if.then.i.i.i.i.i314.i.i.i: ; preds = %for.body.i.i311.i.i.i + %m_ref_count.i.i.i.i.i.i315.i.i.i = getelementptr inbounds %class.ast, ptr %215, i64 0, i32 2 + %217 = load i32, ptr %m_ref_count.i.i.i.i.i.i315.i.i.i, align 4 + %dec.i.i.i.i.i.i316.i.i.i = add i32 %217, -1 + store i32 %dec.i.i.i.i.i.i316.i.i.i, ptr %m_ref_count.i.i.i.i.i.i315.i.i.i, align 4 + %cmp.i.i.i.i.i317.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i316.i.i.i, 0 + br i1 %cmp.i.i.i.i.i317.i.i.i, label %if.then2.i.i.i.i.i324.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i + +if.then2.i.i.i.i.i324.i.i.i: ; preds = %if.then.i.i.i.i.i314.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %216, ptr noundef nonnull %215) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i: ; preds = %if.then2.i.i.i.i.i324.i.i.i, %if.then.i.i.i.i.i314.i.i.i, %for.body.i.i311.i.i.i + %incdec.ptr.i.i319.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i312.i.i.i, i64 1 + %cmp.i.i320.i.i.i = icmp ult ptr %incdec.ptr.i.i319.i.i.i, %add.ptr.i.i307.i.i.i + br i1 %cmp.i.i320.i.i.i, label %for.body.i.i311.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i318.i.i.i + %.pre.i322.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i323.i.i.i = icmp eq ptr %.pre.i322.i.i.i, null + br i1 %tobool.not.i.i323.i.i.i, label %invoke.cont257.i.i.i, label %if.then.i.i309.i.i.i + +if.then.i.i309.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i + %218 = phi ptr [ %.pre.i322.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i ], [ %212, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i303.i.i.i ] + %arrayidx.i.i310.i.i.i = getelementptr inbounds i32, ptr %218, i64 -1 + store i32 %211, ptr %arrayidx.i.i310.i.i.i, align 4 + br label %invoke.cont257.i.i.i + +invoke.cont257.i.i.i: ; preds = %if.then.i.i309.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i321.i.i.i, %if.end254.i.i.i + %219 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i.i.i.i328.i.i.i = icmp eq ptr %219, null + br i1 %tobool.not.i.i.i.i328.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i, label %if.then.i.i.i.i329.i.i.i + +if.then.i.i.i.i329.i.i.i: ; preds = %invoke.cont257.i.i.i + %m_ref_count.i.i.i.i.i330.i.i.i = getelementptr inbounds %class.ast, ptr %219, i64 0, i32 2 + %220 = load i32, ptr %m_ref_count.i.i.i.i.i330.i.i.i, align 4 + %inc.i.i.i.i.i331.i.i.i = add i32 %220, 1 + store i32 %inc.i.i.i.i.i331.i.i.i, ptr %m_ref_count.i.i.i.i.i330.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i: ; preds = %if.then.i.i.i.i329.i.i.i, %invoke.cont257.i.i.i + %221 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i334.i.i.i = icmp eq ptr %221, null + br i1 %cmp.i.i334.i.i.i, label %if.then.i.i343.i.i.i, label %lor.lhs.false.i.i335.i.i.i + +lor.lhs.false.i.i335.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + %arrayidx.i.i336.i.i.i = getelementptr inbounds i32, ptr %221, i64 -1 + %222 = load i32, ptr %arrayidx.i.i336.i.i.i, align 4 + %arrayidx4.i.i337.i.i.i = getelementptr inbounds i32, ptr %221, i64 -2 + %223 = load i32, ptr %arrayidx4.i.i337.i.i.i, align 4 + %cmp5.i.i338.i.i.i = icmp eq i32 %222, %223 + br i1 %cmp5.i.i338.i.i.i, label %if.then.i.i343.i.i.i, label %invoke.cont261.i.i.i + +if.then.i.i343.i.i.i: ; preds = %lor.lhs.false.i.i335.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i332.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc347.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc347.i.i.i: ; preds = %if.then.i.i343.i.i.i + %.pre.i.i344.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i345.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i344.i.i.i, i64 -1 + %.pre1.i.i346.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i345.i.i.i, align 4 + br label %invoke.cont261.i.i.i + +invoke.cont261.i.i.i: ; preds = %.noexc347.i.i.i, %lor.lhs.false.i.i335.i.i.i + %224 = phi i32 [ %.pre1.i.i346.i.i.i, %.noexc347.i.i.i ], [ %222, %lor.lhs.false.i.i335.i.i.i ] + %225 = phi ptr [ %.pre.i.i344.i.i.i, %.noexc347.i.i.i ], [ %221, %lor.lhs.false.i.i335.i.i.i ] + %idx.ext.i.i339.i.i.i = zext i32 %224 to i64 + %add.ptr.i.i340.i.i.i = getelementptr inbounds ptr, ptr %225, i64 %idx.ext.i.i339.i.i.i + store ptr %219, ptr %add.ptr.i.i340.i.i.i, align 8 + %226 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i341.i.i.i = getelementptr inbounds i32, ptr %226, i64 -1 + %227 = load i32, ptr %arrayidx10.i.i341.i.i.i, align 4 + %inc.i.i342.i.i.i = add i32 %227, 1 + store i32 %inc.i.i342.i.i.i, ptr %arrayidx10.i.i341.i.i.i, align 4 + %bf.load268.i.i.i = load i32, ptr %89, align 8 + %bf.clear269.i.i.i = and i32 %bf.load268.i.i.i, 1 + %tobool270.not.i.i.i = icmp eq i32 %bf.clear269.i.i.i, 0 + br i1 %tobool270.not.i.i.i, label %invoke.cont271.i.i.i, label %if.then.i350.i.i.i + +if.then.i350.i.i.i: ; preds = %invoke.cont261.i.i.i + %228 = load ptr, ptr %m_pr.i89.i.i, align 8 + %229 = load ptr, ptr %m_r.i95.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %229, ptr noundef %228) + to label %invoke.cont271.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont271.i.i.i: ; preds = %if.then.i350.i.i.i, %invoke.cont261.i.i.i + %230 = load i32, ptr %m_spos.i.i.i, align 4 + %231 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i355.i.i.i = icmp eq ptr %231, null + br i1 %cmp.i.i.i355.i.i.i, label %invoke.cont274.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i: ; preds = %invoke.cont271.i.i.i + %arrayidx.i.i.i359.i.i.i = getelementptr inbounds i32, ptr %231, i64 -1 + %232 = load i32, ptr %arrayidx.i.i.i359.i.i.i, align 4 + %233 = zext i32 %232 to i64 + %add.ptr.i.i360.i.i.i = getelementptr inbounds ptr, ptr %231, i64 %233 + %cmp3.i.i361.i.i.i = icmp ugt i32 %232, %230 + br i1 %cmp3.i.i361.i.i.i, label %for.body.i.i364.preheader.i.i.i, label %if.then.i.i362.i.i.i + +for.body.i.i364.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + %idx.ext.i357.i.i.i = zext i32 %230 to i64 + %add.ptr.i358.i.i.i = getelementptr inbounds ptr, ptr %231, i64 %idx.ext.i357.i.i.i + br label %for.body.i.i364.i.i.i + +for.body.i.i364.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i, %for.body.i.i364.preheader.i.i.i + %it.04.i.i365.i.i.i = phi ptr [ %incdec.ptr.i.i372.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i ], [ %add.ptr.i358.i.i.i, %for.body.i.i364.preheader.i.i.i ] + %234 = load ptr, ptr %it.04.i.i365.i.i.i, align 8 + %235 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i366.i.i.i = icmp eq ptr %234, null + br i1 %tobool.not.i.i.i.i.i366.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i, label %if.then.i.i.i.i.i367.i.i.i + +if.then.i.i.i.i.i367.i.i.i: ; preds = %for.body.i.i364.i.i.i + %m_ref_count.i.i.i.i.i.i368.i.i.i = getelementptr inbounds %class.ast, ptr %234, i64 0, i32 2 + %236 = load i32, ptr %m_ref_count.i.i.i.i.i.i368.i.i.i, align 4 + %dec.i.i.i.i.i.i369.i.i.i = add i32 %236, -1 + store i32 %dec.i.i.i.i.i.i369.i.i.i, ptr %m_ref_count.i.i.i.i.i.i368.i.i.i, align 4 + %cmp.i.i.i.i.i370.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i369.i.i.i, 0 + br i1 %cmp.i.i.i.i.i370.i.i.i, label %if.then2.i.i.i.i.i377.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i + +if.then2.i.i.i.i.i377.i.i.i: ; preds = %if.then.i.i.i.i.i367.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %235, ptr noundef nonnull %234) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i unwind label %lpad.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i: ; preds = %if.then2.i.i.i.i.i377.i.i.i, %if.then.i.i.i.i.i367.i.i.i, %for.body.i.i364.i.i.i + %incdec.ptr.i.i372.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i365.i.i.i, i64 1 + %cmp.i.i373.i.i.i = icmp ult ptr %incdec.ptr.i.i372.i.i.i, %add.ptr.i.i360.i.i.i + br i1 %cmp.i.i373.i.i.i, label %for.body.i.i364.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i371.i.i.i + %.pre.i375.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i376.i.i.i = icmp eq ptr %.pre.i375.i.i.i, null + br i1 %tobool.not.i.i376.i.i.i, label %invoke.cont274.i.i.i, label %if.then.i.i362.i.i.i + +if.then.i.i362.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i + %237 = phi ptr [ %.pre.i375.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i ], [ %231, %_ZN6vectorIP3appLb0EjE3endEv.exit.i356.i.i.i ] + %arrayidx.i.i363.i.i.i = getelementptr inbounds i32, ptr %237, i64 -1 + store i32 %230, ptr %arrayidx.i.i363.i.i.i, align 4 + br label %invoke.cont274.i.i.i + +invoke.cont274.i.i.i: ; preds = %if.then.i.i362.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i374.i.i.i, %invoke.cont271.i.i.i + %238 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i.i.i.i381.i.i.i = icmp eq ptr %238, null + br i1 %tobool.not.i.i.i.i381.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i, label %if.then.i.i.i.i382.i.i.i + +if.then.i.i.i.i382.i.i.i: ; preds = %invoke.cont274.i.i.i + %m_ref_count.i.i.i.i.i383.i.i.i = getelementptr inbounds %class.ast, ptr %238, i64 0, i32 2 + %239 = load i32, ptr %m_ref_count.i.i.i.i.i383.i.i.i, align 4 + %inc.i.i.i.i.i384.i.i.i = add i32 %239, 1 + store i32 %inc.i.i.i.i.i384.i.i.i, ptr %m_ref_count.i.i.i.i.i383.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i: ; preds = %if.then.i.i.i.i382.i.i.i, %invoke.cont274.i.i.i + %240 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i387.i.i.i = icmp eq ptr %240, null + br i1 %cmp.i.i387.i.i.i, label %if.then.i.i396.i.i.i, label %lor.lhs.false.i.i388.i.i.i + +lor.lhs.false.i.i388.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + %arrayidx.i.i389.i.i.i = getelementptr inbounds i32, ptr %240, i64 -1 + %241 = load i32, ptr %arrayidx.i.i389.i.i.i, align 4 + %arrayidx4.i.i390.i.i.i = getelementptr inbounds i32, ptr %240, i64 -2 + %242 = load i32, ptr %arrayidx4.i.i390.i.i.i, align 4 + %cmp5.i.i391.i.i.i = icmp eq i32 %241, %242 + br i1 %cmp5.i.i391.i.i.i, label %if.then.i.i396.i.i.i, label %invoke.cont278.i.i.i + +if.then.i.i396.i.i.i: ; preds = %lor.lhs.false.i.i388.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i385.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc400.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc400.i.i.i: ; preds = %if.then.i.i396.i.i.i + %.pre.i.i397.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i398.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i397.i.i.i, i64 -1 + %.pre1.i.i399.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i398.i.i.i, align 4 + br label %invoke.cont278.i.i.i + +invoke.cont278.i.i.i: ; preds = %.noexc400.i.i.i, %lor.lhs.false.i.i388.i.i.i + %243 = phi i32 [ %.pre1.i.i399.i.i.i, %.noexc400.i.i.i ], [ %241, %lor.lhs.false.i.i388.i.i.i ] + %244 = phi ptr [ %.pre.i.i397.i.i.i, %.noexc400.i.i.i ], [ %240, %lor.lhs.false.i.i388.i.i.i ] + %idx.ext.i.i392.i.i.i = zext i32 %243 to i64 + %add.ptr.i.i393.i.i.i = getelementptr inbounds ptr, ptr %244, i64 %idx.ext.i.i392.i.i.i + store ptr %238, ptr %add.ptr.i.i393.i.i.i, align 8 + %245 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i394.i.i.i = getelementptr inbounds i32, ptr %245, i64 -1 + %246 = load i32, ptr %arrayidx10.i.i394.i.i.i, align 4 + %inc.i.i395.i.i.i = add i32 %246, 1 + store i32 %inc.i.i395.i.i.i, ptr %arrayidx10.i.i394.i.i.i, align 4 + %247 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i403.i.i.i = icmp eq ptr %247, null + br i1 %tobool.not.i3.i403.i.i.i, label %invoke.cont282.i.i.i, label %if.then.i.i.i404.i.i.i + +if.then.i.i.i404.i.i.i: ; preds = %invoke.cont278.i.i.i + %248 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i406.i.i.i = getelementptr inbounds %class.ast, ptr %247, i64 0, i32 2 + %249 = load i32, ptr %m_ref_count.i.i.i.i406.i.i.i, align 4 + %dec.i.i.i.i407.i.i.i = add i32 %249, -1 + store i32 %dec.i.i.i.i407.i.i.i, ptr %m_ref_count.i.i.i.i406.i.i.i, align 4 + %cmp.i.i.i408.i.i.i = icmp eq i32 %dec.i.i.i.i407.i.i.i, 0 + br i1 %cmp.i.i.i408.i.i.i, label %if.then2.i.i.i409.i.i.i, label %invoke.cont282.i.i.i + +if.then2.i.i.i409.i.i.i: ; preds = %if.then.i.i.i404.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %248, ptr noundef nonnull %247) + to label %invoke.cont282.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont282.i.i.i: ; preds = %if.then2.i.i.i409.i.i.i, %if.then.i.i.i404.i.i.i, %invoke.cont278.i.i.i + store ptr null, ptr %m_pr.i89.i.i, align 8 + %250 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i413.i.i.i = getelementptr inbounds i32, ptr %250, i64 -1 + %251 = load i32, ptr %arrayidx.i413.i.i.i, align 4 + %dec.i414.i.i.i = add i32 %251, -1 + store i32 %dec.i414.i.i.i, ptr %arrayidx.i413.i.i.i, align 4 + %252 = load ptr, ptr %m_r.i95.i.i, align 8 + %this.val59.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i.i = icmp eq ptr %252, %87 + %cmp.i.i.i415.i.i.i = icmp eq ptr %this.val59.i.i.i, null + %or.cond.i.i.i.i = select i1 %cmp.not.i.i.i.i, i1 true, i1 %cmp.i.i.i415.i.i.i + br i1 %or.cond.i.i.i.i, label %invoke.cont287.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i: ; preds = %invoke.cont282.i.i.i + %arrayidx.i.i.i416.i.i.i = getelementptr inbounds i32, ptr %this.val59.i.i.i, i64 -1 + %253 = load i32, ptr %arrayidx.i.i.i416.i.i.i, align 4 + %cmp3.i.i.i.i.i.i = icmp eq i32 %253, 0 + br i1 %cmp3.i.i.i.i.i.i, label %invoke.cont287.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i + %254 = add i32 %253, -1 + %255 = zext i32 %254 to i64 + %m_new_child.i.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i.i.i, i64 %255, i32 1 + %bf.load.i.i417.i.i.i = load i32, ptr %m_new_child.i.i.i.i.i, align 8 + %bf.set.i.i.i.i.i = or i32 %bf.load.i.i417.i.i.i, 2 + store i32 %bf.set.i.i.i.i.i, ptr %m_new_child.i.i.i.i.i, align 8 + %.pr.pre.i.i.i = load ptr, ptr %m_r.i95.i.i, align 8 + br label %invoke.cont287.i.i.i + +invoke.cont287.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i, %invoke.cont282.i.i.i + %256 = phi ptr [ %252, %invoke.cont282.i.i.i ], [ %252, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i ], [ %.pr.pre.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i ] + %tobool.not.i3.i420.i.i.i = icmp eq ptr %256, null + br i1 %tobool.not.i3.i420.i.i.i, label %cleanup.i.i.i, label %if.then.i.i.i421.i.i.i + +if.then.i.i.i421.i.i.i: ; preds = %invoke.cont287.i.i.i + %257 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i423.i.i.i = getelementptr inbounds %class.ast, ptr %256, i64 0, i32 2 + %258 = load i32, ptr %m_ref_count.i.i.i.i423.i.i.i, align 4 + %dec.i.i.i.i424.i.i.i = add i32 %258, -1 + store i32 %dec.i.i.i.i424.i.i.i, ptr %m_ref_count.i.i.i.i423.i.i.i, align 4 + %cmp.i.i.i425.i.i.i = icmp eq i32 %dec.i.i.i.i424.i.i.i, 0 + br i1 %cmp.i.i.i425.i.i.i, label %if.then2.i.i.i426.i.i.i, label %cleanup.i.i.i + +if.then2.i.i.i426.i.i.i: ; preds = %if.then.i.i.i421.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %257, ptr noundef nonnull %256) + to label %cleanup.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +cleanup.i.i.i: ; preds = %if.then2.i.i.i426.i.i.i, %if.then.i.i.i421.i.i.i, %invoke.cont287.i.i.i, %if.then2.i.i.i225.i.i.i, %if.then.i.i.i220.i.i.i, %invoke.cont114.i.i.i + %m_r.sink.i.i.i = phi ptr [ %m_pr.i89.i.i, %if.then2.i.i.i225.i.i.i ], [ %m_pr.i89.i.i, %invoke.cont114.i.i.i ], [ %m_pr.i89.i.i, %if.then.i.i.i220.i.i.i ], [ %m_r.i95.i.i, %invoke.cont287.i.i.i ], [ %m_r.i95.i.i, %if.then.i.i.i421.i.i.i ], [ %m_r.i95.i.i, %if.then2.i.i.i426.i.i.i ] + store ptr null, ptr %m_r.sink.i.i.i, align 8 + %tobool.not.i.i429.i.i.i = icmp eq ptr %.pre673.pre.i.i.i, null + br i1 %tobool.not.i.i429.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i430.i.i.i + +if.then.i.i.i430.i.i.i: ; preds = %cleanup.i.i.i + %m_ref_count.i.i.i.i432.i.i.i = getelementptr inbounds %class.ast, ptr %.pre673.pre.i.i.i, i64 0, i32 2 + %259 = load i32, ptr %m_ref_count.i.i.i.i432.i.i.i, align 4 + %dec.i.i.i.i433.i.i.i = add i32 %259, -1 + store i32 %dec.i.i.i.i433.i.i.i, ptr %m_ref_count.i.i.i.i432.i.i.i, align 4 + %cmp.i.i.i434.i.i.i = icmp eq i32 %dec.i.i.i.i433.i.i.i, 0 + br i1 %cmp.i.i.i434.i.i.i, label %if.then2.i.i.i435.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.then2.i.i.i435.i.i.i: ; preds = %if.then.i.i.i430.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i.i.i, ptr noundef nonnull %.pre673.pre.i.i.i) + to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i + +terminate.lpad.i.i.i.i: ; preds = %if.then2.i.i.i435.i.i.i + %260 = landingpad { ptr, i32 } catch ptr null - %264 = extractvalue { ptr, i32 } %263, 0 - call void @__clang_call_terminate(ptr %264) #14 + %261 = extractvalue { ptr, i32 } %260, 0 + tail call void @__clang_call_terminate(ptr %261) #14 unreachable -sw.bb292.i.i: ; preds = %sw.bb.i - %this.val48.i.i = load ptr, ptr %28, align 8 - store ptr %this.val48.i.i, ptr %m_manager.i1243, align 8 - store ptr null, ptr %pr1295.i.i, align 8 - store ptr %this.val48.i.i, ptr %m_manager.i1242, align 8 - %265 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1235 = icmp eq ptr %265, null - br i1 %cmp.i.i.i1235, label %invoke.cont301.i.i, label %if.end.i.i.i1236 - -if.end.i.i.i1236: ; preds = %sw.bb292.i.i - %arrayidx.i.i.i1237 = getelementptr inbounds i32, ptr %265, i64 -1 - %266 = load i32, ptr %arrayidx.i.i.i1237, align 4 - %267 = add i32 %266, -1 - %268 = zext i32 %267 to i64 - br label %invoke.cont301.i.i - -invoke.cont301.i.i: ; preds = %if.end.i.i.i1236, %sw.bb292.i.i - %retval.0.i.i.i1238 = phi i64 [ %268, %if.end.i.i.i1236 ], [ 4294967295, %sw.bb292.i.i ] - %arrayidx.i1.i.i1239 = getelementptr inbounds ptr, ptr %265, i64 %retval.0.i.i.i1238 - %269 = load ptr, ptr %arrayidx.i1.i.i1239, align 8 - %tobool.not.i1220 = icmp eq ptr %269, null - br i1 %tobool.not.i1220, label %if.end.i.i.i1201, label %invoke.cont303.i.i - -invoke.cont303.i.i: ; preds = %invoke.cont301.i.i - %m_ref_count.i.i.i1222 = getelementptr inbounds %class.ast, ptr %269, i64 0, i32 2 - %270 = load i32, ptr %m_ref_count.i.i.i1222, align 4 - %inc.i.i.i1223 = add i32 %270, 1 - store i32 %inc.i.i.i1223, ptr %m_ref_count.i.i.i1222, align 4 - %.pre2933 = load ptr, ptr %m_nodes.i30.i, align 8, !nonnull !12, !noundef !12 - br label %if.end.i.i.i1201 - -if.end.i.i.i1201: ; preds = %invoke.cont301.i.i, %invoke.cont303.i.i - %271 = phi ptr [ %.pre2933, %invoke.cont303.i.i ], [ %265, %invoke.cont301.i.i ] - store ptr %269, ptr %pr2293.i.i, align 8 - %arrayidx.i.i.i1202 = getelementptr inbounds i32, ptr %271, i64 -1 - %272 = load i32, ptr %arrayidx.i.i.i1202, align 4 - %273 = add i32 %272, -1 - %274 = zext i32 %273 to i64 - %arrayidx.i1.i.i1206 = getelementptr inbounds ptr, ptr %271, i64 %274 - %275 = load ptr, ptr %arrayidx.i1.i.i1206, align 8 - %arrayidx.i.i1207 = getelementptr inbounds i32, ptr %271, i64 -1 - store i32 %273, ptr %arrayidx.i.i1207, align 4 - %276 = load ptr, ptr %m_result_pr_stack.i721, align 8 - %tobool.not.i.i.i.i1208 = icmp eq ptr %275, null - br i1 %tobool.not.i.i.i.i1208, label %invoke.cont306.i.i, label %if.then.i.i.i.i1209 - -if.then.i.i.i.i1209: ; preds = %if.end.i.i.i1201 - %m_ref_count.i.i.i.i.i1210 = getelementptr inbounds %class.ast, ptr %275, i64 0, i32 2 - %277 = load i32, ptr %m_ref_count.i.i.i.i.i1210, align 4 - %dec.i.i.i.i.i1211 = add i32 %277, -1 - store i32 %dec.i.i.i.i.i1211, ptr %m_ref_count.i.i.i.i.i1210, align 4 - %cmp.i.i.i.i1212 = icmp eq i32 %dec.i.i.i.i.i1211, 0 - br i1 %cmp.i.i.i.i1212, label %if.then2.i.i.i.i1213, label %invoke.cont306.i.i - -if.then2.i.i.i.i1213: ; preds = %if.then.i.i.i.i1209 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %276, ptr noundef nonnull %275) - to label %invoke.cont306.i.i unwind label %lpad300.i.i - -invoke.cont306.i.i: ; preds = %if.then.i.i.i.i1209, %if.end.i.i.i1201, %if.then2.i.i.i.i1213 - %278 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1192 = icmp eq ptr %278, null - br i1 %cmp.i.i.i1192, label %invoke.cont308.i.i, label %if.end.i.i.i1193 - -if.end.i.i.i1193: ; preds = %invoke.cont306.i.i - %arrayidx.i.i.i1194 = getelementptr inbounds i32, ptr %278, i64 -1 - %279 = load i32, ptr %arrayidx.i.i.i1194, align 4 - %280 = add i32 %279, -1 - %281 = zext i32 %280 to i64 - br label %invoke.cont308.i.i - -invoke.cont308.i.i: ; preds = %if.end.i.i.i1193, %invoke.cont306.i.i - %retval.0.i.i.i1195 = phi i64 [ %281, %if.end.i.i.i1193 ], [ 4294967295, %invoke.cont306.i.i ] - %arrayidx.i1.i.i1196 = getelementptr inbounds ptr, ptr %278, i64 %retval.0.i.i.i1195 - %282 = load ptr, ptr %arrayidx.i1.i.i1196, align 8 - %tobool.not.i1177 = icmp eq ptr %282, null - br i1 %tobool.not.i1177, label %invoke.cont310.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i1178 - -_ZN11ast_manager7inc_refEP3ast.exit.i1178: ; preds = %invoke.cont308.i.i - %m_ref_count.i.i.i1179 = getelementptr inbounds %class.ast, ptr %282, i64 0, i32 2 - %283 = load i32, ptr %m_ref_count.i.i.i1179, align 4 - %inc.i.i.i1180 = add i32 %283, 1 - store i32 %inc.i.i.i1180, ptr %m_ref_count.i.i.i1179, align 4 - br label %invoke.cont310.i.i - -invoke.cont310.i.i: ; preds = %invoke.cont308.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i1178 - store ptr %282, ptr %pr1295.i.i, align 8 - %284 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i1157 = icmp eq ptr %284, null - br i1 %cmp.i.i.i1157, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1171, label %if.end.i.i.i1158 - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1171: ; preds = %invoke.cont310.i.i - %.pre.i1172 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1173 = add i32 %.pre.i1172, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i1160 - -if.end.i.i.i1158: ; preds = %invoke.cont310.i.i - %arrayidx.i.i.i1159 = getelementptr inbounds i32, ptr %284, i64 -1 - %285 = load i32, ptr %arrayidx.i.i.i1159, align 4 - %286 = add i32 %285, -1 - %287 = zext i32 %286 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i1160 - -_ZN6vectorIP3appLb0EjE4backEv.exit.i1160: ; preds = %if.end.i.i.i1158, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1171 - %dec.i.pre-phi.i1161 = phi i32 [ %.pre1.i1173, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1171 ], [ %286, %if.end.i.i.i1158 ] - %retval.0.i.i.i1162 = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i1171 ], [ %287, %if.end.i.i.i1158 ] - %arrayidx.i1.i.i1163 = getelementptr inbounds ptr, ptr %284, i64 %retval.0.i.i.i1162 - %288 = load ptr, ptr %arrayidx.i1.i.i1163, align 8 - %arrayidx.i.i1164 = getelementptr inbounds i32, ptr %284, i64 -1 - store i32 %dec.i.pre-phi.i1161, ptr %arrayidx.i.i1164, align 4 - %289 = load ptr, ptr %m_result_pr_stack.i721, align 8 - %tobool.not.i.i.i.i1165 = icmp eq ptr %288, null - br i1 %tobool.not.i.i.i.i1165, label %invoke.cont313.i.i, label %if.then.i.i.i.i1166 - -if.then.i.i.i.i1166: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i1160 - %m_ref_count.i.i.i.i.i1167 = getelementptr inbounds %class.ast, ptr %288, i64 0, i32 2 - %290 = load i32, ptr %m_ref_count.i.i.i.i.i1167, align 4 - %dec.i.i.i.i.i1168 = add i32 %290, -1 - store i32 %dec.i.i.i.i.i1168, ptr %m_ref_count.i.i.i.i.i1167, align 4 - %cmp.i.i.i.i1169 = icmp eq i32 %dec.i.i.i.i.i1168, 0 - br i1 %cmp.i.i.i.i1169, label %if.then2.i.i.i.i1170, label %invoke.cont313.i.i - -if.then2.i.i.i.i1170: ; preds = %if.then.i.i.i.i1166 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %289, ptr noundef nonnull %288) - to label %invoke.cont313.i.i unwind label %lpad300.i.i - -invoke.cont313.i.i: ; preds = %if.then.i.i.i.i1166, %_ZN6vectorIP3appLb0EjE4backEv.exit.i1160, %if.then2.i.i.i.i1170 - %this.val.i.i = load ptr, ptr %28, align 8 - %call318.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i, ptr noundef %282, ptr noundef %269) - to label %invoke.cont317.i.i unwind label %lpad300.i.i - -invoke.cont317.i.i: ; preds = %invoke.cont313.i.i - %tobool.not.i1142 = icmp eq ptr %call318.i.i, null - br i1 %tobool.not.i1142, label %if.end.i1146, label %_ZN11ast_manager7inc_refEP3ast.exit.i1143 - -_ZN11ast_manager7inc_refEP3ast.exit.i1143: ; preds = %invoke.cont317.i.i - %m_ref_count.i.i.i1144 = getelementptr inbounds %class.ast, ptr %call318.i.i, i64 0, i32 2 - %291 = load i32, ptr %m_ref_count.i.i.i1144, align 4 - %inc.i.i.i1145 = add i32 %291, 1 - store i32 %inc.i.i.i1145, ptr %m_ref_count.i.i.i1144, align 4 - br label %if.end.i1146 - -if.end.i1146: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1143, %invoke.cont317.i.i - %292 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i1147 = icmp eq ptr %292, null - br i1 %tobool.not.i3.i1147, label %invoke.cont320.i.i, label %if.then.i.i.i1148 - -if.then.i.i.i1148: ; preds = %if.end.i1146 - %293 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i1150 = getelementptr inbounds %class.ast, ptr %292, i64 0, i32 2 - %294 = load i32, ptr %m_ref_count.i.i.i.i1150, align 4 - %dec.i.i.i.i1151 = add i32 %294, -1 - store i32 %dec.i.i.i.i1151, ptr %m_ref_count.i.i.i.i1150, align 4 - %cmp.i.i.i1152 = icmp eq i32 %dec.i.i.i.i1151, 0 - br i1 %cmp.i.i.i1152, label %if.then2.i.i.i1153, label %invoke.cont320.i.i - -if.then2.i.i.i1153: ; preds = %if.then.i.i.i1148 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %293, ptr noundef nonnull %292) - to label %invoke.cont320.i.i unwind label %lpad300.i.i - -invoke.cont320.i.i: ; preds = %if.then.i.i.i1148, %if.end.i1146, %if.then2.i.i.i1153 - store ptr %call318.i.i, ptr %m_pr.i67.i, align 8 - br i1 %tobool.not.i1142, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1124, label %if.then.i.i.i.i1121 - -if.then.i.i.i.i1121: ; preds = %invoke.cont320.i.i - %m_ref_count.i.i.i.i.i1122 = getelementptr inbounds %class.ast, ptr %call318.i.i, i64 0, i32 2 - %295 = load i32, ptr %m_ref_count.i.i.i.i.i1122, align 4 - %inc.i.i.i.i.i1123 = add i32 %295, 1 - store i32 %inc.i.i.i.i.i1123, ptr %m_ref_count.i.i.i.i.i1122, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1124 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1124: ; preds = %if.then.i.i.i.i1121, %invoke.cont320.i.i - %296 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i1126 = icmp eq ptr %296, null - br i1 %cmp.i.i1126, label %if.then.i.i1135, label %lor.lhs.false.i.i1127 - -lor.lhs.false.i.i1127: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1124 - %arrayidx.i.i1128 = getelementptr inbounds i32, ptr %296, i64 -1 - %297 = load i32, ptr %arrayidx.i.i1128, align 4 - %arrayidx4.i.i1129 = getelementptr inbounds i32, ptr %296, i64 -2 - %298 = load i32, ptr %arrayidx4.i.i1129, align 4 - %cmp5.i.i1130 = icmp eq i32 %297, %298 - br i1 %cmp5.i.i1130, label %if.then.i.i1135, label %invoke.cont325.i.i - -if.then.i.i1135: ; preds = %lor.lhs.false.i.i1127, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1124 - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc1139 unwind label %lpad300.i.i - -.noexc1139: ; preds = %if.then.i.i1135 - %.pre.i.i1136 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i1137 = getelementptr inbounds i32, ptr %.pre.i.i1136, i64 -1 - %.pre1.i.i1138 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1137, align 4 - br label %invoke.cont325.i.i - -invoke.cont325.i.i: ; preds = %.noexc1139, %lor.lhs.false.i.i1127 - %299 = phi i32 [ %.pre1.i.i1138, %.noexc1139 ], [ %297, %lor.lhs.false.i.i1127 ] - %300 = phi ptr [ %.pre.i.i1136, %.noexc1139 ], [ %296, %lor.lhs.false.i.i1127 ] - %idx.ext.i.i1131 = zext i32 %299 to i64 - %add.ptr.i.i1132 = getelementptr inbounds ptr, ptr %300, i64 %idx.ext.i.i1131 - store ptr %call318.i.i, ptr %add.ptr.i.i1132, align 8 - %301 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i1133 = getelementptr inbounds i32, ptr %301, i64 -1 - %302 = load i32, ptr %arrayidx10.i.i1133, align 4 - %inc.i.i1134 = add i32 %302, 1 - store i32 %inc.i.i1134, ptr %arrayidx10.i.i1133, align 4 - br i1 %tobool.not.i1177, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1119, label %if.then.i.i.i1111 - -if.then.i.i.i1111: ; preds = %invoke.cont325.i.i - %m_ref_count.i.i.i.i1113 = getelementptr inbounds %class.ast, ptr %282, i64 0, i32 2 - %303 = load i32, ptr %m_ref_count.i.i.i.i1113, align 4 - %dec.i.i.i.i1114 = add i32 %303, -1 - store i32 %dec.i.i.i.i1114, ptr %m_ref_count.i.i.i.i1113, align 4 - %cmp.i.i.i1115 = icmp eq i32 %dec.i.i.i.i1114, 0 - br i1 %cmp.i.i.i1115, label %if.then2.i.i.i1117, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1119 - -if.then2.i.i.i1117: ; preds = %if.then.i.i.i1111 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i, ptr noundef nonnull %282) - to label %_ZN7obj_refI3app11ast_managerED2Ev.exit1119 unwind label %terminate.lpad.i1118 - -terminate.lpad.i1118: ; preds = %if.then2.i.i.i1117 - %304 = landingpad { ptr, i32 } +sw.bb292.i.i.i: ; preds = %sw.bb.i.i + %this.val48.i.i.i = load ptr, ptr %28, align 8 + store ptr %this.val48.i.i.i, ptr %m_manager.i436.i.i.i, align 8 + store ptr null, ptr %pr1295.i.i.i, align 8 + store ptr %this.val48.i.i.i, ptr %m_manager.i437.i.i.i, align 8 + %262 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i440.i.i.i = icmp eq ptr %262, null + br i1 %cmp.i.i.i440.i.i.i, label %invoke.cont301.i.i.i, label %if.end.i.i.i.i.i.i + +if.end.i.i.i.i.i.i: ; preds = %sw.bb292.i.i.i + %arrayidx.i.i.i441.i.i.i = getelementptr inbounds i32, ptr %262, i64 -1 + %263 = load i32, ptr %arrayidx.i.i.i441.i.i.i, align 4 + %264 = add i32 %263, -1 + %265 = zext i32 %264 to i64 + br label %invoke.cont301.i.i.i + +invoke.cont301.i.i.i: ; preds = %if.end.i.i.i.i.i.i, %sw.bb292.i.i.i + %retval.0.i.i.i.i.i.i = phi i64 [ %265, %if.end.i.i.i.i.i.i ], [ 4294967295, %sw.bb292.i.i.i ] + %arrayidx.i1.i.i.i.i.i = getelementptr inbounds ptr, ptr %262, i64 %retval.0.i.i.i.i.i.i + %266 = load ptr, ptr %arrayidx.i1.i.i.i.i.i, align 8 + %tobool.not.i442.i.i.i = icmp eq ptr %266, null + br i1 %tobool.not.i442.i.i.i, label %if.end.i.i.i459.i.i.i, label %invoke.cont303.i.i.i + +invoke.cont303.i.i.i: ; preds = %invoke.cont301.i.i.i + %m_ref_count.i.i.i444.i.i.i = getelementptr inbounds %class.ast, ptr %266, i64 0, i32 2 + %267 = load i32, ptr %m_ref_count.i.i.i444.i.i.i, align 4 + %inc.i.i.i445.i.i.i = add i32 %267, 1 + store i32 %inc.i.i.i445.i.i.i, ptr %m_ref_count.i.i.i444.i.i.i, align 4 + %.pre.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8, !nonnull !12, !noundef !12 + br label %if.end.i.i.i459.i.i.i + +if.end.i.i.i459.i.i.i: ; preds = %invoke.cont303.i.i.i, %invoke.cont301.i.i.i + %268 = phi ptr [ %.pre.i.i.i, %invoke.cont303.i.i.i ], [ %262, %invoke.cont301.i.i.i ] + store ptr %266, ptr %pr2293.i.i.i, align 8 + %arrayidx.i.i.i460.i.i.i = getelementptr inbounds i32, ptr %268, i64 -1 + %269 = load i32, ptr %arrayidx.i.i.i460.i.i.i, align 4 + %270 = add i32 %269, -1 + %271 = zext i32 %270 to i64 + %arrayidx.i1.i.i462.i.i.i = getelementptr inbounds ptr, ptr %268, i64 %271 + %272 = load ptr, ptr %arrayidx.i1.i.i462.i.i.i, align 8 + store i32 %270, ptr %arrayidx.i.i.i460.i.i.i, align 4 + %273 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i464.i.i.i = icmp eq ptr %272, null + br i1 %tobool.not.i.i.i.i464.i.i.i, label %invoke.cont306.i.i.i, label %if.then.i.i.i.i465.i.i.i + +if.then.i.i.i.i465.i.i.i: ; preds = %if.end.i.i.i459.i.i.i + %m_ref_count.i.i.i.i.i466.i.i.i = getelementptr inbounds %class.ast, ptr %272, i64 0, i32 2 + %274 = load i32, ptr %m_ref_count.i.i.i.i.i466.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i = add i32 %274, -1 + store i32 %dec.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i466.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i, label %invoke.cont306.i.i.i + +if.then2.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i465.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %273, ptr noundef nonnull %272) + to label %invoke.cont306.i.i.i unwind label %lpad300.i.i.i + +invoke.cont306.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i, %if.then.i.i.i.i465.i.i.i, %if.end.i.i.i459.i.i.i + %275 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i471.i.i.i = icmp eq ptr %275, null + br i1 %cmp.i.i.i471.i.i.i, label %invoke.cont308.i.i.i, label %if.end.i.i.i472.i.i.i + +if.end.i.i.i472.i.i.i: ; preds = %invoke.cont306.i.i.i + %arrayidx.i.i.i473.i.i.i = getelementptr inbounds i32, ptr %275, i64 -1 + %276 = load i32, ptr %arrayidx.i.i.i473.i.i.i, align 4 + %277 = add i32 %276, -1 + %278 = zext i32 %277 to i64 + br label %invoke.cont308.i.i.i + +invoke.cont308.i.i.i: ; preds = %if.end.i.i.i472.i.i.i, %invoke.cont306.i.i.i + %retval.0.i.i.i474.i.i.i = phi i64 [ %278, %if.end.i.i.i472.i.i.i ], [ 4294967295, %invoke.cont306.i.i.i ] + %arrayidx.i1.i.i475.i.i.i = getelementptr inbounds ptr, ptr %275, i64 %retval.0.i.i.i474.i.i.i + %279 = load ptr, ptr %arrayidx.i1.i.i475.i.i.i, align 8 + %tobool.not.i477.i.i.i = icmp eq ptr %279, null + br i1 %tobool.not.i477.i.i.i, label %if.end.i.i.i494.i.i.i, label %invoke.cont310.i.i.i + +invoke.cont310.i.i.i: ; preds = %invoke.cont308.i.i.i + %m_ref_count.i.i.i479.i.i.i = getelementptr inbounds %class.ast, ptr %279, i64 0, i32 2 + %280 = load i32, ptr %m_ref_count.i.i.i479.i.i.i, align 4 + %inc.i.i.i480.i.i.i = add i32 %280, 1 + store i32 %inc.i.i.i480.i.i.i, ptr %m_ref_count.i.i.i479.i.i.i, align 4 + %.pre.i101.i = load ptr, ptr %m_nodes.i30.i.i, align 8, !nonnull !12, !noundef !12 + br label %if.end.i.i.i494.i.i.i + +if.end.i.i.i494.i.i.i: ; preds = %invoke.cont310.i.i.i, %invoke.cont308.i.i.i + %281 = phi ptr [ %.pre.i101.i, %invoke.cont310.i.i.i ], [ %275, %invoke.cont308.i.i.i ] + store ptr %279, ptr %pr1295.i.i.i, align 8 + %arrayidx.i.i.i495.i.i.i = getelementptr inbounds i32, ptr %281, i64 -1 + %282 = load i32, ptr %arrayidx.i.i.i495.i.i.i, align 4 + %283 = add i32 %282, -1 + %284 = zext i32 %283 to i64 + %arrayidx.i1.i.i499.i.i.i = getelementptr inbounds ptr, ptr %281, i64 %284 + %285 = load ptr, ptr %arrayidx.i1.i.i499.i.i.i, align 8 + store i32 %283, ptr %arrayidx.i.i.i495.i.i.i, align 4 + %286 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i501.i.i.i = icmp eq ptr %285, null + br i1 %tobool.not.i.i.i.i501.i.i.i, label %invoke.cont313.i.i.i, label %if.then.i.i.i.i502.i.i.i + +if.then.i.i.i.i502.i.i.i: ; preds = %if.end.i.i.i494.i.i.i + %m_ref_count.i.i.i.i.i503.i.i.i = getelementptr inbounds %class.ast, ptr %285, i64 0, i32 2 + %287 = load i32, ptr %m_ref_count.i.i.i.i.i503.i.i.i, align 4 + %dec.i.i.i.i.i504.i.i.i = add i32 %287, -1 + store i32 %dec.i.i.i.i.i504.i.i.i, ptr %m_ref_count.i.i.i.i.i503.i.i.i, align 4 + %cmp.i.i.i.i505.i.i.i = icmp eq i32 %dec.i.i.i.i.i504.i.i.i, 0 + br i1 %cmp.i.i.i.i505.i.i.i, label %if.then2.i.i.i.i506.i.i.i, label %invoke.cont313.i.i.i + +if.then2.i.i.i.i506.i.i.i: ; preds = %if.then.i.i.i.i502.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %286, ptr noundef nonnull %285) + to label %invoke.cont313.i.i.i unwind label %lpad300.i.i.i + +invoke.cont313.i.i.i: ; preds = %if.then2.i.i.i.i506.i.i.i, %if.then.i.i.i.i502.i.i.i, %if.end.i.i.i494.i.i.i + %this.val.i.i.i = load ptr, ptr %28, align 8 + %call318.i.i.i = invoke noundef ptr @_ZN11ast_manager15mk_transitivityEP3appS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i.i, ptr noundef %279, ptr noundef %266) + to label %invoke.cont317.i.i.i unwind label %lpad300.i.i.i + +invoke.cont317.i.i.i: ; preds = %invoke.cont313.i.i.i + %tobool.not.i512.i.i.i = icmp eq ptr %call318.i.i.i, null + br i1 %tobool.not.i512.i.i.i, label %if.end.i516.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i: ; preds = %invoke.cont317.i.i.i + %m_ref_count.i.i.i514.i.i.i = getelementptr inbounds %class.ast, ptr %call318.i.i.i, i64 0, i32 2 + %288 = load i32, ptr %m_ref_count.i.i.i514.i.i.i, align 4 + %inc.i.i.i515.i.i.i = add i32 %288, 1 + store i32 %inc.i.i.i515.i.i.i, ptr %m_ref_count.i.i.i514.i.i.i, align 4 + br label %if.end.i516.i.i.i + +if.end.i516.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i513.i.i.i, %invoke.cont317.i.i.i + %289 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i517.i.i.i = icmp eq ptr %289, null + br i1 %tobool.not.i3.i517.i.i.i, label %invoke.cont320.i.i.i, label %if.then.i.i.i518.i.i.i + +if.then.i.i.i518.i.i.i: ; preds = %if.end.i516.i.i.i + %290 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i520.i.i.i = getelementptr inbounds %class.ast, ptr %289, i64 0, i32 2 + %291 = load i32, ptr %m_ref_count.i.i.i.i520.i.i.i, align 4 + %dec.i.i.i.i521.i.i.i = add i32 %291, -1 + store i32 %dec.i.i.i.i521.i.i.i, ptr %m_ref_count.i.i.i.i520.i.i.i, align 4 + %cmp.i.i.i522.i.i.i = icmp eq i32 %dec.i.i.i.i521.i.i.i, 0 + br i1 %cmp.i.i.i522.i.i.i, label %if.then2.i.i.i523.i.i.i, label %invoke.cont320.i.i.i + +if.then2.i.i.i523.i.i.i: ; preds = %if.then.i.i.i518.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %290, ptr noundef nonnull %289) + to label %invoke.cont320.i.i.i unwind label %lpad300.i.i.i + +invoke.cont320.i.i.i: ; preds = %if.then2.i.i.i523.i.i.i, %if.then.i.i.i518.i.i.i, %if.end.i516.i.i.i + store ptr %call318.i.i.i, ptr %m_pr.i89.i.i, align 8 + br i1 %tobool.not.i512.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i, label %if.then.i.i.i.i528.i.i.i + +if.then.i.i.i.i528.i.i.i: ; preds = %invoke.cont320.i.i.i + %m_ref_count.i.i.i.i.i529.i.i.i = getelementptr inbounds %class.ast, ptr %call318.i.i.i, i64 0, i32 2 + %292 = load i32, ptr %m_ref_count.i.i.i.i.i529.i.i.i, align 4 + %inc.i.i.i.i.i530.i.i.i = add i32 %292, 1 + store i32 %inc.i.i.i.i.i530.i.i.i, ptr %m_ref_count.i.i.i.i.i529.i.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i: ; preds = %if.then.i.i.i.i528.i.i.i, %invoke.cont320.i.i.i + %293 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i533.i.i.i = icmp eq ptr %293, null + br i1 %cmp.i.i533.i.i.i, label %if.then.i.i542.i.i.i, label %lor.lhs.false.i.i534.i.i.i + +lor.lhs.false.i.i534.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + %arrayidx.i.i535.i.i.i = getelementptr inbounds i32, ptr %293, i64 -1 + %294 = load i32, ptr %arrayidx.i.i535.i.i.i, align 4 + %arrayidx4.i.i536.i.i.i = getelementptr inbounds i32, ptr %293, i64 -2 + %295 = load i32, ptr %arrayidx4.i.i536.i.i.i, align 4 + %cmp5.i.i537.i.i.i = icmp eq i32 %294, %295 + br i1 %cmp5.i.i537.i.i.i, label %if.then.i.i542.i.i.i, label %invoke.cont325.i.i.i + +if.then.i.i542.i.i.i: ; preds = %lor.lhs.false.i.i534.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i531.i.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc546.i.i.i unwind label %lpad300.i.i.i + +.noexc546.i.i.i: ; preds = %if.then.i.i542.i.i.i + %.pre.i.i543.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i544.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i543.i.i.i, i64 -1 + %.pre1.i.i545.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i544.i.i.i, align 4 + br label %invoke.cont325.i.i.i + +invoke.cont325.i.i.i: ; preds = %.noexc546.i.i.i, %lor.lhs.false.i.i534.i.i.i + %296 = phi i32 [ %.pre1.i.i545.i.i.i, %.noexc546.i.i.i ], [ %294, %lor.lhs.false.i.i534.i.i.i ] + %297 = phi ptr [ %.pre.i.i543.i.i.i, %.noexc546.i.i.i ], [ %293, %lor.lhs.false.i.i534.i.i.i ] + %idx.ext.i.i538.i.i.i = zext i32 %296 to i64 + %add.ptr.i.i539.i.i.i = getelementptr inbounds ptr, ptr %297, i64 %idx.ext.i.i538.i.i.i + store ptr %call318.i.i.i, ptr %add.ptr.i.i539.i.i.i, align 8 + %298 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i540.i.i.i = getelementptr inbounds i32, ptr %298, i64 -1 + %299 = load i32, ptr %arrayidx10.i.i540.i.i.i, align 4 + %inc.i.i541.i.i.i = add i32 %299, 1 + store i32 %inc.i.i541.i.i.i, ptr %arrayidx10.i.i540.i.i.i, align 4 + br i1 %tobool.not.i477.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i, label %if.then.i.i.i549.i.i.i + +if.then.i.i.i549.i.i.i: ; preds = %invoke.cont325.i.i.i + %m_ref_count.i.i.i.i551.i.i.i = getelementptr inbounds %class.ast, ptr %279, i64 0, i32 2 + %300 = load i32, ptr %m_ref_count.i.i.i.i551.i.i.i, align 4 + %dec.i.i.i.i552.i.i.i = add i32 %300, -1 + store i32 %dec.i.i.i.i552.i.i.i, ptr %m_ref_count.i.i.i.i551.i.i.i, align 4 + %cmp.i.i.i553.i.i.i = icmp eq i32 %dec.i.i.i.i552.i.i.i, 0 + br i1 %cmp.i.i.i553.i.i.i, label %if.then2.i.i.i554.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + +if.then2.i.i.i554.i.i.i: ; preds = %if.then.i.i.i549.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i.i, ptr noundef nonnull %279) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i unwind label %terminate.lpad.i555.i.i.i + +terminate.lpad.i555.i.i.i: ; preds = %if.then2.i.i.i554.i.i.i + %301 = landingpad { ptr, i32 } catch ptr null - %305 = extractvalue { ptr, i32 } %304, 0 - call void @__clang_call_terminate(ptr %305) #14 + %302 = extractvalue { ptr, i32 } %301, 0 + tail call void @__clang_call_terminate(ptr %302) #14 unreachable -_ZN7obj_refI3app11ast_managerED2Ev.exit1119: ; preds = %invoke.cont325.i.i, %if.then.i.i.i1111, %if.then2.i.i.i1117 - br i1 %tobool.not.i1220, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1109, label %if.then.i.i.i1101 +_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i: ; preds = %if.then2.i.i.i554.i.i.i, %if.then.i.i.i549.i.i.i, %invoke.cont325.i.i.i + br i1 %tobool.not.i442.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i, label %if.then.i.i.i558.i.i.i -if.then.i.i.i1101: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1119 - %m_ref_count.i.i.i.i1103 = getelementptr inbounds %class.ast, ptr %269, i64 0, i32 2 - %306 = load i32, ptr %m_ref_count.i.i.i.i1103, align 4 - %dec.i.i.i.i1104 = add i32 %306, -1 - store i32 %dec.i.i.i.i1104, ptr %m_ref_count.i.i.i.i1103, align 4 - %cmp.i.i.i1105 = icmp eq i32 %dec.i.i.i.i1104, 0 - br i1 %cmp.i.i.i1105, label %if.then2.i.i.i1107, label %_ZN7obj_refI3app11ast_managerED2Ev.exit1109 +if.then.i.i.i558.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + %m_ref_count.i.i.i.i560.i.i.i = getelementptr inbounds %class.ast, ptr %266, i64 0, i32 2 + %303 = load i32, ptr %m_ref_count.i.i.i.i560.i.i.i, align 4 + %dec.i.i.i.i561.i.i.i = add i32 %303, -1 + store i32 %dec.i.i.i.i561.i.i.i, ptr %m_ref_count.i.i.i.i560.i.i.i, align 4 + %cmp.i.i.i562.i.i.i = icmp eq i32 %dec.i.i.i.i561.i.i.i, 0 + br i1 %cmp.i.i.i562.i.i.i, label %if.then2.i.i.i563.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i -if.then2.i.i.i1107: ; preds = %if.then.i.i.i1101 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i, ptr noundef nonnull %269) - to label %_ZN7obj_refI3app11ast_managerED2Ev.exit1109 unwind label %terminate.lpad.i1108 +if.then2.i.i.i563.i.i.i: ; preds = %if.then.i.i.i558.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val48.i.i.i, ptr noundef nonnull %266) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i unwind label %terminate.lpad.i564.i.i.i -terminate.lpad.i1108: ; preds = %if.then2.i.i.i1107 - %307 = landingpad { ptr, i32 } +terminate.lpad.i564.i.i.i: ; preds = %if.then2.i.i.i563.i.i.i + %304 = landingpad { ptr, i32 } catch ptr null - %308 = extractvalue { ptr, i32 } %307, 0 - call void @__clang_call_terminate(ptr %308) #14 + %305 = extractvalue { ptr, i32 } %304, 0 + tail call void @__clang_call_terminate(ptr %305) #14 unreachable -_ZN7obj_refI3app11ast_managerED2Ev.exit1109: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1119, %if.then.i.i.i1101, %if.then2.i.i.i1107 - %309 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1093 = icmp eq ptr %309, null - br i1 %cmp.i.i.i1093, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1098, label %if.end.i.i.i1094 - -if.end.i.i.i1094: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1109 - %arrayidx.i.i.i1095 = getelementptr inbounds i32, ptr %309, i64 -1 - %310 = load i32, ptr %arrayidx.i.i.i1095, align 4 - %311 = add i32 %310, -1 - %312 = zext i32 %311 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1098 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1098: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit1109, %if.end.i.i.i1094 - %retval.0.i.i.i1096 = phi i64 [ %312, %if.end.i.i.i1094 ], [ 4294967295, %_ZN7obj_refI3app11ast_managerED2Ev.exit1109 ] - %arrayidx.i1.i.i1097 = getelementptr inbounds ptr, ptr %309, i64 %retval.0.i.i.i1096 - %313 = load ptr, ptr %arrayidx.i1.i.i1097, align 8 - %tobool.not.i1079 = icmp eq ptr %313, null - br i1 %tobool.not.i1079, label %if.end.i1083, label %_ZN11ast_manager7inc_refEP3ast.exit.i1080 - -_ZN11ast_manager7inc_refEP3ast.exit.i1080: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1098 - %m_ref_count.i.i.i1081 = getelementptr inbounds %class.ast, ptr %313, i64 0, i32 2 - %314 = load i32, ptr %m_ref_count.i.i.i1081, align 4 - %inc.i.i.i1082 = add i32 %314, 1 - store i32 %inc.i.i.i1082, ptr %m_ref_count.i.i.i1081, align 4 - br label %if.end.i1083 - -if.end.i1083: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1080, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit1098 - %315 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i3.i1084 = icmp eq ptr %315, null - br i1 %tobool.not.i3.i1084, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1091, label %if.then.i.i.i1085 - -if.then.i.i.i1085: ; preds = %if.end.i1083 - %316 = load ptr, ptr %m_manager.i.i745, align 8 - %m_ref_count.i.i.i.i1087 = getelementptr inbounds %class.ast, ptr %315, i64 0, i32 2 - %317 = load i32, ptr %m_ref_count.i.i.i.i1087, align 4 - %dec.i.i.i.i1088 = add i32 %317, -1 - store i32 %dec.i.i.i.i1088, ptr %m_ref_count.i.i.i.i1087, align 4 - %cmp.i.i.i1089 = icmp eq i32 %dec.i.i.i.i1088, 0 - br i1 %cmp.i.i.i1089, label %if.then2.i.i.i1090, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1091 - -if.then2.i.i.i1090: ; preds = %if.then.i.i.i1085 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %316, ptr noundef nonnull %315) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1091 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1091: ; preds = %if.end.i1083, %if.then.i.i.i1085, %if.then2.i.i.i1090 - store ptr %313, ptr %m_r.i74.i, align 8 - %318 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1060 = icmp eq ptr %318, null - br i1 %cmp.i.i.i1060, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1074, label %if.end.i.i.i1061 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1074: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1091 - %.pre.i1075 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1076 = add i32 %.pre.i1075, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1063 - -if.end.i.i.i1061: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit1091 - %arrayidx.i.i.i1062 = getelementptr inbounds i32, ptr %318, i64 -1 - %319 = load i32, ptr %arrayidx.i.i.i1062, align 4 - %320 = add i32 %319, -1 - %321 = zext i32 %320 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1063 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i1063: ; preds = %if.end.i.i.i1061, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1074 - %dec.i.pre-phi.i1064 = phi i32 [ %.pre1.i1076, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1074 ], [ %320, %if.end.i.i.i1061 ] - %retval.0.i.i.i1065 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1074 ], [ %321, %if.end.i.i.i1061 ] - %arrayidx.i1.i.i1066 = getelementptr inbounds ptr, ptr %318, i64 %retval.0.i.i.i1065 - %322 = load ptr, ptr %arrayidx.i1.i.i1066, align 8 - %arrayidx.i.i1067 = getelementptr inbounds i32, ptr %318, i64 -1 - store i32 %dec.i.pre-phi.i1064, ptr %arrayidx.i.i1067, align 4 - %323 = load ptr, ptr %m_result_stack.i965, align 8 - %tobool.not.i.i.i.i1068 = icmp eq ptr %322, null - br i1 %tobool.not.i.i.i.i1068, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1077, label %if.then.i.i.i.i1069 - -if.then.i.i.i.i1069: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1063 - %m_ref_count.i.i.i.i.i1070 = getelementptr inbounds %class.ast, ptr %322, i64 0, i32 2 - %324 = load i32, ptr %m_ref_count.i.i.i.i.i1070, align 4 - %dec.i.i.i.i.i1071 = add i32 %324, -1 - store i32 %dec.i.i.i.i.i1071, ptr %m_ref_count.i.i.i.i.i1070, align 4 - %cmp.i.i.i.i1072 = icmp eq i32 %dec.i.i.i.i.i1071, 0 - br i1 %cmp.i.i.i.i1072, label %if.then2.i.i.i.i1073, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1077 - -if.then2.i.i.i.i1073: ; preds = %if.then.i.i.i.i1069 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %323, ptr noundef nonnull %322) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1077 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1077: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1063, %if.then.i.i.i.i1069, %if.then2.i.i.i.i1073 - %325 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i1040 = icmp eq ptr %325, null - br i1 %cmp.i.i.i1040, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1054, label %if.end.i.i.i1041 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1054: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1077 - %.pre.i1055 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i1056 = add i32 %.pre.i1055, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1043 - -if.end.i.i.i1041: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1077 - %arrayidx.i.i.i1042 = getelementptr inbounds i32, ptr %325, i64 -1 - %326 = load i32, ptr %arrayidx.i.i.i1042, align 4 - %327 = add i32 %326, -1 - %328 = zext i32 %327 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1043 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i1043: ; preds = %if.end.i.i.i1041, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1054 - %dec.i.pre-phi.i1044 = phi i32 [ %.pre1.i1056, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1054 ], [ %327, %if.end.i.i.i1041 ] - %retval.0.i.i.i1045 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i1054 ], [ %328, %if.end.i.i.i1041 ] - %arrayidx.i1.i.i1046 = getelementptr inbounds ptr, ptr %325, i64 %retval.0.i.i.i1045 - %329 = load ptr, ptr %arrayidx.i1.i.i1046, align 8 - %arrayidx.i.i1047 = getelementptr inbounds i32, ptr %325, i64 -1 - store i32 %dec.i.pre-phi.i1044, ptr %arrayidx.i.i1047, align 4 - %330 = load ptr, ptr %m_result_stack.i965, align 8 - %tobool.not.i.i.i.i1048 = icmp eq ptr %329, null - br i1 %tobool.not.i.i.i.i1048, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1057, label %if.then.i.i.i.i1049 - -if.then.i.i.i.i1049: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1043 - %m_ref_count.i.i.i.i.i1050 = getelementptr inbounds %class.ast, ptr %329, i64 0, i32 2 - %331 = load i32, ptr %m_ref_count.i.i.i.i.i1050, align 4 - %dec.i.i.i.i.i1051 = add i32 %331, -1 - store i32 %dec.i.i.i.i.i1051, ptr %m_ref_count.i.i.i.i.i1050, align 4 - %cmp.i.i.i.i1052 = icmp eq i32 %dec.i.i.i.i.i1051, 0 - br i1 %cmp.i.i.i.i1052, label %if.then2.i.i.i.i1053, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1057 - -if.then2.i.i.i.i1053: ; preds = %if.then.i.i.i.i1049 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %330, ptr noundef nonnull %329) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1057 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1057: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i1043, %if.then.i.i.i.i1049, %if.then2.i.i.i.i1053 - %332 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i.i.i.i1018 = icmp eq ptr %332, null - br i1 %tobool.not.i.i.i.i1018, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1022, label %if.then.i.i.i.i1019 - -if.then.i.i.i.i1019: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1057 - %m_ref_count.i.i.i.i.i1020 = getelementptr inbounds %class.ast, ptr %332, i64 0, i32 2 - %333 = load i32, ptr %m_ref_count.i.i.i.i.i1020, align 4 - %inc.i.i.i.i.i1021 = add i32 %333, 1 - store i32 %inc.i.i.i.i.i1021, ptr %m_ref_count.i.i.i.i.i1020, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1022 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1022: ; preds = %if.then.i.i.i.i1019, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit1057 - %334 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i1024 = icmp eq ptr %334, null - br i1 %cmp.i.i1024, label %if.then.i.i1033, label %lor.lhs.false.i.i1025 - -lor.lhs.false.i.i1025: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1022 - %arrayidx.i.i1026 = getelementptr inbounds i32, ptr %334, i64 -1 - %335 = load i32, ptr %arrayidx.i.i1026, align 4 - %arrayidx4.i.i1027 = getelementptr inbounds i32, ptr %334, i64 -2 - %336 = load i32, ptr %arrayidx4.i.i1027, align 4 - %cmp5.i.i1028 = icmp eq i32 %335, %336 - br i1 %cmp5.i.i1028, label %if.then.i.i1033, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1037 - -if.then.i.i1033: ; preds = %lor.lhs.false.i.i1025, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1022 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - %.pre.i.i1034 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i1035 = getelementptr inbounds i32, ptr %.pre.i.i1034, i64 -1 - %.pre1.i.i1036 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1035, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1037 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1037: ; preds = %lor.lhs.false.i.i1025, %if.then.i.i1033 - %337 = phi i32 [ %.pre1.i.i1036, %if.then.i.i1033 ], [ %335, %lor.lhs.false.i.i1025 ] - %338 = phi ptr [ %.pre.i.i1034, %if.then.i.i1033 ], [ %334, %lor.lhs.false.i.i1025 ] - %idx.ext.i.i1029 = zext i32 %337 to i64 - %add.ptr.i.i1030 = getelementptr inbounds ptr, ptr %338, i64 %idx.ext.i.i1029 - store ptr %332, ptr %add.ptr.i.i1030, align 8 - %339 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i1031 = getelementptr inbounds i32, ptr %339, i64 -1 - %340 = load i32, ptr %arrayidx10.i.i1031, align 4 - %inc.i.i1032 = add i32 %340, 1 - store i32 %inc.i.i1032, ptr %arrayidx10.i.i1031, align 4 - %bf.load344.i.i = load i32, ptr %89, align 8 - %bf.clear345.i.i = and i32 %bf.load344.i.i, 1 - %tobool346.i.i.not = icmp eq i32 %bf.clear345.i.i, 0 - br i1 %tobool346.i.i.not, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1017, label %if.then.i1016 - -if.then.i1016: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1037 - %341 = load ptr, ptr %m_pr.i67.i, align 8 - %342 = load ptr, ptr %m_r.i74.i, align 8 - call void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %87, ptr noundef %342, ptr noundef %341) - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1017 - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1017: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit1037, %if.then.i1016 - %343 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1012 = getelementptr inbounds i32, ptr %343, i64 -1 - %344 = load i32, ptr %arrayidx.i1012, align 4 - %dec.i1013 = add i32 %344, -1 - store i32 %dec.i1013, ptr %arrayidx.i1012, align 4 - %this.val57.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i1005 = icmp eq ptr %this.val57.i.i, null - br i1 %cmp.i.i1005, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1006 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1006: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1017 - %arrayidx.i.i1007 = getelementptr inbounds i32, ptr %this.val57.i.i, i64 -1 - %345 = load i32, ptr %arrayidx.i.i1007, align 4 - %cmp3.i.i1008 = icmp eq i32 %345, 0 - br i1 %cmp3.i.i1008, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1009 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1009: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1006 - %346 = add i32 %345, -1 - %347 = zext i32 %346 to i64 - %m_new_child.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val57.i.i, i64 %347, i32 1 - %bf.load.i1010 = load i32, ptr %m_new_child.i, align 8 - %bf.set.i = or i32 %bf.load.i1010, 2 - store i32 %bf.set.i, ptr %m_new_child.i, align 8 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i - -lpad300.i.i: ; preds = %if.then2.i.i.i.i1213, %if.then2.i.i.i.i1170, %if.then2.i.i.i1153, %if.then.i.i1135, %invoke.cont313.i.i - %348 = landingpad { ptr, i32 } +_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i: ; preds = %if.then2.i.i.i563.i.i.i, %if.then.i.i.i558.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit556.i.i.i + %306 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i568.i.i.i = icmp eq ptr %306, null + br i1 %cmp.i.i.i568.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i, label %if.end.i.i.i569.i.i.i + +if.end.i.i.i569.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i + %arrayidx.i.i.i570.i.i.i = getelementptr inbounds i32, ptr %306, i64 -1 + %307 = load i32, ptr %arrayidx.i.i.i570.i.i.i, align 4 + %308 = add i32 %307, -1 + %309 = zext i32 %308 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i569.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i + %retval.0.i.i.i571.i.i.i = phi i64 [ %309, %if.end.i.i.i569.i.i.i ], [ 4294967295, %_ZN7obj_refI3app11ast_managerED2Ev.exit565.i.i.i ] + %arrayidx.i1.i.i572.i.i.i = getelementptr inbounds ptr, ptr %306, i64 %retval.0.i.i.i571.i.i.i + %310 = load ptr, ptr %arrayidx.i1.i.i572.i.i.i, align 8 + %tobool.not.i573.i.i.i = icmp eq ptr %310, null + br i1 %tobool.not.i573.i.i.i, label %if.end.i577.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + %m_ref_count.i.i.i575.i.i.i = getelementptr inbounds %class.ast, ptr %310, i64 0, i32 2 + %311 = load i32, ptr %m_ref_count.i.i.i575.i.i.i, align 4 + %inc.i.i.i576.i.i.i = add i32 %311, 1 + store i32 %inc.i.i.i576.i.i.i, ptr %m_ref_count.i.i.i575.i.i.i, align 4 + br label %if.end.i577.i.i.i + +if.end.i577.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i574.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i + %312 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i3.i578.i.i.i = icmp eq ptr %312, null + br i1 %tobool.not.i3.i578.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i, label %if.then.i.i.i579.i.i.i + +if.then.i.i.i579.i.i.i: ; preds = %if.end.i577.i.i.i + %313 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i581.i.i.i = getelementptr inbounds %class.ast, ptr %312, i64 0, i32 2 + %314 = load i32, ptr %m_ref_count.i.i.i.i581.i.i.i, align 4 + %dec.i.i.i.i582.i.i.i = add i32 %314, -1 + store i32 %dec.i.i.i.i582.i.i.i, ptr %m_ref_count.i.i.i.i581.i.i.i, align 4 + %cmp.i.i.i583.i.i.i = icmp eq i32 %dec.i.i.i.i582.i.i.i, 0 + br i1 %cmp.i.i.i583.i.i.i, label %if.then2.i.i.i584.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + +if.then2.i.i.i584.i.i.i: ; preds = %if.then.i.i.i579.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %313, ptr noundef nonnull %312) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i: ; preds = %if.then2.i.i.i584.i.i.i, %if.then.i.i.i579.i.i.i, %if.end.i577.i.i.i + store ptr %310, ptr %m_r.i95.i.i, align 8 + %315 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i588.i.i.i = icmp eq ptr %315, null + br i1 %cmp.i.i.i588.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i, label %if.end.i.i.i589.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + %.pre.i601.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i602.i.i.i = add i32 %.pre.i601.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + +if.end.i.i.i589.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit585.i.i.i + %arrayidx.i.i.i590.i.i.i = getelementptr inbounds i32, ptr %315, i64 -1 + %316 = load i32, ptr %arrayidx.i.i.i590.i.i.i, align 4 + %317 = add i32 %316, -1 + %318 = zext i32 %317 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i: ; preds = %if.end.i.i.i589.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i + %dec.i.pre-phi.i591.i.i.i = phi i32 [ %.pre1.i602.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i ], [ %317, %if.end.i.i.i589.i.i.i ] + %retval.0.i.i.i592.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i ], [ %318, %if.end.i.i.i589.i.i.i ] + %arrayidx.i1.i.i593.i.i.i = getelementptr inbounds ptr, ptr %315, i64 %retval.0.i.i.i592.i.i.i + %319 = load ptr, ptr %arrayidx.i1.i.i593.i.i.i, align 8 + %arrayidx.i.i594.i.i.i = getelementptr inbounds i32, ptr %315, i64 -1 + store i32 %dec.i.pre-phi.i591.i.i.i, ptr %arrayidx.i.i594.i.i.i, align 4 + %320 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i595.i.i.i = icmp eq ptr %319, null + br i1 %tobool.not.i.i.i.i595.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i, label %if.then.i.i.i.i596.i.i.i + +if.then.i.i.i.i596.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + %m_ref_count.i.i.i.i.i597.i.i.i = getelementptr inbounds %class.ast, ptr %319, i64 0, i32 2 + %321 = load i32, ptr %m_ref_count.i.i.i.i.i597.i.i.i, align 4 + %dec.i.i.i.i.i598.i.i.i = add i32 %321, -1 + store i32 %dec.i.i.i.i.i598.i.i.i, ptr %m_ref_count.i.i.i.i.i597.i.i.i, align 4 + %cmp.i.i.i.i599.i.i.i = icmp eq i32 %dec.i.i.i.i.i598.i.i.i, 0 + br i1 %cmp.i.i.i.i599.i.i.i, label %if.then2.i.i.i.i600.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + +if.then2.i.i.i.i600.i.i.i: ; preds = %if.then.i.i.i.i596.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %320, ptr noundef nonnull %319) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i: ; preds = %if.then2.i.i.i.i600.i.i.i, %if.then.i.i.i.i596.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i + %322 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i605.i.i.i = icmp eq ptr %322, null + br i1 %cmp.i.i.i605.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i, label %if.end.i.i.i606.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + %.pre.i620.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i621.i.i.i = add i32 %.pre.i620.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + +if.end.i.i.i606.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i + %arrayidx.i.i.i607.i.i.i = getelementptr inbounds i32, ptr %322, i64 -1 + %323 = load i32, ptr %arrayidx.i.i.i607.i.i.i, align 4 + %324 = add i32 %323, -1 + %325 = zext i32 %324 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i: ; preds = %if.end.i.i.i606.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i + %dec.i.pre-phi.i609.i.i.i = phi i32 [ %.pre1.i621.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i ], [ %324, %if.end.i.i.i606.i.i.i ] + %retval.0.i.i.i610.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i619.i.i.i ], [ %325, %if.end.i.i.i606.i.i.i ] + %arrayidx.i1.i.i611.i.i.i = getelementptr inbounds ptr, ptr %322, i64 %retval.0.i.i.i610.i.i.i + %326 = load ptr, ptr %arrayidx.i1.i.i611.i.i.i, align 8 + %arrayidx.i.i612.i.i.i = getelementptr inbounds i32, ptr %322, i64 -1 + store i32 %dec.i.pre-phi.i609.i.i.i, ptr %arrayidx.i.i612.i.i.i, align 4 + %327 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i613.i.i.i = icmp eq ptr %326, null + br i1 %tobool.not.i.i.i.i613.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i, label %if.then.i.i.i.i614.i.i.i + +if.then.i.i.i.i614.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + %m_ref_count.i.i.i.i.i615.i.i.i = getelementptr inbounds %class.ast, ptr %326, i64 0, i32 2 + %328 = load i32, ptr %m_ref_count.i.i.i.i.i615.i.i.i, align 4 + %dec.i.i.i.i.i616.i.i.i = add i32 %328, -1 + store i32 %dec.i.i.i.i.i616.i.i.i, ptr %m_ref_count.i.i.i.i.i615.i.i.i, align 4 + %cmp.i.i.i.i617.i.i.i = icmp eq i32 %dec.i.i.i.i.i616.i.i.i, 0 + br i1 %cmp.i.i.i.i617.i.i.i, label %if.then2.i.i.i.i618.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + +if.then2.i.i.i.i618.i.i.i: ; preds = %if.then.i.i.i.i614.i.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %327, ptr noundef nonnull %326) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i: ; preds = %if.then2.i.i.i.i618.i.i.i, %if.then.i.i.i.i614.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i608.i.i.i + %329 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i.i.i.i624.i.i.i = icmp eq ptr %329, null + br i1 %tobool.not.i.i.i.i624.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i, label %if.then.i.i.i.i625.i.i.i + +if.then.i.i.i.i625.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + %m_ref_count.i.i.i.i.i626.i.i.i = getelementptr inbounds %class.ast, ptr %329, i64 0, i32 2 + %330 = load i32, ptr %m_ref_count.i.i.i.i.i626.i.i.i, align 4 + %inc.i.i.i.i.i627.i.i.i = add i32 %330, 1 + store i32 %inc.i.i.i.i.i627.i.i.i, ptr %m_ref_count.i.i.i.i.i626.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i: ; preds = %if.then.i.i.i.i625.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit622.i.i.i + %331 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i630.i.i.i = icmp eq ptr %331, null + br i1 %cmp.i.i630.i.i.i, label %if.then.i.i639.i.i.i, label %lor.lhs.false.i.i631.i.i.i + +lor.lhs.false.i.i631.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + %arrayidx.i.i632.i.i.i = getelementptr inbounds i32, ptr %331, i64 -1 + %332 = load i32, ptr %arrayidx.i.i632.i.i.i, align 4 + %arrayidx4.i.i633.i.i.i = getelementptr inbounds i32, ptr %331, i64 -2 + %333 = load i32, ptr %arrayidx4.i.i633.i.i.i, align 4 + %cmp5.i.i634.i.i.i = icmp eq i32 %332, %333 + br i1 %cmp5.i.i634.i.i.i, label %if.then.i.i639.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + +if.then.i.i639.i.i.i: ; preds = %lor.lhs.false.i.i631.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i628.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + %.pre.i.i640.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i641.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i640.i.i.i, i64 -1 + %.pre1.i.i642.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i641.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i: ; preds = %if.then.i.i639.i.i.i, %lor.lhs.false.i.i631.i.i.i + %334 = phi i32 [ %.pre1.i.i642.i.i.i, %if.then.i.i639.i.i.i ], [ %332, %lor.lhs.false.i.i631.i.i.i ] + %335 = phi ptr [ %.pre.i.i640.i.i.i, %if.then.i.i639.i.i.i ], [ %331, %lor.lhs.false.i.i631.i.i.i ] + %idx.ext.i.i635.i.i.i = zext i32 %334 to i64 + %add.ptr.i.i636.i.i.i = getelementptr inbounds ptr, ptr %335, i64 %idx.ext.i.i635.i.i.i + store ptr %329, ptr %add.ptr.i.i636.i.i.i, align 8 + %336 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i637.i.i.i = getelementptr inbounds i32, ptr %336, i64 -1 + %337 = load i32, ptr %arrayidx10.i.i637.i.i.i, align 4 + %inc.i.i638.i.i.i = add i32 %337, 1 + store i32 %inc.i.i638.i.i.i, ptr %arrayidx10.i.i637.i.i.i, align 4 + %bf.load344.i.i.i = load i32, ptr %89, align 8 + %bf.clear345.i.i.i = and i32 %bf.load344.i.i.i, 1 + %tobool346.not.i.i.i = icmp eq i32 %bf.clear345.i.i.i, 0 + br i1 %tobool346.not.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i, label %if.then.i645.i.i.i + +if.then.i645.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + %338 = load ptr, ptr %m_pr.i89.i.i, align 8 + %339 = load ptr, ptr %m_r.i95.i.i, align 8 + tail call void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %87, ptr noundef %339, ptr noundef %338) + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i + +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i: ; preds = %if.then.i645.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit643.i.i.i + %340 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i648.i.i.i = getelementptr inbounds i32, ptr %340, i64 -1 + %341 = load i32, ptr %arrayidx.i648.i.i.i, align 4 + %dec.i649.i.i.i = add i32 %341, -1 + store i32 %dec.i649.i.i.i, ptr %arrayidx.i648.i.i.i, align 4 + %this.val57.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i650.i.i.i = icmp eq ptr %this.val57.i.i.i, null + br i1 %cmp.i.i650.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i + %arrayidx.i.i652.i.i.i = getelementptr inbounds i32, ptr %this.val57.i.i.i, i64 -1 + %342 = load i32, ptr %arrayidx.i.i652.i.i.i, align 4 + %cmp3.i.i653.i.i.i = icmp eq i32 %342, 0 + br i1 %cmp3.i.i653.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i + %343 = add i32 %342, -1 + %344 = zext i32 %343 to i64 + %m_new_child.i655.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val57.i.i.i, i64 %344, i32 1 + %bf.load.i656.i.i.i = load i32, ptr %m_new_child.i655.i.i.i, align 8 + %bf.set.i657.i.i.i = or i32 %bf.load.i656.i.i.i, 2 + store i32 %bf.set.i657.i.i.i, ptr %m_new_child.i655.i.i.i, align 8 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i + +lpad300.i.i.i: ; preds = %if.then.i.i542.i.i.i, %if.then2.i.i.i523.i.i.i, %invoke.cont313.i.i.i, %if.then2.i.i.i.i506.i.i.i, %if.then2.i.i.i.i.i.i.i + %345 = landingpad { ptr, i32 } cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr1295.i.i) #15 - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2293.i.i) #15 - br label %common.resume + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr1295.i.i.i) #15 + br label %eh.resume.i.i.i -sw.bb348.i.i: ; preds = %sw.bb.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 515, ptr noundef nonnull @.str.10) - call void @exit(i32 noundef 107) #14 +sw.bb348.i.i.i: ; preds = %sw.bb.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 515, ptr noundef nonnull @.str.10) + tail call void @exit(i32 noundef 107) #14 unreachable -sw.bb349.i.i: ; preds = %sw.bb.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 520, ptr noundef nonnull @.str.10) - call void @exit(i32 noundef 107) #14 +sw.bb349.i.i.i: ; preds = %sw.bb.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 520, ptr noundef nonnull @.str.10) + tail call void @exit(i32 noundef 107) #14 + unreachable + +sw.bb.i.i.unreachabledefault: ; preds = %sw.bb.i.i unreachable -entry.unreachabledefault.i.i: ; preds = %sw.bb.i +default.unreachable: ; preds = %sw.bb.i.i261 unreachable -common.resume: ; preds = %cleanup.action.i47, %ehcleanup13.i, %cleanup.action.i225, %ehcleanup14.i221, %lpad.i.i372, %lpad238.i.i, %cleanup.action.i, %ehcleanup15.i, %cleanup.action.i73, %ehcleanup14.i, %lpad.i.i, %lpad300.i.i, %ehcleanup.i.i259, %lpad.i2056, %ehcleanup210.i.i, %lpad.i953 - %common.resume.op = phi { ptr, i32 } [ %394, %lpad.i953 ], [ %.pn50.pn.i.i, %ehcleanup210.i.i ], [ %906, %lpad.i2056 ], [ %.pn.i45.i, %ehcleanup.i.i259 ], [ %348, %lpad300.i.i ], [ %lpad.phi2856, %lpad.i.i ], [ %.pn.pn.i712792, %cleanup.action.i73 ], [ %82, %ehcleanup14.i ], [ %.pn.pn.i2785, %cleanup.action.i ], [ %33, %ehcleanup15.i ], [ %lpad.phi2838, %lpad238.i.i ], [ %lpad.phi, %lpad.i.i372 ], [ %.pn.pn.i2232812, %cleanup.action.i225 ], [ %618, %ehcleanup14.i221 ], [ %.pn.pn.i442805, %cleanup.action.i47 ], [ %590, %ehcleanup13.i ] +common.resume: ; preds = %ehcleanup13.i, %cleanup.action.i62, %ehcleanup14.i.i101, %cleanup.action.i.i97, %lpad.i.i.i, %lpad238.i.i.i, %lpad.i.i.body.i.i229, %ehcleanup.i.i.i161, %ehcleanup15.i, %cleanup.action.i, %ehcleanup14.i.i, %cleanup.action.i.i, %eh.resume.i.i.i, %lpad.i.i.body.i.i, %ehcleanup210.i.i.i + %common.resume.op = phi { ptr, i32 } [ %.pn.i.i.i, %eh.resume.i.i.i ], [ %eh.lpad-body293.i.i, %lpad.i.i.body.i.i ], [ %.pn50.pn.i.i.i, %ehcleanup210.i.i.i ], [ %82, %ehcleanup14.i.i ], [ %.pn.pn298.i.i, %cleanup.action.i.i ], [ %33, %ehcleanup15.i ], [ %.pn.pn111.i, %cleanup.action.i ], [ %lpad.phi539.i.i.i, %lpad238.i.i.i ], [ %lpad.phi.i.i.i, %lpad.i.i.i ], [ %eh.lpad-body247.i.i, %lpad.i.i.body.i.i229 ], [ %.pn.i59.i.i, %ehcleanup.i.i.i161 ], [ %619, %ehcleanup14.i.i101 ], [ %.pn.pn4.i.i, %cleanup.action.i.i97 ], [ %591, %ehcleanup13.i ], [ %.pn.pn57.i, %cleanup.action.i62 ] resume { ptr, i32 } %common.resume.op -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i: ; preds = %while.body.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i1009, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i1006, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit1017, %if.then2.i.i.i1251, %if.then.i.i.i1245, %cleanup.i.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2293.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr1295.i.i) - br label %while.cond.i.backedgethread-pre-split - -sw.bb34.i: ; preds = %if.end31.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_q.i.i) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2.i.i) - %m_num_decls.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 2 - %349 = load i32, ptr %m_num_decls.i, align 4 - %bf.load.i50.i = load i32, ptr %89, align 8 - %cmp.i51.i = icmp ult i32 %bf.load.i50.i, 64 - br i1 %cmp.i51.i, label %if.then.i.i81, label %cond.end.i.i - -if.then.i.i81: ; preds = %sw.bb34.i - call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - %m_expr.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 - %350 = load ptr, ptr %m_expr.i, align 8 - store ptr %350, ptr %m_root.i, align 8 - %351 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i1000 = icmp eq ptr %351, null - br i1 %cmp.i1000, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1004, label %if.end.i1001 - -if.end.i1001: ; preds = %if.then.i.i81 - %arrayidx.i1002 = getelementptr inbounds i32, ptr %351, i64 -1 - %352 = load i32, ptr %arrayidx.i1002, align 4 - br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1004 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1004: ; preds = %if.then.i.i81, %if.end.i1001 - %retval.0.i1003 = phi i32 [ %352, %if.end.i1001 ], [ 0, %if.then.i.i81 ] - %cmp4.i.i2889.not = icmp eq i32 %349, 0 - br i1 %cmp4.i.i2889.not, label %for.end.i.i, label %for.body.i.i82 - -for.body.i.i82: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1004, %_ZN6vectorIjLb0EjE9push_backERKj.exit - %i.0.i.i2890 = phi i32 [ %inc.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1004 ] - %353 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i986 = icmp eq ptr %353, null - br i1 %cmp.i986, label %if.then.i996, label %lor.lhs.false.i987 - -lor.lhs.false.i987: ; preds = %for.body.i.i82 - %arrayidx.i988 = getelementptr inbounds i32, ptr %353, i64 -1 - %354 = load i32, ptr %arrayidx.i988, align 4 - %arrayidx4.i989 = getelementptr inbounds i32, ptr %353, i64 -2 - %355 = load i32, ptr %arrayidx4.i989, align 4 - %cmp5.i990 = icmp eq i32 %354, %355 - br i1 %cmp5.i990, label %if.then.i996, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - -if.then.i996: ; preds = %lor.lhs.false.i987, %for.body.i.i82 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i) - %.pre.i997 = load ptr, ptr %m_bindings.i.i, align 8 - %arrayidx8.phi.trans.insert.i998 = getelementptr inbounds i32, ptr %.pre.i997, i64 -1 - %.pre1.i999 = load i32, ptr %arrayidx8.phi.trans.insert.i998, align 4 - br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - -_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit: ; preds = %lor.lhs.false.i987, %if.then.i996 - %356 = phi i32 [ %.pre1.i999, %if.then.i996 ], [ %354, %lor.lhs.false.i987 ] - %357 = phi ptr [ %.pre.i997, %if.then.i996 ], [ %353, %lor.lhs.false.i987 ] - %idx.ext.i992 = zext i32 %356 to i64 - %add.ptr.i993 = getelementptr inbounds ptr, ptr %357, i64 %idx.ext.i992 - store ptr null, ptr %add.ptr.i993, align 8 - %358 = load ptr, ptr %m_bindings.i.i, align 8 - %arrayidx10.i994 = getelementptr inbounds i32, ptr %358, i64 -1 - %359 = load i32, ptr %arrayidx10.i994, align 4 - %inc.i995 = add i32 %359, 1 - store i32 %inc.i995, ptr %arrayidx10.i994, align 4 - %360 = load ptr, ptr %m_shifts.i.i, align 8 - %cmp.i977 = icmp eq ptr %360, null - br i1 %cmp.i977, label %if.then.i983, label %lor.lhs.false.i - -lor.lhs.false.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - %arrayidx.i978 = getelementptr inbounds i32, ptr %360, i64 -1 - %361 = load i32, ptr %arrayidx.i978, align 4 - %arrayidx4.i = getelementptr inbounds i32, ptr %360, i64 -2 - %362 = load i32, ptr %arrayidx4.i, align 4 - %cmp5.i = icmp eq i32 %361, %362 - br i1 %cmp5.i, label %if.then.i983, label %_ZN6vectorIjLb0EjE9push_backERKj.exit - -if.then.i983: ; preds = %lor.lhs.false.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit - call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i) - %.pre.i984 = load ptr, ptr %m_shifts.i.i, align 8 - %arrayidx8.phi.trans.insert.i = getelementptr inbounds i32, ptr %.pre.i984, i64 -1 - %.pre1.i985 = load i32, ptr %arrayidx8.phi.trans.insert.i, align 4 - br label %_ZN6vectorIjLb0EjE9push_backERKj.exit - -_ZN6vectorIjLb0EjE9push_backERKj.exit: ; preds = %lor.lhs.false.i, %if.then.i983 - %363 = phi i32 [ %.pre1.i985, %if.then.i983 ], [ %361, %lor.lhs.false.i ] - %364 = phi ptr [ %.pre.i984, %if.then.i983 ], [ %360, %lor.lhs.false.i ] - %idx.ext.i980 = zext i32 %363 to i64 - %add.ptr.i981 = getelementptr inbounds i32, ptr %364, i64 %idx.ext.i980 - store i32 %retval.0.i1003, ptr %add.ptr.i981, align 4 - %365 = load ptr, ptr %m_shifts.i.i, align 8 - %arrayidx10.i = getelementptr inbounds i32, ptr %365, i64 -1 - %366 = load i32, ptr %arrayidx10.i, align 4 - %inc.i982 = add i32 %366, 1 - store i32 %inc.i982, ptr %arrayidx10.i, align 4 - %inc.i.i = add nuw i32 %i.0.i.i2890, 1 - %exitcond.not = icmp eq i32 %inc.i.i, %349 - br i1 %exitcond.not, label %for.end.i.i, label %for.body.i.i82, !llvm.loop !13 - -for.end.i.i: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit1004 - %367 = load i32, ptr %m_num_qvars.i, align 8 - %add.i.i = add i32 %367, %349 - store i32 %add.i.i, ptr %m_num_qvars.i, align 8 - br label %cond.end.i.i - -cond.end.i.i: ; preds = %for.end.i.i, %sw.bb34.i - %m_num_patterns.i.i976 = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 11 - %368 = load i32, ptr %m_num_patterns.i.i976, align 8 - %add.i = add i32 %368, 1 - %m_num_no_patterns.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 12 - %369 = load i32, ptr %m_num_no_patterns.i.i, align 4 - %add3.i = add i32 %add.i, %369 - %m_patterns_decls.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 13 - %m_expr.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 - br label %while.cond.i52.i - -while.cond.i52.i: ; preds = %_ZNK10quantifier9get_childEj.exit, %cond.end.i.i - %bf.load11.i.i = load i32, ptr %89, align 8 - %bf.lshr12.i.i = lshr i32 %bf.load11.i.i, 6 - %cmp13.i.i = icmp ult i32 %bf.lshr12.i.i, %add3.i - br i1 %cmp13.i.i, label %while.body.i90.i, label %while.end.i53.i - -while.body.i90.i: ; preds = %while.cond.i52.i - %cmp.i966 = icmp ult i32 %bf.load11.i.i, 64 - br i1 %cmp.i966, label %_ZNK10quantifier9get_childEj.exit, label %if.else.i967 - -if.else.i967: ; preds = %while.body.i90.i - %370 = load i32, ptr %m_num_patterns.i.i976, align 8 - %cmp3.not.i = icmp ult i32 %370, %bf.lshr12.i.i - br i1 %cmp3.not.i, label %if.else6.i, label %if.then4.i968 - -if.then4.i968: ; preds = %if.else.i967 - %371 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i.i.i969 = zext i32 %371 to i64 - %add.ptr.i.i.i.i970 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i.i.i969 - %add.ptr.i.i.i971 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i970, i64 %idx.ext.i.i.i.i969 - %372 = zext nneg i32 %bf.lshr12.i.i to i64 - %373 = getelementptr ptr, ptr %add.ptr.i.i.i971, i64 %372 - %arrayidx.i.i973 = getelementptr ptr, ptr %373, i64 -1 - br label %_ZNK10quantifier9get_childEj.exit - -if.else6.i: ; preds = %if.else.i967 - %374 = xor i32 %370, -1 - %sub9.i = add i32 %bf.lshr12.i.i, %374 - %375 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i.i7.i = zext i32 %375 to i64 - %add.ptr.i.i.i8.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i.i7.i - %add.ptr.i.i9.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i, i64 %idx.ext.i.i.i7.i - %idxprom.i10.i = zext i32 %sub9.i to i64 - %arrayidx.i11.i = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i, i64 %idxprom.i10.i - br label %_ZNK10quantifier9get_childEj.exit - -_ZNK10quantifier9get_childEj.exit: ; preds = %while.body.i90.i, %if.then4.i968, %if.else6.i - %retval.0.in.i = phi ptr [ %arrayidx.i.i973, %if.then4.i968 ], [ %arrayidx.i11.i, %if.else6.i ], [ %m_expr.i.i, %while.body.i90.i ] - %retval.0.i974 = load ptr, ptr %retval.0.in.i, align 8 - %376 = and i32 %bf.load11.i.i, -64 - %bf.shl.i92.i = add i32 %376, 64 - %bf.clear.i93.i = and i32 %bf.load11.i.i, 63 - %bf.set.i94.i = or disjoint i32 %bf.shl.i92.i, %bf.clear.i93.i - store i32 %bf.set.i94.i, ptr %89, align 8 - %bf.lshr24.i.i = lshr i32 %bf.load11.i.i, 4 - %bf.clear25.i.i = and i32 %bf.lshr24.i.i, 3 - %call26.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i974, i32 noundef %bf.clear25.i.i) - br i1 %call26.i.i, label %while.cond.i52.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, !llvm.loop !14 - -while.end.i53.i: ; preds = %while.cond.i52.i - %377 = load ptr, ptr %m_nodes.i.i, align 8 - %m_spos.i54.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i, i32 2 - %378 = load i32, ptr %m_spos.i54.i, align 4 - %idx.ext.i55.i = zext i32 %378 to i64 - %add.ptr.i56.i = getelementptr inbounds ptr, ptr %377, i64 %idx.ext.i55.i - %379 = load ptr, ptr %add.ptr.i56.i, align 8 - %380 = load i32, ptr %m_num_patterns.i.i976, align 8 - %381 = load i32, ptr %m_num_no_patterns.i.i, align 4 - %382 = load ptr, ptr %28, align 8 - %383 = load i32, ptr %m_num_decls.i, align 4 - %idx.ext.i.i961 = zext i32 %383 to i64 - %add.ptr.i.i962 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i961 - %add.ptr.i963 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i962, i64 %idx.ext.i.i961 - %384 = ptrtoint ptr %382 to i64 - store i64 %384, ptr %new_pats.i.i, align 8 - store ptr null, ptr %m_nodes.i.i927, align 8 - %cmp3.not.i.i928 = icmp eq i32 %380, 0 - br i1 %cmp3.not.i.i928, label %invoke.cont.i60.i, label %for.body.lr.ph.i.i929 - -for.body.lr.ph.i.i929: ; preds = %while.end.i53.i - %wide.trip.count.i.i930 = zext i32 %380 to i64 - br label %for.body.i.i931 - -for.body.i.i931: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i944, %for.body.lr.ph.i.i929 - %indvars.iv.i.i932 = phi i64 [ 0, %for.body.lr.ph.i.i929 ], [ %indvars.iv.next.i.i949, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i944 ] - %arrayidx.i.i933 = getelementptr inbounds ptr, ptr %add.ptr.i963, i64 %indvars.iv.i.i932 - %385 = load ptr, ptr %arrayidx.i.i933, align 8 - %tobool.not.i.i.i.i.i.i934 = icmp eq ptr %385, null - br i1 %tobool.not.i.i.i.i.i.i934, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i938, label %if.then.i.i.i.i.i.i935 - -if.then.i.i.i.i.i.i935: ; preds = %for.body.i.i931 - %m_ref_count.i.i.i.i.i.i.i936 = getelementptr inbounds %class.ast, ptr %385, i64 0, i32 2 - %386 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i936, align 4 - %inc.i.i.i.i.i.i.i937 = add i32 %386, 1 - store i32 %inc.i.i.i.i.i.i.i937, ptr %m_ref_count.i.i.i.i.i.i.i936, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i938 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i938: ; preds = %if.then.i.i.i.i.i.i935, %for.body.i.i931 - %387 = load ptr, ptr %m_nodes.i.i927, align 8 - %cmp.i.i.i.i939 = icmp eq ptr %387, null - br i1 %cmp.i.i.i.i939, label %if.then.i.i.i.i952, label %lor.lhs.false.i.i.i.i940 - -lor.lhs.false.i.i.i.i940: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i938 - %arrayidx.i.i.i.i941 = getelementptr inbounds i32, ptr %387, i64 -1 - %388 = load i32, ptr %arrayidx.i.i.i.i941, align 4 - %arrayidx4.i.i.i.i942 = getelementptr inbounds i32, ptr %387, i64 -2 - %389 = load i32, ptr %arrayidx4.i.i.i.i942, align 4 - %cmp5.i.i.i.i943 = icmp eq i32 %388, %389 - br i1 %cmp5.i.i.i.i943, label %if.then.i.i.i.i952, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i944 - -if.then.i.i.i.i952: ; preds = %lor.lhs.false.i.i.i.i940, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i938 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i927) - to label %.noexc.i954 unwind label %lpad.i953 - -.noexc.i954: ; preds = %if.then.i.i.i.i952 - %.pre.i.i.i.i955 = load ptr, ptr %m_nodes.i.i927, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i956 = getelementptr inbounds i32, ptr %.pre.i.i.i.i955, i64 -1 - %.pre1.i.i.i.i957 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i956, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i944 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i944: ; preds = %.noexc.i954, %lor.lhs.false.i.i.i.i940 - %390 = phi i32 [ %.pre1.i.i.i.i957, %.noexc.i954 ], [ %388, %lor.lhs.false.i.i.i.i940 ] - %391 = phi ptr [ %.pre.i.i.i.i955, %.noexc.i954 ], [ %387, %lor.lhs.false.i.i.i.i940 ] - %idx.ext.i.i.i.i945 = zext i32 %390 to i64 - %add.ptr.i.i.i.i946 = getelementptr inbounds ptr, ptr %391, i64 %idx.ext.i.i.i.i945 - store ptr %385, ptr %add.ptr.i.i.i.i946, align 8 - %392 = load ptr, ptr %m_nodes.i.i927, align 8 - %arrayidx10.i.i.i.i947 = getelementptr inbounds i32, ptr %392, i64 -1 - %393 = load i32, ptr %arrayidx10.i.i.i.i947, align 4 - %inc.i.i.i.i948 = add i32 %393, 1 - store i32 %inc.i.i.i.i948, ptr %arrayidx10.i.i.i.i947, align 4 - %indvars.iv.next.i.i949 = add nuw nsw i64 %indvars.iv.i.i932, 1 - %exitcond.not.i.i950 = icmp eq i64 %indvars.iv.next.i.i949, %wide.trip.count.i.i930 - br i1 %exitcond.not.i.i950, label %invoke.cont.i60.i.loopexit, label %for.body.i.i931, !llvm.loop !15 - -lpad.i953: ; preds = %if.then.i.i.i.i952 - %394 = landingpad { ptr, i32 } - cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i) #15 +eh.resume.i.i.i: ; preds = %lpad300.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i, %lpad.loopexit.i.i.i + %pr2293.sink.i.i.i = phi ptr [ %pr2293.i.i.i, %lpad300.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %new_t.i.i.i, %lpad.loopexit.i.i.i ] + %.pn.i.i.i = phi { ptr, i32 } [ %345, %lpad300.i.i.i ], [ %lpad.loopexit663.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit669.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit.split-lp670.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ], [ %lpad.loopexit666.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit661.i.i.i, %lpad.loopexit.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2293.sink.i.i.i) #15 br label %common.resume -invoke.cont.i60.i.loopexit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i944 - %.pre = load ptr, ptr %28, align 8 - %.pre2930 = load i32, ptr %m_num_decls.i, align 4 - %.pre2943 = zext i32 %.pre2930 to i64 - %.pre2944 = ptrtoint ptr %.pre to i64 - br label %invoke.cont.i60.i - -invoke.cont.i60.i: ; preds = %invoke.cont.i60.i.loopexit, %while.end.i53.i - %.pre-phi2945 = phi i64 [ %.pre2944, %invoke.cont.i60.i.loopexit ], [ %384, %while.end.i53.i ] - %idx.ext.i.i924.pre-phi = phi i64 [ %.pre2943, %invoke.cont.i60.i.loopexit ], [ %idx.ext.i.i961, %while.end.i53.i ] - %add.ptr.i.i925 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i, i64 %idx.ext.i.i924.pre-phi - %add.ptr.i926 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i925, i64 %idx.ext.i.i924.pre-phi - store i64 %.pre-phi2945, ptr %new_no_pats.i.i, align 8 - store ptr null, ptr %m_nodes.i.i912, align 8 - %cmp3.not.i.i = icmp eq i32 %381, 0 - br i1 %cmp3.not.i.i, label %if.then40.i.i, label %for.body.lr.ph.i.i - -for.body.lr.ph.i.i: ; preds = %invoke.cont.i60.i - %wide.trip.count.i.i = zext i32 %381 to i64 - br label %for.body.i.i913 - -for.body.i.i913: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i, %for.body.lr.ph.i.i - %indvars.iv.i.i = phi i64 [ 0, %for.body.lr.ph.i.i ], [ %indvars.iv.next.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i ] - %arrayidx.i.i914 = getelementptr inbounds ptr, ptr %add.ptr.i926, i64 %indvars.iv.i.i - %395 = load ptr, ptr %arrayidx.i.i914, align 8 - %tobool.not.i.i.i.i.i.i915 = icmp eq ptr %395, null - br i1 %tobool.not.i.i.i.i.i.i915, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i.i.i916 - -if.then.i.i.i.i.i.i916: ; preds = %for.body.i.i913 - %m_ref_count.i.i.i.i.i.i.i917 = getelementptr inbounds %class.ast, ptr %395, i64 0, i32 2 - %396 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i917, align 4 - %inc.i.i.i.i.i.i.i = add i32 %396, 1 - store i32 %inc.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i917, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i.i.i916, %for.body.i.i913 - %397 = load ptr, ptr %m_nodes.i.i912, align 8 - %cmp.i.i.i.i918 = icmp eq ptr %397, null - br i1 %cmp.i.i.i.i918, label %if.then.i.i.i.i922, label %lor.lhs.false.i.i.i.i +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb1EEEvP3appRN13rewriter_core5frameE.exit.i.i: ; preds = %while.body.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i654.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i651.i.i.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb1EEEvP4exprS6_P3appb.exit646.i.i.i, %if.then2.i.i.i435.i.i.i, %if.then.i.i.i430.i.i.i, %cleanup.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2293.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr1295.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i + +sw.bb34.i.i: ; preds = %if.end31.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_q.i.i.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pr2.i.i.i) + %m_num_decls.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 2 + %346 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %bf.load.i63.i.i = load i32, ptr %89, align 8 + %cmp.i64.i.i = icmp ult i32 %bf.load.i63.i.i, 64 + br i1 %cmp.i64.i.i, label %if.then.i.i.i, label %cond.end.i.i.i + +if.then.i.i.i: ; preds = %sw.bb34.i.i + tail call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + %m_expr.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 + %347 = load ptr, ptr %m_expr.i.i.i.i, align 8 + store ptr %347, ptr %m_root.i, align 8 + %348 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i.i152.i.i = icmp eq ptr %348, null + br i1 %cmp.i.i152.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i, label %if.end.i.i153.i.i + +if.end.i.i153.i.i: ; preds = %if.then.i.i.i + %arrayidx.i.i154.i.i = getelementptr inbounds i32, ptr %348, i64 -1 + %349 = load i32, ptr %arrayidx.i.i154.i.i, align 4 + br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i: ; preds = %if.end.i.i153.i.i, %if.then.i.i.i + %retval.0.i.i155.i.i = phi i32 [ %349, %if.end.i.i153.i.i ], [ 0, %if.then.i.i.i ] + %cmp4475.not.i.i.i = icmp eq i32 %346, 0 + br i1 %cmp4475.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i + +for.body.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + %i.0476.i.i.i = phi i32 [ %inc.i.i.i, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i ] + %350 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i62.i.i.i = icmp eq ptr %350, null + br i1 %cmp.i62.i.i.i, label %if.then.i.i163.i.i, label %lor.lhs.false.i.i156.i.i + +lor.lhs.false.i.i156.i.i: ; preds = %for.body.i.i.i + %arrayidx.i63.i.i.i = getelementptr inbounds i32, ptr %350, i64 -1 + %351 = load i32, ptr %arrayidx.i63.i.i.i, align 4 + %arrayidx4.i.i157.i.i = getelementptr inbounds i32, ptr %350, i64 -2 + %352 = load i32, ptr %arrayidx4.i.i157.i.i, align 4 + %cmp5.i.i158.i.i = icmp eq i32 %351, %352 + br i1 %cmp5.i.i158.i.i, label %if.then.i.i163.i.i, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + +if.then.i.i163.i.i: ; preds = %lor.lhs.false.i.i156.i.i, %for.body.i.i.i + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i.i) + %.pre.i.i164.i.i = load ptr, ptr %m_bindings.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i165.i.i = getelementptr inbounds i32, ptr %.pre.i.i164.i.i, i64 -1 + %.pre1.i.i166.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i165.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i: ; preds = %if.then.i.i163.i.i, %lor.lhs.false.i.i156.i.i + %353 = phi i32 [ %.pre1.i.i166.i.i, %if.then.i.i163.i.i ], [ %351, %lor.lhs.false.i.i156.i.i ] + %354 = phi ptr [ %.pre.i.i164.i.i, %if.then.i.i163.i.i ], [ %350, %lor.lhs.false.i.i156.i.i ] + %idx.ext.i.i159.i.i = zext i32 %353 to i64 + %add.ptr.i.i160.i.i = getelementptr inbounds ptr, ptr %354, i64 %idx.ext.i.i159.i.i + store ptr null, ptr %add.ptr.i.i160.i.i, align 8 + %355 = load ptr, ptr %m_bindings.i.i.i, align 8 + %arrayidx10.i.i161.i.i = getelementptr inbounds i32, ptr %355, i64 -1 + %356 = load i32, ptr %arrayidx10.i.i161.i.i, align 4 + %inc.i.i162.i.i = add i32 %356, 1 + store i32 %inc.i.i162.i.i, ptr %arrayidx10.i.i161.i.i, align 4 + %357 = load ptr, ptr %m_shifts.i.i.i, align 8 + %cmp.i65.i.i.i = icmp eq ptr %357, null + br i1 %cmp.i65.i.i.i, label %if.then.i75.i.i.i, label %lor.lhs.false.i66.i.i.i + +lor.lhs.false.i66.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + %arrayidx.i67.i.i.i = getelementptr inbounds i32, ptr %357, i64 -1 + %358 = load i32, ptr %arrayidx.i67.i.i.i, align 4 + %arrayidx4.i68.i.i.i = getelementptr inbounds i32, ptr %357, i64 -2 + %359 = load i32, ptr %arrayidx4.i68.i.i.i, align 4 + %cmp5.i69.i.i.i = icmp eq i32 %358, %359 + br i1 %cmp5.i69.i.i.i, label %if.then.i75.i.i.i, label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + +if.then.i75.i.i.i: ; preds = %lor.lhs.false.i66.i.i.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i + tail call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i.i) + %.pre.i76.i.i.i = load ptr, ptr %m_shifts.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i77.i.i.i = getelementptr inbounds i32, ptr %.pre.i76.i.i.i, i64 -1 + %.pre1.i78.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i77.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i + +_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i: ; preds = %if.then.i75.i.i.i, %lor.lhs.false.i66.i.i.i + %360 = phi i32 [ %.pre1.i78.i.i.i, %if.then.i75.i.i.i ], [ %358, %lor.lhs.false.i66.i.i.i ] + %361 = phi ptr [ %.pre.i76.i.i.i, %if.then.i75.i.i.i ], [ %357, %lor.lhs.false.i66.i.i.i ] + %idx.ext.i71.i.i.i = zext i32 %360 to i64 + %add.ptr.i72.i.i.i = getelementptr inbounds i32, ptr %361, i64 %idx.ext.i71.i.i.i + store i32 %retval.0.i.i155.i.i, ptr %add.ptr.i72.i.i.i, align 4 + %362 = load ptr, ptr %m_shifts.i.i.i, align 8 + %arrayidx10.i73.i.i.i = getelementptr inbounds i32, ptr %362, i64 -1 + %363 = load i32, ptr %arrayidx10.i73.i.i.i, align 4 + %inc.i74.i.i.i = add i32 %363, 1 + store i32 %inc.i74.i.i.i, ptr %arrayidx10.i73.i.i.i, align 4 + %inc.i.i.i = add nuw i32 %i.0476.i.i.i, 1 + %exitcond.not.i.i.i = icmp eq i32 %inc.i.i.i, %346 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i, !llvm.loop !13 + +for.end.i.i.i: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i + %364 = load i32, ptr %m_num_qvars.i, align 8 + %add.i.i.i = add i32 %364, %346 + store i32 %add.i.i.i, ptr %m_num_qvars.i, align 8 + br label %cond.end.i.i.i + +cond.end.i.i.i: ; preds = %for.end.i.i.i, %sw.bb34.i.i + %m_num_patterns.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 11 + %365 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %add.i.i.i.i = add i32 %365, 1 + %m_num_no_patterns.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 12 + %366 = load i32, ptr %m_num_no_patterns.i.i.i.i.i, align 4 + %add3.i.i.i.i = add i32 %add.i.i.i.i, %366 + %m_patterns_decls.i.i.i.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 13 + %m_expr.i.i.i.i.i = getelementptr inbounds %class.quantifier, ptr %87, i64 0, i32 3 + br label %while.cond.i65.i.i + +while.cond.i65.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i, %cond.end.i.i.i + %bf.load11.i.i.i = load i32, ptr %89, align 8 + %bf.lshr12.i.i.i = lshr i32 %bf.load11.i.i.i, 6 + %cmp13.i.i.i = icmp ult i32 %bf.lshr12.i.i.i, %add3.i.i.i.i + br i1 %cmp13.i.i.i, label %while.body.i147.i.i, label %while.end.i66.i.i + +while.body.i147.i.i: ; preds = %while.cond.i65.i.i + %cmp.i79.i.i.i = icmp ult i32 %bf.load11.i.i.i, 64 + br i1 %cmp.i79.i.i.i, label %_ZNK10quantifier9get_childEj.exit.i.i.i, label %if.else.i.i.i.i + +if.else.i.i.i.i: ; preds = %while.body.i147.i.i + %367 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %cmp3.not.i.i.i.i = icmp ult i32 %367, %bf.lshr12.i.i.i + br i1 %cmp3.not.i.i.i.i, label %if.else6.i.i.i.i, label %if.then4.i.i.i.i + +if.then4.i.i.i.i: ; preds = %if.else.i.i.i.i + %368 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i.i.i.i.i = zext i32 %368 to i64 + %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i.i.i.i.i + %add.ptr.i.i.i.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i.i.i.i.i + %369 = zext nneg i32 %bf.lshr12.i.i.i to i64 + %370 = getelementptr ptr, ptr %add.ptr.i.i.i.i.i.i, i64 %369 + %arrayidx.i.i.i148.i.i = getelementptr ptr, ptr %370, i64 -1 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i + +if.else6.i.i.i.i: ; preds = %if.else.i.i.i.i + %371 = xor i32 %367, -1 + %sub9.i.i.i.i = add nsw i32 %bf.lshr12.i.i.i, %371 + %372 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i7.i.i.i.i = zext i32 %372 to i64 + %add.ptr.i.i.i8.i.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i7.i.i.i.i + %add.ptr.i.i9.i.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i.i.i.i, i64 %idx.ext.i.i.i7.i.i.i.i + %idxprom.i10.i.i.i.i = zext i32 %sub9.i.i.i.i to i64 + %arrayidx.i11.i.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i.i.i.i, i64 %idxprom.i10.i.i.i.i + br label %_ZNK10quantifier9get_childEj.exit.i.i.i + +_ZNK10quantifier9get_childEj.exit.i.i.i: ; preds = %if.else6.i.i.i.i, %if.then4.i.i.i.i, %while.body.i147.i.i + %retval.0.in.i.i.i.i = phi ptr [ %arrayidx.i.i.i148.i.i, %if.then4.i.i.i.i ], [ %arrayidx.i11.i.i.i.i, %if.else6.i.i.i.i ], [ %m_expr.i.i.i.i.i, %while.body.i147.i.i ] + %retval.0.i81.i.i.i = load ptr, ptr %retval.0.in.i.i.i.i, align 8 + %373 = and i32 %bf.load11.i.i.i, -64 + %bf.shl.i149.i.i = add i32 %373, 64 + %bf.clear.i150.i.i = and i32 %bf.load11.i.i.i, 63 + %bf.set.i151.i.i = or disjoint i32 %bf.shl.i149.i.i, %bf.clear.i150.i.i + store i32 %bf.set.i151.i.i, ptr %89, align 8 + %bf.lshr24.i.i.i = lshr i32 %bf.load11.i.i.i, 4 + %bf.clear25.i.i.i = and i32 %bf.lshr24.i.i.i, 3 + %call26.i.i.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i81.i.i.i, i32 noundef %bf.clear25.i.i.i) + br i1 %call26.i.i.i, label %while.cond.i65.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, !llvm.loop !14 + +while.end.i66.i.i: ; preds = %while.cond.i65.i.i + %374 = load ptr, ptr %m_nodes.i.i.i, align 8 + %m_spos.i69.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %83, i64 %retval.0.i.i.i96.i, i32 2 + %375 = load i32, ptr %m_spos.i69.i.i, align 4 + %idx.ext.i70.i.i = zext i32 %375 to i64 + %add.ptr.i71.i.i = getelementptr inbounds ptr, ptr %374, i64 %idx.ext.i70.i.i + %376 = load ptr, ptr %add.ptr.i71.i.i, align 8 + %377 = load i32, ptr %m_num_patterns.i.i.i.i.i, align 8 + %378 = load i32, ptr %m_num_no_patterns.i.i.i.i.i, align 4 + %379 = load ptr, ptr %28, align 8 + %380 = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %idx.ext.i.i.i72.i.i = zext i32 %380 to i64 + %add.ptr.i.i.i73.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i.i72.i.i + %add.ptr.i83.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i73.i.i, i64 %idx.ext.i.i.i72.i.i + %381 = ptrtoint ptr %379 to i64 + store i64 %381, ptr %new_pats.i.i.i, align 8 + store ptr null, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp3.not.i.i.i.i.i = icmp eq i32 %377, 0 + br i1 %cmp3.not.i.i.i.i.i, label %invoke.cont.i78.i.i, label %for.body.lr.ph.i.i.i.i.i + +for.body.lr.ph.i.i.i.i.i: ; preds = %while.end.i66.i.i + %wide.trip.count.i.i.i.i.i = zext i32 %377 to i64 + br label %for.body.i.i.i74.i.i + +for.body.i.i.i74.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i, %for.body.lr.ph.i.i.i.i.i + %indvars.iv.i.i.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i.i.i ], [ %indvars.iv.next.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i ] + %arrayidx.i.i84.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i83.i.i.i, i64 %indvars.iv.i.i.i.i.i + %382 = load ptr, ptr %arrayidx.i.i84.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i.i = icmp eq ptr %382, null + br i1 %tobool.not.i.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i.i + +if.then.i.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i74.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %382, i64 0, i32 2 + %383 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i.i.i = add i32 %383, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i, %for.body.i.i.i74.i.i + %384 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i75.i.i = icmp eq ptr %384, null + br i1 %cmp.i.i.i.i.i75.i.i, label %if.then.i286.i.i, label %lor.lhs.false.i.i.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + %arrayidx.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %384, i64 -1 + %385 = load i32, ptr %arrayidx.i.i.i.i.i.i.i, align 4 + %arrayidx4.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %384, i64 -2 + %386 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i.i.i = icmp eq i32 %385, %386 + br i1 %cmp5.i.i.i.i.i.i.i, label %if.else.i262.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + +if.then.i286.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i259.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i260.i.i) + %call.i290.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc289.i.i unwind label %lpad.i.i.i.i + +call.i.noexc289.i.i: ; preds = %if.then.i286.i.i + store i32 2, ptr %call.i290.i.i, align 4 + %incdec.ptr.i287.i.i = getelementptr inbounds i32, ptr %call.i290.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i287.i.i, align 4 + %incdec.ptr2.i288.i.i = getelementptr inbounds i32, ptr %call.i290.i.i, i64 2 + store ptr %incdec.ptr2.i288.i.i, ptr %m_nodes.i.i.i.i.i, align 8 + br label %.noexc.i.i.i.i + +if.else.i262.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i259.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i260.i.i) + %mul9.i264.i.i = mul i32 %385, 3 + %add10.i265.i.i = add i32 %mul9.i264.i.i, 1 + %shr.i266.i.i = lshr i32 %add10.i265.i.i, 1 + %mul12.i267.i.i = shl i32 %shr.i266.i.i, 3 + %add13.i268.i.i = add i32 %mul12.i267.i.i, 8 + %cmp15.not.i269.i.i = icmp ugt i32 %shr.i266.i.i, %385 + br i1 %cmp15.not.i269.i.i, label %lor.lhs.false.i279.i.i, label %if.then17.i270.i.i + +lor.lhs.false.i279.i.i: ; preds = %if.else.i262.i.i + %mul6.i280.i.i = shl i32 %385, 3 + %add7.i281.i.i = add i32 %mul6.i280.i.i, 8 + %cmp16.not.i282.i.i = icmp ugt i32 %add13.i268.i.i, %add7.i281.i.i + br i1 %cmp16.not.i282.i.i, label %if.end.i283.i.i, label %if.then17.i270.i.i + +if.then17.i270.i.i: ; preds = %lor.lhs.false.i279.i.i, %if.else.i262.i.i + %exception.i271.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #15 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i260.i.i) #15 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i259.i.i, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i260.i.i) + to label %invoke.cont.i275.i.i unwind label %cleanup.action.i272.i.i + +invoke.cont.i275.i.i: ; preds = %if.then17.i270.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i271.i.i, align 8 + %m_msg.i.i276.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i271.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i276.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i259.i.i) #15 + invoke void @__cxa_throw(ptr nonnull %exception.i271.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #16 + to label %unreachable.i278.i.i unwind label %ehcleanup.i277.i.i + +ehcleanup.i277.i.i: ; preds = %invoke.cont.i275.i.i + %387 = landingpad { ptr, i32 } + cleanup + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i259.i.i) #15 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i260.i.i) #15 + br label %lpad.i.i.body.i.i -lor.lhs.false.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - %arrayidx.i.i.i.i919 = getelementptr inbounds i32, ptr %397, i64 -1 - %398 = load i32, ptr %arrayidx.i.i.i.i919, align 4 - %arrayidx4.i.i.i.i = getelementptr inbounds i32, ptr %397, i64 -2 - %399 = load i32, ptr %arrayidx4.i.i.i.i, align 4 - %cmp5.i.i.i.i = icmp eq i32 %398, %399 - br i1 %cmp5.i.i.i.i, label %if.then.i.i.i.i922, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i - -if.then.i.i.i.i922: ; preds = %lor.lhs.false.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i912) - to label %.noexc.i unwind label %lpad.i923 - -.noexc.i: ; preds = %if.then.i.i.i.i922 - %.pre.i.i.i.i = load ptr, ptr %m_nodes.i.i912, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i, i64 -1 - %.pre1.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i +cleanup.action.i272.i.i: ; preds = %if.then17.i270.i.i + %388 = landingpad { ptr, i32 } + cleanup + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i260.i.i) #15 + call void @__cxa_free_exception(ptr %exception.i271.i.i) #15 + br label %lpad.i.i.body.i.i + +if.end.i283.i.i: ; preds = %lor.lhs.false.i279.i.i + %conv24.i284.i.i = zext i32 %add13.i268.i.i to i64 + %call25.i292.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i.i.i.i, i64 noundef %conv24.i284.i.i) + to label %call25.i.noexc291.i.i unwind label %lpad.i.i.i.i + +call25.i.noexc291.i.i: ; preds = %if.end.i283.i.i + %add.ptr26.i285.i.i = getelementptr inbounds i32, ptr %call25.i292.i.i, i64 2 + store ptr %add.ptr26.i285.i.i, ptr %m_nodes.i.i.i.i.i, align 8 + store i32 %shr.i266.i.i, ptr %call25.i292.i.i, align 4 + br label %.noexc.i.i.i.i + +unreachable.i278.i.i: ; preds = %invoke.cont.i275.i.i + unreachable -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i.i - %400 = phi i32 [ %.pre1.i.i.i.i, %.noexc.i ], [ %398, %lor.lhs.false.i.i.i.i ] - %401 = phi ptr [ %.pre.i.i.i.i, %.noexc.i ], [ %397, %lor.lhs.false.i.i.i.i ] - %idx.ext.i.i.i.i = zext i32 %400 to i64 - %add.ptr.i.i.i.i = getelementptr inbounds ptr, ptr %401, i64 %idx.ext.i.i.i.i - store ptr %395, ptr %add.ptr.i.i.i.i, align 8 - %402 = load ptr, ptr %m_nodes.i.i912, align 8 - %arrayidx10.i.i.i.i = getelementptr inbounds i32, ptr %402, i64 -1 - %403 = load i32, ptr %arrayidx10.i.i.i.i, align 4 - %inc.i.i.i.i920 = add i32 %403, 1 - store i32 %inc.i.i.i.i920, ptr %arrayidx10.i.i.i.i, align 4 - %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 - %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i - br i1 %exitcond.not.i.i, label %if.then40.i.i, label %for.body.i.i913, !llvm.loop !15 - -lpad.i923: ; preds = %if.then.i.i.i.i922 - %404 = landingpad { ptr, i32 } +.noexc.i.i.i.i: ; preds = %call25.i.noexc291.i.i, %call.i.noexc289.i.i + %.pre.i.i.i.i.i.i.i = phi ptr [ %add.ptr26.i285.i.i, %call25.i.noexc291.i.i ], [ %incdec.ptr2.i288.i.i, %call.i.noexc289.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i259.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i260.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i: ; preds = %.noexc.i.i.i.i, %lor.lhs.false.i.i.i.i.i.i.i + %389 = phi i32 [ %.pre1.i.i.i.i.i.i.i, %.noexc.i.i.i.i ], [ %385, %lor.lhs.false.i.i.i.i.i.i.i ] + %390 = phi ptr [ %.pre.i.i.i.i.i.i.i, %.noexc.i.i.i.i ], [ %384, %lor.lhs.false.i.i.i.i.i.i.i ] + %idx.ext.i.i.i.i85.i.i.i = zext i32 %389 to i64 + %add.ptr.i.i.i.i86.i.i.i = getelementptr inbounds ptr, ptr %390, i64 %idx.ext.i.i.i.i85.i.i.i + store ptr %382, ptr %add.ptr.i.i.i.i86.i.i.i, align 8 + %391 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %arrayidx10.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %391, i64 -1 + %392 = load i32, ptr %arrayidx10.i.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i76.i.i = add i32 %392, 1 + store i32 %inc.i.i.i.i.i76.i.i, ptr %arrayidx10.i.i.i.i.i.i.i, align 4 + %indvars.iv.next.i.i.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i.i.i, 1 + %exitcond.not.i.i.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i.i.i, %wide.trip.count.i.i.i.i.i + br i1 %exitcond.not.i.i.i.i.i, label %invoke.cont.loopexit.i.i.i, label %for.body.i.i.i74.i.i, !llvm.loop !15 + +lpad.i.i.i.i: ; preds = %if.end.i283.i.i, %if.then.i286.i.i + %393 = landingpad { ptr, i32 } cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i) #15 - br label %ehcleanup210.i.i - -if.then40.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i, %invoke.cont.i60.i - %add.ptr41.i.i = getelementptr inbounds ptr, ptr %add.ptr.i56.i, i64 1 - %idx.ext42.i.i = zext i32 %380 to i64 - %add.ptr43.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i, i64 %idx.ext42.i.i - br i1 %cmp3.not.i.i928, label %for.end63.i.i, label %for.body47.i.i - -for.body47.i.i: ; preds = %if.then40.i.i, %for.inc61.i.i - %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc61.i.i ], [ 0, %if.then40.i.i ] - %j.0.i.i2892 = phi i32 [ %j.1.i.i, %for.inc61.i.i ], [ 0, %if.then40.i.i ] - %405 = load ptr, ptr %28, align 8 - %arrayidx.i86.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i, i64 %indvars.iv - %406 = load ptr, ptr %arrayidx.i86.i, align 8 - %call50.i87.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %405, ptr noundef %406) - to label %invoke.cont49.i88.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont49.i88.i: ; preds = %for.body47.i.i - br i1 %call50.i87.i, label %invoke.cont56.i.i, label %for.inc61.i.i - -invoke.cont56.i.i: ; preds = %invoke.cont49.i88.i - %407 = load ptr, ptr %arrayidx.i86.i, align 8 - %408 = load ptr, ptr %m_nodes.i.i927, align 8 - %idxprom.i.i908 = zext i32 %j.0.i.i2892 to i64 - %arrayidx.i.i909 = getelementptr inbounds ptr, ptr %408, i64 %idxprom.i.i908 - %409 = load ptr, ptr %new_pats.i.i, align 8 - %inc55.i.i = add i32 %j.0.i.i2892, 1 - %tobool.not.i.i894 = icmp eq ptr %407, null - br i1 %tobool.not.i.i894, label %_ZN11ast_manager7inc_refEP3ast.exit.i898, label %if.then.i.i895 - -if.then.i.i895: ; preds = %invoke.cont56.i.i - %m_ref_count.i.i.i896 = getelementptr inbounds %class.ast, ptr %407, i64 0, i32 2 - %410 = load i32, ptr %m_ref_count.i.i.i896, align 4 - %inc.i.i.i897 = add i32 %410, 1 - store i32 %inc.i.i.i897, ptr %m_ref_count.i.i.i896, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i898 - -_ZN11ast_manager7inc_refEP3ast.exit.i898: ; preds = %if.then.i.i895, %invoke.cont56.i.i - %411 = load ptr, ptr %arrayidx.i.i909, align 8 - %tobool.not.i2.i899 = icmp eq ptr %411, null - br i1 %tobool.not.i2.i899, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit906, label %if.then.i3.i900 - -if.then.i3.i900: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i898 - %m_ref_count.i.i4.i901 = getelementptr inbounds %class.ast, ptr %411, i64 0, i32 2 - %412 = load i32, ptr %m_ref_count.i.i4.i901, align 4 - %dec.i.i.i902 = add i32 %412, -1 - store i32 %dec.i.i.i902, ptr %m_ref_count.i.i4.i901, align 4 - %cmp.i.i903 = icmp eq i32 %dec.i.i.i902, 0 - br i1 %cmp.i.i903, label %if.then2.i.i904, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit906 - -if.then2.i.i904: ; preds = %if.then.i3.i900 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %409, ptr noundef nonnull %411) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit906 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit906: ; preds = %if.then2.i.i904, %_ZN11ast_manager7inc_refEP3ast.exit.i898, %if.then.i3.i900 - store ptr %407, ptr %arrayidx.i.i909, align 8 - br label %for.inc61.i.i - -lpad37.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i657 - %lpad.loopexit2866 = landingpad { ptr, i32 } + br label %lpad.i.i.body.i.i + +lpad.i.i.body.i.i: ; preds = %lpad.i.i.i.i, %cleanup.action.i272.i.i, %ehcleanup.i277.i.i + %eh.lpad-body293.i.i = phi { ptr, i32 } [ %393, %lpad.i.i.i.i ], [ %387, %ehcleanup.i277.i.i ], [ %388, %cleanup.action.i272.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i) #15 + br label %common.resume + +invoke.cont.loopexit.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i + %.pre.i77.i.i = load ptr, ptr %28, align 8 + %.pre491.i.i.i = load i32, ptr %m_num_decls.i.i.i.i, align 4 + %.pre494.i.i.i = zext i32 %.pre491.i.i.i to i64 + %.pre495.i.i.i = ptrtoint ptr %.pre.i77.i.i to i64 + br label %invoke.cont.i78.i.i + +invoke.cont.i78.i.i: ; preds = %invoke.cont.loopexit.i.i.i, %while.end.i66.i.i + %.pre-phi.i.i.i = phi i64 [ %.pre495.i.i.i, %invoke.cont.loopexit.i.i.i ], [ %381, %while.end.i66.i.i ] + %idx.ext.i.i89.pre-phi.i.i.i = phi i64 [ %.pre494.i.i.i, %invoke.cont.loopexit.i.i.i ], [ %idx.ext.i.i.i72.i.i, %while.end.i66.i.i ] + %add.ptr.i.i90.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i, i64 %idx.ext.i.i89.pre-phi.i.i.i + %add.ptr.i91.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i90.i.i.i, i64 %idx.ext.i.i89.pre-phi.i.i.i + store i64 %.pre-phi.i.i.i, ptr %new_no_pats.i.i.i, align 8 + store ptr null, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp3.not.i.i93.i.i.i = icmp eq i32 %378, 0 + br i1 %cmp3.not.i.i93.i.i.i, label %if.then40.i.i.i, label %for.body.lr.ph.i.i94.i.i.i + +for.body.lr.ph.i.i94.i.i.i: ; preds = %invoke.cont.i78.i.i + %wide.trip.count.i.i95.i.i.i = zext i32 %378 to i64 + br label %for.body.i.i96.i.i.i + +for.body.i.i96.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i, %for.body.lr.ph.i.i94.i.i.i + %indvars.iv.i.i97.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i94.i.i.i ], [ %indvars.iv.next.i.i114.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i ] + %arrayidx.i.i98.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i91.i.i.i, i64 %indvars.iv.i.i97.i.i.i + %394 = load ptr, ptr %arrayidx.i.i98.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i99.i.i.i = icmp eq ptr %394, null + br i1 %tobool.not.i.i.i.i.i.i99.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i, label %if.then.i.i.i.i.i.i100.i.i.i + +if.then.i.i.i.i.i.i100.i.i.i: ; preds = %for.body.i.i96.i.i.i + %m_ref_count.i.i.i.i.i.i.i101.i.i.i = getelementptr inbounds %class.ast, ptr %394, i64 0, i32 2 + %395 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i101.i.i.i, align 4 + %inc.i.i.i.i.i.i.i102.i.i.i = add i32 %395, 1 + store i32 %inc.i.i.i.i.i.i.i102.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i101.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i: ; preds = %if.then.i.i.i.i.i.i100.i.i.i, %for.body.i.i96.i.i.i + %396 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i.i104.i.i.i = icmp eq ptr %396, null + br i1 %cmp.i.i.i.i104.i.i.i, label %if.then.i256.i.i, label %lor.lhs.false.i.i.i.i105.i.i.i + +lor.lhs.false.i.i.i.i105.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + %arrayidx.i.i.i.i106.i.i.i = getelementptr inbounds i32, ptr %396, i64 -1 + %397 = load i32, ptr %arrayidx.i.i.i.i106.i.i.i, align 4 + %arrayidx4.i.i.i.i107.i.i.i = getelementptr inbounds i32, ptr %396, i64 -2 + %398 = load i32, ptr %arrayidx4.i.i.i.i107.i.i.i, align 4 + %cmp5.i.i.i.i108.i.i.i = icmp eq i32 %397, %398 + br i1 %cmp5.i.i.i.i108.i.i.i, label %if.else.i249.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i + +if.then.i256.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i103.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %call.i257.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc.i.i unwind label %lpad.i117.i.i.i + +call.i.noexc.i.i: ; preds = %if.then.i256.i.i + store i32 2, ptr %call.i257.i.i, align 4 + %incdec.ptr.i.i.i = getelementptr inbounds i32, ptr %call.i257.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i.i.i, align 4 + %incdec.ptr2.i.i.i = getelementptr inbounds i32, ptr %call.i257.i.i, i64 2 + store ptr %incdec.ptr2.i.i.i, ptr %m_nodes.i.i92.i.i.i, align 8 + br label %.noexc.i118.i.i.i + +if.else.i249.i.i: ; preds = %lor.lhs.false.i.i.i.i105.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %mul9.i.i.i = mul i32 %397, 3 + %add10.i.i.i = add i32 %mul9.i.i.i, 1 + %shr.i.i.i = lshr i32 %add10.i.i.i, 1 + %mul12.i.i.i = shl i32 %shr.i.i.i, 3 + %add13.i.i.i = add i32 %mul12.i.i.i, 8 + %cmp15.not.i.i.i = icmp ugt i32 %shr.i.i.i, %397 + br i1 %cmp15.not.i.i.i, label %lor.lhs.false.i.i.i, label %if.then17.i.i.i + +lor.lhs.false.i.i.i: ; preds = %if.else.i249.i.i + %mul6.i.i.i = shl i32 %397, 3 + %add7.i.i.i = add i32 %mul6.i.i.i, 8 + %cmp16.not.i.i.i = icmp ugt i32 %add13.i.i.i, %add7.i.i.i + br i1 %cmp16.not.i.i.i, label %if.end.i255.i.i, label %if.then17.i.i.i + +if.then17.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.else.i249.i.i + %exception.i.i.i = tail call ptr @__cxa_allocate_exception(i64 40) #15 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #15 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) + to label %invoke.cont.i252.i.i unwind label %cleanup.action.i.i.i + +invoke.cont.i252.i.i: ; preds = %if.then17.i.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i.i, align 8 + %m_msg.i.i253.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i253.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i) #15 + invoke void @__cxa_throw(ptr nonnull %exception.i.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #16 + to label %unreachable.i.i.i unwind label %ehcleanup.i254.i.i + +ehcleanup.i254.i.i: ; preds = %invoke.cont.i252.i.i + %399 = landingpad { ptr, i32 } cleanup - br label %ehcleanup209.i.i + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i) #15 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #15 + br label %lpad.i117.i.body.i.i -lpad37.i.i.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i853 - %lpad.loopexit2872 = landingpad { ptr, i32 } +cleanup.action.i.i.i: ; preds = %if.then17.i.i.i + %400 = landingpad { ptr, i32 } cleanup - br label %ehcleanup209.i.i + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i) #15 + call void @__cxa_free_exception(ptr %exception.i.i.i) #15 + br label %lpad.i117.i.body.i.i + +if.end.i255.i.i: ; preds = %lor.lhs.false.i.i.i + %conv24.i.i.i = zext i32 %add13.i.i.i to i64 + %call25.i258.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i107.i.i.i, i64 noundef %conv24.i.i.i) + to label %call25.i.noexc.i.i unwind label %lpad.i117.i.i.i + +call25.i.noexc.i.i: ; preds = %if.end.i255.i.i + %add.ptr26.i.i.i = getelementptr inbounds i32, ptr %call25.i258.i.i, i64 2 + store ptr %add.ptr26.i.i.i, ptr %m_nodes.i.i92.i.i.i, align 8 + store i32 %shr.i.i.i, ptr %call25.i258.i.i, align 4 + br label %.noexc.i118.i.i.i + +unreachable.i.i.i: ; preds = %invoke.cont.i252.i.i + unreachable -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body68.i.i, %if.then2.i.i - %lpad.loopexit2875 = landingpad { ptr, i32 } +.noexc.i118.i.i.i: ; preds = %call25.i.noexc.i.i, %call.i.noexc.i.i + %.pre.i.i.i.i119.i.i.i = phi ptr [ %add.ptr26.i.i.i, %call25.i.noexc.i.i ], [ %incdec.ptr2.i.i.i, %call.i.noexc.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i120.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i119.i.i.i, i64 -1 + %.pre1.i.i.i.i121.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i120.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i: ; preds = %.noexc.i118.i.i.i, %lor.lhs.false.i.i.i.i105.i.i.i + %401 = phi i32 [ %.pre1.i.i.i.i121.i.i.i, %.noexc.i118.i.i.i ], [ %397, %lor.lhs.false.i.i.i.i105.i.i.i ] + %402 = phi ptr [ %.pre.i.i.i.i119.i.i.i, %.noexc.i118.i.i.i ], [ %396, %lor.lhs.false.i.i.i.i105.i.i.i ] + %idx.ext.i.i.i.i110.i.i.i = zext i32 %401 to i64 + %add.ptr.i.i.i.i111.i.i.i = getelementptr inbounds ptr, ptr %402, i64 %idx.ext.i.i.i.i110.i.i.i + store ptr %394, ptr %add.ptr.i.i.i.i111.i.i.i, align 8 + %403 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %arrayidx10.i.i.i.i112.i.i.i = getelementptr inbounds i32, ptr %403, i64 -1 + %404 = load i32, ptr %arrayidx10.i.i.i.i112.i.i.i, align 4 + %inc.i.i.i.i113.i.i.i = add i32 %404, 1 + store i32 %inc.i.i.i.i113.i.i.i, ptr %arrayidx10.i.i.i.i112.i.i.i, align 4 + %indvars.iv.next.i.i114.i.i.i = add nuw nsw i64 %indvars.iv.i.i97.i.i.i, 1 + %exitcond.not.i.i115.i.i.i = icmp eq i64 %indvars.iv.next.i.i114.i.i.i, %wide.trip.count.i.i95.i.i.i + br i1 %exitcond.not.i.i115.i.i.i, label %if.then40.i.i.i, label %for.body.i.i96.i.i.i, !llvm.loop !15 + +lpad.i117.i.i.i: ; preds = %if.end.i255.i.i, %if.then.i256.i.i + %405 = landingpad { ptr, i32 } + cleanup + br label %lpad.i117.i.body.i.i + +lpad.i117.i.body.i.i: ; preds = %lpad.i117.i.i.i, %cleanup.action.i.i.i, %ehcleanup.i254.i.i + %eh.lpad-body.i.i = phi { ptr, i32 } [ %405, %lpad.i117.i.i.i ], [ %399, %ehcleanup.i254.i.i ], [ %400, %cleanup.action.i.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i) #15 + br label %ehcleanup210.i.i.i + +if.then40.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i109.i.i.i, %invoke.cont.i78.i.i + %add.ptr41.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i71.i.i, i64 1 + %idx.ext42.i.i.i = zext i32 %377 to i64 + %add.ptr43.i.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i, i64 %idx.ext42.i.i.i + br i1 %cmp3.not.i.i.i.i.i, label %for.end63.i.i.i, label %for.body47.i.i.i + +for.body47.i.i.i: ; preds = %if.then40.i.i.i, %for.inc61.i.i.i + %indvars.iv.i.i.i = phi i64 [ %indvars.iv.next.i.i.i, %for.inc61.i.i.i ], [ 0, %if.then40.i.i.i ] + %j.0478.i.i.i = phi i32 [ %j.1.i.i.i, %for.inc61.i.i.i ], [ 0, %if.then40.i.i.i ] + %406 = load ptr, ptr %28, align 8 + %arrayidx.i79.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i, i64 %indvars.iv.i.i.i + %407 = load ptr, ptr %arrayidx.i79.i.i, align 8 + %call50.i80.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %406, ptr noundef %407) + to label %invoke.cont49.i81.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +invoke.cont49.i81.i.i: ; preds = %for.body47.i.i.i + br i1 %call50.i80.i.i, label %invoke.cont56.i.i.i, label %for.inc61.i.i.i + +invoke.cont56.i.i.i: ; preds = %invoke.cont49.i81.i.i + %408 = load ptr, ptr %arrayidx.i79.i.i, align 8 + %409 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %idxprom.i.i124.i.i.i = zext i32 %j.0478.i.i.i to i64 + %arrayidx.i.i125.i.i.i = getelementptr inbounds ptr, ptr %409, i64 %idxprom.i.i124.i.i.i + %410 = load ptr, ptr %new_pats.i.i.i, align 8 + %inc55.i.i.i = add i32 %j.0478.i.i.i, 1 + %tobool.not.i.i.i141.i.i = icmp eq ptr %408, null + br i1 %tobool.not.i.i.i141.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i, label %if.then.i.i.i142.i.i + +if.then.i.i.i142.i.i: ; preds = %invoke.cont56.i.i.i + %m_ref_count.i.i.i.i143.i.i = getelementptr inbounds %class.ast, ptr %408, i64 0, i32 2 + %411 = load i32, ptr %m_ref_count.i.i.i.i143.i.i, align 4 + %inc.i.i.i.i144.i.i = add i32 %411, 1 + store i32 %inc.i.i.i.i144.i.i, ptr %m_ref_count.i.i.i.i143.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i: ; preds = %if.then.i.i.i142.i.i, %invoke.cont56.i.i.i + %412 = load ptr, ptr %arrayidx.i.i125.i.i.i, align 8 + %tobool.not.i2.i.i.i.i = icmp eq ptr %412, null + br i1 %tobool.not.i2.i.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i, label %if.then.i3.i.i.i.i + +if.then.i3.i.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + %m_ref_count.i.i4.i.i.i.i = getelementptr inbounds %class.ast, ptr %412, i64 0, i32 2 + %413 = load i32, ptr %m_ref_count.i.i4.i.i.i.i, align 4 + %dec.i.i.i.i.i99.i = add i32 %413, -1 + store i32 %dec.i.i.i.i.i99.i, ptr %m_ref_count.i.i4.i.i.i.i, align 4 + %cmp.i.i.i145.i.i = icmp eq i32 %dec.i.i.i.i.i99.i, 0 + br i1 %cmp.i.i.i145.i.i, label %if.then2.i.i.i.i100.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i + +if.then2.i.i.i.i100.i: ; preds = %if.then.i3.i.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %410, ptr noundef nonnull %412) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i100.i, %if.then.i3.i.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i + store ptr %408, ptr %arrayidx.i.i125.i.i.i, align 8 + br label %for.inc61.i.i.i + +lpad37.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i351.i.i.i + %lpad.loopexit.i123.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup209.i.i + br label %ehcleanup209.i.i.i -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i890 - %lpad.loopexit2878 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i179.i.i.i + %lpad.loopexit463.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup209.i.i + br label %ehcleanup209.i.i.i -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body47.i.i, %if.then2.i.i904 - %lpad.loopexit2881 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i153.i.i.i, %for.body68.i.i.i + %lpad.loopexit466.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup209.i.i + br label %ehcleanup209.i.i.i -lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.end88.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit, %if.then2.i.i.i592, %if.then2.i.i.i601, %if.then.i605, %if.then.i.i631 - %lpad.loopexit.split-lp2882 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i140.i.i + %lpad.loopexit468.i.i.i = landingpad { ptr, i32 } cleanup - br label %ehcleanup209.i.i + br label %ehcleanup209.i.i.i -for.inc61.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit906, %invoke.cont49.i88.i - %j.1.i.i = phi i32 [ %inc55.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit906 ], [ %j.0.i.i2892, %invoke.cont49.i88.i ] - %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond2913.not = icmp eq i64 %indvars.iv.next, %idx.ext42.i.i - br i1 %exitcond2913.not, label %for.end63.i.i, label %for.body47.i.i, !llvm.loop !16 - -for.end63.i.i: ; preds = %for.inc61.i.i, %if.then40.i.i - %j.0.i.i.lcssa = phi i32 [ 0, %if.then40.i.i ], [ %j.1.i.i, %for.inc61.i.i ] - %413 = load ptr, ptr %m_nodes.i.i927, align 8 - %cmp.i.i.i868 = icmp eq ptr %413, null - br i1 %cmp.i.i.i868, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit892, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i869 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i869: ; preds = %for.end63.i.i - %arrayidx.i.i.i872 = getelementptr inbounds i32, ptr %413, i64 -1 - %414 = load i32, ptr %arrayidx.i.i.i872, align 4 - %415 = zext i32 %414 to i64 - %add.ptr.i.i873 = getelementptr inbounds ptr, ptr %413, i64 %415 - %cmp3.i.i874 = icmp ugt i32 %414, %j.0.i.i.lcssa - br i1 %cmp3.i.i874, label %for.body.i.i877.preheader, label %if.then.i.i875 - -for.body.i.i877.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i869 - %idx.ext.i870 = zext i32 %j.0.i.i.lcssa to i64 - %add.ptr.i871 = getelementptr inbounds ptr, ptr %413, i64 %idx.ext.i870 - br label %for.body.i.i877 - -for.body.i.i877: ; preds = %for.body.i.i877.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i884 - %it.04.i.i878 = phi ptr [ %incdec.ptr.i.i885, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i884 ], [ %add.ptr.i871, %for.body.i.i877.preheader ] - %416 = load ptr, ptr %it.04.i.i878, align 8 - %417 = load ptr, ptr %new_pats.i.i, align 8 - %tobool.not.i.i.i.i.i879 = icmp eq ptr %416, null - br i1 %tobool.not.i.i.i.i.i879, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i884, label %if.then.i.i.i.i.i880 - -if.then.i.i.i.i.i880: ; preds = %for.body.i.i877 - %m_ref_count.i.i.i.i.i.i881 = getelementptr inbounds %class.ast, ptr %416, i64 0, i32 2 - %418 = load i32, ptr %m_ref_count.i.i.i.i.i.i881, align 4 - %dec.i.i.i.i.i.i882 = add i32 %418, -1 - store i32 %dec.i.i.i.i.i.i882, ptr %m_ref_count.i.i.i.i.i.i881, align 4 - %cmp.i.i.i.i.i883 = icmp eq i32 %dec.i.i.i.i.i.i882, 0 - br i1 %cmp.i.i.i.i.i883, label %if.then2.i.i.i.i.i890, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i884 - -if.then2.i.i.i.i.i890: ; preds = %if.then.i.i.i.i.i880 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %417, ptr noundef nonnull %416) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i884 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i884: ; preds = %if.then2.i.i.i.i.i890, %if.then.i.i.i.i.i880, %for.body.i.i877 - %incdec.ptr.i.i885 = getelementptr inbounds ptr, ptr %it.04.i.i878, i64 1 - %cmp.i.i886 = icmp ult ptr %incdec.ptr.i.i885, %add.ptr.i.i873 - br i1 %cmp.i.i886, label %for.body.i.i877, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i887, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i887: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i884 - %.pre.i888 = load ptr, ptr %m_nodes.i.i927, align 8 - %tobool.not.i.i889 = icmp eq ptr %.pre.i888, null - br i1 %tobool.not.i.i889, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit892, label %if.then.i.i875 - -if.then.i.i875: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i887, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i869 - %419 = phi ptr [ %.pre.i888, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i887 ], [ %413, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i869 ] - %arrayidx.i.i876 = getelementptr inbounds i32, ptr %419, i64 -1 - store i32 %j.0.i.i.lcssa, ptr %arrayidx.i.i876, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit892 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit892: ; preds = %for.end63.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i887, %if.then.i.i875 - br i1 %cmp3.not.i.i, label %for.end86.i.i, label %for.body68.i.i.preheader - -for.body68.i.i.preheader: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit892 - %wide.trip.count2917 = zext i32 %381 to i64 - br label %for.body68.i.i - -for.body68.i.i: ; preds = %for.body68.i.i.preheader, %for.inc84.i.i - %indvars.iv2914 = phi i64 [ 0, %for.body68.i.i.preheader ], [ %indvars.iv.next2915, %for.inc84.i.i ] - %j.2.i.i2895 = phi i32 [ 0, %for.body68.i.i.preheader ], [ %j.3.i.i, %for.inc84.i.i ] - %420 = load ptr, ptr %28, align 8 - %arrayidx71.i.i = getelementptr inbounds ptr, ptr %add.ptr43.i.i, i64 %indvars.iv2914 - %421 = load ptr, ptr %arrayidx71.i.i, align 8 - %call73.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %420, ptr noundef %421) - to label %invoke.cont72.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont72.i.i: ; preds = %for.body68.i.i - br i1 %call73.i.i, label %invoke.cont79.i.i, label %for.inc84.i.i - -invoke.cont79.i.i: ; preds = %invoke.cont72.i.i - %422 = load ptr, ptr %arrayidx71.i.i, align 8 - %423 = load ptr, ptr %m_nodes.i.i912, align 8 - %idxprom.i.i865 = zext i32 %j.2.i.i2895 to i64 - %arrayidx.i.i866 = getelementptr inbounds ptr, ptr %423, i64 %idxprom.i.i865 - %424 = load ptr, ptr %new_no_pats.i.i, align 8 - %inc78.i.i = add i32 %j.2.i.i2895, 1 - %tobool.not.i.i857 = icmp eq ptr %422, null - br i1 %tobool.not.i.i857, label %_ZN11ast_manager7inc_refEP3ast.exit.i861, label %if.then.i.i858 - -if.then.i.i858: ; preds = %invoke.cont79.i.i - %m_ref_count.i.i.i859 = getelementptr inbounds %class.ast, ptr %422, i64 0, i32 2 - %425 = load i32, ptr %m_ref_count.i.i.i859, align 4 - %inc.i.i.i860 = add i32 %425, 1 - store i32 %inc.i.i.i860, ptr %m_ref_count.i.i.i859, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i861 - -_ZN11ast_manager7inc_refEP3ast.exit.i861: ; preds = %if.then.i.i858, %invoke.cont79.i.i - %426 = load ptr, ptr %arrayidx.i.i866, align 8 - %tobool.not.i2.i = icmp eq ptr %426, null - br i1 %tobool.not.i2.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit, label %if.then.i3.i - -if.then.i3.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i861 - %m_ref_count.i.i4.i = getelementptr inbounds %class.ast, ptr %426, i64 0, i32 2 - %427 = load i32, ptr %m_ref_count.i.i4.i, align 4 - %dec.i.i.i = add i32 %427, -1 - store i32 %dec.i.i.i, ptr %m_ref_count.i.i4.i, align 4 - %cmp.i.i862 = icmp eq i32 %dec.i.i.i, 0 - br i1 %cmp.i.i862, label %if.then2.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i100.i, %for.body47.i.i.i + %lpad.loopexit471.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup209.i.i.i -if.then2.i.i: ; preds = %if.then.i3.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %424, ptr noundef nonnull %426) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit: ; preds = %if.then2.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i861, %if.then.i3.i - store ptr %422, ptr %arrayidx.i.i866, align 8 - br label %for.inc84.i.i - -for.inc84.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit, %invoke.cont72.i.i - %j.3.i.i = phi i32 [ %inc78.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit ], [ %j.2.i.i2895, %invoke.cont72.i.i ] - %indvars.iv.next2915 = add nuw nsw i64 %indvars.iv2914, 1 - %exitcond2918.not = icmp eq i64 %indvars.iv.next2915, %wide.trip.count2917 - br i1 %exitcond2918.not, label %for.end86.i.i, label %for.body68.i.i, !llvm.loop !17 - -for.end86.i.i: ; preds = %for.inc84.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit892 - %j.2.i.i.lcssa = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit892 ], [ %j.3.i.i, %for.inc84.i.i ] - %428 = load ptr, ptr %m_nodes.i.i912, align 8 - %cmp.i.i.i831 = icmp eq ptr %428, null - br i1 %cmp.i.i.i831, label %if.end88.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i832 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i832: ; preds = %for.end86.i.i - %arrayidx.i.i.i835 = getelementptr inbounds i32, ptr %428, i64 -1 - %429 = load i32, ptr %arrayidx.i.i.i835, align 4 - %430 = zext i32 %429 to i64 - %add.ptr.i.i836 = getelementptr inbounds ptr, ptr %428, i64 %430 - %cmp3.i.i837 = icmp ugt i32 %429, %j.2.i.i.lcssa - br i1 %cmp3.i.i837, label %for.body.i.i840.preheader, label %if.then.i.i838 - -for.body.i.i840.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i832 - %idx.ext.i833 = zext i32 %j.2.i.i.lcssa to i64 - %add.ptr.i834 = getelementptr inbounds ptr, ptr %428, i64 %idx.ext.i833 - br label %for.body.i.i840 - -for.body.i.i840: ; preds = %for.body.i.i840.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i847 - %it.04.i.i841 = phi ptr [ %incdec.ptr.i.i848, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i847 ], [ %add.ptr.i834, %for.body.i.i840.preheader ] - %431 = load ptr, ptr %it.04.i.i841, align 8 - %432 = load ptr, ptr %new_no_pats.i.i, align 8 - %tobool.not.i.i.i.i.i842 = icmp eq ptr %431, null - br i1 %tobool.not.i.i.i.i.i842, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i847, label %if.then.i.i.i.i.i843 - -if.then.i.i.i.i.i843: ; preds = %for.body.i.i840 - %m_ref_count.i.i.i.i.i.i844 = getelementptr inbounds %class.ast, ptr %431, i64 0, i32 2 - %433 = load i32, ptr %m_ref_count.i.i.i.i.i.i844, align 4 - %dec.i.i.i.i.i.i845 = add i32 %433, -1 - store i32 %dec.i.i.i.i.i.i845, ptr %m_ref_count.i.i.i.i.i.i844, align 4 - %cmp.i.i.i.i.i846 = icmp eq i32 %dec.i.i.i.i.i.i845, 0 - br i1 %cmp.i.i.i.i.i846, label %if.then2.i.i.i.i.i853, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i847 - -if.then2.i.i.i.i.i853: ; preds = %if.then.i.i.i.i.i843 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %432, ptr noundef nonnull %431) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i847 unwind label %lpad37.i.i.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i847: ; preds = %if.then2.i.i.i.i.i853, %if.then.i.i.i.i.i843, %for.body.i.i840 - %incdec.ptr.i.i848 = getelementptr inbounds ptr, ptr %it.04.i.i841, i64 1 - %cmp.i.i849 = icmp ult ptr %incdec.ptr.i.i848, %add.ptr.i.i836 - br i1 %cmp.i.i849, label %for.body.i.i840, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i850, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i850: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i847 - %.pre.i851 = load ptr, ptr %m_nodes.i.i912, align 8 - %tobool.not.i.i852 = icmp eq ptr %.pre.i851, null - br i1 %tobool.not.i.i852, label %if.end88.i.i, label %if.then.i.i838 - -if.then.i.i838: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i850, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i832 - %434 = phi ptr [ %.pre.i851, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i850 ], [ %428, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i832 ] - %arrayidx.i.i839 = getelementptr inbounds i32, ptr %434, i64 -1 - store i32 %j.2.i.i.lcssa, ptr %arrayidx.i.i839, align 4 - %.pre2931 = load ptr, ptr %m_nodes.i.i912, align 8 - br label %if.end88.i.i - -if.end88.i.i: ; preds = %if.then.i.i838, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i850, %for.end86.i.i - %435 = phi ptr [ %.pre2931, %if.then.i.i838 ], [ null, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i850 ], [ null, %for.end86.i.i ] - %this.val58.i61.i = load ptr, ptr %28, align 8 - %436 = load ptr, ptr %m_nodes.i.i927, align 8 - %call93.i63.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i61.i, ptr noundef nonnull %87, i32 noundef %j.0.i.i.lcssa, ptr noundef %436, i32 noundef %j.2.i.i.lcssa, ptr noundef %435, ptr noundef %379) - to label %invoke.cont92.i64.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont92.i64.i: ; preds = %if.end88.i.i - %this.val57.i65.i = load ptr, ptr %28, align 8 - store ptr %call93.i63.i, ptr %new_q.i.i, align 8 - store ptr %this.val57.i65.i, ptr %m_manager.i823, align 8 - %tobool.not.i.i824 = icmp eq ptr %call93.i63.i, null - br i1 %tobool.not.i.i824, label %invoke.cont95.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i825 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i825: ; preds = %invoke.cont92.i64.i - %m_ref_count.i.i.i.i826 = getelementptr inbounds %class.ast, ptr %call93.i63.i, i64 0, i32 2 - %437 = load i32, ptr %m_ref_count.i.i.i.i826, align 4 - %inc.i.i.i.i827 = add i32 %437, 1 - store i32 %inc.i.i.i.i827, ptr %m_ref_count.i.i.i.i826, align 4 - br label %invoke.cont95.i.i - -invoke.cont95.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i825, %invoke.cont92.i64.i - %438 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i814 = icmp eq ptr %438, null - br i1 %tobool.not.i3.i814, label %invoke.cont97.i70.i, label %if.then.i.i.i815 - -if.then.i.i.i815: ; preds = %invoke.cont95.i.i - %439 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i817 = getelementptr inbounds %class.ast, ptr %438, i64 0, i32 2 - %440 = load i32, ptr %m_ref_count.i.i.i.i817, align 4 - %dec.i.i.i.i818 = add i32 %440, -1 - store i32 %dec.i.i.i.i818, ptr %m_ref_count.i.i.i.i817, align 4 - %cmp.i.i.i819 = icmp eq i32 %dec.i.i.i.i818, 0 - br i1 %cmp.i.i.i819, label %if.then2.i.i.i820, label %invoke.cont97.i70.i - -if.then2.i.i.i820: ; preds = %if.then.i.i.i815 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %439, ptr noundef nonnull %438) - to label %invoke.cont97.i70.i unwind label %lpad96.i.i - -invoke.cont97.i70.i: ; preds = %if.then.i.i.i815, %invoke.cont95.i.i, %if.then2.i.i.i820 - store ptr null, ptr %m_pr.i67.i, align 8 - %cmp101.not.i.i = icmp eq ptr %call93.i63.i, %87 - br i1 %cmp101.not.i.i, label %if.end140.i.i, label %if.then102.i.i - -if.then102.i.i: ; preds = %invoke.cont97.i70.i - %441 = load i32, ptr %m_spos.i54.i, align 4 - %442 = load ptr, ptr %m_nodes.i30.i, align 8 - %idxprom.i.i810 = zext i32 %441 to i64 - %arrayidx.i.i811 = getelementptr inbounds ptr, ptr %442, i64 %idxprom.i.i810 - %443 = load ptr, ptr %arrayidx.i.i811, align 8 - %tobool.not.i795 = icmp eq ptr %443, null - br i1 %tobool.not.i795, label %if.else.i72.i, label %if.end.i799 - -if.end.i799: ; preds = %if.then102.i.i - %m_ref_count.i.i.i797 = getelementptr inbounds %class.ast, ptr %443, i64 0, i32 2 - %444 = load i32, ptr %m_ref_count.i.i.i797, align 4 - %inc.i.i.i798 = add i32 %444, 1 - store i32 %inc.i.i.i798, ptr %m_ref_count.i.i.i797, align 4 - %.pre2932 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i800 = icmp eq ptr %.pre2932, null - br i1 %tobool.not.i3.i800, label %if.then112.i.i, label %if.then.i.i.i801 - -if.then.i.i.i801: ; preds = %if.end.i799 - %445 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i803 = getelementptr inbounds %class.ast, ptr %.pre2932, i64 0, i32 2 - %446 = load i32, ptr %m_ref_count.i.i.i.i803, align 4 - %dec.i.i.i.i804 = add i32 %446, -1 - store i32 %dec.i.i.i.i804, ptr %m_ref_count.i.i.i.i803, align 4 - %cmp.i.i.i805 = icmp eq i32 %dec.i.i.i.i804, 0 - br i1 %cmp.i.i.i805, label %if.then2.i.i.i806, label %if.then112.i.i - -if.then2.i.i.i806: ; preds = %if.then.i.i.i801 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %445, ptr noundef nonnull %.pre2932) - to label %if.then112.i.i unwind label %lpad96.i.i - -if.then112.i.i: ; preds = %if.then.i.i.i801, %if.end.i799, %if.then2.i.i.i806 - store ptr %443, ptr %m_pr.i67.i, align 8 - %this.val56.i82.i = load ptr, ptr %28, align 8 - %call117.i.i = invoke noundef ptr @_ZN11ast_manager13mk_bind_proofEP10quantifierP3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i82.i, ptr noundef nonnull %87, ptr noundef nonnull %443) - to label %invoke.cont116.i.i unwind label %lpad96.i.i - -invoke.cont116.i.i: ; preds = %if.then112.i.i - %tobool.not.i780 = icmp eq ptr %call117.i.i, null - br i1 %tobool.not.i780, label %if.end.i784, label %_ZN11ast_manager7inc_refEP3ast.exit.i781 - -_ZN11ast_manager7inc_refEP3ast.exit.i781: ; preds = %invoke.cont116.i.i - %m_ref_count.i.i.i782 = getelementptr inbounds %class.ast, ptr %call117.i.i, i64 0, i32 2 - %447 = load i32, ptr %m_ref_count.i.i.i782, align 4 - %inc.i.i.i783 = add i32 %447, 1 - store i32 %inc.i.i.i783, ptr %m_ref_count.i.i.i782, align 4 - br label %if.end.i784 - -if.end.i784: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i781, %invoke.cont116.i.i - %448 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i785 = icmp eq ptr %448, null - br i1 %tobool.not.i3.i785, label %invoke.cont119.i.i, label %if.then.i.i.i786 - -if.then.i.i.i786: ; preds = %if.end.i784 - %449 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i788 = getelementptr inbounds %class.ast, ptr %448, i64 0, i32 2 - %450 = load i32, ptr %m_ref_count.i.i.i.i788, align 4 - %dec.i.i.i.i789 = add i32 %450, -1 - store i32 %dec.i.i.i.i789, ptr %m_ref_count.i.i.i.i788, align 4 - %cmp.i.i.i790 = icmp eq i32 %dec.i.i.i.i789, 0 - br i1 %cmp.i.i.i790, label %if.then2.i.i.i791, label %invoke.cont119.i.i - -if.then2.i.i.i791: ; preds = %if.then.i.i.i786 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %449, ptr noundef nonnull %448) - to label %invoke.cont119.i.i unwind label %lpad96.i.i - -invoke.cont119.i.i: ; preds = %if.then.i.i.i786, %if.end.i784, %if.then2.i.i.i791 - store ptr %call117.i.i, ptr %m_pr.i67.i, align 8 - %this.val55.i84.i = load ptr, ptr %28, align 8 - %call127.i.i = invoke noundef ptr @_ZN11ast_manager14mk_quant_introEP10quantifierS1_P3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i84.i, ptr noundef nonnull %87, ptr noundef %call93.i63.i, ptr noundef %call117.i.i) - to label %invoke.cont126.i.i unwind label %lpad96.i.i - -invoke.cont126.i.i: ; preds = %invoke.cont119.i.i - %tobool.not.i766 = icmp eq ptr %call127.i.i, null - br i1 %tobool.not.i766, label %if.end.i770, label %_ZN11ast_manager7inc_refEP3ast.exit.i767 - -_ZN11ast_manager7inc_refEP3ast.exit.i767: ; preds = %invoke.cont126.i.i - %m_ref_count.i.i.i768 = getelementptr inbounds %class.ast, ptr %call127.i.i, i64 0, i32 2 - %451 = load i32, ptr %m_ref_count.i.i.i768, align 4 - %inc.i.i.i769 = add i32 %451, 1 - store i32 %inc.i.i.i769, ptr %m_ref_count.i.i.i768, align 4 - br label %if.end.i770 - -if.end.i770: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i767, %invoke.cont126.i.i - %452 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i771 = icmp eq ptr %452, null - br i1 %tobool.not.i3.i771, label %if.end140.i.ithread-pre-split, label %if.then.i.i.i772 - -if.then.i.i.i772: ; preds = %if.end.i770 - %453 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i774 = getelementptr inbounds %class.ast, ptr %452, i64 0, i32 2 - %454 = load i32, ptr %m_ref_count.i.i.i.i774, align 4 - %dec.i.i.i.i775 = add i32 %454, -1 - store i32 %dec.i.i.i.i775, ptr %m_ref_count.i.i.i.i774, align 4 - %cmp.i.i.i776 = icmp eq i32 %dec.i.i.i.i775, 0 - br i1 %cmp.i.i.i776, label %if.then2.i.i.i777, label %if.end140.i.ithread-pre-split - -if.then2.i.i.i777: ; preds = %if.then.i.i.i772 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %453, ptr noundef nonnull %452) - to label %if.end140.i.ithread-pre-split unwind label %lpad96.i.i - -lpad96.i.i: ; preds = %if.then2.i.i.i820, %if.then2.i.i.i806, %if.then2.i.i.i791, %if.then2.i.i.i777, %if.then2.i.i.i763, %if.then2.i.i.i749, %if.else.i72.i, %invoke.cont119.i.i, %if.then112.i.i - %455 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %if.then2.i.i.i411.i.i.i, %if.then2.i.i.i401.i.i.i, %if.then.i392.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i, %if.then.i.i369.i.i.i, %if.end88.i.i.i + %lpad.loopexit.split-lp.i.i.i = landingpad { ptr, i32 } + cleanup + br label %ehcleanup209.i.i.i + +for.inc61.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i, %invoke.cont49.i81.i.i + %j.1.i.i.i = phi i32 [ %inc55.i.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i ], [ %j.0478.i.i.i, %invoke.cont49.i81.i.i ] + %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 + %exitcond485.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %idx.ext42.i.i.i + br i1 %exitcond485.not.i.i.i, label %for.end63.i.i.i, label %for.body47.i.i.i, !llvm.loop !16 + +for.end63.i.i.i: ; preds = %for.inc61.i.i.i, %if.then40.i.i.i + %j.0.lcssa.i.i.i = phi i32 [ 0, %if.then40.i.i.i ], [ %j.1.i.i.i, %for.inc61.i.i.i ] + %414 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i.i = icmp eq ptr %414, null + br i1 %cmp.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i: ; preds = %for.end63.i.i.i + %arrayidx.i.i.i.i83.i.i = getelementptr inbounds i32, ptr %414, i64 -1 + %415 = load i32, ptr %arrayidx.i.i.i.i83.i.i, align 4 + %416 = zext i32 %415 to i64 + %add.ptr.i.i129.i.i.i = getelementptr inbounds ptr, ptr %414, i64 %416 + %cmp3.i.i.i84.i.i = icmp ugt i32 %415, %j.0.lcssa.i.i.i + br i1 %cmp3.i.i.i84.i.i, label %for.body.i.i132.preheader.i.i.i, label %if.then.i.i130.i.i.i + +for.body.i.i132.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i + %idx.ext.i127.i.i.i = zext i32 %j.0.lcssa.i.i.i to i64 + %add.ptr.i128.i.i.i = getelementptr inbounds ptr, ptr %414, i64 %idx.ext.i127.i.i.i + br label %for.body.i.i132.i.i.i + +for.body.i.i132.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i137.i.i, %for.body.i.i132.preheader.i.i.i + %it.04.i.i.i131.i.i = phi ptr [ %incdec.ptr.i.i.i138.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i137.i.i ], [ %add.ptr.i128.i.i.i, %for.body.i.i132.preheader.i.i.i ] + %417 = load ptr, ptr %it.04.i.i.i131.i.i, align 8 + %418 = load ptr, ptr %new_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i132.i.i = icmp eq ptr %417, null + br i1 %tobool.not.i.i.i.i.i.i132.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i137.i.i, label %if.then.i.i.i.i.i.i133.i.i + +if.then.i.i.i.i.i.i133.i.i: ; preds = %for.body.i.i132.i.i.i + %m_ref_count.i.i.i.i.i.i.i134.i.i = getelementptr inbounds %class.ast, ptr %417, i64 0, i32 2 + %419 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i134.i.i, align 4 + %dec.i.i.i.i.i.i.i135.i.i = add i32 %419, -1 + store i32 %dec.i.i.i.i.i.i.i135.i.i, ptr %m_ref_count.i.i.i.i.i.i.i134.i.i, align 4 + %cmp.i.i.i.i.i.i136.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i135.i.i, 0 + br i1 %cmp.i.i.i.i.i.i136.i.i, label %if.then2.i.i.i.i.i.i140.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i137.i.i + +if.then2.i.i.i.i.i.i140.i.i: ; preds = %if.then.i.i.i.i.i.i133.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %418, ptr noundef nonnull %417) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i137.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i137.i.i: ; preds = %if.then2.i.i.i.i.i.i140.i.i, %if.then.i.i.i.i.i.i133.i.i, %for.body.i.i132.i.i.i + %incdec.ptr.i.i.i138.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i131.i.i, i64 1 + %cmp.i.i133.i.i.i = icmp ult ptr %incdec.ptr.i.i.i138.i.i, %add.ptr.i.i129.i.i.i + br i1 %cmp.i.i133.i.i.i, label %for.body.i.i132.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i139.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i139.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i137.i.i + %.pre.i134.i.i.i = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %tobool.not.i.i135.i.i.i = icmp eq ptr %.pre.i134.i.i.i, null + br i1 %tobool.not.i.i135.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i, label %if.then.i.i130.i.i.i + +if.then.i.i130.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i139.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i + %420 = phi ptr [ %.pre.i134.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i139.i.i ], [ %414, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i82.i.i ] + %arrayidx.i.i131.i.i.i = getelementptr inbounds i32, ptr %420, i64 -1 + store i32 %j.0.lcssa.i.i.i, ptr %arrayidx.i.i131.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i: ; preds = %if.then.i.i130.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i139.i.i, %for.end63.i.i.i + br i1 %cmp3.not.i.i93.i.i.i, label %for.end86.i.i.i, label %for.body68.preheader.i.i.i + +for.body68.preheader.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + %wide.trip.count489.i.i.i = zext i32 %378 to i64 + br label %for.body68.i.i.i + +for.body68.i.i.i: ; preds = %for.inc84.i.i.i, %for.body68.preheader.i.i.i + %indvars.iv486.i.i.i = phi i64 [ 0, %for.body68.preheader.i.i.i ], [ %indvars.iv.next487.i.i.i, %for.inc84.i.i.i ] + %j.2481.i.i.i = phi i32 [ 0, %for.body68.preheader.i.i.i ], [ %j.3.i.i.i, %for.inc84.i.i.i ] + %421 = load ptr, ptr %28, align 8 + %arrayidx71.i.i.i = getelementptr inbounds ptr, ptr %add.ptr43.i.i.i, i64 %indvars.iv486.i.i.i + %422 = load ptr, ptr %arrayidx71.i.i.i, align 8 + %call73.i.i.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %421, ptr noundef %422) + to label %invoke.cont72.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +invoke.cont72.i.i.i: ; preds = %for.body68.i.i.i + br i1 %call73.i.i.i, label %invoke.cont79.i.i.i, label %for.inc84.i.i.i + +invoke.cont79.i.i.i: ; preds = %invoke.cont72.i.i.i + %423 = load ptr, ptr %arrayidx71.i.i.i, align 8 + %424 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %idxprom.i.i138.i.i.i = zext i32 %j.2481.i.i.i to i64 + %arrayidx.i.i139.i.i.i = getelementptr inbounds ptr, ptr %424, i64 %idxprom.i.i138.i.i.i + %425 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %inc78.i.i.i = add i32 %j.2481.i.i.i, 1 + %tobool.not.i.i143.i.i.i = icmp eq ptr %423, null + br i1 %tobool.not.i.i143.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i, label %if.then.i.i144.i.i.i + +if.then.i.i144.i.i.i: ; preds = %invoke.cont79.i.i.i + %m_ref_count.i.i.i145.i.i.i = getelementptr inbounds %class.ast, ptr %423, i64 0, i32 2 + %426 = load i32, ptr %m_ref_count.i.i.i145.i.i.i, align 4 + %inc.i.i.i146.i.i.i = add i32 %426, 1 + store i32 %inc.i.i.i146.i.i.i, ptr %m_ref_count.i.i.i145.i.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i: ; preds = %if.then.i.i144.i.i.i, %invoke.cont79.i.i.i + %427 = load ptr, ptr %arrayidx.i.i139.i.i.i, align 8 + %tobool.not.i2.i148.i.i.i = icmp eq ptr %427, null + br i1 %tobool.not.i2.i148.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i, label %if.then.i3.i149.i.i.i + +if.then.i3.i149.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + %m_ref_count.i.i4.i150.i.i.i = getelementptr inbounds %class.ast, ptr %427, i64 0, i32 2 + %428 = load i32, ptr %m_ref_count.i.i4.i150.i.i.i, align 4 + %dec.i.i.i151.i.i.i = add i32 %428, -1 + store i32 %dec.i.i.i151.i.i.i, ptr %m_ref_count.i.i4.i150.i.i.i, align 4 + %cmp.i.i152.i.i.i = icmp eq i32 %dec.i.i.i151.i.i.i, 0 + br i1 %cmp.i.i152.i.i.i, label %if.then2.i.i153.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i + +if.then2.i.i153.i.i.i: ; preds = %if.then.i3.i149.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %425, ptr noundef nonnull %427) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i: ; preds = %if.then2.i.i153.i.i.i, %if.then.i3.i149.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i147.i.i.i + store ptr %423, ptr %arrayidx.i.i139.i.i.i, align 8 + br label %for.inc84.i.i.i + +for.inc84.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i, %invoke.cont72.i.i.i + %j.3.i.i.i = phi i32 [ %inc78.i.i.i, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit155.i.i.i ], [ %j.2481.i.i.i, %invoke.cont72.i.i.i ] + %indvars.iv.next487.i.i.i = add nuw nsw i64 %indvars.iv486.i.i.i, 1 + %exitcond490.not.i.i.i = icmp eq i64 %indvars.iv.next487.i.i.i, %wide.trip.count489.i.i.i + br i1 %exitcond490.not.i.i.i, label %for.end86.i.i.i, label %for.body68.i.i.i, !llvm.loop !17 + +for.end86.i.i.i: ; preds = %for.inc84.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i + %j.2.lcssa.i.i.i = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i ], [ %j.3.i.i.i, %for.inc84.i.i.i ] + %429 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i157.i.i.i = icmp eq ptr %429, null + br i1 %cmp.i.i.i157.i.i.i, label %if.end88.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i: ; preds = %for.end86.i.i.i + %arrayidx.i.i.i161.i.i.i = getelementptr inbounds i32, ptr %429, i64 -1 + %430 = load i32, ptr %arrayidx.i.i.i161.i.i.i, align 4 + %431 = zext i32 %430 to i64 + %add.ptr.i.i162.i.i.i = getelementptr inbounds ptr, ptr %429, i64 %431 + %cmp3.i.i163.i.i.i = icmp ugt i32 %430, %j.2.lcssa.i.i.i + br i1 %cmp3.i.i163.i.i.i, label %for.body.i.i166.preheader.i.i.i, label %if.then.i.i164.i.i.i + +for.body.i.i166.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + %idx.ext.i159.i.i.i = zext i32 %j.2.lcssa.i.i.i to i64 + %add.ptr.i160.i.i.i = getelementptr inbounds ptr, ptr %429, i64 %idx.ext.i159.i.i.i + br label %for.body.i.i166.i.i.i + +for.body.i.i166.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i, %for.body.i.i166.preheader.i.i.i + %it.04.i.i167.i.i.i = phi ptr [ %incdec.ptr.i.i174.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i ], [ %add.ptr.i160.i.i.i, %for.body.i.i166.preheader.i.i.i ] + %432 = load ptr, ptr %it.04.i.i167.i.i.i, align 8 + %433 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i168.i.i.i = icmp eq ptr %432, null + br i1 %tobool.not.i.i.i.i.i168.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i, label %if.then.i.i.i.i.i169.i.i.i + +if.then.i.i.i.i.i169.i.i.i: ; preds = %for.body.i.i166.i.i.i + %m_ref_count.i.i.i.i.i.i170.i.i.i = getelementptr inbounds %class.ast, ptr %432, i64 0, i32 2 + %434 = load i32, ptr %m_ref_count.i.i.i.i.i.i170.i.i.i, align 4 + %dec.i.i.i.i.i.i171.i.i.i = add i32 %434, -1 + store i32 %dec.i.i.i.i.i.i171.i.i.i, ptr %m_ref_count.i.i.i.i.i.i170.i.i.i, align 4 + %cmp.i.i.i.i.i172.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i171.i.i.i, 0 + br i1 %cmp.i.i.i.i.i172.i.i.i, label %if.then2.i.i.i.i.i179.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i + +if.then2.i.i.i.i.i179.i.i.i: ; preds = %if.then.i.i.i.i.i169.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %433, ptr noundef nonnull %432) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i: ; preds = %if.then2.i.i.i.i.i179.i.i.i, %if.then.i.i.i.i.i169.i.i.i, %for.body.i.i166.i.i.i + %incdec.ptr.i.i174.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i167.i.i.i, i64 1 + %cmp.i.i175.i.i.i = icmp ult ptr %incdec.ptr.i.i174.i.i.i, %add.ptr.i.i162.i.i.i + br i1 %cmp.i.i175.i.i.i, label %for.body.i.i166.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i173.i.i.i + %.pre.i177.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %tobool.not.i.i178.i.i.i = icmp eq ptr %.pre.i177.i.i.i, null + br i1 %tobool.not.i.i178.i.i.i, label %if.end88.i.i.i, label %if.then.i.i164.i.i.i + +if.then.i.i164.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i + %435 = phi ptr [ %.pre.i177.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i ], [ %429, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i158.i.i.i ] + %arrayidx.i.i165.i.i.i = getelementptr inbounds i32, ptr %435, i64 -1 + store i32 %j.2.lcssa.i.i.i, ptr %arrayidx.i.i165.i.i.i, align 4 + %.pre492.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + br label %if.end88.i.i.i + +if.end88.i.i.i: ; preds = %if.then.i.i164.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i, %for.end86.i.i.i + %436 = phi ptr [ %.pre492.i.i.i, %if.then.i.i164.i.i.i ], [ null, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i176.i.i.i ], [ null, %for.end86.i.i.i ] + %this.val58.i85.i.i = load ptr, ptr %28, align 8 + %437 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %call93.i.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i85.i.i, ptr noundef nonnull %87, i32 noundef %j.0.lcssa.i.i.i, ptr noundef %437, i32 noundef %j.2.lcssa.i.i.i, ptr noundef %436, ptr noundef %376) + to label %invoke.cont92.i86.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont92.i86.i.i: ; preds = %if.end88.i.i.i + %this.val57.i87.i.i = load ptr, ptr %28, align 8 + store ptr %call93.i.i.i, ptr %new_q.i.i.i, align 8 + store ptr %this.val57.i87.i.i, ptr %m_manager.i184.i.i.i, align 8 + %tobool.not.i.i185.i.i.i = icmp eq ptr %call93.i.i.i, null + br i1 %tobool.not.i.i185.i.i.i, label %invoke.cont95.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i: ; preds = %invoke.cont92.i86.i.i + %m_ref_count.i.i.i.i.i88.i.i = getelementptr inbounds %class.ast, ptr %call93.i.i.i, i64 0, i32 2 + %438 = load i32, ptr %m_ref_count.i.i.i.i.i88.i.i, align 4 + %inc.i.i.i.i186.i.i.i = add i32 %438, 1 + store i32 %inc.i.i.i.i186.i.i.i, ptr %m_ref_count.i.i.i.i.i88.i.i, align 4 + br label %invoke.cont95.i.i.i + +invoke.cont95.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i, %invoke.cont92.i86.i.i + %439 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i.i.i.i = icmp eq ptr %439, null + br i1 %tobool.not.i3.i.i.i.i, label %invoke.cont97.i91.i.i, label %if.then.i.i.i.i90.i.i + +if.then.i.i.i.i90.i.i: ; preds = %invoke.cont95.i.i.i + %440 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i188.i.i.i = getelementptr inbounds %class.ast, ptr %439, i64 0, i32 2 + %441 = load i32, ptr %m_ref_count.i.i.i.i188.i.i.i, align 4 + %dec.i.i.i.i.i.i.i = add i32 %441, -1 + store i32 %dec.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i188.i.i.i, align 4 + %cmp.i.i.i189.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i189.i.i.i, label %if.then2.i.i.i.i.i.i, label %invoke.cont97.i91.i.i + +if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i90.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %440, ptr noundef nonnull %439) + to label %invoke.cont97.i91.i.i unwind label %lpad96.i.i.i + +invoke.cont97.i91.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i90.i.i, %invoke.cont95.i.i.i + store ptr null, ptr %m_pr.i89.i.i, align 8 + %cmp101.not.i.i.i = icmp eq ptr %call93.i.i.i, %87 + br i1 %cmp101.not.i.i.i, label %if.end140.i.i.i, label %if.then102.i.i.i + +if.then102.i.i.i: ; preds = %invoke.cont97.i91.i.i + %442 = load i32, ptr %m_spos.i69.i.i, align 4 + %443 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %idxprom.i.i192.i.i.i = zext i32 %442 to i64 + %arrayidx.i.i193.i.i.i = getelementptr inbounds ptr, ptr %443, i64 %idxprom.i.i192.i.i.i + %444 = load ptr, ptr %arrayidx.i.i193.i.i.i, align 8 + %tobool.not.i.i.i.i = icmp eq ptr %444, null + br i1 %tobool.not.i.i.i.i, label %if.else.i129.i.i, label %if.end.i197.i.i.i + +if.end.i197.i.i.i: ; preds = %if.then102.i.i.i + %m_ref_count.i.i.i195.i.i.i = getelementptr inbounds %class.ast, ptr %444, i64 0, i32 2 + %445 = load i32, ptr %m_ref_count.i.i.i195.i.i.i, align 4 + %inc.i.i.i196.i.i.i = add i32 %445, 1 + store i32 %inc.i.i.i196.i.i.i, ptr %m_ref_count.i.i.i195.i.i.i, align 4 + %.pre493.i.i.i = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i198.i.i.i = icmp eq ptr %.pre493.i.i.i, null + br i1 %tobool.not.i3.i198.i.i.i, label %if.then112.i.i.i, label %if.then.i.i.i199.i.i.i + +if.then.i.i.i199.i.i.i: ; preds = %if.end.i197.i.i.i + %446 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i201.i.i.i = getelementptr inbounds %class.ast, ptr %.pre493.i.i.i, i64 0, i32 2 + %447 = load i32, ptr %m_ref_count.i.i.i.i201.i.i.i, align 4 + %dec.i.i.i.i202.i.i.i = add i32 %447, -1 + store i32 %dec.i.i.i.i202.i.i.i, ptr %m_ref_count.i.i.i.i201.i.i.i, align 4 + %cmp.i.i.i203.i.i.i = icmp eq i32 %dec.i.i.i.i202.i.i.i, 0 + br i1 %cmp.i.i.i203.i.i.i, label %if.then2.i.i.i204.i.i.i, label %if.then112.i.i.i + +if.then2.i.i.i204.i.i.i: ; preds = %if.then.i.i.i199.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %446, ptr noundef nonnull %.pre493.i.i.i) + to label %if.then112.i.i.i unwind label %lpad96.i.i.i + +if.then112.i.i.i: ; preds = %if.then2.i.i.i204.i.i.i, %if.then.i.i.i199.i.i.i, %if.end.i197.i.i.i + store ptr %444, ptr %m_pr.i89.i.i, align 8 + %this.val56.i92.i.i = load ptr, ptr %28, align 8 + %call117.i.i.i = invoke noundef ptr @_ZN11ast_manager13mk_bind_proofEP10quantifierP3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val56.i92.i.i, ptr noundef nonnull %87, ptr noundef nonnull %444) + to label %invoke.cont116.i.i.i unwind label %lpad96.i.i.i + +invoke.cont116.i.i.i: ; preds = %if.then112.i.i.i + %tobool.not.i208.i.i.i = icmp eq ptr %call117.i.i.i, null + br i1 %tobool.not.i208.i.i.i, label %if.end.i212.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i: ; preds = %invoke.cont116.i.i.i + %m_ref_count.i.i.i210.i.i.i = getelementptr inbounds %class.ast, ptr %call117.i.i.i, i64 0, i32 2 + %448 = load i32, ptr %m_ref_count.i.i.i210.i.i.i, align 4 + %inc.i.i.i211.i.i.i = add i32 %448, 1 + store i32 %inc.i.i.i211.i.i.i, ptr %m_ref_count.i.i.i210.i.i.i, align 4 + br label %if.end.i212.i.i.i + +if.end.i212.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i209.i.i.i, %invoke.cont116.i.i.i + %449 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i213.i.i.i = icmp eq ptr %449, null + br i1 %tobool.not.i3.i213.i.i.i, label %invoke.cont119.i.i.i, label %if.then.i.i.i214.i.i.i + +if.then.i.i.i214.i.i.i: ; preds = %if.end.i212.i.i.i + %450 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i216.i.i.i = getelementptr inbounds %class.ast, ptr %449, i64 0, i32 2 + %451 = load i32, ptr %m_ref_count.i.i.i.i216.i.i.i, align 4 + %dec.i.i.i.i217.i.i.i = add i32 %451, -1 + store i32 %dec.i.i.i.i217.i.i.i, ptr %m_ref_count.i.i.i.i216.i.i.i, align 4 + %cmp.i.i.i218.i.i.i = icmp eq i32 %dec.i.i.i.i217.i.i.i, 0 + br i1 %cmp.i.i.i218.i.i.i, label %if.then2.i.i.i219.i.i.i, label %invoke.cont119.i.i.i + +if.then2.i.i.i219.i.i.i: ; preds = %if.then.i.i.i214.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %450, ptr noundef nonnull %449) + to label %invoke.cont119.i.i.i unwind label %lpad96.i.i.i + +invoke.cont119.i.i.i: ; preds = %if.then2.i.i.i219.i.i.i, %if.then.i.i.i214.i.i.i, %if.end.i212.i.i.i + store ptr %call117.i.i.i, ptr %m_pr.i89.i.i, align 8 + %this.val55.i94.i.i = load ptr, ptr %28, align 8 + %call127.i.i.i = invoke noundef ptr @_ZN11ast_manager14mk_quant_introEP10quantifierS1_P3app(ptr noundef nonnull align 8 dereferenceable(976) %this.val55.i94.i.i, ptr noundef nonnull %87, ptr noundef %call93.i.i.i, ptr noundef %call117.i.i.i) + to label %invoke.cont126.i.i.i unwind label %lpad96.i.i.i + +invoke.cont126.i.i.i: ; preds = %invoke.cont119.i.i.i + %tobool.not.i222.i.i.i = icmp eq ptr %call127.i.i.i, null + br i1 %tobool.not.i222.i.i.i, label %if.end.i226.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i: ; preds = %invoke.cont126.i.i.i + %m_ref_count.i.i.i224.i.i.i = getelementptr inbounds %class.ast, ptr %call127.i.i.i, i64 0, i32 2 + %452 = load i32, ptr %m_ref_count.i.i.i224.i.i.i, align 4 + %inc.i.i.i225.i.i.i = add i32 %452, 1 + store i32 %inc.i.i.i225.i.i.i, ptr %m_ref_count.i.i.i224.i.i.i, align 4 + br label %if.end.i226.i.i.i + +if.end.i226.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i223.i.i.i, %invoke.cont126.i.i.i + %453 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i227.i.i.i = icmp eq ptr %453, null + br i1 %tobool.not.i3.i227.i.i.i, label %if.end140thread-pre-split.i.i.i, label %if.then.i.i.i228.i.i.i + +if.then.i.i.i228.i.i.i: ; preds = %if.end.i226.i.i.i + %454 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i230.i.i.i = getelementptr inbounds %class.ast, ptr %453, i64 0, i32 2 + %455 = load i32, ptr %m_ref_count.i.i.i.i230.i.i.i, align 4 + %dec.i.i.i.i231.i.i.i = add i32 %455, -1 + store i32 %dec.i.i.i.i231.i.i.i, ptr %m_ref_count.i.i.i.i230.i.i.i, align 4 + %cmp.i.i.i232.i.i.i = icmp eq i32 %dec.i.i.i.i231.i.i.i, 0 + br i1 %cmp.i.i.i232.i.i.i, label %if.then2.i.i.i233.i.i.i, label %if.end140thread-pre-split.i.i.i + +if.then2.i.i.i233.i.i.i: ; preds = %if.then.i.i.i228.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %454, ptr noundef nonnull %453) + to label %if.end140thread-pre-split.i.i.i unwind label %lpad96.i.i.i + +lpad96.i.i.i: ; preds = %if.then2.i.i.i261.i.i.i, %if.then2.i.i.i247.i.i.i, %if.else.i129.i.i, %if.then2.i.i.i233.i.i.i, %invoke.cont119.i.i.i, %if.then2.i.i.i219.i.i.i, %if.then112.i.i.i, %if.then2.i.i.i204.i.i.i, %if.then2.i.i.i.i.i.i + %456 = landingpad { ptr, i32 } cleanup - br label %ehcleanup.i.i - -if.else.i72.i: ; preds = %if.then102.i.i - store ptr %443, ptr %m_pr.i67.i, align 8 - %this.val54.i73.i = load ptr, ptr %28, align 8 - %call135.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i73.i, ptr noundef nonnull %87, ptr noundef %call93.i63.i) - to label %invoke.cont134.i.i unwind label %lpad96.i.i - -invoke.cont134.i.i: ; preds = %if.else.i72.i - %tobool.not.i752 = icmp eq ptr %call135.i.i, null - br i1 %tobool.not.i752, label %if.end.i756, label %_ZN11ast_manager7inc_refEP3ast.exit.i753 - -_ZN11ast_manager7inc_refEP3ast.exit.i753: ; preds = %invoke.cont134.i.i - %m_ref_count.i.i.i754 = getelementptr inbounds %class.ast, ptr %call135.i.i, i64 0, i32 2 - %456 = load i32, ptr %m_ref_count.i.i.i754, align 4 - %inc.i.i.i755 = add i32 %456, 1 - store i32 %inc.i.i.i755, ptr %m_ref_count.i.i.i754, align 4 - br label %if.end.i756 - -if.end.i756: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i753, %invoke.cont134.i.i - %457 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i757 = icmp eq ptr %457, null - br i1 %tobool.not.i3.i757, label %if.end140.i.ithread-pre-split, label %if.then.i.i.i758 - -if.then.i.i.i758: ; preds = %if.end.i756 - %458 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i760 = getelementptr inbounds %class.ast, ptr %457, i64 0, i32 2 - %459 = load i32, ptr %m_ref_count.i.i.i.i760, align 4 - %dec.i.i.i.i761 = add i32 %459, -1 - store i32 %dec.i.i.i.i761, ptr %m_ref_count.i.i.i.i760, align 4 - %cmp.i.i.i762 = icmp eq i32 %dec.i.i.i.i761, 0 - br i1 %cmp.i.i.i762, label %if.then2.i.i.i763, label %if.end140.i.ithread-pre-split - -if.then2.i.i.i763: ; preds = %if.then.i.i.i758 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %458, ptr noundef nonnull %457) - to label %if.end140.i.ithread-pre-split unwind label %lpad96.i.i - -if.end140.i.ithread-pre-split: ; preds = %if.then.i.i.i758, %if.end.i756, %if.then2.i.i.i763, %if.then.i.i.i772, %if.end.i770, %if.then2.i.i.i777 - %storemerge = phi ptr [ %call127.i.i, %if.then2.i.i.i777 ], [ %call127.i.i, %if.end.i770 ], [ %call127.i.i, %if.then.i.i.i772 ], [ %call135.i.i, %if.then2.i.i.i763 ], [ %call135.i.i, %if.end.i756 ], [ %call135.i.i, %if.then.i.i.i758 ] - store ptr %storemerge, ptr %m_pr.i67.i, align 8 - br label %if.end140.i.i - -if.end140.i.i: ; preds = %if.end140.i.ithread-pre-split, %invoke.cont97.i70.i - %460 = phi ptr [ %call93.i63.i, %if.end140.i.ithread-pre-split ], [ %87, %invoke.cont97.i70.i ] - %tobool.not.i738 = icmp eq ptr %460, null - br i1 %tobool.not.i738, label %if.end.i742, label %_ZN11ast_manager7inc_refEP3ast.exit.i739 - -_ZN11ast_manager7inc_refEP3ast.exit.i739: ; preds = %if.end140.i.i - %m_ref_count.i.i.i740 = getelementptr inbounds %class.ast, ptr %460, i64 0, i32 2 - %461 = load i32, ptr %m_ref_count.i.i.i740, align 4 - %inc.i.i.i741 = add i32 %461, 1 - store i32 %inc.i.i.i741, ptr %m_ref_count.i.i.i740, align 4 - br label %if.end.i742 - -if.end.i742: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i739, %if.end140.i.i - %462 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i3.i743 = icmp eq ptr %462, null - br i1 %tobool.not.i3.i743, label %if.end165.i.i, label %if.then.i.i.i744 - -if.then.i.i.i744: ; preds = %if.end.i742 - %463 = load ptr, ptr %m_manager.i.i745, align 8 - %m_ref_count.i.i.i.i746 = getelementptr inbounds %class.ast, ptr %462, i64 0, i32 2 - %464 = load i32, ptr %m_ref_count.i.i.i.i746, align 4 - %dec.i.i.i.i747 = add i32 %464, -1 - store i32 %dec.i.i.i.i747, ptr %m_ref_count.i.i.i.i746, align 4 - %cmp.i.i.i748 = icmp eq i32 %dec.i.i.i.i747, 0 - br i1 %cmp.i.i.i748, label %if.then2.i.i.i749, label %if.end165.i.i - -if.then2.i.i.i749: ; preds = %if.then.i.i.i744 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %463, ptr noundef nonnull %462) - to label %if.end165.i.i unwind label %lpad96.i.i - -lpad147.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i719 - %lpad.loopexit2869 = landingpad { ptr, i32 } + br label %ehcleanup.i.i.i + +if.else.i129.i.i: ; preds = %if.then102.i.i.i + %this.val54.i130.i.i = load ptr, ptr %28, align 8 + %call135.i.i.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val54.i130.i.i, ptr noundef nonnull %87, ptr noundef %call93.i.i.i) + to label %invoke.cont134.i.i.i unwind label %lpad96.i.i.i + +invoke.cont134.i.i.i: ; preds = %if.else.i129.i.i + %tobool.not.i236.i.i.i = icmp eq ptr %call135.i.i.i, null + br i1 %tobool.not.i236.i.i.i, label %if.end.i240.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i: ; preds = %invoke.cont134.i.i.i + %m_ref_count.i.i.i238.i.i.i = getelementptr inbounds %class.ast, ptr %call135.i.i.i, i64 0, i32 2 + %457 = load i32, ptr %m_ref_count.i.i.i238.i.i.i, align 4 + %inc.i.i.i239.i.i.i = add i32 %457, 1 + store i32 %inc.i.i.i239.i.i.i, ptr %m_ref_count.i.i.i238.i.i.i, align 4 + br label %if.end.i240.i.i.i + +if.end.i240.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i237.i.i.i, %invoke.cont134.i.i.i + %458 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i241.i.i.i = icmp eq ptr %458, null + br i1 %tobool.not.i3.i241.i.i.i, label %if.end140thread-pre-split.i.i.i, label %if.then.i.i.i242.i.i.i + +if.then.i.i.i242.i.i.i: ; preds = %if.end.i240.i.i.i + %459 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i244.i.i.i = getelementptr inbounds %class.ast, ptr %458, i64 0, i32 2 + %460 = load i32, ptr %m_ref_count.i.i.i.i244.i.i.i, align 4 + %dec.i.i.i.i245.i.i.i = add i32 %460, -1 + store i32 %dec.i.i.i.i245.i.i.i, ptr %m_ref_count.i.i.i.i244.i.i.i, align 4 + %cmp.i.i.i246.i.i.i = icmp eq i32 %dec.i.i.i.i245.i.i.i, 0 + br i1 %cmp.i.i.i246.i.i.i, label %if.then2.i.i.i247.i.i.i, label %if.end140thread-pre-split.i.i.i + +if.then2.i.i.i247.i.i.i: ; preds = %if.then.i.i.i242.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %459, ptr noundef nonnull %458) + to label %if.end140thread-pre-split.i.i.i unwind label %lpad96.i.i.i + +if.end140thread-pre-split.i.i.i: ; preds = %if.then2.i.i.i247.i.i.i, %if.then.i.i.i242.i.i.i, %if.end.i240.i.i.i, %if.then2.i.i.i233.i.i.i, %if.then.i.i.i228.i.i.i, %if.end.i226.i.i.i + %storemerge.i.i.i = phi ptr [ %call127.i.i.i, %if.then2.i.i.i233.i.i.i ], [ %call127.i.i.i, %if.end.i226.i.i.i ], [ %call127.i.i.i, %if.then.i.i.i228.i.i.i ], [ %call135.i.i.i, %if.then2.i.i.i247.i.i.i ], [ %call135.i.i.i, %if.end.i240.i.i.i ], [ %call135.i.i.i, %if.then.i.i.i242.i.i.i ] + store ptr %storemerge.i.i.i, ptr %m_pr.i89.i.i, align 8 + br label %if.end140.i.i.i + +if.end140.i.i.i: ; preds = %if.end140thread-pre-split.i.i.i, %invoke.cont97.i91.i.i + %461 = phi ptr [ %call93.i.i.i, %if.end140thread-pre-split.i.i.i ], [ %87, %invoke.cont97.i91.i.i ] + %tobool.not.i250.i.i.i = icmp eq ptr %461, null + br i1 %tobool.not.i250.i.i.i, label %if.end.i254.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i: ; preds = %if.end140.i.i.i + %m_ref_count.i.i.i252.i.i.i = getelementptr inbounds %class.ast, ptr %461, i64 0, i32 2 + %462 = load i32, ptr %m_ref_count.i.i.i252.i.i.i, align 4 + %inc.i.i.i253.i.i.i = add i32 %462, 1 + store i32 %inc.i.i.i253.i.i.i, ptr %m_ref_count.i.i.i252.i.i.i, align 4 + br label %if.end.i254.i.i.i + +if.end.i254.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i251.i.i.i, %if.end140.i.i.i + %463 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i3.i255.i.i.i = icmp eq ptr %463, null + br i1 %tobool.not.i3.i255.i.i.i, label %if.end165.i.i.i, label %if.then.i.i.i256.i.i.i + +if.then.i.i.i256.i.i.i: ; preds = %if.end.i254.i.i.i + %464 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i258.i.i.i = getelementptr inbounds %class.ast, ptr %463, i64 0, i32 2 + %465 = load i32, ptr %m_ref_count.i.i.i.i258.i.i.i, align 4 + %dec.i.i.i.i259.i.i.i = add i32 %465, -1 + store i32 %dec.i.i.i.i259.i.i.i, ptr %m_ref_count.i.i.i.i258.i.i.i, align 4 + %cmp.i.i.i260.i.i.i = icmp eq i32 %dec.i.i.i.i259.i.i.i, 0 + br i1 %cmp.i.i.i260.i.i.i, label %if.then2.i.i.i261.i.i.i, label %if.end165.i.i.i + +if.then2.i.i.i261.i.i.i: ; preds = %if.then.i.i.i256.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %464, ptr noundef nonnull %463) + to label %if.end165.i.i.i unwind label %lpad96.i.i.i + +lpad147.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i301.i.i.i + %lpad.loopexit460.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad147.i.i + br label %lpad147.i.i.i -lpad147.i.i.loopexit.split-lp: ; preds = %if.then.i.i691 - %lpad.loopexit.split-lp2870 = landingpad { ptr, i32 } +lpad147.loopexit.split-lp.i.i.i: ; preds = %if.then.i.i310.i.i.i + %lpad.loopexit.split-lp461.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad147.i.i - -lpad147.i.i: ; preds = %lpad147.i.i.loopexit.split-lp, %lpad147.i.i.loopexit - %lpad.phi2871 = phi { ptr, i32 } [ %lpad.loopexit2869, %lpad147.i.i.loopexit ], [ %lpad.loopexit.split-lp2870, %lpad147.i.i.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2.i.i) #15 - br label %ehcleanup.i.i - -if.end165.i.i: ; preds = %if.then2.i.i.i749, %if.end.i742, %if.then.i.i.i744 - store ptr %460, ptr %m_r.i74.i, align 8 - %this.val53.i75.i = load ptr, ptr %28, align 8 - store ptr null, ptr %pr2.i.i, align 8 - store ptr %this.val53.i75.i, ptr %m_manager.i, align 8 - %465 = load i32, ptr %m_spos.i54.i, align 4 - %466 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i.i698 = icmp eq ptr %466, null - br i1 %cmp.i.i.i698, label %invoke.cont168.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i - -_ZN6vectorIP3appLb0EjE3endEv.exit.i: ; preds = %if.end165.i.i - %arrayidx.i.i.i701 = getelementptr inbounds i32, ptr %466, i64 -1 - %467 = load i32, ptr %arrayidx.i.i.i701, align 4 - %468 = zext i32 %467 to i64 - %add.ptr.i.i702 = getelementptr inbounds ptr, ptr %466, i64 %468 - %cmp3.i.i703 = icmp ugt i32 %467, %465 - br i1 %cmp3.i.i703, label %for.body.i.i706.preheader, label %if.then.i.i704 - -for.body.i.i706.preheader: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i - %idx.ext.i699 = zext i32 %465 to i64 - %add.ptr.i700 = getelementptr inbounds ptr, ptr %466, i64 %idx.ext.i699 - br label %for.body.i.i706 - -for.body.i.i706: ; preds = %for.body.i.i706.preheader, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i713 - %it.04.i.i707 = phi ptr [ %incdec.ptr.i.i714, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i713 ], [ %add.ptr.i700, %for.body.i.i706.preheader ] - %469 = load ptr, ptr %it.04.i.i707, align 8 - %470 = load ptr, ptr %m_result_pr_stack.i721, align 8 - %tobool.not.i.i.i.i.i708 = icmp eq ptr %469, null - br i1 %tobool.not.i.i.i.i.i708, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i713, label %if.then.i.i.i.i.i709 - -if.then.i.i.i.i.i709: ; preds = %for.body.i.i706 - %m_ref_count.i.i.i.i.i.i710 = getelementptr inbounds %class.ast, ptr %469, i64 0, i32 2 - %471 = load i32, ptr %m_ref_count.i.i.i.i.i.i710, align 4 - %dec.i.i.i.i.i.i711 = add i32 %471, -1 - store i32 %dec.i.i.i.i.i.i711, ptr %m_ref_count.i.i.i.i.i.i710, align 4 - %cmp.i.i.i.i.i712 = icmp eq i32 %dec.i.i.i.i.i.i711, 0 - br i1 %cmp.i.i.i.i.i712, label %if.then2.i.i.i.i.i719, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i713 - -if.then2.i.i.i.i.i719: ; preds = %if.then.i.i.i.i.i709 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %470, ptr noundef nonnull %469) - to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i713 unwind label %lpad147.i.i.loopexit - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i713: ; preds = %if.then2.i.i.i.i.i719, %if.then.i.i.i.i.i709, %for.body.i.i706 - %incdec.ptr.i.i714 = getelementptr inbounds ptr, ptr %it.04.i.i707, i64 1 - %cmp.i.i715 = icmp ult ptr %incdec.ptr.i.i714, %add.ptr.i.i702 - br i1 %cmp.i.i715, label %for.body.i.i706, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i716, !llvm.loop !9 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i716: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i713 - %.pre.i717 = load ptr, ptr %m_nodes.i30.i, align 8 - %tobool.not.i.i718 = icmp eq ptr %.pre.i717, null - br i1 %tobool.not.i.i718, label %invoke.cont168.i.i, label %if.then.i.i704 - -if.then.i.i704: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i716, %_ZN6vectorIP3appLb0EjE3endEv.exit.i - %472 = phi ptr [ %.pre.i717, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i716 ], [ %466, %_ZN6vectorIP3appLb0EjE3endEv.exit.i ] - %arrayidx.i.i705 = getelementptr inbounds i32, ptr %472, i64 -1 - store i32 %465, ptr %arrayidx.i.i705, align 4 - br label %invoke.cont168.i.i - -invoke.cont168.i.i: ; preds = %if.then.i.i704, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i716, %if.end165.i.i - %473 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i.i.i.i677 = icmp eq ptr %473, null - br i1 %tobool.not.i.i.i.i677, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i678 - -if.then.i.i.i.i678: ; preds = %invoke.cont168.i.i - %m_ref_count.i.i.i.i.i679 = getelementptr inbounds %class.ast, ptr %473, i64 0, i32 2 - %474 = load i32, ptr %m_ref_count.i.i.i.i.i679, align 4 - %inc.i.i.i.i.i680 = add i32 %474, 1 - store i32 %inc.i.i.i.i.i680, ptr %m_ref_count.i.i.i.i.i679, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %if.then.i.i.i.i678, %invoke.cont168.i.i - %475 = load ptr, ptr %m_nodes.i30.i, align 8 - %cmp.i.i682 = icmp eq ptr %475, null - br i1 %cmp.i.i682, label %if.then.i.i691, label %lor.lhs.false.i.i683 - -lor.lhs.false.i.i683: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - %arrayidx.i.i684 = getelementptr inbounds i32, ptr %475, i64 -1 - %476 = load i32, ptr %arrayidx.i.i684, align 4 - %arrayidx4.i.i685 = getelementptr inbounds i32, ptr %475, i64 -2 - %477 = load i32, ptr %arrayidx4.i.i685, align 4 - %cmp5.i.i686 = icmp eq i32 %476, %477 - br i1 %cmp5.i.i686, label %if.then.i.i691, label %_ZN7obj_refI3app11ast_managerED2Ev.exit - -if.then.i.i691: ; preds = %lor.lhs.false.i.i683, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i) - to label %.noexc695 unwind label %lpad147.i.i.loopexit.split-lp - -.noexc695: ; preds = %if.then.i.i691 - %.pre.i.i692 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx8.phi.trans.insert.i.i693 = getelementptr inbounds i32, ptr %.pre.i.i692, i64 -1 - %.pre1.i.i694 = load i32, ptr %arrayidx8.phi.trans.insert.i.i693, align 4 - br label %_ZN7obj_refI3app11ast_managerED2Ev.exit - -_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %lor.lhs.false.i.i683, %.noexc695 - %478 = phi i32 [ %.pre1.i.i694, %.noexc695 ], [ %476, %lor.lhs.false.i.i683 ] - %479 = phi ptr [ %.pre.i.i692, %.noexc695 ], [ %475, %lor.lhs.false.i.i683 ] - %idx.ext.i.i687 = zext i32 %478 to i64 - %add.ptr.i.i688 = getelementptr inbounds ptr, ptr %479, i64 %idx.ext.i.i687 - store ptr %473, ptr %add.ptr.i.i688, align 8 - %480 = load ptr, ptr %m_nodes.i30.i, align 8 - %arrayidx10.i.i689 = getelementptr inbounds i32, ptr %480, i64 -1 - %481 = load i32, ptr %arrayidx10.i.i689, align 4 - %inc.i.i690 = add i32 %481, 1 - store i32 %inc.i.i690, ptr %arrayidx10.i.i689, align 4 - br i1 %tobool.not.i.i824, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit, label %if.then.i.i.i661 - -if.then.i.i.i661: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit - %m_ref_count.i.i.i.i663 = getelementptr inbounds %class.ast, ptr %call93.i63.i, i64 0, i32 2 - %482 = load i32, ptr %m_ref_count.i.i.i.i663, align 4 - %dec.i.i.i.i664 = add i32 %482, -1 - store i32 %dec.i.i.i.i664, ptr %m_ref_count.i.i.i.i663, align 4 - %cmp.i.i.i665 = icmp eq i32 %dec.i.i.i.i664, 0 - br i1 %cmp.i.i.i665, label %if.then2.i.i.i667, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - -if.then2.i.i.i667: ; preds = %if.then.i.i.i661 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val57.i65.i, ptr noundef nonnull %call93.i63.i) - to label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit unwind label %terminate.lpad.i - -terminate.lpad.i: ; preds = %if.then2.i.i.i667 - %483 = landingpad { ptr, i32 } + br label %lpad147.i.i.i + +lpad147.i.i.i: ; preds = %lpad147.loopexit.split-lp.i.i.i, %lpad147.loopexit.i.i.i + %lpad.phi462.i.i.i = phi { ptr, i32 } [ %lpad.loopexit460.i.i.i, %lpad147.loopexit.i.i.i ], [ %lpad.loopexit.split-lp461.i.i.i, %lpad147.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %pr2.i.i.i) #15 + br label %ehcleanup.i.i.i + +if.end165.i.i.i: ; preds = %if.then2.i.i.i261.i.i.i, %if.then.i.i.i256.i.i.i, %if.end.i254.i.i.i + store ptr %461, ptr %m_r.i95.i.i, align 8 + %this.val53.i96.i.i = load ptr, ptr %28, align 8 + store ptr null, ptr %pr2.i.i.i, align 8 + store ptr %this.val53.i96.i.i, ptr %m_manager.i263.i.i.i, align 8 + %466 = load i32, ptr %m_spos.i69.i.i, align 4 + %467 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i.i282.i97.i.i = icmp eq ptr %467, null + br i1 %cmp.i.i.i282.i97.i.i, label %invoke.cont168.i.i.i, label %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i98.i.i + +_ZN6vectorIP3appLb0EjE3endEv.exit.i.i98.i.i: ; preds = %if.end165.i.i.i + %arrayidx.i.i.i285.i.i.i = getelementptr inbounds i32, ptr %467, i64 -1 + %468 = load i32, ptr %arrayidx.i.i.i285.i.i.i, align 4 + %469 = zext i32 %468 to i64 + %add.ptr.i.i286.i.i.i = getelementptr inbounds ptr, ptr %467, i64 %469 + %cmp3.i.i287.i.i.i = icmp ugt i32 %468, %466 + br i1 %cmp3.i.i287.i.i.i, label %for.body.i.i290.preheader.i.i.i, label %if.then.i.i288.i.i.i + +for.body.i.i290.preheader.i.i.i: ; preds = %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i98.i.i + %idx.ext.i283.i.i.i = zext i32 %466 to i64 + %add.ptr.i284.i.i.i = getelementptr inbounds ptr, ptr %467, i64 %idx.ext.i283.i.i.i + br label %for.body.i.i290.i.i.i + +for.body.i.i290.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i127.i.i, %for.body.i.i290.preheader.i.i.i + %it.04.i.i291.i.i.i = phi ptr [ %incdec.ptr.i.i297.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i127.i.i ], [ %add.ptr.i284.i.i.i, %for.body.i.i290.preheader.i.i.i ] + %470 = load ptr, ptr %it.04.i.i291.i.i.i, align 8 + %471 = load ptr, ptr %m_result_pr_stack.i280.i.i.i, align 8 + %tobool.not.i.i.i.i.i292.i.i.i = icmp eq ptr %470, null + br i1 %tobool.not.i.i.i.i.i292.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i127.i.i, label %if.then.i.i.i.i.i293.i.i.i + +if.then.i.i.i.i.i293.i.i.i: ; preds = %for.body.i.i290.i.i.i + %m_ref_count.i.i.i.i.i.i294.i.i.i = getelementptr inbounds %class.ast, ptr %470, i64 0, i32 2 + %472 = load i32, ptr %m_ref_count.i.i.i.i.i.i294.i.i.i, align 4 + %dec.i.i.i.i.i.i295.i.i.i = add i32 %472, -1 + store i32 %dec.i.i.i.i.i.i295.i.i.i, ptr %m_ref_count.i.i.i.i.i.i294.i.i.i, align 4 + %cmp.i.i.i.i.i296.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i295.i.i.i, 0 + br i1 %cmp.i.i.i.i.i296.i.i.i, label %if.then2.i.i.i.i.i301.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i127.i.i + +if.then2.i.i.i.i.i301.i.i.i: ; preds = %if.then.i.i.i.i.i293.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %471, ptr noundef nonnull %470) + to label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i127.i.i unwind label %lpad147.loopexit.i.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i127.i.i: ; preds = %if.then2.i.i.i.i.i301.i.i.i, %if.then.i.i.i.i.i293.i.i.i, %for.body.i.i290.i.i.i + %incdec.ptr.i.i297.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i291.i.i.i, i64 1 + %cmp.i.i298.i.i.i = icmp ult ptr %incdec.ptr.i.i297.i.i.i, %add.ptr.i.i286.i.i.i + br i1 %cmp.i.i298.i.i.i, label %for.body.i.i290.i.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i128.i.i, !llvm.loop !9 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i128.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i127.i.i + %.pre.i299.i.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %tobool.not.i.i300.i.i.i = icmp eq ptr %.pre.i299.i.i.i, null + br i1 %tobool.not.i.i300.i.i.i, label %invoke.cont168.i.i.i, label %if.then.i.i288.i.i.i + +if.then.i.i288.i.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i128.i.i, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i98.i.i + %473 = phi ptr [ %.pre.i299.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i128.i.i ], [ %467, %_ZN6vectorIP3appLb0EjE3endEv.exit.i.i98.i.i ] + %arrayidx.i.i289.i.i.i = getelementptr inbounds i32, ptr %473, i64 -1 + store i32 %466, ptr %arrayidx.i.i289.i.i.i, align 4 + br label %invoke.cont168.i.i.i + +invoke.cont168.i.i.i: ; preds = %if.then.i.i288.i.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i128.i.i, %if.end165.i.i.i + %474 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i.i.i.i.i99.i.i = icmp eq ptr %474, null + br i1 %tobool.not.i.i.i.i.i99.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i102.i.i, label %if.then.i.i.i.i304.i.i.i + +if.then.i.i.i.i304.i.i.i: ; preds = %invoke.cont168.i.i.i + %m_ref_count.i.i.i.i.i.i100.i.i = getelementptr inbounds %class.ast, ptr %474, i64 0, i32 2 + %475 = load i32, ptr %m_ref_count.i.i.i.i.i.i100.i.i, align 4 + %inc.i.i.i.i.i.i101.i.i = add i32 %475, 1 + store i32 %inc.i.i.i.i.i.i101.i.i, ptr %m_ref_count.i.i.i.i.i.i100.i.i, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i102.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i102.i.i: ; preds = %if.then.i.i.i.i304.i.i.i, %invoke.cont168.i.i.i + %476 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %cmp.i.i306.i.i.i = icmp eq ptr %476, null + br i1 %cmp.i.i306.i.i.i, label %if.then.i.i310.i.i.i, label %lor.lhs.false.i.i.i103.i.i + +lor.lhs.false.i.i.i103.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i102.i.i + %arrayidx.i.i307.i.i.i = getelementptr inbounds i32, ptr %476, i64 -1 + %477 = load i32, ptr %arrayidx.i.i307.i.i.i, align 4 + %arrayidx4.i.i.i104.i.i = getelementptr inbounds i32, ptr %476, i64 -2 + %478 = load i32, ptr %arrayidx4.i.i.i104.i.i, align 4 + %cmp5.i.i.i105.i.i = icmp eq i32 %477, %478 + br i1 %cmp5.i.i.i105.i.i, label %if.then.i.i310.i.i.i, label %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + +if.then.i.i310.i.i.i: ; preds = %lor.lhs.false.i.i.i103.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i102.i.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i30.i.i) + to label %.noexc311.i.i.i unwind label %lpad147.loopexit.split-lp.i.i.i + +.noexc311.i.i.i: ; preds = %if.then.i.i310.i.i.i + %.pre.i.i.i124.i.i = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i.i125.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i124.i.i, i64 -1 + %.pre1.i.i.i126.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i125.i.i, align 4 + br label %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + +_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i: ; preds = %.noexc311.i.i.i, %lor.lhs.false.i.i.i103.i.i + %479 = phi i32 [ %.pre1.i.i.i126.i.i, %.noexc311.i.i.i ], [ %477, %lor.lhs.false.i.i.i103.i.i ] + %480 = phi ptr [ %.pre.i.i.i124.i.i, %.noexc311.i.i.i ], [ %476, %lor.lhs.false.i.i.i103.i.i ] + %idx.ext.i.i308.i.i.i = zext i32 %479 to i64 + %add.ptr.i.i309.i.i.i = getelementptr inbounds ptr, ptr %480, i64 %idx.ext.i.i308.i.i.i + store ptr %474, ptr %add.ptr.i.i309.i.i.i, align 8 + %481 = load ptr, ptr %m_nodes.i30.i.i, align 8 + %arrayidx10.i.i.i106.i.i = getelementptr inbounds i32, ptr %481, i64 -1 + %482 = load i32, ptr %arrayidx10.i.i.i106.i.i, align 4 + %inc.i.i.i107.i.i = add i32 %482, 1 + store i32 %inc.i.i.i107.i.i, ptr %arrayidx10.i.i.i106.i.i, align 4 + br i1 %tobool.not.i.i185.i.i.i, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i, label %if.then.i.i.i320.i.i.i + +if.then.i.i.i320.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + %m_ref_count.i.i.i.i322.i.i.i = getelementptr inbounds %class.ast, ptr %call93.i.i.i, i64 0, i32 2 + %483 = load i32, ptr %m_ref_count.i.i.i.i322.i.i.i, align 4 + %dec.i.i.i.i323.i.i.i = add i32 %483, -1 + store i32 %dec.i.i.i.i323.i.i.i, ptr %m_ref_count.i.i.i.i322.i.i.i, align 4 + %cmp.i.i.i324.i.i.i = icmp eq i32 %dec.i.i.i.i323.i.i.i, 0 + br i1 %cmp.i.i.i324.i.i.i, label %if.then2.i.i.i325.i.i.i, label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + +if.then2.i.i.i325.i.i.i: ; preds = %if.then.i.i.i320.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val57.i87.i.i, ptr noundef nonnull %call93.i.i.i) + to label %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i unwind label %terminate.lpad.i326.i.i.i + +terminate.lpad.i326.i.i.i: ; preds = %if.then2.i.i.i325.i.i.i + %484 = landingpad { ptr, i32 } catch ptr null - %484 = extractvalue { ptr, i32 } %483, 0 - call void @__clang_call_terminate(ptr %484) #14 + %485 = extractvalue { ptr, i32 } %484, 0 + tail call void @__clang_call_terminate(ptr %485) #14 unreachable -_ZN7obj_refI10quantifier11ast_managerED2Ev.exit: ; preds = %_ZN7obj_refI3app11ast_managerED2Ev.exit, %if.then.i.i.i661, %if.then2.i.i.i667 - %485 = load i32, ptr %m_spos.i54.i, align 4 - %486 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i637 = icmp eq ptr %486, null - br i1 %cmp.i.i.i637, label %invoke.cont176.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i: ; preds = %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - %arrayidx.i.i.i639 = getelementptr inbounds i32, ptr %486, i64 -1 - %487 = load i32, ptr %arrayidx.i.i.i639, align 4 - %488 = zext i32 %487 to i64 - %add.ptr.i.i640 = getelementptr inbounds ptr, ptr %486, i64 %488 - %cmp3.i.i641 = icmp ugt i32 %487, %485 - br i1 %cmp3.i.i641, label %for.body.i.i644.preheader, label %if.then.i.i642 - -for.body.i.i644.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - %idx.ext.i = zext i32 %485 to i64 - %add.ptr.i638 = getelementptr inbounds ptr, ptr %486, i64 %idx.ext.i - br label %for.body.i.i644 - -for.body.i.i644: ; preds = %for.body.i.i644.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i651 - %it.04.i.i645 = phi ptr [ %incdec.ptr.i.i652, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i651 ], [ %add.ptr.i638, %for.body.i.i644.preheader ] - %489 = load ptr, ptr %it.04.i.i645, align 8 - %490 = load ptr, ptr %m_result_stack.i965, align 8 - %tobool.not.i.i.i.i.i646 = icmp eq ptr %489, null - br i1 %tobool.not.i.i.i.i.i646, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i651, label %if.then.i.i.i.i.i647 - -if.then.i.i.i.i.i647: ; preds = %for.body.i.i644 - %m_ref_count.i.i.i.i.i.i648 = getelementptr inbounds %class.ast, ptr %489, i64 0, i32 2 - %491 = load i32, ptr %m_ref_count.i.i.i.i.i.i648, align 4 - %dec.i.i.i.i.i.i649 = add i32 %491, -1 - store i32 %dec.i.i.i.i.i.i649, ptr %m_ref_count.i.i.i.i.i.i648, align 4 - %cmp.i.i.i.i.i650 = icmp eq i32 %dec.i.i.i.i.i.i649, 0 - br i1 %cmp.i.i.i.i.i650, label %if.then2.i.i.i.i.i657, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i651 - -if.then2.i.i.i.i.i657: ; preds = %if.then.i.i.i.i.i647 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %490, ptr noundef nonnull %489) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i651 unwind label %lpad37.i.i.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i651: ; preds = %if.then2.i.i.i.i.i657, %if.then.i.i.i.i.i647, %for.body.i.i644 - %incdec.ptr.i.i652 = getelementptr inbounds ptr, ptr %it.04.i.i645, i64 1 - %cmp.i.i653 = icmp ult ptr %incdec.ptr.i.i652, %add.ptr.i.i640 - br i1 %cmp.i.i653, label %for.body.i.i644, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i654, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i654: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i651 - %.pre.i655 = load ptr, ptr %m_nodes.i.i, align 8 - %tobool.not.i.i656 = icmp eq ptr %.pre.i655, null - br i1 %tobool.not.i.i656, label %invoke.cont176.i.i, label %if.then.i.i642 - -if.then.i.i642: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i654, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i - %492 = phi ptr [ %.pre.i655, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i654 ], [ %486, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i ] - %arrayidx.i.i643 = getelementptr inbounds i32, ptr %492, i64 -1 - store i32 %485, ptr %arrayidx.i.i643, align 4 - br label %invoke.cont176.i.i - -invoke.cont176.i.i: ; preds = %if.then.i.i642, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i654, %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit - %493 = load ptr, ptr %m_r.i74.i, align 8 - %tobool.not.i.i.i.i622 = icmp eq ptr %493, null - br i1 %tobool.not.i.i.i.i622, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %if.then.i.i.i.i623 - -if.then.i.i.i.i623: ; preds = %invoke.cont176.i.i - %m_ref_count.i.i.i.i.i624 = getelementptr inbounds %class.ast, ptr %493, i64 0, i32 2 - %494 = load i32, ptr %m_ref_count.i.i.i.i.i624, align 4 - %inc.i.i.i.i.i = add i32 %494, 1 - store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i624, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %if.then.i.i.i.i623, %invoke.cont176.i.i - %495 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i626 = icmp eq ptr %495, null - br i1 %cmp.i.i626, label %if.then.i.i631, label %lor.lhs.false.i.i - -lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - %arrayidx.i.i627 = getelementptr inbounds i32, ptr %495, i64 -1 - %496 = load i32, ptr %arrayidx.i.i627, align 4 - %arrayidx4.i.i = getelementptr inbounds i32, ptr %495, i64 -2 - %497 = load i32, ptr %arrayidx4.i.i, align 4 - %cmp5.i.i = icmp eq i32 %496, %497 - br i1 %cmp5.i.i, label %if.then.i.i631, label %invoke.cont180.i.i - -if.then.i.i631: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc634 unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc634: ; preds = %if.then.i.i631 - %.pre.i.i632 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i632, i64 -1 - %.pre1.i.i633 = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 - br label %invoke.cont180.i.i - -invoke.cont180.i.i: ; preds = %.noexc634, %lor.lhs.false.i.i - %498 = phi i32 [ %.pre1.i.i633, %.noexc634 ], [ %496, %lor.lhs.false.i.i ] - %499 = phi ptr [ %.pre.i.i632, %.noexc634 ], [ %495, %lor.lhs.false.i.i ] - %idx.ext.i.i628 = zext i32 %498 to i64 - %add.ptr.i.i629 = getelementptr inbounds ptr, ptr %499, i64 %idx.ext.i.i628 - store ptr %493, ptr %add.ptr.i.i629, align 8 - %500 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i = getelementptr inbounds i32, ptr %500, i64 -1 - %501 = load i32, ptr %arrayidx10.i.i, align 4 - %inc.i.i630 = add i32 %501, 1 - store i32 %inc.i.i630, ptr %arrayidx10.i.i, align 4 - %502 = load ptr, ptr %m_bindings.i.i, align 8 - %cmp.i618 = icmp eq ptr %502, null - br i1 %cmp.i618, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit, label %if.then.i615 - -if.then.i615: ; preds = %invoke.cont180.i.i - %arrayidx.i620 = getelementptr inbounds i32, ptr %502, i64 -1 - %503 = load i32, ptr %arrayidx.i620, align 4 - %sub.i77.i = sub i32 %503, %349 - store i32 %sub.i77.i, ptr %arrayidx.i620, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit: ; preds = %invoke.cont180.i.i, %if.then.i615 - %504 = load ptr, ptr %m_shifts.i.i, align 8 - %cmp.i611 = icmp eq ptr %504, null - br i1 %cmp.i611, label %_ZN6vectorIjLb0EjE6shrinkEj.exit, label %if.then.i608 - -if.then.i608: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit - %arrayidx.i613 = getelementptr inbounds i32, ptr %504, i64 -1 - %505 = load i32, ptr %arrayidx.i613, align 4 - %sub189.i.i = sub i32 %505, %349 - store i32 %sub189.i.i, ptr %arrayidx.i613, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit - -_ZN6vectorIjLb0EjE6shrinkEj.exit: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit, %if.then.i608 +_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i: ; preds = %if.then2.i.i.i325.i.i.i, %if.then.i.i.i320.i.i.i, %_ZN7obj_refI3app11ast_managerED2Ev.exit.i.i.i + %486 = load i32, ptr %m_spos.i69.i.i, align 4 + %487 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i329.i.i.i = icmp eq ptr %487, null + br i1 %cmp.i.i.i329.i.i.i, label %invoke.cont176.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i: ; preds = %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + %arrayidx.i.i.i333.i.i.i = getelementptr inbounds i32, ptr %487, i64 -1 + %488 = load i32, ptr %arrayidx.i.i.i333.i.i.i, align 4 + %489 = zext i32 %488 to i64 + %add.ptr.i.i334.i.i.i = getelementptr inbounds ptr, ptr %487, i64 %489 + %cmp3.i.i335.i.i.i = icmp ugt i32 %488, %486 + br i1 %cmp3.i.i335.i.i.i, label %for.body.i.i338.preheader.i.i.i, label %if.then.i.i336.i.i.i + +for.body.i.i338.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + %idx.ext.i331.i.i.i = zext i32 %486 to i64 + %add.ptr.i332.i.i.i = getelementptr inbounds ptr, ptr %487, i64 %idx.ext.i331.i.i.i + br label %for.body.i.i338.i.i.i + +for.body.i.i338.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i, %for.body.i.i338.preheader.i.i.i + %it.04.i.i339.i.i.i = phi ptr [ %incdec.ptr.i.i346.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i ], [ %add.ptr.i332.i.i.i, %for.body.i.i338.preheader.i.i.i ] + %490 = load ptr, ptr %it.04.i.i339.i.i.i, align 8 + %491 = load ptr, ptr %m_result_stack.i.i67.i.i, align 8 + %tobool.not.i.i.i.i.i340.i.i.i = icmp eq ptr %490, null + br i1 %tobool.not.i.i.i.i.i340.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i, label %if.then.i.i.i.i.i341.i.i.i + +if.then.i.i.i.i.i341.i.i.i: ; preds = %for.body.i.i338.i.i.i + %m_ref_count.i.i.i.i.i.i342.i.i.i = getelementptr inbounds %class.ast, ptr %490, i64 0, i32 2 + %492 = load i32, ptr %m_ref_count.i.i.i.i.i.i342.i.i.i, align 4 + %dec.i.i.i.i.i.i343.i.i.i = add i32 %492, -1 + store i32 %dec.i.i.i.i.i.i343.i.i.i, ptr %m_ref_count.i.i.i.i.i.i342.i.i.i, align 4 + %cmp.i.i.i.i.i344.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i343.i.i.i, 0 + br i1 %cmp.i.i.i.i.i344.i.i.i, label %if.then2.i.i.i.i.i351.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i + +if.then2.i.i.i.i.i351.i.i.i: ; preds = %if.then.i.i.i.i.i341.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %491, ptr noundef nonnull %490) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i unwind label %lpad37.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i: ; preds = %if.then2.i.i.i.i.i351.i.i.i, %if.then.i.i.i.i.i341.i.i.i, %for.body.i.i338.i.i.i + %incdec.ptr.i.i346.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i339.i.i.i, i64 1 + %cmp.i.i347.i.i.i = icmp ult ptr %incdec.ptr.i.i346.i.i.i, %add.ptr.i.i334.i.i.i + br i1 %cmp.i.i347.i.i.i, label %for.body.i.i338.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i345.i.i.i + %.pre.i349.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %tobool.not.i.i350.i.i.i = icmp eq ptr %.pre.i349.i.i.i, null + br i1 %tobool.not.i.i350.i.i.i, label %invoke.cont176.i.i.i, label %if.then.i.i336.i.i.i + +if.then.i.i336.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i + %493 = phi ptr [ %.pre.i349.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i ], [ %487, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i330.i.i.i ] + %arrayidx.i.i337.i.i.i = getelementptr inbounds i32, ptr %493, i64 -1 + store i32 %486, ptr %arrayidx.i.i337.i.i.i, align 4 + br label %invoke.cont176.i.i.i + +invoke.cont176.i.i.i: ; preds = %if.then.i.i336.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i348.i.i.i, %_ZN7obj_refI10quantifier11ast_managerED2Ev.exit.i.i.i + %494 = load ptr, ptr %m_r.i95.i.i, align 8 + %tobool.not.i.i.i.i355.i.i.i = icmp eq ptr %494, null + br i1 %tobool.not.i.i.i.i355.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i108.i.i, label %if.then.i.i.i.i356.i.i.i + +if.then.i.i.i.i356.i.i.i: ; preds = %invoke.cont176.i.i.i + %m_ref_count.i.i.i.i.i357.i.i.i = getelementptr inbounds %class.ast, ptr %494, i64 0, i32 2 + %495 = load i32, ptr %m_ref_count.i.i.i.i.i357.i.i.i, align 4 + %inc.i.i.i.i.i358.i.i.i = add i32 %495, 1 + store i32 %inc.i.i.i.i.i358.i.i.i, ptr %m_ref_count.i.i.i.i.i357.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i108.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i108.i.i: ; preds = %if.then.i.i.i.i356.i.i.i, %invoke.cont176.i.i.i + %496 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i360.i.i.i = icmp eq ptr %496, null + br i1 %cmp.i.i360.i.i.i, label %if.then.i.i369.i.i.i, label %lor.lhs.false.i.i361.i.i.i + +lor.lhs.false.i.i361.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i108.i.i + %arrayidx.i.i362.i.i.i = getelementptr inbounds i32, ptr %496, i64 -1 + %497 = load i32, ptr %arrayidx.i.i362.i.i.i, align 4 + %arrayidx4.i.i363.i.i.i = getelementptr inbounds i32, ptr %496, i64 -2 + %498 = load i32, ptr %arrayidx4.i.i363.i.i.i, align 4 + %cmp5.i.i364.i.i.i = icmp eq i32 %497, %498 + br i1 %cmp5.i.i364.i.i.i, label %if.then.i.i369.i.i.i, label %invoke.cont180.i.i.i + +if.then.i.i369.i.i.i: ; preds = %lor.lhs.false.i.i361.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i108.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i) + to label %.noexc373.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc373.i.i.i: ; preds = %if.then.i.i369.i.i.i + %.pre.i.i370.i.i.i = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx8.phi.trans.insert.i.i371.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i370.i.i.i, i64 -1 + %.pre1.i.i372.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i371.i.i.i, align 4 + br label %invoke.cont180.i.i.i + +invoke.cont180.i.i.i: ; preds = %.noexc373.i.i.i, %lor.lhs.false.i.i361.i.i.i + %499 = phi i32 [ %.pre1.i.i372.i.i.i, %.noexc373.i.i.i ], [ %497, %lor.lhs.false.i.i361.i.i.i ] + %500 = phi ptr [ %.pre.i.i370.i.i.i, %.noexc373.i.i.i ], [ %496, %lor.lhs.false.i.i361.i.i.i ] + %idx.ext.i.i365.i.i.i = zext i32 %499 to i64 + %add.ptr.i.i366.i.i.i = getelementptr inbounds ptr, ptr %500, i64 %idx.ext.i.i365.i.i.i + store ptr %494, ptr %add.ptr.i.i366.i.i.i, align 8 + %501 = load ptr, ptr %m_nodes.i.i.i, align 8 + %arrayidx10.i.i367.i.i.i = getelementptr inbounds i32, ptr %501, i64 -1 + %502 = load i32, ptr %arrayidx10.i.i367.i.i.i, align 4 + %inc.i.i368.i.i.i = add i32 %502, 1 + store i32 %inc.i.i368.i.i.i, ptr %arrayidx10.i.i367.i.i.i, align 4 + %503 = load ptr, ptr %m_bindings.i.i.i, align 8 + %cmp.i374.i.i.i = icmp eq ptr %503, null + br i1 %cmp.i374.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i, label %if.then.i380.i.i.i + +if.then.i380.i.i.i: ; preds = %invoke.cont180.i.i.i + %arrayidx.i376.i.i.i = getelementptr inbounds i32, ptr %503, i64 -1 + %504 = load i32, ptr %arrayidx.i376.i.i.i, align 4 + %sub.i109.i.i = sub i32 %504, %346 + store i32 %sub.i109.i.i, ptr %arrayidx.i376.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i: ; preds = %if.then.i380.i.i.i, %invoke.cont180.i.i.i + %505 = load ptr, ptr %m_shifts.i.i.i, align 8 + %cmp.i383.i.i.i = icmp eq ptr %505, null + br i1 %cmp.i383.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i, label %if.then.i388.i.i.i + +if.then.i388.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i + %arrayidx.i385.i.i.i = getelementptr inbounds i32, ptr %505, i64 -1 + %506 = load i32, ptr %arrayidx.i385.i.i.i, align 4 + %sub189.i.i.i = sub i32 %506, %346 + store i32 %sub189.i.i.i, ptr %arrayidx.i385.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i: ; preds = %if.then.i388.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont191.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont191.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit - %506 = load ptr, ptr %m_r.i74.i, align 8 - %bf.load196.i.i = load i32, ptr %89, align 8 - %bf.clear197.i.i = and i32 %bf.load196.i.i, 1 - %tobool.i78.i.not = icmp eq i32 %bf.clear197.i.i, 0 - br i1 %tobool.i78.i.not, label %invoke.cont198.i.i, label %if.then.i605 - -if.then.i605: ; preds = %invoke.cont191.i.i - %507 = load ptr, ptr %m_pr.i67.i, align 8 - invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %506, ptr noundef %507) - to label %invoke.cont198.i.ithread-pre-split unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont198.i.ithread-pre-split: ; preds = %if.then.i605 - %.pr2801 = load ptr, ptr %m_r.i74.i, align 8 - br label %invoke.cont198.i.i - -invoke.cont198.i.i: ; preds = %invoke.cont198.i.ithread-pre-split, %invoke.cont191.i.i - %508 = phi ptr [ %.pr2801, %invoke.cont198.i.ithread-pre-split ], [ %506, %invoke.cont191.i.i ] - %tobool.not.i3.i595 = icmp eq ptr %508, null - br i1 %tobool.not.i3.i595, label %invoke.cont200.i.i, label %if.then.i.i.i596 - -if.then.i.i.i596: ; preds = %invoke.cont198.i.i - %509 = load ptr, ptr %m_manager.i.i745, align 8 - %m_ref_count.i.i.i.i598 = getelementptr inbounds %class.ast, ptr %508, i64 0, i32 2 - %510 = load i32, ptr %m_ref_count.i.i.i.i598, align 4 - %dec.i.i.i.i599 = add i32 %510, -1 - store i32 %dec.i.i.i.i599, ptr %m_ref_count.i.i.i.i598, align 4 - %cmp.i.i.i600 = icmp eq i32 %dec.i.i.i.i599, 0 - br i1 %cmp.i.i.i600, label %if.then2.i.i.i601, label %invoke.cont200.i.i - -if.then2.i.i.i601: ; preds = %if.then.i.i.i596 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %509, ptr noundef nonnull %508) - to label %invoke.cont200.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont200.i.i: ; preds = %if.then.i.i.i596, %invoke.cont198.i.i, %if.then2.i.i.i601 - store ptr null, ptr %m_r.i74.i, align 8 - %511 = load ptr, ptr %m_pr.i67.i, align 8 - %tobool.not.i3.i586 = icmp eq ptr %511, null - br i1 %tobool.not.i3.i586, label %invoke.cont203.i.i, label %if.then.i.i.i587 - -if.then.i.i.i587: ; preds = %invoke.cont200.i.i - %512 = load ptr, ptr %m_manager.i.i816, align 8 - %m_ref_count.i.i.i.i589 = getelementptr inbounds %class.ast, ptr %511, i64 0, i32 2 - %513 = load i32, ptr %m_ref_count.i.i.i.i589, align 4 - %dec.i.i.i.i590 = add i32 %513, -1 - store i32 %dec.i.i.i.i590, ptr %m_ref_count.i.i.i.i589, align 4 - %cmp.i.i.i591 = icmp eq i32 %dec.i.i.i.i590, 0 - br i1 %cmp.i.i.i591, label %if.then2.i.i.i592, label %invoke.cont203.i.i - -if.then2.i.i.i592: ; preds = %if.then.i.i.i587 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %512, ptr noundef nonnull %511) - to label %invoke.cont203.i.i unwind label %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont203.i.i: ; preds = %if.then.i.i.i587, %invoke.cont200.i.i, %if.then2.i.i.i592 - store ptr null, ptr %m_pr.i67.i, align 8 - %514 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i583 = getelementptr inbounds i32, ptr %514, i64 -1 - %515 = load i32, ptr %arrayidx.i583, align 4 - %dec.i = add i32 %515, -1 - store i32 %dec.i, ptr %arrayidx.i583, align 4 - %516 = load ptr, ptr %m_r.i74.i, align 8 - %this.val59.i80.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i = icmp eq ptr %87, %516 - %cmp.i.i.i578 = icmp eq ptr %this.val59.i80.i, null - %or.cond.i = select i1 %cmp.not.i, i1 true, i1 %cmp.i.i.i578 - br i1 %or.cond.i, label %invoke.cont208.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %invoke.cont203.i.i - %arrayidx.i.i.i579 = getelementptr inbounds i32, ptr %this.val59.i80.i, i64 -1 - %517 = load i32, ptr %arrayidx.i.i.i579, align 4 - %cmp3.i.i.i = icmp eq i32 %517, 0 - br i1 %cmp3.i.i.i, label %invoke.cont208.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - %518 = add i32 %517, -1 - %519 = zext i32 %518 to i64 - %m_new_child.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i80.i, i64 %519, i32 1 - %bf.load.i.i580 = load i32, ptr %m_new_child.i.i, align 8 - %bf.set.i.i581 = or i32 %bf.load.i.i580, 2 - store i32 %bf.set.i.i581, ptr %m_new_child.i.i, align 8 - br label %invoke.cont208.i.i - -invoke.cont208.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %invoke.cont203.i.i - %520 = load ptr, ptr %m_nodes.i.i912, align 8 - %cmp.i.i.i554 = icmp eq ptr %520, null - br i1 %cmp.i.i.i554, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit577, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i555 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i555: ; preds = %invoke.cont208.i.i - %arrayidx.i.i.i556 = getelementptr inbounds i32, ptr %520, i64 -1 - %521 = load i32, ptr %arrayidx.i.i.i556, align 4 - %522 = zext i32 %521 to i64 - %add.ptr.i.i557 = getelementptr inbounds ptr, ptr %520, i64 %522 - %cmp3.i.not.i.i558 = icmp eq i32 %521, 0 - br i1 %cmp3.i.not.i.i558, label %if.then.i.i.i.i.i572, label %for.body.i.i.i559 - -for.body.i.i.i559: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i555, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i566 - %it.04.i.i.i560 = phi ptr [ %incdec.ptr.i.i.i567, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i566 ], [ %520, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i555 ] - %523 = load ptr, ptr %it.04.i.i.i560, align 8 - %524 = load ptr, ptr %new_no_pats.i.i, align 8 - %tobool.not.i.i.i.i.i.i561 = icmp eq ptr %523, null - br i1 %tobool.not.i.i.i.i.i.i561, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i566, label %if.then.i.i.i.i.i.i562 - -if.then.i.i.i.i.i.i562: ; preds = %for.body.i.i.i559 - %m_ref_count.i.i.i.i.i.i.i563 = getelementptr inbounds %class.ast, ptr %523, i64 0, i32 2 - %525 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i563, align 4 - %dec.i.i.i.i.i.i.i564 = add i32 %525, -1 - store i32 %dec.i.i.i.i.i.i.i564, ptr %m_ref_count.i.i.i.i.i.i.i563, align 4 - %cmp.i.i.i.i.i.i565 = icmp eq i32 %dec.i.i.i.i.i.i.i564, 0 - br i1 %cmp.i.i.i.i.i.i565, label %if.then2.i.i.i.i.i.i575, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i566 - -if.then2.i.i.i.i.i.i575: ; preds = %if.then.i.i.i.i.i.i562 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %524, ptr noundef nonnull %523) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i566 unwind label %terminate.lpad.i.i576 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i566: ; preds = %if.then2.i.i.i.i.i.i575, %if.then.i.i.i.i.i.i562, %for.body.i.i.i559 - %incdec.ptr.i.i.i567 = getelementptr inbounds ptr, ptr %it.04.i.i.i560, i64 1 - %cmp.i1.i.i568 = icmp ult ptr %incdec.ptr.i.i.i567, %add.ptr.i.i557 - br i1 %cmp.i1.i.i568, label %for.body.i.i.i559, label %invoke.cont8.i.i569, !llvm.loop !6 - -invoke.cont8.i.i569: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i566 - %.pre.i.i570 = load ptr, ptr %m_nodes.i.i912, align 8 - %tobool.not.i.i.i.i.i571 = icmp eq ptr %.pre.i.i570, null - br i1 %tobool.not.i.i.i.i.i571, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit577, label %if.then.i.i.i.i.i572 - -if.then.i.i.i.i.i572: ; preds = %invoke.cont8.i.i569, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i555 - %526 = phi ptr [ %.pre.i.i570, %invoke.cont8.i.i569 ], [ %520, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i555 ] - %add.ptr.i.i.i.i.i.i573 = getelementptr inbounds i32, ptr %526, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i573) - to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit577 unwind label %terminate.lpad.i.i.i.i574 - -terminate.lpad.i.i.i.i574: ; preds = %if.then.i.i.i.i.i572 - %527 = landingpad { ptr, i32 } + to label %invoke.cont191.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont191.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i + %507 = load ptr, ptr %m_r.i95.i.i, align 8 + %bf.load196.i.i.i = load i32, ptr %89, align 8 + %bf.clear197.i.i.i = and i32 %bf.load196.i.i.i, 1 + %tobool.not.i110.i.i = icmp eq i32 %bf.clear197.i.i.i, 0 + br i1 %tobool.not.i110.i.i, label %invoke.cont198.i.i.i, label %if.then.i392.i.i.i + +if.then.i392.i.i.i: ; preds = %invoke.cont191.i.i.i + %508 = load ptr, ptr %m_pr.i89.i.i, align 8 + invoke void @_ZN13rewriter_core12cache_resultEP4exprS1_P3app(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %87, ptr noundef %507, ptr noundef %508) + to label %invoke.cont198thread-pre-split.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont198thread-pre-split.i.i.i: ; preds = %if.then.i392.i.i.i + %.pr459.i.i.i = load ptr, ptr %m_r.i95.i.i, align 8 + br label %invoke.cont198.i.i.i + +invoke.cont198.i.i.i: ; preds = %invoke.cont198thread-pre-split.i.i.i, %invoke.cont191.i.i.i + %509 = phi ptr [ %.pr459.i.i.i, %invoke.cont198thread-pre-split.i.i.i ], [ %507, %invoke.cont191.i.i.i ] + %tobool.not.i3.i395.i.i.i = icmp eq ptr %509, null + br i1 %tobool.not.i3.i395.i.i.i, label %invoke.cont200.i.i.i, label %if.then.i.i.i396.i.i.i + +if.then.i.i.i396.i.i.i: ; preds = %invoke.cont198.i.i.i + %510 = load ptr, ptr %m_manager.i.i257.i.i.i, align 8 + %m_ref_count.i.i.i.i398.i.i.i = getelementptr inbounds %class.ast, ptr %509, i64 0, i32 2 + %511 = load i32, ptr %m_ref_count.i.i.i.i398.i.i.i, align 4 + %dec.i.i.i.i399.i.i.i = add i32 %511, -1 + store i32 %dec.i.i.i.i399.i.i.i, ptr %m_ref_count.i.i.i.i398.i.i.i, align 4 + %cmp.i.i.i400.i.i.i = icmp eq i32 %dec.i.i.i.i399.i.i.i, 0 + br i1 %cmp.i.i.i400.i.i.i, label %if.then2.i.i.i401.i.i.i, label %invoke.cont200.i.i.i + +if.then2.i.i.i401.i.i.i: ; preds = %if.then.i.i.i396.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %510, ptr noundef nonnull %509) + to label %invoke.cont200.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont200.i.i.i: ; preds = %if.then2.i.i.i401.i.i.i, %if.then.i.i.i396.i.i.i, %invoke.cont198.i.i.i + store ptr null, ptr %m_r.i95.i.i, align 8 + %512 = load ptr, ptr %m_pr.i89.i.i, align 8 + %tobool.not.i3.i405.i.i.i = icmp eq ptr %512, null + br i1 %tobool.not.i3.i405.i.i.i, label %invoke.cont203.i.i.i, label %if.then.i.i.i406.i.i.i + +if.then.i.i.i406.i.i.i: ; preds = %invoke.cont200.i.i.i + %513 = load ptr, ptr %m_manager.i.i.i.i.i, align 8 + %m_ref_count.i.i.i.i408.i.i.i = getelementptr inbounds %class.ast, ptr %512, i64 0, i32 2 + %514 = load i32, ptr %m_ref_count.i.i.i.i408.i.i.i, align 4 + %dec.i.i.i.i409.i.i.i = add i32 %514, -1 + store i32 %dec.i.i.i.i409.i.i.i, ptr %m_ref_count.i.i.i.i408.i.i.i, align 4 + %cmp.i.i.i410.i.i.i = icmp eq i32 %dec.i.i.i.i409.i.i.i, 0 + br i1 %cmp.i.i.i410.i.i.i, label %if.then2.i.i.i411.i.i.i, label %invoke.cont203.i.i.i + +if.then2.i.i.i411.i.i.i: ; preds = %if.then.i.i.i406.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %513, ptr noundef nonnull %512) + to label %invoke.cont203.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont203.i.i.i: ; preds = %if.then2.i.i.i411.i.i.i, %if.then.i.i.i406.i.i.i, %invoke.cont200.i.i.i + store ptr null, ptr %m_pr.i89.i.i, align 8 + %515 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i414.i.i.i = getelementptr inbounds i32, ptr %515, i64 -1 + %516 = load i32, ptr %arrayidx.i414.i.i.i, align 4 + %dec.i.i112.i.i = add i32 %516, -1 + store i32 %dec.i.i112.i.i, ptr %arrayidx.i414.i.i.i, align 4 + %517 = load ptr, ptr %m_r.i95.i.i, align 8 + %this.val59.i113.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i114.i.i = icmp eq ptr %517, %87 + %cmp.i.i.i415.i115.i.i = icmp eq ptr %this.val59.i113.i.i, null + %or.cond.i.i116.i.i = select i1 %cmp.not.i.i114.i.i, i1 true, i1 %cmp.i.i.i415.i115.i.i + br i1 %or.cond.i.i116.i.i, label %invoke.cont208.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i117.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i117.i.i: ; preds = %invoke.cont203.i.i.i + %arrayidx.i.i.i416.i118.i.i = getelementptr inbounds i32, ptr %this.val59.i113.i.i, i64 -1 + %518 = load i32, ptr %arrayidx.i.i.i416.i118.i.i, align 4 + %cmp3.i.i.i.i119.i.i = icmp eq i32 %518, 0 + br i1 %cmp3.i.i.i.i119.i.i, label %invoke.cont208.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i120.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i120.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i117.i.i + %519 = add i32 %518, -1 + %520 = zext i32 %519 to i64 + %m_new_child.i.i.i121.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val59.i113.i.i, i64 %520, i32 1 + %bf.load.i.i.i.i.i = load i32, ptr %m_new_child.i.i.i121.i.i, align 8 + %bf.set.i.i.i122.i.i = or i32 %bf.load.i.i.i.i.i, 2 + store i32 %bf.set.i.i.i122.i.i, ptr %m_new_child.i.i.i121.i.i, align 8 + br label %invoke.cont208.i.i.i + +invoke.cont208.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i120.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i117.i.i, %invoke.cont203.i.i.i + %521 = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %cmp.i.i.i419.i.i.i = icmp eq ptr %521, null + br i1 %cmp.i.i.i419.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i: ; preds = %invoke.cont208.i.i.i + %arrayidx.i.i.i420.i.i.i = getelementptr inbounds i32, ptr %521, i64 -1 + %522 = load i32, ptr %arrayidx.i.i.i420.i.i.i, align 4 + %523 = zext i32 %522 to i64 + %add.ptr.i.i421.i.i.i = getelementptr inbounds ptr, ptr %521, i64 %523 + %cmp3.i.not.i.i.i.i.i = icmp eq i32 %522, 0 + br i1 %cmp3.i.not.i.i.i.i.i, label %if.then.i.i.i.i.i427.i.i.i, label %for.body.i.i.i.i.i.i + +for.body.i.i.i.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + %it.04.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i ], [ %521, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i ] + %524 = load ptr, ptr %it.04.i.i.i.i.i.i, align 8 + %525 = load ptr, ptr %new_no_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i422.i.i.i = icmp eq ptr %524, null + br i1 %tobool.not.i.i.i.i.i.i422.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i423.i.i.i + +if.then.i.i.i.i.i.i423.i.i.i: ; preds = %for.body.i.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i424.i.i.i = getelementptr inbounds %class.ast, ptr %524, i64 0, i32 2 + %526 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i424.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i.i = add i32 %526, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i424.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i423.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %525, ptr noundef nonnull %524) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i unwind label %terminate.lpad.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i423.i.i.i, %for.body.i.i.i.i.i.i + %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i.i, i64 1 + %cmp.i1.i.i.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i.i, %add.ptr.i.i421.i.i.i + br i1 %cmp.i1.i.i.i.i.i, label %for.body.i.i.i.i.i.i, label %invoke.cont8.i.i.i.i.i, !llvm.loop !6 + +invoke.cont8.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i + %.pre.i.i425.i.i.i = load ptr, ptr %m_nodes.i.i92.i.i.i, align 8 + %tobool.not.i.i.i.i.i426.i.i.i = icmp eq ptr %.pre.i.i425.i.i.i, null + br i1 %tobool.not.i.i.i.i.i426.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i, label %if.then.i.i.i.i.i427.i.i.i + +if.then.i.i.i.i.i427.i.i.i: ; preds = %invoke.cont8.i.i.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i + %527 = phi ptr [ %.pre.i.i425.i.i.i, %invoke.cont8.i.i.i.i.i ], [ %521, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i ] + %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds i32, ptr %527, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i.i.i.i) + to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i unwind label %terminate.lpad.i.i.i.i.i.i.i + +terminate.lpad.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i427.i.i.i + %528 = landingpad { ptr, i32 } catch ptr null - %528 = extractvalue { ptr, i32 } %527, 0 - call void @__clang_call_terminate(ptr %528) #14 + %529 = extractvalue { ptr, i32 } %528, 0 + tail call void @__clang_call_terminate(ptr %529) #14 unreachable -terminate.lpad.i.i576: ; preds = %if.then2.i.i.i.i.i.i575 - %529 = landingpad { ptr, i32 } +terminate.lpad.i.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i.i + %530 = landingpad { ptr, i32 } catch ptr null - %530 = extractvalue { ptr, i32 } %529, 0 - call void @__clang_call_terminate(ptr %530) #14 + %531 = extractvalue { ptr, i32 } %530, 0 + tail call void @__clang_call_terminate(ptr %531) #14 unreachable -_ZN10ref_vectorI4expr11ast_managerED2Ev.exit577: ; preds = %invoke.cont208.i.i, %invoke.cont8.i.i569, %if.then.i.i.i.i.i572 - %531 = load ptr, ptr %m_nodes.i.i927, align 8 - %cmp.i.i.i547 = icmp eq ptr %531, null - br i1 %cmp.i.i.i547, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit577 - %arrayidx.i.i.i548 = getelementptr inbounds i32, ptr %531, i64 -1 - %532 = load i32, ptr %arrayidx.i.i.i548, align 4 - %533 = zext i32 %532 to i64 - %add.ptr.i.i549 = getelementptr inbounds ptr, ptr %531, i64 %533 - %cmp3.i.not.i.i = icmp eq i32 %532, 0 - br i1 %cmp3.i.not.i.i, label %if.then.i.i.i.i.i552, label %for.body.i.i.i - -for.body.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %it.04.i.i.i = phi ptr [ %incdec.ptr.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i ], [ %531, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %534 = load ptr, ptr %it.04.i.i.i, align 8 - %535 = load ptr, ptr %new_pats.i.i, align 8 - %tobool.not.i.i.i.i.i.i = icmp eq ptr %534, null - br i1 %tobool.not.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i, label %if.then.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %for.body.i.i.i - %m_ref_count.i.i.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %534, i64 0, i32 2 - %536 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 - %dec.i.i.i.i.i.i.i = add i32 %536, -1 - store i32 %dec.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i, align 4 - %cmp.i.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i.i.i, label %if.then2.i.i.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - -if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %535, ptr noundef nonnull %534) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i unwind label %terminate.lpad.i.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %for.body.i.i.i - %incdec.ptr.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i, i64 1 - %cmp.i1.i.i = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i549 - br i1 %cmp.i1.i.i, label %for.body.i.i.i, label %invoke.cont8.i.i, !llvm.loop !6 - -invoke.cont8.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %.pre.i.i550 = load ptr, ptr %m_nodes.i.i927, align 8 - %tobool.not.i.i.i.i.i551 = icmp eq ptr %.pre.i.i550, null - br i1 %tobool.not.i.i.i.i.i551, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i.i.i552 - -if.then.i.i.i.i.i552: ; preds = %invoke.cont8.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - %537 = phi ptr [ %.pre.i.i550, %invoke.cont8.i.i ], [ %531, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] - %add.ptr.i.i.i.i.i.i = getelementptr inbounds i32, ptr %537, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i) - to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i.i.i.i - -terminate.lpad.i.i.i.i: ; preds = %if.then.i.i.i.i.i552 - %538 = landingpad { ptr, i32 } +_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i: ; preds = %if.then.i.i.i.i.i427.i.i.i, %invoke.cont8.i.i.i.i.i, %invoke.cont208.i.i.i + %532 = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %cmp.i.i.i429.i.i.i = icmp eq ptr %532, null + br i1 %cmp.i.i.i429.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i + %arrayidx.i.i.i431.i.i.i = getelementptr inbounds i32, ptr %532, i64 -1 + %533 = load i32, ptr %arrayidx.i.i.i431.i.i.i, align 4 + %534 = zext i32 %533 to i64 + %add.ptr.i.i432.i.i.i = getelementptr inbounds ptr, ptr %532, i64 %534 + %cmp3.i.not.i.i433.i.i.i = icmp eq i32 %533, 0 + br i1 %cmp3.i.not.i.i433.i.i.i, label %if.then.i.i.i.i.i447.i.i.i, label %for.body.i.i.i434.i.i.i + +for.body.i.i.i434.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + %it.04.i.i.i435.i.i.i = phi ptr [ %incdec.ptr.i.i.i442.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i ], [ %532, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i ] + %535 = load ptr, ptr %it.04.i.i.i435.i.i.i, align 8 + %536 = load ptr, ptr %new_pats.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i436.i.i.i = icmp eq ptr %535, null + br i1 %tobool.not.i.i.i.i.i.i436.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i, label %if.then.i.i.i.i.i.i437.i.i.i + +if.then.i.i.i.i.i.i437.i.i.i: ; preds = %for.body.i.i.i434.i.i.i + %m_ref_count.i.i.i.i.i.i.i438.i.i.i = getelementptr inbounds %class.ast, ptr %535, i64 0, i32 2 + %537 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i438.i.i.i, align 4 + %dec.i.i.i.i.i.i.i439.i.i.i = add i32 %537, -1 + store i32 %dec.i.i.i.i.i.i.i439.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i438.i.i.i, align 4 + %cmp.i.i.i.i.i.i440.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i439.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i440.i.i.i, label %if.then2.i.i.i.i.i.i450.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + +if.then2.i.i.i.i.i.i450.i.i.i: ; preds = %if.then.i.i.i.i.i.i437.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %536, ptr noundef nonnull %535) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i unwind label %terminate.lpad.i.i451.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i: ; preds = %if.then2.i.i.i.i.i.i450.i.i.i, %if.then.i.i.i.i.i.i437.i.i.i, %for.body.i.i.i434.i.i.i + %incdec.ptr.i.i.i442.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i435.i.i.i, i64 1 + %cmp.i1.i.i443.i.i.i = icmp ult ptr %incdec.ptr.i.i.i442.i.i.i, %add.ptr.i.i432.i.i.i + br i1 %cmp.i1.i.i443.i.i.i, label %for.body.i.i.i434.i.i.i, label %invoke.cont8.i.i444.i.i.i, !llvm.loop !6 + +invoke.cont8.i.i444.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i441.i.i.i + %.pre.i.i445.i.i.i = load ptr, ptr %m_nodes.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i446.i.i.i = icmp eq ptr %.pre.i.i445.i.i.i, null + br i1 %tobool.not.i.i.i.i.i446.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i.i.i447.i.i.i + +if.then.i.i.i.i.i447.i.i.i: ; preds = %invoke.cont8.i.i444.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i + %538 = phi ptr [ %.pre.i.i445.i.i.i, %invoke.cont8.i.i444.i.i.i ], [ %532, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i430.i.i.i ] + %add.ptr.i.i.i.i.i.i448.i.i.i = getelementptr inbounds i32, ptr %538, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i448.i.i.i) + to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i449.i.i.i + +terminate.lpad.i.i.i.i449.i.i.i: ; preds = %if.then.i.i.i.i.i447.i.i.i + %539 = landingpad { ptr, i32 } catch ptr null - %539 = extractvalue { ptr, i32 } %538, 0 - call void @__clang_call_terminate(ptr %539) #14 + %540 = extractvalue { ptr, i32 } %539, 0 + tail call void @__clang_call_terminate(ptr %540) #14 unreachable -terminate.lpad.i.i: ; preds = %if.then2.i.i.i.i.i.i - %540 = landingpad { ptr, i32 } +terminate.lpad.i.i451.i.i.i: ; preds = %if.then2.i.i.i.i.i.i450.i.i.i + %541 = landingpad { ptr, i32 } catch ptr null - %541 = extractvalue { ptr, i32 } %540, 0 - call void @__clang_call_terminate(ptr %541) #14 + %542 = extractvalue { ptr, i32 } %541, 0 + tail call void @__clang_call_terminate(ptr %542) #14 unreachable -ehcleanup.i.i: ; preds = %lpad147.i.i, %lpad96.i.i - %.pn.i69.i = phi { ptr, i32 } [ %lpad.phi2871, %lpad147.i.i ], [ %455, %lpad96.i.i ] - call void @_ZN7obj_refI10quantifier11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_q.i.i) #15 - br label %ehcleanup209.i.i +ehcleanup.i.i.i: ; preds = %lpad147.i.i.i, %lpad96.i.i.i + %.pn.i93.i.i = phi { ptr, i32 } [ %lpad.phi462.i.i.i, %lpad147.i.i.i ], [ %456, %lpad96.i.i.i ] + call void @_ZN7obj_refI10quantifier11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_q.i.i.i) #15 + br label %ehcleanup209.i.i.i -ehcleanup209.i.i: ; preds = %lpad37.i.i.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i.loopexit.split-lp.loopexit, %ehcleanup.i.i - %.pn50.i.i = phi { ptr, i32 } [ %.pn.i69.i, %ehcleanup.i.i ], [ %lpad.loopexit2866, %lpad37.i.i.loopexit ], [ %lpad.loopexit2872, %lpad37.i.i.loopexit.split-lp.loopexit ], [ %lpad.loopexit2875, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2878, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2881, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2882, %lpad37.i.i.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i) #15 - br label %ehcleanup210.i.i +ehcleanup209.i.i.i: ; preds = %ehcleanup.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i, %lpad37.loopexit.i.i.i + %.pn50.i.i.i = phi { ptr, i32 } [ %.pn.i93.i.i, %ehcleanup.i.i.i ], [ %lpad.loopexit.i123.i.i, %lpad37.loopexit.i.i.i ], [ %lpad.loopexit463.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit466.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit468.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit471.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i ], [ %lpad.loopexit.split-lp.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i) #15 + br label %ehcleanup210.i.i.i -ehcleanup210.i.i: ; preds = %lpad.i923, %ehcleanup209.i.i - %.pn50.pn.i.i = phi { ptr, i32 } [ %.pn50.i.i, %ehcleanup209.i.i ], [ %404, %lpad.i923 ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i) #15 +ehcleanup210.i.i.i: ; preds = %ehcleanup209.i.i.i, %lpad.i117.i.body.i.i + %.pn50.pn.i.i.i = phi { ptr, i32 } [ %.pn50.i.i.i, %ehcleanup209.i.i.i ], [ %eh.lpad-body.i.i, %lpad.i117.i.body.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i) #15 br label %common.resume -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i: ; preds = %_ZNK10quantifier9get_childEj.exit, %if.then.i.i.i.i.i552, %invoke.cont8.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit577 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_q.i.i) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2.i.i) - br label %while.cond.i.backedgethread-pre-split - -sw.bb36.i: ; preds = %if.end31.i - %542 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i98.i = getelementptr inbounds i32, ptr %542, i64 -1 - %543 = load i32, ptr %arrayidx.i98.i, align 4 - %dec.i99.i = add i32 %543, -1 - store i32 %dec.i99.i, ptr %arrayidx.i98.i, align 4 - call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %87) - br label %while.cond.i.backedgethread-pre-split - -sw.default.i: ; preds = %if.end31.i - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 793, ptr noundef nonnull @.str.6) - call void @exit(i32 noundef 114) #14 +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb1EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i, %if.then.i.i.i.i.i447.i.i.i, %invoke.cont8.i.i444.i.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_q.i.i.i) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pr2.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i + +sw.bb36.i.i: ; preds = %if.end31.i.i + %543 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i168.i.i = getelementptr inbounds i32, ptr %543, i64 -1 + %544 = load i32, ptr %arrayidx.i168.i.i, align 4 + %dec.i169.i.i = add i32 %544, -1 + store i32 %dec.i169.i.i, ptr %arrayidx.i168.i.i, align 4 + tail call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %87) + br label %while.cond.backedgethread-pre-split.i.i + +sw.default.i.i: ; preds = %if.end31.i.i + tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 793, ptr noundef nonnull @.str.6) + tail call void @exit(i32 noundef 114) #14 unreachable -while.end.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, %while.cond.i.backedge, %if.else.i - %m_result_stack.i100.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i101.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %544 = load ptr, ptr %m_nodes.i101.i, align 8 - %cmp.i.i.i102.i = icmp eq ptr %544, null - br i1 %cmp.i.i.i102.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i.i - -if.end.i.i.i.i: ; preds = %while.end.i - %arrayidx.i.i.i103.i = getelementptr inbounds i32, ptr %544, i64 -1 - %545 = load i32, ptr %arrayidx.i.i.i103.i, align 4 - %546 = add i32 %545, -1 - %547 = zext i32 %546 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i.i, %while.end.i - %retval.0.i.i.i.i = phi i64 [ %547, %if.end.i.i.i.i ], [ 4294967295, %while.end.i ] - %arrayidx.i1.i.i.i = getelementptr inbounds ptr, ptr %544, i64 %retval.0.i.i.i.i - %548 = load ptr, ptr %arrayidx.i1.i.i.i, align 8 - %tobool.not.i.i86 = icmp eq ptr %548, null - br i1 %tobool.not.i.i86, label %if.end.i104.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i - -_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %548, i64 0, i32 2 - %549 = load i32, ptr %m_ref_count.i.i.i.i, align 4 - %inc.i.i.i.i = add i32 %549, 1 - store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 - br label %if.end.i104.i - -if.end.i104.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %550 = load ptr, ptr %result, align 8 - %tobool.not.i3.i.i = icmp eq ptr %550, null - br i1 %tobool.not.i3.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %if.end.i104.i - %m_manager.i.i.i = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 - %551 = load ptr, ptr %m_manager.i.i.i, align 8 - %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %550, i64 0, i32 2 - %552 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 - %dec.i.i.i.i.i = add i32 %552, -1 - store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 - %cmp.i.i.i105.i = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i105.i, label %if.then2.i.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - -if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %551, ptr noundef nonnull %550) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.end.i104.i - store ptr %548, ptr %result, align 8 - %553 = load ptr, ptr %m_nodes.i101.i, align 8 - %cmp.i.i.i108.i = icmp eq ptr %553, null - br i1 %cmp.i.i.i108.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i109.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - %.pre.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i = add i32 %.pre.i.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - -if.end.i.i.i109.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i - %arrayidx.i.i.i110.i = getelementptr inbounds i32, ptr %553, i64 -1 - %554 = load i32, ptr %arrayidx.i.i.i110.i, align 4 - %555 = add i32 %554, -1 - %556 = zext i32 %555 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i109.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i - %dec.i.pre-phi.i.i = phi i32 [ %.pre1.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %555, %if.end.i.i.i109.i ] - %retval.0.i.i.i111.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i ], [ %556, %if.end.i.i.i109.i ] - %arrayidx.i1.i.i112.i = getelementptr inbounds ptr, ptr %553, i64 %retval.0.i.i.i111.i - %557 = load ptr, ptr %arrayidx.i1.i.i112.i, align 8 - %arrayidx.i.i113.i = getelementptr inbounds i32, ptr %553, i64 -1 - store i32 %dec.i.pre-phi.i.i, ptr %arrayidx.i.i113.i, align 4 - %558 = load ptr, ptr %m_result_stack.i100.i, align 8 - %tobool.not.i.i.i.i114.i = icmp eq ptr %557, null - br i1 %tobool.not.i.i.i.i114.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i115.i - -if.then.i.i.i.i115.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - %m_ref_count.i.i.i.i.i116.i = getelementptr inbounds %class.ast, ptr %557, i64 0, i32 2 - %559 = load i32, ptr %m_ref_count.i.i.i.i.i116.i, align 4 - %dec.i.i.i.i.i.i87 = add i32 %559, -1 - store i32 %dec.i.i.i.i.i.i87, ptr %m_ref_count.i.i.i.i.i116.i, align 4 - %cmp.i.i.i.i.i88 = icmp eq i32 %dec.i.i.i.i.i.i87, 0 - br i1 %cmp.i.i.i.i.i88, label %if.then2.i.i.i.i.i92, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -if.then2.i.i.i.i.i92: ; preds = %if.then.i.i.i.i115.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %558, ptr noundef nonnull %557) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i.i92, %if.then.i.i.i.i115.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i - %m_result_pr_stack.i117.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 - %m_nodes.i118.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %560 = load ptr, ptr %m_nodes.i118.i, align 8 - %cmp.i.i.i119.i = icmp eq ptr %560, null - br i1 %cmp.i.i.i119.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i, label %if.end.i.i.i120.i - -if.end.i.i.i120.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %arrayidx.i.i.i121.i = getelementptr inbounds i32, ptr %560, i64 -1 - %561 = load i32, ptr %arrayidx.i.i.i121.i, align 4 - %562 = add i32 %561, -1 - %563 = zext i32 %562 to i64 - br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - -_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i: ; preds = %if.end.i.i.i120.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %retval.0.i.i.i122.i = phi i64 [ %563, %if.end.i.i.i120.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i ] - %arrayidx.i1.i.i123.i = getelementptr inbounds ptr, ptr %560, i64 %retval.0.i.i.i122.i - %564 = load ptr, ptr %arrayidx.i1.i.i123.i, align 8 - %tobool.not.i124.i = icmp eq ptr %564, null - br i1 %tobool.not.i124.i, label %if.end.i128.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i125.i - -_ZN11ast_manager7inc_refEP3ast.exit.i125.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %m_ref_count.i.i.i126.i = getelementptr inbounds %class.ast, ptr %564, i64 0, i32 2 - %565 = load i32, ptr %m_ref_count.i.i.i126.i, align 4 - %inc.i.i.i127.i = add i32 %565, 1 - store i32 %inc.i.i.i127.i, ptr %m_ref_count.i.i.i126.i, align 4 - br label %if.end.i128.i - -if.end.i128.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i125.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i - %566 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i129.i = icmp eq ptr %566, null - br i1 %tobool.not.i3.i129.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i, label %if.then.i.i.i130.i - -if.then.i.i.i130.i: ; preds = %if.end.i128.i - %m_manager.i.i131.i = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 - %567 = load ptr, ptr %m_manager.i.i131.i, align 8 - %m_ref_count.i.i.i.i132.i = getelementptr inbounds %class.ast, ptr %566, i64 0, i32 2 - %568 = load i32, ptr %m_ref_count.i.i.i.i132.i, align 4 - %dec.i.i.i.i133.i = add i32 %568, -1 - store i32 %dec.i.i.i.i133.i, ptr %m_ref_count.i.i.i.i132.i, align 4 - %cmp.i.i.i134.i = icmp eq i32 %dec.i.i.i.i133.i, 0 - br i1 %cmp.i.i.i134.i, label %if.then2.i.i.i135.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - -if.then2.i.i.i135.i: ; preds = %if.then.i.i.i130.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %567, ptr noundef nonnull %566) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i: ; preds = %if.then2.i.i.i135.i, %if.then.i.i.i130.i, %if.end.i128.i - store ptr %564, ptr %result_pr, align 8 - %569 = load ptr, ptr %m_nodes.i118.i, align 8 - %cmp.i.i.i138.i = icmp eq ptr %569, null - br i1 %cmp.i.i.i138.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i, label %if.end.i.i.i139.i - -entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - %.pre.i151.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i152.i = add i32 %.pre.i151.i, -1 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - -if.end.i.i.i139.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i - %arrayidx.i.i.i140.i = getelementptr inbounds i32, ptr %569, i64 -1 - %570 = load i32, ptr %arrayidx.i.i.i140.i, align 4 - %571 = add i32 %570, -1 - %572 = zext i32 %571 to i64 - br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - -_ZN6vectorIP3appLb0EjE4backEv.exit.i.i: ; preds = %if.end.i.i.i139.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i - %dec.i.pre-phi.i141.i = phi i32 [ %.pre1.i152.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %571, %if.end.i.i.i139.i ] - %retval.0.i.i.i142.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i ], [ %572, %if.end.i.i.i139.i ] - %arrayidx.i1.i.i143.i = getelementptr inbounds ptr, ptr %569, i64 %retval.0.i.i.i142.i - %573 = load ptr, ptr %arrayidx.i1.i.i143.i, align 8 - %arrayidx.i.i144.i = getelementptr inbounds i32, ptr %569, i64 -1 - store i32 %dec.i.pre-phi.i141.i, ptr %arrayidx.i.i144.i, align 4 - %574 = load ptr, ptr %m_result_pr_stack.i117.i, align 8 - %tobool.not.i.i.i.i145.i = icmp eq ptr %573, null - br i1 %tobool.not.i.i.i.i145.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, label %if.then.i.i.i.i146.i - -if.then.i.i.i.i146.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - %m_ref_count.i.i.i.i.i147.i = getelementptr inbounds %class.ast, ptr %573, i64 0, i32 2 - %575 = load i32, ptr %m_ref_count.i.i.i.i.i147.i, align 4 - %dec.i.i.i.i.i148.i = add i32 %575, -1 - store i32 %dec.i.i.i.i.i148.i, ptr %m_ref_count.i.i.i.i.i147.i, align 4 - %cmp.i.i.i.i149.i = icmp eq i32 %dec.i.i.i.i.i148.i, 0 - br i1 %cmp.i.i.i.i149.i, label %if.then2.i.i.i.i150.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -if.then2.i.i.i.i150.i: ; preds = %if.then.i.i.i.i146.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %574, ptr noundef nonnull %573) - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i: ; preds = %if.then2.i.i.i.i150.i, %if.then.i.i.i.i146.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i - %576 = load ptr, ptr %result_pr, align 8 - %cmp.i89 = icmp eq ptr %576, null - br i1 %cmp.i89, label %if.then48.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -if.then48.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i - %this.val.i90 = load ptr, ptr %28, align 8 - %577 = load ptr, ptr %m_root.i, align 8 - %call50.i = call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i90, ptr noundef %577) - %tobool.not.i153.i = icmp eq ptr %call50.i, null - br i1 %tobool.not.i153.i, label %if.end.i157.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i154.i - -_ZN11ast_manager7inc_refEP3ast.exit.i154.i: ; preds = %if.then48.i - %m_ref_count.i.i.i155.i = getelementptr inbounds %class.ast, ptr %call50.i, i64 0, i32 2 - %578 = load i32, ptr %m_ref_count.i.i.i155.i, align 4 - %inc.i.i.i156.i = add i32 %578, 1 - store i32 %inc.i.i.i156.i, ptr %m_ref_count.i.i.i155.i, align 4 - br label %if.end.i157.i - -if.end.i157.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i154.i, %if.then48.i - %579 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i158.i = icmp eq ptr %579, null - br i1 %tobool.not.i3.i158.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit165.i, label %if.then.i.i.i159.i - -if.then.i.i.i159.i: ; preds = %if.end.i157.i - %m_manager.i.i160.i = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 - %580 = load ptr, ptr %m_manager.i.i160.i, align 8 - %m_ref_count.i.i.i.i161.i = getelementptr inbounds %class.ast, ptr %579, i64 0, i32 2 - %581 = load i32, ptr %m_ref_count.i.i.i.i161.i, align 4 - %dec.i.i.i.i162.i = add i32 %581, -1 - store i32 %dec.i.i.i.i162.i, ptr %m_ref_count.i.i.i.i161.i, align 4 - %cmp.i.i.i163.i = icmp eq i32 %dec.i.i.i.i162.i, 0 - br i1 %cmp.i.i.i163.i, label %if.then2.i.i.i164.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit165.i - -if.then2.i.i.i164.i: ; preds = %if.then.i.i.i159.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %580, ptr noundef nonnull %579) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit165.i - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit165.i: ; preds = %if.then2.i.i.i164.i, %if.then.i.i.i159.i, %if.end.i157.i - store ptr %call50.i, ptr %result_pr, align 8 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -unreachable.i78: ; preds = %invoke.cont11.i +while.end.i.i: ; preds = %while.cond.backedge.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %if.else.i + %m_result_stack.i170.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i171.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %545 = load ptr, ptr %m_nodes.i171.i.i, align 8 + %cmp.i.i.i172.i.i = icmp eq ptr %545, null + br i1 %cmp.i.i.i172.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i, label %if.end.i.i.i173.i.i + +if.end.i.i.i173.i.i: ; preds = %while.end.i.i + %arrayidx.i.i.i174.i.i = getelementptr inbounds i32, ptr %545, i64 -1 + %546 = load i32, ptr %arrayidx.i.i.i174.i.i, align 4 + %547 = add i32 %546, -1 + %548 = zext i32 %547 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i: ; preds = %if.end.i.i.i173.i.i, %while.end.i.i + %retval.0.i.i.i175.i.i = phi i64 [ %548, %if.end.i.i.i173.i.i ], [ 4294967295, %while.end.i.i ] + %arrayidx.i1.i.i.i.i = getelementptr inbounds ptr, ptr %545, i64 %retval.0.i.i.i175.i.i + %549 = load ptr, ptr %arrayidx.i1.i.i.i.i, align 8 + %tobool.not.i176.i.i = icmp eq ptr %549, null + br i1 %tobool.not.i176.i.i, label %if.end.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %m_ref_count.i.i.i.i98.i = getelementptr inbounds %class.ast, ptr %549, i64 0, i32 2 + %550 = load i32, ptr %m_ref_count.i.i.i.i98.i, align 4 + %inc.i.i.i177.i.i = add i32 %550, 1 + store i32 %inc.i.i.i177.i.i, ptr %m_ref_count.i.i.i.i98.i, align 4 + br label %if.end.i.i.i + +if.end.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %551 = load ptr, ptr %result, align 8 + %tobool.not.i3.i.i.i = icmp eq ptr %551, null + br i1 %tobool.not.i3.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i, label %if.then.i.i.i178.i.i + +if.then.i.i.i178.i.i: ; preds = %if.end.i.i.i + %m_manager.i.i179.i.i = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 + %552 = load ptr, ptr %m_manager.i.i179.i.i, align 8 + %m_ref_count.i.i.i.i180.i.i = getelementptr inbounds %class.ast, ptr %551, i64 0, i32 2 + %553 = load i32, ptr %m_ref_count.i.i.i.i180.i.i, align 4 + %dec.i.i.i.i181.i.i = add i32 %553, -1 + store i32 %dec.i.i.i.i181.i.i, ptr %m_ref_count.i.i.i.i180.i.i, align 4 + %cmp.i.i.i182.i.i = icmp eq i32 %dec.i.i.i.i181.i.i, 0 + br i1 %cmp.i.i.i182.i.i, label %if.then2.i.i.i183.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + +if.then2.i.i.i183.i.i: ; preds = %if.then.i.i.i178.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %552, ptr noundef nonnull %551) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i: ; preds = %if.then2.i.i.i183.i.i, %if.then.i.i.i178.i.i, %if.end.i.i.i + store ptr %549, ptr %result, align 8 + %554 = load ptr, ptr %m_nodes.i171.i.i, align 8 + %cmp.i.i.i186.i.i = icmp eq ptr %554, null + br i1 %cmp.i.i.i186.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i, label %if.end.i.i.i187.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + %.pre.i198.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i = add i32 %.pre.i198.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + +if.end.i.i.i187.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i + %arrayidx.i.i.i188.i.i = getelementptr inbounds i32, ptr %554, i64 -1 + %555 = load i32, ptr %arrayidx.i.i.i188.i.i, align 4 + %556 = add i32 %555, -1 + %557 = zext i32 %556 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i187.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i + %dec.i.pre-phi.i.i.i = phi i32 [ %.pre1.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %556, %if.end.i.i.i187.i.i ] + %retval.0.i.i.i189.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %557, %if.end.i.i.i187.i.i ] + %arrayidx.i1.i.i190.i.i = getelementptr inbounds ptr, ptr %554, i64 %retval.0.i.i.i189.i.i + %558 = load ptr, ptr %arrayidx.i1.i.i190.i.i, align 8 + %arrayidx.i.i191.i.i = getelementptr inbounds i32, ptr %554, i64 -1 + store i32 %dec.i.pre-phi.i.i.i, ptr %arrayidx.i.i191.i.i, align 4 + %559 = load ptr, ptr %m_result_stack.i170.i.i, align 8 + %tobool.not.i.i.i.i192.i.i = icmp eq ptr %558, null + br i1 %tobool.not.i.i.i.i192.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i, label %if.then.i.i.i.i193.i.i + +if.then.i.i.i.i193.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + %m_ref_count.i.i.i.i.i194.i.i = getelementptr inbounds %class.ast, ptr %558, i64 0, i32 2 + %560 = load i32, ptr %m_ref_count.i.i.i.i.i194.i.i, align 4 + %dec.i.i.i.i.i195.i.i = add i32 %560, -1 + store i32 %dec.i.i.i.i.i195.i.i, ptr %m_ref_count.i.i.i.i.i194.i.i, align 4 + %cmp.i.i.i.i196.i.i = icmp eq i32 %dec.i.i.i.i.i195.i.i, 0 + br i1 %cmp.i.i.i.i196.i.i, label %if.then2.i.i.i.i197.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +if.then2.i.i.i.i197.i.i: ; preds = %if.then.i.i.i.i193.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %559, ptr noundef nonnull %558) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i: ; preds = %if.then2.i.i.i.i197.i.i, %if.then.i.i.i.i193.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i + %m_result_pr_stack.i199.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10 + %m_nodes.i200.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %561 = load ptr, ptr %m_nodes.i200.i.i, align 8 + %cmp.i.i.i201.i.i = icmp eq ptr %561, null + br i1 %cmp.i.i.i201.i.i, label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i, label %if.end.i.i.i202.i.i + +if.end.i.i.i202.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %arrayidx.i.i.i203.i.i = getelementptr inbounds i32, ptr %561, i64 -1 + %562 = load i32, ptr %arrayidx.i.i.i203.i.i, align 4 + %563 = add i32 %562, -1 + %564 = zext i32 %563 to i64 + br label %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + +_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i: ; preds = %if.end.i.i.i202.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %retval.0.i.i.i204.i.i = phi i64 [ %564, %if.end.i.i.i202.i.i ], [ 4294967295, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i ] + %arrayidx.i1.i.i205.i.i = getelementptr inbounds ptr, ptr %561, i64 %retval.0.i.i.i204.i.i + %565 = load ptr, ptr %arrayidx.i1.i.i205.i.i, align 8 + %tobool.not.i206.i.i = icmp eq ptr %565, null + br i1 %tobool.not.i206.i.i, label %if.end.i210.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i207.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i207.i.i: ; preds = %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %m_ref_count.i.i.i208.i.i = getelementptr inbounds %class.ast, ptr %565, i64 0, i32 2 + %566 = load i32, ptr %m_ref_count.i.i.i208.i.i, align 4 + %inc.i.i.i209.i.i = add i32 %566, 1 + store i32 %inc.i.i.i209.i.i, ptr %m_ref_count.i.i.i208.i.i, align 4 + br label %if.end.i210.i.i + +if.end.i210.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i207.i.i, %_ZNK15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i + %567 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i211.i.i = icmp eq ptr %567, null + br i1 %tobool.not.i3.i211.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i, label %if.then.i.i.i212.i.i + +if.then.i.i.i212.i.i: ; preds = %if.end.i210.i.i + %m_manager.i.i213.i.i = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 + %568 = load ptr, ptr %m_manager.i.i213.i.i, align 8 + %m_ref_count.i.i.i.i214.i.i = getelementptr inbounds %class.ast, ptr %567, i64 0, i32 2 + %569 = load i32, ptr %m_ref_count.i.i.i.i214.i.i, align 4 + %dec.i.i.i.i215.i.i = add i32 %569, -1 + store i32 %dec.i.i.i.i215.i.i, ptr %m_ref_count.i.i.i.i214.i.i, align 4 + %cmp.i.i.i216.i.i = icmp eq i32 %dec.i.i.i.i215.i.i, 0 + br i1 %cmp.i.i.i216.i.i, label %if.then2.i.i.i217.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + +if.then2.i.i.i217.i.i: ; preds = %if.then.i.i.i212.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %568, ptr noundef nonnull %567) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i: ; preds = %if.then2.i.i.i217.i.i, %if.then.i.i.i212.i.i, %if.end.i210.i.i + store ptr %565, ptr %result_pr, align 8 + %570 = load ptr, ptr %m_nodes.i200.i.i, align 8 + %cmp.i.i.i220.i.i = icmp eq ptr %570, null + br i1 %cmp.i.i.i220.i.i, label %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i, label %if.end.i.i.i221.i.i + +entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + %.pre.i233.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i234.i.i = add i32 %.pre.i233.i.i, -1 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + +if.end.i.i.i221.i.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i.i + %arrayidx.i.i.i222.i.i = getelementptr inbounds i32, ptr %570, i64 -1 + %571 = load i32, ptr %arrayidx.i.i.i222.i.i, align 4 + %572 = add i32 %571, -1 + %573 = zext i32 %572 to i64 + br label %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + +_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i: ; preds = %if.end.i.i.i221.i.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i + %dec.i.pre-phi.i223.i.i = phi i32 [ %.pre1.i234.i.i, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %572, %if.end.i.i.i221.i.i ] + %retval.0.i.i.i224.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP3appLb0EjE4backEv.exit_crit_edge.i.i.i ], [ %573, %if.end.i.i.i221.i.i ] + %arrayidx.i1.i.i225.i.i = getelementptr inbounds ptr, ptr %570, i64 %retval.0.i.i.i224.i.i + %574 = load ptr, ptr %arrayidx.i1.i.i225.i.i, align 8 + %arrayidx.i.i226.i.i = getelementptr inbounds i32, ptr %570, i64 -1 + store i32 %dec.i.pre-phi.i223.i.i, ptr %arrayidx.i.i226.i.i, align 4 + %575 = load ptr, ptr %m_result_pr_stack.i199.i.i, align 8 + %tobool.not.i.i.i.i227.i.i = icmp eq ptr %574, null + br i1 %tobool.not.i.i.i.i227.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i, label %if.then.i.i.i.i228.i.i + +if.then.i.i.i.i228.i.i: ; preds = %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + %m_ref_count.i.i.i.i.i229.i.i = getelementptr inbounds %class.ast, ptr %574, i64 0, i32 2 + %576 = load i32, ptr %m_ref_count.i.i.i.i.i229.i.i, align 4 + %dec.i.i.i.i.i230.i.i = add i32 %576, -1 + store i32 %dec.i.i.i.i.i230.i.i, ptr %m_ref_count.i.i.i.i.i229.i.i, align 4 + %cmp.i.i.i.i231.i.i = icmp eq i32 %dec.i.i.i.i.i230.i.i, 0 + br i1 %cmp.i.i.i.i231.i.i, label %if.then2.i.i.i.i232.i.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +if.then2.i.i.i.i232.i.i: ; preds = %if.then.i.i.i.i228.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %575, ptr noundef nonnull %574) + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i: ; preds = %if.then2.i.i.i.i232.i.i, %if.then.i.i.i.i228.i.i, %_ZN6vectorIP3appLb0EjE4backEv.exit.i.i.i + %577 = load ptr, ptr %result_pr, align 8 + %cmp.i.i32 = icmp eq ptr %577, null + br i1 %cmp.i.i32, label %if.then48.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +if.then48.i.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + %this.val.i.i = load ptr, ptr %28, align 8 + %578 = load ptr, ptr %m_root.i, align 8 + %call50.i.i = tail call noundef ptr @_ZN11ast_manager14mk_reflexivityEP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i.i, ptr noundef %578) + %tobool.not.i235.i.i = icmp eq ptr %call50.i.i, null + br i1 %tobool.not.i235.i.i, label %if.end.i239.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i236.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i236.i.i: ; preds = %if.then48.i.i + %m_ref_count.i.i.i237.i.i = getelementptr inbounds %class.ast, ptr %call50.i.i, i64 0, i32 2 + %579 = load i32, ptr %m_ref_count.i.i.i237.i.i, align 4 + %inc.i.i.i238.i.i = add i32 %579, 1 + store i32 %inc.i.i.i238.i.i, ptr %m_ref_count.i.i.i237.i.i, align 4 + br label %if.end.i239.i.i + +if.end.i239.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i236.i.i, %if.then48.i.i + %580 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i240.i.i = icmp eq ptr %580, null + br i1 %tobool.not.i3.i240.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit247.i.i, label %if.then.i.i.i241.i.i + +if.then.i.i.i241.i.i: ; preds = %if.end.i239.i.i + %m_manager.i.i242.i.i = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 + %581 = load ptr, ptr %m_manager.i.i242.i.i, align 8 + %m_ref_count.i.i.i.i243.i.i = getelementptr inbounds %class.ast, ptr %580, i64 0, i32 2 + %582 = load i32, ptr %m_ref_count.i.i.i.i243.i.i, align 4 + %dec.i.i.i.i244.i.i = add i32 %582, -1 + store i32 %dec.i.i.i.i244.i.i, ptr %m_ref_count.i.i.i.i243.i.i, align 4 + %cmp.i.i.i245.i.i = icmp eq i32 %dec.i.i.i.i244.i.i, 0 + br i1 %cmp.i.i.i245.i.i, label %if.then2.i.i.i246.i.i, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit247.i.i + +if.then2.i.i.i246.i.i: ; preds = %if.then.i.i.i241.i.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %581, ptr noundef nonnull %580) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit247.i.i + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit247.i.i: ; preds = %if.then2.i.i.i246.i.i, %if.then.i.i.i241.i.i, %if.end.i239.i.i + store ptr %call50.i.i, ptr %result_pr, align 8 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +unreachable.i.i: ; preds = %invoke.cont11.i.i unreachable -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit165.i - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i62) - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i) +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit247.i.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i.i) br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit unreachable.i: ; preds = %invoke.cont12.i unreachable -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit182, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb1EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i, %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit90.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb1EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp10.i) br label %if.end8 if.else: ; preds = %if.end - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i31) + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i47) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp8.i) - %582 = load ptr, ptr %result_pr, align 8 - %tobool.not.i3.i538 = icmp eq ptr %582, null - br i1 %tobool.not.i3.i538, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit545, label %if.then.i.i.i539 - -if.then.i.i.i539: ; preds = %if.else - %m_manager.i.i540 = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 - %583 = load ptr, ptr %m_manager.i.i540, align 8 - %m_ref_count.i.i.i.i541 = getelementptr inbounds %class.ast, ptr %582, i64 0, i32 2 - %584 = load i32, ptr %m_ref_count.i.i.i.i541, align 4 - %dec.i.i.i.i542 = add i32 %584, -1 - store i32 %dec.i.i.i.i542, ptr %m_ref_count.i.i.i.i541, align 4 - %cmp.i.i.i543 = icmp eq i32 %dec.i.i.i.i542, 0 - br i1 %cmp.i.i.i543, label %if.then2.i.i.i544, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit545 - -if.then2.i.i.i544: ; preds = %if.then.i.i.i539 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %583, ptr noundef nonnull %582) - br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit545 - -_ZN7obj_refI3app11ast_managerEaSEPS0_.exit545: ; preds = %if.else, %if.then.i.i.i539, %if.then2.i.i.i544 + %583 = load ptr, ptr %result_pr, align 8 + %tobool.not.i3.i.i48 = icmp eq ptr %583, null + br i1 %tobool.not.i3.i.i48, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54, label %if.then.i.i.i.i49 + +if.then.i.i.i.i49: ; preds = %if.else + %m_manager.i.i.i50 = getelementptr inbounds %class.obj_ref.62, ptr %result_pr, i64 0, i32 1 + %584 = load ptr, ptr %m_manager.i.i.i50, align 8 + %m_ref_count.i.i.i.i.i51 = getelementptr inbounds %class.ast, ptr %583, i64 0, i32 2 + %585 = load i32, ptr %m_ref_count.i.i.i.i.i51, align 4 + %dec.i.i.i.i.i52 = add i32 %585, -1 + store i32 %dec.i.i.i.i.i52, ptr %m_ref_count.i.i.i.i.i51, align 4 + %cmp.i.i.i.i53 = icmp eq i32 %dec.i.i.i.i.i52, 0 + br i1 %cmp.i.i.i.i53, label %if.then2.i.i.i.i411, label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + +if.then2.i.i.i.i411: ; preds = %if.then.i.i.i.i49 + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %584, ptr noundef nonnull %583) + br label %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + +_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54: ; preds = %if.then2.i.i.i.i411, %if.then.i.i.i.i49, %if.else store ptr null, ptr %result_pr, align 8 - %585 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val.i33 = load ptr, ptr %585, align 8 - %call2.i = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i33) - br i1 %call2.i, label %if.end15.i, label %if.then.i36 - -if.then.i36: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit545 - %m_cancel_check.i37 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %586 = load i8, ptr %m_cancel_check.i37, align 1 - %587 = and i8 %586, 1 - %tobool.not.i38 = icmp eq i8 %587, 0 - br i1 %tobool.not.i38, label %if.end.i53, label %if.then4.i39 - -if.then4.i39: ; preds = %if.then.i36 + %586 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val.i55 = load ptr, ptr %586, align 8 + %call2.i.i56 = tail call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i55) + br i1 %call2.i.i56, label %if.end15.i, label %if.then.i57 + +if.then.i57: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + %m_cancel_check.i58 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %587 = load i8, ptr %m_cancel_check.i58, align 1 + %588 = and i8 %587, 1 + %tobool.not.i59 = icmp eq i8 %588, 0 + br i1 %tobool.not.i59, label %if.end.i67, label %if.then4.i60 + +if.then4.i60: ; preds = %if.then.i57 tail call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i40 = tail call ptr @__cxa_allocate_exception(i64 40) #15 - %this.val8.i = load ptr, ptr %585, align 8 - %call7.i42 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val8.i) - to label %invoke.cont.i unwind label %ehcleanup13.i.thread + %exception.i61 = tail call ptr @__cxa_allocate_exception(i64 40) #15 + %this.val8.i = load ptr, ptr %586, align 8 + %call7.i = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val8.i) + to label %invoke.cont.i unwind label %ehcleanup13.thread.i -invoke.cont.i: ; preds = %if.then4.i39 +invoke.cont.i: ; preds = %if.then4.i60 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #15 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31, ptr noundef %call7.i42, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) - to label %invoke.cont10.i unwind label %ehcleanup13.i.thread2806 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47, ptr noundef %call7.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) + to label %invoke.cont10.i unwind label %ehcleanup13.thread58.i invoke.cont10.i: ; preds = %invoke.cont.i - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i40, align 8 - %m_msg.i.i536 = getelementptr inbounds %class.default_exception, ptr %exception.i40, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i536, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31) #15 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i40, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i40, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #16 - to label %unreachable.i52 unwind label %ehcleanup13.i - -ehcleanup13.i.thread: ; preds = %if.then4.i39 - %588 = landingpad { ptr, i32 } + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i61, align 8 + %m_msg.i.i.i65 = getelementptr inbounds %class.default_exception, ptr %exception.i61, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i65, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #15 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i61, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i61, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #16 + to label %unreachable.i66 unwind label %ehcleanup13.i + +ehcleanup13.thread.i: ; preds = %if.then4.i60 + %589 = landingpad { ptr, i32 } cleanup - br label %cleanup.action.i47 + br label %cleanup.action.i62 -ehcleanup13.i.thread2806: ; preds = %invoke.cont.i - %589 = landingpad { ptr, i32 } +ehcleanup13.thread58.i: ; preds = %invoke.cont.i + %590 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #15 - br label %cleanup.action.i47 + br label %cleanup.action.i62 ehcleanup13.i: ; preds = %invoke.cont10.i - %590 = landingpad { ptr, i32 } + %591 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i31) #15 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i47) #15 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp8.i) #15 br label %common.resume -cleanup.action.i47: ; preds = %ehcleanup13.i.thread2806, %ehcleanup13.i.thread - %.pn.pn.i442805 = phi { ptr, i32 } [ %588, %ehcleanup13.i.thread ], [ %589, %ehcleanup13.i.thread2806 ] - call void @__cxa_free_exception(ptr %exception.i40) #15 +cleanup.action.i62: ; preds = %ehcleanup13.thread58.i, %ehcleanup13.thread.i + %.pn.pn57.i = phi { ptr, i32 } [ %589, %ehcleanup13.thread.i ], [ %590, %ehcleanup13.thread58.i ] + call void @__cxa_free_exception(ptr %exception.i61) #15 br label %common.resume -if.end.i53: ; preds = %if.then.i36 - %tobool.not.i523 = icmp eq ptr %t, null - br i1 %tobool.not.i523, label %if.end.i527, label %_ZN11ast_manager7inc_refEP3ast.exit.i524 - -_ZN11ast_manager7inc_refEP3ast.exit.i524: ; preds = %if.end.i53 - %m_ref_count.i.i.i525 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %591 = load i32, ptr %m_ref_count.i.i.i525, align 4 - %inc.i.i.i526 = add i32 %591, 1 - store i32 %inc.i.i.i526, ptr %m_ref_count.i.i.i525, align 4 - br label %if.end.i527 - -if.end.i527: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i524, %if.end.i53 - %592 = load ptr, ptr %result, align 8 - %tobool.not.i3.i528 = icmp eq ptr %592, null - br i1 %tobool.not.i3.i528, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit535, label %if.then.i.i.i529 - -if.then.i.i.i529: ; preds = %if.end.i527 - %m_manager.i.i530 = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 - %593 = load ptr, ptr %m_manager.i.i530, align 8 - %m_ref_count.i.i.i.i531 = getelementptr inbounds %class.ast, ptr %592, i64 0, i32 2 - %594 = load i32, ptr %m_ref_count.i.i.i.i531, align 4 - %dec.i.i.i.i532 = add i32 %594, -1 - store i32 %dec.i.i.i.i532, ptr %m_ref_count.i.i.i.i531, align 4 - %cmp.i.i.i533 = icmp eq i32 %dec.i.i.i.i532, 0 - br i1 %cmp.i.i.i533, label %if.then2.i.i.i534, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit535 - -if.then2.i.i.i534: ; preds = %if.then.i.i.i529 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %593, ptr noundef nonnull %592) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit535 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit535: ; preds = %if.end.i527, %if.then.i.i.i529, %if.then2.i.i.i534 +if.end.i67: ; preds = %if.then.i57 + %tobool.not.i.i68 = icmp eq ptr %t, null + br i1 %tobool.not.i.i68, label %if.end.i.i72, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i69 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i69: ; preds = %if.end.i67 + %m_ref_count.i.i.i.i70 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %592 = load i32, ptr %m_ref_count.i.i.i.i70, align 4 + %inc.i.i.i.i71 = add i32 %592, 1 + store i32 %inc.i.i.i.i71, ptr %m_ref_count.i.i.i.i70, align 4 + br label %if.end.i.i72 + +if.end.i.i72: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i69, %if.end.i67 + %593 = load ptr, ptr %result, align 8 + %tobool.not.i3.i9.i = icmp eq ptr %593, null + br i1 %tobool.not.i3.i9.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73, label %if.then.i.i.i10.i + +if.then.i.i.i10.i: ; preds = %if.end.i.i72 + %m_manager.i.i11.i = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 + %594 = load ptr, ptr %m_manager.i.i11.i, align 8 + %m_ref_count.i.i.i.i12.i = getelementptr inbounds %class.ast, ptr %593, i64 0, i32 2 + %595 = load i32, ptr %m_ref_count.i.i.i.i12.i, align 4 + %dec.i.i.i.i13.i = add i32 %595, -1 + store i32 %dec.i.i.i.i13.i, ptr %m_ref_count.i.i.i.i12.i, align 4 + %cmp.i.i.i14.i = icmp eq i32 %dec.i.i.i.i13.i, 0 + br i1 %cmp.i.i.i14.i, label %if.then2.i.i.i15.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73 + +if.then2.i.i.i15.i: ; preds = %if.then.i.i.i10.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %594, ptr noundef nonnull %593) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73 + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73: ; preds = %if.then2.i.i.i15.i, %if.then.i.i.i10.i, %if.end.i.i72 store ptr %t, ptr %result, align 8 br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.end15.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit545 - %m_root.i54 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 - store ptr %t, ptr %m_root.i54, align 8 - %m_num_qvars.i55 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 - store i32 0, ptr %m_num_qvars.i55, align 8 - %m_num_steps.i56 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 2 - store i32 0, ptr %m_num_steps.i56, align 8 - %call16.i57 = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef 3) - br i1 %call16.i57, label %if.then17.i, label %if.else.i58 +if.end15.i: ; preds = %_ZN7obj_refI3app11ast_managerEaSEPS0_.exit.i54 + %m_root.i74 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 12 + store ptr %t, ptr %m_root.i74, align 8 + %m_num_qvars.i75 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 13 + store i32 0, ptr %m_num_qvars.i75, align 8 + %m_num_steps.i76 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 2 + store i32 0, ptr %m_num_steps.i76, align 8 + %call16.i = tail call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef 3) + br i1 %call16.i, label %if.then17.i, label %if.else.i77 if.then17.i: ; preds = %if.end15.i - %m_result_stack.i522 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i515 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %595 = load ptr, ptr %m_nodes.i515, align 8 - %cmp.i.i.i516 = icmp eq ptr %595, null - br i1 %cmp.i.i.i516, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit521, label %if.end.i.i.i517 - -if.end.i.i.i517: ; preds = %if.then17.i - %arrayidx.i.i.i518 = getelementptr inbounds i32, ptr %595, i64 -1 - %596 = load i32, ptr %arrayidx.i.i.i518, align 4 - %597 = add i32 %596, -1 - %598 = zext i32 %597 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit521 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit521: ; preds = %if.then17.i, %if.end.i.i.i517 - %retval.0.i.i.i519 = phi i64 [ %598, %if.end.i.i.i517 ], [ 4294967295, %if.then17.i ] - %arrayidx.i1.i.i520 = getelementptr inbounds ptr, ptr %595, i64 %retval.0.i.i.i519 - %599 = load ptr, ptr %arrayidx.i1.i.i520, align 8 - %tobool.not.i502 = icmp eq ptr %599, null - br i1 %tobool.not.i502, label %if.end.i506, label %_ZN11ast_manager7inc_refEP3ast.exit.i503 - -_ZN11ast_manager7inc_refEP3ast.exit.i503: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit521 - %m_ref_count.i.i.i504 = getelementptr inbounds %class.ast, ptr %599, i64 0, i32 2 - %600 = load i32, ptr %m_ref_count.i.i.i504, align 4 - %inc.i.i.i505 = add i32 %600, 1 - store i32 %inc.i.i.i505, ptr %m_ref_count.i.i.i504, align 4 - br label %if.end.i506 - -if.end.i506: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i503, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit521 - %601 = load ptr, ptr %result, align 8 - %tobool.not.i3.i507 = icmp eq ptr %601, null - br i1 %tobool.not.i3.i507, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit514, label %if.then.i.i.i508 - -if.then.i.i.i508: ; preds = %if.end.i506 - %m_manager.i.i509 = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 - %602 = load ptr, ptr %m_manager.i.i509, align 8 - %m_ref_count.i.i.i.i510 = getelementptr inbounds %class.ast, ptr %601, i64 0, i32 2 - %603 = load i32, ptr %m_ref_count.i.i.i.i510, align 4 - %dec.i.i.i.i511 = add i32 %603, -1 - store i32 %dec.i.i.i.i511, ptr %m_ref_count.i.i.i.i510, align 4 - %cmp.i.i.i512 = icmp eq i32 %dec.i.i.i.i511, 0 - br i1 %cmp.i.i.i512, label %if.then2.i.i.i513, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit514 - -if.then2.i.i.i513: ; preds = %if.then.i.i.i508 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %602, ptr noundef nonnull %601) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit514 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit514: ; preds = %if.end.i506, %if.then.i.i.i508, %if.then2.i.i.i513 - store ptr %599, ptr %result, align 8 - %604 = load ptr, ptr %m_nodes.i515, align 8 - %cmp.i.i.i483 = icmp eq ptr %604, null - br i1 %cmp.i.i.i483, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i497, label %if.end.i.i.i484 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i497: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit514 - %.pre.i498 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i499 = add i32 %.pre.i498, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i486 - -if.end.i.i.i484: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit514 - %arrayidx.i.i.i485 = getelementptr inbounds i32, ptr %604, i64 -1 - %605 = load i32, ptr %arrayidx.i.i.i485, align 4 - %606 = add i32 %605, -1 - %607 = zext i32 %606 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i486 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i486: ; preds = %if.end.i.i.i484, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i497 - %dec.i.pre-phi.i487 = phi i32 [ %.pre1.i499, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i497 ], [ %606, %if.end.i.i.i484 ] - %retval.0.i.i.i488 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i497 ], [ %607, %if.end.i.i.i484 ] - %arrayidx.i1.i.i489 = getelementptr inbounds ptr, ptr %604, i64 %retval.0.i.i.i488 - %608 = load ptr, ptr %arrayidx.i1.i.i489, align 8 - %arrayidx.i.i490 = getelementptr inbounds i32, ptr %604, i64 -1 - store i32 %dec.i.pre-phi.i487, ptr %arrayidx.i.i490, align 4 - %609 = load ptr, ptr %m_result_stack.i522, align 8 - %tobool.not.i.i.i.i491 = icmp eq ptr %608, null - br i1 %tobool.not.i.i.i.i491, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit, label %if.then.i.i.i.i492 - -if.then.i.i.i.i492: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i486 - %m_ref_count.i.i.i.i.i493 = getelementptr inbounds %class.ast, ptr %608, i64 0, i32 2 - %610 = load i32, ptr %m_ref_count.i.i.i.i.i493, align 4 - %dec.i.i.i.i.i494 = add i32 %610, -1 - store i32 %dec.i.i.i.i.i494, ptr %m_ref_count.i.i.i.i.i493, align 4 - %cmp.i.i.i.i495 = icmp eq i32 %dec.i.i.i.i.i494, 0 - br i1 %cmp.i.i.i.i495, label %if.then2.i.i.i.i496, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit - -if.then2.i.i.i.i496: ; preds = %if.then.i.i.i.i492 - tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %609, ptr noundef nonnull %608) + %m_result_stack.i.i391 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i392 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %596 = load ptr, ptr %m_nodes.i.i392, align 8 + %cmp.i.i.i16.i = icmp eq ptr %596, null + br i1 %cmp.i.i.i16.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i395, label %if.end.i.i.i.i393 + +if.end.i.i.i.i393: ; preds = %if.then17.i + %arrayidx.i.i.i.i394 = getelementptr inbounds i32, ptr %596, i64 -1 + %597 = load i32, ptr %arrayidx.i.i.i.i394, align 4 + %598 = add i32 %597, -1 + %599 = zext i32 %598 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i395 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i395: ; preds = %if.end.i.i.i.i393, %if.then17.i + %retval.0.i.i.i.i396 = phi i64 [ %599, %if.end.i.i.i.i393 ], [ 4294967295, %if.then17.i ] + %arrayidx.i1.i.i.i397 = getelementptr inbounds ptr, ptr %596, i64 %retval.0.i.i.i.i396 + %600 = load ptr, ptr %arrayidx.i1.i.i.i397, align 8 + %tobool.not.i17.i = icmp eq ptr %600, null + br i1 %tobool.not.i17.i, label %if.end.i21.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i18.i + +_ZN11ast_manager7inc_refEP3ast.exit.i18.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i395 + %m_ref_count.i.i.i19.i = getelementptr inbounds %class.ast, ptr %600, i64 0, i32 2 + %601 = load i32, ptr %m_ref_count.i.i.i19.i, align 4 + %inc.i.i.i20.i = add i32 %601, 1 + store i32 %inc.i.i.i20.i, ptr %m_ref_count.i.i.i19.i, align 4 + br label %if.end.i21.i + +if.end.i21.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i18.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i395 + %602 = load ptr, ptr %result, align 8 + %tobool.not.i3.i22.i = icmp eq ptr %602, null + br i1 %tobool.not.i3.i22.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i, label %if.then.i.i.i23.i + +if.then.i.i.i23.i: ; preds = %if.end.i21.i + %m_manager.i.i24.i = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 + %603 = load ptr, ptr %m_manager.i.i24.i, align 8 + %m_ref_count.i.i.i.i25.i = getelementptr inbounds %class.ast, ptr %602, i64 0, i32 2 + %604 = load i32, ptr %m_ref_count.i.i.i.i25.i, align 4 + %dec.i.i.i.i26.i = add i32 %604, -1 + store i32 %dec.i.i.i.i26.i, ptr %m_ref_count.i.i.i.i25.i, align 4 + %cmp.i.i.i27.i = icmp eq i32 %dec.i.i.i.i26.i, 0 + br i1 %cmp.i.i.i27.i, label %if.then2.i.i.i28.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + +if.then2.i.i.i28.i: ; preds = %if.then.i.i.i23.i + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %603, ptr noundef nonnull %602) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i: ; preds = %if.then2.i.i.i28.i, %if.then.i.i.i23.i, %if.end.i21.i + store ptr %600, ptr %result, align 8 + %605 = load ptr, ptr %m_nodes.i.i392, align 8 + %cmp.i.i.i32.i398 = icmp eq ptr %605, null + br i1 %cmp.i.i.i32.i398, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i408, label %if.end.i.i.i33.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i408: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + %.pre.i.i409 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i410 = add i32 %.pre.i.i409, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i399 + +if.end.i.i.i33.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit29.i + %arrayidx.i.i.i34.i = getelementptr inbounds i32, ptr %605, i64 -1 + %606 = load i32, ptr %arrayidx.i.i.i34.i, align 4 + %607 = add i32 %606, -1 + %608 = zext i32 %607 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i399 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i399: ; preds = %if.end.i.i.i33.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i408 + %dec.i.pre-phi.i.i400 = phi i32 [ %.pre1.i.i410, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i408 ], [ %607, %if.end.i.i.i33.i ] + %retval.0.i.i.i35.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i408 ], [ %608, %if.end.i.i.i33.i ] + %arrayidx.i1.i.i36.i = getelementptr inbounds ptr, ptr %605, i64 %retval.0.i.i.i35.i + %609 = load ptr, ptr %arrayidx.i1.i.i36.i, align 8 + %arrayidx.i.i.i401 = getelementptr inbounds i32, ptr %605, i64 -1 + store i32 %dec.i.pre-phi.i.i400, ptr %arrayidx.i.i.i401, align 4 + %610 = load ptr, ptr %m_result_stack.i.i391, align 8 + %tobool.not.i.i.i.i.i402 = icmp eq ptr %609, null + br i1 %tobool.not.i.i.i.i.i402, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit, label %if.then.i.i.i.i.i403 + +if.then.i.i.i.i.i403: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i399 + %m_ref_count.i.i.i.i.i.i404 = getelementptr inbounds %class.ast, ptr %609, i64 0, i32 2 + %611 = load i32, ptr %m_ref_count.i.i.i.i.i.i404, align 4 + %dec.i.i.i.i.i.i405 = add i32 %611, -1 + store i32 %dec.i.i.i.i.i.i405, ptr %m_ref_count.i.i.i.i.i.i404, align 4 + %cmp.i.i.i.i.i406 = icmp eq i32 %dec.i.i.i.i.i.i405, 0 + br i1 %cmp.i.i.i.i.i406, label %if.then2.i.i.i.i.i407, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit + +if.then2.i.i.i.i.i407: ; preds = %if.then.i.i.i.i.i403 + tail call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %610, ptr noundef nonnull %609) br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -if.else.i58: ; preds = %if.end15.i - call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i202) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i203) - %611 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2062910 = icmp eq ptr %611, null - br i1 %cmp.i.i2062910, label %while.end.i458, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph: ; preds = %if.else.i58 - %m_cancel_check.i214 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 - %m_cache.i.i423 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 - %m_nodes.i.i433 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %m_bindings.i66.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 - %m_shifts.i70.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 - %m_result_stack.i2070 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i.i2030 = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i194, i64 0, i32 1 - %m_nodes.i.i1992 = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i195, i64 0, i32 1 - %m_r.i48.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_pr.i49.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %m_manager.i.i1891 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %m_manager.i.i1781 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %m_manager.i2279 = getelementptr inbounds %class.obj_ref.61, ptr %tmp.i.i, i64 0, i32 1 - %m_inv_shifter.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 5 - %m_manager.i2633 = getelementptr inbounds %class.obj_ref.62, ptr %new_t.i.i198, i64 0, i32 1 - %m_cfg.i.i370 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 - br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph, %while.cond.i204.backedge - %612 = phi ptr [ %611, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210.lr.ph ], [ %641, %while.cond.i204.backedge ] - %arrayidx.i.i208 = getelementptr inbounds i32, ptr %612, i64 -1 - %613 = load i32, ptr %arrayidx.i.i208, align 4 - %cmp3.i.i209 = icmp eq i32 %613, 0 - br i1 %cmp3.i.i209, label %while.end.i458, label %while.body.i211 - -while.body.i211: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210 - %this.val14.i = load ptr, ptr %585, align 8 - %call2.i.i212 = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val14.i) - br i1 %call2.i.i212, label %if.end15.i235, label %if.then.i213 - -if.then.i213: ; preds = %while.body.i211 - %614 = load i8, ptr %m_cancel_check.i214, align 1 - %615 = and i8 %614, 1 - %tobool.not.i215 = icmp eq i8 %615, 0 - br i1 %tobool.not.i215, label %if.end15.i235, label %if.then5.i216 - -if.then5.i216: ; preds = %if.then.i213 +if.else.i77: ; preds = %if.end15.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i45) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp9.i.i46) + %612 = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i36.i.i = icmp eq ptr %612, null + br i1 %cmp.i36.i.i, label %while.end.i.i115, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79: ; preds = %if.else.i77 + %m_cancel_check.i.i80 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 3 + %m_cache.i.i.i81 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 5 + %m_nodes.i.i.i82 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %m_bindings.i.i.i83 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 3 + %m_shifts.i.i.i84 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 9 + %m_result_stack.i.i43.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i.i.i48.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_pats.i.i.i42, i64 0, i32 1 + %m_nodes.i.i80.i.i.i = getelementptr inbounds %class.ref_vector_core, ptr %new_no_pats.i.i.i43, i64 0, i32 1 + %m_r.i64.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_pr.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %m_manager.i.i.i70.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %m_manager.i.i263.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %m_manager.i385.i.i.i = getelementptr inbounds %class.obj_ref.61, ptr %tmp.i.i.i, i64 0, i32 1 + %m_inv_shifter.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 5 + %m_manager.i.i.i.i85 = getelementptr inbounds %class.obj_ref.62, ptr %new_t.i.i.i44, i64 0, i32 1 + %m_cfg.i.i.i86 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + br label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87: ; preds = %while.cond.backedge.i.i113, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 + %613 = phi ptr [ %612, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.lr.ph.i.i79 ], [ %642, %while.cond.backedge.i.i113 ] + %arrayidx.i.i37.i = getelementptr inbounds i32, ptr %613, i64 -1 + %614 = load i32, ptr %arrayidx.i.i37.i, align 4 + %cmp3.i.i.i88 = icmp eq i32 %614, 0 + br i1 %cmp3.i.i.i88, label %while.end.i.i115, label %while.body.i.i89 + +while.body.i.i89: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87 + %this.val14.i.i = load ptr, ptr %586, align 8 + %call2.i.i.i90 = call noundef zeroext i1 @_ZN8reslimit3incEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val14.i.i) + br i1 %call2.i.i.i90, label %if.end15.i.i103, label %if.then.i.i91 + +if.then.i.i91: ; preds = %while.body.i.i89 + %615 = load i8, ptr %m_cancel_check.i.i80, align 1 + %616 = and i8 %615, 1 + %tobool.not.i38.i = icmp eq i8 %616, 0 + br i1 %tobool.not.i38.i, label %if.end15.i.i103, label %if.then5.i.i92 + +if.then5.i.i92: ; preds = %if.then.i.i91 call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5resetEv(ptr noundef nonnull align 8 dereferenceable(536) %this) - %exception.i217 = call ptr @__cxa_allocate_exception(i64 40) #15 - %this.val.i218 = load ptr, ptr %585, align 8 - %call8.i219 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i218) - to label %invoke.cont.i226 unwind label %ehcleanup14.i221.thread - -invoke.cont.i226: ; preds = %if.then5.i216 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) #15 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i202, ptr noundef %call8.i219, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) - to label %invoke.cont11.i231 unwind label %ehcleanup14.i221.thread2813 - -invoke.cont11.i231: ; preds = %invoke.cont.i226 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i217, align 8 - %m_msg.i.i.i232 = getelementptr inbounds %class.default_exception, ptr %exception.i217, i64 0, i32 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i232, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i202) #15 - store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i217, align 8 - invoke void @__cxa_throw(ptr nonnull %exception.i217, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #16 - to label %unreachable.i234 unwind label %ehcleanup14.i221 - -ehcleanup14.i221.thread: ; preds = %if.then5.i216 - %616 = landingpad { ptr, i32 } - cleanup - br label %cleanup.action.i225 - -ehcleanup14.i221.thread2813: ; preds = %invoke.cont.i226 + %exception.i.i93 = call ptr @__cxa_allocate_exception(i64 40) #15 + %this.val.i.i94 = load ptr, ptr %586, align 8 + %call8.i.i95 = invoke noundef ptr @_ZNK8reslimit14get_cancel_msgEv(ptr noundef nonnull align 8 dereferenceable(40) %this.val.i.i94) + to label %invoke.cont.i.i98 unwind label %ehcleanup14.thread.i.i96 + +invoke.cont.i.i98: ; preds = %if.then5.i.i92 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #15 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45, ptr noundef %call8.i.i95, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) + to label %invoke.cont11.i.i99 unwind label %ehcleanup14.thread5.i.i + +invoke.cont11.i.i99: ; preds = %invoke.cont.i.i98 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i93, align 8 + %m_msg.i.i.i.i100 = getelementptr inbounds %class.default_exception, ptr %exception.i.i93, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i.i.i100, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45) #15 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV18rewriter_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i93, align 8 + invoke void @__cxa_throw(ptr nonnull %exception.i.i93, ptr nonnull @_ZTI18rewriter_exception, ptr nonnull @_ZN18rewriter_exceptionD2Ev) #16 + to label %unreachable.i.i102 unwind label %ehcleanup14.i.i101 + +ehcleanup14.thread.i.i96: ; preds = %if.then5.i.i92 %617 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) #15 - br label %cleanup.action.i225 + br label %cleanup.action.i.i97 -ehcleanup14.i221: ; preds = %invoke.cont11.i231 +ehcleanup14.thread5.i.i: ; preds = %invoke.cont.i.i98 %618 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i202) #15 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i203) #15 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #15 + br label %cleanup.action.i.i97 + +ehcleanup14.i.i101: ; preds = %invoke.cont11.i.i99 + %619 = landingpad { ptr, i32 } + cleanup + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i45) #15 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9.i.i46) #15 br label %common.resume -cleanup.action.i225: ; preds = %ehcleanup14.i221.thread2813, %ehcleanup14.i221.thread - %.pn.pn.i2232812 = phi { ptr, i32 } [ %616, %ehcleanup14.i221.thread ], [ %617, %ehcleanup14.i221.thread2813 ] - call void @__cxa_free_exception(ptr %exception.i217) #15 +cleanup.action.i.i97: ; preds = %ehcleanup14.thread5.i.i, %ehcleanup14.thread.i.i96 + %.pn.pn4.i.i = phi { ptr, i32 } [ %617, %ehcleanup14.thread.i.i96 ], [ %618, %ehcleanup14.thread5.i.i ] + call void @__cxa_free_exception(ptr %exception.i.i93) #15 br label %common.resume -if.end15.i235: ; preds = %if.then.i213, %while.body.i211 - %619 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i.i236 = icmp eq ptr %619, null - br i1 %cmp.i.i.i236, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239, label %if.end.i.i.i237 - -if.end.i.i.i237: ; preds = %if.end15.i235 - %arrayidx.i.i.i238 = getelementptr inbounds i32, ptr %619, i64 -1 - %620 = load i32, ptr %arrayidx.i.i.i238, align 4 - %621 = add i32 %620, -1 - %622 = zext i32 %621 to i64 - br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239: ; preds = %if.end.i.i.i237, %if.end15.i235 - %retval.0.i.i.i240 = phi i64 [ %622, %if.end.i.i.i237 ], [ 4294967295, %if.end15.i235 ] - %arrayidx.i1.i.i241 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i240 - %623 = load ptr, ptr %arrayidx.i1.i.i241, align 8 - %624 = load i32, ptr %m_num_steps.i56, align 8 - %inc.i243 = add i32 %624, 1 - store i32 %inc.i243, ptr %m_num_steps.i56, align 8 - %625 = getelementptr i8, ptr %arrayidx.i1.i.i241, i64 8 - %call17.val.i245 = load i32, ptr %625, align 8 - %626 = and i32 %call17.val.i245, -51 - %or.cond2831.not = icmp eq i32 %626, 1 - br i1 %or.cond2831.not, label %if.then20.i422, label %if.end28.i - -if.then20.i422: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239 - %627 = load ptr, ptr %m_cache.i.i423, align 8 - %call.i.i.i424 = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %627, ptr noundef %623, i32 noundef 0) - %tobool22.not.i425 = icmp eq ptr %call.i.i.i424, null - br i1 %tobool22.not.i425, label %if.end28.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i432 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i432: ; preds = %if.then20.i422 - %m_ref_count.i.i.i.i.i.i430 = getelementptr inbounds %class.ast, ptr %call.i.i.i424, i64 0, i32 2 - %628 = load i32, ptr %m_ref_count.i.i.i.i.i.i430, align 4 - %inc.i.i.i.i.i.i431 = add i32 %628, 1 - store i32 %inc.i.i.i.i.i.i431, ptr %m_ref_count.i.i.i.i.i.i430, align 4 - %629 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i19.i = icmp eq ptr %629, null - br i1 %cmp.i.i19.i, label %if.then.i.i.i454, label %lor.lhs.false.i.i.i434 - -lor.lhs.false.i.i.i434: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i432 - %arrayidx.i.i20.i = getelementptr inbounds i32, ptr %629, i64 -1 - %630 = load i32, ptr %arrayidx.i.i20.i, align 4 - %arrayidx4.i.i.i435 = getelementptr inbounds i32, ptr %629, i64 -2 - %631 = load i32, ptr %arrayidx4.i.i.i435, align 4 - %cmp5.i.i.i436 = icmp eq i32 %630, %631 - br i1 %cmp5.i.i.i436, label %if.then.i.i.i454, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i437 - -if.then.i.i.i454: ; preds = %lor.lhs.false.i.i.i434, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i432 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - %.pre.i.i.i455 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i.i456 = getelementptr inbounds i32, ptr %.pre.i.i.i455, i64 -1 - %.pre1.i.i.i457 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i456, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i437 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i437: ; preds = %if.then.i.i.i454, %lor.lhs.false.i.i.i434 - %632 = phi i32 [ %.pre1.i.i.i457, %if.then.i.i.i454 ], [ %630, %lor.lhs.false.i.i.i434 ] - %633 = phi ptr [ %.pre.i.i.i455, %if.then.i.i.i454 ], [ %629, %lor.lhs.false.i.i.i434 ] - %idx.ext.i.i.i438 = zext i32 %632 to i64 - %add.ptr.i.i.i439 = getelementptr inbounds ptr, ptr %633, i64 %idx.ext.i.i.i438 - store ptr %call.i.i.i424, ptr %add.ptr.i.i.i439, align 8 - %634 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i.i440 = getelementptr inbounds i32, ptr %634, i64 -1 - %635 = load i32, ptr %arrayidx10.i.i.i440, align 4 - %inc.i.i.i441 = add i32 %635, 1 - store i32 %inc.i.i.i441, ptr %arrayidx10.i.i.i440, align 4 - %636 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i22.i = getelementptr inbounds i32, ptr %636, i64 -1 - %637 = load i32, ptr %arrayidx.i22.i, align 4 - %dec.i.i442 = add i32 %637, -1 - store i32 %dec.i.i442, ptr %arrayidx.i22.i, align 4 - %this.val15.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i.i443 = icmp eq ptr %623, %call.i.i.i424 - %cmp.i.i.i.i444 = icmp eq ptr %this.val15.i, null - %or.cond.i.i445 = select i1 %cmp.not.i.i443, i1 true, i1 %cmp.i.i.i.i444 - br i1 %or.cond.i.i445, label %while.cond.i204.backedge, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i446 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i446: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i437 - %arrayidx.i.i.i.i447 = getelementptr inbounds i32, ptr %this.val15.i, i64 -1 - %638 = load i32, ptr %arrayidx.i.i.i.i447, align 4 - %cmp3.i.i.i.i448 = icmp eq i32 %638, 0 - br i1 %cmp3.i.i.i.i448, label %while.cond.i204.backedgethread-pre-split, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i449 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i449: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i446 - %639 = add i32 %638, -1 - %640 = zext i32 %639 to i64 - %m_new_child.i.i.i450 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i, i64 %640, i32 1 - %bf.load.i.i.i451 = load i32, ptr %m_new_child.i.i.i450, align 8 - %bf.set.i.i.i452 = or i32 %bf.load.i.i.i451, 2 - store i32 %bf.set.i.i.i452, ptr %m_new_child.i.i.i450, align 8 - br label %while.cond.i204.backedgethread-pre-split - -while.cond.i204.backedgethread-pre-split: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i449, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i446, %sw.bb33.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - %.pr = load ptr, ptr %m_frame_stack.i, align 8 - br label %while.cond.i204.backedge - -while.cond.i204.backedge: ; preds = %while.cond.i204.backedgethread-pre-split, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i437 - %641 = phi ptr [ %.pr, %while.cond.i204.backedgethread-pre-split ], [ %this.val15.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i437 ] - %cmp.i.i206 = icmp eq ptr %641, null - br i1 %cmp.i.i206, label %while.end.i458, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210, !llvm.loop !18 - -if.end28.i: ; preds = %if.then20.i422, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i239 - %m_kind.i.i247 = getelementptr inbounds %class.ast, ptr %623, i64 0, i32 1 - %bf.load.i.i248 = load i32, ptr %m_kind.i.i247, align 4 - %trunc2832 = trunc i32 %bf.load.i.i248 to i16 - switch i16 %trunc2832, label %sw.default.i416 [ - i16 0, label %sw.bb.i336 - i16 2, label %sw.bb31.i - i16 1, label %sw.bb33.i +if.end15.i.i103: ; preds = %if.then.i.i91, %while.body.i.i89 + %620 = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i.i39.i = icmp eq ptr %620, null + br i1 %cmp.i.i.i39.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104, label %if.end.i.i.i40.i + +if.end.i.i.i40.i: ; preds = %if.end15.i.i103 + %arrayidx.i.i.i41.i = getelementptr inbounds i32, ptr %620, i64 -1 + %621 = load i32, ptr %arrayidx.i.i.i41.i, align 4 + %622 = add i32 %621, -1 + %623 = zext i32 %622 to i64 + br label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104: ; preds = %if.end.i.i.i40.i, %if.end15.i.i103 + %retval.0.i.i.i42.i = phi i64 [ %623, %if.end.i.i.i40.i ], [ 4294967295, %if.end15.i.i103 ] + %arrayidx.i1.i.i43.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i + %624 = load ptr, ptr %arrayidx.i1.i.i43.i, align 8 + %625 = load i32, ptr %m_num_steps.i76, align 8 + %inc.i.i105 = add i32 %625, 1 + store i32 %inc.i.i105, ptr %m_num_steps.i76, align 8 + %626 = getelementptr i8, ptr %arrayidx.i1.i.i43.i, i64 8 + %call17.val.i.i106 = load i32, ptr %626, align 8 + %627 = and i32 %call17.val.i.i106, -51 + %or.cond.not.i.i107 = icmp eq i32 %627, 1 + br i1 %or.cond.not.i.i107, label %if.then20.i.i364, label %if.end28.i.i + +if.then20.i.i364: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + %628 = load ptr, ptr %m_cache.i.i.i81, align 8 + %call.i.i.i.i365 = call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %628, ptr noundef %624, i32 noundef 0) + %tobool22.not.i.i366 = icmp eq ptr %call.i.i.i.i365, null + br i1 %tobool22.not.i.i366, label %if.end28.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i367 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i367: ; preds = %if.then20.i.i364 + %m_ref_count.i.i.i.i.i.i.i368 = getelementptr inbounds %class.ast, ptr %call.i.i.i.i365, i64 0, i32 2 + %629 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i368, align 4 + %inc.i.i.i.i.i.i.i369 = add i32 %629, 1 + store i32 %inc.i.i.i.i.i.i.i369, ptr %m_ref_count.i.i.i.i.i.i.i368, align 4 + %630 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i19.i.i = icmp eq ptr %630, null + br i1 %cmp.i.i19.i.i, label %if.then.i.i.i53.i, label %lor.lhs.false.i.i.i.i370 + +lor.lhs.false.i.i.i.i370: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i367 + %arrayidx.i.i20.i.i = getelementptr inbounds i32, ptr %630, i64 -1 + %631 = load i32, ptr %arrayidx.i.i20.i.i, align 4 + %arrayidx4.i.i.i.i371 = getelementptr inbounds i32, ptr %630, i64 -2 + %632 = load i32, ptr %arrayidx4.i.i.i.i371, align 4 + %cmp5.i.i.i.i372 = icmp eq i32 %631, %632 + br i1 %cmp5.i.i.i.i372, label %if.then.i.i.i53.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i373 + +if.then.i.i.i53.i: ; preds = %lor.lhs.false.i.i.i.i370, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i367 + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i.i.i388 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i389 = getelementptr inbounds i32, ptr %.pre.i.i.i.i388, i64 -1 + %.pre1.i.i.i.i390 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i389, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i373 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i373: ; preds = %if.then.i.i.i53.i, %lor.lhs.false.i.i.i.i370 + %633 = phi i32 [ %.pre1.i.i.i.i390, %if.then.i.i.i53.i ], [ %631, %lor.lhs.false.i.i.i.i370 ] + %634 = phi ptr [ %.pre.i.i.i.i388, %if.then.i.i.i53.i ], [ %630, %lor.lhs.false.i.i.i.i370 ] + %idx.ext.i.i.i.i374 = zext i32 %633 to i64 + %add.ptr.i.i.i.i375 = getelementptr inbounds ptr, ptr %634, i64 %idx.ext.i.i.i.i374 + store ptr %call.i.i.i.i365, ptr %add.ptr.i.i.i.i375, align 8 + %635 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i376 = getelementptr inbounds i32, ptr %635, i64 -1 + %636 = load i32, ptr %arrayidx10.i.i.i.i376, align 4 + %inc.i.i.i51.i377 = add i32 %636, 1 + store i32 %inc.i.i.i51.i377, ptr %arrayidx10.i.i.i.i376, align 4 + %637 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i22.i.i = getelementptr inbounds i32, ptr %637, i64 -1 + %638 = load i32, ptr %arrayidx.i22.i.i, align 4 + %dec.i.i.i378 = add i32 %638, -1 + store i32 %dec.i.i.i378, ptr %arrayidx.i22.i.i, align 4 + %this.val15.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i379 = icmp eq ptr %624, %call.i.i.i.i365 + %cmp.i.i.i.i52.i = icmp eq ptr %this.val15.i.i, null + %or.cond.i.i.i380 = select i1 %cmp.not.i.i.i379, i1 true, i1 %cmp.i.i.i.i52.i + br i1 %or.cond.i.i.i380, label %while.cond.backedge.i.i113, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i381 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i381: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i373 + %arrayidx.i.i.i.i.i382 = getelementptr inbounds i32, ptr %this.val15.i.i, i64 -1 + %639 = load i32, ptr %arrayidx.i.i.i.i.i382, align 4 + %cmp3.i.i.i.i.i383 = icmp eq i32 %639, 0 + br i1 %cmp3.i.i.i.i.i383, label %while.cond.backedgethread-pre-split.i.i111, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i384 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i384: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i381 + %640 = add i32 %639, -1 + %641 = zext i32 %640 to i64 + %m_new_child.i.i.i.i385 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i.i, i64 %641, i32 1 + %bf.load.i.i.i.i386 = load i32, ptr %m_new_child.i.i.i.i385, align 8 + %bf.set.i.i.i.i387 = or i32 %bf.load.i.i.i.i386, 2 + store i32 %bf.set.i.i.i.i387, ptr %m_new_child.i.i.i.i385, align 8 + br label %while.cond.backedgethread-pre-split.i.i111 + +while.cond.backedgethread-pre-split.i.i111: ; preds = %sw.bb33.i.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i384, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i381 + %.pr.i.i112 = load ptr, ptr %m_frame_stack.i, align 8 + br label %while.cond.backedge.i.i113 + +while.cond.backedge.i.i113: ; preds = %while.cond.backedgethread-pre-split.i.i111, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i373 + %642 = phi ptr [ %.pr.i.i112, %while.cond.backedgethread-pre-split.i.i111 ], [ %this.val15.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i373 ] + %cmp.i.i.i114 = icmp eq ptr %642, null + br i1 %cmp.i.i.i114, label %while.end.i.i115, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87, !llvm.loop !18 + +if.end28.i.i: ; preds = %if.then20.i.i364, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i104 + %m_kind.i.i.i108 = getelementptr inbounds %class.ast, ptr %624, i64 0, i32 1 + %bf.load.i.i.i109 = load i32, ptr %m_kind.i.i.i108, align 4 + %trunc.i.i110 = trunc i32 %bf.load.i.i.i109 to i16 + switch i16 %trunc.i.i110, label %sw.default.i.i363 [ + i16 0, label %sw.bb.i.i261 + i16 2, label %sw.bb31.i.i + i16 1, label %sw.bb33.i.i ] -sw.bb.i336: ; preds = %if.end28.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i198) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tmp.i.i) - %bf.load.i23.i = load i32, ptr %625, align 8 - %bf.lshr.i.i338 = lshr i32 %bf.load.i23.i, 2 - %bf.clear.i24.i = and i32 %bf.lshr.i.i338, 3 - switch i32 %bf.clear.i24.i, label %entry.unreachabledefault.i.i415 [ - i32 0, label %sw.bb.i.i357 - i32 1, label %sw.bb204.i.i - i32 2, label %sw.bb224.i.i - i32 3, label %sw.bb276.i.i +sw.bb.i.i261: ; preds = %if.end28.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_t.i.i.i44) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tmp.i.i.i) + %bf.load.i23.i.i = load i32, ptr %626, align 8 + %bf.lshr.i.i.i262 = lshr i32 %bf.load.i23.i.i, 2 + %bf.clear.i24.i.i = and i32 %bf.lshr.i.i.i262, 3 + switch i32 %bf.clear.i24.i.i, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i277 + i32 1, label %sw.bb204.i.i.i + i32 2, label %sw.bb224.i.i.i + i32 3, label %sw.bb276.i.i.i ] -sw.bb.i.i357: ; preds = %sw.bb.i336 - %m_num_args.i2769 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 2 - %642 = load i32, ptr %m_num_args.i2769, align 8 - %m_decl.i.i.i.i = getelementptr inbounds %class.app, ptr %623, i64 0, i32 1 - %m_spos.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i240, i32 2 - %arrayidx.i17.i = getelementptr inbounds %class.app, ptr %623, i64 0, i32 3, i64 2 - %arrayidx.i.i2766 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 3, i64 1 - br label %while.cond.i.i359 - -while.cond.i.i359: ; preds = %if.end.i.i410, %sw.bb.i.i357 - %bf.load2.i.i360 = load i32, ptr %625, align 8 - %bf.lshr3.i.i361 = lshr i32 %bf.load2.i.i360, 6 - %cmp.i25.i = icmp ult i32 %bf.lshr3.i.i361, %642 - br i1 %cmp.i25.i, label %while.body.i.i409, label %while.end.i.i362 - -while.body.i.i409: ; preds = %while.cond.i.i359 - %bf.lshr.mask.i = and i32 %bf.load2.i.i360, -64 - %cmp.i2684 = icmp eq i32 %bf.lshr.mask.i, 64 - br i1 %cmp.i2684, label %land.lhs.true.i2686, label %if.end.i.i410 - -land.lhs.true.i2686: ; preds = %while.body.i.i409 - %bf.load.i.i.i.i = load i32, ptr %m_kind.i.i247, align 4 - %bf.clear.i.i.i.i = and i32 %bf.load.i.i.i.i, 65535 - %cmp.i.i.i2688 = icmp eq i32 %bf.clear.i.i.i.i, 0 - br i1 %cmp.i.i.i2688, label %land.rhs.i.i.i, label %if.end.i.i410 - -land.rhs.i.i.i: ; preds = %land.lhs.true.i2686 - %643 = load ptr, ptr %m_decl.i.i.i.i, align 8 - %m_info.i.i.i.i.i = getelementptr inbounds %class.decl, ptr %643, i64 0, i32 2 - %644 = load ptr, ptr %m_info.i.i.i.i.i, align 8 - %tobool.not.i.i.i.i.i2767 = icmp eq ptr %644, null - br i1 %tobool.not.i.i.i.i.i2767, label %if.end.i.i410, label %_ZNK11ast_manager6is_iteEPK4expr.exit.i - -_ZNK11ast_manager6is_iteEPK4expr.exit.i: ; preds = %land.rhs.i.i.i - %645 = load i32, ptr %644, align 8 - %cmp.i.i.i.i.i.i2768 = icmp eq i32 %645, 0 - %m_kind.i.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %644, i64 0, i32 1 - %646 = load i32, ptr %m_kind.i.i.i.i.i.i, align 4 - %cmp2.i.i.i.i.i.i = icmp eq i32 %646, 4 - %647 = select i1 %cmp.i.i.i.i.i.i2768, i1 %cmp2.i.i.i.i.i.i, i1 false - br i1 %647, label %if.then.i2689, label %if.end.i.i410 - -if.then.i2689: ; preds = %_ZNK11ast_manager6is_iteEPK4expr.exit.i - %648 = load i32, ptr %m_spos.i, align 4 - %649 = load ptr, ptr %m_nodes.i.i433, align 8 - %idxprom.i.i.i = zext i32 %648 to i64 - %arrayidx.i.i.i2692 = getelementptr inbounds ptr, ptr %649, i64 %idxprom.i.i.i - %650 = load ptr, ptr %arrayidx.i.i.i2692, align 8 - %this.val13.i2693 = load ptr, ptr %585, align 8 - %m_true.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i2693, i64 0, i32 15 - %651 = load ptr, ptr %m_true.i.i, align 8 - %cmp.i.i2694 = icmp eq ptr %651, %650 - br i1 %cmp.i.i2694, label %if.end14.i, label %if.else.i2695 - -if.else.i2695: ; preds = %if.then.i2689 - %m_false.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i2693, i64 0, i32 16 - %652 = load ptr, ptr %m_false.i.i, align 8 - %cmp.i16.i = icmp eq ptr %652, %650 - br i1 %cmp.i16.i, label %if.end14.i, label %if.end.i.i410 - -if.end14.i: ; preds = %if.else.i2695, %if.then.i2689 - %arg.0.i.in = phi ptr [ %arrayidx.i.i2766, %if.then.i2689 ], [ %arrayidx.i17.i, %if.else.i2695 ] - %arg.0.i = load ptr, ptr %arg.0.i.in, align 8 - %tobool.not.i2697 = icmp eq ptr %arg.0.i, null - br i1 %tobool.not.i2697, label %if.end.i.i410, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i: ; preds = %if.end14.i - %arrayidx.i.i.i.i2701 = getelementptr inbounds i32, ptr %649, i64 -1 - %653 = load i32, ptr %arrayidx.i.i.i.i2701, align 4 - %654 = zext i32 %653 to i64 - %add.ptr.i.i.i2702 = getelementptr inbounds ptr, ptr %649, i64 %654 - %cmp3.i.i.i2703 = icmp ugt i32 %653, %648 - br i1 %cmp3.i.i.i2703, label %for.body.i.i.i2755.preheader, label %if.then.i.i.i2704 - -for.body.i.i.i2755.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - %arrayidx.i.i.i2692.le = getelementptr inbounds ptr, ptr %649, i64 %idxprom.i.i.i - br label %for.body.i.i.i2755 - -for.body.i.i.i2755: ; preds = %for.body.i.i.i2755.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2761 - %it.04.i.i.i2756 = phi ptr [ %incdec.ptr.i.i.i2762, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2761 ], [ %arrayidx.i.i.i2692.le, %for.body.i.i.i2755.preheader ] - %655 = load ptr, ptr %it.04.i.i.i2756, align 8 - %656 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i.i.i2757 = icmp eq ptr %655, null - br i1 %tobool.not.i.i.i.i.i.i2757, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2761, label %if.then.i.i.i.i.i.i2758 - -if.then.i.i.i.i.i.i2758: ; preds = %for.body.i.i.i2755 - %m_ref_count.i.i.i.i.i.i.i2759 = getelementptr inbounds %class.ast, ptr %655, i64 0, i32 2 - %657 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2759, align 4 - %dec.i.i.i.i.i.i.i2760 = add i32 %657, -1 - store i32 %dec.i.i.i.i.i.i.i2760, ptr %m_ref_count.i.i.i.i.i.i.i2759, align 4 - %cmp.i.i.i.i.i21.i = icmp eq i32 %dec.i.i.i.i.i.i.i2760, 0 - br i1 %cmp.i.i.i.i.i21.i, label %if.then2.i.i.i.i.i.i2765, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2761 - -if.then2.i.i.i.i.i.i2765: ; preds = %if.then.i.i.i.i.i.i2758 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %656, ptr noundef nonnull %655) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2761 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2761: ; preds = %if.then2.i.i.i.i.i.i2765, %if.then.i.i.i.i.i.i2758, %for.body.i.i.i2755 - %incdec.ptr.i.i.i2762 = getelementptr inbounds ptr, ptr %it.04.i.i.i2756, i64 1 - %cmp.i.i22.i = icmp ult ptr %incdec.ptr.i.i.i2762, %add.ptr.i.i.i2702 - br i1 %cmp.i.i22.i, label %for.body.i.i.i2755, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i2761 - %.pre.i.i2763 = load ptr, ptr %m_nodes.i.i433, align 8 - %tobool.not.i.i.i2764 = icmp eq ptr %.pre.i.i2763, null - br i1 %tobool.not.i.i.i2764, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2709, label %if.then.i.i.i2704 - -if.then.i.i.i2704: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i - %658 = phi ptr [ %.pre.i.i2763, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i ], [ %649, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i ] - %arrayidx.i.i20.i2705 = getelementptr inbounds i32, ptr %658, i64 -1 - store i32 %648, ptr %arrayidx.i.i20.i2705, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2709 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2709: ; preds = %if.then.i.i.i2704, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i - %m_ref_count.i.i.i.i.i.i2707 = getelementptr inbounds %class.ast, ptr %arg.0.i, i64 0, i32 2 - %659 = load i32, ptr %m_ref_count.i.i.i.i.i.i2707, align 4 - %inc.i.i.i.i.i.i2708 = add i32 %659, 1 - store i32 %inc.i.i.i.i.i.i2708, ptr %m_ref_count.i.i.i.i.i.i2707, align 4 - %660 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i26.i = icmp eq ptr %660, null - br i1 %cmp.i.i26.i, label %if.then.i.i29.i, label %lor.lhs.false.i.i.i2710 - -lor.lhs.false.i.i.i2710: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2709 - %arrayidx.i.i27.i = getelementptr inbounds i32, ptr %660, i64 -1 - %661 = load i32, ptr %arrayidx.i.i27.i, align 4 - %arrayidx4.i.i.i2711 = getelementptr inbounds i32, ptr %660, i64 -2 - %662 = load i32, ptr %arrayidx4.i.i.i2711, align 4 - %cmp5.i.i.i2712 = icmp eq i32 %661, %662 - br i1 %cmp5.i.i.i2712, label %if.then.i.i29.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2713 - -if.then.i.i29.i: ; preds = %lor.lhs.false.i.i.i2710, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i2709 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - %.pre.i.i.i2752 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i.i2753 = getelementptr inbounds i32, ptr %.pre.i.i.i2752, i64 -1 - %.pre1.i.i.i2754 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i2753, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2713 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2713: ; preds = %if.then.i.i29.i, %lor.lhs.false.i.i.i2710 - %663 = phi i32 [ %.pre1.i.i.i2754, %if.then.i.i29.i ], [ %661, %lor.lhs.false.i.i.i2710 ] - %664 = phi ptr [ %.pre.i.i.i2752, %if.then.i.i29.i ], [ %660, %lor.lhs.false.i.i.i2710 ] - %idx.ext.i.i.i2714 = zext i32 %663 to i64 - %add.ptr.i.i28.i = getelementptr inbounds ptr, ptr %664, i64 %idx.ext.i.i.i2714 - store ptr %arg.0.i, ptr %add.ptr.i.i28.i, align 8 - %665 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i.i2715 = getelementptr inbounds i32, ptr %665, i64 -1 - %666 = load i32, ptr %arrayidx10.i.i.i2715, align 4 - %inc.i.i.i2716 = add i32 %666, 1 - store i32 %inc.i.i.i2716, ptr %arrayidx10.i.i.i2715, align 4 - %bf.load20.i = load i32, ptr %625, align 8 - %bf.clear.i2717 = and i32 %bf.load20.i, -13 - %bf.set.i2718 = or disjoint i32 %bf.clear.i2717, 4 - store i32 %bf.set.i2718, ptr %625, align 8 - %bf.lshr22.i = lshr i32 %bf.load20.i, 4 - %bf.clear23.i = and i32 %bf.lshr22.i, 3 - %call24.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %arg.0.i, i32 noundef %bf.clear23.i) - br i1 %call24.i, label %if.then25.i, label %if.end42.i - -if.then25.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2713 - %667 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i32.i = icmp eq ptr %667, null - br i1 %cmp.i.i.i32.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2720, label %if.end.i.i.i.i2719 - -if.end.i.i.i.i2719: ; preds = %if.then25.i - %arrayidx.i.i.i33.i = getelementptr inbounds i32, ptr %667, i64 -1 - %668 = load i32, ptr %arrayidx.i.i.i33.i, align 4 - %669 = add i32 %668, -1 - %670 = zext i32 %669 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2720 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2720: ; preds = %if.end.i.i.i.i2719, %if.then25.i - %retval.0.i.i.i.i2721 = phi i64 [ %670, %if.end.i.i.i.i2719 ], [ 4294967295, %if.then25.i ] - %arrayidx.i1.i.i.i2722 = getelementptr inbounds ptr, ptr %667, i64 %retval.0.i.i.i.i2721 - %671 = load ptr, ptr %arrayidx.i1.i.i.i2722, align 8 - %tobool.not.i.i2723 = icmp eq ptr %671, null - br i1 %tobool.not.i.i2723, label %if.end.i.i2727, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i2724 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i2724: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2720 - %m_ref_count.i.i.i.i2725 = getelementptr inbounds %class.ast, ptr %671, i64 0, i32 2 - %672 = load i32, ptr %m_ref_count.i.i.i.i2725, align 4 - %inc.i.i.i.i2726 = add i32 %672, 1 - store i32 %inc.i.i.i.i2726, ptr %m_ref_count.i.i.i.i2725, align 4 - br label %if.end.i.i2727 - -if.end.i.i2727: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i2724, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i2720 - %673 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i.i2728 = icmp eq ptr %673, null - br i1 %tobool.not.i3.i.i2728, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2733, label %if.then.i.i.i.i2729 - -if.then.i.i.i.i2729: ; preds = %if.end.i.i2727 - %674 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i.i2731 = getelementptr inbounds %class.ast, ptr %673, i64 0, i32 2 - %675 = load i32, ptr %m_ref_count.i.i.i.i.i2731, align 4 - %dec.i.i.i.i.i2732 = add i32 %675, -1 - store i32 %dec.i.i.i.i.i2732, ptr %m_ref_count.i.i.i.i.i2731, align 4 - %cmp.i.i.i34.i = icmp eq i32 %dec.i.i.i.i.i2732, 0 - br i1 %cmp.i.i.i34.i, label %if.then2.i.i.i.i2751, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2733 - -if.then2.i.i.i.i2751: ; preds = %if.then.i.i.i.i2729 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %674, ptr noundef nonnull %673) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2733 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2733: ; preds = %if.then2.i.i.i.i2751, %if.then.i.i.i.i2729, %if.end.i.i2727 - store ptr %671, ptr %m_r.i48.i, align 8 - %676 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i37.i = icmp eq ptr %676, null - br i1 %cmp.i.i.i37.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2749, label %if.end.i.i.i38.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2749: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2733 - %.pre.i46.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i2750 = add i32 %.pre.i46.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2734 - -if.end.i.i.i38.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i2733 - %arrayidx.i.i.i39.i = getelementptr inbounds i32, ptr %676, i64 -1 - %677 = load i32, ptr %arrayidx.i.i.i39.i, align 4 - %678 = add i32 %677, -1 - %679 = zext i32 %678 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2734 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2734: ; preds = %if.end.i.i.i38.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2749 - %dec.i.pre-phi.i.i2735 = phi i32 [ %.pre1.i.i2750, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2749 ], [ %678, %if.end.i.i.i38.i ] - %retval.0.i.i.i40.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i2749 ], [ %679, %if.end.i.i.i38.i ] - %arrayidx.i1.i.i41.i = getelementptr inbounds ptr, ptr %676, i64 %retval.0.i.i.i40.i - %680 = load ptr, ptr %arrayidx.i1.i.i41.i, align 8 - %arrayidx.i.i42.i = getelementptr inbounds i32, ptr %676, i64 -1 - store i32 %dec.i.pre-phi.i.i2735, ptr %arrayidx.i.i42.i, align 4 - %681 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i43.i = icmp eq ptr %680, null - br i1 %tobool.not.i.i.i.i43.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2738, label %if.then.i.i.i.i44.i - -if.then.i.i.i.i44.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2734 - %m_ref_count.i.i.i.i.i45.i = getelementptr inbounds %class.ast, ptr %680, i64 0, i32 2 - %682 = load i32, ptr %m_ref_count.i.i.i.i.i45.i, align 4 - %dec.i.i.i.i.i.i2736 = add i32 %682, -1 - store i32 %dec.i.i.i.i.i.i2736, ptr %m_ref_count.i.i.i.i.i45.i, align 4 - %cmp.i.i.i.i.i2737 = icmp eq i32 %dec.i.i.i.i.i.i2736, 0 - br i1 %cmp.i.i.i.i.i2737, label %if.then2.i.i.i.i.i2748, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2738 - -if.then2.i.i.i.i.i2748: ; preds = %if.then.i.i.i.i44.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %681, ptr noundef nonnull %680) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2738 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2738: ; preds = %if.then2.i.i.i.i.i2748, %if.then.i.i.i.i44.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i2734 - %683 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i49.i = icmp eq ptr %683, null - br i1 %cmp.i.i.i49.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i, label %if.end.i.i.i50.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2738 - %.pre.i64.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i65.i = add i32 %.pre.i64.i, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - -if.end.i.i.i50.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i2738 - %arrayidx.i.i.i51.i = getelementptr inbounds i32, ptr %683, i64 -1 - %684 = load i32, ptr %arrayidx.i.i.i51.i, align 4 - %685 = add i32 %684, -1 - %686 = zext i32 %685 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i: ; preds = %if.end.i.i.i50.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i - %dec.i.pre-phi.i53.i = phi i32 [ %.pre1.i65.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i ], [ %685, %if.end.i.i.i50.i ] - %retval.0.i.i.i54.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i ], [ %686, %if.end.i.i.i50.i ] - %arrayidx.i1.i.i55.i = getelementptr inbounds ptr, ptr %683, i64 %retval.0.i.i.i54.i - %687 = load ptr, ptr %arrayidx.i1.i.i55.i, align 8 - %arrayidx.i.i56.i = getelementptr inbounds i32, ptr %683, i64 -1 - store i32 %dec.i.pre-phi.i53.i, ptr %arrayidx.i.i56.i, align 4 - %688 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i57.i = icmp eq ptr %687, null - br i1 %tobool.not.i.i.i.i57.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i, label %if.then.i.i.i.i58.i - -if.then.i.i.i.i58.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - %m_ref_count.i.i.i.i.i59.i = getelementptr inbounds %class.ast, ptr %687, i64 0, i32 2 - %689 = load i32, ptr %m_ref_count.i.i.i.i.i59.i, align 4 - %dec.i.i.i.i.i60.i = add i32 %689, -1 - store i32 %dec.i.i.i.i.i60.i, ptr %m_ref_count.i.i.i.i.i59.i, align 4 - %cmp.i.i.i.i61.i = icmp eq i32 %dec.i.i.i.i.i60.i, 0 - br i1 %cmp.i.i.i.i61.i, label %if.then2.i.i.i.i62.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - -if.then2.i.i.i.i62.i: ; preds = %if.then.i.i.i.i58.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %688, ptr noundef nonnull %687) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i: ; preds = %if.then2.i.i.i.i62.i, %if.then.i.i.i.i58.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i - %690 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i68.i = icmp eq ptr %690, null - br i1 %tobool.not.i.i.i.i68.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i, label %if.then.i.i.i.i69.i - -if.then.i.i.i.i69.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - %m_ref_count.i.i.i.i.i70.i = getelementptr inbounds %class.ast, ptr %690, i64 0, i32 2 - %691 = load i32, ptr %m_ref_count.i.i.i.i.i70.i, align 4 - %inc.i.i.i.i.i71.i = add i32 %691, 1 - store i32 %inc.i.i.i.i.i71.i, ptr %m_ref_count.i.i.i.i.i70.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i: ; preds = %if.then.i.i.i.i69.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i - %692 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i74.i = icmp eq ptr %692, null - br i1 %cmp.i.i74.i, label %if.then.i.i83.i, label %lor.lhs.false.i.i75.i - -lor.lhs.false.i.i75.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - %arrayidx.i.i76.i = getelementptr inbounds i32, ptr %692, i64 -1 - %693 = load i32, ptr %arrayidx.i.i76.i, align 4 - %arrayidx4.i.i77.i = getelementptr inbounds i32, ptr %692, i64 -2 - %694 = load i32, ptr %arrayidx4.i.i77.i, align 4 - %cmp5.i.i78.i = icmp eq i32 %693, %694 - br i1 %cmp5.i.i78.i, label %if.then.i.i83.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - -if.then.i.i83.i: ; preds = %lor.lhs.false.i.i75.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - %.pre.i.i84.i = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i85.i = getelementptr inbounds i32, ptr %.pre.i.i84.i, i64 -1 - %.pre1.i.i86.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i85.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i: ; preds = %if.then.i.i83.i, %lor.lhs.false.i.i75.i - %695 = phi i32 [ %.pre1.i.i86.i, %if.then.i.i83.i ], [ %693, %lor.lhs.false.i.i75.i ] - %696 = phi ptr [ %.pre.i.i84.i, %if.then.i.i83.i ], [ %692, %lor.lhs.false.i.i75.i ] - %idx.ext.i.i79.i = zext i32 %695 to i64 - %add.ptr.i.i80.i = getelementptr inbounds ptr, ptr %696, i64 %idx.ext.i.i79.i - store ptr %690, ptr %add.ptr.i.i80.i, align 8 - %697 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i81.i = getelementptr inbounds i32, ptr %697, i64 -1 - %698 = load i32, ptr %arrayidx10.i.i81.i, align 4 - %inc.i.i82.i = add i32 %698, 1 - store i32 %inc.i.i82.i, ptr %arrayidx10.i.i81.i, align 4 - %bf.load38.i = load i32, ptr %625, align 8 - %bf.clear39.i = and i32 %bf.load38.i, 1 - %tobool40.i.not = icmp eq i32 %bf.clear39.i, 0 - br i1 %tobool40.i.not, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i, label %if.then.i.i2747 - -if.then.i.i2747: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - %699 = load ptr, ptr %m_r.i48.i, align 8 - call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %699) - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i: ; preds = %if.then.i.i2747, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i - %700 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i89.i = getelementptr inbounds i32, ptr %700, i64 -1 - %701 = load i32, ptr %arrayidx.i89.i, align 4 - %dec.i.i2740 = add i32 %701, -1 - store i32 %dec.i.i2740, ptr %arrayidx.i89.i, align 4 - %this.val15.i2741 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i90.i = icmp eq ptr %this.val15.i2741, null - br i1 %cmp.i.i90.i, label %if.end42.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2742 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2742: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i - %arrayidx.i.i91.i = getelementptr inbounds i32, ptr %this.val15.i2741, i64 -1 - %702 = load i32, ptr %arrayidx.i.i91.i, align 4 - %cmp3.i.i92.i = icmp eq i32 %702, 0 - br i1 %cmp3.i.i92.i, label %if.end42.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2743 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2743: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2742 - %703 = add i32 %702, -1 - %704 = zext i32 %703 to i64 - %m_new_child.i.i2744 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i2741, i64 %704, i32 1 - %bf.load.i.i2745 = load i32, ptr %m_new_child.i.i2744, align 8 - %bf.set.i.i2746 = or i32 %bf.load.i.i2745, 2 - store i32 %bf.set.i.i2746, ptr %m_new_child.i.i2744, align 8 - br label %if.end42.i - -if.end42.i: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2742, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2743, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i2713 - %705 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i95.i = icmp eq ptr %705, null - br i1 %tobool.not.i3.i95.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit, label %if.then.i.i.i96.i - -if.then.i.i.i96.i: ; preds = %if.end42.i - %706 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i98.i = getelementptr inbounds %class.ast, ptr %705, i64 0, i32 2 - %707 = load i32, ptr %m_ref_count.i.i.i.i98.i, align 4 - %dec.i.i.i.i99.i = add i32 %707, -1 - store i32 %dec.i.i.i.i99.i, ptr %m_ref_count.i.i.i.i98.i, align 4 - %cmp.i.i.i100.i = icmp eq i32 %dec.i.i.i.i99.i, 0 - br i1 %cmp.i.i.i100.i, label %if.then2.i.i.i101.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit - -if.then2.i.i.i101.i: ; preds = %if.then.i.i.i96.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %706, ptr noundef nonnull %705) - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit: ; preds = %if.end42.i, %if.then.i.i.i96.i, %if.then2.i.i.i101.i - store ptr null, ptr %m_r.i48.i, align 8 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.end.i.i410: ; preds = %if.else.i2695, %land.rhs.i.i.i, %land.lhs.true.i2686, %if.end14.i, %_ZNK11ast_manager6is_iteEPK4expr.exit.i, %while.body.i.i409 - %idxprom.i2680 = zext nneg i32 %bf.lshr3.i.i361 to i64 - %arrayidx.i2681 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 3, i64 %idxprom.i2680 - %708 = load ptr, ptr %arrayidx.i2681, align 8 - %bf.shl.i.i412 = add i32 %bf.lshr.mask.i, 64 - %bf.clear13.i.i = and i32 %bf.load2.i.i360, 63 - %bf.set.i.i413 = or disjoint i32 %bf.shl.i.i412, %bf.clear13.i.i - store i32 %bf.set.i.i413, ptr %625, align 8 - %bf.lshr15.i.i = lshr i32 %bf.load2.i.i360, 4 - %bf.clear16.i.i = and i32 %bf.lshr15.i.i, 3 - %call17.i.i414 = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %708, i32 noundef %bf.clear16.i.i) - br i1 %call17.i.i414, label %while.cond.i.i359, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, !llvm.loop !19 - -while.end.i.i362: ; preds = %while.cond.i.i359 - %709 = load ptr, ptr %m_decl.i.i.i.i, align 8 - %710 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i2637 = icmp eq ptr %710, null - br i1 %cmp.i.i2637, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2642, label %if.end.i.i2638 - -if.end.i.i2638: ; preds = %while.end.i.i362 - %arrayidx.i.i2639 = getelementptr inbounds i32, ptr %710, i64 -1 - %711 = load i32, ptr %arrayidx.i.i2639, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2642 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2642: ; preds = %while.end.i.i362, %if.end.i.i2638 - %retval.0.i.i2641 = phi i32 [ %711, %if.end.i.i2638 ], [ 0, %while.end.i.i362 ] - %712 = load i32, ptr %m_spos.i, align 4 - %sub53.i.i = sub i32 %retval.0.i.i2641, %712 - %idx.ext.i.i366 = zext i32 %712 to i64 - %add.ptr.i.i367 = getelementptr inbounds ptr, ptr %710, i64 %idx.ext.i.i366 - %this.val59.i.i368 = load ptr, ptr %585, align 8 - store ptr null, ptr %new_t.i.i198, align 8 - store ptr %this.val59.i.i368, ptr %m_manager.i2633, align 8 - %713 = load ptr, ptr %m_cfg.i.i370, align 8 - %call58.i.i = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %713, ptr noundef nonnull %709, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i) - to label %invoke.cont.i.i373 unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -invoke.cont.i.i373: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2642 - %cmp59.not.i.i = icmp eq i32 %call58.i.i, 5 - br i1 %cmp59.not.i.i, label %if.else162.i.i, label %if.then60.i.i - -if.then60.i.i: ; preds = %invoke.cont.i.i373 - %714 = load i32, ptr %m_spos.i, align 4 - %715 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i2607 = icmp eq ptr %715, null - br i1 %cmp.i.i.i2607, label %invoke.cont63.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2608 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2608: ; preds = %if.then60.i.i - %arrayidx.i.i.i2611 = getelementptr inbounds i32, ptr %715, i64 -1 - %716 = load i32, ptr %arrayidx.i.i.i2611, align 4 - %717 = zext i32 %716 to i64 - %add.ptr.i.i2612 = getelementptr inbounds ptr, ptr %715, i64 %717 - %cmp3.i.i2613 = icmp ugt i32 %716, %714 - br i1 %cmp3.i.i2613, label %for.body.i.i2616.preheader, label %if.then.i.i2614 - -for.body.i.i2616.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2608 - %idx.ext.i2609 = zext i32 %714 to i64 - %add.ptr.i2610 = getelementptr inbounds ptr, ptr %715, i64 %idx.ext.i2609 - br label %for.body.i.i2616 - -for.body.i.i2616: ; preds = %for.body.i.i2616.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2623 - %it.04.i.i2617 = phi ptr [ %incdec.ptr.i.i2624, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2623 ], [ %add.ptr.i2610, %for.body.i.i2616.preheader ] - %718 = load ptr, ptr %it.04.i.i2617, align 8 - %719 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i.i2618 = icmp eq ptr %718, null - br i1 %tobool.not.i.i.i.i.i2618, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2623, label %if.then.i.i.i.i.i2619 - -if.then.i.i.i.i.i2619: ; preds = %for.body.i.i2616 - %m_ref_count.i.i.i.i.i.i2620 = getelementptr inbounds %class.ast, ptr %718, i64 0, i32 2 - %720 = load i32, ptr %m_ref_count.i.i.i.i.i.i2620, align 4 - %dec.i.i.i.i.i.i2621 = add i32 %720, -1 - store i32 %dec.i.i.i.i.i.i2621, ptr %m_ref_count.i.i.i.i.i.i2620, align 4 - %cmp.i.i.i.i.i2622 = icmp eq i32 %dec.i.i.i.i.i.i2621, 0 - br i1 %cmp.i.i.i.i.i2622, label %if.then2.i.i.i.i.i2629, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2623 - -if.then2.i.i.i.i.i2629: ; preds = %if.then.i.i.i.i.i2619 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %719, ptr noundef nonnull %718) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2623 unwind label %lpad.i.i372.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2623: ; preds = %if.then2.i.i.i.i.i2629, %if.then.i.i.i.i.i2619, %for.body.i.i2616 - %incdec.ptr.i.i2624 = getelementptr inbounds ptr, ptr %it.04.i.i2617, i64 1 - %cmp.i.i2625 = icmp ult ptr %incdec.ptr.i.i2624, %add.ptr.i.i2612 - br i1 %cmp.i.i2625, label %for.body.i.i2616, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2626, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2626: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2623 - %.pre.i2627 = load ptr, ptr %m_nodes.i.i433, align 8 - %tobool.not.i.i2628 = icmp eq ptr %.pre.i2627, null - br i1 %tobool.not.i.i2628, label %invoke.cont63.i.i, label %if.then.i.i2614 - -if.then.i.i2614: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2626, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2608 - %721 = phi ptr [ %.pre.i2627, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2626 ], [ %715, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2608 ] - %arrayidx.i.i2615 = getelementptr inbounds i32, ptr %721, i64 -1 - store i32 %714, ptr %arrayidx.i.i2615, align 4 - br label %invoke.cont63.i.i - -invoke.cont63.i.i: ; preds = %if.then.i.i2614, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2626, %if.then60.i.i - %722 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2584 = icmp eq ptr %722, null - br i1 %tobool.not.i.i.i.i2584, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2588, label %if.then.i.i.i.i2585 - -if.then.i.i.i.i2585: ; preds = %invoke.cont63.i.i - %m_ref_count.i.i.i.i.i2586 = getelementptr inbounds %class.ast, ptr %722, i64 0, i32 2 - %723 = load i32, ptr %m_ref_count.i.i.i.i.i2586, align 4 - %inc.i.i.i.i.i2587 = add i32 %723, 1 - store i32 %inc.i.i.i.i.i2587, ptr %m_ref_count.i.i.i.i.i2586, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2588 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2588: ; preds = %if.then.i.i.i.i2585, %invoke.cont63.i.i - %724 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i2590 = icmp eq ptr %724, null - br i1 %cmp.i.i2590, label %if.then.i.i2599, label %lor.lhs.false.i.i2591 - -lor.lhs.false.i.i2591: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2588 - %arrayidx.i.i2592 = getelementptr inbounds i32, ptr %724, i64 -1 - %725 = load i32, ptr %arrayidx.i.i2592, align 4 - %arrayidx4.i.i2593 = getelementptr inbounds i32, ptr %724, i64 -2 - %726 = load i32, ptr %arrayidx4.i.i2593, align 4 - %cmp5.i.i2594 = icmp eq i32 %725, %726 - br i1 %cmp5.i.i2594, label %if.then.i.i2599, label %if.then70.i.i - -if.then.i.i2599: ; preds = %lor.lhs.false.i.i2591, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2588 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - to label %.noexc2603 unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -.noexc2603: ; preds = %if.then.i.i2599 - %.pre.i.i2600 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i2601 = getelementptr inbounds i32, ptr %.pre.i.i2600, i64 -1 - %.pre1.i.i2602 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2601, align 4 - br label %if.then70.i.i - -if.then70.i.i: ; preds = %.noexc2603, %lor.lhs.false.i.i2591 - %727 = phi i32 [ %.pre1.i.i2602, %.noexc2603 ], [ %725, %lor.lhs.false.i.i2591 ] - %728 = phi ptr [ %.pre.i.i2600, %.noexc2603 ], [ %724, %lor.lhs.false.i.i2591 ] - %idx.ext.i.i2595 = zext i32 %727 to i64 - %add.ptr.i.i2596 = getelementptr inbounds ptr, ptr %728, i64 %idx.ext.i.i2595 - store ptr %722, ptr %add.ptr.i.i2596, align 8 - %729 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i2597 = getelementptr inbounds i32, ptr %729, i64 -1 - %730 = load i32, ptr %arrayidx10.i.i2597, align 4 - %inc.i.i2598 = add i32 %730, 1 - store i32 %inc.i.i2598, ptr %arrayidx10.i.i2597, align 4 - %bf.load74.i.i = load i32, ptr %625, align 8 - %bf.clear75.i.i = and i32 %bf.load74.i.i, 1 - %tobool.i.i379.not = icmp eq i32 %bf.clear75.i.i, 0 - br i1 %tobool.i.i379.not, label %invoke.cont76.i.i, label %if.then.i2581 - -if.then.i2581: ; preds = %if.then70.i.i - %731 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %731) - to label %invoke.cont76.i.i unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -invoke.cont76.i.i: ; preds = %if.then70.i.i, %if.then.i2581 - %732 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2577 = getelementptr inbounds i32, ptr %732, i64 -1 - %733 = load i32, ptr %arrayidx.i2577, align 4 - %dec.i2578 = add i32 %733, -1 - store i32 %dec.i2578, ptr %arrayidx.i2577, align 4 - %this.val62.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2567 = icmp eq ptr %this.val62.i.i, null - br i1 %cmp.i.i2567, label %invoke.cont78.i.i381, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2568 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2568: ; preds = %invoke.cont76.i.i - %arrayidx.i.i2569 = getelementptr inbounds i32, ptr %this.val62.i.i, i64 -1 - %734 = load i32, ptr %arrayidx.i.i2569, align 4 - %cmp3.i.i2570 = icmp eq i32 %734, 0 - br i1 %cmp3.i.i2570, label %invoke.cont78.i.i381, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2571 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2571: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2568 - %735 = add i32 %734, -1 - %736 = zext i32 %735 to i64 - %m_new_child.i2572 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val62.i.i, i64 %736, i32 1 - %bf.load.i2573 = load i32, ptr %m_new_child.i2572, align 8 - %bf.set.i2574 = or i32 %bf.load.i2573, 2 - store i32 %bf.set.i2574, ptr %m_new_child.i2572, align 8 - br label %invoke.cont78.i.i381 - -invoke.cont78.i.i381: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2571, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2568, %invoke.cont76.i.i - %737 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2558 = icmp eq ptr %737, null - br i1 %tobool.not.i3.i2558, label %cleanup.i.i382.thread, label %if.then.i.i.i2559 - -if.then.i.i.i2559: ; preds = %invoke.cont78.i.i381 - %738 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i2561 = getelementptr inbounds %class.ast, ptr %737, i64 0, i32 2 - %739 = load i32, ptr %m_ref_count.i.i.i.i2561, align 4 - %dec.i.i.i.i2562 = add i32 %739, -1 - store i32 %dec.i.i.i.i2562, ptr %m_ref_count.i.i.i.i2561, align 4 - %cmp.i.i.i2563 = icmp eq i32 %dec.i.i.i.i2562, 0 - br i1 %cmp.i.i.i2563, label %if.then2.i.i.i2564, label %cleanup.i.i382.thread - -if.then2.i.i.i2564: ; preds = %if.then.i.i.i2559 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %738, ptr noundef nonnull %737) - to label %cleanup.i.i382.thread unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -lpad.i.i372.loopexit: ; preds = %if.then2.i.i.i.i.i2462 - %lpad.loopexit = landingpad { ptr, i32 } +sw.bb.i.i.i277: ; preds = %sw.bb.i.i261 + %m_num_args.i.i.i.i278 = getelementptr inbounds %class.app, ptr %624, i64 0, i32 2 + %643 = load i32, ptr %m_num_args.i.i.i.i278, align 8 + %m_decl.i.i.i.i.i.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 1 + %m_spos.i.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i, i32 2 + %arrayidx.i17.i.i.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 3, i64 2 + %arrayidx.i.i.i25.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 3, i64 1 + br label %while.cond.i.i.i279 + +while.cond.i.i.i279: ; preds = %if.end.i.i.i322, %sw.bb.i.i.i277 + %bf.load2.i.i.i280 = load i32, ptr %626, align 8 + %bf.lshr3.i.i.i281 = lshr i32 %bf.load2.i.i.i280, 6 + %cmp.i26.i.i = icmp ult i32 %bf.lshr3.i.i.i281, %643 + br i1 %cmp.i26.i.i, label %while.body.i.i.i321, label %while.end.i.i.i282 + +while.body.i.i.i321: ; preds = %while.cond.i.i.i279 + %bf.lshr.mask.i.i.i.i = and i32 %bf.load2.i.i.i280, -64 + %cmp.i.i30.i.i = icmp eq i32 %bf.lshr.mask.i.i.i.i, 64 + br i1 %cmp.i.i30.i.i, label %land.lhs.true.i.i.i.i, label %if.end.i.i.i322 + +land.lhs.true.i.i.i.i: ; preds = %while.body.i.i.i321 + %bf.load.i.i.i.i.i.i.i = load i32, ptr %m_kind.i.i.i108, align 4 + %bf.clear.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i, 65535 + %cmp.i.i.i.i.i.i326 = icmp eq i32 %bf.clear.i.i.i.i.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i326, label %land.rhs.i.i.i.i.i.i, label %if.end.i.i.i322 + +land.rhs.i.i.i.i.i.i: ; preds = %land.lhs.true.i.i.i.i + %644 = load ptr, ptr %m_decl.i.i.i.i.i.i.i, align 8 + %m_info.i.i.i.i.i.i.i.i = getelementptr inbounds %class.decl, ptr %644, i64 0, i32 2 + %645 = load ptr, ptr %m_info.i.i.i.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i327 = icmp eq ptr %645, null + br i1 %tobool.not.i.i.i.i.i.i.i.i327, label %if.end.i.i.i322, label %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i + +_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i.i + %646 = load i32, ptr %645, align 8 + %cmp.i.i.i.i.i.i.i.i.i328 = icmp eq i32 %646, 0 + %m_kind.i.i.i.i.i.i.i.i.i = getelementptr inbounds %class.decl_info, ptr %645, i64 0, i32 1 + %647 = load i32, ptr %m_kind.i.i.i.i.i.i.i.i.i, align 4 + %cmp2.i.i.i.i.i.i.i.i.i = icmp eq i32 %647, 4 + %648 = select i1 %cmp.i.i.i.i.i.i.i.i.i328, i1 %cmp2.i.i.i.i.i.i.i.i.i, i1 false + br i1 %648, label %if.then.i.i32.i.i, label %if.end.i.i.i322 + +if.then.i.i32.i.i: ; preds = %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i + %649 = load i32, ptr %m_spos.i.i.i.i, align 4 + %650 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %idxprom.i.i.i.i.i.i = zext i32 %649 to i64 + %arrayidx.i.i.i.i.i.i329 = getelementptr inbounds ptr, ptr %650, i64 %idxprom.i.i.i.i.i.i + %651 = load ptr, ptr %arrayidx.i.i.i.i.i.i329, align 8 + %this.val13.i.i.i.i = load ptr, ptr %586, align 8 + %m_true.i.i.i.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i.i.i.i, i64 0, i32 15 + %652 = load ptr, ptr %m_true.i.i.i.i.i, align 8 + %cmp.i.i.i33.i.i = icmp eq ptr %652, %651 + br i1 %cmp.i.i.i33.i.i, label %if.end14.i.i.i.i, label %if.else.i.i.i.i330 + +if.else.i.i.i.i330: ; preds = %if.then.i.i32.i.i + %m_false.i.i.i.i.i = getelementptr inbounds %class.ast_manager, ptr %this.val13.i.i.i.i, i64 0, i32 16 + %653 = load ptr, ptr %m_false.i.i.i.i.i, align 8 + %cmp.i16.i.i.i.i = icmp eq ptr %653, %651 + br i1 %cmp.i16.i.i.i.i, label %if.end14.i.i.i.i, label %if.end.i.i.i322 + +if.end14.i.i.i.i: ; preds = %if.else.i.i.i.i330, %if.then.i.i32.i.i + %arg.0.in.i.i.i.i = phi ptr [ %arrayidx.i.i.i25.i.i, %if.then.i.i32.i.i ], [ %arrayidx.i17.i.i.i.i, %if.else.i.i.i.i330 ] + %arg.0.i.i.i.i = load ptr, ptr %arg.0.in.i.i.i.i, align 8 + %tobool.not.i.i.i.i331 = icmp eq ptr %arg.0.i.i.i.i, null + br i1 %tobool.not.i.i.i.i331, label %if.end.i.i.i322, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i: ; preds = %if.end14.i.i.i.i + %arrayidx.i.i.i.i.i.i.i332 = getelementptr inbounds i32, ptr %650, i64 -1 + %654 = load i32, ptr %arrayidx.i.i.i.i.i.i.i332, align 4 + %655 = zext i32 %654 to i64 + %add.ptr.i.i.i.i.i.i333 = getelementptr inbounds ptr, ptr %650, i64 %655 + %cmp3.i.i.i.i.i.i334 = icmp ugt i32 %654, %649 + br i1 %cmp3.i.i.i.i.i.i334, label %for.body.i.i.i.i.i.i352.preheader, label %if.then.i.i.i.i34.i.i + +for.body.i.i.i.i.i.i352.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + %arrayidx.i.i.i.i.i.i329.le = getelementptr inbounds ptr, ptr %650, i64 %idxprom.i.i.i.i.i.i + br label %for.body.i.i.i.i.i.i352 + +for.body.i.i.i.i.i.i352: ; preds = %for.body.i.i.i.i.i.i352.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i358 + %it.04.i.i.i.i.i.i353 = phi ptr [ %incdec.ptr.i.i.i.i.i.i359, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i358 ], [ %arrayidx.i.i.i.i.i.i329.le, %for.body.i.i.i.i.i.i352.preheader ] + %656 = load ptr, ptr %it.04.i.i.i.i.i.i353, align 8 + %657 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i.i354 = icmp eq ptr %656, null + br i1 %tobool.not.i.i.i.i.i.i.i.i.i354, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i358, label %if.then.i.i.i.i.i.i.i.i.i355 + +if.then.i.i.i.i.i.i.i.i.i355: ; preds = %for.body.i.i.i.i.i.i352 + %m_ref_count.i.i.i.i.i.i.i.i.i.i356 = getelementptr inbounds %class.ast, ptr %656, i64 0, i32 2 + %658 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i356, align 4 + %dec.i.i.i.i.i.i.i.i.i.i357 = add i32 %658, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i.i357, ptr %m_ref_count.i.i.i.i.i.i.i.i.i.i356, align 4 + %cmp.i.i.i.i.i21.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i.i357, 0 + br i1 %cmp.i.i.i.i.i21.i.i.i.i, label %if.then2.i.i.i.i.i.i.i.i.i361, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i358 + +if.then2.i.i.i.i.i.i.i.i.i361: ; preds = %if.then.i.i.i.i.i.i.i.i.i355 + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %657, ptr noundef nonnull %656) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i358 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i358: ; preds = %if.then2.i.i.i.i.i.i.i.i.i361, %if.then.i.i.i.i.i.i.i.i.i355, %for.body.i.i.i.i.i.i352 + %incdec.ptr.i.i.i.i.i.i359 = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i.i353, i64 1 + %cmp.i.i22.i.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i.i359, %add.ptr.i.i.i.i.i.i333 + br i1 %cmp.i.i22.i.i.i.i, label %for.body.i.i.i.i.i.i352, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i.i358 + %.pre.i.i.i.i.i360 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i.i.i38.i.i = icmp eq ptr %.pre.i.i.i.i.i360, null + br i1 %tobool.not.i.i.i.i38.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i, label %if.then.i.i.i.i34.i.i + +if.then.i.i.i.i34.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i + %659 = phi ptr [ %.pre.i.i.i.i.i360, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i ], [ %650, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i.i ] + %arrayidx.i.i20.i.i.i.i = getelementptr inbounds i32, ptr %659, i64 -1 + store i32 %649, ptr %arrayidx.i.i20.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i34.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i.i + %m_ref_count.i.i.i.i.i.i.i.i.i335 = getelementptr inbounds %class.ast, ptr %arg.0.i.i.i.i, i64 0, i32 2 + %660 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i.i335, align 4 + %inc.i.i.i.i.i.i.i.i.i = add i32 %660, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i.i.i335, align 4 + %661 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i26.i.i.i.i = icmp eq ptr %661, null + br i1 %cmp.i.i26.i.i.i.i, label %if.then.i.i29.i.i.i.i, label %lor.lhs.false.i.i.i.i.i.i + +lor.lhs.false.i.i.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + %arrayidx.i.i27.i.i.i.i = getelementptr inbounds i32, ptr %661, i64 -1 + %662 = load i32, ptr %arrayidx.i.i27.i.i.i.i, align 4 + %arrayidx4.i.i.i.i.i.i = getelementptr inbounds i32, ptr %661, i64 -2 + %663 = load i32, ptr %arrayidx4.i.i.i.i.i.i, align 4 + %cmp5.i.i.i.i.i.i = icmp eq i32 %662, %663 + br i1 %cmp5.i.i.i.i.i.i, label %if.then.i.i29.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + +if.then.i.i29.i.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i.i.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i, i64 -1 + %.pre1.i.i.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i: ; preds = %if.then.i.i29.i.i.i.i, %lor.lhs.false.i.i.i.i.i.i + %664 = phi i32 [ %.pre1.i.i.i.i.i.i, %if.then.i.i29.i.i.i.i ], [ %662, %lor.lhs.false.i.i.i.i.i.i ] + %665 = phi ptr [ %.pre.i.i.i.i.i.i, %if.then.i.i29.i.i.i.i ], [ %661, %lor.lhs.false.i.i.i.i.i.i ] + %idx.ext.i.i.i.i.i.i = zext i32 %664 to i64 + %add.ptr.i.i28.i.i.i.i = getelementptr inbounds ptr, ptr %665, i64 %idx.ext.i.i.i.i.i.i + store ptr %arg.0.i.i.i.i, ptr %add.ptr.i.i28.i.i.i.i, align 8 + %666 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i.i.i = getelementptr inbounds i32, ptr %666, i64 -1 + %667 = load i32, ptr %arrayidx10.i.i.i.i.i.i, align 4 + %inc.i.i.i.i.i.i336 = add i32 %667, 1 + store i32 %inc.i.i.i.i.i.i336, ptr %arrayidx10.i.i.i.i.i.i, align 4 + %bf.load20.i.i.i.i = load i32, ptr %626, align 8 + %bf.clear.i.i.i.i = and i32 %bf.load20.i.i.i.i, -13 + %bf.set.i.i35.i.i = or disjoint i32 %bf.clear.i.i.i.i, 4 + store i32 %bf.set.i.i35.i.i, ptr %626, align 8 + %bf.lshr22.i.i.i.i = lshr i32 %bf.load20.i.i.i.i, 4 + %bf.clear23.i.i.i.i = and i32 %bf.lshr22.i.i.i.i, 3 + %call24.i.i.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %arg.0.i.i.i.i, i32 noundef %bf.clear23.i.i.i.i) + br i1 %call24.i.i.i.i, label %if.then25.i.i.i.i, label %if.end42.i.i.i.i + +if.then25.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + %668 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i32.i.i.i.i = icmp eq ptr %668, null + br i1 %cmp.i.i.i32.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i, label %if.end.i.i.i.i.i.i.i + +if.end.i.i.i.i.i.i.i: ; preds = %if.then25.i.i.i.i + %arrayidx.i.i.i33.i.i.i.i = getelementptr inbounds i32, ptr %668, i64 -1 + %669 = load i32, ptr %arrayidx.i.i.i33.i.i.i.i, align 4 + %670 = add i32 %669, -1 + %671 = zext i32 %670 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i: ; preds = %if.end.i.i.i.i.i.i.i, %if.then25.i.i.i.i + %retval.0.i.i.i.i.i.i.i = phi i64 [ %671, %if.end.i.i.i.i.i.i.i ], [ 4294967295, %if.then25.i.i.i.i ] + %arrayidx.i1.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %668, i64 %retval.0.i.i.i.i.i.i.i + %672 = load ptr, ptr %arrayidx.i1.i.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i48.i = icmp eq ptr %672, null + br i1 %tobool.not.i.i.i.i48.i, label %if.end.i.i.i.i.i338, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i337 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i337: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + %m_ref_count.i.i.i.i.i36.i.i = getelementptr inbounds %class.ast, ptr %672, i64 0, i32 2 + %673 = load i32, ptr %m_ref_count.i.i.i.i.i36.i.i, align 4 + %inc.i.i.i.i.i37.i.i = add i32 %673, 1 + store i32 %inc.i.i.i.i.i37.i.i, ptr %m_ref_count.i.i.i.i.i36.i.i, align 4 + br label %if.end.i.i.i.i.i338 + +if.end.i.i.i.i.i338: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i.i337, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i.i + %674 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i.i.i.i = icmp eq ptr %674, null + br i1 %tobool.not.i3.i.i.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i339 + +if.then.i.i.i.i.i.i.i339: ; preds = %if.end.i.i.i.i.i338 + %675 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i.i.i.i.i340 = getelementptr inbounds %class.ast, ptr %674, i64 0, i32 2 + %676 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i340, align 4 + %dec.i.i.i.i.i.i.i.i341 = add i32 %676, -1 + store i32 %dec.i.i.i.i.i.i.i.i341, ptr %m_ref_count.i.i.i.i.i.i.i.i340, align 4 + %cmp.i.i.i34.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i341, 0 + br i1 %cmp.i.i.i34.i.i.i.i, label %if.then2.i.i.i.i.i.i.i351, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + +if.then2.i.i.i.i.i.i.i351: ; preds = %if.then.i.i.i.i.i.i.i339 + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %675, ptr noundef nonnull %674) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i351, %if.then.i.i.i.i.i.i.i339, %if.end.i.i.i.i.i338 + store ptr %672, ptr %m_r.i64.i.i, align 8 + %677 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i37.i.i.i.i = icmp eq ptr %677, null + br i1 %cmp.i.i.i37.i.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i, label %if.end.i.i.i38.i.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + %.pre.i46.i.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i.i.i350 = add i32 %.pre.i46.i.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + +if.end.i.i.i38.i.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i.i.i + %arrayidx.i.i.i39.i.i.i.i = getelementptr inbounds i32, ptr %677, i64 -1 + %678 = load i32, ptr %arrayidx.i.i.i39.i.i.i.i, align 4 + %679 = add i32 %678, -1 + %680 = zext i32 %679 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i: ; preds = %if.end.i.i.i38.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i + %dec.i.pre-phi.i.i.i.i.i = phi i32 [ %.pre1.i.i.i.i.i350, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i ], [ %679, %if.end.i.i.i38.i.i.i.i ] + %retval.0.i.i.i40.i.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i.i ], [ %680, %if.end.i.i.i38.i.i.i.i ] + %arrayidx.i1.i.i41.i.i.i.i = getelementptr inbounds ptr, ptr %677, i64 %retval.0.i.i.i40.i.i.i.i + %681 = load ptr, ptr %arrayidx.i1.i.i41.i.i.i.i, align 8 + %arrayidx.i.i42.i.i.i.i = getelementptr inbounds i32, ptr %677, i64 -1 + store i32 %dec.i.pre-phi.i.i.i.i.i, ptr %arrayidx.i.i42.i.i.i.i, align 4 + %682 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i43.i.i.i.i = icmp eq ptr %681, null + br i1 %tobool.not.i.i.i.i43.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i, label %if.then.i.i.i.i44.i.i.i.i + +if.then.i.i.i.i44.i.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + %m_ref_count.i.i.i.i.i45.i.i.i.i = getelementptr inbounds %class.ast, ptr %681, i64 0, i32 2 + %683 = load i32, ptr %m_ref_count.i.i.i.i.i45.i.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i.i342 = add i32 %683, -1 + store i32 %dec.i.i.i.i.i.i.i.i.i342, ptr %m_ref_count.i.i.i.i.i45.i.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i.i343 = icmp eq i32 %dec.i.i.i.i.i.i.i.i.i342, 0 + br i1 %cmp.i.i.i.i.i.i.i.i343, label %if.then2.i.i.i.i.i.i.i.i349, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + +if.then2.i.i.i.i.i.i.i.i349: ; preds = %if.then.i.i.i.i44.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %682, ptr noundef nonnull %681) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i: ; preds = %if.then2.i.i.i.i.i.i.i.i349, %if.then.i.i.i.i44.i.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i.i + %684 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i49.i.i.i.i = icmp eq ptr %684, null + br i1 %cmp.i.i.i49.i.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i, label %if.end.i.i.i50.i.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + %.pre.i64.i.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i65.i.i.i.i = add i32 %.pre.i64.i.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + +if.end.i.i.i50.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i.i + %arrayidx.i.i.i51.i.i.i.i = getelementptr inbounds i32, ptr %684, i64 -1 + %685 = load i32, ptr %arrayidx.i.i.i51.i.i.i.i, align 4 + %686 = add i32 %685, -1 + %687 = zext i32 %686 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i: ; preds = %if.end.i.i.i50.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i + %dec.i.pre-phi.i53.i.i.i.i = phi i32 [ %.pre1.i65.i.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i ], [ %686, %if.end.i.i.i50.i.i.i.i ] + %retval.0.i.i.i54.i.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i63.i.i.i.i ], [ %687, %if.end.i.i.i50.i.i.i.i ] + %arrayidx.i1.i.i55.i.i.i.i = getelementptr inbounds ptr, ptr %684, i64 %retval.0.i.i.i54.i.i.i.i + %688 = load ptr, ptr %arrayidx.i1.i.i55.i.i.i.i, align 8 + %arrayidx.i.i56.i.i.i.i = getelementptr inbounds i32, ptr %684, i64 -1 + store i32 %dec.i.pre-phi.i53.i.i.i.i, ptr %arrayidx.i.i56.i.i.i.i, align 4 + %689 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i57.i.i.i.i = icmp eq ptr %688, null + br i1 %tobool.not.i.i.i.i57.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i, label %if.then.i.i.i.i58.i.i.i.i + +if.then.i.i.i.i58.i.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + %m_ref_count.i.i.i.i.i59.i.i.i.i = getelementptr inbounds %class.ast, ptr %688, i64 0, i32 2 + %690 = load i32, ptr %m_ref_count.i.i.i.i.i59.i.i.i.i, align 4 + %dec.i.i.i.i.i60.i.i.i.i = add i32 %690, -1 + store i32 %dec.i.i.i.i.i60.i.i.i.i, ptr %m_ref_count.i.i.i.i.i59.i.i.i.i, align 4 + %cmp.i.i.i.i61.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i60.i.i.i.i, 0 + br i1 %cmp.i.i.i.i61.i.i.i.i, label %if.then2.i.i.i.i62.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + +if.then2.i.i.i.i62.i.i.i.i: ; preds = %if.then.i.i.i.i58.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %689, ptr noundef nonnull %688) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i: ; preds = %if.then2.i.i.i.i62.i.i.i.i, %if.then.i.i.i.i58.i.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i52.i.i.i.i + %691 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i68.i.i.i.i = icmp eq ptr %691, null + br i1 %tobool.not.i.i.i.i68.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i, label %if.then.i.i.i.i69.i.i.i.i + +if.then.i.i.i.i69.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + %m_ref_count.i.i.i.i.i70.i.i.i.i = getelementptr inbounds %class.ast, ptr %691, i64 0, i32 2 + %692 = load i32, ptr %m_ref_count.i.i.i.i.i70.i.i.i.i, align 4 + %inc.i.i.i.i.i71.i.i.i.i = add i32 %692, 1 + store i32 %inc.i.i.i.i.i71.i.i.i.i, ptr %m_ref_count.i.i.i.i.i70.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i: ; preds = %if.then.i.i.i.i69.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit66.i.i.i.i + %693 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i74.i.i.i.i = icmp eq ptr %693, null + br i1 %cmp.i.i74.i.i.i.i, label %if.then.i.i83.i.i.i.i, label %lor.lhs.false.i.i75.i.i.i.i + +lor.lhs.false.i.i75.i.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + %arrayidx.i.i76.i.i.i.i = getelementptr inbounds i32, ptr %693, i64 -1 + %694 = load i32, ptr %arrayidx.i.i76.i.i.i.i, align 4 + %arrayidx4.i.i77.i.i.i.i = getelementptr inbounds i32, ptr %693, i64 -2 + %695 = load i32, ptr %arrayidx4.i.i77.i.i.i.i, align 4 + %cmp5.i.i78.i.i.i.i = icmp eq i32 %694, %695 + br i1 %cmp5.i.i78.i.i.i.i, label %if.then.i.i83.i.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + +if.then.i.i83.i.i.i.i: ; preds = %lor.lhs.false.i.i75.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i72.i.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i84.i.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i85.i.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i84.i.i.i.i, i64 -1 + %.pre1.i.i86.i.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i85.i.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i: ; preds = %if.then.i.i83.i.i.i.i, %lor.lhs.false.i.i75.i.i.i.i + %696 = phi i32 [ %.pre1.i.i86.i.i.i.i, %if.then.i.i83.i.i.i.i ], [ %694, %lor.lhs.false.i.i75.i.i.i.i ] + %697 = phi ptr [ %.pre.i.i84.i.i.i.i, %if.then.i.i83.i.i.i.i ], [ %693, %lor.lhs.false.i.i75.i.i.i.i ] + %idx.ext.i.i79.i.i.i.i = zext i32 %696 to i64 + %add.ptr.i.i80.i.i.i.i = getelementptr inbounds ptr, ptr %697, i64 %idx.ext.i.i79.i.i.i.i + store ptr %691, ptr %add.ptr.i.i80.i.i.i.i, align 8 + %698 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i81.i.i.i.i = getelementptr inbounds i32, ptr %698, i64 -1 + %699 = load i32, ptr %arrayidx10.i.i81.i.i.i.i, align 4 + %inc.i.i82.i.i.i.i = add i32 %699, 1 + store i32 %inc.i.i82.i.i.i.i, ptr %arrayidx10.i.i81.i.i.i.i, align 4 + %bf.load38.i.i.i.i = load i32, ptr %626, align 8 + %bf.clear39.i.i.i.i = and i32 %bf.load38.i.i.i.i, 1 + %tobool40.not.i.i.i.i = icmp eq i32 %bf.clear39.i.i.i.i, 0 + br i1 %tobool40.not.i.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i, label %if.then.i.i.i.i49.i + +if.then.i.i.i.i49.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + %700 = load ptr, ptr %m_r.i64.i.i, align 8 + call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %700) + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i + +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i: ; preds = %if.then.i.i.i.i49.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit87.i.i.i.i + %701 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i89.i.i.i.i = getelementptr inbounds i32, ptr %701, i64 -1 + %702 = load i32, ptr %arrayidx.i89.i.i.i.i, align 4 + %dec.i.i.i.i50.i = add i32 %702, -1 + store i32 %dec.i.i.i.i50.i, ptr %arrayidx.i89.i.i.i.i, align 4 + %this.val15.i.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i90.i.i.i.i = icmp eq ptr %this.val15.i.i.i.i, null + br i1 %cmp.i.i90.i.i.i.i, label %if.end42.i.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i344 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i344: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i + %arrayidx.i.i91.i.i.i.i = getelementptr inbounds i32, ptr %this.val15.i.i.i.i, i64 -1 + %703 = load i32, ptr %arrayidx.i.i91.i.i.i.i, align 4 + %cmp3.i.i92.i.i.i.i = icmp eq i32 %703, 0 + br i1 %cmp3.i.i92.i.i.i.i, label %if.end42.i.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i345 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i345: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i344 + %704 = add i32 %703, -1 + %705 = zext i32 %704 to i64 + %m_new_child.i.i.i.i.i346 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val15.i.i.i.i, i64 %705, i32 1 + %bf.load.i.i.i.i.i347 = load i32, ptr %m_new_child.i.i.i.i.i346, align 8 + %bf.set.i.i.i.i.i348 = or i32 %bf.load.i.i.i.i.i347, 2 + store i32 %bf.set.i.i.i.i.i348, ptr %m_new_child.i.i.i.i.i346, align 8 + br label %if.end42.i.i.i.i + +if.end42.i.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i.i.i345, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i.i.i344, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit.i.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i + %706 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i95.i.i.i.i = icmp eq ptr %706, null + br i1 %tobool.not.i3.i95.i.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i, label %if.then.i.i.i96.i.i.i.i + +if.then.i.i.i96.i.i.i.i: ; preds = %if.end42.i.i.i.i + %707 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i98.i.i.i.i = getelementptr inbounds %class.ast, ptr %706, i64 0, i32 2 + %708 = load i32, ptr %m_ref_count.i.i.i.i98.i.i.i.i, align 4 + %dec.i.i.i.i99.i.i.i.i = add i32 %708, -1 + store i32 %dec.i.i.i.i99.i.i.i.i, ptr %m_ref_count.i.i.i.i98.i.i.i.i, align 4 + %cmp.i.i.i100.i.i.i.i = icmp eq i32 %dec.i.i.i.i99.i.i.i.i, 0 + br i1 %cmp.i.i.i100.i.i.i.i, label %if.then2.i.i.i101.i.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + +if.then2.i.i.i101.i.i.i.i: ; preds = %if.then.i.i.i96.i.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %707, ptr noundef nonnull %706) + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i: ; preds = %if.then2.i.i.i101.i.i.i.i, %if.then.i.i.i96.i.i.i.i, %if.end42.i.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.end.i.i.i322: ; preds = %if.end14.i.i.i.i, %if.else.i.i.i.i330, %_ZNK11ast_manager6is_iteEPK4expr.exit.i.i.i.i, %land.rhs.i.i.i.i.i.i, %land.lhs.true.i.i.i.i, %while.body.i.i.i321 + %idxprom.i.i.i.i323 = zext nneg i32 %bf.lshr3.i.i.i281 to i64 + %arrayidx.i.i31.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 3, i64 %idxprom.i.i.i.i323 + %709 = load ptr, ptr %arrayidx.i.i31.i.i, align 8 + %bf.shl.i.i.i324 = add i32 %bf.lshr.mask.i.i.i.i, 64 + %bf.clear13.i.i.i = and i32 %bf.load2.i.i.i280, 63 + %bf.set.i.i.i325 = or disjoint i32 %bf.shl.i.i.i324, %bf.clear13.i.i.i + store i32 %bf.set.i.i.i325, ptr %626, align 8 + %bf.lshr15.i.i.i = lshr i32 %bf.load2.i.i.i280, 4 + %bf.clear16.i.i.i = and i32 %bf.lshr15.i.i.i, 3 + %call17.i.i.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %709, i32 noundef %bf.clear16.i.i.i) + br i1 %call17.i.i.i, label %while.cond.i.i.i279, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, !llvm.loop !19 + +while.end.i.i.i282: ; preds = %while.cond.i.i.i279 + %710 = load ptr, ptr %m_decl.i.i.i.i.i.i.i, align 8 + %711 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i90.i.i.i = icmp eq ptr %711, null + br i1 %cmp.i.i90.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i283, label %if.end.i.i91.i.i.i + +if.end.i.i91.i.i.i: ; preds = %while.end.i.i.i282 + %arrayidx.i.i92.i.i.i = getelementptr inbounds i32, ptr %711, i64 -1 + %712 = load i32, ptr %arrayidx.i.i92.i.i.i, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i283 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i283: ; preds = %if.end.i.i91.i.i.i, %while.end.i.i.i282 + %retval.0.i.i.i.i.i284 = phi i32 [ %712, %if.end.i.i91.i.i.i ], [ 0, %while.end.i.i.i282 ] + %713 = load i32, ptr %m_spos.i.i.i.i, align 4 + %sub53.i.i.i = sub i32 %retval.0.i.i.i.i.i284, %713 + %idx.ext.i.i.i285 = zext i32 %713 to i64 + %add.ptr.i.i.i286 = getelementptr inbounds ptr, ptr %711, i64 %idx.ext.i.i.i285 + %this.val59.i.i.i287 = load ptr, ptr %586, align 8 + store ptr null, ptr %new_t.i.i.i44, align 8 + store ptr %this.val59.i.i.i287, ptr %m_manager.i.i.i.i85, align 8 + %714 = load ptr, ptr %m_cfg.i.i.i86, align 8 + %call58.i.i.i = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %714, ptr noundef nonnull %710, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i64.i.i) + to label %invoke.cont.i.i.i288 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont.i.i.i288: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i283 + %cmp59.not.i.i.i = icmp eq i32 %call58.i.i.i, 5 + br i1 %cmp59.not.i.i.i, label %if.else162.i.i.i, label %if.then60.i.i.i + +if.then60.i.i.i: ; preds = %invoke.cont.i.i.i288 + %715 = load i32, ptr %m_spos.i.i.i.i, align 4 + %716 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i97.i.i.i = icmp eq ptr %716, null + br i1 %cmp.i.i.i97.i.i.i, label %invoke.cont63.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i289 + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i289: ; preds = %if.then60.i.i.i + %arrayidx.i.i.i98.i.i.i = getelementptr inbounds i32, ptr %716, i64 -1 + %717 = load i32, ptr %arrayidx.i.i.i98.i.i.i, align 4 + %718 = zext i32 %717 to i64 + %add.ptr.i.i.i.i.i290 = getelementptr inbounds ptr, ptr %716, i64 %718 + %cmp3.i.i99.i.i.i = icmp ugt i32 %717, %715 + br i1 %cmp3.i.i99.i.i.i, label %for.body.i.i.preheader.i.i.i306, label %if.then.i.i100.i.i.i + +for.body.i.i.preheader.i.i.i306: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i289 + %idx.ext.i.i27.i.i = zext i32 %715 to i64 + %add.ptr.i.i28.i.i = getelementptr inbounds ptr, ptr %716, i64 %idx.ext.i.i27.i.i + br label %for.body.i.i.i.i.i307 + +for.body.i.i.i.i.i307: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i310, %for.body.i.i.preheader.i.i.i306 + %it.04.i.i.i.i.i308 = phi ptr [ %incdec.ptr.i.i.i.i.i311, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i310 ], [ %add.ptr.i.i28.i.i, %for.body.i.i.preheader.i.i.i306 ] + %719 = load ptr, ptr %it.04.i.i.i.i.i308, align 8 + %720 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i102.i.i.i = icmp eq ptr %719, null + br i1 %tobool.not.i.i.i.i.i102.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i310, label %if.then.i.i.i.i.i.i.i.i309 + +if.then.i.i.i.i.i.i.i.i309: ; preds = %for.body.i.i.i.i.i307 + %m_ref_count.i.i.i.i.i.i103.i.i.i = getelementptr inbounds %class.ast, ptr %719, i64 0, i32 2 + %721 = load i32, ptr %m_ref_count.i.i.i.i.i.i103.i.i.i, align 4 + %dec.i.i.i.i.i.i104.i.i.i = add i32 %721, -1 + store i32 %dec.i.i.i.i.i.i104.i.i.i, ptr %m_ref_count.i.i.i.i.i.i103.i.i.i, align 4 + %cmp.i.i.i.i.i105.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i104.i.i.i, 0 + br i1 %cmp.i.i.i.i.i105.i.i.i, label %if.then2.i.i.i.i.i108.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i310 + +if.then2.i.i.i.i.i108.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i309 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %720, ptr noundef nonnull %719) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i310 unwind label %lpad.loopexit.split-lp.loopexit.i.i.i313 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i310: ; preds = %if.then2.i.i.i.i.i108.i.i.i, %if.then.i.i.i.i.i.i.i.i309, %for.body.i.i.i.i.i307 + %incdec.ptr.i.i.i.i.i311 = getelementptr inbounds ptr, ptr %it.04.i.i.i.i.i308, i64 1 + %cmp.i.i106.i.i.i = icmp ult ptr %incdec.ptr.i.i.i.i.i311, %add.ptr.i.i.i.i.i290 + br i1 %cmp.i.i106.i.i.i, label %for.body.i.i.i.i.i307, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i312, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i312: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i.i310 + %.pre.i.i29.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i107.i.i.i = icmp eq ptr %.pre.i.i29.i.i, null + br i1 %tobool.not.i.i107.i.i.i, label %invoke.cont63.i.i.i, label %if.then.i.i100.i.i.i + +if.then.i.i100.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i312, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i289 + %722 = phi ptr [ %.pre.i.i29.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i312 ], [ %716, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i.i.i289 ] + %arrayidx.i.i101.i.i.i = getelementptr inbounds i32, ptr %722, i64 -1 + store i32 %715, ptr %arrayidx.i.i101.i.i.i, align 4 + br label %invoke.cont63.i.i.i + +invoke.cont63.i.i.i: ; preds = %if.then.i.i100.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i.i.i312, %if.then60.i.i.i + %723 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i291 = icmp eq ptr %723, null + br i1 %tobool.not.i.i.i.i.i.i.i291, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i293, label %if.then.i.i.i.i110.i.i.i + +if.then.i.i.i.i110.i.i.i: ; preds = %invoke.cont63.i.i.i + %m_ref_count.i.i.i.i.i111.i.i.i = getelementptr inbounds %class.ast, ptr %723, i64 0, i32 2 + %724 = load i32, ptr %m_ref_count.i.i.i.i.i111.i.i.i, align 4 + %inc.i.i.i.i.i.i.i.i292 = add i32 %724, 1 + store i32 %inc.i.i.i.i.i.i.i.i292, ptr %m_ref_count.i.i.i.i.i111.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i293 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i293: ; preds = %if.then.i.i.i.i110.i.i.i, %invoke.cont63.i.i.i + %725 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i113.i.i.i = icmp eq ptr %725, null + br i1 %cmp.i.i113.i.i.i, label %if.then.i.i116.i.i.i, label %lor.lhs.false.i.i.i.i.i294 + +lor.lhs.false.i.i.i.i.i294: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i293 + %arrayidx.i.i114.i.i.i = getelementptr inbounds i32, ptr %725, i64 -1 + %726 = load i32, ptr %arrayidx.i.i114.i.i.i, align 4 + %arrayidx4.i.i.i.i.i295 = getelementptr inbounds i32, ptr %725, i64 -2 + %727 = load i32, ptr %arrayidx4.i.i.i.i.i295, align 4 + %cmp5.i.i.i.i.i296 = icmp eq i32 %726, %727 + br i1 %cmp5.i.i.i.i.i296, label %if.then.i.i116.i.i.i, label %if.then70.i.i.i + +if.then.i.i116.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i294, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i293 + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc119.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc119.i.i.i: ; preds = %if.then.i.i116.i.i.i + %.pre.i.i117.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i.i.i305 = getelementptr inbounds i32, ptr %.pre.i.i117.i.i.i, i64 -1 + %.pre1.i.i118.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i305, align 4 + br label %if.then70.i.i.i + +if.then70.i.i.i: ; preds = %.noexc119.i.i.i, %lor.lhs.false.i.i.i.i.i294 + %728 = phi i32 [ %.pre1.i.i118.i.i.i, %.noexc119.i.i.i ], [ %726, %lor.lhs.false.i.i.i.i.i294 ] + %729 = phi ptr [ %.pre.i.i117.i.i.i, %.noexc119.i.i.i ], [ %725, %lor.lhs.false.i.i.i.i.i294 ] + %idx.ext.i.i.i.i.i297 = zext i32 %728 to i64 + %add.ptr.i.i115.i.i.i = getelementptr inbounds ptr, ptr %729, i64 %idx.ext.i.i.i.i.i297 + store ptr %723, ptr %add.ptr.i.i115.i.i.i, align 8 + %730 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i.i.i298 = getelementptr inbounds i32, ptr %730, i64 -1 + %731 = load i32, ptr %arrayidx10.i.i.i.i.i298, align 4 + %inc.i.i.i.i.i299 = add i32 %731, 1 + store i32 %inc.i.i.i.i.i299, ptr %arrayidx10.i.i.i.i.i298, align 4 + %bf.load74.i.i.i = load i32, ptr %626, align 8 + %bf.clear75.i.i.i = and i32 %bf.load74.i.i.i, 1 + %tobool.not.i.i.i300 = icmp eq i32 %bf.clear75.i.i.i, 0 + br i1 %tobool.not.i.i.i300, label %invoke.cont76.i.i.i, label %if.then.i121.i.i.i + +if.then.i121.i.i.i: ; preds = %if.then70.i.i.i + %732 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %732) + to label %invoke.cont76.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont76.i.i.i: ; preds = %if.then.i121.i.i.i, %if.then70.i.i.i + %733 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i124.i.i.i = getelementptr inbounds i32, ptr %733, i64 -1 + %734 = load i32, ptr %arrayidx.i124.i.i.i, align 4 + %dec.i125.i.i.i = add i32 %734, -1 + store i32 %dec.i125.i.i.i, ptr %arrayidx.i124.i.i.i, align 4 + %this.val62.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i126.i.i.i = icmp eq ptr %this.val62.i.i.i, null + br i1 %cmp.i.i126.i.i.i, label %invoke.cont78.i.i.i301, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i: ; preds = %invoke.cont76.i.i.i + %arrayidx.i.i128.i.i.i = getelementptr inbounds i32, ptr %this.val62.i.i.i, i64 -1 + %735 = load i32, ptr %arrayidx.i.i128.i.i.i, align 4 + %cmp3.i.i129.i.i.i = icmp eq i32 %735, 0 + br i1 %cmp3.i.i129.i.i.i, label %invoke.cont78.i.i.i301, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i + %736 = add i32 %735, -1 + %737 = zext i32 %736 to i64 + %m_new_child.i131.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val62.i.i.i, i64 %737, i32 1 + %bf.load.i132.i.i.i = load i32, ptr %m_new_child.i131.i.i.i, align 8 + %bf.set.i133.i.i.i = or i32 %bf.load.i132.i.i.i, 2 + store i32 %bf.set.i133.i.i.i, ptr %m_new_child.i131.i.i.i, align 8 + br label %invoke.cont78.i.i.i301 + +invoke.cont78.i.i.i301: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i130.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i127.i.i.i, %invoke.cont76.i.i.i + %738 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i.i.i302 = icmp eq ptr %738, null + br i1 %tobool.not.i3.i.i.i.i302, label %cleanup.thread.i.i.i, label %if.then.i.i.i137.i.i.i + +if.then.i.i.i137.i.i.i: ; preds = %invoke.cont78.i.i.i301 + %739 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i138.i.i.i = getelementptr inbounds %class.ast, ptr %738, i64 0, i32 2 + %740 = load i32, ptr %m_ref_count.i.i.i.i138.i.i.i, align 4 + %dec.i.i.i.i.i.i.i303 = add i32 %740, -1 + store i32 %dec.i.i.i.i.i.i.i303, ptr %m_ref_count.i.i.i.i138.i.i.i, align 4 + %cmp.i.i.i139.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i303, 0 + br i1 %cmp.i.i.i139.i.i.i, label %if.then2.i.i.i.i.i.i304, label %cleanup.thread.i.i.i + +if.then2.i.i.i.i.i.i304: ; preds = %if.then.i.i.i137.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %739, ptr noundef nonnull %738) + to label %cleanup.thread.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +lpad.loopexit.i.i.i320: ; preds = %if.then2.i.i.i.i.i238.i.i.i + %lpad.loopexit532.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i372 + br label %lpad.i.i.i -lpad.i.i372.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i2629 - %lpad.loopexit2834 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.i.i.i313: ; preds = %if.then2.i.i.i.i.i108.i.i.i + %lpad.loopexit534.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i372 + br label %lpad.i.i.i -lpad.i.i372.loopexit.split-lp.loopexit.split-lp: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2642, %if.then.i.i2599, %if.then.i2581, %if.then2.i.i.i2564, %if.then.i.i2432, %if.then.i2414, %if.then2.i.i.i2395, %if.else174.i.i, %invoke.cont169.i.i, %if.then167.i.i - %lpad.loopexit.split-lp2835 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i.i283, %if.then2.i.i.i287.i.i.i, %if.then.i264.i.i.i, %if.then.i.i257.i.i.i, %if.then2.i.i.i186.i.i, %if.then2.i.i.i199.i.i, %if.then167.i.i.i, %if.then2.i.i.i.i.i.i304, %if.then.i121.i.i.i, %if.then.i.i116.i.i.i + %lpad.loopexit.split-lp535.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad.i.i372 + br label %lpad.i.i.i -lpad.i.i372: ; preds = %lpad.i.i372.loopexit.split-lp.loopexit, %lpad.i.i372.loopexit.split-lp.loopexit.split-lp, %lpad.i.i372.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %lpad.i.i372.loopexit ], [ %lpad.loopexit2834, %lpad.i.i372.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2835, %lpad.i.i372.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i198) #15 +lpad.i.i.i: ; preds = %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i313, %lpad.loopexit.i.i.i320 + %lpad.phi.i.i.i = phi { ptr, i32 } [ %lpad.loopexit532.i.i.i, %lpad.loopexit.i.i.i320 ], [ %lpad.loopexit534.i.i.i, %lpad.loopexit.split-lp.loopexit.i.i.i313 ], [ %lpad.loopexit.split-lp535.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_t.i.i.i44) #15 br label %common.resume -if.else162.i.i: ; preds = %invoke.cont.i.i373 - %bf.load163.i.i = load i32, ptr %625, align 8 - %740 = and i32 %bf.load163.i.i, 2 - %tobool166.not.i.i = icmp eq i32 %740, 0 - br i1 %tobool166.not.i.i, label %if.else174.i.i, label %if.then167.i.i - -if.then167.i.i: ; preds = %if.else162.i.i - %this.val58.i.i384 = load ptr, ptr %585, align 8 - %call170.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i.i384, ptr noundef nonnull %709, i32 noundef %sub53.i.i, ptr noundef %add.ptr.i.i367) - to label %invoke.cont169.i.i unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -invoke.cont169.i.i: ; preds = %if.then167.i.i - %call173.i.i385 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i, ptr noundef %call170.i.i) - to label %if.end179.i.i unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -if.else174.i.i: ; preds = %if.else162.i.i - %call177.i.i387 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN7obj_refI4expr11ast_managerEaSEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %m_r.i48.i, ptr noundef nonnull %623) - to label %if.end179.i.i unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -if.end179.i.i: ; preds = %if.else174.i.i, %invoke.cont169.i.i - %741 = load i32, ptr %m_spos.i, align 4 - %742 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i2440 = icmp eq ptr %742, null - br i1 %cmp.i.i.i2440, label %invoke.cont182.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2441 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2441: ; preds = %if.end179.i.i - %arrayidx.i.i.i2444 = getelementptr inbounds i32, ptr %742, i64 -1 - %743 = load i32, ptr %arrayidx.i.i.i2444, align 4 - %744 = zext i32 %743 to i64 - %add.ptr.i.i2445 = getelementptr inbounds ptr, ptr %742, i64 %744 - %cmp3.i.i2446 = icmp ugt i32 %743, %741 - br i1 %cmp3.i.i2446, label %for.body.i.i2449.preheader, label %if.then.i.i2447 - -for.body.i.i2449.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2441 - %idx.ext.i2442 = zext i32 %741 to i64 - %add.ptr.i2443 = getelementptr inbounds ptr, ptr %742, i64 %idx.ext.i2442 - br label %for.body.i.i2449 - -for.body.i.i2449: ; preds = %for.body.i.i2449.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2456 - %it.04.i.i2450 = phi ptr [ %incdec.ptr.i.i2457, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2456 ], [ %add.ptr.i2443, %for.body.i.i2449.preheader ] - %745 = load ptr, ptr %it.04.i.i2450, align 8 - %746 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i.i2451 = icmp eq ptr %745, null - br i1 %tobool.not.i.i.i.i.i2451, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2456, label %if.then.i.i.i.i.i2452 - -if.then.i.i.i.i.i2452: ; preds = %for.body.i.i2449 - %m_ref_count.i.i.i.i.i.i2453 = getelementptr inbounds %class.ast, ptr %745, i64 0, i32 2 - %747 = load i32, ptr %m_ref_count.i.i.i.i.i.i2453, align 4 - %dec.i.i.i.i.i.i2454 = add i32 %747, -1 - store i32 %dec.i.i.i.i.i.i2454, ptr %m_ref_count.i.i.i.i.i.i2453, align 4 - %cmp.i.i.i.i.i2455 = icmp eq i32 %dec.i.i.i.i.i.i2454, 0 - br i1 %cmp.i.i.i.i.i2455, label %if.then2.i.i.i.i.i2462, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2456 - -if.then2.i.i.i.i.i2462: ; preds = %if.then.i.i.i.i.i2452 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %746, ptr noundef nonnull %745) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2456 unwind label %lpad.i.i372.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2456: ; preds = %if.then2.i.i.i.i.i2462, %if.then.i.i.i.i.i2452, %for.body.i.i2449 - %incdec.ptr.i.i2457 = getelementptr inbounds ptr, ptr %it.04.i.i2450, i64 1 - %cmp.i.i2458 = icmp ult ptr %incdec.ptr.i.i2457, %add.ptr.i.i2445 - br i1 %cmp.i.i2458, label %for.body.i.i2449, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2459, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2459: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2456 - %.pre.i2460 = load ptr, ptr %m_nodes.i.i433, align 8 - %tobool.not.i.i2461 = icmp eq ptr %.pre.i2460, null - br i1 %tobool.not.i.i2461, label %invoke.cont182.i.i, label %if.then.i.i2447 - -if.then.i.i2447: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2459, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2441 - %748 = phi ptr [ %.pre.i2460, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2459 ], [ %742, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2441 ] - %arrayidx.i.i2448 = getelementptr inbounds i32, ptr %748, i64 -1 - store i32 %741, ptr %arrayidx.i.i2448, align 4 - br label %invoke.cont182.i.i - -invoke.cont182.i.i: ; preds = %if.then.i.i2447, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2459, %if.end179.i.i - %749 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2417 = icmp eq ptr %749, null - br i1 %tobool.not.i.i.i.i2417, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2421, label %if.then.i.i.i.i2418 - -if.then.i.i.i.i2418: ; preds = %invoke.cont182.i.i - %m_ref_count.i.i.i.i.i2419 = getelementptr inbounds %class.ast, ptr %749, i64 0, i32 2 - %750 = load i32, ptr %m_ref_count.i.i.i.i.i2419, align 4 - %inc.i.i.i.i.i2420 = add i32 %750, 1 - store i32 %inc.i.i.i.i.i2420, ptr %m_ref_count.i.i.i.i.i2419, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2421 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2421: ; preds = %if.then.i.i.i.i2418, %invoke.cont182.i.i - %751 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i2423 = icmp eq ptr %751, null - br i1 %cmp.i.i2423, label %if.then.i.i2432, label %lor.lhs.false.i.i2424 - -lor.lhs.false.i.i2424: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2421 - %arrayidx.i.i2425 = getelementptr inbounds i32, ptr %751, i64 -1 - %752 = load i32, ptr %arrayidx.i.i2425, align 4 - %arrayidx4.i.i2426 = getelementptr inbounds i32, ptr %751, i64 -2 - %753 = load i32, ptr %arrayidx4.i.i2426, align 4 - %cmp5.i.i2427 = icmp eq i32 %752, %753 - br i1 %cmp5.i.i2427, label %if.then.i.i2432, label %invoke.cont186.i.i - -if.then.i.i2432: ; preds = %lor.lhs.false.i.i2424, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2421 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - to label %.noexc2436 unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -.noexc2436: ; preds = %if.then.i.i2432 - %.pre.i.i2433 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i2434 = getelementptr inbounds i32, ptr %.pre.i.i2433, i64 -1 - %.pre1.i.i2435 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2434, align 4 - br label %invoke.cont186.i.i - -invoke.cont186.i.i: ; preds = %.noexc2436, %lor.lhs.false.i.i2424 - %754 = phi i32 [ %.pre1.i.i2435, %.noexc2436 ], [ %752, %lor.lhs.false.i.i2424 ] - %755 = phi ptr [ %.pre.i.i2433, %.noexc2436 ], [ %751, %lor.lhs.false.i.i2424 ] - %idx.ext.i.i2428 = zext i32 %754 to i64 - %add.ptr.i.i2429 = getelementptr inbounds ptr, ptr %755, i64 %idx.ext.i.i2428 - store ptr %749, ptr %add.ptr.i.i2429, align 8 - %756 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i2430 = getelementptr inbounds i32, ptr %756, i64 -1 - %757 = load i32, ptr %arrayidx10.i.i2430, align 4 - %inc.i.i2431 = add i32 %757, 1 - store i32 %inc.i.i2431, ptr %arrayidx10.i.i2430, align 4 - %bf.load193.i.i = load i32, ptr %625, align 8 - %bf.clear194.i.i = and i32 %bf.load193.i.i, 1 - %tobool195.i.i.not = icmp eq i32 %bf.clear194.i.i, 0 - br i1 %tobool195.i.i.not, label %invoke.cont196.i.i, label %if.then.i2414 - -if.then.i2414: ; preds = %invoke.cont186.i.i - %758 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %758) - to label %invoke.cont196.i.i unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -invoke.cont196.i.i: ; preds = %invoke.cont186.i.i, %if.then.i2414 - %759 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2410 = getelementptr inbounds i32, ptr %759, i64 -1 - %760 = load i32, ptr %arrayidx.i2410, align 4 - %dec.i2411 = add i32 %760, -1 - store i32 %dec.i2411, ptr %arrayidx.i2410, align 4 - %761 = load ptr, ptr %m_r.i48.i, align 8 - %this.val64.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i2398 = icmp eq ptr %623, %761 - %cmp.i.i.i2399 = icmp eq ptr %this.val64.i.i, null - %or.cond.i2400 = select i1 %cmp.not.i2398, i1 true, i1 %cmp.i.i.i2399 - br i1 %or.cond.i2400, label %invoke.cont200.i.i386, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2401 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2401: ; preds = %invoke.cont196.i.i - %arrayidx.i.i.i2402 = getelementptr inbounds i32, ptr %this.val64.i.i, i64 -1 - %762 = load i32, ptr %arrayidx.i.i.i2402, align 4 - %cmp3.i.i.i2403 = icmp eq i32 %762, 0 - br i1 %cmp3.i.i.i2403, label %invoke.cont200.i.i386, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2404 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2404: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2401 - %763 = add i32 %762, -1 - %764 = zext i32 %763 to i64 - %m_new_child.i.i2405 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val64.i.i, i64 %764, i32 1 - %bf.load.i.i2406 = load i32, ptr %m_new_child.i.i2405, align 8 - %bf.set.i.i2407 = or i32 %bf.load.i.i2406, 2 - store i32 %bf.set.i.i2407, ptr %m_new_child.i.i2405, align 8 - %.pr2821.pre = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont200.i.i386 - -invoke.cont200.i.i386: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2404, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2401, %invoke.cont196.i.i - %765 = phi ptr [ %761, %invoke.cont196.i.i ], [ %761, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i2401 ], [ %.pr2821.pre, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i2404 ] - %tobool.not.i3.i2389 = icmp eq ptr %765, null - br i1 %tobool.not.i3.i2389, label %cleanup.i.i382.thread, label %if.then.i.i.i2390 - -if.then.i.i.i2390: ; preds = %invoke.cont200.i.i386 - %766 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i2392 = getelementptr inbounds %class.ast, ptr %765, i64 0, i32 2 - %767 = load i32, ptr %m_ref_count.i.i.i.i2392, align 4 - %dec.i.i.i.i2393 = add i32 %767, -1 - store i32 %dec.i.i.i.i2393, ptr %m_ref_count.i.i.i.i2392, align 4 - %cmp.i.i.i2394 = icmp eq i32 %dec.i.i.i.i2393, 0 - br i1 %cmp.i.i.i2394, label %if.then2.i.i.i2395, label %cleanup.i.i382.thread - -if.then2.i.i.i2395: ; preds = %if.then.i.i.i2390 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %766, ptr noundef nonnull %765) - to label %cleanup.i.i382 unwind label %lpad.i.i372.loopexit.split-lp.loopexit.split-lp - -cleanup.i.i382.thread: ; preds = %if.then.i.i.i2390, %invoke.cont200.i.i386, %if.then.i.i.i2559, %invoke.cont78.i.i381, %if.then2.i.i.i2564 - store ptr null, ptr %m_r.i48.i, align 8 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -cleanup.i.i382: ; preds = %if.then2.i.i.i2395 - %.pre2939 = load ptr, ptr %new_t.i.i198, align 8 - store ptr null, ptr %m_r.i48.i, align 8 - %tobool.not.i.i2378 = icmp eq ptr %.pre2939, null - br i1 %tobool.not.i.i2378, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i2379 - -if.then.i.i.i2379: ; preds = %cleanup.i.i382 - %768 = load ptr, ptr %m_manager.i2633, align 8 - %m_ref_count.i.i.i.i2381 = getelementptr inbounds %class.ast, ptr %.pre2939, i64 0, i32 2 - %769 = load i32, ptr %m_ref_count.i.i.i.i2381, align 4 - %dec.i.i.i.i2382 = add i32 %769, -1 - store i32 %dec.i.i.i.i2382, ptr %m_ref_count.i.i.i.i2381, align 4 - %cmp.i.i.i2383 = icmp eq i32 %dec.i.i.i.i2382, 0 - br i1 %cmp.i.i.i2383, label %if.then2.i.i.i2385, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i2385: ; preds = %if.then.i.i.i2379 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %768, ptr noundef nonnull %.pre2939) - to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i2386 - -terminate.lpad.i2386: ; preds = %if.then2.i.i.i2385 - %770 = landingpad { ptr, i32 } - catch ptr null - %771 = extractvalue { ptr, i32 } %770, 0 - call void @__clang_call_terminate(ptr %771) #14 - unreachable - -sw.bb204.i.i: ; preds = %sw.bb.i336 - %772 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i2371 = icmp eq ptr %772, null - br i1 %cmp.i.i.i2371, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2376, label %if.end.i.i.i2372 - -if.end.i.i.i2372: ; preds = %sw.bb204.i.i - %arrayidx.i.i.i2373 = getelementptr inbounds i32, ptr %772, i64 -1 - %773 = load i32, ptr %arrayidx.i.i.i2373, align 4 - %774 = add i32 %773, -1 - %775 = zext i32 %774 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2376 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2376: ; preds = %sw.bb204.i.i, %if.end.i.i.i2372 - %retval.0.i.i.i2374 = phi i64 [ %775, %if.end.i.i.i2372 ], [ 4294967295, %sw.bb204.i.i ] - %arrayidx.i1.i.i2375 = getelementptr inbounds ptr, ptr %772, i64 %retval.0.i.i.i2374 - %776 = load ptr, ptr %arrayidx.i1.i.i2375, align 8 - %tobool.not.i2357 = icmp eq ptr %776, null - br i1 %tobool.not.i2357, label %if.end.i2361, label %_ZN11ast_manager7inc_refEP3ast.exit.i2358 - -_ZN11ast_manager7inc_refEP3ast.exit.i2358: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2376 - %m_ref_count.i.i.i2359 = getelementptr inbounds %class.ast, ptr %776, i64 0, i32 2 - %777 = load i32, ptr %m_ref_count.i.i.i2359, align 4 - %inc.i.i.i2360 = add i32 %777, 1 - store i32 %inc.i.i.i2360, ptr %m_ref_count.i.i.i2359, align 4 - br label %if.end.i2361 - -if.end.i2361: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i2358, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit2376 - %778 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2362 = icmp eq ptr %778, null - br i1 %tobool.not.i3.i2362, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2369, label %if.then.i.i.i2363 - -if.then.i.i.i2363: ; preds = %if.end.i2361 - %779 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i2365 = getelementptr inbounds %class.ast, ptr %778, i64 0, i32 2 - %780 = load i32, ptr %m_ref_count.i.i.i.i2365, align 4 - %dec.i.i.i.i2366 = add i32 %780, -1 - store i32 %dec.i.i.i.i2366, ptr %m_ref_count.i.i.i.i2365, align 4 - %cmp.i.i.i2367 = icmp eq i32 %dec.i.i.i.i2366, 0 - br i1 %cmp.i.i.i2367, label %if.then2.i.i.i2368, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2369 - -if.then2.i.i.i2368: ; preds = %if.then.i.i.i2363 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %779, ptr noundef nonnull %778) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2369 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2369: ; preds = %if.end.i2361, %if.then.i.i.i2363, %if.then2.i.i.i2368 - store ptr %776, ptr %m_r.i48.i, align 8 - %781 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i2338 = icmp eq ptr %781, null - br i1 %cmp.i.i.i2338, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2352, label %if.end.i.i.i2339 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2352: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2369 - %.pre.i2353 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i2354 = add i32 %.pre.i2353, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2341 - -if.end.i.i.i2339: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit2369 - %arrayidx.i.i.i2340 = getelementptr inbounds i32, ptr %781, i64 -1 - %782 = load i32, ptr %arrayidx.i.i.i2340, align 4 - %783 = add i32 %782, -1 - %784 = zext i32 %783 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2341 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i2341: ; preds = %if.end.i.i.i2339, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2352 - %dec.i.pre-phi.i2342 = phi i32 [ %.pre1.i2354, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2352 ], [ %783, %if.end.i.i.i2339 ] - %retval.0.i.i.i2343 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2352 ], [ %784, %if.end.i.i.i2339 ] - %arrayidx.i1.i.i2344 = getelementptr inbounds ptr, ptr %781, i64 %retval.0.i.i.i2343 - %785 = load ptr, ptr %arrayidx.i1.i.i2344, align 8 - %arrayidx.i.i2345 = getelementptr inbounds i32, ptr %781, i64 -1 - store i32 %dec.i.pre-phi.i2342, ptr %arrayidx.i.i2345, align 4 - %786 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i2346 = icmp eq ptr %785, null - br i1 %tobool.not.i.i.i.i2346, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2355, label %if.then.i.i.i.i2347 - -if.then.i.i.i.i2347: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2341 - %m_ref_count.i.i.i.i.i2348 = getelementptr inbounds %class.ast, ptr %785, i64 0, i32 2 - %787 = load i32, ptr %m_ref_count.i.i.i.i.i2348, align 4 - %dec.i.i.i.i.i2349 = add i32 %787, -1 - store i32 %dec.i.i.i.i.i2349, ptr %m_ref_count.i.i.i.i.i2348, align 4 - %cmp.i.i.i.i2350 = icmp eq i32 %dec.i.i.i.i.i2349, 0 - br i1 %cmp.i.i.i.i2350, label %if.then2.i.i.i.i2351, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2355 - -if.then2.i.i.i.i2351: ; preds = %if.then.i.i.i.i2347 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %786, ptr noundef nonnull %785) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2355 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2355: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2341, %if.then.i.i.i.i2347, %if.then2.i.i.i.i2351 - %788 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i2318 = icmp eq ptr %788, null - br i1 %cmp.i.i.i2318, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2332, label %if.end.i.i.i2319 - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2332: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2355 - %.pre.i2333 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i2334 = add i32 %.pre.i2333, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2321 - -if.end.i.i.i2319: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2355 - %arrayidx.i.i.i2320 = getelementptr inbounds i32, ptr %788, i64 -1 - %789 = load i32, ptr %arrayidx.i.i.i2320, align 4 - %790 = add i32 %789, -1 - %791 = zext i32 %790 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2321 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i2321: ; preds = %if.end.i.i.i2319, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2332 - %dec.i.pre-phi.i2322 = phi i32 [ %.pre1.i2334, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2332 ], [ %790, %if.end.i.i.i2319 ] - %retval.0.i.i.i2323 = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i2332 ], [ %791, %if.end.i.i.i2319 ] - %arrayidx.i1.i.i2324 = getelementptr inbounds ptr, ptr %788, i64 %retval.0.i.i.i2323 - %792 = load ptr, ptr %arrayidx.i1.i.i2324, align 8 - %arrayidx.i.i2325 = getelementptr inbounds i32, ptr %788, i64 -1 - store i32 %dec.i.pre-phi.i2322, ptr %arrayidx.i.i2325, align 4 - %793 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i2326 = icmp eq ptr %792, null - br i1 %tobool.not.i.i.i.i2326, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2335, label %if.then.i.i.i.i2327 - -if.then.i.i.i.i2327: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2321 - %m_ref_count.i.i.i.i.i2328 = getelementptr inbounds %class.ast, ptr %792, i64 0, i32 2 - %794 = load i32, ptr %m_ref_count.i.i.i.i.i2328, align 4 - %dec.i.i.i.i.i2329 = add i32 %794, -1 - store i32 %dec.i.i.i.i.i2329, ptr %m_ref_count.i.i.i.i.i2328, align 4 - %cmp.i.i.i.i2330 = icmp eq i32 %dec.i.i.i.i.i2329, 0 - br i1 %cmp.i.i.i.i2330, label %if.then2.i.i.i.i2331, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2335 - -if.then2.i.i.i.i2331: ; preds = %if.then.i.i.i.i2327 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %793, ptr noundef nonnull %792) - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2335 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2335: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i2321, %if.then.i.i.i.i2327, %if.then2.i.i.i.i2331 - %795 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2296 = icmp eq ptr %795, null - br i1 %tobool.not.i.i.i.i2296, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2300, label %if.then.i.i.i.i2297 - -if.then.i.i.i.i2297: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2335 - %m_ref_count.i.i.i.i.i2298 = getelementptr inbounds %class.ast, ptr %795, i64 0, i32 2 - %796 = load i32, ptr %m_ref_count.i.i.i.i.i2298, align 4 - %inc.i.i.i.i.i2299 = add i32 %796, 1 - store i32 %inc.i.i.i.i.i2299, ptr %m_ref_count.i.i.i.i.i2298, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2300 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2300: ; preds = %if.then.i.i.i.i2297, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit2335 - %797 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i2302 = icmp eq ptr %797, null - br i1 %cmp.i.i2302, label %if.then.i.i2311, label %lor.lhs.false.i.i2303 - -lor.lhs.false.i.i2303: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2300 - %arrayidx.i.i2304 = getelementptr inbounds i32, ptr %797, i64 -1 - %798 = load i32, ptr %arrayidx.i.i2304, align 4 - %arrayidx4.i.i2305 = getelementptr inbounds i32, ptr %797, i64 -2 - %799 = load i32, ptr %arrayidx4.i.i2305, align 4 - %cmp5.i.i2306 = icmp eq i32 %798, %799 - br i1 %cmp5.i.i2306, label %if.then.i.i2311, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2315 - -if.then.i.i2311: ; preds = %lor.lhs.false.i.i2303, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2300 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - %.pre.i.i2312 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i2313 = getelementptr inbounds i32, ptr %.pre.i.i2312, i64 -1 - %.pre1.i.i2314 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2313, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2315 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2315: ; preds = %lor.lhs.false.i.i2303, %if.then.i.i2311 - %800 = phi i32 [ %.pre1.i.i2314, %if.then.i.i2311 ], [ %798, %lor.lhs.false.i.i2303 ] - %801 = phi ptr [ %.pre.i.i2312, %if.then.i.i2311 ], [ %797, %lor.lhs.false.i.i2303 ] - %idx.ext.i.i2307 = zext i32 %800 to i64 - %add.ptr.i.i2308 = getelementptr inbounds ptr, ptr %801, i64 %idx.ext.i.i2307 - store ptr %795, ptr %add.ptr.i.i2308, align 8 - %802 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i2309 = getelementptr inbounds i32, ptr %802, i64 -1 - %803 = load i32, ptr %arrayidx10.i.i2309, align 4 - %inc.i.i2310 = add i32 %803, 1 - store i32 %inc.i.i2310, ptr %arrayidx10.i.i2309, align 4 - %bf.load220.i.i = load i32, ptr %625, align 8 - %bf.clear221.i.i = and i32 %bf.load220.i.i, 1 - %tobool222.i.i.not = icmp eq i32 %bf.clear221.i.i, 0 - br i1 %tobool222.i.i.not, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2295, label %if.then.i2294 - -if.then.i2294: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2315 - %804 = load ptr, ptr %m_r.i48.i, align 8 - call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %623, i32 noundef 0, ptr noundef %804) - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2295 - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2295: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit2315, %if.then.i2294 - %805 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2290 = getelementptr inbounds i32, ptr %805, i64 -1 - %806 = load i32, ptr %arrayidx.i2290, align 4 - %dec.i2291 = add i32 %806, -1 - store i32 %dec.i2291, ptr %arrayidx.i2290, align 4 - %this.val61.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2280 = icmp eq ptr %this.val61.i.i, null - br i1 %cmp.i.i2280, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2281 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2281: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2295 - %arrayidx.i.i2282 = getelementptr inbounds i32, ptr %this.val61.i.i, i64 -1 - %807 = load i32, ptr %arrayidx.i.i2282, align 4 - %cmp3.i.i2283 = icmp eq i32 %807, 0 - br i1 %cmp3.i.i2283, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2284 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2284: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2281 - %808 = add i32 %807, -1 - %809 = zext i32 %808 to i64 - %m_new_child.i2285 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val61.i.i, i64 %809, i32 1 - %bf.load.i2286 = load i32, ptr %m_new_child.i2285, align 8 - %bf.set.i2287 = or i32 %bf.load.i2286, 2 - store i32 %bf.set.i2287, ptr %m_new_child.i2285, align 8 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -sw.bb224.i.i: ; preds = %sw.bb.i336 - %this.val.i.i339 = load ptr, ptr %585, align 8 - store ptr null, ptr %tmp.i.i, align 8 - store ptr %this.val.i.i339, ptr %m_manager.i2279, align 8 - %m_num_args.i2278 = getelementptr inbounds %class.app, ptr %623, i64 0, i32 2 - %810 = load i32, ptr %m_num_args.i2278, align 8 - %811 = load ptr, ptr %m_bindings.i66.i, align 8 - %cmp.i2273 = icmp eq ptr %811, null - br i1 %cmp.i2273, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2272, label %if.then.i2269 - -if.then.i2269: ; preds = %sw.bb224.i.i - %arrayidx.i2275 = getelementptr inbounds i32, ptr %811, i64 -1 - %812 = load i32, ptr %arrayidx.i2275, align 4 - %sub231.i.i = sub i32 %812, %810 - store i32 %sub231.i.i, ptr %arrayidx.i2275, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2272 - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2272: ; preds = %sw.bb224.i.i, %if.then.i2269 - %813 = load ptr, ptr %m_shifts.i70.i, align 8 - %cmp.i2263 = icmp eq ptr %813, null - br i1 %cmp.i2263, label %_ZN6vectorIjLb0EjE6shrinkEj.exit2262, label %if.then.i2259 - -if.then.i2259: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2272 - %arrayidx.i2265 = getelementptr inbounds i32, ptr %813, i64 -1 - %814 = load i32, ptr %arrayidx.i2265, align 4 - %sub235.i.i = sub i32 %814, %810 - store i32 %sub235.i.i, ptr %arrayidx.i2265, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit2262 - -_ZN6vectorIjLb0EjE6shrinkEj.exit2262: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit2272, %if.then.i2259 - %815 = load i32, ptr %m_num_qvars.i55, align 8 - %sub237.i.i = sub i32 %815, %810 - store i32 %sub237.i.i, ptr %m_num_qvars.i55, align 8 +if.else162.i.i.i: ; preds = %invoke.cont.i.i.i288 + %bf.load163.i.i.i = load i32, ptr %626, align 8 + %741 = and i32 %bf.load163.i.i.i, 2 + %tobool166.not.i.i.i = icmp eq i32 %741, 0 + br i1 %tobool166.not.i.i.i, label %if.end.i179.i.i, label %if.then167.i.i.i + +if.then167.i.i.i: ; preds = %if.else162.i.i.i + %this.val58.i.i.i314 = load ptr, ptr %586, align 8 + %call170.i.i.i = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %this.val58.i.i.i314, ptr noundef nonnull %710, i32 noundef %sub53.i.i.i, ptr noundef %add.ptr.i.i.i286) + to label %invoke.cont169.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont169.i.i.i: ; preds = %if.then167.i.i.i + %tobool.not.i188.i.i = icmp eq ptr %call170.i.i.i, null + br i1 %tobool.not.i188.i.i, label %if.end.i192.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i189.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i189.i.i: ; preds = %invoke.cont169.i.i.i + %m_ref_count.i.i.i190.i.i = getelementptr inbounds %class.ast, ptr %call170.i.i.i, i64 0, i32 2 + %742 = load i32, ptr %m_ref_count.i.i.i190.i.i, align 4 + %inc.i.i.i191.i.i = add i32 %742, 1 + store i32 %inc.i.i.i191.i.i, ptr %m_ref_count.i.i.i190.i.i, align 4 + br label %if.end.i192.i.i + +if.end.i192.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i189.i.i, %invoke.cont169.i.i.i + %743 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i193.i.i = icmp eq ptr %743, null + br i1 %tobool.not.i3.i193.i.i, label %if.end179.i.i.i, label %if.then.i.i.i194.i.i + +if.then.i.i.i194.i.i: ; preds = %if.end.i192.i.i + %744 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i196.i.i = getelementptr inbounds %class.ast, ptr %743, i64 0, i32 2 + %745 = load i32, ptr %m_ref_count.i.i.i.i196.i.i, align 4 + %dec.i.i.i.i197.i.i = add i32 %745, -1 + store i32 %dec.i.i.i.i197.i.i, ptr %m_ref_count.i.i.i.i196.i.i, align 4 + %cmp.i.i.i198.i.i = icmp eq i32 %dec.i.i.i.i197.i.i, 0 + br i1 %cmp.i.i.i198.i.i, label %if.then2.i.i.i199.i.i, label %if.end179.i.i.i + +if.then2.i.i.i199.i.i: ; preds = %if.then.i.i.i194.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %744, ptr noundef nonnull %743) + to label %if.end179.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end.i179.i.i: ; preds = %if.else162.i.i.i + %m_ref_count.i.i.i177.i.i = getelementptr inbounds %class.ast, ptr %624, i64 0, i32 2 + %746 = load i32, ptr %m_ref_count.i.i.i177.i.i, align 4 + %inc.i.i.i178.i.i = add i32 %746, 1 + store i32 %inc.i.i.i178.i.i, ptr %m_ref_count.i.i.i177.i.i, align 4 + %747 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i180.i.i = icmp eq ptr %747, null + br i1 %tobool.not.i3.i180.i.i, label %if.end179.i.i.i, label %if.then.i.i.i181.i.i + +if.then.i.i.i181.i.i: ; preds = %if.end.i179.i.i + %748 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i183.i.i = getelementptr inbounds %class.ast, ptr %747, i64 0, i32 2 + %749 = load i32, ptr %m_ref_count.i.i.i.i183.i.i, align 4 + %dec.i.i.i.i184.i.i = add i32 %749, -1 + store i32 %dec.i.i.i.i184.i.i, ptr %m_ref_count.i.i.i.i183.i.i, align 4 + %cmp.i.i.i185.i.i = icmp eq i32 %dec.i.i.i.i184.i.i, 0 + br i1 %cmp.i.i.i185.i.i, label %if.then2.i.i.i186.i.i, label %if.end179.i.i.i + +if.then2.i.i.i186.i.i: ; preds = %if.then.i.i.i181.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %748, ptr noundef nonnull %747) + to label %if.end179.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +if.end179.i.i.i: ; preds = %if.then2.i.i.i186.i.i, %if.then.i.i.i181.i.i, %if.end.i179.i.i, %if.then2.i.i.i199.i.i, %if.then.i.i.i194.i.i, %if.end.i192.i.i + %storemerge.i.i315 = phi ptr [ %call170.i.i.i, %if.then2.i.i.i199.i.i ], [ %call170.i.i.i, %if.end.i192.i.i ], [ %call170.i.i.i, %if.then.i.i.i194.i.i ], [ %624, %if.then2.i.i.i186.i.i ], [ %624, %if.end.i179.i.i ], [ %624, %if.then.i.i.i181.i.i ] + store ptr %storemerge.i.i315, ptr %m_r.i64.i.i, align 8 + %750 = load i32, ptr %m_spos.i.i.i.i, align 4 + %751 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i216.i.i.i = icmp eq ptr %751, null + br i1 %cmp.i.i.i216.i.i.i, label %invoke.cont182.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i: ; preds = %if.end179.i.i.i + %arrayidx.i.i.i220.i.i.i = getelementptr inbounds i32, ptr %751, i64 -1 + %752 = load i32, ptr %arrayidx.i.i.i220.i.i.i, align 4 + %753 = zext i32 %752 to i64 + %add.ptr.i.i221.i.i.i = getelementptr inbounds ptr, ptr %751, i64 %753 + %cmp3.i.i222.i.i.i = icmp ugt i32 %752, %750 + br i1 %cmp3.i.i222.i.i.i, label %for.body.i.i225.preheader.i.i.i, label %if.then.i.i223.i.i.i + +for.body.i.i225.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + %idx.ext.i218.i.i.i = zext i32 %750 to i64 + %add.ptr.i219.i.i.i = getelementptr inbounds ptr, ptr %751, i64 %idx.ext.i218.i.i.i + br label %for.body.i.i225.i.i.i + +for.body.i.i225.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i, %for.body.i.i225.preheader.i.i.i + %it.04.i.i226.i.i.i = phi ptr [ %incdec.ptr.i.i233.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i ], [ %add.ptr.i219.i.i.i, %for.body.i.i225.preheader.i.i.i ] + %754 = load ptr, ptr %it.04.i.i226.i.i.i, align 8 + %755 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i227.i.i.i = icmp eq ptr %754, null + br i1 %tobool.not.i.i.i.i.i227.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i, label %if.then.i.i.i.i.i228.i.i.i + +if.then.i.i.i.i.i228.i.i.i: ; preds = %for.body.i.i225.i.i.i + %m_ref_count.i.i.i.i.i.i229.i.i.i = getelementptr inbounds %class.ast, ptr %754, i64 0, i32 2 + %756 = load i32, ptr %m_ref_count.i.i.i.i.i.i229.i.i.i, align 4 + %dec.i.i.i.i.i.i230.i.i.i = add i32 %756, -1 + store i32 %dec.i.i.i.i.i.i230.i.i.i, ptr %m_ref_count.i.i.i.i.i.i229.i.i.i, align 4 + %cmp.i.i.i.i.i231.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i230.i.i.i, 0 + br i1 %cmp.i.i.i.i.i231.i.i.i, label %if.then2.i.i.i.i.i238.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i + +if.then2.i.i.i.i.i238.i.i.i: ; preds = %if.then.i.i.i.i.i228.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %755, ptr noundef nonnull %754) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i unwind label %lpad.loopexit.i.i.i320 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i: ; preds = %if.then2.i.i.i.i.i238.i.i.i, %if.then.i.i.i.i.i228.i.i.i, %for.body.i.i225.i.i.i + %incdec.ptr.i.i233.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i226.i.i.i, i64 1 + %cmp.i.i234.i.i.i = icmp ult ptr %incdec.ptr.i.i233.i.i.i, %add.ptr.i.i221.i.i.i + br i1 %cmp.i.i234.i.i.i, label %for.body.i.i225.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i232.i.i.i + %.pre.i236.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i237.i.i.i = icmp eq ptr %.pre.i236.i.i.i, null + br i1 %tobool.not.i.i237.i.i.i, label %invoke.cont182.ithread-pre-split.i.i, label %if.then.i.i223.i.i.i + +if.then.i.i223.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i + %757 = phi ptr [ %.pre.i236.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i ], [ %751, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i217.i.i.i ] + %arrayidx.i.i224.i.i.i = getelementptr inbounds i32, ptr %757, i64 -1 + store i32 %750, ptr %arrayidx.i.i224.i.i.i, align 4 + br label %invoke.cont182.ithread-pre-split.i.i + +invoke.cont182.ithread-pre-split.i.i: ; preds = %if.then.i.i223.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i235.i.i.i + %.pr40.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont182.i.i.i + +invoke.cont182.i.i.i: ; preds = %invoke.cont182.ithread-pre-split.i.i, %if.end179.i.i.i + %758 = phi ptr [ %.pr40.i.i, %invoke.cont182.ithread-pre-split.i.i ], [ %storemerge.i.i315, %if.end179.i.i.i ] + %tobool.not.i.i.i.i242.i.i.i = icmp eq ptr %758, null + br i1 %tobool.not.i.i.i.i242.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i, label %if.then.i.i.i.i243.i.i.i + +if.then.i.i.i.i243.i.i.i: ; preds = %invoke.cont182.i.i.i + %m_ref_count.i.i.i.i.i244.i.i.i = getelementptr inbounds %class.ast, ptr %758, i64 0, i32 2 + %759 = load i32, ptr %m_ref_count.i.i.i.i.i244.i.i.i, align 4 + %inc.i.i.i.i.i245.i.i.i = add i32 %759, 1 + store i32 %inc.i.i.i.i.i245.i.i.i, ptr %m_ref_count.i.i.i.i.i244.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i: ; preds = %if.then.i.i.i.i243.i.i.i, %invoke.cont182.i.i.i + %760 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i248.i.i.i = icmp eq ptr %760, null + br i1 %cmp.i.i248.i.i.i, label %if.then.i.i257.i.i.i, label %lor.lhs.false.i.i249.i.i.i + +lor.lhs.false.i.i249.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + %arrayidx.i.i250.i.i.i = getelementptr inbounds i32, ptr %760, i64 -1 + %761 = load i32, ptr %arrayidx.i.i250.i.i.i, align 4 + %arrayidx4.i.i251.i.i.i = getelementptr inbounds i32, ptr %760, i64 -2 + %762 = load i32, ptr %arrayidx4.i.i251.i.i.i, align 4 + %cmp5.i.i252.i.i.i = icmp eq i32 %761, %762 + br i1 %cmp5.i.i252.i.i.i, label %if.then.i.i257.i.i.i, label %invoke.cont186.i.i.i + +if.then.i.i257.i.i.i: ; preds = %lor.lhs.false.i.i249.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i246.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc261.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +.noexc261.i.i.i: ; preds = %if.then.i.i257.i.i.i + %.pre.i.i258.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i259.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i258.i.i.i, i64 -1 + %.pre1.i.i260.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i259.i.i.i, align 4 + br label %invoke.cont186.i.i.i + +invoke.cont186.i.i.i: ; preds = %.noexc261.i.i.i, %lor.lhs.false.i.i249.i.i.i + %763 = phi i32 [ %.pre1.i.i260.i.i.i, %.noexc261.i.i.i ], [ %761, %lor.lhs.false.i.i249.i.i.i ] + %764 = phi ptr [ %.pre.i.i258.i.i.i, %.noexc261.i.i.i ], [ %760, %lor.lhs.false.i.i249.i.i.i ] + %idx.ext.i.i253.i.i.i = zext i32 %763 to i64 + %add.ptr.i.i254.i.i.i = getelementptr inbounds ptr, ptr %764, i64 %idx.ext.i.i253.i.i.i + store ptr %758, ptr %add.ptr.i.i254.i.i.i, align 8 + %765 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i255.i.i.i = getelementptr inbounds i32, ptr %765, i64 -1 + %766 = load i32, ptr %arrayidx10.i.i255.i.i.i, align 4 + %inc.i.i256.i.i.i = add i32 %766, 1 + store i32 %inc.i.i256.i.i.i, ptr %arrayidx10.i.i255.i.i.i, align 4 + %bf.load193.i.i.i = load i32, ptr %626, align 8 + %bf.clear194.i.i.i = and i32 %bf.load193.i.i.i, 1 + %tobool195.not.i.i.i = icmp eq i32 %bf.clear194.i.i.i, 0 + br i1 %tobool195.not.i.i.i, label %invoke.cont196.i.i.i, label %if.then.i264.i.i.i + +if.then.i264.i.i.i: ; preds = %invoke.cont186.i.i.i + %767 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %767) + to label %invoke.cont196.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +invoke.cont196.i.i.i: ; preds = %if.then.i264.i.i.i, %invoke.cont186.i.i.i + %768 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i268.i.i.i = getelementptr inbounds i32, ptr %768, i64 -1 + %769 = load i32, ptr %arrayidx.i268.i.i.i, align 4 + %dec.i269.i.i.i = add i32 %769, -1 + store i32 %dec.i269.i.i.i, ptr %arrayidx.i268.i.i.i, align 4 + %770 = load ptr, ptr %m_r.i64.i.i, align 8 + %this.val64.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i270.i.i.i = icmp eq ptr %770, %624 + %cmp.i.i.i271.i.i.i = icmp eq ptr %this.val64.i.i.i, null + %or.cond.i.i.i.i316 = select i1 %cmp.not.i270.i.i.i, i1 true, i1 %cmp.i.i.i271.i.i.i + br i1 %or.cond.i.i.i.i316, label %invoke.cont200.i.i.i318, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i: ; preds = %invoke.cont196.i.i.i + %arrayidx.i.i.i273.i.i.i = getelementptr inbounds i32, ptr %this.val64.i.i.i, i64 -1 + %771 = load i32, ptr %arrayidx.i.i.i273.i.i.i, align 4 + %cmp3.i.i.i274.i.i.i = icmp eq i32 %771, 0 + br i1 %cmp3.i.i.i274.i.i.i, label %invoke.cont200.i.i.i318, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i + %772 = add i32 %771, -1 + %773 = zext i32 %772 to i64 + %m_new_child.i.i276.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val64.i.i.i, i64 %773, i32 1 + %bf.load.i.i277.i.i.i = load i32, ptr %m_new_child.i.i276.i.i.i, align 8 + %bf.set.i.i278.i.i.i = or i32 %bf.load.i.i277.i.i.i, 2 + store i32 %bf.set.i.i278.i.i.i, ptr %m_new_child.i.i276.i.i.i, align 8 + %.pr.pre.i.i.i317 = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont200.i.i.i318 + +invoke.cont200.i.i.i318: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i, %invoke.cont196.i.i.i + %774 = phi ptr [ %770, %invoke.cont196.i.i.i ], [ %770, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i272.i.i.i ], [ %.pr.pre.i.i.i317, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i275.i.i.i ] + %tobool.not.i3.i281.i.i.i = icmp eq ptr %774, null + br i1 %tobool.not.i3.i281.i.i.i, label %cleanup.thread.i.i.i, label %if.then.i.i.i282.i.i.i + +if.then.i.i.i282.i.i.i: ; preds = %invoke.cont200.i.i.i318 + %775 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i284.i.i.i = getelementptr inbounds %class.ast, ptr %774, i64 0, i32 2 + %776 = load i32, ptr %m_ref_count.i.i.i.i284.i.i.i, align 4 + %dec.i.i.i.i285.i.i.i = add i32 %776, -1 + store i32 %dec.i.i.i.i285.i.i.i, ptr %m_ref_count.i.i.i.i284.i.i.i, align 4 + %cmp.i.i.i286.i.i.i = icmp eq i32 %dec.i.i.i.i285.i.i.i, 0 + br i1 %cmp.i.i.i286.i.i.i, label %if.then2.i.i.i287.i.i.i, label %cleanup.thread.i.i.i + +if.then2.i.i.i287.i.i.i: ; preds = %if.then.i.i.i282.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %775, ptr noundef nonnull %774) + to label %cleanup.i.i.i319 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.i.i.i + +cleanup.thread.i.i.i: ; preds = %if.then.i.i.i282.i.i.i, %invoke.cont200.i.i.i318, %if.then2.i.i.i.i.i.i304, %if.then.i.i.i137.i.i.i, %invoke.cont78.i.i.i301 + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +cleanup.i.i.i319: ; preds = %if.then2.i.i.i287.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +sw.bb204.i.i.i: ; preds = %sw.bb.i.i261 + %777 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i299.i.i.i = icmp eq ptr %777, null + br i1 %cmp.i.i.i299.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i269, label %if.end.i.i.i.i.i.i268 + +if.end.i.i.i.i.i.i268: ; preds = %sw.bb204.i.i.i + %arrayidx.i.i.i300.i.i.i = getelementptr inbounds i32, ptr %777, i64 -1 + %778 = load i32, ptr %arrayidx.i.i.i300.i.i.i, align 4 + %779 = add i32 %778, -1 + %780 = zext i32 %779 to i64 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i269 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i269: ; preds = %if.end.i.i.i.i.i.i268, %sw.bb204.i.i.i + %retval.0.i.i.i.i.i.i270 = phi i64 [ %780, %if.end.i.i.i.i.i.i268 ], [ 4294967295, %sw.bb204.i.i.i ] + %arrayidx.i1.i.i.i.i.i271 = getelementptr inbounds ptr, ptr %777, i64 %retval.0.i.i.i.i.i.i270 + %781 = load ptr, ptr %arrayidx.i1.i.i.i.i.i271, align 8 + %tobool.not.i301.i.i.i = icmp eq ptr %781, null + br i1 %tobool.not.i301.i.i.i, label %if.end.i303.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i272 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i272: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i269 + %m_ref_count.i.i.i.i.i47.i = getelementptr inbounds %class.ast, ptr %781, i64 0, i32 2 + %782 = load i32, ptr %m_ref_count.i.i.i.i.i47.i, align 4 + %inc.i.i.i302.i.i.i = add i32 %782, 1 + store i32 %inc.i.i.i302.i.i.i, ptr %m_ref_count.i.i.i.i.i47.i, align 4 + br label %if.end.i303.i.i.i + +if.end.i303.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i.i272, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i.i269 + %783 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i304.i.i.i = icmp eq ptr %783, null + br i1 %tobool.not.i3.i304.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i, label %if.then.i.i.i305.i.i.i + +if.then.i.i.i305.i.i.i: ; preds = %if.end.i303.i.i.i + %784 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i307.i.i.i = getelementptr inbounds %class.ast, ptr %783, i64 0, i32 2 + %785 = load i32, ptr %m_ref_count.i.i.i.i307.i.i.i, align 4 + %dec.i.i.i.i308.i.i.i = add i32 %785, -1 + store i32 %dec.i.i.i.i308.i.i.i, ptr %m_ref_count.i.i.i.i307.i.i.i, align 4 + %cmp.i.i.i309.i.i.i = icmp eq i32 %dec.i.i.i.i308.i.i.i, 0 + br i1 %cmp.i.i.i309.i.i.i, label %if.then2.i.i.i310.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + +if.then2.i.i.i310.i.i.i: ; preds = %if.then.i.i.i305.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %784, ptr noundef nonnull %783) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i: ; preds = %if.then2.i.i.i310.i.i.i, %if.then.i.i.i305.i.i.i, %if.end.i303.i.i.i + store ptr %781, ptr %m_r.i64.i.i, align 8 + %786 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i314.i.i.i = icmp eq ptr %786, null + br i1 %cmp.i.i.i314.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i276, label %if.end.i.i.i315.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i276: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + %.pre.i326.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i327.i.i.i = add i32 %.pre.i326.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i273 + +if.end.i.i.i315.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit311.i.i.i + %arrayidx.i.i.i316.i.i.i = getelementptr inbounds i32, ptr %786, i64 -1 + %787 = load i32, ptr %arrayidx.i.i.i316.i.i.i, align 4 + %788 = add i32 %787, -1 + %789 = zext i32 %788 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i273 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i273: ; preds = %if.end.i.i.i315.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i276 + %dec.i.pre-phi.i.i.i.i = phi i32 [ %.pre1.i327.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i276 ], [ %788, %if.end.i.i.i315.i.i.i ] + %retval.0.i.i.i317.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i.i276 ], [ %789, %if.end.i.i.i315.i.i.i ] + %arrayidx.i1.i.i318.i.i.i = getelementptr inbounds ptr, ptr %786, i64 %retval.0.i.i.i317.i.i.i + %790 = load ptr, ptr %arrayidx.i1.i.i318.i.i.i, align 8 + %arrayidx.i.i319.i.i.i = getelementptr inbounds i32, ptr %786, i64 -1 + store i32 %dec.i.pre-phi.i.i.i.i, ptr %arrayidx.i.i319.i.i.i, align 4 + %791 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i320.i.i.i = icmp eq ptr %790, null + br i1 %tobool.not.i.i.i.i320.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i274, label %if.then.i.i.i.i321.i.i.i + +if.then.i.i.i.i321.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i273 + %m_ref_count.i.i.i.i.i322.i.i.i = getelementptr inbounds %class.ast, ptr %790, i64 0, i32 2 + %792 = load i32, ptr %m_ref_count.i.i.i.i.i322.i.i.i, align 4 + %dec.i.i.i.i.i323.i.i.i = add i32 %792, -1 + store i32 %dec.i.i.i.i.i323.i.i.i, ptr %m_ref_count.i.i.i.i.i322.i.i.i, align 4 + %cmp.i.i.i.i324.i.i.i = icmp eq i32 %dec.i.i.i.i.i323.i.i.i, 0 + br i1 %cmp.i.i.i.i324.i.i.i, label %if.then2.i.i.i.i325.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i274 + +if.then2.i.i.i.i325.i.i.i: ; preds = %if.then.i.i.i.i321.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %791, ptr noundef nonnull %790) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i274 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i274: ; preds = %if.then2.i.i.i.i325.i.i.i, %if.then.i.i.i.i321.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i.i273 + %793 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i330.i.i.i = icmp eq ptr %793, null + br i1 %cmp.i.i.i330.i.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i, label %if.end.i.i.i331.i.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i274 + %.pre.i345.i.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i346.i.i.i = add i32 %.pre.i345.i.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + +if.end.i.i.i331.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit.i.i.i274 + %arrayidx.i.i.i332.i.i.i = getelementptr inbounds i32, ptr %793, i64 -1 + %794 = load i32, ptr %arrayidx.i.i.i332.i.i.i, align 4 + %795 = add i32 %794, -1 + %796 = zext i32 %795 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i: ; preds = %if.end.i.i.i331.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i + %dec.i.pre-phi.i334.i.i.i = phi i32 [ %.pre1.i346.i.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i ], [ %795, %if.end.i.i.i331.i.i.i ] + %retval.0.i.i.i335.i.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i344.i.i.i ], [ %796, %if.end.i.i.i331.i.i.i ] + %arrayidx.i1.i.i336.i.i.i = getelementptr inbounds ptr, ptr %793, i64 %retval.0.i.i.i335.i.i.i + %797 = load ptr, ptr %arrayidx.i1.i.i336.i.i.i, align 8 + %arrayidx.i.i337.i.i.i275 = getelementptr inbounds i32, ptr %793, i64 -1 + store i32 %dec.i.pre-phi.i334.i.i.i, ptr %arrayidx.i.i337.i.i.i275, align 4 + %798 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i338.i.i.i = icmp eq ptr %797, null + br i1 %tobool.not.i.i.i.i338.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i, label %if.then.i.i.i.i339.i.i.i + +if.then.i.i.i.i339.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + %m_ref_count.i.i.i.i.i340.i.i.i = getelementptr inbounds %class.ast, ptr %797, i64 0, i32 2 + %799 = load i32, ptr %m_ref_count.i.i.i.i.i340.i.i.i, align 4 + %dec.i.i.i.i.i341.i.i.i = add i32 %799, -1 + store i32 %dec.i.i.i.i.i341.i.i.i, ptr %m_ref_count.i.i.i.i.i340.i.i.i, align 4 + %cmp.i.i.i.i342.i.i.i = icmp eq i32 %dec.i.i.i.i.i341.i.i.i, 0 + br i1 %cmp.i.i.i.i342.i.i.i, label %if.then2.i.i.i.i343.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + +if.then2.i.i.i.i343.i.i.i: ; preds = %if.then.i.i.i.i339.i.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %798, ptr noundef nonnull %797) + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i: ; preds = %if.then2.i.i.i.i343.i.i.i, %if.then.i.i.i.i339.i.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i333.i.i.i + %800 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i349.i.i.i = icmp eq ptr %800, null + br i1 %tobool.not.i.i.i.i349.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i, label %if.then.i.i.i.i350.i.i.i + +if.then.i.i.i.i350.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + %m_ref_count.i.i.i.i.i351.i.i.i = getelementptr inbounds %class.ast, ptr %800, i64 0, i32 2 + %801 = load i32, ptr %m_ref_count.i.i.i.i.i351.i.i.i, align 4 + %inc.i.i.i.i.i352.i.i.i = add i32 %801, 1 + store i32 %inc.i.i.i.i.i352.i.i.i, ptr %m_ref_count.i.i.i.i.i351.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i: ; preds = %if.then.i.i.i.i350.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE8pop_backEv.exit347.i.i.i + %802 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i355.i.i.i = icmp eq ptr %802, null + br i1 %cmp.i.i355.i.i.i, label %if.then.i.i364.i.i.i, label %lor.lhs.false.i.i356.i.i.i + +lor.lhs.false.i.i356.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + %arrayidx.i.i357.i.i.i = getelementptr inbounds i32, ptr %802, i64 -1 + %803 = load i32, ptr %arrayidx.i.i357.i.i.i, align 4 + %arrayidx4.i.i358.i.i.i = getelementptr inbounds i32, ptr %802, i64 -2 + %804 = load i32, ptr %arrayidx4.i.i358.i.i.i, align 4 + %cmp5.i.i359.i.i.i = icmp eq i32 %803, %804 + br i1 %cmp5.i.i359.i.i.i, label %if.then.i.i364.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + +if.then.i.i364.i.i.i: ; preds = %lor.lhs.false.i.i356.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i353.i.i.i + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + %.pre.i.i365.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i366.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i365.i.i.i, i64 -1 + %.pre1.i.i367.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i366.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i: ; preds = %if.then.i.i364.i.i.i, %lor.lhs.false.i.i356.i.i.i + %805 = phi i32 [ %.pre1.i.i367.i.i.i, %if.then.i.i364.i.i.i ], [ %803, %lor.lhs.false.i.i356.i.i.i ] + %806 = phi ptr [ %.pre.i.i365.i.i.i, %if.then.i.i364.i.i.i ], [ %802, %lor.lhs.false.i.i356.i.i.i ] + %idx.ext.i.i360.i.i.i = zext i32 %805 to i64 + %add.ptr.i.i361.i.i.i = getelementptr inbounds ptr, ptr %806, i64 %idx.ext.i.i360.i.i.i + store ptr %800, ptr %add.ptr.i.i361.i.i.i, align 8 + %807 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i362.i.i.i = getelementptr inbounds i32, ptr %807, i64 -1 + %808 = load i32, ptr %arrayidx10.i.i362.i.i.i, align 4 + %inc.i.i363.i.i.i = add i32 %808, 1 + store i32 %inc.i.i363.i.i.i, ptr %arrayidx10.i.i362.i.i.i, align 4 + %bf.load220.i.i.i = load i32, ptr %626, align 8 + %bf.clear221.i.i.i = and i32 %bf.load220.i.i.i, 1 + %tobool222.not.i.i.i = icmp eq i32 %bf.clear221.i.i.i, 0 + br i1 %tobool222.not.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i, label %if.then.i370.i.i.i + +if.then.i370.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + %809 = load ptr, ptr %m_r.i64.i.i, align 8 + call void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef nonnull %624, i32 noundef 0, ptr noundef %809) + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i + +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i: ; preds = %if.then.i370.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit368.i.i.i + %810 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i373.i.i.i = getelementptr inbounds i32, ptr %810, i64 -1 + %811 = load i32, ptr %arrayidx.i373.i.i.i, align 4 + %dec.i374.i.i.i = add i32 %811, -1 + store i32 %dec.i374.i.i.i, ptr %arrayidx.i373.i.i.i, align 4 + %this.val61.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i375.i.i.i = icmp eq ptr %this.val61.i.i.i, null + br i1 %cmp.i.i375.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i + %arrayidx.i.i377.i.i.i = getelementptr inbounds i32, ptr %this.val61.i.i.i, i64 -1 + %812 = load i32, ptr %arrayidx.i.i377.i.i.i, align 4 + %cmp3.i.i378.i.i.i = icmp eq i32 %812, 0 + br i1 %cmp3.i.i378.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i + %813 = add i32 %812, -1 + %814 = zext i32 %813 to i64 + %m_new_child.i380.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val61.i.i.i, i64 %814, i32 1 + %bf.load.i381.i.i.i = load i32, ptr %m_new_child.i380.i.i.i, align 8 + %bf.set.i382.i.i.i = or i32 %bf.load.i381.i.i.i, 2 + store i32 %bf.set.i382.i.i.i, ptr %m_new_child.i380.i.i.i, align 8 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +sw.bb224.i.i.i: ; preds = %sw.bb.i.i261 + %this.val.i.i.i263 = load ptr, ptr %586, align 8 + store ptr null, ptr %tmp.i.i.i, align 8 + store ptr %this.val.i.i.i263, ptr %m_manager.i385.i.i.i, align 8 + %m_num_args.i386.i.i.i = getelementptr inbounds %class.app, ptr %624, i64 0, i32 2 + %815 = load i32, ptr %m_num_args.i386.i.i.i, align 8 + %816 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i387.i.i.i = icmp eq ptr %816, null + br i1 %cmp.i387.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i264, label %if.then.i393.i.i.i + +if.then.i393.i.i.i: ; preds = %sw.bb224.i.i.i + %arrayidx.i389.i.i.i = getelementptr inbounds i32, ptr %816, i64 -1 + %817 = load i32, ptr %arrayidx.i389.i.i.i, align 4 + %sub231.i.i.i = sub i32 %817, %815 + store i32 %sub231.i.i.i, ptr %arrayidx.i389.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i264 + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i264: ; preds = %if.then.i393.i.i.i, %sw.bb224.i.i.i + %818 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i396.i.i.i = icmp eq ptr %818, null + br i1 %cmp.i396.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i265, label %if.then.i401.i.i.i + +if.then.i401.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i264 + %arrayidx.i398.i.i.i = getelementptr inbounds i32, ptr %818, i64 -1 + %819 = load i32, ptr %arrayidx.i398.i.i.i, align 4 + %sub235.i.i.i = sub i32 %819, %815 + store i32 %sub235.i.i.i, ptr %arrayidx.i398.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i265 + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i265: ; preds = %if.then.i401.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i.i.i264 + %820 = load i32, ptr %m_num_qvars.i75, align 8 + %sub237.i.i.i = sub i32 %820, %815 + store i32 %sub237.i.i.i, ptr %m_num_qvars.i75, align 8 invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont239.i.i343 unwind label %lpad238.i.i.loopexit.split-lp - -invoke.cont239.i.i343: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit2262 - %816 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i2251 = icmp eq ptr %816, null - br i1 %cmp.i.i.i2251, label %invoke.cont241.i.i, label %if.end.i.i.i2252 - -if.end.i.i.i2252: ; preds = %invoke.cont239.i.i343 - %arrayidx.i.i.i2253 = getelementptr inbounds i32, ptr %816, i64 -1 - %817 = load i32, ptr %arrayidx.i.i.i2253, align 4 - %818 = add i32 %817, -1 - %819 = zext i32 %818 to i64 - br label %invoke.cont241.i.i - -invoke.cont241.i.i: ; preds = %if.end.i.i.i2252, %invoke.cont239.i.i343 - %retval.0.i.i.i2254 = phi i64 [ %819, %if.end.i.i.i2252 ], [ 4294967295, %invoke.cont239.i.i343 ] - %arrayidx.i1.i.i2255 = getelementptr inbounds ptr, ptr %816, i64 %retval.0.i.i.i2254 - %820 = load ptr, ptr %arrayidx.i1.i.i2255, align 8 - %tobool.not.i2236 = icmp eq ptr %820, null - br i1 %tobool.not.i2236, label %if.end.i2240, label %_ZN11ast_manager7inc_refEP3ast.exit.i2237 - -_ZN11ast_manager7inc_refEP3ast.exit.i2237: ; preds = %invoke.cont241.i.i - %m_ref_count.i.i.i2238 = getelementptr inbounds %class.ast, ptr %820, i64 0, i32 2 - %821 = load i32, ptr %m_ref_count.i.i.i2238, align 4 - %inc.i.i.i2239 = add i32 %821, 1 - store i32 %inc.i.i.i2239, ptr %m_ref_count.i.i.i2238, align 4 - br label %if.end.i2240 - -if.end.i2240: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i2237, %invoke.cont241.i.i - %822 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i2241 = icmp eq ptr %822, null - br i1 %tobool.not.i3.i2241, label %invoke.cont244.i.i346, label %if.then.i.i.i2242 - -if.then.i.i.i2242: ; preds = %if.end.i2240 - %823 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i2244 = getelementptr inbounds %class.ast, ptr %822, i64 0, i32 2 - %824 = load i32, ptr %m_ref_count.i.i.i.i2244, align 4 - %dec.i.i.i.i2245 = add i32 %824, -1 - store i32 %dec.i.i.i.i2245, ptr %m_ref_count.i.i.i.i2244, align 4 - %cmp.i.i.i2246 = icmp eq i32 %dec.i.i.i.i2245, 0 - br i1 %cmp.i.i.i2246, label %if.then2.i.i.i2247, label %invoke.cont244.i.i346 - -if.then2.i.i.i2247: ; preds = %if.then.i.i.i2242 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %823, ptr noundef nonnull %822) - to label %invoke.cont244.i.i346 unwind label %lpad238.i.i.loopexit.split-lp - -invoke.cont244.i.i346: ; preds = %if.then.i.i.i2242, %if.end.i2240, %if.then2.i.i.i2247 - store ptr %820, ptr %m_r.i48.i, align 8 - %m_kind.i.i.i2222 = getelementptr inbounds %class.ast, ptr %820, i64 0, i32 1 - %bf.load.i.i.i2223 = load i32, ptr %m_kind.i.i.i2222, align 4 - %bf.clear.i.i.i2224 = and i32 %bf.load.i.i.i2223, 65535 - %cmp.i.i2225 = icmp eq i32 %bf.clear.i.i.i2224, 0 - br i1 %cmp.i.i2225, label %invoke.cont248.i.i, label %if.then250.i.i - -invoke.cont248.i.i: ; preds = %invoke.cont244.i.i346 - %m_num_args.i.i.i2227 = getelementptr inbounds %class.app, ptr %820, i64 0, i32 2 - %825 = load i32, ptr %m_num_args.i.i.i2227, align 8 - %cmp.i.i.i2228 = icmp eq i32 %825, 0 - %m_args.i.i.i2229 = getelementptr inbounds %class.app, ptr %820, i64 0, i32 3 - %idx.ext.i.i.i2230 = zext i32 %825 to i64 - %add.ptr.i.i.i2231 = getelementptr inbounds ptr, ptr %m_args.i.i.i2229, i64 %idx.ext.i.i.i2230 - %cond.i.i.i2232 = select i1 %cmp.i.i.i2228, ptr @_ZN3app16g_constant_flagsE, ptr %add.ptr.i.i.i2231 - %bf.load.i.i2233 = load i32, ptr %cond.i.i.i2232, align 4 - %826 = and i32 %bf.load.i.i2233, 65536 - %tobool.i.i2234.not = icmp eq i32 %826, 0 - br i1 %tobool.i.i2234.not, label %if.then250.i.i, label %if.end256.i.i - -if.then250.i.i: ; preds = %invoke.cont244.i.i346, %invoke.cont248.i.i - invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %m_inv_shifter.i.i, ptr noundef nonnull %820, i32 noundef %810, ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i) - to label %invoke.cont253.i.i unwind label %lpad238.i.i.loopexit.split-lp - -invoke.cont253.i.i: ; preds = %if.then250.i.i - %827 = load ptr, ptr %m_r.i48.i, align 8 - %828 = load ptr, ptr %tmp.i.i, align 8 - store ptr %828, ptr %m_r.i48.i, align 8 - store ptr %827, ptr %tmp.i.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %827, null - br i1 %tobool.not.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit, label %if.then.i.i.i.i2214 - -if.then.i.i.i.i2214: ; preds = %invoke.cont253.i.i - %829 = load ptr, ptr %m_manager.i2279, align 8 - %m_ref_count.i.i.i.i.i2216 = getelementptr inbounds %class.ast, ptr %827, i64 0, i32 2 - %830 = load i32, ptr %m_ref_count.i.i.i.i.i2216, align 4 - %dec.i.i.i.i.i2217 = add i32 %830, -1 - store i32 %dec.i.i.i.i.i2217, ptr %m_ref_count.i.i.i.i.i2216, align 4 - %cmp.i.i.i.i2218 = icmp eq i32 %dec.i.i.i.i.i2217, 0 - br i1 %cmp.i.i.i.i2218, label %if.then2.i.i.i.i2220, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit - -if.then2.i.i.i.i2220: ; preds = %if.then.i.i.i.i2214 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %829, ptr noundef nonnull %827) - to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit unwind label %terminate.lpad.i2221 - -terminate.lpad.i2221: ; preds = %if.then2.i.i.i.i2220 - %831 = landingpad { ptr, i32 } + to label %invoke.cont239.i.i.i266 unwind label %lpad238.loopexit.split-lp.i.i.i + +invoke.cont239.i.i.i266: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i265 + %821 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i406.i.i.i = icmp eq ptr %821, null + br i1 %cmp.i.i.i406.i.i.i, label %invoke.cont241.i.i.i, label %if.end.i.i.i407.i.i.i + +if.end.i.i.i407.i.i.i: ; preds = %invoke.cont239.i.i.i266 + %arrayidx.i.i.i408.i.i.i = getelementptr inbounds i32, ptr %821, i64 -1 + %822 = load i32, ptr %arrayidx.i.i.i408.i.i.i, align 4 + %823 = add i32 %822, -1 + %824 = zext i32 %823 to i64 + br label %invoke.cont241.i.i.i + +invoke.cont241.i.i.i: ; preds = %if.end.i.i.i407.i.i.i, %invoke.cont239.i.i.i266 + %retval.0.i.i.i409.i.i.i = phi i64 [ %824, %if.end.i.i.i407.i.i.i ], [ 4294967295, %invoke.cont239.i.i.i266 ] + %arrayidx.i1.i.i410.i.i.i = getelementptr inbounds ptr, ptr %821, i64 %retval.0.i.i.i409.i.i.i + %825 = load ptr, ptr %arrayidx.i1.i.i410.i.i.i, align 8 + %tobool.not.i412.i.i.i = icmp eq ptr %825, null + br i1 %tobool.not.i412.i.i.i, label %if.end.i416.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i: ; preds = %invoke.cont241.i.i.i + %m_ref_count.i.i.i414.i.i.i = getelementptr inbounds %class.ast, ptr %825, i64 0, i32 2 + %826 = load i32, ptr %m_ref_count.i.i.i414.i.i.i, align 4 + %inc.i.i.i415.i.i.i = add i32 %826, 1 + store i32 %inc.i.i.i415.i.i.i, ptr %m_ref_count.i.i.i414.i.i.i, align 4 + br label %if.end.i416.i.i.i + +if.end.i416.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i413.i.i.i, %invoke.cont241.i.i.i + %827 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i417.i.i.i = icmp eq ptr %827, null + br i1 %tobool.not.i3.i417.i.i.i, label %invoke.cont244.i.i.i267, label %if.then.i.i.i418.i.i.i + +if.then.i.i.i418.i.i.i: ; preds = %if.end.i416.i.i.i + %828 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i420.i.i.i = getelementptr inbounds %class.ast, ptr %827, i64 0, i32 2 + %829 = load i32, ptr %m_ref_count.i.i.i.i420.i.i.i, align 4 + %dec.i.i.i.i421.i.i.i = add i32 %829, -1 + store i32 %dec.i.i.i.i421.i.i.i, ptr %m_ref_count.i.i.i.i420.i.i.i, align 4 + %cmp.i.i.i422.i.i.i = icmp eq i32 %dec.i.i.i.i421.i.i.i, 0 + br i1 %cmp.i.i.i422.i.i.i, label %if.then2.i.i.i423.i.i.i, label %invoke.cont244.i.i.i267 + +if.then2.i.i.i423.i.i.i: ; preds = %if.then.i.i.i418.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %828, ptr noundef nonnull %827) + to label %invoke.cont244.i.i.i267 unwind label %lpad238.loopexit.split-lp.i.i.i + +invoke.cont244.i.i.i267: ; preds = %if.then2.i.i.i423.i.i.i, %if.then.i.i.i418.i.i.i, %if.end.i416.i.i.i + store ptr %825, ptr %m_r.i64.i.i, align 8 + %m_kind.i.i.i426.i.i.i = getelementptr inbounds %class.ast, ptr %825, i64 0, i32 1 + %bf.load.i.i.i427.i.i.i = load i32, ptr %m_kind.i.i.i426.i.i.i, align 4 + %bf.clear.i.i.i428.i.i.i = and i32 %bf.load.i.i.i427.i.i.i, 65535 + %cmp.i.i429.i.i.i = icmp eq i32 %bf.clear.i.i.i428.i.i.i, 0 + br i1 %cmp.i.i429.i.i.i, label %invoke.cont248.i.i.i, label %if.then250.i.i.i + +invoke.cont248.i.i.i: ; preds = %invoke.cont244.i.i.i267 + %m_num_args.i.i.i431.i.i.i = getelementptr inbounds %class.app, ptr %825, i64 0, i32 2 + %830 = load i32, ptr %m_num_args.i.i.i431.i.i.i, align 8 + %cmp.i.i.i432.i.i.i = icmp eq i32 %830, 0 + %m_args.i.i.i433.i.i.i = getelementptr inbounds %class.app, ptr %825, i64 0, i32 3 + %idx.ext.i.i.i434.i.i.i = zext i32 %830 to i64 + %add.ptr.i.i.i435.i.i.i = getelementptr inbounds ptr, ptr %m_args.i.i.i433.i.i.i, i64 %idx.ext.i.i.i434.i.i.i + %cond.i.i.i436.i.i.i = select i1 %cmp.i.i.i432.i.i.i, ptr @_ZN3app16g_constant_flagsE, ptr %add.ptr.i.i.i435.i.i.i + %bf.load.i.i437.i.i.i = load i32, ptr %cond.i.i.i436.i.i.i, align 4 + %831 = and i32 %bf.load.i.i437.i.i.i, 65536 + %tobool.i.i438.not.i.i.i = icmp eq i32 %831, 0 + br i1 %tobool.i.i438.not.i.i.i, label %if.then250.i.i.i, label %if.end256.i.i.i + +if.then250.i.i.i: ; preds = %invoke.cont248.i.i.i, %invoke.cont244.i.i.i267 + invoke void @_ZN15inv_var_shifterclEP4exprjR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(148) %m_inv_shifter.i.i.i, ptr noundef nonnull %825, i32 noundef %815, ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i.i) + to label %invoke.cont253.i.i.i unwind label %lpad238.loopexit.split-lp.i.i.i + +invoke.cont253.i.i.i: ; preds = %if.then250.i.i.i + %832 = load ptr, ptr %m_r.i64.i.i, align 8 + %833 = load ptr, ptr %tmp.i.i.i, align 8 + store ptr %833, ptr %m_r.i64.i.i, align 8 + store ptr %832, ptr %tmp.i.i.i, align 8 + %tobool.not.i.i.i440.i.i.i = icmp eq ptr %832, null + br i1 %tobool.not.i.i.i440.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i, label %if.then.i.i.i.i441.i.i.i + +if.then.i.i.i.i441.i.i.i: ; preds = %invoke.cont253.i.i.i + %834 = load ptr, ptr %m_manager.i385.i.i.i, align 8 + %m_ref_count.i.i.i.i.i443.i.i.i = getelementptr inbounds %class.ast, ptr %832, i64 0, i32 2 + %835 = load i32, ptr %m_ref_count.i.i.i.i.i443.i.i.i, align 4 + %dec.i.i.i.i.i444.i.i.i = add i32 %835, -1 + store i32 %dec.i.i.i.i.i444.i.i.i, ptr %m_ref_count.i.i.i.i.i443.i.i.i, align 4 + %cmp.i.i.i.i445.i.i.i = icmp eq i32 %dec.i.i.i.i.i444.i.i.i, 0 + br i1 %cmp.i.i.i.i445.i.i.i, label %if.then2.i.i.i.i446.i.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i + +if.then2.i.i.i.i446.i.i.i: ; preds = %if.then.i.i.i.i441.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %834, ptr noundef nonnull %832) + to label %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i unwind label %terminate.lpad.i447.i.i.i + +terminate.lpad.i447.i.i.i: ; preds = %if.then2.i.i.i.i446.i.i.i + %836 = landingpad { ptr, i32 } catch ptr null - %832 = extractvalue { ptr, i32 } %831, 0 - call void @__clang_call_terminate(ptr %832) #14 + %837 = extractvalue { ptr, i32 } %836, 0 + call void @__clang_call_terminate(ptr %837) #14 unreachable -_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit: ; preds = %invoke.cont253.i.i, %if.then.i.i.i.i2214, %if.then2.i.i.i.i2220 - store ptr null, ptr %tmp.i.i, align 8 - br label %if.end256.i.i +_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i: ; preds = %if.then2.i.i.i.i446.i.i.i, %if.then.i.i.i.i441.i.i.i, %invoke.cont253.i.i.i + store ptr null, ptr %tmp.i.i.i, align 8 + br label %if.end256.i.i.i -lpad238.i.i.loopexit: ; preds = %if.then2.i.i.i.i.i2210 - %lpad.loopexit2837 = landingpad { ptr, i32 } +lpad238.loopexit.i.i.i: ; preds = %if.then2.i.i.i.i.i472.i.i.i + %lpad.loopexit537.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad238.i.i + br label %lpad238.i.i.i -lpad238.i.i.loopexit.split-lp: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit2262, %if.then250.i.i, %if.then.i2162, %if.then.i.i2180, %if.then2.i.i.i2247 - %lpad.loopexit.split-lp = landingpad { ptr, i32 } +lpad238.loopexit.split-lp.i.i.i: ; preds = %if.then.i498.i.i.i, %if.then.i.i491.i.i.i, %if.then250.i.i.i, %if.then2.i.i.i423.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i.i.i265 + %lpad.loopexit.split-lp538.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad238.i.i + br label %lpad238.i.i.i -lpad238.i.i: ; preds = %lpad238.i.i.loopexit.split-lp, %lpad238.i.i.loopexit - %lpad.phi2838 = phi { ptr, i32 } [ %lpad.loopexit2837, %lpad238.i.i.loopexit ], [ %lpad.loopexit.split-lp, %lpad238.i.i.loopexit.split-lp ] - call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i) #15 +lpad238.i.i.i: ; preds = %lpad238.loopexit.split-lp.i.i.i, %lpad238.loopexit.i.i.i + %lpad.phi539.i.i.i = phi { ptr, i32 } [ %lpad.loopexit537.i.i.i, %lpad238.loopexit.i.i.i ], [ %lpad.loopexit.split-lp538.i.i.i, %lpad238.loopexit.split-lp.i.i.i ] + call void @_ZN7obj_refI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %tmp.i.i.i) #15 br label %common.resume -if.end256.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit, %invoke.cont248.i.i - %m_spos258.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i240, i32 2 - %833 = load i32, ptr %m_spos258.i.i, align 4 - %834 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i2188 = icmp eq ptr %834, null - br i1 %cmp.i.i.i2188, label %invoke.cont259.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2189 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i2189: ; preds = %if.end256.i.i - %arrayidx.i.i.i2192 = getelementptr inbounds i32, ptr %834, i64 -1 - %835 = load i32, ptr %arrayidx.i.i.i2192, align 4 - %836 = zext i32 %835 to i64 - %add.ptr.i.i2193 = getelementptr inbounds ptr, ptr %834, i64 %836 - %cmp3.i.i2194 = icmp ugt i32 %835, %833 - br i1 %cmp3.i.i2194, label %for.body.i.i2197.preheader, label %if.then.i.i2195 - -for.body.i.i2197.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2189 - %idx.ext.i2190 = zext i32 %833 to i64 - %add.ptr.i2191 = getelementptr inbounds ptr, ptr %834, i64 %idx.ext.i2190 - br label %for.body.i.i2197 - -for.body.i.i2197: ; preds = %for.body.i.i2197.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2204 - %it.04.i.i2198 = phi ptr [ %incdec.ptr.i.i2205, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2204 ], [ %add.ptr.i2191, %for.body.i.i2197.preheader ] - %837 = load ptr, ptr %it.04.i.i2198, align 8 - %838 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i.i2199 = icmp eq ptr %837, null - br i1 %tobool.not.i.i.i.i.i2199, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2204, label %if.then.i.i.i.i.i2200 - -if.then.i.i.i.i.i2200: ; preds = %for.body.i.i2197 - %m_ref_count.i.i.i.i.i.i2201 = getelementptr inbounds %class.ast, ptr %837, i64 0, i32 2 - %839 = load i32, ptr %m_ref_count.i.i.i.i.i.i2201, align 4 - %dec.i.i.i.i.i.i2202 = add i32 %839, -1 - store i32 %dec.i.i.i.i.i.i2202, ptr %m_ref_count.i.i.i.i.i.i2201, align 4 - %cmp.i.i.i.i.i2203 = icmp eq i32 %dec.i.i.i.i.i.i2202, 0 - br i1 %cmp.i.i.i.i.i2203, label %if.then2.i.i.i.i.i2210, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2204 - -if.then2.i.i.i.i.i2210: ; preds = %if.then.i.i.i.i.i2200 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %838, ptr noundef nonnull %837) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2204 unwind label %lpad238.i.i.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2204: ; preds = %if.then2.i.i.i.i.i2210, %if.then.i.i.i.i.i2200, %for.body.i.i2197 - %incdec.ptr.i.i2205 = getelementptr inbounds ptr, ptr %it.04.i.i2198, i64 1 - %cmp.i.i2206 = icmp ult ptr %incdec.ptr.i.i2205, %add.ptr.i.i2193 - br i1 %cmp.i.i2206, label %for.body.i.i2197, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2207, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2207: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i2204 - %.pre.i2208 = load ptr, ptr %m_nodes.i.i433, align 8 - %tobool.not.i.i2209 = icmp eq ptr %.pre.i2208, null - br i1 %tobool.not.i.i2209, label %invoke.cont259.i.i, label %if.then.i.i2195 - -if.then.i.i2195: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2207, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2189 - %840 = phi ptr [ %.pre.i2208, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2207 ], [ %834, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i2189 ] - %arrayidx.i.i2196 = getelementptr inbounds i32, ptr %840, i64 -1 - store i32 %833, ptr %arrayidx.i.i2196, align 4 - br label %invoke.cont259.i.i - -invoke.cont259.i.i: ; preds = %if.then.i.i2195, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i2207, %if.end256.i.i - %841 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i.i.i.i2165 = icmp eq ptr %841, null - br i1 %tobool.not.i.i.i.i2165, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2169, label %if.then.i.i.i.i2166 - -if.then.i.i.i.i2166: ; preds = %invoke.cont259.i.i - %m_ref_count.i.i.i.i.i2167 = getelementptr inbounds %class.ast, ptr %841, i64 0, i32 2 - %842 = load i32, ptr %m_ref_count.i.i.i.i.i2167, align 4 - %inc.i.i.i.i.i2168 = add i32 %842, 1 - store i32 %inc.i.i.i.i.i2168, ptr %m_ref_count.i.i.i.i.i2167, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2169 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2169: ; preds = %if.then.i.i.i.i2166, %invoke.cont259.i.i - %843 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i2171 = icmp eq ptr %843, null - br i1 %cmp.i.i2171, label %if.then.i.i2180, label %lor.lhs.false.i.i2172 - -lor.lhs.false.i.i2172: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2169 - %arrayidx.i.i2173 = getelementptr inbounds i32, ptr %843, i64 -1 - %844 = load i32, ptr %arrayidx.i.i2173, align 4 - %arrayidx4.i.i2174 = getelementptr inbounds i32, ptr %843, i64 -2 - %845 = load i32, ptr %arrayidx4.i.i2174, align 4 - %cmp5.i.i2175 = icmp eq i32 %844, %845 - br i1 %cmp5.i.i2175, label %if.then.i.i2180, label %invoke.cont263.i.i - -if.then.i.i2180: ; preds = %lor.lhs.false.i.i2172, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i2169 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - to label %.noexc2184 unwind label %lpad238.i.i.loopexit.split-lp - -.noexc2184: ; preds = %if.then.i.i2180 - %.pre.i.i2181 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i2182 = getelementptr inbounds i32, ptr %.pre.i.i2181, i64 -1 - %.pre1.i.i2183 = load i32, ptr %arrayidx8.phi.trans.insert.i.i2182, align 4 - br label %invoke.cont263.i.i - -invoke.cont263.i.i: ; preds = %.noexc2184, %lor.lhs.false.i.i2172 - %846 = phi i32 [ %.pre1.i.i2183, %.noexc2184 ], [ %844, %lor.lhs.false.i.i2172 ] - %847 = phi ptr [ %.pre.i.i2181, %.noexc2184 ], [ %843, %lor.lhs.false.i.i2172 ] - %idx.ext.i.i2176 = zext i32 %846 to i64 - %add.ptr.i.i2177 = getelementptr inbounds ptr, ptr %847, i64 %idx.ext.i.i2176 - store ptr %841, ptr %add.ptr.i.i2177, align 8 - %848 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i2178 = getelementptr inbounds i32, ptr %848, i64 -1 - %849 = load i32, ptr %arrayidx10.i.i2178, align 4 - %inc.i.i2179 = add i32 %849, 1 - store i32 %inc.i.i2179, ptr %arrayidx10.i.i2178, align 4 - %bf.load270.i.i = load i32, ptr %625, align 8 - %bf.clear271.i.i = and i32 %bf.load270.i.i, 1 - %tobool272.i.i.not = icmp eq i32 %bf.clear271.i.i, 0 - br i1 %tobool272.i.i.not, label %invoke.cont273.i.i, label %if.then.i2162 - -if.then.i2162: ; preds = %invoke.cont263.i.i - %850 = load ptr, ptr %m_r.i48.i, align 8 - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %850) - to label %invoke.cont273.i.i unwind label %lpad238.i.i.loopexit.split-lp - -invoke.cont273.i.i: ; preds = %invoke.cont263.i.i, %if.then.i2162 - %851 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i2158 = getelementptr inbounds i32, ptr %851, i64 -1 - %852 = load i32, ptr %arrayidx.i2158, align 4 - %dec.i2159 = add i32 %852, -1 - store i32 %dec.i2159, ptr %arrayidx.i2158, align 4 - %this.val60.i.i = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.i.i2148 = icmp eq ptr %this.val60.i.i, null - br i1 %cmp.i.i2148, label %invoke.cont275.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2149 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2149: ; preds = %invoke.cont273.i.i - %arrayidx.i.i2150 = getelementptr inbounds i32, ptr %this.val60.i.i, i64 -1 - %853 = load i32, ptr %arrayidx.i.i2150, align 4 - %cmp3.i.i2151 = icmp eq i32 %853, 0 - br i1 %cmp3.i.i2151, label %invoke.cont275.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2152 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2152: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2149 - %854 = add i32 %853, -1 - %855 = zext i32 %854 to i64 - %m_new_child.i2153 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val60.i.i, i64 %855, i32 1 - %bf.load.i2154 = load i32, ptr %m_new_child.i2153, align 8 - %bf.set.i2155 = or i32 %bf.load.i2154, 2 - store i32 %bf.set.i2155, ptr %m_new_child.i2153, align 8 - br label %invoke.cont275.i.i - -invoke.cont275.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2152, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2149, %invoke.cont273.i.i - %856 = load ptr, ptr %tmp.i.i, align 8 - %tobool.not.i.i2139 = icmp eq ptr %856, null - br i1 %tobool.not.i.i2139, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i2140 - -if.then.i.i.i2140: ; preds = %invoke.cont275.i.i - %857 = load ptr, ptr %m_manager.i2279, align 8 - %m_ref_count.i.i.i.i2142 = getelementptr inbounds %class.ast, ptr %856, i64 0, i32 2 - %858 = load i32, ptr %m_ref_count.i.i.i.i2142, align 4 - %dec.i.i.i.i2143 = add i32 %858, -1 - store i32 %dec.i.i.i.i2143, ptr %m_ref_count.i.i.i.i2142, align 4 - %cmp.i.i.i2144 = icmp eq i32 %dec.i.i.i.i2143, 0 - br i1 %cmp.i.i.i2144, label %if.then2.i.i.i2146, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i - -if.then2.i.i.i2146: ; preds = %if.then.i.i.i2140 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %857, ptr noundef nonnull %856) - to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i2147 - -terminate.lpad.i2147: ; preds = %if.then2.i.i.i2146 - %859 = landingpad { ptr, i32 } +if.end256.i.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEOS2_.exit.i.i.i, %invoke.cont248.i.i.i + %m_spos258.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i, i32 2 + %838 = load i32, ptr %m_spos258.i.i.i, align 4 + %839 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i450.i.i.i = icmp eq ptr %839, null + br i1 %cmp.i.i.i450.i.i.i, label %invoke.cont259.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i: ; preds = %if.end256.i.i.i + %arrayidx.i.i.i454.i.i.i = getelementptr inbounds i32, ptr %839, i64 -1 + %840 = load i32, ptr %arrayidx.i.i.i454.i.i.i, align 4 + %841 = zext i32 %840 to i64 + %add.ptr.i.i455.i.i.i = getelementptr inbounds ptr, ptr %839, i64 %841 + %cmp3.i.i456.i.i.i = icmp ugt i32 %840, %838 + br i1 %cmp3.i.i456.i.i.i, label %for.body.i.i459.preheader.i.i.i, label %if.then.i.i457.i.i.i + +for.body.i.i459.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + %idx.ext.i452.i.i.i = zext i32 %838 to i64 + %add.ptr.i453.i.i.i = getelementptr inbounds ptr, ptr %839, i64 %idx.ext.i452.i.i.i + br label %for.body.i.i459.i.i.i + +for.body.i.i459.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i, %for.body.i.i459.preheader.i.i.i + %it.04.i.i460.i.i.i = phi ptr [ %incdec.ptr.i.i467.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i ], [ %add.ptr.i453.i.i.i, %for.body.i.i459.preheader.i.i.i ] + %842 = load ptr, ptr %it.04.i.i460.i.i.i, align 8 + %843 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i461.i.i.i = icmp eq ptr %842, null + br i1 %tobool.not.i.i.i.i.i461.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i, label %if.then.i.i.i.i.i462.i.i.i + +if.then.i.i.i.i.i462.i.i.i: ; preds = %for.body.i.i459.i.i.i + %m_ref_count.i.i.i.i.i.i463.i.i.i = getelementptr inbounds %class.ast, ptr %842, i64 0, i32 2 + %844 = load i32, ptr %m_ref_count.i.i.i.i.i.i463.i.i.i, align 4 + %dec.i.i.i.i.i.i464.i.i.i = add i32 %844, -1 + store i32 %dec.i.i.i.i.i.i464.i.i.i, ptr %m_ref_count.i.i.i.i.i.i463.i.i.i, align 4 + %cmp.i.i.i.i.i465.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i464.i.i.i, 0 + br i1 %cmp.i.i.i.i.i465.i.i.i, label %if.then2.i.i.i.i.i472.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i + +if.then2.i.i.i.i.i472.i.i.i: ; preds = %if.then.i.i.i.i.i462.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %843, ptr noundef nonnull %842) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i unwind label %lpad238.loopexit.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i: ; preds = %if.then2.i.i.i.i.i472.i.i.i, %if.then.i.i.i.i.i462.i.i.i, %for.body.i.i459.i.i.i + %incdec.ptr.i.i467.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i460.i.i.i, i64 1 + %cmp.i.i468.i.i.i = icmp ult ptr %incdec.ptr.i.i467.i.i.i, %add.ptr.i.i455.i.i.i + br i1 %cmp.i.i468.i.i.i, label %for.body.i.i459.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i466.i.i.i + %.pre.i470.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i471.i.i.i = icmp eq ptr %.pre.i470.i.i.i, null + br i1 %tobool.not.i.i471.i.i.i, label %invoke.cont259.i.i.i, label %if.then.i.i457.i.i.i + +if.then.i.i457.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i + %845 = phi ptr [ %.pre.i470.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i ], [ %839, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i451.i.i.i ] + %arrayidx.i.i458.i.i.i = getelementptr inbounds i32, ptr %845, i64 -1 + store i32 %838, ptr %arrayidx.i.i458.i.i.i, align 4 + br label %invoke.cont259.i.i.i + +invoke.cont259.i.i.i: ; preds = %if.then.i.i457.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i469.i.i.i, %if.end256.i.i.i + %846 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i.i.i.i476.i.i.i = icmp eq ptr %846, null + br i1 %tobool.not.i.i.i.i476.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i, label %if.then.i.i.i.i477.i.i.i + +if.then.i.i.i.i477.i.i.i: ; preds = %invoke.cont259.i.i.i + %m_ref_count.i.i.i.i.i478.i.i.i = getelementptr inbounds %class.ast, ptr %846, i64 0, i32 2 + %847 = load i32, ptr %m_ref_count.i.i.i.i.i478.i.i.i, align 4 + %inc.i.i.i.i.i479.i.i.i = add i32 %847, 1 + store i32 %inc.i.i.i.i.i479.i.i.i, ptr %m_ref_count.i.i.i.i.i478.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i: ; preds = %if.then.i.i.i.i477.i.i.i, %invoke.cont259.i.i.i + %848 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i482.i.i.i = icmp eq ptr %848, null + br i1 %cmp.i.i482.i.i.i, label %if.then.i.i491.i.i.i, label %lor.lhs.false.i.i483.i.i.i + +lor.lhs.false.i.i483.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + %arrayidx.i.i484.i.i.i = getelementptr inbounds i32, ptr %848, i64 -1 + %849 = load i32, ptr %arrayidx.i.i484.i.i.i, align 4 + %arrayidx4.i.i485.i.i.i = getelementptr inbounds i32, ptr %848, i64 -2 + %850 = load i32, ptr %arrayidx4.i.i485.i.i.i, align 4 + %cmp5.i.i486.i.i.i = icmp eq i32 %849, %850 + br i1 %cmp5.i.i486.i.i.i, label %if.then.i.i491.i.i.i, label %invoke.cont263.i.i.i + +if.then.i.i491.i.i.i: ; preds = %lor.lhs.false.i.i483.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i480.i.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc495.i.i.i unwind label %lpad238.loopexit.split-lp.i.i.i + +.noexc495.i.i.i: ; preds = %if.then.i.i491.i.i.i + %.pre.i.i492.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i493.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i492.i.i.i, i64 -1 + %.pre1.i.i494.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i493.i.i.i, align 4 + br label %invoke.cont263.i.i.i + +invoke.cont263.i.i.i: ; preds = %.noexc495.i.i.i, %lor.lhs.false.i.i483.i.i.i + %851 = phi i32 [ %.pre1.i.i494.i.i.i, %.noexc495.i.i.i ], [ %849, %lor.lhs.false.i.i483.i.i.i ] + %852 = phi ptr [ %.pre.i.i492.i.i.i, %.noexc495.i.i.i ], [ %848, %lor.lhs.false.i.i483.i.i.i ] + %idx.ext.i.i487.i.i.i = zext i32 %851 to i64 + %add.ptr.i.i488.i.i.i = getelementptr inbounds ptr, ptr %852, i64 %idx.ext.i.i487.i.i.i + store ptr %846, ptr %add.ptr.i.i488.i.i.i, align 8 + %853 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i489.i.i.i = getelementptr inbounds i32, ptr %853, i64 -1 + %854 = load i32, ptr %arrayidx10.i.i489.i.i.i, align 4 + %inc.i.i490.i.i.i = add i32 %854, 1 + store i32 %inc.i.i490.i.i.i, ptr %arrayidx10.i.i489.i.i.i, align 4 + %bf.load270.i.i.i = load i32, ptr %626, align 8 + %bf.clear271.i.i.i = and i32 %bf.load270.i.i.i, 1 + %tobool272.not.i.i.i = icmp eq i32 %bf.clear271.i.i.i, 0 + br i1 %tobool272.not.i.i.i, label %invoke.cont273.i.i.i, label %if.then.i498.i.i.i + +if.then.i498.i.i.i: ; preds = %invoke.cont263.i.i.i + %855 = load ptr, ptr %m_r.i64.i.i, align 8 + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %855) + to label %invoke.cont273.i.i.i unwind label %lpad238.loopexit.split-lp.i.i.i + +invoke.cont273.i.i.i: ; preds = %if.then.i498.i.i.i, %invoke.cont263.i.i.i + %856 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i502.i.i.i = getelementptr inbounds i32, ptr %856, i64 -1 + %857 = load i32, ptr %arrayidx.i502.i.i.i, align 4 + %dec.i503.i.i.i = add i32 %857, -1 + store i32 %dec.i503.i.i.i, ptr %arrayidx.i502.i.i.i, align 4 + %this.val60.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.i.i504.i.i.i = icmp eq ptr %this.val60.i.i.i, null + br i1 %cmp.i.i504.i.i.i, label %invoke.cont275.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i: ; preds = %invoke.cont273.i.i.i + %arrayidx.i.i506.i.i.i = getelementptr inbounds i32, ptr %this.val60.i.i.i, i64 -1 + %858 = load i32, ptr %arrayidx.i.i506.i.i.i, align 4 + %cmp3.i.i507.i.i.i = icmp eq i32 %858, 0 + br i1 %cmp3.i.i507.i.i.i, label %invoke.cont275.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i + %859 = add i32 %858, -1 + %860 = zext i32 %859 to i64 + %m_new_child.i509.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val60.i.i.i, i64 %860, i32 1 + %bf.load.i510.i.i.i = load i32, ptr %m_new_child.i509.i.i.i, align 8 + %bf.set.i511.i.i.i = or i32 %bf.load.i510.i.i.i, 2 + store i32 %bf.set.i511.i.i.i, ptr %m_new_child.i509.i.i.i, align 8 + br label %invoke.cont275.i.i.i + +invoke.cont275.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i508.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i505.i.i.i, %invoke.cont273.i.i.i + %861 = load ptr, ptr %tmp.i.i.i, align 8 + %tobool.not.i.i514.i.i.i = icmp eq ptr %861, null + br i1 %tobool.not.i.i514.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i515.i.i.i + +if.then.i.i.i515.i.i.i: ; preds = %invoke.cont275.i.i.i + %862 = load ptr, ptr %m_manager.i385.i.i.i, align 8 + %m_ref_count.i.i.i.i517.i.i.i = getelementptr inbounds %class.ast, ptr %861, i64 0, i32 2 + %863 = load i32, ptr %m_ref_count.i.i.i.i517.i.i.i, align 4 + %dec.i.i.i.i518.i.i.i = add i32 %863, -1 + store i32 %dec.i.i.i.i518.i.i.i, ptr %m_ref_count.i.i.i.i517.i.i.i, align 4 + %cmp.i.i.i519.i.i.i = icmp eq i32 %dec.i.i.i.i518.i.i.i, 0 + br i1 %cmp.i.i.i519.i.i.i, label %if.then2.i.i.i520.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i + +if.then2.i.i.i520.i.i.i: ; preds = %if.then.i.i.i515.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %862, ptr noundef nonnull %861) + to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i521.i.i.i + +terminate.lpad.i521.i.i.i: ; preds = %if.then2.i.i.i520.i.i.i + %864 = landingpad { ptr, i32 } catch ptr null - %860 = extractvalue { ptr, i32 } %859, 0 - call void @__clang_call_terminate(ptr %860) #14 + %865 = extractvalue { ptr, i32 } %864, 0 + call void @__clang_call_terminate(ptr %865) #14 unreachable -sw.bb276.i.i: ; preds = %sw.bb.i336 +sw.bb276.i.i.i: ; preds = %sw.bb.i.i261 call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 520, ptr noundef nonnull @.str.10) call void @exit(i32 noundef 107) #14 unreachable -entry.unreachabledefault.i.i415: ; preds = %sw.bb.i336 +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i.i: ; preds = %if.end.i.i.i322, %if.then2.i.i.i520.i.i.i, %if.then.i.i.i515.i.i.i, %invoke.cont275.i.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i379.i.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i376.i.i.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit371.i.i.i, %cleanup.i.i.i319, %cleanup.thread.i.i.i, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit.i.i.i + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i.i44) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %tmp.i.i.i) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.bb31.i.i: ; preds = %if.end28.i.i + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i.i42) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i.i43) + %m_num_decls.i.i.i.i125 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 2 + %866 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %bf.load.i39.i.i = load i32, ptr %626, align 8 + %cmp.i40.i.i = icmp ult i32 %bf.load.i39.i.i, 64 + br i1 %cmp.i40.i.i, label %if.then.i.i.i251, label %cond.end.i.i.i126 + +if.then.i.i.i251: ; preds = %sw.bb31.i.i + call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + %m_expr.i.i.i.i252 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 3 + %867 = load ptr, ptr %m_expr.i.i.i.i252, align 8 + store ptr %867, ptr %m_root.i74, align 8 + %868 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i.i127.i.i = icmp eq ptr %868, null + br i1 %cmp.i.i127.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i253, label %if.end.i.i128.i.i + +if.end.i.i128.i.i: ; preds = %if.then.i.i.i251 + %arrayidx.i.i129.i.i = getelementptr inbounds i32, ptr %868, i64 -1 + %869 = load i32, ptr %arrayidx.i.i129.i.i, align 4 + br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i253 + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i253: ; preds = %if.end.i.i128.i.i, %if.then.i.i.i251 + %retval.0.i.i130.i.i = phi i32 [ %869, %if.end.i.i128.i.i ], [ 0, %if.then.i.i.i251 ] + %cmp4326.not.i.i.i = icmp eq i32 %866, 0 + br i1 %cmp4326.not.i.i.i, label %for.end.i.i.i259, label %for.body.i.i.i254 + +for.body.i.i.i254: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i253, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i256 + %i.0327.i.i.i = phi i32 [ %inc.i.i.i257, %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i256 ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i253 ] + %870 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i50.i.i.i = icmp eq ptr %870, null + br i1 %cmp.i50.i.i.i, label %if.then.i.i138.i.i, label %lor.lhs.false.i.i131.i.i + +lor.lhs.false.i.i131.i.i: ; preds = %for.body.i.i.i254 + %arrayidx.i51.i.i.i = getelementptr inbounds i32, ptr %870, i64 -1 + %871 = load i32, ptr %arrayidx.i51.i.i.i, align 4 + %arrayidx4.i.i132.i.i = getelementptr inbounds i32, ptr %870, i64 -2 + %872 = load i32, ptr %arrayidx4.i.i132.i.i, align 4 + %cmp5.i.i133.i.i = icmp eq i32 %871, %872 + br i1 %cmp5.i.i133.i.i, label %if.then.i.i138.i.i, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i255 + +if.then.i.i138.i.i: ; preds = %lor.lhs.false.i.i131.i.i, %for.body.i.i.i254 + call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i.i.i83) + %.pre.i.i139.i.i = load ptr, ptr %m_bindings.i.i.i83, align 8 + %arrayidx8.phi.trans.insert.i.i140.i.i = getelementptr inbounds i32, ptr %.pre.i.i139.i.i, i64 -1 + %.pre1.i.i141.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i140.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i255 + +_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i255: ; preds = %if.then.i.i138.i.i, %lor.lhs.false.i.i131.i.i + %873 = phi i32 [ %.pre1.i.i141.i.i, %if.then.i.i138.i.i ], [ %871, %lor.lhs.false.i.i131.i.i ] + %874 = phi ptr [ %.pre.i.i139.i.i, %if.then.i.i138.i.i ], [ %870, %lor.lhs.false.i.i131.i.i ] + %idx.ext.i.i134.i.i = zext i32 %873 to i64 + %add.ptr.i.i135.i.i = getelementptr inbounds ptr, ptr %874, i64 %idx.ext.i.i134.i.i + store ptr null, ptr %add.ptr.i.i135.i.i, align 8 + %875 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %arrayidx10.i.i136.i.i = getelementptr inbounds i32, ptr %875, i64 -1 + %876 = load i32, ptr %arrayidx10.i.i136.i.i, align 4 + %inc.i.i137.i.i = add i32 %876, 1 + store i32 %inc.i.i137.i.i, ptr %arrayidx10.i.i136.i.i, align 4 + %877 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i53.i.i.i = icmp eq ptr %877, null + br i1 %cmp.i53.i.i.i, label %if.then.i63.i.i.i, label %lor.lhs.false.i54.i.i.i + +lor.lhs.false.i54.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i255 + %arrayidx.i55.i.i.i = getelementptr inbounds i32, ptr %877, i64 -1 + %878 = load i32, ptr %arrayidx.i55.i.i.i, align 4 + %arrayidx4.i56.i.i.i = getelementptr inbounds i32, ptr %877, i64 -2 + %879 = load i32, ptr %arrayidx4.i56.i.i.i, align 4 + %cmp5.i57.i.i.i = icmp eq i32 %878, %879 + br i1 %cmp5.i57.i.i.i, label %if.then.i63.i.i.i, label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i256 + +if.then.i63.i.i.i: ; preds = %lor.lhs.false.i54.i.i.i, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit.i.i.i255 + call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i.i.i84) + %.pre.i64.i.i.i = load ptr, ptr %m_shifts.i.i.i84, align 8 + %arrayidx8.phi.trans.insert.i65.i.i.i = getelementptr inbounds i32, ptr %.pre.i64.i.i.i, i64 -1 + %.pre1.i66.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i65.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i256 + +_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i256: ; preds = %if.then.i63.i.i.i, %lor.lhs.false.i54.i.i.i + %880 = phi i32 [ %.pre1.i66.i.i.i, %if.then.i63.i.i.i ], [ %878, %lor.lhs.false.i54.i.i.i ] + %881 = phi ptr [ %.pre.i64.i.i.i, %if.then.i63.i.i.i ], [ %877, %lor.lhs.false.i54.i.i.i ] + %idx.ext.i59.i.i.i = zext i32 %880 to i64 + %add.ptr.i60.i.i.i = getelementptr inbounds i32, ptr %881, i64 %idx.ext.i59.i.i.i + store i32 %retval.0.i.i130.i.i, ptr %add.ptr.i60.i.i.i, align 4 + %882 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %arrayidx10.i61.i.i.i = getelementptr inbounds i32, ptr %882, i64 -1 + %883 = load i32, ptr %arrayidx10.i61.i.i.i, align 4 + %inc.i62.i.i.i = add i32 %883, 1 + store i32 %inc.i62.i.i.i, ptr %arrayidx10.i61.i.i.i, align 4 + %inc.i.i.i257 = add nuw i32 %i.0327.i.i.i, 1 + %exitcond.not.i.i.i258 = icmp eq i32 %inc.i.i.i257, %866 + br i1 %exitcond.not.i.i.i258, label %for.end.i.i.i259, label %for.body.i.i.i254, !llvm.loop !20 + +for.end.i.i.i259: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit.i.i.i256, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i253 + %884 = load i32, ptr %m_num_qvars.i75, align 8 + %add.i.i.i260 = add i32 %884, %866 + store i32 %add.i.i.i260, ptr %m_num_qvars.i75, align 8 + br label %cond.end.i.i.i126 + +cond.end.i.i.i126: ; preds = %for.end.i.i.i259, %sw.bb31.i.i + %m_num_patterns.i.i.i.i.i127 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 11 + %885 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %add.i.i.i.i128 = add i32 %885, 1 + %m_num_no_patterns.i.i.i.i.i129 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 12 + %886 = load i32, ptr %m_num_no_patterns.i.i.i.i.i129, align 4 + %add3.i.i.i.i130 = add i32 %add.i.i.i.i128, %886 + %m_patterns_decls.i.i.i.i.i.i.i.i131 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 13 + %m_expr.i.i.i.i.i132 = getelementptr inbounds %class.quantifier, ptr %624, i64 0, i32 3 + br label %while.cond.i41.i.i + +while.cond.i41.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i239, %cond.end.i.i.i126 + %bf.load11.i.i.i133 = load i32, ptr %626, align 8 + %bf.lshr12.i.i.i134 = lshr i32 %bf.load11.i.i.i133, 6 + %cmp13.i.i.i135 = icmp ult i32 %bf.lshr12.i.i.i134, %add3.i.i.i.i130 + br i1 %cmp13.i.i.i135, label %while.body.i120.i.i, label %while.end.i42.i.i + +while.body.i120.i.i: ; preds = %while.cond.i41.i.i + %cmp.i67.i.i.i = icmp ult i32 %bf.load11.i.i.i133, 64 + br i1 %cmp.i67.i.i.i, label %_ZNK10quantifier9get_childEj.exit.i.i.i239, label %if.else.i.i121.i.i + +if.else.i.i121.i.i: ; preds = %while.body.i120.i.i + %887 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %cmp3.not.i.i.i.i235 = icmp ult i32 %887, %bf.lshr12.i.i.i134 + br i1 %cmp3.not.i.i.i.i235, label %if.else6.i.i.i.i244, label %if.then4.i.i.i.i236 + +if.then4.i.i.i.i236: ; preds = %if.else.i.i121.i.i + %888 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i.i.i.i.i237 = zext i32 %888 to i64 + %add.ptr.i.i.i.i.i.i.i238 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i.i.i.i.i237 + %add.ptr.i.i.i.i122.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i.i.i.i238, i64 %idx.ext.i.i.i.i.i.i.i237 + %889 = zext nneg i32 %bf.lshr12.i.i.i134 to i64 + %890 = getelementptr ptr, ptr %add.ptr.i.i.i.i122.i.i, i64 %889 + %arrayidx.i.i.i123.i.i = getelementptr ptr, ptr %890, i64 -1 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i239 + +if.else6.i.i.i.i244: ; preds = %if.else.i.i121.i.i + %891 = xor i32 %887, -1 + %sub9.i.i.i.i245 = add nsw i32 %bf.lshr12.i.i.i134, %891 + %892 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i7.i.i.i.i246 = zext i32 %892 to i64 + %add.ptr.i.i.i8.i.i.i.i247 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i7.i.i.i.i246 + %add.ptr.i.i9.i.i.i.i248 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i.i.i.i247, i64 %idx.ext.i.i.i7.i.i.i.i246 + %idxprom.i10.i.i.i.i249 = zext i32 %sub9.i.i.i.i245 to i64 + %arrayidx.i11.i.i.i.i250 = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i.i.i.i248, i64 %idxprom.i10.i.i.i.i249 + br label %_ZNK10quantifier9get_childEj.exit.i.i.i239 + +_ZNK10quantifier9get_childEj.exit.i.i.i239: ; preds = %if.else6.i.i.i.i244, %if.then4.i.i.i.i236, %while.body.i120.i.i + %retval.0.in.i.i.i.i240 = phi ptr [ %arrayidx.i.i.i123.i.i, %if.then4.i.i.i.i236 ], [ %arrayidx.i11.i.i.i.i250, %if.else6.i.i.i.i244 ], [ %m_expr.i.i.i.i.i132, %while.body.i120.i.i ] + %retval.0.i69.i.i.i = load ptr, ptr %retval.0.in.i.i.i.i240, align 8 + %893 = and i32 %bf.load11.i.i.i133, -64 + %bf.shl.i124.i.i = add i32 %893, 64 + %bf.clear.i125.i.i = and i32 %bf.load11.i.i.i133, 63 + %bf.set.i126.i.i = or disjoint i32 %bf.shl.i124.i.i, %bf.clear.i125.i.i + store i32 %bf.set.i126.i.i, ptr %626, align 8 + %bf.lshr24.i.i.i241 = lshr i32 %bf.load11.i.i.i133, 4 + %bf.clear25.i.i.i242 = and i32 %bf.lshr24.i.i.i241, 3 + %call26.i.i.i243 = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i69.i.i.i, i32 noundef %bf.clear25.i.i.i242) + br i1 %call26.i.i.i243, label %while.cond.i41.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, !llvm.loop !21 + +while.end.i42.i.i: ; preds = %while.cond.i41.i.i + %894 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %m_spos.i.i.i136 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %620, i64 %retval.0.i.i.i42.i, i32 2 + %895 = load i32, ptr %m_spos.i.i.i136, align 4 + %idx.ext.i44.i.i = zext i32 %895 to i64 + %add.ptr.i45.i.i = getelementptr inbounds ptr, ptr %894, i64 %idx.ext.i44.i.i + %896 = load ptr, ptr %add.ptr.i45.i.i, align 8 + %897 = load i32, ptr %m_num_patterns.i.i.i.i.i127, align 8 + %898 = load i32, ptr %m_num_no_patterns.i.i.i.i.i129, align 4 + %899 = load ptr, ptr %586, align 8 + %900 = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %idx.ext.i.i.i46.i.i = zext i32 %900 to i64 + %add.ptr.i.i.i47.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i.i46.i.i + %add.ptr.i71.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i47.i.i, i64 %idx.ext.i.i.i46.i.i + %901 = ptrtoint ptr %899 to i64 + store i64 %901, ptr %new_pats.i.i.i42, align 8 + store ptr null, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp3.not.i.i.i.i.i137 = icmp eq i32 %897, 0 + br i1 %cmp3.not.i.i.i.i.i137, label %invoke.cont.i56.i.i, label %for.body.lr.ph.i.i.i.i.i138 + +for.body.lr.ph.i.i.i.i.i138: ; preds = %while.end.i42.i.i + %wide.trip.count.i.i.i.i.i139 = zext i32 %897 to i64 + br label %for.body.i.i.i49.i.i + +for.body.i.i.i49.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147, %for.body.lr.ph.i.i.i.i.i138 + %indvars.iv.i.i.i.i.i140 = phi i64 [ 0, %for.body.lr.ph.i.i.i.i.i138 ], [ %indvars.iv.next.i.i.i.i.i149, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 ] + %arrayidx.i.i72.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i71.i.i.i, i64 %indvars.iv.i.i.i.i.i140 + %902 = load ptr, ptr %arrayidx.i.i72.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i50.i.i = icmp eq ptr %902, null + br i1 %tobool.not.i.i.i.i.i.i.i50.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142, label %if.then.i.i.i.i.i.i.i51.i.i + +if.then.i.i.i.i.i.i.i51.i.i: ; preds = %for.body.i.i.i49.i.i + %m_ref_count.i.i.i.i.i.i.i.i52.i.i = getelementptr inbounds %class.ast, ptr %902, i64 0, i32 2 + %903 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i.i52.i.i, align 4 + %inc.i.i.i.i.i.i.i.i.i.i141 = add i32 %903, 1 + store i32 %inc.i.i.i.i.i.i.i.i.i.i141, ptr %m_ref_count.i.i.i.i.i.i.i.i52.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142: ; preds = %if.then.i.i.i.i.i.i.i51.i.i, %for.body.i.i.i49.i.i + %904 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i.i.i.i.i143 = icmp eq ptr %904, null + br i1 %cmp.i.i.i.i.i.i.i143, label %if.then.i240.i.i, label %lor.lhs.false.i.i.i.i.i.i.i144 + +lor.lhs.false.i.i.i.i.i.i.i144: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + %arrayidx.i.i.i.i.i53.i.i = getelementptr inbounds i32, ptr %904, i64 -1 + %905 = load i32, ptr %arrayidx.i.i.i.i.i53.i.i, align 4 + %arrayidx4.i.i.i.i.i.i.i145 = getelementptr inbounds i32, ptr %904, i64 -2 + %906 = load i32, ptr %arrayidx4.i.i.i.i.i.i.i145, align 4 + %cmp5.i.i.i.i.i.i.i146 = icmp eq i32 %905, %906 + br i1 %cmp5.i.i.i.i.i.i.i146, label %if.else.i216.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + +if.then.i240.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i.i.i.i142 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i213.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i214.i.i) + %call.i244.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc243.i.i unwind label %lpad.i.i.i.i230 + +call.i.noexc243.i.i: ; preds = %if.then.i240.i.i + store i32 2, ptr %call.i244.i.i, align 4 + %incdec.ptr.i241.i.i = getelementptr inbounds i32, ptr %call.i244.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i241.i.i, align 4 + %incdec.ptr2.i242.i.i = getelementptr inbounds i32, ptr %call.i244.i.i, i64 2 + store ptr %incdec.ptr2.i242.i.i, ptr %m_nodes.i.i.i48.i.i, align 8 + br label %.noexc.i.i.i.i231 + +if.else.i216.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i.i144 + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i213.i.i) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i214.i.i) + %mul9.i218.i.i = mul i32 %905, 3 + %add10.i219.i.i = add i32 %mul9.i218.i.i, 1 + %shr.i220.i.i = lshr i32 %add10.i219.i.i, 1 + %mul12.i221.i.i = shl i32 %shr.i220.i.i, 3 + %add13.i222.i.i = add i32 %mul12.i221.i.i, 8 + %cmp15.not.i223.i.i = icmp ugt i32 %shr.i220.i.i, %905 + br i1 %cmp15.not.i223.i.i, label %lor.lhs.false.i233.i.i, label %if.then17.i224.i.i + +lor.lhs.false.i233.i.i: ; preds = %if.else.i216.i.i + %mul6.i234.i.i = shl i32 %905, 3 + %add7.i235.i.i = add i32 %mul6.i234.i.i, 8 + %cmp16.not.i236.i.i = icmp ugt i32 %add13.i222.i.i, %add7.i235.i.i + br i1 %cmp16.not.i236.i.i, label %if.end.i237.i.i, label %if.then17.i224.i.i + +if.then17.i224.i.i: ; preds = %lor.lhs.false.i233.i.i, %if.else.i216.i.i + %exception.i225.i.i = call ptr @__cxa_allocate_exception(i64 40) #15 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) #15 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i213.i.i, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) + to label %invoke.cont.i229.i.i unwind label %cleanup.action.i226.i.i + +invoke.cont.i229.i.i: ; preds = %if.then17.i224.i.i + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i225.i.i, align 8 + %m_msg.i.i230.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i225.i.i, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i230.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i213.i.i) #15 + invoke void @__cxa_throw(ptr nonnull %exception.i225.i.i, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #16 + to label %unreachable.i232.i.i unwind label %ehcleanup.i231.i.i + +ehcleanup.i231.i.i: ; preds = %invoke.cont.i229.i.i + %907 = landingpad { ptr, i32 } + cleanup + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i213.i.i) #15 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) #15 + br label %lpad.i.i.body.i.i229 + +cleanup.action.i226.i.i: ; preds = %if.then17.i224.i.i + %908 = landingpad { ptr, i32 } + cleanup + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i214.i.i) #15 + call void @__cxa_free_exception(ptr %exception.i225.i.i) #15 + br label %lpad.i.i.body.i.i229 + +if.end.i237.i.i: ; preds = %lor.lhs.false.i233.i.i + %conv24.i238.i.i = zext i32 %add13.i222.i.i to i64 + %call25.i246.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i.i.i.i145, i64 noundef %conv24.i238.i.i) + to label %call25.i.noexc245.i.i unwind label %lpad.i.i.i.i230 + +call25.i.noexc245.i.i: ; preds = %if.end.i237.i.i + %add.ptr26.i239.i.i = getelementptr inbounds i32, ptr %call25.i246.i.i, i64 2 + store ptr %add.ptr26.i239.i.i, ptr %m_nodes.i.i.i48.i.i, align 8 + store i32 %shr.i220.i.i, ptr %call25.i246.i.i, align 4 + br label %.noexc.i.i.i.i231 + +unreachable.i232.i.i: ; preds = %invoke.cont.i229.i.i unreachable -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_appILb0EEEvP3appRN13rewriter_core5frameE.exit.i: ; preds = %if.end.i.i410, %cleanup.i.i382.thread, %if.then2.i.i.i2146, %if.then.i.i.i2140, %invoke.cont275.i.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i2284, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i2281, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE12cache_resultILb0EEEvP4exprS6_P3appb.exit2295, %if.then2.i.i.i2385, %if.then.i.i.i2379, %cleanup.i.i382, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13constant_foldEP3appRN13rewriter_core5frameE.exit - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_t.i.i198) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %tmp.i.i) - br label %while.cond.i204.backedgethread-pre-split - -sw.bb31.i: ; preds = %if.end28.i - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_pats.i.i194) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %new_no_pats.i.i195) - %m_num_decls.i2138 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 2 - %861 = load i32, ptr %m_num_decls.i2138, align 4 - %bf.load.i30.i = load i32, ptr %625, align 8 - %cmp.i31.i = icmp ult i32 %bf.load.i30.i, 64 - br i1 %cmp.i31.i, label %if.then.i.i327, label %cond.end.i.i252 - -if.then.i.i327: ; preds = %sw.bb31.i - call void @_ZN13rewriter_core11begin_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - %m_expr.i2137 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 3 - %862 = load ptr, ptr %m_expr.i2137, align 8 - store ptr %862, ptr %m_root.i54, align 8 - %863 = load ptr, ptr %m_bindings.i66.i, align 8 - %cmp.i2132 = icmp eq ptr %863, null - br i1 %cmp.i2132, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2136, label %if.end.i2133 - -if.end.i2133: ; preds = %if.then.i.i327 - %arrayidx.i2134 = getelementptr inbounds i32, ptr %863, i64 -1 - %864 = load i32, ptr %arrayidx.i2134, align 4 - br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2136 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2136: ; preds = %if.then.i.i327, %if.end.i2133 - %retval.0.i2135 = phi i32 [ %864, %if.end.i2133 ], [ 0, %if.then.i.i327 ] - %cmp4.i.i3302899.not = icmp eq i32 %861, 0 - br i1 %cmp4.i.i3302899.not, label %for.end.i.i331, label %for.body.i.i332 - -for.body.i.i332: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2136, %_ZN6vectorIjLb0EjE9push_backERKj.exit2116 - %i.0.i67.i2900 = phi i32 [ %inc.i.i335, %_ZN6vectorIjLb0EjE9push_backERKj.exit2116 ], [ 0, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2136 ] - %865 = load ptr, ptr %m_bindings.i66.i, align 8 - %cmp.i2117 = icmp eq ptr %865, null - br i1 %cmp.i2117, label %if.then.i2127, label %lor.lhs.false.i2118 - -lor.lhs.false.i2118: ; preds = %for.body.i.i332 - %arrayidx.i2119 = getelementptr inbounds i32, ptr %865, i64 -1 - %866 = load i32, ptr %arrayidx.i2119, align 4 - %arrayidx4.i2120 = getelementptr inbounds i32, ptr %865, i64 -2 - %867 = load i32, ptr %arrayidx4.i2120, align 4 - %cmp5.i2121 = icmp eq i32 %866, %867 - br i1 %cmp5.i2121, label %if.then.i2127, label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2131 - -if.then.i2127: ; preds = %lor.lhs.false.i2118, %for.body.i.i332 - call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_bindings.i66.i) - %.pre.i2128 = load ptr, ptr %m_bindings.i66.i, align 8 - %arrayidx8.phi.trans.insert.i2129 = getelementptr inbounds i32, ptr %.pre.i2128, i64 -1 - %.pre1.i2130 = load i32, ptr %arrayidx8.phi.trans.insert.i2129, align 4 - br label %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2131 - -_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2131: ; preds = %lor.lhs.false.i2118, %if.then.i2127 - %868 = phi i32 [ %.pre1.i2130, %if.then.i2127 ], [ %866, %lor.lhs.false.i2118 ] - %869 = phi ptr [ %.pre.i2128, %if.then.i2127 ], [ %865, %lor.lhs.false.i2118 ] - %idx.ext.i2123 = zext i32 %868 to i64 - %add.ptr.i2124 = getelementptr inbounds ptr, ptr %869, i64 %idx.ext.i2123 - store ptr null, ptr %add.ptr.i2124, align 8 - %870 = load ptr, ptr %m_bindings.i66.i, align 8 - %arrayidx10.i2125 = getelementptr inbounds i32, ptr %870, i64 -1 - %871 = load i32, ptr %arrayidx10.i2125, align 4 - %inc.i2126 = add i32 %871, 1 - store i32 %inc.i2126, ptr %arrayidx10.i2125, align 4 - %872 = load ptr, ptr %m_shifts.i70.i, align 8 - %cmp.i2102 = icmp eq ptr %872, null - br i1 %cmp.i2102, label %if.then.i2112, label %lor.lhs.false.i2103 - -lor.lhs.false.i2103: ; preds = %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2131 - %arrayidx.i2104 = getelementptr inbounds i32, ptr %872, i64 -1 - %873 = load i32, ptr %arrayidx.i2104, align 4 - %arrayidx4.i2105 = getelementptr inbounds i32, ptr %872, i64 -2 - %874 = load i32, ptr %arrayidx4.i2105, align 4 - %cmp5.i2106 = icmp eq i32 %873, %874 - br i1 %cmp5.i2106, label %if.then.i2112, label %_ZN6vectorIjLb0EjE9push_backERKj.exit2116 - -if.then.i2112: ; preds = %lor.lhs.false.i2103, %_ZN6vectorIP4exprLb0EjE9push_backEOS1_.exit2131 - call void @_ZN6vectorIjLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_shifts.i70.i) - %.pre.i2113 = load ptr, ptr %m_shifts.i70.i, align 8 - %arrayidx8.phi.trans.insert.i2114 = getelementptr inbounds i32, ptr %.pre.i2113, i64 -1 - %.pre1.i2115 = load i32, ptr %arrayidx8.phi.trans.insert.i2114, align 4 - br label %_ZN6vectorIjLb0EjE9push_backERKj.exit2116 - -_ZN6vectorIjLb0EjE9push_backERKj.exit2116: ; preds = %lor.lhs.false.i2103, %if.then.i2112 - %875 = phi i32 [ %.pre1.i2115, %if.then.i2112 ], [ %873, %lor.lhs.false.i2103 ] - %876 = phi ptr [ %.pre.i2113, %if.then.i2112 ], [ %872, %lor.lhs.false.i2103 ] - %idx.ext.i2108 = zext i32 %875 to i64 - %add.ptr.i2109 = getelementptr inbounds i32, ptr %876, i64 %idx.ext.i2108 - store i32 %retval.0.i2135, ptr %add.ptr.i2109, align 4 - %877 = load ptr, ptr %m_shifts.i70.i, align 8 - %arrayidx10.i2110 = getelementptr inbounds i32, ptr %877, i64 -1 - %878 = load i32, ptr %arrayidx10.i2110, align 4 - %inc.i2111 = add i32 %878, 1 - store i32 %inc.i2111, ptr %arrayidx10.i2110, align 4 - %inc.i.i335 = add nuw i32 %i.0.i67.i2900, 1 - %exitcond2919.not = icmp eq i32 %inc.i.i335, %861 - br i1 %exitcond2919.not, label %for.end.i.i331, label %for.body.i.i332, !llvm.loop !20 - -for.end.i.i331: ; preds = %_ZN6vectorIjLb0EjE9push_backERKj.exit2116, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit2136 - %879 = load i32, ptr %m_num_qvars.i55, align 8 - %add.i69.i = add i32 %879, %861 - store i32 %add.i69.i, ptr %m_num_qvars.i55, align 8 - br label %cond.end.i.i252 - -cond.end.i.i252: ; preds = %for.end.i.i331, %sw.bb31.i - %m_num_patterns.i.i2098 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 11 - %880 = load i32, ptr %m_num_patterns.i.i2098, align 8 - %add.i2099 = add i32 %880, 1 - %m_num_no_patterns.i.i2100 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 12 - %881 = load i32, ptr %m_num_no_patterns.i.i2100, align 4 - %add3.i2101 = add i32 %add.i2099, %881 - %m_patterns_decls.i.i.i.i.i2077 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 13 - %m_expr.i.i2096 = getelementptr inbounds %class.quantifier, ptr %623, i64 0, i32 3 - br label %while.cond.i34.i - -while.cond.i34.i: ; preds = %_ZNK10quantifier9get_childEj.exit2097, %cond.end.i.i252 - %bf.load11.i.i254 = load i32, ptr %625, align 8 - %bf.lshr12.i.i255 = lshr i32 %bf.load11.i.i254, 6 - %cmp13.i.i256 = icmp ult i32 %bf.lshr12.i.i255, %add3.i2101 - br i1 %cmp13.i.i256, label %while.body.i58.i, label %while.end.i35.i - -while.body.i58.i: ; preds = %while.cond.i34.i - %cmp.i2071 = icmp ult i32 %bf.load11.i.i254, 64 - br i1 %cmp.i2071, label %_ZNK10quantifier9get_childEj.exit2097, label %if.else.i2072 - -if.else.i2072: ; preds = %while.body.i58.i - %882 = load i32, ptr %m_num_patterns.i.i2098, align 8 - %cmp3.not.i2074 = icmp ult i32 %882, %bf.lshr12.i.i255 - br i1 %cmp3.not.i2074, label %if.else6.i2086, label %if.then4.i2075 - -if.then4.i2075: ; preds = %if.else.i2072 - %883 = load i32, ptr %m_num_decls.i2138, align 4 - %idx.ext.i.i.i.i2079 = zext i32 %883 to i64 - %add.ptr.i.i.i.i2080 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2077, i64 %idx.ext.i.i.i.i2079 - %add.ptr.i.i.i2081 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i.i2080, i64 %idx.ext.i.i.i.i2079 - %884 = zext nneg i32 %bf.lshr12.i.i255 to i64 - %885 = getelementptr ptr, ptr %add.ptr.i.i.i2081, i64 %884 - %arrayidx.i.i2083 = getelementptr ptr, ptr %885, i64 -1 - br label %_ZNK10quantifier9get_childEj.exit2097 - -if.else6.i2086: ; preds = %if.else.i2072 - %886 = xor i32 %882, -1 - %sub9.i2087 = add i32 %bf.lshr12.i.i255, %886 - %887 = load i32, ptr %m_num_decls.i2138, align 4 - %idx.ext.i.i.i7.i2090 = zext i32 %887 to i64 - %add.ptr.i.i.i8.i2091 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2077, i64 %idx.ext.i.i.i7.i2090 - %add.ptr.i.i9.i2092 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i.i8.i2091, i64 %idx.ext.i.i.i7.i2090 - %idxprom.i10.i2093 = zext i32 %sub9.i2087 to i64 - %arrayidx.i11.i2094 = getelementptr inbounds ptr, ptr %add.ptr.i.i9.i2092, i64 %idxprom.i10.i2093 - br label %_ZNK10quantifier9get_childEj.exit2097 - -_ZNK10quantifier9get_childEj.exit2097: ; preds = %while.body.i58.i, %if.then4.i2075, %if.else6.i2086 - %retval.0.in.i2084 = phi ptr [ %arrayidx.i.i2083, %if.then4.i2075 ], [ %arrayidx.i11.i2094, %if.else6.i2086 ], [ %m_expr.i.i2096, %while.body.i58.i ] - %retval.0.i2085 = load ptr, ptr %retval.0.in.i2084, align 8 - %888 = and i32 %bf.load11.i.i254, -64 - %bf.shl.i60.i = add i32 %888, 64 - %bf.clear.i61.i = and i32 %bf.load11.i.i254, 63 - %bf.set.i62.i = or disjoint i32 %bf.shl.i60.i, %bf.clear.i61.i - store i32 %bf.set.i62.i, ptr %625, align 8 - %bf.lshr24.i.i323 = lshr i32 %bf.load11.i.i254, 4 - %bf.clear25.i.i324 = and i32 %bf.lshr24.i.i323, 3 - %call26.i63.i = call fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %retval.0.i2085, i32 noundef %bf.clear25.i.i324) - br i1 %call26.i63.i, label %while.cond.i34.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, !llvm.loop !21 - -while.end.i35.i: ; preds = %while.cond.i34.i - %889 = load ptr, ptr %m_nodes.i.i433, align 8 - %m_spos.i38.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %619, i64 %retval.0.i.i.i240, i32 2 - %890 = load i32, ptr %m_spos.i38.i, align 4 - %idx.ext.i39.i = zext i32 %890 to i64 - %add.ptr.i40.i = getelementptr inbounds ptr, ptr %889, i64 %idx.ext.i39.i - %891 = load ptr, ptr %add.ptr.i40.i, align 8 - %892 = load i32, ptr %m_num_patterns.i.i2098, align 8 - %893 = load i32, ptr %m_num_no_patterns.i.i2100, align 4 - %894 = load ptr, ptr %585, align 8 - %895 = load i32, ptr %m_num_decls.i2138, align 4 - %idx.ext.i.i2064 = zext i32 %895 to i64 - %add.ptr.i.i2065 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2077, i64 %idx.ext.i.i2064 - %add.ptr.i2066 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i2065, i64 %idx.ext.i.i2064 - %896 = ptrtoint ptr %894 to i64 - store i64 %896, ptr %new_pats.i.i194, align 8 - store ptr null, ptr %m_nodes.i.i2030, align 8 - %cmp3.not.i.i2031 = icmp eq i32 %892, 0 - br i1 %cmp3.not.i.i2031, label %invoke.cont.i46.i, label %for.body.lr.ph.i.i2032 - -for.body.lr.ph.i.i2032: ; preds = %while.end.i35.i - %wide.trip.count.i.i2033 = zext i32 %892 to i64 - br label %for.body.i.i2034 - -for.body.i.i2034: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2047, %for.body.lr.ph.i.i2032 - %indvars.iv.i.i2035 = phi i64 [ 0, %for.body.lr.ph.i.i2032 ], [ %indvars.iv.next.i.i2052, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2047 ] - %arrayidx.i.i2036 = getelementptr inbounds ptr, ptr %add.ptr.i2066, i64 %indvars.iv.i.i2035 - %897 = load ptr, ptr %arrayidx.i.i2036, align 8 - %tobool.not.i.i.i.i.i.i2037 = icmp eq ptr %897, null - br i1 %tobool.not.i.i.i.i.i.i2037, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2041, label %if.then.i.i.i.i.i.i2038 - -if.then.i.i.i.i.i.i2038: ; preds = %for.body.i.i2034 - %m_ref_count.i.i.i.i.i.i.i2039 = getelementptr inbounds %class.ast, ptr %897, i64 0, i32 2 - %898 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2039, align 4 - %inc.i.i.i.i.i.i.i2040 = add i32 %898, 1 - store i32 %inc.i.i.i.i.i.i.i2040, ptr %m_ref_count.i.i.i.i.i.i.i2039, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2041 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2041: ; preds = %if.then.i.i.i.i.i.i2038, %for.body.i.i2034 - %899 = load ptr, ptr %m_nodes.i.i2030, align 8 - %cmp.i.i.i.i2042 = icmp eq ptr %899, null - br i1 %cmp.i.i.i.i2042, label %if.then.i.i.i.i2055, label %lor.lhs.false.i.i.i.i2043 - -lor.lhs.false.i.i.i.i2043: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2041 - %arrayidx.i.i.i.i2044 = getelementptr inbounds i32, ptr %899, i64 -1 - %900 = load i32, ptr %arrayidx.i.i.i.i2044, align 4 - %arrayidx4.i.i.i.i2045 = getelementptr inbounds i32, ptr %899, i64 -2 - %901 = load i32, ptr %arrayidx4.i.i.i.i2045, align 4 - %cmp5.i.i.i.i2046 = icmp eq i32 %900, %901 - br i1 %cmp5.i.i.i.i2046, label %if.then.i.i.i.i2055, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2047 - -if.then.i.i.i.i2055: ; preds = %lor.lhs.false.i.i.i.i2043, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2041 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i2030) - to label %.noexc.i2057 unwind label %lpad.i2056 - -.noexc.i2057: ; preds = %if.then.i.i.i.i2055 - %.pre.i.i.i.i2058 = load ptr, ptr %m_nodes.i.i2030, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i2059 = getelementptr inbounds i32, ptr %.pre.i.i.i.i2058, i64 -1 - %.pre1.i.i.i.i2060 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i2059, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2047 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2047: ; preds = %.noexc.i2057, %lor.lhs.false.i.i.i.i2043 - %902 = phi i32 [ %.pre1.i.i.i.i2060, %.noexc.i2057 ], [ %900, %lor.lhs.false.i.i.i.i2043 ] - %903 = phi ptr [ %.pre.i.i.i.i2058, %.noexc.i2057 ], [ %899, %lor.lhs.false.i.i.i.i2043 ] - %idx.ext.i.i.i.i2048 = zext i32 %902 to i64 - %add.ptr.i.i.i.i2049 = getelementptr inbounds ptr, ptr %903, i64 %idx.ext.i.i.i.i2048 - store ptr %897, ptr %add.ptr.i.i.i.i2049, align 8 - %904 = load ptr, ptr %m_nodes.i.i2030, align 8 - %arrayidx10.i.i.i.i2050 = getelementptr inbounds i32, ptr %904, i64 -1 - %905 = load i32, ptr %arrayidx10.i.i.i.i2050, align 4 - %inc.i.i.i.i2051 = add i32 %905, 1 - store i32 %inc.i.i.i.i2051, ptr %arrayidx10.i.i.i.i2050, align 4 - %indvars.iv.next.i.i2052 = add nuw nsw i64 %indvars.iv.i.i2035, 1 - %exitcond.not.i.i2053 = icmp eq i64 %indvars.iv.next.i.i2052, %wide.trip.count.i.i2033 - br i1 %exitcond.not.i.i2053, label %invoke.cont.i46.i.loopexit, label %for.body.i.i2034, !llvm.loop !15 - -lpad.i2056: ; preds = %if.then.i.i.i.i2055 - %906 = landingpad { ptr, i32 } +.noexc.i.i.i.i231: ; preds = %call25.i.noexc245.i.i, %call.i.noexc243.i.i + %.pre.i.i.i.i.i.i.i232 = phi ptr [ %add.ptr26.i239.i.i, %call25.i.noexc245.i.i ], [ %incdec.ptr2.i242.i.i, %call.i.noexc243.i.i ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i213.i.i) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i214.i.i) + %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i233 = getelementptr inbounds i32, ptr %.pre.i.i.i.i.i.i.i232, i64 -1 + %.pre1.i.i.i.i.i.i.i234 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i.i.i.i233, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147: ; preds = %.noexc.i.i.i.i231, %lor.lhs.false.i.i.i.i.i.i.i144 + %909 = phi i32 [ %.pre1.i.i.i.i.i.i.i234, %.noexc.i.i.i.i231 ], [ %905, %lor.lhs.false.i.i.i.i.i.i.i144 ] + %910 = phi ptr [ %.pre.i.i.i.i.i.i.i232, %.noexc.i.i.i.i231 ], [ %904, %lor.lhs.false.i.i.i.i.i.i.i144 ] + %idx.ext.i.i.i.i73.i.i.i = zext i32 %909 to i64 + %add.ptr.i.i.i.i74.i.i.i = getelementptr inbounds ptr, ptr %910, i64 %idx.ext.i.i.i.i73.i.i.i + store ptr %902, ptr %add.ptr.i.i.i.i74.i.i.i, align 8 + %911 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %arrayidx10.i.i.i.i.i.i.i148 = getelementptr inbounds i32, ptr %911, i64 -1 + %912 = load i32, ptr %arrayidx10.i.i.i.i.i.i.i148, align 4 + %inc.i.i.i.i.i54.i.i = add i32 %912, 1 + store i32 %inc.i.i.i.i.i54.i.i, ptr %arrayidx10.i.i.i.i.i.i.i148, align 4 + %indvars.iv.next.i.i.i.i.i149 = add nuw nsw i64 %indvars.iv.i.i.i.i.i140, 1 + %exitcond.not.i.i.i.i.i150 = icmp eq i64 %indvars.iv.next.i.i.i.i.i149, %wide.trip.count.i.i.i.i.i139 + br i1 %exitcond.not.i.i.i.i.i150, label %invoke.cont.loopexit.i.i.i151, label %for.body.i.i.i49.i.i, !llvm.loop !15 + +lpad.i.i.i.i230: ; preds = %if.end.i237.i.i, %if.then.i240.i.i + %913 = landingpad { ptr, i32 } cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i194) #15 + br label %lpad.i.i.body.i.i229 + +lpad.i.i.body.i.i229: ; preds = %lpad.i.i.i.i230, %cleanup.action.i226.i.i, %ehcleanup.i231.i.i + %eh.lpad-body247.i.i = phi { ptr, i32 } [ %913, %lpad.i.i.i.i230 ], [ %907, %ehcleanup.i231.i.i ], [ %908, %cleanup.action.i226.i.i ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i42) #15 br label %common.resume -invoke.cont.i46.i.loopexit: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2047 - %.pre2936 = load ptr, ptr %585, align 8 - %.pre2937 = load i32, ptr %m_num_decls.i2138, align 4 - %.pre2941 = zext i32 %.pre2937 to i64 - %.pre2942 = ptrtoint ptr %.pre2936 to i64 - br label %invoke.cont.i46.i - -invoke.cont.i46.i: ; preds = %invoke.cont.i46.i.loopexit, %while.end.i35.i - %.pre-phi = phi i64 [ %.pre2942, %invoke.cont.i46.i.loopexit ], [ %896, %while.end.i35.i ] - %idx.ext.i.i2027.pre-phi = phi i64 [ %.pre2941, %invoke.cont.i46.i.loopexit ], [ %idx.ext.i.i2064, %while.end.i35.i ] - %add.ptr.i.i2028 = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i2077, i64 %idx.ext.i.i2027.pre-phi - %add.ptr.i2029 = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i2028, i64 %idx.ext.i.i2027.pre-phi - store i64 %.pre-phi, ptr %new_no_pats.i.i195, align 8 - store ptr null, ptr %m_nodes.i.i1992, align 8 - %cmp3.not.i.i1993 = icmp eq i32 %893, 0 - br i1 %cmp3.not.i.i1993, label %if.then40.i.i286, label %for.body.lr.ph.i.i1994 - -for.body.lr.ph.i.i1994: ; preds = %invoke.cont.i46.i - %wide.trip.count.i.i1995 = zext i32 %893 to i64 - br label %for.body.i.i1996 - -for.body.i.i1996: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2009, %for.body.lr.ph.i.i1994 - %indvars.iv.i.i1997 = phi i64 [ 0, %for.body.lr.ph.i.i1994 ], [ %indvars.iv.next.i.i2014, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2009 ] - %arrayidx.i.i1998 = getelementptr inbounds ptr, ptr %add.ptr.i2029, i64 %indvars.iv.i.i1997 - %907 = load ptr, ptr %arrayidx.i.i1998, align 8 - %tobool.not.i.i.i.i.i.i1999 = icmp eq ptr %907, null - br i1 %tobool.not.i.i.i.i.i.i1999, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2003, label %if.then.i.i.i.i.i.i2000 - -if.then.i.i.i.i.i.i2000: ; preds = %for.body.i.i1996 - %m_ref_count.i.i.i.i.i.i.i2001 = getelementptr inbounds %class.ast, ptr %907, i64 0, i32 2 - %908 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i2001, align 4 - %inc.i.i.i.i.i.i.i2002 = add i32 %908, 1 - store i32 %inc.i.i.i.i.i.i.i2002, ptr %m_ref_count.i.i.i.i.i.i.i2001, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2003 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2003: ; preds = %if.then.i.i.i.i.i.i2000, %for.body.i.i1996 - %909 = load ptr, ptr %m_nodes.i.i1992, align 8 - %cmp.i.i.i.i2004 = icmp eq ptr %909, null - br i1 %cmp.i.i.i.i2004, label %if.then.i.i.i.i2017, label %lor.lhs.false.i.i.i.i2005 - -lor.lhs.false.i.i.i.i2005: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2003 - %arrayidx.i.i.i.i2006 = getelementptr inbounds i32, ptr %909, i64 -1 - %910 = load i32, ptr %arrayidx.i.i.i.i2006, align 4 - %arrayidx4.i.i.i.i2007 = getelementptr inbounds i32, ptr %909, i64 -2 - %911 = load i32, ptr %arrayidx4.i.i.i.i2007, align 4 - %cmp5.i.i.i.i2008 = icmp eq i32 %910, %911 - br i1 %cmp5.i.i.i.i2008, label %if.then.i.i.i.i2017, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2009 - -if.then.i.i.i.i2017: ; preds = %lor.lhs.false.i.i.i.i2005, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i2003 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i1992) - to label %.noexc.i2019 unwind label %lpad.i2018 - -.noexc.i2019: ; preds = %if.then.i.i.i.i2017 - %.pre.i.i.i.i2020 = load ptr, ptr %m_nodes.i.i1992, align 8 - %arrayidx8.phi.trans.insert.i.i.i.i2021 = getelementptr inbounds i32, ptr %.pre.i.i.i.i2020, i64 -1 - %.pre1.i.i.i.i2022 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i2021, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2009 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2009: ; preds = %.noexc.i2019, %lor.lhs.false.i.i.i.i2005 - %912 = phi i32 [ %.pre1.i.i.i.i2022, %.noexc.i2019 ], [ %910, %lor.lhs.false.i.i.i.i2005 ] - %913 = phi ptr [ %.pre.i.i.i.i2020, %.noexc.i2019 ], [ %909, %lor.lhs.false.i.i.i.i2005 ] - %idx.ext.i.i.i.i2010 = zext i32 %912 to i64 - %add.ptr.i.i.i.i2011 = getelementptr inbounds ptr, ptr %913, i64 %idx.ext.i.i.i.i2010 - store ptr %907, ptr %add.ptr.i.i.i.i2011, align 8 - %914 = load ptr, ptr %m_nodes.i.i1992, align 8 - %arrayidx10.i.i.i.i2012 = getelementptr inbounds i32, ptr %914, i64 -1 - %915 = load i32, ptr %arrayidx10.i.i.i.i2012, align 4 - %inc.i.i.i.i2013 = add i32 %915, 1 - store i32 %inc.i.i.i.i2013, ptr %arrayidx10.i.i.i.i2012, align 4 - %indvars.iv.next.i.i2014 = add nuw nsw i64 %indvars.iv.i.i1997, 1 - %exitcond.not.i.i2015 = icmp eq i64 %indvars.iv.next.i.i2014, %wide.trip.count.i.i1995 - br i1 %exitcond.not.i.i2015, label %if.then40.i.i286, label %for.body.i.i1996, !llvm.loop !15 - -lpad.i2018: ; preds = %if.then.i.i.i.i2017 - %916 = landingpad { ptr, i32 } +invoke.cont.loopexit.i.i.i151: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i.i.i.i147 + %.pre.i55.i.i = load ptr, ptr %586, align 8 + %.pre342.i.i.i = load i32, ptr %m_num_decls.i.i.i.i125, align 4 + %.pre343.i.i.i = zext i32 %.pre342.i.i.i to i64 + %.pre344.i.i.i = ptrtoint ptr %.pre.i55.i.i to i64 + br label %invoke.cont.i56.i.i + +invoke.cont.i56.i.i: ; preds = %invoke.cont.loopexit.i.i.i151, %while.end.i42.i.i + %.pre-phi.i.i.i152 = phi i64 [ %.pre344.i.i.i, %invoke.cont.loopexit.i.i.i151 ], [ %901, %while.end.i42.i.i ] + %idx.ext.i.i77.pre-phi.i.i.i = phi i64 [ %.pre343.i.i.i, %invoke.cont.loopexit.i.i.i151 ], [ %idx.ext.i.i.i46.i.i, %while.end.i42.i.i ] + %add.ptr.i.i78.i.i.i = getelementptr inbounds ptr, ptr %m_patterns_decls.i.i.i.i.i.i.i.i131, i64 %idx.ext.i.i77.pre-phi.i.i.i + %add.ptr.i79.i.i.i = getelementptr inbounds %class.symbol, ptr %add.ptr.i.i78.i.i.i, i64 %idx.ext.i.i77.pre-phi.i.i.i + store i64 %.pre-phi.i.i.i152, ptr %new_no_pats.i.i.i43, align 8 + store ptr null, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp3.not.i.i81.i.i.i = icmp eq i32 %898, 0 + br i1 %cmp3.not.i.i81.i.i.i, label %if.then40.i.i.i153, label %for.body.lr.ph.i.i82.i.i.i + +for.body.lr.ph.i.i82.i.i.i: ; preds = %invoke.cont.i56.i.i + %wide.trip.count.i.i83.i.i.i = zext i32 %898 to i64 + br label %for.body.i.i84.i.i.i + +for.body.i.i84.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i, %for.body.lr.ph.i.i82.i.i.i + %indvars.iv.i.i85.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i82.i.i.i ], [ %indvars.iv.next.i.i102.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i ] + %arrayidx.i.i86.i.i.i = getelementptr inbounds ptr, ptr %add.ptr.i79.i.i.i, i64 %indvars.iv.i.i85.i.i.i + %914 = load ptr, ptr %arrayidx.i.i86.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i87.i.i.i = icmp eq ptr %914, null + br i1 %tobool.not.i.i.i.i.i.i87.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i, label %if.then.i.i.i.i.i.i88.i.i.i + +if.then.i.i.i.i.i.i88.i.i.i: ; preds = %for.body.i.i84.i.i.i + %m_ref_count.i.i.i.i.i.i.i89.i.i.i = getelementptr inbounds %class.ast, ptr %914, i64 0, i32 2 + %915 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i89.i.i.i, align 4 + %inc.i.i.i.i.i.i.i90.i.i.i = add i32 %915, 1 + store i32 %inc.i.i.i.i.i.i.i90.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i89.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i: ; preds = %if.then.i.i.i.i.i.i88.i.i.i, %for.body.i.i84.i.i.i + %916 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i.i92.i.i.i = icmp eq ptr %916, null + br i1 %cmp.i.i.i.i92.i.i.i, label %if.then.i210.i.i, label %lor.lhs.false.i.i.i.i93.i.i.i + +lor.lhs.false.i.i.i.i93.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + %arrayidx.i.i.i.i94.i.i.i = getelementptr inbounds i32, ptr %916, i64 -1 + %917 = load i32, ptr %arrayidx.i.i.i.i94.i.i.i, align 4 + %arrayidx4.i.i.i.i95.i.i.i = getelementptr inbounds i32, ptr %916, i64 -2 + %918 = load i32, ptr %arrayidx4.i.i.i.i95.i.i.i, align 4 + %cmp5.i.i.i.i96.i.i.i = icmp eq i32 %917, %918 + br i1 %cmp5.i.i.i.i96.i.i.i, label %if.else.i203.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i + +if.then.i210.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i.i91.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %call.i211.i.i = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + to label %call.i.noexc.i.i226 unwind label %lpad.i105.i.i.i + +call.i.noexc.i.i226: ; preds = %if.then.i210.i.i + store i32 2, ptr %call.i211.i.i, align 4 + %incdec.ptr.i.i.i227 = getelementptr inbounds i32, ptr %call.i211.i.i, i64 1 + store i32 0, ptr %incdec.ptr.i.i.i227, align 4 + %incdec.ptr2.i.i.i228 = getelementptr inbounds i32, ptr %call.i211.i.i, i64 2 + store ptr %incdec.ptr2.i.i.i228, ptr %m_nodes.i.i80.i.i.i, align 8 + br label %.noexc.i106.i.i.i + +if.else.i203.i.i: ; preds = %lor.lhs.false.i.i.i.i93.i.i.i + call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %mul9.i.i.i208 = mul i32 %917, 3 + %add10.i.i.i209 = add i32 %mul9.i.i.i208, 1 + %shr.i.i.i210 = lshr i32 %add10.i.i.i209, 1 + %mul12.i.i.i211 = shl i32 %shr.i.i.i210, 3 + %add13.i.i.i212 = add i32 %mul12.i.i.i211, 8 + %cmp15.not.i.i.i213 = icmp ugt i32 %shr.i.i.i210, %917 + br i1 %cmp15.not.i.i.i213, label %lor.lhs.false.i.i.i219, label %if.then17.i.i.i214 + +lor.lhs.false.i.i.i219: ; preds = %if.else.i203.i.i + %mul6.i.i.i220 = shl i32 %917, 3 + %add7.i.i.i221 = add i32 %mul6.i.i.i220, 8 + %cmp16.not.i.i.i222 = icmp ugt i32 %add13.i.i.i212, %add7.i.i.i221 + br i1 %cmp16.not.i.i.i222, label %if.end.i209.i.i, label %if.then17.i.i.i214 + +if.then17.i.i.i214: ; preds = %lor.lhs.false.i.i.i219, %if.else.i203.i.i + %exception.i.i.i215 = call ptr @__cxa_allocate_exception(i64 40) #15 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #15 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) + to label %invoke.cont.i206.i.i unwind label %cleanup.action.i.i.i216 + +invoke.cont.i206.i.i: ; preds = %if.then17.i.i.i214 + store ptr getelementptr inbounds ({ [6 x ptr] }, ptr @_ZTV17default_exception, i64 0, inrange i32 0, i64 2), ptr %exception.i.i.i215, align 8 + %m_msg.i.i207.i.i = getelementptr inbounds %class.default_exception, ptr %exception.i.i.i215, i64 0, i32 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %m_msg.i.i207.i.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40) #15 + invoke void @__cxa_throw(ptr nonnull %exception.i.i.i215, ptr nonnull @_ZTI17default_exception, ptr nonnull @_ZN17default_exceptionD2Ev) #16 + to label %unreachable.i.i.i218 unwind label %ehcleanup.i208.i.i + +ehcleanup.i208.i.i: ; preds = %invoke.cont.i206.i.i + %919 = landingpad { ptr, i32 } cleanup - call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i195) #15 - br label %ehcleanup.i.i259 - -if.then40.i.i286: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i2009, %invoke.cont.i46.i - %add.ptr41.i.i287 = getelementptr inbounds ptr, ptr %add.ptr.i40.i, i64 1 - %idx.ext42.i.i288 = zext i32 %892 to i64 - %add.ptr43.i.i289 = getelementptr inbounds ptr, ptr %add.ptr41.i.i287, i64 %idx.ext42.i.i288 - br i1 %cmp3.not.i.i2031, label %for.end63.i.i294, label %for.body47.i.i312 - -for.body47.i.i312: ; preds = %if.then40.i.i286, %for.inc61.i.i315 - %indvars.iv2920 = phi i64 [ %indvars.iv.next2921, %for.inc61.i.i315 ], [ 0, %if.then40.i.i286 ] - %j.0.i.i2912902 = phi i32 [ %j.1.i.i316, %for.inc61.i.i315 ], [ 0, %if.then40.i.i286 ] - %917 = load ptr, ptr %585, align 8 - %arrayidx.i56.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i287, i64 %indvars.iv2920 - %918 = load ptr, ptr %arrayidx.i56.i, align 8 - %call50.i.i313 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %917, ptr noundef %918) - to label %invoke.cont49.i.i314 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont49.i.i314: ; preds = %for.body47.i.i312 - br i1 %call50.i.i313, label %invoke.cont56.i.i319, label %for.inc61.i.i315 - -invoke.cont56.i.i319: ; preds = %invoke.cont49.i.i314 - %919 = load ptr, ptr %arrayidx.i56.i, align 8 - %920 = load ptr, ptr %m_nodes.i.i2030, align 8 - %idxprom.i.i1988 = zext i32 %j.0.i.i2912902 to i64 - %arrayidx.i.i1989 = getelementptr inbounds ptr, ptr %920, i64 %idxprom.i.i1988 - %921 = load ptr, ptr %new_pats.i.i194, align 8 - %inc55.i.i320 = add i32 %j.0.i.i2912902, 1 - %tobool.not.i.i1974 = icmp eq ptr %919, null - br i1 %tobool.not.i.i1974, label %_ZN11ast_manager7inc_refEP3ast.exit.i1978, label %if.then.i.i1975 - -if.then.i.i1975: ; preds = %invoke.cont56.i.i319 - %m_ref_count.i.i.i1976 = getelementptr inbounds %class.ast, ptr %919, i64 0, i32 2 - %922 = load i32, ptr %m_ref_count.i.i.i1976, align 4 - %inc.i.i.i1977 = add i32 %922, 1 - store i32 %inc.i.i.i1977, ptr %m_ref_count.i.i.i1976, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i1978 - -_ZN11ast_manager7inc_refEP3ast.exit.i1978: ; preds = %if.then.i.i1975, %invoke.cont56.i.i319 - %923 = load ptr, ptr %arrayidx.i.i1989, align 8 - %tobool.not.i2.i1979 = icmp eq ptr %923, null - br i1 %tobool.not.i2.i1979, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1986, label %if.then.i3.i1980 - -if.then.i3.i1980: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1978 - %m_ref_count.i.i4.i1981 = getelementptr inbounds %class.ast, ptr %923, i64 0, i32 2 - %924 = load i32, ptr %m_ref_count.i.i4.i1981, align 4 - %dec.i.i.i1982 = add i32 %924, -1 - store i32 %dec.i.i.i1982, ptr %m_ref_count.i.i4.i1981, align 4 - %cmp.i.i1983 = icmp eq i32 %dec.i.i.i1982, 0 - br i1 %cmp.i.i1983, label %if.then2.i.i1984, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1986 - -if.then2.i.i1984: ; preds = %if.then.i3.i1980 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %921, ptr noundef nonnull %923) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1986 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1986: ; preds = %if.then2.i.i1984, %_ZN11ast_manager7inc_refEP3ast.exit.i1978, %if.then.i3.i1980 - store ptr %919, ptr %arrayidx.i.i1989, align 8 - br label %for.inc61.i.i315 - -lpad37.i.i262.loopexit: ; preds = %if.then2.i.i.i.i.i1866 - %lpad.loopexit2839 = landingpad { ptr, i32 } + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i.i.i40) #15 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #15 + br label %lpad.i105.i.body.i.i + +cleanup.action.i.i.i216: ; preds = %if.then17.i.i.i214 + %920 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp18.i.i.i41) #15 + call void @__cxa_free_exception(ptr %exception.i.i.i215) #15 + br label %lpad.i105.i.body.i.i + +if.end.i209.i.i: ; preds = %lor.lhs.false.i.i.i219 + %conv24.i.i.i223 = zext i32 %add13.i.i.i212 to i64 + %call25.i212.i.i = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i.i.i95.i.i.i, i64 noundef %conv24.i.i.i223) + to label %call25.i.noexc.i.i224 unwind label %lpad.i105.i.i.i + +call25.i.noexc.i.i224: ; preds = %if.end.i209.i.i + %add.ptr26.i.i.i225 = getelementptr inbounds i32, ptr %call25.i212.i.i, i64 2 + store ptr %add.ptr26.i.i.i225, ptr %m_nodes.i.i80.i.i.i, align 8 + store i32 %shr.i.i.i210, ptr %call25.i212.i.i, align 4 + br label %.noexc.i106.i.i.i + +unreachable.i.i.i218: ; preds = %invoke.cont.i206.i.i + unreachable -lpad37.i.i262.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1925 - %lpad.loopexit2842 = landingpad { ptr, i32 } +.noexc.i106.i.i.i: ; preds = %call25.i.noexc.i.i224, %call.i.noexc.i.i226 + %.pre.i.i.i.i107.i.i.i = phi ptr [ %add.ptr26.i.i.i225, %call25.i.noexc.i.i224 ], [ %incdec.ptr2.i.i.i228, %call.i.noexc.i.i226 ] + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i.i40) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp18.i.i.i41) + %arrayidx8.phi.trans.insert.i.i.i.i108.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i.i107.i.i.i, i64 -1 + %.pre1.i.i.i.i109.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i.i108.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i: ; preds = %.noexc.i106.i.i.i, %lor.lhs.false.i.i.i.i93.i.i.i + %921 = phi i32 [ %.pre1.i.i.i.i109.i.i.i, %.noexc.i106.i.i.i ], [ %917, %lor.lhs.false.i.i.i.i93.i.i.i ] + %922 = phi ptr [ %.pre.i.i.i.i107.i.i.i, %.noexc.i106.i.i.i ], [ %916, %lor.lhs.false.i.i.i.i93.i.i.i ] + %idx.ext.i.i.i.i98.i.i.i = zext i32 %921 to i64 + %add.ptr.i.i.i.i99.i.i.i = getelementptr inbounds ptr, ptr %922, i64 %idx.ext.i.i.i.i98.i.i.i + store ptr %914, ptr %add.ptr.i.i.i.i99.i.i.i, align 8 + %923 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %arrayidx10.i.i.i.i100.i.i.i = getelementptr inbounds i32, ptr %923, i64 -1 + %924 = load i32, ptr %arrayidx10.i.i.i.i100.i.i.i, align 4 + %inc.i.i.i.i101.i.i.i = add i32 %924, 1 + store i32 %inc.i.i.i.i101.i.i.i, ptr %arrayidx10.i.i.i.i100.i.i.i, align 4 + %indvars.iv.next.i.i102.i.i.i = add nuw nsw i64 %indvars.iv.i.i85.i.i.i, 1 + %exitcond.not.i.i103.i.i.i = icmp eq i64 %indvars.iv.next.i.i102.i.i.i, %wide.trip.count.i.i83.i.i.i + br i1 %exitcond.not.i.i103.i.i.i, label %if.then40.i.i.i153, label %for.body.i.i84.i.i.i, !llvm.loop !15 + +lpad.i105.i.i.i: ; preds = %if.end.i209.i.i, %if.then.i210.i.i + %925 = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad.i105.i.body.i.i + +lpad.i105.i.body.i.i: ; preds = %lpad.i105.i.i.i, %cleanup.action.i.i.i216, %ehcleanup.i208.i.i + %eh.lpad-body.i.i217 = phi { ptr, i32 } [ %925, %lpad.i105.i.i.i ], [ %919, %ehcleanup.i208.i.i ], [ %920, %cleanup.action.i.i.i216 ] + call void @_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i43) #15 + br label %ehcleanup.i.i.i161 + +if.then40.i.i.i153: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i.i97.i.i.i, %invoke.cont.i56.i.i + %add.ptr41.i.i.i154 = getelementptr inbounds ptr, ptr %add.ptr.i45.i.i, i64 1 + %idx.ext42.i.i.i155 = zext i32 %897 to i64 + %add.ptr43.i.i.i156 = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i154, i64 %idx.ext42.i.i.i155 + br i1 %cmp3.not.i.i.i.i.i137, label %for.end63.i.i.i166, label %for.body47.i.i.i157 + +for.body47.i.i.i157: ; preds = %if.then40.i.i.i153, %for.inc61.i.i.i163 + %indvars.iv.i.i.i158 = phi i64 [ %indvars.iv.next.i.i.i165, %for.inc61.i.i.i163 ], [ 0, %if.then40.i.i.i153 ] + %j.0329.i.i.i = phi i32 [ %j.1.i.i.i164, %for.inc61.i.i.i163 ], [ 0, %if.then40.i.i.i153 ] + %926 = load ptr, ptr %586, align 8 + %arrayidx.i57.i.i = getelementptr inbounds ptr, ptr %add.ptr41.i.i.i154, i64 %indvars.iv.i.i.i158 + %927 = load ptr, ptr %arrayidx.i57.i.i, align 8 + %call50.i.i.i159 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %926, ptr noundef %927) + to label %invoke.cont49.i.i.i162 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 + +invoke.cont49.i.i.i162: ; preds = %for.body47.i.i.i157 + br i1 %call50.i.i.i159, label %invoke.cont56.i.i.i202, label %for.inc61.i.i.i163 + +invoke.cont56.i.i.i202: ; preds = %invoke.cont49.i.i.i162 + %928 = load ptr, ptr %arrayidx.i57.i.i, align 8 + %929 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %idxprom.i.i112.i.i.i = zext i32 %j.0329.i.i.i to i64 + %arrayidx.i.i113.i.i.i = getelementptr inbounds ptr, ptr %929, i64 %idxprom.i.i112.i.i.i + %930 = load ptr, ptr %new_pats.i.i.i42, align 8 + %inc55.i.i.i203 = add i32 %j.0329.i.i.i, 1 + %tobool.not.i.i.i113.i.i = icmp eq ptr %928, null + br i1 %tobool.not.i.i.i113.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i, label %if.then.i.i.i114.i.i + +if.then.i.i.i114.i.i: ; preds = %invoke.cont56.i.i.i202 + %m_ref_count.i.i.i.i115.i.i = getelementptr inbounds %class.ast, ptr %928, i64 0, i32 2 + %931 = load i32, ptr %m_ref_count.i.i.i.i115.i.i, align 4 + %inc.i.i.i.i116.i.i = add i32 %931, 1 + store i32 %inc.i.i.i.i116.i.i, ptr %m_ref_count.i.i.i.i115.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i: ; preds = %if.then.i.i.i114.i.i, %invoke.cont56.i.i.i202 + %932 = load ptr, ptr %arrayidx.i.i113.i.i.i, align 8 + %tobool.not.i2.i.i.i.i204 = icmp eq ptr %932, null + br i1 %tobool.not.i2.i.i.i.i204, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207, label %if.then.i3.i.i.i.i205 + +if.then.i3.i.i.i.i205: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i + %m_ref_count.i.i4.i.i.i.i206 = getelementptr inbounds %class.ast, ptr %932, i64 0, i32 2 + %933 = load i32, ptr %m_ref_count.i.i4.i.i.i.i206, align 4 + %dec.i.i.i.i.i45.i = add i32 %933, -1 + store i32 %dec.i.i.i.i.i45.i, ptr %m_ref_count.i.i4.i.i.i.i206, align 4 + %cmp.i.i.i118.i.i = icmp eq i32 %dec.i.i.i.i.i45.i, 0 + br i1 %cmp.i.i.i118.i.i, label %if.then2.i.i.i.i46.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207 + +if.then2.i.i.i.i46.i: ; preds = %if.then.i3.i.i.i.i205 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %930, ptr noundef nonnull %932) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207: ; preds = %if.then2.i.i.i.i46.i, %if.then.i3.i.i.i.i205, %_ZN11ast_manager7inc_refEP3ast.exit.i.i117.i.i + store ptr %928, ptr %arrayidx.i.i113.i.i.i, align 8 + br label %for.inc61.i.i.i163 + +lpad37.loopexit.i.i.i195: ; preds = %if.then2.i.i.i.i.i218.i.i.i + %lpad.loopexit.i101.i.i = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body68.i.i300, %if.then2.i.i1939 - %lpad.loopexit2845 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.i.i.i198: ; preds = %if.then2.i.i.i.i.i167.i.i.i + %lpad.loopexit314.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then2.i.i.i.i.i1970 - %lpad.loopexit2848 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173: ; preds = %if.then2.i.i141.i.i.i, %for.body68.i.i.i170 + %lpad.loopexit317.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body47.i.i312, %if.then2.i.i1984 - %lpad.loopexit2851 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201: ; preds = %if.then2.i.i.i.i.i.i112.i.i + %lpad.loopexit319.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 + br label %lpad37.i.i.i -lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then96.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit1805, %if.then2.i.i.i1785, %if.then2.i.i.i1795, %if.then.i1799, %if.then.i.i1836, %if.then2.i.i.i1881, %if.then2.i.i.i1895 - %lpad.loopexit.split-lp2852 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160: ; preds = %if.then2.i.i.i.i46.i, %for.body47.i.i.i157 + %lpad.loopexit322.i.i.i = landingpad { ptr, i32 } cleanup - br label %lpad37.i.i262 - -lpad37.i.i262: ; preds = %lpad37.i.i262.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad37.i.i262.loopexit - %lpad.phi2841 = phi { ptr, i32 } [ %lpad.loopexit2839, %lpad37.i.i262.loopexit ], [ %lpad.loopexit2842, %lpad37.i.i262.loopexit.split-lp.loopexit ], [ %lpad.loopexit2845, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2848, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit2851, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp2852, %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i195) #15 - br label %ehcleanup.i.i259 - -for.inc61.i.i315: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1986, %invoke.cont49.i.i314 - %j.1.i.i316 = phi i32 [ %inc55.i.i320, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1986 ], [ %j.0.i.i2912902, %invoke.cont49.i.i314 ] - %indvars.iv.next2921 = add nuw nsw i64 %indvars.iv2920, 1 - %exitcond2924.not = icmp eq i64 %indvars.iv.next2921, %idx.ext42.i.i288 - br i1 %exitcond2924.not, label %for.end63.i.i294, label %for.body47.i.i312, !llvm.loop !22 - -for.end63.i.i294: ; preds = %for.inc61.i.i315, %if.then40.i.i286 - %j.0.i.i291.lcssa = phi i32 [ 0, %if.then40.i.i286 ], [ %j.1.i.i316, %for.inc61.i.i315 ] - %925 = load ptr, ptr %m_nodes.i.i2030, align 8 - %cmp.i.i.i1948 = icmp eq ptr %925, null - br i1 %cmp.i.i.i1948, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1972, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1949 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1949: ; preds = %for.end63.i.i294 - %arrayidx.i.i.i1952 = getelementptr inbounds i32, ptr %925, i64 -1 - %926 = load i32, ptr %arrayidx.i.i.i1952, align 4 - %927 = zext i32 %926 to i64 - %add.ptr.i.i1953 = getelementptr inbounds ptr, ptr %925, i64 %927 - %cmp3.i.i1954 = icmp ugt i32 %926, %j.0.i.i291.lcssa - br i1 %cmp3.i.i1954, label %for.body.i.i1957.preheader, label %if.then.i.i1955 - -for.body.i.i1957.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1949 - %idx.ext.i1950 = zext i32 %j.0.i.i291.lcssa to i64 - %add.ptr.i1951 = getelementptr inbounds ptr, ptr %925, i64 %idx.ext.i1950 - br label %for.body.i.i1957 - -for.body.i.i1957: ; preds = %for.body.i.i1957.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1964 - %it.04.i.i1958 = phi ptr [ %incdec.ptr.i.i1965, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1964 ], [ %add.ptr.i1951, %for.body.i.i1957.preheader ] - %928 = load ptr, ptr %it.04.i.i1958, align 8 - %929 = load ptr, ptr %new_pats.i.i194, align 8 - %tobool.not.i.i.i.i.i1959 = icmp eq ptr %928, null - br i1 %tobool.not.i.i.i.i.i1959, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1964, label %if.then.i.i.i.i.i1960 - -if.then.i.i.i.i.i1960: ; preds = %for.body.i.i1957 - %m_ref_count.i.i.i.i.i.i1961 = getelementptr inbounds %class.ast, ptr %928, i64 0, i32 2 - %930 = load i32, ptr %m_ref_count.i.i.i.i.i.i1961, align 4 - %dec.i.i.i.i.i.i1962 = add i32 %930, -1 - store i32 %dec.i.i.i.i.i.i1962, ptr %m_ref_count.i.i.i.i.i.i1961, align 4 - %cmp.i.i.i.i.i1963 = icmp eq i32 %dec.i.i.i.i.i.i1962, 0 - br i1 %cmp.i.i.i.i.i1963, label %if.then2.i.i.i.i.i1970, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1964 - -if.then2.i.i.i.i.i1970: ; preds = %if.then.i.i.i.i.i1960 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %929, ptr noundef nonnull %928) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1964 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1964: ; preds = %if.then2.i.i.i.i.i1970, %if.then.i.i.i.i.i1960, %for.body.i.i1957 - %incdec.ptr.i.i1965 = getelementptr inbounds ptr, ptr %it.04.i.i1958, i64 1 - %cmp.i.i1966 = icmp ult ptr %incdec.ptr.i.i1965, %add.ptr.i.i1953 - br i1 %cmp.i.i1966, label %for.body.i.i1957, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1967, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1967: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1964 - %.pre.i1968 = load ptr, ptr %m_nodes.i.i2030, align 8 - %tobool.not.i.i1969 = icmp eq ptr %.pre.i1968, null - br i1 %tobool.not.i.i1969, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1972, label %if.then.i.i1955 - -if.then.i.i1955: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1967, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1949 - %931 = phi ptr [ %.pre.i1968, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1967 ], [ %925, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1949 ] - %arrayidx.i.i1956 = getelementptr inbounds i32, ptr %931, i64 -1 - store i32 %j.0.i.i291.lcssa, ptr %arrayidx.i.i1956, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1972 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1972: ; preds = %for.end63.i.i294, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1967, %if.then.i.i1955 - br i1 %cmp3.not.i.i1993, label %for.end86.i.i299, label %for.body68.i.i300.preheader - -for.body68.i.i300.preheader: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1972 - %wide.trip.count2928 = zext i32 %893 to i64 - br label %for.body68.i.i300 - -for.body68.i.i300: ; preds = %for.body68.i.i300.preheader, %for.inc84.i.i304 - %indvars.iv2925 = phi i64 [ 0, %for.body68.i.i300.preheader ], [ %indvars.iv.next2926, %for.inc84.i.i304 ] - %j.2.i.i2962906 = phi i32 [ 0, %for.body68.i.i300.preheader ], [ %j.3.i.i305, %for.inc84.i.i304 ] - %932 = load ptr, ptr %585, align 8 - %arrayidx71.i.i302 = getelementptr inbounds ptr, ptr %add.ptr43.i.i289, i64 %indvars.iv2925 - %933 = load ptr, ptr %arrayidx71.i.i302, align 8 - %call73.i54.i = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %932, ptr noundef %933) - to label %invoke.cont72.i.i303 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit - -invoke.cont72.i.i303: ; preds = %for.body68.i.i300 - br i1 %call73.i54.i, label %invoke.cont79.i.i309, label %for.inc84.i.i304 - -invoke.cont79.i.i309: ; preds = %invoke.cont72.i.i303 - %934 = load ptr, ptr %arrayidx71.i.i302, align 8 - %935 = load ptr, ptr %m_nodes.i.i1992, align 8 - %idxprom.i.i1943 = zext i32 %j.2.i.i2962906 to i64 - %arrayidx.i.i1944 = getelementptr inbounds ptr, ptr %935, i64 %idxprom.i.i1943 - %936 = load ptr, ptr %new_no_pats.i.i195, align 8 - %inc78.i.i310 = add i32 %j.2.i.i2962906, 1 - %tobool.not.i.i1929 = icmp eq ptr %934, null - br i1 %tobool.not.i.i1929, label %_ZN11ast_manager7inc_refEP3ast.exit.i1933, label %if.then.i.i1930 - -if.then.i.i1930: ; preds = %invoke.cont79.i.i309 - %m_ref_count.i.i.i1931 = getelementptr inbounds %class.ast, ptr %934, i64 0, i32 2 - %937 = load i32, ptr %m_ref_count.i.i.i1931, align 4 - %inc.i.i.i1932 = add i32 %937, 1 - store i32 %inc.i.i.i1932, ptr %m_ref_count.i.i.i1931, align 4 - br label %_ZN11ast_manager7inc_refEP3ast.exit.i1933 - -_ZN11ast_manager7inc_refEP3ast.exit.i1933: ; preds = %if.then.i.i1930, %invoke.cont79.i.i309 - %938 = load ptr, ptr %arrayidx.i.i1944, align 8 - %tobool.not.i2.i1934 = icmp eq ptr %938, null - br i1 %tobool.not.i2.i1934, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1941, label %if.then.i3.i1935 - -if.then.i3.i1935: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1933 - %m_ref_count.i.i4.i1936 = getelementptr inbounds %class.ast, ptr %938, i64 0, i32 2 - %939 = load i32, ptr %m_ref_count.i.i4.i1936, align 4 - %dec.i.i.i1937 = add i32 %939, -1 - store i32 %dec.i.i.i1937, ptr %m_ref_count.i.i4.i1936, align 4 - %cmp.i.i1938 = icmp eq i32 %dec.i.i.i1937, 0 - br i1 %cmp.i.i1938, label %if.then2.i.i1939, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1941 - -if.then2.i.i1939: ; preds = %if.then.i3.i1935 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %936, ptr noundef nonnull %938) - to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1941 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit - -_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1941: ; preds = %if.then2.i.i1939, %_ZN11ast_manager7inc_refEP3ast.exit.i1933, %if.then.i3.i1935 - store ptr %934, ptr %arrayidx.i.i1944, align 8 - br label %for.inc84.i.i304 - -for.inc84.i.i304: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1941, %invoke.cont72.i.i303 - %j.3.i.i305 = phi i32 [ %inc78.i.i310, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit1941 ], [ %j.2.i.i2962906, %invoke.cont72.i.i303 ] - %indvars.iv.next2926 = add nuw nsw i64 %indvars.iv2925, 1 - %exitcond2929.not = icmp eq i64 %indvars.iv.next2926, %wide.trip.count2928 - br i1 %exitcond2929.not, label %for.end86.i.i299, label %for.body68.i.i300, !llvm.loop !23 - -for.end86.i.i299: ; preds = %for.inc84.i.i304, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1972 - %j.2.i.i296.lcssa = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit1972 ], [ %j.3.i.i305, %for.inc84.i.i304 ] - %940 = load ptr, ptr %m_nodes.i.i1992, align 8 - %cmp.i.i.i1903 = icmp eq ptr %940, null - br i1 %cmp.i.i.i1903, label %if.then92.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1904 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1904: ; preds = %for.end86.i.i299 - %arrayidx.i.i.i1907 = getelementptr inbounds i32, ptr %940, i64 -1 - %941 = load i32, ptr %arrayidx.i.i.i1907, align 4 - %942 = zext i32 %941 to i64 - %add.ptr.i.i1908 = getelementptr inbounds ptr, ptr %940, i64 %942 - %cmp3.i.i1909 = icmp ugt i32 %941, %j.2.i.i296.lcssa - br i1 %cmp3.i.i1909, label %for.body.i.i1912.preheader, label %if.then.i.i1910 - -for.body.i.i1912.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1904 - %idx.ext.i1905 = zext i32 %j.2.i.i296.lcssa to i64 - %add.ptr.i1906 = getelementptr inbounds ptr, ptr %940, i64 %idx.ext.i1905 - br label %for.body.i.i1912 - -for.body.i.i1912: ; preds = %for.body.i.i1912.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1919 - %it.04.i.i1913 = phi ptr [ %incdec.ptr.i.i1920, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1919 ], [ %add.ptr.i1906, %for.body.i.i1912.preheader ] - %943 = load ptr, ptr %it.04.i.i1913, align 8 - %944 = load ptr, ptr %new_no_pats.i.i195, align 8 - %tobool.not.i.i.i.i.i1914 = icmp eq ptr %943, null - br i1 %tobool.not.i.i.i.i.i1914, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1919, label %if.then.i.i.i.i.i1915 - -if.then.i.i.i.i.i1915: ; preds = %for.body.i.i1912 - %m_ref_count.i.i.i.i.i.i1916 = getelementptr inbounds %class.ast, ptr %943, i64 0, i32 2 - %945 = load i32, ptr %m_ref_count.i.i.i.i.i.i1916, align 4 - %dec.i.i.i.i.i.i1917 = add i32 %945, -1 - store i32 %dec.i.i.i.i.i.i1917, ptr %m_ref_count.i.i.i.i.i.i1916, align 4 - %cmp.i.i.i.i.i1918 = icmp eq i32 %dec.i.i.i.i.i.i1917, 0 - br i1 %cmp.i.i.i.i.i1918, label %if.then2.i.i.i.i.i1925, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1919 - -if.then2.i.i.i.i.i1925: ; preds = %if.then.i.i.i.i.i1915 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %944, ptr noundef nonnull %943) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1919 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1919: ; preds = %if.then2.i.i.i.i.i1925, %if.then.i.i.i.i.i1915, %for.body.i.i1912 - %incdec.ptr.i.i1920 = getelementptr inbounds ptr, ptr %it.04.i.i1913, i64 1 - %cmp.i.i1921 = icmp ult ptr %incdec.ptr.i.i1920, %add.ptr.i.i1908 - br i1 %cmp.i.i1921, label %for.body.i.i1912, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1922, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1922: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1919 - %.pre.i1923 = load ptr, ptr %m_nodes.i.i1992, align 8 - %tobool.not.i.i1924 = icmp eq ptr %.pre.i1923, null - br i1 %tobool.not.i.i1924, label %if.then92.i.i, label %if.then.i.i1910 - -if.then.i.i1910: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1922, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1904 - %946 = phi ptr [ %.pre.i1923, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1922 ], [ %940, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1904 ] - %arrayidx.i.i1911 = getelementptr inbounds i32, ptr %946, i64 -1 - store i32 %j.2.i.i296.lcssa, ptr %arrayidx.i.i1911, align 4 - br label %if.then92.i.i - -if.then92.i.i: ; preds = %for.end86.i.i299, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1922, %if.then.i.i1910 - %bf.load93.i.i = load i32, ptr %625, align 8 - %947 = and i32 %bf.load93.i.i, 2 - %tobool.not.i.i270 = icmp eq i32 %947, 0 - br i1 %tobool.not.i.i270, label %if.else.i.i284, label %if.then96.i.i - -if.then96.i.i: ; preds = %if.then92.i.i - %this.val.i50.i = load ptr, ptr %585, align 8 - %948 = load ptr, ptr %m_nodes.i.i2030, align 8 - %949 = load ptr, ptr %m_nodes.i.i1992, align 8 - %call101.i.i272 = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i50.i, ptr noundef nonnull %623, i32 noundef %j.0.i.i291.lcssa, ptr noundef %948, i32 noundef %j.2.i.i296.lcssa, ptr noundef %949, ptr noundef %891) - to label %invoke.cont100.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont100.i.i: ; preds = %if.then96.i.i - %tobool.not.i1884 = icmp eq ptr %call101.i.i272, null - br i1 %tobool.not.i1884, label %if.end.i1888, label %_ZN11ast_manager7inc_refEP3ast.exit.i1885 - -_ZN11ast_manager7inc_refEP3ast.exit.i1885: ; preds = %invoke.cont100.i.i - %m_ref_count.i.i.i1886 = getelementptr inbounds %class.ast, ptr %call101.i.i272, i64 0, i32 2 - %950 = load i32, ptr %m_ref_count.i.i.i1886, align 4 - %inc.i.i.i1887 = add i32 %950, 1 - store i32 %inc.i.i.i1887, ptr %m_ref_count.i.i.i1886, align 4 - br label %if.end.i1888 - -if.end.i1888: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1885, %invoke.cont100.i.i - %951 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i1889 = icmp eq ptr %951, null - br i1 %tobool.not.i3.i1889, label %if.end109.i.i, label %if.then.i.i.i1890 - -if.then.i.i.i1890: ; preds = %if.end.i1888 - %952 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i1892 = getelementptr inbounds %class.ast, ptr %951, i64 0, i32 2 - %953 = load i32, ptr %m_ref_count.i.i.i.i1892, align 4 - %dec.i.i.i.i1893 = add i32 %953, -1 - store i32 %dec.i.i.i.i1893, ptr %m_ref_count.i.i.i.i1892, align 4 - %cmp.i.i.i1894 = icmp eq i32 %dec.i.i.i.i1893, 0 - br i1 %cmp.i.i.i1894, label %if.then2.i.i.i1895, label %if.end109.i.i - -if.then2.i.i.i1895: ; preds = %if.then.i.i.i1890 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %952, ptr noundef nonnull %951) - to label %if.end109.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.else.i.i284: ; preds = %if.then92.i.i - %tobool.not.i1870 = icmp eq ptr %623, null - br i1 %tobool.not.i1870, label %if.end.i1874, label %_ZN11ast_manager7inc_refEP3ast.exit.i1871 - -_ZN11ast_manager7inc_refEP3ast.exit.i1871: ; preds = %if.else.i.i284 - %m_ref_count.i.i.i1872 = getelementptr inbounds %class.ast, ptr %623, i64 0, i32 2 - %954 = load i32, ptr %m_ref_count.i.i.i1872, align 4 - %inc.i.i.i1873 = add i32 %954, 1 - store i32 %inc.i.i.i1873, ptr %m_ref_count.i.i.i1872, align 4 - br label %if.end.i1874 - -if.end.i1874: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i1871, %if.else.i.i284 - %955 = load ptr, ptr %m_r.i48.i, align 8 - %tobool.not.i3.i1875 = icmp eq ptr %955, null - br i1 %tobool.not.i3.i1875, label %if.end109.i.i, label %if.then.i.i.i1876 - -if.then.i.i.i1876: ; preds = %if.end.i1874 - %956 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i1878 = getelementptr inbounds %class.ast, ptr %955, i64 0, i32 2 - %957 = load i32, ptr %m_ref_count.i.i.i.i1878, align 4 - %dec.i.i.i.i1879 = add i32 %957, -1 - store i32 %dec.i.i.i.i1879, ptr %m_ref_count.i.i.i.i1878, align 4 - %cmp.i.i.i1880 = icmp eq i32 %dec.i.i.i.i1879, 0 - br i1 %cmp.i.i.i1880, label %if.then2.i.i.i1881, label %if.end109.i.i - -if.then2.i.i.i1881: ; preds = %if.then.i.i.i1876 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %956, ptr noundef nonnull %955) - to label %if.end109.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -if.end109.i.i: ; preds = %if.then.i.i.i1876, %if.end.i1874, %if.then2.i.i.i1881, %if.then.i.i.i1890, %if.end.i1888, %if.then2.i.i.i1895 - %storemerge2833 = phi ptr [ %call101.i.i272, %if.then2.i.i.i1895 ], [ %call101.i.i272, %if.end.i1888 ], [ %call101.i.i272, %if.then.i.i.i1890 ], [ %623, %if.then2.i.i.i1881 ], [ %623, %if.end.i1874 ], [ %623, %if.then.i.i.i1876 ] - store ptr %storemerge2833, ptr %m_r.i48.i, align 8 - %958 = load i32, ptr %m_spos.i38.i, align 4 - %959 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i.i1844 = icmp eq ptr %959, null - br i1 %cmp.i.i.i1844, label %invoke.cont112.i.i273, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1845 - -_ZN6vectorIP4exprLb0EjE3endEv.exit.i1845: ; preds = %if.end109.i.i - %arrayidx.i.i.i1848 = getelementptr inbounds i32, ptr %959, i64 -1 - %960 = load i32, ptr %arrayidx.i.i.i1848, align 4 - %961 = zext i32 %960 to i64 - %add.ptr.i.i1849 = getelementptr inbounds ptr, ptr %959, i64 %961 - %cmp3.i.i1850 = icmp ugt i32 %960, %958 - br i1 %cmp3.i.i1850, label %for.body.i.i1853.preheader, label %if.then.i.i1851 - -for.body.i.i1853.preheader: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1845 - %idx.ext.i1846 = zext i32 %958 to i64 - %add.ptr.i1847 = getelementptr inbounds ptr, ptr %959, i64 %idx.ext.i1846 - br label %for.body.i.i1853 - -for.body.i.i1853: ; preds = %for.body.i.i1853.preheader, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1860 - %it.04.i.i1854 = phi ptr [ %incdec.ptr.i.i1861, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1860 ], [ %add.ptr.i1847, %for.body.i.i1853.preheader ] - %962 = load ptr, ptr %it.04.i.i1854, align 8 - %963 = load ptr, ptr %m_result_stack.i2070, align 8 - %tobool.not.i.i.i.i.i1855 = icmp eq ptr %962, null - br i1 %tobool.not.i.i.i.i.i1855, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1860, label %if.then.i.i.i.i.i1856 - -if.then.i.i.i.i.i1856: ; preds = %for.body.i.i1853 - %m_ref_count.i.i.i.i.i.i1857 = getelementptr inbounds %class.ast, ptr %962, i64 0, i32 2 - %964 = load i32, ptr %m_ref_count.i.i.i.i.i.i1857, align 4 - %dec.i.i.i.i.i.i1858 = add i32 %964, -1 - store i32 %dec.i.i.i.i.i.i1858, ptr %m_ref_count.i.i.i.i.i.i1857, align 4 - %cmp.i.i.i.i.i1859 = icmp eq i32 %dec.i.i.i.i.i.i1858, 0 - br i1 %cmp.i.i.i.i.i1859, label %if.then2.i.i.i.i.i1866, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1860 - -if.then2.i.i.i.i.i1866: ; preds = %if.then.i.i.i.i.i1856 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %963, ptr noundef nonnull %962) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1860 unwind label %lpad37.i.i262.loopexit - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1860: ; preds = %if.then2.i.i.i.i.i1866, %if.then.i.i.i.i.i1856, %for.body.i.i1853 - %incdec.ptr.i.i1861 = getelementptr inbounds ptr, ptr %it.04.i.i1854, i64 1 - %cmp.i.i1862 = icmp ult ptr %incdec.ptr.i.i1861, %add.ptr.i.i1849 - br i1 %cmp.i.i1862, label %for.body.i.i1853, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1863, !llvm.loop !6 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1863: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i1860 - %.pre.i1864 = load ptr, ptr %m_nodes.i.i433, align 8 - %tobool.not.i.i1865 = icmp eq ptr %.pre.i1864, null - br i1 %tobool.not.i.i1865, label %invoke.cont112.i.i273thread-pre-split, label %if.then.i.i1851 - -if.then.i.i1851: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1863, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1845 - %965 = phi ptr [ %.pre.i1864, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1863 ], [ %959, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i1845 ] - %arrayidx.i.i1852 = getelementptr inbounds i32, ptr %965, i64 -1 - store i32 %958, ptr %arrayidx.i.i1852, align 4 - br label %invoke.cont112.i.i273thread-pre-split - -invoke.cont112.i.i273thread-pre-split: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i1863, %if.then.i.i1851 - %.pr2951 = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont112.i.i273 - -invoke.cont112.i.i273: ; preds = %invoke.cont112.i.i273thread-pre-split, %if.end109.i.i - %966 = phi ptr [ %.pr2951, %invoke.cont112.i.i273thread-pre-split ], [ %storemerge2833, %if.end109.i.i ] - %tobool.not.i.i.i.i1821 = icmp eq ptr %966, null - br i1 %tobool.not.i.i.i.i1821, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1825, label %if.then.i.i.i.i1822 - -if.then.i.i.i.i1822: ; preds = %invoke.cont112.i.i273 - %m_ref_count.i.i.i.i.i1823 = getelementptr inbounds %class.ast, ptr %966, i64 0, i32 2 - %967 = load i32, ptr %m_ref_count.i.i.i.i.i1823, align 4 - %inc.i.i.i.i.i1824 = add i32 %967, 1 - store i32 %inc.i.i.i.i.i1824, ptr %m_ref_count.i.i.i.i.i1823, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1825 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1825: ; preds = %if.then.i.i.i.i1822, %invoke.cont112.i.i273 - %968 = load ptr, ptr %m_nodes.i.i433, align 8 - %cmp.i.i1827 = icmp eq ptr %968, null - br i1 %cmp.i.i1827, label %if.then.i.i1836, label %lor.lhs.false.i.i1828 - -lor.lhs.false.i.i1828: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1825 - %arrayidx.i.i1829 = getelementptr inbounds i32, ptr %968, i64 -1 - %969 = load i32, ptr %arrayidx.i.i1829, align 4 - %arrayidx4.i.i1830 = getelementptr inbounds i32, ptr %968, i64 -2 - %970 = load i32, ptr %arrayidx4.i.i1830, align 4 - %cmp5.i.i1831 = icmp eq i32 %969, %970 - br i1 %cmp5.i.i1831, label %if.then.i.i1836, label %invoke.cont116.i.i277 - -if.then.i.i1836: ; preds = %lor.lhs.false.i.i1828, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i1825 - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i433) - to label %.noexc1840 unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -.noexc1840: ; preds = %if.then.i.i1836 - %.pre.i.i1837 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx8.phi.trans.insert.i.i1838 = getelementptr inbounds i32, ptr %.pre.i.i1837, i64 -1 - %.pre1.i.i1839 = load i32, ptr %arrayidx8.phi.trans.insert.i.i1838, align 4 - br label %invoke.cont116.i.i277 - -invoke.cont116.i.i277: ; preds = %.noexc1840, %lor.lhs.false.i.i1828 - %971 = phi i32 [ %.pre1.i.i1839, %.noexc1840 ], [ %969, %lor.lhs.false.i.i1828 ] - %972 = phi ptr [ %.pre.i.i1837, %.noexc1840 ], [ %968, %lor.lhs.false.i.i1828 ] - %idx.ext.i.i1832 = zext i32 %971 to i64 - %add.ptr.i.i1833 = getelementptr inbounds ptr, ptr %972, i64 %idx.ext.i.i1832 - store ptr %966, ptr %add.ptr.i.i1833, align 8 - %973 = load ptr, ptr %m_nodes.i.i433, align 8 - %arrayidx10.i.i1834 = getelementptr inbounds i32, ptr %973, i64 -1 - %974 = load i32, ptr %arrayidx10.i.i1834, align 4 - %inc.i.i1835 = add i32 %974, 1 - store i32 %inc.i.i1835, ptr %arrayidx10.i.i1834, align 4 - %975 = load ptr, ptr %m_bindings.i66.i, align 8 - %cmp.i1816 = icmp eq ptr %975, null - br i1 %cmp.i1816, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1815, label %if.then.i1812 - -if.then.i1812: ; preds = %invoke.cont116.i.i277 - %arrayidx.i1818 = getelementptr inbounds i32, ptr %975, i64 -1 - %976 = load i32, ptr %arrayidx.i1818, align 4 - %sub.i51.i = sub i32 %976, %861 - store i32 %sub.i51.i, ptr %arrayidx.i1818, align 4 - br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1815 - -_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1815: ; preds = %invoke.cont116.i.i277, %if.then.i1812 - %977 = load ptr, ptr %m_shifts.i70.i, align 8 - %cmp.i1806 = icmp eq ptr %977, null - br i1 %cmp.i1806, label %_ZN6vectorIjLb0EjE6shrinkEj.exit1805, label %if.then.i1802 - -if.then.i1802: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1815 - %arrayidx.i1808 = getelementptr inbounds i32, ptr %977, i64 -1 - %978 = load i32, ptr %arrayidx.i1808, align 4 - %sub124.i.i = sub i32 %978, %861 - store i32 %sub124.i.i, ptr %arrayidx.i1808, align 4 - br label %_ZN6vectorIjLb0EjE6shrinkEj.exit1805 - -_ZN6vectorIjLb0EjE6shrinkEj.exit1805: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit1815, %if.then.i1802 - invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) - to label %invoke.cont125.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont125.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit1805 - %979 = load ptr, ptr %m_r.i48.i, align 8 - %bf.load130.i.i = load i32, ptr %625, align 8 - %bf.clear131.i.i = and i32 %bf.load130.i.i, 1 - %tobool132.i.i.not = icmp eq i32 %bf.clear131.i.i, 0 - br i1 %tobool132.i.i.not, label %invoke.cont133.i.i, label %if.then.i1799 - -if.then.i1799: ; preds = %invoke.cont125.i.i - invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %623, i32 noundef 0, ptr noundef %979) - to label %invoke.cont133.i.ithread-pre-split unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont133.i.ithread-pre-split: ; preds = %if.then.i1799 - %.pr2830 = load ptr, ptr %m_r.i48.i, align 8 - br label %invoke.cont133.i.i - -invoke.cont133.i.i: ; preds = %invoke.cont133.i.ithread-pre-split, %invoke.cont125.i.i - %980 = phi ptr [ %.pr2830, %invoke.cont133.i.ithread-pre-split ], [ %979, %invoke.cont125.i.i ] - %tobool.not.i3.i1789 = icmp eq ptr %980, null - br i1 %tobool.not.i3.i1789, label %invoke.cont135.i.i, label %if.then.i.i.i1790 - -if.then.i.i.i1790: ; preds = %invoke.cont133.i.i - %981 = load ptr, ptr %m_manager.i.i1891, align 8 - %m_ref_count.i.i.i.i1792 = getelementptr inbounds %class.ast, ptr %980, i64 0, i32 2 - %982 = load i32, ptr %m_ref_count.i.i.i.i1792, align 4 - %dec.i.i.i.i1793 = add i32 %982, -1 - store i32 %dec.i.i.i.i1793, ptr %m_ref_count.i.i.i.i1792, align 4 - %cmp.i.i.i1794 = icmp eq i32 %dec.i.i.i.i1793, 0 - br i1 %cmp.i.i.i1794, label %if.then2.i.i.i1795, label %invoke.cont135.i.i - -if.then2.i.i.i1795: ; preds = %if.then.i.i.i1790 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %981, ptr noundef nonnull %980) - to label %invoke.cont135.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont135.i.i: ; preds = %if.then.i.i.i1790, %invoke.cont133.i.i, %if.then2.i.i.i1795 - store ptr null, ptr %m_r.i48.i, align 8 - %983 = load ptr, ptr %m_pr.i49.i, align 8 - %tobool.not.i3.i1779 = icmp eq ptr %983, null - br i1 %tobool.not.i3.i1779, label %invoke.cont138.i.i, label %if.then.i.i.i1780 - -if.then.i.i.i1780: ; preds = %invoke.cont135.i.i - %984 = load ptr, ptr %m_manager.i.i1781, align 8 - %m_ref_count.i.i.i.i1782 = getelementptr inbounds %class.ast, ptr %983, i64 0, i32 2 - %985 = load i32, ptr %m_ref_count.i.i.i.i1782, align 4 - %dec.i.i.i.i1783 = add i32 %985, -1 - store i32 %dec.i.i.i.i1783, ptr %m_ref_count.i.i.i.i1782, align 4 - %cmp.i.i.i1784 = icmp eq i32 %dec.i.i.i.i1783, 0 - br i1 %cmp.i.i.i1784, label %if.then2.i.i.i1785, label %invoke.cont138.i.i - -if.then2.i.i.i1785: ; preds = %if.then.i.i.i1780 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %984, ptr noundef nonnull %983) - to label %invoke.cont138.i.i unwind label %lpad37.i.i262.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp - -invoke.cont138.i.i: ; preds = %if.then.i.i.i1780, %invoke.cont135.i.i, %if.then2.i.i.i1785 - store ptr null, ptr %m_pr.i49.i, align 8 - %986 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i1775 = getelementptr inbounds i32, ptr %986, i64 -1 - %987 = load i32, ptr %arrayidx.i1775, align 4 - %dec.i1776 = add i32 %987, -1 - store i32 %dec.i1776, ptr %arrayidx.i1775, align 4 - %988 = load ptr, ptr %m_r.i48.i, align 8 - %this.val47.i.i282 = load ptr, ptr %m_frame_stack.i, align 8 - %cmp.not.i1763 = icmp eq ptr %623, %988 - %cmp.i.i.i1764 = icmp eq ptr %this.val47.i.i282, null - %or.cond.i1765 = select i1 %cmp.not.i1763, i1 true, i1 %cmp.i.i.i1764 - br i1 %or.cond.i1765, label %invoke.cont143.i.i283, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1766 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1766: ; preds = %invoke.cont138.i.i - %arrayidx.i.i.i1767 = getelementptr inbounds i32, ptr %this.val47.i.i282, i64 -1 - %989 = load i32, ptr %arrayidx.i.i.i1767, align 4 - %cmp3.i.i.i1768 = icmp eq i32 %989, 0 - br i1 %cmp3.i.i.i1768, label %invoke.cont143.i.i283, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1769 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1769: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1766 - %990 = add i32 %989, -1 - %991 = zext i32 %990 to i64 - %m_new_child.i.i1770 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val47.i.i282, i64 %991, i32 1 - %bf.load.i.i1771 = load i32, ptr %m_new_child.i.i1770, align 8 - %bf.set.i.i1772 = or i32 %bf.load.i.i1771, 2 - store i32 %bf.set.i.i1772, ptr %m_new_child.i.i1770, align 8 - br label %invoke.cont143.i.i283 - -invoke.cont143.i.i283: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i1769, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i1766, %invoke.cont138.i.i - %992 = load ptr, ptr %m_nodes.i.i1992, align 8 - %cmp.i.i.i1739 = icmp eq ptr %992, null - br i1 %cmp.i.i.i1739, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1762, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1740 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1740: ; preds = %invoke.cont143.i.i283 - %arrayidx.i.i.i1741 = getelementptr inbounds i32, ptr %992, i64 -1 - %993 = load i32, ptr %arrayidx.i.i.i1741, align 4 - %994 = zext i32 %993 to i64 - %add.ptr.i.i1742 = getelementptr inbounds ptr, ptr %992, i64 %994 - %cmp3.i.not.i.i1743 = icmp eq i32 %993, 0 - br i1 %cmp3.i.not.i.i1743, label %if.then.i.i.i.i.i1757, label %for.body.i.i.i1744 - -for.body.i.i.i1744: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1740, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1751 - %it.04.i.i.i1745 = phi ptr [ %incdec.ptr.i.i.i1752, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1751 ], [ %992, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1740 ] - %995 = load ptr, ptr %it.04.i.i.i1745, align 8 - %996 = load ptr, ptr %new_no_pats.i.i195, align 8 - %tobool.not.i.i.i.i.i.i1746 = icmp eq ptr %995, null - br i1 %tobool.not.i.i.i.i.i.i1746, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1751, label %if.then.i.i.i.i.i.i1747 - -if.then.i.i.i.i.i.i1747: ; preds = %for.body.i.i.i1744 - %m_ref_count.i.i.i.i.i.i.i1748 = getelementptr inbounds %class.ast, ptr %995, i64 0, i32 2 - %997 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i1748, align 4 - %dec.i.i.i.i.i.i.i1749 = add i32 %997, -1 - store i32 %dec.i.i.i.i.i.i.i1749, ptr %m_ref_count.i.i.i.i.i.i.i1748, align 4 - %cmp.i.i.i.i.i.i1750 = icmp eq i32 %dec.i.i.i.i.i.i.i1749, 0 - br i1 %cmp.i.i.i.i.i.i1750, label %if.then2.i.i.i.i.i.i1760, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1751 - -if.then2.i.i.i.i.i.i1760: ; preds = %if.then.i.i.i.i.i.i1747 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %996, ptr noundef nonnull %995) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1751 unwind label %terminate.lpad.i.i1761 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1751: ; preds = %if.then2.i.i.i.i.i.i1760, %if.then.i.i.i.i.i.i1747, %for.body.i.i.i1744 - %incdec.ptr.i.i.i1752 = getelementptr inbounds ptr, ptr %it.04.i.i.i1745, i64 1 - %cmp.i1.i.i1753 = icmp ult ptr %incdec.ptr.i.i.i1752, %add.ptr.i.i1742 - br i1 %cmp.i1.i.i1753, label %for.body.i.i.i1744, label %invoke.cont8.i.i1754, !llvm.loop !6 - -invoke.cont8.i.i1754: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1751 - %.pre.i.i1755 = load ptr, ptr %m_nodes.i.i1992, align 8 - %tobool.not.i.i.i.i.i1756 = icmp eq ptr %.pre.i.i1755, null - br i1 %tobool.not.i.i.i.i.i1756, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1762, label %if.then.i.i.i.i.i1757 - -if.then.i.i.i.i.i1757: ; preds = %invoke.cont8.i.i1754, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1740 - %998 = phi ptr [ %.pre.i.i1755, %invoke.cont8.i.i1754 ], [ %992, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1740 ] - %add.ptr.i.i.i.i.i.i1758 = getelementptr inbounds i32, ptr %998, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i1758) - to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1762 unwind label %terminate.lpad.i.i.i.i1759 - -terminate.lpad.i.i.i.i1759: ; preds = %if.then.i.i.i.i.i1757 - %999 = landingpad { ptr, i32 } - catch ptr null - %1000 = extractvalue { ptr, i32 } %999, 0 - call void @__clang_call_terminate(ptr %1000) #14 - unreachable + br label %lpad37.i.i.i -terminate.lpad.i.i1761: ; preds = %if.then2.i.i.i.i.i.i1760 - %1001 = landingpad { ptr, i32 } +lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179: ; preds = %if.then2.i.i.i267.i.i.i, %if.then2.i.i.i257.i.i.i, %if.then.i248.i.i.i, %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i, %if.then.i.i228.i.i.i, %if.then2.i.i.i191.i.i.i, %if.then2.i.i.i.i102.i.i, %if.then96.i.i.i + %lpad.loopexit.split-lp.i.i.i180 = landingpad { ptr, i32 } + cleanup + br label %lpad37.i.i.i + +lpad37.i.i.i: ; preds = %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173, %lpad37.loopexit.split-lp.loopexit.i.i.i198, %lpad37.loopexit.i.i.i195 + %lpad.phi.i58.i.i = phi { ptr, i32 } [ %lpad.loopexit.i101.i.i, %lpad37.loopexit.i.i.i195 ], [ %lpad.loopexit314.i.i.i, %lpad37.loopexit.split-lp.loopexit.i.i.i198 ], [ %lpad.loopexit317.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 ], [ %lpad.loopexit319.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201 ], [ %lpad.loopexit322.i.i.i, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i160 ], [ %lpad.loopexit.split-lp.i.i.i180, %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_no_pats.i.i.i43) #15 + br label %ehcleanup.i.i.i161 + +for.inc61.i.i.i163: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207, %invoke.cont49.i.i.i162 + %j.1.i.i.i164 = phi i32 [ %inc55.i.i.i203, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit.i.i.i207 ], [ %j.0329.i.i.i, %invoke.cont49.i.i.i162 ] + %indvars.iv.next.i.i.i165 = add nuw nsw i64 %indvars.iv.i.i.i158, 1 + %exitcond336.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i165, %idx.ext42.i.i.i155 + br i1 %exitcond336.not.i.i.i, label %for.end63.i.i.i166, label %for.body47.i.i.i157, !llvm.loop !22 + +for.end63.i.i.i166: ; preds = %for.inc61.i.i.i163, %if.then40.i.i.i153 + %j.0.lcssa.i.i.i167 = phi i32 [ 0, %if.then40.i.i.i153 ], [ %j.1.i.i.i164, %for.inc61.i.i.i163 ] + %934 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i.i60.i.i = icmp eq ptr %934, null + br i1 %cmp.i.i.i.i60.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i: ; preds = %for.end63.i.i.i166 + %arrayidx.i.i.i.i62.i.i = getelementptr inbounds i32, ptr %934, i64 -1 + %935 = load i32, ptr %arrayidx.i.i.i.i62.i.i, align 4 + %936 = zext i32 %935 to i64 + %add.ptr.i.i117.i.i.i = getelementptr inbounds ptr, ptr %934, i64 %936 + %cmp3.i.i.i63.i.i = icmp ugt i32 %935, %j.0.lcssa.i.i.i167 + br i1 %cmp3.i.i.i63.i.i, label %for.body.i.i120.preheader.i.i.i, label %if.then.i.i118.i.i.i + +for.body.i.i120.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + %idx.ext.i115.i.i.i = zext i32 %j.0.lcssa.i.i.i167 to i64 + %add.ptr.i116.i.i.i = getelementptr inbounds ptr, ptr %934, i64 %idx.ext.i115.i.i.i + br label %for.body.i.i120.i.i.i + +for.body.i.i120.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i, %for.body.i.i120.preheader.i.i.i + %it.04.i.i.i103.i.i = phi ptr [ %incdec.ptr.i.i.i110.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i ], [ %add.ptr.i116.i.i.i, %for.body.i.i120.preheader.i.i.i ] + %937 = load ptr, ptr %it.04.i.i.i103.i.i, align 8 + %938 = load ptr, ptr %new_pats.i.i.i42, align 8 + %tobool.not.i.i.i.i.i.i104.i.i = icmp eq ptr %937, null + br i1 %tobool.not.i.i.i.i.i.i104.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i, label %if.then.i.i.i.i.i.i105.i.i + +if.then.i.i.i.i.i.i105.i.i: ; preds = %for.body.i.i120.i.i.i + %m_ref_count.i.i.i.i.i.i.i106.i.i = getelementptr inbounds %class.ast, ptr %937, i64 0, i32 2 + %939 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i106.i.i, align 4 + %dec.i.i.i.i.i.i.i107.i.i = add i32 %939, -1 + store i32 %dec.i.i.i.i.i.i.i107.i.i, ptr %m_ref_count.i.i.i.i.i.i.i106.i.i, align 4 + %cmp.i.i.i.i.i.i108.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i107.i.i, 0 + br i1 %cmp.i.i.i.i.i.i108.i.i, label %if.then2.i.i.i.i.i.i112.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i + +if.then2.i.i.i.i.i.i112.i.i: ; preds = %if.then.i.i.i.i.i.i105.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %938, ptr noundef nonnull %937) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i201 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i: ; preds = %if.then2.i.i.i.i.i.i112.i.i, %if.then.i.i.i.i.i.i105.i.i, %for.body.i.i120.i.i.i + %incdec.ptr.i.i.i110.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i103.i.i, i64 1 + %cmp.i.i121.i.i.i = icmp ult ptr %incdec.ptr.i.i.i110.i.i, %add.ptr.i.i117.i.i.i + br i1 %cmp.i.i121.i.i.i, label %for.body.i.i120.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i109.i.i + %.pre.i122.i.i.i = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %tobool.not.i.i123.i.i.i = icmp eq ptr %.pre.i122.i.i.i, null + br i1 %tobool.not.i.i123.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168, label %if.then.i.i118.i.i.i + +if.then.i.i118.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i + %940 = phi ptr [ %.pre.i122.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i ], [ %934, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i.i61.i.i ] + %arrayidx.i.i119.i.i.i = getelementptr inbounds i32, ptr %940, i64 -1 + store i32 %j.0.lcssa.i.i.i167, ptr %arrayidx.i.i119.i.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168: ; preds = %if.then.i.i118.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i.i111.i.i, %for.end63.i.i.i166 + br i1 %cmp3.not.i.i81.i.i.i, label %for.end86.i.i.i177, label %for.body68.preheader.i.i.i169 + +for.body68.preheader.i.i.i169: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + %wide.trip.count340.i.i.i = zext i32 %898 to i64 + br label %for.body68.i.i.i170 + +for.body68.i.i.i170: ; preds = %for.inc84.i.i.i175, %for.body68.preheader.i.i.i169 + %indvars.iv337.i.i.i = phi i64 [ 0, %for.body68.preheader.i.i.i169 ], [ %indvars.iv.next338.i.i.i, %for.inc84.i.i.i175 ] + %j.2332.i.i.i = phi i32 [ 0, %for.body68.preheader.i.i.i169 ], [ %j.3.i.i.i176, %for.inc84.i.i.i175 ] + %941 = load ptr, ptr %586, align 8 + %arrayidx71.i.i.i171 = getelementptr inbounds ptr, ptr %add.ptr43.i.i.i156, i64 %indvars.iv337.i.i.i + %942 = load ptr, ptr %arrayidx71.i.i.i171, align 8 + %call73.i.i.i172 = invoke noundef zeroext i1 @_ZNK11ast_manager10is_patternEPK4expr(ptr noundef nonnull align 8 dereferenceable(976) %941, ptr noundef %942) + to label %invoke.cont72.i.i.i174 unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 + +invoke.cont72.i.i.i174: ; preds = %for.body68.i.i.i170 + br i1 %call73.i.i.i172, label %invoke.cont79.i.i.i199, label %for.inc84.i.i.i175 + +invoke.cont79.i.i.i199: ; preds = %invoke.cont72.i.i.i174 + %943 = load ptr, ptr %arrayidx71.i.i.i171, align 8 + %944 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %idxprom.i.i126.i.i.i = zext i32 %j.2332.i.i.i to i64 + %arrayidx.i.i127.i.i.i = getelementptr inbounds ptr, ptr %944, i64 %idxprom.i.i126.i.i.i + %945 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %inc78.i.i.i200 = add i32 %j.2332.i.i.i, 1 + %tobool.not.i.i131.i.i.i = icmp eq ptr %943, null + br i1 %tobool.not.i.i131.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i, label %if.then.i.i132.i.i.i + +if.then.i.i132.i.i.i: ; preds = %invoke.cont79.i.i.i199 + %m_ref_count.i.i.i133.i.i.i = getelementptr inbounds %class.ast, ptr %943, i64 0, i32 2 + %946 = load i32, ptr %m_ref_count.i.i.i133.i.i.i, align 4 + %inc.i.i.i134.i.i.i = add i32 %946, 1 + store i32 %inc.i.i.i134.i.i.i, ptr %m_ref_count.i.i.i133.i.i.i, align 4 + br label %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i: ; preds = %if.then.i.i132.i.i.i, %invoke.cont79.i.i.i199 + %947 = load ptr, ptr %arrayidx.i.i127.i.i.i, align 8 + %tobool.not.i2.i136.i.i.i = icmp eq ptr %947, null + br i1 %tobool.not.i2.i136.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i, label %if.then.i3.i137.i.i.i + +if.then.i3.i137.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + %m_ref_count.i.i4.i138.i.i.i = getelementptr inbounds %class.ast, ptr %947, i64 0, i32 2 + %948 = load i32, ptr %m_ref_count.i.i4.i138.i.i.i, align 4 + %dec.i.i.i139.i.i.i = add i32 %948, -1 + store i32 %dec.i.i.i139.i.i.i, ptr %m_ref_count.i.i4.i138.i.i.i, align 4 + %cmp.i.i140.i.i.i = icmp eq i32 %dec.i.i.i139.i.i.i, 0 + br i1 %cmp.i.i140.i.i.i, label %if.then2.i.i141.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i + +if.then2.i.i141.i.i.i: ; preds = %if.then.i3.i137.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %945, ptr noundef nonnull %947) + to label %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.i.i.i173 + +_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i: ; preds = %if.then2.i.i141.i.i.i, %if.then.i3.i137.i.i.i, %_ZN11ast_manager7inc_refEP3ast.exit.i135.i.i.i + store ptr %943, ptr %arrayidx.i.i127.i.i.i, align 8 + br label %for.inc84.i.i.i175 + +for.inc84.i.i.i175: ; preds = %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i, %invoke.cont72.i.i.i174 + %j.3.i.i.i176 = phi i32 [ %inc78.i.i.i200, %_ZN10ref_vectorI4expr11ast_managerE11element_refaSEPS0_.exit143.i.i.i ], [ %j.2332.i.i.i, %invoke.cont72.i.i.i174 ] + %indvars.iv.next338.i.i.i = add nuw nsw i64 %indvars.iv337.i.i.i, 1 + %exitcond341.not.i.i.i = icmp eq i64 %indvars.iv.next338.i.i.i, %wide.trip.count340.i.i.i + br i1 %exitcond341.not.i.i.i, label %for.end86.i.i.i177, label %for.body68.i.i.i170, !llvm.loop !23 + +for.end86.i.i.i177: ; preds = %for.inc84.i.i.i175, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 + %j.2.lcssa.i.i.i178 = phi i32 [ 0, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE6shrinkEj.exit.i.i.i168 ], [ %j.3.i.i.i176, %for.inc84.i.i.i175 ] + %949 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i145.i.i.i = icmp eq ptr %949, null + br i1 %cmp.i.i.i145.i.i.i, label %if.then92.i.i.i, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i: ; preds = %for.end86.i.i.i177 + %arrayidx.i.i.i149.i.i.i = getelementptr inbounds i32, ptr %949, i64 -1 + %950 = load i32, ptr %arrayidx.i.i.i149.i.i.i, align 4 + %951 = zext i32 %950 to i64 + %add.ptr.i.i150.i.i.i = getelementptr inbounds ptr, ptr %949, i64 %951 + %cmp3.i.i151.i.i.i = icmp ugt i32 %950, %j.2.lcssa.i.i.i178 + br i1 %cmp3.i.i151.i.i.i, label %for.body.i.i154.preheader.i.i.i, label %if.then.i.i152.i.i.i + +for.body.i.i154.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + %idx.ext.i147.i.i.i = zext i32 %j.2.lcssa.i.i.i178 to i64 + %add.ptr.i148.i.i.i = getelementptr inbounds ptr, ptr %949, i64 %idx.ext.i147.i.i.i + br label %for.body.i.i154.i.i.i + +for.body.i.i154.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i, %for.body.i.i154.preheader.i.i.i + %it.04.i.i155.i.i.i = phi ptr [ %incdec.ptr.i.i162.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i ], [ %add.ptr.i148.i.i.i, %for.body.i.i154.preheader.i.i.i ] + %952 = load ptr, ptr %it.04.i.i155.i.i.i, align 8 + %953 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %tobool.not.i.i.i.i.i156.i.i.i = icmp eq ptr %952, null + br i1 %tobool.not.i.i.i.i.i156.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i, label %if.then.i.i.i.i.i157.i.i.i + +if.then.i.i.i.i.i157.i.i.i: ; preds = %for.body.i.i154.i.i.i + %m_ref_count.i.i.i.i.i.i158.i.i.i = getelementptr inbounds %class.ast, ptr %952, i64 0, i32 2 + %954 = load i32, ptr %m_ref_count.i.i.i.i.i.i158.i.i.i, align 4 + %dec.i.i.i.i.i.i159.i.i.i = add i32 %954, -1 + store i32 %dec.i.i.i.i.i.i159.i.i.i, ptr %m_ref_count.i.i.i.i.i.i158.i.i.i, align 4 + %cmp.i.i.i.i.i160.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i159.i.i.i, 0 + br i1 %cmp.i.i.i.i.i160.i.i.i, label %if.then2.i.i.i.i.i167.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i + +if.then2.i.i.i.i.i167.i.i.i: ; preds = %if.then.i.i.i.i.i157.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %953, ptr noundef nonnull %952) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.i.i.i198 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i: ; preds = %if.then2.i.i.i.i.i167.i.i.i, %if.then.i.i.i.i.i157.i.i.i, %for.body.i.i154.i.i.i + %incdec.ptr.i.i162.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i155.i.i.i, i64 1 + %cmp.i.i163.i.i.i = icmp ult ptr %incdec.ptr.i.i162.i.i.i, %add.ptr.i.i150.i.i.i + br i1 %cmp.i.i163.i.i.i, label %for.body.i.i154.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i161.i.i.i + %.pre.i165.i.i.i = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %tobool.not.i.i166.i.i.i = icmp eq ptr %.pre.i165.i.i.i, null + br i1 %tobool.not.i.i166.i.i.i, label %if.then92.i.i.i, label %if.then.i.i152.i.i.i + +if.then.i.i152.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i + %955 = phi ptr [ %.pre.i165.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i ], [ %949, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i146.i.i.i ] + %arrayidx.i.i153.i.i.i = getelementptr inbounds i32, ptr %955, i64 -1 + store i32 %j.2.lcssa.i.i.i178, ptr %arrayidx.i.i153.i.i.i, align 4 + br label %if.then92.i.i.i + +if.then92.i.i.i: ; preds = %if.then.i.i152.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i164.i.i.i, %for.end86.i.i.i177 + %bf.load93.i.i.i = load i32, ptr %626, align 8 + %956 = and i32 %bf.load93.i.i.i, 2 + %tobool.not.i65.i.i = icmp eq i32 %956, 0 + br i1 %tobool.not.i65.i.i, label %if.else.i.i.i196, label %if.then96.i.i.i + +if.then96.i.i.i: ; preds = %if.then92.i.i.i + %this.val.i66.i.i = load ptr, ptr %586, align 8 + %957 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %958 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %call101.i.i.i = invoke noundef ptr @_ZN11ast_manager17update_quantifierEP10quantifierjPKP4exprjS5_S3_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i66.i.i, ptr noundef nonnull %624, i32 noundef %j.0.lcssa.i.i.i167, ptr noundef %957, i32 noundef %j.2.lcssa.i.i.i178, ptr noundef %958, ptr noundef %896) + to label %invoke.cont100.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont100.i.i.i: ; preds = %if.then96.i.i.i + %tobool.not.i.i67.i.i = icmp eq ptr %call101.i.i.i, null + br i1 %tobool.not.i.i67.i.i, label %if.end.i177.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i: ; preds = %invoke.cont100.i.i.i + %m_ref_count.i.i.i175.i.i.i = getelementptr inbounds %class.ast, ptr %call101.i.i.i, i64 0, i32 2 + %959 = load i32, ptr %m_ref_count.i.i.i175.i.i.i, align 4 + %inc.i.i.i176.i.i.i = add i32 %959, 1 + store i32 %inc.i.i.i176.i.i.i, ptr %m_ref_count.i.i.i175.i.i.i, align 4 + br label %if.end.i177.i.i.i + +if.end.i177.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i174.i.i.i, %invoke.cont100.i.i.i + %960 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i.i68.i.i = icmp eq ptr %960, null + br i1 %tobool.not.i3.i.i68.i.i, label %if.end109.i.i.i, label %if.then.i.i.i.i69.i.i + +if.then.i.i.i.i69.i.i: ; preds = %if.end.i177.i.i.i + %961 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i.i71.i.i = getelementptr inbounds %class.ast, ptr %960, i64 0, i32 2 + %962 = load i32, ptr %m_ref_count.i.i.i.i.i71.i.i, align 4 + %dec.i.i.i.i.i72.i.i = add i32 %962, -1 + store i32 %dec.i.i.i.i.i72.i.i, ptr %m_ref_count.i.i.i.i.i71.i.i, align 4 + %cmp.i.i.i178.i.i.i = icmp eq i32 %dec.i.i.i.i.i72.i.i, 0 + br i1 %cmp.i.i.i178.i.i.i, label %if.then2.i.i.i.i102.i.i, label %if.end109.i.i.i + +if.then2.i.i.i.i102.i.i: ; preds = %if.then.i.i.i.i69.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %961, ptr noundef nonnull %960) + to label %if.end109.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +if.else.i.i.i196: ; preds = %if.then92.i.i.i + %tobool.not.i180.i.i.i = icmp eq ptr %624, null + br i1 %tobool.not.i180.i.i.i, label %if.end.i184.i.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i: ; preds = %if.else.i.i.i196 + %m_ref_count.i.i.i182.i.i.i = getelementptr inbounds %class.ast, ptr %624, i64 0, i32 2 + %963 = load i32, ptr %m_ref_count.i.i.i182.i.i.i, align 4 + %inc.i.i.i183.i.i.i = add i32 %963, 1 + store i32 %inc.i.i.i183.i.i.i, ptr %m_ref_count.i.i.i182.i.i.i, align 4 + br label %if.end.i184.i.i.i + +if.end.i184.i.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i181.i.i.i, %if.else.i.i.i196 + %964 = load ptr, ptr %m_r.i64.i.i, align 8 + %tobool.not.i3.i185.i.i.i = icmp eq ptr %964, null + br i1 %tobool.not.i3.i185.i.i.i, label %if.end109.i.i.i, label %if.then.i.i.i186.i.i.i + +if.then.i.i.i186.i.i.i: ; preds = %if.end.i184.i.i.i + %965 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i188.i.i.i197 = getelementptr inbounds %class.ast, ptr %964, i64 0, i32 2 + %966 = load i32, ptr %m_ref_count.i.i.i.i188.i.i.i197, align 4 + %dec.i.i.i.i189.i.i.i = add i32 %966, -1 + store i32 %dec.i.i.i.i189.i.i.i, ptr %m_ref_count.i.i.i.i188.i.i.i197, align 4 + %cmp.i.i.i190.i.i.i = icmp eq i32 %dec.i.i.i.i189.i.i.i, 0 + br i1 %cmp.i.i.i190.i.i.i, label %if.then2.i.i.i191.i.i.i, label %if.end109.i.i.i + +if.then2.i.i.i191.i.i.i: ; preds = %if.then.i.i.i186.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %965, ptr noundef nonnull %964) + to label %if.end109.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +if.end109.i.i.i: ; preds = %if.then2.i.i.i191.i.i.i, %if.then.i.i.i186.i.i.i, %if.end.i184.i.i.i, %if.then2.i.i.i.i102.i.i, %if.then.i.i.i.i69.i.i, %if.end.i177.i.i.i + %storemerge.i.i.i181 = phi ptr [ %call101.i.i.i, %if.then2.i.i.i.i102.i.i ], [ %call101.i.i.i, %if.end.i177.i.i.i ], [ %call101.i.i.i, %if.then.i.i.i.i69.i.i ], [ %624, %if.then2.i.i.i191.i.i.i ], [ %624, %if.end.i184.i.i.i ], [ %624, %if.then.i.i.i186.i.i.i ] + store ptr %storemerge.i.i.i181, ptr %m_r.i64.i.i, align 8 + %967 = load i32, ptr %m_spos.i.i.i136, align 4 + %968 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i.i196.i.i.i = icmp eq ptr %968, null + br i1 %cmp.i.i.i196.i.i.i, label %invoke.cont112.i.i.i182, label %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + +_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i: ; preds = %if.end109.i.i.i + %arrayidx.i.i.i200.i.i.i = getelementptr inbounds i32, ptr %968, i64 -1 + %969 = load i32, ptr %arrayidx.i.i.i200.i.i.i, align 4 + %970 = zext i32 %969 to i64 + %add.ptr.i.i201.i.i.i = getelementptr inbounds ptr, ptr %968, i64 %970 + %cmp3.i.i202.i.i.i = icmp ugt i32 %969, %967 + br i1 %cmp3.i.i202.i.i.i, label %for.body.i.i205.preheader.i.i.i, label %if.then.i.i203.i.i.i + +for.body.i.i205.preheader.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + %idx.ext.i198.i.i.i = zext i32 %967 to i64 + %add.ptr.i199.i.i.i = getelementptr inbounds ptr, ptr %968, i64 %idx.ext.i198.i.i.i + br label %for.body.i.i205.i.i.i + +for.body.i.i205.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i, %for.body.i.i205.preheader.i.i.i + %it.04.i.i206.i.i.i = phi ptr [ %incdec.ptr.i.i213.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i ], [ %add.ptr.i199.i.i.i, %for.body.i.i205.preheader.i.i.i ] + %971 = load ptr, ptr %it.04.i.i206.i.i.i, align 8 + %972 = load ptr, ptr %m_result_stack.i.i43.i.i, align 8 + %tobool.not.i.i.i.i.i207.i.i.i = icmp eq ptr %971, null + br i1 %tobool.not.i.i.i.i.i207.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i, label %if.then.i.i.i.i.i208.i.i.i + +if.then.i.i.i.i.i208.i.i.i: ; preds = %for.body.i.i205.i.i.i + %m_ref_count.i.i.i.i.i.i209.i.i.i = getelementptr inbounds %class.ast, ptr %971, i64 0, i32 2 + %973 = load i32, ptr %m_ref_count.i.i.i.i.i.i209.i.i.i, align 4 + %dec.i.i.i.i.i.i210.i.i.i = add i32 %973, -1 + store i32 %dec.i.i.i.i.i.i210.i.i.i, ptr %m_ref_count.i.i.i.i.i.i209.i.i.i, align 4 + %cmp.i.i.i.i.i211.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i210.i.i.i, 0 + br i1 %cmp.i.i.i.i.i211.i.i.i, label %if.then2.i.i.i.i.i218.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i + +if.then2.i.i.i.i.i218.i.i.i: ; preds = %if.then.i.i.i.i.i208.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %972, ptr noundef nonnull %971) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i unwind label %lpad37.loopexit.i.i.i195 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i: ; preds = %if.then2.i.i.i.i.i218.i.i.i, %if.then.i.i.i.i.i208.i.i.i, %for.body.i.i205.i.i.i + %incdec.ptr.i.i213.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i206.i.i.i, i64 1 + %cmp.i.i214.i.i.i = icmp ult ptr %incdec.ptr.i.i213.i.i.i, %add.ptr.i.i201.i.i.i + br i1 %cmp.i.i214.i.i.i, label %for.body.i.i205.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i, !llvm.loop !6 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i212.i.i.i + %.pre.i216.i.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %tobool.not.i.i217.i.i.i = icmp eq ptr %.pre.i216.i.i.i, null + br i1 %tobool.not.i.i217.i.i.i, label %invoke.cont112thread-pre-split.i.i.i, label %if.then.i.i203.i.i.i + +if.then.i.i203.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i + %974 = phi ptr [ %.pre.i216.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i ], [ %968, %_ZN6vectorIP4exprLb0EjE3endEv.exit.i197.i.i.i ] + %arrayidx.i.i204.i.i.i = getelementptr inbounds i32, ptr %974, i64 -1 + store i32 %967, ptr %arrayidx.i.i204.i.i.i, align 4 + br label %invoke.cont112thread-pre-split.i.i.i + +invoke.cont112thread-pre-split.i.i.i: ; preds = %if.then.i.i203.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i215.i.i.i + %.pr345.i.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont112.i.i.i182 + +invoke.cont112.i.i.i182: ; preds = %invoke.cont112thread-pre-split.i.i.i, %if.end109.i.i.i + %975 = phi ptr [ %.pr345.i.i.i, %invoke.cont112thread-pre-split.i.i.i ], [ %storemerge.i.i.i181, %if.end109.i.i.i ] + %tobool.not.i.i.i.i.i73.i.i = icmp eq ptr %975, null + br i1 %tobool.not.i.i.i.i.i73.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i, label %if.then.i.i.i.i222.i.i.i + +if.then.i.i.i.i222.i.i.i: ; preds = %invoke.cont112.i.i.i182 + %m_ref_count.i.i.i.i.i.i74.i.i = getelementptr inbounds %class.ast, ptr %975, i64 0, i32 2 + %976 = load i32, ptr %m_ref_count.i.i.i.i.i.i74.i.i, align 4 + %inc.i.i.i.i.i.i75.i.i = add i32 %976, 1 + store i32 %inc.i.i.i.i.i.i75.i.i, ptr %m_ref_count.i.i.i.i.i.i74.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i: ; preds = %if.then.i.i.i.i222.i.i.i, %invoke.cont112.i.i.i182 + %977 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %cmp.i.i224.i.i.i = icmp eq ptr %977, null + br i1 %cmp.i.i224.i.i.i, label %if.then.i.i228.i.i.i, label %lor.lhs.false.i.i.i77.i.i + +lor.lhs.false.i.i.i77.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + %arrayidx.i.i225.i.i.i = getelementptr inbounds i32, ptr %977, i64 -1 + %978 = load i32, ptr %arrayidx.i.i225.i.i.i, align 4 + %arrayidx4.i.i.i78.i.i = getelementptr inbounds i32, ptr %977, i64 -2 + %979 = load i32, ptr %arrayidx4.i.i.i78.i.i, align 4 + %cmp5.i.i.i79.i.i = icmp eq i32 %978, %979 + br i1 %cmp5.i.i.i79.i.i, label %if.then.i.i228.i.i.i, label %invoke.cont116.i.i.i183 + +if.then.i.i228.i.i.i: ; preds = %lor.lhs.false.i.i.i77.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i76.i.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i.i82) + to label %.noexc229.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +.noexc229.i.i.i: ; preds = %if.then.i.i228.i.i.i + %.pre.i.i.i98.i.i = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx8.phi.trans.insert.i.i.i99.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i98.i.i, i64 -1 + %.pre1.i.i.i100.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i99.i.i, align 4 + br label %invoke.cont116.i.i.i183 + +invoke.cont116.i.i.i183: ; preds = %.noexc229.i.i.i, %lor.lhs.false.i.i.i77.i.i + %980 = phi i32 [ %.pre1.i.i.i100.i.i, %.noexc229.i.i.i ], [ %978, %lor.lhs.false.i.i.i77.i.i ] + %981 = phi ptr [ %.pre.i.i.i98.i.i, %.noexc229.i.i.i ], [ %977, %lor.lhs.false.i.i.i77.i.i ] + %idx.ext.i.i226.i.i.i = zext i32 %980 to i64 + %add.ptr.i.i227.i.i.i = getelementptr inbounds ptr, ptr %981, i64 %idx.ext.i.i226.i.i.i + store ptr %975, ptr %add.ptr.i.i227.i.i.i, align 8 + %982 = load ptr, ptr %m_nodes.i.i.i82, align 8 + %arrayidx10.i.i.i80.i.i = getelementptr inbounds i32, ptr %982, i64 -1 + %983 = load i32, ptr %arrayidx10.i.i.i80.i.i, align 4 + %inc.i.i.i81.i.i = add i32 %983, 1 + store i32 %inc.i.i.i81.i.i, ptr %arrayidx10.i.i.i80.i.i, align 4 + %984 = load ptr, ptr %m_bindings.i.i.i83, align 8 + %cmp.i230.i.i.i = icmp eq ptr %984, null + br i1 %cmp.i230.i.i.i, label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i, label %if.then.i236.i.i.i + +if.then.i236.i.i.i: ; preds = %invoke.cont116.i.i.i183 + %arrayidx.i232.i.i.i = getelementptr inbounds i32, ptr %984, i64 -1 + %985 = load i32, ptr %arrayidx.i232.i.i.i, align 4 + %sub.i.i.i184 = sub i32 %985, %866 + store i32 %sub.i.i.i184, ptr %arrayidx.i232.i.i.i, align 4 + br label %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + +_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i: ; preds = %if.then.i236.i.i.i, %invoke.cont116.i.i.i183 + %986 = load ptr, ptr %m_shifts.i.i.i84, align 8 + %cmp.i239.i.i.i = icmp eq ptr %986, null + br i1 %cmp.i239.i.i.i, label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i, label %if.then.i244.i.i.i + +if.then.i244.i.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + %arrayidx.i241.i.i.i = getelementptr inbounds i32, ptr %986, i64 -1 + %987 = load i32, ptr %arrayidx.i241.i.i.i, align 4 + %sub124.i.i.i = sub i32 %987, %866 + store i32 %sub124.i.i.i, ptr %arrayidx.i241.i.i.i, align 4 + br label %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i + +_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i: ; preds = %if.then.i244.i.i.i, %_ZN6vectorIP4exprLb0EjE6shrinkEj.exit.i82.i.i + invoke void @_ZN13rewriter_core9end_scopeEv(ptr noundef nonnull align 8 dereferenceable(144) %this) + to label %invoke.cont125.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont125.i.i.i: ; preds = %_ZN6vectorIjLb0EjE6shrinkEj.exit.i83.i.i + %988 = load ptr, ptr %m_r.i64.i.i, align 8 + %bf.load130.i.i.i = load i32, ptr %626, align 8 + %bf.clear131.i.i.i = and i32 %bf.load130.i.i.i, 1 + %tobool132.not.i.i.i = icmp eq i32 %bf.clear131.i.i.i, 0 + br i1 %tobool132.not.i.i.i, label %invoke.cont133.i.i.i, label %if.then.i248.i.i.i + +if.then.i248.i.i.i: ; preds = %invoke.cont125.i.i.i + invoke void @_ZN13rewriter_core20cache_shifted_resultEP4exprjS1_(ptr noundef nonnull align 8 dereferenceable(144) %this, ptr noundef %624, i32 noundef 0, ptr noundef %988) + to label %invoke.cont133thread-pre-split.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont133thread-pre-split.i.i.i: ; preds = %if.then.i248.i.i.i + %.pr.i.i.i = load ptr, ptr %m_r.i64.i.i, align 8 + br label %invoke.cont133.i.i.i + +invoke.cont133.i.i.i: ; preds = %invoke.cont133thread-pre-split.i.i.i, %invoke.cont125.i.i.i + %989 = phi ptr [ %.pr.i.i.i, %invoke.cont133thread-pre-split.i.i.i ], [ %988, %invoke.cont125.i.i.i ] + %tobool.not.i3.i251.i.i.i = icmp eq ptr %989, null + br i1 %tobool.not.i3.i251.i.i.i, label %invoke.cont135.i.i.i, label %if.then.i.i.i252.i.i.i + +if.then.i.i.i252.i.i.i: ; preds = %invoke.cont133.i.i.i + %990 = load ptr, ptr %m_manager.i.i.i70.i.i, align 8 + %m_ref_count.i.i.i.i254.i.i.i = getelementptr inbounds %class.ast, ptr %989, i64 0, i32 2 + %991 = load i32, ptr %m_ref_count.i.i.i.i254.i.i.i, align 4 + %dec.i.i.i.i255.i.i.i = add i32 %991, -1 + store i32 %dec.i.i.i.i255.i.i.i, ptr %m_ref_count.i.i.i.i254.i.i.i, align 4 + %cmp.i.i.i256.i.i.i = icmp eq i32 %dec.i.i.i.i255.i.i.i, 0 + br i1 %cmp.i.i.i256.i.i.i, label %if.then2.i.i.i257.i.i.i, label %invoke.cont135.i.i.i + +if.then2.i.i.i257.i.i.i: ; preds = %if.then.i.i.i252.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %990, ptr noundef nonnull %989) + to label %invoke.cont135.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont135.i.i.i: ; preds = %if.then2.i.i.i257.i.i.i, %if.then.i.i.i252.i.i.i, %invoke.cont133.i.i.i + store ptr null, ptr %m_r.i64.i.i, align 8 + %992 = load ptr, ptr %m_pr.i.i.i, align 8 + %tobool.not.i3.i261.i.i.i = icmp eq ptr %992, null + br i1 %tobool.not.i3.i261.i.i.i, label %invoke.cont138.i.i.i, label %if.then.i.i.i262.i.i.i + +if.then.i.i.i262.i.i.i: ; preds = %invoke.cont135.i.i.i + %993 = load ptr, ptr %m_manager.i.i263.i.i.i, align 8 + %m_ref_count.i.i.i.i264.i.i.i = getelementptr inbounds %class.ast, ptr %992, i64 0, i32 2 + %994 = load i32, ptr %m_ref_count.i.i.i.i264.i.i.i, align 4 + %dec.i.i.i.i265.i.i.i = add i32 %994, -1 + store i32 %dec.i.i.i.i265.i.i.i, ptr %m_ref_count.i.i.i.i264.i.i.i, align 4 + %cmp.i.i.i266.i.i.i = icmp eq i32 %dec.i.i.i.i265.i.i.i, 0 + br i1 %cmp.i.i.i266.i.i.i, label %if.then2.i.i.i267.i.i.i, label %invoke.cont138.i.i.i + +if.then2.i.i.i267.i.i.i: ; preds = %if.then.i.i.i262.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %993, ptr noundef nonnull %992) + to label %invoke.cont138.i.i.i unwind label %lpad37.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i.i179 + +invoke.cont138.i.i.i: ; preds = %if.then2.i.i.i267.i.i.i, %if.then.i.i.i262.i.i.i, %invoke.cont135.i.i.i + store ptr null, ptr %m_pr.i.i.i, align 8 + %995 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i269.i.i.i = getelementptr inbounds i32, ptr %995, i64 -1 + %996 = load i32, ptr %arrayidx.i269.i.i.i, align 4 + %dec.i.i.i.i185 = add i32 %996, -1 + store i32 %dec.i.i.i.i185, ptr %arrayidx.i269.i.i.i, align 4 + %997 = load ptr, ptr %m_r.i64.i.i, align 8 + %this.val47.i.i.i = load ptr, ptr %m_frame_stack.i, align 8 + %cmp.not.i.i.i.i186 = icmp eq ptr %997, %624 + %cmp.i.i.i270.i.i.i = icmp eq ptr %this.val47.i.i.i, null + %or.cond.i.i84.i.i = select i1 %cmp.not.i.i.i.i186, i1 true, i1 %cmp.i.i.i270.i.i.i + br i1 %or.cond.i.i84.i.i, label %invoke.cont143.i.i.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i: ; preds = %invoke.cont138.i.i.i + %arrayidx.i.i.i271.i.i.i = getelementptr inbounds i32, ptr %this.val47.i.i.i, i64 -1 + %998 = load i32, ptr %arrayidx.i.i.i271.i.i.i, align 4 + %cmp3.i.i.i.i86.i.i = icmp eq i32 %998, 0 + br i1 %cmp3.i.i.i.i86.i.i, label %invoke.cont143.i.i.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i + %999 = add i32 %998, -1 + %1000 = zext i32 %999 to i64 + %m_new_child.i.i.i88.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val47.i.i.i, i64 %1000, i32 1 + %bf.load.i.i.i89.i.i = load i32, ptr %m_new_child.i.i.i88.i.i, align 8 + %bf.set.i.i.i90.i.i = or i32 %bf.load.i.i.i89.i.i, 2 + store i32 %bf.set.i.i.i90.i.i, ptr %m_new_child.i.i.i88.i.i, align 8 + br label %invoke.cont143.i.i.i + +invoke.cont143.i.i.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i.i87.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i.i85.i.i, %invoke.cont138.i.i.i + %1001 = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %cmp.i.i.i274.i.i.i = icmp eq ptr %1001, null + br i1 %cmp.i.i.i274.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187: ; preds = %invoke.cont143.i.i.i + %arrayidx.i.i.i275.i.i.i = getelementptr inbounds i32, ptr %1001, i64 -1 + %1002 = load i32, ptr %arrayidx.i.i.i275.i.i.i, align 4 + %1003 = zext i32 %1002 to i64 + %add.ptr.i.i276.i.i.i = getelementptr inbounds ptr, ptr %1001, i64 %1003 + %cmp3.i.not.i.i.i.i.i188 = icmp eq i32 %1002, 0 + br i1 %cmp3.i.not.i.i.i.i.i188, label %if.then.i.i.i.i.i282.i.i.i, label %for.body.i.i.i.i91.i.i + +for.body.i.i.i.i91.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + %it.04.i.i.i.i92.i.i = phi ptr [ %incdec.ptr.i.i.i.i96.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i ], [ %1001, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 ] + %1004 = load ptr, ptr %it.04.i.i.i.i92.i.i, align 8 + %1005 = load ptr, ptr %new_no_pats.i.i.i43, align 8 + %tobool.not.i.i.i.i.i.i277.i.i.i = icmp eq ptr %1004, null + br i1 %tobool.not.i.i.i.i.i.i277.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i, label %if.then.i.i.i.i.i.i278.i.i.i + +if.then.i.i.i.i.i.i278.i.i.i: ; preds = %for.body.i.i.i.i91.i.i + %m_ref_count.i.i.i.i.i.i.i279.i.i.i = getelementptr inbounds %class.ast, ptr %1004, i64 0, i32 2 + %1006 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i279.i.i.i, align 4 + %dec.i.i.i.i.i.i.i.i93.i.i = add i32 %1006, -1 + store i32 %dec.i.i.i.i.i.i.i.i93.i.i, ptr %m_ref_count.i.i.i.i.i.i.i279.i.i.i, align 4 + %cmp.i.i.i.i.i.i.i94.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i.i93.i.i, 0 + br i1 %cmp.i.i.i.i.i.i.i94.i.i, label %if.then2.i.i.i.i.i.i.i97.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + +if.then2.i.i.i.i.i.i.i97.i.i: ; preds = %if.then.i.i.i.i.i.i278.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1005, ptr noundef nonnull %1004) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i unwind label %terminate.lpad.i.i.i.i.i194 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i: ; preds = %if.then2.i.i.i.i.i.i.i97.i.i, %if.then.i.i.i.i.i.i278.i.i.i, %for.body.i.i.i.i91.i.i + %incdec.ptr.i.i.i.i96.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i.i92.i.i, i64 1 + %cmp.i1.i.i.i.i.i189 = icmp ult ptr %incdec.ptr.i.i.i.i96.i.i, %add.ptr.i.i276.i.i.i + br i1 %cmp.i1.i.i.i.i.i189, label %for.body.i.i.i.i91.i.i, label %invoke.cont8.i.i.i.i.i190, !llvm.loop !6 + +invoke.cont8.i.i.i.i.i190: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i.i95.i.i + %.pre.i.i280.i.i.i = load ptr, ptr %m_nodes.i.i80.i.i.i, align 8 + %tobool.not.i.i.i.i.i281.i.i.i = icmp eq ptr %.pre.i.i280.i.i.i, null + br i1 %tobool.not.i.i.i.i.i281.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193, label %if.then.i.i.i.i.i282.i.i.i + +if.then.i.i.i.i.i282.i.i.i: ; preds = %invoke.cont8.i.i.i.i.i190, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 + %1007 = phi ptr [ %.pre.i.i280.i.i.i, %invoke.cont8.i.i.i.i.i190 ], [ %1001, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i.i.i.i187 ] + %add.ptr.i.i.i.i.i.i.i.i.i191 = getelementptr inbounds i32, ptr %1007, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i.i.i.i191) + to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193 unwind label %terminate.lpad.i.i.i.i.i.i.i192 + +terminate.lpad.i.i.i.i.i.i.i192: ; preds = %if.then.i.i.i.i.i282.i.i.i + %1008 = landingpad { ptr, i32 } catch ptr null - %1002 = extractvalue { ptr, i32 } %1001, 0 - call void @__clang_call_terminate(ptr %1002) #14 + %1009 = extractvalue { ptr, i32 } %1008, 0 + call void @__clang_call_terminate(ptr %1009) #14 unreachable -_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1762: ; preds = %invoke.cont143.i.i283, %invoke.cont8.i.i1754, %if.then.i.i.i.i.i1757 - %1003 = load ptr, ptr %m_nodes.i.i2030, align 8 - %cmp.i.i.i1714 = icmp eq ptr %1003, null - br i1 %cmp.i.i.i1714, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1715 - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1715: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1762 - %arrayidx.i.i.i1716 = getelementptr inbounds i32, ptr %1003, i64 -1 - %1004 = load i32, ptr %arrayidx.i.i.i1716, align 4 - %1005 = zext i32 %1004 to i64 - %add.ptr.i.i1717 = getelementptr inbounds ptr, ptr %1003, i64 %1005 - %cmp3.i.not.i.i1718 = icmp eq i32 %1004, 0 - br i1 %cmp3.i.not.i.i1718, label %if.then.i.i.i.i.i1732, label %for.body.i.i.i1719 - -for.body.i.i.i1719: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1715, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1726 - %it.04.i.i.i1720 = phi ptr [ %incdec.ptr.i.i.i1727, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1726 ], [ %1003, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1715 ] - %1006 = load ptr, ptr %it.04.i.i.i1720, align 8 - %1007 = load ptr, ptr %new_pats.i.i194, align 8 - %tobool.not.i.i.i.i.i.i1721 = icmp eq ptr %1006, null - br i1 %tobool.not.i.i.i.i.i.i1721, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1726, label %if.then.i.i.i.i.i.i1722 - -if.then.i.i.i.i.i.i1722: ; preds = %for.body.i.i.i1719 - %m_ref_count.i.i.i.i.i.i.i1723 = getelementptr inbounds %class.ast, ptr %1006, i64 0, i32 2 - %1008 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i1723, align 4 - %dec.i.i.i.i.i.i.i1724 = add i32 %1008, -1 - store i32 %dec.i.i.i.i.i.i.i1724, ptr %m_ref_count.i.i.i.i.i.i.i1723, align 4 - %cmp.i.i.i.i.i.i1725 = icmp eq i32 %dec.i.i.i.i.i.i.i1724, 0 - br i1 %cmp.i.i.i.i.i.i1725, label %if.then2.i.i.i.i.i.i1735, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1726 - -if.then2.i.i.i.i.i.i1735: ; preds = %if.then.i.i.i.i.i.i1722 - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1007, ptr noundef nonnull %1006) - to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1726 unwind label %terminate.lpad.i.i1736 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1726: ; preds = %if.then2.i.i.i.i.i.i1735, %if.then.i.i.i.i.i.i1722, %for.body.i.i.i1719 - %incdec.ptr.i.i.i1727 = getelementptr inbounds ptr, ptr %it.04.i.i.i1720, i64 1 - %cmp.i1.i.i1728 = icmp ult ptr %incdec.ptr.i.i.i1727, %add.ptr.i.i1717 - br i1 %cmp.i1.i.i1728, label %for.body.i.i.i1719, label %invoke.cont8.i.i1729, !llvm.loop !6 - -invoke.cont8.i.i1729: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i1726 - %.pre.i.i1730 = load ptr, ptr %m_nodes.i.i2030, align 8 - %tobool.not.i.i.i.i.i1731 = icmp eq ptr %.pre.i.i1730, null - br i1 %tobool.not.i.i.i.i.i1731, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i, label %if.then.i.i.i.i.i1732 - -if.then.i.i.i.i.i1732: ; preds = %invoke.cont8.i.i1729, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1715 - %1009 = phi ptr [ %.pre.i.i1730, %invoke.cont8.i.i1729 ], [ %1003, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i1715 ] - %add.ptr.i.i.i.i.i.i1733 = getelementptr inbounds i32, ptr %1009, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i1733) - to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i unwind label %terminate.lpad.i.i.i.i1734 - -terminate.lpad.i.i.i.i1734: ; preds = %if.then.i.i.i.i.i1732 +terminate.lpad.i.i.i.i.i194: ; preds = %if.then2.i.i.i.i.i.i.i97.i.i %1010 = landingpad { ptr, i32 } catch ptr null %1011 = extractvalue { ptr, i32 } %1010, 0 call void @__clang_call_terminate(ptr %1011) #14 unreachable -terminate.lpad.i.i1736: ; preds = %if.then2.i.i.i.i.i.i1735 - %1012 = landingpad { ptr, i32 } +_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193: ; preds = %if.then.i.i.i.i.i282.i.i.i, %invoke.cont8.i.i.i.i.i190, %invoke.cont143.i.i.i + %1012 = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %cmp.i.i.i284.i.i.i = icmp eq ptr %1012, null + br i1 %cmp.i.i.i284.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i + +_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i: ; preds = %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193 + %arrayidx.i.i.i286.i.i.i = getelementptr inbounds i32, ptr %1012, i64 -1 + %1013 = load i32, ptr %arrayidx.i.i.i286.i.i.i, align 4 + %1014 = zext i32 %1013 to i64 + %add.ptr.i.i287.i.i.i = getelementptr inbounds ptr, ptr %1012, i64 %1014 + %cmp3.i.not.i.i288.i.i.i = icmp eq i32 %1013, 0 + br i1 %cmp3.i.not.i.i288.i.i.i, label %if.then.i.i.i.i.i302.i.i.i, label %for.body.i.i.i289.i.i.i + +for.body.i.i.i289.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + %it.04.i.i.i290.i.i.i = phi ptr [ %incdec.ptr.i.i.i297.i.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i ], [ %1012, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i ] + %1015 = load ptr, ptr %it.04.i.i.i290.i.i.i, align 8 + %1016 = load ptr, ptr %new_pats.i.i.i42, align 8 + %tobool.not.i.i.i.i.i.i291.i.i.i = icmp eq ptr %1015, null + br i1 %tobool.not.i.i.i.i.i.i291.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i, label %if.then.i.i.i.i.i.i292.i.i.i + +if.then.i.i.i.i.i.i292.i.i.i: ; preds = %for.body.i.i.i289.i.i.i + %m_ref_count.i.i.i.i.i.i.i293.i.i.i = getelementptr inbounds %class.ast, ptr %1015, i64 0, i32 2 + %1017 = load i32, ptr %m_ref_count.i.i.i.i.i.i.i293.i.i.i, align 4 + %dec.i.i.i.i.i.i.i294.i.i.i = add i32 %1017, -1 + store i32 %dec.i.i.i.i.i.i.i294.i.i.i, ptr %m_ref_count.i.i.i.i.i.i.i293.i.i.i, align 4 + %cmp.i.i.i.i.i.i295.i.i.i = icmp eq i32 %dec.i.i.i.i.i.i.i294.i.i.i, 0 + br i1 %cmp.i.i.i.i.i.i295.i.i.i, label %if.then2.i.i.i.i.i.i305.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + +if.then2.i.i.i.i.i.i305.i.i.i: ; preds = %if.then.i.i.i.i.i.i292.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1016, ptr noundef nonnull %1015) + to label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i unwind label %terminate.lpad.i.i306.i.i.i + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i: ; preds = %if.then2.i.i.i.i.i.i305.i.i.i, %if.then.i.i.i.i.i.i292.i.i.i, %for.body.i.i.i289.i.i.i + %incdec.ptr.i.i.i297.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i290.i.i.i, i64 1 + %cmp.i1.i.i298.i.i.i = icmp ult ptr %incdec.ptr.i.i.i297.i.i.i, %add.ptr.i.i287.i.i.i + br i1 %cmp.i1.i.i298.i.i.i, label %for.body.i.i.i289.i.i.i, label %invoke.cont8.i.i299.i.i.i, !llvm.loop !6 + +invoke.cont8.i.i299.i.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i296.i.i.i + %.pre.i.i300.i.i.i = load ptr, ptr %m_nodes.i.i.i48.i.i, align 8 + %tobool.not.i.i.i.i.i301.i.i.i = icmp eq ptr %.pre.i.i300.i.i.i, null + br i1 %tobool.not.i.i.i.i.i301.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i, label %if.then.i.i.i.i.i302.i.i.i + +if.then.i.i.i.i.i302.i.i.i: ; preds = %invoke.cont8.i.i299.i.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i + %1018 = phi ptr [ %.pre.i.i300.i.i.i, %invoke.cont8.i.i299.i.i.i ], [ %1012, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i285.i.i.i ] + %add.ptr.i.i.i.i.i.i303.i.i.i = getelementptr inbounds i32, ptr %1018, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i303.i.i.i) + to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i unwind label %terminate.lpad.i.i.i.i304.i.i.i + +terminate.lpad.i.i.i.i304.i.i.i: ; preds = %if.then.i.i.i.i.i302.i.i.i + %1019 = landingpad { ptr, i32 } + catch ptr null + %1020 = extractvalue { ptr, i32 } %1019, 0 + call void @__clang_call_terminate(ptr %1020) #14 + unreachable + +terminate.lpad.i.i306.i.i.i: ; preds = %if.then2.i.i.i.i.i.i305.i.i.i + %1021 = landingpad { ptr, i32 } catch ptr null - %1013 = extractvalue { ptr, i32 } %1012, 0 - call void @__clang_call_terminate(ptr %1013) #14 + %1022 = extractvalue { ptr, i32 } %1021, 0 + call void @__clang_call_terminate(ptr %1022) #14 unreachable -ehcleanup.i.i259: ; preds = %lpad.i2018, %lpad37.i.i262 - %.pn.i45.i = phi { ptr, i32 } [ %lpad.phi2841, %lpad37.i.i262 ], [ %916, %lpad.i2018 ] - call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i194) #15 +ehcleanup.i.i.i161: ; preds = %lpad37.i.i.i, %lpad.i105.i.body.i.i + %.pn.i59.i.i = phi { ptr, i32 } [ %lpad.phi.i58.i.i, %lpad37.i.i.i ], [ %eh.lpad-body.i.i217, %lpad.i105.i.body.i.i ] + call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %new_pats.i.i.i42) #15 br label %common.resume -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i: ; preds = %_ZNK10quantifier9get_childEj.exit2097, %if.then.i.i.i.i.i1732, %invoke.cont8.i.i1729, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit1762 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i194) - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i195) - br label %while.cond.i204.backedgethread-pre-split - -sw.bb33.i: ; preds = %if.end28.i - %1014 = load ptr, ptr %m_frame_stack.i, align 8 - %arrayidx.i72.i = getelementptr inbounds i32, ptr %1014, i64 -1 - %1015 = load i32, ptr %arrayidx.i72.i, align 4 - %dec.i73.i = add i32 %1015, -1 - store i32 %dec.i73.i, ptr %arrayidx.i72.i, align 4 - call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %623) - br label %while.cond.i204.backedgethread-pre-split - -sw.default.i416: ; preds = %if.end28.i +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18process_quantifierILb0EEEvP10quantifierRN13rewriter_core5frameE.exit.i.i: ; preds = %_ZNK10quantifier9get_childEj.exit.i.i.i239, %if.then.i.i.i.i.i302.i.i.i, %invoke.cont8.i.i299.i.i.i, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit.i.i.i193 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_pats.i.i.i42) + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %new_no_pats.i.i.i43) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.bb33.i.i: ; preds = %if.end28.i.i + %1023 = load ptr, ptr %m_frame_stack.i, align 8 + %arrayidx.i143.i.i = getelementptr inbounds i32, ptr %1023, i64 -1 + %1024 = load i32, ptr %arrayidx.i143.i.i, align 4 + %dec.i144.i.i = add i32 %1024, -1 + store i32 %dec.i144.i.i, ptr %arrayidx.i143.i.i, align 4 + call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %624) + br label %while.cond.backedgethread-pre-split.i.i111 + +sw.default.i.i363: ; preds = %if.end28.i.i call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.5, i32 noundef 793, ptr noundef nonnull @.str.6) call void @exit(i32 noundef 114) #14 unreachable -while.end.i458: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i210, %while.cond.i204.backedge, %if.else.i58 - %m_result_stack.i74.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 - %m_nodes.i75.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1016 = load ptr, ptr %m_nodes.i75.i, align 8 - %cmp.i.i.i76.i = icmp eq ptr %1016, null - br i1 %cmp.i.i.i76.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i460, label %if.end.i.i.i.i459 - -if.end.i.i.i.i459: ; preds = %while.end.i458 - %arrayidx.i.i.i77.i = getelementptr inbounds i32, ptr %1016, i64 -1 - %1017 = load i32, ptr %arrayidx.i.i.i77.i, align 4 - %1018 = add i32 %1017, -1 - %1019 = zext i32 %1018 to i64 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i460 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i460: ; preds = %if.end.i.i.i.i459, %while.end.i458 - %retval.0.i.i.i.i461 = phi i64 [ %1019, %if.end.i.i.i.i459 ], [ 4294967295, %while.end.i458 ] - %arrayidx.i1.i.i.i462 = getelementptr inbounds ptr, ptr %1016, i64 %retval.0.i.i.i.i461 - %1020 = load ptr, ptr %arrayidx.i1.i.i.i462, align 8 - %tobool.not.i78.i = icmp eq ptr %1020, null - br i1 %tobool.not.i78.i, label %if.end.i79.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i463 - -_ZN11ast_manager7inc_refEP3ast.exit.i.i463: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i460 - %m_ref_count.i.i.i.i464 = getelementptr inbounds %class.ast, ptr %1020, i64 0, i32 2 - %1021 = load i32, ptr %m_ref_count.i.i.i.i464, align 4 - %inc.i.i.i.i465 = add i32 %1021, 1 - store i32 %inc.i.i.i.i465, ptr %m_ref_count.i.i.i.i464, align 4 - br label %if.end.i79.i - -if.end.i79.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i463, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i460 - %1022 = load ptr, ptr %result, align 8 - %tobool.not.i3.i.i466 = icmp eq ptr %1022, null - br i1 %tobool.not.i3.i.i466, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i471, label %if.then.i.i.i.i467 - -if.then.i.i.i.i467: ; preds = %if.end.i79.i - %m_manager.i.i.i468 = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 - %1023 = load ptr, ptr %m_manager.i.i.i468, align 8 - %m_ref_count.i.i.i.i.i469 = getelementptr inbounds %class.ast, ptr %1022, i64 0, i32 2 - %1024 = load i32, ptr %m_ref_count.i.i.i.i.i469, align 4 - %dec.i.i.i.i.i470 = add i32 %1024, -1 - store i32 %dec.i.i.i.i.i470, ptr %m_ref_count.i.i.i.i.i469, align 4 - %cmp.i.i.i80.i = icmp eq i32 %dec.i.i.i.i.i470, 0 - br i1 %cmp.i.i.i80.i, label %if.then2.i.i.i.i481, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i471 - -if.then2.i.i.i.i481: ; preds = %if.then.i.i.i.i467 - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1023, ptr noundef nonnull %1022) - br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i471 - -_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i471: ; preds = %if.then2.i.i.i.i481, %if.then.i.i.i.i467, %if.end.i79.i - store ptr %1020, ptr %result, align 8 - %1025 = load ptr, ptr %m_nodes.i75.i, align 8 - %cmp.i.i.i83.i = icmp eq ptr %1025, null - br i1 %cmp.i.i.i83.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i478, label %if.end.i.i.i84.i - -entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i478: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i471 - %.pre.i.i479 = load i32, ptr inttoptr (i64 -4 to ptr), align 4 - %.pre1.i.i480 = add i32 %.pre.i.i479, -1 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i472 - -if.end.i.i.i84.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i471 - %arrayidx.i.i.i85.i = getelementptr inbounds i32, ptr %1025, i64 -1 - %1026 = load i32, ptr %arrayidx.i.i.i85.i, align 4 +while.end.i.i115: ; preds = %while.cond.backedge.i.i113, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i87, %if.else.i77 + %m_result_stack.i145.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7 + %m_nodes.i146.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1025 = load ptr, ptr %m_nodes.i146.i.i, align 8 + %cmp.i.i.i147.i.i = icmp eq ptr %1025, null + br i1 %cmp.i.i.i147.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116, label %if.end.i.i.i148.i.i + +if.end.i.i.i148.i.i: ; preds = %while.end.i.i115 + %arrayidx.i.i.i149.i.i = getelementptr inbounds i32, ptr %1025, i64 -1 + %1026 = load i32, ptr %arrayidx.i.i.i149.i.i, align 4 %1027 = add i32 %1026, -1 %1028 = zext i32 %1027 to i64 - br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i472 - -_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i472: ; preds = %if.end.i.i.i84.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i478 - %dec.i.pre-phi.i.i473 = phi i32 [ %.pre1.i.i480, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i478 ], [ %1027, %if.end.i.i.i84.i ] - %retval.0.i.i.i86.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i478 ], [ %1028, %if.end.i.i.i84.i ] - %arrayidx.i1.i.i87.i = getelementptr inbounds ptr, ptr %1025, i64 %retval.0.i.i.i86.i - %1029 = load ptr, ptr %arrayidx.i1.i.i87.i, align 8 - %arrayidx.i.i88.i = getelementptr inbounds i32, ptr %1025, i64 -1 - store i32 %dec.i.pre-phi.i.i473, ptr %arrayidx.i.i88.i, align 4 - %1030 = load ptr, ptr %m_result_stack.i74.i, align 8 - %tobool.not.i.i.i.i89.i = icmp eq ptr %1029, null - br i1 %tobool.not.i.i.i.i89.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit, label %if.then.i.i.i.i90.i - -if.then.i.i.i.i90.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i472 - %m_ref_count.i.i.i.i.i91.i = getelementptr inbounds %class.ast, ptr %1029, i64 0, i32 2 - %1031 = load i32, ptr %m_ref_count.i.i.i.i.i91.i, align 4 - %dec.i.i.i.i.i.i474 = add i32 %1031, -1 - store i32 %dec.i.i.i.i.i.i474, ptr %m_ref_count.i.i.i.i.i91.i, align 4 - %cmp.i.i.i.i.i475 = icmp eq i32 %dec.i.i.i.i.i.i474, 0 - br i1 %cmp.i.i.i.i.i475, label %if.then2.i.i.i.i.i477, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -if.then2.i.i.i.i.i477: ; preds = %if.then.i.i.i.i90.i - call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1030, ptr noundef nonnull %1029) - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - -unreachable.i234: ; preds = %invoke.cont11.i231 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116: ; preds = %if.end.i.i.i148.i.i, %while.end.i.i115 + %retval.0.i.i.i150.i.i = phi i64 [ %1028, %if.end.i.i.i148.i.i ], [ 4294967295, %while.end.i.i115 ] + %arrayidx.i1.i.i.i.i117 = getelementptr inbounds ptr, ptr %1025, i64 %retval.0.i.i.i150.i.i + %1029 = load ptr, ptr %arrayidx.i1.i.i.i.i117, align 8 + %tobool.not.i151.i.i = icmp eq ptr %1029, null + br i1 %tobool.not.i151.i.i, label %if.end.i153.i.i, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118 + +_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + %m_ref_count.i.i.i.i44.i = getelementptr inbounds %class.ast, ptr %1029, i64 0, i32 2 + %1030 = load i32, ptr %m_ref_count.i.i.i.i44.i, align 4 + %inc.i.i.i152.i.i = add i32 %1030, 1 + store i32 %inc.i.i.i152.i.i, ptr %m_ref_count.i.i.i.i44.i, align 4 + br label %if.end.i153.i.i + +if.end.i153.i.i: ; preds = %_ZN11ast_manager7inc_refEP3ast.exit.i.i.i118, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit.i.i116 + %1031 = load ptr, ptr %result, align 8 + %tobool.not.i3.i.i.i119 = icmp eq ptr %1031, null + br i1 %tobool.not.i3.i.i.i119, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120, label %if.then.i.i.i154.i.i + +if.then.i.i.i154.i.i: ; preds = %if.end.i153.i.i + %m_manager.i.i155.i.i = getelementptr inbounds %class.obj_ref.61, ptr %result, i64 0, i32 1 + %1032 = load ptr, ptr %m_manager.i.i155.i.i, align 8 + %m_ref_count.i.i.i.i156.i.i = getelementptr inbounds %class.ast, ptr %1031, i64 0, i32 2 + %1033 = load i32, ptr %m_ref_count.i.i.i.i156.i.i, align 4 + %dec.i.i.i.i157.i.i = add i32 %1033, -1 + store i32 %dec.i.i.i.i157.i.i, ptr %m_ref_count.i.i.i.i156.i.i, align 4 + %cmp.i.i.i158.i.i = icmp eq i32 %dec.i.i.i.i157.i.i, 0 + br i1 %cmp.i.i.i158.i.i, label %if.then2.i.i.i159.i.i, label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + +if.then2.i.i.i159.i.i: ; preds = %if.then.i.i.i154.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1032, ptr noundef nonnull %1031) + br label %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + +_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120: ; preds = %if.then2.i.i.i159.i.i, %if.then.i.i.i154.i.i, %if.end.i153.i.i + store ptr %1029, ptr %result, align 8 + %1034 = load ptr, ptr %m_nodes.i146.i.i, align 8 + %cmp.i.i.i162.i.i = icmp eq ptr %1034, null + br i1 %cmp.i.i.i162.i.i, label %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123, label %if.end.i.i.i163.i.i + +entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + %.pre.i174.i.i = load i32, ptr inttoptr (i64 -4 to ptr), align 4 + %.pre1.i.i.i124 = add i32 %.pre.i174.i.i, -1 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + +if.end.i.i.i163.i.i: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i.i120 + %arrayidx.i.i.i164.i.i = getelementptr inbounds i32, ptr %1034, i64 -1 + %1035 = load i32, ptr %arrayidx.i.i.i164.i.i, align 4 + %1036 = add i32 %1035, -1 + %1037 = zext i32 %1036 to i64 + br label %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + +_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121: ; preds = %if.end.i.i.i163.i.i, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 + %dec.i.pre-phi.i.i.i122 = phi i32 [ %.pre1.i.i.i124, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 ], [ %1036, %if.end.i.i.i163.i.i ] + %retval.0.i.i.i165.i.i = phi i64 [ 4294967295, %entry._ZN6vectorIP4exprLb0EjE4backEv.exit_crit_edge.i.i.i123 ], [ %1037, %if.end.i.i.i163.i.i ] + %arrayidx.i1.i.i166.i.i = getelementptr inbounds ptr, ptr %1034, i64 %retval.0.i.i.i165.i.i + %1038 = load ptr, ptr %arrayidx.i1.i.i166.i.i, align 8 + %arrayidx.i.i167.i.i = getelementptr inbounds i32, ptr %1034, i64 -1 + store i32 %dec.i.pre-phi.i.i.i122, ptr %arrayidx.i.i167.i.i, align 4 + %1039 = load ptr, ptr %m_result_stack.i145.i.i, align 8 + %tobool.not.i.i.i.i168.i.i = icmp eq ptr %1038, null + br i1 %tobool.not.i.i.i.i168.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i, label %if.then.i.i.i.i169.i.i + +if.then.i.i.i.i169.i.i: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + %m_ref_count.i.i.i.i.i170.i.i = getelementptr inbounds %class.ast, ptr %1038, i64 0, i32 2 + %1040 = load i32, ptr %m_ref_count.i.i.i.i.i170.i.i, align 4 + %dec.i.i.i.i.i171.i.i = add i32 %1040, -1 + store i32 %dec.i.i.i.i.i171.i.i, ptr %m_ref_count.i.i.i.i.i170.i.i, align 4 + %cmp.i.i.i.i172.i.i = icmp eq i32 %dec.i.i.i.i.i171.i.i, 0 + br i1 %cmp.i.i.i.i172.i.i, label %if.then2.i.i.i.i173.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +if.then2.i.i.i.i173.i.i: ; preds = %if.then.i.i.i.i169.i.i + call void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %1039, ptr noundef nonnull %1038) + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + +unreachable.i.i102: ; preds = %invoke.cont11.i.i99 unreachable -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i472, %if.then.i.i.i.i90.i, %if.then2.i.i.i.i.i477 - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i202) - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i203) +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i: ; preds = %if.then2.i.i.i.i173.i.i, %if.then.i.i.i.i169.i.i, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i.i121 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i.i45) + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp9.i.i46) br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit -unreachable.i52: ; preds = %invoke.cont10.i +unreachable.i66: ; preds = %invoke.cont10.i unreachable -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %if.then2.i.i.i.i496, %if.then.i.i.i.i492, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i486, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit535, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit - call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i31) +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE9main_loopILb0EEEvP4exprR7obj_refIS5_11ast_managerERS7_I3appS8_E.exit: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit.i73, %_ZN6vectorIP4exprLb0EjE4backEv.exit.i.i399, %if.then.i.i.i.i.i403, %if.then2.i.i.i.i.i407, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11resume_coreILb0EEEvR7obj_refI4expr11ast_managerERS5_I3appS7_E.exit.i + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i47) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp8.i) br label %if.end8 @@ -9244,94 +9514,92 @@ entry: ; Function Attrs: mustprogress uwtable define internal fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb1EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef %max_depth) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { if.end: - %t.i = alloca %class.obj_ref.62, align 8 - %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 %cmp = icmp eq i32 %max_depth, 0 br i1 %cmp, label %if.then6, label %if.end11 if.then6: ; preds = %if.end - %tobool.not.i.i.i.i56 = icmp eq ptr %t, null - br i1 %tobool.not.i.i.i.i56, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60, label %if.then.i.i.i.i57 - -if.then.i.i.i.i57: ; preds = %if.then6 - %m_ref_count.i.i.i.i.i58 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %0 = load i32, ptr %m_ref_count.i.i.i.i.i58, align 4 - %inc.i.i.i.i.i59 = add i32 %0, 1 - store i32 %inc.i.i.i.i.i59, ptr %m_ref_count.i.i.i.i.i58, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60: ; preds = %if.then.i.i.i.i57, %if.then6 - %m_nodes.i61 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1 = load ptr, ptr %m_nodes.i61, align 8 - %cmp.i.i62 = icmp eq ptr %1, null - br i1 %cmp.i.i62, label %if.then.i.i71, label %lor.lhs.false.i.i63 - -lor.lhs.false.i.i63: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - %arrayidx.i.i64 = getelementptr inbounds i32, ptr %1, i64 -1 - %2 = load i32, ptr %arrayidx.i.i64, align 4 - %arrayidx4.i.i65 = getelementptr inbounds i32, ptr %1, i64 -2 - %3 = load i32, ptr %arrayidx4.i.i65, align 4 - %cmp5.i.i66 = icmp eq i32 %2, %3 - br i1 %cmp5.i.i66, label %if.then.i.i71, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - -if.then.i.i71: ; preds = %lor.lhs.false.i.i63, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i60 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i61) - %.pre.i.i72 = load ptr, ptr %m_nodes.i61, align 8 - %arrayidx8.phi.trans.insert.i.i73 = getelementptr inbounds i32, ptr %.pre.i.i72, i64 -1 - %.pre1.i.i74 = load i32, ptr %arrayidx8.phi.trans.insert.i.i73, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75: ; preds = %lor.lhs.false.i.i63, %if.then.i.i71 - %4 = phi i32 [ %.pre1.i.i74, %if.then.i.i71 ], [ %2, %lor.lhs.false.i.i63 ] - %5 = phi ptr [ %.pre.i.i72, %if.then.i.i71 ], [ %1, %lor.lhs.false.i.i63 ] - %idx.ext.i.i67 = zext i32 %4 to i64 - %add.ptr.i.i68 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i67 - store ptr %t, ptr %add.ptr.i.i68, align 8 - %6 = load ptr, ptr %m_nodes.i61, align 8 - %arrayidx10.i.i69 = getelementptr inbounds i32, ptr %6, i64 -1 - %7 = load i32, ptr %arrayidx10.i.i69, align 4 - %inc.i.i70 = add i32 %7, 1 - store i32 %inc.i.i70, ptr %arrayidx10.i.i69, align 4 - %m_nodes.i78 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %8 = load ptr, ptr %m_nodes.i78, align 8 - %cmp.i.i79 = icmp eq ptr %8, null - br i1 %cmp.i.i79, label %if.then.i.i88, label %lor.lhs.false.i.i80 - -lor.lhs.false.i.i80: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - %arrayidx.i.i81 = getelementptr inbounds i32, ptr %8, i64 -1 - %9 = load i32, ptr %arrayidx.i.i81, align 4 - %arrayidx4.i.i82 = getelementptr inbounds i32, ptr %8, i64 -2 - %10 = load i32, ptr %arrayidx4.i.i82, align 4 - %cmp5.i.i83 = icmp eq i32 %9, %10 - br i1 %cmp5.i.i83, label %if.then.i.i88, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - -if.then.i.i88: ; preds = %lor.lhs.false.i.i80, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit75 - tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i78) - %.pre.i.i89 = load ptr, ptr %m_nodes.i78, align 8 - %arrayidx8.phi.trans.insert.i.i90 = getelementptr inbounds i32, ptr %.pre.i.i89, i64 -1 - %.pre1.i.i91 = load i32, ptr %arrayidx8.phi.trans.insert.i.i90, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92: ; preds = %lor.lhs.false.i.i80, %if.then.i.i88 - %11 = phi i32 [ %.pre1.i.i91, %if.then.i.i88 ], [ %9, %lor.lhs.false.i.i80 ] - %12 = phi ptr [ %.pre.i.i89, %if.then.i.i88 ], [ %8, %lor.lhs.false.i.i80 ] - %idx.ext.i.i84 = zext i32 %11 to i64 - %add.ptr.i.i85 = getelementptr inbounds ptr, ptr %12, i64 %idx.ext.i.i84 - store ptr null, ptr %add.ptr.i.i85, align 8 - %13 = load ptr, ptr %m_nodes.i78, align 8 - %arrayidx10.i.i86 = getelementptr inbounds i32, ptr %13, i64 -1 - %14 = load i32, ptr %arrayidx10.i.i86, align 4 - %inc.i.i87 = add i32 %14, 1 - store i32 %inc.i.i87, ptr %arrayidx10.i.i86, align 4 + %tobool.not.i.i.i.i52 = icmp eq ptr %t, null + br i1 %tobool.not.i.i.i.i52, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56, label %if.then.i.i.i.i53 + +if.then.i.i.i.i53: ; preds = %if.then6 + %m_ref_count.i.i.i.i.i54 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %0 = load i32, ptr %m_ref_count.i.i.i.i.i54, align 4 + %inc.i.i.i.i.i55 = add i32 %0, 1 + store i32 %inc.i.i.i.i.i55, ptr %m_ref_count.i.i.i.i.i54, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56: ; preds = %if.then.i.i.i.i53, %if.then6 + %m_nodes.i57 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1 = load ptr, ptr %m_nodes.i57, align 8 + %cmp.i.i58 = icmp eq ptr %1, null + br i1 %cmp.i.i58, label %if.then.i.i67, label %lor.lhs.false.i.i59 + +lor.lhs.false.i.i59: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + %arrayidx.i.i60 = getelementptr inbounds i32, ptr %1, i64 -1 + %2 = load i32, ptr %arrayidx.i.i60, align 4 + %arrayidx4.i.i61 = getelementptr inbounds i32, ptr %1, i64 -2 + %3 = load i32, ptr %arrayidx4.i.i61, align 4 + %cmp5.i.i62 = icmp eq i32 %2, %3 + br i1 %cmp5.i.i62, label %if.then.i.i67, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + +if.then.i.i67: ; preds = %lor.lhs.false.i.i59, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i56 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i57) + %.pre.i.i68 = load ptr, ptr %m_nodes.i57, align 8 + %arrayidx8.phi.trans.insert.i.i69 = getelementptr inbounds i32, ptr %.pre.i.i68, i64 -1 + %.pre1.i.i70 = load i32, ptr %arrayidx8.phi.trans.insert.i.i69, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71: ; preds = %lor.lhs.false.i.i59, %if.then.i.i67 + %4 = phi i32 [ %.pre1.i.i70, %if.then.i.i67 ], [ %2, %lor.lhs.false.i.i59 ] + %5 = phi ptr [ %.pre.i.i68, %if.then.i.i67 ], [ %1, %lor.lhs.false.i.i59 ] + %idx.ext.i.i63 = zext i32 %4 to i64 + %add.ptr.i.i64 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i63 + store ptr %t, ptr %add.ptr.i.i64, align 8 + %6 = load ptr, ptr %m_nodes.i57, align 8 + %arrayidx10.i.i65 = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx10.i.i65, align 4 + %inc.i.i66 = add i32 %7, 1 + store i32 %inc.i.i66, ptr %arrayidx10.i.i65, align 4 + %m_nodes.i74 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %8 = load ptr, ptr %m_nodes.i74, align 8 + %cmp.i.i75 = icmp eq ptr %8, null + br i1 %cmp.i.i75, label %if.then.i.i84, label %lor.lhs.false.i.i76 + +lor.lhs.false.i.i76: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + %arrayidx.i.i77 = getelementptr inbounds i32, ptr %8, i64 -1 + %9 = load i32, ptr %arrayidx.i.i77, align 4 + %arrayidx4.i.i78 = getelementptr inbounds i32, ptr %8, i64 -2 + %10 = load i32, ptr %arrayidx4.i.i78, align 4 + %cmp5.i.i79 = icmp eq i32 %9, %10 + br i1 %cmp5.i.i79, label %if.then.i.i84, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + +if.then.i.i84: ; preds = %lor.lhs.false.i.i76, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit71 + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i74) + %.pre.i.i85 = load ptr, ptr %m_nodes.i74, align 8 + %arrayidx8.phi.trans.insert.i.i86 = getelementptr inbounds i32, ptr %.pre.i.i85, i64 -1 + %.pre1.i.i87 = load i32, ptr %arrayidx8.phi.trans.insert.i.i86, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88: ; preds = %lor.lhs.false.i.i76, %if.then.i.i84 + %11 = phi i32 [ %.pre1.i.i87, %if.then.i.i84 ], [ %9, %lor.lhs.false.i.i76 ] + %12 = phi ptr [ %.pre.i.i85, %if.then.i.i84 ], [ %8, %lor.lhs.false.i.i76 ] + %idx.ext.i.i80 = zext i32 %11 to i64 + %add.ptr.i.i81 = getelementptr inbounds ptr, ptr %12, i64 %idx.ext.i.i80 + store ptr null, ptr %add.ptr.i.i81, align 8 + %13 = load ptr, ptr %m_nodes.i74, align 8 + %arrayidx10.i.i82 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx10.i.i82, align 4 + %inc.i.i83 = add i32 %14, 1 + store i32 %inc.i.i83, ptr %arrayidx10.i.i82, align 4 br label %return if.end11: ; preds = %if.end %15 = getelementptr inbounds i8, ptr %this, i64 120 - %this.val35 = load ptr, ptr %15, align 8 + %this.val31 = load ptr, ptr %15, align 8 %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 %16 = load i32, ptr %m_ref_count.i.i.i, align 4 %cmp.i9.i = icmp ult i32 %16, 2 - %cmp2.not.i.i = icmp eq ptr %this.val35, %t + %cmp2.not.i.i = icmp eq ptr %this.val31, %t %or.cond.i.i = select i1 %cmp.i9.i, i1 true, i1 %cmp2.not.i.i br i1 %or.cond.i.i, label %if.end30, label %land.rhs.i.i @@ -9355,120 +9623,120 @@ if.then13: ; preds = %land.rhs.i.i, %land %18 = load ptr, ptr %m_cache.i, align 8 %call.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %18, ptr noundef nonnull %t, i32 noundef 0) %tobool15.not = icmp eq ptr %call.i.i, null - br i1 %tobool15.not, label %if.end30, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99: ; preds = %if.then13 - %m_ref_count.i.i.i.i.i97 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 - %19 = load i32, ptr %m_ref_count.i.i.i.i.i97, align 4 - %inc.i.i.i.i.i98 = add i32 %19, 1 - store i32 %inc.i.i.i.i.i98, ptr %m_ref_count.i.i.i.i.i97, align 4 - %m_nodes.i100 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %20 = load ptr, ptr %m_nodes.i100, align 8 - %cmp.i.i101 = icmp eq ptr %20, null - br i1 %cmp.i.i101, label %if.then.i.i110, label %lor.lhs.false.i.i102 - -lor.lhs.false.i.i102: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - %arrayidx.i.i103 = getelementptr inbounds i32, ptr %20, i64 -1 - %21 = load i32, ptr %arrayidx.i.i103, align 4 - %arrayidx4.i.i104 = getelementptr inbounds i32, ptr %20, i64 -2 - %22 = load i32, ptr %arrayidx4.i.i104, align 4 - %cmp5.i.i105 = icmp eq i32 %21, %22 - br i1 %cmp5.i.i105, label %if.then.i.i110, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - -if.then.i.i110: ; preds = %lor.lhs.false.i.i102, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i99 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i100) - %.pre.i.i111 = load ptr, ptr %m_nodes.i100, align 8 - %arrayidx8.phi.trans.insert.i.i112 = getelementptr inbounds i32, ptr %.pre.i.i111, i64 -1 - %.pre1.i.i113 = load i32, ptr %arrayidx8.phi.trans.insert.i.i112, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114: ; preds = %lor.lhs.false.i.i102, %if.then.i.i110 - %23 = phi i32 [ %.pre1.i.i113, %if.then.i.i110 ], [ %21, %lor.lhs.false.i.i102 ] - %24 = phi ptr [ %.pre.i.i111, %if.then.i.i110 ], [ %20, %lor.lhs.false.i.i102 ] - %idx.ext.i.i106 = zext i32 %23 to i64 - %add.ptr.i.i107 = getelementptr inbounds ptr, ptr %24, i64 %idx.ext.i.i106 - store ptr %call.i.i, ptr %add.ptr.i.i107, align 8 - %25 = load ptr, ptr %m_nodes.i100, align 8 - %arrayidx10.i.i108 = getelementptr inbounds i32, ptr %25, i64 -1 - %26 = load i32, ptr %arrayidx10.i.i108, align 4 - %inc.i.i109 = add i32 %26, 1 - store i32 %inc.i.i109, ptr %arrayidx10.i.i108, align 4 + br i1 %tobool15.not, label %if.end30, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95: ; preds = %if.then13 + %m_ref_count.i.i.i.i.i93 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 + %19 = load i32, ptr %m_ref_count.i.i.i.i.i93, align 4 + %inc.i.i.i.i.i94 = add i32 %19, 1 + store i32 %inc.i.i.i.i.i94, ptr %m_ref_count.i.i.i.i.i93, align 4 + %m_nodes.i96 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %20 = load ptr, ptr %m_nodes.i96, align 8 + %cmp.i.i97 = icmp eq ptr %20, null + br i1 %cmp.i.i97, label %if.then.i.i106, label %lor.lhs.false.i.i98 + +lor.lhs.false.i.i98: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + %arrayidx.i.i99 = getelementptr inbounds i32, ptr %20, i64 -1 + %21 = load i32, ptr %arrayidx.i.i99, align 4 + %arrayidx4.i.i100 = getelementptr inbounds i32, ptr %20, i64 -2 + %22 = load i32, ptr %arrayidx4.i.i100, align 4 + %cmp5.i.i101 = icmp eq i32 %21, %22 + br i1 %cmp5.i.i101, label %if.then.i.i106, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + +if.then.i.i106: ; preds = %lor.lhs.false.i.i98, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i95 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i96) + %.pre.i.i107 = load ptr, ptr %m_nodes.i96, align 8 + %arrayidx8.phi.trans.insert.i.i108 = getelementptr inbounds i32, ptr %.pre.i.i107, i64 -1 + %.pre1.i.i109 = load i32, ptr %arrayidx8.phi.trans.insert.i.i108, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110: ; preds = %lor.lhs.false.i.i98, %if.then.i.i106 + %23 = phi i32 [ %.pre1.i.i109, %if.then.i.i106 ], [ %21, %lor.lhs.false.i.i98 ] + %24 = phi ptr [ %.pre.i.i107, %if.then.i.i106 ], [ %20, %lor.lhs.false.i.i98 ] + %idx.ext.i.i102 = zext i32 %23 to i64 + %add.ptr.i.i103 = getelementptr inbounds ptr, ptr %24, i64 %idx.ext.i.i102 + store ptr %call.i.i, ptr %add.ptr.i.i103, align 8 + %25 = load ptr, ptr %m_nodes.i96, align 8 + %arrayidx10.i.i104 = getelementptr inbounds i32, ptr %25, i64 -1 + %26 = load i32, ptr %arrayidx10.i.i104, align 4 + %inc.i.i105 = add i32 %26, 1 + store i32 %inc.i.i105, ptr %arrayidx10.i.i104, align 4 %27 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val33 = load ptr, ptr %27, align 8 - %cmp.not.i115 = icmp eq ptr %call.i.i, %t - %cmp.i.i.i116 = icmp eq ptr %this.val33, null - %or.cond.i117 = select i1 %cmp.not.i115, i1 true, i1 %cmp.i.i.i116 - br i1 %or.cond.i117, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit125, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114 - %arrayidx.i.i.i119 = getelementptr inbounds i32, ptr %this.val33, i64 -1 - %28 = load i32, ptr %arrayidx.i.i.i119, align 4 - %cmp3.i.i.i120 = icmp eq i32 %28, 0 - br i1 %cmp3.i.i.i120, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit125, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118 + %this.val30 = load ptr, ptr %27, align 8 + %cmp.not.i111 = icmp eq ptr %call.i.i, %t + %cmp.i.i.i112 = icmp eq ptr %this.val30, null + %or.cond.i113 = select i1 %cmp.not.i111, i1 true, i1 %cmp.i.i.i112 + br i1 %or.cond.i113, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit121, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110 + %arrayidx.i.i.i115 = getelementptr inbounds i32, ptr %this.val30, i64 -1 + %28 = load i32, ptr %arrayidx.i.i.i115, align 4 + %cmp3.i.i.i116 = icmp eq i32 %28, 0 + br i1 %cmp3.i.i.i116, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit121, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114 %29 = add i32 %28, -1 %30 = zext i32 %29 to i64 - %m_new_child.i.i122 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val33, i64 %30, i32 1 - %bf.load.i.i123 = load i32, ptr %m_new_child.i.i122, align 8 - %bf.set.i.i124 = or i32 %bf.load.i.i123, 2 - store i32 %bf.set.i.i124, ptr %m_new_child.i.i122, align 8 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit125 + %m_new_child.i.i118 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val30, i64 %30, i32 1 + %bf.load.i.i119 = load i32, ptr %m_new_child.i.i118, align 8 + %bf.set.i.i120 = or i32 %bf.load.i.i119, 2 + store i32 %bf.set.i.i120, ptr %m_new_child.i.i118, align 8 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit121 -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit125: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit114, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i118, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i121 +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit121: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit110, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i114, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i117 %m_cache_pr.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 9 %31 = load ptr, ptr %m_cache_pr.i, align 8 - %call.i.i126 = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %31, ptr noundef nonnull %t, i32 noundef 0) - %tobool.not.i.i.i.i128 = icmp eq ptr %call.i.i126, null - br i1 %tobool.not.i.i.i.i128, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132, label %if.then.i.i.i.i129 - -if.then.i.i.i.i129: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit125 - %m_ref_count.i.i.i.i.i130 = getelementptr inbounds %class.ast, ptr %call.i.i126, i64 0, i32 2 - %32 = load i32, ptr %m_ref_count.i.i.i.i.i130, align 4 - %inc.i.i.i.i.i131 = add i32 %32, 1 - store i32 %inc.i.i.i.i.i131, ptr %m_ref_count.i.i.i.i.i130, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132: ; preds = %if.then.i.i.i.i129, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit125 - %m_nodes.i133 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %33 = load ptr, ptr %m_nodes.i133, align 8 - %cmp.i.i134 = icmp eq ptr %33, null - br i1 %cmp.i.i134, label %if.then.i.i143, label %lor.lhs.false.i.i135 - -lor.lhs.false.i.i135: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - %arrayidx.i.i136 = getelementptr inbounds i32, ptr %33, i64 -1 - %34 = load i32, ptr %arrayidx.i.i136, align 4 - %arrayidx4.i.i137 = getelementptr inbounds i32, ptr %33, i64 -2 - %35 = load i32, ptr %arrayidx4.i.i137, align 4 - %cmp5.i.i138 = icmp eq i32 %34, %35 - br i1 %cmp5.i.i138, label %if.then.i.i143, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 - -if.then.i.i143: ; preds = %lor.lhs.false.i.i135, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i132 - tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i133) - %.pre.i.i144 = load ptr, ptr %m_nodes.i133, align 8 - %arrayidx8.phi.trans.insert.i.i145 = getelementptr inbounds i32, ptr %.pre.i.i144, i64 -1 - %.pre1.i.i146 = load i32, ptr %arrayidx8.phi.trans.insert.i.i145, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147: ; preds = %lor.lhs.false.i.i135, %if.then.i.i143 - %36 = phi i32 [ %.pre1.i.i146, %if.then.i.i143 ], [ %34, %lor.lhs.false.i.i135 ] - %37 = phi ptr [ %.pre.i.i144, %if.then.i.i143 ], [ %33, %lor.lhs.false.i.i135 ] - %idx.ext.i.i139 = zext i32 %36 to i64 - %add.ptr.i.i140 = getelementptr inbounds ptr, ptr %37, i64 %idx.ext.i.i139 - store ptr %call.i.i126, ptr %add.ptr.i.i140, align 8 - %38 = load ptr, ptr %m_nodes.i133, align 8 - %arrayidx10.i.i141 = getelementptr inbounds i32, ptr %38, i64 -1 - %39 = load i32, ptr %arrayidx10.i.i141, align 4 - %inc.i.i142 = add i32 %39, 1 - store i32 %inc.i.i142, ptr %arrayidx10.i.i141, align 4 + %call.i.i122 = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %31, ptr noundef nonnull %t, i32 noundef 0) + %tobool.not.i.i.i.i124 = icmp eq ptr %call.i.i122, null + br i1 %tobool.not.i.i.i.i124, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128, label %if.then.i.i.i.i125 + +if.then.i.i.i.i125: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit121 + %m_ref_count.i.i.i.i.i126 = getelementptr inbounds %class.ast, ptr %call.i.i122, i64 0, i32 2 + %32 = load i32, ptr %m_ref_count.i.i.i.i.i126, align 4 + %inc.i.i.i.i.i127 = add i32 %32, 1 + store i32 %inc.i.i.i.i.i127, ptr %m_ref_count.i.i.i.i.i126, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128: ; preds = %if.then.i.i.i.i125, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE18set_new_child_flagEP4exprS5_.exit121 + %m_nodes.i129 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %33 = load ptr, ptr %m_nodes.i129, align 8 + %cmp.i.i130 = icmp eq ptr %33, null + br i1 %cmp.i.i130, label %if.then.i.i139, label %lor.lhs.false.i.i131 + +lor.lhs.false.i.i131: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + %arrayidx.i.i132 = getelementptr inbounds i32, ptr %33, i64 -1 + %34 = load i32, ptr %arrayidx.i.i132, align 4 + %arrayidx4.i.i133 = getelementptr inbounds i32, ptr %33, i64 -2 + %35 = load i32, ptr %arrayidx4.i.i133, align 4 + %cmp5.i.i134 = icmp eq i32 %34, %35 + br i1 %cmp5.i.i134, label %if.then.i.i139, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 + +if.then.i.i139: ; preds = %lor.lhs.false.i.i131, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i128 + tail call void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i129) + %.pre.i.i140 = load ptr, ptr %m_nodes.i129, align 8 + %arrayidx8.phi.trans.insert.i.i141 = getelementptr inbounds i32, ptr %.pre.i.i140, i64 -1 + %.pre1.i.i142 = load i32, ptr %arrayidx8.phi.trans.insert.i.i141, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143: ; preds = %lor.lhs.false.i.i131, %if.then.i.i139 + %36 = phi i32 [ %.pre1.i.i142, %if.then.i.i139 ], [ %34, %lor.lhs.false.i.i131 ] + %37 = phi ptr [ %.pre.i.i140, %if.then.i.i139 ], [ %33, %lor.lhs.false.i.i131 ] + %idx.ext.i.i135 = zext i32 %36 to i64 + %add.ptr.i.i136 = getelementptr inbounds ptr, ptr %37, i64 %idx.ext.i.i135 + store ptr %call.i.i122, ptr %add.ptr.i.i136, align 8 + %38 = load ptr, ptr %m_nodes.i129, align 8 + %arrayidx10.i.i137 = getelementptr inbounds i32, ptr %38, i64 -1 + %39 = load i32, ptr %arrayidx10.i.i137, align 4 + %inc.i.i138 = add i32 %39, 1 + store i32 %inc.i.i138, ptr %arrayidx10.i.i137, align 4 br label %return if.end30: ; preds = %land.rhs.i.i, %land.lhs.true4.i.i, %if.end11, %if.then13 %conv.i.i.i = phi i32 [ 1, %if.then13 ], [ 0, %if.end11 ], [ 0, %land.lhs.true4.i.i ], [ 0, %land.rhs.i.i ] %m_kind.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 1 %bf.load.i = load i32, ptr %m_kind.i, align 4 - %trunc241 = trunc i32 %bf.load.i to i16 - switch i16 %trunc241, label %sw.default [ + %trunc214 = trunc i32 %bf.load.i to i16 + switch i16 %trunc214, label %sw.default [ i16 0, label %sw.bb i16 1, label %sw.bb75 i16 2, label %sw.bb77 @@ -9478,374 +9746,65 @@ sw.bb: ; preds = %if.end30 %m_num_args.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 2 %40 = load i32, ptr %m_num_args.i, align 8 %cmp34 = icmp eq i32 %40, 0 - br i1 %cmp34, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i, label %if.end70 - -_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i: ; preds = %sw.bb - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %t.i) - %41 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val4.i = load ptr, ptr %41, align 8 - store ptr %t, ptr %t.i, align 8 - %m_manager.i.i = getelementptr inbounds %class.obj_ref.62, ptr %t.i, i64 0, i32 1 - store ptr %this.val4.i, ptr %m_manager.i.i, align 8 - %42 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i = add i32 %42, 1 - store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %43 = load ptr, ptr %m_cfg, align 8 - %m_decl.i.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 1 - %44 = load ptr, ptr %m_decl.i.i, align 8 - %m_r.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %m_pr.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 - %call6.i = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %43, ptr noundef %44, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i) - to label %invoke.cont5.i unwind label %lpad.i - -invoke.cont5.i: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i - %switch.i = icmp eq i32 %call6.i, 5 - br i1 %switch.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %sw.bb20.i - -lpad.i: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i, %if.then2.i.i.i94.i, %if.then2.i.i.i.i, %if.then.i.i80.i, %if.else.i, %if.then.i.i58.i, %if.then.i.i37.i, %if.then.i.i16.i, %if.then.i.i.i262 - %45 = landingpad { ptr, i32 } - cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t.i) #15 - resume { ptr, i32 } %45 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %invoke.cont5.i - %46 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i.i = add i32 %46, 1 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %47 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %47, null - br i1 %cmp.i.i.i, label %if.then.i.i.i262, label %lor.lhs.false.i.i.i255 - -lor.lhs.false.i.i.i255: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %47, i64 -1 - %48 = load i32, ptr %arrayidx.i.i.i, align 4 - %arrayidx4.i.i.i256 = getelementptr inbounds i32, ptr %47, i64 -2 - %49 = load i32, ptr %arrayidx4.i.i.i256, align 4 - %cmp5.i.i.i257 = icmp eq i32 %48, %49 - br i1 %cmp5.i.i.i257, label %if.then.i.i.i262, label %invoke.cont10.i - -if.then.i.i.i262: ; preds = %lor.lhs.false.i.i.i255, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc.i unwind label %lpad.i - -.noexc.i: ; preds = %if.then.i.i.i262 - %.pre.i.i.i263 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i264 = getelementptr inbounds i32, ptr %.pre.i.i.i263, i64 -1 - %.pre1.i.i.i265 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i264, align 4 - br label %invoke.cont10.i - -invoke.cont10.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i255 - %50 = phi i32 [ %.pre1.i.i.i265, %.noexc.i ], [ %48, %lor.lhs.false.i.i.i255 ] - %51 = phi ptr [ %.pre.i.i.i263, %.noexc.i ], [ %47, %lor.lhs.false.i.i.i255 ] - %idx.ext.i.i.i258 = zext i32 %50 to i64 - %add.ptr.i.i.i259 = getelementptr inbounds ptr, ptr %51, i64 %idx.ext.i.i.i258 - store ptr %t, ptr %add.ptr.i.i.i259, align 8 - %52 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i260 = getelementptr inbounds i32, ptr %52, i64 -1 - %53 = load i32, ptr %arrayidx10.i.i.i260, align 4 - %inc.i.i.i261 = add i32 %53, 1 - store i32 %inc.i.i.i261, ptr %arrayidx10.i.i.i260, align 4 - %m_nodes.i6.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %54 = load ptr, ptr %m_nodes.i6.i, align 8 - %cmp.i.i7.i = icmp eq ptr %54, null - br i1 %cmp.i.i7.i, label %if.then.i.i16.i, label %lor.lhs.false.i.i8.i - -lor.lhs.false.i.i8.i: ; preds = %invoke.cont10.i - %arrayidx.i.i9.i = getelementptr inbounds i32, ptr %54, i64 -1 - %55 = load i32, ptr %arrayidx.i.i9.i, align 4 - %arrayidx4.i.i10.i = getelementptr inbounds i32, ptr %54, i64 -2 - %56 = load i32, ptr %arrayidx4.i.i10.i, align 4 - %cmp5.i.i11.i = icmp eq i32 %55, %56 - br i1 %cmp5.i.i11.i, label %if.then.i.i16.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i16.i: ; preds = %lor.lhs.false.i.i8.i, %invoke.cont10.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i6.i) - to label %.noexc20.i unwind label %lpad.i - -.noexc20.i: ; preds = %if.then.i.i16.i - %.pre.i.i17.i = load ptr, ptr %m_nodes.i6.i, align 8 - %arrayidx8.phi.trans.insert.i.i18.i = getelementptr inbounds i32, ptr %.pre.i.i17.i, i64 -1 - %.pre1.i.i19.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i18.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %.noexc20.i, %lor.lhs.false.i.i8.i - %57 = phi i32 [ %.pre1.i.i19.i, %.noexc20.i ], [ %55, %lor.lhs.false.i.i8.i ] - %58 = phi ptr [ %.pre.i.i17.i, %.noexc20.i ], [ %54, %lor.lhs.false.i.i8.i ] - %idx.ext.i.i12.i = zext i32 %57 to i64 - %add.ptr.i.i13.i = getelementptr inbounds ptr, ptr %58, i64 %idx.ext.i.i12.i - store ptr null, ptr %add.ptr.i.i13.i, align 8 - %59 = load ptr, ptr %m_nodes.i6.i, align 8 - %arrayidx10.i.i14.i = getelementptr inbounds i32, ptr %59, i64 -1 - %60 = load i32, ptr %arrayidx10.i.i14.i, align 4 - %inc.i.i15.i = add i32 %60, 1 - store i32 %inc.i.i15.i, ptr %arrayidx10.i.i14.i, align 4 - br label %if.then.i.i.i99.i - -sw.bb20.i: ; preds = %invoke.cont5.i - %61 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i.i.i.i22.i = icmp eq ptr %61, null - br i1 %tobool.not.i.i.i.i22.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i, label %if.then.i.i.i.i23.i - -if.then.i.i.i.i23.i: ; preds = %sw.bb20.i - %m_ref_count.i.i.i.i.i24.i = getelementptr inbounds %class.ast, ptr %61, i64 0, i32 2 - %62 = load i32, ptr %m_ref_count.i.i.i.i.i24.i, align 4 - %inc.i.i.i.i.i25.i = add i32 %62, 1 - store i32 %inc.i.i.i.i.i25.i, ptr %m_ref_count.i.i.i.i.i24.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i: ; preds = %if.then.i.i.i.i23.i, %sw.bb20.i - %m_nodes.i27.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %63 = load ptr, ptr %m_nodes.i27.i, align 8 - %cmp.i.i28.i = icmp eq ptr %63, null - br i1 %cmp.i.i28.i, label %if.then.i.i37.i, label %lor.lhs.false.i.i29.i - -lor.lhs.false.i.i29.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i - %arrayidx.i.i30.i = getelementptr inbounds i32, ptr %63, i64 -1 - %64 = load i32, ptr %arrayidx.i.i30.i, align 4 - %arrayidx4.i.i31.i = getelementptr inbounds i32, ptr %63, i64 -2 - %65 = load i32, ptr %arrayidx4.i.i31.i, align 4 - %cmp5.i.i32.i = icmp eq i32 %64, %65 - br i1 %cmp5.i.i32.i, label %if.then.i.i37.i, label %invoke.cont24.i - -if.then.i.i37.i: ; preds = %lor.lhs.false.i.i29.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i26.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i27.i) - to label %.noexc41.i unwind label %lpad.i - -.noexc41.i: ; preds = %if.then.i.i37.i - %.pre.i.i38.i = load ptr, ptr %m_nodes.i27.i, align 8 - %arrayidx8.phi.trans.insert.i.i39.i = getelementptr inbounds i32, ptr %.pre.i.i38.i, i64 -1 - %.pre1.i.i40.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i39.i, align 4 - br label %invoke.cont24.i - -invoke.cont24.i: ; preds = %.noexc41.i, %lor.lhs.false.i.i29.i - %66 = phi i32 [ %.pre1.i.i40.i, %.noexc41.i ], [ %64, %lor.lhs.false.i.i29.i ] - %67 = phi ptr [ %.pre.i.i38.i, %.noexc41.i ], [ %63, %lor.lhs.false.i.i29.i ] - %idx.ext.i.i33.i = zext i32 %66 to i64 - %add.ptr.i.i34.i = getelementptr inbounds ptr, ptr %67, i64 %idx.ext.i.i33.i - store ptr %61, ptr %add.ptr.i.i34.i, align 8 - %68 = load ptr, ptr %m_nodes.i27.i, align 8 - %arrayidx10.i.i35.i = getelementptr inbounds i32, ptr %68, i64 -1 - %69 = load i32, ptr %arrayidx10.i.i35.i, align 4 - %inc.i.i36.i = add i32 %69, 1 - store i32 %inc.i.i36.i, ptr %arrayidx10.i.i35.i, align 4 - %70 = load ptr, ptr %m_pr.i, align 8 - %cmp.i.not.i = icmp eq ptr %70, null - br i1 %cmp.i.not.i, label %if.else.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %invoke.cont24.i - %m_ref_count.i.i.i.i.i46.i = getelementptr inbounds %class.ast, ptr %70, i64 0, i32 2 - %71 = load i32, ptr %m_ref_count.i.i.i.i.i46.i, align 4 - %inc.i.i.i.i.i47.i = add i32 %71, 1 - store i32 %inc.i.i.i.i.i47.i, ptr %m_ref_count.i.i.i.i.i46.i, align 4 - %m_nodes.i48.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %72 = load ptr, ptr %m_nodes.i48.i, align 8 - %cmp.i.i49.i = icmp eq ptr %72, null - br i1 %cmp.i.i49.i, label %if.then.i.i58.i, label %lor.lhs.false.i.i50.i - -lor.lhs.false.i.i50.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i51.i = getelementptr inbounds i32, ptr %72, i64 -1 - %73 = load i32, ptr %arrayidx.i.i51.i, align 4 - %arrayidx4.i.i52.i = getelementptr inbounds i32, ptr %72, i64 -2 - %74 = load i32, ptr %arrayidx4.i.i52.i, align 4 - %cmp5.i.i53.i = icmp eq i32 %73, %74 - br i1 %cmp5.i.i53.i, label %if.then.i.i58.i, label %if.end44.i - -if.then.i.i58.i: ; preds = %lor.lhs.false.i.i50.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i48.i) - to label %if.end44.sink.split.i unwind label %lpad.i - -if.else.i: ; preds = %invoke.cont24.i - %this.val.i = load ptr, ptr %41, align 8 - %75 = load ptr, ptr %m_r.i, align 8 - %call41.i = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i, ptr noundef nonnull %t, ptr noundef %75) - to label %invoke.cont40.i unwind label %lpad.i - -invoke.cont40.i: ; preds = %if.else.i - %tobool.not.i.i.i.i65.i = icmp eq ptr %call41.i, null - br i1 %tobool.not.i.i.i.i65.i, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i, label %if.then.i.i.i.i66.i - -if.then.i.i.i.i66.i: ; preds = %invoke.cont40.i - %m_ref_count.i.i.i.i.i67.i = getelementptr inbounds %class.ast, ptr %call41.i, i64 0, i32 2 - %76 = load i32, ptr %m_ref_count.i.i.i.i.i67.i, align 4 - %inc.i.i.i.i.i68.i = add i32 %76, 1 - store i32 %inc.i.i.i.i.i68.i, ptr %m_ref_count.i.i.i.i.i67.i, align 4 - br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i - -_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i: ; preds = %if.then.i.i.i.i66.i, %invoke.cont40.i - %m_nodes.i70.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 - %77 = load ptr, ptr %m_nodes.i70.i, align 8 - %cmp.i.i71.i = icmp eq ptr %77, null - br i1 %cmp.i.i71.i, label %if.then.i.i80.i, label %lor.lhs.false.i.i72.i - -lor.lhs.false.i.i72.i: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i - %arrayidx.i.i73.i = getelementptr inbounds i32, ptr %77, i64 -1 - %78 = load i32, ptr %arrayidx.i.i73.i, align 4 - %arrayidx4.i.i74.i = getelementptr inbounds i32, ptr %77, i64 -2 - %79 = load i32, ptr %arrayidx4.i.i74.i, align 4 - %cmp5.i.i75.i = icmp eq i32 %78, %79 - br i1 %cmp5.i.i75.i, label %if.then.i.i80.i, label %if.end44.i - -if.then.i.i80.i: ; preds = %lor.lhs.false.i.i72.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i69.i - invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i70.i) - to label %if.end44.sink.split.i unwind label %lpad.i - -if.end44.sink.split.i: ; preds = %if.then.i.i80.i, %if.then.i.i58.i - %m_nodes.i48.sink.i = phi ptr [ %m_nodes.i48.i, %if.then.i.i58.i ], [ %m_nodes.i70.i, %if.then.i.i80.i ] - %call41.sink.ph.i = phi ptr [ %70, %if.then.i.i58.i ], [ %call41.i, %if.then.i.i80.i ] - %.pre.i.i59.i = load ptr, ptr %m_nodes.i48.sink.i, align 8 - %arrayidx8.phi.trans.insert.i.i82.i = getelementptr inbounds i32, ptr %.pre.i.i59.i, i64 -1 - %.pre1.i.i83.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i82.i, align 4 - br label %if.end44.i - -if.end44.i: ; preds = %if.end44.sink.split.i, %lor.lhs.false.i.i72.i, %lor.lhs.false.i.i50.i - %.sink106.i = phi i32 [ %73, %lor.lhs.false.i.i50.i ], [ %78, %lor.lhs.false.i.i72.i ], [ %.pre1.i.i83.i, %if.end44.sink.split.i ] - %.sink.i = phi ptr [ %72, %lor.lhs.false.i.i50.i ], [ %77, %lor.lhs.false.i.i72.i ], [ %.pre.i.i59.i, %if.end44.sink.split.i ] - %call41.sink.i = phi ptr [ %70, %lor.lhs.false.i.i50.i ], [ %call41.i, %lor.lhs.false.i.i72.i ], [ %call41.sink.ph.i, %if.end44.sink.split.i ] - %m_nodes.i70.sink.i = phi ptr [ %m_nodes.i48.i, %lor.lhs.false.i.i50.i ], [ %m_nodes.i70.i, %lor.lhs.false.i.i72.i ], [ %m_nodes.i48.sink.i, %if.end44.sink.split.i ] - %idx.ext.i.i76.i = zext i32 %.sink106.i to i64 - %add.ptr.i.i77.i = getelementptr inbounds ptr, ptr %.sink.i, i64 %idx.ext.i.i76.i - store ptr %call41.sink.i, ptr %add.ptr.i.i77.i, align 8 - %80 = load ptr, ptr %m_nodes.i70.sink.i, align 8 - %arrayidx10.i.i78.i = getelementptr inbounds i32, ptr %80, i64 -1 - %81 = load i32, ptr %arrayidx10.i.i78.i, align 4 - %inc.i.i79.i = add i32 %81, 1 - store i32 %inc.i.i79.i, ptr %arrayidx10.i.i78.i, align 4 - %82 = load ptr, ptr %m_pr.i, align 8 - %tobool.not.i3.i.i = icmp eq ptr %82, null - br i1 %tobool.not.i3.i.i, label %invoke.cont46.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %if.end44.i - %m_manager.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 - %83 = load ptr, ptr %m_manager.i.i.i, align 8 - %m_ref_count.i.i.i.i86.i = getelementptr inbounds %class.ast, ptr %82, i64 0, i32 2 - %84 = load i32, ptr %m_ref_count.i.i.i.i86.i, align 4 - %dec.i.i.i.i.i = add i32 %84, -1 - store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i86.i, align 4 - %cmp.i.i.i.i254 = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i254, label %if.then2.i.i.i.i, label %invoke.cont46.i - -if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %83, ptr noundef nonnull %82) - to label %invoke.cont46.i unwind label %lpad.i + br i1 %cmp34, label %if.then35, label %if.end70 -invoke.cont46.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %if.end44.i - store ptr null, ptr %m_pr.i, align 8 - %85 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i3.i88.i = icmp eq ptr %85, null - br i1 %tobool.not.i3.i88.i, label %invoke.cont49.i, label %if.then.i.i.i89.i - -if.then.i.i.i89.i: ; preds = %invoke.cont46.i - %m_manager.i.i90.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %86 = load ptr, ptr %m_manager.i.i90.i, align 8 - %m_ref_count.i.i.i.i91.i = getelementptr inbounds %class.ast, ptr %85, i64 0, i32 2 - %87 = load i32, ptr %m_ref_count.i.i.i.i91.i, align 4 - %dec.i.i.i.i92.i = add i32 %87, -1 - store i32 %dec.i.i.i.i92.i, ptr %m_ref_count.i.i.i.i91.i, align 4 - %cmp.i.i.i93.i = icmp eq i32 %dec.i.i.i.i92.i, 0 - br i1 %cmp.i.i.i93.i, label %if.then2.i.i.i94.i, label %invoke.cont49.i - -if.then2.i.i.i94.i: ; preds = %if.then.i.i.i89.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %86, ptr noundef nonnull %85) - to label %invoke.cont49.i unwind label %lpad.i - -invoke.cont49.i: ; preds = %if.then2.i.i.i94.i, %if.then.i.i.i89.i, %invoke.cont46.i - store ptr null, ptr %m_r.i, align 8 - %88 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val5.i = load ptr, ptr %88, align 8 - %cmp.i.i96.i = icmp eq ptr %this.val5.i, null - br i1 %cmp.i.i96.i, label %if.then.i.i.i99.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %invoke.cont49.i - %arrayidx.i.i97.i = getelementptr inbounds i32, ptr %this.val5.i, i64 -1 - %89 = load i32, ptr %arrayidx.i.i97.i, align 4 - %cmp3.i.i.i = icmp eq i32 %89, 0 - br i1 %cmp3.i.i.i, label %if.then.i.i.i99.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - %90 = add i32 %89, -1 - %91 = zext i32 %90 to i64 - %m_new_child.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val5.i, i64 %91, i32 1 - %bf.load.i.i = load i32, ptr %m_new_child.i.i, align 8 - %bf.set.i.i = or i32 %bf.load.i.i, 2 - store i32 %bf.set.i.i, ptr %m_new_child.i.i, align 8 - br label %if.then.i.i.i99.i - -if.then.i.i.i99.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %invoke.cont49.i, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %92 = load i32, ptr %m_ref_count.i.i.i, align 4 - %dec.i.i.i.i102.i = add i32 %92, -1 - store i32 %dec.i.i.i.i102.i, ptr %m_ref_count.i.i.i, align 4 - %cmp.i.i.i103.i = icmp eq i32 %dec.i.i.i.i102.i, 0 - br i1 %cmp.i.i.i103.i, label %if.then2.i.i.i104.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb1EEEbP3app.exit - -if.then2.i.i.i104.i: ; preds = %if.then.i.i.i99.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val4.i, ptr noundef nonnull %t) - to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb1EEEbP3app.exit unwind label %terminate.lpad.i.i - -terminate.lpad.i.i: ; preds = %if.then2.i.i.i104.i - %93 = landingpad { ptr, i32 } - catch ptr null - %94 = extractvalue { ptr, i32 } %93, 0 - tail call void @__clang_call_terminate(ptr %94) #14 - unreachable - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb1EEEbP3app.exit: ; preds = %if.then.i.i.i99.i, %if.then2.i.i.i104.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %t.i) +if.then35: ; preds = %sw.bb + tail call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb1EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %t) br label %return if.end70: ; preds = %sw.bb %cmp71.not = icmp eq i32 %max_depth, 3 %dec = shl i32 %max_depth, 4 - %95 = add i32 %dec, 48 - %96 = getelementptr inbounds i8, ptr %this, i64 40 + %41 = add i32 %dec, 48 + %42 = getelementptr inbounds i8, ptr %this, i64 40 %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %97 = load ptr, ptr %m_nodes.i.i.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %97, null + %43 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i.i = icmp eq ptr %43, null br i1 %cmp.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %if.end70 - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %97, i64 -1 - %98 = load i32, ptr %arrayidx.i.i.i.i, align 4 + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %43, i64 -1 + %44 = load i32, ptr %arrayidx.i.i.i.i, align 4 br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i: ; preds = %if.end.i.i.i.i, %if.end70 - %retval.0.i.i.i.i = phi i32 [ %98, %if.end.i.i.i.i ], [ 0, %if.end70 ] - %99 = load ptr, ptr %96, align 8 - %cmp.i.i.i207 = icmp eq ptr %99, null - br i1 %cmp.i.i.i207, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %retval.0.i.i.i.i = phi i32 [ %44, %if.end.i.i.i.i ], [ 0, %if.end70 ] + %45 = load ptr, ptr %42, align 8 + %cmp.i.i.i182 = icmp eq ptr %45, null + br i1 %cmp.i.i.i182, label %if.then.i.i.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - %arrayidx.i.i.i208 = getelementptr inbounds i32, ptr %99, i64 -1 - %100 = load i32, ptr %arrayidx.i.i.i208, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %99, i64 -2 - %101 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %100, %101 + %arrayidx.i.i.i183 = getelementptr inbounds i32, ptr %45, i64 -1 + %46 = load i32, ptr %arrayidx.i.i.i183, align 4 + %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %45, i64 -2 + %47 = load i32, ptr %arrayidx4.i.i.i, align 4 + %cmp5.i.i.i = icmp eq i32 %46, %47 br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %96) - %.pre.i.i.i = load ptr, ptr %96, align 8 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %42) + %.pre.i.i.i = load ptr, ptr %42, align 8 %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit _ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit: ; preds = %lor.lhs.false.i.i.i, %if.then.i.i.i - %102 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %100, %lor.lhs.false.i.i.i ] - %103 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %99, %lor.lhs.false.i.i.i ] - %104 = and i32 %95, 48 - %bf.value10.masked.i.i.i = select i1 %cmp71.not, i32 48, i32 %104 + %48 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %46, %lor.lhs.false.i.i.i ] + %49 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %45, %lor.lhs.false.i.i.i ] + %50 = and i32 %41, 48 + %bf.value10.masked.i.i.i = select i1 %cmp71.not, i32 48, i32 %50 %bf.clear15.i.i.i = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i - %idx.ext.i.i.i = zext i32 %102 to i64 - %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %103, i64 %idx.ext.i.i.i + %idx.ext.i.i.i = zext i32 %48 to i64 + %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %49, i64 %idx.ext.i.i.i store ptr %t, ptr %add.ptr.i.i.i, align 8 %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 8 store i32 %bf.clear15.i.i.i, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i, align 8 %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 12 store i32 %retval.0.i.i.i.i, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i, align 4 - %105 = load ptr, ptr %96, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %105, i64 -1 - %106 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %106, 1 + %51 = load ptr, ptr %42, align 8 + %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %51, i64 -1 + %52 = load i32, ptr %arrayidx10.i.i.i, align 4 + %inc.i.i.i = add i32 %52, 1 store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 br label %return @@ -9856,57 +9815,57 @@ sw.bb75: ; preds = %if.end30 sw.bb77: ; preds = %if.end30 %cmp78.not = icmp eq i32 %max_depth, 3 %dec80 = shl i32 %max_depth, 4 - %107 = add i32 %dec80, 48 - %108 = getelementptr inbounds i8, ptr %this, i64 40 - %m_nodes.i.i.i209 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %109 = load ptr, ptr %m_nodes.i.i.i209, align 8 - %cmp.i.i.i.i210 = icmp eq ptr %109, null - br i1 %cmp.i.i.i.i210, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213, label %if.end.i.i.i.i211 - -if.end.i.i.i.i211: ; preds = %sw.bb77 - %arrayidx.i.i.i.i212 = getelementptr inbounds i32, ptr %109, i64 -1 - %110 = load i32, ptr %arrayidx.i.i.i.i212, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213: ; preds = %if.end.i.i.i.i211, %sw.bb77 - %retval.0.i.i.i.i214 = phi i32 [ %110, %if.end.i.i.i.i211 ], [ 0, %sw.bb77 ] - %111 = load ptr, ptr %108, align 8 - %cmp.i.i.i215 = icmp eq ptr %111, null - br i1 %cmp.i.i.i215, label %if.then.i.i.i230, label %lor.lhs.false.i.i.i216 - -lor.lhs.false.i.i.i216: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - %arrayidx.i.i.i217 = getelementptr inbounds i32, ptr %111, i64 -1 - %112 = load i32, ptr %arrayidx.i.i.i217, align 4 - %arrayidx4.i.i.i218 = getelementptr inbounds i32, ptr %111, i64 -2 - %113 = load i32, ptr %arrayidx4.i.i.i218, align 4 - %cmp5.i.i.i219 = icmp eq i32 %112, %113 - br i1 %cmp5.i.i.i219, label %if.then.i.i.i230, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit234 - -if.then.i.i.i230: ; preds = %lor.lhs.false.i.i.i216, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i213 - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %108) - %.pre.i.i.i231 = load ptr, ptr %108, align 8 - %arrayidx8.phi.trans.insert.i.i.i232 = getelementptr inbounds i32, ptr %.pre.i.i.i231, i64 -1 - %.pre1.i.i.i233 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i232, align 4 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit234 - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit234: ; preds = %lor.lhs.false.i.i.i216, %if.then.i.i.i230 - %114 = phi i32 [ %.pre1.i.i.i233, %if.then.i.i.i230 ], [ %112, %lor.lhs.false.i.i.i216 ] - %115 = phi ptr [ %.pre.i.i.i231, %if.then.i.i.i230 ], [ %111, %lor.lhs.false.i.i.i216 ] - %116 = and i32 %107, 48 - %bf.value10.masked.i.i.i222 = select i1 %cmp78.not, i32 48, i32 %116 - %bf.clear15.i.i.i223 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i222 - %idx.ext.i.i.i224 = zext i32 %114 to i64 - %add.ptr.i.i.i225 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %115, i64 %idx.ext.i.i.i224 - store ptr %t, ptr %add.ptr.i.i.i225, align 8 - %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i226 = getelementptr inbounds i8, ptr %add.ptr.i.i.i225, i64 8 - store i32 %bf.clear15.i.i.i223, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i226, align 8 - %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i227 = getelementptr inbounds i8, ptr %add.ptr.i.i.i225, i64 12 - store i32 %retval.0.i.i.i.i214, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i227, align 4 - %117 = load ptr, ptr %108, align 8 - %arrayidx10.i.i.i228 = getelementptr inbounds i32, ptr %117, i64 -1 - %118 = load i32, ptr %arrayidx10.i.i.i228, align 4 - %inc.i.i.i229 = add i32 %118, 1 - store i32 %inc.i.i.i229, ptr %arrayidx10.i.i.i228, align 4 + %53 = add i32 %dec80, 48 + %54 = getelementptr inbounds i8, ptr %this, i64 40 + %m_nodes.i.i.i184 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %55 = load ptr, ptr %m_nodes.i.i.i184, align 8 + %cmp.i.i.i.i185 = icmp eq ptr %55, null + br i1 %cmp.i.i.i.i185, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188, label %if.end.i.i.i.i186 + +if.end.i.i.i.i186: ; preds = %sw.bb77 + %arrayidx.i.i.i.i187 = getelementptr inbounds i32, ptr %55, i64 -1 + %56 = load i32, ptr %arrayidx.i.i.i.i187, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188: ; preds = %if.end.i.i.i.i186, %sw.bb77 + %retval.0.i.i.i.i189 = phi i32 [ %56, %if.end.i.i.i.i186 ], [ 0, %sw.bb77 ] + %57 = load ptr, ptr %54, align 8 + %cmp.i.i.i190 = icmp eq ptr %57, null + br i1 %cmp.i.i.i190, label %if.then.i.i.i205, label %lor.lhs.false.i.i.i191 + +lor.lhs.false.i.i.i191: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + %arrayidx.i.i.i192 = getelementptr inbounds i32, ptr %57, i64 -1 + %58 = load i32, ptr %arrayidx.i.i.i192, align 4 + %arrayidx4.i.i.i193 = getelementptr inbounds i32, ptr %57, i64 -2 + %59 = load i32, ptr %arrayidx4.i.i.i193, align 4 + %cmp5.i.i.i194 = icmp eq i32 %58, %59 + br i1 %cmp5.i.i.i194, label %if.then.i.i.i205, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit209 + +if.then.i.i.i205: ; preds = %lor.lhs.false.i.i.i191, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i188 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %54) + %.pre.i.i.i206 = load ptr, ptr %54, align 8 + %arrayidx8.phi.trans.insert.i.i.i207 = getelementptr inbounds i32, ptr %.pre.i.i.i206, i64 -1 + %.pre1.i.i.i208 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i207, align 4 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit209 + +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit209: ; preds = %lor.lhs.false.i.i.i191, %if.then.i.i.i205 + %60 = phi i32 [ %.pre1.i.i.i208, %if.then.i.i.i205 ], [ %58, %lor.lhs.false.i.i.i191 ] + %61 = phi ptr [ %.pre.i.i.i206, %if.then.i.i.i205 ], [ %57, %lor.lhs.false.i.i.i191 ] + %62 = and i32 %53, 48 + %bf.value10.masked.i.i.i197 = select i1 %cmp78.not, i32 48, i32 %62 + %bf.clear15.i.i.i198 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i197 + %idx.ext.i.i.i199 = zext i32 %60 to i64 + %add.ptr.i.i.i200 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %61, i64 %idx.ext.i.i.i199 + store ptr %t, ptr %add.ptr.i.i.i200, align 8 + %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i201 = getelementptr inbounds i8, ptr %add.ptr.i.i.i200, i64 8 + store i32 %bf.clear15.i.i.i198, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i201, align 8 + %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i202 = getelementptr inbounds i8, ptr %add.ptr.i.i.i200, i64 12 + store i32 %retval.0.i.i.i.i189, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i202, align 4 + %63 = load ptr, ptr %54, align 8 + %arrayidx10.i.i.i203 = getelementptr inbounds i32, ptr %63, i64 -1 + %64 = load i32, ptr %arrayidx10.i.i.i203, align 4 + %inc.i.i.i204 = add i32 %64, 1 + store i32 %inc.i.i.i204, ptr %arrayidx10.i.i.i203, align 4 br label %return sw.default: ; preds = %if.end30 @@ -9914,8 +9873,8 @@ sw.default: ; preds = %if.end30 tail call void @exit(i32 noundef 114) #14 unreachable -return: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb1EEEbP3app.exit, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit234, %sw.bb75, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 - %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit92 ], [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit147 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit234 ], [ true, %sw.bb75 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit ], [ true, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb1EEEbP3app.exit ] +return: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit209, %sw.bb75, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit, %if.then35, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 + %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit88 ], [ true, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit143 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit209 ], [ true, %sw.bb75 ], [ true, %if.then35 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit ] ret i1 %retval.0 } @@ -9939,6 +9898,332 @@ declare noundef ptr @_ZNK17default_exception3msgEv(ptr noundef nonnull align 8 d declare noundef i32 @_ZNK12z3_exception10error_codeEv(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 +; Function Attrs: mustprogress uwtable +define internal fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb1EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { +entry: + %t = alloca %class.obj_ref.62, align 8 + %0 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val3 = load ptr, ptr %0, align 8 + store ptr %t0, ptr %t, align 8 + %m_manager.i = getelementptr inbounds %class.obj_ref.62, ptr %t, i64 0, i32 1 + store ptr %this.val3, ptr %m_manager.i, align 8 + %tobool.not.i.i = icmp eq ptr %t0, null + br i1 %tobool.not.i.i, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %entry + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %1 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i = add i32 %1, 1 + store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + +_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit: ; preds = %entry, %_ZN11ast_manager7inc_refEP3ast.exit.i.i + %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + %2 = load ptr, ptr %m_cfg, align 8 + %m_decl.i = getelementptr inbounds %class.app, ptr %t0, i64 0, i32 1 + %3 = load ptr, ptr %m_decl.i, align 8 + %m_r = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %m_pr = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7 + %call6 = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(16) %m_r) + to label %invoke.cont5 unwind label %lpad + +invoke.cont5: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + %switch = icmp eq i32 %call6, 5 + br i1 %switch, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %sw.bb20 + +lpad: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit, %if.then2.i.i.i93, %if.then2.i.i.i, %if.then.i.i79, %if.then.i.i57, %if.then.i.i36, %if.then.i.i15, %if.then.i.i, %if.else + %4 = landingpad { ptr, i32 } + cleanup + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t) #15 + resume { ptr, i32 } %4 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %invoke.cont5 + %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %5 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %5, 1 + store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 + %m_nodes.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %6 = load ptr, ptr %m_nodes.i, align 8 + %cmp.i.i = icmp eq ptr %6, null + br i1 %cmp.i.i, label %if.then.i.i, label %lor.lhs.false.i.i + +lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx.i.i, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %6, i64 -2 + %8 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %7, %8 + br i1 %cmp5.i.i, label %if.then.i.i, label %invoke.cont10 + +if.then.i.i: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i) + to label %.noexc unwind label %lpad + +.noexc: ; preds = %if.then.i.i + %.pre.i.i = load ptr, ptr %m_nodes.i, align 8 + %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i, i64 -1 + %.pre1.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 + br label %invoke.cont10 + +invoke.cont10: ; preds = %.noexc, %lor.lhs.false.i.i + %9 = phi i32 [ %.pre1.i.i, %.noexc ], [ %7, %lor.lhs.false.i.i ] + %10 = phi ptr [ %.pre.i.i, %.noexc ], [ %6, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %9 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %10, i64 %idx.ext.i.i + store ptr %t0, ptr %add.ptr.i.i, align 8 + %11 = load ptr, ptr %m_nodes.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %11, i64 -1 + %12 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %12, 1 + store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 + %m_nodes.i5 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %13 = load ptr, ptr %m_nodes.i5, align 8 + %cmp.i.i6 = icmp eq ptr %13, null + br i1 %cmp.i.i6, label %if.then.i.i15, label %lor.lhs.false.i.i7 + +lor.lhs.false.i.i7: ; preds = %invoke.cont10 + %arrayidx.i.i8 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx.i.i8, align 4 + %arrayidx4.i.i9 = getelementptr inbounds i32, ptr %13, i64 -2 + %15 = load i32, ptr %arrayidx4.i.i9, align 4 + %cmp5.i.i10 = icmp eq i32 %14, %15 + br i1 %cmp5.i.i10, label %if.then.i.i15, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +if.then.i.i15: ; preds = %lor.lhs.false.i.i7, %invoke.cont10 + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i5) + to label %.noexc19 unwind label %lpad + +.noexc19: ; preds = %if.then.i.i15 + %.pre.i.i16 = load ptr, ptr %m_nodes.i5, align 8 + %arrayidx8.phi.trans.insert.i.i17 = getelementptr inbounds i32, ptr %.pre.i.i16, i64 -1 + %.pre1.i.i18 = load i32, ptr %arrayidx8.phi.trans.insert.i.i17, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit: ; preds = %lor.lhs.false.i.i7, %.noexc19 + %16 = phi i32 [ %.pre1.i.i18, %.noexc19 ], [ %14, %lor.lhs.false.i.i7 ] + %17 = phi ptr [ %.pre.i.i16, %.noexc19 ], [ %13, %lor.lhs.false.i.i7 ] + %idx.ext.i.i11 = zext i32 %16 to i64 + %add.ptr.i.i12 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i11 + store ptr null, ptr %add.ptr.i.i12, align 8 + %18 = load ptr, ptr %m_nodes.i5, align 8 + %arrayidx10.i.i13 = getelementptr inbounds i32, ptr %18, i64 -1 + %19 = load i32, ptr %arrayidx10.i.i13, align 4 + %inc.i.i14 = add i32 %19, 1 + store i32 %inc.i.i14, ptr %arrayidx10.i.i13, align 4 + br label %if.then.i.i.i98 + +sw.bb20: ; preds = %invoke.cont5 + %20 = load ptr, ptr %m_r, align 8 + %tobool.not.i.i.i.i21 = icmp eq ptr %20, null + br i1 %tobool.not.i.i.i.i21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25, label %if.then.i.i.i.i22 + +if.then.i.i.i.i22: ; preds = %sw.bb20 + %m_ref_count.i.i.i.i.i23 = getelementptr inbounds %class.ast, ptr %20, i64 0, i32 2 + %21 = load i32, ptr %m_ref_count.i.i.i.i.i23, align 4 + %inc.i.i.i.i.i24 = add i32 %21, 1 + store i32 %inc.i.i.i.i.i24, ptr %m_ref_count.i.i.i.i.i23, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25: ; preds = %if.then.i.i.i.i22, %sw.bb20 + %m_nodes.i26 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %22 = load ptr, ptr %m_nodes.i26, align 8 + %cmp.i.i27 = icmp eq ptr %22, null + br i1 %cmp.i.i27, label %if.then.i.i36, label %lor.lhs.false.i.i28 + +lor.lhs.false.i.i28: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25 + %arrayidx.i.i29 = getelementptr inbounds i32, ptr %22, i64 -1 + %23 = load i32, ptr %arrayidx.i.i29, align 4 + %arrayidx4.i.i30 = getelementptr inbounds i32, ptr %22, i64 -2 + %24 = load i32, ptr %arrayidx4.i.i30, align 4 + %cmp5.i.i31 = icmp eq i32 %23, %24 + br i1 %cmp5.i.i31, label %if.then.i.i36, label %invoke.cont24 + +if.then.i.i36: ; preds = %lor.lhs.false.i.i28, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i25 + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i26) + to label %.noexc40 unwind label %lpad + +.noexc40: ; preds = %if.then.i.i36 + %.pre.i.i37 = load ptr, ptr %m_nodes.i26, align 8 + %arrayidx8.phi.trans.insert.i.i38 = getelementptr inbounds i32, ptr %.pre.i.i37, i64 -1 + %.pre1.i.i39 = load i32, ptr %arrayidx8.phi.trans.insert.i.i38, align 4 + br label %invoke.cont24 + +invoke.cont24: ; preds = %.noexc40, %lor.lhs.false.i.i28 + %25 = phi i32 [ %.pre1.i.i39, %.noexc40 ], [ %23, %lor.lhs.false.i.i28 ] + %26 = phi ptr [ %.pre.i.i37, %.noexc40 ], [ %22, %lor.lhs.false.i.i28 ] + %idx.ext.i.i32 = zext i32 %25 to i64 + %add.ptr.i.i33 = getelementptr inbounds ptr, ptr %26, i64 %idx.ext.i.i32 + store ptr %20, ptr %add.ptr.i.i33, align 8 + %27 = load ptr, ptr %m_nodes.i26, align 8 + %arrayidx10.i.i34 = getelementptr inbounds i32, ptr %27, i64 -1 + %28 = load i32, ptr %arrayidx10.i.i34, align 4 + %inc.i.i35 = add i32 %28, 1 + store i32 %inc.i.i35, ptr %arrayidx10.i.i34, align 4 + %29 = load ptr, ptr %m_pr, align 8 + %cmp.i.not = icmp eq ptr %29, null + br i1 %cmp.i.not, label %if.else, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %invoke.cont24 + %m_ref_count.i.i.i.i.i45 = getelementptr inbounds %class.ast, ptr %29, i64 0, i32 2 + %30 = load i32, ptr %m_ref_count.i.i.i.i.i45, align 4 + %inc.i.i.i.i.i46 = add i32 %30, 1 + store i32 %inc.i.i.i.i.i46, ptr %m_ref_count.i.i.i.i.i45, align 4 + %m_nodes.i47 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %31 = load ptr, ptr %m_nodes.i47, align 8 + %cmp.i.i48 = icmp eq ptr %31, null + br i1 %cmp.i.i48, label %if.then.i.i57, label %lor.lhs.false.i.i49 + +lor.lhs.false.i.i49: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i50 = getelementptr inbounds i32, ptr %31, i64 -1 + %32 = load i32, ptr %arrayidx.i.i50, align 4 + %arrayidx4.i.i51 = getelementptr inbounds i32, ptr %31, i64 -2 + %33 = load i32, ptr %arrayidx4.i.i51, align 4 + %cmp5.i.i52 = icmp eq i32 %32, %33 + br i1 %cmp5.i.i52, label %if.then.i.i57, label %if.end44 + +if.then.i.i57: ; preds = %lor.lhs.false.i.i49, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i47) + to label %if.end44.sink.split unwind label %lpad + +if.else: ; preds = %invoke.cont24 + %this.val = load ptr, ptr %0, align 8 + %34 = load ptr, ptr %m_r, align 8 + %call41 = invoke noundef ptr @_ZN11ast_manager10mk_rewriteEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %this.val, ptr noundef nonnull %t0, ptr noundef %34) + to label %invoke.cont40 unwind label %lpad + +invoke.cont40: ; preds = %if.else + %tobool.not.i.i.i.i64 = icmp eq ptr %call41, null + br i1 %tobool.not.i.i.i.i64, label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68, label %if.then.i.i.i.i65 + +if.then.i.i.i.i65: ; preds = %invoke.cont40 + %m_ref_count.i.i.i.i.i66 = getelementptr inbounds %class.ast, ptr %call41, i64 0, i32 2 + %35 = load i32, ptr %m_ref_count.i.i.i.i.i66, align 4 + %inc.i.i.i.i.i67 = add i32 %35, 1 + store i32 %inc.i.i.i.i.i67, ptr %m_ref_count.i.i.i.i.i66, align 4 + br label %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68 + +_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68: ; preds = %if.then.i.i.i.i65, %invoke.cont40 + %m_nodes.i69 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 10, i32 0, i32 1 + %36 = load ptr, ptr %m_nodes.i69, align 8 + %cmp.i.i70 = icmp eq ptr %36, null + br i1 %cmp.i.i70, label %if.then.i.i79, label %lor.lhs.false.i.i71 + +lor.lhs.false.i.i71: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68 + %arrayidx.i.i72 = getelementptr inbounds i32, ptr %36, i64 -1 + %37 = load i32, ptr %arrayidx.i.i72, align 4 + %arrayidx4.i.i73 = getelementptr inbounds i32, ptr %36, i64 -2 + %38 = load i32, ptr %arrayidx4.i.i73, align 4 + %cmp5.i.i74 = icmp eq i32 %37, %38 + br i1 %cmp5.i.i74, label %if.then.i.i79, label %if.end44 + +if.then.i.i79: ; preds = %lor.lhs.false.i.i71, %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i68 + invoke void @_ZN6vectorIP3appLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i69) + to label %if.end44.sink.split unwind label %lpad + +if.end44.sink.split: ; preds = %if.then.i.i79, %if.then.i.i57 + %m_nodes.i47.sink = phi ptr [ %m_nodes.i47, %if.then.i.i57 ], [ %m_nodes.i69, %if.then.i.i79 ] + %call41.sink.ph = phi ptr [ %29, %if.then.i.i57 ], [ %call41, %if.then.i.i79 ] + %.pre.i.i58 = load ptr, ptr %m_nodes.i47.sink, align 8 + %arrayidx8.phi.trans.insert.i.i81 = getelementptr inbounds i32, ptr %.pre.i.i58, i64 -1 + %.pre1.i.i82 = load i32, ptr %arrayidx8.phi.trans.insert.i.i81, align 4 + br label %if.end44 + +if.end44: ; preds = %if.end44.sink.split, %lor.lhs.false.i.i71, %lor.lhs.false.i.i49 + %.sink105 = phi i32 [ %32, %lor.lhs.false.i.i49 ], [ %37, %lor.lhs.false.i.i71 ], [ %.pre1.i.i82, %if.end44.sink.split ] + %.sink = phi ptr [ %31, %lor.lhs.false.i.i49 ], [ %36, %lor.lhs.false.i.i71 ], [ %.pre.i.i58, %if.end44.sink.split ] + %call41.sink = phi ptr [ %29, %lor.lhs.false.i.i49 ], [ %call41, %lor.lhs.false.i.i71 ], [ %call41.sink.ph, %if.end44.sink.split ] + %m_nodes.i69.sink = phi ptr [ %m_nodes.i47, %lor.lhs.false.i.i49 ], [ %m_nodes.i69, %lor.lhs.false.i.i71 ], [ %m_nodes.i47.sink, %if.end44.sink.split ] + %idx.ext.i.i75 = zext i32 %.sink105 to i64 + %add.ptr.i.i76 = getelementptr inbounds ptr, ptr %.sink, i64 %idx.ext.i.i75 + store ptr %call41.sink, ptr %add.ptr.i.i76, align 8 + %39 = load ptr, ptr %m_nodes.i69.sink, align 8 + %arrayidx10.i.i77 = getelementptr inbounds i32, ptr %39, i64 -1 + %40 = load i32, ptr %arrayidx10.i.i77, align 4 + %inc.i.i78 = add i32 %40, 1 + store i32 %inc.i.i78, ptr %arrayidx10.i.i77, align 4 + %41 = load ptr, ptr %m_pr, align 8 + %tobool.not.i3.i = icmp eq ptr %41, null + br i1 %tobool.not.i3.i, label %invoke.cont46, label %if.then.i.i.i + +if.then.i.i.i: ; preds = %if.end44 + %m_manager.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 7, i32 1 + %42 = load ptr, ptr %m_manager.i.i, align 8 + %m_ref_count.i.i.i.i85 = getelementptr inbounds %class.ast, ptr %41, i64 0, i32 2 + %43 = load i32, ptr %m_ref_count.i.i.i.i85, align 4 + %dec.i.i.i.i = add i32 %43, -1 + store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i85, align 4 + %cmp.i.i.i = icmp eq i32 %dec.i.i.i.i, 0 + br i1 %cmp.i.i.i, label %if.then2.i.i.i, label %invoke.cont46 + +if.then2.i.i.i: ; preds = %if.then.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %42, ptr noundef nonnull %41) + to label %invoke.cont46 unwind label %lpad + +invoke.cont46: ; preds = %if.then.i.i.i, %if.end44, %if.then2.i.i.i + store ptr null, ptr %m_pr, align 8 + %44 = load ptr, ptr %m_r, align 8 + %tobool.not.i3.i87 = icmp eq ptr %44, null + br i1 %tobool.not.i3.i87, label %invoke.cont49, label %if.then.i.i.i88 + +if.then.i.i.i88: ; preds = %invoke.cont46 + %m_manager.i.i89 = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %45 = load ptr, ptr %m_manager.i.i89, align 8 + %m_ref_count.i.i.i.i90 = getelementptr inbounds %class.ast, ptr %44, i64 0, i32 2 + %46 = load i32, ptr %m_ref_count.i.i.i.i90, align 4 + %dec.i.i.i.i91 = add i32 %46, -1 + store i32 %dec.i.i.i.i91, ptr %m_ref_count.i.i.i.i90, align 4 + %cmp.i.i.i92 = icmp eq i32 %dec.i.i.i.i91, 0 + br i1 %cmp.i.i.i92, label %if.then2.i.i.i93, label %invoke.cont49 + +if.then2.i.i.i93: ; preds = %if.then.i.i.i88 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %45, ptr noundef nonnull %44) + to label %invoke.cont49 unwind label %lpad + +invoke.cont49: ; preds = %if.then.i.i.i88, %invoke.cont46, %if.then2.i.i.i93 + store ptr null, ptr %m_r, align 8 + %47 = getelementptr inbounds i8, ptr %this, i64 40 + %this.val4 = load ptr, ptr %47, align 8 + %cmp.i.i95 = icmp eq ptr %this.val4, null + br i1 %cmp.i.i95, label %if.then.i.i.i98, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i: ; preds = %invoke.cont49 + %arrayidx.i.i96 = getelementptr inbounds i32, ptr %this.val4, i64 -1 + %48 = load i32, ptr %arrayidx.i.i96, align 4 + %cmp3.i.i = icmp eq i32 %48, 0 + br i1 %cmp3.i.i, label %if.then.i.i.i98, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + %49 = add i32 %48, -1 + %50 = zext i32 %49 to i64 + %m_new_child.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val4, i64 %50, i32 1 + %bf.load.i = load i32, ptr %m_new_child.i, align 8 + %bf.set.i = or i32 %bf.load.i, 2 + store i32 %bf.set.i, ptr %m_new_child.i, align 8 + br label %if.then.i.i.i98 + +if.then.i.i.i98: ; preds = %_ZN15ref_vector_coreI3app19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit, %invoke.cont49, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + %m_ref_count.i.i.i.i100 = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %51 = load i32, ptr %m_ref_count.i.i.i.i100, align 4 + %dec.i.i.i.i101 = add i32 %51, -1 + store i32 %dec.i.i.i.i101, ptr %m_ref_count.i.i.i.i100, align 4 + %cmp.i.i.i102 = icmp eq i32 %dec.i.i.i.i101, 0 + br i1 %cmp.i.i.i102, label %if.then2.i.i.i103, label %_ZN7obj_refI3app11ast_managerED2Ev.exit + +if.then2.i.i.i103: ; preds = %if.then.i.i.i98 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val3, ptr noundef nonnull %t0) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit unwind label %terminate.lpad.i + +terminate.lpad.i: ; preds = %if.then2.i.i.i103 + %52 = landingpad { ptr, i32 } + catch ptr null + %53 = extractvalue { ptr, i32 } %52, 0 + tail call void @__clang_call_terminate(ptr %53) #14 + unreachable + +_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %if.then.i.i.i98, %if.then2.i.i.i103 + ret void +} + ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_varILb1EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %v) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { if.end: @@ -10745,63 +11030,61 @@ unreachable: ; preds = %invoke.cont ; Function Attrs: mustprogress uwtable define internal fastcc noundef zeroext i1 @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE5visitILb0EEEbP4exprj(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t, i32 noundef %max_depth) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { if.end: - %t.i = alloca %class.obj_ref.62, align 8 - %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 %cmp = icmp eq i32 %max_depth, 0 br i1 %cmp, label %if.then4, label %if.end7 if.then4: ; preds = %if.end - %tobool.not.i.i.i.i37 = icmp eq ptr %t, null - br i1 %tobool.not.i.i.i.i37, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41, label %if.then.i.i.i.i38 - -if.then.i.i.i.i38: ; preds = %if.then4 - %m_ref_count.i.i.i.i.i39 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 - %0 = load i32, ptr %m_ref_count.i.i.i.i.i39, align 4 - %inc.i.i.i.i.i40 = add i32 %0, 1 - store i32 %inc.i.i.i.i.i40, ptr %m_ref_count.i.i.i.i.i39, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41: ; preds = %if.then.i.i.i.i38, %if.then4 - %m_nodes.i42 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %1 = load ptr, ptr %m_nodes.i42, align 8 - %cmp.i.i43 = icmp eq ptr %1, null - br i1 %cmp.i.i43, label %if.then.i.i52, label %lor.lhs.false.i.i44 - -lor.lhs.false.i.i44: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - %arrayidx.i.i45 = getelementptr inbounds i32, ptr %1, i64 -1 - %2 = load i32, ptr %arrayidx.i.i45, align 4 - %arrayidx4.i.i46 = getelementptr inbounds i32, ptr %1, i64 -2 - %3 = load i32, ptr %arrayidx4.i.i46, align 4 - %cmp5.i.i47 = icmp eq i32 %2, %3 - br i1 %cmp5.i.i47, label %if.then.i.i52, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - -if.then.i.i52: ; preds = %lor.lhs.false.i.i44, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i41 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i42) - %.pre.i.i53 = load ptr, ptr %m_nodes.i42, align 8 - %arrayidx8.phi.trans.insert.i.i54 = getelementptr inbounds i32, ptr %.pre.i.i53, i64 -1 - %.pre1.i.i55 = load i32, ptr %arrayidx8.phi.trans.insert.i.i54, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56: ; preds = %lor.lhs.false.i.i44, %if.then.i.i52 - %4 = phi i32 [ %.pre1.i.i55, %if.then.i.i52 ], [ %2, %lor.lhs.false.i.i44 ] - %5 = phi ptr [ %.pre.i.i53, %if.then.i.i52 ], [ %1, %lor.lhs.false.i.i44 ] - %idx.ext.i.i48 = zext i32 %4 to i64 - %add.ptr.i.i49 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i48 - store ptr %t, ptr %add.ptr.i.i49, align 8 - %6 = load ptr, ptr %m_nodes.i42, align 8 - %arrayidx10.i.i50 = getelementptr inbounds i32, ptr %6, i64 -1 - %7 = load i32, ptr %arrayidx10.i.i50, align 4 - %inc.i.i51 = add i32 %7, 1 - store i32 %inc.i.i51, ptr %arrayidx10.i.i50, align 4 + %tobool.not.i.i.i.i33 = icmp eq ptr %t, null + br i1 %tobool.not.i.i.i.i33, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37, label %if.then.i.i.i.i34 + +if.then.i.i.i.i34: ; preds = %if.then4 + %m_ref_count.i.i.i.i.i35 = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 + %0 = load i32, ptr %m_ref_count.i.i.i.i.i35, align 4 + %inc.i.i.i.i.i36 = add i32 %0, 1 + store i32 %inc.i.i.i.i.i36, ptr %m_ref_count.i.i.i.i.i35, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37: ; preds = %if.then.i.i.i.i34, %if.then4 + %m_nodes.i38 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %1 = load ptr, ptr %m_nodes.i38, align 8 + %cmp.i.i39 = icmp eq ptr %1, null + br i1 %cmp.i.i39, label %if.then.i.i48, label %lor.lhs.false.i.i40 + +lor.lhs.false.i.i40: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + %arrayidx.i.i41 = getelementptr inbounds i32, ptr %1, i64 -1 + %2 = load i32, ptr %arrayidx.i.i41, align 4 + %arrayidx4.i.i42 = getelementptr inbounds i32, ptr %1, i64 -2 + %3 = load i32, ptr %arrayidx4.i.i42, align 4 + %cmp5.i.i43 = icmp eq i32 %2, %3 + br i1 %cmp5.i.i43, label %if.then.i.i48, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + +if.then.i.i48: ; preds = %lor.lhs.false.i.i40, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i37 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i38) + %.pre.i.i49 = load ptr, ptr %m_nodes.i38, align 8 + %arrayidx8.phi.trans.insert.i.i50 = getelementptr inbounds i32, ptr %.pre.i.i49, i64 -1 + %.pre1.i.i51 = load i32, ptr %arrayidx8.phi.trans.insert.i.i50, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52: ; preds = %lor.lhs.false.i.i40, %if.then.i.i48 + %4 = phi i32 [ %.pre1.i.i51, %if.then.i.i48 ], [ %2, %lor.lhs.false.i.i40 ] + %5 = phi ptr [ %.pre.i.i49, %if.then.i.i48 ], [ %1, %lor.lhs.false.i.i40 ] + %idx.ext.i.i44 = zext i32 %4 to i64 + %add.ptr.i.i45 = getelementptr inbounds ptr, ptr %5, i64 %idx.ext.i.i44 + store ptr %t, ptr %add.ptr.i.i45, align 8 + %6 = load ptr, ptr %m_nodes.i38, align 8 + %arrayidx10.i.i46 = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx10.i.i46, align 4 + %inc.i.i47 = add i32 %7, 1 + store i32 %inc.i.i47, ptr %arrayidx10.i.i46, align 4 br label %return if.end7: ; preds = %if.end %8 = getelementptr inbounds i8, ptr %this, i64 120 - %this.val34 = load ptr, ptr %8, align 8 + %this.val30 = load ptr, ptr %8, align 8 %m_ref_count.i.i.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 2 %9 = load i32, ptr %m_ref_count.i.i.i, align 4 %cmp.i9.i = icmp ult i32 %9, 2 - %cmp2.not.i.i = icmp eq ptr %this.val34, %t + %cmp2.not.i.i = icmp eq ptr %this.val30, %t %or.cond.i.i = select i1 %cmp.i9.i, i1 true, i1 %cmp2.not.i.i br i1 %or.cond.i.i, label %if.end21, label %land.rhs.i.i @@ -10825,72 +11108,72 @@ if.then9: ; preds = %land.rhs.i.i, %land %11 = load ptr, ptr %m_cache.i, align 8 %call.i.i = tail call noundef ptr @_ZN9act_cache4findEP4exprj(ptr noundef nonnull align 8 dereferenceable(92) %11, ptr noundef nonnull %t, i32 noundef 0) %tobool11.not = icmp eq ptr %call.i.i, null - br i1 %tobool11.not, label %if.end21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63: ; preds = %if.then9 - %m_ref_count.i.i.i.i.i61 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 - %12 = load i32, ptr %m_ref_count.i.i.i.i.i61, align 4 - %inc.i.i.i.i.i62 = add i32 %12, 1 - store i32 %inc.i.i.i.i.i62, ptr %m_ref_count.i.i.i.i.i61, align 4 - %m_nodes.i64 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %13 = load ptr, ptr %m_nodes.i64, align 8 - %cmp.i.i65 = icmp eq ptr %13, null - br i1 %cmp.i.i65, label %if.then.i.i74, label %lor.lhs.false.i.i66 - -lor.lhs.false.i.i66: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - %arrayidx.i.i67 = getelementptr inbounds i32, ptr %13, i64 -1 - %14 = load i32, ptr %arrayidx.i.i67, align 4 - %arrayidx4.i.i68 = getelementptr inbounds i32, ptr %13, i64 -2 - %15 = load i32, ptr %arrayidx4.i.i68, align 4 - %cmp5.i.i69 = icmp eq i32 %14, %15 - br i1 %cmp5.i.i69, label %if.then.i.i74, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - -if.then.i.i74: ; preds = %lor.lhs.false.i.i66, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i63 - tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i64) - %.pre.i.i75 = load ptr, ptr %m_nodes.i64, align 8 - %arrayidx8.phi.trans.insert.i.i76 = getelementptr inbounds i32, ptr %.pre.i.i75, i64 -1 - %.pre1.i.i77 = load i32, ptr %arrayidx8.phi.trans.insert.i.i76, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78: ; preds = %lor.lhs.false.i.i66, %if.then.i.i74 - %16 = phi i32 [ %.pre1.i.i77, %if.then.i.i74 ], [ %14, %lor.lhs.false.i.i66 ] - %17 = phi ptr [ %.pre.i.i75, %if.then.i.i74 ], [ %13, %lor.lhs.false.i.i66 ] - %idx.ext.i.i70 = zext i32 %16 to i64 - %add.ptr.i.i71 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i70 - store ptr %call.i.i, ptr %add.ptr.i.i71, align 8 - %18 = load ptr, ptr %m_nodes.i64, align 8 - %arrayidx10.i.i72 = getelementptr inbounds i32, ptr %18, i64 -1 - %19 = load i32, ptr %arrayidx10.i.i72, align 4 - %inc.i.i73 = add i32 %19, 1 - store i32 %inc.i.i73, ptr %arrayidx10.i.i72, align 4 + br i1 %tobool11.not, label %if.end21, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59: ; preds = %if.then9 + %m_ref_count.i.i.i.i.i57 = getelementptr inbounds %class.ast, ptr %call.i.i, i64 0, i32 2 + %12 = load i32, ptr %m_ref_count.i.i.i.i.i57, align 4 + %inc.i.i.i.i.i58 = add i32 %12, 1 + store i32 %inc.i.i.i.i.i58, ptr %m_ref_count.i.i.i.i.i57, align 4 + %m_nodes.i60 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %13 = load ptr, ptr %m_nodes.i60, align 8 + %cmp.i.i61 = icmp eq ptr %13, null + br i1 %cmp.i.i61, label %if.then.i.i70, label %lor.lhs.false.i.i62 + +lor.lhs.false.i.i62: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + %arrayidx.i.i63 = getelementptr inbounds i32, ptr %13, i64 -1 + %14 = load i32, ptr %arrayidx.i.i63, align 4 + %arrayidx4.i.i64 = getelementptr inbounds i32, ptr %13, i64 -2 + %15 = load i32, ptr %arrayidx4.i.i64, align 4 + %cmp5.i.i65 = icmp eq i32 %14, %15 + br i1 %cmp5.i.i65, label %if.then.i.i70, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + +if.then.i.i70: ; preds = %lor.lhs.false.i.i62, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i59 + tail call void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i60) + %.pre.i.i71 = load ptr, ptr %m_nodes.i60, align 8 + %arrayidx8.phi.trans.insert.i.i72 = getelementptr inbounds i32, ptr %.pre.i.i71, i64 -1 + %.pre1.i.i73 = load i32, ptr %arrayidx8.phi.trans.insert.i.i72, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74: ; preds = %lor.lhs.false.i.i62, %if.then.i.i70 + %16 = phi i32 [ %.pre1.i.i73, %if.then.i.i70 ], [ %14, %lor.lhs.false.i.i62 ] + %17 = phi ptr [ %.pre.i.i71, %if.then.i.i70 ], [ %13, %lor.lhs.false.i.i62 ] + %idx.ext.i.i66 = zext i32 %16 to i64 + %add.ptr.i.i67 = getelementptr inbounds ptr, ptr %17, i64 %idx.ext.i.i66 + store ptr %call.i.i, ptr %add.ptr.i.i67, align 8 + %18 = load ptr, ptr %m_nodes.i60, align 8 + %arrayidx10.i.i68 = getelementptr inbounds i32, ptr %18, i64 -1 + %19 = load i32, ptr %arrayidx10.i.i68, align 4 + %inc.i.i69 = add i32 %19, 1 + store i32 %inc.i.i69, ptr %arrayidx10.i.i68, align 4 %20 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val32 = load ptr, ptr %20, align 8 - %cmp.not.i79 = icmp eq ptr %call.i.i, %t - %cmp.i.i.i80 = icmp eq ptr %this.val32, null - %or.cond.i81 = select i1 %cmp.not.i79, i1 true, i1 %cmp.i.i.i80 - br i1 %or.cond.i81, label %return, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 - %arrayidx.i.i.i83 = getelementptr inbounds i32, ptr %this.val32, i64 -1 - %21 = load i32, ptr %arrayidx.i.i.i83, align 4 - %cmp3.i.i.i84 = icmp eq i32 %21, 0 - br i1 %cmp3.i.i.i84, label %return, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85 - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 + %this.val = load ptr, ptr %20, align 8 + %cmp.not.i75 = icmp eq ptr %call.i.i, %t + %cmp.i.i.i76 = icmp eq ptr %this.val, null + %or.cond.i77 = select i1 %cmp.not.i75, i1 true, i1 %cmp.i.i.i76 + br i1 %or.cond.i77, label %return, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 + %arrayidx.i.i.i79 = getelementptr inbounds i32, ptr %this.val, i64 -1 + %21 = load i32, ptr %arrayidx.i.i.i79, align 4 + %cmp3.i.i.i80 = icmp eq i32 %21, 0 + br i1 %cmp3.i.i.i80, label %return, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81 + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 %22 = add i32 %21, -1 %23 = zext i32 %22 to i64 - %m_new_child.i.i86 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val32, i64 %23, i32 1 - %bf.load.i.i87 = load i32, ptr %m_new_child.i.i86, align 8 - %bf.set.i.i88 = or i32 %bf.load.i.i87, 2 - store i32 %bf.set.i.i88, ptr %m_new_child.i.i86, align 8 + %m_new_child.i.i82 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val, i64 %23, i32 1 + %bf.load.i.i83 = load i32, ptr %m_new_child.i.i82, align 8 + %bf.set.i.i84 = or i32 %bf.load.i.i83, 2 + store i32 %bf.set.i.i84, ptr %m_new_child.i.i82, align 8 br label %return if.end21: ; preds = %land.rhs.i.i, %land.lhs.true4.i.i, %if.end7, %if.then9 %conv.i.i.i = phi i32 [ 1, %if.then9 ], [ 0, %if.end7 ], [ 0, %land.lhs.true4.i.i ], [ 0, %land.rhs.i.i ] %m_kind.i = getelementptr inbounds %class.ast, ptr %t, i64 0, i32 1 %bf.load.i = load i32, ptr %m_kind.i, align 4 - %trunc166 = trunc i32 %bf.load.i to i16 - switch i16 %trunc166, label %sw.default [ + %trunc139 = trunc i32 %bf.load.i to i16 + switch i16 %trunc139, label %sw.default [ i16 0, label %sw.bb i16 1, label %sw.bb63 i16 2, label %sw.bb65 @@ -10900,237 +11183,65 @@ sw.bb: ; preds = %if.end21 %m_num_args.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 2 %24 = load i32, ptr %m_num_args.i, align 8 %cmp25 = icmp eq i32 %24, 0 - br i1 %cmp25, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i, label %if.end58 - -_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i: ; preds = %sw.bb - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %t.i) - %25 = getelementptr inbounds i8, ptr %this, i64 8 - %this.val.i = load ptr, ptr %25, align 8 - store ptr %t, ptr %t.i, align 8 - %m_manager.i.i = getelementptr inbounds %class.obj_ref.62, ptr %t.i, i64 0, i32 1 - store ptr %this.val.i, ptr %m_manager.i.i, align 8 - %26 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i = add i32 %26, 1 - store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %27 = load ptr, ptr %m_cfg, align 8 - %m_decl.i.i = getelementptr inbounds %class.app, ptr %t, i64 0, i32 1 - %28 = load ptr, ptr %m_decl.i.i, align 8 - %m_r.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 - %call4.i = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %27, ptr noundef %28, ptr noundef nonnull align 8 dereferenceable(16) %m_r.i) - to label %invoke.cont.i unwind label %lpad.i - -invoke.cont.i: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i - %switch.i = icmp eq i32 %call4.i, 5 - br i1 %switch.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i, label %sw.bb13.i - -lpad.i: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit.i, %if.then2.i.i.i.i, %if.then.i.i20.i, %if.then.i.i.i187 - %29 = landingpad { ptr, i32 } - cleanup - call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t.i) #15 - resume { ptr, i32 } %29 - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i: ; preds = %invoke.cont.i - %30 = load i32, ptr %m_ref_count.i.i.i, align 4 - %inc.i.i.i.i.i.i = add i32 %30, 1 - store i32 %inc.i.i.i.i.i.i, ptr %m_ref_count.i.i.i, align 4 - %m_nodes.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %31 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %31, null - br i1 %cmp.i.i.i, label %if.then.i.i.i187, label %lor.lhs.false.i.i.i180 - -lor.lhs.false.i.i.i180: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - %arrayidx.i.i.i = getelementptr inbounds i32, ptr %31, i64 -1 - %32 = load i32, ptr %arrayidx.i.i.i, align 4 - %arrayidx4.i.i.i181 = getelementptr inbounds i32, ptr %31, i64 -2 - %33 = load i32, ptr %arrayidx4.i.i.i181, align 4 - %cmp5.i.i.i182 = icmp eq i32 %32, %33 - br i1 %cmp5.i.i.i182, label %if.then.i.i.i187, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -if.then.i.i.i187: ; preds = %lor.lhs.false.i.i.i180, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i.i) - to label %.noexc.i unwind label %lpad.i - -.noexc.i: ; preds = %if.then.i.i.i187 - %.pre.i.i.i188 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx8.phi.trans.insert.i.i.i189 = getelementptr inbounds i32, ptr %.pre.i.i.i188, i64 -1 - %.pre1.i.i.i190 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i189, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i: ; preds = %.noexc.i, %lor.lhs.false.i.i.i180 - %34 = phi i32 [ %.pre1.i.i.i190, %.noexc.i ], [ %32, %lor.lhs.false.i.i.i180 ] - %35 = phi ptr [ %.pre.i.i.i188, %.noexc.i ], [ %31, %lor.lhs.false.i.i.i180 ] - %idx.ext.i.i.i183 = zext i32 %34 to i64 - %add.ptr.i.i.i184 = getelementptr inbounds ptr, ptr %35, i64 %idx.ext.i.i.i183 - store ptr %t, ptr %add.ptr.i.i.i184, align 8 - %36 = load ptr, ptr %m_nodes.i.i, align 8 - %arrayidx10.i.i.i185 = getelementptr inbounds i32, ptr %36, i64 -1 - %37 = load i32, ptr %arrayidx10.i.i.i185, align 4 - %inc.i.i.i186 = add i32 %37, 1 - store i32 %inc.i.i.i186, ptr %arrayidx10.i.i.i185, align 4 - br label %if.then.i.i.i31.i - -sw.bb13.i: ; preds = %invoke.cont.i - %38 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i.i.i.i5.i = icmp eq ptr %38, null - br i1 %tobool.not.i.i.i.i5.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i, label %if.then.i.i.i.i6.i - -if.then.i.i.i.i6.i: ; preds = %sw.bb13.i - %m_ref_count.i.i.i.i.i7.i = getelementptr inbounds %class.ast, ptr %38, i64 0, i32 2 - %39 = load i32, ptr %m_ref_count.i.i.i.i.i7.i, align 4 - %inc.i.i.i.i.i8.i = add i32 %39, 1 - store i32 %inc.i.i.i.i.i8.i, ptr %m_ref_count.i.i.i.i.i7.i, align 4 - br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i - -_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i: ; preds = %if.then.i.i.i.i6.i, %sw.bb13.i - %m_nodes.i10.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %40 = load ptr, ptr %m_nodes.i10.i, align 8 - %cmp.i.i11.i = icmp eq ptr %40, null - br i1 %cmp.i.i11.i, label %if.then.i.i20.i, label %lor.lhs.false.i.i12.i - -lor.lhs.false.i.i12.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i - %arrayidx.i.i13.i = getelementptr inbounds i32, ptr %40, i64 -1 - %41 = load i32, ptr %arrayidx.i.i13.i, align 4 - %arrayidx4.i.i14.i = getelementptr inbounds i32, ptr %40, i64 -2 - %42 = load i32, ptr %arrayidx4.i.i14.i, align 4 - %cmp5.i.i15.i = icmp eq i32 %41, %42 - br i1 %cmp5.i.i15.i, label %if.then.i.i20.i, label %invoke.cont17.i - -if.then.i.i20.i: ; preds = %lor.lhs.false.i.i12.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i9.i - invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i10.i) - to label %.noexc24.i unwind label %lpad.i - -.noexc24.i: ; preds = %if.then.i.i20.i - %.pre.i.i21.i = load ptr, ptr %m_nodes.i10.i, align 8 - %arrayidx8.phi.trans.insert.i.i22.i = getelementptr inbounds i32, ptr %.pre.i.i21.i, i64 -1 - %.pre1.i.i23.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i22.i, align 4 - br label %invoke.cont17.i - -invoke.cont17.i: ; preds = %.noexc24.i, %lor.lhs.false.i.i12.i - %43 = phi i32 [ %.pre1.i.i23.i, %.noexc24.i ], [ %41, %lor.lhs.false.i.i12.i ] - %44 = phi ptr [ %.pre.i.i21.i, %.noexc24.i ], [ %40, %lor.lhs.false.i.i12.i ] - %idx.ext.i.i16.i = zext i32 %43 to i64 - %add.ptr.i.i17.i = getelementptr inbounds ptr, ptr %44, i64 %idx.ext.i.i16.i - store ptr %38, ptr %add.ptr.i.i17.i, align 8 - %45 = load ptr, ptr %m_nodes.i10.i, align 8 - %arrayidx10.i.i18.i = getelementptr inbounds i32, ptr %45, i64 -1 - %46 = load i32, ptr %arrayidx10.i.i18.i, align 4 - %inc.i.i19.i = add i32 %46, 1 - store i32 %inc.i.i19.i, ptr %arrayidx10.i.i18.i, align 4 - %47 = load ptr, ptr %m_r.i, align 8 - %tobool.not.i3.i.i = icmp eq ptr %47, null - br i1 %tobool.not.i3.i.i, label %invoke.cont20.i, label %if.then.i.i.i.i - -if.then.i.i.i.i: ; preds = %invoke.cont17.i - %m_manager.i.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 - %48 = load ptr, ptr %m_manager.i.i.i, align 8 - %m_ref_count.i.i.i.i26.i = getelementptr inbounds %class.ast, ptr %47, i64 0, i32 2 - %49 = load i32, ptr %m_ref_count.i.i.i.i26.i, align 4 - %dec.i.i.i.i.i = add i32 %49, -1 - store i32 %dec.i.i.i.i.i, ptr %m_ref_count.i.i.i.i26.i, align 4 - %cmp.i.i.i.i179 = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i179, label %if.then2.i.i.i.i, label %invoke.cont20.i - -if.then2.i.i.i.i: ; preds = %if.then.i.i.i.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %48, ptr noundef nonnull %47) - to label %invoke.cont20.i unwind label %lpad.i + br i1 %cmp25, label %if.then26, label %if.end58 -invoke.cont20.i: ; preds = %if.then2.i.i.i.i, %if.then.i.i.i.i, %invoke.cont17.i - store ptr null, ptr %m_r.i, align 8 - %50 = getelementptr inbounds i8, ptr %this, i64 40 - %this.val3.i = load ptr, ptr %50, align 8 - %cmp.i.i28.i = icmp eq ptr %this.val3.i, null - br i1 %cmp.i.i28.i, label %if.then.i.i.i31.i, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - -_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i: ; preds = %invoke.cont20.i - %arrayidx.i.i29.i = getelementptr inbounds i32, ptr %this.val3.i, i64 -1 - %51 = load i32, ptr %arrayidx.i.i29.i, align 4 - %cmp3.i.i.i = icmp eq i32 %51, 0 - br i1 %cmp3.i.i.i, label %if.then.i.i.i31.i, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i - -_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i - %52 = add i32 %51, -1 - %53 = zext i32 %52 to i64 - %m_new_child.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val3.i, i64 %53, i32 1 - %bf.load.i.i = load i32, ptr %m_new_child.i.i, align 8 - %bf.set.i.i = or i32 %bf.load.i.i, 2 - store i32 %bf.set.i.i, ptr %m_new_child.i.i, align 8 - br label %if.then.i.i.i31.i - -if.then.i.i.i31.i: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i, %invoke.cont20.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit.i - %54 = load i32, ptr %m_ref_count.i.i.i, align 4 - %dec.i.i.i.i34.i = add i32 %54, -1 - store i32 %dec.i.i.i.i34.i, ptr %m_ref_count.i.i.i, align 4 - %cmp.i.i.i35.i = icmp eq i32 %dec.i.i.i.i34.i, 0 - br i1 %cmp.i.i.i35.i, label %if.then2.i.i.i36.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb0EEEbP3app.exit - -if.then2.i.i.i36.i: ; preds = %if.then.i.i.i31.i - invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val.i, ptr noundef nonnull %t) - to label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb0EEEbP3app.exit unwind label %terminate.lpad.i.i - -terminate.lpad.i.i: ; preds = %if.then2.i.i.i36.i - %55 = landingpad { ptr, i32 } - catch ptr null - %56 = extractvalue { ptr, i32 } %55, 0 - tail call void @__clang_call_terminate(ptr %56) #14 - unreachable - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb0EEEbP3app.exit: ; preds = %if.then.i.i.i31.i, %if.then2.i.i.i36.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %t.i) +if.then26: ; preds = %sw.bb + tail call fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb0EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef nonnull %t) br label %return if.end58: ; preds = %sw.bb %cmp59.not = icmp eq i32 %max_depth, 3 %dec = shl i32 %max_depth, 4 - %57 = add i32 %dec, 48 - %58 = getelementptr inbounds i8, ptr %this, i64 40 + %25 = add i32 %dec, 48 + %26 = getelementptr inbounds i8, ptr %this, i64 40 %m_nodes.i.i.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %59 = load ptr, ptr %m_nodes.i.i.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %59, null + %27 = load ptr, ptr %m_nodes.i.i.i, align 8 + %cmp.i.i.i.i = icmp eq ptr %27, null br i1 %cmp.i.i.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i, label %if.end.i.i.i.i if.end.i.i.i.i: ; preds = %if.end58 - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %59, i64 -1 - %60 = load i32, ptr %arrayidx.i.i.i.i, align 4 + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %27, i64 -1 + %28 = load i32, ptr %arrayidx.i.i.i.i, align 4 br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i: ; preds = %if.end.i.i.i.i, %if.end58 - %retval.0.i.i.i.i = phi i32 [ %60, %if.end.i.i.i.i ], [ 0, %if.end58 ] - %61 = load ptr, ptr %58, align 8 - %cmp.i.i.i132 = icmp eq ptr %61, null - br i1 %cmp.i.i.i132, label %if.then.i.i.i, label %lor.lhs.false.i.i.i + %retval.0.i.i.i.i = phi i32 [ %28, %if.end.i.i.i.i ], [ 0, %if.end58 ] + %29 = load ptr, ptr %26, align 8 + %cmp.i.i.i107 = icmp eq ptr %29, null + br i1 %cmp.i.i.i107, label %if.then.i.i.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - %arrayidx.i.i.i133 = getelementptr inbounds i32, ptr %61, i64 -1 - %62 = load i32, ptr %arrayidx.i.i.i133, align 4 - %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %61, i64 -2 - %63 = load i32, ptr %arrayidx4.i.i.i, align 4 - %cmp5.i.i.i = icmp eq i32 %62, %63 + %arrayidx.i.i.i108 = getelementptr inbounds i32, ptr %29, i64 -1 + %30 = load i32, ptr %arrayidx.i.i.i108, align 4 + %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %29, i64 -2 + %31 = load i32, ptr %arrayidx4.i.i.i, align 4 + %cmp5.i.i.i = icmp eq i32 %30, %31 br i1 %cmp5.i.i.i, label %if.then.i.i.i, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit if.then.i.i.i: ; preds = %lor.lhs.false.i.i.i, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %58) - %.pre.i.i.i = load ptr, ptr %58, align 8 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %26) + %.pre.i.i.i = load ptr, ptr %26, align 8 %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit _ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit: ; preds = %lor.lhs.false.i.i.i, %if.then.i.i.i - %64 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %62, %lor.lhs.false.i.i.i ] - %65 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %61, %lor.lhs.false.i.i.i ] - %66 = and i32 %57, 48 - %bf.value10.masked.i.i.i = select i1 %cmp59.not, i32 48, i32 %66 + %32 = phi i32 [ %.pre1.i.i.i, %if.then.i.i.i ], [ %30, %lor.lhs.false.i.i.i ] + %33 = phi ptr [ %.pre.i.i.i, %if.then.i.i.i ], [ %29, %lor.lhs.false.i.i.i ] + %34 = and i32 %25, 48 + %bf.value10.masked.i.i.i = select i1 %cmp59.not, i32 48, i32 %34 %bf.clear15.i.i.i = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i - %idx.ext.i.i.i = zext i32 %64 to i64 - %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %65, i64 %idx.ext.i.i.i + %idx.ext.i.i.i = zext i32 %32 to i64 + %add.ptr.i.i.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %33, i64 %idx.ext.i.i.i store ptr %t, ptr %add.ptr.i.i.i, align 8 %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 8 store i32 %bf.clear15.i.i.i, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i, align 8 %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i, i64 12 store i32 %retval.0.i.i.i.i, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i, align 4 - %67 = load ptr, ptr %58, align 8 - %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %67, i64 -1 - %68 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i = add i32 %68, 1 + %35 = load ptr, ptr %26, align 8 + %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %35, i64 -1 + %36 = load i32, ptr %arrayidx10.i.i.i, align 4 + %inc.i.i.i = add i32 %36, 1 store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 br label %return @@ -11141,57 +11252,57 @@ sw.bb63: ; preds = %if.end21 sw.bb65: ; preds = %if.end21 %cmp66.not = icmp eq i32 %max_depth, 3 %dec68 = shl i32 %max_depth, 4 - %69 = add i32 %dec68, 48 - %70 = getelementptr inbounds i8, ptr %this, i64 40 - %m_nodes.i.i.i134 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 - %71 = load ptr, ptr %m_nodes.i.i.i134, align 8 - %cmp.i.i.i.i135 = icmp eq ptr %71, null - br i1 %cmp.i.i.i.i135, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138, label %if.end.i.i.i.i136 - -if.end.i.i.i.i136: ; preds = %sw.bb65 - %arrayidx.i.i.i.i137 = getelementptr inbounds i32, ptr %71, i64 -1 - %72 = load i32, ptr %arrayidx.i.i.i.i137, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138: ; preds = %if.end.i.i.i.i136, %sw.bb65 - %retval.0.i.i.i.i139 = phi i32 [ %72, %if.end.i.i.i.i136 ], [ 0, %sw.bb65 ] - %73 = load ptr, ptr %70, align 8 - %cmp.i.i.i140 = icmp eq ptr %73, null - br i1 %cmp.i.i.i140, label %if.then.i.i.i155, label %lor.lhs.false.i.i.i141 - -lor.lhs.false.i.i.i141: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - %arrayidx.i.i.i142 = getelementptr inbounds i32, ptr %73, i64 -1 - %74 = load i32, ptr %arrayidx.i.i.i142, align 4 - %arrayidx4.i.i.i143 = getelementptr inbounds i32, ptr %73, i64 -2 - %75 = load i32, ptr %arrayidx4.i.i.i143, align 4 - %cmp5.i.i.i144 = icmp eq i32 %74, %75 - br i1 %cmp5.i.i.i144, label %if.then.i.i.i155, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit159 - -if.then.i.i.i155: ; preds = %lor.lhs.false.i.i.i141, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i138 - tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %70) - %.pre.i.i.i156 = load ptr, ptr %70, align 8 - %arrayidx8.phi.trans.insert.i.i.i157 = getelementptr inbounds i32, ptr %.pre.i.i.i156, i64 -1 - %.pre1.i.i.i158 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i157, align 4 - br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit159 - -_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit159: ; preds = %lor.lhs.false.i.i.i141, %if.then.i.i.i155 - %76 = phi i32 [ %.pre1.i.i.i158, %if.then.i.i.i155 ], [ %74, %lor.lhs.false.i.i.i141 ] - %77 = phi ptr [ %.pre.i.i.i156, %if.then.i.i.i155 ], [ %73, %lor.lhs.false.i.i.i141 ] - %78 = and i32 %69, 48 - %bf.value10.masked.i.i.i147 = select i1 %cmp66.not, i32 48, i32 %78 - %bf.clear15.i.i.i148 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i147 - %idx.ext.i.i.i149 = zext i32 %76 to i64 - %add.ptr.i.i.i150 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %77, i64 %idx.ext.i.i.i149 - store ptr %t, ptr %add.ptr.i.i.i150, align 8 - %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i151 = getelementptr inbounds i8, ptr %add.ptr.i.i.i150, i64 8 - store i32 %bf.clear15.i.i.i148, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i151, align 8 - %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i152 = getelementptr inbounds i8, ptr %add.ptr.i.i.i150, i64 12 - store i32 %retval.0.i.i.i.i139, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i152, align 4 - %79 = load ptr, ptr %70, align 8 - %arrayidx10.i.i.i153 = getelementptr inbounds i32, ptr %79, i64 -1 - %80 = load i32, ptr %arrayidx10.i.i.i153, align 4 - %inc.i.i.i154 = add i32 %80, 1 - store i32 %inc.i.i.i154, ptr %arrayidx10.i.i.i153, align 4 + %37 = add i32 %dec68, 48 + %38 = getelementptr inbounds i8, ptr %this, i64 40 + %m_nodes.i.i.i109 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %39 = load ptr, ptr %m_nodes.i.i.i109, align 8 + %cmp.i.i.i.i110 = icmp eq ptr %39, null + br i1 %cmp.i.i.i.i110, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113, label %if.end.i.i.i.i111 + +if.end.i.i.i.i111: ; preds = %sw.bb65 + %arrayidx.i.i.i.i112 = getelementptr inbounds i32, ptr %39, i64 -1 + %40 = load i32, ptr %arrayidx.i.i.i.i112, align 4 + br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113: ; preds = %if.end.i.i.i.i111, %sw.bb65 + %retval.0.i.i.i.i114 = phi i32 [ %40, %if.end.i.i.i.i111 ], [ 0, %sw.bb65 ] + %41 = load ptr, ptr %38, align 8 + %cmp.i.i.i115 = icmp eq ptr %41, null + br i1 %cmp.i.i.i115, label %if.then.i.i.i130, label %lor.lhs.false.i.i.i116 + +lor.lhs.false.i.i.i116: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + %arrayidx.i.i.i117 = getelementptr inbounds i32, ptr %41, i64 -1 + %42 = load i32, ptr %arrayidx.i.i.i117, align 4 + %arrayidx4.i.i.i118 = getelementptr inbounds i32, ptr %41, i64 -2 + %43 = load i32, ptr %arrayidx4.i.i.i118, align 4 + %cmp5.i.i.i119 = icmp eq i32 %42, %43 + br i1 %cmp5.i.i.i119, label %if.then.i.i.i130, label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit134 + +if.then.i.i.i130: ; preds = %lor.lhs.false.i.i.i116, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i.i113 + tail call void @_ZN6vectorIN13rewriter_core5frameELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %38) + %.pre.i.i.i131 = load ptr, ptr %38, align 8 + %arrayidx8.phi.trans.insert.i.i.i132 = getelementptr inbounds i32, ptr %.pre.i.i.i131, i64 -1 + %.pre1.i.i.i133 = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i132, align 4 + br label %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit134 + +_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit134: ; preds = %lor.lhs.false.i.i.i116, %if.then.i.i.i130 + %44 = phi i32 [ %.pre1.i.i.i133, %if.then.i.i.i130 ], [ %42, %lor.lhs.false.i.i.i116 ] + %45 = phi ptr [ %.pre.i.i.i131, %if.then.i.i.i130 ], [ %41, %lor.lhs.false.i.i.i116 ] + %46 = and i32 %37, 48 + %bf.value10.masked.i.i.i122 = select i1 %cmp66.not, i32 48, i32 %46 + %bf.clear15.i.i.i123 = or disjoint i32 %conv.i.i.i, %bf.value10.masked.i.i.i122 + %idx.ext.i.i.i124 = zext i32 %44 to i64 + %add.ptr.i.i.i125 = getelementptr inbounds %"struct.rewriter_core::frame", ptr %45, i64 %idx.ext.i.i.i124 + store ptr %t, ptr %add.ptr.i.i.i125, align 8 + %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i126 = getelementptr inbounds i8, ptr %add.ptr.i.i.i125, i64 8 + store i32 %bf.clear15.i.i.i123, ptr %ref.tmp.sroa.2.0.add.ptr.i.sroa_idx.i.i126, align 8 + %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i127 = getelementptr inbounds i8, ptr %add.ptr.i.i.i125, i64 12 + store i32 %retval.0.i.i.i.i114, ptr %ref.tmp.sroa.3.0.add.ptr.i.sroa_idx.i.i127, align 4 + %47 = load ptr, ptr %38, align 8 + %arrayidx10.i.i.i128 = getelementptr inbounds i32, ptr %47, i64 -1 + %48 = load i32, ptr %arrayidx10.i.i.i128, align 4 + %inc.i.i.i129 = add i32 %48, 1 + store i32 %inc.i.i.i129, ptr %arrayidx10.i.i.i128, align 4 br label %return sw.default: ; preds = %if.end21 @@ -11199,11 +11310,200 @@ sw.default: ; preds = %if.end21 tail call void @exit(i32 noundef 114) #14 unreachable -return: ; preds = %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb0EEEbP3app.exit, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit159, %sw.bb63, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 - %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit56 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit159 ], [ true, %sw.bb63 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit ], [ true, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb0EEEbP3app.exit ], [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit78 ], [ true, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i82 ], [ true, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i85 ] +return: ; preds = %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit134, %sw.bb63, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit, %if.then26, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 + %retval.0 = phi i1 [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit52 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit134 ], [ true, %sw.bb63 ], [ true, %if.then26 ], [ false, %_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE10push_frameEP4exprbj.exit ], [ true, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit74 ], [ true, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i.i78 ], [ true, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i.i81 ] ret i1 %retval.0 } +; Function Attrs: mustprogress uwtable +define internal fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE13process_constILb0EEEbP3app(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %t0) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { +entry: + %t = alloca %class.obj_ref.62, align 8 + %0 = getelementptr inbounds i8, ptr %this, i64 8 + %this.val = load ptr, ptr %0, align 8 + store ptr %t0, ptr %t, align 8 + %m_manager.i = getelementptr inbounds %class.obj_ref.62, ptr %t, i64 0, i32 1 + store ptr %this.val, ptr %m_manager.i, align 8 + %tobool.not.i.i = icmp eq ptr %t0, null + br i1 %tobool.not.i.i, label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit, label %_ZN11ast_manager7inc_refEP3ast.exit.i.i + +_ZN11ast_manager7inc_refEP3ast.exit.i.i: ; preds = %entry + %m_ref_count.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %1 = load i32, ptr %m_ref_count.i.i.i.i, align 4 + %inc.i.i.i.i = add i32 %1, 1 + store i32 %inc.i.i.i.i, ptr %m_ref_count.i.i.i.i, align 4 + br label %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + +_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit: ; preds = %entry, %_ZN11ast_manager7inc_refEP3ast.exit.i.i + %m_cfg = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 1 + %2 = load ptr, ptr %m_cfg, align 8 + %m_decl.i = getelementptr inbounds %class.app, ptr %t0, i64 0, i32 1 + %3 = load ptr, ptr %m_decl.i, align 8 + %m_r = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6 + %call4 = invoke fastcc noundef i32 @_ZN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfg10reduce_appEP9func_decljPKP4exprR7obj_refIS4_11ast_managerERS8_I3appS9_E(ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(16) %m_r) + to label %invoke.cont unwind label %lpad + +invoke.cont: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit + %switch = icmp eq i32 %call4, 5 + br i1 %switch, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %sw.bb13 + +lpad: ; preds = %_ZN7obj_refI3app11ast_managerEC2EPS0_RS1_.exit, %if.then2.i.i.i, %if.then.i.i19, %if.then.i.i + %4 = landingpad { ptr, i32 } + cleanup + call void @_ZN7obj_refI3app11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %t) #15 + resume { ptr, i32 } %4 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i: ; preds = %invoke.cont + %m_ref_count.i.i.i.i.i = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %5 = load i32, ptr %m_ref_count.i.i.i.i.i, align 4 + %inc.i.i.i.i.i = add i32 %5, 1 + store i32 %inc.i.i.i.i.i, ptr %m_ref_count.i.i.i.i.i, align 4 + %m_nodes.i = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %6 = load ptr, ptr %m_nodes.i, align 8 + %cmp.i.i = icmp eq ptr %6, null + br i1 %cmp.i.i, label %if.then.i.i, label %lor.lhs.false.i.i + +lor.lhs.false.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + %arrayidx.i.i = getelementptr inbounds i32, ptr %6, i64 -1 + %7 = load i32, ptr %arrayidx.i.i, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %6, i64 -2 + %8 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %7, %8 + br i1 %cmp5.i.i, label %if.then.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +if.then.i.i: ; preds = %lor.lhs.false.i.i, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i) + to label %.noexc unwind label %lpad + +.noexc: ; preds = %if.then.i.i + %.pre.i.i = load ptr, ptr %m_nodes.i, align 8 + %arrayidx8.phi.trans.insert.i.i = getelementptr inbounds i32, ptr %.pre.i.i, i64 -1 + %.pre1.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit: ; preds = %lor.lhs.false.i.i, %.noexc + %9 = phi i32 [ %.pre1.i.i, %.noexc ], [ %7, %lor.lhs.false.i.i ] + %10 = phi ptr [ %.pre.i.i, %.noexc ], [ %6, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %9 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %10, i64 %idx.ext.i.i + store ptr %t0, ptr %add.ptr.i.i, align 8 + %11 = load ptr, ptr %m_nodes.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %11, i64 -1 + %12 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %12, 1 + store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 + br label %if.then.i.i.i30 + +sw.bb13: ; preds = %invoke.cont + %13 = load ptr, ptr %m_r, align 8 + %tobool.not.i.i.i.i4 = icmp eq ptr %13, null + br i1 %tobool.not.i.i.i.i4, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8, label %if.then.i.i.i.i5 + +if.then.i.i.i.i5: ; preds = %sw.bb13 + %m_ref_count.i.i.i.i.i6 = getelementptr inbounds %class.ast, ptr %13, i64 0, i32 2 + %14 = load i32, ptr %m_ref_count.i.i.i.i.i6, align 4 + %inc.i.i.i.i.i7 = add i32 %14, 1 + store i32 %inc.i.i.i.i.i7, ptr %m_ref_count.i.i.i.i.i6, align 4 + br label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8 + +_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8: ; preds = %if.then.i.i.i.i5, %sw.bb13 + %m_nodes.i9 = getelementptr inbounds %class.rewriter_core, ptr %this, i64 0, i32 7, i32 0, i32 1 + %15 = load ptr, ptr %m_nodes.i9, align 8 + %cmp.i.i10 = icmp eq ptr %15, null + br i1 %cmp.i.i10, label %if.then.i.i19, label %lor.lhs.false.i.i11 + +lor.lhs.false.i.i11: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8 + %arrayidx.i.i12 = getelementptr inbounds i32, ptr %15, i64 -1 + %16 = load i32, ptr %arrayidx.i.i12, align 4 + %arrayidx4.i.i13 = getelementptr inbounds i32, ptr %15, i64 -2 + %17 = load i32, ptr %arrayidx4.i.i13, align 4 + %cmp5.i.i14 = icmp eq i32 %16, %17 + br i1 %cmp5.i.i14, label %if.then.i.i19, label %invoke.cont17 + +if.then.i.i19: ; preds = %lor.lhs.false.i.i11, %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i8 + invoke void @_ZN6vectorIP4exprLb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_nodes.i9) + to label %.noexc23 unwind label %lpad + +.noexc23: ; preds = %if.then.i.i19 + %.pre.i.i20 = load ptr, ptr %m_nodes.i9, align 8 + %arrayidx8.phi.trans.insert.i.i21 = getelementptr inbounds i32, ptr %.pre.i.i20, i64 -1 + %.pre1.i.i22 = load i32, ptr %arrayidx8.phi.trans.insert.i.i21, align 4 + br label %invoke.cont17 + +invoke.cont17: ; preds = %.noexc23, %lor.lhs.false.i.i11 + %18 = phi i32 [ %.pre1.i.i22, %.noexc23 ], [ %16, %lor.lhs.false.i.i11 ] + %19 = phi ptr [ %.pre.i.i20, %.noexc23 ], [ %15, %lor.lhs.false.i.i11 ] + %idx.ext.i.i15 = zext i32 %18 to i64 + %add.ptr.i.i16 = getelementptr inbounds ptr, ptr %19, i64 %idx.ext.i.i15 + store ptr %13, ptr %add.ptr.i.i16, align 8 + %20 = load ptr, ptr %m_nodes.i9, align 8 + %arrayidx10.i.i17 = getelementptr inbounds i32, ptr %20, i64 -1 + %21 = load i32, ptr %arrayidx10.i.i17, align 4 + %inc.i.i18 = add i32 %21, 1 + store i32 %inc.i.i18, ptr %arrayidx10.i.i17, align 4 + %22 = load ptr, ptr %m_r, align 8 + %tobool.not.i3.i = icmp eq ptr %22, null + br i1 %tobool.not.i3.i, label %invoke.cont20, label %if.then.i.i.i + +if.then.i.i.i: ; preds = %invoke.cont17 + %m_manager.i.i = getelementptr inbounds %class.rewriter_tpl, ptr %this, i64 0, i32 6, i32 1 + %23 = load ptr, ptr %m_manager.i.i, align 8 + %m_ref_count.i.i.i.i25 = getelementptr inbounds %class.ast, ptr %22, i64 0, i32 2 + %24 = load i32, ptr %m_ref_count.i.i.i.i25, align 4 + %dec.i.i.i.i = add i32 %24, -1 + store i32 %dec.i.i.i.i, ptr %m_ref_count.i.i.i.i25, align 4 + %cmp.i.i.i = icmp eq i32 %dec.i.i.i.i, 0 + br i1 %cmp.i.i.i, label %if.then2.i.i.i, label %invoke.cont20 + +if.then2.i.i.i: ; preds = %if.then.i.i.i + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %23, ptr noundef nonnull %22) + to label %invoke.cont20 unwind label %lpad + +invoke.cont20: ; preds = %if.then.i.i.i, %invoke.cont17, %if.then2.i.i.i + store ptr null, ptr %m_r, align 8 + %25 = getelementptr inbounds i8, ptr %this, i64 40 + %this.val2 = load ptr, ptr %25, align 8 + %cmp.i.i27 = icmp eq ptr %this.val2, null + br i1 %cmp.i.i27, label %if.then.i.i.i30, label %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + +_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i: ; preds = %invoke.cont20 + %arrayidx.i.i28 = getelementptr inbounds i32, ptr %this.val2, i64 -1 + %26 = load i32, ptr %arrayidx.i.i28, align 4 + %cmp3.i.i = icmp eq i32 %26, 0 + br i1 %cmp3.i.i, label %if.then.i.i.i30, label %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + +_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i: ; preds = %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i + %27 = add i32 %26, -1 + %28 = zext i32 %27 to i64 + %m_new_child.i = getelementptr inbounds %"struct.rewriter_core::frame", ptr %this.val2, i64 %28, i32 1 + %bf.load.i = load i32, ptr %m_new_child.i, align 8 + %bf.set.i = or i32 %bf.load.i, 2 + store i32 %bf.set.i, ptr %m_new_child.i, align 8 + br label %if.then.i.i.i30 + +if.then.i.i.i30: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE9push_backEPS0_.exit, %invoke.cont20, %_ZNK6vectorIN13rewriter_core5frameELb0EjE5emptyEv.exit.i, %_ZN6vectorIN13rewriter_core5frameELb0EjE4backEv.exit.i + %m_ref_count.i.i.i.i32 = getelementptr inbounds %class.ast, ptr %t0, i64 0, i32 2 + %29 = load i32, ptr %m_ref_count.i.i.i.i32, align 4 + %dec.i.i.i.i33 = add i32 %29, -1 + store i32 %dec.i.i.i.i33, ptr %m_ref_count.i.i.i.i32, align 4 + %cmp.i.i.i34 = icmp eq i32 %dec.i.i.i.i33, 0 + br i1 %cmp.i.i.i34, label %if.then2.i.i.i35, label %_ZN7obj_refI3app11ast_managerED2Ev.exit + +if.then2.i.i.i35: ; preds = %if.then.i.i.i30 + invoke void @_ZN11ast_manager11delete_nodeEP3ast(ptr noundef nonnull align 8 dereferenceable(976) %this.val, ptr noundef nonnull %t0) + to label %_ZN7obj_refI3app11ast_managerED2Ev.exit unwind label %terminate.lpad.i + +terminate.lpad.i: ; preds = %if.then2.i.i.i35 + %30 = landingpad { ptr, i32 } + catch ptr null + %31 = extractvalue { ptr, i32 } %30, 0 + tail call void @__clang_call_terminate(ptr %31) #14 + unreachable + +_ZN7obj_refI3app11ast_managerED2Ev.exit: ; preds = %if.then.i.i.i30, %if.then2.i.i.i35 + ret void +} + ; Function Attrs: mustprogress uwtable define internal fastcc void @_ZN12rewriter_tplIN6spacer12_GLOBAL__N_130limit_denominator_rewriter_cfgEE11process_varILb0EEEvP3var(ptr noundef nonnull align 8 dereferenceable(536) %this, ptr noundef %v) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { if.end: diff --git a/bench/z3/optimized/spacer_context.cpp.ll b/bench/z3/optimized/spacer_context.cpp.ll index 7fbc80153fe..30a0208457c 100644 --- a/bench/z3/optimized/spacer_context.cpp.ll +++ b/bench/z3/optimized/spacer_context.cpp.ll @@ -2204,7 +2204,7 @@ if.then.i.i.i.i: ; preds = %if.else.i.i _ZNKSt6vectorIPN6spacer3pobESaIS2_EE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %if.else.i.i %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i, 3 %.sroa.speculated.i.i.i.i = tail call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i.i, i64 1) - %add.i.i.i.i = add i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i + %add.i.i.i.i = add nsw i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i %cmp7.i.i.i.i = icmp ult i64 %add.i.i.i.i, %sub.ptr.div.i.i.i.i.i %5 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i.i, i64 1152921504606846975) %cond.i.i.i.i = select i1 %cmp7.i.i.i.i, i64 1152921504606846975, i64 %5 @@ -13110,35 +13110,35 @@ _ZN3refI4goalEC2EPS0_.exit: ; preds = %invoke.cont9 %m_pos.i.i.i.i = getelementptr inbounds %class.buffer.264, ptr %result, i64 0, i32 1 %m_capacity.i.i.i.i = getelementptr inbounds %class.buffer.264, ptr %result, i64 0, i32 2 %m_empty.i.i = getelementptr inbounds %struct.mk_ismt2_pp, ptr %ref.tmp112, i64 0, i32 2 - %m_empty.i.i195 = getelementptr inbounds %struct.mk_ismt2_pp, ptr %ref.tmp135, i64 0, i32 2 - %m_empty.i.i248 = getelementptr inbounds %struct.mk_ismt2_pp, ptr %ref.tmp166, i64 0, i32 2 + %m_empty.i.i196 = getelementptr inbounds %struct.mk_ismt2_pp, ptr %ref.tmp135, i64 0, i32 2 + %m_empty.i.i249 = getelementptr inbounds %struct.mk_ismt2_pp, ptr %ref.tmp166, i64 0, i32 2 %11 = zext i32 %retval.0.i.i to i64 br label %for.body for.body: ; preds = %_ZN3refI4goalEC2EPS0_.exit, %_ZN11sref_bufferI4goalLj16EED2Ev.exit - %num_sumbsumed.0547 = phi i32 [ 0, %_ZN3refI4goalEC2EPS0_.exit ], [ %num_sumbsumed.2672, %_ZN11sref_bufferI4goalLj16EED2Ev.exit ] - %j.0546 = phi i32 [ 0, %_ZN3refI4goalEC2EPS0_.exit ], [ %j.1.lcssa665671, %_ZN11sref_bufferI4goalLj16EED2Ev.exit ] - %i.0545 = phi i32 [ 0, %_ZN3refI4goalEC2EPS0_.exit ], [ %inc188, %_ZN11sref_bufferI4goalLj16EED2Ev.exit ] + %num_sumbsumed.0548 = phi i32 [ 0, %_ZN3refI4goalEC2EPS0_.exit ], [ %num_sumbsumed.2673, %_ZN11sref_bufferI4goalLj16EED2Ev.exit ] + %j.0547 = phi i32 [ 0, %_ZN3refI4goalEC2EPS0_.exit ], [ %j.1.lcssa666672, %_ZN11sref_bufferI4goalLj16EED2Ev.exit ] + %i.0546 = phi i32 [ 0, %_ZN3refI4goalEC2EPS0_.exit ], [ %inc188, %_ZN11sref_bufferI4goalLj16EED2Ev.exit ] %12 = load ptr, ptr %g, align 8 invoke void @_ZN4goal9reset_allEv(ptr noundef nonnull align 8 dereferenceable(124) %12) to label %invoke.cont16 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont16: ; preds = %for.body %13 = load i32, ptr %m_size, align 8 - %cmp18 = icmp ult i32 %i.0545, %13 - %spec.select = select i1 %cmp18, i32 %i.0545, i32 -1 + %cmp18 = icmp ult i32 %i.0546, %13 + %spec.select = select i1 %cmp18, i32 %i.0546, i32 -1 store ptr %m_initial_buffer.i.i.i.i, ptr %result, align 8 store i32 0, ptr %m_pos.i.i.i.i, align 8 store i32 16, ptr %m_capacity.i.i.i.i, align 4 - %cmp23536 = icmp ult i32 %j.0546, %retval.0.i.i - br i1 %cmp23536, label %invoke.cont26.preheader, label %cleanup.thread + %cmp23537 = icmp ult i32 %j.0547, %retval.0.i.i + br i1 %cmp23537, label %invoke.cont26.preheader, label %cleanup.thread cleanup.thread: ; preds = %invoke.cont16 %14 = load ptr, ptr %result, align 8 br label %invoke.cont5.i.i invoke.cont26.preheader: ; preds = %invoke.cont16 - %15 = zext i32 %j.0546 to i64 + %15 = zext i32 %j.0547 to i64 br label %invoke.cont26 invoke.cont26: ; preds = %invoke.cont26.preheader, %for.inc @@ -13177,68 +13177,68 @@ lpad6: ; preds = %invoke.cont9, %_ZNK cleanup br label %ehcleanup214 -lpad13.loopexit: ; preds = %if.then.i.i.i316 +lpad13.loopexit: ; preds = %if.then.i.i.i317 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %ehcleanup213 -lpad13.loopexit.split-lp.loopexit: ; preds = %if.then.i.i.i.i.i304 - %lpad.loopexit409 = landingpad { ptr, i32 } +lpad13.loopexit.split-lp.loopexit: ; preds = %if.then.i.i.i.i.i305 + %lpad.loopexit410 = landingpad { ptr, i32 } cleanup br label %ehcleanup213 lpad13.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body - %lpad.loopexit428 = landingpad { ptr, i32 } + %lpad.loopexit429 = landingpad { ptr, i32 } cleanup br label %ehcleanup213 -lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then197, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i325 +lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then197, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i326 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %ehcleanup213 -lpad25.loopexit: ; preds = %for.body159, %invoke.cont160, %invoke.cont162, %if.then.i.i.i236, %invoke.cont167 - %lpad.loopexit412 = landingpad { ptr, i32 } +lpad25.loopexit: ; preds = %for.body159, %invoke.cont160, %invoke.cont162, %if.then.i.i.i237, %invoke.cont167 + %lpad.loopexit413 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad25.loopexit.split-lp.loopexit: ; preds = %invoke.cont139, %invoke.cont137, %invoke.cont131, %invoke.cont129, %for.body128 - %lpad.loopexit414 = landingpad { ptr, i32 } + %lpad.loopexit415 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad25.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %invoke.cont90, %if.then.i.i.i129 - %lpad.loopexit417 = landingpad { ptr, i32 } + %lpad.loopexit418 = landingpad { ptr, i32 } cleanup br label %ehcleanup -lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i400, %if.then.i - %lpad.loopexit419 = landingpad { ptr, i32 } +lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end.i401, %if.then.i + %lpad.loopexit420 = landingpad { ptr, i32 } cleanup br label %ehcleanup -lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit: ; preds = %if.then.i.i148 - %lpad.loopexit550 = landingpad { ptr, i32 } +lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit: ; preds = %if.then.i.i149 + %lpad.loopexit551 = landingpad { ptr, i32 } cleanup br label %ehcleanup -lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %invoke.cont113, %if.then.i.i.i177, %invoke.cont150, %for.end149, %invoke.cont121, %invoke.cont119, %invoke.cont108, %if.then107 - %lpad.loopexit.split-lp551 = landingpad { ptr, i32 } +lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %invoke.cont113, %if.then.i.i.i178, %invoke.cont150, %for.end149, %invoke.cont121, %invoke.cont119, %invoke.cont108, %if.then107 + %lpad.loopexit.split-lp552 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %invoke.cont43, %invoke.cont41 - %lpad.loopexit425 = landingpad { ptr, i32 } + %lpad.loopexit426 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end56, %if.then.i.i66 - %lpad.loopexit430 = landingpad { ptr, i32 } + %lpad.loopexit431 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then180 - %lpad.loopexit.split-lp431 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp432 = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -13253,8 +13253,8 @@ for.end.split.loop.exit: ; preds = %invoke.cont26 for.end: ; preds = %for.inc, %for.end.split.loop.exit %j.1.lcssa = phi i32 [ %23, %for.end.split.loop.exit ], [ %retval.0.i.i, %for.inc ] - %sub = sub i32 %j.1.lcssa, %j.0546 - %cmp46 = icmp eq i32 %j.1.lcssa, %j.0546 + %sub = sub i32 %j.1.lcssa, %j.0547 + %cmp46 = icmp eq i32 %j.1.lcssa, %j.0547 br i1 %cmp46, label %cleanup, label %if.end48 if.end48: ; preds = %for.end @@ -13263,7 +13263,7 @@ if.end48: ; preds = %for.end invoke.cont52: ; preds = %if.end48 %24 = load ptr, ptr %m_lemmas, align 8 - %idxprom.i.i62 = zext i32 %j.0546 to i64 + %idxprom.i.i62 = zext i32 %j.0547 to i64 %arrayidx.i.i63 = getelementptr inbounds ptr, ptr %24, i64 %idxprom.i.i62 %25 = load ptr, ptr %arrayidx.i.i63, align 8 %tobool.not.i.i.i = icmp eq ptr %25, null @@ -13330,7 +13330,7 @@ while.body.i.i.i: ; preds = %invoke.cont60, %sw. %c.0.i.i.i = phi ptr [ %39, %sw.bb.i.i.i ], [ %37, %invoke.cont60 ] %bf.load.i.i.i.i = load i32, ptr %c.0.i.i.i, align 8 %bf.lshr.i.i.i.i = lshr i32 %bf.load.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i, label %while.body.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i, label %while.body.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i i32 1, label %sw.bb3.i.i.i i32 2, label %sw.bb5.i.i.i @@ -13359,7 +13359,10 @@ sw.bb7.i.i.i: ; preds = %while.body.i.i.i %45 = load i32, ptr %44, align 4 br label %invoke.cont62 -while.body.unreachabledefault.i.i.i: ; preds = %while.body.i.i.i +while.body.i.i.i.unreachabledefault: ; preds = %while.body.i.i.i + unreachable + +default.unreachable: ; preds = %while.body.i.i.i92, %while.body.i.i.i107, %if.end.i.i.i126, %if.end.i.i.i165, %while.body.i.i.i201, %if.end.i.i.i224 unreachable invoke.cont62: ; preds = %sw.bb7.i.i.i, %sw.bb5.i.i.i, %sw.bb3.i.i.i @@ -13368,17 +13371,17 @@ invoke.cont62: ; preds = %sw.bb7.i.i.i, %sw.b br i1 %cmp64, label %for.cond66.preheader, label %while.body.i.i.i92 for.cond66.preheader: ; preds = %invoke.cont62 - %cmp67543 = icmp ult i32 %j.0546, %j.1.lcssa - br i1 %cmp67543, label %invoke.cont70.preheader, label %cleanup + %cmp67544 = icmp ult i32 %j.0547, %j.1.lcssa + br i1 %cmp67544, label %invoke.cont70.preheader, label %cleanup invoke.cont70.preheader: ; preds = %for.cond66.preheader - %46 = zext i32 %j.0546 to i64 + %46 = zext i32 %j.0547 to i64 br label %invoke.cont70 invoke.cont70: ; preds = %invoke.cont70.preheader, %for.inc74 - %indvars.iv651 = phi i64 [ %46, %invoke.cont70.preheader ], [ %indvars.iv.next652, %for.inc74 ] + %indvars.iv652 = phi i64 [ %46, %invoke.cont70.preheader ], [ %indvars.iv.next653, %for.inc74 ] %47 = load ptr, ptr %m_lemmas, align 8 - %arrayidx.i.i70 = getelementptr inbounds ptr, ptr %47, i64 %indvars.iv651 + %arrayidx.i.i70 = getelementptr inbounds ptr, ptr %47, i64 %indvars.iv652 %48 = load ptr, ptr %arrayidx.i.i70, align 8 %tobool.not.i.i.i71 = icmp eq ptr %48, null br i1 %tobool.not.i.i.i71, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i74, label %if.then.i.i.i72 @@ -13405,14 +13408,14 @@ lor.lhs.false.i.i76: ; preds = %_ZN15ref_vector_cor if.then.i: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i74 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp18.i) - %call.i401 = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) + %call.i402 = invoke noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 24) to label %call.i.noexc unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit call.i.noexc: ; preds = %if.then.i - store i32 2, ptr %call.i401, align 4 - %incdec.ptr.i = getelementptr inbounds i32, ptr %call.i401, i64 1 + store i32 2, ptr %call.i402, align 4 + %incdec.ptr.i = getelementptr inbounds i32, ptr %call.i402, i64 1 store i32 0, ptr %incdec.ptr.i, align 4 - %incdec.ptr2.i = getelementptr inbounds i32, ptr %call.i401, i64 2 + %incdec.ptr2.i = getelementptr inbounds i32, ptr %call.i402, i64 2 store ptr %incdec.ptr2.i, ptr %new_lemmas, align 8 br label %.noexc88 @@ -13431,7 +13434,7 @@ lor.lhs.false.i: ; preds = %if.else.i %mul6.i = shl i32 %51, 3 %add7.i = add i32 %mul6.i, 8 %cmp16.not.i = icmp ugt i32 %add13.i, %add7.i - br i1 %cmp16.not.i, label %if.end.i400, label %if.then17.i + br i1 %cmp16.not.i, label %if.end.i401, label %if.then17.i if.then17.i: ; preds = %lor.lhs.false.i, %if.else.i %exception.i = call ptr @__cxa_allocate_exception(i64 40) #25 @@ -13460,15 +13463,15 @@ cleanup.action.i: ; preds = %if.then17.i call void @__cxa_free_exception(ptr %exception.i) #25 br label %ehcleanup -if.end.i400: ; preds = %lor.lhs.false.i +if.end.i401: ; preds = %lor.lhs.false.i %conv24.i = zext i32 %add13.i to i64 - %call25.i402 = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i78, i64 noundef %conv24.i) + %call25.i403 = invoke noalias noundef ptr @_ZN6memory10reallocateEPvm(ptr noundef nonnull %arrayidx4.i.i78, i64 noundef %conv24.i) to label %call25.i.noexc unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit -call25.i.noexc: ; preds = %if.end.i400 - %add.ptr26.i = getelementptr inbounds i32, ptr %call25.i402, i64 2 +call25.i.noexc: ; preds = %if.end.i401 + %add.ptr26.i = getelementptr inbounds i32, ptr %call25.i403, i64 2 store ptr %add.ptr26.i, ptr %new_lemmas, align 8 - store i32 %shr.i, ptr %call25.i402, align 4 + store i32 %shr.i, ptr %call25.i403, align 4 br label %.noexc88 unreachable.i: ; preds = %invoke.cont.i @@ -13493,16 +13496,16 @@ for.inc74: ; preds = %.noexc88, %lor.lhs. %58 = load i32, ptr %arrayidx10.i.i82, align 4 %inc.i.i83 = add i32 %58, 1 store i32 %inc.i.i83, ptr %arrayidx10.i.i82, align 4 - %indvars.iv.next652 = add nuw nsw i64 %indvars.iv651, 1 - %lftr.wideiv = trunc i64 %indvars.iv.next652 to i32 - %exitcond654.not = icmp eq i32 %j.1.lcssa, %lftr.wideiv - br i1 %exitcond654.not, label %cleanup, label %invoke.cont70, !llvm.loop !66 + %indvars.iv.next653 = add nuw nsw i64 %indvars.iv652, 1 + %lftr.wideiv = trunc i64 %indvars.iv.next653 to i32 + %exitcond655.not = icmp eq i32 %j.1.lcssa, %lftr.wideiv + br i1 %exitcond655.not, label %cleanup, label %invoke.cont70, !llvm.loop !66 while.body.i.i.i92: ; preds = %invoke.cont62, %sw.bb.i.i.i102 %c.0.i.i.i93 = phi ptr [ %60, %sw.bb.i.i.i102 ], [ %37, %invoke.cont62 ] %bf.load.i.i.i.i94 = load i32, ptr %c.0.i.i.i93, align 8 %bf.lshr.i.i.i.i95 = lshr i32 %bf.load.i.i.i.i94, 30 - switch i32 %bf.lshr.i.i.i.i95, label %while.body.unreachabledefault.i.i.i103 [ + switch i32 %bf.lshr.i.i.i.i95, label %default.unreachable [ i32 0, label %sw.bb.i.i.i102 i32 1, label %sw.bb3.i.i.i100 i32 2, label %sw.bb5.i.i.i98 @@ -13531,20 +13534,17 @@ sw.bb7.i.i.i96: ; preds = %while.body.i.i.i92 %66 = load i32, ptr %65, align 4 br label %invoke.cont77 -while.body.unreachabledefault.i.i.i103: ; preds = %while.body.i.i.i92 - unreachable - invoke.cont77: ; preds = %invoke.cont60, %sw.bb7.i.i.i96, %sw.bb5.i.i.i98, %sw.bb3.i.i.i100 %retval.0.i.i.i97 = phi i32 [ %66, %sw.bb7.i.i.i96 ], [ %sub.i.i.i99, %sw.bb5.i.i.i98 ], [ %add.i.i.i101, %sw.bb3.i.i.i100 ], [ 0, %invoke.cont60 ] - %sub79 = add i32 %sub, %num_sumbsumed.0547 + %sub79 = add i32 %sub, %num_sumbsumed.0548 %add = sub i32 %sub79, %retval.0.i.i.i97 - %cmp87539 = icmp ult i32 %j.0546, %j.1.lcssa + %cmp87540 = icmp ult i32 %j.0547, %j.1.lcssa %m_inconsistent.i.i = getelementptr inbounds %class.goal, ptr %36, i64 0, i32 10 br label %for.cond80 for.cond80: ; preds = %for.end106, %invoke.cont77 %67 = phi ptr [ %.pre, %for.end106 ], [ %37, %invoke.cont77 ] - %indvars.iv648 = phi i64 [ %indvars.iv.next649, %for.end106 ], [ 0, %invoke.cont77 ] + %indvars.iv649 = phi i64 [ %indvars.iv.next650, %for.end106 ], [ 0, %invoke.cont77 ] %cmp.i.i.i106 = icmp eq ptr %67, null br i1 %cmp.i.i.i106, label %invoke.cont81, label %while.body.i.i.i107 @@ -13552,7 +13552,7 @@ while.body.i.i.i107: ; preds = %for.cond80, %sw.bb. %c.0.i.i.i108 = phi ptr [ %69, %sw.bb.i.i.i117 ], [ %67, %for.cond80 ] %bf.load.i.i.i.i109 = load i32, ptr %c.0.i.i.i108, align 8 %bf.lshr.i.i.i.i110 = lshr i32 %bf.load.i.i.i.i109, 30 - switch i32 %bf.lshr.i.i.i.i110, label %while.body.unreachabledefault.i.i.i118 [ + switch i32 %bf.lshr.i.i.i.i110, label %default.unreachable [ i32 0, label %sw.bb.i.i.i117 i32 1, label %sw.bb3.i.i.i115 i32 2, label %sw.bb5.i.i.i113 @@ -13581,27 +13581,24 @@ sw.bb7.i.i.i111: ; preds = %while.body.i.i.i107 %75 = load i32, ptr %74, align 4 br label %invoke.cont81 -while.body.unreachabledefault.i.i.i118: ; preds = %while.body.i.i.i107 - unreachable - invoke.cont81: ; preds = %sw.bb7.i.i.i111, %sw.bb5.i.i.i113, %sw.bb3.i.i.i115, %for.cond80 %retval.0.i.i.i112 = phi i32 [ %75, %sw.bb7.i.i.i111 ], [ %sub.i.i.i114, %sw.bb5.i.i.i113 ], [ %add.i.i.i116, %sw.bb3.i.i.i115 ], [ 0, %for.cond80 ] %76 = zext i32 %retval.0.i.i.i112 to i64 - %cmp83 = icmp ult i64 %indvars.iv648, %76 + %cmp83 = icmp ult i64 %indvars.iv649, %76 br i1 %cmp83, label %for.cond86.preheader, label %cleanup for.cond86.preheader: ; preds = %invoke.cont81 - br i1 %cmp87539, label %invoke.cont90, label %if.then107 + br i1 %cmp87540, label %invoke.cont90, label %if.then107 for.cond86: ; preds = %invoke.cont94 - %inc105 = add nuw i32 %n85.0540, 1 - %exitcond647.not = icmp eq i32 %inc105, %j.1.lcssa - br i1 %exitcond647.not, label %if.then107.loopexit, label %invoke.cont90, !llvm.loop !67 + %inc105 = add nuw i32 %n85.0541, 1 + %exitcond648.not = icmp eq i32 %inc105, %j.1.lcssa + br i1 %exitcond648.not, label %if.then107.loopexit, label %invoke.cont90, !llvm.loop !67 invoke.cont90: ; preds = %for.cond86.preheader, %for.cond86 - %n85.0540 = phi i32 [ %inc105, %for.cond86 ], [ %j.0546, %for.cond86.preheader ] + %n85.0541 = phi i32 [ %inc105, %for.cond86 ], [ %j.0547, %for.cond86.preheader ] %77 = load ptr, ptr %m_lemmas, align 8 - %idxprom.i.i120 = zext i32 %n85.0540 to i64 + %idxprom.i.i120 = zext i32 %n85.0541 to i64 %arrayidx.i.i121 = getelementptr inbounds ptr, ptr %77, i64 %idxprom.i.i120 %78 = load ptr, ptr %arrayidx.i.i121, align 8 invoke void @_ZN6spacer5lemma12mk_expr_coreEv(ptr noundef nonnull align 8 dereferenceable(109) %78) @@ -13626,13 +13623,13 @@ cond.false.i: ; preds = %invoke.cont92 if.then.i.i.i129: ; preds = %sw.epilog.i.i.i invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i, ptr noundef nonnull align 8 dereferenceable(12) %m_forms.i) - to label %.noexc132 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit + to label %.noexc133 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit -.noexc132: ; preds = %if.then.i.i.i129 +.noexc133: ; preds = %if.then.i.i.i129 %82 = load ptr, ptr %m_forms.i, align 8 %83 = getelementptr inbounds %"struct.parray_manager::cell", ptr %82, i64 0, i32 3 %84 = load ptr, ptr %83, align 8 - %arrayidx.i.i.i130 = getelementptr inbounds ptr, ptr %84, i64 %indvars.iv648 + %arrayidx.i.i.i130 = getelementptr inbounds ptr, ptr %84, i64 %indvars.iv649 br label %invoke.cont94 if.end.i.i.i126: ; preds = %sw.epilog.i.i.i, %cond.false.i @@ -13641,7 +13638,7 @@ if.end.i.i.i126: ; preds = %sw.epilog.i.i.i, %c %c.017.i.i.i = load ptr, ptr %c.017.in.i.i.i, align 8 %bf.load.i.i.i.i127 = load i32, ptr %c.017.i.i.i, align 8 %bf.lshr.i.i.i.i128 = lshr i32 %bf.load.i.i.i.i127, 30 - switch i32 %bf.lshr.i.i.i.i128, label %if.end.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i128, label %default.unreachable [ i32 0, label %sw.bb.i.i.i131 i32 1, label %sw.bb.i.i.i131 i32 2, label %sw.epilog.i.i.i @@ -13652,7 +13649,7 @@ sw.bb.i.i.i131: ; preds = %if.end.i.i.i126, %i %85 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i, i64 0, i32 1 %86 = load i32, ptr %85, align 4 %87 = zext i32 %86 to i64 - %cmp4.i.i.i = icmp eq i64 %indvars.iv648, %87 + %cmp4.i.i.i = icmp eq i64 %indvars.iv649, %87 br i1 %cmp4.i.i.i, label %if.then5.i.i.i, label %sw.epilog.i.i.i if.then5.i.i.i: ; preds = %sw.bb.i.i.i131 @@ -13662,81 +13659,78 @@ if.then5.i.i.i: ; preds = %sw.bb.i.i.i131 sw.bb12.i.i.i: ; preds = %if.end.i.i.i126 %88 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i, i64 0, i32 3 %89 = load ptr, ptr %88, align 8 - %arrayidx14.i.i.i = getelementptr inbounds ptr, ptr %89, i64 %indvars.iv648 + %arrayidx14.i.i.i = getelementptr inbounds ptr, ptr %89, i64 %indvars.iv649 br label %invoke.cont94 -if.end.unreachabledefault.i.i.i: ; preds = %if.end.i.i.i126 - unreachable - sw.epilog.i.i.i: ; preds = %sw.bb.i.i.i131, %if.end.i.i.i126 %c.1.in.i.i.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i, i64 0, i32 3 %trail_sz.1.i.i.i = add nuw nsw i32 %trail_sz.016.i.i.i, 1 %exitcond.i.i.i = icmp eq i32 %trail_sz.1.i.i.i, 17 br i1 %exitcond.i.i.i, label %if.then.i.i.i129, label %if.end.i.i.i126, !llvm.loop !68 -invoke.cont94: ; preds = %sw.bb12.i.i.i, %if.then5.i.i.i, %.noexc132, %cond.true.i - %cond.in.i = phi ptr [ %m_false.i.i, %cond.true.i ], [ %arrayidx.i.i.i130, %.noexc132 ], [ %arrayidx14.i.i.i, %sw.bb12.i.i.i ], [ %m_elem.i.i.i.i, %if.then5.i.i.i ] +invoke.cont94: ; preds = %sw.bb12.i.i.i, %if.then5.i.i.i, %.noexc133, %cond.true.i + %cond.in.i = phi ptr [ %m_false.i.i, %cond.true.i ], [ %arrayidx.i.i.i130, %.noexc133 ], [ %arrayidx14.i.i.i, %sw.bb12.i.i.i ], [ %m_elem.i.i.i.i, %if.then5.i.i.i ] %cond.i = load ptr, ptr %cond.in.i, align 8 %cmp96 = icmp eq ptr %79, %cond.i br i1 %cmp96, label %invoke.cont99, label %for.cond86 invoke.cont99: ; preds = %invoke.cont94 %90 = load ptr, ptr %m_lemmas, align 8 - %arrayidx.i.i134 = getelementptr inbounds ptr, ptr %90, i64 %idxprom.i.i120 - %91 = load ptr, ptr %arrayidx.i.i134, align 8 - %tobool.not.i.i.i135 = icmp eq ptr %91, null - br i1 %tobool.not.i.i.i135, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i138, label %if.then.i.i.i136 + %arrayidx.i.i135 = getelementptr inbounds ptr, ptr %90, i64 %idxprom.i.i120 + %91 = load ptr, ptr %arrayidx.i.i135, align 8 + %tobool.not.i.i.i136 = icmp eq ptr %91, null + br i1 %tobool.not.i.i.i136, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i139, label %if.then.i.i.i137 -if.then.i.i.i136: ; preds = %invoke.cont99 +if.then.i.i.i137: ; preds = %invoke.cont99 %92 = load i32, ptr %91, align 8 - %inc.i.i.i.i137 = add i32 %92, 1 - store i32 %inc.i.i.i.i137, ptr %91, align 8 - br label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i138 + %inc.i.i.i.i138 = add i32 %92, 1 + store i32 %inc.i.i.i.i138, ptr %91, align 8 + br label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i139 -_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i138: ; preds = %if.then.i.i.i136, %invoke.cont99 +_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i139: ; preds = %if.then.i.i.i137, %invoke.cont99 %93 = load ptr, ptr %new_lemmas, align 8 - %cmp.i.i139 = icmp eq ptr %93, null - br i1 %cmp.i.i139, label %if.then.i.i148, label %lor.lhs.false.i.i140 - -lor.lhs.false.i.i140: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i138 - %arrayidx.i.i141 = getelementptr inbounds i32, ptr %93, i64 -1 - %94 = load i32, ptr %arrayidx.i.i141, align 4 - %arrayidx4.i.i142 = getelementptr inbounds i32, ptr %93, i64 -2 - %95 = load i32, ptr %arrayidx4.i.i142, align 4 - %cmp5.i.i143 = icmp eq i32 %94, %95 - br i1 %cmp5.i.i143, label %if.then.i.i148, label %for.end106 - -if.then.i.i148: ; preds = %lor.lhs.false.i.i140, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i138 + %cmp.i.i140 = icmp eq ptr %93, null + br i1 %cmp.i.i140, label %if.then.i.i149, label %lor.lhs.false.i.i141 + +lor.lhs.false.i.i141: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i139 + %arrayidx.i.i142 = getelementptr inbounds i32, ptr %93, i64 -1 + %94 = load i32, ptr %arrayidx.i.i142, align 4 + %arrayidx4.i.i143 = getelementptr inbounds i32, ptr %93, i64 -2 + %95 = load i32, ptr %arrayidx4.i.i143, align 4 + %cmp5.i.i144 = icmp eq i32 %94, %95 + br i1 %cmp5.i.i144, label %if.then.i.i149, label %for.end106 + +if.then.i.i149: ; preds = %lor.lhs.false.i.i141, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i139 invoke void @_ZN6vectorIPN6spacer5lemmaELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %new_lemmas) - to label %.noexc152 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit + to label %.noexc153 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit -.noexc152: ; preds = %if.then.i.i148 - %.pre.i.i149 = load ptr, ptr %new_lemmas, align 8 - %arrayidx8.phi.trans.insert.i.i150 = getelementptr inbounds i32, ptr %.pre.i.i149, i64 -1 - %.pre1.i.i151 = load i32, ptr %arrayidx8.phi.trans.insert.i.i150, align 4 +.noexc153: ; preds = %if.then.i.i149 + %.pre.i.i150 = load ptr, ptr %new_lemmas, align 8 + %arrayidx8.phi.trans.insert.i.i151 = getelementptr inbounds i32, ptr %.pre.i.i150, i64 -1 + %.pre1.i.i152 = load i32, ptr %arrayidx8.phi.trans.insert.i.i151, align 4 br label %for.end106 -for.end106: ; preds = %.noexc152, %lor.lhs.false.i.i140 - %96 = phi i32 [ %.pre1.i.i151, %.noexc152 ], [ %94, %lor.lhs.false.i.i140 ] - %97 = phi ptr [ %.pre.i.i149, %.noexc152 ], [ %93, %lor.lhs.false.i.i140 ] - %idx.ext.i.i144 = zext i32 %96 to i64 - %add.ptr.i.i145 = getelementptr inbounds ptr, ptr %97, i64 %idx.ext.i.i144 - store ptr %91, ptr %add.ptr.i.i145, align 8 +for.end106: ; preds = %.noexc153, %lor.lhs.false.i.i141 + %96 = phi i32 [ %.pre1.i.i152, %.noexc153 ], [ %94, %lor.lhs.false.i.i141 ] + %97 = phi ptr [ %.pre.i.i150, %.noexc153 ], [ %93, %lor.lhs.false.i.i141 ] + %idx.ext.i.i145 = zext i32 %96 to i64 + %add.ptr.i.i146 = getelementptr inbounds ptr, ptr %97, i64 %idx.ext.i.i145 + store ptr %91, ptr %add.ptr.i.i146, align 8 %98 = load ptr, ptr %new_lemmas, align 8 - %arrayidx10.i.i146 = getelementptr inbounds i32, ptr %98, i64 -1 - %99 = load i32, ptr %arrayidx10.i.i146, align 4 - %inc.i.i147 = add i32 %99, 1 - store i32 %inc.i.i147, ptr %arrayidx10.i.i146, align 4 - %indvars.iv.next649 = add nuw nsw i64 %indvars.iv648, 1 + %arrayidx10.i.i147 = getelementptr inbounds i32, ptr %98, i64 -1 + %99 = load i32, ptr %arrayidx10.i.i147, align 4 + %inc.i.i148 = add i32 %99, 1 + store i32 %inc.i.i148, ptr %arrayidx10.i.i147, align 4 + %indvars.iv.next650 = add nuw nsw i64 %indvars.iv649, 1 %.pre = load ptr, ptr %m_forms.i, align 8 br label %for.cond80, !llvm.loop !69 if.then107.loopexit: ; preds = %for.cond86 - %100 = trunc i64 %indvars.iv648 to i32 + %100 = trunc i64 %indvars.iv649 to i32 br label %if.then107 if.then107: ; preds = %for.cond86.preheader, %if.then107.loopexit - %k.0582 = phi i32 [ %100, %if.then107.loopexit ], [ 0, %for.cond86.preheader ] + %k.0583 = phi i32 [ %100, %if.then107.loopexit ], [ 0, %for.cond86.preheader ] %call109 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z14verbose_streamv() to label %invoke.cont108 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp @@ -13745,75 +13739,72 @@ invoke.cont108: ; preds = %if.then107 to label %invoke.cont110 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp invoke.cont110: ; preds = %invoke.cont108 - %bf.load.i.i155 = load i32, ptr %m_inconsistent.i.i, align 8 - %101 = and i32 %bf.load.i.i155, 536870912 - %tobool.i.not.i156 = icmp eq i32 %101, 0 + %bf.load.i.i156 = load i32, ptr %m_inconsistent.i.i, align 8 + %101 = and i32 %bf.load.i.i156, 536870912 + %tobool.i.not.i157 = icmp eq i32 %101, 0 %102 = load ptr, ptr %36, align 8 - br i1 %tobool.i.not.i156, label %cond.false.i161, label %cond.true.i157 + br i1 %tobool.i.not.i157, label %cond.false.i162, label %cond.true.i158 -cond.true.i157: ; preds = %invoke.cont110 - %m_false.i.i158 = getelementptr inbounds %class.ast_manager, ptr %102, i64 0, i32 16 +cond.true.i158: ; preds = %invoke.cont110 + %m_false.i.i159 = getelementptr inbounds %class.ast_manager, ptr %102, i64 0, i32 16 br label %invoke.cont113 -cond.false.i161: ; preds = %invoke.cont110 - %m_expr_array_manager.i.i163 = getelementptr inbounds %class.ast_manager, ptr %102, i64 0, i32 3 - br label %if.end.i.i.i164 +cond.false.i162: ; preds = %invoke.cont110 + %m_expr_array_manager.i.i164 = getelementptr inbounds %class.ast_manager, ptr %102, i64 0, i32 3 + br label %if.end.i.i.i165 -if.then.i.i.i177: ; preds = %sw.epilog.i.i.i173 - invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i163, ptr noundef nonnull align 8 dereferenceable(12) %m_forms.i) - to label %.noexc185 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp +if.then.i.i.i178: ; preds = %sw.epilog.i.i.i174 + invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i164, ptr noundef nonnull align 8 dereferenceable(12) %m_forms.i) + to label %.noexc186 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp -.noexc185: ; preds = %if.then.i.i.i177 +.noexc186: ; preds = %if.then.i.i.i178 %103 = load ptr, ptr %m_forms.i, align 8 %104 = getelementptr inbounds %"struct.parray_manager::cell", ptr %103, i64 0, i32 3 %105 = load ptr, ptr %104, align 8 - %idxprom.i.i.i178 = zext i32 %k.0582 to i64 - %arrayidx.i.i.i179 = getelementptr inbounds ptr, ptr %105, i64 %idxprom.i.i.i178 + %idxprom.i.i.i179 = zext i32 %k.0583 to i64 + %arrayidx.i.i.i180 = getelementptr inbounds ptr, ptr %105, i64 %idxprom.i.i.i179 br label %invoke.cont113 -if.end.i.i.i164: ; preds = %sw.epilog.i.i.i173, %cond.false.i161 - %c.017.in.i.i.i165 = phi ptr [ %m_forms.i, %cond.false.i161 ], [ %c.1.in.i.i.i174, %sw.epilog.i.i.i173 ] - %trail_sz.016.i.i.i166 = phi i32 [ 0, %cond.false.i161 ], [ %trail_sz.1.i.i.i175, %sw.epilog.i.i.i173 ] - %c.017.i.i.i167 = load ptr, ptr %c.017.in.i.i.i165, align 8 - %bf.load.i.i.i.i168 = load i32, ptr %c.017.i.i.i167, align 8 - %bf.lshr.i.i.i.i169 = lshr i32 %bf.load.i.i.i.i168, 30 - switch i32 %bf.lshr.i.i.i.i169, label %if.end.unreachabledefault.i.i.i184 [ - i32 0, label %sw.bb.i.i.i180 - i32 1, label %sw.bb.i.i.i180 - i32 2, label %sw.epilog.i.i.i173 - i32 3, label %sw.bb12.i.i.i170 +if.end.i.i.i165: ; preds = %sw.epilog.i.i.i174, %cond.false.i162 + %c.017.in.i.i.i166 = phi ptr [ %m_forms.i, %cond.false.i162 ], [ %c.1.in.i.i.i175, %sw.epilog.i.i.i174 ] + %trail_sz.016.i.i.i167 = phi i32 [ 0, %cond.false.i162 ], [ %trail_sz.1.i.i.i176, %sw.epilog.i.i.i174 ] + %c.017.i.i.i168 = load ptr, ptr %c.017.in.i.i.i166, align 8 + %bf.load.i.i.i.i169 = load i32, ptr %c.017.i.i.i168, align 8 + %bf.lshr.i.i.i.i170 = lshr i32 %bf.load.i.i.i.i169, 30 + switch i32 %bf.lshr.i.i.i.i170, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i181 + i32 1, label %sw.bb.i.i.i181 + i32 2, label %sw.epilog.i.i.i174 + i32 3, label %sw.bb12.i.i.i171 ] -sw.bb.i.i.i180: ; preds = %if.end.i.i.i164, %if.end.i.i.i164 - %106 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i167, i64 0, i32 1 +sw.bb.i.i.i181: ; preds = %if.end.i.i.i165, %if.end.i.i.i165 + %106 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i168, i64 0, i32 1 %107 = load i32, ptr %106, align 4 - %cmp4.i.i.i181 = icmp eq i32 %107, %k.0582 - br i1 %cmp4.i.i.i181, label %if.then5.i.i.i182, label %sw.epilog.i.i.i173 + %cmp4.i.i.i182 = icmp eq i32 %107, %k.0583 + br i1 %cmp4.i.i.i182, label %if.then5.i.i.i183, label %sw.epilog.i.i.i174 -if.then5.i.i.i182: ; preds = %sw.bb.i.i.i180 - %m_elem.i.i.i.i183 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i167, i64 0, i32 2 +if.then5.i.i.i183: ; preds = %sw.bb.i.i.i181 + %m_elem.i.i.i.i184 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i168, i64 0, i32 2 br label %invoke.cont113 -sw.bb12.i.i.i170: ; preds = %if.end.i.i.i164 - %108 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i167, i64 0, i32 3 +sw.bb12.i.i.i171: ; preds = %if.end.i.i.i165 + %108 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i168, i64 0, i32 3 %109 = load ptr, ptr %108, align 8 - %idxprom13.i.i.i171 = zext i32 %k.0582 to i64 - %arrayidx14.i.i.i172 = getelementptr inbounds ptr, ptr %109, i64 %idxprom13.i.i.i171 + %idxprom13.i.i.i172 = zext i32 %k.0583 to i64 + %arrayidx14.i.i.i173 = getelementptr inbounds ptr, ptr %109, i64 %idxprom13.i.i.i172 br label %invoke.cont113 -if.end.unreachabledefault.i.i.i184: ; preds = %if.end.i.i.i164 - unreachable - -sw.epilog.i.i.i173: ; preds = %sw.bb.i.i.i180, %if.end.i.i.i164 - %c.1.in.i.i.i174 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i167, i64 0, i32 3 - %trail_sz.1.i.i.i175 = add nuw nsw i32 %trail_sz.016.i.i.i166, 1 - %exitcond.i.i.i176 = icmp eq i32 %trail_sz.1.i.i.i175, 17 - br i1 %exitcond.i.i.i176, label %if.then.i.i.i177, label %if.end.i.i.i164, !llvm.loop !68 +sw.epilog.i.i.i174: ; preds = %sw.bb.i.i.i181, %if.end.i.i.i165 + %c.1.in.i.i.i175 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i168, i64 0, i32 3 + %trail_sz.1.i.i.i176 = add nuw nsw i32 %trail_sz.016.i.i.i167, 1 + %exitcond.i.i.i177 = icmp eq i32 %trail_sz.1.i.i.i176, 17 + br i1 %exitcond.i.i.i177, label %if.then.i.i.i178, label %if.end.i.i.i165, !llvm.loop !68 -invoke.cont113: ; preds = %sw.bb12.i.i.i170, %if.then5.i.i.i182, %.noexc185, %cond.true.i157 - %cond.in.i159 = phi ptr [ %m_false.i.i158, %cond.true.i157 ], [ %arrayidx.i.i.i179, %.noexc185 ], [ %arrayidx14.i.i.i172, %sw.bb12.i.i.i170 ], [ %m_elem.i.i.i.i183, %if.then5.i.i.i182 ] - %cond.i160 = load ptr, ptr %cond.in.i159, align 8 - invoke void @_ZN11mk_ismt2_ppC2EP3astR11ast_managerjjPKc(ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp112, ptr noundef %cond.i160, ptr noundef nonnull align 8 dereferenceable(976) %6, i32 noundef 0, i32 noundef 0, ptr noundef null) +invoke.cont113: ; preds = %sw.bb12.i.i.i171, %if.then5.i.i.i183, %.noexc186, %cond.true.i158 + %cond.in.i160 = phi ptr [ %m_false.i.i159, %cond.true.i158 ], [ %arrayidx.i.i.i180, %.noexc186 ], [ %arrayidx14.i.i.i173, %sw.bb12.i.i.i171 ], [ %m_elem.i.i.i.i184, %if.then5.i.i.i183 ] + %cond.i161 = load ptr, ptr %cond.in.i160, align 8 + invoke void @_ZN11mk_ismt2_ppC2EP3astR11ast_managerjjPKc(ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp112, ptr noundef %cond.i161, ptr noundef nonnull align 8 dereferenceable(976) %6, i32 noundef 0, i32 noundef 0, ptr noundef null) to label %invoke.cont115 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp invoke.cont115: ; preds = %invoke.cont113 @@ -13834,20 +13825,20 @@ invoke.cont121: ; preds = %invoke.cont119 to label %for.cond126.preheader unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp for.cond126.preheader: ; preds = %invoke.cont121 - br i1 %cmp87539, label %for.body128.preheader, label %for.end149 + br i1 %cmp87540, label %for.body128.preheader, label %for.end149 for.body128.preheader: ; preds = %for.cond126.preheader - %110 = zext i32 %j.0546 to i64 + %110 = zext i32 %j.0547 to i64 %111 = zext i32 %j.1.lcssa to i64 br label %for.body128 for.body128: ; preds = %for.body128.preheader, %invoke.cont145 - %indvars.iv655 = phi i64 [ %110, %for.body128.preheader ], [ %indvars.iv.next656, %invoke.cont145 ] + %indvars.iv656 = phi i64 [ %110, %for.body128.preheader ], [ %indvars.iv.next657, %invoke.cont145 ] %call130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z14verbose_streamv() to label %invoke.cont129 unwind label %lpad25.loopexit.split-lp.loopexit invoke.cont129: ; preds = %for.body128 - %112 = trunc i64 %indvars.iv655 to i32 + %112 = trunc i64 %indvars.iv656 to i32 %call132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %call130, i32 noundef %112) to label %invoke.cont131 unwind label %lpad25.loopexit.split-lp.loopexit @@ -13857,14 +13848,14 @@ invoke.cont131: ; preds = %invoke.cont129 invoke.cont137: ; preds = %invoke.cont131 %113 = load ptr, ptr %m_lemmas, align 8 - %arrayidx.i.i189 = getelementptr inbounds ptr, ptr %113, i64 %indvars.iv655 - %114 = load ptr, ptr %arrayidx.i.i189, align 8 + %arrayidx.i.i190 = getelementptr inbounds ptr, ptr %113, i64 %indvars.iv656 + %114 = load ptr, ptr %arrayidx.i.i190, align 8 invoke void @_ZN6spacer5lemma12mk_expr_coreEv(ptr noundef nonnull align 8 dereferenceable(109) %114) to label %invoke.cont139 unwind label %lpad25.loopexit.split-lp.loopexit invoke.cont139: ; preds = %invoke.cont137 - %m_body.i190 = getelementptr inbounds %"class.spacer::lemma", ptr %114, i64 0, i32 3 - %115 = load ptr, ptr %m_body.i190, align 8 + %m_body.i191 = getelementptr inbounds %"class.spacer::lemma", ptr %114, i64 0, i32 3 + %115 = load ptr, ptr %m_body.i191, align 8 invoke void @_ZN11mk_ismt2_ppC2EP3astR11ast_managerjjPKc(ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp135, ptr noundef %115, ptr noundef nonnull align 8 dereferenceable(976) %6, i32 noundef 0, i32 noundef 0, ptr noundef null) to label %invoke.cont141 unwind label %lpad25.loopexit.split-lp.loopexit @@ -13877,9 +13868,9 @@ invoke.cont143: ; preds = %invoke.cont141 to label %invoke.cont145 unwind label %lpad142 invoke.cont145: ; preds = %invoke.cont143 - call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i195) #25 - %indvars.iv.next656 = add nuw nsw i64 %indvars.iv655, 1 - %cmp127 = icmp ult i64 %indvars.iv.next656, %111 + call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i196) #25 + %indvars.iv.next657 = add nuw nsw i64 %indvars.iv656, 1 + %cmp127 = icmp ult i64 %indvars.iv.next657, %111 br i1 %cmp127, label %for.body128, label %for.end149, !llvm.loop !70 lpad116: ; preds = %invoke.cont117, %invoke.cont115 @@ -13891,7 +13882,7 @@ lpad116: ; preds = %invoke.cont117, %in lpad142: ; preds = %invoke.cont143, %invoke.cont141 %117 = landingpad { ptr, i32 } cleanup - call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i195) #25 + call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i196) #25 br label %ehcleanup for.end149: ; preds = %invoke.cont145, %for.cond126.preheader @@ -13903,51 +13894,48 @@ invoke.cont150: ; preds = %for.end149 to label %for.cond155 unwind label %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp for.cond155: ; preds = %invoke.cont150, %invoke.cont173 - %indvars.iv658 = phi i64 [ %indvars.iv.next659, %invoke.cont173 ], [ 0, %invoke.cont150 ] + %indvars.iv659 = phi i64 [ %indvars.iv.next660, %invoke.cont173 ], [ 0, %invoke.cont150 ] %118 = load ptr, ptr %m_forms.i, align 8 - %cmp.i.i.i199 = icmp eq ptr %118, null - br i1 %cmp.i.i.i199, label %invoke.cont156, label %while.body.i.i.i200 - -while.body.i.i.i200: ; preds = %for.cond155, %sw.bb.i.i.i210 - %c.0.i.i.i201 = phi ptr [ %120, %sw.bb.i.i.i210 ], [ %118, %for.cond155 ] - %bf.load.i.i.i.i202 = load i32, ptr %c.0.i.i.i201, align 8 - %bf.lshr.i.i.i.i203 = lshr i32 %bf.load.i.i.i.i202, 30 - switch i32 %bf.lshr.i.i.i.i203, label %while.body.unreachabledefault.i.i.i211 [ - i32 0, label %sw.bb.i.i.i210 - i32 1, label %sw.bb3.i.i.i208 - i32 2, label %sw.bb5.i.i.i206 - i32 3, label %sw.bb7.i.i.i204 + %cmp.i.i.i200 = icmp eq ptr %118, null + br i1 %cmp.i.i.i200, label %invoke.cont156, label %while.body.i.i.i201 + +while.body.i.i.i201: ; preds = %for.cond155, %sw.bb.i.i.i211 + %c.0.i.i.i202 = phi ptr [ %120, %sw.bb.i.i.i211 ], [ %118, %for.cond155 ] + %bf.load.i.i.i.i203 = load i32, ptr %c.0.i.i.i202, align 8 + %bf.lshr.i.i.i.i204 = lshr i32 %bf.load.i.i.i.i203, 30 + switch i32 %bf.lshr.i.i.i.i204, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i211 + i32 1, label %sw.bb3.i.i.i209 + i32 2, label %sw.bb5.i.i.i207 + i32 3, label %sw.bb7.i.i.i205 ] -sw.bb.i.i.i210: ; preds = %while.body.i.i.i200 - %119 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i201, i64 0, i32 3 +sw.bb.i.i.i211: ; preds = %while.body.i.i.i201 + %119 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i202, i64 0, i32 3 %120 = load ptr, ptr %119, align 8 - br label %while.body.i.i.i200, !llvm.loop !65 + br label %while.body.i.i.i201, !llvm.loop !65 -sw.bb3.i.i.i208: ; preds = %while.body.i.i.i200 - %121 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i201, i64 0, i32 1 +sw.bb3.i.i.i209: ; preds = %while.body.i.i.i201 + %121 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i202, i64 0, i32 1 %122 = load i32, ptr %121, align 4 - %add.i.i.i209 = add i32 %122, 1 + %add.i.i.i210 = add i32 %122, 1 br label %invoke.cont156 -sw.bb5.i.i.i206: ; preds = %while.body.i.i.i200 - %123 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i201, i64 0, i32 1 +sw.bb5.i.i.i207: ; preds = %while.body.i.i.i201 + %123 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i202, i64 0, i32 1 %124 = load i32, ptr %123, align 4 - %sub.i.i.i207 = add i32 %124, -1 + %sub.i.i.i208 = add i32 %124, -1 br label %invoke.cont156 -sw.bb7.i.i.i204: ; preds = %while.body.i.i.i200 - %125 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i201, i64 0, i32 1 +sw.bb7.i.i.i205: ; preds = %while.body.i.i.i201 + %125 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.0.i.i.i202, i64 0, i32 1 %126 = load i32, ptr %125, align 4 br label %invoke.cont156 -while.body.unreachabledefault.i.i.i211: ; preds = %while.body.i.i.i200 - unreachable - -invoke.cont156: ; preds = %sw.bb7.i.i.i204, %sw.bb5.i.i.i206, %sw.bb3.i.i.i208, %for.cond155 - %retval.0.i.i.i205 = phi i32 [ %126, %sw.bb7.i.i.i204 ], [ %sub.i.i.i207, %sw.bb5.i.i.i206 ], [ %add.i.i.i209, %sw.bb3.i.i.i208 ], [ 0, %for.cond155 ] - %127 = zext i32 %retval.0.i.i.i205 to i64 - %cmp158 = icmp ult i64 %indvars.iv658, %127 +invoke.cont156: ; preds = %sw.bb7.i.i.i205, %sw.bb5.i.i.i207, %sw.bb3.i.i.i209, %for.cond155 + %retval.0.i.i.i206 = phi i32 [ %126, %sw.bb7.i.i.i205 ], [ %sub.i.i.i208, %sw.bb5.i.i.i207 ], [ %add.i.i.i210, %sw.bb3.i.i.i209 ], [ 0, %for.cond155 ] + %127 = zext i32 %retval.0.i.i.i206 to i64 + %cmp158 = icmp ult i64 %indvars.iv659, %127 br i1 %cmp158, label %for.body159, label %if.then180 for.body159: ; preds = %invoke.cont156 @@ -13955,7 +13943,7 @@ for.body159: ; preds = %invoke.cont156 to label %invoke.cont160 unwind label %lpad25.loopexit invoke.cont160: ; preds = %for.body159 - %128 = trunc i64 %indvars.iv658 to i32 + %128 = trunc i64 %indvars.iv659 to i32 %call163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %call161, i32 noundef %128) to label %invoke.cont162 unwind label %lpad25.loopexit @@ -13964,74 +13952,71 @@ invoke.cont162: ; preds = %invoke.cont160 to label %invoke.cont164 unwind label %lpad25.loopexit invoke.cont164: ; preds = %invoke.cont162 - %bf.load.i.i214 = load i32, ptr %m_inconsistent.i.i, align 8 - %129 = and i32 %bf.load.i.i214, 536870912 - %tobool.i.not.i215 = icmp eq i32 %129, 0 + %bf.load.i.i215 = load i32, ptr %m_inconsistent.i.i, align 8 + %129 = and i32 %bf.load.i.i215, 536870912 + %tobool.i.not.i216 = icmp eq i32 %129, 0 %130 = load ptr, ptr %36, align 8 - br i1 %tobool.i.not.i215, label %cond.false.i220, label %cond.true.i216 + br i1 %tobool.i.not.i216, label %cond.false.i221, label %cond.true.i217 -cond.true.i216: ; preds = %invoke.cont164 - %m_false.i.i217 = getelementptr inbounds %class.ast_manager, ptr %130, i64 0, i32 16 +cond.true.i217: ; preds = %invoke.cont164 + %m_false.i.i218 = getelementptr inbounds %class.ast_manager, ptr %130, i64 0, i32 16 br label %invoke.cont167 -cond.false.i220: ; preds = %invoke.cont164 - %m_expr_array_manager.i.i222 = getelementptr inbounds %class.ast_manager, ptr %130, i64 0, i32 3 - br label %if.end.i.i.i223 +cond.false.i221: ; preds = %invoke.cont164 + %m_expr_array_manager.i.i223 = getelementptr inbounds %class.ast_manager, ptr %130, i64 0, i32 3 + br label %if.end.i.i.i224 -if.then.i.i.i236: ; preds = %sw.epilog.i.i.i232 - invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i222, ptr noundef nonnull align 8 dereferenceable(12) %m_forms.i) - to label %.noexc244 unwind label %lpad25.loopexit +if.then.i.i.i237: ; preds = %sw.epilog.i.i.i233 + invoke void @_ZN14parray_managerIN11ast_manager17expr_array_configEE6rerootERNS2_3refE(ptr noundef nonnull align 8 dereferenceable(32) %m_expr_array_manager.i.i223, ptr noundef nonnull align 8 dereferenceable(12) %m_forms.i) + to label %.noexc245 unwind label %lpad25.loopexit -.noexc244: ; preds = %if.then.i.i.i236 +.noexc245: ; preds = %if.then.i.i.i237 %131 = load ptr, ptr %m_forms.i, align 8 %132 = getelementptr inbounds %"struct.parray_manager::cell", ptr %131, i64 0, i32 3 %133 = load ptr, ptr %132, align 8 - %arrayidx.i.i.i238 = getelementptr inbounds ptr, ptr %133, i64 %indvars.iv658 + %arrayidx.i.i.i239 = getelementptr inbounds ptr, ptr %133, i64 %indvars.iv659 br label %invoke.cont167 -if.end.i.i.i223: ; preds = %sw.epilog.i.i.i232, %cond.false.i220 - %c.017.in.i.i.i224 = phi ptr [ %m_forms.i, %cond.false.i220 ], [ %c.1.in.i.i.i233, %sw.epilog.i.i.i232 ] - %trail_sz.016.i.i.i225 = phi i32 [ 0, %cond.false.i220 ], [ %trail_sz.1.i.i.i234, %sw.epilog.i.i.i232 ] - %c.017.i.i.i226 = load ptr, ptr %c.017.in.i.i.i224, align 8 - %bf.load.i.i.i.i227 = load i32, ptr %c.017.i.i.i226, align 8 - %bf.lshr.i.i.i.i228 = lshr i32 %bf.load.i.i.i.i227, 30 - switch i32 %bf.lshr.i.i.i.i228, label %if.end.unreachabledefault.i.i.i243 [ - i32 0, label %sw.bb.i.i.i239 - i32 1, label %sw.bb.i.i.i239 - i32 2, label %sw.epilog.i.i.i232 - i32 3, label %sw.bb12.i.i.i229 +if.end.i.i.i224: ; preds = %sw.epilog.i.i.i233, %cond.false.i221 + %c.017.in.i.i.i225 = phi ptr [ %m_forms.i, %cond.false.i221 ], [ %c.1.in.i.i.i234, %sw.epilog.i.i.i233 ] + %trail_sz.016.i.i.i226 = phi i32 [ 0, %cond.false.i221 ], [ %trail_sz.1.i.i.i235, %sw.epilog.i.i.i233 ] + %c.017.i.i.i227 = load ptr, ptr %c.017.in.i.i.i225, align 8 + %bf.load.i.i.i.i228 = load i32, ptr %c.017.i.i.i227, align 8 + %bf.lshr.i.i.i.i229 = lshr i32 %bf.load.i.i.i.i228, 30 + switch i32 %bf.lshr.i.i.i.i229, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i240 + i32 1, label %sw.bb.i.i.i240 + i32 2, label %sw.epilog.i.i.i233 + i32 3, label %sw.bb12.i.i.i230 ] -sw.bb.i.i.i239: ; preds = %if.end.i.i.i223, %if.end.i.i.i223 - %134 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i226, i64 0, i32 1 +sw.bb.i.i.i240: ; preds = %if.end.i.i.i224, %if.end.i.i.i224 + %134 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i227, i64 0, i32 1 %135 = load i32, ptr %134, align 4 %136 = zext i32 %135 to i64 - %cmp4.i.i.i240 = icmp eq i64 %indvars.iv658, %136 - br i1 %cmp4.i.i.i240, label %if.then5.i.i.i241, label %sw.epilog.i.i.i232 + %cmp4.i.i.i241 = icmp eq i64 %indvars.iv659, %136 + br i1 %cmp4.i.i.i241, label %if.then5.i.i.i242, label %sw.epilog.i.i.i233 -if.then5.i.i.i241: ; preds = %sw.bb.i.i.i239 - %m_elem.i.i.i.i242 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i226, i64 0, i32 2 +if.then5.i.i.i242: ; preds = %sw.bb.i.i.i240 + %m_elem.i.i.i.i243 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i227, i64 0, i32 2 br label %invoke.cont167 -sw.bb12.i.i.i229: ; preds = %if.end.i.i.i223 - %137 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i226, i64 0, i32 3 +sw.bb12.i.i.i230: ; preds = %if.end.i.i.i224 + %137 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i227, i64 0, i32 3 %138 = load ptr, ptr %137, align 8 - %arrayidx14.i.i.i231 = getelementptr inbounds ptr, ptr %138, i64 %indvars.iv658 + %arrayidx14.i.i.i232 = getelementptr inbounds ptr, ptr %138, i64 %indvars.iv659 br label %invoke.cont167 -if.end.unreachabledefault.i.i.i243: ; preds = %if.end.i.i.i223 - unreachable - -sw.epilog.i.i.i232: ; preds = %sw.bb.i.i.i239, %if.end.i.i.i223 - %c.1.in.i.i.i233 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i226, i64 0, i32 3 - %trail_sz.1.i.i.i234 = add nuw nsw i32 %trail_sz.016.i.i.i225, 1 - %exitcond.i.i.i235 = icmp eq i32 %trail_sz.1.i.i.i234, 17 - br i1 %exitcond.i.i.i235, label %if.then.i.i.i236, label %if.end.i.i.i223, !llvm.loop !68 +sw.epilog.i.i.i233: ; preds = %sw.bb.i.i.i240, %if.end.i.i.i224 + %c.1.in.i.i.i234 = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i227, i64 0, i32 3 + %trail_sz.1.i.i.i235 = add nuw nsw i32 %trail_sz.016.i.i.i226, 1 + %exitcond.i.i.i236 = icmp eq i32 %trail_sz.1.i.i.i235, 17 + br i1 %exitcond.i.i.i236, label %if.then.i.i.i237, label %if.end.i.i.i224, !llvm.loop !68 -invoke.cont167: ; preds = %sw.bb12.i.i.i229, %if.then5.i.i.i241, %.noexc244, %cond.true.i216 - %cond.in.i218 = phi ptr [ %m_false.i.i217, %cond.true.i216 ], [ %arrayidx.i.i.i238, %.noexc244 ], [ %arrayidx14.i.i.i231, %sw.bb12.i.i.i229 ], [ %m_elem.i.i.i.i242, %if.then5.i.i.i241 ] - %cond.i219 = load ptr, ptr %cond.in.i218, align 8 - invoke void @_ZN11mk_ismt2_ppC2EP3astR11ast_managerjjPKc(ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp166, ptr noundef %cond.i219, ptr noundef nonnull align 8 dereferenceable(976) %6, i32 noundef 0, i32 noundef 0, ptr noundef null) +invoke.cont167: ; preds = %sw.bb12.i.i.i230, %if.then5.i.i.i242, %.noexc245, %cond.true.i217 + %cond.in.i219 = phi ptr [ %m_false.i.i218, %cond.true.i217 ], [ %arrayidx.i.i.i239, %.noexc245 ], [ %arrayidx14.i.i.i232, %sw.bb12.i.i.i230 ], [ %m_elem.i.i.i.i243, %if.then5.i.i.i242 ] + %cond.i220 = load ptr, ptr %cond.in.i219, align 8 + invoke void @_ZN11mk_ismt2_ppC2EP3astR11ast_managerjjPKc(ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp166, ptr noundef %cond.i220, ptr noundef nonnull align 8 dereferenceable(976) %6, i32 noundef 0, i32 noundef 0, ptr noundef null) to label %invoke.cont169 unwind label %lpad25.loopexit invoke.cont169: ; preds = %invoke.cont167 @@ -14043,14 +14028,14 @@ invoke.cont171: ; preds = %invoke.cont169 to label %invoke.cont173 unwind label %lpad170 invoke.cont173: ; preds = %invoke.cont171 - call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i248) #25 - %indvars.iv.next659 = add nuw nsw i64 %indvars.iv658, 1 + call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i249) #25 + %indvars.iv.next660 = add nuw nsw i64 %indvars.iv659, 1 br label %for.cond155, !llvm.loop !71 lpad170: ; preds = %invoke.cont171, %invoke.cont169 %139 = landingpad { ptr, i32 } cleanup - call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i248) #25 + call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i249) #25 br label %ehcleanup if.then180: ; preds = %invoke.cont156 @@ -14062,7 +14047,7 @@ invoke.cont181: ; preds = %if.then180 unreachable cleanup: ; preds = %for.inc74, %invoke.cont81, %for.cond66.preheader, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit, %for.end - %num_sumbsumed.2.ph = phi i32 [ %num_sumbsumed.0547, %for.cond66.preheader ], [ %num_sumbsumed.0547, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit ], [ %num_sumbsumed.0547, %for.end ], [ %add, %invoke.cont81 ], [ %num_sumbsumed.0547, %for.inc74 ] + %num_sumbsumed.2.ph = phi i32 [ %num_sumbsumed.0548, %for.cond66.preheader ], [ %num_sumbsumed.0548, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit ], [ %num_sumbsumed.0548, %for.end ], [ %add, %invoke.cont81 ], [ %num_sumbsumed.0548, %for.inc74 ] %.pr = load i32, ptr %m_pos.i.i.i.i, align 8 %140 = load ptr, ptr %result, align 8 %idx.ext.i.i.i = zext i32 %.pr to i64 @@ -14091,17 +14076,17 @@ if.then.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i _ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i.i.i, %if.then.i.i.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds ptr, ptr %it.04.i.i.i, i64 1 - %cmp.i.i.i251 = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i.i - br i1 %cmp.i.i.i251, label %for.body.i.i.i, label %invoke.cont5.loopexit.i.i, !llvm.loop !72 + %cmp.i.i.i252 = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i.i + br i1 %cmp.i.i.i252, label %for.body.i.i.i, label %invoke.cont5.loopexit.i.i, !llvm.loop !72 invoke.cont5.loopexit.i.i: ; preds = %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i - %.pre.i.i252 = load ptr, ptr %result, align 8 + %.pre.i.i253 = load ptr, ptr %result, align 8 br label %invoke.cont5.i.i invoke.cont5.i.i: ; preds = %cleanup.thread, %invoke.cont5.loopexit.i.i, %cleanup - %num_sumbsumed.2672 = phi i32 [ %num_sumbsumed.2.ph, %invoke.cont5.loopexit.i.i ], [ %num_sumbsumed.2.ph, %cleanup ], [ %num_sumbsumed.0547, %cleanup.thread ] - %j.1.lcssa665671 = phi i32 [ %j.1.lcssa, %invoke.cont5.loopexit.i.i ], [ %j.1.lcssa, %cleanup ], [ %j.0546, %cleanup.thread ] - %143 = phi ptr [ %.pre.i.i252, %invoke.cont5.loopexit.i.i ], [ %140, %cleanup ], [ %14, %cleanup.thread ] + %num_sumbsumed.2673 = phi i32 [ %num_sumbsumed.2.ph, %invoke.cont5.loopexit.i.i ], [ %num_sumbsumed.2.ph, %cleanup ], [ %num_sumbsumed.0548, %cleanup.thread ] + %j.1.lcssa666672 = phi i32 [ %j.1.lcssa, %invoke.cont5.loopexit.i.i ], [ %j.1.lcssa, %cleanup ], [ %j.0547, %cleanup.thread ] + %143 = phi ptr [ %.pre.i.i253, %invoke.cont5.loopexit.i.i ], [ %140, %cleanup ], [ %14, %cleanup.thread ] %cmp.not.i.i.i.i.i.i = icmp eq ptr %143, %m_initial_buffer.i.i.i.i %cmp.i.i.i.i.i.i.i = icmp eq ptr %143, null %or.cond.i.i.i.i.i.i = or i1 %cmp.not.i.i.i.i.i.i, %cmp.i.i.i.i.i.i.i @@ -14126,67 +14111,67 @@ terminate.lpad.i.i: ; preds = %if.then.i.i.i.i.i.i unreachable _ZN11sref_bufferI4goalLj16EED2Ev.exit: ; preds = %invoke.cont5.i.i, %if.end.i.i.i.i.i.i.i - %inc188 = add i32 %i.0545, 1 + %inc188 = add i32 %i.0546, 1 %148 = load i32, ptr %m_size, align 8 %cmp.not = icmp ugt i32 %inc188, %148 br i1 %cmp.not, label %for.end189, label %for.body, !llvm.loop !73 ehcleanup: ; preds = %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp, %lpad25.loopexit, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad25.loopexit.split-lp.loopexit, %ehcleanup.i, %cleanup.action.i, %lpad170, %lpad142, %lpad116 - %.pn = phi { ptr, i32 } [ %117, %lpad142 ], [ %139, %lpad170 ], [ %116, %lpad116 ], [ %53, %ehcleanup.i ], [ %54, %cleanup.action.i ], [ %lpad.loopexit412, %lpad25.loopexit ], [ %lpad.loopexit414, %lpad25.loopexit.split-lp.loopexit ], [ %lpad.loopexit417, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit419, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit425, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit430, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp431, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit550, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp551, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %117, %lpad142 ], [ %139, %lpad170 ], [ %116, %lpad116 ], [ %53, %ehcleanup.i ], [ %54, %cleanup.action.i ], [ %lpad.loopexit413, %lpad25.loopexit ], [ %lpad.loopexit415, %lpad25.loopexit.split-lp.loopexit ], [ %lpad.loopexit418, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit420, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit426, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit431, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp432, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit551, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp552, %lpad25.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.loopexit.split-lp ] %149 = load ptr, ptr %result, align 8 %150 = load i32, ptr %m_pos.i.i.i.i, align 8 - %idx.ext.i.i.i254 = zext i32 %150 to i64 - %add.ptr.i.i.i255 = getelementptr inbounds ptr, ptr %149, i64 %idx.ext.i.i.i254 - %cmp3.i.not.i.i256 = icmp eq i32 %150, 0 - br i1 %cmp3.i.not.i.i256, label %invoke.cont5.i.i269, label %for.body.i.i.i257 - -for.body.i.i.i257: ; preds = %ehcleanup, %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i264 - %it.04.i.i.i258 = phi ptr [ %incdec.ptr.i.i.i265, %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i264 ], [ %149, %ehcleanup ] - %151 = load ptr, ptr %it.04.i.i.i258, align 8 - %tobool.not.i.i.i.i.i259 = icmp eq ptr %151, null - br i1 %tobool.not.i.i.i.i.i259, label %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i264, label %if.then.i.i.i.i.i260 - -if.then.i.i.i.i.i260: ; preds = %for.body.i.i.i257 - %m_ref_count.i.i.i.i.i.i261 = getelementptr inbounds %class.goal, ptr %151, i64 0, i32 4 - %152 = load i32, ptr %m_ref_count.i.i.i.i.i.i261, align 8 - %dec.i.i.i.i.i.i262 = add i32 %152, -1 - store i32 %dec.i.i.i.i.i.i262, ptr %m_ref_count.i.i.i.i.i.i261, align 8 - %cmp.i.i.i.i.i.i263 = icmp eq i32 %dec.i.i.i.i.i.i262, 0 - br i1 %cmp.i.i.i.i.i.i263, label %if.then.i.i.i.i.i.i276, label %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i264 - -if.then.i.i.i.i.i.i276: ; preds = %if.then.i.i.i.i.i260 + %idx.ext.i.i.i255 = zext i32 %150 to i64 + %add.ptr.i.i.i256 = getelementptr inbounds ptr, ptr %149, i64 %idx.ext.i.i.i255 + %cmp3.i.not.i.i257 = icmp eq i32 %150, 0 + br i1 %cmp3.i.not.i.i257, label %invoke.cont5.i.i270, label %for.body.i.i.i258 + +for.body.i.i.i258: ; preds = %ehcleanup, %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i265 + %it.04.i.i.i259 = phi ptr [ %incdec.ptr.i.i.i266, %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i265 ], [ %149, %ehcleanup ] + %151 = load ptr, ptr %it.04.i.i.i259, align 8 + %tobool.not.i.i.i.i.i260 = icmp eq ptr %151, null + br i1 %tobool.not.i.i.i.i.i260, label %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i265, label %if.then.i.i.i.i.i261 + +if.then.i.i.i.i.i261: ; preds = %for.body.i.i.i258 + %m_ref_count.i.i.i.i.i.i262 = getelementptr inbounds %class.goal, ptr %151, i64 0, i32 4 + %152 = load i32, ptr %m_ref_count.i.i.i.i.i.i262, align 8 + %dec.i.i.i.i.i.i263 = add i32 %152, -1 + store i32 %dec.i.i.i.i.i.i263, ptr %m_ref_count.i.i.i.i.i.i262, align 8 + %cmp.i.i.i.i.i.i264 = icmp eq i32 %dec.i.i.i.i.i.i263, 0 + br i1 %cmp.i.i.i.i.i.i264, label %if.then.i.i.i.i.i.i277, label %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i265 + +if.then.i.i.i.i.i.i277: ; preds = %if.then.i.i.i.i.i261 call void @_ZN4goalD1Ev(ptr noundef nonnull align 8 dereferenceable(124) %151) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %151) - to label %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i264 unwind label %terminate.lpad.i.i277 + to label %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i265 unwind label %terminate.lpad.i.i278 -_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i264: ; preds = %if.then.i.i.i.i.i.i276, %if.then.i.i.i.i.i260, %for.body.i.i.i257 - %incdec.ptr.i.i.i265 = getelementptr inbounds ptr, ptr %it.04.i.i.i258, i64 1 - %cmp.i.i.i266 = icmp ult ptr %incdec.ptr.i.i.i265, %add.ptr.i.i.i255 - br i1 %cmp.i.i.i266, label %for.body.i.i.i257, label %invoke.cont5.loopexit.i.i267, !llvm.loop !72 +_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i265: ; preds = %if.then.i.i.i.i.i.i277, %if.then.i.i.i.i.i261, %for.body.i.i.i258 + %incdec.ptr.i.i.i266 = getelementptr inbounds ptr, ptr %it.04.i.i.i259, i64 1 + %cmp.i.i.i267 = icmp ult ptr %incdec.ptr.i.i.i266, %add.ptr.i.i.i256 + br i1 %cmp.i.i.i267, label %for.body.i.i.i258, label %invoke.cont5.loopexit.i.i268, !llvm.loop !72 -invoke.cont5.loopexit.i.i267: ; preds = %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i264 - %.pre.i.i268 = load ptr, ptr %result, align 8 - br label %invoke.cont5.i.i269 +invoke.cont5.loopexit.i.i268: ; preds = %_ZN15ref_buffer_coreI4goal21ref_unmanaged_wrapperIS0_ELj16EE7dec_refEPS0_.exit.i.i.i265 + %.pre.i.i269 = load ptr, ptr %result, align 8 + br label %invoke.cont5.i.i270 -invoke.cont5.i.i269: ; preds = %invoke.cont5.loopexit.i.i267, %ehcleanup - %153 = phi ptr [ %.pre.i.i268, %invoke.cont5.loopexit.i.i267 ], [ %149, %ehcleanup ] - %cmp.not.i.i.i.i.i.i271 = icmp eq ptr %153, %m_initial_buffer.i.i.i.i - %cmp.i.i.i.i.i.i.i272 = icmp eq ptr %153, null - %or.cond.i.i.i.i.i.i273 = or i1 %cmp.not.i.i.i.i.i.i271, %cmp.i.i.i.i.i.i.i272 - br i1 %or.cond.i.i.i.i.i.i273, label %ehcleanup213, label %if.end.i.i.i.i.i.i.i274 +invoke.cont5.i.i270: ; preds = %invoke.cont5.loopexit.i.i268, %ehcleanup + %153 = phi ptr [ %.pre.i.i269, %invoke.cont5.loopexit.i.i268 ], [ %149, %ehcleanup ] + %cmp.not.i.i.i.i.i.i272 = icmp eq ptr %153, %m_initial_buffer.i.i.i.i + %cmp.i.i.i.i.i.i.i273 = icmp eq ptr %153, null + %or.cond.i.i.i.i.i.i274 = or i1 %cmp.not.i.i.i.i.i.i272, %cmp.i.i.i.i.i.i.i273 + br i1 %or.cond.i.i.i.i.i.i274, label %ehcleanup213, label %if.end.i.i.i.i.i.i.i275 -if.end.i.i.i.i.i.i.i274: ; preds = %invoke.cont5.i.i269 +if.end.i.i.i.i.i.i.i275: ; preds = %invoke.cont5.i.i270 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %153) - to label %ehcleanup213 unwind label %terminate.lpad.i.i.i.i275 + to label %ehcleanup213 unwind label %terminate.lpad.i.i.i.i276 -terminate.lpad.i.i.i.i275: ; preds = %if.end.i.i.i.i.i.i.i274 +terminate.lpad.i.i.i.i276: ; preds = %if.end.i.i.i.i.i.i.i275 %154 = landingpad { ptr, i32 } catch ptr null %155 = extractvalue { ptr, i32 } %154, 0 call void @__clang_call_terminate(ptr %155) #26 unreachable -terminate.lpad.i.i277: ; preds = %if.then.i.i.i.i.i.i276 +terminate.lpad.i.i278: ; preds = %if.then.i.i.i.i.i.i277 %156 = landingpad { ptr, i32 } catch ptr null %157 = extractvalue { ptr, i32 } %156, 0 @@ -14195,32 +14180,32 @@ terminate.lpad.i.i277: ; preds = %if.then.i.i.i.i.i.i for.end189: ; preds = %_ZN11sref_bufferI4goalLj16EED2Ev.exit %158 = load ptr, ptr %new_lemmas, align 8 - %cmp.i.i279 = icmp eq ptr %158, null - br i1 %cmp.i.i279, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit283, label %if.end.i.i280 + %cmp.i.i280 = icmp eq ptr %158, null + br i1 %cmp.i.i280, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit284, label %if.end.i.i281 -if.end.i.i280: ; preds = %for.end189 - %arrayidx.i.i281 = getelementptr inbounds i32, ptr %158, i64 -1 - %159 = load i32, ptr %arrayidx.i.i281, align 4 - br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit283 +if.end.i.i281: ; preds = %for.end189 + %arrayidx.i.i282 = getelementptr inbounds i32, ptr %158, i64 -1 + %159 = load i32, ptr %arrayidx.i.i282, align 4 + br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit284 -_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit283: ; preds = %for.end189, %if.end.i.i280 - %retval.0.i.i282 = phi i32 [ %159, %if.end.i.i280 ], [ 0, %for.end189 ] - %add192 = add i32 %retval.0.i.i282, %num_sumbsumed.2672 +_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit284: ; preds = %for.end189, %if.end.i.i281 + %retval.0.i.i283 = phi i32 [ %159, %if.end.i.i281 ], [ 0, %for.end189 ] + %add192 = add i32 %retval.0.i.i283, %num_sumbsumed.2673 %160 = load ptr, ptr %m_lemmas, align 8 - %cmp.i.i284 = icmp eq ptr %160, null - br i1 %cmp.i.i284, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit288, label %if.end.i.i285 + %cmp.i.i285 = icmp eq ptr %160, null + br i1 %cmp.i.i285, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit289, label %if.end.i.i286 -if.end.i.i285: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit283 - %arrayidx.i.i286 = getelementptr inbounds i32, ptr %160, i64 -1 - %161 = load i32, ptr %arrayidx.i.i286, align 4 - br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit288 +if.end.i.i286: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit284 + %arrayidx.i.i287 = getelementptr inbounds i32, ptr %160, i64 -1 + %161 = load i32, ptr %arrayidx.i.i287, align 4 + br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit289 -_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit288: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit283, %if.end.i.i285 - %retval.0.i.i287 = phi i32 [ %161, %if.end.i.i285 ], [ 0, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit283 ] - %cmp196 = icmp eq i32 %add192, %retval.0.i.i287 +_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit289: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit284, %if.end.i.i286 + %retval.0.i.i288 = phi i32 [ %161, %if.end.i.i286 ], [ 0, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit284 ] + %cmp196 = icmp eq i32 %add192, %retval.0.i.i288 br i1 %cmp196, label %if.end199, label %if.then197 -if.then197: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit288 +if.then197: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit289 invoke void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.17, i32 noundef 2219, ptr noundef nonnull @.str.52) to label %invoke.cont198 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -14228,27 +14213,27 @@ invoke.cont198: ; preds = %if.then197 call void @exit(i32 noundef 114) #26 unreachable -if.end199: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit288 - br i1 %cmp.i.i279, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit293, label %if.end.i.i290 +if.end199: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit289 + br i1 %cmp.i.i280, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit294, label %if.end.i.i291 -if.end.i.i290: ; preds = %if.end199 - %arrayidx.i.i291 = getelementptr inbounds i32, ptr %158, i64 -1 - %162 = load i32, ptr %arrayidx.i.i291, align 4 - br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit293 +if.end.i.i291: ; preds = %if.end199 + %arrayidx.i.i292 = getelementptr inbounds i32, ptr %158, i64 -1 + %162 = load i32, ptr %arrayidx.i.i292, align 4 + br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit294 -_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit293: ; preds = %if.end199, %if.end.i.i290 - %retval.0.i.i292 = phi i32 [ %162, %if.end.i.i290 ], [ 0, %if.end199 ] - br i1 %cmp.i.i284, label %if.end212, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit298.thread +_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit294: ; preds = %if.end199, %if.end.i.i291 + %retval.0.i.i293 = phi i32 [ %162, %if.end.i.i291 ], [ 0, %if.end199 ] + br i1 %cmp.i.i285, label %if.end212, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit299.thread -_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit298.thread: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit293 - %arrayidx.i.i296 = getelementptr inbounds i32, ptr %160, i64 -1 - %163 = load i32, ptr %arrayidx.i.i296, align 4 - %cmp205408 = icmp ult i32 %retval.0.i.i292, %163 - br i1 %cmp205408, label %for.body.i.i.preheader, label %if.end212 +_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit299.thread: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit294 + %arrayidx.i.i297 = getelementptr inbounds i32, ptr %160, i64 -1 + %163 = load i32, ptr %arrayidx.i.i297, align 4 + %cmp205409 = icmp ult i32 %retval.0.i.i293, %163 + br i1 %cmp205409, label %for.body.i.i.preheader, label %if.end212 -for.body.i.i.preheader: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit298.thread +for.body.i.i.preheader: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit299.thread %164 = zext i32 %163 to i64 - %add.ptr.i301 = getelementptr inbounds ptr, ptr %160, i64 %164 + %add.ptr.i302 = getelementptr inbounds ptr, ptr %160, i64 %164 br label %for.body.i.i for.body.i.i: ; preds = %for.body.i.i.preheader, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i @@ -14262,64 +14247,64 @@ if.then.i.i.i.i: ; preds = %for.body.i.i %dec.i.i.i.i.i = add i32 %166, -1 store i32 %dec.i.i.i.i.i, ptr %165, align 8 %cmp.i.i.i.i.i = icmp eq i32 %dec.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i.i304, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i + br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i.i305, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i -if.then.i.i.i.i.i304: ; preds = %if.then.i.i.i.i +if.then.i.i.i.i.i305: ; preds = %if.then.i.i.i.i call void @_ZN6spacer5lemmaD2Ev(ptr noundef nonnull align 8 dereferenceable(109) %165) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %165) to label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i unwind label %lpad13.loopexit.split-lp.loopexit -_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i: ; preds = %if.then.i.i.i.i.i304, %if.then.i.i.i.i, %for.body.i.i +_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i: ; preds = %if.then.i.i.i.i.i305, %if.then.i.i.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds ptr, ptr %it.04.i.i, i64 1 - %cmp.i1.i = icmp ult ptr %incdec.ptr.i.i, %add.ptr.i301 + %cmp.i1.i = icmp ult ptr %incdec.ptr.i.i, %add.ptr.i302 br i1 %cmp.i1.i, label %for.body.i.i, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE13dec_range_refEPKPS1_S7_.exit.i, !llvm.loop !54 _ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE13dec_range_refEPKPS1_S7_.exit.i: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i %.pre.i = load ptr, ptr %m_lemmas, align 8 - %tobool.not.i.i302 = icmp eq ptr %.pre.i, null - br i1 %tobool.not.i.i302, label %for.cond.i.preheader, label %if.then.i.i303 + %tobool.not.i.i303 = icmp eq ptr %.pre.i, null + br i1 %tobool.not.i.i303, label %for.cond.i.preheader, label %if.then.i.i304 -if.then.i.i303: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE13dec_range_refEPKPS1_S7_.exit.i +if.then.i.i304: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE13dec_range_refEPKPS1_S7_.exit.i %arrayidx.i2.i = getelementptr inbounds i32, ptr %.pre.i, i64 -1 store i32 0, ptr %arrayidx.i2.i, align 4 br label %for.cond.i.preheader -for.cond.i.preheader: ; preds = %if.then.i.i303, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE13dec_range_refEPKPS1_S7_.exit.i +for.cond.i.preheader: ; preds = %if.then.i.i304, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE13dec_range_refEPKPS1_S7_.exit.i br label %for.cond.i for.cond.i: ; preds = %for.cond.i.preheader, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit.i %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit.i ], [ 0, %for.cond.i.preheader ] %167 = load ptr, ptr %new_lemmas, align 8 - %cmp.i.i.i306 = icmp eq ptr %167, null - br i1 %cmp.i.i.i306, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i309, label %if.end.i.i.i307 + %cmp.i.i.i307 = icmp eq ptr %167, null + br i1 %cmp.i.i.i307, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i310, label %if.end.i.i.i308 -if.end.i.i.i307: ; preds = %for.cond.i - %arrayidx.i.i.i308 = getelementptr inbounds i32, ptr %167, i64 -1 - %168 = load i32, ptr %arrayidx.i.i.i308, align 4 - br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i309 +if.end.i.i.i308: ; preds = %for.cond.i + %arrayidx.i.i.i309 = getelementptr inbounds i32, ptr %167, i64 -1 + %168 = load i32, ptr %arrayidx.i.i.i309, align 4 + br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i310 -_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i309: ; preds = %if.end.i.i.i307, %for.cond.i - %retval.0.i.i.i310 = phi i32 [ %168, %if.end.i.i.i307 ], [ 0, %for.cond.i ] - %169 = zext i32 %retval.0.i.i.i310 to i64 +_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i310: ; preds = %if.end.i.i.i308, %for.cond.i + %retval.0.i.i.i311 = phi i32 [ %168, %if.end.i.i.i308 ], [ 0, %for.cond.i ] + %169 = zext i32 %retval.0.i.i.i311 to i64 %cmp.i = icmp ult i64 %indvars.iv.i, %169 - br i1 %cmp.i, label %for.body.i, label %if.end.i320 + br i1 %cmp.i, label %for.body.i, label %if.end.i321 -for.body.i: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i309 +for.body.i: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i310 %arrayidx.i.i4.i = getelementptr inbounds ptr, ptr %167, i64 %indvars.iv.i %170 = load ptr, ptr %arrayidx.i.i4.i, align 8 - %tobool.not.i.i.i.i311 = icmp eq ptr %170, null - br i1 %tobool.not.i.i.i.i311, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i, label %if.then.i.i.i.i312 + %tobool.not.i.i.i.i312 = icmp eq ptr %170, null + br i1 %tobool.not.i.i.i.i312, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i, label %if.then.i.i.i.i313 -if.then.i.i.i.i312: ; preds = %for.body.i +if.then.i.i.i.i313: ; preds = %for.body.i %171 = load i32, ptr %170, align 8 %inc.i.i.i.i.i = add i32 %171, 1 store i32 %inc.i.i.i.i.i, ptr %170, align 8 br label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i -_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i: ; preds = %if.then.i.i.i.i312, %for.body.i +_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i: ; preds = %if.then.i.i.i.i313, %for.body.i %172 = load ptr, ptr %m_lemmas, align 8 %cmp.i.i5.i = icmp eq ptr %172, null - br i1 %cmp.i.i5.i, label %if.then.i.i.i316, label %lor.lhs.false.i.i.i + br i1 %cmp.i.i5.i, label %if.then.i.i.i317, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i %arrayidx.i.i6.i = getelementptr inbounds i32, ptr %172, i64 -1 @@ -14327,118 +14312,118 @@ lor.lhs.false.i.i.i: ; preds = %_ZN15ref_vector_cor %arrayidx4.i.i.i = getelementptr inbounds i32, ptr %172, i64 -2 %174 = load i32, ptr %arrayidx4.i.i.i, align 4 %cmp5.i.i.i = icmp eq i32 %173, %174 - br i1 %cmp5.i.i.i, label %if.then.i.i.i316, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit.i + br i1 %cmp5.i.i.i, label %if.then.i.i.i317, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit.i -if.then.i.i.i316: ; preds = %lor.lhs.false.i.i.i, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i +if.then.i.i.i317: ; preds = %lor.lhs.false.i.i.i, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7inc_refEPS1_.exit.i.i invoke void @_ZN6vectorIPN6spacer5lemmaELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %m_lemmas) - to label %.noexc317 unwind label %lpad13.loopexit + to label %.noexc318 unwind label %lpad13.loopexit -.noexc317: ; preds = %if.then.i.i.i316 +.noexc318: ; preds = %if.then.i.i.i317 %.pre.i.i.i = load ptr, ptr %m_lemmas, align 8 %arrayidx8.phi.trans.insert.i.i.i = getelementptr inbounds i32, ptr %.pre.i.i.i, i64 -1 %.pre1.i.i.i = load i32, ptr %arrayidx8.phi.trans.insert.i.i.i, align 4 br label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit.i -_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit.i: ; preds = %.noexc317, %lor.lhs.false.i.i.i - %175 = phi i32 [ %.pre1.i.i.i, %.noexc317 ], [ %173, %lor.lhs.false.i.i.i ] - %176 = phi ptr [ %.pre.i.i.i, %.noexc317 ], [ %172, %lor.lhs.false.i.i.i ] - %idx.ext.i.i.i313 = zext i32 %175 to i64 - %add.ptr.i.i.i314 = getelementptr inbounds ptr, ptr %176, i64 %idx.ext.i.i.i313 - store ptr %170, ptr %add.ptr.i.i.i314, align 8 +_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE9push_backEPS1_.exit.i: ; preds = %.noexc318, %lor.lhs.false.i.i.i + %175 = phi i32 [ %.pre1.i.i.i, %.noexc318 ], [ %173, %lor.lhs.false.i.i.i ] + %176 = phi ptr [ %.pre.i.i.i, %.noexc318 ], [ %172, %lor.lhs.false.i.i.i ] + %idx.ext.i.i.i314 = zext i32 %175 to i64 + %add.ptr.i.i.i315 = getelementptr inbounds ptr, ptr %176, i64 %idx.ext.i.i.i314 + store ptr %170, ptr %add.ptr.i.i.i315, align 8 %177 = load ptr, ptr %m_lemmas, align 8 %arrayidx10.i.i.i = getelementptr inbounds i32, ptr %177, i64 -1 %178 = load i32, ptr %arrayidx10.i.i.i, align 4 - %inc.i.i.i315 = add i32 %178, 1 - store i32 %inc.i.i.i315, ptr %arrayidx10.i.i.i, align 4 + %inc.i.i.i316 = add i32 %178, 1 + store i32 %inc.i.i.i316, ptr %arrayidx10.i.i.i, align 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 br label %for.cond.i, !llvm.loop !74 -if.end.i320: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i309 +if.end.i321: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i310 store i8 1, ptr %m_sorted.i, align 4 %179 = load ptr, ptr %m_lemmas, align 8 - %cmp.i.i.i322 = icmp eq ptr %179, null - br i1 %cmp.i.i.i322, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i325, label %if.end.i.i.i323 + %cmp.i.i.i323 = icmp eq ptr %179, null + br i1 %cmp.i.i.i323, label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i326, label %if.end.i.i.i324 -if.end.i.i.i323: ; preds = %if.end.i320 - %arrayidx.i.i.i324 = getelementptr inbounds i32, ptr %179, i64 -1 - %180 = load i32, ptr %arrayidx.i.i.i324, align 4 +if.end.i.i.i324: ; preds = %if.end.i321 + %arrayidx.i.i.i325 = getelementptr inbounds i32, ptr %179, i64 -1 + %180 = load i32, ptr %arrayidx.i.i.i325, align 4 %181 = zext i32 %180 to i64 - br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i325 + br label %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i326 -_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i325: ; preds = %if.end.i.i.i323, %if.end.i320 - %retval.0.i.i.i326 = phi i64 [ %181, %if.end.i.i.i323 ], [ 0, %if.end.i320 ] - %add.ptr.i327 = getelementptr inbounds ptr, ptr %179, i64 %retval.0.i.i.i326 - invoke void @_ZSt6__sortIPPN6spacer5lemmaEN9__gnu_cxx5__ops15_Iter_comp_iterINS0_13lemma_lt_procEEEEvT_S9_T0_(ptr noundef %179, ptr noundef %add.ptr.i327) +_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i326: ; preds = %if.end.i.i.i324, %if.end.i321 + %retval.0.i.i.i327 = phi i64 [ %181, %if.end.i.i.i324 ], [ 0, %if.end.i321 ] + %add.ptr.i328 = getelementptr inbounds ptr, ptr %179, i64 %retval.0.i.i.i327 + invoke void @_ZSt6__sortIPPN6spacer5lemmaEN9__gnu_cxx5__ops15_Iter_comp_iterINS0_13lemma_lt_procEEEEvT_S9_T0_(ptr noundef %179, ptr noundef %add.ptr.i328) to label %if.end212 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -if.end212: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit293, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i325, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit298.thread +if.end212: ; preds = %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit294, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit.i326, %_ZNK15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE4sizeEv.exit299.thread %182 = load ptr, ptr %g, align 8 - %tobool.not.i.i330 = icmp eq ptr %182, null - br i1 %tobool.not.i.i330, label %_ZN3refI4goalED2Ev.exit, label %if.then.i.i331 + %tobool.not.i.i331 = icmp eq ptr %182, null + br i1 %tobool.not.i.i331, label %_ZN3refI4goalED2Ev.exit, label %if.then.i.i332 -if.then.i.i331: ; preds = %if.end212 - %m_ref_count.i.i.i332 = getelementptr inbounds %class.goal, ptr %182, i64 0, i32 4 - %183 = load i32, ptr %m_ref_count.i.i.i332, align 8 +if.then.i.i332: ; preds = %if.end212 + %m_ref_count.i.i.i333 = getelementptr inbounds %class.goal, ptr %182, i64 0, i32 4 + %183 = load i32, ptr %m_ref_count.i.i.i333, align 8 %dec.i.i.i = add i32 %183, -1 - store i32 %dec.i.i.i, ptr %m_ref_count.i.i.i332, align 8 - %cmp.i.i.i333 = icmp eq i32 %dec.i.i.i, 0 - br i1 %cmp.i.i.i333, label %if.then.i.i.i334, label %_ZN3refI4goalED2Ev.exit + store i32 %dec.i.i.i, ptr %m_ref_count.i.i.i333, align 8 + %cmp.i.i.i334 = icmp eq i32 %dec.i.i.i, 0 + br i1 %cmp.i.i.i334, label %if.then.i.i.i335, label %_ZN3refI4goalED2Ev.exit -if.then.i.i.i334: ; preds = %if.then.i.i331 +if.then.i.i.i335: ; preds = %if.then.i.i332 call void @_ZN4goalD1Ev(ptr noundef nonnull align 8 dereferenceable(124) %182) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %182) to label %_ZN3refI4goalED2Ev.exit unwind label %terminate.lpad.i -terminate.lpad.i: ; preds = %if.then.i.i.i334 +terminate.lpad.i: ; preds = %if.then.i.i.i335 %184 = landingpad { ptr, i32 } catch ptr null %185 = extractvalue { ptr, i32 } %184, 0 call void @__clang_call_terminate(ptr %185) #26 unreachable -_ZN3refI4goalED2Ev.exit: ; preds = %if.end212, %if.then.i.i331, %if.then.i.i.i334 +_ZN3refI4goalED2Ev.exit: ; preds = %if.end212, %if.then.i.i332, %if.then.i.i.i335 %186 = load ptr, ptr %new_lemmas, align 8 - %cmp.i.i335 = icmp eq ptr %186, null - br i1 %cmp.i.i335, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit, label %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i336 + %cmp.i.i336 = icmp eq ptr %186, null + br i1 %cmp.i.i336, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit, label %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i337 -_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i336: ; preds = %_ZN3refI4goalED2Ev.exit - %arrayidx.i.i337 = getelementptr inbounds i32, ptr %186, i64 -1 - %187 = load i32, ptr %arrayidx.i.i337, align 4 +_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i337: ; preds = %_ZN3refI4goalED2Ev.exit + %arrayidx.i.i338 = getelementptr inbounds i32, ptr %186, i64 -1 + %187 = load i32, ptr %arrayidx.i.i338, align 4 %188 = zext i32 %187 to i64 - %add.ptr.i338 = getelementptr inbounds ptr, ptr %186, i64 %188 - %cmp3.i.not.i339 = icmp eq i32 %187, 0 - br i1 %cmp3.i.not.i339, label %if.then.i.i.i3.i, label %for.body.i.i340 + %add.ptr.i339 = getelementptr inbounds ptr, ptr %186, i64 %188 + %cmp3.i.not.i340 = icmp eq i32 %187, 0 + br i1 %cmp3.i.not.i340, label %if.then.i.i.i3.i, label %for.body.i.i341 -for.body.i.i340: ; preds = %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i336, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i346 - %it.04.i.i341 = phi ptr [ %incdec.ptr.i.i347, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i346 ], [ %186, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i336 ] - %189 = load ptr, ptr %it.04.i.i341, align 8 - %tobool.not.i.i.i.i342 = icmp eq ptr %189, null - br i1 %tobool.not.i.i.i.i342, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i346, label %if.then.i.i.i.i343 +for.body.i.i341: ; preds = %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i337, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i347 + %it.04.i.i342 = phi ptr [ %incdec.ptr.i.i348, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i347 ], [ %186, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i337 ] + %189 = load ptr, ptr %it.04.i.i342, align 8 + %tobool.not.i.i.i.i343 = icmp eq ptr %189, null + br i1 %tobool.not.i.i.i.i343, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i347, label %if.then.i.i.i.i344 -if.then.i.i.i.i343: ; preds = %for.body.i.i340 +if.then.i.i.i.i344: ; preds = %for.body.i.i341 %190 = load i32, ptr %189, align 8 - %dec.i.i.i.i.i344 = add i32 %190, -1 - store i32 %dec.i.i.i.i.i344, ptr %189, align 8 - %cmp.i.i.i.i.i345 = icmp eq i32 %dec.i.i.i.i.i344, 0 - br i1 %cmp.i.i.i.i.i345, label %if.then.i.i.i.i.i350, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i346 + %dec.i.i.i.i.i345 = add i32 %190, -1 + store i32 %dec.i.i.i.i.i345, ptr %189, align 8 + %cmp.i.i.i.i.i346 = icmp eq i32 %dec.i.i.i.i.i345, 0 + br i1 %cmp.i.i.i.i.i346, label %if.then.i.i.i.i.i351, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i347 -if.then.i.i.i.i.i350: ; preds = %if.then.i.i.i.i343 +if.then.i.i.i.i.i351: ; preds = %if.then.i.i.i.i344 call void @_ZN6spacer5lemmaD2Ev(ptr noundef nonnull align 8 dereferenceable(109) %189) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %189) - to label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i346 unwind label %terminate.lpad.i351 + to label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i347 unwind label %terminate.lpad.i352 -_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i346: ; preds = %if.then.i.i.i.i.i350, %if.then.i.i.i.i343, %for.body.i.i340 - %incdec.ptr.i.i347 = getelementptr inbounds ptr, ptr %it.04.i.i341, i64 1 - %cmp.i1.i348 = icmp ult ptr %incdec.ptr.i.i347, %add.ptr.i338 - br i1 %cmp.i1.i348, label %for.body.i.i340, label %invoke.cont8.i, !llvm.loop !54 +_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i347: ; preds = %if.then.i.i.i.i.i351, %if.then.i.i.i.i344, %for.body.i.i341 + %incdec.ptr.i.i348 = getelementptr inbounds ptr, ptr %it.04.i.i342, i64 1 + %cmp.i1.i349 = icmp ult ptr %incdec.ptr.i.i348, %add.ptr.i339 + br i1 %cmp.i1.i349, label %for.body.i.i341, label %invoke.cont8.i, !llvm.loop !54 -invoke.cont8.i: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i346 - %.pre.i349 = load ptr, ptr %new_lemmas, align 8 - %tobool.not.i.i.i2.i = icmp eq ptr %.pre.i349, null +invoke.cont8.i: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i347 + %.pre.i350 = load ptr, ptr %new_lemmas, align 8 + %tobool.not.i.i.i2.i = icmp eq ptr %.pre.i350, null br i1 %tobool.not.i.i.i2.i, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit, label %if.then.i.i.i3.i -if.then.i.i.i3.i: ; preds = %invoke.cont8.i, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i336 - %191 = phi ptr [ %.pre.i349, %invoke.cont8.i ], [ %186, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i336 ] +if.then.i.i.i3.i: ; preds = %invoke.cont8.i, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i337 + %191 = phi ptr [ %.pre.i350, %invoke.cont8.i ], [ %186, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i337 ] %add.ptr.i.i.i.i.i = getelementptr inbounds i32, ptr %191, i64 -2 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i) to label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit unwind label %terminate.lpad.i.i.i @@ -14450,7 +14435,7 @@ terminate.lpad.i.i.i: ; preds = %if.then.i.i.i3.i call void @__clang_call_terminate(ptr %193) #26 unreachable -terminate.lpad.i351: ; preds = %if.then.i.i.i.i.i350 +terminate.lpad.i352: ; preds = %if.then.i.i.i.i.i351 %194 = landingpad { ptr, i32 } catch ptr null %195 = extractvalue { ptr, i32 } %194, 0 @@ -14458,148 +14443,148 @@ terminate.lpad.i351: ; preds = %if.then.i.i.i.i.i35 unreachable _ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit: ; preds = %_ZN3refI4goalED2Ev.exit, %invoke.cont8.i, %if.then.i.i.i3.i - br i1 %tobool.not.i.i, label %_ZN3refI6tacticED2Ev.exit, label %if.then.i.i353 + br i1 %tobool.not.i.i, label %_ZN3refI6tacticED2Ev.exit, label %if.then.i.i354 -if.then.i.i353: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit - %m_ref_count.i.i.i354 = getelementptr inbounds %class.tactic, ptr %call2, i64 0, i32 1 - %196 = load i32, ptr %m_ref_count.i.i.i354, align 8 - %dec.i.i.i355 = add i32 %196, -1 - store i32 %dec.i.i.i355, ptr %m_ref_count.i.i.i354, align 8 - %cmp.i.i.i356 = icmp eq i32 %dec.i.i.i355, 0 - br i1 %cmp.i.i.i356, label %if.then.i.i.i357, label %_ZN3refI6tacticED2Ev.exit +if.then.i.i354: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit + %m_ref_count.i.i.i355 = getelementptr inbounds %class.tactic, ptr %call2, i64 0, i32 1 + %196 = load i32, ptr %m_ref_count.i.i.i355, align 8 + %dec.i.i.i356 = add i32 %196, -1 + store i32 %dec.i.i.i356, ptr %m_ref_count.i.i.i355, align 8 + %cmp.i.i.i357 = icmp eq i32 %dec.i.i.i356, 0 + br i1 %cmp.i.i.i357, label %if.then.i.i.i358, label %_ZN3refI6tacticED2Ev.exit -if.then.i.i.i357: ; preds = %if.then.i.i353 +if.then.i.i.i358: ; preds = %if.then.i.i354 %vtable.i.i.i.i = load ptr, ptr %call2, align 8 %197 = load ptr, ptr %vtable.i.i.i.i, align 8 call void %197(ptr noundef nonnull align 8 dereferenceable(12) %call2) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %call2) - to label %_ZN3refI6tacticED2Ev.exit unwind label %terminate.lpad.i358 + to label %_ZN3refI6tacticED2Ev.exit unwind label %terminate.lpad.i359 -terminate.lpad.i358: ; preds = %if.then.i.i.i357 +terminate.lpad.i359: ; preds = %if.then.i.i.i358 %198 = landingpad { ptr, i32 } catch ptr null %199 = extractvalue { ptr, i32 } %198, 0 call void @__clang_call_terminate(ptr %199) #26 unreachable -_ZN3refI6tacticED2Ev.exit: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit, %if.then.i.i353, %if.then.i.i.i357 +_ZN3refI6tacticED2Ev.exit: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EED2Ev.exit, %if.then.i.i354, %if.then.i.i.i358 ret void -ehcleanup213: ; preds = %lpad13.loopexit, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad13.loopexit.split-lp.loopexit, %if.end.i.i.i.i.i.i.i274, %invoke.cont5.i.i269 - %.pn.pn = phi { ptr, i32 } [ %.pn, %invoke.cont5.i.i269 ], [ %.pn, %if.end.i.i.i.i.i.i.i274 ], [ %lpad.loopexit, %lpad13.loopexit ], [ %lpad.loopexit409, %lpad13.loopexit.split-lp.loopexit ], [ %lpad.loopexit428, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] +ehcleanup213: ; preds = %lpad13.loopexit, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad13.loopexit.split-lp.loopexit, %if.end.i.i.i.i.i.i.i275, %invoke.cont5.i.i270 + %.pn.pn = phi { ptr, i32 } [ %.pn, %invoke.cont5.i.i270 ], [ %.pn, %if.end.i.i.i.i.i.i.i275 ], [ %lpad.loopexit, %lpad13.loopexit ], [ %lpad.loopexit410, %lpad13.loopexit.split-lp.loopexit ], [ %lpad.loopexit429, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] %200 = load ptr, ptr %g, align 8 - %tobool.not.i.i359 = icmp eq ptr %200, null - br i1 %tobool.not.i.i359, label %ehcleanup214, label %if.then.i.i360 - -if.then.i.i360: ; preds = %ehcleanup213 - %m_ref_count.i.i.i361 = getelementptr inbounds %class.goal, ptr %200, i64 0, i32 4 - %201 = load i32, ptr %m_ref_count.i.i.i361, align 8 - %dec.i.i.i362 = add i32 %201, -1 - store i32 %dec.i.i.i362, ptr %m_ref_count.i.i.i361, align 8 - %cmp.i.i.i363 = icmp eq i32 %dec.i.i.i362, 0 - br i1 %cmp.i.i.i363, label %if.then.i.i.i364, label %ehcleanup214 - -if.then.i.i.i364: ; preds = %if.then.i.i360 + %tobool.not.i.i360 = icmp eq ptr %200, null + br i1 %tobool.not.i.i360, label %ehcleanup214, label %if.then.i.i361 + +if.then.i.i361: ; preds = %ehcleanup213 + %m_ref_count.i.i.i362 = getelementptr inbounds %class.goal, ptr %200, i64 0, i32 4 + %201 = load i32, ptr %m_ref_count.i.i.i362, align 8 + %dec.i.i.i363 = add i32 %201, -1 + store i32 %dec.i.i.i363, ptr %m_ref_count.i.i.i362, align 8 + %cmp.i.i.i364 = icmp eq i32 %dec.i.i.i363, 0 + br i1 %cmp.i.i.i364, label %if.then.i.i.i365, label %ehcleanup214 + +if.then.i.i.i365: ; preds = %if.then.i.i361 call void @_ZN4goalD1Ev(ptr noundef nonnull align 8 dereferenceable(124) %200) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %200) - to label %ehcleanup214 unwind label %terminate.lpad.i365 + to label %ehcleanup214 unwind label %terminate.lpad.i366 -terminate.lpad.i365: ; preds = %if.then.i.i.i364 +terminate.lpad.i366: ; preds = %if.then.i.i.i365 %202 = landingpad { ptr, i32 } catch ptr null %203 = extractvalue { ptr, i32 } %202, 0 call void @__clang_call_terminate(ptr %203) #26 unreachable -ehcleanup214: ; preds = %if.then.i.i.i364, %if.then.i.i360, %ehcleanup213, %lpad6 - %.pn.pn.pn = phi { ptr, i32 } [ %22, %lpad6 ], [ %.pn.pn, %ehcleanup213 ], [ %.pn.pn, %if.then.i.i360 ], [ %.pn.pn, %if.then.i.i.i364 ] +ehcleanup214: ; preds = %if.then.i.i.i365, %if.then.i.i361, %ehcleanup213, %lpad6 + %.pn.pn.pn = phi { ptr, i32 } [ %22, %lpad6 ], [ %.pn.pn, %ehcleanup213 ], [ %.pn.pn, %if.then.i.i361 ], [ %.pn.pn, %if.then.i.i.i365 ] %204 = load ptr, ptr %new_lemmas, align 8 - %cmp.i.i367 = icmp eq ptr %204, null - br i1 %cmp.i.i367, label %ehcleanup215, label %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i368 + %cmp.i.i368 = icmp eq ptr %204, null + br i1 %cmp.i.i368, label %ehcleanup215, label %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i369 -_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i368: ; preds = %ehcleanup214 - %arrayidx.i.i369 = getelementptr inbounds i32, ptr %204, i64 -1 - %205 = load i32, ptr %arrayidx.i.i369, align 4 +_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i369: ; preds = %ehcleanup214 + %arrayidx.i.i370 = getelementptr inbounds i32, ptr %204, i64 -1 + %205 = load i32, ptr %arrayidx.i.i370, align 4 %206 = zext i32 %205 to i64 - %add.ptr.i370 = getelementptr inbounds ptr, ptr %204, i64 %206 - %cmp3.i.not.i371 = icmp eq i32 %205, 0 - br i1 %cmp3.i.not.i371, label %if.then.i.i.i3.i384, label %for.body.i.i372 + %add.ptr.i371 = getelementptr inbounds ptr, ptr %204, i64 %206 + %cmp3.i.not.i372 = icmp eq i32 %205, 0 + br i1 %cmp3.i.not.i372, label %if.then.i.i.i3.i385, label %for.body.i.i373 -for.body.i.i372: ; preds = %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i368, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i378 - %it.04.i.i373 = phi ptr [ %incdec.ptr.i.i379, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i378 ], [ %204, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i368 ] - %207 = load ptr, ptr %it.04.i.i373, align 8 - %tobool.not.i.i.i.i374 = icmp eq ptr %207, null - br i1 %tobool.not.i.i.i.i374, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i378, label %if.then.i.i.i.i375 +for.body.i.i373: ; preds = %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i369, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i379 + %it.04.i.i374 = phi ptr [ %incdec.ptr.i.i380, %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i379 ], [ %204, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i369 ] + %207 = load ptr, ptr %it.04.i.i374, align 8 + %tobool.not.i.i.i.i375 = icmp eq ptr %207, null + br i1 %tobool.not.i.i.i.i375, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i379, label %if.then.i.i.i.i376 -if.then.i.i.i.i375: ; preds = %for.body.i.i372 +if.then.i.i.i.i376: ; preds = %for.body.i.i373 %208 = load i32, ptr %207, align 8 - %dec.i.i.i.i.i376 = add i32 %208, -1 - store i32 %dec.i.i.i.i.i376, ptr %207, align 8 - %cmp.i.i.i.i.i377 = icmp eq i32 %dec.i.i.i.i.i376, 0 - br i1 %cmp.i.i.i.i.i377, label %if.then.i.i.i.i.i387, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i378 + %dec.i.i.i.i.i377 = add i32 %208, -1 + store i32 %dec.i.i.i.i.i377, ptr %207, align 8 + %cmp.i.i.i.i.i378 = icmp eq i32 %dec.i.i.i.i.i377, 0 + br i1 %cmp.i.i.i.i.i378, label %if.then.i.i.i.i.i388, label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i379 -if.then.i.i.i.i.i387: ; preds = %if.then.i.i.i.i375 +if.then.i.i.i.i.i388: ; preds = %if.then.i.i.i.i376 call void @_ZN6spacer5lemmaD2Ev(ptr noundef nonnull align 8 dereferenceable(109) %207) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %207) - to label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i378 unwind label %terminate.lpad.i388 + to label %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i379 unwind label %terminate.lpad.i389 -_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i378: ; preds = %if.then.i.i.i.i.i387, %if.then.i.i.i.i375, %for.body.i.i372 - %incdec.ptr.i.i379 = getelementptr inbounds ptr, ptr %it.04.i.i373, i64 1 - %cmp.i1.i380 = icmp ult ptr %incdec.ptr.i.i379, %add.ptr.i370 - br i1 %cmp.i1.i380, label %for.body.i.i372, label %invoke.cont8.i381, !llvm.loop !54 +_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i379: ; preds = %if.then.i.i.i.i.i388, %if.then.i.i.i.i376, %for.body.i.i373 + %incdec.ptr.i.i380 = getelementptr inbounds ptr, ptr %it.04.i.i374, i64 1 + %cmp.i1.i381 = icmp ult ptr %incdec.ptr.i.i380, %add.ptr.i371 + br i1 %cmp.i1.i381, label %for.body.i.i373, label %invoke.cont8.i382, !llvm.loop !54 -invoke.cont8.i381: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i378 - %.pre.i382 = load ptr, ptr %new_lemmas, align 8 - %tobool.not.i.i.i2.i383 = icmp eq ptr %.pre.i382, null - br i1 %tobool.not.i.i.i2.i383, label %ehcleanup215, label %if.then.i.i.i3.i384 +invoke.cont8.i382: ; preds = %_ZN15ref_vector_coreIN6spacer5lemmaE21ref_unmanaged_wrapperIS1_EE7dec_refEPS1_.exit.i.i379 + %.pre.i383 = load ptr, ptr %new_lemmas, align 8 + %tobool.not.i.i.i2.i384 = icmp eq ptr %.pre.i383, null + br i1 %tobool.not.i.i.i2.i384, label %ehcleanup215, label %if.then.i.i.i3.i385 -if.then.i.i.i3.i384: ; preds = %invoke.cont8.i381, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i368 - %209 = phi ptr [ %.pre.i382, %invoke.cont8.i381 ], [ %204, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i368 ] - %add.ptr.i.i.i.i.i385 = getelementptr inbounds i32, ptr %209, i64 -2 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i385) - to label %ehcleanup215 unwind label %terminate.lpad.i.i.i386 +if.then.i.i.i3.i385: ; preds = %invoke.cont8.i382, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i369 + %209 = phi ptr [ %.pre.i383, %invoke.cont8.i382 ], [ %204, %_ZNK6vectorIPN6spacer5lemmaELb0EjE4sizeEv.exit.i369 ] + %add.ptr.i.i.i.i.i386 = getelementptr inbounds i32, ptr %209, i64 -2 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i386) + to label %ehcleanup215 unwind label %terminate.lpad.i.i.i387 -terminate.lpad.i.i.i386: ; preds = %if.then.i.i.i3.i384 +terminate.lpad.i.i.i387: ; preds = %if.then.i.i.i3.i385 %210 = landingpad { ptr, i32 } catch ptr null %211 = extractvalue { ptr, i32 } %210, 0 call void @__clang_call_terminate(ptr %211) #26 unreachable -terminate.lpad.i388: ; preds = %if.then.i.i.i.i.i387 +terminate.lpad.i389: ; preds = %if.then.i.i.i.i.i388 %212 = landingpad { ptr, i32 } catch ptr null %213 = extractvalue { ptr, i32 } %212, 0 call void @__clang_call_terminate(ptr %213) #26 unreachable -ehcleanup215: ; preds = %if.then.i.i.i3.i384, %invoke.cont8.i381, %ehcleanup214 - br i1 %tobool.not.i.i, label %eh.resume, label %if.then.i.i391 +ehcleanup215: ; preds = %if.then.i.i.i3.i385, %invoke.cont8.i382, %ehcleanup214 + br i1 %tobool.not.i.i, label %eh.resume, label %if.then.i.i392 -if.then.i.i391: ; preds = %ehcleanup215 - %m_ref_count.i.i.i392 = getelementptr inbounds %class.tactic, ptr %call2, i64 0, i32 1 - %214 = load i32, ptr %m_ref_count.i.i.i392, align 8 - %dec.i.i.i393 = add i32 %214, -1 - store i32 %dec.i.i.i393, ptr %m_ref_count.i.i.i392, align 8 - %cmp.i.i.i394 = icmp eq i32 %dec.i.i.i393, 0 - br i1 %cmp.i.i.i394, label %if.then.i.i.i395, label %eh.resume +if.then.i.i392: ; preds = %ehcleanup215 + %m_ref_count.i.i.i393 = getelementptr inbounds %class.tactic, ptr %call2, i64 0, i32 1 + %214 = load i32, ptr %m_ref_count.i.i.i393, align 8 + %dec.i.i.i394 = add i32 %214, -1 + store i32 %dec.i.i.i394, ptr %m_ref_count.i.i.i393, align 8 + %cmp.i.i.i395 = icmp eq i32 %dec.i.i.i394, 0 + br i1 %cmp.i.i.i395, label %if.then.i.i.i396, label %eh.resume -if.then.i.i.i395: ; preds = %if.then.i.i391 - %vtable.i.i.i.i396 = load ptr, ptr %call2, align 8 - %215 = load ptr, ptr %vtable.i.i.i.i396, align 8 +if.then.i.i.i396: ; preds = %if.then.i.i392 + %vtable.i.i.i.i397 = load ptr, ptr %call2, align 8 + %215 = load ptr, ptr %vtable.i.i.i.i397, align 8 call void %215(ptr noundef nonnull align 8 dereferenceable(12) %call2) #25 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %call2) - to label %eh.resume unwind label %terminate.lpad.i397 + to label %eh.resume unwind label %terminate.lpad.i398 -terminate.lpad.i397: ; preds = %if.then.i.i.i395 +terminate.lpad.i398: ; preds = %if.then.i.i.i396 %216 = landingpad { ptr, i32 } catch ptr null %217 = extractvalue { ptr, i32 } %216, 0 call void @__clang_call_terminate(ptr %217) #26 unreachable -eh.resume: ; preds = %if.then.i.i.i395, %if.then.i.i391, %ehcleanup215, %lpad - %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %21, %lpad ], [ %.pn.pn.pn, %ehcleanup215 ], [ %.pn.pn.pn, %if.then.i.i391 ], [ %.pn.pn.pn, %if.then.i.i.i395 ] +eh.resume: ; preds = %if.then.i.i.i396, %if.then.i.i392, %ehcleanup215, %lpad + %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %21, %lpad ], [ %.pn.pn.pn, %ehcleanup215 ], [ %.pn.pn.pn, %if.then.i.i392 ], [ %.pn.pn.pn, %if.then.i.i.i396 ] resume { ptr, i32 } %.pn.pn.pn.pn.pn } @@ -15097,7 +15082,7 @@ for.end: ; preds = %_ZN6spacer13lemma_l br label %if.end42 if.else: ; preds = %if.end14 - %inc41 = add nuw i32 %19, 1 + %inc41 = add i32 %19, 1 br label %if.end42 if.end42: ; preds = %if.else, %for.end @@ -45133,10 +45118,10 @@ if.end: ; preds = %_ZN6spacer9pob_queu br label %while.cond while.cond: ; preds = %_ZN3refIN6spacer3pobEED2Ev.exit306, %if.end - %luby_idx.0 = phi i32 [ 1, %if.end ], [ %luby_idx.2389, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] - %threshold.0 = phi i32 [ %16, %if.end ], [ %threshold.2391, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] - %initial_size.0 = phi i32 [ %15, %if.end ], [ %initial_size.2393, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] - %retval.0 = phi i1 [ undef, %if.end ], [ %retval.3395, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] + %luby_idx.0 = phi i32 [ 1, %if.end ], [ %luby_idx.2390, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] + %threshold.0 = phi i32 [ %16, %if.end ], [ %threshold.2392, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] + %initial_size.0 = phi i32 [ %15, %if.end ], [ %initial_size.2394, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] + %retval.0 = phi i1 [ undef, %if.end ], [ %retval.3396, %_ZN3refIN6spacer3pobEED2Ev.exit306 ] %17 = load ptr, ptr %m_data.i18, align 8 %18 = load ptr, ptr %_M_finish.i.i.i.i19, align 8 %cmp.i.i.i.i20 = icmp eq ptr %17, %18 @@ -45337,8 +45322,8 @@ if.end17.i75: ; preds = %if.end.i67 if.end17.i75.thread: ; preds = %if.end.i67 %53 = and i64 %bf.load.i.i69, 281474976710656 - %tobool.not.i83374 = icmp eq i64 %53, 0 - br i1 %tobool.not.i83374, label %if.then.i.i102, label %while.end203 + %tobool.not.i83375 = icmp eq i64 %53, 0 + br i1 %tobool.not.i83375, label %if.then.i.i102, label %while.end203 invoke.cont82.thread: ; preds = %while.cond80 %bf.load.i82331 = load i64, ptr inttoptr (i64 72 to ptr), align 8 @@ -45429,7 +45414,7 @@ land.lhs.true.i.i: ; preds = %while.end.i.i br i1 %cmp19.i.i, label %if.then20.i.i, label %if.end33.i.i if.then20.i.i: ; preds = %land.lhs.true.i.i - %add21.i.i = shl i64 %__holeIndex.addr.0.lcssa.i.i, 1 + %add21.i.i = shl nsw i64 %__holeIndex.addr.0.lcssa.i.i, 1 %sub24.i.i = or disjoint i64 %add21.i.i, 1 %add.ptr.i20.i.i = getelementptr inbounds ptr, ptr %61, i64 %sub24.i.i %69 = load ptr, ptr %add.ptr.i20.i.i, align 8 @@ -45674,7 +45659,7 @@ invoke.cont190: ; preds = %invoke.cont186 invoke.cont199.thread: ; preds = %invoke.cont190, %invoke.cont144 %91 = load ptr, ptr %m_pob_queue11, align 8 - %cmp.i156375 = icmp eq ptr %91, %58 + %cmp.i156376 = icmp eq ptr %91, %58 br label %if.then.i.i158 invoke.cont199: ; preds = %invoke.cont94 @@ -45684,7 +45669,7 @@ invoke.cont199: ; preds = %invoke.cont94 br i1 %tobool.not.i.i157, label %_ZN3refIN6spacer3pobEED2Ev.exit, label %if.then.i.i158 if.then.i.i158: ; preds = %invoke.cont199.thread, %invoke.cont199 - %cmp.i156377 = phi i1 [ %cmp.i156375, %invoke.cont199.thread ], [ %cmp.i156, %invoke.cont199 ] + %cmp.i156378 = phi i1 [ %cmp.i156376, %invoke.cont199.thread ], [ %cmp.i156, %invoke.cont199 ] %93 = load i32, ptr %58, align 8 %dec.i.i.i159 = add i32 %93, -1 store i32 %dec.i.i.i159, ptr %58, align 8 @@ -45704,8 +45689,8 @@ terminate.lpad.i: ; preds = %_Z7deallocIN6spacer unreachable _ZN3refIN6spacer3pobEED2Ev.exit: ; preds = %invoke.cont199, %if.then.i.i158, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i161 - %cmp.i156378 = phi i1 [ %cmp.i156, %invoke.cont199 ], [ %cmp.i156377, %if.then.i.i158 ], [ %cmp.i156377, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i161 ] - br i1 %cmp.i156378, label %cleanup345, label %while.cond80, !llvm.loop !199 + %cmp.i156379 = phi i1 [ %cmp.i156, %invoke.cont199 ], [ %cmp.i156378, %if.then.i.i158 ], [ %cmp.i156378, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i161 ] + br i1 %cmp.i156379, label %cleanup345, label %while.cond80, !llvm.loop !199 while.end203: ; preds = %if.end17.i75.thread, %invoke.cont82.thread, %if.end17.i75 %96 = load i8, ptr %m_use_restarts, align 4 @@ -45963,7 +45948,7 @@ invoke.cont276: ; preds = %invoke.cont271, %.n to label %invoke.cont280 unwind label %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, !range !179 invoke.cont280: ; preds = %invoke.cont276 - switch i32 %call281, label %sw.epilog [ + switch i32 %call281, label %default.unreachable373 [ i32 1, label %sw.bb i32 -1, label %invoke.cont295 i32 0, label %sw.bb313 @@ -46091,11 +46076,11 @@ lpad325: ; preds = %invoke.cont324 br label %ehcleanup invoke.cont330thread-pre-split: ; preds = %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i282, %if.then.i.i279 - %.pr379 = load i32, ptr %m_pos.i.i.i.i, align 8 + %.pr380 = load i32, ptr %m_pos.i.i.i.i, align 8 br label %invoke.cont330 invoke.cont330: ; preds = %invoke.cont330thread-pre-split, %sw.bb313 - %151 = phi i32 [ %.pr379, %invoke.cont330thread-pre-split ], [ %145, %sw.bb313 ] + %151 = phi i32 [ %.pr380, %invoke.cont330thread-pre-split ], [ %145, %sw.bb313 ] %152 = load ptr, ptr %new_pobs, align 8 %idx.ext.i286 = zext i32 %151 to i64 %add.ptr.i287 = getelementptr inbounds ptr, ptr %152, i64 %idx.ext.i286 @@ -46125,7 +46110,10 @@ for.inc341: ; preds = %for.body337, %if.th %cmp336.not = icmp eq ptr %incdec.ptr342, %add.ptr.i287 br i1 %cmp336.not, label %sw.epilog, label %for.body337 -sw.epilog: ; preds = %for.inc341, %invoke.cont330, %invoke.cont309, %invoke.cont290, %invoke.cont280 +default.unreachable373: ; preds = %invoke.cont280 + unreachable + +sw.epilog: ; preds = %for.inc341, %invoke.cont330, %invoke.cont309, %invoke.cont290 %155 = load ptr, ptr %new_pobs, align 8 %156 = load i32, ptr %m_pos.i.i.i.i, align 8 %idx.ext.i.i = zext i32 %156 to i64 @@ -46171,11 +46159,11 @@ cleanup345: ; preds = %invoke.cont30, %_ZN br i1 %tobool.not.i.i300, label %_ZN3refIN6spacer3pobEED2Ev.exit306, label %if.then.i.i301 if.then.i.i301: ; preds = %invoke.cont290, %cleanup345 - %retval.3394 = phi i1 [ %retval.3, %cleanup345 ], [ true, %invoke.cont290 ] - %initial_size.2392 = phi i32 [ %initial_size.2, %cleanup345 ], [ %initial_size.1, %invoke.cont290 ] - %threshold.2390 = phi i32 [ %threshold.2, %cleanup345 ], [ %threshold.1, %invoke.cont290 ] - %luby_idx.2388 = phi i32 [ %luby_idx.2, %cleanup345 ], [ %luby_idx.1, %invoke.cont290 ] - %cond386 = phi i1 [ %cond, %cleanup345 ], [ false, %invoke.cont290 ] + %retval.3395 = phi i1 [ %retval.3, %cleanup345 ], [ true, %invoke.cont290 ] + %initial_size.2393 = phi i32 [ %initial_size.2, %cleanup345 ], [ %initial_size.1, %invoke.cont290 ] + %threshold.2391 = phi i32 [ %threshold.2, %cleanup345 ], [ %threshold.1, %invoke.cont290 ] + %luby_idx.2389 = phi i32 [ %luby_idx.2, %cleanup345 ], [ %luby_idx.1, %invoke.cont290 ] + %cond387 = phi i1 [ %cond, %cleanup345 ], [ false, %invoke.cont290 ] %160 = phi ptr [ %159, %cleanup345 ], [ %124, %invoke.cont290 ] %161 = load i32, ptr %160, align 8 %dec.i.i.i302 = add i32 %161, -1 @@ -46196,12 +46184,12 @@ terminate.lpad.i305: ; preds = %_Z7deallocIN6spacer unreachable _ZN3refIN6spacer3pobEED2Ev.exit306: ; preds = %cleanup345, %if.then.i.i301, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 - %retval.3395 = phi i1 [ %retval.3, %cleanup345 ], [ %retval.3394, %if.then.i.i301 ], [ %retval.3394, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] - %initial_size.2393 = phi i32 [ %initial_size.2, %cleanup345 ], [ %initial_size.2392, %if.then.i.i301 ], [ %initial_size.2392, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] - %threshold.2391 = phi i32 [ %threshold.2, %cleanup345 ], [ %threshold.2390, %if.then.i.i301 ], [ %threshold.2390, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] - %luby_idx.2389 = phi i32 [ %luby_idx.2, %cleanup345 ], [ %luby_idx.2388, %if.then.i.i301 ], [ %luby_idx.2388, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] - %cond387 = phi i1 [ %cond, %cleanup345 ], [ %cond386, %if.then.i.i301 ], [ %cond386, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] - br i1 %cond387, label %while.cond, label %cleanup350, !llvm.loop !201 + %retval.3396 = phi i1 [ %retval.3, %cleanup345 ], [ %retval.3395, %if.then.i.i301 ], [ %retval.3395, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] + %initial_size.2394 = phi i32 [ %initial_size.2, %cleanup345 ], [ %initial_size.2393, %if.then.i.i301 ], [ %initial_size.2393, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] + %threshold.2392 = phi i32 [ %threshold.2, %cleanup345 ], [ %threshold.2391, %if.then.i.i301 ], [ %threshold.2391, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] + %luby_idx.2390 = phi i32 [ %luby_idx.2, %cleanup345 ], [ %luby_idx.2389, %if.then.i.i301 ], [ %luby_idx.2389, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] + %cond388 = phi i1 [ %cond, %cleanup345 ], [ %cond387, %if.then.i.i301 ], [ %cond387, %_Z7deallocIN6spacer3pobEEvPT_.exit.i.i304 ] + br i1 %cond388, label %while.cond, label %cleanup350, !llvm.loop !201 ehcleanup: ; preds = %lpad16.loopexit, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad16.loopexit.split-lp.loopexit, %lpad325, %lpad92 %.pn = phi { ptr, i32 } [ %lpad.phi, %lpad92 ], [ %150, %lpad325 ], [ %lpad.loopexit344, %lpad16.loopexit ], [ %lpad.loopexit346, %lpad16.loopexit.split-lp.loopexit ], [ %lpad.loopexit349, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit351, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit354, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad16.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] @@ -46321,7 +46309,7 @@ if.then.i.i321: ; preds = %_ZN3refIN6spacer3po br label %_ZN12scoped_watchD2Ev.exit _ZN12scoped_watchD2Ev.exit: ; preds = %_ZN3refIN6spacer3pobEED2Ev.exit318, %if.then.i.i321 - ret i1 %retval.3395 + ret i1 %retval.3396 ehcleanup351: ; preds = %lpad9.loopexit, %lpad9.loopexit.split-lp, %ehcleanup %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %lpad.loopexit356, %lpad9.loopexit ], [ %lpad.loopexit.split-lp357, %lpad9.loopexit.split-lp ] @@ -50019,7 +50007,7 @@ invoke.cont645: ; preds = %for.body to label %for.inc unwind label %lpad626.loopexit for.inc: ; preds = %invoke.cont645 - %indvars.iv.next897 = add nuw i64 %indvars.iv896, 1 + %indvars.iv.next897 = add nuw nsw i64 %indvars.iv896, 1 %bf.load.i488 = load i64, ptr %m_is_subsume.i.i, align 8 %191 = and i64 %bf.load.i488, 562949953421312 %tobool.i489.not = icmp eq i64 %191, 0 @@ -58852,8 +58840,8 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5re br i1 %cmp.i28, label %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread, label %while.body.i.preheader _ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit - %bf.load.i86106 = load i32, ptr %.pre, align 8 - %bf.lshr.i87107 = lshr i32 %bf.load.i86106, 30 + %bf.load.i86107 = load i32, ptr %.pre, align 8 + %bf.lshr.i87108 = lshr i32 %bf.load.i86107, 30 br label %while.end while.body.i.preheader: ; preds = %if.end, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit @@ -58864,7 +58852,7 @@ while.body.i: ; preds = %while.body.i.prehea %c.0.i = phi ptr [ %4, %sw.bb.i ], [ %2, %while.body.i.preheader ] %bf.load.i.i29 = load i32, ptr %c.0.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i29, 30 - switch i32 %bf.lshr.i.i, label %while.body.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %while.body.i.unreachabledefault [ i32 0, label %sw.bb.i i32 1, label %sw.bb3.i i32 2, label %sw.bb5.i @@ -58893,7 +58881,10 @@ sw.bb7.i: ; preds = %while.body.i %10 = load i32, ptr %9, align 4 br label %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit -while.body.unreachabledefault.i: ; preds = %while.body.i +while.body.i.unreachabledefault: ; preds = %while.body.i + unreachable + +default.unreachable103: ; preds = %for.body unreachable _ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit: ; preds = %sw.bb3.i, %sw.bb5.i, %sw.bb7.i @@ -58951,7 +58942,7 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9pu while.end: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit %c.0.lcssa = phi ptr [ %2, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ null, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %20, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] - %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87107, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] + %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87108, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] %cmp8.not = icmp eq i32 %bf.lshr.i.lcssa, 3 br i1 %cmp8.not, label %if.end10, label %if.then9 @@ -58988,7 +58979,7 @@ for.body: ; preds = %for.body.lr.ph, %_Z %31 = load ptr, ptr %30, align 8 %bf.load = load i32, ptr %27, align 8 %bf.lshr = lshr i32 %bf.load, 30 - switch i32 %bf.lshr, label %for.body.unreachabledefault [ + switch i32 %bf.lshr, label %default.unreachable103 [ i32 0, label %sw.bb i32 1, label %sw.bb18 i32 2, label %sw.bb30 @@ -59097,9 +59088,6 @@ sw.bb38: ; preds = %for.body tail call void @exit(i32 noundef 114) #26 unreachable -for.body.unreachabledefault: ; preds = %for.body - unreachable - if.end.i52: ; preds = %sw.bb, %if.end25, %sw.bb30 %vs.1 = phi ptr [ %31, %sw.bb30 ], [ %vs.0, %if.end25 ], [ %31, %sw.bb ] %sz.0 = phi i32 [ %dec34, %sw.bb30 ], [ %inc29, %if.end25 ], [ %29, %sw.bb ] @@ -59428,7 +59416,7 @@ for.body: ; preds = %for.body.preheader, %26 = load ptr, ptr %arrayidx.i18, align 8 %bf.load.i19 = load i32, ptr %26, align 8 %bf.lshr.i20 = lshr i32 %bf.load.i19, 30 - switch i32 %bf.lshr.i20, label %for.body.unreachabledefault [ + switch i32 %bf.lshr.i20, label %default.unreachable [ i32 0, label %sw.bb i32 2, label %sw.bb8 i32 1, label %sw.bb9 @@ -59588,7 +59576,7 @@ sw.bb11: ; preds = %for.body tail call void @exit(i32 noundef 114) #26 unreachable -for.body.unreachabledefault: ; preds = %for.body +default.unreachable: ; preds = %for.body unreachable sw.epilog: ; preds = %if.then2.i.i.i35, %if.then.i.i.i31, %sw.bb8, %_ZN14parray_managerIN11ast_manager17expr_array_configEE10rpush_backERPP4exprRjRKS4_.exit, %_ZN14parray_managerIN11ast_manager17expr_array_configEE4rsetEPP4exprjRKS4_.exit @@ -59616,7 +59604,7 @@ while.body: ; preds = %if.end, %entry %bf.load.i = phi i32 [ %bf.load.i.pre, %entry ], [ %bf.set, %if.end ] %c.addr.0 = phi ptr [ %c, %entry ], [ %next.0, %if.end ] %bf.lshr.i = lshr i32 %bf.load.i, 30 - switch i32 %bf.lshr.i, label %while.body.unreachabledefault [ + switch i32 %bf.lshr.i, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.epilog @@ -59697,7 +59685,7 @@ _ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i: tail call void @_ZN22small_object_allocator10deallocateEmPv(ptr noundef nonnull align 8 dereferenceable(520) %12, i64 noundef %add.i, ptr noundef nonnull %arrayidx.i.i) br label %sw.epilog.thread -while.body.unreachabledefault: ; preds = %while.body +default.unreachable: ; preds = %while.body unreachable sw.epilog.thread: ; preds = %_ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEjPP4expr.exit, %_ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i @@ -61476,7 +61464,7 @@ land.lhs.true.i: ; preds = %while.end.i br i1 %cmp19.i, label %if.then20.i, label %if.end33.i if.then20.i: ; preds = %land.lhs.true.i - %add21.i = shl i64 %__holeIndex.addr.0.lcssa.i, 1 + %add21.i = shl nsw i64 %__holeIndex.addr.0.lcssa.i, 1 %sub24.i = or disjoint i64 %add21.i, 1 %add.ptr.i20.i = getelementptr inbounds ptr, ptr %__first.coerce, i64 %sub24.i %6 = load ptr, ptr %add.ptr.i20.i, align 8 @@ -63102,7 +63090,7 @@ land.lhs.true.i.i.i: ; preds = %while.end.i.i.i br i1 %cmp8.i.i.i, label %if.then9.i.i.i, label %if.end16.i.i.i if.then9.i.i.i: ; preds = %land.lhs.true.i.i.i - %add10.i.i.i = shl i64 %__secondChild.0.lcssa.i.i.i, 1 + %add10.i.i.i = shl nsw i64 %__secondChild.0.lcssa.i.i.i, 1 %sub12.i.i.i = or disjoint i64 %add10.i.i.i, 1 %add.ptr13.i.i.i = getelementptr inbounds ptr, ptr %__first, i64 %sub12.i.i.i %8 = load ptr, ptr %add.ptr13.i.i.i, align 8 @@ -63383,7 +63371,7 @@ while.end.i: ; preds = %while.body.i, %if.e br i1 %or.cond, label %if.then9.i, label %if.end16.i if.then9.i: ; preds = %while.end.i - %add10.i = shl i64 %__secondChild.0.lcssa.i, 1 + %add10.i = shl nsw i64 %__secondChild.0.lcssa.i, 1 %sub12.i = or disjoint i64 %add10.i, 1 %add.ptr13.i = getelementptr inbounds ptr, ptr %__first, i64 %sub12.i %7 = load ptr, ptr %add.ptr13.i, align 8 @@ -64259,7 +64247,7 @@ land.lhs.true: ; preds = %while.end br i1 %cmp8, label %if.then9, label %if.end16 if.then9: ; preds = %land.lhs.true - %add10 = shl i64 %__secondChild.0.lcssa, 1 + %add10 = shl nsw i64 %__secondChild.0.lcssa, 1 %sub12 = or disjoint i64 %add10, 1 %add.ptr13 = getelementptr inbounds ptr, ptr %__first, i64 %sub12 %10 = load ptr, ptr %add.ptr13, align 8 diff --git a/bench/z3/optimized/subpaving_mpf.cpp.ll b/bench/z3/optimized/subpaving_mpf.cpp.ll index 94077f4b0c3..9557ec8ed9f 100644 --- a/bench/z3/optimized/subpaving_mpf.cpp.ll +++ b/bench/z3/optimized/subpaving_mpf.cpp.ll @@ -1276,7 +1276,7 @@ while.body.i: ; preds = %if.end6, %sw.bb.i %bf.load.i.i35 = phi i32 [ %bf.load.i.i35.pre, %sw.bb.i ], [ %bf.load.i.i, %if.end6 ] %c.0.i = phi ptr [ %21, %sw.bb.i ], [ %4, %if.end6 ] %bf.lshr.i.i = lshr i32 %bf.load.i.i35, 30 - switch i32 %bf.lshr.i.i, label %while.body.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %while.body.i.unreachabledefault [ i32 0, label %sw.bb.i i32 1, label %sw.bb3.i i32 2, label %sw.bb5.i @@ -1306,7 +1306,10 @@ sw.bb7.i: ; preds = %while.body.i %27 = load i32, ptr %26, align 4 br label %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit -while.body.unreachabledefault.i: ; preds = %while.body.i +while.body.i.unreachabledefault: ; preds = %while.body.i + unreachable + +default.unreachable: ; preds = %while.body.i137 unreachable _ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit: ; preds = %sw.bb3.i, %sw.bb5.i, %sw.bb7.i @@ -1621,7 +1624,7 @@ while.body.i137: ; preds = %if.end16, %sw.bb.i1 %c.0.i138 = phi ptr [ %80, %sw.bb.i147 ], [ %78, %if.end16 ] %bf.load.i.i139 = load i32, ptr %c.0.i138, align 8 %bf.lshr.i.i140 = lshr i32 %bf.load.i.i139, 30 - switch i32 %bf.lshr.i.i140, label %while.body.unreachabledefault.i148 [ + switch i32 %bf.lshr.i.i140, label %default.unreachable [ i32 0, label %sw.bb.i147 i32 1, label %sw.bb3.i145 i32 2, label %sw.bb5.i143 @@ -1650,9 +1653,6 @@ sw.bb7.i141: ; preds = %while.body.i137 %86 = load i32, ptr %85, align 4 br label %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit149 -while.body.unreachabledefault.i148: ; preds = %while.body.i137 - unreachable - _ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit149: ; preds = %if.end16, %sw.bb3.i145, %sw.bb5.i143, %sw.bb7.i141 %retval.0.i142 = phi i32 [ %86, %sw.bb7.i141 ], [ %sub.i144, %sw.bb5.i143 ], [ %add.i146, %sw.bb3.i145 ], [ 0, %if.end16 ] store i32 %retval.0.i142, ptr %76, align 4 @@ -1847,7 +1847,7 @@ if.end.i: ; preds = %sw.epilog.i, %entry %c.017.i = load ptr, ptr %c.017.in.i, align 8 %bf.load.i.i = load i32, ptr %c.017.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i, 30 - switch i32 %bf.lshr.i.i, label %if.end.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %default.unreachable [ i32 0, label %sw.bb.i i32 1, label %sw.bb.i i32 2, label %sw.epilog.i @@ -1871,7 +1871,7 @@ sw.bb12.i: ; preds = %if.end.i %arrayidx14.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom13.i br label %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE3getERKNS5_3refEj.exit -if.end.unreachabledefault.i: ; preds = %if.end.i +default.unreachable: ; preds = %if.end.i unreachable sw.epilog.i: ; preds = %sw.bb.i, %if.end.i @@ -1908,7 +1908,7 @@ if.end.i: ; preds = %sw.epilog.i, %entry %c.017.i = load ptr, ptr %c.017.in.i, align 8 %bf.load.i.i = load i32, ptr %c.017.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i, 30 - switch i32 %bf.lshr.i.i, label %if.end.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %default.unreachable [ i32 0, label %sw.bb.i i32 1, label %sw.bb.i i32 2, label %sw.epilog.i @@ -1932,7 +1932,7 @@ sw.bb12.i: ; preds = %if.end.i %arrayidx14.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom13.i br label %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE3getERKNS5_3refEj.exit -if.end.unreachabledefault.i: ; preds = %if.end.i +default.unreachable: ; preds = %if.end.i unreachable sw.epilog.i: ; preds = %sw.bb.i, %if.end.i @@ -2009,7 +2009,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %ent %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -2033,7 +2033,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +if.end.i.i.unreachabledefault: ; preds = %if.end.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i2 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -2068,7 +2071,7 @@ if.end.i.i2: ; preds = %sw.epilog.i.i12, %l %c.017.i.i5 = load ptr, ptr %c.017.in.i.i3, align 8 %bf.load.i.i.i6 = load i32, ptr %c.017.i.i5, align 8 %bf.lshr.i.i.i7 = lshr i32 %bf.load.i.i.i6, 30 - switch i32 %bf.lshr.i.i.i7, label %if.end.unreachabledefault.i.i23 [ + switch i32 %bf.lshr.i.i.i7, label %default.unreachable [ i32 0, label %sw.bb.i.i19 i32 1, label %sw.bb.i.i19 i32 2, label %sw.epilog.i.i12 @@ -2092,9 +2095,6 @@ sw.bb12.i.i8: ; preds = %if.end.i.i2 %arrayidx14.i.i10 = getelementptr inbounds ptr, ptr %16, i64 %idxprom13.i.i9 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i23: ; preds = %if.end.i.i2 - unreachable - sw.epilog.i.i12: ; preds = %sw.bb.i.i19, %if.end.i.i2 %c.1.in.i.i13 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i5, i64 0, i32 3 %trail_sz.1.i.i14 = add nuw nsw i32 %trail_sz.016.i.i4, 1 @@ -2173,7 +2173,7 @@ while.body.i: ; preds = %if.end, %sw.bb.i %bf.load.i.i39 = phi i32 [ %bf.load.i.i39.pre, %sw.bb.i ], [ %bf.load.i.i, %if.end ] %c.0.i = phi ptr [ %6, %sw.bb.i ], [ %0, %if.end ] %bf.lshr.i.i = lshr i32 %bf.load.i.i39, 30 - switch i32 %bf.lshr.i.i, label %while.body.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %default.unreachable [ i32 0, label %sw.bb.i i32 1, label %sw.bb3.i i32 2, label %sw.bb5.i @@ -2203,7 +2203,7 @@ sw.bb7.i: ; preds = %while.body.i %12 = load i32, ptr %11, align 4 br label %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit -while.body.unreachabledefault.i: ; preds = %while.body.i +default.unreachable: ; preds = %while.body.i unreachable _ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit: ; preds = %sw.bb3.i, %sw.bb5.i, %sw.bb7.i @@ -2857,7 +2857,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %if. %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -2881,7 +2881,7 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +default.unreachable: ; preds = %if.end.i.i unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -2939,7 +2939,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %if. %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -2963,7 +2963,7 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +default.unreachable: ; preds = %if.end.i.i unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -3035,7 +3035,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %con %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -3059,7 +3059,7 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +default.unreachable: ; preds = %if.end.i.i unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -3118,7 +3118,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %con %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -3142,7 +3142,7 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +default.unreachable: ; preds = %if.end.i.i unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -3201,7 +3201,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %if. %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -3225,7 +3225,7 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +default.unreachable: ; preds = %if.end.i.i unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -3291,7 +3291,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %if. %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -3315,7 +3315,7 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +default.unreachable: ; preds = %if.end.i.i unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -4677,7 +4677,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %ent %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -4701,7 +4701,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +if.end.i.i.unreachabledefault: ; preds = %if.end.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i9 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -4732,7 +4735,7 @@ if.end.i.i9: ; preds = %sw.epilog.i.i19, %_ %c.017.i.i12 = load ptr, ptr %c.017.in.i.i10, align 8 %bf.load.i.i.i13 = load i32, ptr %c.017.i.i12, align 8 %bf.lshr.i.i.i14 = lshr i32 %bf.load.i.i.i13, 30 - switch i32 %bf.lshr.i.i.i14, label %if.end.unreachabledefault.i.i30 [ + switch i32 %bf.lshr.i.i.i14, label %default.unreachable [ i32 0, label %sw.bb.i.i26 i32 1, label %sw.bb.i.i26 i32 2, label %sw.epilog.i.i19 @@ -4756,9 +4759,6 @@ sw.bb12.i.i15: ; preds = %if.end.i.i9 %arrayidx14.i.i17 = getelementptr inbounds ptr, ptr %16, i64 %idxprom13.i.i16 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i30: ; preds = %if.end.i.i9 - unreachable - sw.epilog.i.i19: ; preds = %sw.bb.i.i26, %if.end.i.i9 %c.1.in.i.i20 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i12, i64 0, i32 3 %trail_sz.1.i.i21 = add nuw nsw i32 %trail_sz.016.i.i11, 1 @@ -7198,7 +7198,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %ent %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -7222,7 +7222,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom13.i.i br label %invoke.cont -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +if.end.i.i.unreachabledefault: ; preds = %if.end.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i85 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -7256,7 +7259,7 @@ if.end.i.i85: ; preds = %sw.epilog.i.i95, %i %c.017.i.i88 = load ptr, ptr %c.017.in.i.i86, align 8 %bf.load.i.i.i89 = load i32, ptr %c.017.i.i88, align 8 %bf.lshr.i.i.i90 = lshr i32 %bf.load.i.i.i89, 30 - switch i32 %bf.lshr.i.i.i90, label %if.end.unreachabledefault.i.i106 [ + switch i32 %bf.lshr.i.i.i90, label %default.unreachable [ i32 0, label %sw.bb.i.i102 i32 1, label %sw.bb.i.i102 i32 2, label %sw.epilog.i.i95 @@ -7280,9 +7283,6 @@ sw.bb12.i.i91: ; preds = %if.end.i.i85 %arrayidx14.i.i93 = getelementptr inbounds ptr, ptr %16, i64 %idxprom13.i.i92 br label %invoke.cont3 -if.end.unreachabledefault.i.i106: ; preds = %if.end.i.i85 - unreachable - sw.epilog.i.i95: ; preds = %sw.bb.i.i102, %if.end.i.i85 %c.1.in.i.i96 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i88, i64 0, i32 3 %trail_sz.1.i.i97 = add nuw nsw i32 %trail_sz.016.i.i87, 1 @@ -8072,7 +8072,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %ent %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -8096,7 +8096,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +if.end.i.i.unreachabledefault: ; preds = %if.end.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i7 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -8127,7 +8130,7 @@ if.end.i.i7: ; preds = %sw.epilog.i.i17, %_ %c.017.i.i10 = load ptr, ptr %c.017.in.i.i8, align 8 %bf.load.i.i.i11 = load i32, ptr %c.017.i.i10, align 8 %bf.lshr.i.i.i12 = lshr i32 %bf.load.i.i.i11, 30 - switch i32 %bf.lshr.i.i.i12, label %if.end.unreachabledefault.i.i28 [ + switch i32 %bf.lshr.i.i.i12, label %default.unreachable [ i32 0, label %sw.bb.i.i24 i32 1, label %sw.bb.i.i24 i32 2, label %sw.epilog.i.i17 @@ -8151,9 +8154,6 @@ sw.bb12.i.i13: ; preds = %if.end.i.i7 %arrayidx14.i.i15 = getelementptr inbounds ptr, ptr %16, i64 %idxprom13.i.i14 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i28: ; preds = %if.end.i.i7 - unreachable - sw.epilog.i.i17: ; preds = %sw.bb.i.i24, %if.end.i.i7 %c.1.in.i.i18 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i10, i64 0, i32 3 %trail_sz.1.i.i19 = add nuw nsw i32 %trail_sz.016.i.i9, 1 @@ -8222,7 +8222,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %ent %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -8246,7 +8246,7 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +default.unreachable: ; preds = %if.end.i.i unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -8317,7 +8317,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %if. %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -8341,7 +8341,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %8, i64 %idxprom13.i.i br label %return -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +if.end.i.i.unreachabledefault: ; preds = %if.end.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i7 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -8369,7 +8372,7 @@ if.end.i.i7: ; preds = %sw.epilog.i.i17, %i %c.017.i.i10 = load ptr, ptr %c.017.in.i.i8, align 8 %bf.load.i.i.i11 = load i32, ptr %c.017.i.i10, align 8 %bf.lshr.i.i.i12 = lshr i32 %bf.load.i.i.i11, 30 - switch i32 %bf.lshr.i.i.i12, label %if.end.unreachabledefault.i.i28 [ + switch i32 %bf.lshr.i.i.i12, label %default.unreachable [ i32 0, label %sw.bb.i.i24 i32 1, label %sw.bb.i.i24 i32 2, label %sw.epilog.i.i17 @@ -8393,9 +8396,6 @@ sw.bb12.i.i13: ; preds = %if.end.i.i7 %arrayidx14.i.i15 = getelementptr inbounds ptr, ptr %15, i64 %idxprom13.i.i14 br label %return -if.end.unreachabledefault.i.i28: ; preds = %if.end.i.i7 - unreachable - sw.epilog.i.i17: ; preds = %sw.bb.i.i24, %if.end.i.i7 %c.1.in.i.i18 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i10, i64 0, i32 3 %trail_sz.1.i.i19 = add nuw nsw i32 %trail_sz.016.i.i9, 1 @@ -8505,7 +8505,7 @@ entry: br i1 %cmp88.not, label %if.end24.thread, label %for.body.lr.ph if.end24.thread: ; preds = %entry - %call25113 = tail call noundef zeroext i1 @_ZNK9subpaving9context_tINS_10config_mpfEE4node12is_unboundedEj(ptr noundef nonnull align 8 dereferenceable(104) %n, i32 noundef %x) + %call25114 = tail call noundef zeroext i1 @_ZNK9subpaving9context_tINS_10config_mpfEE4node12is_unboundedEj(ptr noundef nonnull align 8 dereferenceable(104) %n, i32 noundef %x) br label %if.then27 for.body.lr.ph: ; preds = %entry @@ -8547,7 +8547,7 @@ if.end.i.i.i: ; preds = %sw.epilog.i.i.i, %i %c.017.i.i.i = load ptr, ptr %c.017.in.i.i.i, align 8 %bf.load.i.i.i.i = load i32, ptr %c.017.i.i.i, align 8 %bf.lshr.i.i.i.i = lshr i32 %bf.load.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i, label %if.end.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i i32 1, label %sw.bb.i.i.i i32 2, label %sw.epilog.i.i.i @@ -8571,7 +8571,7 @@ sw.bb12.i.i.i: ; preds = %if.end.i.i.i %arrayidx14.i.i.i = getelementptr inbounds ptr, ptr %13, i64 %idxprom13.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i -if.end.unreachabledefault.i.i.i: ; preds = %if.end.i.i.i +default.unreachable: ; preds = %if.end.i.i.i unreachable sw.epilog.i.i.i: ; preds = %sw.bb.i.i.i, %if.end.i.i.i @@ -8615,8 +8615,8 @@ for.inc: ; preds = %_ZNK9subpaving9cont for.end: ; preds = %for.inc %18 = and i8 %found_zero.2, 1 - %19 = icmp eq i8 %18, 0 - br i1 %19, label %if.end24, label %if.then15 + %tobool.not = icmp eq i8 %18, 0 + br i1 %tobool.not, label %if.end24, label %if.then15 if.then15: ; preds = %for.end %call16 = tail call noundef zeroext i1 @_ZNK9subpaving9context_tINS_10config_mpfEE7is_zeroEjPNS2_4nodeE(ptr noundef nonnull align 8 dereferenceable(1560) %this, i32 noundef %x, ptr noundef %n) @@ -8625,25 +8625,25 @@ if.then15: ; preds = %for.end if.then17: ; preds = %if.then15 %m_tmp1 = getelementptr inbounds %"class.subpaving::context_t", ptr %this, i64 0, i32 41 %m_c.i = getelementptr inbounds %"class.subpaving::context_t", ptr %this, i64 0, i32 1 - %20 = load ptr, ptr %m_c.i, align 8 - %21 = load ptr, ptr %20, align 8 - %m_ebits.i = getelementptr inbounds %class.f2n, ptr %20, i64 0, i32 2 - %22 = load i32, ptr %m_ebits.i, align 4 - %m_sbits.i = getelementptr inbounds %class.f2n, ptr %20, i64 0, i32 3 - %23 = load i32, ptr %m_sbits.i, align 8 - tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %21, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1, i32 noundef %22, i32 noundef %23, i32 noundef 0) - %24 = load ptr, ptr %20, align 8 + %19 = load ptr, ptr %m_c.i, align 8 + %20 = load ptr, ptr %19, align 8 + %m_ebits.i = getelementptr inbounds %class.f2n, ptr %19, i64 0, i32 2 + %21 = load i32, ptr %m_ebits.i, align 4 + %m_sbits.i = getelementptr inbounds %class.f2n, ptr %19, i64 0, i32 3 + %22 = load i32, ptr %m_sbits.i, align 8 + tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %20, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1, i32 noundef %21, i32 noundef %22, i32 noundef 0) + %23 = load ptr, ptr %19, align 8 %bf.load.i.i.i = load i32, ptr %m_tmp1, align 8 - %25 = and i32 %bf.load.i.i.i, 2147450880 - %cmp.i.i.i = icmp eq i32 %25, 0 + %24 = and i32 %bf.load.i.i.i, 2147450880 + %cmp.i.i.i = icmp eq i32 %24, 0 br i1 %cmp.i.i.i, label %_ZN3f2nI11mpf_managerE3setER3mpfi.exit, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %if.then17 - %call.i.i.i = tail call noundef zeroext i1 @_ZN11mpf_manager9is_normalERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %24, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1) + %call.i.i.i = tail call noundef zeroext i1 @_ZN11mpf_manager9is_normalERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %23, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1) br i1 %call.i.i.i, label %_ZN3f2nI11mpf_managerE3setER3mpfi.exit, label %_ZN11mpf_manager10is_regularERK3mpf.exit.i.i _ZN11mpf_manager10is_regularERK3mpf.exit.i.i: ; preds = %lor.lhs.false.i.i.i - %call2.i.i.i = tail call noundef zeroext i1 @_ZN11mpf_manager11is_denormalERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %24, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1) + %call2.i.i.i = tail call noundef zeroext i1 @_ZN11mpf_manager11is_denormalERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %23, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1) br i1 %call2.i.i.i, label %_ZN3f2nI11mpf_managerE3setER3mpfi.exit, label %if.then.i.i if.then.i.i: ; preds = %_ZN11mpf_manager10is_regularERK3mpf.exit.i.i @@ -8654,21 +8654,21 @@ if.then.i.i: ; preds = %_ZN11mpf_manager10i _ZN3f2nI11mpf_managerE3setER3mpfi.exit: ; preds = %if.then17, %lor.lhs.false.i.i.i, %_ZN11mpf_manager10is_regularERK3mpf.exit.i.i %shl.i = shl nuw nsw i64 %idxprom.i.i, 3 %or.i = or disjoint i64 %shl.i, 3 - %26 = inttoptr i64 %or.i to ptr + %25 = inttoptr i64 %or.i to ptr call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i) - store ptr %26, ptr %agg.tmp.i, align 8 + store ptr %25, ptr %agg.tmp.i, align 8 %call.i49 = call noundef ptr @_ZN9subpaving9context_tINS_10config_mpfEE8mk_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE(ptr noundef nonnull align 8 dereferenceable(1560) %this, i32 noundef %x, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1, i1 noundef zeroext true, i1 noundef zeroext false, ptr noundef %n, ptr noundef nonnull %agg.tmp.i) %m_queue.i = getelementptr inbounds %"class.subpaving::context_t", ptr %this, i64 0, i32 20 - %27 = load ptr, ptr %m_queue.i, align 8 - %cmp.i.i = icmp eq ptr %27, null + %26 = load ptr, ptr %m_queue.i, align 8 + %cmp.i.i = icmp eq ptr %26, null br i1 %cmp.i.i, label %if.then.i.i51, label %lor.lhs.false.i.i lor.lhs.false.i.i: ; preds = %_ZN3f2nI11mpf_managerE3setER3mpfi.exit - %arrayidx.i.i50 = getelementptr inbounds i32, ptr %27, i64 -1 - %28 = load i32, ptr %arrayidx.i.i50, align 4 - %arrayidx4.i.i = getelementptr inbounds i32, ptr %27, i64 -2 - %29 = load i32, ptr %arrayidx4.i.i, align 4 - %cmp5.i.i = icmp eq i32 %28, %29 + %arrayidx.i.i50 = getelementptr inbounds i32, ptr %26, i64 -1 + %27 = load i32, ptr %arrayidx.i.i50, align 4 + %arrayidx4.i.i = getelementptr inbounds i32, ptr %26, i64 -2 + %28 = load i32, ptr %arrayidx4.i.i, align 4 + %cmp5.i.i = icmp eq i32 %27, %28 br i1 %cmp5.i.i, label %if.then.i.i51, label %_ZN9subpaving9context_tINS_10config_mpfEE15propagate_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE.exit if.then.i.i51: ; preds = %lor.lhs.false.i.i, %_ZN3f2nI11mpf_managerE3setER3mpfi.exit @@ -8679,36 +8679,36 @@ if.then.i.i51: ; preds = %lor.lhs.false.i.i, br label %_ZN9subpaving9context_tINS_10config_mpfEE15propagate_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE.exit _ZN9subpaving9context_tINS_10config_mpfEE15propagate_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE.exit: ; preds = %lor.lhs.false.i.i, %if.then.i.i51 - %30 = phi i32 [ %.pre1.i.i, %if.then.i.i51 ], [ %28, %lor.lhs.false.i.i ] - %31 = phi ptr [ %.pre.i.i, %if.then.i.i51 ], [ %27, %lor.lhs.false.i.i ] - %idx.ext.i.i = zext i32 %30 to i64 - %add.ptr.i.i = getelementptr inbounds ptr, ptr %31, i64 %idx.ext.i.i + %29 = phi i32 [ %.pre1.i.i, %if.then.i.i51 ], [ %27, %lor.lhs.false.i.i ] + %30 = phi ptr [ %.pre.i.i, %if.then.i.i51 ], [ %26, %lor.lhs.false.i.i ] + %idx.ext.i.i = zext i32 %29 to i64 + %add.ptr.i.i = getelementptr inbounds ptr, ptr %30, i64 %idx.ext.i.i store ptr %call.i49, ptr %add.ptr.i.i, align 8 - %32 = load ptr, ptr %m_queue.i, align 8 - %arrayidx10.i.i = getelementptr inbounds i32, ptr %32, i64 -1 - %33 = load i32, ptr %arrayidx10.i.i, align 4 - %inc.i.i = add i32 %33, 1 + %31 = load ptr, ptr %m_queue.i, align 8 + %arrayidx10.i.i = getelementptr inbounds i32, ptr %31, i64 -1 + %32 = load i32, ptr %arrayidx10.i.i, align 4 + %inc.i.i = add i32 %32, 1 store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %agg.tmp.i) %m_conflict.i.i = getelementptr inbounds %"class.subpaving::context_t::node", ptr %n, i64 0, i32 3 - %34 = load i32, ptr %m_conflict.i.i, align 8 - %cmp.i.i52.not = icmp eq i32 %34, -1 + %33 = load i32, ptr %m_conflict.i.i, align 8 + %cmp.i.i52.not = icmp eq i32 %33, -1 br i1 %cmp.i.i52.not, label %if.end21, label %if.end62 if.end21: ; preds = %_ZN9subpaving9context_tINS_10config_mpfEE15propagate_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i56) - store ptr %26, ptr %agg.tmp.i56, align 8 + store ptr %25, ptr %agg.tmp.i56, align 8 %call.i57 = call noundef ptr @_ZN9subpaving9context_tINS_10config_mpfEE8mk_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE(ptr noundef nonnull align 8 dereferenceable(1560) %this, i32 noundef %x, ptr noundef nonnull align 8 dereferenceable(32) %m_tmp1, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef nonnull %n, ptr noundef nonnull %agg.tmp.i56) - %35 = load ptr, ptr %m_queue.i, align 8 - %cmp.i.i59 = icmp eq ptr %35, null + %34 = load ptr, ptr %m_queue.i, align 8 + %cmp.i.i59 = icmp eq ptr %34, null br i1 %cmp.i.i59, label %if.then.i.i68, label %lor.lhs.false.i.i60 lor.lhs.false.i.i60: ; preds = %if.end21 - %arrayidx.i.i61 = getelementptr inbounds i32, ptr %35, i64 -1 - %36 = load i32, ptr %arrayidx.i.i61, align 4 - %arrayidx4.i.i62 = getelementptr inbounds i32, ptr %35, i64 -2 - %37 = load i32, ptr %arrayidx4.i.i62, align 4 - %cmp5.i.i63 = icmp eq i32 %36, %37 + %arrayidx.i.i61 = getelementptr inbounds i32, ptr %34, i64 -1 + %35 = load i32, ptr %arrayidx.i.i61, align 4 + %arrayidx4.i.i62 = getelementptr inbounds i32, ptr %34, i64 -2 + %36 = load i32, ptr %arrayidx4.i.i62, align 4 + %cmp5.i.i63 = icmp eq i32 %35, %36 br i1 %cmp5.i.i63, label %if.then.i.i68, label %_ZN9subpaving9context_tINS_10config_mpfEE15propagate_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE.exit72 if.then.i.i68: ; preds = %lor.lhs.false.i.i60, %if.end21 @@ -8719,36 +8719,36 @@ if.then.i.i68: ; preds = %lor.lhs.false.i.i60 br label %_ZN9subpaving9context_tINS_10config_mpfEE15propagate_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE.exit72 _ZN9subpaving9context_tINS_10config_mpfEE15propagate_boundEjRK3mpfbbPNS2_4nodeENS2_13justificationE.exit72: ; preds = %lor.lhs.false.i.i60, %if.then.i.i68 - %38 = phi i32 [ %.pre1.i.i71, %if.then.i.i68 ], [ %36, %lor.lhs.false.i.i60 ] - %39 = phi ptr [ %.pre.i.i69, %if.then.i.i68 ], [ %35, %lor.lhs.false.i.i60 ] - %idx.ext.i.i64 = zext i32 %38 to i64 - %add.ptr.i.i65 = getelementptr inbounds ptr, ptr %39, i64 %idx.ext.i.i64 + %37 = phi i32 [ %.pre1.i.i71, %if.then.i.i68 ], [ %35, %lor.lhs.false.i.i60 ] + %38 = phi ptr [ %.pre.i.i69, %if.then.i.i68 ], [ %34, %lor.lhs.false.i.i60 ] + %idx.ext.i.i64 = zext i32 %37 to i64 + %add.ptr.i.i65 = getelementptr inbounds ptr, ptr %38, i64 %idx.ext.i.i64 store ptr %call.i57, ptr %add.ptr.i.i65, align 8 - %40 = load ptr, ptr %m_queue.i, align 8 - %arrayidx10.i.i66 = getelementptr inbounds i32, ptr %40, i64 -1 - %41 = load i32, ptr %arrayidx10.i.i66, align 4 - %inc.i.i67 = add i32 %41, 1 + %39 = load ptr, ptr %m_queue.i, align 8 + %arrayidx10.i.i66 = getelementptr inbounds i32, ptr %39, i64 -1 + %40 = load i32, ptr %arrayidx10.i.i66, align 4 + %inc.i.i67 = add i32 %40, 1 store i32 %inc.i.i67, ptr %arrayidx10.i.i66, align 4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %agg.tmp.i56) br label %if.end62 if.end24: ; preds = %for.end - %42 = and i8 %found_unbounded.1, 1 - %43 = icmp eq i8 %42, 0 %call25 = tail call noundef zeroext i1 @_ZNK9subpaving9context_tINS_10config_mpfEE4node12is_unboundedEj(ptr noundef nonnull align 8 dereferenceable(104) %n, i32 noundef %x) - br i1 %43, label %if.then27, label %if.end28 + %41 = and i8 %found_unbounded.1, 1 + %tobool26.not = icmp eq i8 %41, 0 + br i1 %tobool26.not, label %if.then27, label %if.end28 if.then27: ; preds = %if.end24.thread, %if.end24 - %call25115 = phi i1 [ %call25113, %if.end24.thread ], [ %call25, %if.end24 ] + %call25117 = phi i1 [ %call25114, %if.end24.thread ], [ %call25, %if.end24 ] tail call void @_ZN9subpaving9context_tINS_10config_mpfEE25propagate_monomial_upwardEjPNS2_4nodeE(ptr noundef nonnull align 8 dereferenceable(1560) %this, i32 noundef %x, ptr noundef nonnull %n) br label %if.end28 if.end28: ; preds = %if.then27, %if.end24 - %call25114 = phi i1 [ %call25115, %if.then27 ], [ %call25, %if.end24 ] + %call25116 = phi i1 [ %call25117, %if.then27 ], [ %call25, %if.end24 ] %m_conflict.i.i73 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %n, i64 0, i32 3 - %44 = load i32, ptr %m_conflict.i.i73, align 8 - %cmp.i.i74 = icmp ne i32 %44, -1 - %brmerge = or i1 %call25114, %cmp.i.i74 + %42 = load i32, ptr %m_conflict.i.i73, align 8 + %cmp.i.i74 = icmp ne i32 %42, -1 + %brmerge = or i1 %call25116, %cmp.i.i74 br i1 %brmerge, label %if.end62, label %if.then33 if.then33: ; preds = %if.end28 @@ -8766,20 +8766,20 @@ for.body37: ; preds = %for.body37.lr.ph, % %indvars.iv103 = phi i64 [ 0, %for.body37.lr.ph ], [ %indvars.iv.next104, %for.inc46 ] %bad_pos.094 = phi i32 [ -1, %for.body37.lr.ph ], [ %bad_pos.1, %for.inc46 ] %arrayidx.i.i76 = getelementptr inbounds %"class.subpaving::context_t::monomial", ptr %1, i64 0, i32 2, i64 %indvars.iv103 - %45 = load i32, ptr %arrayidx.i.i76, align 4 + %43 = load i32, ptr %arrayidx.i.i76, align 4 store i8 1, ptr %m_i_tmp1, align 8 store ptr %n, ptr %m_node.i, align 8 - store i32 %45, ptr %m_x.i, align 8 + store i32 %43, ptr %m_x.i, align 8 %call40 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13contains_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %m_im.i, ptr noundef nonnull align 8 dereferenceable(98) %m_i_tmp1) br i1 %call40, label %if.then41, label %for.inc46 if.then41: ; preds = %for.body37 %cmp42.not = icmp eq i32 %bad_pos.094, -1 - %46 = trunc i64 %indvars.iv103 to i32 + %44 = trunc i64 %indvars.iv103 to i32 br i1 %cmp42.not, label %for.inc46, label %if.end62 for.inc46: ; preds = %if.then41, %for.body37 - %bad_pos.1 = phi i32 [ %bad_pos.094, %for.body37 ], [ %46, %if.then41 ] + %bad_pos.1 = phi i32 [ %bad_pos.094, %for.body37 ], [ %44, %if.then41 ] %indvars.iv.next104 = add nuw nsw i64 %indvars.iv103, 1 %exitcond107.not = icmp eq i64 %indvars.iv.next104, %wide.trip.count106 br i1 %exitcond107.not, label %for.end48, label %for.body37, !llvm.loop !59 @@ -8793,8 +8793,8 @@ for.cond52.preheader: ; preds = %for.end48 for.body54: ; preds = %for.cond52.preheader, %if.end57 %i51.098 = phi i32 [ %inc59, %if.end57 ], [ 0, %for.cond52.preheader ] - %47 = load i32, ptr %m_conflict.i.i73, align 8 - %cmp.i.i78.not = icmp eq i32 %47, -1 + %45 = load i32, ptr %m_conflict.i.i73, align 8 + %cmp.i.i78.not = icmp eq i32 %45, -1 br i1 %cmp.i.i78.not, label %if.end57, label %if.end62 if.end57: ; preds = %for.body54 @@ -9033,7 +9033,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -9057,7 +9057,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i10 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -9124,7 +9127,7 @@ if.end.i.i.i.i10: ; preds = %sw.epilog.i.i.i.i26 %c.017.i.i.i.i13 = load ptr, ptr %c.017.in.i.i.i.i11, align 8 %bf.load.i.i.i.i.i14 = load i32, ptr %c.017.i.i.i.i13, align 8 %bf.lshr.i.i.i.i.i15 = lshr i32 %bf.load.i.i.i.i.i14, 30 - switch i32 %bf.lshr.i.i.i.i.i15, label %if.end.unreachabledefault.i.i.i.i37 [ + switch i32 %bf.lshr.i.i.i.i.i15, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i33 i32 1, label %sw.bb.i.i.i.i33 i32 2, label %sw.epilog.i.i.i.i26 @@ -9148,9 +9151,6 @@ sw.bb12.i.i.i.i16: ; preds = %if.end.i.i.i.i10 %arrayidx14.i.i.i.i18 = getelementptr inbounds ptr, ptr %27, i64 %idxprom13.i.i.i.i17 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i37: ; preds = %if.end.i.i.i.i10 - unreachable - sw.epilog.i.i.i.i26: ; preds = %sw.bb.i.i.i.i33, %if.end.i.i.i.i10 %c.1.in.i.i.i.i27 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i13, i64 0, i32 3 %trail_sz.1.i.i.i.i28 = add nuw nsw i32 %trail_sz.016.i.i.i.i12, 1 @@ -9495,7 +9495,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -9519,7 +9519,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %13, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i706, %if.end.i.i.i.i744, %if.end.i.i.i.i781, %if.end.i.i.i.i821, %if.end.i.i.i.i862, %if.end.i.i.i.i899, %if.end.i.i.i.i440, %if.end.i.i.i.i473, %if.end.i.i.i.i508, %if.end.i.i.i.i553, %if.end.i.i.i.i618, %if.end.i.i.i.i662, %if.end.i.i.i.i221, %if.end.i.i.i.i259, %if.end.i.i.i.i297, %if.end.i.i.i.i332, %if.end.i.i.i.i371, %if.end.i.i.i.i88, %if.end.i.i.i.i118, %if.end.i.i.i.i149, %if.end.i.i.i.i183 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -9575,7 +9578,7 @@ if.end.i.i.i.i88: ; preds = %sw.epilog.i.i.i.i10 %c.017.i.i.i.i91 = load ptr, ptr %c.017.in.i.i.i.i89, align 8 %bf.load.i.i.i.i.i92 = load i32, ptr %c.017.i.i.i.i91, align 8 %bf.lshr.i.i.i.i.i93 = lshr i32 %bf.load.i.i.i.i.i92, 30 - switch i32 %bf.lshr.i.i.i.i.i93, label %if.end.unreachabledefault.i.i.i.i112 [ + switch i32 %bf.lshr.i.i.i.i.i93, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i108 i32 1, label %sw.bb.i.i.i.i108 i32 2, label %sw.epilog.i.i.i.i101 @@ -9599,9 +9602,6 @@ sw.bb12.i.i.i.i94: ; preds = %if.end.i.i.i.i88 %arrayidx14.i.i.i.i96 = getelementptr inbounds ptr, ptr %26, i64 %idxprom13.i.i.i.i95 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i97 -if.end.unreachabledefault.i.i.i.i112: ; preds = %if.end.i.i.i.i88 - unreachable - sw.epilog.i.i.i.i101: ; preds = %sw.bb.i.i.i.i108, %if.end.i.i.i.i88 %c.1.in.i.i.i.i102 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i91, i64 0, i32 3 %trail_sz.1.i.i.i.i103 = add nuw nsw i32 %trail_sz.016.i.i.i.i90, 1 @@ -9662,7 +9662,7 @@ if.end.i.i.i.i118: ; preds = %sw.epilog.i.i.i.i12 %c.017.i.i.i.i121 = load ptr, ptr %c.017.in.i.i.i.i119, align 8 %bf.load.i.i.i.i.i122 = load i32, ptr %c.017.i.i.i.i121, align 8 %bf.lshr.i.i.i.i.i123 = lshr i32 %bf.load.i.i.i.i.i122, 30 - switch i32 %bf.lshr.i.i.i.i.i123, label %if.end.unreachabledefault.i.i.i.i140 [ + switch i32 %bf.lshr.i.i.i.i.i123, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i136 i32 1, label %sw.bb.i.i.i.i136 i32 2, label %sw.epilog.i.i.i.i129 @@ -9686,9 +9686,6 @@ sw.bb12.i.i.i.i124: ; preds = %if.end.i.i.i.i118 %arrayidx14.i.i.i.i126 = getelementptr inbounds ptr, ptr %42, i64 %idxprom13.i.i.i.i125 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i140: ; preds = %if.end.i.i.i.i118 - unreachable - sw.epilog.i.i.i.i129: ; preds = %sw.bb.i.i.i.i136, %if.end.i.i.i.i118 %c.1.in.i.i.i.i130 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i121, i64 0, i32 3 %trail_sz.1.i.i.i.i131 = add nuw nsw i32 %trail_sz.016.i.i.i.i120, 1 @@ -9757,7 +9754,7 @@ if.end.i.i.i.i149: ; preds = %sw.epilog.i.i.i.i16 %c.017.i.i.i.i152 = load ptr, ptr %c.017.in.i.i.i.i150, align 8 %bf.load.i.i.i.i.i153 = load i32, ptr %c.017.i.i.i.i152, align 8 %bf.lshr.i.i.i.i.i154 = lshr i32 %bf.load.i.i.i.i.i153, 30 - switch i32 %bf.lshr.i.i.i.i.i154, label %if.end.unreachabledefault.i.i.i.i174 [ + switch i32 %bf.lshr.i.i.i.i.i154, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i170 i32 1, label %sw.bb.i.i.i.i170 i32 2, label %sw.epilog.i.i.i.i163 @@ -9781,9 +9778,6 @@ sw.bb12.i.i.i.i155: ; preds = %if.end.i.i.i.i149 %arrayidx14.i.i.i.i157 = getelementptr inbounds ptr, ptr %63, i64 %idxprom13.i.i.i.i156 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i158 -if.end.unreachabledefault.i.i.i.i174: ; preds = %if.end.i.i.i.i149 - unreachable - sw.epilog.i.i.i.i163: ; preds = %sw.bb.i.i.i.i170, %if.end.i.i.i.i149 %c.1.in.i.i.i.i164 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i152, i64 0, i32 3 %trail_sz.1.i.i.i.i165 = add nuw nsw i32 %trail_sz.016.i.i.i.i151, 1 @@ -9837,7 +9831,7 @@ if.end.i.i.i.i183: ; preds = %sw.epilog.i.i.i.i20 %c.017.i.i.i.i186 = load ptr, ptr %c.017.in.i.i.i.i184, align 8 %bf.load.i.i.i.i.i187 = load i32, ptr %c.017.i.i.i.i186, align 8 %bf.lshr.i.i.i.i.i188 = lshr i32 %bf.load.i.i.i.i.i187, 30 - switch i32 %bf.lshr.i.i.i.i.i188, label %if.end.unreachabledefault.i.i.i.i211 [ + switch i32 %bf.lshr.i.i.i.i.i188, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i207 i32 1, label %sw.bb.i.i.i.i207 i32 2, label %sw.epilog.i.i.i.i200 @@ -9861,9 +9855,6 @@ sw.bb12.i.i.i.i189: ; preds = %if.end.i.i.i.i183 %arrayidx14.i.i.i.i191 = getelementptr inbounds ptr, ptr %76, i64 %idxprom13.i.i.i.i190 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i192 -if.end.unreachabledefault.i.i.i.i211: ; preds = %if.end.i.i.i.i183 - unreachable - sw.epilog.i.i.i.i200: ; preds = %sw.bb.i.i.i.i207, %if.end.i.i.i.i183 %c.1.in.i.i.i.i201 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i186, i64 0, i32 3 %trail_sz.1.i.i.i.i202 = add nuw nsw i32 %trail_sz.016.i.i.i.i185, 1 @@ -9931,7 +9922,7 @@ if.end.i.i.i.i221: ; preds = %sw.epilog.i.i.i.i23 %c.017.i.i.i.i224 = load ptr, ptr %c.017.in.i.i.i.i222, align 8 %bf.load.i.i.i.i.i225 = load i32, ptr %c.017.i.i.i.i224, align 8 %bf.lshr.i.i.i.i.i226 = lshr i32 %bf.load.i.i.i.i.i225, 30 - switch i32 %bf.lshr.i.i.i.i.i226, label %if.end.unreachabledefault.i.i.i.i249 [ + switch i32 %bf.lshr.i.i.i.i.i226, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i245 i32 1, label %sw.bb.i.i.i.i245 i32 2, label %sw.epilog.i.i.i.i238 @@ -9955,9 +9946,6 @@ sw.bb12.i.i.i.i227: ; preds = %if.end.i.i.i.i221 %arrayidx14.i.i.i.i229 = getelementptr inbounds ptr, ptr %92, i64 %idxprom13.i.i.i.i228 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i230 -if.end.unreachabledefault.i.i.i.i249: ; preds = %if.end.i.i.i.i221 - unreachable - sw.epilog.i.i.i.i238: ; preds = %sw.bb.i.i.i.i245, %if.end.i.i.i.i221 %c.1.in.i.i.i.i239 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i224, i64 0, i32 3 %trail_sz.1.i.i.i.i240 = add nuw nsw i32 %trail_sz.016.i.i.i.i223, 1 @@ -10015,7 +10003,7 @@ if.end.i.i.i.i259: ; preds = %sw.epilog.i.i.i.i27 %c.017.i.i.i.i262 = load ptr, ptr %c.017.in.i.i.i.i260, align 8 %bf.load.i.i.i.i.i263 = load i32, ptr %c.017.i.i.i.i262, align 8 %bf.lshr.i.i.i.i.i264 = lshr i32 %bf.load.i.i.i.i.i263, 30 - switch i32 %bf.lshr.i.i.i.i.i264, label %if.end.unreachabledefault.i.i.i.i287 [ + switch i32 %bf.lshr.i.i.i.i.i264, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i283 i32 1, label %sw.bb.i.i.i.i283 i32 2, label %sw.epilog.i.i.i.i276 @@ -10039,9 +10027,6 @@ sw.bb12.i.i.i.i265: ; preds = %if.end.i.i.i.i259 %arrayidx14.i.i.i.i267 = getelementptr inbounds ptr, ptr %108, i64 %idxprom13.i.i.i.i266 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i268 -if.end.unreachabledefault.i.i.i.i287: ; preds = %if.end.i.i.i.i259 - unreachable - sw.epilog.i.i.i.i276: ; preds = %sw.bb.i.i.i.i283, %if.end.i.i.i.i259 %c.1.in.i.i.i.i277 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i262, i64 0, i32 3 %trail_sz.1.i.i.i.i278 = add nuw nsw i32 %trail_sz.016.i.i.i.i261, 1 @@ -10100,7 +10085,7 @@ if.end.i.i.i.i297: ; preds = %sw.epilog.i.i.i.i31 %c.017.i.i.i.i300 = load ptr, ptr %c.017.in.i.i.i.i298, align 8 %bf.load.i.i.i.i.i301 = load i32, ptr %c.017.i.i.i.i300, align 8 %bf.lshr.i.i.i.i.i302 = lshr i32 %bf.load.i.i.i.i.i301, 30 - switch i32 %bf.lshr.i.i.i.i.i302, label %if.end.unreachabledefault.i.i.i.i321 [ + switch i32 %bf.lshr.i.i.i.i.i302, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i317 i32 1, label %sw.bb.i.i.i.i317 i32 2, label %sw.epilog.i.i.i.i310 @@ -10124,9 +10109,6 @@ sw.bb12.i.i.i.i303: ; preds = %if.end.i.i.i.i297 %arrayidx14.i.i.i.i305 = getelementptr inbounds ptr, ptr %124, i64 %idxprom13.i.i.i.i304 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i306 -if.end.unreachabledefault.i.i.i.i321: ; preds = %if.end.i.i.i.i297 - unreachable - sw.epilog.i.i.i.i310: ; preds = %sw.bb.i.i.i.i317, %if.end.i.i.i.i297 %c.1.in.i.i.i.i311 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i300, i64 0, i32 3 %trail_sz.1.i.i.i.i312 = add nuw nsw i32 %trail_sz.016.i.i.i.i299, 1 @@ -10181,7 +10163,7 @@ if.end.i.i.i.i332: ; preds = %sw.epilog.i.i.i.i34 %c.017.i.i.i.i335 = load ptr, ptr %c.017.in.i.i.i.i333, align 8 %bf.load.i.i.i.i.i336 = load i32, ptr %c.017.i.i.i.i335, align 8 %bf.lshr.i.i.i.i.i337 = lshr i32 %bf.load.i.i.i.i.i336, 30 - switch i32 %bf.lshr.i.i.i.i.i337, label %if.end.unreachabledefault.i.i.i.i358 [ + switch i32 %bf.lshr.i.i.i.i.i337, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i354 i32 1, label %sw.bb.i.i.i.i354 i32 2, label %sw.epilog.i.i.i.i347 @@ -10205,9 +10187,6 @@ sw.bb12.i.i.i.i338: ; preds = %if.end.i.i.i.i332 %arrayidx14.i.i.i.i340 = getelementptr inbounds ptr, ptr %140, i64 %idxprom13.i.i.i.i339 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i341 -if.end.unreachabledefault.i.i.i.i358: ; preds = %if.end.i.i.i.i332 - unreachable - sw.epilog.i.i.i.i347: ; preds = %sw.bb.i.i.i.i354, %if.end.i.i.i.i332 %c.1.in.i.i.i.i348 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i335, i64 0, i32 3 %trail_sz.1.i.i.i.i349 = add nuw nsw i32 %trail_sz.016.i.i.i.i334, 1 @@ -10281,7 +10260,7 @@ if.end.i.i.i.i371: ; preds = %sw.epilog.i.i.i.i38 %c.017.i.i.i.i374 = load ptr, ptr %c.017.in.i.i.i.i372, align 8 %bf.load.i.i.i.i.i375 = load i32, ptr %c.017.i.i.i.i374, align 8 %bf.lshr.i.i.i.i.i376 = lshr i32 %bf.load.i.i.i.i.i375, 30 - switch i32 %bf.lshr.i.i.i.i.i376, label %if.end.unreachabledefault.i.i.i.i397 [ + switch i32 %bf.lshr.i.i.i.i.i376, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i393 i32 1, label %sw.bb.i.i.i.i393 i32 2, label %sw.epilog.i.i.i.i386 @@ -10305,9 +10284,6 @@ sw.bb12.i.i.i.i377: ; preds = %if.end.i.i.i.i371 %arrayidx14.i.i.i.i379 = getelementptr inbounds ptr, ptr %157, i64 %idxprom13.i.i.i.i378 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i380 -if.end.unreachabledefault.i.i.i.i397: ; preds = %if.end.i.i.i.i371 - unreachable - sw.epilog.i.i.i.i386: ; preds = %sw.bb.i.i.i.i393, %if.end.i.i.i.i371 %c.1.in.i.i.i.i387 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i374, i64 0, i32 3 %trail_sz.1.i.i.i.i388 = add nuw nsw i32 %trail_sz.016.i.i.i.i373, 1 @@ -10417,7 +10393,7 @@ if.end.i.i.i.i440: ; preds = %sw.epilog.i.i.i.i45 %c.017.i.i.i.i443 = load ptr, ptr %c.017.in.i.i.i.i441, align 8 %bf.load.i.i.i.i.i444 = load i32, ptr %c.017.i.i.i.i443, align 8 %bf.lshr.i.i.i.i.i445 = lshr i32 %bf.load.i.i.i.i.i444, 30 - switch i32 %bf.lshr.i.i.i.i.i445, label %if.end.unreachabledefault.i.i.i.i464 [ + switch i32 %bf.lshr.i.i.i.i.i445, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i460 i32 1, label %sw.bb.i.i.i.i460 i32 2, label %sw.epilog.i.i.i.i453 @@ -10441,9 +10417,6 @@ sw.bb12.i.i.i.i446: ; preds = %if.end.i.i.i.i440 %arrayidx14.i.i.i.i448 = getelementptr inbounds ptr, ptr %178, i64 %idxprom13.i.i.i.i447 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i449 -if.end.unreachabledefault.i.i.i.i464: ; preds = %if.end.i.i.i.i440 - unreachable - sw.epilog.i.i.i.i453: ; preds = %sw.bb.i.i.i.i460, %if.end.i.i.i.i440 %c.1.in.i.i.i.i454 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i443, i64 0, i32 3 %trail_sz.1.i.i.i.i455 = add nuw nsw i32 %trail_sz.016.i.i.i.i442, 1 @@ -10496,7 +10469,7 @@ if.end.i.i.i.i473: ; preds = %sw.epilog.i.i.i.i48 %c.017.i.i.i.i476 = load ptr, ptr %c.017.in.i.i.i.i474, align 8 %bf.load.i.i.i.i.i477 = load i32, ptr %c.017.i.i.i.i476, align 8 %bf.lshr.i.i.i.i.i478 = lshr i32 %bf.load.i.i.i.i.i477, 30 - switch i32 %bf.lshr.i.i.i.i.i478, label %if.end.unreachabledefault.i.i.i.i498 [ + switch i32 %bf.lshr.i.i.i.i.i478, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i494 i32 1, label %sw.bb.i.i.i.i494 i32 2, label %sw.epilog.i.i.i.i487 @@ -10520,9 +10493,6 @@ sw.bb12.i.i.i.i479: ; preds = %if.end.i.i.i.i473 %arrayidx14.i.i.i.i481 = getelementptr inbounds ptr, ptr %193, i64 %idxprom13.i.i.i.i480 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i482 -if.end.unreachabledefault.i.i.i.i498: ; preds = %if.end.i.i.i.i473 - unreachable - sw.epilog.i.i.i.i487: ; preds = %sw.bb.i.i.i.i494, %if.end.i.i.i.i473 %c.1.in.i.i.i.i488 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i476, i64 0, i32 3 %trail_sz.1.i.i.i.i489 = add nuw nsw i32 %trail_sz.016.i.i.i.i475, 1 @@ -10578,7 +10548,7 @@ if.end.i.i.i.i508: ; preds = %sw.epilog.i.i.i.i52 %c.017.i.i.i.i511 = load ptr, ptr %c.017.in.i.i.i.i509, align 8 %bf.load.i.i.i.i.i512 = load i32, ptr %c.017.i.i.i.i511, align 8 %bf.lshr.i.i.i.i.i513 = lshr i32 %bf.load.i.i.i.i.i512, 30 - switch i32 %bf.lshr.i.i.i.i.i513, label %if.end.unreachabledefault.i.i.i.i534 [ + switch i32 %bf.lshr.i.i.i.i.i513, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i530 i32 1, label %sw.bb.i.i.i.i530 i32 2, label %sw.epilog.i.i.i.i523 @@ -10602,9 +10572,6 @@ sw.bb12.i.i.i.i514: ; preds = %if.end.i.i.i.i508 %arrayidx14.i.i.i.i516 = getelementptr inbounds ptr, ptr %209, i64 %idxprom13.i.i.i.i515 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i517 -if.end.unreachabledefault.i.i.i.i534: ; preds = %if.end.i.i.i.i508 - unreachable - sw.epilog.i.i.i.i523: ; preds = %sw.bb.i.i.i.i530, %if.end.i.i.i.i508 %c.1.in.i.i.i.i524 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i511, i64 0, i32 3 %trail_sz.1.i.i.i.i525 = add nuw nsw i32 %trail_sz.016.i.i.i.i510, 1 @@ -10677,7 +10644,7 @@ if.end.i.i.i.i553: ; preds = %sw.epilog.i.i.i.i56 %c.017.i.i.i.i556 = load ptr, ptr %c.017.in.i.i.i.i554, align 8 %bf.load.i.i.i.i.i557 = load i32, ptr %c.017.i.i.i.i556, align 8 %bf.lshr.i.i.i.i.i558 = lshr i32 %bf.load.i.i.i.i.i557, 30 - switch i32 %bf.lshr.i.i.i.i.i558, label %if.end.unreachabledefault.i.i.i.i579 [ + switch i32 %bf.lshr.i.i.i.i.i558, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i575 i32 1, label %sw.bb.i.i.i.i575 i32 2, label %sw.epilog.i.i.i.i568 @@ -10701,9 +10668,6 @@ sw.bb12.i.i.i.i559: ; preds = %if.end.i.i.i.i553 %arrayidx14.i.i.i.i561 = getelementptr inbounds ptr, ptr %226, i64 %idxprom13.i.i.i.i560 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i562 -if.end.unreachabledefault.i.i.i.i579: ; preds = %if.end.i.i.i.i553 - unreachable - sw.epilog.i.i.i.i568: ; preds = %sw.bb.i.i.i.i575, %if.end.i.i.i.i553 %c.1.in.i.i.i.i569 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i556, i64 0, i32 3 %trail_sz.1.i.i.i.i570 = add nuw nsw i32 %trail_sz.016.i.i.i.i555, 1 @@ -10822,7 +10786,7 @@ if.end.i.i.i.i618: ; preds = %sw.epilog.i.i.i.i63 %c.017.i.i.i.i621 = load ptr, ptr %c.017.in.i.i.i.i619, align 8 %bf.load.i.i.i.i.i622 = load i32, ptr %c.017.i.i.i.i621, align 8 %bf.lshr.i.i.i.i.i623 = lshr i32 %bf.load.i.i.i.i.i622, 30 - switch i32 %bf.lshr.i.i.i.i.i623, label %if.end.unreachabledefault.i.i.i.i646 [ + switch i32 %bf.lshr.i.i.i.i.i623, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i642 i32 1, label %sw.bb.i.i.i.i642 i32 2, label %sw.epilog.i.i.i.i635 @@ -10846,9 +10810,6 @@ sw.bb12.i.i.i.i624: ; preds = %if.end.i.i.i.i618 %arrayidx14.i.i.i.i626 = getelementptr inbounds ptr, ptr %250, i64 %idxprom13.i.i.i.i625 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i627 -if.end.unreachabledefault.i.i.i.i646: ; preds = %if.end.i.i.i.i618 - unreachable - sw.epilog.i.i.i.i635: ; preds = %sw.bb.i.i.i.i642, %if.end.i.i.i.i618 %c.1.in.i.i.i.i636 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i621, i64 0, i32 3 %trail_sz.1.i.i.i.i637 = add nuw nsw i32 %trail_sz.016.i.i.i.i620, 1 @@ -10912,7 +10873,7 @@ if.end.i.i.i.i662: ; preds = %sw.epilog.i.i.i.i67 %c.017.i.i.i.i665 = load ptr, ptr %c.017.in.i.i.i.i663, align 8 %bf.load.i.i.i.i.i666 = load i32, ptr %c.017.i.i.i.i665, align 8 %bf.lshr.i.i.i.i.i667 = lshr i32 %bf.load.i.i.i.i.i666, 30 - switch i32 %bf.lshr.i.i.i.i.i667, label %if.end.unreachabledefault.i.i.i.i690 [ + switch i32 %bf.lshr.i.i.i.i.i667, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i686 i32 1, label %sw.bb.i.i.i.i686 i32 2, label %sw.epilog.i.i.i.i679 @@ -10936,9 +10897,6 @@ sw.bb12.i.i.i.i668: ; preds = %if.end.i.i.i.i662 %arrayidx14.i.i.i.i670 = getelementptr inbounds ptr, ptr %266, i64 %idxprom13.i.i.i.i669 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i671 -if.end.unreachabledefault.i.i.i.i690: ; preds = %if.end.i.i.i.i662 - unreachable - sw.epilog.i.i.i.i679: ; preds = %sw.bb.i.i.i.i686, %if.end.i.i.i.i662 %c.1.in.i.i.i.i680 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i665, i64 0, i32 3 %trail_sz.1.i.i.i.i681 = add nuw nsw i32 %trail_sz.016.i.i.i.i664, 1 @@ -11014,7 +10972,7 @@ if.end.i.i.i.i706: ; preds = %sw.epilog.i.i.i.i71 %c.017.i.i.i.i709 = load ptr, ptr %c.017.in.i.i.i.i707, align 8 %bf.load.i.i.i.i.i710 = load i32, ptr %c.017.i.i.i.i709, align 8 %bf.lshr.i.i.i.i.i711 = lshr i32 %bf.load.i.i.i.i.i710, 30 - switch i32 %bf.lshr.i.i.i.i.i711, label %if.end.unreachabledefault.i.i.i.i730 [ + switch i32 %bf.lshr.i.i.i.i.i711, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i726 i32 1, label %sw.bb.i.i.i.i726 i32 2, label %sw.epilog.i.i.i.i719 @@ -11038,9 +10996,6 @@ sw.bb12.i.i.i.i712: ; preds = %if.end.i.i.i.i706 %arrayidx14.i.i.i.i714 = getelementptr inbounds ptr, ptr %286, i64 %idxprom13.i.i.i.i713 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i715 -if.end.unreachabledefault.i.i.i.i730: ; preds = %if.end.i.i.i.i706 - unreachable - sw.epilog.i.i.i.i719: ; preds = %sw.bb.i.i.i.i726, %if.end.i.i.i.i706 %c.1.in.i.i.i.i720 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i709, i64 0, i32 3 %trail_sz.1.i.i.i.i721 = add nuw nsw i32 %trail_sz.016.i.i.i.i708, 1 @@ -11112,7 +11067,7 @@ if.end.i.i.i.i744: ; preds = %sw.epilog.i.i.i.i75 %c.017.i.i.i.i747 = load ptr, ptr %c.017.in.i.i.i.i745, align 8 %bf.load.i.i.i.i.i748 = load i32, ptr %c.017.i.i.i.i747, align 8 %bf.lshr.i.i.i.i.i749 = lshr i32 %bf.load.i.i.i.i.i748, 30 - switch i32 %bf.lshr.i.i.i.i.i749, label %if.end.unreachabledefault.i.i.i.i770 [ + switch i32 %bf.lshr.i.i.i.i.i749, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i766 i32 1, label %sw.bb.i.i.i.i766 i32 2, label %sw.epilog.i.i.i.i759 @@ -11136,9 +11091,6 @@ sw.bb12.i.i.i.i750: ; preds = %if.end.i.i.i.i744 %arrayidx14.i.i.i.i752 = getelementptr inbounds ptr, ptr %306, i64 %idxprom13.i.i.i.i751 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i753 -if.end.unreachabledefault.i.i.i.i770: ; preds = %if.end.i.i.i.i744 - unreachable - sw.epilog.i.i.i.i759: ; preds = %sw.bb.i.i.i.i766, %if.end.i.i.i.i744 %c.1.in.i.i.i.i760 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i747, i64 0, i32 3 %trail_sz.1.i.i.i.i761 = add nuw nsw i32 %trail_sz.016.i.i.i.i746, 1 @@ -11192,7 +11144,7 @@ if.end.i.i.i.i781: ; preds = %sw.epilog.i.i.i.i79 %c.017.i.i.i.i784 = load ptr, ptr %c.017.in.i.i.i.i782, align 8 %bf.load.i.i.i.i.i785 = load i32, ptr %c.017.i.i.i.i784, align 8 %bf.lshr.i.i.i.i.i786 = lshr i32 %bf.load.i.i.i.i.i785, 30 - switch i32 %bf.lshr.i.i.i.i.i786, label %if.end.unreachabledefault.i.i.i.i809 [ + switch i32 %bf.lshr.i.i.i.i.i786, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i805 i32 1, label %sw.bb.i.i.i.i805 i32 2, label %sw.epilog.i.i.i.i798 @@ -11216,9 +11168,6 @@ sw.bb12.i.i.i.i787: ; preds = %if.end.i.i.i.i781 %arrayidx14.i.i.i.i789 = getelementptr inbounds ptr, ptr %319, i64 %idxprom13.i.i.i.i788 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i790 -if.end.unreachabledefault.i.i.i.i809: ; preds = %if.end.i.i.i.i781 - unreachable - sw.epilog.i.i.i.i798: ; preds = %sw.bb.i.i.i.i805, %if.end.i.i.i.i781 %c.1.in.i.i.i.i799 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i784, i64 0, i32 3 %trail_sz.1.i.i.i.i800 = add nuw nsw i32 %trail_sz.016.i.i.i.i783, 1 @@ -11282,7 +11231,7 @@ if.end.i.i.i.i821: ; preds = %sw.epilog.i.i.i.i83 %c.017.i.i.i.i824 = load ptr, ptr %c.017.in.i.i.i.i822, align 8 %bf.load.i.i.i.i.i825 = load i32, ptr %c.017.i.i.i.i824, align 8 %bf.lshr.i.i.i.i.i826 = lshr i32 %bf.load.i.i.i.i.i825, 30 - switch i32 %bf.lshr.i.i.i.i.i826, label %if.end.unreachabledefault.i.i.i.i845 [ + switch i32 %bf.lshr.i.i.i.i.i826, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i841 i32 1, label %sw.bb.i.i.i.i841 i32 2, label %sw.epilog.i.i.i.i834 @@ -11306,9 +11255,6 @@ sw.bb12.i.i.i.i827: ; preds = %if.end.i.i.i.i821 %arrayidx14.i.i.i.i829 = getelementptr inbounds ptr, ptr %335, i64 %idxprom13.i.i.i.i828 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i830 -if.end.unreachabledefault.i.i.i.i845: ; preds = %if.end.i.i.i.i821 - unreachable - sw.epilog.i.i.i.i834: ; preds = %sw.bb.i.i.i.i841, %if.end.i.i.i.i821 %c.1.in.i.i.i.i835 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i824, i64 0, i32 3 %trail_sz.1.i.i.i.i836 = add nuw nsw i32 %trail_sz.016.i.i.i.i823, 1 @@ -11380,7 +11326,7 @@ if.end.i.i.i.i862: ; preds = %sw.epilog.i.i.i.i87 %c.017.i.i.i.i865 = load ptr, ptr %c.017.in.i.i.i.i863, align 8 %bf.load.i.i.i.i.i866 = load i32, ptr %c.017.i.i.i.i865, align 8 %bf.lshr.i.i.i.i.i867 = lshr i32 %bf.load.i.i.i.i.i866, 30 - switch i32 %bf.lshr.i.i.i.i.i867, label %if.end.unreachabledefault.i.i.i.i888 [ + switch i32 %bf.lshr.i.i.i.i.i867, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i884 i32 1, label %sw.bb.i.i.i.i884 i32 2, label %sw.epilog.i.i.i.i877 @@ -11404,9 +11350,6 @@ sw.bb12.i.i.i.i868: ; preds = %if.end.i.i.i.i862 %arrayidx14.i.i.i.i870 = getelementptr inbounds ptr, ptr %355, i64 %idxprom13.i.i.i.i869 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i871 -if.end.unreachabledefault.i.i.i.i888: ; preds = %if.end.i.i.i.i862 - unreachable - sw.epilog.i.i.i.i877: ; preds = %sw.bb.i.i.i.i884, %if.end.i.i.i.i862 %c.1.in.i.i.i.i878 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i865, i64 0, i32 3 %trail_sz.1.i.i.i.i879 = add nuw nsw i32 %trail_sz.016.i.i.i.i864, 1 @@ -11460,7 +11403,7 @@ if.end.i.i.i.i899: ; preds = %sw.epilog.i.i.i.i91 %c.017.i.i.i.i902 = load ptr, ptr %c.017.in.i.i.i.i900, align 8 %bf.load.i.i.i.i.i903 = load i32, ptr %c.017.i.i.i.i902, align 8 %bf.lshr.i.i.i.i.i904 = lshr i32 %bf.load.i.i.i.i.i903, 30 - switch i32 %bf.lshr.i.i.i.i.i904, label %if.end.unreachabledefault.i.i.i.i927 [ + switch i32 %bf.lshr.i.i.i.i.i904, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i923 i32 1, label %sw.bb.i.i.i.i923 i32 2, label %sw.epilog.i.i.i.i916 @@ -11484,9 +11427,6 @@ sw.bb12.i.i.i.i905: ; preds = %if.end.i.i.i.i899 %arrayidx14.i.i.i.i907 = getelementptr inbounds ptr, ptr %368, i64 %idxprom13.i.i.i.i906 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i908 -if.end.unreachabledefault.i.i.i.i927: ; preds = %if.end.i.i.i.i899 - unreachable - sw.epilog.i.i.i.i916: ; preds = %sw.bb.i.i.i.i923, %if.end.i.i.i.i899 %c.1.in.i.i.i.i917 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i902, i64 0, i32 3 %trail_sz.1.i.i.i.i918 = add nuw nsw i32 %trail_sz.016.i.i.i.i901, 1 @@ -11560,7 +11500,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -11584,7 +11524,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i20, %if.end.i.i.i.i51, %if.end.i.i.i.i84, %if.end.i.i.i.i127, %if.end.i.i.i.i160 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -11643,7 +11586,7 @@ if.end.i.i.i.i20: ; preds = %sw.epilog.i.i.i.i33 %c.017.i.i.i.i23 = load ptr, ptr %c.017.in.i.i.i.i21, align 8 %bf.load.i.i.i.i.i24 = load i32, ptr %c.017.i.i.i.i23, align 8 %bf.lshr.i.i.i.i.i25 = lshr i32 %bf.load.i.i.i.i.i24, 30 - switch i32 %bf.lshr.i.i.i.i.i25, label %if.end.unreachabledefault.i.i.i.i44 [ + switch i32 %bf.lshr.i.i.i.i.i25, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i40 i32 1, label %sw.bb.i.i.i.i40 i32 2, label %sw.epilog.i.i.i.i33 @@ -11667,9 +11610,6 @@ sw.bb12.i.i.i.i26: ; preds = %if.end.i.i.i.i20 %arrayidx14.i.i.i.i28 = getelementptr inbounds ptr, ptr %27, i64 %idxprom13.i.i.i.i27 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i29 -if.end.unreachabledefault.i.i.i.i44: ; preds = %if.end.i.i.i.i20 - unreachable - sw.epilog.i.i.i.i33: ; preds = %sw.bb.i.i.i.i40, %if.end.i.i.i.i20 %c.1.in.i.i.i.i34 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i23, i64 0, i32 3 %trail_sz.1.i.i.i.i35 = add nuw nsw i32 %trail_sz.016.i.i.i.i22, 1 @@ -11744,7 +11684,7 @@ if.end.i.i.i.i51: ; preds = %sw.epilog.i.i.i.i63 %c.017.i.i.i.i54 = load ptr, ptr %c.017.in.i.i.i.i52, align 8 %bf.load.i.i.i.i.i55 = load i32, ptr %c.017.i.i.i.i54, align 8 %bf.lshr.i.i.i.i.i56 = lshr i32 %bf.load.i.i.i.i.i55, 30 - switch i32 %bf.lshr.i.i.i.i.i56, label %if.end.unreachabledefault.i.i.i.i74 [ + switch i32 %bf.lshr.i.i.i.i.i56, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i70 i32 1, label %sw.bb.i.i.i.i70 i32 2, label %sw.epilog.i.i.i.i63 @@ -11768,9 +11708,6 @@ sw.bb12.i.i.i.i57: ; preds = %if.end.i.i.i.i51 %arrayidx14.i.i.i.i59 = getelementptr inbounds ptr, ptr %43, i64 %idxprom13.i.i.i.i58 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i74: ; preds = %if.end.i.i.i.i51 - unreachable - sw.epilog.i.i.i.i63: ; preds = %sw.bb.i.i.i.i70, %if.end.i.i.i.i51 %c.1.in.i.i.i.i64 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i54, i64 0, i32 3 %trail_sz.1.i.i.i.i65 = add nuw nsw i32 %trail_sz.016.i.i.i.i53, 1 @@ -11827,7 +11764,7 @@ if.end.i.i.i.i84: ; preds = %sw.epilog.i.i.i.i99 %c.017.i.i.i.i87 = load ptr, ptr %c.017.in.i.i.i.i85, align 8 %bf.load.i.i.i.i.i88 = load i32, ptr %c.017.i.i.i.i87, align 8 %bf.lshr.i.i.i.i.i89 = lshr i32 %bf.load.i.i.i.i.i88, 30 - switch i32 %bf.lshr.i.i.i.i.i89, label %if.end.unreachabledefault.i.i.i.i110 [ + switch i32 %bf.lshr.i.i.i.i.i89, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i106 i32 1, label %sw.bb.i.i.i.i106 i32 2, label %sw.epilog.i.i.i.i99 @@ -11851,9 +11788,6 @@ sw.bb12.i.i.i.i90: ; preds = %if.end.i.i.i.i84 %arrayidx14.i.i.i.i92 = getelementptr inbounds ptr, ptr %59, i64 %idxprom13.i.i.i.i91 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i93 -if.end.unreachabledefault.i.i.i.i110: ; preds = %if.end.i.i.i.i84 - unreachable - sw.epilog.i.i.i.i99: ; preds = %sw.bb.i.i.i.i106, %if.end.i.i.i.i84 %c.1.in.i.i.i.i100 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i87, i64 0, i32 3 %trail_sz.1.i.i.i.i101 = add nuw nsw i32 %trail_sz.016.i.i.i.i86, 1 @@ -11896,9 +11830,9 @@ if.then.i.i118: ; preds = %_ZN11mpf_manager10i unreachable if.end13: ; preds = %_ZN11mpf_manager10is_regularERK3mpf.exit.i.i116, %lor.lhs.false.i.i.i114, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_infERKNS3_8intervalE.exit, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i - %.sink248 = phi i8 [ 1, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ], [ 1, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_infERKNS3_8intervalE.exit ], [ 0, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit ], [ 0, %lor.lhs.false.i.i.i114 ], [ 0, %_ZN11mpf_manager10is_regularERK3mpf.exit.i.i116 ] + %.sink253 = phi i8 [ 1, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ], [ 1, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_infERKNS3_8intervalE.exit ], [ 0, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit ], [ 0, %lor.lhs.false.i.i.i114 ], [ 0, %_ZN11mpf_manager10is_regularERK3mpf.exit.i.i116 ] %m_u_inf.i.i121 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %t, i64 0, i32 10 - store i8 %.sink248, ptr %m_u_inf.i.i121, align 8 + store i8 %.sink253, ptr %m_u_inf.i.i121, align 8 %64 = load i8, ptr %s, align 8 %65 = and i8 %64, 1 %tobool.not.i.i122 = icmp eq i8 %65, 0 @@ -11928,7 +11862,7 @@ if.end.i.i.i.i127: ; preds = %sw.epilog.i.i.i.i14 %c.017.i.i.i.i130 = load ptr, ptr %c.017.in.i.i.i.i128, align 8 %bf.load.i.i.i.i.i131 = load i32, ptr %c.017.i.i.i.i130, align 8 %bf.lshr.i.i.i.i.i132 = lshr i32 %bf.load.i.i.i.i.i131, 30 - switch i32 %bf.lshr.i.i.i.i.i132, label %if.end.unreachabledefault.i.i.i.i152 [ + switch i32 %bf.lshr.i.i.i.i.i132, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i148 i32 1, label %sw.bb.i.i.i.i148 i32 2, label %sw.epilog.i.i.i.i141 @@ -11952,9 +11886,6 @@ sw.bb12.i.i.i.i133: ; preds = %if.end.i.i.i.i127 %arrayidx14.i.i.i.i135 = getelementptr inbounds ptr, ptr %75, i64 %idxprom13.i.i.i.i134 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i136 -if.end.unreachabledefault.i.i.i.i152: ; preds = %if.end.i.i.i.i127 - unreachable - sw.epilog.i.i.i.i141: ; preds = %sw.bb.i.i.i.i148, %if.end.i.i.i.i127 %c.1.in.i.i.i.i142 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i130, i64 0, i32 3 %trail_sz.1.i.i.i.i143 = add nuw nsw i32 %trail_sz.016.i.i.i.i129, 1 @@ -12015,7 +11946,7 @@ if.end.i.i.i.i160: ; preds = %sw.epilog.i.i.i.i17 %c.017.i.i.i.i163 = load ptr, ptr %c.017.in.i.i.i.i161, align 8 %bf.load.i.i.i.i.i164 = load i32, ptr %c.017.i.i.i.i163, align 8 %bf.lshr.i.i.i.i.i165 = lshr i32 %bf.load.i.i.i.i.i164, 30 - switch i32 %bf.lshr.i.i.i.i.i165, label %if.end.unreachabledefault.i.i.i.i188 [ + switch i32 %bf.lshr.i.i.i.i.i165, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i184 i32 1, label %sw.bb.i.i.i.i184 i32 2, label %sw.epilog.i.i.i.i177 @@ -12039,9 +11970,6 @@ sw.bb12.i.i.i.i166: ; preds = %if.end.i.i.i.i160 %arrayidx14.i.i.i.i168 = getelementptr inbounds ptr, ptr %91, i64 %idxprom13.i.i.i.i167 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i169 -if.end.unreachabledefault.i.i.i.i188: ; preds = %if.end.i.i.i.i160 - unreachable - sw.epilog.i.i.i.i177: ; preds = %sw.bb.i.i.i.i184, %if.end.i.i.i.i160 %c.1.in.i.i.i.i178 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i163, i64 0, i32 3 %trail_sz.1.i.i.i.i179 = add nuw nsw i32 %trail_sz.016.i.i.i.i162, 1 @@ -12142,7 +12070,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -12166,7 +12094,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i215, %if.end.i.i.i.i243, %if.end.i.i.i.i274, %if.end.i.i.i.i307, %if.end.i.i.i.i342, %if.end.i.i.i.i378, %if.end.i.i.i.i413, %if.end.i.i.i.i448, %if.end.i.i.i.i479, %if.end.i.i.i.i515, %if.end.i.i.i.i553, %if.end.i.i.i.i.i785, %if.end.i.i.i.i.i664, %if.end.i.i.i.i.i, %if.end.i.i.i.i.i602 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -12211,7 +12142,7 @@ if.then.i.i.i.i231: ; preds = %sw.epilog.i.i.i.i22 %20 = load ptr, ptr %19, align 8 %idxprom.i.i.i.i232 = zext i32 %16 to i64 %arrayidx.i.i.i.i233 = getelementptr inbounds ptr, ptr %20, i64 %idxprom.i.i.i.i232 - %.pre977.pre = load i8, ptr %i1, align 8 + %.pre978.pre = load i8, ptr %i1, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i224 if.end.i.i.i.i215: ; preds = %sw.epilog.i.i.i.i227, %cond.true.i.i @@ -12220,7 +12151,7 @@ if.end.i.i.i.i215: ; preds = %sw.epilog.i.i.i.i22 %c.017.i.i.i.i218 = load ptr, ptr %c.017.in.i.i.i.i216, align 8 %bf.load.i.i.i.i.i219 = load i32, ptr %c.017.i.i.i.i218, align 8 %bf.lshr.i.i.i.i.i220 = lshr i32 %bf.load.i.i.i.i.i219, 30 - switch i32 %bf.lshr.i.i.i.i.i220, label %if.end.unreachabledefault.i.i.i.i238 [ + switch i32 %bf.lshr.i.i.i.i.i220, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i234 i32 1, label %sw.bb.i.i.i.i234 i32 2, label %sw.epilog.i.i.i.i227 @@ -12244,9 +12175,6 @@ sw.bb12.i.i.i.i221: ; preds = %if.end.i.i.i.i215 %arrayidx14.i.i.i.i223 = getelementptr inbounds ptr, ptr %24, i64 %idxprom13.i.i.i.i222 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i224 -if.end.unreachabledefault.i.i.i.i238: ; preds = %if.end.i.i.i.i215 - unreachable - sw.epilog.i.i.i.i227: ; preds = %sw.bb.i.i.i.i234, %if.end.i.i.i.i215 %c.1.in.i.i.i.i228 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i218, i64 0, i32 3 %trail_sz.1.i.i.i.i229 = add nuw nsw i32 %trail_sz.016.i.i.i.i217, 1 @@ -12254,7 +12182,7 @@ sw.epilog.i.i.i.i227: ; preds = %sw.bb.i.i.i.i234, % br i1 %exitcond.i.i.i.i230, label %if.then.i.i.i.i231, label %if.end.i.i.i.i215, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i224: ; preds = %sw.bb12.i.i.i.i221, %if.then5.i.i.i.i236, %if.then.i.i.i.i231 - %.pre977 = phi i8 [ %.pre977.pre, %if.then.i.i.i.i231 ], [ %13, %sw.bb12.i.i.i.i221 ], [ %13, %if.then5.i.i.i.i236 ] + %.pre978 = phi i8 [ %.pre978.pre, %if.then.i.i.i.i231 ], [ %13, %sw.bb12.i.i.i.i221 ], [ %13, %if.then5.i.i.i.i236 ] %retval.0.i.i.i.i225 = phi ptr [ %arrayidx.i.i.i.i233, %if.then.i.i.i.i231 ], [ %arrayidx14.i.i.i.i223, %sw.bb12.i.i.i.i221 ], [ %m_elem.i.i.i.i.i237, %if.then5.i.i.i.i236 ] %25 = load ptr, ptr %retval.0.i.i.i.i225, align 8 %cmp.i.i226 = icmp eq ptr %25, null @@ -12268,7 +12196,7 @@ cond.false.i.i: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i224, %cond.false.i.i - %28 = phi i8 [ %.pre977, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i224 ], [ %13, %cond.false.i.i ] + %28 = phi i8 [ %.pre978, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i224 ], [ %13, %cond.false.i.i ] %cond.i.i = phi i1 [ %cmp.i.i226, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i224 ], [ %tobool2.i.i, %cond.false.i.i ] %not.call.i = xor i1 %cond.i.i, true %cond.i = zext i1 %not.call.i to i32 @@ -12292,7 +12220,7 @@ if.then.i.i.i.i260: ; preds = %sw.epilog.i.i.i.i25 %35 = load ptr, ptr %34, align 8 %idxprom.i.i.i.i261 = zext i32 %31 to i64 %arrayidx.i.i.i.i262 = getelementptr inbounds ptr, ptr %35, i64 %idxprom.i.i.i.i261 - %.pre978.pre = load i8, ptr %i1, align 8 + %.pre979.pre = load i8, ptr %i1, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i if.end.i.i.i.i243: ; preds = %sw.epilog.i.i.i.i256, %if.then.i.i240 @@ -12301,7 +12229,7 @@ if.end.i.i.i.i243: ; preds = %sw.epilog.i.i.i.i25 %c.017.i.i.i.i246 = load ptr, ptr %c.017.in.i.i.i.i244, align 8 %bf.load.i.i.i.i.i247 = load i32, ptr %c.017.i.i.i.i246, align 8 %bf.lshr.i.i.i.i.i248 = lshr i32 %bf.load.i.i.i.i.i247, 30 - switch i32 %bf.lshr.i.i.i.i.i248, label %if.end.unreachabledefault.i.i.i.i267 [ + switch i32 %bf.lshr.i.i.i.i.i248, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i263 i32 1, label %sw.bb.i.i.i.i263 i32 2, label %sw.epilog.i.i.i.i256 @@ -12325,9 +12253,6 @@ sw.bb12.i.i.i.i249: ; preds = %if.end.i.i.i.i243 %arrayidx14.i.i.i.i251 = getelementptr inbounds ptr, ptr %39, i64 %idxprom13.i.i.i.i250 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i267: ; preds = %if.end.i.i.i.i243 - unreachable - sw.epilog.i.i.i.i256: ; preds = %sw.bb.i.i.i.i263, %if.end.i.i.i.i243 %c.1.in.i.i.i.i257 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i246, i64 0, i32 3 %trail_sz.1.i.i.i.i258 = add nuw nsw i32 %trail_sz.016.i.i.i.i245, 1 @@ -12335,7 +12260,7 @@ sw.epilog.i.i.i.i256: ; preds = %sw.bb.i.i.i.i263, % br i1 %exitcond.i.i.i.i259, label %if.then.i.i.i.i260, label %if.end.i.i.i.i243, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i: ; preds = %sw.bb12.i.i.i.i249, %if.then5.i.i.i.i265, %if.then.i.i.i.i260 - %.pre978 = phi i8 [ %.pre978.pre, %if.then.i.i.i.i260 ], [ %28, %sw.bb12.i.i.i.i249 ], [ %28, %if.then5.i.i.i.i265 ] + %.pre979 = phi i8 [ %.pre979.pre, %if.then.i.i.i.i260 ], [ %28, %sw.bb12.i.i.i.i249 ], [ %28, %if.then5.i.i.i.i265 ] %retval.0.i.i.i.i252 = phi ptr [ %arrayidx.i.i.i.i262, %if.then.i.i.i.i260 ], [ %arrayidx14.i.i.i.i251, %sw.bb12.i.i.i.i249 ], [ %m_elem.i.i.i.i.i266, %if.then5.i.i.i.i265 ] %40 = load ptr, ptr %retval.0.i.i.i.i252, align 8 %cmp.i.i253 = icmp eq ptr %40, null @@ -12348,7 +12273,7 @@ if.end.i.i268: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i, %if.end.i.i268 - %41 = phi i8 [ %28, %if.end.i.i268 ], [ %.pre978, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ] + %41 = phi i8 [ %28, %if.end.i.i268 ], [ %.pre979, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ] %retval.0.i.i255 = phi ptr [ %m_u_val3.i.i, %if.end.i.i268 ], [ %spec.select.i.i254, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ] %42 = and i8 %41, 1 %tobool.not.i.i269 = icmp eq i8 %42, 0 @@ -12378,7 +12303,7 @@ if.end.i.i.i.i274: ; preds = %sw.epilog.i.i.i.i28 %c.017.i.i.i.i277 = load ptr, ptr %c.017.in.i.i.i.i275, align 8 %bf.load.i.i.i.i.i278 = load i32, ptr %c.017.i.i.i.i277, align 8 %bf.lshr.i.i.i.i.i279 = lshr i32 %bf.load.i.i.i.i.i278, 30 - switch i32 %bf.lshr.i.i.i.i.i279, label %if.end.unreachabledefault.i.i.i.i299 [ + switch i32 %bf.lshr.i.i.i.i.i279, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i295 i32 1, label %sw.bb.i.i.i.i295 i32 2, label %sw.epilog.i.i.i.i288 @@ -12402,9 +12327,6 @@ sw.bb12.i.i.i.i280: ; preds = %if.end.i.i.i.i274 %arrayidx14.i.i.i.i282 = getelementptr inbounds ptr, ptr %52, i64 %idxprom13.i.i.i.i281 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i283 -if.end.unreachabledefault.i.i.i.i299: ; preds = %if.end.i.i.i.i274 - unreachable - sw.epilog.i.i.i.i288: ; preds = %sw.bb.i.i.i.i295, %if.end.i.i.i.i274 %c.1.in.i.i.i.i289 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i277, i64 0, i32 3 %trail_sz.1.i.i.i.i290 = add nuw nsw i32 %trail_sz.016.i.i.i.i276, 1 @@ -12448,7 +12370,7 @@ if.then.i.i.i.i326: ; preds = %sw.epilog.i.i.i.i32 %63 = load ptr, ptr %62, align 8 %idxprom.i.i.i.i327 = zext i32 %59 to i64 %arrayidx.i.i.i.i328 = getelementptr inbounds ptr, ptr %63, i64 %idxprom.i.i.i.i327 - %.pre979.pre = load i8, ptr %i2, align 8 + %.pre980.pre = load i8, ptr %i2, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i316 if.end.i.i.i.i307: ; preds = %sw.epilog.i.i.i.i322, %if.then.i.i303 @@ -12457,7 +12379,7 @@ if.end.i.i.i.i307: ; preds = %sw.epilog.i.i.i.i32 %c.017.i.i.i.i310 = load ptr, ptr %c.017.in.i.i.i.i308, align 8 %bf.load.i.i.i.i.i311 = load i32, ptr %c.017.i.i.i.i310, align 8 %bf.lshr.i.i.i.i.i312 = lshr i32 %bf.load.i.i.i.i.i311, 30 - switch i32 %bf.lshr.i.i.i.i.i312, label %if.end.unreachabledefault.i.i.i.i333 [ + switch i32 %bf.lshr.i.i.i.i.i312, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i329 i32 1, label %sw.bb.i.i.i.i329 i32 2, label %sw.epilog.i.i.i.i322 @@ -12481,9 +12403,6 @@ sw.bb12.i.i.i.i313: ; preds = %if.end.i.i.i.i307 %arrayidx14.i.i.i.i315 = getelementptr inbounds ptr, ptr %67, i64 %idxprom13.i.i.i.i314 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i316 -if.end.unreachabledefault.i.i.i.i333: ; preds = %if.end.i.i.i.i307 - unreachable - sw.epilog.i.i.i.i322: ; preds = %sw.bb.i.i.i.i329, %if.end.i.i.i.i307 %c.1.in.i.i.i.i323 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i310, i64 0, i32 3 %trail_sz.1.i.i.i.i324 = add nuw nsw i32 %trail_sz.016.i.i.i.i309, 1 @@ -12491,7 +12410,7 @@ sw.epilog.i.i.i.i322: ; preds = %sw.bb.i.i.i.i329, % br i1 %exitcond.i.i.i.i325, label %if.then.i.i.i.i326, label %if.end.i.i.i.i307, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i316: ; preds = %sw.bb12.i.i.i.i313, %if.then5.i.i.i.i331, %if.then.i.i.i.i326 - %.pre979 = phi i8 [ %.pre979.pre, %if.then.i.i.i.i326 ], [ %56, %sw.bb12.i.i.i.i313 ], [ %56, %if.then5.i.i.i.i331 ] + %.pre980 = phi i8 [ %.pre980.pre, %if.then.i.i.i.i326 ], [ %56, %sw.bb12.i.i.i.i313 ], [ %56, %if.then5.i.i.i.i331 ] %retval.0.i.i.i.i317 = phi ptr [ %arrayidx.i.i.i.i328, %if.then.i.i.i.i326 ], [ %arrayidx14.i.i.i.i315, %sw.bb12.i.i.i.i313 ], [ %m_elem.i.i.i.i.i332, %if.then5.i.i.i.i331 ] %68 = load ptr, ptr %retval.0.i.i.i.i317, align 8 %cmp.i.i318 = icmp eq ptr %68, null @@ -12504,7 +12423,7 @@ if.end.i.i334: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5lowerERKNS3_8intervalE.exit336 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5lowerERKNS3_8intervalE.exit336: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i316, %if.end.i.i334 - %69 = phi i8 [ %56, %if.end.i.i334 ], [ %.pre979, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i316 ] + %69 = phi i8 [ %56, %if.end.i.i334 ], [ %.pre980, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i316 ] %retval.0.i.i321 = phi ptr [ %m_l_val3.i.i335, %if.end.i.i334 ], [ %spec.select.i.i320, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i316 ] %70 = and i8 %69, 1 %tobool.not.i.i337 = icmp eq i8 %70, 0 @@ -12526,7 +12445,7 @@ if.then.i.i.i.i361: ; preds = %sw.epilog.i.i.i.i35 %76 = load ptr, ptr %75, align 8 %idxprom.i.i.i.i362 = zext i32 %72 to i64 %arrayidx.i.i.i.i363 = getelementptr inbounds ptr, ptr %76, i64 %idxprom.i.i.i.i362 - %.pre980.pre = load i8, ptr %i2, align 8 + %.pre981.pre = load i8, ptr %i2, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i351 if.end.i.i.i.i342: ; preds = %sw.epilog.i.i.i.i357, %cond.true.i.i338 @@ -12535,7 +12454,7 @@ if.end.i.i.i.i342: ; preds = %sw.epilog.i.i.i.i35 %c.017.i.i.i.i345 = load ptr, ptr %c.017.in.i.i.i.i343, align 8 %bf.load.i.i.i.i.i346 = load i32, ptr %c.017.i.i.i.i345, align 8 %bf.lshr.i.i.i.i.i347 = lshr i32 %bf.load.i.i.i.i.i346, 30 - switch i32 %bf.lshr.i.i.i.i.i347, label %if.end.unreachabledefault.i.i.i.i368 [ + switch i32 %bf.lshr.i.i.i.i.i347, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i364 i32 1, label %sw.bb.i.i.i.i364 i32 2, label %sw.epilog.i.i.i.i357 @@ -12559,9 +12478,6 @@ sw.bb12.i.i.i.i348: ; preds = %if.end.i.i.i.i342 %arrayidx14.i.i.i.i350 = getelementptr inbounds ptr, ptr %80, i64 %idxprom13.i.i.i.i349 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i351 -if.end.unreachabledefault.i.i.i.i368: ; preds = %if.end.i.i.i.i342 - unreachable - sw.epilog.i.i.i.i357: ; preds = %sw.bb.i.i.i.i364, %if.end.i.i.i.i342 %c.1.in.i.i.i.i358 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i345, i64 0, i32 3 %trail_sz.1.i.i.i.i359 = add nuw nsw i32 %trail_sz.016.i.i.i.i344, 1 @@ -12569,7 +12485,7 @@ sw.epilog.i.i.i.i357: ; preds = %sw.bb.i.i.i.i364, % br i1 %exitcond.i.i.i.i360, label %if.then.i.i.i.i361, label %if.end.i.i.i.i342, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i351: ; preds = %sw.bb12.i.i.i.i348, %if.then5.i.i.i.i366, %if.then.i.i.i.i361 - %.pre980 = phi i8 [ %.pre980.pre, %if.then.i.i.i.i361 ], [ %69, %sw.bb12.i.i.i.i348 ], [ %69, %if.then5.i.i.i.i366 ] + %.pre981 = phi i8 [ %.pre981.pre, %if.then.i.i.i.i361 ], [ %69, %sw.bb12.i.i.i.i348 ], [ %69, %if.then5.i.i.i.i366 ] %retval.0.i.i.i.i352 = phi ptr [ %arrayidx.i.i.i.i363, %if.then.i.i.i.i361 ], [ %arrayidx14.i.i.i.i350, %sw.bb12.i.i.i.i348 ], [ %m_elem.i.i.i.i.i367, %if.then5.i.i.i.i366 ] %81 = load ptr, ptr %retval.0.i.i.i.i352, align 8 %cmp.i.i353 = icmp eq ptr %81, null @@ -12583,7 +12499,7 @@ cond.false.i.i369: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit372 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit372: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i351, %cond.false.i.i369 - %84 = phi i8 [ %.pre980, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i351 ], [ %69, %cond.false.i.i369 ] + %84 = phi i8 [ %.pre981, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i351 ], [ %69, %cond.false.i.i369 ] %cond.i.i354 = phi i1 [ %cmp.i.i353, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i351 ], [ %tobool2.i.i371, %cond.false.i.i369 ] %not.call.i355 = xor i1 %cond.i.i354, true %cond.i356 = zext i1 %not.call.i355 to i32 @@ -12607,7 +12523,7 @@ if.then.i.i.i.i397: ; preds = %sw.epilog.i.i.i.i39 %91 = load ptr, ptr %90, align 8 %idxprom.i.i.i.i398 = zext i32 %87 to i64 %arrayidx.i.i.i.i399 = getelementptr inbounds ptr, ptr %91, i64 %idxprom.i.i.i.i398 - %.pre981.pre = load i8, ptr %i2, align 8 + %.pre982.pre = load i8, ptr %i2, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i387 if.end.i.i.i.i378: ; preds = %sw.epilog.i.i.i.i393, %if.then.i.i374 @@ -12616,7 +12532,7 @@ if.end.i.i.i.i378: ; preds = %sw.epilog.i.i.i.i39 %c.017.i.i.i.i381 = load ptr, ptr %c.017.in.i.i.i.i379, align 8 %bf.load.i.i.i.i.i382 = load i32, ptr %c.017.i.i.i.i381, align 8 %bf.lshr.i.i.i.i.i383 = lshr i32 %bf.load.i.i.i.i.i382, 30 - switch i32 %bf.lshr.i.i.i.i.i383, label %if.end.unreachabledefault.i.i.i.i404 [ + switch i32 %bf.lshr.i.i.i.i.i383, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i400 i32 1, label %sw.bb.i.i.i.i400 i32 2, label %sw.epilog.i.i.i.i393 @@ -12640,9 +12556,6 @@ sw.bb12.i.i.i.i384: ; preds = %if.end.i.i.i.i378 %arrayidx14.i.i.i.i386 = getelementptr inbounds ptr, ptr %95, i64 %idxprom13.i.i.i.i385 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i387 -if.end.unreachabledefault.i.i.i.i404: ; preds = %if.end.i.i.i.i378 - unreachable - sw.epilog.i.i.i.i393: ; preds = %sw.bb.i.i.i.i400, %if.end.i.i.i.i378 %c.1.in.i.i.i.i394 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i381, i64 0, i32 3 %trail_sz.1.i.i.i.i395 = add nuw nsw i32 %trail_sz.016.i.i.i.i380, 1 @@ -12650,7 +12563,7 @@ sw.epilog.i.i.i.i393: ; preds = %sw.bb.i.i.i.i400, % br i1 %exitcond.i.i.i.i396, label %if.then.i.i.i.i397, label %if.end.i.i.i.i378, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i387: ; preds = %sw.bb12.i.i.i.i384, %if.then5.i.i.i.i402, %if.then.i.i.i.i397 - %.pre981 = phi i8 [ %.pre981.pre, %if.then.i.i.i.i397 ], [ %84, %sw.bb12.i.i.i.i384 ], [ %84, %if.then5.i.i.i.i402 ] + %.pre982 = phi i8 [ %.pre982.pre, %if.then.i.i.i.i397 ], [ %84, %sw.bb12.i.i.i.i384 ], [ %84, %if.then5.i.i.i.i402 ] %retval.0.i.i.i.i388 = phi ptr [ %arrayidx.i.i.i.i399, %if.then.i.i.i.i397 ], [ %arrayidx14.i.i.i.i386, %sw.bb12.i.i.i.i384 ], [ %m_elem.i.i.i.i.i403, %if.then5.i.i.i.i402 ] %96 = load ptr, ptr %retval.0.i.i.i.i388, align 8 %cmp.i.i389 = icmp eq ptr %96, null @@ -12663,7 +12576,7 @@ if.end.i.i405: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit407 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit407: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i387, %if.end.i.i405 - %97 = phi i8 [ %84, %if.end.i.i405 ], [ %.pre981, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i387 ] + %97 = phi i8 [ %84, %if.end.i.i405 ], [ %.pre982, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i387 ] %retval.0.i.i392 = phi ptr [ %m_u_val3.i.i406, %if.end.i.i405 ], [ %spec.select.i.i391, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i387 ] %98 = and i8 %97, 1 %tobool.not.i.i408 = icmp eq i8 %98, 0 @@ -12693,7 +12606,7 @@ if.end.i.i.i.i413: ; preds = %sw.epilog.i.i.i.i42 %c.017.i.i.i.i416 = load ptr, ptr %c.017.in.i.i.i.i414, align 8 %bf.load.i.i.i.i.i417 = load i32, ptr %c.017.i.i.i.i416, align 8 %bf.lshr.i.i.i.i.i418 = lshr i32 %bf.load.i.i.i.i.i417, 30 - switch i32 %bf.lshr.i.i.i.i.i418, label %if.end.unreachabledefault.i.i.i.i438 [ + switch i32 %bf.lshr.i.i.i.i.i418, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i434 i32 1, label %sw.bb.i.i.i.i434 i32 2, label %sw.epilog.i.i.i.i427 @@ -12717,9 +12630,6 @@ sw.bb12.i.i.i.i419: ; preds = %if.end.i.i.i.i413 %arrayidx14.i.i.i.i421 = getelementptr inbounds ptr, ptr %108, i64 %idxprom13.i.i.i.i420 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i422 -if.end.unreachabledefault.i.i.i.i438: ; preds = %if.end.i.i.i.i413 - unreachable - sw.epilog.i.i.i.i427: ; preds = %sw.bb.i.i.i.i434, %if.end.i.i.i.i413 %c.1.in.i.i.i.i428 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i416, i64 0, i32 3 %trail_sz.1.i.i.i.i429 = add nuw nsw i32 %trail_sz.016.i.i.i.i415, 1 @@ -12771,7 +12681,7 @@ if.end.i.i.i.i448: ; preds = %sw.epilog.i.i.i.i46 %c.017.i.i.i.i451 = load ptr, ptr %c.017.in.i.i.i.i449, align 8 %bf.load.i.i.i.i.i452 = load i32, ptr %c.017.i.i.i.i451, align 8 %bf.lshr.i.i.i.i.i453 = lshr i32 %bf.load.i.i.i.i.i452, 30 - switch i32 %bf.lshr.i.i.i.i.i453, label %if.end.unreachabledefault.i.i.i.i472 [ + switch i32 %bf.lshr.i.i.i.i.i453, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i468 i32 1, label %sw.bb.i.i.i.i468 i32 2, label %sw.epilog.i.i.i.i461 @@ -12795,9 +12705,6 @@ sw.bb12.i.i.i.i454: ; preds = %if.end.i.i.i.i448 %arrayidx14.i.i.i.i456 = getelementptr inbounds ptr, ptr %123, i64 %idxprom13.i.i.i.i455 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i457 -if.end.unreachabledefault.i.i.i.i472: ; preds = %if.end.i.i.i.i448 - unreachable - sw.epilog.i.i.i.i461: ; preds = %sw.bb.i.i.i.i468, %if.end.i.i.i.i448 %c.1.in.i.i.i.i462 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i451, i64 0, i32 3 %trail_sz.1.i.i.i.i463 = add nuw nsw i32 %trail_sz.016.i.i.i.i450, 1 @@ -12855,7 +12762,7 @@ if.end.i.i.i.i479: ; preds = %sw.epilog.i.i.i.i49 %c.017.i.i.i.i482 = load ptr, ptr %c.017.in.i.i.i.i480, align 8 %bf.load.i.i.i.i.i483 = load i32, ptr %c.017.i.i.i.i482, align 8 %bf.lshr.i.i.i.i.i484 = lshr i32 %bf.load.i.i.i.i.i483, 30 - switch i32 %bf.lshr.i.i.i.i.i484, label %if.end.unreachabledefault.i.i.i.i507 [ + switch i32 %bf.lshr.i.i.i.i.i484, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i503 i32 1, label %sw.bb.i.i.i.i503 i32 2, label %sw.epilog.i.i.i.i496 @@ -12879,9 +12786,6 @@ sw.bb12.i.i.i.i485: ; preds = %if.end.i.i.i.i479 %arrayidx14.i.i.i.i487 = getelementptr inbounds ptr, ptr %139, i64 %idxprom13.i.i.i.i486 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i488 -if.end.unreachabledefault.i.i.i.i507: ; preds = %if.end.i.i.i.i479 - unreachable - sw.epilog.i.i.i.i496: ; preds = %sw.bb.i.i.i.i503, %if.end.i.i.i.i479 %c.1.in.i.i.i.i497 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i482, i64 0, i32 3 %trail_sz.1.i.i.i.i498 = add nuw nsw i32 %trail_sz.016.i.i.i.i481, 1 @@ -12939,7 +12843,7 @@ if.end.i.i.i.i515: ; preds = %sw.epilog.i.i.i.i53 %c.017.i.i.i.i518 = load ptr, ptr %c.017.in.i.i.i.i516, align 8 %bf.load.i.i.i.i.i519 = load i32, ptr %c.017.i.i.i.i518, align 8 %bf.lshr.i.i.i.i.i520 = lshr i32 %bf.load.i.i.i.i.i519, 30 - switch i32 %bf.lshr.i.i.i.i.i520, label %if.end.unreachabledefault.i.i.i.i543 [ + switch i32 %bf.lshr.i.i.i.i.i520, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i539 i32 1, label %sw.bb.i.i.i.i539 i32 2, label %sw.epilog.i.i.i.i532 @@ -12963,9 +12867,6 @@ sw.bb12.i.i.i.i521: ; preds = %if.end.i.i.i.i515 %arrayidx14.i.i.i.i523 = getelementptr inbounds ptr, ptr %155, i64 %idxprom13.i.i.i.i522 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i524 -if.end.unreachabledefault.i.i.i.i543: ; preds = %if.end.i.i.i.i515 - unreachable - sw.epilog.i.i.i.i532: ; preds = %sw.bb.i.i.i.i539, %if.end.i.i.i.i515 %c.1.in.i.i.i.i533 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i518, i64 0, i32 3 %trail_sz.1.i.i.i.i534 = add nuw nsw i32 %trail_sz.016.i.i.i.i517, 1 @@ -13023,7 +12924,7 @@ if.end.i.i.i.i553: ; preds = %sw.epilog.i.i.i.i57 %c.017.i.i.i.i556 = load ptr, ptr %c.017.in.i.i.i.i554, align 8 %bf.load.i.i.i.i.i557 = load i32, ptr %c.017.i.i.i.i556, align 8 %bf.lshr.i.i.i.i.i558 = lshr i32 %bf.load.i.i.i.i.i557, 30 - switch i32 %bf.lshr.i.i.i.i.i558, label %if.end.unreachabledefault.i.i.i.i581 [ + switch i32 %bf.lshr.i.i.i.i.i558, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i577 i32 1, label %sw.bb.i.i.i.i577 i32 2, label %sw.epilog.i.i.i.i570 @@ -13047,9 +12948,6 @@ sw.bb12.i.i.i.i559: ; preds = %if.end.i.i.i.i553 %arrayidx14.i.i.i.i561 = getelementptr inbounds ptr, ptr %171, i64 %idxprom13.i.i.i.i560 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i562 -if.end.unreachabledefault.i.i.i.i581: ; preds = %if.end.i.i.i.i553 - unreachable - sw.epilog.i.i.i.i570: ; preds = %sw.bb.i.i.i.i577, %if.end.i.i.i.i553 %c.1.in.i.i.i.i571 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i556, i64 0, i32 3 %trail_sz.1.i.i.i.i572 = add nuw nsw i32 %trail_sz.016.i.i.i.i555, 1 @@ -13129,7 +13027,7 @@ if.end.i.i.i.i.i: ; preds = %sw.epilog.i.i.i.i.i %c.017.i.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i.i, align 8 %bf.load.i.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i.i i32 1, label %sw.bb.i.i.i.i.i i32 2, label %sw.epilog.i.i.i.i.i @@ -13153,9 +13051,6 @@ sw.bb12.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i %arrayidx14.i.i.i.i.i = getelementptr inbounds ptr, ptr %187, i64 %idxprom13.i.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i -if.end.unreachabledefault.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i - unreachable - sw.epilog.i.i.i.i.i: ; preds = %sw.bb.i.i.i.i.i, %if.end.i.i.i.i.i %c.1.in.i.i.i.i.i = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i, i64 0, i32 3 %trail_sz.1.i.i.i.i.i = add nuw nsw i32 %trail_sz.016.i.i.i.i.i, 1 @@ -13183,116 +13078,113 @@ _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_config br i1 %tobool.i.i.i.i.not, label %cond.end, label %lor.lhs.false lor.lhs.false: ; preds = %if.end.i.i.i, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i, %if.then23, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit - %call.i594 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call.i594, label %land.rhs.i595, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread + %call.i595 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call.i595, label %land.rhs.i596, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread: ; preds = %lor.lhs.false +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread: ; preds = %lor.lhs.false %192 = or i1 %retval.0.i.i495, %retval.0.i.i569 br label %cond.end -land.rhs.i595: ; preds = %lor.lhs.false +land.rhs.i596: ; preds = %lor.lhs.false %193 = load i8, ptr %i2, align 8 %194 = and i8 %193, 1 - %tobool.not.i.i.i596 = icmp eq i8 %194, 0 - br i1 %tobool.not.i.i.i596, label %if.end.i.i.i632, label %if.then.i.i.i597 - -if.then.i.i.i597: ; preds = %land.rhs.i595 - %m_node.i.i.i598 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i2, i64 0, i32 2 - %195 = load ptr, ptr %m_node.i.i.i598, align 8 - %m_x.i.i.i599 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i2, i64 0, i32 3 - %196 = load i32, ptr %m_x.i.i.i599, align 8 + %tobool.not.i.i.i597 = icmp eq i8 %194, 0 + br i1 %tobool.not.i.i.i597, label %if.end.i.i.i633, label %if.then.i.i.i598 + +if.then.i.i.i598: ; preds = %land.rhs.i596 + %m_node.i.i.i599 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i2, i64 0, i32 2 + %195 = load ptr, ptr %m_node.i.i.i599, align 8 + %m_x.i.i.i600 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i2, i64 0, i32 3 + %196 = load i32, ptr %m_x.i.i.i600, align 8 %197 = load ptr, ptr %195, align 8 - %m_uppers.i.i.i.i600 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %195, i64 0, i32 2 - br label %if.end.i.i.i.i.i601 + %m_uppers.i.i.i.i601 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %195, i64 0, i32 2 + br label %if.end.i.i.i.i.i602 -if.then.i.i.i.i.i624: ; preds = %sw.epilog.i.i.i.i.i620 - tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(12) %m_uppers.i.i.i.i600) - %198 = load ptr, ptr %m_uppers.i.i.i.i600, align 8 +if.then.i.i.i.i.i625: ; preds = %sw.epilog.i.i.i.i.i621 + tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(12) %m_uppers.i.i.i.i601) + %198 = load ptr, ptr %m_uppers.i.i.i.i601, align 8 %199 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %198, i64 0, i32 3 %200 = load ptr, ptr %199, align 8 - %idxprom.i.i.i.i.i625 = zext i32 %196 to i64 - %arrayidx.i.i.i.i.i626 = getelementptr inbounds ptr, ptr %200, i64 %idxprom.i.i.i.i.i625 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i610 - -if.end.i.i.i.i.i601: ; preds = %sw.epilog.i.i.i.i.i620, %if.then.i.i.i597 - %c.017.in.i.i.i.i.i602 = phi ptr [ %m_uppers.i.i.i.i600, %if.then.i.i.i597 ], [ %c.1.in.i.i.i.i.i621, %sw.epilog.i.i.i.i.i620 ] - %trail_sz.016.i.i.i.i.i603 = phi i32 [ 0, %if.then.i.i.i597 ], [ %trail_sz.1.i.i.i.i.i622, %sw.epilog.i.i.i.i.i620 ] - %c.017.i.i.i.i.i604 = load ptr, ptr %c.017.in.i.i.i.i.i602, align 8 - %bf.load.i.i.i.i.i.i605 = load i32, ptr %c.017.i.i.i.i.i604, align 8 - %bf.lshr.i.i.i.i.i.i606 = lshr i32 %bf.load.i.i.i.i.i.i605, 30 - switch i32 %bf.lshr.i.i.i.i.i.i606, label %if.end.unreachabledefault.i.i.i.i.i631 [ - i32 0, label %sw.bb.i.i.i.i.i627 - i32 1, label %sw.bb.i.i.i.i.i627 - i32 2, label %sw.epilog.i.i.i.i.i620 - i32 3, label %sw.bb12.i.i.i.i.i607 + %idxprom.i.i.i.i.i626 = zext i32 %196 to i64 + %arrayidx.i.i.i.i.i627 = getelementptr inbounds ptr, ptr %200, i64 %idxprom.i.i.i.i.i626 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i611 + +if.end.i.i.i.i.i602: ; preds = %sw.epilog.i.i.i.i.i621, %if.then.i.i.i598 + %c.017.in.i.i.i.i.i603 = phi ptr [ %m_uppers.i.i.i.i601, %if.then.i.i.i598 ], [ %c.1.in.i.i.i.i.i622, %sw.epilog.i.i.i.i.i621 ] + %trail_sz.016.i.i.i.i.i604 = phi i32 [ 0, %if.then.i.i.i598 ], [ %trail_sz.1.i.i.i.i.i623, %sw.epilog.i.i.i.i.i621 ] + %c.017.i.i.i.i.i605 = load ptr, ptr %c.017.in.i.i.i.i.i603, align 8 + %bf.load.i.i.i.i.i.i606 = load i32, ptr %c.017.i.i.i.i.i605, align 8 + %bf.lshr.i.i.i.i.i.i607 = lshr i32 %bf.load.i.i.i.i.i.i606, 30 + switch i32 %bf.lshr.i.i.i.i.i.i607, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i.i.i628 + i32 1, label %sw.bb.i.i.i.i.i628 + i32 2, label %sw.epilog.i.i.i.i.i621 + i32 3, label %sw.bb12.i.i.i.i.i608 ] -sw.bb.i.i.i.i.i627: ; preds = %if.end.i.i.i.i.i601, %if.end.i.i.i.i.i601 - %201 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i604, i64 0, i32 1 +sw.bb.i.i.i.i.i628: ; preds = %if.end.i.i.i.i.i602, %if.end.i.i.i.i.i602 + %201 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i605, i64 0, i32 1 %202 = load i32, ptr %201, align 4 - %cmp4.i.i.i.i.i628 = icmp eq i32 %202, %196 - br i1 %cmp4.i.i.i.i.i628, label %if.then5.i.i.i.i.i629, label %sw.epilog.i.i.i.i.i620 + %cmp4.i.i.i.i.i629 = icmp eq i32 %202, %196 + br i1 %cmp4.i.i.i.i.i629, label %if.then5.i.i.i.i.i630, label %sw.epilog.i.i.i.i.i621 -if.then5.i.i.i.i.i629: ; preds = %sw.bb.i.i.i.i.i627 - %m_elem.i.i.i.i.i.i630 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i604, i64 0, i32 2 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i610 +if.then5.i.i.i.i.i630: ; preds = %sw.bb.i.i.i.i.i628 + %m_elem.i.i.i.i.i.i631 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i605, i64 0, i32 2 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i611 -sw.bb12.i.i.i.i.i607: ; preds = %if.end.i.i.i.i.i601 - %203 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i604, i64 0, i32 3 +sw.bb12.i.i.i.i.i608: ; preds = %if.end.i.i.i.i.i602 + %203 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i605, i64 0, i32 3 %204 = load ptr, ptr %203, align 8 - %idxprom13.i.i.i.i.i608 = zext i32 %196 to i64 - %arrayidx14.i.i.i.i.i609 = getelementptr inbounds ptr, ptr %204, i64 %idxprom13.i.i.i.i.i608 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i610 - -if.end.unreachabledefault.i.i.i.i.i631: ; preds = %if.end.i.i.i.i.i601 - unreachable - -sw.epilog.i.i.i.i.i620: ; preds = %sw.bb.i.i.i.i.i627, %if.end.i.i.i.i.i601 - %c.1.in.i.i.i.i.i621 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i604, i64 0, i32 3 - %trail_sz.1.i.i.i.i.i622 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i603, 1 - %exitcond.i.i.i.i.i623 = icmp eq i32 %trail_sz.1.i.i.i.i.i622, 17 - br i1 %exitcond.i.i.i.i.i623, label %if.then.i.i.i.i.i624, label %if.end.i.i.i.i.i601, !llvm.loop !15 - -_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i610: ; preds = %sw.bb12.i.i.i.i.i607, %if.then5.i.i.i.i.i629, %if.then.i.i.i.i.i624 - %retval.0.i.i.i.i.i611 = phi ptr [ %arrayidx.i.i.i.i.i626, %if.then.i.i.i.i.i624 ], [ %arrayidx14.i.i.i.i.i609, %sw.bb12.i.i.i.i.i607 ], [ %m_elem.i.i.i.i.i.i630, %if.then5.i.i.i.i.i629 ] - %205 = load ptr, ptr %retval.0.i.i.i.i.i611, align 8 - %cmp.i.i.i612 = icmp eq ptr %205, null - br i1 %cmp.i.i.i612, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread861, label %lor.rhs.i.i.i613 - -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread861: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i610 + %idxprom13.i.i.i.i.i609 = zext i32 %196 to i64 + %arrayidx14.i.i.i.i.i610 = getelementptr inbounds ptr, ptr %204, i64 %idxprom13.i.i.i.i.i609 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i611 + +sw.epilog.i.i.i.i.i621: ; preds = %sw.bb.i.i.i.i.i628, %if.end.i.i.i.i.i602 + %c.1.in.i.i.i.i.i622 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i605, i64 0, i32 3 + %trail_sz.1.i.i.i.i.i623 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i604, 1 + %exitcond.i.i.i.i.i624 = icmp eq i32 %trail_sz.1.i.i.i.i.i623, 17 + br i1 %exitcond.i.i.i.i.i624, label %if.then.i.i.i.i.i625, label %if.end.i.i.i.i.i602, !llvm.loop !15 + +_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i611: ; preds = %sw.bb12.i.i.i.i.i608, %if.then5.i.i.i.i.i630, %if.then.i.i.i.i.i625 + %retval.0.i.i.i.i.i612 = phi ptr [ %arrayidx.i.i.i.i.i627, %if.then.i.i.i.i.i625 ], [ %arrayidx14.i.i.i.i.i610, %sw.bb12.i.i.i.i.i608 ], [ %m_elem.i.i.i.i.i.i631, %if.then5.i.i.i.i.i630 ] + %205 = load ptr, ptr %retval.0.i.i.i.i.i612, align 8 + %cmp.i.i.i613 = icmp eq ptr %205, null + br i1 %cmp.i.i.i613, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread862, label %lor.rhs.i.i.i614 + +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread862: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i611 %206 = or i1 %retval.0.i.i495, %retval.0.i.i569 br label %cond.end -lor.rhs.i.i.i613: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i610 - %m_open.i.i.i.i614 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %205, i64 0, i32 1 - %bf.load.i.i.i.i615 = load i32, ptr %m_open.i.i.i.i614, align 8 - %207 = and i32 %bf.load.i.i.i.i615, 1073741824 - %tobool.i.i.i.i616 = icmp ne i32 %207, 0 - br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635 +lor.rhs.i.i.i614: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i611 + %m_open.i.i.i.i615 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %205, i64 0, i32 1 + %bf.load.i.i.i.i616 = load i32, ptr %m_open.i.i.i.i615, align 8 + %207 = and i32 %bf.load.i.i.i.i616, 1073741824 + %tobool.i.i.i.i617 = icmp ne i32 %207, 0 + br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636 -if.end.i.i.i632: ; preds = %land.rhs.i595 - %m_u_open.i.i.i633 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i2, i64 0, i32 11 - %208 = load i8, ptr %m_u_open.i.i.i633, align 1 +if.end.i.i.i633: ; preds = %land.rhs.i596 + %m_u_open.i.i.i634 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i2, i64 0, i32 11 + %208 = load i8, ptr %m_u_open.i.i.i634, align 1 %209 = and i8 %208, 1 - %tobool3.i.i.i634 = icmp ne i8 %209, 0 - br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635 + %tobool3.i.i.i635 = icmp ne i8 %209, 0 + br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635: ; preds = %lor.rhs.i.i.i613, %if.end.i.i.i632 - %retval.0.i.i.i618 = phi i1 [ %tobool3.i.i.i634, %if.end.i.i.i632 ], [ %tobool.i.i.i.i616, %lor.rhs.i.i.i613 ] - %retval.0.i.i.i618.fr = freeze i1 %retval.0.i.i.i618 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636: ; preds = %lor.rhs.i.i.i614, %if.end.i.i.i633 + %retval.0.i.i.i619 = phi i1 [ %tobool3.i.i.i635, %if.end.i.i.i633 ], [ %tobool.i.i.i.i617, %lor.rhs.i.i.i614 ] + %retval.0.i.i.i619.fr = freeze i1 %retval.0.i.i.i619 %210 = or i1 %retval.0.i.i495, %retval.0.i.i569 - %spec.select = select i1 %retval.0.i.i.i618.fr, i1 %210, i1 false + %spec.select = select i1 %retval.0.i.i.i619.fr, i1 %210, i1 false br label %cond.end -cond.end: ; preds = %if.end.i.i.i, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread861, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit - %cond = phi i1 [ false, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit ], [ %192, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread ], [ %206, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635.thread861 ], [ %spec.select, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit635 ], [ false, %if.end.i.i.i ] +cond.end: ; preds = %if.end.i.i.i, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread862, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit + %cond = phi i1 [ false, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit ], [ %192, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread ], [ %206, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636.thread862 ], [ %spec.select, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit636 ], [ false, %if.end.i.i.i ] %frombool.i.i = zext i1 %cond to i8 - %m_l_open.i.i636 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i, ptr %m_l_open.i.i636, align 1 + %m_l_open.i.i637 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i, ptr %m_l_open.i.i637, align 1 %211 = or i1 %retval.0.i.i460, %retval.0.i.i531 - %frombool.i.i637 = zext i1 %211 to i8 - %m_u_open.i.i638 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i637, ptr %m_u_open.i.i638, align 1 + %frombool.i.i638 = zext i1 %211 to i8 + %m_u_open.i.i639 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i638, ptr %m_u_open.i.i639, align 1 %m_c.i = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 %212 = load ptr, ptr %m_c.i, align 8 %m_mode.i.i.i.i = getelementptr inbounds %class.f2n, ptr %212, i64 0, i32 1 @@ -13300,130 +13192,127 @@ cond.end: ; preds = %if.end.i.i.i, %_ZNK %213 = load ptr, ptr %m_c.i, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %213, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) %214 = load ptr, ptr %m_c.i, align 8 - %m_mode.i.i.i.i641 = getelementptr inbounds %class.f2n, ptr %214, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i641, align 8 + %m_mode.i.i.i.i642 = getelementptr inbounds %class.f2n, ptr %214, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i642, align 8 %215 = load ptr, ptr %m_c.i, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %215, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 if.else: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit591 - %call.i643 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call.i643, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit, label %if.else45 + %call.i644 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call.i644, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit, label %if.else45 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit: ; preds = %if.else - %call2.i645 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call2.i645, label %if.then34, label %if.else45 + %call2.i646 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call2.i646, label %if.then34, label %if.else45 if.then34: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit %216 = or i1 %retval.0.i.i460, %retval.0.i.i569 - %frombool.i.i646 = zext i1 %216 to i8 - %m_l_open.i.i647 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i646, ptr %m_l_open.i.i647, align 1 + %frombool.i.i647 = zext i1 %216 to i8 + %m_l_open.i.i648 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i647, ptr %m_l_open.i.i648, align 1 %217 = or i1 %retval.0.i.i460, %retval.0.i.i531 - %frombool.i.i648 = zext i1 %217 to i8 - %m_u_open.i.i649 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i648, ptr %m_u_open.i.i649, align 1 - %m_c.i650 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %218 = load ptr, ptr %m_c.i650, align 8 - %m_mode.i.i.i.i651 = getelementptr inbounds %class.f2n, ptr %218, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i651, align 8 - %219 = load ptr, ptr %m_c.i650, align 8 + %frombool.i.i649 = zext i1 %217 to i8 + %m_u_open.i.i650 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i649, ptr %m_u_open.i.i650, align 1 + %m_c.i651 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %218 = load ptr, ptr %m_c.i651, align 8 + %m_mode.i.i.i.i652 = getelementptr inbounds %class.f2n, ptr %218, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i652, align 8 + %219 = load ptr, ptr %m_c.i651, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %219, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %220 = load ptr, ptr %m_c.i650, align 8 - %m_mode.i.i.i.i654 = getelementptr inbounds %class.f2n, ptr %220, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i654, align 8 - %221 = load ptr, ptr %m_c.i650, align 8 + %220 = load ptr, ptr %m_c.i651, align 8 + %m_mode.i.i.i.i655 = getelementptr inbounds %class.f2n, ptr %220, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i655, align 8 + %221 = load ptr, ptr %m_c.i651, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %221, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 if.else45: ; preds = %if.else, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit - %call.i656 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) - br i1 %call.i656, label %land.rhs.i657, label %lor.lhs.false47 + %call.i657 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) + br i1 %call.i657, label %land.rhs.i658, label %lor.lhs.false47 -land.rhs.i657: ; preds = %if.else45 +land.rhs.i658: ; preds = %if.else45 %222 = load i8, ptr %i1, align 8 %223 = and i8 %222, 1 - %tobool.not.i.i.i658 = icmp eq i8 %223, 0 - br i1 %tobool.not.i.i.i658, label %if.end.i.i.i694, label %if.then.i.i.i659 - -if.then.i.i.i659: ; preds = %land.rhs.i657 - %m_node.i.i.i660 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 - %224 = load ptr, ptr %m_node.i.i.i660, align 8 - %m_x.i.i.i661 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 - %225 = load i32, ptr %m_x.i.i.i661, align 8 + %tobool.not.i.i.i659 = icmp eq i8 %223, 0 + br i1 %tobool.not.i.i.i659, label %if.end.i.i.i695, label %if.then.i.i.i660 + +if.then.i.i.i660: ; preds = %land.rhs.i658 + %m_node.i.i.i661 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 + %224 = load ptr, ptr %m_node.i.i.i661, align 8 + %m_x.i.i.i662 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 + %225 = load i32, ptr %m_x.i.i.i662, align 8 %226 = load ptr, ptr %224, align 8 - %m_uppers.i.i.i.i662 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %224, i64 0, i32 2 - br label %if.end.i.i.i.i.i663 + %m_uppers.i.i.i.i663 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %224, i64 0, i32 2 + br label %if.end.i.i.i.i.i664 -if.then.i.i.i.i.i686: ; preds = %sw.epilog.i.i.i.i.i682 - tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull align 8 dereferenceable(12) %m_uppers.i.i.i.i662) - %227 = load ptr, ptr %m_uppers.i.i.i.i662, align 8 +if.then.i.i.i.i.i687: ; preds = %sw.epilog.i.i.i.i.i683 + tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull align 8 dereferenceable(12) %m_uppers.i.i.i.i663) + %227 = load ptr, ptr %m_uppers.i.i.i.i663, align 8 %228 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %227, i64 0, i32 3 %229 = load ptr, ptr %228, align 8 - %idxprom.i.i.i.i.i687 = zext i32 %225 to i64 - %arrayidx.i.i.i.i.i688 = getelementptr inbounds ptr, ptr %229, i64 %idxprom.i.i.i.i.i687 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i672 - -if.end.i.i.i.i.i663: ; preds = %sw.epilog.i.i.i.i.i682, %if.then.i.i.i659 - %c.017.in.i.i.i.i.i664 = phi ptr [ %m_uppers.i.i.i.i662, %if.then.i.i.i659 ], [ %c.1.in.i.i.i.i.i683, %sw.epilog.i.i.i.i.i682 ] - %trail_sz.016.i.i.i.i.i665 = phi i32 [ 0, %if.then.i.i.i659 ], [ %trail_sz.1.i.i.i.i.i684, %sw.epilog.i.i.i.i.i682 ] - %c.017.i.i.i.i.i666 = load ptr, ptr %c.017.in.i.i.i.i.i664, align 8 - %bf.load.i.i.i.i.i.i667 = load i32, ptr %c.017.i.i.i.i.i666, align 8 - %bf.lshr.i.i.i.i.i.i668 = lshr i32 %bf.load.i.i.i.i.i.i667, 30 - switch i32 %bf.lshr.i.i.i.i.i.i668, label %if.end.unreachabledefault.i.i.i.i.i693 [ - i32 0, label %sw.bb.i.i.i.i.i689 - i32 1, label %sw.bb.i.i.i.i.i689 - i32 2, label %sw.epilog.i.i.i.i.i682 - i32 3, label %sw.bb12.i.i.i.i.i669 + %idxprom.i.i.i.i.i688 = zext i32 %225 to i64 + %arrayidx.i.i.i.i.i689 = getelementptr inbounds ptr, ptr %229, i64 %idxprom.i.i.i.i.i688 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i673 + +if.end.i.i.i.i.i664: ; preds = %sw.epilog.i.i.i.i.i683, %if.then.i.i.i660 + %c.017.in.i.i.i.i.i665 = phi ptr [ %m_uppers.i.i.i.i663, %if.then.i.i.i660 ], [ %c.1.in.i.i.i.i.i684, %sw.epilog.i.i.i.i.i683 ] + %trail_sz.016.i.i.i.i.i666 = phi i32 [ 0, %if.then.i.i.i660 ], [ %trail_sz.1.i.i.i.i.i685, %sw.epilog.i.i.i.i.i683 ] + %c.017.i.i.i.i.i667 = load ptr, ptr %c.017.in.i.i.i.i.i665, align 8 + %bf.load.i.i.i.i.i.i668 = load i32, ptr %c.017.i.i.i.i.i667, align 8 + %bf.lshr.i.i.i.i.i.i669 = lshr i32 %bf.load.i.i.i.i.i.i668, 30 + switch i32 %bf.lshr.i.i.i.i.i.i669, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i.i.i690 + i32 1, label %sw.bb.i.i.i.i.i690 + i32 2, label %sw.epilog.i.i.i.i.i683 + i32 3, label %sw.bb12.i.i.i.i.i670 ] -sw.bb.i.i.i.i.i689: ; preds = %if.end.i.i.i.i.i663, %if.end.i.i.i.i.i663 - %230 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i666, i64 0, i32 1 +sw.bb.i.i.i.i.i690: ; preds = %if.end.i.i.i.i.i664, %if.end.i.i.i.i.i664 + %230 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i667, i64 0, i32 1 %231 = load i32, ptr %230, align 4 - %cmp4.i.i.i.i.i690 = icmp eq i32 %231, %225 - br i1 %cmp4.i.i.i.i.i690, label %if.then5.i.i.i.i.i691, label %sw.epilog.i.i.i.i.i682 + %cmp4.i.i.i.i.i691 = icmp eq i32 %231, %225 + br i1 %cmp4.i.i.i.i.i691, label %if.then5.i.i.i.i.i692, label %sw.epilog.i.i.i.i.i683 -if.then5.i.i.i.i.i691: ; preds = %sw.bb.i.i.i.i.i689 - %m_elem.i.i.i.i.i.i692 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i666, i64 0, i32 2 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i672 +if.then5.i.i.i.i.i692: ; preds = %sw.bb.i.i.i.i.i690 + %m_elem.i.i.i.i.i.i693 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i667, i64 0, i32 2 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i673 -sw.bb12.i.i.i.i.i669: ; preds = %if.end.i.i.i.i.i663 - %232 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i666, i64 0, i32 3 +sw.bb12.i.i.i.i.i670: ; preds = %if.end.i.i.i.i.i664 + %232 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i667, i64 0, i32 3 %233 = load ptr, ptr %232, align 8 - %idxprom13.i.i.i.i.i670 = zext i32 %225 to i64 - %arrayidx14.i.i.i.i.i671 = getelementptr inbounds ptr, ptr %233, i64 %idxprom13.i.i.i.i.i670 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i672 - -if.end.unreachabledefault.i.i.i.i.i693: ; preds = %if.end.i.i.i.i.i663 - unreachable - -sw.epilog.i.i.i.i.i682: ; preds = %sw.bb.i.i.i.i.i689, %if.end.i.i.i.i.i663 - %c.1.in.i.i.i.i.i683 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i666, i64 0, i32 3 - %trail_sz.1.i.i.i.i.i684 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i665, 1 - %exitcond.i.i.i.i.i685 = icmp eq i32 %trail_sz.1.i.i.i.i.i684, 17 - br i1 %exitcond.i.i.i.i.i685, label %if.then.i.i.i.i.i686, label %if.end.i.i.i.i.i663, !llvm.loop !15 - -_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i672: ; preds = %sw.bb12.i.i.i.i.i669, %if.then5.i.i.i.i.i691, %if.then.i.i.i.i.i686 - %retval.0.i.i.i.i.i673 = phi ptr [ %arrayidx.i.i.i.i.i688, %if.then.i.i.i.i.i686 ], [ %arrayidx14.i.i.i.i.i671, %sw.bb12.i.i.i.i.i669 ], [ %m_elem.i.i.i.i.i.i692, %if.then5.i.i.i.i.i691 ] - %234 = load ptr, ptr %retval.0.i.i.i.i.i673, align 8 - %cmp.i.i.i674 = icmp eq ptr %234, null - br i1 %cmp.i.i.i674, label %lor.lhs.false47, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit697 - -if.end.i.i.i694: ; preds = %land.rhs.i657 - %m_u_open.i.i.i695 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 11 - %235 = load i8, ptr %m_u_open.i.i.i695, align 1 + %idxprom13.i.i.i.i.i671 = zext i32 %225 to i64 + %arrayidx14.i.i.i.i.i672 = getelementptr inbounds ptr, ptr %233, i64 %idxprom13.i.i.i.i.i671 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i673 + +sw.epilog.i.i.i.i.i683: ; preds = %sw.bb.i.i.i.i.i690, %if.end.i.i.i.i.i664 + %c.1.in.i.i.i.i.i684 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i667, i64 0, i32 3 + %trail_sz.1.i.i.i.i.i685 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i666, 1 + %exitcond.i.i.i.i.i686 = icmp eq i32 %trail_sz.1.i.i.i.i.i685, 17 + br i1 %exitcond.i.i.i.i.i686, label %if.then.i.i.i.i.i687, label %if.end.i.i.i.i.i664, !llvm.loop !15 + +_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i673: ; preds = %sw.bb12.i.i.i.i.i670, %if.then5.i.i.i.i.i692, %if.then.i.i.i.i.i687 + %retval.0.i.i.i.i.i674 = phi ptr [ %arrayidx.i.i.i.i.i689, %if.then.i.i.i.i.i687 ], [ %arrayidx14.i.i.i.i.i672, %sw.bb12.i.i.i.i.i670 ], [ %m_elem.i.i.i.i.i.i693, %if.then5.i.i.i.i.i692 ] + %234 = load ptr, ptr %retval.0.i.i.i.i.i674, align 8 + %cmp.i.i.i675 = icmp eq ptr %234, null + br i1 %cmp.i.i.i675, label %lor.lhs.false47, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit698 + +if.end.i.i.i695: ; preds = %land.rhs.i658 + %m_u_open.i.i.i696 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 11 + %235 = load i8, ptr %m_u_open.i.i.i696, align 1 %236 = and i8 %235, 1 - %tobool3.i.i.i696.not = icmp eq i8 %236, 0 - br i1 %tobool3.i.i.i696.not, label %cond.end55, label %lor.lhs.false47 + %tobool3.i.i.i697.not = icmp eq i8 %236, 0 + br i1 %tobool3.i.i.i697.not, label %cond.end55, label %lor.lhs.false47 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit697: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i672 - %m_open.i.i.i.i676 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %234, i64 0, i32 1 - %bf.load.i.i.i.i677 = load i32, ptr %m_open.i.i.i.i676, align 8 - %237 = and i32 %bf.load.i.i.i.i677, 1073741824 - %tobool.i.i.i.i678.not = icmp eq i32 %237, 0 - br i1 %tobool.i.i.i.i678.not, label %cond.end55, label %lor.lhs.false47 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit698: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i673 + %m_open.i.i.i.i677 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %234, i64 0, i32 1 + %bf.load.i.i.i.i678 = load i32, ptr %m_open.i.i.i.i677, align 8 + %237 = and i32 %bf.load.i.i.i.i678, 1073741824 + %tobool.i.i.i.i679.not = icmp eq i32 %237, 0 + br i1 %tobool.i.i.i.i679.not, label %cond.end55, label %lor.lhs.false47 -lor.lhs.false47: ; preds = %if.end.i.i.i694, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i672, %if.else45, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit697 +lor.lhs.false47: ; preds = %if.end.i.i.i695, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i673, %if.else45, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit698 %call48 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) %238 = or i1 %retval.0.i.i495, %retval.0.i.i531 %not.call48 = xor i1 %call48, true @@ -13431,74 +13320,74 @@ lor.lhs.false47: ; preds = %if.end.i.i.i694, %_ %239 = zext i1 %spec.select200 to i8 br label %cond.end55 -cond.end55: ; preds = %if.end.i.i.i694, %lor.lhs.false47, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit697 - %cond56 = phi i8 [ 0, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit697 ], [ %239, %lor.lhs.false47 ], [ 0, %if.end.i.i.i694 ] - %m_u_open.i.i699 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %cond56, ptr %m_u_open.i.i699, align 1 +cond.end55: ; preds = %if.end.i.i.i695, %lor.lhs.false47, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit698 + %cond56 = phi i8 [ 0, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit698 ], [ %239, %lor.lhs.false47 ], [ 0, %if.end.i.i.i695 ] + %m_u_open.i.i700 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %cond56, ptr %m_u_open.i.i700, align 1 %240 = or i1 %retval.0.i.i460, %retval.0.i.i569 - %frombool.i.i700 = zext i1 %240 to i8 - %m_l_open.i.i701 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i700, ptr %m_l_open.i.i701, align 1 - %m_c.i702 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %241 = load ptr, ptr %m_c.i702, align 8 - %m_mode.i.i.i.i703 = getelementptr inbounds %class.f2n, ptr %241, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i703, align 8 - %242 = load ptr, ptr %m_c.i702, align 8 + %frombool.i.i701 = zext i1 %240 to i8 + %m_l_open.i.i702 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i701, ptr %m_l_open.i.i702, align 1 + %m_c.i703 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %241 = load ptr, ptr %m_c.i703, align 8 + %m_mode.i.i.i.i704 = getelementptr inbounds %class.f2n, ptr %241, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i704, align 8 + %242 = load ptr, ptr %m_c.i703, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %242, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %243 = load ptr, ptr %m_c.i702, align 8 - %m_mode.i.i.i.i706 = getelementptr inbounds %class.f2n, ptr %243, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i706, align 8 - %244 = load ptr, ptr %m_c.i702, align 8 + %243 = load ptr, ptr %m_c.i703, align 8 + %m_mode.i.i.i.i707 = getelementptr inbounds %class.f2n, ptr %243, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i707, align 8 + %244 = load ptr, ptr %m_c.i703, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %244, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 if.else65: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit - %call.i708 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) - br i1 %call.i708, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit711, label %if.else151 + %call.i709 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) + br i1 %call.i709, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit712, label %if.else151 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit711: ; preds = %if.else65 - %call2.i710 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) - br i1 %call2.i710, label %if.then67, label %if.else151 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit712: ; preds = %if.else65 + %call2.i711 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) + br i1 %call2.i711, label %if.then67, label %if.else151 -if.then67: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit711 - %call.i712 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call.i712, label %if.then69, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit715 +if.then67: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit712 + %call.i713 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call.i713, label %if.then69, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit716 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit715: ; preds = %if.then67 - %call2.i714 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call2.i714, label %if.then69, label %if.else80 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit716: ; preds = %if.then67 + %call2.i715 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call2.i715, label %if.then69, label %if.else80 -if.then69: ; preds = %if.then67, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit715 +if.then69: ; preds = %if.then67, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit716 %245 = or i1 %retval.0.i.i495, %retval.0.i.i531 - %frombool.i.i716 = zext i1 %245 to i8 - %m_l_open.i.i717 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i716, ptr %m_l_open.i.i717, align 1 + %frombool.i.i717 = zext i1 %245 to i8 + %m_l_open.i.i718 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i717, ptr %m_l_open.i.i718, align 1 %246 = or i1 %retval.0.i.i460, %retval.0.i.i531 - %frombool.i.i718 = zext i1 %246 to i8 - %m_u_open.i.i719 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i718, ptr %m_u_open.i.i719, align 1 - %m_c.i720 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %247 = load ptr, ptr %m_c.i720, align 8 - %m_mode.i.i.i.i721 = getelementptr inbounds %class.f2n, ptr %247, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i721, align 8 - %248 = load ptr, ptr %m_c.i720, align 8 + %frombool.i.i719 = zext i1 %246 to i8 + %m_u_open.i.i720 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i719, ptr %m_u_open.i.i720, align 1 + %m_c.i721 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %247 = load ptr, ptr %m_c.i721, align 8 + %m_mode.i.i.i.i722 = getelementptr inbounds %class.f2n, ptr %247, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i722, align 8 + %248 = load ptr, ptr %m_c.i721, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %248, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %249 = load ptr, ptr %m_c.i720, align 8 - %m_mode.i.i.i.i724 = getelementptr inbounds %class.f2n, ptr %249, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i724, align 8 - %250 = load ptr, ptr %m_c.i720, align 8 + %249 = load ptr, ptr %m_c.i721, align 8 + %m_mode.i.i.i.i725 = getelementptr inbounds %class.f2n, ptr %249, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i725, align 8 + %250 = load ptr, ptr %m_c.i721, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %250, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 -if.else80: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit715 - %call.i726 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call.i726, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit729, label %if.else138 +if.else80: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit716 + %call.i727 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call.i727, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit730, label %if.else138 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit729: ; preds = %if.else80 - %call2.i728 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call2.i728, label %if.then82, label %if.else138 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit730: ; preds = %if.else80 + %call2.i729 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call2.i729, label %if.then82, label %if.else138 -if.then82: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit729 +if.then82: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit730 %m_mul_ad = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 4 %m_mul_bc = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 5 %m_mul_ac = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 6 @@ -13507,29 +13396,29 @@ if.then82: ; preds = %_ZNK16interval_mana %252 = or i1 %retval.0.i.i495, %retval.0.i.i531 %253 = or i1 %retval.0.i.i460, %retval.0.i.i531 %254 = or i1 %retval.0.i.i495, %retval.0.i.i569 - %m_c.i730 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %255 = load ptr, ptr %m_c.i730, align 8 - %m_mode.i.i.i.i731 = getelementptr inbounds %class.f2n, ptr %255, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i731, align 8 - %256 = load ptr, ptr %m_c.i730, align 8 + %m_c.i731 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %255 = load ptr, ptr %m_c.i731, align 8 + %m_mode.i.i.i.i732 = getelementptr inbounds %class.f2n, ptr %255, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i732, align 8 + %256 = load ptr, ptr %m_c.i731, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %256, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ad, ptr noundef nonnull align 4 dereferenceable(4) %ad_k) - %257 = load ptr, ptr %m_c.i730, align 8 + %257 = load ptr, ptr %m_c.i731, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %257, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bc, ptr noundef nonnull align 4 dereferenceable(4) %bc_k) - %258 = load ptr, ptr %m_c.i730, align 8 - %m_mode.i.i.i.i735 = getelementptr inbounds %class.f2n, ptr %258, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i735, align 8 - %259 = load ptr, ptr %m_c.i730, align 8 + %258 = load ptr, ptr %m_c.i731, align 8 + %m_mode.i.i.i.i736 = getelementptr inbounds %class.f2n, ptr %258, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i736, align 8 + %259 = load ptr, ptr %m_c.i731, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %259, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ac, ptr noundef nonnull align 4 dereferenceable(4) %ac_k) - %260 = load ptr, ptr %m_c.i730, align 8 + %260 = load ptr, ptr %m_c.i731, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %260, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bd, ptr noundef nonnull align 4 dereferenceable(4) %bd_k) - %261 = load ptr, ptr %m_c.i730, align 8 + %261 = load ptr, ptr %m_c.i731, align 8 %262 = load i32, ptr %ad_k, align 4 %263 = load i32, ptr %bc_k, align 4 %call108 = call noundef zeroext i1 @_Z2ltI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_(ptr noundef nonnull align 8 dereferenceable(88) %261, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ad, i32 noundef %262, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bc, i32 noundef %263) br i1 %call108, label %if.end121, label %lor.lhs.false109 lor.lhs.false109: ; preds = %if.then82 - %264 = load ptr, ptr %m_c.i730, align 8 + %264 = load ptr, ptr %m_c.i731, align 8 %265 = load i32, ptr %ad_k, align 4 %266 = load i32, ptr %bc_k, align 4 %cmp.i = icmp eq i32 %265, 1 @@ -13537,9 +13426,9 @@ lor.lhs.false109: ; preds = %if.then82 if.then.i: ; preds = %lor.lhs.false109 %cmp1.i = icmp eq i32 %266, 1 - br i1 %cmp1.i, label %land.rhs.i740, label %if.else118 + br i1 %cmp1.i, label %land.rhs.i741, label %if.else118 -land.rhs.i740: ; preds = %if.then.i +land.rhs.i741: ; preds = %if.then.i %267 = load ptr, ptr %264, align 8 %call2.i.i = call noundef zeroext i1 @_ZN11mpf_manager2eqERK3mpfS2_(ptr noundef nonnull align 8 dereferenceable(840) %267, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ad, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bc) br label %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit @@ -13548,8 +13437,8 @@ if.else.i: ; preds = %lor.lhs.false109 %cmp2.i = icmp eq i32 %265, %266 br label %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit -_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit: ; preds = %land.rhs.i740, %if.else.i - %retval.0.i = phi i1 [ %cmp2.i, %if.else.i ], [ %call2.i.i, %land.rhs.i740 ] +_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit: ; preds = %land.rhs.i741, %if.else.i + %retval.0.i = phi i1 [ %cmp2.i, %if.else.i ], [ %call2.i.i, %land.rhs.i741 ] %268 = and i1 %252, %retval.0.i %269 = xor i1 %268, true %brmerge201 = or i1 %251, %269 @@ -13565,178 +13454,175 @@ if.end121: ; preds = %if.then82, %_Z2eqI3 call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bc.sink) #20 %storemerge = load i32, ptr %storemerge.in, align 4 store i32 %storemerge, ptr %new_l_kind, align 4 - %frombool.i.i745 = zext i1 %.sink to i8 - %m_l_open.i.i746 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i745, ptr %m_l_open.i.i746, align 1 - %270 = load ptr, ptr %m_c.i730, align 8 + %frombool.i.i746 = zext i1 %.sink to i8 + %m_l_open.i.i747 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i746, ptr %m_l_open.i.i747, align 1 + %270 = load ptr, ptr %m_c.i731, align 8 %271 = load i32, ptr %ac_k, align 4 %272 = load i32, ptr %bd_k, align 4 %call123 = call noundef zeroext i1 @_Z2gtI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_(ptr noundef nonnull align 8 dereferenceable(88) %270, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ac, i32 noundef %271, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bd, i32 noundef %272) br i1 %call123, label %if.then131, label %lor.lhs.false124 lor.lhs.false124: ; preds = %if.end121 - %273 = load ptr, ptr %m_c.i730, align 8 + %273 = load ptr, ptr %m_c.i731, align 8 %274 = load i32, ptr %ac_k, align 4 %275 = load i32, ptr %bd_k, align 4 - %cmp.i749 = icmp eq i32 %274, 1 - br i1 %cmp.i749, label %if.then.i753, label %if.else.i750 + %cmp.i750 = icmp eq i32 %274, 1 + br i1 %cmp.i750, label %if.then.i754, label %if.else.i751 -if.then.i753: ; preds = %lor.lhs.false124 - %cmp1.i754 = icmp eq i32 %275, 1 - br i1 %cmp1.i754, label %land.rhs.i755, label %if.else134 +if.then.i754: ; preds = %lor.lhs.false124 + %cmp1.i755 = icmp eq i32 %275, 1 + br i1 %cmp1.i755, label %land.rhs.i756, label %if.else134 -land.rhs.i755: ; preds = %if.then.i753 +land.rhs.i756: ; preds = %if.then.i754 %276 = load ptr, ptr %273, align 8 - %call2.i.i756 = call noundef zeroext i1 @_ZN11mpf_manager2eqERK3mpfS2_(ptr noundef nonnull align 8 dereferenceable(840) %276, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ac, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bd) - br label %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit757 + %call2.i.i757 = call noundef zeroext i1 @_ZN11mpf_manager2eqERK3mpfS2_(ptr noundef nonnull align 8 dereferenceable(840) %276, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ac, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bd) + br label %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit758 -if.else.i750: ; preds = %lor.lhs.false124 - %cmp2.i751 = icmp eq i32 %274, %275 - br label %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit757 +if.else.i751: ; preds = %lor.lhs.false124 + %cmp2.i752 = icmp eq i32 %274, %275 + br label %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit758 -_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit757: ; preds = %land.rhs.i755, %if.else.i750 - %retval.0.i752 = phi i1 [ %cmp2.i751, %if.else.i750 ], [ %call2.i.i756, %land.rhs.i755 ] - %277 = and i1 %254, %retval.0.i752 +_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit758: ; preds = %land.rhs.i756, %if.else.i751 + %retval.0.i753 = phi i1 [ %cmp2.i752, %if.else.i751 ], [ %call2.i.i757, %land.rhs.i756 ] + %277 = and i1 %254, %retval.0.i753 %278 = xor i1 %277, true %brmerge204 = or i1 %253, %278 br i1 %brmerge204, label %if.else134, label %if.then131 -if.then131: ; preds = %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit757, %if.end121 +if.then131: ; preds = %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit758, %if.end121 call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_ac) #20 %279 = load i32, ptr %ac_k, align 4 store i32 %279, ptr %new_u_kind, align 4 - %frombool.i.i759 = zext i1 %253 to i8 - %m_u_open.i.i760 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i759, ptr %m_u_open.i.i760, align 1 + %frombool.i.i760 = zext i1 %253 to i8 + %m_u_open.i.i761 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i760, ptr %m_u_open.i.i761, align 1 br label %if.end205 -if.else134: ; preds = %if.then.i753, %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit757 +if.else134: ; preds = %if.then.i754, %_Z2eqI3f2nI11mpf_managerEEbRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_.exit758 call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 8 dereferenceable(32) %m_mul_bd) #20 %280 = load i32, ptr %bd_k, align 4 store i32 %280, ptr %new_u_kind, align 4 - %frombool.i.i762 = zext i1 %254 to i8 - %m_u_open.i.i763 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i762, ptr %m_u_open.i.i763, align 1 + %frombool.i.i763 = zext i1 %254 to i8 + %m_u_open.i.i764 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i763, ptr %m_u_open.i.i764, align 1 br label %if.end205 -if.else138: ; preds = %if.else80, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit729 +if.else138: ; preds = %if.else80, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit730 %281 = or i1 %retval.0.i.i460, %retval.0.i.i569 - %frombool.i.i764 = zext i1 %281 to i8 - %m_l_open.i.i765 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i764, ptr %m_l_open.i.i765, align 1 + %frombool.i.i765 = zext i1 %281 to i8 + %m_l_open.i.i766 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i765, ptr %m_l_open.i.i766, align 1 %282 = or i1 %retval.0.i.i495, %retval.0.i.i569 - %frombool.i.i766 = zext i1 %282 to i8 - %m_u_open.i.i767 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i766, ptr %m_u_open.i.i767, align 1 - %m_c.i768 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %283 = load ptr, ptr %m_c.i768, align 8 - %m_mode.i.i.i.i769 = getelementptr inbounds %class.f2n, ptr %283, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i769, align 8 - %284 = load ptr, ptr %m_c.i768, align 8 + %frombool.i.i767 = zext i1 %282 to i8 + %m_u_open.i.i768 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i767, ptr %m_u_open.i.i768, align 1 + %m_c.i769 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %283 = load ptr, ptr %m_c.i769, align 8 + %m_mode.i.i.i.i770 = getelementptr inbounds %class.f2n, ptr %283, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i770, align 8 + %284 = load ptr, ptr %m_c.i769, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %284, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %285 = load ptr, ptr %m_c.i768, align 8 - %m_mode.i.i.i.i772 = getelementptr inbounds %class.f2n, ptr %285, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i772, align 8 - %286 = load ptr, ptr %m_c.i768, align 8 + %285 = load ptr, ptr %m_c.i769, align 8 + %m_mode.i.i.i.i773 = getelementptr inbounds %class.f2n, ptr %285, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i773, align 8 + %286 = load ptr, ptr %m_c.i769, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %286, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 -if.else151: ; preds = %if.else65, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit711 - %call.i774 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call.i774, label %if.then153, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit777 +if.else151: ; preds = %if.else65, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit712 + %call.i775 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call.i775, label %if.then153, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit778 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit777: ; preds = %if.else151 - %call2.i776 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call2.i776, label %if.then153, label %if.else171 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit778: ; preds = %if.else151 + %call2.i777 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13upper_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call2.i777, label %if.then153, label %if.else171 -if.then153: ; preds = %if.else151, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit777 - %call.i778 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13lower_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) - br i1 %call.i778, label %land.rhs.i779, label %lor.lhs.false155 +if.then153: ; preds = %if.else151, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit778 + %call.i779 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13lower_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) + br i1 %call.i779, label %land.rhs.i780, label %lor.lhs.false155 -land.rhs.i779: ; preds = %if.then153 +land.rhs.i780: ; preds = %if.then153 %287 = load i8, ptr %i1, align 8 %288 = and i8 %287, 1 - %tobool.not.i.i.i780 = icmp eq i8 %288, 0 - br i1 %tobool.not.i.i.i780, label %if.end.i.i.i813, label %if.then.i.i.i781 - -if.then.i.i.i781: ; preds = %land.rhs.i779 - %m_node.i.i.i782 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 - %289 = load ptr, ptr %m_node.i.i.i782, align 8 - %m_x.i.i.i783 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 - %290 = load i32, ptr %m_x.i.i.i783, align 8 + %tobool.not.i.i.i781 = icmp eq i8 %288, 0 + br i1 %tobool.not.i.i.i781, label %if.end.i.i.i814, label %if.then.i.i.i782 + +if.then.i.i.i782: ; preds = %land.rhs.i780 + %m_node.i.i.i783 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 + %289 = load ptr, ptr %m_node.i.i.i783, align 8 + %m_x.i.i.i784 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 + %290 = load i32, ptr %m_x.i.i.i784, align 8 %291 = load ptr, ptr %289, align 8 %m_lowers.i.i.i.i = getelementptr inbounds %"class.subpaving::context_t::node", ptr %289, i64 0, i32 1 - br label %if.end.i.i.i.i.i784 + br label %if.end.i.i.i.i.i785 -if.then.i.i.i.i.i805: ; preds = %sw.epilog.i.i.i.i.i801 +if.then.i.i.i.i.i806: ; preds = %sw.epilog.i.i.i.i.i802 tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef nonnull align 8 dereferenceable(12) %m_lowers.i.i.i.i) %292 = load ptr, ptr %m_lowers.i.i.i.i, align 8 %293 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %292, i64 0, i32 3 %294 = load ptr, ptr %293, align 8 - %idxprom.i.i.i.i.i806 = zext i32 %290 to i64 - %arrayidx.i.i.i.i.i807 = getelementptr inbounds ptr, ptr %294, i64 %idxprom.i.i.i.i.i806 + %idxprom.i.i.i.i.i807 = zext i32 %290 to i64 + %arrayidx.i.i.i.i.i808 = getelementptr inbounds ptr, ptr %294, i64 %idxprom.i.i.i.i.i807 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i -if.end.i.i.i.i.i784: ; preds = %sw.epilog.i.i.i.i.i801, %if.then.i.i.i781 - %c.017.in.i.i.i.i.i785 = phi ptr [ %m_lowers.i.i.i.i, %if.then.i.i.i781 ], [ %c.1.in.i.i.i.i.i802, %sw.epilog.i.i.i.i.i801 ] - %trail_sz.016.i.i.i.i.i786 = phi i32 [ 0, %if.then.i.i.i781 ], [ %trail_sz.1.i.i.i.i.i803, %sw.epilog.i.i.i.i.i801 ] - %c.017.i.i.i.i.i787 = load ptr, ptr %c.017.in.i.i.i.i.i785, align 8 - %bf.load.i.i.i.i.i.i788 = load i32, ptr %c.017.i.i.i.i.i787, align 8 - %bf.lshr.i.i.i.i.i.i789 = lshr i32 %bf.load.i.i.i.i.i.i788, 30 - switch i32 %bf.lshr.i.i.i.i.i.i789, label %if.end.unreachabledefault.i.i.i.i.i812 [ - i32 0, label %sw.bb.i.i.i.i.i808 - i32 1, label %sw.bb.i.i.i.i.i808 - i32 2, label %sw.epilog.i.i.i.i.i801 - i32 3, label %sw.bb12.i.i.i.i.i790 +if.end.i.i.i.i.i785: ; preds = %sw.epilog.i.i.i.i.i802, %if.then.i.i.i782 + %c.017.in.i.i.i.i.i786 = phi ptr [ %m_lowers.i.i.i.i, %if.then.i.i.i782 ], [ %c.1.in.i.i.i.i.i803, %sw.epilog.i.i.i.i.i802 ] + %trail_sz.016.i.i.i.i.i787 = phi i32 [ 0, %if.then.i.i.i782 ], [ %trail_sz.1.i.i.i.i.i804, %sw.epilog.i.i.i.i.i802 ] + %c.017.i.i.i.i.i788 = load ptr, ptr %c.017.in.i.i.i.i.i786, align 8 + %bf.load.i.i.i.i.i.i789 = load i32, ptr %c.017.i.i.i.i.i788, align 8 + %bf.lshr.i.i.i.i.i.i790 = lshr i32 %bf.load.i.i.i.i.i.i789, 30 + switch i32 %bf.lshr.i.i.i.i.i.i790, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i.i.i809 + i32 1, label %sw.bb.i.i.i.i.i809 + i32 2, label %sw.epilog.i.i.i.i.i802 + i32 3, label %sw.bb12.i.i.i.i.i791 ] -sw.bb.i.i.i.i.i808: ; preds = %if.end.i.i.i.i.i784, %if.end.i.i.i.i.i784 - %295 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i787, i64 0, i32 1 +sw.bb.i.i.i.i.i809: ; preds = %if.end.i.i.i.i.i785, %if.end.i.i.i.i.i785 + %295 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i788, i64 0, i32 1 %296 = load i32, ptr %295, align 4 - %cmp4.i.i.i.i.i809 = icmp eq i32 %296, %290 - br i1 %cmp4.i.i.i.i.i809, label %if.then5.i.i.i.i.i810, label %sw.epilog.i.i.i.i.i801 + %cmp4.i.i.i.i.i810 = icmp eq i32 %296, %290 + br i1 %cmp4.i.i.i.i.i810, label %if.then5.i.i.i.i.i811, label %sw.epilog.i.i.i.i.i802 -if.then5.i.i.i.i.i810: ; preds = %sw.bb.i.i.i.i.i808 - %m_elem.i.i.i.i.i.i811 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i787, i64 0, i32 2 +if.then5.i.i.i.i.i811: ; preds = %sw.bb.i.i.i.i.i809 + %m_elem.i.i.i.i.i.i812 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i788, i64 0, i32 2 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i -sw.bb12.i.i.i.i.i790: ; preds = %if.end.i.i.i.i.i784 - %297 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i787, i64 0, i32 3 +sw.bb12.i.i.i.i.i791: ; preds = %if.end.i.i.i.i.i785 + %297 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i788, i64 0, i32 3 %298 = load ptr, ptr %297, align 8 - %idxprom13.i.i.i.i.i791 = zext i32 %290 to i64 - %arrayidx14.i.i.i.i.i792 = getelementptr inbounds ptr, ptr %298, i64 %idxprom13.i.i.i.i.i791 + %idxprom13.i.i.i.i.i792 = zext i32 %290 to i64 + %arrayidx14.i.i.i.i.i793 = getelementptr inbounds ptr, ptr %298, i64 %idxprom13.i.i.i.i.i792 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i -if.end.unreachabledefault.i.i.i.i.i812: ; preds = %if.end.i.i.i.i.i784 - unreachable - -sw.epilog.i.i.i.i.i801: ; preds = %sw.bb.i.i.i.i.i808, %if.end.i.i.i.i.i784 - %c.1.in.i.i.i.i.i802 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i787, i64 0, i32 3 - %trail_sz.1.i.i.i.i.i803 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i786, 1 - %exitcond.i.i.i.i.i804 = icmp eq i32 %trail_sz.1.i.i.i.i.i803, 17 - br i1 %exitcond.i.i.i.i.i804, label %if.then.i.i.i.i.i805, label %if.end.i.i.i.i.i784, !llvm.loop !15 +sw.epilog.i.i.i.i.i802: ; preds = %sw.bb.i.i.i.i.i809, %if.end.i.i.i.i.i785 + %c.1.in.i.i.i.i.i803 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i788, i64 0, i32 3 + %trail_sz.1.i.i.i.i.i804 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i787, 1 + %exitcond.i.i.i.i.i805 = icmp eq i32 %trail_sz.1.i.i.i.i.i804, 17 + br i1 %exitcond.i.i.i.i.i805, label %if.then.i.i.i.i.i806, label %if.end.i.i.i.i.i785, !llvm.loop !15 -_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i: ; preds = %sw.bb12.i.i.i.i.i790, %if.then5.i.i.i.i.i810, %if.then.i.i.i.i.i805 - %retval.0.i.i.i.i.i793 = phi ptr [ %arrayidx.i.i.i.i.i807, %if.then.i.i.i.i.i805 ], [ %arrayidx14.i.i.i.i.i792, %sw.bb12.i.i.i.i.i790 ], [ %m_elem.i.i.i.i.i.i811, %if.then5.i.i.i.i.i810 ] - %299 = load ptr, ptr %retval.0.i.i.i.i.i793, align 8 - %cmp.i.i.i794 = icmp eq ptr %299, null - br i1 %cmp.i.i.i794, label %lor.lhs.false155, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit +_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i: ; preds = %sw.bb12.i.i.i.i.i791, %if.then5.i.i.i.i.i811, %if.then.i.i.i.i.i806 + %retval.0.i.i.i.i.i794 = phi ptr [ %arrayidx.i.i.i.i.i808, %if.then.i.i.i.i.i806 ], [ %arrayidx14.i.i.i.i.i793, %sw.bb12.i.i.i.i.i791 ], [ %m_elem.i.i.i.i.i.i812, %if.then5.i.i.i.i.i811 ] + %299 = load ptr, ptr %retval.0.i.i.i.i.i794, align 8 + %cmp.i.i.i795 = icmp eq ptr %299, null + br i1 %cmp.i.i.i795, label %lor.lhs.false155, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit -if.end.i.i.i813: ; preds = %land.rhs.i779 +if.end.i.i.i814: ; preds = %land.rhs.i780 %m_l_open.i.i.i = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 7 %300 = load i8, ptr %m_l_open.i.i.i, align 1 %301 = and i8 %300, 1 - %tobool3.i.i.i814.not = icmp eq i8 %301, 0 - br i1 %tobool3.i.i.i814.not, label %cond.end163, label %lor.lhs.false155 + %tobool3.i.i.i815.not = icmp eq i8 %301, 0 + br i1 %tobool3.i.i.i815.not, label %cond.end163, label %lor.lhs.false155 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i - %m_open.i.i.i.i796 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %299, i64 0, i32 1 - %bf.load.i.i.i.i797 = load i32, ptr %m_open.i.i.i.i796, align 8 - %302 = and i32 %bf.load.i.i.i.i797, 1073741824 - %tobool.i.i.i.i798.not = icmp eq i32 %302, 0 - br i1 %tobool.i.i.i.i798.not, label %cond.end163, label %lor.lhs.false155 + %m_open.i.i.i.i797 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %299, i64 0, i32 1 + %bf.load.i.i.i.i798 = load i32, ptr %m_open.i.i.i.i797, align 8 + %302 = and i32 %bf.load.i.i.i.i798, 1073741824 + %tobool.i.i.i.i799.not = icmp eq i32 %302, 0 + br i1 %tobool.i.i.i.i799.not, label %cond.end163, label %lor.lhs.false155 -lor.lhs.false155: ; preds = %if.end.i.i.i813, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i, %if.then153, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit +lor.lhs.false155: ; preds = %if.end.i.i.i814, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i, %if.then153, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit %call156 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) %303 = or i1 %retval.0.i.i460, %retval.0.i.i569 %not.call156 = xor i1 %call156, true @@ -13744,58 +13630,58 @@ lor.lhs.false155: ; preds = %if.end.i.i.i813, %_ %304 = zext i1 %spec.select205 to i8 br label %cond.end163 -cond.end163: ; preds = %if.end.i.i.i813, %lor.lhs.false155, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit - %cond164 = phi i8 [ 0, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit ], [ %304, %lor.lhs.false155 ], [ 0, %if.end.i.i.i813 ] - %m_u_open.i.i816 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %cond164, ptr %m_u_open.i.i816, align 1 +cond.end163: ; preds = %if.end.i.i.i814, %lor.lhs.false155, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit + %cond164 = phi i8 [ 0, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit ], [ %304, %lor.lhs.false155 ], [ 0, %if.end.i.i.i814 ] + %m_u_open.i.i817 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %cond164, ptr %m_u_open.i.i817, align 1 %305 = or i1 %retval.0.i.i495, %retval.0.i.i531 - %frombool.i.i817 = zext i1 %305 to i8 - %m_l_open.i.i818 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i817, ptr %m_l_open.i.i818, align 1 - %m_c.i819 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %306 = load ptr, ptr %m_c.i819, align 8 - %m_mode.i.i.i.i820 = getelementptr inbounds %class.f2n, ptr %306, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i820, align 8 - %307 = load ptr, ptr %m_c.i819, align 8 + %frombool.i.i818 = zext i1 %305 to i8 + %m_l_open.i.i819 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i818, ptr %m_l_open.i.i819, align 1 + %m_c.i820 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %306 = load ptr, ptr %m_c.i820, align 8 + %m_mode.i.i.i.i821 = getelementptr inbounds %class.f2n, ptr %306, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i821, align 8 + %307 = load ptr, ptr %m_c.i820, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %307, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %308 = load ptr, ptr %m_c.i819, align 8 - %m_mode.i.i.i.i823 = getelementptr inbounds %class.f2n, ptr %308, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i823, align 8 - %309 = load ptr, ptr %m_c.i819, align 8 + %308 = load ptr, ptr %m_c.i820, align 8 + %m_mode.i.i.i.i824 = getelementptr inbounds %class.f2n, ptr %308, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i824, align 8 + %309 = load ptr, ptr %m_c.i820, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %309, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 -if.else171: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit777 - %call.i825 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call.i825, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit828, label %if.else184 +if.else171: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit778 + %call.i826 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call.i826, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit829, label %if.else184 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit828: ; preds = %if.else171 - %call2.i827 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - br i1 %call2.i827, label %if.then173, label %if.else184 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit829: ; preds = %if.else171 + %call2.i828 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) + br i1 %call2.i828, label %if.then173, label %if.else184 -if.then173: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit828 +if.then173: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit829 %310 = or i1 %retval.0.i.i495, %retval.0.i.i531 - %frombool.i.i829 = zext i1 %310 to i8 - %m_l_open.i.i830 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i829, ptr %m_l_open.i.i830, align 1 + %frombool.i.i830 = zext i1 %310 to i8 + %m_l_open.i.i831 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i830, ptr %m_l_open.i.i831, align 1 %311 = or i1 %retval.0.i.i495, %retval.0.i.i569 - %frombool.i.i831 = zext i1 %311 to i8 - %m_u_open.i.i832 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i831, ptr %m_u_open.i.i832, align 1 - %m_c.i833 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %312 = load ptr, ptr %m_c.i833, align 8 - %m_mode.i.i.i.i834 = getelementptr inbounds %class.f2n, ptr %312, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i834, align 8 - %313 = load ptr, ptr %m_c.i833, align 8 + %frombool.i.i832 = zext i1 %311 to i8 + %m_u_open.i.i833 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i832, ptr %m_u_open.i.i833, align 1 + %m_c.i834 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %312 = load ptr, ptr %m_c.i834, align 8 + %m_mode.i.i.i.i835 = getelementptr inbounds %class.f2n, ptr %312, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i835, align 8 + %313 = load ptr, ptr %m_c.i834, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %313, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %314 = load ptr, ptr %m_c.i833, align 8 - %m_mode.i.i.i.i837 = getelementptr inbounds %class.f2n, ptr %314, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i837, align 8 - %315 = load ptr, ptr %m_c.i833, align 8 + %314 = load ptr, ptr %m_c.i834, align 8 + %m_mode.i.i.i.i838 = getelementptr inbounds %class.f2n, ptr %314, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i838, align 8 + %315 = load ptr, ptr %m_c.i834, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %315, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 -if.else184: ; preds = %if.else171, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit828 +if.else184: ; preds = %if.else171, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit829 %call185 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) br i1 %call185, label %cond.end194, label %lor.lhs.false186 @@ -13809,40 +13695,40 @@ lor.lhs.false186: ; preds = %if.else184 cond.end194: ; preds = %lor.lhs.false186, %if.else184 %cond195 = phi i8 [ 0, %if.else184 ], [ %317, %lor.lhs.false186 ] - %m_l_open.i.i840 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %cond195, ptr %m_l_open.i.i840, align 1 + %m_l_open.i.i841 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %cond195, ptr %m_l_open.i.i841, align 1 %318 = or i1 %retval.0.i.i495, %retval.0.i.i569 - %frombool.i.i841 = zext i1 %318 to i8 - %m_u_open.i.i842 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i841, ptr %m_u_open.i.i842, align 1 - %m_c.i843 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %319 = load ptr, ptr %m_c.i843, align 8 - %m_mode.i.i.i.i844 = getelementptr inbounds %class.f2n, ptr %319, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i844, align 8 - %320 = load ptr, ptr %m_c.i843, align 8 + %frombool.i.i842 = zext i1 %318 to i8 + %m_u_open.i.i843 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i842, ptr %m_u_open.i.i843, align 1 + %m_c.i844 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %319 = load ptr, ptr %m_c.i844, align 8 + %m_mode.i.i.i.i845 = getelementptr inbounds %class.f2n, ptr %319, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i845, align 8 + %320 = load ptr, ptr %m_c.i844, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %320, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i321, i32 noundef %cond.i356, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %321 = load ptr, ptr %m_c.i843, align 8 - %m_mode.i.i.i.i847 = getelementptr inbounds %class.f2n, ptr %321, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i847, align 8 - %322 = load ptr, ptr %m_c.i843, align 8 + %321 = load ptr, ptr %m_c.i844, align 8 + %m_mode.i.i.i.i848 = getelementptr inbounds %class.f2n, ptr %321, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i848, align 8 + %322 = load ptr, ptr %m_c.i844, align 8 call void @_Z3mulI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %322, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i255, i32 noundef %cond.i287, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i392, i32 noundef %cond.i426, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end205 if.end205: ; preds = %if.else138, %if.else134, %if.then131, %if.then69, %if.then173, %cond.end194, %cond.end163, %cond.end, %cond.end55, %if.then34 - %m_l_val.i.i850 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 5 - call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_l_val.i.i850, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower) #20 - %m_u_val.i.i852 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 9 - call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_u_val.i.i852, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper) #20 + %m_l_val.i.i851 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 5 + call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_l_val.i.i851, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower) #20 + %m_u_val.i.i853 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 9 + call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_u_val.i.i853, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper) #20 %323 = load i32, ptr %new_l_kind, align 4 %cmp = icmp eq i32 %323, 0 - %frombool.i.i853 = zext i1 %cmp to i8 - %m_l_inf.i.i854 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 6 - store i8 %frombool.i.i853, ptr %m_l_inf.i.i854, align 8 + %frombool.i.i854 = zext i1 %cmp to i8 + %m_l_inf.i.i855 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 6 + store i8 %frombool.i.i854, ptr %m_l_inf.i.i855, align 8 %324 = load i32, ptr %new_u_kind, align 4 %cmp210 = icmp eq i32 %324, 2 - %frombool.i.i855 = zext i1 %cmp210 to i8 - %m_u_inf.i.i856 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 10 - store i8 %frombool.i.i855, ptr %m_u_inf.i.i856, align 8 + %frombool.i.i856 = zext i1 %cmp210 to i8 + %m_u_inf.i.i857 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 10 + store i8 %frombool.i.i856, ptr %m_u_inf.i.i857, align 8 br label %return return: ; preds = %if.end205, %if.then3, %if.then @@ -13920,7 +13806,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -13944,7 +13830,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %19, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i139, %if.end.i.i.i.i168, %if.end.i.i.i.i200, %if.end.i.i.i.i234, %if.end.i.i.i.i269, %if.end.i.i.i.i305, %if.end.i.i.i.i340, %if.end.i.i.i.i375, %if.end.i.i.i.i407, %if.end.i.i.i.i444, %if.end.i.i.i.i482, %if.end.i.i.i.i.i688, %if.end.i.i.i.i.i635, %if.end.i.i.i.i.i540, %if.end.i.i.i.i.i unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -13989,7 +13878,7 @@ if.then.i.i.i.i155: ; preds = %sw.epilog.i.i.i.i15 %28 = load ptr, ptr %27, align 8 %idxprom.i.i.i.i156 = zext i32 %24 to i64 %arrayidx.i.i.i.i157 = getelementptr inbounds ptr, ptr %28, i64 %idxprom.i.i.i.i156 - %.pre867.pre = load i8, ptr %i1, align 8 + %.pre868.pre = load i8, ptr %i1, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i148 if.end.i.i.i.i139: ; preds = %sw.epilog.i.i.i.i151, %cond.true.i.i @@ -13998,7 +13887,7 @@ if.end.i.i.i.i139: ; preds = %sw.epilog.i.i.i.i15 %c.017.i.i.i.i142 = load ptr, ptr %c.017.in.i.i.i.i140, align 8 %bf.load.i.i.i.i.i143 = load i32, ptr %c.017.i.i.i.i142, align 8 %bf.lshr.i.i.i.i.i144 = lshr i32 %bf.load.i.i.i.i.i143, 30 - switch i32 %bf.lshr.i.i.i.i.i144, label %if.end.unreachabledefault.i.i.i.i162 [ + switch i32 %bf.lshr.i.i.i.i.i144, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i158 i32 1, label %sw.bb.i.i.i.i158 i32 2, label %sw.epilog.i.i.i.i151 @@ -14022,9 +13911,6 @@ sw.bb12.i.i.i.i145: ; preds = %if.end.i.i.i.i139 %arrayidx14.i.i.i.i147 = getelementptr inbounds ptr, ptr %32, i64 %idxprom13.i.i.i.i146 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i148 -if.end.unreachabledefault.i.i.i.i162: ; preds = %if.end.i.i.i.i139 - unreachable - sw.epilog.i.i.i.i151: ; preds = %sw.bb.i.i.i.i158, %if.end.i.i.i.i139 %c.1.in.i.i.i.i152 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i142, i64 0, i32 3 %trail_sz.1.i.i.i.i153 = add nuw nsw i32 %trail_sz.016.i.i.i.i141, 1 @@ -14032,7 +13918,7 @@ sw.epilog.i.i.i.i151: ; preds = %sw.bb.i.i.i.i158, % br i1 %exitcond.i.i.i.i154, label %if.then.i.i.i.i155, label %if.end.i.i.i.i139, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i148: ; preds = %sw.bb12.i.i.i.i145, %if.then5.i.i.i.i160, %if.then.i.i.i.i155 - %.pre867 = phi i8 [ %.pre867.pre, %if.then.i.i.i.i155 ], [ %21, %sw.bb12.i.i.i.i145 ], [ %21, %if.then5.i.i.i.i160 ] + %.pre868 = phi i8 [ %.pre868.pre, %if.then.i.i.i.i155 ], [ %21, %sw.bb12.i.i.i.i145 ], [ %21, %if.then5.i.i.i.i160 ] %retval.0.i.i.i.i149 = phi ptr [ %arrayidx.i.i.i.i157, %if.then.i.i.i.i155 ], [ %arrayidx14.i.i.i.i147, %sw.bb12.i.i.i.i145 ], [ %m_elem.i.i.i.i.i161, %if.then5.i.i.i.i160 ] %33 = load ptr, ptr %retval.0.i.i.i.i149, align 8 %cmp.i.i150 = icmp eq ptr %33, null @@ -14046,7 +13932,7 @@ cond.false.i.i: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i148, %cond.false.i.i - %36 = phi i8 [ %.pre867, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i148 ], [ %21, %cond.false.i.i ] + %36 = phi i8 [ %.pre868, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i148 ], [ %21, %cond.false.i.i ] %cond.i.i = phi i1 [ %cmp.i.i150, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i148 ], [ %tobool2.i.i, %cond.false.i.i ] %not.call.i = xor i1 %cond.i.i, true %cond.i = zext i1 %not.call.i to i32 @@ -14070,7 +13956,7 @@ if.then.i.i.i.i186: ; preds = %sw.epilog.i.i.i.i18 %43 = load ptr, ptr %42, align 8 %idxprom.i.i.i.i187 = zext i32 %39 to i64 %arrayidx.i.i.i.i188 = getelementptr inbounds ptr, ptr %43, i64 %idxprom.i.i.i.i187 - %.pre868.pre = load i8, ptr %i1, align 8 + %.pre869.pre = load i8, ptr %i1, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i if.end.i.i.i.i168: ; preds = %sw.epilog.i.i.i.i182, %if.then.i.i165 @@ -14079,7 +13965,7 @@ if.end.i.i.i.i168: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i171 = load ptr, ptr %c.017.in.i.i.i.i169, align 8 %bf.load.i.i.i.i.i172 = load i32, ptr %c.017.i.i.i.i171, align 8 %bf.lshr.i.i.i.i.i173 = lshr i32 %bf.load.i.i.i.i.i172, 30 - switch i32 %bf.lshr.i.i.i.i.i173, label %if.end.unreachabledefault.i.i.i.i193 [ + switch i32 %bf.lshr.i.i.i.i.i173, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i189 i32 1, label %sw.bb.i.i.i.i189 i32 2, label %sw.epilog.i.i.i.i182 @@ -14103,9 +13989,6 @@ sw.bb12.i.i.i.i174: ; preds = %if.end.i.i.i.i168 %arrayidx14.i.i.i.i176 = getelementptr inbounds ptr, ptr %47, i64 %idxprom13.i.i.i.i175 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i193: ; preds = %if.end.i.i.i.i168 - unreachable - sw.epilog.i.i.i.i182: ; preds = %sw.bb.i.i.i.i189, %if.end.i.i.i.i168 %c.1.in.i.i.i.i183 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i171, i64 0, i32 3 %trail_sz.1.i.i.i.i184 = add nuw nsw i32 %trail_sz.016.i.i.i.i170, 1 @@ -14113,7 +13996,7 @@ sw.epilog.i.i.i.i182: ; preds = %sw.bb.i.i.i.i189, % br i1 %exitcond.i.i.i.i185, label %if.then.i.i.i.i186, label %if.end.i.i.i.i168, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i: ; preds = %sw.bb12.i.i.i.i174, %if.then5.i.i.i.i191, %if.then.i.i.i.i186 - %.pre868 = phi i8 [ %.pre868.pre, %if.then.i.i.i.i186 ], [ %36, %sw.bb12.i.i.i.i174 ], [ %36, %if.then5.i.i.i.i191 ] + %.pre869 = phi i8 [ %.pre869.pre, %if.then.i.i.i.i186 ], [ %36, %sw.bb12.i.i.i.i174 ], [ %36, %if.then5.i.i.i.i191 ] %retval.0.i.i.i.i177 = phi ptr [ %arrayidx.i.i.i.i188, %if.then.i.i.i.i186 ], [ %arrayidx14.i.i.i.i176, %sw.bb12.i.i.i.i174 ], [ %m_elem.i.i.i.i.i192, %if.then5.i.i.i.i191 ] %48 = load ptr, ptr %retval.0.i.i.i.i177, align 8 %cmp.i.i178 = icmp eq ptr %48, null @@ -14126,7 +14009,7 @@ if.end.i.i194: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i, %if.end.i.i194 - %49 = phi i8 [ %36, %if.end.i.i194 ], [ %.pre868, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ] + %49 = phi i8 [ %36, %if.end.i.i194 ], [ %.pre869, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ] %retval.0.i.i181 = phi ptr [ %m_u_val3.i.i, %if.end.i.i194 ], [ %spec.select.i.i180, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i ] %50 = and i8 %49, 1 %tobool.not.i.i195 = icmp eq i8 %50, 0 @@ -14156,7 +14039,7 @@ if.end.i.i.i.i200: ; preds = %sw.epilog.i.i.i.i21 %c.017.i.i.i.i203 = load ptr, ptr %c.017.in.i.i.i.i201, align 8 %bf.load.i.i.i.i.i204 = load i32, ptr %c.017.i.i.i.i203, align 8 %bf.lshr.i.i.i.i.i205 = lshr i32 %bf.load.i.i.i.i.i204, 30 - switch i32 %bf.lshr.i.i.i.i.i205, label %if.end.unreachabledefault.i.i.i.i225 [ + switch i32 %bf.lshr.i.i.i.i.i205, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i221 i32 1, label %sw.bb.i.i.i.i221 i32 2, label %sw.epilog.i.i.i.i214 @@ -14180,9 +14063,6 @@ sw.bb12.i.i.i.i206: ; preds = %if.end.i.i.i.i200 %arrayidx14.i.i.i.i208 = getelementptr inbounds ptr, ptr %60, i64 %idxprom13.i.i.i.i207 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i209 -if.end.unreachabledefault.i.i.i.i225: ; preds = %if.end.i.i.i.i200 - unreachable - sw.epilog.i.i.i.i214: ; preds = %sw.bb.i.i.i.i221, %if.end.i.i.i.i200 %c.1.in.i.i.i.i215 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i203, i64 0, i32 3 %trail_sz.1.i.i.i.i216 = add nuw nsw i32 %trail_sz.016.i.i.i.i202, 1 @@ -14226,7 +14106,7 @@ if.then.i.i.i.i253: ; preds = %sw.epilog.i.i.i.i24 %71 = load ptr, ptr %70, align 8 %idxprom.i.i.i.i254 = zext i32 %67 to i64 %arrayidx.i.i.i.i255 = getelementptr inbounds ptr, ptr %71, i64 %idxprom.i.i.i.i254 - %.pre869.pre = load i8, ptr %i2, align 8 + %.pre870.pre = load i8, ptr %i2, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i243 if.end.i.i.i.i234: ; preds = %sw.epilog.i.i.i.i249, %if.then.i.i230 @@ -14235,7 +14115,7 @@ if.end.i.i.i.i234: ; preds = %sw.epilog.i.i.i.i24 %c.017.i.i.i.i237 = load ptr, ptr %c.017.in.i.i.i.i235, align 8 %bf.load.i.i.i.i.i238 = load i32, ptr %c.017.i.i.i.i237, align 8 %bf.lshr.i.i.i.i.i239 = lshr i32 %bf.load.i.i.i.i.i238, 30 - switch i32 %bf.lshr.i.i.i.i.i239, label %if.end.unreachabledefault.i.i.i.i260 [ + switch i32 %bf.lshr.i.i.i.i.i239, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i256 i32 1, label %sw.bb.i.i.i.i256 i32 2, label %sw.epilog.i.i.i.i249 @@ -14259,9 +14139,6 @@ sw.bb12.i.i.i.i240: ; preds = %if.end.i.i.i.i234 %arrayidx14.i.i.i.i242 = getelementptr inbounds ptr, ptr %75, i64 %idxprom13.i.i.i.i241 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i243 -if.end.unreachabledefault.i.i.i.i260: ; preds = %if.end.i.i.i.i234 - unreachable - sw.epilog.i.i.i.i249: ; preds = %sw.bb.i.i.i.i256, %if.end.i.i.i.i234 %c.1.in.i.i.i.i250 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i237, i64 0, i32 3 %trail_sz.1.i.i.i.i251 = add nuw nsw i32 %trail_sz.016.i.i.i.i236, 1 @@ -14269,7 +14146,7 @@ sw.epilog.i.i.i.i249: ; preds = %sw.bb.i.i.i.i256, % br i1 %exitcond.i.i.i.i252, label %if.then.i.i.i.i253, label %if.end.i.i.i.i234, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i243: ; preds = %sw.bb12.i.i.i.i240, %if.then5.i.i.i.i258, %if.then.i.i.i.i253 - %.pre869 = phi i8 [ %.pre869.pre, %if.then.i.i.i.i253 ], [ %64, %sw.bb12.i.i.i.i240 ], [ %64, %if.then5.i.i.i.i258 ] + %.pre870 = phi i8 [ %.pre870.pre, %if.then.i.i.i.i253 ], [ %64, %sw.bb12.i.i.i.i240 ], [ %64, %if.then5.i.i.i.i258 ] %retval.0.i.i.i.i244 = phi ptr [ %arrayidx.i.i.i.i255, %if.then.i.i.i.i253 ], [ %arrayidx14.i.i.i.i242, %sw.bb12.i.i.i.i240 ], [ %m_elem.i.i.i.i.i259, %if.then5.i.i.i.i258 ] %76 = load ptr, ptr %retval.0.i.i.i.i244, align 8 %cmp.i.i245 = icmp eq ptr %76, null @@ -14282,7 +14159,7 @@ if.end.i.i261: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5lowerERKNS3_8intervalE.exit263 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5lowerERKNS3_8intervalE.exit263: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i243, %if.end.i.i261 - %77 = phi i8 [ %64, %if.end.i.i261 ], [ %.pre869, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i243 ] + %77 = phi i8 [ %64, %if.end.i.i261 ], [ %.pre870, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i243 ] %retval.0.i.i248 = phi ptr [ %m_l_val3.i.i262, %if.end.i.i261 ], [ %spec.select.i.i247, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i243 ] %78 = and i8 %77, 1 %tobool.not.i.i264 = icmp eq i8 %78, 0 @@ -14304,7 +14181,7 @@ if.then.i.i.i.i288: ; preds = %sw.epilog.i.i.i.i28 %84 = load ptr, ptr %83, align 8 %idxprom.i.i.i.i289 = zext i32 %80 to i64 %arrayidx.i.i.i.i290 = getelementptr inbounds ptr, ptr %84, i64 %idxprom.i.i.i.i289 - %.pre870.pre = load i8, ptr %i2, align 8 + %.pre871.pre = load i8, ptr %i2, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i278 if.end.i.i.i.i269: ; preds = %sw.epilog.i.i.i.i284, %cond.true.i.i265 @@ -14313,7 +14190,7 @@ if.end.i.i.i.i269: ; preds = %sw.epilog.i.i.i.i28 %c.017.i.i.i.i272 = load ptr, ptr %c.017.in.i.i.i.i270, align 8 %bf.load.i.i.i.i.i273 = load i32, ptr %c.017.i.i.i.i272, align 8 %bf.lshr.i.i.i.i.i274 = lshr i32 %bf.load.i.i.i.i.i273, 30 - switch i32 %bf.lshr.i.i.i.i.i274, label %if.end.unreachabledefault.i.i.i.i295 [ + switch i32 %bf.lshr.i.i.i.i.i274, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i291 i32 1, label %sw.bb.i.i.i.i291 i32 2, label %sw.epilog.i.i.i.i284 @@ -14337,9 +14214,6 @@ sw.bb12.i.i.i.i275: ; preds = %if.end.i.i.i.i269 %arrayidx14.i.i.i.i277 = getelementptr inbounds ptr, ptr %88, i64 %idxprom13.i.i.i.i276 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i278 -if.end.unreachabledefault.i.i.i.i295: ; preds = %if.end.i.i.i.i269 - unreachable - sw.epilog.i.i.i.i284: ; preds = %sw.bb.i.i.i.i291, %if.end.i.i.i.i269 %c.1.in.i.i.i.i285 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i272, i64 0, i32 3 %trail_sz.1.i.i.i.i286 = add nuw nsw i32 %trail_sz.016.i.i.i.i271, 1 @@ -14347,7 +14221,7 @@ sw.epilog.i.i.i.i284: ; preds = %sw.bb.i.i.i.i291, % br i1 %exitcond.i.i.i.i287, label %if.then.i.i.i.i288, label %if.end.i.i.i.i269, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i278: ; preds = %sw.bb12.i.i.i.i275, %if.then5.i.i.i.i293, %if.then.i.i.i.i288 - %.pre870 = phi i8 [ %.pre870.pre, %if.then.i.i.i.i288 ], [ %77, %sw.bb12.i.i.i.i275 ], [ %77, %if.then5.i.i.i.i293 ] + %.pre871 = phi i8 [ %.pre871.pre, %if.then.i.i.i.i288 ], [ %77, %sw.bb12.i.i.i.i275 ], [ %77, %if.then5.i.i.i.i293 ] %retval.0.i.i.i.i279 = phi ptr [ %arrayidx.i.i.i.i290, %if.then.i.i.i.i288 ], [ %arrayidx14.i.i.i.i277, %sw.bb12.i.i.i.i275 ], [ %m_elem.i.i.i.i.i294, %if.then5.i.i.i.i293 ] %89 = load ptr, ptr %retval.0.i.i.i.i279, align 8 %cmp.i.i280 = icmp eq ptr %89, null @@ -14361,7 +14235,7 @@ cond.false.i.i296: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit299 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE10lower_kindERKNS3_8intervalE.exit299: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i278, %cond.false.i.i296 - %92 = phi i8 [ %.pre870, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i278 ], [ %77, %cond.false.i.i296 ] + %92 = phi i8 [ %.pre871, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i278 ], [ %77, %cond.false.i.i296 ] %cond.i.i281 = phi i1 [ %cmp.i.i280, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i278 ], [ %tobool2.i.i298, %cond.false.i.i296 ] %not.call.i282 = xor i1 %cond.i.i281, true %cond.i283 = zext i1 %not.call.i282 to i32 @@ -14385,7 +14259,7 @@ if.then.i.i.i.i324: ; preds = %sw.epilog.i.i.i.i32 %99 = load ptr, ptr %98, align 8 %idxprom.i.i.i.i325 = zext i32 %95 to i64 %arrayidx.i.i.i.i326 = getelementptr inbounds ptr, ptr %99, i64 %idxprom.i.i.i.i325 - %.pre871.pre = load i8, ptr %i2, align 8 + %.pre872.pre = load i8, ptr %i2, align 8 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i314 if.end.i.i.i.i305: ; preds = %sw.epilog.i.i.i.i320, %if.then.i.i301 @@ -14394,7 +14268,7 @@ if.end.i.i.i.i305: ; preds = %sw.epilog.i.i.i.i32 %c.017.i.i.i.i308 = load ptr, ptr %c.017.in.i.i.i.i306, align 8 %bf.load.i.i.i.i.i309 = load i32, ptr %c.017.i.i.i.i308, align 8 %bf.lshr.i.i.i.i.i310 = lshr i32 %bf.load.i.i.i.i.i309, 30 - switch i32 %bf.lshr.i.i.i.i.i310, label %if.end.unreachabledefault.i.i.i.i331 [ + switch i32 %bf.lshr.i.i.i.i.i310, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i327 i32 1, label %sw.bb.i.i.i.i327 i32 2, label %sw.epilog.i.i.i.i320 @@ -14418,9 +14292,6 @@ sw.bb12.i.i.i.i311: ; preds = %if.end.i.i.i.i305 %arrayidx14.i.i.i.i313 = getelementptr inbounds ptr, ptr %103, i64 %idxprom13.i.i.i.i312 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i314 -if.end.unreachabledefault.i.i.i.i331: ; preds = %if.end.i.i.i.i305 - unreachable - sw.epilog.i.i.i.i320: ; preds = %sw.bb.i.i.i.i327, %if.end.i.i.i.i305 %c.1.in.i.i.i.i321 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i308, i64 0, i32 3 %trail_sz.1.i.i.i.i322 = add nuw nsw i32 %trail_sz.016.i.i.i.i307, 1 @@ -14428,7 +14299,7 @@ sw.epilog.i.i.i.i320: ; preds = %sw.bb.i.i.i.i327, % br i1 %exitcond.i.i.i.i323, label %if.then.i.i.i.i324, label %if.end.i.i.i.i305, !llvm.loop !15 _ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i314: ; preds = %sw.bb12.i.i.i.i311, %if.then5.i.i.i.i329, %if.then.i.i.i.i324 - %.pre871 = phi i8 [ %.pre871.pre, %if.then.i.i.i.i324 ], [ %92, %sw.bb12.i.i.i.i311 ], [ %92, %if.then5.i.i.i.i329 ] + %.pre872 = phi i8 [ %.pre872.pre, %if.then.i.i.i.i324 ], [ %92, %sw.bb12.i.i.i.i311 ], [ %92, %if.then5.i.i.i.i329 ] %retval.0.i.i.i.i315 = phi ptr [ %arrayidx.i.i.i.i326, %if.then.i.i.i.i324 ], [ %arrayidx14.i.i.i.i313, %sw.bb12.i.i.i.i311 ], [ %m_elem.i.i.i.i.i330, %if.then5.i.i.i.i329 ] %104 = load ptr, ptr %retval.0.i.i.i.i315, align 8 %cmp.i.i316 = icmp eq ptr %104, null @@ -14441,7 +14312,7 @@ if.end.i.i332: ; preds = %_ZNK16interval_mana br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit334 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5upperERKNS3_8intervalE.exit334: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i314, %if.end.i.i332 - %105 = phi i8 [ %92, %if.end.i.i332 ], [ %.pre871, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i314 ] + %105 = phi i8 [ %92, %if.end.i.i332 ], [ %.pre872, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i314 ] %retval.0.i.i319 = phi ptr [ %m_u_val3.i.i333, %if.end.i.i332 ], [ %spec.select.i.i318, %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i314 ] %106 = and i8 %105, 1 %tobool.not.i.i335 = icmp eq i8 %106, 0 @@ -14471,7 +14342,7 @@ if.end.i.i.i.i340: ; preds = %sw.epilog.i.i.i.i35 %c.017.i.i.i.i343 = load ptr, ptr %c.017.in.i.i.i.i341, align 8 %bf.load.i.i.i.i.i344 = load i32, ptr %c.017.i.i.i.i343, align 8 %bf.lshr.i.i.i.i.i345 = lshr i32 %bf.load.i.i.i.i.i344, 30 - switch i32 %bf.lshr.i.i.i.i.i345, label %if.end.unreachabledefault.i.i.i.i365 [ + switch i32 %bf.lshr.i.i.i.i.i345, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i361 i32 1, label %sw.bb.i.i.i.i361 i32 2, label %sw.epilog.i.i.i.i354 @@ -14495,9 +14366,6 @@ sw.bb12.i.i.i.i346: ; preds = %if.end.i.i.i.i340 %arrayidx14.i.i.i.i348 = getelementptr inbounds ptr, ptr %116, i64 %idxprom13.i.i.i.i347 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i349 -if.end.unreachabledefault.i.i.i.i365: ; preds = %if.end.i.i.i.i340 - unreachable - sw.epilog.i.i.i.i354: ; preds = %sw.bb.i.i.i.i361, %if.end.i.i.i.i340 %c.1.in.i.i.i.i355 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i343, i64 0, i32 3 %trail_sz.1.i.i.i.i356 = add nuw nsw i32 %trail_sz.016.i.i.i.i342, 1 @@ -14549,7 +14417,7 @@ if.end.i.i.i.i375: ; preds = %sw.epilog.i.i.i.i38 %c.017.i.i.i.i378 = load ptr, ptr %c.017.in.i.i.i.i376, align 8 %bf.load.i.i.i.i.i379 = load i32, ptr %c.017.i.i.i.i378, align 8 %bf.lshr.i.i.i.i.i380 = lshr i32 %bf.load.i.i.i.i.i379, 30 - switch i32 %bf.lshr.i.i.i.i.i380, label %if.end.unreachabledefault.i.i.i.i399 [ + switch i32 %bf.lshr.i.i.i.i.i380, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i395 i32 1, label %sw.bb.i.i.i.i395 i32 2, label %sw.epilog.i.i.i.i388 @@ -14573,9 +14441,6 @@ sw.bb12.i.i.i.i381: ; preds = %if.end.i.i.i.i375 %arrayidx14.i.i.i.i383 = getelementptr inbounds ptr, ptr %131, i64 %idxprom13.i.i.i.i382 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i384 -if.end.unreachabledefault.i.i.i.i399: ; preds = %if.end.i.i.i.i375 - unreachable - sw.epilog.i.i.i.i388: ; preds = %sw.bb.i.i.i.i395, %if.end.i.i.i.i375 %c.1.in.i.i.i.i389 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i378, i64 0, i32 3 %trail_sz.1.i.i.i.i390 = add nuw nsw i32 %trail_sz.016.i.i.i.i377, 1 @@ -14633,7 +14498,7 @@ if.end.i.i.i.i407: ; preds = %sw.epilog.i.i.i.i42 %c.017.i.i.i.i410 = load ptr, ptr %c.017.in.i.i.i.i408, align 8 %bf.load.i.i.i.i.i411 = load i32, ptr %c.017.i.i.i.i410, align 8 %bf.lshr.i.i.i.i.i412 = lshr i32 %bf.load.i.i.i.i.i411, 30 - switch i32 %bf.lshr.i.i.i.i.i412, label %if.end.unreachabledefault.i.i.i.i435 [ + switch i32 %bf.lshr.i.i.i.i.i412, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i431 i32 1, label %sw.bb.i.i.i.i431 i32 2, label %sw.epilog.i.i.i.i424 @@ -14657,9 +14522,6 @@ sw.bb12.i.i.i.i413: ; preds = %if.end.i.i.i.i407 %arrayidx14.i.i.i.i415 = getelementptr inbounds ptr, ptr %147, i64 %idxprom13.i.i.i.i414 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i416 -if.end.unreachabledefault.i.i.i.i435: ; preds = %if.end.i.i.i.i407 - unreachable - sw.epilog.i.i.i.i424: ; preds = %sw.bb.i.i.i.i431, %if.end.i.i.i.i407 %c.1.in.i.i.i.i425 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i410, i64 0, i32 3 %trail_sz.1.i.i.i.i426 = add nuw nsw i32 %trail_sz.016.i.i.i.i409, 1 @@ -14717,7 +14579,7 @@ if.end.i.i.i.i444: ; preds = %sw.epilog.i.i.i.i46 %c.017.i.i.i.i447 = load ptr, ptr %c.017.in.i.i.i.i445, align 8 %bf.load.i.i.i.i.i448 = load i32, ptr %c.017.i.i.i.i447, align 8 %bf.lshr.i.i.i.i.i449 = lshr i32 %bf.load.i.i.i.i.i448, 30 - switch i32 %bf.lshr.i.i.i.i.i449, label %if.end.unreachabledefault.i.i.i.i472 [ + switch i32 %bf.lshr.i.i.i.i.i449, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i468 i32 1, label %sw.bb.i.i.i.i468 i32 2, label %sw.epilog.i.i.i.i461 @@ -14741,9 +14603,6 @@ sw.bb12.i.i.i.i450: ; preds = %if.end.i.i.i.i444 %arrayidx14.i.i.i.i452 = getelementptr inbounds ptr, ptr %163, i64 %idxprom13.i.i.i.i451 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i453 -if.end.unreachabledefault.i.i.i.i472: ; preds = %if.end.i.i.i.i444 - unreachable - sw.epilog.i.i.i.i461: ; preds = %sw.bb.i.i.i.i468, %if.end.i.i.i.i444 %c.1.in.i.i.i.i462 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i447, i64 0, i32 3 %trail_sz.1.i.i.i.i463 = add nuw nsw i32 %trail_sz.016.i.i.i.i446, 1 @@ -14801,7 +14660,7 @@ if.end.i.i.i.i482: ; preds = %sw.epilog.i.i.i.i49 %c.017.i.i.i.i485 = load ptr, ptr %c.017.in.i.i.i.i483, align 8 %bf.load.i.i.i.i.i486 = load i32, ptr %c.017.i.i.i.i485, align 8 %bf.lshr.i.i.i.i.i487 = lshr i32 %bf.load.i.i.i.i.i486, 30 - switch i32 %bf.lshr.i.i.i.i.i487, label %if.end.unreachabledefault.i.i.i.i510 [ + switch i32 %bf.lshr.i.i.i.i.i487, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i506 i32 1, label %sw.bb.i.i.i.i506 i32 2, label %sw.epilog.i.i.i.i499 @@ -14825,9 +14684,6 @@ sw.bb12.i.i.i.i488: ; preds = %if.end.i.i.i.i482 %arrayidx14.i.i.i.i490 = getelementptr inbounds ptr, ptr %179, i64 %idxprom13.i.i.i.i489 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i491 -if.end.unreachabledefault.i.i.i.i510: ; preds = %if.end.i.i.i.i482 - unreachable - sw.epilog.i.i.i.i499: ; preds = %sw.bb.i.i.i.i506, %if.end.i.i.i.i482 %c.1.in.i.i.i.i500 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i485, i64 0, i32 3 %trail_sz.1.i.i.i.i501 = add nuw nsw i32 %trail_sz.016.i.i.i.i484, 1 @@ -14907,7 +14763,7 @@ if.end.i.i.i.i.i: ; preds = %sw.epilog.i.i.i.i.i %c.017.i.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i.i, align 8 %bf.load.i.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i.i i32 1, label %sw.bb.i.i.i.i.i i32 2, label %sw.epilog.i.i.i.i.i @@ -14931,9 +14787,6 @@ sw.bb12.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i %arrayidx14.i.i.i.i.i = getelementptr inbounds ptr, ptr %196, i64 %idxprom13.i.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i -if.end.unreachabledefault.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i - unreachable - sw.epilog.i.i.i.i.i: ; preds = %sw.bb.i.i.i.i.i, %if.end.i.i.i.i.i %c.1.in.i.i.i.i.i = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i, i64 0, i32 3 %trail_sz.1.i.i.i.i.i = add nuw nsw i32 %trail_sz.016.i.i.i.i.i, 1 @@ -14944,9 +14797,9 @@ _ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i: ; preds = %s %retval.0.i.i.i.i.i = phi ptr [ %arrayidx.i.i.i.i.i, %if.then.i.i.i.i.i ], [ %arrayidx14.i.i.i.i.i, %sw.bb12.i.i.i.i.i ], [ %m_elem.i.i.i.i.i.i, %if.then5.i.i.i.i.i ] %197 = load ptr, ptr %retval.0.i.i.i.i.i, align 8 %cmp.i.i.i = icmp eq ptr %197, null - br i1 %cmp.i.i.i, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread746, label %lor.rhs.i.i.i + br i1 %cmp.i.i.i, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread747, label %lor.rhs.i.i.i -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread746: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread747: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i %198 = or i1 %retval.0.i.i423, %retval.0.i.i460 br label %203 @@ -14971,588 +14824,579 @@ _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_config %spec.select = select i1 %retval.0.i.i.i.fr, i1 %202, i1 false br label %203 -203: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread746, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread - %204 = phi i1 [ %184, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread ], [ %198, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread746 ], [ %spec.select, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit ] +203: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread747, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread + %204 = phi i1 [ %184, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread ], [ %198, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit.thread747 ], [ %spec.select, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit ] %frombool.i.i = zext i1 %204 to i8 - %m_l_open.i.i519 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i, ptr %m_l_open.i.i519, align 1 + %m_l_open.i.i520 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i, ptr %m_l_open.i.i520, align 1 %205 = or i1 %retval.0.i.i387, %retval.0.i.i498 - %frombool.i.i520 = zext i1 %205 to i8 - %m_u_open.i.i521 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i520, ptr %m_u_open.i.i521, align 1 - %m_c.i522 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %206 = load ptr, ptr %m_c.i522, align 8 + %frombool.i.i521 = zext i1 %205 to i8 + %m_u_open.i.i522 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i521, ptr %m_u_open.i.i522, align 1 + %m_c.i523 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %206 = load ptr, ptr %m_c.i523, align 8 %m_mode.i.i.i.i = getelementptr inbounds %class.f2n, ptr %206, i64 0, i32 1 store i32 3, ptr %m_mode.i.i.i.i, align 8 - %207 = load ptr, ptr %m_c.i522, align 8 + %207 = load ptr, ptr %m_c.i523, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %207, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i181, i32 noundef %cond.i213, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248, i32 noundef %cond.i283, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %208 = load ptr, ptr %m_c.i522, align 8 + %208 = load ptr, ptr %m_c.i523, align 8 %209 = load ptr, ptr %208, align 8 - %call2.i525 = call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %209, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319) - %210 = load ptr, ptr %m_c.i522, align 8 - br i1 %call2.i525, label %if.then34, label %if.else36 + %call2.i526 = call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %209, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319) + %210 = load ptr, ptr %m_c.i523, align 8 + br i1 %call2.i526, label %if.then34, label %if.else36 if.then34: ; preds = %203 %211 = load ptr, ptr %210, align 8 - %m_ebits.i527 = getelementptr inbounds %class.f2n, ptr %210, i64 0, i32 2 - %212 = load i32, ptr %m_ebits.i527, align 4 - %m_sbits.i528 = getelementptr inbounds %class.f2n, ptr %210, i64 0, i32 3 - %213 = load i32, ptr %m_sbits.i528, align 8 + %m_ebits.i528 = getelementptr inbounds %class.f2n, ptr %210, i64 0, i32 2 + %212 = load i32, ptr %m_ebits.i528, align 4 + %m_sbits.i529 = getelementptr inbounds %class.f2n, ptr %210, i64 0, i32 3 + %213 = load i32, ptr %m_sbits.i529, align 8 call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %211, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, i32 noundef %212, i32 noundef %213, i32 noundef 0) store i32 2, ptr %new_u_kind, align 4 br label %if.end150 if.else36: ; preds = %203 - %m_mode.i.i.i.i530 = getelementptr inbounds %class.f2n, ptr %210, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i530, align 8 - %214 = load ptr, ptr %m_c.i522, align 8 + %m_mode.i.i.i.i531 = getelementptr inbounds %class.f2n, ptr %210, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i531, align 8 + %214 = load ptr, ptr %m_c.i523, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %214, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319, i32 noundef %cond.i353, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end150 if.else38: ; preds = %if.then22 - br i1 %call.i517, label %land.rhs.i533, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread + br i1 %call.i517, label %land.rhs.i534, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread: ; preds = %if.else38 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread: ; preds = %if.else38 %215 = or i1 %retval.0.i.i423, %retval.0.i.i498 br label %234 -land.rhs.i533: ; preds = %if.else38 +land.rhs.i534: ; preds = %if.else38 %216 = load i8, ptr %i1, align 8 %217 = and i8 %216, 1 - %tobool.not.i.i.i534 = icmp eq i8 %217, 0 - br i1 %tobool.not.i.i.i534, label %if.end.i.i.i570, label %if.then.i.i.i535 - -if.then.i.i.i535: ; preds = %land.rhs.i533 - %m_node.i.i.i536 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 - %218 = load ptr, ptr %m_node.i.i.i536, align 8 - %m_x.i.i.i537 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 - %219 = load i32, ptr %m_x.i.i.i537, align 8 + %tobool.not.i.i.i535 = icmp eq i8 %217, 0 + br i1 %tobool.not.i.i.i535, label %if.end.i.i.i571, label %if.then.i.i.i536 + +if.then.i.i.i536: ; preds = %land.rhs.i534 + %m_node.i.i.i537 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 + %218 = load ptr, ptr %m_node.i.i.i537, align 8 + %m_x.i.i.i538 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 + %219 = load i32, ptr %m_x.i.i.i538, align 8 %220 = load ptr, ptr %218, align 8 - %m_uppers.i.i.i.i538 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %218, i64 0, i32 2 - br label %if.end.i.i.i.i.i539 + %m_uppers.i.i.i.i539 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %218, i64 0, i32 2 + br label %if.end.i.i.i.i.i540 -if.then.i.i.i.i.i562: ; preds = %sw.epilog.i.i.i.i.i558 - tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(12) %m_uppers.i.i.i.i538) - %221 = load ptr, ptr %m_uppers.i.i.i.i538, align 8 +if.then.i.i.i.i.i563: ; preds = %sw.epilog.i.i.i.i.i559 + tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(12) %m_uppers.i.i.i.i539) + %221 = load ptr, ptr %m_uppers.i.i.i.i539, align 8 %222 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %221, i64 0, i32 3 %223 = load ptr, ptr %222, align 8 - %idxprom.i.i.i.i.i563 = zext i32 %219 to i64 - %arrayidx.i.i.i.i.i564 = getelementptr inbounds ptr, ptr %223, i64 %idxprom.i.i.i.i.i563 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i548 - -if.end.i.i.i.i.i539: ; preds = %sw.epilog.i.i.i.i.i558, %if.then.i.i.i535 - %c.017.in.i.i.i.i.i540 = phi ptr [ %m_uppers.i.i.i.i538, %if.then.i.i.i535 ], [ %c.1.in.i.i.i.i.i559, %sw.epilog.i.i.i.i.i558 ] - %trail_sz.016.i.i.i.i.i541 = phi i32 [ 0, %if.then.i.i.i535 ], [ %trail_sz.1.i.i.i.i.i560, %sw.epilog.i.i.i.i.i558 ] - %c.017.i.i.i.i.i542 = load ptr, ptr %c.017.in.i.i.i.i.i540, align 8 - %bf.load.i.i.i.i.i.i543 = load i32, ptr %c.017.i.i.i.i.i542, align 8 - %bf.lshr.i.i.i.i.i.i544 = lshr i32 %bf.load.i.i.i.i.i.i543, 30 - switch i32 %bf.lshr.i.i.i.i.i.i544, label %if.end.unreachabledefault.i.i.i.i.i569 [ - i32 0, label %sw.bb.i.i.i.i.i565 - i32 1, label %sw.bb.i.i.i.i.i565 - i32 2, label %sw.epilog.i.i.i.i.i558 - i32 3, label %sw.bb12.i.i.i.i.i545 + %idxprom.i.i.i.i.i564 = zext i32 %219 to i64 + %arrayidx.i.i.i.i.i565 = getelementptr inbounds ptr, ptr %223, i64 %idxprom.i.i.i.i.i564 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i549 + +if.end.i.i.i.i.i540: ; preds = %sw.epilog.i.i.i.i.i559, %if.then.i.i.i536 + %c.017.in.i.i.i.i.i541 = phi ptr [ %m_uppers.i.i.i.i539, %if.then.i.i.i536 ], [ %c.1.in.i.i.i.i.i560, %sw.epilog.i.i.i.i.i559 ] + %trail_sz.016.i.i.i.i.i542 = phi i32 [ 0, %if.then.i.i.i536 ], [ %trail_sz.1.i.i.i.i.i561, %sw.epilog.i.i.i.i.i559 ] + %c.017.i.i.i.i.i543 = load ptr, ptr %c.017.in.i.i.i.i.i541, align 8 + %bf.load.i.i.i.i.i.i544 = load i32, ptr %c.017.i.i.i.i.i543, align 8 + %bf.lshr.i.i.i.i.i.i545 = lshr i32 %bf.load.i.i.i.i.i.i544, 30 + switch i32 %bf.lshr.i.i.i.i.i.i545, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i.i.i566 + i32 1, label %sw.bb.i.i.i.i.i566 + i32 2, label %sw.epilog.i.i.i.i.i559 + i32 3, label %sw.bb12.i.i.i.i.i546 ] -sw.bb.i.i.i.i.i565: ; preds = %if.end.i.i.i.i.i539, %if.end.i.i.i.i.i539 - %224 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i542, i64 0, i32 1 +sw.bb.i.i.i.i.i566: ; preds = %if.end.i.i.i.i.i540, %if.end.i.i.i.i.i540 + %224 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i543, i64 0, i32 1 %225 = load i32, ptr %224, align 4 - %cmp4.i.i.i.i.i566 = icmp eq i32 %225, %219 - br i1 %cmp4.i.i.i.i.i566, label %if.then5.i.i.i.i.i567, label %sw.epilog.i.i.i.i.i558 + %cmp4.i.i.i.i.i567 = icmp eq i32 %225, %219 + br i1 %cmp4.i.i.i.i.i567, label %if.then5.i.i.i.i.i568, label %sw.epilog.i.i.i.i.i559 -if.then5.i.i.i.i.i567: ; preds = %sw.bb.i.i.i.i.i565 - %m_elem.i.i.i.i.i.i568 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i542, i64 0, i32 2 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i548 +if.then5.i.i.i.i.i568: ; preds = %sw.bb.i.i.i.i.i566 + %m_elem.i.i.i.i.i.i569 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i543, i64 0, i32 2 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i549 -sw.bb12.i.i.i.i.i545: ; preds = %if.end.i.i.i.i.i539 - %226 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i542, i64 0, i32 3 +sw.bb12.i.i.i.i.i546: ; preds = %if.end.i.i.i.i.i540 + %226 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i543, i64 0, i32 3 %227 = load ptr, ptr %226, align 8 - %idxprom13.i.i.i.i.i546 = zext i32 %219 to i64 - %arrayidx14.i.i.i.i.i547 = getelementptr inbounds ptr, ptr %227, i64 %idxprom13.i.i.i.i.i546 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i548 - -if.end.unreachabledefault.i.i.i.i.i569: ; preds = %if.end.i.i.i.i.i539 - unreachable - -sw.epilog.i.i.i.i.i558: ; preds = %sw.bb.i.i.i.i.i565, %if.end.i.i.i.i.i539 - %c.1.in.i.i.i.i.i559 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i542, i64 0, i32 3 - %trail_sz.1.i.i.i.i.i560 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i541, 1 - %exitcond.i.i.i.i.i561 = icmp eq i32 %trail_sz.1.i.i.i.i.i560, 17 - br i1 %exitcond.i.i.i.i.i561, label %if.then.i.i.i.i.i562, label %if.end.i.i.i.i.i539, !llvm.loop !15 - -_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i548: ; preds = %sw.bb12.i.i.i.i.i545, %if.then5.i.i.i.i.i567, %if.then.i.i.i.i.i562 - %retval.0.i.i.i.i.i549 = phi ptr [ %arrayidx.i.i.i.i.i564, %if.then.i.i.i.i.i562 ], [ %arrayidx14.i.i.i.i.i547, %sw.bb12.i.i.i.i.i545 ], [ %m_elem.i.i.i.i.i.i568, %if.then5.i.i.i.i.i567 ] - %228 = load ptr, ptr %retval.0.i.i.i.i.i549, align 8 - %cmp.i.i.i550 = icmp eq ptr %228, null - br i1 %cmp.i.i.i550, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread752, label %lor.rhs.i.i.i551 - -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread752: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i548 + %idxprom13.i.i.i.i.i547 = zext i32 %219 to i64 + %arrayidx14.i.i.i.i.i548 = getelementptr inbounds ptr, ptr %227, i64 %idxprom13.i.i.i.i.i547 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i549 + +sw.epilog.i.i.i.i.i559: ; preds = %sw.bb.i.i.i.i.i566, %if.end.i.i.i.i.i540 + %c.1.in.i.i.i.i.i560 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i543, i64 0, i32 3 + %trail_sz.1.i.i.i.i.i561 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i542, 1 + %exitcond.i.i.i.i.i562 = icmp eq i32 %trail_sz.1.i.i.i.i.i561, 17 + br i1 %exitcond.i.i.i.i.i562, label %if.then.i.i.i.i.i563, label %if.end.i.i.i.i.i540, !llvm.loop !15 + +_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i549: ; preds = %sw.bb12.i.i.i.i.i546, %if.then5.i.i.i.i.i568, %if.then.i.i.i.i.i563 + %retval.0.i.i.i.i.i550 = phi ptr [ %arrayidx.i.i.i.i.i565, %if.then.i.i.i.i.i563 ], [ %arrayidx14.i.i.i.i.i548, %sw.bb12.i.i.i.i.i546 ], [ %m_elem.i.i.i.i.i.i569, %if.then5.i.i.i.i.i568 ] + %228 = load ptr, ptr %retval.0.i.i.i.i.i550, align 8 + %cmp.i.i.i551 = icmp eq ptr %228, null + br i1 %cmp.i.i.i551, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread753, label %lor.rhs.i.i.i552 + +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread753: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i549 %229 = or i1 %retval.0.i.i423, %retval.0.i.i498 br label %234 -lor.rhs.i.i.i551: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i548 - %m_open.i.i.i.i552 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %228, i64 0, i32 1 - %bf.load.i.i.i.i553 = load i32, ptr %m_open.i.i.i.i552, align 8 - %230 = and i32 %bf.load.i.i.i.i553, 1073741824 - %tobool.i.i.i.i554 = icmp ne i32 %230, 0 - br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573 +lor.rhs.i.i.i552: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i.i549 + %m_open.i.i.i.i553 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %228, i64 0, i32 1 + %bf.load.i.i.i.i554 = load i32, ptr %m_open.i.i.i.i553, align 8 + %230 = and i32 %bf.load.i.i.i.i554, 1073741824 + %tobool.i.i.i.i555 = icmp ne i32 %230, 0 + br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574 -if.end.i.i.i570: ; preds = %land.rhs.i533 - %m_u_open.i.i.i571 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 11 - %231 = load i8, ptr %m_u_open.i.i.i571, align 1 +if.end.i.i.i571: ; preds = %land.rhs.i534 + %m_u_open.i.i.i572 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 11 + %231 = load i8, ptr %m_u_open.i.i.i572, align 1 %232 = and i8 %231, 1 - %tobool3.i.i.i572 = icmp ne i8 %232, 0 - br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573 + %tobool3.i.i.i573 = icmp ne i8 %232, 0 + br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573: ; preds = %lor.rhs.i.i.i551, %if.end.i.i.i570 - %retval.0.i.i.i556 = phi i1 [ %tobool3.i.i.i572, %if.end.i.i.i570 ], [ %tobool.i.i.i.i554, %lor.rhs.i.i.i551 ] - %retval.0.i.i.i556.fr = freeze i1 %retval.0.i.i.i556 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574: ; preds = %lor.rhs.i.i.i552, %if.end.i.i.i571 + %retval.0.i.i.i557 = phi i1 [ %tobool3.i.i.i573, %if.end.i.i.i571 ], [ %tobool.i.i.i.i555, %lor.rhs.i.i.i552 ] + %retval.0.i.i.i557.fr = freeze i1 %retval.0.i.i.i557 %233 = or i1 %retval.0.i.i423, %retval.0.i.i498 - %spec.select768 = select i1 %retval.0.i.i.i556.fr, i1 %233, i1 false + %spec.select769 = select i1 %retval.0.i.i.i557.fr, i1 %233, i1 false br label %234 -234: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread752, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread - %235 = phi i1 [ %215, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread ], [ %229, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573.thread752 ], [ %spec.select768, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit573 ] - %frombool.i.i574 = zext i1 %235 to i8 - %m_u_open.i.i575 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i574, ptr %m_u_open.i.i575, align 1 +234: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread753, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread + %235 = phi i1 [ %215, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread ], [ %229, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574.thread753 ], [ %spec.select769, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N0ERKNS3_8intervalE.exit574 ] + %frombool.i.i575 = zext i1 %235 to i8 + %m_u_open.i.i576 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i575, ptr %m_u_open.i.i576, align 1 %236 = or i1 %retval.0.i.i387, %retval.0.i.i460 - %frombool.i.i576 = zext i1 %236 to i8 - %m_l_open.i.i577 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i576, ptr %m_l_open.i.i577, align 1 - %m_c.i578 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %237 = load ptr, ptr %m_c.i578, align 8 + %frombool.i.i577 = zext i1 %236 to i8 + %m_l_open.i.i578 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i577, ptr %m_l_open.i.i578, align 1 + %m_c.i579 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %237 = load ptr, ptr %m_c.i579, align 8 %238 = load ptr, ptr %237, align 8 - %call2.i579 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %238, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248) - %239 = load ptr, ptr %m_c.i578, align 8 - br i1 %call2.i579, label %if.then54, label %if.else56 + %call2.i580 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %238, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248) + %239 = load ptr, ptr %m_c.i579, align 8 + br i1 %call2.i580, label %if.then54, label %if.else56 if.then54: ; preds = %234 %240 = load ptr, ptr %239, align 8 - %m_ebits.i581 = getelementptr inbounds %class.f2n, ptr %239, i64 0, i32 2 - %241 = load i32, ptr %m_ebits.i581, align 4 - %m_sbits.i582 = getelementptr inbounds %class.f2n, ptr %239, i64 0, i32 3 - %242 = load i32, ptr %m_sbits.i582, align 8 + %m_ebits.i582 = getelementptr inbounds %class.f2n, ptr %239, i64 0, i32 2 + %241 = load i32, ptr %m_ebits.i582, align 4 + %m_sbits.i583 = getelementptr inbounds %class.f2n, ptr %239, i64 0, i32 3 + %242 = load i32, ptr %m_sbits.i583, align 8 tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %240, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, i32 noundef %241, i32 noundef %242, i32 noundef 0) store i32 0, ptr %new_l_kind, align 4 br label %if.end58 if.else56: ; preds = %234 - %m_mode.i.i.i.i584 = getelementptr inbounds %class.f2n, ptr %239, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i584, align 8 - %243 = load ptr, ptr %m_c.i578, align 8 + %m_mode.i.i.i.i585 = getelementptr inbounds %class.f2n, ptr %239, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i585, align 8 + %243 = load ptr, ptr %m_c.i579, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %243, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248, i32 noundef %cond.i283, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) br label %if.end58 if.end58: ; preds = %if.else56, %if.then54 - %244 = load ptr, ptr %m_c.i578, align 8 - %m_mode.i.i.i.i587 = getelementptr inbounds %class.f2n, ptr %244, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i587, align 8 - %245 = load ptr, ptr %m_c.i578, align 8 + %244 = load ptr, ptr %m_c.i579, align 8 + %m_mode.i.i.i.i588 = getelementptr inbounds %class.f2n, ptr %244, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i588, align 8 + %245 = load ptr, ptr %m_c.i579, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %245, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i181, i32 noundef %cond.i213, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319, i32 noundef %cond.i353, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end150 if.else61: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_NERKNS3_8intervalE.exit - %call.i589 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) - br i1 %call.i589, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit, label %if.else102 + %call.i590 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12lower_is_negERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) + br i1 %call.i590, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit, label %if.else102 _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit: ; preds = %if.else61 - %call2.i591 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) - br i1 %call2.i591, label %if.then63, label %if.else102 + %call2.i592 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE12upper_is_posERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) + br i1 %call2.i592, label %if.then63, label %if.else102 if.then63: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit %call64 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N1ERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - %m_l_open.i.i593 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - %m_u_open.i.i595 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - %m_c.i596 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %m_l_open.i.i594 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + %m_u_open.i.i596 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + %m_c.i597 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 br i1 %call64, label %if.then65, label %if.else83 if.then65: ; preds = %if.then63 %246 = or i1 %retval.0.i.i423, %retval.0.i.i498 - %frombool.i.i592 = zext i1 %246 to i8 - store i8 %frombool.i.i592, ptr %m_l_open.i.i593, align 1 + %frombool.i.i593 = zext i1 %246 to i8 + store i8 %frombool.i.i593, ptr %m_l_open.i.i594, align 1 %247 = or i1 %retval.0.i.i387, %retval.0.i.i498 - %frombool.i.i594 = zext i1 %247 to i8 - store i8 %frombool.i.i594, ptr %m_u_open.i.i595, align 1 - %248 = load ptr, ptr %m_c.i596, align 8 + %frombool.i.i595 = zext i1 %247 to i8 + store i8 %frombool.i.i595, ptr %m_u_open.i.i596, align 1 + %248 = load ptr, ptr %m_c.i597, align 8 %249 = load ptr, ptr %248, align 8 - %call2.i597 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %249, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319) - %250 = load ptr, ptr %m_c.i596, align 8 - br i1 %call2.i597, label %if.then76, label %if.else79 + %call2.i598 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %249, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319) + %250 = load ptr, ptr %m_c.i597, align 8 + br i1 %call2.i598, label %if.then76, label %if.else79 if.then76: ; preds = %if.then65 %251 = load ptr, ptr %250, align 8 - %m_ebits.i599 = getelementptr inbounds %class.f2n, ptr %250, i64 0, i32 2 - %252 = load i32, ptr %m_ebits.i599, align 4 - %m_sbits.i600 = getelementptr inbounds %class.f2n, ptr %250, i64 0, i32 3 - %253 = load i32, ptr %m_sbits.i600, align 8 + %m_ebits.i600 = getelementptr inbounds %class.f2n, ptr %250, i64 0, i32 2 + %252 = load i32, ptr %m_ebits.i600, align 4 + %m_sbits.i601 = getelementptr inbounds %class.f2n, ptr %250, i64 0, i32 3 + %253 = load i32, ptr %m_sbits.i601, align 8 tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %251, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, i32 noundef %252, i32 noundef %253, i32 noundef 0) - %254 = load ptr, ptr %m_c.i596, align 8 + %254 = load ptr, ptr %m_c.i597, align 8 %255 = load ptr, ptr %254, align 8 - %m_ebits.i602 = getelementptr inbounds %class.f2n, ptr %254, i64 0, i32 2 - %256 = load i32, ptr %m_ebits.i602, align 4 - %m_sbits.i603 = getelementptr inbounds %class.f2n, ptr %254, i64 0, i32 3 - %257 = load i32, ptr %m_sbits.i603, align 8 + %m_ebits.i603 = getelementptr inbounds %class.f2n, ptr %254, i64 0, i32 2 + %256 = load i32, ptr %m_ebits.i603, align 4 + %m_sbits.i604 = getelementptr inbounds %class.f2n, ptr %254, i64 0, i32 3 + %257 = load i32, ptr %m_sbits.i604, align 8 tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %255, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, i32 noundef %256, i32 noundef %257, i32 noundef 0) store i32 0, ptr %new_l_kind, align 4 store i32 2, ptr %new_u_kind, align 4 br label %if.end150 if.else79: ; preds = %if.then65 - %m_mode.i.i.i.i605 = getelementptr inbounds %class.f2n, ptr %250, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i605, align 8 - %258 = load ptr, ptr %m_c.i596, align 8 + %m_mode.i.i.i.i606 = getelementptr inbounds %class.f2n, ptr %250, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i606, align 8 + %258 = load ptr, ptr %m_c.i597, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %258, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i181, i32 noundef %cond.i213, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319, i32 noundef %cond.i353, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %259 = load ptr, ptr %m_c.i596, align 8 - %m_mode.i.i.i.i608 = getelementptr inbounds %class.f2n, ptr %259, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i608, align 8 - %260 = load ptr, ptr %m_c.i596, align 8 + %259 = load ptr, ptr %m_c.i597, align 8 + %m_mode.i.i.i.i609 = getelementptr inbounds %class.f2n, ptr %259, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i609, align 8 + %260 = load ptr, ptr %m_c.i597, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %260, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319, i32 noundef %cond.i353, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end150 if.else83: ; preds = %if.then63 %261 = or i1 %retval.0.i.i387, %retval.0.i.i460 - %frombool.i.i610 = zext i1 %261 to i8 - store i8 %frombool.i.i610, ptr %m_l_open.i.i593, align 1 + %frombool.i.i611 = zext i1 %261 to i8 + store i8 %frombool.i.i611, ptr %m_l_open.i.i594, align 1 %262 = or i1 %retval.0.i.i423, %retval.0.i.i460 - %frombool.i.i612 = zext i1 %262 to i8 - store i8 %frombool.i.i612, ptr %m_u_open.i.i595, align 1 - %263 = load ptr, ptr %m_c.i596, align 8 + %frombool.i.i613 = zext i1 %262 to i8 + store i8 %frombool.i.i613, ptr %m_u_open.i.i596, align 1 + %263 = load ptr, ptr %m_c.i597, align 8 %264 = load ptr, ptr %263, align 8 - %call2.i615 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %264, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248) - %265 = load ptr, ptr %m_c.i596, align 8 - br i1 %call2.i615, label %if.then94, label %if.else97 + %call2.i616 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %264, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248) + %265 = load ptr, ptr %m_c.i597, align 8 + br i1 %call2.i616, label %if.then94, label %if.else97 if.then94: ; preds = %if.else83 %266 = load ptr, ptr %265, align 8 - %m_ebits.i617 = getelementptr inbounds %class.f2n, ptr %265, i64 0, i32 2 - %267 = load i32, ptr %m_ebits.i617, align 4 - %m_sbits.i618 = getelementptr inbounds %class.f2n, ptr %265, i64 0, i32 3 - %268 = load i32, ptr %m_sbits.i618, align 8 + %m_ebits.i618 = getelementptr inbounds %class.f2n, ptr %265, i64 0, i32 2 + %267 = load i32, ptr %m_ebits.i618, align 4 + %m_sbits.i619 = getelementptr inbounds %class.f2n, ptr %265, i64 0, i32 3 + %268 = load i32, ptr %m_sbits.i619, align 8 tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %266, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, i32 noundef %267, i32 noundef %268, i32 noundef 0) - %269 = load ptr, ptr %m_c.i596, align 8 + %269 = load ptr, ptr %m_c.i597, align 8 %270 = load ptr, ptr %269, align 8 - %m_ebits.i620 = getelementptr inbounds %class.f2n, ptr %269, i64 0, i32 2 - %271 = load i32, ptr %m_ebits.i620, align 4 - %m_sbits.i621 = getelementptr inbounds %class.f2n, ptr %269, i64 0, i32 3 - %272 = load i32, ptr %m_sbits.i621, align 8 + %m_ebits.i621 = getelementptr inbounds %class.f2n, ptr %269, i64 0, i32 2 + %271 = load i32, ptr %m_ebits.i621, align 4 + %m_sbits.i622 = getelementptr inbounds %class.f2n, ptr %269, i64 0, i32 3 + %272 = load i32, ptr %m_sbits.i622, align 8 tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %270, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, i32 noundef %271, i32 noundef %272, i32 noundef 0) store i32 0, ptr %new_l_kind, align 4 store i32 2, ptr %new_u_kind, align 4 br label %if.end150 if.else97: ; preds = %if.else83 - %m_mode.i.i.i.i623 = getelementptr inbounds %class.f2n, ptr %265, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i623, align 8 - %273 = load ptr, ptr %m_c.i596, align 8 + %m_mode.i.i.i.i624 = getelementptr inbounds %class.f2n, ptr %265, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i624, align 8 + %273 = load ptr, ptr %m_c.i597, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %273, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248, i32 noundef %cond.i283, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %274 = load ptr, ptr %m_c.i596, align 8 - %m_mode.i.i.i.i626 = getelementptr inbounds %class.f2n, ptr %274, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i626, align 8 - %275 = load ptr, ptr %m_c.i596, align 8 + %274 = load ptr, ptr %m_c.i597, align 8 + %m_mode.i.i.i.i627 = getelementptr inbounds %class.f2n, ptr %274, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i627, align 8 + %275 = load ptr, ptr %m_c.i597, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %275, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i181, i32 noundef %cond.i213, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248, i32 noundef %cond.i283, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end150 if.else102: ; preds = %if.else61, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE4is_MERKNS3_8intervalE.exit %call103 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_N1ERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i2) - %call.i628 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13lower_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) + %call.i629 = tail call noundef zeroext i1 @_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE13lower_is_zeroERKNS3_8intervalE(ptr noundef nonnull align 8 dereferenceable(728) %this, ptr noundef nonnull align 8 dereferenceable(98) %i1) br i1 %call103, label %if.then104, label %if.else126 if.then104: ; preds = %if.else102 - br i1 %call.i628, label %land.rhs.i629, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread + br i1 %call.i629, label %land.rhs.i630, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread _ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread: ; preds = %if.then104 %276 = or i1 %retval.0.i.i387, %retval.0.i.i460 br label %295 -land.rhs.i629: ; preds = %if.then104 +land.rhs.i630: ; preds = %if.then104 %277 = load i8, ptr %i1, align 8 %278 = and i8 %277, 1 - %tobool.not.i.i.i630 = icmp eq i8 %278, 0 - br i1 %tobool.not.i.i.i630, label %if.end.i.i.i663, label %if.then.i.i.i631 - -if.then.i.i.i631: ; preds = %land.rhs.i629 - %m_node.i.i.i632 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 - %279 = load ptr, ptr %m_node.i.i.i632, align 8 - %m_x.i.i.i633 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 - %280 = load i32, ptr %m_x.i.i.i633, align 8 + %tobool.not.i.i.i631 = icmp eq i8 %278, 0 + br i1 %tobool.not.i.i.i631, label %if.end.i.i.i664, label %if.then.i.i.i632 + +if.then.i.i.i632: ; preds = %land.rhs.i630 + %m_node.i.i.i633 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 + %279 = load ptr, ptr %m_node.i.i.i633, align 8 + %m_x.i.i.i634 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 + %280 = load i32, ptr %m_x.i.i.i634, align 8 %281 = load ptr, ptr %279, align 8 %m_lowers.i.i.i.i = getelementptr inbounds %"class.subpaving::context_t::node", ptr %279, i64 0, i32 1 - br label %if.end.i.i.i.i.i634 + br label %if.end.i.i.i.i.i635 -if.then.i.i.i.i.i655: ; preds = %sw.epilog.i.i.i.i.i651 +if.then.i.i.i.i.i656: ; preds = %sw.epilog.i.i.i.i.i652 tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef nonnull align 8 dereferenceable(12) %m_lowers.i.i.i.i) %282 = load ptr, ptr %m_lowers.i.i.i.i, align 8 %283 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %282, i64 0, i32 3 %284 = load ptr, ptr %283, align 8 - %idxprom.i.i.i.i.i656 = zext i32 %280 to i64 - %arrayidx.i.i.i.i.i657 = getelementptr inbounds ptr, ptr %284, i64 %idxprom.i.i.i.i.i656 + %idxprom.i.i.i.i.i657 = zext i32 %280 to i64 + %arrayidx.i.i.i.i.i658 = getelementptr inbounds ptr, ptr %284, i64 %idxprom.i.i.i.i.i657 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i -if.end.i.i.i.i.i634: ; preds = %sw.epilog.i.i.i.i.i651, %if.then.i.i.i631 - %c.017.in.i.i.i.i.i635 = phi ptr [ %m_lowers.i.i.i.i, %if.then.i.i.i631 ], [ %c.1.in.i.i.i.i.i652, %sw.epilog.i.i.i.i.i651 ] - %trail_sz.016.i.i.i.i.i636 = phi i32 [ 0, %if.then.i.i.i631 ], [ %trail_sz.1.i.i.i.i.i653, %sw.epilog.i.i.i.i.i651 ] - %c.017.i.i.i.i.i637 = load ptr, ptr %c.017.in.i.i.i.i.i635, align 8 - %bf.load.i.i.i.i.i.i638 = load i32, ptr %c.017.i.i.i.i.i637, align 8 - %bf.lshr.i.i.i.i.i.i639 = lshr i32 %bf.load.i.i.i.i.i.i638, 30 - switch i32 %bf.lshr.i.i.i.i.i.i639, label %if.end.unreachabledefault.i.i.i.i.i662 [ - i32 0, label %sw.bb.i.i.i.i.i658 - i32 1, label %sw.bb.i.i.i.i.i658 - i32 2, label %sw.epilog.i.i.i.i.i651 - i32 3, label %sw.bb12.i.i.i.i.i640 +if.end.i.i.i.i.i635: ; preds = %sw.epilog.i.i.i.i.i652, %if.then.i.i.i632 + %c.017.in.i.i.i.i.i636 = phi ptr [ %m_lowers.i.i.i.i, %if.then.i.i.i632 ], [ %c.1.in.i.i.i.i.i653, %sw.epilog.i.i.i.i.i652 ] + %trail_sz.016.i.i.i.i.i637 = phi i32 [ 0, %if.then.i.i.i632 ], [ %trail_sz.1.i.i.i.i.i654, %sw.epilog.i.i.i.i.i652 ] + %c.017.i.i.i.i.i638 = load ptr, ptr %c.017.in.i.i.i.i.i636, align 8 + %bf.load.i.i.i.i.i.i639 = load i32, ptr %c.017.i.i.i.i.i638, align 8 + %bf.lshr.i.i.i.i.i.i640 = lshr i32 %bf.load.i.i.i.i.i.i639, 30 + switch i32 %bf.lshr.i.i.i.i.i.i640, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i.i.i659 + i32 1, label %sw.bb.i.i.i.i.i659 + i32 2, label %sw.epilog.i.i.i.i.i652 + i32 3, label %sw.bb12.i.i.i.i.i641 ] -sw.bb.i.i.i.i.i658: ; preds = %if.end.i.i.i.i.i634, %if.end.i.i.i.i.i634 - %285 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i637, i64 0, i32 1 +sw.bb.i.i.i.i.i659: ; preds = %if.end.i.i.i.i.i635, %if.end.i.i.i.i.i635 + %285 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i638, i64 0, i32 1 %286 = load i32, ptr %285, align 4 - %cmp4.i.i.i.i.i659 = icmp eq i32 %286, %280 - br i1 %cmp4.i.i.i.i.i659, label %if.then5.i.i.i.i.i660, label %sw.epilog.i.i.i.i.i651 + %cmp4.i.i.i.i.i660 = icmp eq i32 %286, %280 + br i1 %cmp4.i.i.i.i.i660, label %if.then5.i.i.i.i.i661, label %sw.epilog.i.i.i.i.i652 -if.then5.i.i.i.i.i660: ; preds = %sw.bb.i.i.i.i.i658 - %m_elem.i.i.i.i.i.i661 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i637, i64 0, i32 2 +if.then5.i.i.i.i.i661: ; preds = %sw.bb.i.i.i.i.i659 + %m_elem.i.i.i.i.i.i662 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i638, i64 0, i32 2 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i -sw.bb12.i.i.i.i.i640: ; preds = %if.end.i.i.i.i.i634 - %287 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i637, i64 0, i32 3 +sw.bb12.i.i.i.i.i641: ; preds = %if.end.i.i.i.i.i635 + %287 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i638, i64 0, i32 3 %288 = load ptr, ptr %287, align 8 - %idxprom13.i.i.i.i.i641 = zext i32 %280 to i64 - %arrayidx14.i.i.i.i.i642 = getelementptr inbounds ptr, ptr %288, i64 %idxprom13.i.i.i.i.i641 + %idxprom13.i.i.i.i.i642 = zext i32 %280 to i64 + %arrayidx14.i.i.i.i.i643 = getelementptr inbounds ptr, ptr %288, i64 %idxprom13.i.i.i.i.i642 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i -if.end.unreachabledefault.i.i.i.i.i662: ; preds = %if.end.i.i.i.i.i634 - unreachable - -sw.epilog.i.i.i.i.i651: ; preds = %sw.bb.i.i.i.i.i658, %if.end.i.i.i.i.i634 - %c.1.in.i.i.i.i.i652 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i637, i64 0, i32 3 - %trail_sz.1.i.i.i.i.i653 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i636, 1 - %exitcond.i.i.i.i.i654 = icmp eq i32 %trail_sz.1.i.i.i.i.i653, 17 - br i1 %exitcond.i.i.i.i.i654, label %if.then.i.i.i.i.i655, label %if.end.i.i.i.i.i634, !llvm.loop !15 +sw.epilog.i.i.i.i.i652: ; preds = %sw.bb.i.i.i.i.i659, %if.end.i.i.i.i.i635 + %c.1.in.i.i.i.i.i653 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i638, i64 0, i32 3 + %trail_sz.1.i.i.i.i.i654 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i637, 1 + %exitcond.i.i.i.i.i655 = icmp eq i32 %trail_sz.1.i.i.i.i.i654, 17 + br i1 %exitcond.i.i.i.i.i655, label %if.then.i.i.i.i.i656, label %if.end.i.i.i.i.i635, !llvm.loop !15 -_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i: ; preds = %sw.bb12.i.i.i.i.i640, %if.then5.i.i.i.i.i660, %if.then.i.i.i.i.i655 - %retval.0.i.i.i.i.i643 = phi ptr [ %arrayidx.i.i.i.i.i657, %if.then.i.i.i.i.i655 ], [ %arrayidx14.i.i.i.i.i642, %sw.bb12.i.i.i.i.i640 ], [ %m_elem.i.i.i.i.i.i661, %if.then5.i.i.i.i.i660 ] - %289 = load ptr, ptr %retval.0.i.i.i.i.i643, align 8 - %cmp.i.i.i644 = icmp eq ptr %289, null - br i1 %cmp.i.i.i644, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread758, label %lor.rhs.i.i.i645 +_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i: ; preds = %sw.bb12.i.i.i.i.i641, %if.then5.i.i.i.i.i661, %if.then.i.i.i.i.i656 + %retval.0.i.i.i.i.i644 = phi ptr [ %arrayidx.i.i.i.i.i658, %if.then.i.i.i.i.i656 ], [ %arrayidx14.i.i.i.i.i643, %sw.bb12.i.i.i.i.i641 ], [ %m_elem.i.i.i.i.i.i662, %if.then5.i.i.i.i.i661 ] + %289 = load ptr, ptr %retval.0.i.i.i.i.i644, align 8 + %cmp.i.i.i645 = icmp eq ptr %289, null + br i1 %cmp.i.i.i645, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread759, label %lor.rhs.i.i.i646 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread758: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread759: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i %290 = or i1 %retval.0.i.i387, %retval.0.i.i460 br label %295 -lor.rhs.i.i.i645: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i - %m_open.i.i.i.i646 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %289, i64 0, i32 1 - %bf.load.i.i.i.i647 = load i32, ptr %m_open.i.i.i.i646, align 8 - %291 = and i32 %bf.load.i.i.i.i647, 1073741824 - %tobool.i.i.i.i648 = icmp ne i32 %291, 0 +lor.rhs.i.i.i646: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i + %m_open.i.i.i.i647 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %289, i64 0, i32 1 + %bf.load.i.i.i.i648 = load i32, ptr %m_open.i.i.i.i647, align 8 + %291 = and i32 %bf.load.i.i.i.i648, 1073741824 + %tobool.i.i.i.i649 = icmp ne i32 %291, 0 br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit -if.end.i.i.i663: ; preds = %land.rhs.i629 +if.end.i.i.i664: ; preds = %land.rhs.i630 %m_l_open.i.i.i = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 7 %292 = load i8, ptr %m_l_open.i.i.i, align 1 %293 = and i8 %292, 1 - %tobool3.i.i.i664 = icmp ne i8 %293, 0 + %tobool3.i.i.i665 = icmp ne i8 %293, 0 br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit: ; preds = %lor.rhs.i.i.i645, %if.end.i.i.i663 - %retval.0.i.i.i649 = phi i1 [ %tobool3.i.i.i664, %if.end.i.i.i663 ], [ %tobool.i.i.i.i648, %lor.rhs.i.i.i645 ] - %retval.0.i.i.i649.fr = freeze i1 %retval.0.i.i.i649 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit: ; preds = %lor.rhs.i.i.i646, %if.end.i.i.i664 + %retval.0.i.i.i650 = phi i1 [ %tobool3.i.i.i665, %if.end.i.i.i664 ], [ %tobool.i.i.i.i649, %lor.rhs.i.i.i646 ] + %retval.0.i.i.i650.fr = freeze i1 %retval.0.i.i.i650 %294 = or i1 %retval.0.i.i387, %retval.0.i.i460 - %spec.select769 = select i1 %retval.0.i.i.i649.fr, i1 %294, i1 false + %spec.select770 = select i1 %retval.0.i.i.i650.fr, i1 %294, i1 false br label %295 -295: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread758, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread - %296 = phi i1 [ %276, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread ], [ %290, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread758 ], [ %spec.select769, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit ] - %frombool.i.i665 = zext i1 %296 to i8 - %m_u_open.i.i666 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i665, ptr %m_u_open.i.i666, align 1 +295: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread759, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread + %296 = phi i1 [ %276, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread ], [ %290, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit.thread759 ], [ %spec.select770, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit ] + %frombool.i.i666 = zext i1 %296 to i8 + %m_u_open.i.i667 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i666, ptr %m_u_open.i.i667, align 1 %297 = or i1 %retval.0.i.i423, %retval.0.i.i498 - %frombool.i.i667 = zext i1 %297 to i8 - %m_l_open.i.i668 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i667, ptr %m_l_open.i.i668, align 1 - %m_c.i669 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %298 = load ptr, ptr %m_c.i669, align 8 + %frombool.i.i668 = zext i1 %297 to i8 + %m_l_open.i.i669 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i668, ptr %m_l_open.i.i669, align 1 + %m_c.i670 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %298 = load ptr, ptr %m_c.i670, align 8 %299 = load ptr, ptr %298, align 8 - %call2.i670 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %299, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319) - %300 = load ptr, ptr %m_c.i669, align 8 - br i1 %call2.i670, label %if.then120, label %if.else122 + %call2.i671 = tail call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %299, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319) + %300 = load ptr, ptr %m_c.i670, align 8 + br i1 %call2.i671, label %if.then120, label %if.else122 if.then120: ; preds = %295 %301 = load ptr, ptr %300, align 8 - %m_ebits.i672 = getelementptr inbounds %class.f2n, ptr %300, i64 0, i32 2 - %302 = load i32, ptr %m_ebits.i672, align 4 - %m_sbits.i673 = getelementptr inbounds %class.f2n, ptr %300, i64 0, i32 3 - %303 = load i32, ptr %m_sbits.i673, align 8 + %m_ebits.i673 = getelementptr inbounds %class.f2n, ptr %300, i64 0, i32 2 + %302 = load i32, ptr %m_ebits.i673, align 4 + %m_sbits.i674 = getelementptr inbounds %class.f2n, ptr %300, i64 0, i32 3 + %303 = load i32, ptr %m_sbits.i674, align 8 tail call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %301, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, i32 noundef %302, i32 noundef %303, i32 noundef 0) store i32 0, ptr %new_l_kind, align 4 br label %if.end124 if.else122: ; preds = %295 - %m_mode.i.i.i.i675 = getelementptr inbounds %class.f2n, ptr %300, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i675, align 8 - %304 = load ptr, ptr %m_c.i669, align 8 + %m_mode.i.i.i.i676 = getelementptr inbounds %class.f2n, ptr %300, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i676, align 8 + %304 = load ptr, ptr %m_c.i670, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %304, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i181, i32 noundef %cond.i213, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319, i32 noundef %cond.i353, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) br label %if.end124 if.end124: ; preds = %if.else122, %if.then120 - %305 = load ptr, ptr %m_c.i669, align 8 - %m_mode.i.i.i.i678 = getelementptr inbounds %class.f2n, ptr %305, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i678, align 8 - %306 = load ptr, ptr %m_c.i669, align 8 + %305 = load ptr, ptr %m_c.i670, align 8 + %m_mode.i.i.i.i679 = getelementptr inbounds %class.f2n, ptr %305, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i679, align 8 + %306 = load ptr, ptr %m_c.i670, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %306, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248, i32 noundef %cond.i283, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end150 if.else126: ; preds = %if.else102 - br i1 %call.i628, label %land.rhs.i681, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread + br i1 %call.i629, label %land.rhs.i682, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread: ; preds = %if.else126 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread: ; preds = %if.else126 %307 = or i1 %retval.0.i.i387, %retval.0.i.i498 br label %326 -land.rhs.i681: ; preds = %if.else126 +land.rhs.i682: ; preds = %if.else126 %308 = load i8, ptr %i1, align 8 %309 = and i8 %308, 1 - %tobool.not.i.i.i682 = icmp eq i8 %309, 0 - br i1 %tobool.not.i.i.i682, label %if.end.i.i.i718, label %if.then.i.i.i683 - -if.then.i.i.i683: ; preds = %land.rhs.i681 - %m_node.i.i.i684 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 - %310 = load ptr, ptr %m_node.i.i.i684, align 8 - %m_x.i.i.i685 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 - %311 = load i32, ptr %m_x.i.i.i685, align 8 + %tobool.not.i.i.i683 = icmp eq i8 %309, 0 + br i1 %tobool.not.i.i.i683, label %if.end.i.i.i719, label %if.then.i.i.i684 + +if.then.i.i.i684: ; preds = %land.rhs.i682 + %m_node.i.i.i685 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 2 + %310 = load ptr, ptr %m_node.i.i.i685, align 8 + %m_x.i.i.i686 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 3 + %311 = load i32, ptr %m_x.i.i.i686, align 8 %312 = load ptr, ptr %310, align 8 - %m_lowers.i.i.i.i686 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %310, i64 0, i32 1 - br label %if.end.i.i.i.i.i687 + %m_lowers.i.i.i.i687 = getelementptr inbounds %"class.subpaving::context_t::node", ptr %310, i64 0, i32 1 + br label %if.end.i.i.i.i.i688 -if.then.i.i.i.i.i710: ; preds = %sw.epilog.i.i.i.i.i706 - tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %312, ptr noundef nonnull align 8 dereferenceable(12) %m_lowers.i.i.i.i686) - %313 = load ptr, ptr %m_lowers.i.i.i.i686, align 8 +if.then.i.i.i.i.i711: ; preds = %sw.epilog.i.i.i.i.i707 + tail call void @_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE6rerootERNS5_3refE(ptr noundef nonnull align 8 dereferenceable(32) %312, ptr noundef nonnull align 8 dereferenceable(12) %m_lowers.i.i.i.i687) + %313 = load ptr, ptr %m_lowers.i.i.i.i687, align 8 %314 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %313, i64 0, i32 3 %315 = load ptr, ptr %314, align 8 - %idxprom.i.i.i.i.i711 = zext i32 %311 to i64 - %arrayidx.i.i.i.i.i712 = getelementptr inbounds ptr, ptr %315, i64 %idxprom.i.i.i.i.i711 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i696 - -if.end.i.i.i.i.i687: ; preds = %sw.epilog.i.i.i.i.i706, %if.then.i.i.i683 - %c.017.in.i.i.i.i.i688 = phi ptr [ %m_lowers.i.i.i.i686, %if.then.i.i.i683 ], [ %c.1.in.i.i.i.i.i707, %sw.epilog.i.i.i.i.i706 ] - %trail_sz.016.i.i.i.i.i689 = phi i32 [ 0, %if.then.i.i.i683 ], [ %trail_sz.1.i.i.i.i.i708, %sw.epilog.i.i.i.i.i706 ] - %c.017.i.i.i.i.i690 = load ptr, ptr %c.017.in.i.i.i.i.i688, align 8 - %bf.load.i.i.i.i.i.i691 = load i32, ptr %c.017.i.i.i.i.i690, align 8 - %bf.lshr.i.i.i.i.i.i692 = lshr i32 %bf.load.i.i.i.i.i.i691, 30 - switch i32 %bf.lshr.i.i.i.i.i.i692, label %if.end.unreachabledefault.i.i.i.i.i717 [ - i32 0, label %sw.bb.i.i.i.i.i713 - i32 1, label %sw.bb.i.i.i.i.i713 - i32 2, label %sw.epilog.i.i.i.i.i706 - i32 3, label %sw.bb12.i.i.i.i.i693 + %idxprom.i.i.i.i.i712 = zext i32 %311 to i64 + %arrayidx.i.i.i.i.i713 = getelementptr inbounds ptr, ptr %315, i64 %idxprom.i.i.i.i.i712 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i697 + +if.end.i.i.i.i.i688: ; preds = %sw.epilog.i.i.i.i.i707, %if.then.i.i.i684 + %c.017.in.i.i.i.i.i689 = phi ptr [ %m_lowers.i.i.i.i687, %if.then.i.i.i684 ], [ %c.1.in.i.i.i.i.i708, %sw.epilog.i.i.i.i.i707 ] + %trail_sz.016.i.i.i.i.i690 = phi i32 [ 0, %if.then.i.i.i684 ], [ %trail_sz.1.i.i.i.i.i709, %sw.epilog.i.i.i.i.i707 ] + %c.017.i.i.i.i.i691 = load ptr, ptr %c.017.in.i.i.i.i.i689, align 8 + %bf.load.i.i.i.i.i.i692 = load i32, ptr %c.017.i.i.i.i.i691, align 8 + %bf.lshr.i.i.i.i.i.i693 = lshr i32 %bf.load.i.i.i.i.i.i692, 30 + switch i32 %bf.lshr.i.i.i.i.i.i693, label %default.unreachable [ + i32 0, label %sw.bb.i.i.i.i.i714 + i32 1, label %sw.bb.i.i.i.i.i714 + i32 2, label %sw.epilog.i.i.i.i.i707 + i32 3, label %sw.bb12.i.i.i.i.i694 ] -sw.bb.i.i.i.i.i713: ; preds = %if.end.i.i.i.i.i687, %if.end.i.i.i.i.i687 - %316 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i690, i64 0, i32 1 +sw.bb.i.i.i.i.i714: ; preds = %if.end.i.i.i.i.i688, %if.end.i.i.i.i.i688 + %316 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i691, i64 0, i32 1 %317 = load i32, ptr %316, align 4 - %cmp4.i.i.i.i.i714 = icmp eq i32 %317, %311 - br i1 %cmp4.i.i.i.i.i714, label %if.then5.i.i.i.i.i715, label %sw.epilog.i.i.i.i.i706 + %cmp4.i.i.i.i.i715 = icmp eq i32 %317, %311 + br i1 %cmp4.i.i.i.i.i715, label %if.then5.i.i.i.i.i716, label %sw.epilog.i.i.i.i.i707 -if.then5.i.i.i.i.i715: ; preds = %sw.bb.i.i.i.i.i713 - %m_elem.i.i.i.i.i.i716 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i690, i64 0, i32 2 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i696 +if.then5.i.i.i.i.i716: ; preds = %sw.bb.i.i.i.i.i714 + %m_elem.i.i.i.i.i.i717 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i691, i64 0, i32 2 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i697 -sw.bb12.i.i.i.i.i693: ; preds = %if.end.i.i.i.i.i687 - %318 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i690, i64 0, i32 3 +sw.bb12.i.i.i.i.i694: ; preds = %if.end.i.i.i.i.i688 + %318 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i691, i64 0, i32 3 %319 = load ptr, ptr %318, align 8 - %idxprom13.i.i.i.i.i694 = zext i32 %311 to i64 - %arrayidx14.i.i.i.i.i695 = getelementptr inbounds ptr, ptr %319, i64 %idxprom13.i.i.i.i.i694 - br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i696 - -if.end.unreachabledefault.i.i.i.i.i717: ; preds = %if.end.i.i.i.i.i687 - unreachable - -sw.epilog.i.i.i.i.i706: ; preds = %sw.bb.i.i.i.i.i713, %if.end.i.i.i.i.i687 - %c.1.in.i.i.i.i.i707 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i690, i64 0, i32 3 - %trail_sz.1.i.i.i.i.i708 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i689, 1 - %exitcond.i.i.i.i.i709 = icmp eq i32 %trail_sz.1.i.i.i.i.i708, 17 - br i1 %exitcond.i.i.i.i.i709, label %if.then.i.i.i.i.i710, label %if.end.i.i.i.i.i687, !llvm.loop !15 - -_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i696: ; preds = %sw.bb12.i.i.i.i.i693, %if.then5.i.i.i.i.i715, %if.then.i.i.i.i.i710 - %retval.0.i.i.i.i.i697 = phi ptr [ %arrayidx.i.i.i.i.i712, %if.then.i.i.i.i.i710 ], [ %arrayidx14.i.i.i.i.i695, %sw.bb12.i.i.i.i.i693 ], [ %m_elem.i.i.i.i.i.i716, %if.then5.i.i.i.i.i715 ] - %320 = load ptr, ptr %retval.0.i.i.i.i.i697, align 8 - %cmp.i.i.i698 = icmp eq ptr %320, null - br i1 %cmp.i.i.i698, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread764, label %lor.rhs.i.i.i699 - -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread764: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i696 + %idxprom13.i.i.i.i.i695 = zext i32 %311 to i64 + %arrayidx14.i.i.i.i.i696 = getelementptr inbounds ptr, ptr %319, i64 %idxprom13.i.i.i.i.i695 + br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i697 + +sw.epilog.i.i.i.i.i707: ; preds = %sw.bb.i.i.i.i.i714, %if.end.i.i.i.i.i688 + %c.1.in.i.i.i.i.i708 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i.i691, i64 0, i32 3 + %trail_sz.1.i.i.i.i.i709 = add nuw nsw i32 %trail_sz.016.i.i.i.i.i690, 1 + %exitcond.i.i.i.i.i710 = icmp eq i32 %trail_sz.1.i.i.i.i.i709, 17 + br i1 %exitcond.i.i.i.i.i710, label %if.then.i.i.i.i.i711, label %if.end.i.i.i.i.i688, !llvm.loop !15 + +_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i697: ; preds = %sw.bb12.i.i.i.i.i694, %if.then5.i.i.i.i.i716, %if.then.i.i.i.i.i711 + %retval.0.i.i.i.i.i698 = phi ptr [ %arrayidx.i.i.i.i.i713, %if.then.i.i.i.i.i711 ], [ %arrayidx14.i.i.i.i.i696, %sw.bb12.i.i.i.i.i694 ], [ %m_elem.i.i.i.i.i.i717, %if.then5.i.i.i.i.i716 ] + %320 = load ptr, ptr %retval.0.i.i.i.i.i698, align 8 + %cmp.i.i.i699 = icmp eq ptr %320, null + br i1 %cmp.i.i.i699, label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread765, label %lor.rhs.i.i.i700 + +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread765: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i697 %321 = or i1 %retval.0.i.i387, %retval.0.i.i498 br label %326 -lor.rhs.i.i.i699: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i696 - %m_open.i.i.i.i700 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %320, i64 0, i32 1 - %bf.load.i.i.i.i701 = load i32, ptr %m_open.i.i.i.i700, align 8 - %322 = and i32 %bf.load.i.i.i.i701, 1073741824 - %tobool.i.i.i.i702 = icmp ne i32 %322, 0 - br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721 +lor.rhs.i.i.i700: ; preds = %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i.i697 + %m_open.i.i.i.i701 = getelementptr inbounds %"class.subpaving::context_t::bound", ptr %320, i64 0, i32 1 + %bf.load.i.i.i.i702 = load i32, ptr %m_open.i.i.i.i701, align 8 + %322 = and i32 %bf.load.i.i.i.i702, 1073741824 + %tobool.i.i.i.i703 = icmp ne i32 %322, 0 + br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722 -if.end.i.i.i718: ; preds = %land.rhs.i681 - %m_l_open.i.i.i719 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 7 - %323 = load i8, ptr %m_l_open.i.i.i719, align 1 +if.end.i.i.i719: ; preds = %land.rhs.i682 + %m_l_open.i.i.i720 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %i1, i64 0, i32 7 + %323 = load i8, ptr %m_l_open.i.i.i720, align 1 %324 = and i8 %323, 1 - %tobool3.i.i.i720 = icmp ne i8 %324, 0 - br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721 + %tobool3.i.i.i721 = icmp ne i8 %324, 0 + br label %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722 -_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721: ; preds = %lor.rhs.i.i.i699, %if.end.i.i.i718 - %retval.0.i.i.i704 = phi i1 [ %tobool3.i.i.i720, %if.end.i.i.i718 ], [ %tobool.i.i.i.i702, %lor.rhs.i.i.i699 ] - %retval.0.i.i.i704.fr = freeze i1 %retval.0.i.i.i704 +_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722: ; preds = %lor.rhs.i.i.i700, %if.end.i.i.i719 + %retval.0.i.i.i705 = phi i1 [ %tobool3.i.i.i721, %if.end.i.i.i719 ], [ %tobool.i.i.i.i703, %lor.rhs.i.i.i700 ] + %retval.0.i.i.i705.fr = freeze i1 %retval.0.i.i.i705 %325 = or i1 %retval.0.i.i387, %retval.0.i.i498 - %spec.select770 = select i1 %retval.0.i.i.i704.fr, i1 %325, i1 false + %spec.select771 = select i1 %retval.0.i.i.i705.fr, i1 %325, i1 false br label %326 -326: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread764, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread - %327 = phi i1 [ %307, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread ], [ %321, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721.thread764 ], [ %spec.select770, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit721 ] - %frombool.i.i722 = zext i1 %327 to i8 - %m_l_open.i.i723 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 - store i8 %frombool.i.i722, ptr %m_l_open.i.i723, align 1 +326: ; preds = %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread765, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread + %327 = phi i1 [ %307, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread ], [ %321, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722.thread765 ], [ %spec.select771, %_ZNK16interval_managerIN9subpaving9context_tINS0_10config_mpfEE15interval_configEE5is_P0ERKNS3_8intervalE.exit722 ] + %frombool.i.i723 = zext i1 %327 to i8 + %m_l_open.i.i724 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 7 + store i8 %frombool.i.i723, ptr %m_l_open.i.i724, align 1 %328 = or i1 %retval.0.i.i423, %retval.0.i.i460 - %frombool.i.i724 = zext i1 %328 to i8 - %m_u_open.i.i725 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 - store i8 %frombool.i.i724, ptr %m_u_open.i.i725, align 1 - %m_c.i726 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 - %329 = load ptr, ptr %m_c.i726, align 8 - %m_mode.i.i.i.i727 = getelementptr inbounds %class.f2n, ptr %329, i64 0, i32 1 - store i32 3, ptr %m_mode.i.i.i.i727, align 8 - %330 = load ptr, ptr %m_c.i726, align 8 + %frombool.i.i725 = zext i1 %328 to i8 + %m_u_open.i.i726 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 11 + store i8 %frombool.i.i725, ptr %m_u_open.i.i726, align 1 + %m_c.i727 = getelementptr inbounds %class.interval_manager, ptr %this, i64 0, i32 1 + %329 = load ptr, ptr %m_c.i727, align 8 + %m_mode.i.i.i.i728 = getelementptr inbounds %class.f2n, ptr %329, i64 0, i32 1 + store i32 3, ptr %m_mode.i.i.i.i728, align 8 + %330 = load ptr, ptr %m_c.i727, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %330, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i, i32 noundef %cond.i, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i319, i32 noundef %cond.i353, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower, ptr noundef nonnull align 4 dereferenceable(4) %new_l_kind) - %331 = load ptr, ptr %m_c.i726, align 8 + %331 = load ptr, ptr %m_c.i727, align 8 %332 = load ptr, ptr %331, align 8 - %call2.i730 = call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %332, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248) - %333 = load ptr, ptr %m_c.i726, align 8 - br i1 %call2.i730, label %if.then143, label %if.else145 + %call2.i731 = call noundef zeroext i1 @_ZN11mpf_manager7is_zeroERK3mpf(ptr noundef nonnull align 8 dereferenceable(840) %332, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248) + %333 = load ptr, ptr %m_c.i727, align 8 + br i1 %call2.i731, label %if.then143, label %if.else145 if.then143: ; preds = %326 %334 = load ptr, ptr %333, align 8 - %m_ebits.i732 = getelementptr inbounds %class.f2n, ptr %333, i64 0, i32 2 - %335 = load i32, ptr %m_ebits.i732, align 4 - %m_sbits.i733 = getelementptr inbounds %class.f2n, ptr %333, i64 0, i32 3 - %336 = load i32, ptr %m_sbits.i733, align 8 + %m_ebits.i733 = getelementptr inbounds %class.f2n, ptr %333, i64 0, i32 2 + %335 = load i32, ptr %m_ebits.i733, align 4 + %m_sbits.i734 = getelementptr inbounds %class.f2n, ptr %333, i64 0, i32 3 + %336 = load i32, ptr %m_sbits.i734, align 8 call void @_ZN11mpf_manager3setER3mpfjji(ptr noundef nonnull align 8 dereferenceable(840) %334, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, i32 noundef %335, i32 noundef %336, i32 noundef 0) store i32 2, ptr %new_u_kind, align 4 br label %if.end150 if.else145: ; preds = %326 - %m_mode.i.i.i.i735 = getelementptr inbounds %class.f2n, ptr %333, i64 0, i32 1 - store i32 2, ptr %m_mode.i.i.i.i735, align 8 - %337 = load ptr, ptr %m_c.i726, align 8 + %m_mode.i.i.i.i736 = getelementptr inbounds %class.f2n, ptr %333, i64 0, i32 1 + store i32 2, ptr %m_mode.i.i.i.i736, align 8 + %337 = load ptr, ptr %m_c.i727, align 8 call void @_Z3divI3f2nI11mpf_managerEEvRT_RKNS3_7numeralE16ext_numeral_kindS7_S8_RS5_RS8_(ptr noundef nonnull align 8 dereferenceable(88) %337, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i181, i32 noundef %cond.i213, ptr noundef nonnull align 8 dereferenceable(32) %retval.0.i.i248, i32 noundef %cond.i283, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper, ptr noundef nonnull align 4 dereferenceable(4) %new_u_kind) br label %if.end150 if.end150: ; preds = %if.then94, %if.else97, %if.then76, %if.else79, %if.then143, %if.else145, %if.end124, %if.end58, %if.else36, %if.then34 - %m_l_val.i.i738 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 5 - call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_l_val.i.i738, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower) #20 - %m_u_val.i.i740 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 9 - call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_u_val.i.i740, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper) #20 + %m_l_val.i.i739 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 5 + call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_l_val.i.i739, ptr noundef nonnull align 8 dereferenceable(32) %m_result_lower) #20 + %m_u_val.i.i741 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 9 + call void @_ZN3mpf4swapERS_(ptr noundef nonnull align 8 dereferenceable(32) %m_u_val.i.i741, ptr noundef nonnull align 8 dereferenceable(32) %m_result_upper) #20 %338 = load i32, ptr %new_l_kind, align 4 %cmp = icmp eq i32 %338, 0 - %frombool.i.i741 = zext i1 %cmp to i8 - %m_l_inf.i.i742 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 6 - store i8 %frombool.i.i741, ptr %m_l_inf.i.i742, align 8 + %frombool.i.i742 = zext i1 %cmp to i8 + %m_l_inf.i.i743 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 6 + store i8 %frombool.i.i742, ptr %m_l_inf.i.i743, align 8 %339 = load i32, ptr %new_u_kind, align 4 %cmp155 = icmp eq i32 %339, 2 - %frombool.i.i743 = zext i1 %cmp155 to i8 - %m_u_inf.i.i744 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 10 - store i8 %frombool.i.i743, ptr %m_u_inf.i.i744, align 8 + %frombool.i.i744 = zext i1 %cmp155 to i8 + %m_u_inf.i.i745 = getelementptr inbounds %"struct.subpaving::context_t::interval", ptr %r, i64 0, i32 10 + store i8 %frombool.i.i744, ptr %m_u_inf.i.i745, align 8 br label %if.end156 if.end156: ; preds = %if.end150, %if.then @@ -15594,7 +15438,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -15618,7 +15462,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %12, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i6 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -15671,7 +15518,7 @@ if.end.i.i.i.i6: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i9 = load ptr, ptr %c.017.in.i.i.i.i7, align 8 %bf.load.i.i.i.i.i10 = load i32, ptr %c.017.i.i.i.i9, align 8 %bf.lshr.i.i.i.i.i11 = lshr i32 %bf.load.i.i.i.i.i10, 30 - switch i32 %bf.lshr.i.i.i.i.i11, label %if.end.unreachabledefault.i.i.i.i29 [ + switch i32 %bf.lshr.i.i.i.i.i11, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i25 i32 1, label %sw.bb.i.i.i.i25 i32 2, label %sw.epilog.i.i.i.i18 @@ -15695,9 +15542,6 @@ sw.bb12.i.i.i.i12: ; preds = %if.end.i.i.i.i6 %arrayidx14.i.i.i.i14 = getelementptr inbounds ptr, ptr %25, i64 %idxprom13.i.i.i.i13 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i15 -if.end.unreachabledefault.i.i.i.i29: ; preds = %if.end.i.i.i.i6 - unreachable - sw.epilog.i.i.i.i18: ; preds = %sw.bb.i.i.i.i25, %if.end.i.i.i.i6 %c.1.in.i.i.i.i19 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i9, i64 0, i32 3 %trail_sz.1.i.i.i.i20 = add nuw nsw i32 %trail_sz.016.i.i.i.i8, 1 @@ -15770,7 +15614,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -15794,7 +15638,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i24, %if.end.i.i.i.i53 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -15880,7 +15727,7 @@ if.end.i.i.i.i24: ; preds = %sw.epilog.i.i.i.i36 %c.017.i.i.i.i27 = load ptr, ptr %c.017.in.i.i.i.i25, align 8 %bf.load.i.i.i.i.i28 = load i32, ptr %c.017.i.i.i.i27, align 8 %bf.lshr.i.i.i.i.i29 = lshr i32 %bf.load.i.i.i.i.i28, 30 - switch i32 %bf.lshr.i.i.i.i.i29, label %if.end.unreachabledefault.i.i.i.i47 [ + switch i32 %bf.lshr.i.i.i.i.i29, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i43 i32 1, label %sw.bb.i.i.i.i43 i32 2, label %sw.epilog.i.i.i.i36 @@ -15904,9 +15751,6 @@ sw.bb12.i.i.i.i30: ; preds = %if.end.i.i.i.i24 %arrayidx14.i.i.i.i32 = getelementptr inbounds ptr, ptr %34, i64 %idxprom13.i.i.i.i31 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i33 -if.end.unreachabledefault.i.i.i.i47: ; preds = %if.end.i.i.i.i24 - unreachable - sw.epilog.i.i.i.i36: ; preds = %sw.bb.i.i.i.i43, %if.end.i.i.i.i24 %c.1.in.i.i.i.i37 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i27, i64 0, i32 3 %trail_sz.1.i.i.i.i38 = add nuw nsw i32 %trail_sz.016.i.i.i.i26, 1 @@ -15957,7 +15801,7 @@ if.end.i.i.i.i53: ; preds = %sw.epilog.i.i.i.i66 %c.017.i.i.i.i56 = load ptr, ptr %c.017.in.i.i.i.i54, align 8 %bf.load.i.i.i.i.i57 = load i32, ptr %c.017.i.i.i.i56, align 8 %bf.lshr.i.i.i.i.i58 = lshr i32 %bf.load.i.i.i.i.i57, 30 - switch i32 %bf.lshr.i.i.i.i.i58, label %if.end.unreachabledefault.i.i.i.i77 [ + switch i32 %bf.lshr.i.i.i.i.i58, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i73 i32 1, label %sw.bb.i.i.i.i73 i32 2, label %sw.epilog.i.i.i.i66 @@ -15981,9 +15825,6 @@ sw.bb12.i.i.i.i59: ; preds = %if.end.i.i.i.i53 %arrayidx14.i.i.i.i61 = getelementptr inbounds ptr, ptr %47, i64 %idxprom13.i.i.i.i60 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i62 -if.end.unreachabledefault.i.i.i.i77: ; preds = %if.end.i.i.i.i53 - unreachable - sw.epilog.i.i.i.i66: ; preds = %sw.bb.i.i.i.i73, %if.end.i.i.i.i53 %c.1.in.i.i.i.i67 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i56, i64 0, i32 3 %trail_sz.1.i.i.i.i68 = add nuw nsw i32 %trail_sz.016.i.i.i.i55, 1 @@ -16474,7 +16315,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -16498,7 +16339,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %13, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i21, %if.end.i.i.i.i50, %if.end.i.i.i.i85, %if.end.i.i.i.i124, %if.end.i.i.i.i155, %if.end.i.i.i.i188, %if.end.i.i.i.i223, %if.end.i.i.i.i262, %if.end.i.i.i.i293, %if.end.i.i.i.i333, %if.end.i.i.i.i369 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -16551,7 +16395,7 @@ if.end.i.i.i.i21: ; preds = %sw.epilog.i.i.i.i33 %c.017.i.i.i.i24 = load ptr, ptr %c.017.in.i.i.i.i22, align 8 %bf.load.i.i.i.i.i25 = load i32, ptr %c.017.i.i.i.i24, align 8 %bf.lshr.i.i.i.i.i26 = lshr i32 %bf.load.i.i.i.i.i25, 30 - switch i32 %bf.lshr.i.i.i.i.i26, label %if.end.unreachabledefault.i.i.i.i44 [ + switch i32 %bf.lshr.i.i.i.i.i26, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i40 i32 1, label %sw.bb.i.i.i.i40 i32 2, label %sw.epilog.i.i.i.i33 @@ -16575,9 +16419,6 @@ sw.bb12.i.i.i.i27: ; preds = %if.end.i.i.i.i21 %arrayidx14.i.i.i.i29 = getelementptr inbounds ptr, ptr %26, i64 %idxprom13.i.i.i.i28 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i30 -if.end.unreachabledefault.i.i.i.i44: ; preds = %if.end.i.i.i.i21 - unreachable - sw.epilog.i.i.i.i33: ; preds = %sw.bb.i.i.i.i40, %if.end.i.i.i.i21 %c.1.in.i.i.i.i34 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i24, i64 0, i32 3 %trail_sz.1.i.i.i.i35 = add nuw nsw i32 %trail_sz.016.i.i.i.i23, 1 @@ -16631,7 +16472,7 @@ if.end.i.i.i.i50: ; preds = %sw.epilog.i.i.i.i65 %c.017.i.i.i.i53 = load ptr, ptr %c.017.in.i.i.i.i51, align 8 %bf.load.i.i.i.i.i54 = load i32, ptr %c.017.i.i.i.i53, align 8 %bf.lshr.i.i.i.i.i55 = lshr i32 %bf.load.i.i.i.i.i54, 30 - switch i32 %bf.lshr.i.i.i.i.i55, label %if.end.unreachabledefault.i.i.i.i76 [ + switch i32 %bf.lshr.i.i.i.i.i55, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i72 i32 1, label %sw.bb.i.i.i.i72 i32 2, label %sw.epilog.i.i.i.i65 @@ -16655,9 +16496,6 @@ sw.bb12.i.i.i.i56: ; preds = %if.end.i.i.i.i50 %arrayidx14.i.i.i.i58 = getelementptr inbounds ptr, ptr %41, i64 %idxprom13.i.i.i.i57 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i59 -if.end.unreachabledefault.i.i.i.i76: ; preds = %if.end.i.i.i.i50 - unreachable - sw.epilog.i.i.i.i65: ; preds = %sw.bb.i.i.i.i72, %if.end.i.i.i.i50 %c.1.in.i.i.i.i66 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i53, i64 0, i32 3 %trail_sz.1.i.i.i.i67 = add nuw nsw i32 %trail_sz.016.i.i.i.i52, 1 @@ -16708,7 +16546,7 @@ if.end.i.i.i.i85: ; preds = %sw.epilog.i.i.i.i10 %c.017.i.i.i.i88 = load ptr, ptr %c.017.in.i.i.i.i86, align 8 %bf.load.i.i.i.i.i89 = load i32, ptr %c.017.i.i.i.i88, align 8 %bf.lshr.i.i.i.i.i90 = lshr i32 %bf.load.i.i.i.i.i89, 30 - switch i32 %bf.lshr.i.i.i.i.i90, label %if.end.unreachabledefault.i.i.i.i111 [ + switch i32 %bf.lshr.i.i.i.i.i90, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i107 i32 1, label %sw.bb.i.i.i.i107 i32 2, label %sw.epilog.i.i.i.i100 @@ -16732,9 +16570,6 @@ sw.bb12.i.i.i.i91: ; preds = %if.end.i.i.i.i85 %arrayidx14.i.i.i.i93 = getelementptr inbounds ptr, ptr %54, i64 %idxprom13.i.i.i.i92 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i94 -if.end.unreachabledefault.i.i.i.i111: ; preds = %if.end.i.i.i.i85 - unreachable - sw.epilog.i.i.i.i100: ; preds = %sw.bb.i.i.i.i107, %if.end.i.i.i.i85 %c.1.in.i.i.i.i101 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i88, i64 0, i32 3 %trail_sz.1.i.i.i.i102 = add nuw nsw i32 %trail_sz.016.i.i.i.i87, 1 @@ -16794,7 +16629,7 @@ if.end.i.i.i.i124: ; preds = %sw.epilog.i.i.i.i13 %c.017.i.i.i.i127 = load ptr, ptr %c.017.in.i.i.i.i125, align 8 %bf.load.i.i.i.i.i128 = load i32, ptr %c.017.i.i.i.i127, align 8 %bf.lshr.i.i.i.i.i129 = lshr i32 %bf.load.i.i.i.i.i128, 30 - switch i32 %bf.lshr.i.i.i.i.i129, label %if.end.unreachabledefault.i.i.i.i148 [ + switch i32 %bf.lshr.i.i.i.i.i129, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i144 i32 1, label %sw.bb.i.i.i.i144 i32 2, label %sw.epilog.i.i.i.i137 @@ -16818,9 +16653,6 @@ sw.bb12.i.i.i.i130: ; preds = %if.end.i.i.i.i124 %arrayidx14.i.i.i.i132 = getelementptr inbounds ptr, ptr %71, i64 %idxprom13.i.i.i.i131 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i148: ; preds = %if.end.i.i.i.i124 - unreachable - sw.epilog.i.i.i.i137: ; preds = %sw.bb.i.i.i.i144, %if.end.i.i.i.i124 %c.1.in.i.i.i.i138 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i127, i64 0, i32 3 %trail_sz.1.i.i.i.i139 = add nuw nsw i32 %trail_sz.016.i.i.i.i126, 1 @@ -16871,7 +16703,7 @@ if.end.i.i.i.i155: ; preds = %sw.epilog.i.i.i.i16 %c.017.i.i.i.i158 = load ptr, ptr %c.017.in.i.i.i.i156, align 8 %bf.load.i.i.i.i.i159 = load i32, ptr %c.017.i.i.i.i158, align 8 %bf.lshr.i.i.i.i.i160 = lshr i32 %bf.load.i.i.i.i.i159, 30 - switch i32 %bf.lshr.i.i.i.i.i160, label %if.end.unreachabledefault.i.i.i.i180 [ + switch i32 %bf.lshr.i.i.i.i.i160, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i176 i32 1, label %sw.bb.i.i.i.i176 i32 2, label %sw.epilog.i.i.i.i169 @@ -16895,9 +16727,6 @@ sw.bb12.i.i.i.i161: ; preds = %if.end.i.i.i.i155 %arrayidx14.i.i.i.i163 = getelementptr inbounds ptr, ptr %84, i64 %idxprom13.i.i.i.i162 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i164 -if.end.unreachabledefault.i.i.i.i180: ; preds = %if.end.i.i.i.i155 - unreachable - sw.epilog.i.i.i.i169: ; preds = %sw.bb.i.i.i.i176, %if.end.i.i.i.i155 %c.1.in.i.i.i.i170 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i158, i64 0, i32 3 %trail_sz.1.i.i.i.i171 = add nuw nsw i32 %trail_sz.016.i.i.i.i157, 1 @@ -16950,7 +16779,7 @@ if.end.i.i.i.i188: ; preds = %sw.epilog.i.i.i.i20 %c.017.i.i.i.i191 = load ptr, ptr %c.017.in.i.i.i.i189, align 8 %bf.load.i.i.i.i.i192 = load i32, ptr %c.017.i.i.i.i191, align 8 %bf.lshr.i.i.i.i.i193 = lshr i32 %bf.load.i.i.i.i.i192, 30 - switch i32 %bf.lshr.i.i.i.i.i193, label %if.end.unreachabledefault.i.i.i.i214 [ + switch i32 %bf.lshr.i.i.i.i.i193, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i210 i32 1, label %sw.bb.i.i.i.i210 i32 2, label %sw.epilog.i.i.i.i203 @@ -16974,9 +16803,6 @@ sw.bb12.i.i.i.i194: ; preds = %if.end.i.i.i.i188 %arrayidx14.i.i.i.i196 = getelementptr inbounds ptr, ptr %99, i64 %idxprom13.i.i.i.i195 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i197 -if.end.unreachabledefault.i.i.i.i214: ; preds = %if.end.i.i.i.i188 - unreachable - sw.epilog.i.i.i.i203: ; preds = %sw.bb.i.i.i.i210, %if.end.i.i.i.i188 %c.1.in.i.i.i.i204 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i191, i64 0, i32 3 %trail_sz.1.i.i.i.i205 = add nuw nsw i32 %trail_sz.016.i.i.i.i190, 1 @@ -17027,7 +16853,7 @@ if.end.i.i.i.i223: ; preds = %sw.epilog.i.i.i.i23 %c.017.i.i.i.i226 = load ptr, ptr %c.017.in.i.i.i.i224, align 8 %bf.load.i.i.i.i.i227 = load i32, ptr %c.017.i.i.i.i226, align 8 %bf.lshr.i.i.i.i.i228 = lshr i32 %bf.load.i.i.i.i.i227, 30 - switch i32 %bf.lshr.i.i.i.i.i228, label %if.end.unreachabledefault.i.i.i.i248 [ + switch i32 %bf.lshr.i.i.i.i.i228, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i244 i32 1, label %sw.bb.i.i.i.i244 i32 2, label %sw.epilog.i.i.i.i237 @@ -17051,9 +16877,6 @@ sw.bb12.i.i.i.i229: ; preds = %if.end.i.i.i.i223 %arrayidx14.i.i.i.i231 = getelementptr inbounds ptr, ptr %112, i64 %idxprom13.i.i.i.i230 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i232 -if.end.unreachabledefault.i.i.i.i248: ; preds = %if.end.i.i.i.i223 - unreachable - sw.epilog.i.i.i.i237: ; preds = %sw.bb.i.i.i.i244, %if.end.i.i.i.i223 %c.1.in.i.i.i.i238 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i226, i64 0, i32 3 %trail_sz.1.i.i.i.i239 = add nuw nsw i32 %trail_sz.016.i.i.i.i225, 1 @@ -17117,7 +16940,7 @@ if.end.i.i.i.i262: ; preds = %sw.epilog.i.i.i.i27 %c.017.i.i.i.i265 = load ptr, ptr %c.017.in.i.i.i.i263, align 8 %bf.load.i.i.i.i.i266 = load i32, ptr %c.017.i.i.i.i265, align 8 %bf.lshr.i.i.i.i.i267 = lshr i32 %bf.load.i.i.i.i.i266, 30 - switch i32 %bf.lshr.i.i.i.i.i267, label %if.end.unreachabledefault.i.i.i.i286 [ + switch i32 %bf.lshr.i.i.i.i.i267, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i282 i32 1, label %sw.bb.i.i.i.i282 i32 2, label %sw.epilog.i.i.i.i275 @@ -17141,9 +16964,6 @@ sw.bb12.i.i.i.i268: ; preds = %if.end.i.i.i.i262 %arrayidx14.i.i.i.i270 = getelementptr inbounds ptr, ptr %129, i64 %idxprom13.i.i.i.i269 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i271 -if.end.unreachabledefault.i.i.i.i286: ; preds = %if.end.i.i.i.i262 - unreachable - sw.epilog.i.i.i.i275: ; preds = %sw.bb.i.i.i.i282, %if.end.i.i.i.i262 %c.1.in.i.i.i.i276 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i265, i64 0, i32 3 %trail_sz.1.i.i.i.i277 = add nuw nsw i32 %trail_sz.016.i.i.i.i264, 1 @@ -17200,7 +17020,7 @@ if.end.i.i.i.i293: ; preds = %sw.epilog.i.i.i.i31 %c.017.i.i.i.i296 = load ptr, ptr %c.017.in.i.i.i.i294, align 8 %bf.load.i.i.i.i.i297 = load i32, ptr %c.017.i.i.i.i296, align 8 %bf.lshr.i.i.i.i.i298 = lshr i32 %bf.load.i.i.i.i.i297, 30 - switch i32 %bf.lshr.i.i.i.i.i298, label %if.end.unreachabledefault.i.i.i.i321 [ + switch i32 %bf.lshr.i.i.i.i.i298, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i317 i32 1, label %sw.bb.i.i.i.i317 i32 2, label %sw.epilog.i.i.i.i310 @@ -17224,9 +17044,6 @@ sw.bb12.i.i.i.i299: ; preds = %if.end.i.i.i.i293 %arrayidx14.i.i.i.i301 = getelementptr inbounds ptr, ptr %145, i64 %idxprom13.i.i.i.i300 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i302 -if.end.unreachabledefault.i.i.i.i321: ; preds = %if.end.i.i.i.i293 - unreachable - sw.epilog.i.i.i.i310: ; preds = %sw.bb.i.i.i.i317, %if.end.i.i.i.i293 %c.1.in.i.i.i.i311 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i296, i64 0, i32 3 %trail_sz.1.i.i.i.i312 = add nuw nsw i32 %trail_sz.016.i.i.i.i295, 1 @@ -17287,7 +17104,7 @@ if.end.i.i.i.i333: ; preds = %sw.epilog.i.i.i.i35 %c.017.i.i.i.i336 = load ptr, ptr %c.017.in.i.i.i.i334, align 8 %bf.load.i.i.i.i.i337 = load i32, ptr %c.017.i.i.i.i336, align 8 %bf.lshr.i.i.i.i.i338 = lshr i32 %bf.load.i.i.i.i.i337, 30 - switch i32 %bf.lshr.i.i.i.i.i338, label %if.end.unreachabledefault.i.i.i.i361 [ + switch i32 %bf.lshr.i.i.i.i.i338, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i357 i32 1, label %sw.bb.i.i.i.i357 i32 2, label %sw.epilog.i.i.i.i350 @@ -17311,9 +17128,6 @@ sw.bb12.i.i.i.i339: ; preds = %if.end.i.i.i.i333 %arrayidx14.i.i.i.i341 = getelementptr inbounds ptr, ptr %162, i64 %idxprom13.i.i.i.i340 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i342 -if.end.unreachabledefault.i.i.i.i361: ; preds = %if.end.i.i.i.i333 - unreachable - sw.epilog.i.i.i.i350: ; preds = %sw.bb.i.i.i.i357, %if.end.i.i.i.i333 %c.1.in.i.i.i.i351 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i336, i64 0, i32 3 %trail_sz.1.i.i.i.i352 = add nuw nsw i32 %trail_sz.016.i.i.i.i335, 1 @@ -17370,7 +17184,7 @@ if.end.i.i.i.i369: ; preds = %sw.epilog.i.i.i.i38 %c.017.i.i.i.i372 = load ptr, ptr %c.017.in.i.i.i.i370, align 8 %bf.load.i.i.i.i.i373 = load i32, ptr %c.017.i.i.i.i372, align 8 %bf.lshr.i.i.i.i.i374 = lshr i32 %bf.load.i.i.i.i.i373, 30 - switch i32 %bf.lshr.i.i.i.i.i374, label %if.end.unreachabledefault.i.i.i.i397 [ + switch i32 %bf.lshr.i.i.i.i.i374, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i393 i32 1, label %sw.bb.i.i.i.i393 i32 2, label %sw.epilog.i.i.i.i386 @@ -17394,9 +17208,6 @@ sw.bb12.i.i.i.i375: ; preds = %if.end.i.i.i.i369 %arrayidx14.i.i.i.i377 = getelementptr inbounds ptr, ptr %178, i64 %idxprom13.i.i.i.i376 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i378 -if.end.unreachabledefault.i.i.i.i397: ; preds = %if.end.i.i.i.i369 - unreachable - sw.epilog.i.i.i.i386: ; preds = %sw.bb.i.i.i.i393, %if.end.i.i.i.i369 %c.1.in.i.i.i.i387 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i372, i64 0, i32 3 %trail_sz.1.i.i.i.i388 = add nuw nsw i32 %trail_sz.016.i.i.i.i371, 1 @@ -17471,7 +17282,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -17495,7 +17306,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %13, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i21, %if.end.i.i.i.i49, %if.end.i.i.i.i80, %if.end.i.i.i.i117, %if.end.i.i.i.i152, %if.end.i.i.i.i187, %if.end.i.i.i.i222, %if.end.i.i.i.i262, %if.end.i.i.i.i293, %if.end.i.i.i.i331, %if.end.i.i.i.i369 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -17548,7 +17362,7 @@ if.end.i.i.i.i21: ; preds = %sw.epilog.i.i.i.i33 %c.017.i.i.i.i24 = load ptr, ptr %c.017.in.i.i.i.i22, align 8 %bf.load.i.i.i.i.i25 = load i32, ptr %c.017.i.i.i.i24, align 8 %bf.lshr.i.i.i.i.i26 = lshr i32 %bf.load.i.i.i.i.i25, 30 - switch i32 %bf.lshr.i.i.i.i.i26, label %if.end.unreachabledefault.i.i.i.i44 [ + switch i32 %bf.lshr.i.i.i.i.i26, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i40 i32 1, label %sw.bb.i.i.i.i40 i32 2, label %sw.epilog.i.i.i.i33 @@ -17572,9 +17386,6 @@ sw.bb12.i.i.i.i27: ; preds = %if.end.i.i.i.i21 %arrayidx14.i.i.i.i29 = getelementptr inbounds ptr, ptr %26, i64 %idxprom13.i.i.i.i28 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i30 -if.end.unreachabledefault.i.i.i.i44: ; preds = %if.end.i.i.i.i21 - unreachable - sw.epilog.i.i.i.i33: ; preds = %sw.bb.i.i.i.i40, %if.end.i.i.i.i21 %c.1.in.i.i.i.i34 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i24, i64 0, i32 3 %trail_sz.1.i.i.i.i35 = add nuw nsw i32 %trail_sz.016.i.i.i.i23, 1 @@ -17628,7 +17439,7 @@ if.end.i.i.i.i49: ; preds = %sw.epilog.i.i.i.i62 %c.017.i.i.i.i52 = load ptr, ptr %c.017.in.i.i.i.i50, align 8 %bf.load.i.i.i.i.i53 = load i32, ptr %c.017.i.i.i.i52, align 8 %bf.lshr.i.i.i.i.i54 = lshr i32 %bf.load.i.i.i.i.i53, 30 - switch i32 %bf.lshr.i.i.i.i.i54, label %if.end.unreachabledefault.i.i.i.i73 [ + switch i32 %bf.lshr.i.i.i.i.i54, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i69 i32 1, label %sw.bb.i.i.i.i69 i32 2, label %sw.epilog.i.i.i.i62 @@ -17652,9 +17463,6 @@ sw.bb12.i.i.i.i55: ; preds = %if.end.i.i.i.i49 %arrayidx14.i.i.i.i57 = getelementptr inbounds ptr, ptr %41, i64 %idxprom13.i.i.i.i56 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i73: ; preds = %if.end.i.i.i.i49 - unreachable - sw.epilog.i.i.i.i62: ; preds = %sw.bb.i.i.i.i69, %if.end.i.i.i.i49 %c.1.in.i.i.i.i63 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i52, i64 0, i32 3 %trail_sz.1.i.i.i.i64 = add nuw nsw i32 %trail_sz.016.i.i.i.i51, 1 @@ -17705,7 +17513,7 @@ if.end.i.i.i.i80: ; preds = %sw.epilog.i.i.i.i94 %c.017.i.i.i.i83 = load ptr, ptr %c.017.in.i.i.i.i81, align 8 %bf.load.i.i.i.i.i84 = load i32, ptr %c.017.i.i.i.i83, align 8 %bf.lshr.i.i.i.i.i85 = lshr i32 %bf.load.i.i.i.i.i84, 30 - switch i32 %bf.lshr.i.i.i.i.i85, label %if.end.unreachabledefault.i.i.i.i105 [ + switch i32 %bf.lshr.i.i.i.i.i85, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i101 i32 1, label %sw.bb.i.i.i.i101 i32 2, label %sw.epilog.i.i.i.i94 @@ -17729,9 +17537,6 @@ sw.bb12.i.i.i.i86: ; preds = %if.end.i.i.i.i80 %arrayidx14.i.i.i.i88 = getelementptr inbounds ptr, ptr %54, i64 %idxprom13.i.i.i.i87 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i89 -if.end.unreachabledefault.i.i.i.i105: ; preds = %if.end.i.i.i.i80 - unreachable - sw.epilog.i.i.i.i94: ; preds = %sw.bb.i.i.i.i101, %if.end.i.i.i.i80 %c.1.in.i.i.i.i95 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i83, i64 0, i32 3 %trail_sz.1.i.i.i.i96 = add nuw nsw i32 %trail_sz.016.i.i.i.i82, 1 @@ -17790,7 +17595,7 @@ if.end.i.i.i.i117: ; preds = %sw.epilog.i.i.i.i13 %c.017.i.i.i.i120 = load ptr, ptr %c.017.in.i.i.i.i118, align 8 %bf.load.i.i.i.i.i121 = load i32, ptr %c.017.i.i.i.i120, align 8 %bf.lshr.i.i.i.i.i122 = lshr i32 %bf.load.i.i.i.i.i121, 30 - switch i32 %bf.lshr.i.i.i.i.i122, label %if.end.unreachabledefault.i.i.i.i143 [ + switch i32 %bf.lshr.i.i.i.i.i122, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i139 i32 1, label %sw.bb.i.i.i.i139 i32 2, label %sw.epilog.i.i.i.i132 @@ -17814,9 +17619,6 @@ sw.bb12.i.i.i.i123: ; preds = %if.end.i.i.i.i117 %arrayidx14.i.i.i.i125 = getelementptr inbounds ptr, ptr %71, i64 %idxprom13.i.i.i.i124 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i126 -if.end.unreachabledefault.i.i.i.i143: ; preds = %if.end.i.i.i.i117 - unreachable - sw.epilog.i.i.i.i132: ; preds = %sw.bb.i.i.i.i139, %if.end.i.i.i.i117 %c.1.in.i.i.i.i133 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i120, i64 0, i32 3 %trail_sz.1.i.i.i.i134 = add nuw nsw i32 %trail_sz.016.i.i.i.i119, 1 @@ -17867,7 +17669,7 @@ if.end.i.i.i.i152: ; preds = %sw.epilog.i.i.i.i16 %c.017.i.i.i.i155 = load ptr, ptr %c.017.in.i.i.i.i153, align 8 %bf.load.i.i.i.i.i156 = load i32, ptr %c.017.i.i.i.i155, align 8 %bf.lshr.i.i.i.i.i157 = lshr i32 %bf.load.i.i.i.i.i156, 30 - switch i32 %bf.lshr.i.i.i.i.i157, label %if.end.unreachabledefault.i.i.i.i177 [ + switch i32 %bf.lshr.i.i.i.i.i157, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i173 i32 1, label %sw.bb.i.i.i.i173 i32 2, label %sw.epilog.i.i.i.i166 @@ -17891,9 +17693,6 @@ sw.bb12.i.i.i.i158: ; preds = %if.end.i.i.i.i152 %arrayidx14.i.i.i.i160 = getelementptr inbounds ptr, ptr %84, i64 %idxprom13.i.i.i.i159 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i161 -if.end.unreachabledefault.i.i.i.i177: ; preds = %if.end.i.i.i.i152 - unreachable - sw.epilog.i.i.i.i166: ; preds = %sw.bb.i.i.i.i173, %if.end.i.i.i.i152 %c.1.in.i.i.i.i167 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i155, i64 0, i32 3 %trail_sz.1.i.i.i.i168 = add nuw nsw i32 %trail_sz.016.i.i.i.i154, 1 @@ -17946,7 +17745,7 @@ if.end.i.i.i.i187: ; preds = %sw.epilog.i.i.i.i20 %c.017.i.i.i.i190 = load ptr, ptr %c.017.in.i.i.i.i188, align 8 %bf.load.i.i.i.i.i191 = load i32, ptr %c.017.i.i.i.i190, align 8 %bf.lshr.i.i.i.i.i192 = lshr i32 %bf.load.i.i.i.i.i191, 30 - switch i32 %bf.lshr.i.i.i.i.i192, label %if.end.unreachabledefault.i.i.i.i213 [ + switch i32 %bf.lshr.i.i.i.i.i192, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i209 i32 1, label %sw.bb.i.i.i.i209 i32 2, label %sw.epilog.i.i.i.i202 @@ -17970,9 +17769,6 @@ sw.bb12.i.i.i.i193: ; preds = %if.end.i.i.i.i187 %arrayidx14.i.i.i.i195 = getelementptr inbounds ptr, ptr %99, i64 %idxprom13.i.i.i.i194 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i196 -if.end.unreachabledefault.i.i.i.i213: ; preds = %if.end.i.i.i.i187 - unreachable - sw.epilog.i.i.i.i202: ; preds = %sw.bb.i.i.i.i209, %if.end.i.i.i.i187 %c.1.in.i.i.i.i203 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i190, i64 0, i32 3 %trail_sz.1.i.i.i.i204 = add nuw nsw i32 %trail_sz.016.i.i.i.i189, 1 @@ -18023,7 +17819,7 @@ if.end.i.i.i.i222: ; preds = %sw.epilog.i.i.i.i23 %c.017.i.i.i.i225 = load ptr, ptr %c.017.in.i.i.i.i223, align 8 %bf.load.i.i.i.i.i226 = load i32, ptr %c.017.i.i.i.i225, align 8 %bf.lshr.i.i.i.i.i227 = lshr i32 %bf.load.i.i.i.i.i226, 30 - switch i32 %bf.lshr.i.i.i.i.i227, label %if.end.unreachabledefault.i.i.i.i248 [ + switch i32 %bf.lshr.i.i.i.i.i227, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i244 i32 1, label %sw.bb.i.i.i.i244 i32 2, label %sw.epilog.i.i.i.i237 @@ -18047,9 +17843,6 @@ sw.bb12.i.i.i.i228: ; preds = %if.end.i.i.i.i222 %arrayidx14.i.i.i.i230 = getelementptr inbounds ptr, ptr %112, i64 %idxprom13.i.i.i.i229 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i231 -if.end.unreachabledefault.i.i.i.i248: ; preds = %if.end.i.i.i.i222 - unreachable - sw.epilog.i.i.i.i237: ; preds = %sw.bb.i.i.i.i244, %if.end.i.i.i.i222 %c.1.in.i.i.i.i238 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i225, i64 0, i32 3 %trail_sz.1.i.i.i.i239 = add nuw nsw i32 %trail_sz.016.i.i.i.i224, 1 @@ -18114,7 +17907,7 @@ if.end.i.i.i.i262: ; preds = %sw.epilog.i.i.i.i27 %c.017.i.i.i.i265 = load ptr, ptr %c.017.in.i.i.i.i263, align 8 %bf.load.i.i.i.i.i266 = load i32, ptr %c.017.i.i.i.i265, align 8 %bf.lshr.i.i.i.i.i267 = lshr i32 %bf.load.i.i.i.i.i266, 30 - switch i32 %bf.lshr.i.i.i.i.i267, label %if.end.unreachabledefault.i.i.i.i286 [ + switch i32 %bf.lshr.i.i.i.i.i267, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i282 i32 1, label %sw.bb.i.i.i.i282 i32 2, label %sw.epilog.i.i.i.i275 @@ -18138,9 +17931,6 @@ sw.bb12.i.i.i.i268: ; preds = %if.end.i.i.i.i262 %arrayidx14.i.i.i.i270 = getelementptr inbounds ptr, ptr %129, i64 %idxprom13.i.i.i.i269 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i271 -if.end.unreachabledefault.i.i.i.i286: ; preds = %if.end.i.i.i.i262 - unreachable - sw.epilog.i.i.i.i275: ; preds = %sw.bb.i.i.i.i282, %if.end.i.i.i.i262 %c.1.in.i.i.i.i276 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i265, i64 0, i32 3 %trail_sz.1.i.i.i.i277 = add nuw nsw i32 %trail_sz.016.i.i.i.i264, 1 @@ -18197,7 +17987,7 @@ if.end.i.i.i.i293: ; preds = %sw.epilog.i.i.i.i31 %c.017.i.i.i.i296 = load ptr, ptr %c.017.in.i.i.i.i294, align 8 %bf.load.i.i.i.i.i297 = load i32, ptr %c.017.i.i.i.i296, align 8 %bf.lshr.i.i.i.i.i298 = lshr i32 %bf.load.i.i.i.i.i297, 30 - switch i32 %bf.lshr.i.i.i.i.i298, label %if.end.unreachabledefault.i.i.i.i321 [ + switch i32 %bf.lshr.i.i.i.i.i298, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i317 i32 1, label %sw.bb.i.i.i.i317 i32 2, label %sw.epilog.i.i.i.i310 @@ -18221,9 +18011,6 @@ sw.bb12.i.i.i.i299: ; preds = %if.end.i.i.i.i293 %arrayidx14.i.i.i.i301 = getelementptr inbounds ptr, ptr %145, i64 %idxprom13.i.i.i.i300 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i302 -if.end.unreachabledefault.i.i.i.i321: ; preds = %if.end.i.i.i.i293 - unreachable - sw.epilog.i.i.i.i310: ; preds = %sw.bb.i.i.i.i317, %if.end.i.i.i.i293 %c.1.in.i.i.i.i311 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i296, i64 0, i32 3 %trail_sz.1.i.i.i.i312 = add nuw nsw i32 %trail_sz.016.i.i.i.i295, 1 @@ -18284,7 +18071,7 @@ if.end.i.i.i.i331: ; preds = %sw.epilog.i.i.i.i34 %c.017.i.i.i.i334 = load ptr, ptr %c.017.in.i.i.i.i332, align 8 %bf.load.i.i.i.i.i335 = load i32, ptr %c.017.i.i.i.i334, align 8 %bf.lshr.i.i.i.i.i336 = lshr i32 %bf.load.i.i.i.i.i335, 30 - switch i32 %bf.lshr.i.i.i.i.i336, label %if.end.unreachabledefault.i.i.i.i359 [ + switch i32 %bf.lshr.i.i.i.i.i336, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i355 i32 1, label %sw.bb.i.i.i.i355 i32 2, label %sw.epilog.i.i.i.i348 @@ -18308,9 +18095,6 @@ sw.bb12.i.i.i.i337: ; preds = %if.end.i.i.i.i331 %arrayidx14.i.i.i.i339 = getelementptr inbounds ptr, ptr %162, i64 %idxprom13.i.i.i.i338 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i340 -if.end.unreachabledefault.i.i.i.i359: ; preds = %if.end.i.i.i.i331 - unreachable - sw.epilog.i.i.i.i348: ; preds = %sw.bb.i.i.i.i355, %if.end.i.i.i.i331 %c.1.in.i.i.i.i349 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i334, i64 0, i32 3 %trail_sz.1.i.i.i.i350 = add nuw nsw i32 %trail_sz.016.i.i.i.i333, 1 @@ -18367,7 +18151,7 @@ if.end.i.i.i.i369: ; preds = %sw.epilog.i.i.i.i38 %c.017.i.i.i.i372 = load ptr, ptr %c.017.in.i.i.i.i370, align 8 %bf.load.i.i.i.i.i373 = load i32, ptr %c.017.i.i.i.i372, align 8 %bf.lshr.i.i.i.i.i374 = lshr i32 %bf.load.i.i.i.i.i373, 30 - switch i32 %bf.lshr.i.i.i.i.i374, label %if.end.unreachabledefault.i.i.i.i397 [ + switch i32 %bf.lshr.i.i.i.i.i374, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i393 i32 1, label %sw.bb.i.i.i.i393 i32 2, label %sw.epilog.i.i.i.i386 @@ -18391,9 +18175,6 @@ sw.bb12.i.i.i.i375: ; preds = %if.end.i.i.i.i369 %arrayidx14.i.i.i.i377 = getelementptr inbounds ptr, ptr %178, i64 %idxprom13.i.i.i.i376 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i378 -if.end.unreachabledefault.i.i.i.i397: ; preds = %if.end.i.i.i.i369 - unreachable - sw.epilog.i.i.i.i386: ; preds = %sw.bb.i.i.i.i393, %if.end.i.i.i.i369 %c.1.in.i.i.i.i387 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i372, i64 0, i32 3 %trail_sz.1.i.i.i.i388 = add nuw nsw i32 %trail_sz.016.i.i.i.i371, 1 @@ -18561,7 +18342,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %ent %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -18585,7 +18366,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %8, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +if.end.i.i.unreachabledefault: ; preds = %if.end.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i32 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -18616,7 +18400,7 @@ if.end.i.i32: ; preds = %sw.epilog.i.i42, %_ %c.017.i.i35 = load ptr, ptr %c.017.in.i.i33, align 8 %bf.load.i.i.i36 = load i32, ptr %c.017.i.i35, align 8 %bf.lshr.i.i.i37 = lshr i32 %bf.load.i.i.i36, 30 - switch i32 %bf.lshr.i.i.i37, label %if.end.unreachabledefault.i.i53 [ + switch i32 %bf.lshr.i.i.i37, label %default.unreachable [ i32 0, label %sw.bb.i.i49 i32 1, label %sw.bb.i.i49 i32 2, label %sw.epilog.i.i42 @@ -18640,9 +18424,6 @@ sw.bb12.i.i38: ; preds = %if.end.i.i32 %arrayidx14.i.i40 = getelementptr inbounds ptr, ptr %17, i64 %idxprom13.i.i39 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i53: ; preds = %if.end.i.i32 - unreachable - sw.epilog.i.i42: ; preds = %sw.bb.i.i49, %if.end.i.i32 %c.1.in.i.i43 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i35, i64 0, i32 3 %trail_sz.1.i.i44 = add nuw nsw i32 %trail_sz.016.i.i34, 1 @@ -22719,7 +22500,7 @@ if.end.i.i12: ; preds = %sw.epilog.i.i, %for %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i12.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -22743,7 +22524,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i12 %arrayidx14.i.i = getelementptr inbounds ptr, ptr %10, i64 %indvars.iv br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i12 +if.end.i.i12.unreachabledefault: ; preds = %if.end.i.i12 + unreachable + +default.unreachable: ; preds = %if.end.i.i15 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i12 @@ -22772,7 +22556,7 @@ if.end.i.i15: ; preds = %sw.epilog.i.i25, %_ %c.017.i.i18 = load ptr, ptr %c.017.in.i.i16, align 8 %bf.load.i.i.i19 = load i32, ptr %c.017.i.i18, align 8 %bf.lshr.i.i.i20 = lshr i32 %bf.load.i.i.i19, 30 - switch i32 %bf.lshr.i.i.i20, label %if.end.unreachabledefault.i.i36 [ + switch i32 %bf.lshr.i.i.i20, label %default.unreachable [ i32 0, label %sw.bb.i.i32 i32 1, label %sw.bb.i.i32 i32 2, label %sw.epilog.i.i25 @@ -22796,9 +22580,6 @@ sw.bb12.i.i21: ; preds = %if.end.i.i15 %arrayidx14.i.i23 = getelementptr inbounds ptr, ptr %20, i64 %indvars.iv br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i36: ; preds = %if.end.i.i15 - unreachable - sw.epilog.i.i25: ; preds = %sw.bb.i.i32, %if.end.i.i15 %c.1.in.i.i26 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i18, i64 0, i32 3 %trail_sz.1.i.i27 = add nuw nsw i32 %trail_sz.016.i.i17, 1 @@ -23300,7 +23081,7 @@ if.end.i.i.i20: ; preds = %while.body.i, %sw.e %c.017.i.i.i = load ptr, ptr %c.017.in.i.i.i, align 8 %bf.load.i.i.i.i = load i32, ptr %c.017.i.i.i, align 8 %bf.lshr.i.i.i.i = lshr i32 %bf.load.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i, label %if.end.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i, label %if.end.i.i.i20.unreachabledefault [ i32 0, label %sw.bb.i.i.i i32 1, label %sw.bb.i.i.i i32 2, label %sw.epilog.i.i.i @@ -23324,7 +23105,10 @@ sw.bb12.i.i.i: ; preds = %if.end.i.i.i20 %arrayidx14.i.i.i = getelementptr inbounds ptr, ptr %23, i64 %idxprom13.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE11most_recentEPNS2_5boundEPNS2_4nodeE.exit -if.end.unreachabledefault.i.i.i: ; preds = %if.end.i.i.i20 +if.end.i.i.i20.unreachabledefault: ; preds = %if.end.i.i.i20 + unreachable + +default.unreachable: ; preds = %if.end.i.i7.i unreachable sw.epilog.i.i.i: ; preds = %sw.bb.i.i.i, %if.end.i.i.i20 @@ -23348,7 +23132,7 @@ if.end.i.i7.i: ; preds = %while.body.i, %sw.e %c.017.i.i10.i = load ptr, ptr %c.017.in.i.i8.i, align 8 %bf.load.i.i.i11.i = load i32, ptr %c.017.i.i10.i, align 8 %bf.lshr.i.i.i12.i = lshr i32 %bf.load.i.i.i11.i, 30 - switch i32 %bf.lshr.i.i.i12.i, label %if.end.unreachabledefault.i.i28.i [ + switch i32 %bf.lshr.i.i.i12.i, label %default.unreachable [ i32 0, label %sw.bb.i.i24.i i32 1, label %sw.bb.i.i24.i i32 2, label %sw.epilog.i.i17.i @@ -23372,9 +23156,6 @@ sw.bb12.i.i13.i: ; preds = %if.end.i.i7.i %arrayidx14.i.i15.i = getelementptr inbounds ptr, ptr %30, i64 %idxprom13.i.i14.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE11most_recentEPNS2_5boundEPNS2_4nodeE.exit -if.end.unreachabledefault.i.i28.i: ; preds = %if.end.i.i7.i - unreachable - sw.epilog.i.i17.i: ; preds = %sw.bb.i.i24.i, %if.end.i.i7.i %c.1.in.i.i18.i = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i10.i, i64 0, i32 3 %trail_sz.1.i.i19.i = add nuw nsw i32 %trail_sz.016.i.i9.i, 1 @@ -23971,7 +23752,7 @@ for.body: ; preds = %for.body.preheader, %23 = load ptr, ptr %arrayidx.i18, align 8 %bf.load.i19 = load i32, ptr %23, align 8 %bf.lshr.i20 = lshr i32 %bf.load.i19, 30 - switch i32 %bf.lshr.i20, label %for.body.unreachabledefault [ + switch i32 %bf.lshr.i20, label %default.unreachable [ i32 0, label %sw.bb i32 2, label %sw.bb8 i32 1, label %sw.bb9 @@ -24070,7 +23851,7 @@ sw.bb11: ; preds = %for.body tail call void @exit(i32 noundef 114) #22 unreachable -for.body.unreachabledefault: ; preds = %for.body +default.unreachable: ; preds = %for.body unreachable sw.epilog: ; preds = %_ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE10rpush_backERPPNS3_5boundERjRKS7_.exit, %sw.bb8, %sw.bb @@ -24187,8 +23968,8 @@ _ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_ar br i1 %cmp.i28, label %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread, label %while.body.i.preheader _ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread: ; preds = %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE5resetEv.exit - %bf.load.i83104 = load i32, ptr %.pre, align 8 - %bf.lshr.i84105 = lshr i32 %bf.load.i83104, 30 + %bf.load.i83105 = load i32, ptr %.pre, align 8 + %bf.lshr.i84106 = lshr i32 %bf.load.i83105, 30 br label %while.end while.body.i.preheader: ; preds = %if.end, %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE5resetEv.exit @@ -24199,7 +23980,7 @@ while.body.i: ; preds = %while.body.i.prehea %c.0.i = phi ptr [ %4, %sw.bb.i ], [ %2, %while.body.i.preheader ] %bf.load.i.i29 = load i32, ptr %c.0.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i29, 30 - switch i32 %bf.lshr.i.i, label %while.body.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %while.body.i.unreachabledefault [ i32 0, label %sw.bb.i i32 1, label %sw.bb3.i i32 2, label %sw.bb5.i @@ -24228,7 +24009,10 @@ sw.bb7.i: ; preds = %while.body.i %10 = load i32, ptr %9, align 4 br label %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit -while.body.unreachabledefault.i: ; preds = %while.body.i +while.body.i.unreachabledefault: ; preds = %while.body.i + unreachable + +default.unreachable101: ; preds = %for.body unreachable _ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit: ; preds = %sw.bb3.i, %sw.bb5.i, %sw.bb7.i @@ -24285,9 +24069,9 @@ _ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_ar br i1 %21, label %while.body, label %while.end, !llvm.loop !97 while.end: ; preds = %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE9push_backERKS8_.exit, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit - %bf.load.i.i35 = phi i32 [ %bf.load.i83, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit ], [ %bf.load.i83104, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread ], [ %bf.load.i, %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE9push_backERKS8_.exit ] + %bf.load.i.i35 = phi i32 [ %bf.load.i83, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit ], [ %bf.load.i83105, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread ], [ %bf.load.i, %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE9push_backERKS8_.exit ] %c.0.lcssa = phi ptr [ %2, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit ], [ null, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread ], [ %20, %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE9push_backERKS8_.exit ] - %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i84, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit ], [ %bf.lshr.i84105, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE9push_backERKS8_.exit ] + %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i84, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit ], [ %bf.lshr.i84106, %_ZNK14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE4sizeERKNS5_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN9subpaving9context_tINS1_10config_mpfEE18bound_array_configEE4cellELb0EjE9push_backERKS8_.exit ] %cmp8.not = icmp eq i32 %bf.lshr.i.lcssa, 3 br i1 %cmp8.not, label %if.end10, label %if.then9 @@ -24343,7 +24127,7 @@ for.body: ; preds = %for.body.lr.ph, %_Z %35 = load ptr, ptr %34, align 8 %bf.load = load i32, ptr %31, align 8 %bf.lshr = lshr i32 %bf.load, 30 - switch i32 %bf.lshr, label %for.body.unreachabledefault [ + switch i32 %bf.lshr, label %default.unreachable101 [ i32 0, label %sw.bb i32 1, label %sw.bb18 i32 2, label %sw.bb30 @@ -24452,9 +24236,6 @@ sw.bb38: ; preds = %for.body call void @exit(i32 noundef 114) #22 unreachable -for.body.unreachabledefault: ; preds = %for.body - unreachable - _ZN14parray_managerIN9subpaving9context_tINS0_10config_mpfEE18bound_array_configEE7inc_refEPNS5_4cellE.exit: ; preds = %sw.bb30, %if.end25, %sw.bb %vs.1 = phi ptr [ %35, %sw.bb30 ], [ %vs.0, %if.end25 ], [ %35, %sw.bb ] %sz.0 = phi i32 [ %dec34, %sw.bb30 ], [ %inc29, %if.end25 ], [ %33, %sw.bb ] @@ -24803,7 +24584,7 @@ land.lhs.true.i.i.i: ; preds = %while.end.i.i.i br i1 %cmp9.i.i.i, label %if.then10.i.i.i, label %if.end18.i.i.i if.then10.i.i.i: ; preds = %land.lhs.true.i.i.i - %add11.i.i.i = shl i64 %__holeIndex.addr.0.lcssa.i.i.i, 1 + %add11.i.i.i = shl nsw i64 %__holeIndex.addr.0.lcssa.i.i.i, 1 %sub13.i.i.i = or disjoint i64 %add11.i.i.i, 1 %add.ptr14.i.i.i = getelementptr inbounds %"class.subpaving::power", ptr %__first, i64 %sub13.i.i.i %add.ptr15.i.i.i = getelementptr inbounds %"class.subpaving::power", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i @@ -25280,7 +25061,7 @@ while.end.i: ; preds = %while.body.i, %if.e br i1 %or.cond, label %if.then10.i, label %if.end18.i if.then10.i: ; preds = %while.end.i - %add11.i = shl i64 %__holeIndex.addr.0.lcssa.i, 1 + %add11.i = shl nsw i64 %__holeIndex.addr.0.lcssa.i, 1 %sub13.i = or disjoint i64 %add11.i, 1 %add.ptr14.i = getelementptr inbounds %"class.subpaving::power", ptr %__first, i64 %sub13.i %add.ptr15.i = getelementptr inbounds %"class.subpaving::power", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i @@ -25774,45 +25555,45 @@ declare noalias noundef ptr @_ZnwmRKSt9nothrow_t(i64 noundef, ptr noundef nonnul ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZSt22__merge_without_bufferIPPN9subpaving9context_tINS0_10config_mpfEE4ineqElN9__gnu_cxx5__ops15_Iter_comp_iterINS4_11lt_var_procEEEEvT_SC_SC_T0_SD_T1_(ptr noundef %__first, ptr noundef %__middle, ptr noundef %__last, i64 noundef %__len1, i64 noundef %__len2) local_unnamed_addr #4 comdat { entry: - %cmp75 = icmp eq i64 %__len1, 0 - %cmp176 = icmp eq i64 %__len2, 0 - %or.cond77 = or i1 %cmp75, %cmp176 - br i1 %or.cond77, label %return, label %if.end.lr.ph + %cmp72 = icmp eq i64 %__len1, 0 + %cmp173 = icmp eq i64 %__len2, 0 + %or.cond74 = or i1 %cmp72, %cmp173 + br i1 %or.cond74, label %return, label %if.end.lr.ph if.end.lr.ph: ; preds = %entry %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %__last to i64 br label %if.end if.end: ; preds = %if.end.lr.ph, %if.end18 - %__len2.tr82 = phi i64 [ %__len2, %if.end.lr.ph ], [ %sub21, %if.end18 ] - %__len1.tr81 = phi i64 [ %__len1, %if.end.lr.ph ], [ %sub, %if.end18 ] - %__middle.tr79 = phi ptr [ %__middle, %if.end.lr.ph ], [ %__second_cut.0, %if.end18 ] - %__first.tr78 = phi ptr [ %__first, %if.end.lr.ph ], [ %call.i, %if.end18 ] - %add = add nsw i64 %__len2.tr82, %__len1.tr81 + %__len2.tr79 = phi i64 [ %__len2, %if.end.lr.ph ], [ %sub21, %if.end18 ] + %__len1.tr78 = phi i64 [ %__len1, %if.end.lr.ph ], [ %sub, %if.end18 ] + %__middle.tr76 = phi ptr [ %__middle, %if.end.lr.ph ], [ %__second_cut.0, %if.end18 ] + %__first.tr75 = phi ptr [ %__first, %if.end.lr.ph ], [ %call.i, %if.end18 ] + %add = add nsw i64 %__len2.tr79, %__len1.tr78 %cmp2 = icmp eq i64 %add, 2 br i1 %cmp2, label %if.then3, label %if.end6 if.then3: ; preds = %if.end - %0 = load ptr, ptr %__middle.tr79, align 8 - %1 = load ptr, ptr %__first.tr78, align 8 + %0 = load ptr, ptr %__middle.tr76, align 8 + %1 = load ptr, ptr %__first.tr75, align 8 %2 = load i32, ptr %0, align 8 %3 = load i32, ptr %1, align 8 %cmp.i.i = icmp ult i32 %2, %3 br i1 %cmp.i.i, label %if.then4, label %return if.then4: ; preds = %if.then3 - store ptr %0, ptr %__first.tr78, align 8 - store ptr %1, ptr %__middle.tr79, align 8 + store ptr %0, ptr %__first.tr75, align 8 + store ptr %1, ptr %__middle.tr76, align 8 br label %return if.end6: ; preds = %if.end - %cmp7 = icmp sgt i64 %__len1.tr81, %__len2.tr82 - %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %__middle.tr79 to i64 + %cmp7 = icmp sgt i64 %__len1.tr78, %__len2.tr79 + %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %__middle.tr76 to i64 br i1 %cmp7, label %if.then8, label %if.else if.then8: ; preds = %if.end6 - %div = sdiv i64 %__len1.tr81, 2 - %incdec.ptr.i.i = getelementptr inbounds ptr, ptr %__first.tr78, i64 %div + %div = sdiv i64 %__len1.tr78, 2 + %incdec.ptr.i.i = getelementptr inbounds ptr, ptr %__first.tr75, i64 %div %sub.ptr.sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i %sub.ptr.div.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i, 3 %cmp12.i = icmp sgt i64 %sub.ptr.div.i.i.i, 0 @@ -25824,7 +25605,7 @@ while.body.lr.ph.i: ; preds = %if.then8 br label %while.body.i while.body.i: ; preds = %while.body.i, %while.body.lr.ph.i - %__first.addr.014.i = phi ptr [ %__middle.tr79, %while.body.lr.ph.i ], [ %__first.addr.1.i, %while.body.i ] + %__first.addr.014.i = phi ptr [ %__middle.tr76, %while.body.lr.ph.i ], [ %__first.addr.1.i, %while.body.i ] %__len.013.i = phi i64 [ %sub.ptr.div.i.i.i, %while.body.lr.ph.i ], [ %__len.1.i, %while.body.i ] %shr.i = lshr i64 %__len.013.i, 1 %incdec.ptr4.sink.i.i.i = getelementptr inbounds ptr, ptr %__first.addr.014.i, i64 %shr.i @@ -25845,15 +25626,15 @@ _ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_c _ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit: ; preds = %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, %if.then8 %sub.ptr.lhs.cast.i.i.pre-phi = phi i64 [ %.pre, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %sub.ptr.rhs.cast.i.i.i, %if.then8 ] - %__first.addr.0.lcssa.i = phi ptr [ %__first.addr.1.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__middle.tr79, %if.then8 ] + %__first.addr.0.lcssa.i = phi ptr [ %__first.addr.1.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__middle.tr76, %if.then8 ] %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i.pre-phi, %sub.ptr.rhs.cast.i.i.i %sub.ptr.div.i.i = ashr exact i64 %sub.ptr.sub.i.i, 3 br label %if.end18 if.else: ; preds = %if.end6 - %div12 = sdiv i64 %__len2.tr82, 2 - %incdec.ptr.i.i38 = getelementptr inbounds ptr, ptr %__middle.tr79, i64 %div12 - %sub.ptr.rhs.cast.i.i.i41 = ptrtoint ptr %__first.tr78 to i64 + %div12 = sdiv i64 %__len2.tr79, 2 + %incdec.ptr.i.i38 = getelementptr inbounds ptr, ptr %__middle.tr76, i64 %div12 + %sub.ptr.rhs.cast.i.i.i41 = ptrtoint ptr %__first.tr75 to i64 %sub.ptr.sub.i.i.i42 = sub i64 %sub.ptr.rhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i41 %sub.ptr.div.i.i.i43 = ashr exact i64 %sub.ptr.sub.i.i.i42, 3 %cmp12.i44 = icmp sgt i64 %sub.ptr.div.i.i.i43, 0 @@ -25865,41 +25646,41 @@ while.body.lr.ph.i46: ; preds = %if.else br label %while.body.i47 while.body.i47: ; preds = %while.body.i47, %while.body.lr.ph.i46 - %__first.addr.014.i48 = phi ptr [ %__first.tr78, %while.body.lr.ph.i46 ], [ %__first.addr.1.i59, %while.body.i47 ] - %__len.013.i49 = phi i64 [ %sub.ptr.div.i.i.i43, %while.body.lr.ph.i46 ], [ %__len.1.i58, %while.body.i47 ] + %__first.addr.014.i48 = phi ptr [ %__first.tr75, %while.body.lr.ph.i46 ], [ %__first.addr.1.i56, %while.body.i47 ] + %__len.013.i49 = phi i64 [ %sub.ptr.div.i.i.i43, %while.body.lr.ph.i46 ], [ %__len.1.i55, %while.body.i47 ] %shr.i50 = lshr i64 %__len.013.i49, 1 - %incdec.ptr4.sink.i.i.i54 = getelementptr inbounds ptr, ptr %__first.addr.014.i48, i64 %shr.i50 - %11 = load ptr, ptr %incdec.ptr4.sink.i.i.i54, align 8 + %incdec.ptr4.sink.i.i.i51 = getelementptr inbounds ptr, ptr %__first.addr.014.i48, i64 %shr.i50 + %11 = load ptr, ptr %incdec.ptr4.sink.i.i.i51, align 8 %12 = load i32, ptr %11, align 8 - %cmp.i.i8.i55 = icmp ult i32 %10, %12 - %incdec.ptr.i56 = getelementptr inbounds ptr, ptr %incdec.ptr4.sink.i.i.i54, i64 1 + %cmp.i.i8.i52 = icmp ult i32 %10, %12 + %incdec.ptr.i53 = getelementptr inbounds ptr, ptr %incdec.ptr4.sink.i.i.i51, i64 1 %13 = xor i64 %shr.i50, -1 - %sub2.i57 = add nsw i64 %__len.013.i49, %13 - %__len.1.i58 = select i1 %cmp.i.i8.i55, i64 %shr.i50, i64 %sub2.i57 - %__first.addr.1.i59 = select i1 %cmp.i.i8.i55, ptr %__first.addr.014.i48, ptr %incdec.ptr.i56 - %cmp.i60 = icmp sgt i64 %__len.1.i58, 0 - br i1 %cmp.i60, label %while.body.i47, label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, !llvm.loop !115 + %sub2.i54 = add nsw i64 %__len.013.i49, %13 + %__len.1.i55 = select i1 %cmp.i.i8.i52, i64 %shr.i50, i64 %sub2.i54 + %__first.addr.1.i56 = select i1 %cmp.i.i8.i52, ptr %__first.addr.014.i48, ptr %incdec.ptr.i53 + %cmp.i57 = icmp sgt i64 %__len.1.i55, 0 + br i1 %cmp.i57, label %while.body.i47, label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, !llvm.loop !115 _ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit: ; preds = %while.body.i47 - %.pre85 = ptrtoint ptr %__first.addr.1.i59 to i64 + %.pre82 = ptrtoint ptr %__first.addr.1.i56 to i64 br label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit _ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit: ; preds = %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, %if.else - %sub.ptr.lhs.cast.i.i61.pre-phi = phi i64 [ %.pre85, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %sub.ptr.rhs.cast.i.i.i41, %if.else ] - %__first.addr.0.lcssa.i45 = phi ptr [ %__first.addr.1.i59, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__first.tr78, %if.else ] - %sub.ptr.sub.i.i63 = sub i64 %sub.ptr.lhs.cast.i.i61.pre-phi, %sub.ptr.rhs.cast.i.i.i41 - %sub.ptr.div.i.i64 = ashr exact i64 %sub.ptr.sub.i.i63, 3 + %sub.ptr.lhs.cast.i.i58.pre-phi = phi i64 [ %.pre82, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %sub.ptr.rhs.cast.i.i.i41, %if.else ] + %__first.addr.0.lcssa.i45 = phi ptr [ %__first.addr.1.i56, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__first.tr75, %if.else ] + %sub.ptr.sub.i.i60 = sub i64 %sub.ptr.lhs.cast.i.i58.pre-phi, %sub.ptr.rhs.cast.i.i.i41 + %sub.ptr.div.i.i61 = ashr exact i64 %sub.ptr.sub.i.i60, 3 br label %if.end18 if.end18: ; preds = %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit %__first_cut.0 = phi ptr [ %incdec.ptr.i.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %__first.addr.0.lcssa.i45, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] %__second_cut.0 = phi ptr [ %__first.addr.0.lcssa.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %incdec.ptr.i.i38, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] %__len22.0 = phi i64 [ %sub.ptr.div.i.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %div12, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] - %__len11.0 = phi i64 [ %div, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %sub.ptr.div.i.i64, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] - %call.i = tail call noundef ptr @_ZNSt3_V28__rotateIPPN9subpaving9context_tINS1_10config_mpfEE4ineqEEET_S8_S8_S8_St26random_access_iterator_tag(ptr noundef %__first_cut.0, ptr noundef %__middle.tr79, ptr noundef %__second_cut.0) - tail call void @_ZSt22__merge_without_bufferIPPN9subpaving9context_tINS0_10config_mpfEE4ineqElN9__gnu_cxx5__ops15_Iter_comp_iterINS4_11lt_var_procEEEEvT_SC_SC_T0_SD_T1_(ptr noundef %__first.tr78, ptr noundef %__first_cut.0, ptr noundef %call.i, i64 noundef %__len11.0, i64 noundef %__len22.0) - %sub = sub nsw i64 %__len1.tr81, %__len11.0 - %sub21 = sub nsw i64 %__len2.tr82, %__len22.0 + %__len11.0 = phi i64 [ %div, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %sub.ptr.div.i.i61, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] + %call.i = tail call noundef ptr @_ZNSt3_V28__rotateIPPN9subpaving9context_tINS1_10config_mpfEE4ineqEEET_S8_S8_S8_St26random_access_iterator_tag(ptr noundef %__first_cut.0, ptr noundef %__middle.tr76, ptr noundef %__second_cut.0) + tail call void @_ZSt22__merge_without_bufferIPPN9subpaving9context_tINS0_10config_mpfEE4ineqElN9__gnu_cxx5__ops15_Iter_comp_iterINS4_11lt_var_procEEEEvT_SC_SC_T0_SD_T1_(ptr noundef %__first.tr75, ptr noundef %__first_cut.0, ptr noundef %call.i, i64 noundef %__len11.0, i64 noundef %__len22.0) + %sub = sub nsw i64 %__len1.tr78, %__len11.0 + %sub21 = sub nsw i64 %__len2.tr79, %__len22.0 %cmp = icmp eq i64 %sub, 0 %cmp1 = icmp eq i64 %sub21, 0 %or.cond = or i1 %cmp, %cmp1 @@ -26218,10 +25999,10 @@ while.end: ; preds = %while.body, %_ZSt22 ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZSt16__merge_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqElS6_N9__gnu_cxx5__ops15_Iter_comp_iterINS4_11lt_var_procEEEEvT_SC_SC_T0_SD_T1_SD_T2_(ptr noundef %__first, ptr noundef %__middle, ptr noundef %__last, i64 noundef %__len1, i64 noundef %__len2, ptr noundef %__buffer, i64 noundef %__buffer_size) local_unnamed_addr #4 comdat { entry: - %cmp.not132 = icmp sgt i64 %__len1, %__len2 - %cmp1.not133 = icmp sgt i64 %__len1, %__buffer_size - %or.cond134 = or i1 %cmp1.not133, %cmp.not132 - br i1 %or.cond134, label %if.else.lr.ph, label %if.then + %cmp.not128 = icmp sgt i64 %__len1, %__len2 + %cmp1.not129 = icmp sgt i64 %__len1, %__buffer_size + %or.cond130 = or i1 %cmp1.not129, %cmp.not128 + br i1 %or.cond130, label %if.else.lr.ph, label %if.then if.else.lr.ph: ; preds = %entry %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %__last to i64 @@ -26283,24 +26064,24 @@ _ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i br label %if.end27 if.else: ; preds = %if.else.lr.ph, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit - %cmp.not140 = phi i1 [ %cmp.not132, %if.else.lr.ph ], [ %cmp.not, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] - %__len2.tr139 = phi i64 [ %__len2, %if.else.lr.ph ], [ %sub24, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] - %__len1.tr138 = phi i64 [ %__len1, %if.else.lr.ph ], [ %sub, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] - %__middle.tr136 = phi ptr [ %__middle, %if.else.lr.ph ], [ %__second_cut.0, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] - %__first.tr135 = phi ptr [ %__first, %if.else.lr.ph ], [ %retval.0.i, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] - %cmp2.not = icmp sgt i64 %__len2.tr139, %__buffer_size - %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %__middle.tr136 to i64 + %cmp.not136 = phi i1 [ %cmp.not128, %if.else.lr.ph ], [ %cmp.not, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] + %__len2.tr135 = phi i64 [ %__len2, %if.else.lr.ph ], [ %sub24, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] + %__len1.tr134 = phi i64 [ %__len1, %if.else.lr.ph ], [ %sub, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] + %__middle.tr132 = phi ptr [ %__middle, %if.else.lr.ph ], [ %__second_cut.0, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] + %__first.tr131 = phi ptr [ %__first, %if.else.lr.ph ], [ %retval.0.i, %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit ] + %cmp2.not = icmp sgt i64 %__len2.tr135, %__buffer_size + %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %__middle.tr132 to i64 br i1 %cmp2.not, label %if.else7, label %if.then3 if.then3: ; preds = %if.else %sub.ptr.sub.i.i.i.i.i52 = sub i64 %sub.ptr.lhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i - %tobool.not.i.i.i.i.i53 = icmp eq ptr %__middle.tr136, %__last + %tobool.not.i.i.i.i.i53 = icmp eq ptr %__middle.tr132, %__last br i1 %tobool.not.i.i.i.i.i53, label %if.end27, label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit56.thread _ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit56.thread: ; preds = %if.then3 - tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__buffer, ptr align 8 %__middle.tr136, i64 %sub.ptr.sub.i.i.i.i.i52, i1 false) - %cmp.i57148 = icmp eq ptr %__first.tr135, %__middle.tr136 - br i1 %cmp.i57148, label %if.then.i.i.i.i.i.i, label %if.end3.i + tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__buffer, ptr align 8 %__middle.tr132, i64 %sub.ptr.sub.i.i.i.i.i52, i1 false) + %cmp.i57144 = icmp eq ptr %__first.tr131, %__middle.tr132 + br i1 %cmp.i57144, label %if.then.i.i.i.i.i.i, label %if.end3.i if.then.i.i.i.i.i.i: ; preds = %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit56.thread %sub.ptr.div.i.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i52, 3 @@ -26310,12 +26091,12 @@ if.then.i.i.i.i.i.i: ; preds = %_ZSt4moveIPPN9subpa br label %if.end27 if.end3.i: ; preds = %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit56.thread - %add.ptr.i.i.i.i.i55147 = getelementptr inbounds i8, ptr %__buffer, i64 %sub.ptr.sub.i.i.i.i.i52 - %incdec.ptr4.i = getelementptr inbounds ptr, ptr %add.ptr.i.i.i.i.i55147, i64 -1 + %add.ptr.i.i.i.i.i55143 = getelementptr inbounds i8, ptr %__buffer, i64 %sub.ptr.sub.i.i.i.i.i52 + %incdec.ptr4.i = getelementptr inbounds ptr, ptr %add.ptr.i.i.i.i.i55143, i64 -1 br label %while.body.i59.outer while.body.i59.outer: ; preds = %if.then6.i, %if.end3.i - %__last1.addr.0.i.ph.pn = phi ptr [ %__middle.tr136, %if.end3.i ], [ %__last1.addr.0.i.ph, %if.then6.i ] + %__last1.addr.0.i.ph.pn = phi ptr [ %__middle.tr132, %if.end3.i ], [ %__last1.addr.0.i.ph, %if.then6.i ] %__last2.addr.0.i.ph = phi ptr [ %incdec.ptr4.i, %if.end3.i ], [ %__last2.addr.0.i, %if.then6.i ] %__result.addr.0.i.ph = phi ptr [ %__last, %if.end3.i ], [ %incdec.ptr7.i, %if.then6.i ] %__last1.addr.0.i.ph = getelementptr inbounds ptr, ptr %__last1.addr.0.i.ph.pn, i64 -1 @@ -26334,7 +26115,7 @@ while.body.i59: ; preds = %while.body.i59.oute if.then6.i: ; preds = %while.body.i59 store ptr %7, ptr %incdec.ptr7.i, align 8 - %cmp8.i = icmp eq ptr %__last1.addr.0.i.ph, %__first.tr135 + %cmp8.i = icmp eq ptr %__last1.addr.0.i.ph, %__first.tr131 br i1 %cmp8.i, label %if.then9.i, label %while.body.i59.outer, !llvm.loop !123 if.then9.i: ; preds = %if.then6.i @@ -26362,11 +26143,11 @@ if.end18.i: ; preds = %if.else14.i br label %while.body.i59, !llvm.loop !123 if.else7: ; preds = %if.else - br i1 %cmp.not140, label %if.then9, label %if.else14 + br i1 %cmp.not136, label %if.then9, label %if.else14 if.then9: ; preds = %if.else7 - %div = sdiv i64 %__len1.tr138, 2 - %incdec.ptr.i.i = getelementptr inbounds ptr, ptr %__first.tr135, i64 %div + %div = sdiv i64 %__len1.tr134, 2 + %incdec.ptr.i.i = getelementptr inbounds ptr, ptr %__first.tr131, i64 %div %sub.ptr.sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i %sub.ptr.div.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i, 3 %cmp12.i = icmp sgt i64 %sub.ptr.div.i.i.i, 0 @@ -26378,20 +26159,20 @@ while.body.lr.ph.i: ; preds = %if.then9 br label %while.body.i65 while.body.i65: ; preds = %while.body.i65, %while.body.lr.ph.i - %__first.addr.014.i = phi ptr [ %__middle.tr136, %while.body.lr.ph.i ], [ %__first.addr.1.i, %while.body.i65 ] + %__first.addr.014.i = phi ptr [ %__middle.tr132, %while.body.lr.ph.i ], [ %__first.addr.1.i, %while.body.i65 ] %__len.013.i = phi i64 [ %sub.ptr.div.i.i.i, %while.body.lr.ph.i ], [ %__len.1.i, %while.body.i65 ] %shr.i = lshr i64 %__len.013.i, 1 %incdec.ptr4.sink.i.i.i = getelementptr inbounds ptr, ptr %__first.addr.014.i, i64 %shr.i %12 = load ptr, ptr %incdec.ptr4.sink.i.i.i, align 8 %13 = load i32, ptr %12, align 8 %cmp.i.i8.i = icmp ult i32 %13, %11 - %incdec.ptr.i67 = getelementptr inbounds ptr, ptr %incdec.ptr4.sink.i.i.i, i64 1 + %incdec.ptr.i66 = getelementptr inbounds ptr, ptr %incdec.ptr4.sink.i.i.i, i64 1 %14 = xor i64 %shr.i, -1 %sub2.i = add nsw i64 %__len.013.i, %14 %__len.1.i = select i1 %cmp.i.i8.i, i64 %sub2.i, i64 %shr.i - %__first.addr.1.i = select i1 %cmp.i.i8.i, ptr %incdec.ptr.i67, ptr %__first.addr.014.i - %cmp.i68 = icmp sgt i64 %__len.1.i, 0 - br i1 %cmp.i68, label %while.body.i65, label %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, !llvm.loop !114 + %__first.addr.1.i = select i1 %cmp.i.i8.i, ptr %incdec.ptr.i66, ptr %__first.addr.014.i + %cmp.i67 = icmp sgt i64 %__len.1.i, 0 + br i1 %cmp.i67, label %while.body.i65, label %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, !llvm.loop !114 _ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit: ; preds = %while.body.i65 %.pre = ptrtoint ptr %__first.addr.1.i to i64 @@ -26399,129 +26180,129 @@ _ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_c _ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit: ; preds = %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, %if.then9 %sub.ptr.lhs.cast.i.i.pre-phi = phi i64 [ %.pre, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %sub.ptr.rhs.cast.i.i.i, %if.then9 ] - %__first.addr.0.lcssa.i = phi ptr [ %__first.addr.1.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__middle.tr136, %if.then9 ] + %__first.addr.0.lcssa.i = phi ptr [ %__first.addr.1.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__middle.tr132, %if.then9 ] %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i.pre-phi, %sub.ptr.rhs.cast.i.i.i %sub.ptr.div.i.i = ashr exact i64 %sub.ptr.sub.i.i, 3 br label %if.end if.else14: ; preds = %if.else7 - %div15 = sdiv i64 %__len2.tr139, 2 - %incdec.ptr.i.i80 = getelementptr inbounds ptr, ptr %__middle.tr136, i64 %div15 - %sub.ptr.rhs.cast.i.i.i83 = ptrtoint ptr %__first.tr135 to i64 - %sub.ptr.sub.i.i.i84 = sub i64 %sub.ptr.rhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i83 - %sub.ptr.div.i.i.i85 = ashr exact i64 %sub.ptr.sub.i.i.i84, 3 - %cmp12.i86 = icmp sgt i64 %sub.ptr.div.i.i.i85, 0 - br i1 %cmp12.i86, label %while.body.lr.ph.i89, label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit - -while.body.lr.ph.i89: ; preds = %if.else14 - %15 = load ptr, ptr %incdec.ptr.i.i80, align 8 + %div15 = sdiv i64 %__len2.tr135, 2 + %incdec.ptr.i.i79 = getelementptr inbounds ptr, ptr %__middle.tr132, i64 %div15 + %sub.ptr.rhs.cast.i.i.i82 = ptrtoint ptr %__first.tr131 to i64 + %sub.ptr.sub.i.i.i83 = sub i64 %sub.ptr.rhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i82 + %sub.ptr.div.i.i.i84 = ashr exact i64 %sub.ptr.sub.i.i.i83, 3 + %cmp12.i85 = icmp sgt i64 %sub.ptr.div.i.i.i84, 0 + br i1 %cmp12.i85, label %while.body.lr.ph.i88, label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit + +while.body.lr.ph.i88: ; preds = %if.else14 + %15 = load ptr, ptr %incdec.ptr.i.i79, align 8 %16 = load i32, ptr %15, align 8 - br label %while.body.i90 - -while.body.i90: ; preds = %while.body.i90, %while.body.lr.ph.i89 - %__first.addr.014.i91 = phi ptr [ %__first.tr135, %while.body.lr.ph.i89 ], [ %__first.addr.1.i102, %while.body.i90 ] - %__len.013.i92 = phi i64 [ %sub.ptr.div.i.i.i85, %while.body.lr.ph.i89 ], [ %__len.1.i101, %while.body.i90 ] - %shr.i93 = lshr i64 %__len.013.i92, 1 - %incdec.ptr4.sink.i.i.i97 = getelementptr inbounds ptr, ptr %__first.addr.014.i91, i64 %shr.i93 - %17 = load ptr, ptr %incdec.ptr4.sink.i.i.i97, align 8 + br label %while.body.i89 + +while.body.i89: ; preds = %while.body.i89, %while.body.lr.ph.i88 + %__first.addr.014.i90 = phi ptr [ %__first.tr131, %while.body.lr.ph.i88 ], [ %__first.addr.1.i98, %while.body.i89 ] + %__len.013.i91 = phi i64 [ %sub.ptr.div.i.i.i84, %while.body.lr.ph.i88 ], [ %__len.1.i97, %while.body.i89 ] + %shr.i92 = lshr i64 %__len.013.i91, 1 + %incdec.ptr4.sink.i.i.i93 = getelementptr inbounds ptr, ptr %__first.addr.014.i90, i64 %shr.i92 + %17 = load ptr, ptr %incdec.ptr4.sink.i.i.i93, align 8 %18 = load i32, ptr %17, align 8 - %cmp.i.i8.i98 = icmp ult i32 %16, %18 - %incdec.ptr.i99 = getelementptr inbounds ptr, ptr %incdec.ptr4.sink.i.i.i97, i64 1 - %19 = xor i64 %shr.i93, -1 - %sub2.i100 = add nsw i64 %__len.013.i92, %19 - %__len.1.i101 = select i1 %cmp.i.i8.i98, i64 %shr.i93, i64 %sub2.i100 - %__first.addr.1.i102 = select i1 %cmp.i.i8.i98, ptr %__first.addr.014.i91, ptr %incdec.ptr.i99 - %cmp.i103 = icmp sgt i64 %__len.1.i101, 0 - br i1 %cmp.i103, label %while.body.i90, label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, !llvm.loop !115 - -_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit: ; preds = %while.body.i90 - %.pre146 = ptrtoint ptr %__first.addr.1.i102 to i64 + %cmp.i.i8.i94 = icmp ult i32 %16, %18 + %incdec.ptr.i95 = getelementptr inbounds ptr, ptr %incdec.ptr4.sink.i.i.i93, i64 1 + %19 = xor i64 %shr.i92, -1 + %sub2.i96 = add nsw i64 %__len.013.i91, %19 + %__len.1.i97 = select i1 %cmp.i.i8.i94, i64 %shr.i92, i64 %sub2.i96 + %__first.addr.1.i98 = select i1 %cmp.i.i8.i94, ptr %__first.addr.014.i90, ptr %incdec.ptr.i95 + %cmp.i99 = icmp sgt i64 %__len.1.i97, 0 + br i1 %cmp.i99, label %while.body.i89, label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, !llvm.loop !115 + +_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit: ; preds = %while.body.i89 + %.pre142 = ptrtoint ptr %__first.addr.1.i98 to i64 br label %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit _ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit: ; preds = %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit, %if.else14 - %sub.ptr.lhs.cast.i.i104.pre-phi = phi i64 [ %.pre146, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %sub.ptr.rhs.cast.i.i.i83, %if.else14 ] - %__first.addr.0.lcssa.i88 = phi ptr [ %__first.addr.1.i102, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__first.tr135, %if.else14 ] - %sub.ptr.sub.i.i106 = sub i64 %sub.ptr.lhs.cast.i.i104.pre-phi, %sub.ptr.rhs.cast.i.i.i83 - %sub.ptr.div.i.i107 = ashr exact i64 %sub.ptr.sub.i.i106, 3 + %sub.ptr.lhs.cast.i.i100.pre-phi = phi i64 [ %.pre142, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %sub.ptr.rhs.cast.i.i.i82, %if.else14 ] + %__first.addr.0.lcssa.i87 = phi ptr [ %__first.addr.1.i98, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit.loopexit ], [ %__first.tr131, %if.else14 ] + %sub.ptr.sub.i.i102 = sub i64 %sub.ptr.lhs.cast.i.i100.pre-phi, %sub.ptr.rhs.cast.i.i.i82 + %sub.ptr.div.i.i103 = ashr exact i64 %sub.ptr.sub.i.i102, 3 br label %if.end if.end: ; preds = %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit - %__first_cut.0 = phi ptr [ %incdec.ptr.i.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %__first.addr.0.lcssa.i88, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] - %__second_cut.0 = phi ptr [ %__first.addr.0.lcssa.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %incdec.ptr.i.i80, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] + %__first_cut.0 = phi ptr [ %incdec.ptr.i.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %__first.addr.0.lcssa.i87, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] + %__second_cut.0 = phi ptr [ %__first.addr.0.lcssa.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %incdec.ptr.i.i79, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] %__len22.0 = phi i64 [ %sub.ptr.div.i.i, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %div15, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] - %__len11.0 = phi i64 [ %div, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %sub.ptr.div.i.i107, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] - %sub = sub nsw i64 %__len1.tr138, %__len11.0 - %cmp.i108 = icmp sle i64 %sub, %__len22.0 + %__len11.0 = phi i64 [ %div, %_ZSt13__lower_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Iter_comp_valINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ], [ %sub.ptr.div.i.i103, %_ZSt13__upper_boundIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES5_N9__gnu_cxx5__ops14_Val_comp_iterINS4_11lt_var_procEEEET_SC_SC_RKT0_T1_.exit ] + %sub = sub nsw i64 %__len1.tr134, %__len11.0 + %cmp.i104 = icmp sle i64 %sub, %__len22.0 %cmp1.not.i = icmp sgt i64 %__len22.0, %__buffer_size - %or.cond.i = or i1 %cmp1.not.i, %cmp.i108 - br i1 %or.cond.i, label %if.else5.i, label %if.then.i109 + %or.cond.i = or i1 %cmp1.not.i, %cmp.i104 + br i1 %or.cond.i, label %if.else5.i, label %if.then.i105 -if.then.i109: ; preds = %if.end +if.then.i105: ; preds = %if.end %tobool.not.i = icmp eq i64 %__len22.0, 0 br i1 %tobool.not.i, label %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit, label %if.then2.i -if.then2.i: ; preds = %if.then.i109 - %sub.ptr.lhs.cast.i.i.i.i.i.i110 = ptrtoint ptr %__second_cut.0 to i64 - %sub.ptr.rhs.cast.i.i.i.i.i.i111 = ptrtoint ptr %__middle.tr136 to i64 - %sub.ptr.sub.i.i.i.i.i.i112 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i110, %sub.ptr.rhs.cast.i.i.i.i.i.i111 - %tobool.not.i.i.i.i.i.i113 = icmp eq ptr %__second_cut.0, %__middle.tr136 - br i1 %tobool.not.i.i.i.i.i.i113, label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i115, label %if.then.i.i.i.i.i.i114 +if.then2.i: ; preds = %if.then.i105 + %sub.ptr.lhs.cast.i.i.i.i.i.i106 = ptrtoint ptr %__second_cut.0 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i107 = ptrtoint ptr %__middle.tr132 to i64 + %sub.ptr.sub.i.i.i.i.i.i108 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i106, %sub.ptr.rhs.cast.i.i.i.i.i.i107 + %tobool.not.i.i.i.i.i.i109 = icmp eq ptr %__second_cut.0, %__middle.tr132 + br i1 %tobool.not.i.i.i.i.i.i109, label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i111, label %if.then.i.i.i.i.i.i110 -if.then.i.i.i.i.i.i114: ; preds = %if.then2.i - tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__buffer, ptr align 8 %__middle.tr136, i64 %sub.ptr.sub.i.i.i.i.i.i112, i1 false) - br label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i115 +if.then.i.i.i.i.i.i110: ; preds = %if.then2.i + tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__buffer, ptr align 8 %__middle.tr132, i64 %sub.ptr.sub.i.i.i.i.i.i108, i1 false) + br label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i111 -_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i115: ; preds = %if.then.i.i.i.i.i.i114, %if.then2.i - %tobool.not.i.i.i.i.i27.i = icmp eq ptr %__first_cut.0, %__middle.tr136 +_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i111: ; preds = %if.then.i.i.i.i.i.i110, %if.then2.i + %tobool.not.i.i.i.i.i27.i = icmp eq ptr %__first_cut.0, %__middle.tr132 br i1 %tobool.not.i.i.i.i.i27.i, label %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i, label %if.then.i.i.i.i.i28.i -if.then.i.i.i.i.i28.i: ; preds = %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i115 +if.then.i.i.i.i.i28.i: ; preds = %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i111 %sub.ptr.rhs.cast.i.i.i.i.i25.i = ptrtoint ptr %__first_cut.0 to i64 - %sub.ptr.sub.i.i.i.i.i26.i = sub i64 %sub.ptr.rhs.cast.i.i.i.i.i.i111, %sub.ptr.rhs.cast.i.i.i.i.i25.i - %sub.ptr.div.i.i.i.i.i.i116 = ashr exact i64 %sub.ptr.sub.i.i.i.i.i26.i, 3 - %.pre.i.i.i.i.i.i117 = sub nsw i64 0, %sub.ptr.div.i.i.i.i.i.i116 - %add.ptr.i.i.i.i.i29.i = getelementptr inbounds ptr, ptr %__second_cut.0, i64 %.pre.i.i.i.i.i.i117 + %sub.ptr.sub.i.i.i.i.i26.i = sub i64 %sub.ptr.rhs.cast.i.i.i.i.i.i107, %sub.ptr.rhs.cast.i.i.i.i.i25.i + %sub.ptr.div.i.i.i.i.i.i112 = ashr exact i64 %sub.ptr.sub.i.i.i.i.i26.i, 3 + %.pre.i.i.i.i.i.i113 = sub nsw i64 0, %sub.ptr.div.i.i.i.i.i.i112 + %add.ptr.i.i.i.i.i29.i = getelementptr inbounds ptr, ptr %__second_cut.0, i64 %.pre.i.i.i.i.i.i113 tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %add.ptr.i.i.i.i.i29.i, ptr align 8 %__first_cut.0, i64 %sub.ptr.sub.i.i.i.i.i26.i, i1 false) br label %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i -_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i: ; preds = %if.then.i.i.i.i.i28.i, %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i115 - br i1 %tobool.not.i.i.i.i.i.i113, label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i, label %if.then.i.i.i.i.i34.i +_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i: ; preds = %if.then.i.i.i.i.i28.i, %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i111 + br i1 %tobool.not.i.i.i.i.i.i109, label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i, label %if.then.i.i.i.i.i34.i if.then.i.i.i.i.i34.i: ; preds = %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i - tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__first_cut.0, ptr align 8 %__buffer, i64 %sub.ptr.sub.i.i.i.i.i.i112, i1 false) + tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__first_cut.0, ptr align 8 %__buffer, i64 %sub.ptr.sub.i.i.i.i.i.i108, i1 false) br label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i _ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i: ; preds = %if.then.i.i.i.i.i34.i, %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit.i - %add.ptr.i.i.i.i.i35.i = getelementptr inbounds i8, ptr %__first_cut.0, i64 %sub.ptr.sub.i.i.i.i.i.i112 + %add.ptr.i.i.i.i.i35.i = getelementptr inbounds i8, ptr %__first_cut.0, i64 %sub.ptr.sub.i.i.i.i.i.i108 br label %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit if.else5.i: ; preds = %if.end %cmp6.not.i = icmp sgt i64 %sub, %__buffer_size - br i1 %cmp6.not.i, label %if.else14.i119, label %if.then7.i + br i1 %cmp6.not.i, label %if.else14.i115, label %if.then7.i if.then7.i: ; preds = %if.else5.i - %tobool8.not.i = icmp eq i64 %__len11.0, %__len1.tr138 - br i1 %tobool8.not.i, label %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit, label %if.then9.i118 + %tobool8.not.i = icmp eq i64 %__len11.0, %__len1.tr134 + br i1 %tobool8.not.i, label %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit, label %if.then9.i114 -if.then9.i118: ; preds = %if.then7.i - %sub.ptr.lhs.cast.i.i.i.i.i37.i = ptrtoint ptr %__middle.tr136 to i64 +if.then9.i114: ; preds = %if.then7.i + %sub.ptr.lhs.cast.i.i.i.i.i37.i = ptrtoint ptr %__middle.tr132 to i64 %sub.ptr.rhs.cast.i.i.i.i.i38.i = ptrtoint ptr %__first_cut.0 to i64 %sub.ptr.sub.i.i.i.i.i39.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i37.i, %sub.ptr.rhs.cast.i.i.i.i.i38.i - %tobool.not.i.i.i.i.i40.i = icmp eq ptr %__first_cut.0, %__middle.tr136 + %tobool.not.i.i.i.i.i40.i = icmp eq ptr %__first_cut.0, %__middle.tr132 br i1 %tobool.not.i.i.i.i.i40.i, label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit43.i, label %if.then.i.i.i.i.i41.i -if.then.i.i.i.i.i41.i: ; preds = %if.then9.i118 +if.then.i.i.i.i.i41.i: ; preds = %if.then9.i114 tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__buffer, ptr align 8 %__first_cut.0, i64 %sub.ptr.sub.i.i.i.i.i39.i, i1 false) br label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit43.i -_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit43.i: ; preds = %if.then.i.i.i.i.i41.i, %if.then9.i118 - %tobool.not.i.i.i.i.i47.i = icmp eq ptr %__second_cut.0, %__middle.tr136 +_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit43.i: ; preds = %if.then.i.i.i.i.i41.i, %if.then9.i114 + %tobool.not.i.i.i.i.i47.i = icmp eq ptr %__second_cut.0, %__middle.tr132 br i1 %tobool.not.i.i.i.i.i47.i, label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit50.i, label %if.then.i.i.i.i.i48.i if.then.i.i.i.i.i48.i: ; preds = %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit43.i %sub.ptr.lhs.cast.i.i.i.i.i44.i = ptrtoint ptr %__second_cut.0 to i64 %sub.ptr.sub.i.i.i.i.i46.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i44.i, %sub.ptr.lhs.cast.i.i.i.i.i37.i - tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__first_cut.0, ptr align 8 %__middle.tr136, i64 %sub.ptr.sub.i.i.i.i.i46.i, i1 false) + tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %__first_cut.0, ptr align 8 %__middle.tr132, i64 %sub.ptr.sub.i.i.i.i.i46.i, i1 false) br label %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit50.i _ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit50.i: ; preds = %if.then.i.i.i.i.i48.i, %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit43.i @@ -26538,14 +26319,14 @@ _ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_ %add.ptr2.i.i.i.i.i59.i = getelementptr inbounds ptr, ptr %__second_cut.0, i64 %.pre.i.i.i.i.i56.i br label %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit -if.else14.i119: ; preds = %if.else5.i - %call.i.i = tail call noundef ptr @_ZNSt3_V28__rotateIPPN9subpaving9context_tINS1_10config_mpfEE4ineqEEET_S8_S8_S8_St26random_access_iterator_tag(ptr noundef %__first_cut.0, ptr noundef %__middle.tr136, ptr noundef %__second_cut.0) +if.else14.i115: ; preds = %if.else5.i + %call.i.i = tail call noundef ptr @_ZNSt3_V28__rotateIPPN9subpaving9context_tINS1_10config_mpfEE4ineqEEET_S8_S8_S8_St26random_access_iterator_tag(ptr noundef %__first_cut.0, ptr noundef %__middle.tr132, ptr noundef %__second_cut.0) br label %_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit -_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit: ; preds = %if.then.i109, %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i, %if.then7.i, %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit60.i, %if.else14.i119 - %retval.0.i = phi ptr [ %add.ptr.i.i.i.i.i35.i, %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i ], [ %add.ptr2.i.i.i.i.i59.i, %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit60.i ], [ %call.i.i, %if.else14.i119 ], [ %__first_cut.0, %if.then.i109 ], [ %__second_cut.0, %if.then7.i ] - tail call void @_ZSt16__merge_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqElS6_N9__gnu_cxx5__ops15_Iter_comp_iterINS4_11lt_var_procEEEEvT_SC_SC_T0_SD_T1_SD_T2_(ptr noundef %__first.tr135, ptr noundef %__first_cut.0, ptr noundef %retval.0.i, i64 noundef %__len11.0, i64 noundef %__len22.0, ptr noundef %__buffer, i64 noundef %__buffer_size) - %sub24 = sub nsw i64 %__len2.tr139, %__len22.0 +_ZSt17__rotate_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_lET_S7_S7_S7_T1_S8_T0_S8_.exit: ; preds = %if.then.i105, %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i, %if.then7.i, %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit60.i, %if.else14.i115 + %retval.0.i = phi ptr [ %add.ptr.i.i.i.i.i35.i, %_ZSt4moveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit36.i ], [ %add.ptr2.i.i.i.i.i59.i, %_ZSt13move_backwardIPPN9subpaving9context_tINS0_10config_mpfEE4ineqES6_ET0_T_S8_S7_.exit60.i ], [ %call.i.i, %if.else14.i115 ], [ %__first_cut.0, %if.then.i105 ], [ %__second_cut.0, %if.then7.i ] + tail call void @_ZSt16__merge_adaptiveIPPN9subpaving9context_tINS0_10config_mpfEE4ineqElS6_N9__gnu_cxx5__ops15_Iter_comp_iterINS4_11lt_var_procEEEEvT_SC_SC_T0_SD_T1_SD_T2_(ptr noundef %__first.tr131, ptr noundef %__first_cut.0, ptr noundef %retval.0.i, i64 noundef %__len11.0, i64 noundef %__len22.0, ptr noundef %__buffer, i64 noundef %__buffer_size) + %sub24 = sub nsw i64 %__len2.tr135, %__len22.0 %cmp.not = icmp sgt i64 %sub, %sub24 %cmp1.not = icmp sgt i64 %sub, %__buffer_size %or.cond = or i1 %cmp1.not, %cmp.not @@ -26909,7 +26690,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -26933,7 +26714,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %12, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i6 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -26986,7 +26770,7 @@ if.end.i.i.i.i6: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i9 = load ptr, ptr %c.017.in.i.i.i.i7, align 8 %bf.load.i.i.i.i.i10 = load i32, ptr %c.017.i.i.i.i9, align 8 %bf.lshr.i.i.i.i.i11 = lshr i32 %bf.load.i.i.i.i.i10, 30 - switch i32 %bf.lshr.i.i.i.i.i11, label %if.end.unreachabledefault.i.i.i.i29 [ + switch i32 %bf.lshr.i.i.i.i.i11, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i25 i32 1, label %sw.bb.i.i.i.i25 i32 2, label %sw.epilog.i.i.i.i18 @@ -27010,9 +26794,6 @@ sw.bb12.i.i.i.i12: ; preds = %if.end.i.i.i.i6 %arrayidx14.i.i.i.i14 = getelementptr inbounds ptr, ptr %25, i64 %idxprom13.i.i.i.i13 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i15 -if.end.unreachabledefault.i.i.i.i29: ; preds = %if.end.i.i.i.i6 - unreachable - sw.epilog.i.i.i.i18: ; preds = %sw.bb.i.i.i.i25, %if.end.i.i.i.i6 %c.1.in.i.i.i.i19 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i9, i64 0, i32 3 %trail_sz.1.i.i.i.i20 = add nuw nsw i32 %trail_sz.016.i.i.i.i8, 1 @@ -27074,7 +26855,7 @@ if.end.i.i.i: ; preds = %sw.epilog.i.i.i, %i %c.017.i.i.i = load ptr, ptr %c.017.in.i.i.i, align 8 %bf.load.i.i.i.i = load i32, ptr %c.017.i.i.i, align 8 %bf.lshr.i.i.i.i = lshr i32 %bf.load.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i, label %if.end.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i i32 1, label %sw.bb.i.i.i i32 2, label %sw.epilog.i.i.i @@ -27098,7 +26879,7 @@ sw.bb12.i.i.i: ; preds = %if.end.i.i.i %arrayidx14.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i -if.end.unreachabledefault.i.i.i: ; preds = %if.end.i.i.i +default.unreachable: ; preds = %if.end.i.i.i unreachable sw.epilog.i.i.i: ; preds = %sw.bb.i.i.i, %if.end.i.i.i @@ -27167,7 +26948,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -27191,7 +26972,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %12, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i6 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -27244,7 +27028,7 @@ if.end.i.i.i.i6: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i9 = load ptr, ptr %c.017.in.i.i.i.i7, align 8 %bf.load.i.i.i.i.i10 = load i32, ptr %c.017.i.i.i.i9, align 8 %bf.lshr.i.i.i.i.i11 = lshr i32 %bf.load.i.i.i.i.i10, 30 - switch i32 %bf.lshr.i.i.i.i.i11, label %if.end.unreachabledefault.i.i.i.i29 [ + switch i32 %bf.lshr.i.i.i.i.i11, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i25 i32 1, label %sw.bb.i.i.i.i25 i32 2, label %sw.epilog.i.i.i.i18 @@ -27268,9 +27052,6 @@ sw.bb12.i.i.i.i12: ; preds = %if.end.i.i.i.i6 %arrayidx14.i.i.i.i14 = getelementptr inbounds ptr, ptr %25, i64 %idxprom13.i.i.i.i13 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i15 -if.end.unreachabledefault.i.i.i.i29: ; preds = %if.end.i.i.i.i6 - unreachable - sw.epilog.i.i.i.i18: ; preds = %sw.bb.i.i.i.i25, %if.end.i.i.i.i6 %c.1.in.i.i.i.i19 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i9, i64 0, i32 3 %trail_sz.1.i.i.i.i20 = add nuw nsw i32 %trail_sz.016.i.i.i.i8, 1 @@ -27341,7 +27122,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -27365,7 +27146,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %12, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i6 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -27418,7 +27202,7 @@ if.end.i.i.i.i6: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i9 = load ptr, ptr %c.017.in.i.i.i.i7, align 8 %bf.load.i.i.i.i.i10 = load i32, ptr %c.017.i.i.i.i9, align 8 %bf.lshr.i.i.i.i.i11 = lshr i32 %bf.load.i.i.i.i.i10, 30 - switch i32 %bf.lshr.i.i.i.i.i11, label %if.end.unreachabledefault.i.i.i.i29 [ + switch i32 %bf.lshr.i.i.i.i.i11, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i25 i32 1, label %sw.bb.i.i.i.i25 i32 2, label %sw.epilog.i.i.i.i18 @@ -27442,9 +27226,6 @@ sw.bb12.i.i.i.i12: ; preds = %if.end.i.i.i.i6 %arrayidx14.i.i.i.i14 = getelementptr inbounds ptr, ptr %25, i64 %idxprom13.i.i.i.i13 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i15 -if.end.unreachabledefault.i.i.i.i29: ; preds = %if.end.i.i.i.i6 - unreachable - sw.epilog.i.i.i.i18: ; preds = %sw.bb.i.i.i.i25, %if.end.i.i.i.i6 %c.1.in.i.i.i.i19 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i9, i64 0, i32 3 %trail_sz.1.i.i.i.i20 = add nuw nsw i32 %trail_sz.016.i.i.i.i8, 1 @@ -27506,7 +27287,7 @@ if.end.i.i.i: ; preds = %sw.epilog.i.i.i, %i %c.017.i.i.i = load ptr, ptr %c.017.in.i.i.i, align 8 %bf.load.i.i.i.i = load i32, ptr %c.017.i.i.i, align 8 %bf.lshr.i.i.i.i = lshr i32 %bf.load.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i, label %if.end.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i i32 1, label %sw.bb.i.i.i i32 2, label %sw.epilog.i.i.i @@ -27530,7 +27311,7 @@ sw.bb12.i.i.i: ; preds = %if.end.i.i.i %arrayidx14.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i -if.end.unreachabledefault.i.i.i: ; preds = %if.end.i.i.i +default.unreachable: ; preds = %if.end.i.i.i unreachable sw.epilog.i.i.i: ; preds = %sw.bb.i.i.i, %if.end.i.i.i @@ -27601,7 +27382,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -27625,7 +27406,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %12, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i6 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -27678,7 +27462,7 @@ if.end.i.i.i.i6: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i9 = load ptr, ptr %c.017.in.i.i.i.i7, align 8 %bf.load.i.i.i.i.i10 = load i32, ptr %c.017.i.i.i.i9, align 8 %bf.lshr.i.i.i.i.i11 = lshr i32 %bf.load.i.i.i.i.i10, 30 - switch i32 %bf.lshr.i.i.i.i.i11, label %if.end.unreachabledefault.i.i.i.i29 [ + switch i32 %bf.lshr.i.i.i.i.i11, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i25 i32 1, label %sw.bb.i.i.i.i25 i32 2, label %sw.epilog.i.i.i.i18 @@ -27702,9 +27486,6 @@ sw.bb12.i.i.i.i12: ; preds = %if.end.i.i.i.i6 %arrayidx14.i.i.i.i14 = getelementptr inbounds ptr, ptr %25, i64 %idxprom13.i.i.i.i13 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i15 -if.end.unreachabledefault.i.i.i.i29: ; preds = %if.end.i.i.i.i6 - unreachable - sw.epilog.i.i.i.i18: ; preds = %sw.bb.i.i.i.i25, %if.end.i.i.i.i6 %c.1.in.i.i.i.i19 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i9, i64 0, i32 3 %trail_sz.1.i.i.i.i20 = add nuw nsw i32 %trail_sz.016.i.i.i.i8, 1 @@ -27775,7 +27556,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -27799,7 +27580,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %12, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i6 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -27852,7 +27636,7 @@ if.end.i.i.i.i6: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i9 = load ptr, ptr %c.017.in.i.i.i.i7, align 8 %bf.load.i.i.i.i.i10 = load i32, ptr %c.017.i.i.i.i9, align 8 %bf.lshr.i.i.i.i.i11 = lshr i32 %bf.load.i.i.i.i.i10, 30 - switch i32 %bf.lshr.i.i.i.i.i11, label %if.end.unreachabledefault.i.i.i.i29 [ + switch i32 %bf.lshr.i.i.i.i.i11, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i25 i32 1, label %sw.bb.i.i.i.i25 i32 2, label %sw.epilog.i.i.i.i18 @@ -27876,9 +27660,6 @@ sw.bb12.i.i.i.i12: ; preds = %if.end.i.i.i.i6 %arrayidx14.i.i.i.i14 = getelementptr inbounds ptr, ptr %25, i64 %idxprom13.i.i.i.i13 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i15 -if.end.unreachabledefault.i.i.i.i29: ; preds = %if.end.i.i.i.i6 - unreachable - sw.epilog.i.i.i.i18: ; preds = %sw.bb.i.i.i.i25, %if.end.i.i.i.i6 %c.1.in.i.i.i.i19 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i9, i64 0, i32 3 %trail_sz.1.i.i.i.i20 = add nuw nsw i32 %trail_sz.016.i.i.i.i8, 1 @@ -28038,7 +27819,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -28062,7 +27843,7 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +default.unreachable: ; preds = %if.end.i.i.i.i unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -28253,7 +28034,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -28277,7 +28058,7 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +default.unreachable: ; preds = %if.end.i.i.i.i unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -28356,7 +28137,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -28380,7 +28161,7 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +default.unreachable: ; preds = %if.end.i.i.i.i unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -28740,7 +28521,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -28764,7 +28545,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %11, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i33, %if.end.i.i.i.i64, %if.end.i.i.i.i101, %if.end.i.i.i.i136, %if.end.i.i.i.i170 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -28838,7 +28622,7 @@ if.end.i.i.i.i33: ; preds = %sw.epilog.i.i.i.i46 %c.017.i.i.i.i36 = load ptr, ptr %c.017.in.i.i.i.i34, align 8 %bf.load.i.i.i.i.i37 = load i32, ptr %c.017.i.i.i.i36, align 8 %bf.lshr.i.i.i.i.i38 = lshr i32 %bf.load.i.i.i.i.i37, 30 - switch i32 %bf.lshr.i.i.i.i.i38, label %if.end.unreachabledefault.i.i.i.i57 [ + switch i32 %bf.lshr.i.i.i.i.i38, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i53 i32 1, label %sw.bb.i.i.i.i53 i32 2, label %sw.epilog.i.i.i.i46 @@ -28862,9 +28646,6 @@ sw.bb12.i.i.i.i39: ; preds = %if.end.i.i.i.i33 %arrayidx14.i.i.i.i41 = getelementptr inbounds ptr, ptr %30, i64 %idxprom13.i.i.i.i40 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i42 -if.end.unreachabledefault.i.i.i.i57: ; preds = %if.end.i.i.i.i33 - unreachable - sw.epilog.i.i.i.i46: ; preds = %sw.bb.i.i.i.i53, %if.end.i.i.i.i33 %c.1.in.i.i.i.i47 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i36, i64 0, i32 3 %trail_sz.1.i.i.i.i48 = add nuw nsw i32 %trail_sz.016.i.i.i.i35, 1 @@ -28917,7 +28698,7 @@ if.end.i.i.i.i64: ; preds = %sw.epilog.i.i.i.i77 %c.017.i.i.i.i67 = load ptr, ptr %c.017.in.i.i.i.i65, align 8 %bf.load.i.i.i.i.i68 = load i32, ptr %c.017.i.i.i.i67, align 8 %bf.lshr.i.i.i.i.i69 = lshr i32 %bf.load.i.i.i.i.i68, 30 - switch i32 %bf.lshr.i.i.i.i.i69, label %if.end.unreachabledefault.i.i.i.i88 [ + switch i32 %bf.lshr.i.i.i.i.i69, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i84 i32 1, label %sw.bb.i.i.i.i84 i32 2, label %sw.epilog.i.i.i.i77 @@ -28941,9 +28722,6 @@ sw.bb12.i.i.i.i70: ; preds = %if.end.i.i.i.i64 %arrayidx14.i.i.i.i72 = getelementptr inbounds ptr, ptr %43, i64 %idxprom13.i.i.i.i71 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i73 -if.end.unreachabledefault.i.i.i.i88: ; preds = %if.end.i.i.i.i64 - unreachable - sw.epilog.i.i.i.i77: ; preds = %sw.bb.i.i.i.i84, %if.end.i.i.i.i64 %c.1.in.i.i.i.i78 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i67, i64 0, i32 3 %trail_sz.1.i.i.i.i79 = add nuw nsw i32 %trail_sz.016.i.i.i.i66, 1 @@ -29036,7 +28814,7 @@ if.end.i.i.i.i101: ; preds = %sw.epilog.i.i.i.i11 %c.017.i.i.i.i104 = load ptr, ptr %c.017.in.i.i.i.i102, align 8 %bf.load.i.i.i.i.i105 = load i32, ptr %c.017.i.i.i.i104, align 8 %bf.lshr.i.i.i.i.i106 = lshr i32 %bf.load.i.i.i.i.i105, 30 - switch i32 %bf.lshr.i.i.i.i.i106, label %if.end.unreachabledefault.i.i.i.i124 [ + switch i32 %bf.lshr.i.i.i.i.i106, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i120 i32 1, label %sw.bb.i.i.i.i120 i32 2, label %sw.epilog.i.i.i.i113 @@ -29060,9 +28838,6 @@ sw.bb12.i.i.i.i107: ; preds = %if.end.i.i.i.i101 %arrayidx14.i.i.i.i109 = getelementptr inbounds ptr, ptr %66, i64 %idxprom13.i.i.i.i108 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i124: ; preds = %if.end.i.i.i.i101 - unreachable - sw.epilog.i.i.i.i113: ; preds = %sw.bb.i.i.i.i120, %if.end.i.i.i.i101 %c.1.in.i.i.i.i114 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i104, i64 0, i32 3 %trail_sz.1.i.i.i.i115 = add nuw nsw i32 %trail_sz.016.i.i.i.i103, 1 @@ -29134,7 +28909,7 @@ if.end.i.i.i.i136: ; preds = %sw.epilog.i.i.i.i15 %c.017.i.i.i.i139 = load ptr, ptr %c.017.in.i.i.i.i137, align 8 %bf.load.i.i.i.i.i140 = load i32, ptr %c.017.i.i.i.i139, align 8 %bf.lshr.i.i.i.i.i141 = lshr i32 %bf.load.i.i.i.i.i140, 30 - switch i32 %bf.lshr.i.i.i.i.i141, label %if.end.unreachabledefault.i.i.i.i162 [ + switch i32 %bf.lshr.i.i.i.i.i141, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i158 i32 1, label %sw.bb.i.i.i.i158 i32 2, label %sw.epilog.i.i.i.i151 @@ -29158,9 +28933,6 @@ sw.bb12.i.i.i.i142: ; preds = %if.end.i.i.i.i136 %arrayidx14.i.i.i.i144 = getelementptr inbounds ptr, ptr %85, i64 %idxprom13.i.i.i.i143 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i145 -if.end.unreachabledefault.i.i.i.i162: ; preds = %if.end.i.i.i.i136 - unreachable - sw.epilog.i.i.i.i151: ; preds = %sw.bb.i.i.i.i158, %if.end.i.i.i.i136 %c.1.in.i.i.i.i152 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i139, i64 0, i32 3 %trail_sz.1.i.i.i.i153 = add nuw nsw i32 %trail_sz.016.i.i.i.i138, 1 @@ -29213,7 +28985,7 @@ if.end.i.i.i.i170: ; preds = %sw.epilog.i.i.i.i18 %c.017.i.i.i.i173 = load ptr, ptr %c.017.in.i.i.i.i171, align 8 %bf.load.i.i.i.i.i174 = load i32, ptr %c.017.i.i.i.i173, align 8 %bf.lshr.i.i.i.i.i175 = lshr i32 %bf.load.i.i.i.i.i174, 30 - switch i32 %bf.lshr.i.i.i.i.i175, label %if.end.unreachabledefault.i.i.i.i198 [ + switch i32 %bf.lshr.i.i.i.i.i175, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i194 i32 1, label %sw.bb.i.i.i.i194 i32 2, label %sw.epilog.i.i.i.i187 @@ -29237,9 +29009,6 @@ sw.bb12.i.i.i.i176: ; preds = %if.end.i.i.i.i170 %arrayidx14.i.i.i.i178 = getelementptr inbounds ptr, ptr %98, i64 %idxprom13.i.i.i.i177 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i179 -if.end.unreachabledefault.i.i.i.i198: ; preds = %if.end.i.i.i.i170 - unreachable - sw.epilog.i.i.i.i187: ; preds = %sw.bb.i.i.i.i194, %if.end.i.i.i.i170 %c.1.in.i.i.i.i188 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i173, i64 0, i32 3 %trail_sz.1.i.i.i.i189 = add nuw nsw i32 %trail_sz.016.i.i.i.i172, 1 @@ -30477,7 +30246,7 @@ if.end.i.i.i.i: ; preds = %sw.epilog.i.i.i.i, %c.017.i.i.i.i = load ptr, ptr %c.017.in.i.i.i.i, align 8 %bf.load.i.i.i.i.i = load i32, ptr %c.017.i.i.i.i, align 8 %bf.lshr.i.i.i.i.i = lshr i32 %bf.load.i.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i.i, label %if.end.unreachabledefault.i.i.i.i [ + switch i32 %bf.lshr.i.i.i.i.i, label %if.end.i.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i.i i32 1, label %sw.bb.i.i.i.i i32 2, label %sw.epilog.i.i.i.i @@ -30501,7 +30270,10 @@ sw.bb12.i.i.i.i: ; preds = %if.end.i.i.i.i %arrayidx14.i.i.i.i = getelementptr inbounds ptr, ptr %21, i64 %idxprom13.i.i.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i -if.end.unreachabledefault.i.i.i.i: ; preds = %if.end.i.i.i.i +if.end.i.i.i.i.unreachabledefault: ; preds = %if.end.i.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i.i50, %if.end.i.i.i.i78, %if.end.i.i.i.i109, %if.end.i.i.i.i142, %if.end.i.i.i.i173 unreachable sw.epilog.i.i.i.i: ; preds = %sw.bb.i.i.i.i, %if.end.i.i.i.i @@ -30555,7 +30327,7 @@ if.end.i.i.i.i50: ; preds = %sw.epilog.i.i.i.i62 %c.017.i.i.i.i53 = load ptr, ptr %c.017.in.i.i.i.i51, align 8 %bf.load.i.i.i.i.i54 = load i32, ptr %c.017.i.i.i.i53, align 8 %bf.lshr.i.i.i.i.i55 = lshr i32 %bf.load.i.i.i.i.i54, 30 - switch i32 %bf.lshr.i.i.i.i.i55, label %if.end.unreachabledefault.i.i.i.i73 [ + switch i32 %bf.lshr.i.i.i.i.i55, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i69 i32 1, label %sw.bb.i.i.i.i69 i32 2, label %sw.epilog.i.i.i.i62 @@ -30579,9 +30351,6 @@ sw.bb12.i.i.i.i56: ; preds = %if.end.i.i.i.i50 %arrayidx14.i.i.i.i58 = getelementptr inbounds ptr, ptr %34, i64 %idxprom13.i.i.i.i57 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i59 -if.end.unreachabledefault.i.i.i.i73: ; preds = %if.end.i.i.i.i50 - unreachable - sw.epilog.i.i.i.i62: ; preds = %sw.bb.i.i.i.i69, %if.end.i.i.i.i50 %c.1.in.i.i.i.i63 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i53, i64 0, i32 3 %trail_sz.1.i.i.i.i64 = add nuw nsw i32 %trail_sz.016.i.i.i.i52, 1 @@ -30636,7 +30405,7 @@ if.end.i.i.i.i78: ; preds = %sw.epilog.i.i.i.i91 %c.017.i.i.i.i81 = load ptr, ptr %c.017.in.i.i.i.i79, align 8 %bf.load.i.i.i.i.i82 = load i32, ptr %c.017.i.i.i.i81, align 8 %bf.lshr.i.i.i.i.i83 = lshr i32 %bf.load.i.i.i.i.i82, 30 - switch i32 %bf.lshr.i.i.i.i.i83, label %if.end.unreachabledefault.i.i.i.i102 [ + switch i32 %bf.lshr.i.i.i.i.i83, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i98 i32 1, label %sw.bb.i.i.i.i98 i32 2, label %sw.epilog.i.i.i.i91 @@ -30660,9 +30429,6 @@ sw.bb12.i.i.i.i84: ; preds = %if.end.i.i.i.i78 %arrayidx14.i.i.i.i86 = getelementptr inbounds ptr, ptr %49, i64 %idxprom13.i.i.i.i85 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i -if.end.unreachabledefault.i.i.i.i102: ; preds = %if.end.i.i.i.i78 - unreachable - sw.epilog.i.i.i.i91: ; preds = %sw.bb.i.i.i.i98, %if.end.i.i.i.i78 %c.1.in.i.i.i.i92 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i81, i64 0, i32 3 %trail_sz.1.i.i.i.i93 = add nuw nsw i32 %trail_sz.016.i.i.i.i80, 1 @@ -30714,7 +30480,7 @@ if.end.i.i.i.i109: ; preds = %sw.epilog.i.i.i.i12 %c.017.i.i.i.i112 = load ptr, ptr %c.017.in.i.i.i.i110, align 8 %bf.load.i.i.i.i.i113 = load i32, ptr %c.017.i.i.i.i112, align 8 %bf.lshr.i.i.i.i.i114 = lshr i32 %bf.load.i.i.i.i.i113, 30 - switch i32 %bf.lshr.i.i.i.i.i114, label %if.end.unreachabledefault.i.i.i.i134 [ + switch i32 %bf.lshr.i.i.i.i.i114, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i130 i32 1, label %sw.bb.i.i.i.i130 i32 2, label %sw.epilog.i.i.i.i123 @@ -30738,9 +30504,6 @@ sw.bb12.i.i.i.i115: ; preds = %if.end.i.i.i.i109 %arrayidx14.i.i.i.i117 = getelementptr inbounds ptr, ptr %62, i64 %idxprom13.i.i.i.i116 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i118 -if.end.unreachabledefault.i.i.i.i134: ; preds = %if.end.i.i.i.i109 - unreachable - sw.epilog.i.i.i.i123: ; preds = %sw.bb.i.i.i.i130, %if.end.i.i.i.i109 %c.1.in.i.i.i.i124 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i112, i64 0, i32 3 %trail_sz.1.i.i.i.i125 = add nuw nsw i32 %trail_sz.016.i.i.i.i111, 1 @@ -30795,7 +30558,7 @@ if.end.i.i.i.i142: ; preds = %sw.epilog.i.i.i.i15 %c.017.i.i.i.i145 = load ptr, ptr %c.017.in.i.i.i.i143, align 8 %bf.load.i.i.i.i.i146 = load i32, ptr %c.017.i.i.i.i145, align 8 %bf.lshr.i.i.i.i.i147 = lshr i32 %bf.load.i.i.i.i.i146, 30 - switch i32 %bf.lshr.i.i.i.i.i147, label %if.end.unreachabledefault.i.i.i.i166 [ + switch i32 %bf.lshr.i.i.i.i.i147, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i162 i32 1, label %sw.bb.i.i.i.i162 i32 2, label %sw.epilog.i.i.i.i155 @@ -30819,9 +30582,6 @@ sw.bb12.i.i.i.i148: ; preds = %if.end.i.i.i.i142 %arrayidx14.i.i.i.i150 = getelementptr inbounds ptr, ptr %77, i64 %idxprom13.i.i.i.i149 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit.i.i151 -if.end.unreachabledefault.i.i.i.i166: ; preds = %if.end.i.i.i.i142 - unreachable - sw.epilog.i.i.i.i155: ; preds = %sw.bb.i.i.i.i162, %if.end.i.i.i.i142 %c.1.in.i.i.i.i156 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i145, i64 0, i32 3 %trail_sz.1.i.i.i.i157 = add nuw nsw i32 %trail_sz.016.i.i.i.i144, 1 @@ -30879,7 +30639,7 @@ if.end.i.i.i.i173: ; preds = %sw.epilog.i.i.i.i19 %c.017.i.i.i.i176 = load ptr, ptr %c.017.in.i.i.i.i174, align 8 %bf.load.i.i.i.i.i177 = load i32, ptr %c.017.i.i.i.i176, align 8 %bf.lshr.i.i.i.i.i178 = lshr i32 %bf.load.i.i.i.i.i177, 30 - switch i32 %bf.lshr.i.i.i.i.i178, label %if.end.unreachabledefault.i.i.i.i201 [ + switch i32 %bf.lshr.i.i.i.i.i178, label %default.unreachable [ i32 0, label %sw.bb.i.i.i.i197 i32 1, label %sw.bb.i.i.i.i197 i32 2, label %sw.epilog.i.i.i.i190 @@ -30903,9 +30663,6 @@ sw.bb12.i.i.i.i179: ; preds = %if.end.i.i.i.i173 %arrayidx14.i.i.i.i181 = getelementptr inbounds ptr, ptr %93, i64 %idxprom13.i.i.i.i180 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit.i.i182 -if.end.unreachabledefault.i.i.i.i201: ; preds = %if.end.i.i.i.i173 - unreachable - sw.epilog.i.i.i.i190: ; preds = %sw.bb.i.i.i.i197, %if.end.i.i.i.i173 %c.1.in.i.i.i.i191 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i.i.i176, i64 0, i32 3 %trail_sz.1.i.i.i.i192 = add nuw nsw i32 %trail_sz.016.i.i.i.i175, 1 @@ -31374,7 +31131,7 @@ if.end.i.i12: ; preds = %sw.epilog.i.i, %if. %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i12.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -31398,7 +31155,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i12 %arrayidx14.i.i = getelementptr inbounds ptr, ptr %19, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i12 +if.end.i.i12.unreachabledefault: ; preds = %if.end.i.i12 + unreachable + +default.unreachable: ; preds = %if.end.i.i16 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i12 @@ -31428,7 +31188,7 @@ if.end.i.i16: ; preds = %sw.epilog.i.i26, %_ %c.017.i.i19 = load ptr, ptr %c.017.in.i.i17, align 8 %bf.load.i.i.i20 = load i32, ptr %c.017.i.i19, align 8 %bf.lshr.i.i.i21 = lshr i32 %bf.load.i.i.i20, 30 - switch i32 %bf.lshr.i.i.i21, label %if.end.unreachabledefault.i.i37 [ + switch i32 %bf.lshr.i.i.i21, label %default.unreachable [ i32 0, label %sw.bb.i.i33 i32 1, label %sw.bb.i.i33 i32 2, label %sw.epilog.i.i26 @@ -31452,9 +31212,6 @@ sw.bb12.i.i22: ; preds = %if.end.i.i16 %arrayidx14.i.i24 = getelementptr inbounds ptr, ptr %28, i64 %idxprom13.i.i23 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i37: ; preds = %if.end.i.i16 - unreachable - sw.epilog.i.i26: ; preds = %sw.bb.i.i33, %if.end.i.i16 %c.1.in.i.i27 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i19, i64 0, i32 3 %trail_sz.1.i.i28 = add nuw nsw i32 %trail_sz.016.i.i18, 1 @@ -31554,7 +31311,7 @@ if.end.i.i: ; preds = %sw.epilog.i.i, %ent %c.017.i.i = load ptr, ptr %c.017.in.i.i, align 8 %bf.load.i.i.i = load i32, ptr %c.017.i.i, align 8 %bf.lshr.i.i.i = lshr i32 %bf.load.i.i.i, 30 - switch i32 %bf.lshr.i.i.i, label %if.end.unreachabledefault.i.i [ + switch i32 %bf.lshr.i.i.i, label %if.end.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i i32 1, label %sw.bb.i.i i32 2, label %sw.epilog.i.i @@ -31578,7 +31335,10 @@ sw.bb12.i.i: ; preds = %if.end.i.i %arrayidx14.i.i = getelementptr inbounds ptr, ptr %10, i64 %idxprom13.i.i br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5lowerEj.exit -if.end.unreachabledefault.i.i: ; preds = %if.end.i.i +if.end.i.i.unreachabledefault: ; preds = %if.end.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i35 unreachable sw.epilog.i.i: ; preds = %sw.bb.i.i, %if.end.i.i @@ -31609,7 +31369,7 @@ if.end.i.i35: ; preds = %sw.epilog.i.i45, %_ %c.017.i.i38 = load ptr, ptr %c.017.in.i.i36, align 8 %bf.load.i.i.i39 = load i32, ptr %c.017.i.i38, align 8 %bf.lshr.i.i.i40 = lshr i32 %bf.load.i.i.i39, 30 - switch i32 %bf.lshr.i.i.i40, label %if.end.unreachabledefault.i.i56 [ + switch i32 %bf.lshr.i.i.i40, label %default.unreachable [ i32 0, label %sw.bb.i.i52 i32 1, label %sw.bb.i.i52 i32 2, label %sw.epilog.i.i45 @@ -31633,9 +31393,6 @@ sw.bb12.i.i41: ; preds = %if.end.i.i35 %arrayidx14.i.i43 = getelementptr inbounds ptr, ptr %19, i64 %idxprom13.i.i42 br label %_ZNK9subpaving9context_tINS_10config_mpfEE4node5upperEj.exit -if.end.unreachabledefault.i.i56: ; preds = %if.end.i.i35 - unreachable - sw.epilog.i.i45: ; preds = %sw.bb.i.i52, %if.end.i.i35 %c.1.in.i.i46 = getelementptr inbounds %"struct.parray_manager::bound_array_config>::cell", ptr %c.017.i.i38, i64 0, i32 3 %trail_sz.1.i.i47 = add nuw nsw i32 %trail_sz.016.i.i37, 1 @@ -32922,7 +32679,7 @@ land.lhs.true.i.i.i.i: ; preds = %while.end.i.i.i.i br i1 %cmp8.i.i.i.i, label %if.then9.i.i.i.i, label %if.end16.i.i.i.i if.then9.i.i.i.i: ; preds = %land.lhs.true.i.i.i.i - %add10.i.i.i.i = shl i64 %__secondChild.0.lcssa.i.i.i.i, 1 + %add10.i.i.i.i = shl nsw i64 %__secondChild.0.lcssa.i.i.i.i, 1 %sub12.i.i.i.i = or disjoint i64 %add10.i.i.i.i, 1 %add.ptr13.i.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %sub12.i.i.i.i %6 = load i32, ptr %add.ptr13.i.i.i.i, align 4 @@ -33109,7 +32866,7 @@ while.end.i: ; preds = %while.body.i, %if.e br i1 %or.cond, label %if.then9.i, label %if.end16.i if.then9.i: ; preds = %while.end.i - %add10.i = shl i64 %__secondChild.0.lcssa.i, 1 + %add10.i = shl nsw i64 %__secondChild.0.lcssa.i, 1 %sub12.i = or disjoint i64 %add10.i, 1 %add.ptr13.i = getelementptr inbounds i32, ptr %__first, i64 %sub12.i %5 = load i32, ptr %add.ptr13.i, align 4 diff --git a/bench/z3/optimized/subpaving_tactic.cpp.ll b/bench/z3/optimized/subpaving_tactic.cpp.ll index 30ca2141fc0..3f232e81ea5 100644 --- a/bench/z3/optimized/subpaving_tactic.cpp.ll +++ b/bench/z3/optimized/subpaving_tactic.cpp.ll @@ -316,7 +316,6 @@ $_ZTV16tactic_exception = comdat any @.str.14 = private unnamed_addr constant [4 x i8] c"mpf\00", align 1 @.str.15 = private unnamed_addr constant [5 x i8] c"mpff\00", align 1 @.str.16 = private unnamed_addr constant [5 x i8] c"mpfx\00", align 1 -@.str.17 = private unnamed_addr constant [130 x i8] c"generated/home/dtcxzyw/WorkSpace/Projects/compilers/llvm-opt-benchmark/bench/z3/z3/src/math/subpaving/tactic/subpaving_tactic.cpp\00", align 1 @.str.18 = private unnamed_addr constant [29 x i8] c"UNEXPECTED CODE WAS REACHED.\00", align 1 @.str.19 = private unnamed_addr constant [41 x i8] c"tactic does not support user propagation\00", align 1 @.str.20 = private unnamed_addr constant [39 x i8] c"tactic does not support clause logging\00", align 1 @@ -1832,9 +1831,9 @@ _ZeqRK6symbolPKc.exit: ; preds = %if.end6.i %call9.i = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %call2, ptr noundef nonnull dereferenceable(4) @.str.13) #18 %cmp10.i = icmp eq i32 %call9.i, 0 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i) - br i1 %cmp10.i, label %if.end15, label %if.else.thread91 + br i1 %cmp10.i, label %if.end15, label %if.else.thread92 -if.else.thread91: ; preds = %_ZeqRK6symbolPKc.exit +if.else.thread92: ; preds = %_ZeqRK6symbolPKc.exit call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i5) br label %if.end6.i7 @@ -1844,9 +1843,9 @@ if.else: ; preds = %if.end11.i %cmp.i6 = icmp eq ptr %.pr.pre, null br i1 %cmp.i6, label %if.else6.thread, label %if.end6.i7 -if.end6.i7: ; preds = %if.else.thread91, %if.else - %.pr94 = phi ptr [ %call2, %if.else.thread91 ], [ %.pr.pre, %if.else ] - %1 = ptrtoint ptr %.pr94 to i64 +if.end6.i7: ; preds = %if.else.thread92, %if.else + %.pr95 = phi ptr [ %call2, %if.else.thread92 ], [ %.pr.pre, %if.else ] + %1 = ptrtoint ptr %.pr95 to i64 %and.i.i8 = and i64 %1, 7 %cmp.i.i9 = icmp eq i64 %and.i.i8, 1 br i1 %cmp.i.i9, label %if.end11.i14, label %_ZeqRK6symbolPKc.exit17 @@ -1865,12 +1864,12 @@ if.else6.thread: ; preds = %if.else.thread, %if br label %if.else9.thread _ZeqRK6symbolPKc.exit17: ; preds = %if.end6.i7 - %call9.i11 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.pr94, ptr noundef nonnull dereferenceable(4) @.str.14) #18 + %call9.i11 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.pr95, ptr noundef nonnull dereferenceable(4) @.str.14) #18 %cmp10.i12 = icmp eq i32 %call9.i11, 0 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i5) - br i1 %cmp10.i12, label %if.end15, label %if.else6.thread96 + br i1 %cmp10.i12, label %if.end15, label %if.else6.thread97 -if.else6.thread96: ; preds = %_ZeqRK6symbolPKc.exit17 +if.else6.thread97: ; preds = %_ZeqRK6symbolPKc.exit17 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i18) br label %if.end6.i20 @@ -1885,8 +1884,8 @@ if.else9.thread: ; preds = %if.else6.thread, %i call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i31) br label %_ZeqRK6symbolPKc.exit43.thread -if.end6.i20: ; preds = %if.else6.thread96, %if.else6 - %2 = phi ptr [ %.pr94, %if.else6.thread96 ], [ %.pre, %if.else6 ] +if.end6.i20: ; preds = %if.else6.thread97, %if.else6 + %2 = phi ptr [ %.pr95, %if.else6.thread97 ], [ %.pre, %if.else6 ] %3 = ptrtoint ptr %2 to i64 %and.i.i21 = and i64 %3, 7 %cmp.i.i22 = icmp eq i64 %and.i.i21, 1 @@ -1904,9 +1903,9 @@ _ZeqRK6symbolPKc.exit30: ; preds = %if.end6.i20 %call9.i24 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(5) @.str.15) #18 %cmp10.i25 = icmp eq i32 %call9.i24, 0 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i18) - br i1 %cmp10.i25, label %if.end15, label %if.else9.thread98 + br i1 %cmp10.i25, label %if.end15, label %if.else9.thread99 -if.else9.thread98: ; preds = %_ZeqRK6symbolPKc.exit30 +if.else9.thread99: ; preds = %_ZeqRK6symbolPKc.exit30 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i31) br label %if.end6.i33 @@ -1916,9 +1915,9 @@ if.else9: ; preds = %if.end11.i27 %cmp.i32 = icmp eq ptr %.pr85.pre, null br i1 %cmp.i32, label %_ZeqRK6symbolPKc.exit43.thread, label %if.end6.i33 -if.end6.i33: ; preds = %if.else9.thread98, %if.else9 - %.pr85101 = phi ptr [ %2, %if.else9.thread98 ], [ %.pr85.pre, %if.else9 ] - %4 = ptrtoint ptr %.pr85101 to i64 +if.end6.i33: ; preds = %if.else9.thread99, %if.else9 + %.pr85102 = phi ptr [ %2, %if.else9.thread99 ], [ %.pr85.pre, %if.else9 ] + %4 = ptrtoint ptr %.pr85102 to i64 %and.i.i34 = and i64 %4, 7 %cmp.i.i35 = icmp eq i64 %and.i.i34, 1 br i1 %cmp.i.i35, label %if.end11.i40, label %_ZeqRK6symbolPKc.exit43 @@ -1936,7 +1935,7 @@ _ZeqRK6symbolPKc.exit43.thread: ; preds = %if.else9, %if.else9 br label %if.end15 _ZeqRK6symbolPKc.exit43: ; preds = %if.end6.i33 - %call9.i37 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.pr85101, ptr noundef nonnull dereferenceable(5) @.str.16) #18 + %call9.i37 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.pr85102, ptr noundef nonnull dereferenceable(5) @.str.16) #18 %call9.i37.fr = freeze i32 %call9.i37 %cmp10.i38 = icmp eq i32 %call9.i37.fr, 0 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp.i31) @@ -1954,7 +1953,8 @@ if.end15: ; preds = %5, %_ZeqRK6symbolPK if.then16: ; preds = %if.end15 store i32 %new_kind.0, ptr %m_kind, align 8 - switch i32 %new_kind.0, label %sw.default [ + %7 = load ptr, ptr %this, align 8 + switch i32 %new_kind.0, label %default.unreachable91 [ i32 0, label %sw.bb i32 1, label %sw.bb25 i32 2, label %sw.bb35 @@ -1963,7 +1963,6 @@ if.then16: ; preds = %if.end15 ] sw.bb: ; preds = %if.then16 - %7 = load ptr, ptr %this, align 8 %m_qm = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 1 store ptr null, ptr %ref.tmp21, align 8 %call22 = invoke noundef ptr @_ZN9subpaving14mk_mpq_contextER8reslimitR11mpq_managerILb0EERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 8 dereferenceable(728) %m_qm, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp21, ptr noundef null) @@ -1996,27 +1995,26 @@ lpad: ; preds = %if.end.i.i, %sw.bb br label %eh.resume sw.bb25: ; preds = %if.then16 - %11 = load ptr, ptr %this, align 8 %m_fm = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 3 store ptr null, ptr %ref.tmp28, align 8 - %call31 = invoke noundef ptr @_ZN9subpaving14mk_mpf_contextER8reslimitR3f2nI11mpf_managerERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %11, ptr noundef nonnull align 8 dereferenceable(88) %m_fm, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp28, ptr noundef null) + %call31 = invoke noundef ptr @_ZN9subpaving14mk_mpf_contextER8reslimitR3f2nI11mpf_managerERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 8 dereferenceable(88) %m_fm, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp28, ptr noundef null) to label %invoke.cont30 unwind label %lpad29 invoke.cont30: ; preds = %sw.bb25 %m_ctx32 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 11 - %12 = load ptr, ptr %m_ctx32, align 8 - %cmp.not.i45 = icmp eq ptr %12, %call31 + %11 = load ptr, ptr %m_ctx32, align 8 + %cmp.not.i45 = icmp eq ptr %11, %call31 br i1 %cmp.not.i45, label %sw.epilog, label %if.then.i46 if.then.i46: ; preds = %invoke.cont30 - %cmp.i.i47 = icmp eq ptr %12, null + %cmp.i.i47 = icmp eq ptr %11, null br i1 %cmp.i.i47, label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i50, label %if.end.i.i48 if.end.i.i48: ; preds = %if.then.i46 - %vtable.i.i49 = load ptr, ptr %12, align 8 - %13 = load ptr, ptr %vtable.i.i49, align 8 - call void %13(ptr noundef nonnull align 8 dereferenceable(8) %12) #14 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %12) + %vtable.i.i49 = load ptr, ptr %11, align 8 + %12 = load ptr, ptr %vtable.i.i49, align 8 + call void %12(ptr noundef nonnull align 8 dereferenceable(8) %11) #14 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %11) to label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i50 unwind label %lpad29 _Z7deallocIN9subpaving7contextEEvPT_.exit.i50: ; preds = %if.end.i.i48, %if.then.i46 @@ -2024,33 +2022,32 @@ _Z7deallocIN9subpaving7contextEEvPT_.exit.i50: ; preds = %if.end.i.i48, %if.t br label %sw.epilog lpad29: ; preds = %if.end.i.i48, %sw.bb25 - %14 = landingpad { ptr, i32 } + %13 = landingpad { ptr, i32 } cleanup br label %eh.resume sw.bb35: ; preds = %if.then16 - %15 = load ptr, ptr %this, align 8 %m_hm = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 5 %m_qm38 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 1 store ptr null, ptr %ref.tmp39, align 8 - %call42 = invoke noundef ptr @_ZN9subpaving14mk_hwf_contextER8reslimitR3f2nI11hwf_managerER11mpq_managerILb0EERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef nonnull align 8 dereferenceable(40) %m_hm, ptr noundef nonnull align 8 dereferenceable(728) %m_qm38, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp39, ptr noundef null) + %call42 = invoke noundef ptr @_ZN9subpaving14mk_hwf_contextER8reslimitR3f2nI11hwf_managerER11mpq_managerILb0EERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 8 dereferenceable(40) %m_hm, ptr noundef nonnull align 8 dereferenceable(728) %m_qm38, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp39, ptr noundef null) to label %invoke.cont41 unwind label %lpad40 invoke.cont41: ; preds = %sw.bb35 %m_ctx43 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 11 - %16 = load ptr, ptr %m_ctx43, align 8 - %cmp.not.i53 = icmp eq ptr %16, %call42 + %14 = load ptr, ptr %m_ctx43, align 8 + %cmp.not.i53 = icmp eq ptr %14, %call42 br i1 %cmp.not.i53, label %sw.epilog, label %if.then.i54 if.then.i54: ; preds = %invoke.cont41 - %cmp.i.i55 = icmp eq ptr %16, null + %cmp.i.i55 = icmp eq ptr %14, null br i1 %cmp.i.i55, label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i58, label %if.end.i.i56 if.end.i.i56: ; preds = %if.then.i54 - %vtable.i.i57 = load ptr, ptr %16, align 8 - %17 = load ptr, ptr %vtable.i.i57, align 8 - call void %17(ptr noundef nonnull align 8 dereferenceable(8) %16) #14 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %16) + %vtable.i.i57 = load ptr, ptr %14, align 8 + %15 = load ptr, ptr %vtable.i.i57, align 8 + call void %15(ptr noundef nonnull align 8 dereferenceable(8) %14) #14 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %14) to label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i58 unwind label %lpad40 _Z7deallocIN9subpaving7contextEEvPT_.exit.i58: ; preds = %if.end.i.i56, %if.then.i54 @@ -2058,33 +2055,32 @@ _Z7deallocIN9subpaving7contextEEvPT_.exit.i58: ; preds = %if.end.i.i56, %if.t br label %sw.epilog lpad40: ; preds = %if.end.i.i56, %sw.bb35 - %18 = landingpad { ptr, i32 } + %16 = landingpad { ptr, i32 } cleanup br label %eh.resume sw.bb46: ; preds = %if.then16 - %19 = load ptr, ptr %this, align 8 %m_ffm = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 6 %m_qm49 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 1 store ptr null, ptr %ref.tmp50, align 8 - %call53 = invoke noundef ptr @_ZN9subpaving15mk_mpff_contextER8reslimitR12mpff_managerR11mpq_managerILb0EERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %19, ptr noundef nonnull align 8 dereferenceable(89) %m_ffm, ptr noundef nonnull align 8 dereferenceable(728) %m_qm49, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp50, ptr noundef null) + %call53 = invoke noundef ptr @_ZN9subpaving15mk_mpff_contextER8reslimitR12mpff_managerR11mpq_managerILb0EERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 8 dereferenceable(89) %m_ffm, ptr noundef nonnull align 8 dereferenceable(728) %m_qm49, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp50, ptr noundef null) to label %invoke.cont52 unwind label %lpad51 invoke.cont52: ; preds = %sw.bb46 %m_ctx54 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 11 - %20 = load ptr, ptr %m_ctx54, align 8 - %cmp.not.i61 = icmp eq ptr %20, %call53 + %17 = load ptr, ptr %m_ctx54, align 8 + %cmp.not.i61 = icmp eq ptr %17, %call53 br i1 %cmp.not.i61, label %sw.epilog, label %if.then.i62 if.then.i62: ; preds = %invoke.cont52 - %cmp.i.i63 = icmp eq ptr %20, null + %cmp.i.i63 = icmp eq ptr %17, null br i1 %cmp.i.i63, label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i66, label %if.end.i.i64 if.end.i.i64: ; preds = %if.then.i62 - %vtable.i.i65 = load ptr, ptr %20, align 8 - %21 = load ptr, ptr %vtable.i.i65, align 8 - call void %21(ptr noundef nonnull align 8 dereferenceable(8) %20) #14 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %20) + %vtable.i.i65 = load ptr, ptr %17, align 8 + %18 = load ptr, ptr %vtable.i.i65, align 8 + call void %18(ptr noundef nonnull align 8 dereferenceable(8) %17) #14 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %17) to label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i66 unwind label %lpad51 _Z7deallocIN9subpaving7contextEEvPT_.exit.i66: ; preds = %if.end.i.i64, %if.then.i62 @@ -2092,33 +2088,32 @@ _Z7deallocIN9subpaving7contextEEvPT_.exit.i66: ; preds = %if.end.i.i64, %if.t br label %sw.epilog lpad51: ; preds = %if.end.i.i64, %sw.bb46 - %22 = landingpad { ptr, i32 } + %19 = landingpad { ptr, i32 } cleanup br label %eh.resume sw.bb57: ; preds = %if.then16 - %23 = load ptr, ptr %this, align 8 %m_fxm = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 7 %m_qm60 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 1 store ptr null, ptr %ref.tmp61, align 8 - %call64 = invoke noundef ptr @_ZN9subpaving15mk_mpfx_contextER8reslimitR12mpfx_managerR11mpq_managerILb0EERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(85) %m_fxm, ptr noundef nonnull align 8 dereferenceable(728) %m_qm60, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp61, ptr noundef null) + %call64 = invoke noundef ptr @_ZN9subpaving15mk_mpfx_contextER8reslimitR12mpfx_managerR11mpq_managerILb0EERK10params_refP22small_object_allocator(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 8 dereferenceable(85) %m_fxm, ptr noundef nonnull align 8 dereferenceable(728) %m_qm60, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp61, ptr noundef null) to label %invoke.cont63 unwind label %lpad62 invoke.cont63: ; preds = %sw.bb57 %m_ctx65 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 11 - %24 = load ptr, ptr %m_ctx65, align 8 - %cmp.not.i69 = icmp eq ptr %24, %call64 + %20 = load ptr, ptr %m_ctx65, align 8 + %cmp.not.i69 = icmp eq ptr %20, %call64 br i1 %cmp.not.i69, label %sw.epilog, label %if.then.i70 if.then.i70: ; preds = %invoke.cont63 - %cmp.i.i71 = icmp eq ptr %24, null + %cmp.i.i71 = icmp eq ptr %20, null br i1 %cmp.i.i71, label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i74, label %if.end.i.i72 if.end.i.i72: ; preds = %if.then.i70 - %vtable.i.i73 = load ptr, ptr %24, align 8 - %25 = load ptr, ptr %vtable.i.i73, align 8 - call void %25(ptr noundef nonnull align 8 dereferenceable(8) %24) #14 - invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %24) + %vtable.i.i73 = load ptr, ptr %20, align 8 + %21 = load ptr, ptr %vtable.i.i73, align 8 + call void %21(ptr noundef nonnull align 8 dereferenceable(8) %20) #14 + invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %20) to label %_Z7deallocIN9subpaving7contextEEvPT_.exit.i74 unwind label %lpad62 _Z7deallocIN9subpaving7contextEEvPT_.exit.i74: ; preds = %if.end.i.i72, %if.then.i70 @@ -2126,36 +2121,34 @@ _Z7deallocIN9subpaving7contextEEvPT_.exit.i74: ; preds = %if.end.i.i72, %if.t br label %sw.epilog lpad62: ; preds = %if.end.i.i72, %sw.bb57 - %26 = landingpad { ptr, i32 } + %22 = landingpad { ptr, i32 } cleanup br label %eh.resume -sw.default: ; preds = %if.then16 - call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.17, i32 noundef 112, ptr noundef nonnull @.str.18) - call void @exit(i32 noundef 114) #15 +default.unreachable91: ; preds = %if.then16 unreachable sw.epilog: ; preds = %invoke.cont63, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i74, %invoke.cont52, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i66, %invoke.cont41, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i58, %invoke.cont30, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i50, %invoke.cont, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i %ref.tmp61.sink = phi ptr [ %ref.tmp21, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i ], [ %ref.tmp21, %invoke.cont ], [ %ref.tmp28, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i50 ], [ %ref.tmp28, %invoke.cont30 ], [ %ref.tmp39, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i58 ], [ %ref.tmp39, %invoke.cont41 ], [ %ref.tmp50, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i66 ], [ %ref.tmp50, %invoke.cont52 ], [ %ref.tmp61, %_Z7deallocIN9subpaving7contextEEvPT_.exit.i74 ], [ %ref.tmp61, %invoke.cont63 ] call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp61.sink) #14 %call68 = call noalias noundef ptr @_ZN6memory8allocateEm(i64 noundef 8) - %27 = load ptr, ptr %this, align 8 + %23 = load ptr, ptr %this, align 8 %m_ctx69 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 11 - %28 = load ptr, ptr %m_ctx69, align 8 + %24 = load ptr, ptr %m_ctx69, align 8 %m_e2v = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 13 - call void @_ZN14expr2subpavingC1ER11ast_managerRN9subpaving7contextEP8expr2var(ptr noundef nonnull align 8 dereferenceable(8) %call68, ptr noundef nonnull align 8 dereferenceable(976) %27, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull %m_e2v) + call void @_ZN14expr2subpavingC1ER11ast_managerRN9subpaving7contextEP8expr2var(ptr noundef nonnull align 8 dereferenceable(8) %call68, ptr noundef nonnull align 8 dereferenceable(976) %23, ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull %m_e2v) %m_e2s = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 14 - %29 = load ptr, ptr %m_e2s, align 8 - %cmp.not.i77 = icmp eq ptr %29, %call68 + %25 = load ptr, ptr %m_e2s, align 8 + %cmp.not.i77 = icmp eq ptr %25, %call68 br i1 %cmp.not.i77, label %if.end72, label %if.then.i78 if.then.i78: ; preds = %sw.epilog - %cmp.i.i79 = icmp eq ptr %29, null + %cmp.i.i79 = icmp eq ptr %25, null br i1 %cmp.i.i79, label %_Z7deallocI14expr2subpavingEvPT_.exit.i, label %if.end.i.i80 if.end.i.i80: ; preds = %if.then.i78 - call void @_ZN14expr2subpavingD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #14 - call void @_ZN6memory10deallocateEPv(ptr noundef nonnull %29) + call void @_ZN14expr2subpavingD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #14 + call void @_ZN6memory10deallocateEPv(ptr noundef nonnull %25) br label %_Z7deallocI14expr2subpavingEvPT_.exit.i _Z7deallocI14expr2subpavingEvPT_.exit.i: ; preds = %if.end.i.i80, %if.then.i78 @@ -2164,17 +2157,17 @@ _Z7deallocI14expr2subpavingEvPT_.exit.i: ; preds = %if.end.i.i80, %if.t if.end72: ; preds = %_Z7deallocI14expr2subpavingEvPT_.exit.i, %sw.epilog, %if.end15 %m_ctx73 = getelementptr inbounds %"struct.subpaving_tactic::imp", ptr %this, i64 0, i32 11 - %30 = load ptr, ptr %m_ctx73, align 8 - %vtable = load ptr, ptr %30, align 8 + %26 = load ptr, ptr %m_ctx73, align 8 + %vtable = load ptr, ptr %26, align 8 %vfn = getelementptr inbounds ptr, ptr %vtable, i64 14 - %31 = load ptr, ptr %vfn, align 8 - call void %31(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %p) + %27 = load ptr, ptr %vfn, align 8 + call void %27(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %p) ret void eh.resume: ; preds = %lpad62, %lpad51, %lpad40, %lpad29, %lpad - %ref.tmp61.sink102 = phi ptr [ %ref.tmp61, %lpad62 ], [ %ref.tmp50, %lpad51 ], [ %ref.tmp39, %lpad40 ], [ %ref.tmp28, %lpad29 ], [ %ref.tmp21, %lpad ] - %.pn = phi { ptr, i32 } [ %26, %lpad62 ], [ %22, %lpad51 ], [ %18, %lpad40 ], [ %14, %lpad29 ], [ %10, %lpad ] - call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp61.sink102) #14 + %ref.tmp61.sink103 = phi ptr [ %ref.tmp61, %lpad62 ], [ %ref.tmp50, %lpad51 ], [ %ref.tmp39, %lpad40 ], [ %ref.tmp28, %lpad29 ], [ %ref.tmp21, %lpad ] + %.pn = phi { ptr, i32 } [ %22, %lpad62 ], [ %19, %lpad51 ], [ %16, %lpad40 ], [ %13, %lpad29 ], [ %10, %lpad ] + call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp61.sink103) #14 resume { ptr, i32 } %.pn } @@ -3003,7 +2996,7 @@ while.body.i.i.i: ; preds = %for.cond, %sw.bb.i. %c.0.i.i.i = phi ptr [ %2, %sw.bb.i.i.i ], [ %0, %for.cond ] %bf.load.i.i.i.i = load i32, ptr %c.0.i.i.i, align 8 %bf.lshr.i.i.i.i = lshr i32 %bf.load.i.i.i.i, 30 - switch i32 %bf.lshr.i.i.i.i, label %while.body.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i, label %while.body.i.i.i.unreachabledefault [ i32 0, label %sw.bb.i.i.i i32 1, label %sw.bb3.i.i.i i32 2, label %sw.bb5.i.i.i @@ -3032,7 +3025,10 @@ sw.bb7.i.i.i: ; preds = %while.body.i.i.i %8 = load i32, ptr %7, align 4 br label %invoke.cont -while.body.unreachabledefault.i.i.i: ; preds = %while.body.i.i.i +while.body.i.i.i.unreachabledefault: ; preds = %while.body.i.i.i + unreachable + +default.unreachable: ; preds = %if.end.i.i.i unreachable invoke.cont: ; preds = %sw.bb7.i.i.i, %sw.bb5.i.i.i, %sw.bb3.i.i.i, %for.cond @@ -3073,7 +3069,7 @@ if.end.i.i.i: ; preds = %sw.epilog.i.i.i, %c %c.017.i.i.i = load ptr, ptr %c.017.in.i.i.i, align 8 %bf.load.i.i.i.i7 = load i32, ptr %c.017.i.i.i, align 8 %bf.lshr.i.i.i.i8 = lshr i32 %bf.load.i.i.i.i7, 30 - switch i32 %bf.lshr.i.i.i.i8, label %if.end.unreachabledefault.i.i.i [ + switch i32 %bf.lshr.i.i.i.i8, label %default.unreachable [ i32 0, label %sw.bb.i.i.i9 i32 1, label %sw.bb.i.i.i9 i32 2, label %sw.epilog.i.i.i @@ -3097,9 +3093,6 @@ sw.bb12.i.i.i: ; preds = %if.end.i.i.i %arrayidx14.i.i.i = getelementptr inbounds ptr, ptr %19, i64 %indvars.iv br label %invoke.cont2 -if.end.unreachabledefault.i.i.i: ; preds = %if.end.i.i.i - unreachable - sw.epilog.i.i.i: ; preds = %sw.bb.i.i.i9, %if.end.i.i.i %c.1.in.i.i.i = getelementptr inbounds %"struct.parray_manager::cell", ptr %c.017.i.i.i, i64 0, i32 3 %trail_sz.1.i.i.i = add nuw nsw i32 %trail_sz.016.i.i.i, 1 @@ -3154,7 +3147,7 @@ cleanup.action: ; preds = %catch br label %cleanup.done cleanup.done: ; preds = %ehcleanup, %cleanup.action - %.pn12 = phi { ptr, i32 } [ %26, %cleanup.action ], [ %25, %ehcleanup ] + %.pn13 = phi { ptr, i32 } [ %26, %cleanup.action ], [ %25, %ehcleanup ] invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad @@ -3162,7 +3155,7 @@ try.cont: ; preds = %invoke.cont ret void eh.resume: ; preds = %cleanup.done, %lpad - %lpad.val15.merged = phi { ptr, i32 } [ %.pn12, %cleanup.done ], [ %20, %lpad ] + %lpad.val15.merged = phi { ptr, i32 } [ %.pn13, %cleanup.done ], [ %20, %lpad ] resume { ptr, i32 } %lpad.val15.merged terminate.lpad: ; preds = %cleanup.done @@ -4082,8 +4075,8 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5re br i1 %cmp.i28, label %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread, label %while.body.i.preheader _ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit - %bf.load.i86106 = load i32, ptr %.pre, align 8 - %bf.lshr.i87107 = lshr i32 %bf.load.i86106, 30 + %bf.load.i86107 = load i32, ptr %.pre, align 8 + %bf.lshr.i87108 = lshr i32 %bf.load.i86107, 30 br label %while.end while.body.i.preheader: ; preds = %if.end, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit @@ -4094,7 +4087,7 @@ while.body.i: ; preds = %while.body.i.prehea %c.0.i = phi ptr [ %4, %sw.bb.i ], [ %2, %while.body.i.preheader ] %bf.load.i.i29 = load i32, ptr %c.0.i, align 8 %bf.lshr.i.i = lshr i32 %bf.load.i.i29, 30 - switch i32 %bf.lshr.i.i, label %while.body.unreachabledefault.i [ + switch i32 %bf.lshr.i.i, label %while.body.i.unreachabledefault [ i32 0, label %sw.bb.i i32 1, label %sw.bb3.i i32 2, label %sw.bb5.i @@ -4123,7 +4116,10 @@ sw.bb7.i: ; preds = %while.body.i %10 = load i32, ptr %9, align 4 br label %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit -while.body.unreachabledefault.i: ; preds = %while.body.i +while.body.i.unreachabledefault: ; preds = %while.body.i + unreachable + +default.unreachable103: ; preds = %for.body unreachable _ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit: ; preds = %sw.bb3.i, %sw.bb5.i, %sw.bb7.i @@ -4181,7 +4177,7 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9pu while.end: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit %c.0.lcssa = phi ptr [ %2, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ null, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %20, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] - %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87107, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] + %bf.lshr.i.lcssa = phi i32 [ %bf.lshr.i87, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ %bf.lshr.i87108, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %bf.lshr.i, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] %cmp8.not = icmp eq i32 %bf.lshr.i.lcssa, 3 br i1 %cmp8.not, label %if.end10, label %if.then9 @@ -4218,7 +4214,7 @@ for.body: ; preds = %for.body.lr.ph, %_Z %31 = load ptr, ptr %30, align 8 %bf.load = load i32, ptr %27, align 8 %bf.lshr = lshr i32 %bf.load, 30 - switch i32 %bf.lshr, label %for.body.unreachabledefault [ + switch i32 %bf.lshr, label %default.unreachable103 [ i32 0, label %sw.bb i32 1, label %sw.bb18 i32 2, label %sw.bb30 @@ -4327,9 +4323,6 @@ sw.bb38: ; preds = %for.body tail call void @exit(i32 noundef 114) #15 unreachable -for.body.unreachabledefault: ; preds = %for.body - unreachable - if.end.i52: ; preds = %sw.bb, %if.end25, %sw.bb30 %vs.1 = phi ptr [ %31, %sw.bb30 ], [ %vs.0, %if.end25 ], [ %31, %sw.bb ] %sz.0 = phi i32 [ %dec34, %sw.bb30 ], [ %inc29, %if.end25 ], [ %29, %sw.bb ] @@ -4660,7 +4653,7 @@ for.body: ; preds = %for.body.preheader, %26 = load ptr, ptr %arrayidx.i18, align 8 %bf.load.i19 = load i32, ptr %26, align 8 %bf.lshr.i20 = lshr i32 %bf.load.i19, 30 - switch i32 %bf.lshr.i20, label %for.body.unreachabledefault [ + switch i32 %bf.lshr.i20, label %default.unreachable [ i32 0, label %sw.bb i32 2, label %sw.bb8 i32 1, label %sw.bb9 @@ -4820,7 +4813,7 @@ sw.bb11: ; preds = %for.body tail call void @exit(i32 noundef 114) #15 unreachable -for.body.unreachabledefault: ; preds = %for.body +default.unreachable: ; preds = %for.body unreachable sw.epilog: ; preds = %if.then2.i.i.i35, %if.then.i.i.i31, %sw.bb8, %_ZN14parray_managerIN11ast_manager17expr_array_configEE10rpush_backERPP4exprRjRKS4_.exit, %_ZN14parray_managerIN11ast_manager17expr_array_configEE4rsetEPP4exprjRKS4_.exit @@ -4850,7 +4843,7 @@ while.body: ; preds = %if.end, %entry %bf.load.i = phi i32 [ %bf.load.i.pre, %entry ], [ %bf.set, %if.end ] %c.addr.0 = phi ptr [ %c, %entry ], [ %next.0, %if.end ] %bf.lshr.i = lshr i32 %bf.load.i, 30 - switch i32 %bf.lshr.i, label %while.body.unreachabledefault [ + switch i32 %bf.lshr.i, label %default.unreachable [ i32 0, label %sw.bb i32 1, label %sw.bb i32 2, label %sw.epilog @@ -4931,7 +4924,7 @@ _ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i: tail call void @_ZN22small_object_allocator10deallocateEmPv(ptr noundef nonnull align 8 dereferenceable(520) %12, i64 noundef %add.i, ptr noundef nonnull %arrayidx.i.i) br label %sw.epilog.thread -while.body.unreachabledefault: ; preds = %while.body +default.unreachable: ; preds = %while.body unreachable sw.epilog.thread: ; preds = %_ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEjPP4expr.exit, %_ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i diff --git a/bench/z3/optimized/theory_lra.cpp.ll b/bench/z3/optimized/theory_lra.cpp.ll index f1d802f2b60..28dd5007b2c 100644 --- a/bench/z3/optimized/theory_lra.cpp.ll +++ b/bench/z3/optimized/theory_lra.cpp.ll @@ -37922,7 +37922,7 @@ if.end28: ; preds = %if.end23 %cmp.i18 = icmp eq i32 %call2.i17, 1 %..i = sext i1 %cmp.i18 to i32 %retval.0.i19 = select i1 %call4.i, i32 1, i32 %..i - switch i32 %retval.0.i19, label %return [ + switch i32 %retval.0.i19, label %default.unreachable [ i32 -1, label %sw.bb i32 1, label %sw.bb29 i32 0, label %sw.bb30 @@ -37941,8 +37941,11 @@ sw.bb30: ; preds = %if.end28 tail call void @exit(i32 noundef 114) #24 unreachable -return: ; preds = %if.end28, %sw.bb, %sw.bb29, %if.end23, %while.end, %_ZN3smt10theory_lra3imp18can_propagate_coreEv.exit, %_ZN3smt10theory_lra3imp13propagate_nlaEv.exit, %_ZN3smt10theory_lra3imp46get_infeasibility_explanation_and_set_conflictEv.exit - %retval.0 = phi i1 [ true, %_ZN3smt10theory_lra3imp46get_infeasibility_explanation_and_set_conflictEv.exit ], [ true, %_ZN3smt10theory_lra3imp13propagate_nlaEv.exit ], [ false, %_ZN3smt10theory_lra3imp18can_propagate_coreEv.exit ], [ true, %while.end ], [ true, %if.end23 ], [ true, %sw.bb29 ], [ true, %sw.bb ], [ true, %if.end28 ] +default.unreachable: ; preds = %if.end28 + unreachable + +return: ; preds = %sw.bb, %sw.bb29, %if.end23, %while.end, %_ZN3smt10theory_lra3imp18can_propagate_coreEv.exit, %_ZN3smt10theory_lra3imp13propagate_nlaEv.exit, %_ZN3smt10theory_lra3imp46get_infeasibility_explanation_and_set_conflictEv.exit + %retval.0 = phi i1 [ true, %_ZN3smt10theory_lra3imp46get_infeasibility_explanation_and_set_conflictEv.exit ], [ true, %_ZN3smt10theory_lra3imp13propagate_nlaEv.exit ], [ false, %_ZN3smt10theory_lra3imp18can_propagate_coreEv.exit ], [ true, %while.end ], [ true, %if.end23 ], [ true, %sw.bb29 ], [ true, %sw.bb ] ret i1 %retval.0 } diff --git a/bench/z3/optimized/theory_str.cpp.ll b/bench/z3/optimized/theory_str.cpp.ll index 2e438f4255f..360970b950c 100644 --- a/bench/z3/optimized/theory_str.cpp.ll +++ b/bench/z3/optimized/theory_str.cpp.ll @@ -52770,7 +52770,7 @@ invoke.cont260: ; preds = %_ZN6vectorIPN3smt5e to label %if.end264 unwind label %lpad65 if.end264: ; preds = %invoke.cont260, %invoke.cont201 - switch i32 %splitType.1, label %if.end1128 [ + switch i32 %splitType.1, label %default.unreachable [ i32 0, label %invoke.cont269 i32 1, label %if.then446 i32 2, label %if.then501 @@ -57449,7 +57449,10 @@ ehcleanup1124: ; preds = %ehcleanup1121, %ehc call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %arrangement_disjunction) #21 br label %ehcleanup1129 -if.end1128: ; preds = %if.end1077, %if.then.i.i.i.i.i2754, %invoke.cont8.i.i2751, %if.end1123, %if.then2.i.i.i2004, %if.then.i.i.i1999, %_ZN7obj_refI4expr11ast_managerED2Ev.exit1997, %if.then2.i.i.i1535, %if.then.i.i.i1530, %_ZN7obj_refI4expr11ast_managerED2Ev.exit1528, %if.then.i.i.i.i.i1441, %invoke.cont8.i.i1438, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, %if.end264 +default.unreachable: ; preds = %if.end264 + unreachable + +if.end1128: ; preds = %if.end1077, %if.then.i.i.i.i.i2754, %invoke.cont8.i.i2751, %if.end1123, %if.then2.i.i.i2004, %if.then.i.i.i1999, %_ZN7obj_refI4expr11ast_managerED2Ev.exit1997, %if.then2.i.i.i1535, %if.then.i.i.i1530, %_ZN7obj_refI4expr11ast_managerED2Ev.exit1528, %if.then.i.i.i.i.i1441, %invoke.cont8.i.i1438, %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit %969 = load ptr, ptr %t2, align 8 %tobool.not.i.i2760 = icmp eq ptr %969, null br i1 %tobool.not.i.i2760, label %_ZN7obj_refI4expr11ast_managerED2Ev.exit2768, label %if.then.i.i.i2761 diff --git a/bench/zstd/optimized/zstd_compress_literals.c.ll b/bench/zstd/optimized/zstd_compress_literals.c.ll index 1e4519fc826..d08f3f526ed 100644 --- a/bench/zstd/optimized/zstd_compress_literals.c.ll +++ b/bench/zstd/optimized/zstd_compress_literals.c.ll @@ -5,7 +5,7 @@ target triple = "x86_64-unknown-linux-gnu" %struct.ZSTD_hufCTables_t = type { [257 x i64], i32 } -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(argmem: readwrite) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable define i64 @ZSTD_noCompressLiterals(ptr nocapture noundef writeonly %dst, i64 noundef %dstCapacity, ptr nocapture noundef readonly %src, i64 noundef %srcSize) local_unnamed_addr #0 { entry: %cmp = icmp ugt i64 %srcSize, 31 @@ -19,7 +19,7 @@ entry: br i1 %cmp7, label %return, label %do.end17 do.end17: ; preds = %entry - switch i32 %add3, label %sw.epilog [ + switch i32 %add3, label %default.unreachable16 [ i32 1, label %sw.bb i32 2, label %sw.bb20 i32 3, label %sw.bb24 @@ -45,7 +45,10 @@ sw.bb24: ; preds = %do.end17 store i32 %conv27, ptr %dst, align 1 br label %sw.epilog -sw.epilog: ; preds = %do.end17, %sw.bb24, %sw.bb20, %sw.bb +default.unreachable16: ; preds = %do.end17 + unreachable + +sw.epilog: ; preds = %sw.bb24, %sw.bb20, %sw.bb %add.ptr = getelementptr inbounds i8, ptr %dst, i64 %conv5 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr, ptr align 1 %src, i64 %srcSize, i1 false) br label %return @@ -59,14 +62,14 @@ return: ; preds = %entry, %sw.epilog declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable -define i64 @ZSTD_compressRleLiteralsBlock(ptr nocapture noundef writeonly %dst, i64 %dstCapacity, ptr nocapture noundef readonly %src, i64 noundef %srcSize) local_unnamed_addr #2 { +define i64 @ZSTD_compressRleLiteralsBlock(ptr nocapture noundef writeonly %dst, i64 %dstCapacity, ptr nocapture noundef readonly %src, i64 noundef %srcSize) local_unnamed_addr #0 { entry: %cmp = icmp ugt i64 %srcSize, 31 %add = select i1 %cmp, i32 2, i32 1 %cmp1 = icmp ugt i64 %srcSize, 4095 %conv2 = zext i1 %cmp1 to i32 %add3 = add nuw nsw i32 %add, %conv2 - switch i32 %add3, label %sw.epilog [ + switch i32 %add3, label %default.unreachable12 [ i32 1, label %sw.bb i32 2, label %sw.bb6 i32 3, label %sw.bb10 @@ -93,7 +96,10 @@ sw.bb10: ; preds = %entry store i32 %conv13, ptr %dst, align 1 br label %sw.epilog -sw.epilog: ; preds = %entry, %sw.bb10, %sw.bb6, %sw.bb +default.unreachable12: ; preds = %entry + unreachable + +sw.epilog: ; preds = %sw.bb10, %sw.bb6, %sw.bb %3 = load i8, ptr %src, align 1 %idxprom = zext nneg i32 %add3 to i64 %arrayidx14 = getelementptr inbounds i8, ptr %dst, i64 %idxprom @@ -104,7 +110,7 @@ sw.epilog: ; preds = %entry, %sw.bb10, %s } ; Function Attrs: nounwind uwtable -define i64 @ZSTD_compressLiterals(ptr noundef %dst, i64 noundef %dstCapacity, ptr noundef %src, i64 noundef %srcSize, ptr noundef %entropyWorkspace, i64 noundef %entropyWorkspaceSize, ptr nocapture noundef readonly %prevHuf, ptr noundef %nextHuf, i32 noundef %strategy, i32 noundef %disableLiteralCompression, i32 noundef %suspectUncompressible, i32 noundef %bmi2) local_unnamed_addr #3 { +define i64 @ZSTD_compressLiterals(ptr noundef %dst, i64 noundef %dstCapacity, ptr noundef %src, i64 noundef %srcSize, ptr noundef %entropyWorkspace, i64 noundef %entropyWorkspaceSize, ptr nocapture noundef readonly %prevHuf, ptr noundef %nextHuf, i32 noundef %strategy, i32 noundef %disableLiteralCompression, i32 noundef %suspectUncompressible, i32 noundef %bmi2) local_unnamed_addr #2 { entry: %repeat = alloca i32, align 4 %cmp = icmp ugt i64 %srcSize, 1023 @@ -129,7 +135,7 @@ if.then: ; preds = %entry br i1 %cmp7.i, label %return, label %do.end17.i do.end17.i: ; preds = %if.then - switch i32 %add3.i, label %sw.epilog.i [ + switch i32 %add3.i, label %default.unreachable123 [ i32 1, label %sw.bb.i i32 2, label %sw.bb20.i i32 3, label %sw.bb24.i @@ -155,7 +161,10 @@ sw.bb24.i: ; preds = %do.end17.i store i32 %conv27.i, ptr %dst, align 1 br label %sw.epilog.i -sw.epilog.i: ; preds = %sw.bb24.i, %sw.bb20.i, %sw.bb.i, %do.end17.i +default.unreachable123: ; preds = %if.end90, %do.end17.i102, %do.end17.i73, %do.end17.i + unreachable + +sw.epilog.i: ; preds = %sw.bb24.i, %sw.bb20.i, %sw.bb.i %add.ptr.i = getelementptr inbounds i8, ptr %dst, i64 %conv5.i tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i, ptr align 1 %src, i64 %srcSize, i1 false) br label %return @@ -184,7 +193,7 @@ if.then12: ; preds = %if.end br i1 %cmp7.i72, label %return, label %do.end17.i73 do.end17.i73: ; preds = %if.then12 - switch i32 %add3.i69, label %sw.epilog.i77 [ + switch i32 %add3.i69, label %default.unreachable123 [ i32 1, label %sw.bb.i83 i32 2, label %sw.bb20.i80 i32 3, label %sw.bb24.i74 @@ -210,7 +219,7 @@ sw.bb24.i74: ; preds = %do.end17.i73 store i32 %conv27.i76, ptr %dst, align 1 br label %sw.epilog.i77 -sw.epilog.i77: ; preds = %sw.bb24.i74, %sw.bb20.i80, %sw.bb.i83, %do.end17.i73 +sw.epilog.i77: ; preds = %sw.bb24.i74, %sw.bb20.i80, %sw.bb.i83 %add.ptr.i78 = getelementptr inbounds i8, ptr %dst, i64 %conv5.i70 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i78, ptr align 1 %src, i64 %srcSize, i1 false) br label %return @@ -240,64 +249,64 @@ do.end29: ; preds = %do.body15 %cond52 = select i1 %narrow, ptr @HUF_compress1X_repeat, ptr @HUF_compress4X_repeat %add.ptr = getelementptr inbounds i8, ptr %dst, i64 %add3 %sub = sub i64 %dstCapacity, %add3 - %call53 = call i64 %cond52(ptr noundef nonnull %add.ptr, i64 noundef %sub, ptr noundef %src, i64 noundef %srcSize, i32 noundef 255, i32 noundef 11, ptr noundef %entropyWorkspace, i64 noundef %entropyWorkspaceSize, ptr noundef nonnull %nextHuf, ptr noundef nonnull %repeat, i32 noundef %or44) #6, !callees !4 + %call53 = call i64 %cond52(ptr noundef nonnull %add.ptr, i64 noundef %sub, ptr noundef %src, i64 noundef %srcSize, i32 noundef 255, i32 noundef 11, ptr noundef %entropyWorkspace, i64 noundef %entropyWorkspaceSize, ptr noundef nonnull %nextHuf, ptr noundef nonnull %repeat, i32 noundef %or44) #5, !callees !4 %6 = load i32, ptr %repeat, align 4 %cmp56.not = icmp eq i32 %6, 0 %hType.0 = select i1 %cmp56.not, i32 2, i32 3 - %sub.i88 = add i32 %strategy, -1 - %cond.i89 = select i1 %cmp38, i32 %sub.i88, i32 6 - %sh_prom.i90 = zext nneg i32 %cond.i89 to i64 - %shr.i = lshr i64 %srcSize, %sh_prom.i90 - %add.i91.neg = add i64 %srcSize, -2 - %sub65 = sub i64 %add.i91.neg, %shr.i + %sub.i89 = add i32 %strategy, -1 + %cond.i90 = select i1 %cmp38, i32 %sub.i89, i32 6 + %sh_prom.i91 = zext nneg i32 %cond.i90 to i64 + %shr.i = lshr i64 %srcSize, %sh_prom.i91 + %add.i92.neg = add i64 %srcSize, -2 + %sub65 = sub i64 %add.i92.neg, %shr.i %cmp66.not = icmp ult i64 %call53, %sub65 %7 = add i64 %call53, -1 %8 = icmp ult i64 %7, -120 - %or.cond120 = select i1 %8, i1 %cmp66.not, i1 false - br i1 %or.cond120, label %if.end73, label %if.then71 + %or.cond122 = select i1 %8, i1 %cmp66.not, i1 false + br i1 %or.cond122, label %if.end73, label %if.then71 if.then71: ; preds = %do.end29 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2064) %nextHuf, ptr noundef nonnull align 8 dereferenceable(2064) %prevHuf, i64 2064, i1 false) - %cmp.i93 = icmp ugt i64 %srcSize, 31 - %add.i94 = select i1 %cmp.i93, i32 2, i32 1 - %cmp1.i95 = icmp ugt i64 %srcSize, 4095 - %conv2.i96 = zext i1 %cmp1.i95 to i32 - %add3.i97 = add nuw nsw i32 %add.i94, %conv2.i96 - %conv5.i98 = zext nneg i32 %add3.i97 to i64 - %add6.i99 = add i64 %conv5.i98, %srcSize - %cmp7.i100 = icmp ugt i64 %add6.i99, %dstCapacity - br i1 %cmp7.i100, label %return, label %do.end17.i101 - -do.end17.i101: ; preds = %if.then71 - switch i32 %add3.i97, label %sw.epilog.i105 [ - i32 1, label %sw.bb.i111 - i32 2, label %sw.bb20.i108 - i32 3, label %sw.bb24.i102 + %cmp.i94 = icmp ugt i64 %srcSize, 31 + %add.i95 = select i1 %cmp.i94, i32 2, i32 1 + %cmp1.i96 = icmp ugt i64 %srcSize, 4095 + %conv2.i97 = zext i1 %cmp1.i96 to i32 + %add3.i98 = add nuw nsw i32 %add.i95, %conv2.i97 + %conv5.i99 = zext nneg i32 %add3.i98 to i64 + %add6.i100 = add i64 %conv5.i99, %srcSize + %cmp7.i101 = icmp ugt i64 %add6.i100, %dstCapacity + br i1 %cmp7.i101, label %return, label %do.end17.i102 + +do.end17.i102: ; preds = %if.then71 + switch i32 %add3.i98, label %default.unreachable123 [ + i32 1, label %sw.bb.i112 + i32 2, label %sw.bb20.i109 + i32 3, label %sw.bb24.i103 ] -sw.bb.i111: ; preds = %do.end17.i101 - %srcSize.tr15.i112 = trunc i64 %srcSize to i8 - %conv19.i113 = shl i8 %srcSize.tr15.i112, 3 - store i8 %conv19.i113, ptr %dst, align 1 - br label %sw.epilog.i105 - -sw.bb20.i108: ; preds = %do.end17.i101 - %srcSize.tr14.i109 = trunc i64 %srcSize to i16 - %9 = shl i16 %srcSize.tr14.i109, 4 - %conv23.i110 = or disjoint i16 %9, 4 - store i16 %conv23.i110, ptr %dst, align 1 - br label %sw.epilog.i105 - -sw.bb24.i102: ; preds = %do.end17.i101 - %srcSize.tr.i103 = trunc i64 %srcSize to i32 - %10 = shl i32 %srcSize.tr.i103, 4 - %conv27.i104 = or disjoint i32 %10, 12 - store i32 %conv27.i104, ptr %dst, align 1 - br label %sw.epilog.i105 - -sw.epilog.i105: ; preds = %sw.bb24.i102, %sw.bb20.i108, %sw.bb.i111, %do.end17.i101 - %add.ptr.i106 = getelementptr inbounds i8, ptr %dst, i64 %conv5.i98 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i106, ptr align 1 %src, i64 %srcSize, i1 false) +sw.bb.i112: ; preds = %do.end17.i102 + %srcSize.tr15.i113 = trunc i64 %srcSize to i8 + %conv19.i114 = shl i8 %srcSize.tr15.i113, 3 + store i8 %conv19.i114, ptr %dst, align 1 + br label %sw.epilog.i106 + +sw.bb20.i109: ; preds = %do.end17.i102 + %srcSize.tr14.i110 = trunc i64 %srcSize to i16 + %9 = shl i16 %srcSize.tr14.i110, 4 + %conv23.i111 = or disjoint i16 %9, 4 + store i16 %conv23.i111, ptr %dst, align 1 + br label %sw.epilog.i106 + +sw.bb24.i103: ; preds = %do.end17.i102 + %srcSize.tr.i104 = trunc i64 %srcSize to i32 + %10 = shl i32 %srcSize.tr.i104, 4 + %conv27.i105 = or disjoint i32 %10, 12 + store i32 %conv27.i105, ptr %dst, align 1 + br label %sw.epilog.i106 + +sw.epilog.i106: ; preds = %sw.bb24.i103, %sw.bb20.i109, %sw.bb.i112 + %add.ptr.i107 = getelementptr inbounds i8, ptr %dst, i64 %conv5.i99 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i107, ptr align 1 %src, i64 %srcSize, i1 false) br label %return if.end73: ; preds = %do.end29 @@ -339,7 +348,7 @@ if.then88: ; preds = %if.end85 br label %if.end90 if.end90: ; preds = %if.then88, %if.end85 - switch i64 %add3, label %do.end122 [ + switch i64 %add3, label %default.unreachable123 [ i64 3, label %sw.bb i64 4, label %sw.bb102 i64 5, label %sw.bb111 @@ -355,10 +364,10 @@ sw.bb: ; preds = %if.end90 %conv99 = trunc i64 %call53 to i32 %shl100 = shl i32 %conv99, 14 %add101 = add i32 %add98, %shl100 - %conv.i116 = trunc i32 %add101 to i16 - store i16 %conv.i116, ptr %dst, align 1 - %shr.i117 = lshr i32 %add101, 16 - %conv1.i = trunc i32 %shr.i117 to i8 + %conv.i118 = trunc i32 %add101 to i16 + store i16 %conv.i118, ptr %dst, align 1 + %shr.i119 = lshr i32 %add101, 16 + %conv1.i = trunc i32 %shr.i119 to i8 %arrayidx.i = getelementptr inbounds i8, ptr %dst, i64 2 store i8 %conv1.i, ptr %arrayidx.i, align 1 br label %do.end122 @@ -389,29 +398,28 @@ sw.bb111: ; preds = %if.end90 store i8 %conv120, ptr %arrayidx, align 1 br label %do.end122 -do.end122: ; preds = %if.end90, %sw.bb111, %sw.bb102, %sw.bb +do.end122: ; preds = %sw.bb111, %sw.bb102, %sw.bb %add123 = add i64 %call53, %add3 br label %return -return: ; preds = %sw.epilog.i105, %if.then71, %sw.epilog.i77, %if.then12, %sw.epilog.i, %if.then, %do.body15, %do.end122, %if.then82 - %retval.0 = phi i64 [ %call83, %if.then82 ], [ %add123, %do.end122 ], [ -70, %do.body15 ], [ %add6.i, %sw.epilog.i ], [ -70, %if.then ], [ %add6.i71, %sw.epilog.i77 ], [ -70, %if.then12 ], [ %add6.i99, %sw.epilog.i105 ], [ -70, %if.then71 ] +return: ; preds = %sw.epilog.i106, %if.then71, %sw.epilog.i77, %if.then12, %sw.epilog.i, %if.then, %do.body15, %do.end122, %if.then82 + %retval.0 = phi i64 [ %call83, %if.then82 ], [ %add123, %do.end122 ], [ -70, %do.body15 ], [ %add6.i, %sw.epilog.i ], [ -70, %if.then ], [ %add6.i71, %sw.epilog.i77 ], [ -70, %if.then12 ], [ %add6.i100, %sw.epilog.i106 ], [ -70, %if.then71 ] ret i64 %retval.0 } -declare i64 @HUF_compress1X_repeat(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i32 noundef, i32 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4 +declare i64 @HUF_compress1X_repeat(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i32 noundef, i32 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3 -declare i64 @HUF_compress4X_repeat(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i32 noundef, i32 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4 +declare i64 @HUF_compress4X_repeat(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i32 noundef, i32 noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #5 +declare i32 @llvm.smin.i32(i32, i32) #4 -attributes #0 = { mustprogress nofree nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "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 #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "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 nounwind willreturn memory(argmem: readwrite) } -attributes #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "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 uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #4 = { "frame-pointer"="all" "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 nosync nounwind speculatable willreturn memory(none) } -attributes #6 = { nounwind } +attributes #2 = { nounwind uwtable "frame-pointer"="all" "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 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #5 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/zstd/optimized/zstd_compress_superblock.c.ll b/bench/zstd/optimized/zstd_compress_superblock.c.ll index 57100c29b7a..6dc808ae732 100644 --- a/bench/zstd/optimized/zstd_compress_superblock.c.ll +++ b/bench/zstd/optimized/zstd_compress_superblock.c.ll @@ -143,7 +143,7 @@ do.body3.outer.i: ; preds = %do.end46.i, %do.end br label %do.body3.i do.body3.i: ; preds = %do.cond.i, %do.body3.outer.i - %seqCount.0.i = phi i64 [ %seqCount.1214.i, %do.cond.i ], [ 0, %do.body3.outer.i ] + %seqCount.0.i = phi i64 [ %seqCount.1215.i, %do.cond.i ], [ 0, %do.body3.outer.i ] %litSize.0.i = phi i64 [ %21, %do.cond.i ], [ 0, %do.body3.outer.i ] br i1 %cmp4.i, label %if.end.thread.i, label %if.else.i @@ -176,13 +176,13 @@ if.end.i: ; preds = %if.then.i.i, %if.el %retval.sroa.0.0.insert.ext.i.i = zext nneg i32 %retval.sroa.0.1.i.i to i64 %add.i = add i64 %litSize.0.i, %retval.sroa.0.0.insert.ext.i.i %inc.i = add i64 %seqCount.0.i, 1 - %spec.select242.i = select i1 %cond.fr.i, i64 %sub.ptr.sub.i, i64 %add.i + %spec.select253.i = select i1 %cond.fr.i, i64 %sub.ptr.sub.i, i64 %add.i br label %if.end.thread.i if.end.thread.i: ; preds = %if.end.i, %do.body3.i - %seqCount.1214.i = phi i64 [ %seqCount.0.i, %do.body3.i ], [ %inc.i, %if.end.i ] - %lastSequence.0211.i = phi i1 [ true, %do.body3.i ], [ %cond.fr.i, %if.end.i ] - %21 = phi i64 [ %sub.ptr.sub.i, %do.body3.i ], [ %spec.select242.i, %if.end.i ] + %seqCount.1215.i = phi i64 [ %seqCount.0.i, %do.body3.i ], [ %inc.i, %if.end.i ] + %lastSequence.0212.i = phi i1 [ true, %do.body3.i ], [ %cond.fr.i, %if.end.i ] + %21 = phi i64 [ %sub.ptr.sub.i, %do.body3.i ], [ %spec.select253.i, %if.end.i ] call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %maxSymbolValue.i.i.i) store i32 255, ptr %maxSymbolValue.i.i.i, align 4 %22 = load i32, ptr %entropyMetadata, align 8 @@ -216,15 +216,15 @@ if.end19.i.i.i: ; preds = %if.end.thread.i ZSTD_estimateSubBlockSize_literal.exit.i.i: ; preds = %if.end19.i.i.i, %if.end.i.i.i, %if.then9.i.i.i, %if.then3.i.i.i, %if.end.thread.i %retval.0.i.i.i = phi i64 [ 1, %if.then3.i.i.i ], [ %add16.i.i.i, %if.end.i.i.i ], [ 0, %if.end19.i.i.i ], [ %21, %if.end.thread.i ], [ %21, %if.then9.i.i.i ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %maxSymbolValue.i.i.i) - %cmp.i.i.i = icmp eq i64 %seqCount.1214.i, 0 + %cmp.i.i.i = icmp eq i64 %seqCount.1215.i, 0 br i1 %cmp.i.i.i, label %ZSTD_estimateSubBlockSize.exit.thread.i, label %if.end.i7.i.i if.end.i7.i.i: ; preds = %ZSTD_estimateSubBlockSize_literal.exit.i.i %25 = load i32, ptr %ofType.i.i.i, align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %max.i.i.i.i) - %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %ofCodePtr.0.ph.i, i64 %seqCount.1214.i + %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %ofCodePtr.0.ph.i, i64 %seqCount.1215.i store i32 31, ptr %max.i.i.i.i, align 4 - %call.i.i.i.i = call i64 @HIST_countFast_wksp(ptr noundef %6, ptr noundef nonnull %max.i.i.i.i, ptr noundef %ofCodePtr.0.ph.i, i64 noundef %seqCount.1214.i, ptr noundef %6, i64 noundef 8920) #4 + %call.i.i.i.i = call i64 @HIST_countFast_wksp(ptr noundef %6, ptr noundef nonnull %max.i.i.i.i, ptr noundef %ofCodePtr.0.ph.i, i64 noundef %seqCount.1215.i, ptr noundef %6, i64 noundef 8920) #4 switch i32 %25, label %if.else5.i.i.i.i [ i32 0, label %if.then.i.i.i.i i32 1, label %while.cond.preheader.i.i.i.i @@ -256,7 +256,7 @@ if.end11.i.i.i.i: ; preds = %if.then8.i.i.i.i, % while.cond.preheader.i.i.i.i: ; preds = %if.end11.i.i.i.i, %if.else5.i.i.i.i, %if.end.i7.i.i %cSymbolTypeSizeEstimateInBits.029.i.i.i.i = phi i64 [ %cSymbolTypeSizeEstimateInBits.0.i.i.i.i, %if.end11.i.i.i.i ], [ 0, %if.else5.i.i.i.i ], [ 0, %if.end.i7.i.i ] - %cmp1523.i.i.i.i = icmp sgt i64 %seqCount.1214.i, 0 + %cmp1523.i.i.i.i = icmp sgt i64 %seqCount.1215.i, 0 br i1 %cmp1523.i.i.i.i, label %while.body.us.i.i.i.i, label %while.end.i.i.i.i while.body.us.i.i.i.i: ; preds = %while.cond.preheader.i.i.i.i, %while.body.us.i.i.i.i @@ -270,7 +270,7 @@ while.body.us.i.i.i.i: ; preds = %while.cond.preheade br i1 %cmp15.us.i.i.i.i, label %while.body.us.i.i.i.i, label %while.end.i.i.i.i, !llvm.loop !4 if.then13.i.i.i.i: ; preds = %if.end11.i.i.i.i, %if.then.i.i.i.i - %mul.i.i.i.i = mul i64 %seqCount.1214.i, 10 + %mul.i.i.i.i = mul i64 %seqCount.1215.i, 10 br label %ZSTD_estimateSubBlockSize_symbolType.exit.i.i.i while.end.i.i.i.i: ; preds = %while.body.us.i.i.i.i, %while.cond.preheader.i.i.i.i @@ -283,9 +283,9 @@ ZSTD_estimateSubBlockSize_symbolType.exit.i.i.i: ; preds = %while.end.i.i.i.i, call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %max.i.i.i.i) %29 = load i32, ptr %fseMetadata.i.i, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %max.i17.i.i.i) - %add.ptr.i18.i.i.i = getelementptr inbounds i8, ptr %llCodePtr.0.ph.i, i64 %seqCount.1214.i + %add.ptr.i18.i.i.i = getelementptr inbounds i8, ptr %llCodePtr.0.ph.i, i64 %seqCount.1215.i store i32 35, ptr %max.i17.i.i.i, align 4 - %call.i19.i.i.i = call i64 @HIST_countFast_wksp(ptr noundef %6, ptr noundef nonnull %max.i17.i.i.i, ptr noundef %llCodePtr.0.ph.i, i64 noundef %seqCount.1214.i, ptr noundef %6, i64 noundef 8920) #4 + %call.i19.i.i.i = call i64 @HIST_countFast_wksp(ptr noundef %6, ptr noundef nonnull %max.i17.i.i.i, ptr noundef %llCodePtr.0.ph.i, i64 noundef %seqCount.1215.i, ptr noundef %6, i64 noundef 8920) #4 switch i32 %29, label %if.else5.i37.i.i.i [ i32 0, label %if.then.i28.i.i.i i32 1, label %while.cond.preheader.i20.i.i.i @@ -317,11 +317,11 @@ if.end11.i32.i.i.i: ; preds = %if.then8.i39.i.i.i, while.cond.preheader.i20.i.i.i: ; preds = %if.end11.i32.i.i.i, %if.else5.i37.i.i.i, %ZSTD_estimateSubBlockSize_symbolType.exit.i.i.i %cSymbolTypeSizeEstimateInBits.029.i21.i.i.i = phi i64 [ %cSymbolTypeSizeEstimateInBits.0.i33.i.i.i, %if.end11.i32.i.i.i ], [ 0, %if.else5.i37.i.i.i ], [ 0, %ZSTD_estimateSubBlockSize_symbolType.exit.i.i.i ] - %cmp1523.i22.i.i.i = icmp sgt i64 %seqCount.1214.i, 0 + %cmp1523.i22.i.i.i = icmp sgt i64 %seqCount.1215.i, 0 br i1 %cmp1523.i22.i.i.i, label %while.body.i.i.i.i, label %while.end.i23.i.i.i if.then13.i35.i.i.i: ; preds = %if.end11.i32.i.i.i, %if.then.i28.i.i.i - %mul.i36.i.i.i = mul i64 %seqCount.1214.i, 10 + %mul.i36.i.i.i = mul i64 %seqCount.1215.i, 10 br label %ZSTD_estimateSubBlockSize_symbolType.exit41.i.i.i while.body.i.i.i.i: ; preds = %while.cond.preheader.i20.i.i.i, %while.body.i.i.i.i @@ -347,9 +347,9 @@ ZSTD_estimateSubBlockSize_symbolType.exit41.i.i.i: ; preds = %while.end.i23.i.i. call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %max.i17.i.i.i) %34 = load i32, ptr %mlType.i.i.i, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %max.i42.i.i.i) - %add.ptr.i43.i.i.i = getelementptr inbounds i8, ptr %mlCodePtr.0.ph.i, i64 %seqCount.1214.i + %add.ptr.i43.i.i.i = getelementptr inbounds i8, ptr %mlCodePtr.0.ph.i, i64 %seqCount.1215.i store i32 52, ptr %max.i42.i.i.i, align 4 - %call.i44.i.i.i = call i64 @HIST_countFast_wksp(ptr noundef %6, ptr noundef nonnull %max.i42.i.i.i, ptr noundef %mlCodePtr.0.ph.i, i64 noundef %seqCount.1214.i, ptr noundef %6, i64 noundef 8920) #4 + %call.i44.i.i.i = call i64 @HIST_countFast_wksp(ptr noundef %6, ptr noundef nonnull %max.i42.i.i.i, ptr noundef %mlCodePtr.0.ph.i, i64 noundef %seqCount.1215.i, ptr noundef %6, i64 noundef 8920) #4 switch i32 %34, label %if.else5.i72.i.i.i [ i32 0, label %if.then.i63.i.i.i i32 1, label %while.cond.preheader.i45.i.i.i @@ -381,11 +381,11 @@ if.end11.i67.i.i.i: ; preds = %if.then8.i74.i.i.i, while.cond.preheader.i45.i.i.i: ; preds = %if.end11.i67.i.i.i, %if.else5.i72.i.i.i, %ZSTD_estimateSubBlockSize_symbolType.exit41.i.i.i %cSymbolTypeSizeEstimateInBits.029.i46.i.i.i = phi i64 [ %cSymbolTypeSizeEstimateInBits.0.i68.i.i.i, %if.end11.i67.i.i.i ], [ 0, %if.else5.i72.i.i.i ], [ 0, %ZSTD_estimateSubBlockSize_symbolType.exit41.i.i.i ] - %cmp1523.i47.i.i.i = icmp sgt i64 %seqCount.1214.i, 0 + %cmp1523.i47.i.i.i = icmp sgt i64 %seqCount.1215.i, 0 br i1 %cmp1523.i47.i.i.i, label %while.body.i53.i.i.i, label %while.end.i48.i.i.i if.then13.i70.i.i.i: ; preds = %if.end11.i67.i.i.i, %if.then.i63.i.i.i - %mul.i71.i.i.i = mul i64 %seqCount.1214.i, 10 + %mul.i71.i.i.i = mul i64 %seqCount.1215.i, 10 br label %ZSTD_estimateSubBlockSize_symbolType.exit76.i.i.i while.body.i53.i.i.i: ; preds = %while.cond.preheader.i45.i.i.i, %while.body.i53.i.i.i @@ -417,19 +417,19 @@ ZSTD_estimateSubBlockSize_symbolType.exit76.i.i.i: ; preds = %while.end.i48.i.i. %add10.i.i.i = add i64 %cSeqSizeEstimate.0.i.i.i, %retval.0.i51.i.i.i %add3.i.i = add i64 %add10.i.i.i, %add8.i.i.i %cmp14.i = icmp ugt i64 %add3.i.i, %14 - %or.cond.i = or i1 %lastSequence.0211.i, %cmp14.i + %or.cond.i = or i1 %lastSequence.0212.i, %cmp14.i br i1 %or.cond.i, label %if.then17.i, label %do.cond.i ZSTD_estimateSubBlockSize.exit.thread.i: ; preds = %ZSTD_estimateSubBlockSize_literal.exit.i.i %add3.i159.i = add i64 %retval.0.i.i.i, 6 %cmp14160.i = icmp ugt i64 %add3.i159.i, %14 - %or.cond161.i = or i1 %lastSequence.0211.i, %cmp14160.i + %or.cond161.i = or i1 %lastSequence.0212.i, %cmp14160.i br i1 %or.cond161.i, label %ZSTD_seqDecompressedSize.exit.i, label %do.cond.i if.then17.i: ; preds = %ZSTD_estimateSubBlockSize_symbolType.exit76.i.i.i - %add.ptr.i.i = getelementptr inbounds %struct.seqDef_s, ptr %sp.0.ph.i, i64 %seqCount.1214.i + %add.ptr.i.i = getelementptr inbounds %struct.seqDef_s, ptr %sp.0.ph.i, i64 %seqCount.1215.i %sub.ptr.lhs.cast.i84.i = ptrtoint ptr %add.ptr.i.i to i64 - %cmp7.i.i = icmp sgt i64 %seqCount.1214.i, 0 + %cmp7.i.i = icmp sgt i64 %seqCount.1215.i, 0 br i1 %cmp7.i.i, label %while.body.lr.ph.i.i, label %ZSTD_seqDecompressedSize.exit.i while.body.lr.ph.i.i: ; preds = %if.then17.i @@ -473,7 +473,7 @@ ZSTD_seqDecompressedSize.exit.i: ; preds = %ZSTD_getSequenceLen %add.ptr.i165.i = phi ptr [ %add.ptr.i.i, %if.then17.i ], [ %sp.0.ph.i, %ZSTD_estimateSubBlockSize.exit.thread.i ], [ %add.ptr.i.i, %ZSTD_getSequenceLength.exit.i.i ] %matchLengthSum.0.lcssa.i.i = phi i64 [ 0, %if.then17.i ], [ 0, %ZSTD_estimateSubBlockSize.exit.thread.i ], [ %add2.i88.i, %ZSTD_getSequenceLength.exit.i.i ] %add3.i85.i = add i64 %matchLengthSum.0.lcssa.i.i, %21 - %44 = and i1 %tobool23.i, %lastSequence.0211.i + %44 = and i1 %tobool23.i, %lastSequence.0212.i %cmp.not.i.i.i = icmp ugt i64 %sub.i.i.i, %21 %add.i.i95.i = select i1 %cmp.not.i.i.i, i64 3, i64 4 %cmp3.i.i.i = icmp ule i64 %sub2.i.i.i, %21 @@ -557,15 +557,15 @@ do.end83.i.i.i: ; preds = %if.end71.i.i.i br label %ZSTD_compressSubBlock_literal.exit.i.i do.end87.i.i.i: ; preds = %if.end71.i.i.i - switch i64 %add5.i.i.i, label %sw.epilog.i.i.i [ + %conv90.i.i.i = trunc i64 %21 to i32 + %shl91.i.i.i = shl i32 %conv90.i.i.i, 4 + switch i64 %add5.i.i.i, label %default.unreachable [ i64 3, label %sw.bb.i.i.i i64 4, label %sw.bb96.i.i.i i64 5, label %sw.bb105.i.i.i ] sw.bb.i.i.i: ; preds = %do.end87.i.i.i - %conv90.i.i.i = trunc i64 %21 to i32 - %shl91.i.i.i = shl i32 %conv90.i.i.i, 4 %add92.i.i.i = add i32 %spec.select, %shl91.i.i.i %conv93.i.i.i = trunc i64 %add53.i.i.i to i32 %shl94.i.i.i = shl i32 %conv93.i.i.i, 14 @@ -578,22 +578,18 @@ sw.bb.i.i.i: ; preds = %do.end87.i.i.i br label %sw.epilog.i.i.i sw.bb96.i.i.i: ; preds = %do.end87.i.i.i - %conv99.i.i.i = trunc i64 %21 to i32 - %shl100.i.i.i = shl i32 %conv99.i.i.i, 4 %conv102.i.i.i = trunc i64 %add53.i.i.i to i32 %shl103.i.i.i = shl i32 %conv102.i.i.i, 18 - %add98.i.i.i = or disjoint i32 %shl100.i.i.i, 8 + %add98.i.i.i = or disjoint i32 %shl91.i.i.i, 8 %add101.i.i.i = add i32 %add98.i.i.i, %spec.select %add104.i.i.i = add i32 %add101.i.i.i, %shl103.i.i.i store i32 %add104.i.i.i, ptr %add.ptr1.i.i, align 1 br label %sw.epilog.i.i.i sw.bb105.i.i.i: ; preds = %do.end87.i.i.i - %conv108.i.i.i = trunc i64 %21 to i32 - %shl109.i.i.i = shl i32 %conv108.i.i.i, 4 %conv111.i.i.i = trunc i64 %add53.i.i.i to i32 %shl112.i.i.i = shl i32 %conv111.i.i.i, 22 - %add107.i.i.i = or disjoint i32 %shl109.i.i.i, 12 + %add107.i.i.i = or disjoint i32 %shl91.i.i.i, 12 %add110.i.i.i = add i32 %add107.i.i.i, %spec.select %add113.i.i.i = add i32 %add110.i.i.i, %shl112.i.i.i store i32 %add113.i.i.i, ptr %add.ptr1.i.i, align 1 @@ -602,7 +598,10 @@ sw.bb105.i.i.i: ; preds = %do.end87.i.i.i store i8 %conv114.i.i.i, ptr %arrayidx.i.i.i, align 1 br label %sw.epilog.i.i.i -sw.epilog.i.i.i: ; preds = %sw.bb105.i.i.i, %sw.bb96.i.i.i, %sw.bb.i.i.i, %do.end87.i.i.i +default.unreachable: ; preds = %do.end87.i.i.i + unreachable + +sw.epilog.i.i.i: ; preds = %sw.bb105.i.i.i, %sw.bb96.i.i.i, %sw.bb.i.i.i %sub.ptr.lhs.cast117.i.i.i = ptrtoint ptr %add.ptr52.i.i.i to i64 %sub.ptr.sub119.i.i.i = sub i64 %sub.ptr.lhs.cast117.i.i.i, %sub.ptr.rhs.cast118.i.i.i br label %ZSTD_compressSubBlock_literal.exit.i.i @@ -628,19 +627,19 @@ if.end14.i.i: ; preds = %do.end12.i.i br i1 %cmp2.i.i.i, label %ZSTD_compressSubBlock_multi.exit, label %do.end12.i.i.i do.end12.i.i.i: ; preds = %if.end14.i.i - %cmp13.i26.i.i = icmp ult i64 %seqCount.1214.i, 128 + %cmp13.i26.i.i = icmp ult i64 %seqCount.1215.i, 128 br i1 %cmp13.i26.i.i, label %if.end30.i.i.i, label %if.else.i.i.i if.else.i.i.i: ; preds = %do.end12.i.i.i - %cmp17.i.i.i = icmp ult i64 %seqCount.1214.i, 32512 + %cmp17.i.i.i = icmp ult i64 %seqCount.1215.i, 32512 br i1 %cmp17.i.i.i, label %if.then19.i.i.i, label %if.else24.i.i.i if.then19.i.i.i: ; preds = %if.else.i.i.i - %shr.i29.i.i = lshr i64 %seqCount.1214.i, 8 + %shr.i29.i.i = lshr i64 %seqCount.1215.i, 8 %48 = trunc i64 %shr.i29.i.i to i8 %conv20.i.i.i = or disjoint i8 %48, -128 store i8 %conv20.i.i.i, ptr %add.ptr15.i.i, align 1 - %conv21.i.i.i = trunc i64 %seqCount.1214.i to i8 + %conv21.i.i.i = trunc i64 %seqCount.1215.i to i8 %arrayidx22.i.i.i = getelementptr inbounds i8, ptr %add.ptr15.i.i, i64 1 store i8 %conv21.i.i.i, ptr %arrayidx22.i.i.i, align 1 %add.ptr23.i.i.i = getelementptr inbounds i8, ptr %add.ptr15.i.i, i64 2 @@ -649,14 +648,14 @@ if.then19.i.i.i: ; preds = %if.else.i.i.i if.else24.i.i.i: ; preds = %if.else.i.i.i store i8 -1, ptr %add.ptr15.i.i, align 1 %add.ptr26.i.i.i = getelementptr inbounds i8, ptr %add.ptr15.i.i, i64 1 - %49 = trunc i64 %seqCount.1214.i to i16 + %49 = trunc i64 %seqCount.1215.i to i16 %conv27.i.i.i = add i16 %49, -32512 store i16 %conv27.i.i.i, ptr %add.ptr26.i.i.i, align 1 %add.ptr28.i.i.i = getelementptr inbounds i8, ptr %add.ptr15.i.i, i64 3 br label %if.end37.i.i.i if.end30.i.i.i: ; preds = %do.end12.i.i.i - %conv16.i.i.i = trunc i64 %seqCount.1214.i to i8 + %conv16.i.i.i = trunc i64 %seqCount.1215.i to i8 %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %add.ptr15.i.i, i64 1 store i8 %conv16.i.i.i, ptr %add.ptr15.i.i, align 1 br i1 %cmp.i.i.i, label %ZSTD_compressSubBlock.exit.i, label %if.end37.i.i.i @@ -670,7 +669,7 @@ if.end53.i.i.i: ; preds = %if.end37.i.i.i store i8 -4, ptr %op.03.i.i.i, align 1 %sub.ptr.rhs.cast55.i.i.i = ptrtoint ptr %incdec.ptr38.i.i.i to i64 %sub.ptr.sub56.i.i.i = sub i64 %sub.ptr.lhs.cast.i93.i, %sub.ptr.rhs.cast55.i.i.i - %call60.i.i.i = call i64 @ZSTD_encodeSequences(ptr noundef nonnull %incdec.ptr38.i.i.i, i64 noundef %sub.ptr.sub56.i.i.i, ptr noundef nonnull %matchlengthCTable.i.i.i, ptr noundef %mlCodePtr.0.ph.i, ptr noundef nonnull %fse.i.i, ptr noundef %ofCodePtr.0.ph.i, ptr noundef nonnull %litlengthCTable.i.i.i, ptr noundef %llCodePtr.0.ph.i, ptr noundef %sp.0.ph.i, i64 noundef %seqCount.1214.i, i32 noundef %conv.i23.i.i, i32 noundef %5) #4 + %call60.i.i.i = call i64 @ZSTD_encodeSequences(ptr noundef nonnull %incdec.ptr38.i.i.i, i64 noundef %sub.ptr.sub56.i.i.i, ptr noundef nonnull %matchlengthCTable.i.i.i, ptr noundef %mlCodePtr.0.ph.i, ptr noundef nonnull %fse.i.i, ptr noundef %ofCodePtr.0.ph.i, ptr noundef nonnull %litlengthCTable.i.i.i, ptr noundef %llCodePtr.0.ph.i, ptr noundef %sp.0.ph.i, i64 noundef %seqCount.1215.i, i32 noundef %conv.i23.i.i, i32 noundef %5) #4 %cmp.i.i.i107.i = icmp ult i64 %call60.i.i.i, -119 br i1 %cmp.i.i.i107.i, label %do.end74.i.i.i, label %ZSTD_compressSubBlock_multi.exit @@ -691,7 +690,7 @@ if.end53.thread.i.i.i: ; preds = %if.end37.i.i.i %add.ptr51.i.i.i = getelementptr inbounds i8, ptr %incdec.ptr38.i.i.i, i64 %54 %sub.ptr.rhs.cast555.i.i.i = ptrtoint ptr %add.ptr51.i.i.i to i64 %sub.ptr.sub566.i.i.i = sub i64 %sub.ptr.lhs.cast.i93.i, %sub.ptr.rhs.cast555.i.i.i - %call609.i.i.i = call i64 @ZSTD_encodeSequences(ptr noundef nonnull %add.ptr51.i.i.i, i64 noundef %sub.ptr.sub566.i.i.i, ptr noundef nonnull %matchlengthCTable.i.i.i, ptr noundef %mlCodePtr.0.ph.i, ptr noundef nonnull %fse.i.i, ptr noundef %ofCodePtr.0.ph.i, ptr noundef nonnull %litlengthCTable.i.i.i, ptr noundef %llCodePtr.0.ph.i, ptr noundef %sp.0.ph.i, i64 noundef %seqCount.1214.i, i32 noundef %conv.i23.i.i, i32 noundef %5) #4 + %call609.i.i.i = call i64 @ZSTD_encodeSequences(ptr noundef nonnull %add.ptr51.i.i.i, i64 noundef %sub.ptr.sub566.i.i.i, ptr noundef nonnull %matchlengthCTable.i.i.i, ptr noundef %mlCodePtr.0.ph.i, ptr noundef nonnull %fse.i.i, ptr noundef %ofCodePtr.0.ph.i, ptr noundef nonnull %litlengthCTable.i.i.i, ptr noundef %llCodePtr.0.ph.i, ptr noundef %sp.0.ph.i, i64 noundef %seqCount.1215.i, i32 noundef %conv.i23.i.i, i32 noundef %5) #4 %cmp.i10.i.i.i = icmp ult i64 %call609.i.i.i, -119 br i1 %cmp.i10.i.i.i, label %land.lhs.true.i.i.i, label %ZSTD_compressSubBlock_multi.exit @@ -752,23 +751,23 @@ do.end39.i: ; preds = %ZSTD_compressSubBlo do.end46.i: ; preds = %do.end39.i %add.ptr47.i = getelementptr inbounds i8, ptr %ip.0.ph.i, i64 %add3.i85.i %add.ptr49.i = getelementptr inbounds i8, ptr %lp.0.ph.i, i64 %21 - %add.ptr51.i = getelementptr inbounds i8, ptr %llCodePtr.0.ph.i, i64 %seqCount.1214.i - %add.ptr52.i = getelementptr inbounds i8, ptr %mlCodePtr.0.ph.i, i64 %seqCount.1214.i - %add.ptr53.i = getelementptr inbounds i8, ptr %ofCodePtr.0.ph.i, i64 %seqCount.1214.i + %add.ptr51.i = getelementptr inbounds i8, ptr %llCodePtr.0.ph.i, i64 %seqCount.1215.i + %add.ptr52.i = getelementptr inbounds i8, ptr %mlCodePtr.0.ph.i, i64 %seqCount.1215.i + %add.ptr53.i = getelementptr inbounds i8, ptr %ofCodePtr.0.ph.i, i64 %seqCount.1215.i %spec.select.i = select i1 %tobool54.not.i, i32 %writeLitEntropy.0.ph.i, i32 0 %spec.select83.i = select i1 %tobool57.not.i, i32 %writeSeqEntropy.0.ph.i, i32 0 - br i1 %lastSequence.0211.i, label %do.end63.i, label %do.body3.outer.i, !llvm.loop !7 + br i1 %lastSequence.0212.i, label %do.end63.i, label %do.body3.outer.i, !llvm.loop !7 do.cond.i: ; preds = %do.end39.i, %do.end34.i.i, %do.end88.i.i.i, %land.lhs.true.i.i.i, %do.end12.i.i, %cond.end50.i.i.i, %ZSTD_estimateSubBlockSize.exit.thread.i, %ZSTD_estimateSubBlockSize_symbolType.exit76.i.i.i - br i1 %lastSequence.0211.i, label %do.end63.i, label %do.body3.i, !llvm.loop !7 + br i1 %lastSequence.0212.i, label %do.end63.i, label %do.body3.i, !llvm.loop !7 do.end63.i: ; preds = %do.end46.i, %do.cond.i - %sp.1221.i = phi ptr [ %sp.0.ph.i, %do.cond.i ], [ %add.ptr.i165.i, %do.end46.i ] - %ip.1220.i = phi ptr [ %ip.0.ph.i, %do.cond.i ], [ %add.ptr47.i, %do.end46.i ] - %op.1219.i = phi ptr [ %op.0.ph.i, %do.cond.i ], [ %add.ptr38.i.i, %do.end46.i ] - %writeSeqEntropy.1218.i = phi i32 [ %writeSeqEntropy.0.ph.i, %do.cond.i ], [ %spec.select83.i, %do.end46.i ] - %writeLitEntropy.2217.i = phi i32 [ %writeLitEntropy.0.ph.i, %do.cond.i ], [ %spec.select.i, %do.end46.i ] - %tobool64.not.i = icmp eq i32 %writeLitEntropy.2217.i, 0 + %sp.1222.i = phi ptr [ %sp.0.ph.i, %do.cond.i ], [ %add.ptr.i165.i, %do.end46.i ] + %ip.1221.i = phi ptr [ %ip.0.ph.i, %do.cond.i ], [ %add.ptr47.i, %do.end46.i ] + %op.1220.i = phi ptr [ %op.0.ph.i, %do.cond.i ], [ %add.ptr38.i.i, %do.end46.i ] + %writeSeqEntropy.1219.i = phi i32 [ %writeSeqEntropy.0.ph.i, %do.cond.i ], [ %spec.select83.i, %do.end46.i ] + %writeLitEntropy.2218.i = phi i32 [ %writeLitEntropy.0.ph.i, %do.cond.i ], [ %spec.select.i, %do.end46.i ] + %tobool64.not.i = icmp eq i32 %writeLitEntropy.2218.i, 0 br i1 %tobool64.not.i, label %if.end72.i, label %do.end68.i do.end68.i: ; preds = %do.end63.i @@ -776,7 +775,7 @@ do.end68.i: ; preds = %do.end63.i br label %if.end72.i if.end72.i: ; preds = %do.end68.i, %do.end63.i - %tobool73.not.i = icmp eq i32 %writeSeqEntropy.1218.i, 0 + %tobool73.not.i = icmp eq i32 %writeSeqEntropy.1219.i, 0 br i1 %tobool73.not.i, label %if.end81.i, label %land.lhs.true74.i land.lhs.true74.i: ; preds = %if.end72.i @@ -798,14 +797,14 @@ ZSTD_needSequenceEntropyTables.exit.i: ; preds = %if.end.i.i br i1 %switch11.i.i, label %if.end81.i, label %ZSTD_compressSubBlock_multi.exit if.end81.i: ; preds = %ZSTD_needSequenceEntropyTables.exit.i, %if.end72.i - %cmp82.i = icmp ult ptr %ip.1220.i, %add.ptr.i + %cmp82.i = icmp ult ptr %ip.1221.i, %add.ptr.i br i1 %cmp82.i, label %if.then84.i, label %do.end136.i if.then84.i: ; preds = %if.end81.i - %sub.ptr.rhs.cast87.i = ptrtoint ptr %op.1219.i to i64 + %sub.ptr.rhs.cast87.i = ptrtoint ptr %op.1220.i to i64 %sub.ptr.sub88.i = sub i64 %sub.ptr.lhs.cast20.i, %sub.ptr.rhs.cast87.i %sub.ptr.lhs.cast89.i = ptrtoint ptr %add.ptr.i to i64 - %sub.ptr.rhs.cast90.i = ptrtoint ptr %ip.1220.i to i64 + %sub.ptr.rhs.cast90.i = ptrtoint ptr %ip.1221.i to i64 %sub.ptr.sub91.i = sub i64 %sub.ptr.lhs.cast89.i, %sub.ptr.rhs.cast90.i %add3.i117.i = add i64 %sub.ptr.sub91.i, 3 %cmp.i118.i = icmp ugt i64 %add3.i117.i, %sub.ptr.sub88.i @@ -816,26 +815,26 @@ ZSTD_noCompressBlock.exit.i: ; preds = %if.then84.i %conv.i119.i = shl i32 %srcSize.tr.i.i, 3 %add1.i.i = add i32 %conv.i119.i, %lastBlock %conv.i.i.i = trunc i32 %add1.i.i to i16 - store i16 %conv.i.i.i, ptr %op.1219.i, align 1 + store i16 %conv.i.i.i, ptr %op.1220.i, align 1 %shr.i.i120.i = lshr i32 %add1.i.i, 16 %conv1.i.i121.i = trunc i32 %shr.i.i120.i to i8 - %arrayidx.i.i122.i = getelementptr inbounds i8, ptr %op.1219.i, i64 2 + %arrayidx.i.i122.i = getelementptr inbounds i8, ptr %op.1220.i, i64 2 store i8 %conv1.i.i121.i, ptr %arrayidx.i.i122.i, align 1 - %add.ptr.i123.i = getelementptr inbounds i8, ptr %op.1219.i, i64 3 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i123.i, ptr align 1 %ip.1220.i, i64 %sub.ptr.sub91.i, i1 false) + %add.ptr.i123.i = getelementptr inbounds i8, ptr %op.1220.i, i64 3 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr.i123.i, ptr align 1 %ip.1221.i, i64 %sub.ptr.sub91.i, i1 false) %cmp.i125.i = icmp ult i64 %add3.i117.i, -119 br i1 %cmp.i125.i, label %do.end115.i, label %ZSTD_compressSubBlock_multi.exit do.end115.i: ; preds = %ZSTD_noCompressBlock.exit.i - %add.ptr116.i = getelementptr inbounds i8, ptr %op.1219.i, i64 %add3.i117.i - %cmp117.i = icmp ult ptr %sp.1221.i, %8 + %add.ptr116.i = getelementptr inbounds i8, ptr %op.1220.i, i64 %add3.i117.i + %cmp117.i = icmp ult ptr %sp.1222.i, %8 br i1 %cmp117.i, label %if.then119.i, label %do.end136.i if.then119.i: ; preds = %do.end115.i %rep120.i = getelementptr inbounds %struct.ZSTD_compressedBlockState_t, ptr %3, i64 0, i32 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %rep.i, ptr noundef nonnull align 8 dereferenceable(12) %rep120.i, i64 12, i1 false) - %cmp121197.i = icmp ult ptr %7, %sp.1221.i - br i1 %cmp121197.i, label %for.body.lr.ph.i, label %for.end.i + %cmp121198.i = icmp ult ptr %7, %sp.1222.i + br i1 %cmp121198.i, label %for.body.lr.ph.i, label %for.end.i for.body.lr.ph.i: ; preds = %if.then119.i %rep.promoted.i = load i32, ptr %rep.i, align 4 @@ -849,15 +848,15 @@ for.body.lr.ph.i: ; preds = %if.then119.i br label %for.body.i for.body.i: ; preds = %ZSTD_updateRep.exit.i, %for.body.lr.ph.i - %arrayidx14.i.val203.i = phi i32 [ %arrayidx14.i.promoted.i, %for.body.lr.ph.i ], [ %arrayidx14.i.val202.i, %ZSTD_updateRep.exit.i ] - %arrayidx16.i.val200.i = phi i32 [ %arrayidx16.i.promoted.i, %for.body.lr.ph.i ], [ %arrayidx16.i.val199.i, %ZSTD_updateRep.exit.i ] - %seq.0198.i = phi ptr [ %7, %for.body.lr.ph.i ], [ %incdec.ptr.i, %ZSTD_updateRep.exit.i ] + %arrayidx14.i.val204.i = phi i32 [ %arrayidx14.i.promoted.i, %for.body.lr.ph.i ], [ %arrayidx14.i.val203.i, %ZSTD_updateRep.exit.i ] + %arrayidx16.i.val201.i = phi i32 [ %arrayidx16.i.promoted.i, %for.body.lr.ph.i ], [ %arrayidx16.i.val200.i, %ZSTD_updateRep.exit.i ] + %seq.0199.i = phi ptr [ %7, %for.body.lr.ph.i ], [ %incdec.ptr.i, %ZSTD_updateRep.exit.i ] %63 = phi i32 [ %rep.promoted.i, %for.body.lr.ph.i ], [ %68, %ZSTD_updateRep.exit.i ] - %64 = load i32, ptr %seq.0198.i, align 4 - %litLength.i127.i = getelementptr inbounds %struct.seqDef_s, ptr %seq.0198.i, i64 0, i32 1 + %64 = load i32, ptr %seq.0199.i, align 4 + %litLength.i127.i = getelementptr inbounds %struct.seqDef_s, ptr %seq.0199.i, i64 0, i32 1 %65 = load i16, ptr %litLength.i127.i, align 4 %conv.i128.i = zext i16 %65 to i32 - %sub.ptr.lhs.cast.i133.i = ptrtoint ptr %seq.0198.i to i64 + %sub.ptr.lhs.cast.i133.i = ptrtoint ptr %seq.0199.i to i64 %sub.ptr.sub.i135.i = sub i64 %sub.ptr.lhs.cast.i133.i, %sub.ptr.rhs.cast.i134.i %sub.ptr.div.i136.i = lshr exact i64 %sub.ptr.sub.i135.i, 3 %conv3.i137.i = trunc i64 %sub.ptr.div.i136.i to i32 @@ -877,7 +876,7 @@ ZSTD_getSequenceLength.exit153.i: ; preds = %if.then.i145.i, %fo br i1 %cmp.i154.i, label %if.then.i156.i, label %if.else.i.i if.then.i156.i: ; preds = %ZSTD_getSequenceLength.exit153.i - store i32 %arrayidx14.i.val203.i, ptr %arrayidx16.i.i, align 4 + store i32 %arrayidx14.i.val204.i, ptr %arrayidx16.i.i, align 4 store i32 %63, ptr %arrayidx14.i.i, align 4 %sub.i.i = add i32 %64, -3 br label %if.end24.sink.split.i.i @@ -905,23 +904,23 @@ cond.false.i.i: ; preds = %if.else.i.i cond.end.i.i: ; preds = %cond.false.i.i, %cond.true.i.i %cond.i.i = phi i32 [ %sub10.i.i, %cond.true.i.i ], [ %67, %cond.false.i.i ] %cmp12.not.i.i = icmp eq i32 %add.i155.i, 1 - %cond18.i.i = select i1 %cmp12.not.i.i, i32 %arrayidx16.i.val200.i, i32 %arrayidx14.i.val203.i + %cond18.i.i = select i1 %cmp12.not.i.i, i32 %arrayidx16.i.val201.i, i32 %arrayidx14.i.val204.i store i32 %cond18.i.i, ptr %arrayidx16.i.i, align 4 store i32 %63, ptr %arrayidx14.i.i, align 4 br label %if.end24.sink.split.i.i if.end24.sink.split.i.i: ; preds = %cond.end.i.i, %if.then.i156.i - %arrayidx16.i.val201.i = phi i32 [ %cond18.i.i, %cond.end.i.i ], [ %arrayidx14.i.val203.i, %if.then.i156.i ] + %arrayidx16.i.val202.i = phi i32 [ %cond18.i.i, %cond.end.i.i ], [ %arrayidx14.i.val204.i, %if.then.i156.i ] %cond.sink.i.i = phi i32 [ %cond.i.i, %cond.end.i.i ], [ %sub.i.i, %if.then.i156.i ] store i32 %cond.sink.i.i, ptr %rep.i, align 4 br label %ZSTD_updateRep.exit.i ZSTD_updateRep.exit.i: ; preds = %if.end24.sink.split.i.i, %if.else.i.i - %arrayidx14.i.val202.i = phi i32 [ %arrayidx14.i.val203.i, %if.else.i.i ], [ %63, %if.end24.sink.split.i.i ] - %arrayidx16.i.val199.i = phi i32 [ %arrayidx16.i.val200.i, %if.else.i.i ], [ %arrayidx16.i.val201.i, %if.end24.sink.split.i.i ] + %arrayidx14.i.val203.i = phi i32 [ %arrayidx14.i.val204.i, %if.else.i.i ], [ %63, %if.end24.sink.split.i.i ] + %arrayidx16.i.val200.i = phi i32 [ %arrayidx16.i.val201.i, %if.else.i.i ], [ %arrayidx16.i.val202.i, %if.end24.sink.split.i.i ] %68 = phi i32 [ %63, %if.else.i.i ], [ %cond.sink.i.i, %if.end24.sink.split.i.i ] - %incdec.ptr.i = getelementptr inbounds %struct.seqDef_s, ptr %seq.0198.i, i64 1 - %cmp121.i = icmp ult ptr %incdec.ptr.i, %sp.1221.i + %incdec.ptr.i = getelementptr inbounds %struct.seqDef_s, ptr %seq.0199.i, i64 1 + %cmp121.i = icmp ult ptr %incdec.ptr.i, %sp.1222.i br i1 %cmp121.i, label %for.body.i, label %for.end.i, !llvm.loop !8 for.end.i: ; preds = %ZSTD_updateRep.exit.i, %if.then119.i @@ -930,7 +929,7 @@ for.end.i: ; preds = %ZSTD_updateRep.exit br label %do.end136.i do.end136.i: ; preds = %for.end.i, %do.end115.i, %if.end81.i - %op.2.i = phi ptr [ %add.ptr116.i, %for.end.i ], [ %add.ptr116.i, %do.end115.i ], [ %op.1219.i, %if.end81.i ] + %op.2.i = phi ptr [ %add.ptr116.i, %for.end.i ], [ %add.ptr116.i, %do.end115.i ], [ %op.1220.i, %if.end81.i ] %sub.ptr.lhs.cast137.i = ptrtoint ptr %op.2.i to i64 %sub.ptr.rhs.cast138.i = ptrtoint ptr %dst to i64 %sub.ptr.sub139.i = sub i64 %sub.ptr.lhs.cast137.i, %sub.ptr.rhs.cast138.i diff --git a/bench/zstd/optimized/zstd_lazy.c.ll b/bench/zstd/optimized/zstd_lazy.c.ll index 8022df13bfb..3df673bfb99 100644 --- a/bench/zstd/optimized/zstd_lazy.c.ll +++ b/bench/zstd/optimized/zstd_lazy.c.ll @@ -794,6 +794,9 @@ if.then214.i.us: ; preds = %if.then210.i.us while.body.i.us.unreachabledefault: ; preds = %while.body.i.us unreachable +default.unreachable: ; preds = %if.end206.i + unreachable + while.body.i: ; preds = %while.body.i.lr.ph, %if.then214.i %ip.i.01472 = phi ptr [ %add.ptr219.i, %if.then214.i ], [ %ip.i.0.ph1510, %while.body.i.lr.ph ] %add.ptr124.i = getelementptr inbounds i8, ptr %ip.i.01472, i64 1 @@ -907,7 +910,7 @@ ZSTD_count.exit: ; preds = %if.then2.i, %if.end if.end206.i: ; preds = %while.body.i store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1455, label %if.end206.i.unreachabledefault [ + switch i32 %spec.select1455, label %default.unreachable [ i32 4, label %sw.bb1.i521 i32 5, label %sw.bb2.i519 i32 6, label %sw.bb4.i517 @@ -925,9 +928,6 @@ sw.bb4.i517: ; preds = %if.end206.i %call5.i518 = call fastcc i64 @ZSTD_HcFindBestMatch_noDict_6(ptr noundef %ms, ptr noundef nonnull %ip.i.01472, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -if.end206.i.unreachabledefault: ; preds = %if.end206.i - unreachable - if.then210.i: ; preds = %sw.bb1.i521, %sw.bb2.i519, %sw.bb4.i517 %retval.i331.0 = phi i64 [ %call5.i518, %sw.bb4.i517 ], [ %call3.i520, %sw.bb2.i519 ], [ %call.i522, %sw.bb1.i521 ] %cmp212.i = icmp ult i64 %retval.i331.0, 4 @@ -1452,7 +1452,7 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1386, label %sw.epilog151.i419 [ + switch i32 %spec.select1386, label %default.unreachable [ i32 4, label %sw.bb104.i433 i32 5, label %sw.bb106.i431 i32 6, label %sw.bb108.i429 @@ -1470,7 +1470,7 @@ sw.bb108.i429: ; preds = %if.end206.i %call109.i430 = call fastcc i64 @ZSTD_HcFindBestMatch_dictMatchState_6(ptr noundef %ms, ptr noundef %ip.i.01411, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog151.i419: ; preds = %if.end206.i +default.unreachable: ; preds = %if.end206.i unreachable if.then210.i: ; preds = %sw.bb104.i433, %sw.bb106.i431, %sw.bb108.i429 @@ -2114,7 +2114,7 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1386, label %sw.epilog205.i375 [ + switch i32 %spec.select1386, label %default.unreachable [ i32 4, label %sw.bb158.i389 i32 5, label %sw.bb160.i387 i32 6, label %sw.bb162.i385 @@ -2132,7 +2132,7 @@ sw.bb162.i385: ; preds = %if.end206.i %call163.i386 = call fastcc i64 @ZSTD_HcFindBestMatch_dedicatedDictSearch_6(ptr noundef %ms, ptr noundef %ip.i.01413, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i) br label %ZSTD_searchMax.exit524 -sw.epilog205.i375: ; preds = %if.end206.i +default.unreachable: ; preds = %if.end206.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb162.i385, %sw.bb160.i387, %sw.bb158.i389 @@ -3066,14 +3066,14 @@ ZSTD_count.exit: ; preds = %if.then2.i, %if.end if.end206.i: ; preds = %while.body.i store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1491, label %sw.epilog44.i507 [ + switch i32 %spec.select1491, label %default.unreachable [ i32 4, label %sw.bb15.i498 i32 5, label %sw.bb23.i490 i32 6, label %sw.bb33.i482 ] sw.bb15.i498: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog22.i505 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb16.i503 i32 5, label %sw.bb18.i501 i32 6, label %sw.bb20.i499 @@ -3091,11 +3091,8 @@ sw.bb20.i499: ; preds = %sw.bb15.i498 %call21.i500 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_4_6(ptr noundef %ms, ptr noundef nonnull %ip.i.01597, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog22.i505: ; preds = %sw.bb15.i498 - unreachable - sw.bb23.i490: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog30.i497 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb24.i495 i32 5, label %sw.bb26.i493 i32 6, label %sw.bb28.i491 @@ -3113,11 +3110,8 @@ sw.bb28.i491: ; preds = %sw.bb23.i490 %call29.i492 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_5_6(ptr noundef %ms, ptr noundef nonnull %ip.i.01597, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog30.i497: ; preds = %sw.bb23.i490 - unreachable - sw.bb33.i482: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog40.i489 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb34.i487 i32 5, label %sw.bb36.i485 i32 6, label %sw.bb38.i483 @@ -3135,10 +3129,7 @@ sw.bb38.i483: ; preds = %sw.bb33.i482 %call39.i484 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_6_6(ptr noundef %ms, ptr noundef nonnull %ip.i.01597, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog40.i489: ; preds = %sw.bb33.i482 - unreachable - -sw.epilog44.i507: ; preds = %if.end206.i +default.unreachable: ; preds = %sw.bb33.i482, %sw.bb23.i490, %sw.bb15.i498, %if.end206.i unreachable if.then210.i: ; preds = %sw.bb16.i503, %sw.bb18.i501, %sw.bb20.i499, %sw.bb24.i495, %sw.bb26.i493, %sw.bb28.i491, %sw.bb34.i487, %sw.bb36.i485, %sw.bb38.i483 @@ -3965,14 +3956,14 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1422, label %sw.epilog151.i419 [ + switch i32 %spec.select1422, label %default.unreachable [ i32 4, label %sw.bb120.i410 i32 5, label %sw.bb130.i402 i32 6, label %sw.bb140.i394 ] sw.bb120.i410: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog127.i417 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb121.i415 i32 5, label %sw.bb123.i413 i32 6, label %sw.bb125.i411 @@ -3990,11 +3981,8 @@ sw.bb125.i411: ; preds = %sw.bb120.i410 %call126.i412 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_4_6(ptr noundef %ms, ptr noundef %ip.i.01545, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog127.i417: ; preds = %sw.bb120.i410 - unreachable - sw.bb130.i402: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog137.i409 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb131.i407 i32 5, label %sw.bb133.i405 i32 6, label %sw.bb135.i403 @@ -4012,11 +4000,8 @@ sw.bb135.i403: ; preds = %sw.bb130.i402 %call136.i404 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_5_6(ptr noundef %ms, ptr noundef %ip.i.01545, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog137.i409: ; preds = %sw.bb130.i402 - unreachable - sw.bb140.i394: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog147.i401 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb141.i399 i32 5, label %sw.bb143.i397 i32 6, label %sw.bb145.i395 @@ -4034,10 +4019,7 @@ sw.bb145.i395: ; preds = %sw.bb140.i394 %call146.i396 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_6_6(ptr noundef %ms, ptr noundef %ip.i.01545, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog147.i401: ; preds = %sw.bb140.i394 - unreachable - -sw.epilog151.i419: ; preds = %if.end206.i +default.unreachable: ; preds = %sw.bb140.i394, %sw.bb130.i402, %sw.bb120.i410, %if.end206.i unreachable if.then210.i: ; preds = %sw.bb121.i415, %sw.bb123.i413, %sw.bb125.i411, %sw.bb131.i407, %sw.bb133.i405, %sw.bb135.i403, %sw.bb141.i399, %sw.bb143.i397, %sw.bb145.i395 @@ -4983,14 +4965,14 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1422, label %sw.epilog205.i375 [ + switch i32 %spec.select1422, label %default.unreachable [ i32 4, label %sw.bb174.i366 i32 5, label %sw.bb184.i358 i32 6, label %sw.bb194.i350 ] sw.bb174.i366: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog181.i373 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb175.i371 i32 5, label %sw.bb177.i369 i32 6, label %sw.bb179.i367 @@ -5008,11 +4990,8 @@ sw.bb179.i367: ; preds = %sw.bb174.i366 %call180.i368 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_4_6(ptr noundef %ms, ptr noundef %ip.i.01545, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog181.i373: ; preds = %sw.bb174.i366 - unreachable - sw.bb184.i358: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog191.i365 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb185.i363 i32 5, label %sw.bb187.i361 i32 6, label %sw.bb189.i359 @@ -5030,11 +5009,8 @@ sw.bb189.i359: ; preds = %sw.bb184.i358 %call190.i360 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_5_6(ptr noundef %ms, ptr noundef %ip.i.01545, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog191.i365: ; preds = %sw.bb184.i358 - unreachable - sw.bb194.i350: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog201.i357 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb195.i355 i32 5, label %sw.bb197.i353 i32 6, label %sw.bb199.i351 @@ -5052,10 +5028,7 @@ sw.bb199.i351: ; preds = %sw.bb194.i350 %call200.i352 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_6_6(ptr noundef %ms, ptr noundef %ip.i.01545, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %if.then210.i -sw.epilog201.i357: ; preds = %sw.bb194.i350 - unreachable - -sw.epilog205.i375: ; preds = %if.end206.i +default.unreachable: ; preds = %sw.bb194.i350, %sw.bb184.i358, %sw.bb174.i366, %if.end206.i unreachable if.then210.i: ; preds = %sw.bb175.i371, %sw.bb177.i369, %sw.bb179.i367, %sw.bb185.i363, %sw.bb187.i361, %sw.bb189.i359, %sw.bb195.i355, %sw.bb197.i353, %sw.bb199.i351 @@ -5873,7 +5846,7 @@ ZSTD_count.exit: ; preds = %if.then2.i, %if.end if.end206.i: ; preds = %ZSTD_count.exit, %while.body.i %matchLength.i.1 = phi i64 [ %add201.i, %ZSTD_count.exit ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1532, label %sw.epilog44.i507 [ + switch i32 %spec.select1532, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb1.i521 i32 5, label %sw.bb2.i519 i32 6, label %sw.bb4.i517 @@ -5891,7 +5864,10 @@ sw.bb4.i517: ; preds = %if.end206.i %call5.i518 = call fastcc i64 @ZSTD_HcFindBestMatch_noDict_6(ptr noundef %ms, ptr noundef %ip.i.01552, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog44.i507: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb4.i517, %sw.bb2.i519, %sw.bb1.i521 @@ -6060,7 +6036,7 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.2 = phi i64 [ 1, %if.then270.i ], [ %offBase.i.1, %land.lhs.true267.i ], [ %offBase.i.1, %ZSTD_count.exit1411 ], [ %offBase.i.1, %land.lhs.true237.i ], [ 0, %while.body230.i ] %matchLength.i.4 = phi i64 [ %add256.i1526, %if.then270.i ], [ %matchLength.i.3, %land.lhs.true267.i ], [ %matchLength.i.3, %ZSTD_count.exit1411 ], [ %matchLength.i.3, %land.lhs.true237.i ], [ %matchLength.i.3, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1532, label %sw.epilog44.i313 [ + switch i32 %spec.select1532, label %default.unreachable [ i32 4, label %sw.bb1.i327 i32 5, label %sw.bb2.i325 i32 6, label %sw.bb4.i323 @@ -6078,9 +6054,6 @@ sw.bb4.i323: ; preds = %if.end334.i %call5.i324 = call fastcc i64 @ZSTD_HcFindBestMatch_noDict_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog44.i313: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb4.i323, %sw.bb2.i325, %sw.bb1.i327 %retval.i137.0 = phi i64 [ %call5.i324, %sw.bb4.i323 ], [ %call3.i326, %sw.bb2.i325 ], [ %call.i328, %sw.bb1.i327 ] %cmp352.i = icmp ugt i64 %retval.i137.0, 3 @@ -6614,7 +6587,7 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1390, label %sw.epilog151.i419 [ + switch i32 %spec.select1390, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb104.i433 i32 5, label %sw.bb106.i431 i32 6, label %sw.bb108.i429 @@ -6632,7 +6605,10 @@ sw.bb108.i429: ; preds = %if.end206.i %call109.i430 = call fastcc i64 @ZSTD_HcFindBestMatch_dictMatchState_6(ptr noundef %ms, ptr noundef %ip.i.01407, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog151.i419: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb108.i429, %sw.bb106.i431, %sw.bb104.i433 @@ -6719,7 +6695,7 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.1, %land.lhs.true328.i ], [ %offBase.i.1, %if.then302.i ], [ %offBase.i.1, %land.lhs.true297.i ], [ %offBase.i.1, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.3, %land.lhs.true328.i ], [ %matchLength.i.3, %if.then302.i ], [ %matchLength.i.3, %land.lhs.true297.i ], [ %matchLength.i.3, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1390, label %sw.epilog151.i225 [ + switch i32 %spec.select1390, label %default.unreachable [ i32 4, label %sw.bb104.i239 i32 5, label %sw.bb106.i237 i32 6, label %sw.bb108.i235 @@ -6737,9 +6713,6 @@ sw.bb108.i235: ; preds = %if.end334.i %call109.i236 = call fastcc i64 @ZSTD_HcFindBestMatch_dictMatchState_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog151.i225: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb108.i235, %sw.bb106.i237, %sw.bb104.i239 %retval.i137.0 = phi i64 [ %call109.i236, %sw.bb108.i235 ], [ %call107.i238, %sw.bb106.i237 ], [ %call105.i240, %sw.bb104.i239 ] %cmp352.i = icmp ugt i64 %retval.i137.0, 3 @@ -7394,7 +7367,7 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1390, label %sw.epilog205.i375 [ + switch i32 %spec.select1390, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb158.i389 i32 5, label %sw.bb160.i387 i32 6, label %sw.bb162.i385 @@ -7412,7 +7385,10 @@ sw.bb162.i385: ; preds = %if.end206.i %call163.i386 = call fastcc i64 @ZSTD_HcFindBestMatch_dedicatedDictSearch_6(ptr noundef %ms, ptr noundef %ip.i.01407, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i) br label %ZSTD_searchMax.exit524 -sw.epilog205.i375: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb162.i385, %sw.bb160.i387, %sw.bb158.i389 @@ -7499,7 +7475,7 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.1, %land.lhs.true328.i ], [ %offBase.i.1, %if.then302.i ], [ %offBase.i.1, %land.lhs.true297.i ], [ %offBase.i.1, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.3, %land.lhs.true328.i ], [ %matchLength.i.3, %if.then302.i ], [ %matchLength.i.3, %land.lhs.true297.i ], [ %matchLength.i.3, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1390, label %sw.epilog205.i181 [ + switch i32 %spec.select1390, label %default.unreachable [ i32 4, label %sw.bb158.i195 i32 5, label %sw.bb160.i193 i32 6, label %sw.bb162.i191 @@ -7517,9 +7493,6 @@ sw.bb162.i191: ; preds = %if.end334.i %call163.i192 = call fastcc i64 @ZSTD_HcFindBestMatch_dedicatedDictSearch_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i) br label %ZSTD_searchMax.exit330 -sw.epilog205.i181: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb162.i191, %sw.bb160.i193, %sw.bb158.i195 %retval.i137.0 = phi i64 [ %call163.i192, %sw.bb162.i191 ], [ %call161.i194, %sw.bb160.i193 ], [ %call159.i196, %sw.bb158.i195 ] %cmp352.i = icmp ugt i64 %retval.i137.0, 3 @@ -8465,14 +8438,14 @@ ZSTD_count.exit: ; preds = %if.then2.i, %if.end if.end206.i: ; preds = %ZSTD_count.exit, %while.body.i %matchLength.i.1 = phi i64 [ %add201.i, %ZSTD_count.exit ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1568, label %sw.epilog44.i507 [ + switch i32 %spec.select1568, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb15.i498 i32 5, label %sw.bb23.i490 i32 6, label %sw.bb33.i482 ] sw.bb15.i498: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog22.i505 [ + switch i32 %cond49.i, label %sw.bb15.i498.unreachabledefault [ i32 4, label %sw.bb16.i503 i32 5, label %sw.bb18.i501 i32 6, label %sw.bb20.i499 @@ -8490,11 +8463,8 @@ sw.bb20.i499: ; preds = %sw.bb15.i498 %call21.i500 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_4_6(ptr noundef %ms, ptr noundef %ip.i.01686, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog22.i505: ; preds = %sw.bb15.i498 - unreachable - sw.bb23.i490: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog30.i497 [ + switch i32 %cond49.i, label %sw.bb23.i490.unreachabledefault [ i32 4, label %sw.bb24.i495 i32 5, label %sw.bb26.i493 i32 6, label %sw.bb28.i491 @@ -8512,11 +8482,8 @@ sw.bb28.i491: ; preds = %sw.bb23.i490 %call29.i492 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_5_6(ptr noundef %ms, ptr noundef %ip.i.01686, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog30.i497: ; preds = %sw.bb23.i490 - unreachable - sw.bb33.i482: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog40.i489 [ + switch i32 %cond49.i, label %sw.bb33.i482.unreachabledefault [ i32 4, label %sw.bb34.i487 i32 5, label %sw.bb36.i485 i32 6, label %sw.bb38.i483 @@ -8534,10 +8501,19 @@ sw.bb38.i483: ; preds = %sw.bb33.i482 %call39.i484 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_6_6(ptr noundef %ms, ptr noundef %ip.i.01686, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog40.i489: ; preds = %sw.bb33.i482 +if.end206.i.unreachabledefault: ; preds = %if.end206.i unreachable -sw.epilog44.i507: ; preds = %if.end206.i +sw.bb15.i498.unreachabledefault: ; preds = %sw.bb15.i498 + unreachable + +sw.bb23.i490.unreachabledefault: ; preds = %sw.bb23.i490 + unreachable + +sw.bb33.i482.unreachabledefault: ; preds = %sw.bb33.i482 + unreachable + +default.unreachable: ; preds = %sw.bb33.i288, %sw.bb23.i296, %sw.bb15.i304, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb38.i483, %sw.bb36.i485, %sw.bb34.i487, %sw.bb28.i491, %sw.bb26.i493, %sw.bb24.i495, %sw.bb20.i499, %sw.bb18.i501, %sw.bb16.i503 @@ -8706,14 +8682,14 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.2 = phi i64 [ 1, %if.then270.i ], [ %offBase.i.1, %land.lhs.true267.i ], [ %offBase.i.1, %ZSTD_count.exit1428 ], [ %offBase.i.1, %land.lhs.true237.i ], [ 0, %while.body230.i ] %matchLength.i.4 = phi i64 [ %add256.i1560, %if.then270.i ], [ %matchLength.i.3, %land.lhs.true267.i ], [ %matchLength.i.3, %ZSTD_count.exit1428 ], [ %matchLength.i.3, %land.lhs.true237.i ], [ %matchLength.i.3, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1568, label %sw.epilog44.i313 [ + switch i32 %spec.select1568, label %default.unreachable [ i32 4, label %sw.bb15.i304 i32 5, label %sw.bb23.i296 i32 6, label %sw.bb33.i288 ] sw.bb15.i304: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog22.i311 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb16.i309 i32 5, label %sw.bb18.i307 i32 6, label %sw.bb20.i305 @@ -8731,11 +8707,8 @@ sw.bb20.i305: ; preds = %sw.bb15.i304 %call21.i306 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog22.i311: ; preds = %sw.bb15.i304 - unreachable - sw.bb23.i296: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog30.i303 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb24.i301 i32 5, label %sw.bb26.i299 i32 6, label %sw.bb28.i297 @@ -8753,11 +8726,8 @@ sw.bb28.i297: ; preds = %sw.bb23.i296 %call29.i298 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog30.i303: ; preds = %sw.bb23.i296 - unreachable - sw.bb33.i288: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog40.i295 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb34.i293 i32 5, label %sw.bb36.i291 i32 6, label %sw.bb38.i289 @@ -8775,12 +8745,6 @@ sw.bb38.i289: ; preds = %sw.bb33.i288 %call39.i290 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog40.i295: ; preds = %sw.bb33.i288 - unreachable - -sw.epilog44.i313: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb38.i289, %sw.bb36.i291, %sw.bb34.i293, %sw.bb28.i297, %sw.bb26.i299, %sw.bb24.i301, %sw.bb20.i305, %sw.bb18.i307, %sw.bb16.i309 %retval.i137.0 = phi i64 [ %call39.i290, %sw.bb38.i289 ], [ %call37.i292, %sw.bb36.i291 ], [ %call35.i294, %sw.bb34.i293 ], [ %call29.i298, %sw.bb28.i297 ], [ %call27.i300, %sw.bb26.i299 ], [ %call25.i302, %sw.bb24.i301 ], [ %call21.i306, %sw.bb20.i305 ], [ %call19.i308, %sw.bb18.i307 ], [ %call17.i310, %sw.bb16.i309 ] %cmp352.i = icmp ugt i64 %retval.i137.0, 3 @@ -9616,14 +9580,14 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1426, label %sw.epilog151.i419 [ + switch i32 %spec.select1426, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb120.i410 i32 5, label %sw.bb130.i402 i32 6, label %sw.bb140.i394 ] sw.bb120.i410: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog127.i417 [ + switch i32 %cond49.i, label %sw.bb120.i410.unreachabledefault [ i32 4, label %sw.bb121.i415 i32 5, label %sw.bb123.i413 i32 6, label %sw.bb125.i411 @@ -9641,11 +9605,8 @@ sw.bb125.i411: ; preds = %sw.bb120.i410 %call126.i412 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_4_6(ptr noundef %ms, ptr noundef %ip.i.01538, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog127.i417: ; preds = %sw.bb120.i410 - unreachable - sw.bb130.i402: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog137.i409 [ + switch i32 %cond49.i, label %sw.bb130.i402.unreachabledefault [ i32 4, label %sw.bb131.i407 i32 5, label %sw.bb133.i405 i32 6, label %sw.bb135.i403 @@ -9663,11 +9624,8 @@ sw.bb135.i403: ; preds = %sw.bb130.i402 %call136.i404 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_5_6(ptr noundef %ms, ptr noundef %ip.i.01538, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog137.i409: ; preds = %sw.bb130.i402 - unreachable - sw.bb140.i394: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog147.i401 [ + switch i32 %cond49.i, label %sw.bb140.i394.unreachabledefault [ i32 4, label %sw.bb141.i399 i32 5, label %sw.bb143.i397 i32 6, label %sw.bb145.i395 @@ -9685,10 +9643,19 @@ sw.bb145.i395: ; preds = %sw.bb140.i394 %call146.i396 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_6_6(ptr noundef %ms, ptr noundef %ip.i.01538, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog147.i401: ; preds = %sw.bb140.i394 +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +sw.bb120.i410.unreachabledefault: ; preds = %sw.bb120.i410 unreachable -sw.epilog151.i419: ; preds = %if.end206.i +sw.bb130.i402.unreachabledefault: ; preds = %sw.bb130.i402 + unreachable + +sw.bb140.i394.unreachabledefault: ; preds = %sw.bb140.i394 + unreachable + +default.unreachable: ; preds = %sw.bb140.i200, %sw.bb130.i208, %sw.bb120.i216, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb145.i395, %sw.bb143.i397, %sw.bb141.i399, %sw.bb135.i403, %sw.bb133.i405, %sw.bb131.i407, %sw.bb125.i411, %sw.bb123.i413, %sw.bb121.i415 @@ -9775,14 +9742,14 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.1, %land.lhs.true328.i ], [ %offBase.i.1, %if.then302.i ], [ %offBase.i.1, %land.lhs.true297.i ], [ %offBase.i.1, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.3, %land.lhs.true328.i ], [ %matchLength.i.3, %if.then302.i ], [ %matchLength.i.3, %land.lhs.true297.i ], [ %matchLength.i.3, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1426, label %sw.epilog151.i225 [ + switch i32 %spec.select1426, label %default.unreachable [ i32 4, label %sw.bb120.i216 i32 5, label %sw.bb130.i208 i32 6, label %sw.bb140.i200 ] sw.bb120.i216: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog127.i223 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb121.i221 i32 5, label %sw.bb123.i219 i32 6, label %sw.bb125.i217 @@ -9800,11 +9767,8 @@ sw.bb125.i217: ; preds = %sw.bb120.i216 %call126.i218 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog127.i223: ; preds = %sw.bb120.i216 - unreachable - sw.bb130.i208: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog137.i215 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb131.i213 i32 5, label %sw.bb133.i211 i32 6, label %sw.bb135.i209 @@ -9822,11 +9786,8 @@ sw.bb135.i209: ; preds = %sw.bb130.i208 %call136.i210 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog137.i215: ; preds = %sw.bb130.i208 - unreachable - sw.bb140.i200: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog147.i207 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb141.i205 i32 5, label %sw.bb143.i203 i32 6, label %sw.bb145.i201 @@ -9844,12 +9805,6 @@ sw.bb145.i201: ; preds = %sw.bb140.i200 %call146.i202 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog147.i207: ; preds = %sw.bb140.i200 - unreachable - -sw.epilog151.i225: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb145.i201, %sw.bb143.i203, %sw.bb141.i205, %sw.bb135.i209, %sw.bb133.i211, %sw.bb131.i213, %sw.bb125.i217, %sw.bb123.i219, %sw.bb121.i221 %retval.i137.0 = phi i64 [ %call146.i202, %sw.bb145.i201 ], [ %call144.i204, %sw.bb143.i203 ], [ %call142.i206, %sw.bb141.i205 ], [ %call136.i210, %sw.bb135.i209 ], [ %call134.i212, %sw.bb133.i211 ], [ %call132.i214, %sw.bb131.i213 ], [ %call126.i218, %sw.bb125.i217 ], [ %call124.i220, %sw.bb123.i219 ], [ %call122.i222, %sw.bb121.i221 ] %cmp352.i = icmp ugt i64 %retval.i137.0, 3 @@ -10806,14 +10761,14 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1426, label %sw.epilog205.i375 [ + switch i32 %spec.select1426, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb174.i366 i32 5, label %sw.bb184.i358 i32 6, label %sw.bb194.i350 ] sw.bb174.i366: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog181.i373 [ + switch i32 %cond49.i, label %sw.bb174.i366.unreachabledefault [ i32 4, label %sw.bb175.i371 i32 5, label %sw.bb177.i369 i32 6, label %sw.bb179.i367 @@ -10831,11 +10786,8 @@ sw.bb179.i367: ; preds = %sw.bb174.i366 %call180.i368 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_4_6(ptr noundef %ms, ptr noundef %ip.i.01538, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog181.i373: ; preds = %sw.bb174.i366 - unreachable - sw.bb184.i358: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog191.i365 [ + switch i32 %cond49.i, label %sw.bb184.i358.unreachabledefault [ i32 4, label %sw.bb185.i363 i32 5, label %sw.bb187.i361 i32 6, label %sw.bb189.i359 @@ -10853,11 +10805,8 @@ sw.bb189.i359: ; preds = %sw.bb184.i358 %call190.i360 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_5_6(ptr noundef %ms, ptr noundef %ip.i.01538, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog191.i365: ; preds = %sw.bb184.i358 - unreachable - sw.bb194.i350: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog201.i357 [ + switch i32 %cond49.i, label %sw.bb194.i350.unreachabledefault [ i32 4, label %sw.bb195.i355 i32 5, label %sw.bb197.i353 i32 6, label %sw.bb199.i351 @@ -10875,10 +10824,19 @@ sw.bb199.i351: ; preds = %sw.bb194.i350 %call200.i352 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_6_6(ptr noundef %ms, ptr noundef %ip.i.01538, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog201.i357: ; preds = %sw.bb194.i350 +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +sw.bb174.i366.unreachabledefault: ; preds = %sw.bb174.i366 + unreachable + +sw.bb184.i358.unreachabledefault: ; preds = %sw.bb184.i358 unreachable -sw.epilog205.i375: ; preds = %if.end206.i +sw.bb194.i350.unreachabledefault: ; preds = %sw.bb194.i350 + unreachable + +default.unreachable: ; preds = %sw.bb194.i156, %sw.bb184.i164, %sw.bb174.i172, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb199.i351, %sw.bb197.i353, %sw.bb195.i355, %sw.bb189.i359, %sw.bb187.i361, %sw.bb185.i363, %sw.bb179.i367, %sw.bb177.i369, %sw.bb175.i371 @@ -10965,14 +10923,14 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.1, %land.lhs.true328.i ], [ %offBase.i.1, %if.then302.i ], [ %offBase.i.1, %land.lhs.true297.i ], [ %offBase.i.1, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.3, %land.lhs.true328.i ], [ %matchLength.i.3, %if.then302.i ], [ %matchLength.i.3, %land.lhs.true297.i ], [ %matchLength.i.3, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1426, label %sw.epilog205.i181 [ + switch i32 %spec.select1426, label %default.unreachable [ i32 4, label %sw.bb174.i172 i32 5, label %sw.bb184.i164 i32 6, label %sw.bb194.i156 ] sw.bb174.i172: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog181.i179 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb175.i177 i32 5, label %sw.bb177.i175 i32 6, label %sw.bb179.i173 @@ -10990,11 +10948,8 @@ sw.bb179.i173: ; preds = %sw.bb174.i172 %call180.i174 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog181.i179: ; preds = %sw.bb174.i172 - unreachable - sw.bb184.i164: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog191.i171 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb185.i169 i32 5, label %sw.bb187.i167 i32 6, label %sw.bb189.i165 @@ -11012,11 +10967,8 @@ sw.bb189.i165: ; preds = %sw.bb184.i164 %call190.i166 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog191.i171: ; preds = %sw.bb184.i164 - unreachable - sw.bb194.i156: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog201.i163 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb195.i161 i32 5, label %sw.bb197.i159 i32 6, label %sw.bb199.i157 @@ -11034,12 +10986,6 @@ sw.bb199.i157: ; preds = %sw.bb194.i156 %call200.i158 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog201.i163: ; preds = %sw.bb194.i156 - unreachable - -sw.epilog205.i181: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb199.i157, %sw.bb197.i159, %sw.bb195.i161, %sw.bb189.i165, %sw.bb187.i167, %sw.bb185.i169, %sw.bb179.i173, %sw.bb177.i175, %sw.bb175.i177 %retval.i137.0 = phi i64 [ %call200.i158, %sw.bb199.i157 ], [ %call198.i160, %sw.bb197.i159 ], [ %call196.i162, %sw.bb195.i161 ], [ %call190.i166, %sw.bb189.i165 ], [ %call188.i168, %sw.bb187.i167 ], [ %call186.i170, %sw.bb185.i169 ], [ %call180.i174, %sw.bb179.i173 ], [ %call178.i176, %sw.bb177.i175 ], [ %call176.i178, %sw.bb175.i177 ] %cmp352.i = icmp ugt i64 %retval.i137.0, 3 @@ -11868,7 +11814,7 @@ ZSTD_count.exit: ; preds = %if.then2.i, %if.end if.end206.i: ; preds = %ZSTD_count.exit, %while.body.i %matchLength.i.1 = phi i64 [ %add201.i, %ZSTD_count.exit ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1605, label %sw.epilog44.i507 [ + switch i32 %spec.select1605, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb1.i521 i32 5, label %sw.bb2.i519 i32 6, label %sw.bb4.i517 @@ -11886,7 +11832,10 @@ sw.bb4.i517: ; preds = %if.end206.i %call5.i518 = call fastcc i64 @ZSTD_HcFindBestMatch_noDict_6(ptr noundef %ms, ptr noundef %ip.i.01630, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog44.i507: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end473.i, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb4.i517, %sw.bb2.i519, %sw.bb1.i521 @@ -12052,7 +12001,7 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.2 = phi i64 [ 1, %if.then270.i ], [ %offBase.i.11638, %land.lhs.true267.i ], [ %offBase.i.11638, %ZSTD_count.exit1412 ], [ %offBase.i.11638, %land.lhs.true237.i ], [ 0, %while.body230.i ] %matchLength.i.4 = phi i64 [ %add256.i1595, %if.then270.i ], [ %matchLength.i.31641, %land.lhs.true267.i ], [ %matchLength.i.31641, %ZSTD_count.exit1412 ], [ %matchLength.i.31641, %land.lhs.true237.i ], [ %matchLength.i.31641, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1605, label %sw.epilog44.i313 [ + switch i32 %spec.select1605, label %default.unreachable [ i32 4, label %sw.bb1.i327 i32 5, label %sw.bb2.i325 i32 6, label %sw.bb4.i323 @@ -12070,9 +12019,6 @@ sw.bb4.i323: ; preds = %if.end334.i %call5.i324 = call fastcc i64 @ZSTD_HcFindBestMatch_noDict_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog44.i313: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb4.i323, %sw.bb2.i325, %sw.bb1.i327 %retval.i137.0 = phi i64 [ %call5.i324, %sw.bb4.i323 ], [ %call3.i326, %sw.bb2.i325 ], [ %call.i328, %sw.bb1.i327 ] %mul345.i = shl i64 %matchLength.i.4, 2 @@ -12233,7 +12179,7 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.4 = phi i64 [ 1, %if.then409.i ], [ %offBase.i.2, %land.lhs.true406.i ], [ %offBase.i.2, %ZSTD_count.exit1480 ], [ %offBase.i.2, %land.lhs.true372.i ], [ 0, %if.then364.i ] %matchLength.i.6 = phi i64 [ %add392.i1600, %if.then409.i ], [ %matchLength.i.4, %land.lhs.true406.i ], [ %matchLength.i.4, %ZSTD_count.exit1480 ], [ %matchLength.i.4, %land.lhs.true372.i ], [ %matchLength.i.4, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - switch i32 %spec.select1605, label %sw.epilog44.i [ + switch i32 %spec.select1605, label %default.unreachable [ i32 4, label %sw.bb1.i135 i32 5, label %sw.bb2.i i32 6, label %sw.bb4.i @@ -12251,9 +12197,6 @@ sw.bb4.i: ; preds = %if.end473.i %call5.i = call fastcc i64 @ZSTD_HcFindBestMatch_noDict_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog44.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb4.i, %sw.bb2.i, %sw.bb1.i135 %retval.i120.0 = phi i64 [ %call5.i, %sw.bb4.i ], [ %call3.i, %sw.bb2.i ], [ %call.i136, %sw.bb1.i135 ] %cmp492.i = icmp ugt i64 %retval.i120.0, 3 @@ -12788,7 +12731,7 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1394, label %sw.epilog151.i419 [ + switch i32 %spec.select1394, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb104.i433 i32 5, label %sw.bb106.i431 i32 6, label %sw.bb108.i429 @@ -12806,7 +12749,10 @@ sw.bb108.i429: ; preds = %if.end206.i %call109.i430 = call fastcc i64 @ZSTD_HcFindBestMatch_dictMatchState_6(ptr noundef %ms, ptr noundef %ip.i.01414, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog151.i419: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end473.i, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb108.i429, %sw.bb106.i431, %sw.bb104.i433 @@ -12890,7 +12836,7 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.11422, %land.lhs.true328.i ], [ %offBase.i.11422, %if.then302.i ], [ %offBase.i.11422, %land.lhs.true297.i ], [ %offBase.i.11422, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.31423, %land.lhs.true328.i ], [ %matchLength.i.31423, %if.then302.i ], [ %matchLength.i.31423, %land.lhs.true297.i ], [ %matchLength.i.31423, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1394, label %sw.epilog151.i225 [ + switch i32 %spec.select1394, label %default.unreachable [ i32 4, label %sw.bb104.i239 i32 5, label %sw.bb106.i237 i32 6, label %sw.bb108.i235 @@ -12908,9 +12854,6 @@ sw.bb108.i235: ; preds = %if.end334.i %call109.i236 = call fastcc i64 @ZSTD_HcFindBestMatch_dictMatchState_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog151.i225: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb108.i235, %sw.bb106.i237, %sw.bb104.i239 %retval.i137.0 = phi i64 [ %call109.i236, %sw.bb108.i235 ], [ %call107.i238, %sw.bb106.i237 ], [ %call105.i240, %sw.bb104.i239 ] %conv346.i = trunc i64 %offBase.i.3 to i32 @@ -12994,7 +12937,7 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.5 = phi i64 [ 1, %if.then470.i ], [ %offBase.i.3, %land.lhs.true467.i ], [ %offBase.i.3, %if.then441.i ], [ %offBase.i.3, %land.lhs.true436.i ], [ %offBase.i.3, %if.then364.i ] %matchLength.i.7 = phi i64 [ %add453.i, %if.then470.i ], [ %matchLength.i.5, %land.lhs.true467.i ], [ %matchLength.i.5, %if.then441.i ], [ %matchLength.i.5, %land.lhs.true436.i ], [ %matchLength.i.5, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - switch i32 %spec.select1394, label %sw.epilog151.i [ + switch i32 %spec.select1394, label %default.unreachable [ i32 4, label %sw.bb104.i i32 5, label %sw.bb106.i i32 6, label %sw.bb108.i @@ -13012,9 +12955,6 @@ sw.bb108.i: ; preds = %if.end473.i %call109.i = call fastcc i64 @ZSTD_HcFindBestMatch_dictMatchState_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog151.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb108.i, %sw.bb106.i, %sw.bb104.i %retval.i120.0 = phi i64 [ %call109.i, %sw.bb108.i ], [ %call107.i, %sw.bb106.i ], [ %call105.i, %sw.bb104.i ] %cmp492.i = icmp ugt i64 %retval.i120.0, 3 @@ -13670,7 +13610,7 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1394, label %sw.epilog205.i375 [ + switch i32 %spec.select1394, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb158.i389 i32 5, label %sw.bb160.i387 i32 6, label %sw.bb162.i385 @@ -13688,7 +13628,10 @@ sw.bb162.i385: ; preds = %if.end206.i %call163.i386 = call fastcc i64 @ZSTD_HcFindBestMatch_dedicatedDictSearch_6(ptr noundef %ms, ptr noundef %ip.i.01414, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i) br label %ZSTD_searchMax.exit524 -sw.epilog205.i375: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end473.i, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb162.i385, %sw.bb160.i387, %sw.bb158.i389 @@ -13772,7 +13715,7 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.11422, %land.lhs.true328.i ], [ %offBase.i.11422, %if.then302.i ], [ %offBase.i.11422, %land.lhs.true297.i ], [ %offBase.i.11422, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.31423, %land.lhs.true328.i ], [ %matchLength.i.31423, %if.then302.i ], [ %matchLength.i.31423, %land.lhs.true297.i ], [ %matchLength.i.31423, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1394, label %sw.epilog205.i181 [ + switch i32 %spec.select1394, label %default.unreachable [ i32 4, label %sw.bb158.i195 i32 5, label %sw.bb160.i193 i32 6, label %sw.bb162.i191 @@ -13790,9 +13733,6 @@ sw.bb162.i191: ; preds = %if.end334.i %call163.i192 = call fastcc i64 @ZSTD_HcFindBestMatch_dedicatedDictSearch_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i) br label %ZSTD_searchMax.exit330 -sw.epilog205.i181: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb162.i191, %sw.bb160.i193, %sw.bb158.i195 %retval.i137.0 = phi i64 [ %call163.i192, %sw.bb162.i191 ], [ %call161.i194, %sw.bb160.i193 ], [ %call159.i196, %sw.bb158.i195 ] %conv346.i = trunc i64 %offBase.i.3 to i32 @@ -13876,7 +13816,7 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.5 = phi i64 [ 1, %if.then470.i ], [ %offBase.i.3, %land.lhs.true467.i ], [ %offBase.i.3, %if.then441.i ], [ %offBase.i.3, %land.lhs.true436.i ], [ %offBase.i.3, %if.then364.i ] %matchLength.i.7 = phi i64 [ %add453.i, %if.then470.i ], [ %matchLength.i.5, %land.lhs.true467.i ], [ %matchLength.i.5, %if.then441.i ], [ %matchLength.i.5, %land.lhs.true436.i ], [ %matchLength.i.5, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - switch i32 %spec.select1394, label %sw.epilog205.i [ + switch i32 %spec.select1394, label %default.unreachable [ i32 4, label %sw.bb158.i i32 5, label %sw.bb160.i i32 6, label %sw.bb162.i @@ -13894,9 +13834,6 @@ sw.bb162.i: ; preds = %if.end473.i %call163.i = call fastcc i64 @ZSTD_HcFindBestMatch_dedicatedDictSearch_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i) br label %ZSTD_searchMax.exit -sw.epilog205.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb162.i, %sw.bb160.i, %sw.bb158.i %retval.i120.0 = phi i64 [ %call163.i, %sw.bb162.i ], [ %call161.i, %sw.bb160.i ], [ %call159.i, %sw.bb158.i ] %cmp492.i = icmp ugt i64 %retval.i120.0, 3 @@ -14843,14 +14780,14 @@ ZSTD_count.exit: ; preds = %if.then2.i, %if.end if.end206.i: ; preds = %ZSTD_count.exit, %while.body.i %matchLength.i.1 = phi i64 [ %add201.i, %ZSTD_count.exit ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1641, label %sw.epilog44.i507 [ + switch i32 %spec.select1641, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb15.i498 i32 5, label %sw.bb23.i490 i32 6, label %sw.bb33.i482 ] sw.bb15.i498: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog22.i505 [ + switch i32 %cond49.i, label %sw.bb15.i498.unreachabledefault [ i32 4, label %sw.bb16.i503 i32 5, label %sw.bb18.i501 i32 6, label %sw.bb20.i499 @@ -14868,11 +14805,8 @@ sw.bb20.i499: ; preds = %sw.bb15.i498 %call21.i500 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_4_6(ptr noundef %ms, ptr noundef %ip.i.01773, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog22.i505: ; preds = %sw.bb15.i498 - unreachable - sw.bb23.i490: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog30.i497 [ + switch i32 %cond49.i, label %sw.bb23.i490.unreachabledefault [ i32 4, label %sw.bb24.i495 i32 5, label %sw.bb26.i493 i32 6, label %sw.bb28.i491 @@ -14890,11 +14824,8 @@ sw.bb28.i491: ; preds = %sw.bb23.i490 %call29.i492 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_5_6(ptr noundef %ms, ptr noundef %ip.i.01773, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog30.i497: ; preds = %sw.bb23.i490 - unreachable - sw.bb33.i482: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog40.i489 [ + switch i32 %cond49.i, label %sw.bb33.i482.unreachabledefault [ i32 4, label %sw.bb34.i487 i32 5, label %sw.bb36.i485 i32 6, label %sw.bb38.i483 @@ -14912,10 +14843,19 @@ sw.bb38.i483: ; preds = %sw.bb33.i482 %call39.i484 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_6_6(ptr noundef %ms, ptr noundef %ip.i.01773, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog40.i489: ; preds = %sw.bb33.i482 +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +sw.bb15.i498.unreachabledefault: ; preds = %sw.bb15.i498 + unreachable + +sw.bb23.i490.unreachabledefault: ; preds = %sw.bb23.i490 + unreachable + +sw.bb33.i482.unreachabledefault: ; preds = %sw.bb33.i482 unreachable -sw.epilog44.i507: ; preds = %if.end206.i +default.unreachable: ; preds = %sw.bb33.i, %sw.bb23.i, %sw.bb15.i, %if.end473.i, %sw.bb33.i288, %sw.bb23.i296, %sw.bb15.i304, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb38.i483, %sw.bb36.i485, %sw.bb34.i487, %sw.bb28.i491, %sw.bb26.i493, %sw.bb24.i495, %sw.bb20.i499, %sw.bb18.i501, %sw.bb16.i503 @@ -15081,14 +15021,14 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.2 = phi i64 [ 1, %if.then270.i ], [ %offBase.i.11781, %land.lhs.true267.i ], [ %offBase.i.11781, %ZSTD_count.exit1429 ], [ %offBase.i.11781, %land.lhs.true237.i ], [ 0, %while.body230.i ] %matchLength.i.4 = phi i64 [ %add256.i1629, %if.then270.i ], [ %matchLength.i.31784, %land.lhs.true267.i ], [ %matchLength.i.31784, %ZSTD_count.exit1429 ], [ %matchLength.i.31784, %land.lhs.true237.i ], [ %matchLength.i.31784, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1641, label %sw.epilog44.i313 [ + switch i32 %spec.select1641, label %default.unreachable [ i32 4, label %sw.bb15.i304 i32 5, label %sw.bb23.i296 i32 6, label %sw.bb33.i288 ] sw.bb15.i304: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog22.i311 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb16.i309 i32 5, label %sw.bb18.i307 i32 6, label %sw.bb20.i305 @@ -15106,11 +15046,8 @@ sw.bb20.i305: ; preds = %sw.bb15.i304 %call21.i306 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog22.i311: ; preds = %sw.bb15.i304 - unreachable - sw.bb23.i296: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog30.i303 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb24.i301 i32 5, label %sw.bb26.i299 i32 6, label %sw.bb28.i297 @@ -15128,11 +15065,8 @@ sw.bb28.i297: ; preds = %sw.bb23.i296 %call29.i298 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog30.i303: ; preds = %sw.bb23.i296 - unreachable - sw.bb33.i288: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog40.i295 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb34.i293 i32 5, label %sw.bb36.i291 i32 6, label %sw.bb38.i289 @@ -15150,12 +15084,6 @@ sw.bb38.i289: ; preds = %sw.bb33.i288 %call39.i290 = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog40.i295: ; preds = %sw.bb33.i288 - unreachable - -sw.epilog44.i313: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb38.i289, %sw.bb36.i291, %sw.bb34.i293, %sw.bb28.i297, %sw.bb26.i299, %sw.bb24.i301, %sw.bb20.i305, %sw.bb18.i307, %sw.bb16.i309 %retval.i137.0 = phi i64 [ %call39.i290, %sw.bb38.i289 ], [ %call37.i292, %sw.bb36.i291 ], [ %call35.i294, %sw.bb34.i293 ], [ %call29.i298, %sw.bb28.i297 ], [ %call27.i300, %sw.bb26.i299 ], [ %call25.i302, %sw.bb24.i301 ], [ %call21.i306, %sw.bb20.i305 ], [ %call19.i308, %sw.bb18.i307 ], [ %call17.i310, %sw.bb16.i309 ] %mul345.i = shl i64 %matchLength.i.4, 2 @@ -15316,14 +15244,14 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.4 = phi i64 [ 1, %if.then409.i ], [ %offBase.i.2, %land.lhs.true406.i ], [ %offBase.i.2, %ZSTD_count.exit1497 ], [ %offBase.i.2, %land.lhs.true372.i ], [ 0, %if.then364.i ] %matchLength.i.6 = phi i64 [ %add392.i1634, %if.then409.i ], [ %matchLength.i.4, %land.lhs.true406.i ], [ %matchLength.i.4, %ZSTD_count.exit1497 ], [ %matchLength.i.4, %land.lhs.true372.i ], [ %matchLength.i.4, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - switch i32 %spec.select1641, label %sw.epilog44.i [ + switch i32 %spec.select1641, label %default.unreachable [ i32 4, label %sw.bb15.i i32 5, label %sw.bb23.i i32 6, label %sw.bb33.i ] sw.bb15.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog22.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb16.i i32 5, label %sw.bb18.i i32 6, label %sw.bb20.i @@ -15341,11 +15269,8 @@ sw.bb20.i: ; preds = %sw.bb15.i %call21.i = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog22.i: ; preds = %sw.bb15.i - unreachable - sw.bb23.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog30.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb24.i i32 5, label %sw.bb26.i i32 6, label %sw.bb28.i @@ -15363,11 +15288,8 @@ sw.bb28.i: ; preds = %sw.bb23.i %call29.i = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog30.i: ; preds = %sw.bb23.i - unreachable - sw.bb33.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog40.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb34.i i32 5, label %sw.bb36.i i32 6, label %sw.bb38.i @@ -15385,12 +15307,6 @@ sw.bb38.i: ; preds = %sw.bb33.i %call39.i = call fastcc i64 @ZSTD_RowFindBestMatch_noDict_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog40.i: ; preds = %sw.bb33.i - unreachable - -sw.epilog44.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb38.i, %sw.bb36.i, %sw.bb34.i, %sw.bb28.i, %sw.bb26.i, %sw.bb24.i, %sw.bb20.i, %sw.bb18.i, %sw.bb16.i %retval.i120.0 = phi i64 [ %call39.i, %sw.bb38.i ], [ %call37.i, %sw.bb36.i ], [ %call35.i, %sw.bb34.i ], [ %call29.i, %sw.bb28.i ], [ %call27.i, %sw.bb26.i ], [ %call25.i, %sw.bb24.i ], [ %call21.i, %sw.bb20.i ], [ %call19.i, %sw.bb18.i ], [ %call17.i, %sw.bb16.i ] %cmp492.i = icmp ugt i64 %retval.i120.0, 3 @@ -16227,14 +16143,14 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1430, label %sw.epilog151.i419 [ + switch i32 %spec.select1430, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb120.i410 i32 5, label %sw.bb130.i402 i32 6, label %sw.bb140.i394 ] sw.bb120.i410: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog127.i417 [ + switch i32 %cond49.i, label %sw.bb120.i410.unreachabledefault [ i32 4, label %sw.bb121.i415 i32 5, label %sw.bb123.i413 i32 6, label %sw.bb125.i411 @@ -16252,11 +16168,8 @@ sw.bb125.i411: ; preds = %sw.bb120.i410 %call126.i412 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_4_6(ptr noundef %ms, ptr noundef %ip.i.01554, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog127.i417: ; preds = %sw.bb120.i410 - unreachable - sw.bb130.i402: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog137.i409 [ + switch i32 %cond49.i, label %sw.bb130.i402.unreachabledefault [ i32 4, label %sw.bb131.i407 i32 5, label %sw.bb133.i405 i32 6, label %sw.bb135.i403 @@ -16274,11 +16187,8 @@ sw.bb135.i403: ; preds = %sw.bb130.i402 %call136.i404 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_5_6(ptr noundef %ms, ptr noundef %ip.i.01554, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog137.i409: ; preds = %sw.bb130.i402 - unreachable - sw.bb140.i394: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog147.i401 [ + switch i32 %cond49.i, label %sw.bb140.i394.unreachabledefault [ i32 4, label %sw.bb141.i399 i32 5, label %sw.bb143.i397 i32 6, label %sw.bb145.i395 @@ -16296,10 +16206,19 @@ sw.bb145.i395: ; preds = %sw.bb140.i394 %call146.i396 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_6_6(ptr noundef %ms, ptr noundef %ip.i.01554, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog147.i401: ; preds = %sw.bb140.i394 +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +sw.bb120.i410.unreachabledefault: ; preds = %sw.bb120.i410 + unreachable + +sw.bb130.i402.unreachabledefault: ; preds = %sw.bb130.i402 + unreachable + +sw.bb140.i394.unreachabledefault: ; preds = %sw.bb140.i394 unreachable -sw.epilog151.i419: ; preds = %if.end206.i +default.unreachable: ; preds = %sw.bb140.i, %sw.bb130.i, %sw.bb120.i, %if.end473.i, %sw.bb140.i200, %sw.bb130.i208, %sw.bb120.i216, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb145.i395, %sw.bb143.i397, %sw.bb141.i399, %sw.bb135.i403, %sw.bb133.i405, %sw.bb131.i407, %sw.bb125.i411, %sw.bb123.i413, %sw.bb121.i415 @@ -16383,14 +16302,14 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.11562, %land.lhs.true328.i ], [ %offBase.i.11562, %if.then302.i ], [ %offBase.i.11562, %land.lhs.true297.i ], [ %offBase.i.11562, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.31563, %land.lhs.true328.i ], [ %matchLength.i.31563, %if.then302.i ], [ %matchLength.i.31563, %land.lhs.true297.i ], [ %matchLength.i.31563, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1430, label %sw.epilog151.i225 [ + switch i32 %spec.select1430, label %default.unreachable [ i32 4, label %sw.bb120.i216 i32 5, label %sw.bb130.i208 i32 6, label %sw.bb140.i200 ] sw.bb120.i216: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog127.i223 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb121.i221 i32 5, label %sw.bb123.i219 i32 6, label %sw.bb125.i217 @@ -16408,11 +16327,8 @@ sw.bb125.i217: ; preds = %sw.bb120.i216 %call126.i218 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog127.i223: ; preds = %sw.bb120.i216 - unreachable - sw.bb130.i208: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog137.i215 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb131.i213 i32 5, label %sw.bb133.i211 i32 6, label %sw.bb135.i209 @@ -16430,11 +16346,8 @@ sw.bb135.i209: ; preds = %sw.bb130.i208 %call136.i210 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog137.i215: ; preds = %sw.bb130.i208 - unreachable - sw.bb140.i200: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog147.i207 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb141.i205 i32 5, label %sw.bb143.i203 i32 6, label %sw.bb145.i201 @@ -16452,12 +16365,6 @@ sw.bb145.i201: ; preds = %sw.bb140.i200 %call146.i202 = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog147.i207: ; preds = %sw.bb140.i200 - unreachable - -sw.epilog151.i225: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb145.i201, %sw.bb143.i203, %sw.bb141.i205, %sw.bb135.i209, %sw.bb133.i211, %sw.bb131.i213, %sw.bb125.i217, %sw.bb123.i219, %sw.bb121.i221 %retval.i137.0 = phi i64 [ %call146.i202, %sw.bb145.i201 ], [ %call144.i204, %sw.bb143.i203 ], [ %call142.i206, %sw.bb141.i205 ], [ %call136.i210, %sw.bb135.i209 ], [ %call134.i212, %sw.bb133.i211 ], [ %call132.i214, %sw.bb131.i213 ], [ %call126.i218, %sw.bb125.i217 ], [ %call124.i220, %sw.bb123.i219 ], [ %call122.i222, %sw.bb121.i221 ] %conv346.i = trunc i64 %offBase.i.3 to i32 @@ -16541,14 +16448,14 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.5 = phi i64 [ 1, %if.then470.i ], [ %offBase.i.3, %land.lhs.true467.i ], [ %offBase.i.3, %if.then441.i ], [ %offBase.i.3, %land.lhs.true436.i ], [ %offBase.i.3, %if.then364.i ] %matchLength.i.7 = phi i64 [ %add453.i, %if.then470.i ], [ %matchLength.i.5, %land.lhs.true467.i ], [ %matchLength.i.5, %if.then441.i ], [ %matchLength.i.5, %land.lhs.true436.i ], [ %matchLength.i.5, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - switch i32 %spec.select1430, label %sw.epilog151.i [ + switch i32 %spec.select1430, label %default.unreachable [ i32 4, label %sw.bb120.i i32 5, label %sw.bb130.i i32 6, label %sw.bb140.i ] sw.bb120.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog127.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb121.i i32 5, label %sw.bb123.i i32 6, label %sw.bb125.i @@ -16566,11 +16473,8 @@ sw.bb125.i: ; preds = %sw.bb120.i %call126.i = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog127.i: ; preds = %sw.bb120.i - unreachable - sw.bb130.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog137.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb131.i i32 5, label %sw.bb133.i i32 6, label %sw.bb135.i @@ -16588,11 +16492,8 @@ sw.bb135.i: ; preds = %sw.bb130.i %call136.i = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog137.i: ; preds = %sw.bb130.i - unreachable - sw.bb140.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog147.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb141.i i32 5, label %sw.bb143.i i32 6, label %sw.bb145.i @@ -16610,12 +16511,6 @@ sw.bb145.i: ; preds = %sw.bb140.i %call146.i = call fastcc i64 @ZSTD_RowFindBestMatch_dictMatchState_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog147.i: ; preds = %sw.bb140.i - unreachable - -sw.epilog151.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb145.i, %sw.bb143.i, %sw.bb141.i, %sw.bb135.i, %sw.bb133.i, %sw.bb131.i, %sw.bb125.i, %sw.bb123.i, %sw.bb121.i %retval.i120.0 = phi i64 [ %call146.i, %sw.bb145.i ], [ %call144.i, %sw.bb143.i ], [ %call142.i, %sw.bb141.i ], [ %call136.i, %sw.bb135.i ], [ %call134.i, %sw.bb133.i ], [ %call132.i, %sw.bb131.i ], [ %call126.i, %sw.bb125.i ], [ %call124.i, %sw.bb123.i ], [ %call122.i, %sw.bb121.i ] %cmp492.i = icmp ugt i64 %retval.i120.0, 3 @@ -17573,14 +17468,14 @@ if.then160.i: ; preds = %land.lhs.true154.i if.end206.i: ; preds = %land.lhs.true154.i, %while.body.i, %if.then160.i %matchLength.i.0 = phi i64 [ %add171.i, %if.then160.i ], [ 0, %land.lhs.true154.i ], [ 0, %while.body.i ] store i64 999999999, ptr %offbaseFound.i, align 8 - switch i32 %spec.select1430, label %sw.epilog205.i375 [ + switch i32 %spec.select1430, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb174.i366 i32 5, label %sw.bb184.i358 i32 6, label %sw.bb194.i350 ] sw.bb174.i366: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog181.i373 [ + switch i32 %cond49.i, label %sw.bb174.i366.unreachabledefault [ i32 4, label %sw.bb175.i371 i32 5, label %sw.bb177.i369 i32 6, label %sw.bb179.i367 @@ -17598,11 +17493,8 @@ sw.bb179.i367: ; preds = %sw.bb174.i366 %call180.i368 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_4_6(ptr noundef %ms, ptr noundef %ip.i.01554, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog181.i373: ; preds = %sw.bb174.i366 - unreachable - sw.bb184.i358: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog191.i365 [ + switch i32 %cond49.i, label %sw.bb184.i358.unreachabledefault [ i32 4, label %sw.bb185.i363 i32 5, label %sw.bb187.i361 i32 6, label %sw.bb189.i359 @@ -17620,11 +17512,8 @@ sw.bb189.i359: ; preds = %sw.bb184.i358 %call190.i360 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_5_6(ptr noundef %ms, ptr noundef %ip.i.01554, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog191.i365: ; preds = %sw.bb184.i358 - unreachable - sw.bb194.i350: ; preds = %if.end206.i - switch i32 %cond49.i, label %sw.epilog201.i357 [ + switch i32 %cond49.i, label %sw.bb194.i350.unreachabledefault [ i32 4, label %sw.bb195.i355 i32 5, label %sw.bb197.i353 i32 6, label %sw.bb199.i351 @@ -17642,10 +17531,19 @@ sw.bb199.i351: ; preds = %sw.bb194.i350 %call200.i352 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_6_6(ptr noundef %ms, ptr noundef %ip.i.01554, ptr noundef %add.ptr.i, ptr noundef nonnull %offbaseFound.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog201.i357: ; preds = %sw.bb194.i350 +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +sw.bb174.i366.unreachabledefault: ; preds = %sw.bb174.i366 + unreachable + +sw.bb184.i358.unreachabledefault: ; preds = %sw.bb184.i358 + unreachable + +sw.bb194.i350.unreachabledefault: ; preds = %sw.bb194.i350 unreachable -sw.epilog205.i375: ; preds = %if.end206.i +default.unreachable: ; preds = %sw.bb194.i, %sw.bb184.i, %sw.bb174.i, %if.end473.i, %sw.bb194.i156, %sw.bb184.i164, %sw.bb174.i172, %if.end334.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb199.i351, %sw.bb197.i353, %sw.bb195.i355, %sw.bb189.i359, %sw.bb187.i361, %sw.bb185.i363, %sw.bb179.i367, %sw.bb177.i369, %sw.bb175.i371 @@ -17729,14 +17627,14 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.11562, %land.lhs.true328.i ], [ %offBase.i.11562, %if.then302.i ], [ %offBase.i.11562, %land.lhs.true297.i ], [ %offBase.i.11562, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.31563, %land.lhs.true328.i ], [ %matchLength.i.31563, %if.then302.i ], [ %matchLength.i.31563, %land.lhs.true297.i ], [ %matchLength.i.31563, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1430, label %sw.epilog205.i181 [ + switch i32 %spec.select1430, label %default.unreachable [ i32 4, label %sw.bb174.i172 i32 5, label %sw.bb184.i164 i32 6, label %sw.bb194.i156 ] sw.bb174.i172: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog181.i179 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb175.i177 i32 5, label %sw.bb177.i175 i32 6, label %sw.bb179.i173 @@ -17754,11 +17652,8 @@ sw.bb179.i173: ; preds = %sw.bb174.i172 %call180.i174 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog181.i179: ; preds = %sw.bb174.i172 - unreachable - sw.bb184.i164: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog191.i171 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb185.i169 i32 5, label %sw.bb187.i167 i32 6, label %sw.bb189.i165 @@ -17776,11 +17671,8 @@ sw.bb189.i165: ; preds = %sw.bb184.i164 %call190.i166 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog191.i171: ; preds = %sw.bb184.i164 - unreachable - sw.bb194.i156: ; preds = %if.end334.i - switch i32 %cond49.i, label %sw.epilog201.i163 [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb195.i161 i32 5, label %sw.bb197.i159 i32 6, label %sw.bb199.i157 @@ -17798,12 +17690,6 @@ sw.bb199.i157: ; preds = %sw.bb194.i156 %call200.i158 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit330 -sw.epilog201.i163: ; preds = %sw.bb194.i156 - unreachable - -sw.epilog205.i181: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330: ; preds = %sw.bb199.i157, %sw.bb197.i159, %sw.bb195.i161, %sw.bb189.i165, %sw.bb187.i167, %sw.bb185.i169, %sw.bb179.i173, %sw.bb177.i175, %sw.bb175.i177 %retval.i137.0 = phi i64 [ %call200.i158, %sw.bb199.i157 ], [ %call198.i160, %sw.bb197.i159 ], [ %call196.i162, %sw.bb195.i161 ], [ %call190.i166, %sw.bb189.i165 ], [ %call188.i168, %sw.bb187.i167 ], [ %call186.i170, %sw.bb185.i169 ], [ %call180.i174, %sw.bb179.i173 ], [ %call178.i176, %sw.bb177.i175 ], [ %call176.i178, %sw.bb175.i177 ] %conv346.i = trunc i64 %offBase.i.3 to i32 @@ -17887,14 +17773,14 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.5 = phi i64 [ 1, %if.then470.i ], [ %offBase.i.3, %land.lhs.true467.i ], [ %offBase.i.3, %if.then441.i ], [ %offBase.i.3, %land.lhs.true436.i ], [ %offBase.i.3, %if.then364.i ] %matchLength.i.7 = phi i64 [ %add453.i, %if.then470.i ], [ %matchLength.i.5, %land.lhs.true467.i ], [ %matchLength.i.5, %if.then441.i ], [ %matchLength.i.5, %land.lhs.true436.i ], [ %matchLength.i.5, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - switch i32 %spec.select1430, label %sw.epilog205.i [ + switch i32 %spec.select1430, label %default.unreachable [ i32 4, label %sw.bb174.i i32 5, label %sw.bb184.i i32 6, label %sw.bb194.i ] sw.bb174.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog181.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb175.i i32 5, label %sw.bb177.i i32 6, label %sw.bb179.i @@ -17912,11 +17798,8 @@ sw.bb179.i: ; preds = %sw.bb174.i %call180.i = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog181.i: ; preds = %sw.bb174.i - unreachable - sw.bb184.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog191.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb185.i i32 5, label %sw.bb187.i i32 6, label %sw.bb189.i @@ -17934,11 +17817,8 @@ sw.bb189.i: ; preds = %sw.bb184.i %call190.i = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog191.i: ; preds = %sw.bb184.i - unreachable - sw.bb194.i: ; preds = %if.end473.i - switch i32 %cond49.i, label %sw.epilog201.i [ + switch i32 %cond49.i, label %default.unreachable [ i32 4, label %sw.bb195.i i32 5, label %sw.bb197.i i32 6, label %sw.bb199.i @@ -17956,12 +17836,6 @@ sw.bb199.i: ; preds = %sw.bb194.i %call200.i128 = call fastcc i64 @ZSTD_RowFindBestMatch_dedicatedDictSearch_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr367.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate474.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog201.i: ; preds = %sw.bb194.i - unreachable - -sw.epilog205.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb199.i, %sw.bb197.i, %sw.bb195.i, %sw.bb189.i, %sw.bb187.i, %sw.bb185.i, %sw.bb179.i, %sw.bb177.i, %sw.bb175.i %retval.i120.0 = phi i64 [ %call200.i128, %sw.bb199.i ], [ %call198.i, %sw.bb197.i ], [ %call196.i, %sw.bb195.i ], [ %call190.i, %sw.bb189.i ], [ %call188.i129, %sw.bb187.i ], [ %call186.i130, %sw.bb185.i ], [ %call180.i, %sw.bb179.i ], [ %call178.i, %sw.bb177.i ], [ %call176.i, %sw.bb175.i ] %cmp492.i = icmp ugt i64 %retval.i120.0, 3 @@ -18800,7 +18674,7 @@ if.end206.i: ; preds = %ZSTD_count.exit, %w %idx.ext.i.i = zext i32 %14 to i64 %add.ptr.i.i = getelementptr inbounds i8, ptr %13, i64 %idx.ext.i.i %cmp.i.i = icmp ugt ptr %add.ptr.i.i, %ip.i.01915 - switch i32 %spec.select1890, label %sw.epilog44.i507 [ + switch i32 %spec.select1890, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb7.i513 i32 5, label %sw.bb9.i511 i32 6, label %sw.bb11.i509 @@ -18941,7 +18815,10 @@ for.body.us.i.i: ; preds = %for.body.us.i.i, %f %exitcond.not.i1395 = icmp eq i64 %indvars.iv.next22.i.i, %33 br i1 %exitcond.not.i1395, label %ZSTD_searchMax.exit524.sink.split, label %for.body.us.i.i, !llvm.loop !27 -sw.epilog44.i507: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end473.i, %if.end334.i unreachable ZSTD_searchMax.exit524.sink.split: ; preds = %for.body.us.i.i, %for.body.us4.i.i, %for.body.i.i, %if.end.i.i1376, %if.end.i.i1353, %if.end.i.i @@ -19113,18 +18990,18 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.2 = phi i64 [ 1, %if.then270.i ], [ %offBase.i.11923, %land.lhs.true267.i ], [ %offBase.i.11923, %ZSTD_count.exit1460 ], [ %offBase.i.11923, %land.lhs.true237.i ], [ 0, %while.body230.i ] %matchLength.i.4 = phi i64 [ %add256.i1880, %if.then270.i ], [ %matchLength.i.31926, %land.lhs.true267.i ], [ %matchLength.i.31926, %ZSTD_count.exit1460 ], [ %matchLength.i.31926, %land.lhs.true237.i ], [ %matchLength.i.31926, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - %46 = load ptr, ptr %base4.i, align 8 - %47 = load i32, ptr %nextToUpdate.i.i1372, align 4 - %idx.ext.i.i1464 = zext i32 %47 to i64 - %add.ptr.i.i1465 = getelementptr inbounds i8, ptr %46, i64 %idx.ext.i.i1464 - %cmp.i.i1466 = icmp ugt ptr %add.ptr.i.i1465, %incdec.ptr.i - switch i32 %spec.select1890, label %sw.epilog44.i313 [ + switch i32 %spec.select1890, label %default.unreachable [ i32 4, label %sw.bb7.i319 i32 5, label %sw.bb9.i317 i32 6, label %sw.bb11.i315 ] sw.bb7.i319: ; preds = %if.end334.i + %46 = load ptr, ptr %base4.i, align 8 + %47 = load i32, ptr %nextToUpdate.i.i1372, align 4 + %idx.ext.i.i1464 = zext i32 %47 to i64 + %add.ptr.i.i1465 = getelementptr inbounds i8, ptr %46, i64 %idx.ext.i.i1464 + %cmp.i.i1466 = icmp ugt ptr %add.ptr.i.i1465, %incdec.ptr.i br i1 %cmp.i.i1466, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1467 if.end.i.i1467: ; preds = %sw.bb7.i319 @@ -19170,102 +19047,109 @@ for.body.i.i1485: ; preds = %for.body.i.i1485, % br i1 %exitcond.not.i1499, label %ZSTD_searchMax.exit330, label %for.body.i.i1485, !llvm.loop !27 sw.bb9.i317: ; preds = %if.end334.i - br i1 %cmp.i.i1466, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1506 + %55 = load ptr, ptr %base4.i, align 8 + %56 = load i32, ptr %nextToUpdate.i.i1372, align 4 + %idx.ext.i.i1503 = zext i32 %56 to i64 + %add.ptr.i.i1504 = getelementptr inbounds i8, ptr %55, i64 %idx.ext.i.i1503 + %cmp.i.i1505 = icmp ugt ptr %add.ptr.i.i1504, %incdec.ptr.i + br i1 %cmp.i.i1505, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1506 if.end.i.i1506: ; preds = %sw.bb9.i317 - %55 = load ptr, ptr %hashTable2.i.i1377, align 8 - %56 = load ptr, ptr %chainTable.i.i1378, align 8 - %57 = load i32, ptr %chainLog.i.i1379, align 4 - %sub.i.i1510 = add i32 %57, -1 + %57 = load ptr, ptr %hashTable2.i.i1377, align 8 + %58 = load ptr, ptr %chainTable.i.i1378, align 8 + %59 = load i32, ptr %chainLog.i.i1379, align 4 + %sub.i.i1510 = add i32 %59, -1 %notmask.i.i1511 = shl nsw i32 -1, %sub.i.i1510 %sub4.i.i1512 = xor i32 %notmask.i.i1511, -1 %sub.ptr.lhs.cast.i.i1513 = ptrtoint ptr %incdec.ptr.i to i64 - %sub.ptr.rhs.cast.i.i1514 = ptrtoint ptr %46 to i64 + %sub.ptr.rhs.cast.i.i1514 = ptrtoint ptr %55 to i64 %sub.ptr.sub.i.i1515 = sub i64 %sub.ptr.lhs.cast.i.i1513, %sub.ptr.rhs.cast.i.i1514 %conv.i.i1516 = trunc i64 %sub.ptr.sub.i.i1515 to i32 - %cmp71.i.i1517 = icmp ult i32 %47, %conv.i.i1516 + %cmp71.i.i1517 = icmp ult i32 %56, %conv.i.i1516 br i1 %cmp71.i.i1517, label %for.body.lr.ph.i.i1521, label %ZSTD_searchMax.exit330 for.body.lr.ph.i.i1521: ; preds = %if.end.i.i1506 - %58 = load i32, ptr %hashLog3.i.i1392, align 4 - %sub.i.i29.i.i1523 = sub i32 64, %58 + %60 = load i32, ptr %hashLog3.i.i1392, align 4 + %sub.i.i29.i.i1523 = sub i32 64, %60 %sh_prom.i.i.i.i1524 = zext nneg i32 %sub.i.i29.i.i1523 to i64 - %59 = and i64 %sub.ptr.sub.i.i1515, 4294967295 + %61 = and i64 %sub.ptr.sub.i.i1515, 4294967295 br label %for.body.us4.i.i1525 for.body.us4.i.i1525: ; preds = %for.body.us4.i.i1525, %for.body.lr.ph.i.i1521 - %indvars.iv.i.i1526 = phi i64 [ %indvars.iv.next.i.i1537, %for.body.us4.i.i1525 ], [ %idx.ext.i.i1464, %for.body.lr.ph.i.i1521 ] - %add.ptr.us7.i.i1527 = getelementptr inbounds i8, ptr %46, i64 %indvars.iv.i.i1526 + %indvars.iv.i.i1526 = phi i64 [ %indvars.iv.next.i.i1537, %for.body.us4.i.i1525 ], [ %idx.ext.i.i1503, %for.body.lr.ph.i.i1521 ] + %add.ptr.us7.i.i1527 = getelementptr inbounds i8, ptr %55, i64 %indvars.iv.i.i1526 %add.ptr.val26.us.i.i1528 = load i64, ptr %add.ptr.us7.i.i1527, align 1 %mul.i.i28.us.i.i1529 = mul i64 %add.ptr.val26.us.i.i1528, -3523014627271114752 %shr.i.i30.us.i.i1530 = lshr i64 %mul.i.i28.us.i.i1529, %sh_prom.i.i.i.i1524 - %arrayidx.us10.i.i1531 = getelementptr inbounds i32, ptr %55, i64 %shr.i.i30.us.i.i1530 - %60 = load i32, ptr %arrayidx.us10.i.i1531, align 4 - %61 = trunc i64 %indvars.iv.i.i1526 to i32 - %and.us11.i.i1532 = and i32 %61, %sub4.i.i1512 + %arrayidx.us10.i.i1531 = getelementptr inbounds i32, ptr %57, i64 %shr.i.i30.us.i.i1530 + %62 = load i32, ptr %arrayidx.us10.i.i1531, align 4 + %63 = trunc i64 %indvars.iv.i.i1526 to i32 + %and.us11.i.i1532 = and i32 %63, %sub4.i.i1512 %mul.us12.i.i1533 = shl nuw i32 %and.us11.i.i1532, 1 %idx.ext9.us13.i.i1534 = zext i32 %mul.us12.i.i1533 to i64 - %add.ptr10.us14.i.i1535 = getelementptr inbounds i32, ptr %56, i64 %idx.ext9.us13.i.i1534 + %add.ptr10.us14.i.i1535 = getelementptr inbounds i32, ptr %58, i64 %idx.ext9.us13.i.i1534 %add.ptr11.us15.i.i1536 = getelementptr inbounds i32, ptr %add.ptr10.us14.i.i1535, i64 1 - store i32 %61, ptr %arrayidx.us10.i.i1531, align 4 - store i32 %60, ptr %add.ptr10.us14.i.i1535, align 4 + store i32 %63, ptr %arrayidx.us10.i.i1531, align 4 + store i32 %62, ptr %add.ptr10.us14.i.i1535, align 4 store i32 1, ptr %add.ptr11.us15.i.i1536, align 4 %indvars.iv.next.i.i1537 = add nuw nsw i64 %indvars.iv.i.i1526, 1 - %exitcond.not.i1538 = icmp eq i64 %indvars.iv.next.i.i1537, %59 + %exitcond.not.i1538 = icmp eq i64 %indvars.iv.next.i.i1537, %61 br i1 %exitcond.not.i1538, label %ZSTD_searchMax.exit330, label %for.body.us4.i.i1525, !llvm.loop !27 sw.bb11.i315: ; preds = %if.end334.i - br i1 %cmp.i.i1466, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1545 + %64 = load ptr, ptr %base4.i, align 8 + %65 = load i32, ptr %nextToUpdate.i.i1372, align 4 + %idx.ext.i.i1542 = zext i32 %65 to i64 + %add.ptr.i.i1543 = getelementptr inbounds i8, ptr %64, i64 %idx.ext.i.i1542 + %cmp.i.i1544 = icmp ugt ptr %add.ptr.i.i1543, %incdec.ptr.i + br i1 %cmp.i.i1544, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1545 if.end.i.i1545: ; preds = %sw.bb11.i315 - %62 = load ptr, ptr %hashTable2.i.i1377, align 8 - %63 = load ptr, ptr %chainTable.i.i1378, align 8 - %64 = load i32, ptr %chainLog.i.i1379, align 4 - %sub.i.i1549 = add i32 %64, -1 + %66 = load ptr, ptr %hashTable2.i.i1377, align 8 + %67 = load ptr, ptr %chainTable.i.i1378, align 8 + %68 = load i32, ptr %chainLog.i.i1379, align 4 + %sub.i.i1549 = add i32 %68, -1 %notmask.i.i1550 = shl nsw i32 -1, %sub.i.i1549 %sub4.i.i1551 = xor i32 %notmask.i.i1550, -1 %sub.ptr.lhs.cast.i.i1552 = ptrtoint ptr %incdec.ptr.i to i64 - %sub.ptr.rhs.cast.i.i1553 = ptrtoint ptr %46 to i64 + %sub.ptr.rhs.cast.i.i1553 = ptrtoint ptr %64 to i64 %sub.ptr.sub.i.i1554 = sub i64 %sub.ptr.lhs.cast.i.i1552, %sub.ptr.rhs.cast.i.i1553 %conv.i.i1555 = trunc i64 %sub.ptr.sub.i.i1554 to i32 - %cmp71.i.i1556 = icmp ult i32 %47, %conv.i.i1555 + %cmp71.i.i1556 = icmp ult i32 %65, %conv.i.i1555 br i1 %cmp71.i.i1556, label %for.body.lr.ph.i.i1560, label %ZSTD_searchMax.exit330 for.body.lr.ph.i.i1560: ; preds = %if.end.i.i1545 - %65 = load i32, ptr %hashLog3.i.i1392, align 4 - %sub.i.i29.i.i1562 = sub i32 64, %65 + %69 = load i32, ptr %hashLog3.i.i1392, align 4 + %sub.i.i29.i.i1562 = sub i32 64, %69 %sh_prom.i.i.i.i1563 = zext nneg i32 %sub.i.i29.i.i1562 to i64 - %66 = and i64 %sub.ptr.sub.i.i1554, 4294967295 + %70 = and i64 %sub.ptr.sub.i.i1554, 4294967295 br label %for.body.us.i.i1564 for.body.us.i.i1564: ; preds = %for.body.us.i.i1564, %for.body.lr.ph.i.i1560 - %indvars.iv21.i.i1565 = phi i64 [ %indvars.iv.next22.i.i1576, %for.body.us.i.i1564 ], [ %idx.ext.i.i1464, %for.body.lr.ph.i.i1560 ] - %add.ptr.us.i.i1566 = getelementptr inbounds i8, ptr %46, i64 %indvars.iv21.i.i1565 + %indvars.iv21.i.i1565 = phi i64 [ %indvars.iv.next22.i.i1576, %for.body.us.i.i1564 ], [ %idx.ext.i.i1542, %for.body.lr.ph.i.i1560 ] + %add.ptr.us.i.i1566 = getelementptr inbounds i8, ptr %64, i64 %indvars.iv21.i.i1565 %add.ptr.val27.us.i.i1567 = load i64, ptr %add.ptr.us.i.i1566, align 1 %mul.i.i31.us.i.i1568 = mul i64 %add.ptr.val27.us.i.i1567, -3523014627193847808 %shr.i.i34.us.i.i1569 = lshr i64 %mul.i.i31.us.i.i1568, %sh_prom.i.i.i.i1563 - %arrayidx.us.i.i1570 = getelementptr inbounds i32, ptr %62, i64 %shr.i.i34.us.i.i1569 - %67 = load i32, ptr %arrayidx.us.i.i1570, align 4 - %68 = trunc i64 %indvars.iv21.i.i1565 to i32 - %and.us.i.i1571 = and i32 %68, %sub4.i.i1551 + %arrayidx.us.i.i1570 = getelementptr inbounds i32, ptr %66, i64 %shr.i.i34.us.i.i1569 + %71 = load i32, ptr %arrayidx.us.i.i1570, align 4 + %72 = trunc i64 %indvars.iv21.i.i1565 to i32 + %and.us.i.i1571 = and i32 %72, %sub4.i.i1551 %mul.us.i.i1572 = shl nuw i32 %and.us.i.i1571, 1 %idx.ext9.us.i.i1573 = zext i32 %mul.us.i.i1572 to i64 - %add.ptr10.us.i.i1574 = getelementptr inbounds i32, ptr %63, i64 %idx.ext9.us.i.i1573 + %add.ptr10.us.i.i1574 = getelementptr inbounds i32, ptr %67, i64 %idx.ext9.us.i.i1573 %add.ptr11.us.i.i1575 = getelementptr inbounds i32, ptr %add.ptr10.us.i.i1574, i64 1 - store i32 %68, ptr %arrayidx.us.i.i1570, align 4 - store i32 %67, ptr %add.ptr10.us.i.i1574, align 4 + store i32 %72, ptr %arrayidx.us.i.i1570, align 4 + store i32 %71, ptr %add.ptr10.us.i.i1574, align 4 store i32 1, ptr %add.ptr11.us.i.i1575, align 4 %indvars.iv.next22.i.i1576 = add nuw nsw i64 %indvars.iv21.i.i1565, 1 - %exitcond.not.i1577 = icmp eq i64 %indvars.iv.next22.i.i1576, %66 + %exitcond.not.i1577 = icmp eq i64 %indvars.iv.next22.i.i1576, %70 br i1 %exitcond.not.i1577, label %ZSTD_searchMax.exit330, label %for.body.us.i.i1564, !llvm.loop !27 -sw.epilog44.i313: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330.thread: ; preds = %sw.bb7.i319, %sw.bb9.i317, %sw.bb11.i315 %mul345.i2010 = shl i64 %matchLength.i.4, 2 %conv346.i2011 = trunc i64 %offBase.i.2 to i32 - %69 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i2011, i1 true), !range !25 + %73 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i2011, i1 true), !range !25 br label %land.lhs.true361.i ZSTD_searchMax.exit330: ; preds = %for.body.us.i.i1564, %for.body.us4.i.i1525, %for.body.i.i1485, %if.end.i.i1545, %if.end.i.i1506, %if.end.i.i1467 @@ -19274,33 +19158,33 @@ ZSTD_searchMax.exit330: ; preds = %for.body.us.i.i1564 %call.i.i1558 = call fastcc i64 @ZSTD_DUBT_findBestMatch(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i, i32 noundef %spec.select1890, i32 noundef 0) %mul345.i = shl i64 %matchLength.i.4, 2 %conv346.i = trunc i64 %offBase.i.2 to i32 - %70 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i, i1 true), !range !25 + %74 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i, i1 true), !range !25 %cmp352.i = icmp ugt i64 %call.i.i1558, 3 br i1 %cmp352.i, label %land.lhs.true354.i, label %land.lhs.true361.i land.lhs.true354.i: ; preds = %ZSTD_searchMax.exit330 - %71 = load i64, ptr %ofbCandidate.i, align 8 - %conv339.i = trunc i64 %71 to i32 - %72 = tail call i32 @llvm.ctlz.i32(i32 %conv339.i, i1 true), !range !25 - %sub.i1579 = xor i32 %72, 31 - %73 = trunc i64 %mul345.i to i32 - %74 = add nsw i32 %70, -27 - %conv351.i = add i32 %74, %73 + %75 = load i64, ptr %ofbCandidate.i, align 8 + %conv339.i = trunc i64 %75 to i32 + %76 = tail call i32 @llvm.ctlz.i32(i32 %conv339.i, i1 true), !range !25 + %sub.i1579 = xor i32 %76, 31 + %77 = trunc i64 %mul345.i to i32 + %78 = add nsw i32 %74, -27 + %conv351.i = add i32 %78, %77 %retval.i137.0.tr = trunc i64 %call.i.i1558 to i32 - %75 = shl i32 %retval.i137.0.tr, 2 - %conv343.i = sub i32 %75, %sub.i1579 + %79 = shl i32 %retval.i137.0.tr, 2 + %conv343.i = sub i32 %79, %sub.i1579 %cmp355.i = icmp sgt i32 %conv343.i, %conv351.i br i1 %cmp355.i, label %while.cond227.i.backedge, label %land.lhs.true361.i while.cond227.i.backedge: ; preds = %land.lhs.true354.i, %land.lhs.true494.i %start.i.1.be = phi ptr [ %incdec.ptr.i, %land.lhs.true354.i ], [ %incdec.ptr367.i, %land.lhs.true494.i ] - %offBase.i.1.be = phi i64 [ %71, %land.lhs.true354.i ], [ %107, %land.lhs.true494.i ] + %offBase.i.1.be = phi i64 [ %75, %land.lhs.true354.i ], [ %115, %land.lhs.true494.i ] %matchLength.i.3.be = phi i64 [ %call.i.i1558, %land.lhs.true354.i ], [ %call.i.i1743, %land.lhs.true494.i ] %cmp228.i = icmp ult ptr %start.i.1.be, %add.ptr1.i br i1 %cmp228.i, label %while.body230.i, label %if.end500.i, !llvm.loop !26 land.lhs.true361.i: ; preds = %ZSTD_searchMax.exit330.thread, %ZSTD_searchMax.exit330, %land.lhs.true354.i - %76 = phi i32 [ %69, %ZSTD_searchMax.exit330.thread ], [ %70, %ZSTD_searchMax.exit330 ], [ %70, %land.lhs.true354.i ] + %80 = phi i32 [ %73, %ZSTD_searchMax.exit330.thread ], [ %74, %ZSTD_searchMax.exit330 ], [ %74, %land.lhs.true354.i ] %mul345.i2013 = phi i64 [ %mul345.i2010, %ZSTD_searchMax.exit330.thread ], [ %mul345.i, %ZSTD_searchMax.exit330 ], [ %mul345.i, %land.lhs.true354.i ] %cmp362.i = icmp ult ptr %incdec.ptr.i, %add.ptr1.i br i1 %cmp362.i, label %if.then364.i, label %if.end500.i @@ -19332,8 +19216,8 @@ if.then.i1621: ; preds = %if.then384.i br i1 %tobool.not.i1625, label %while.cond.i1628, label %ZSTD_count.exit1645.thread ZSTD_count.exit1645.thread: ; preds = %if.then.i1621 - %77 = tail call i64 @llvm.cttz.i64(i64 %xor.i1624, i1 true), !range !16 - %shr.i.i1627 = lshr i64 %77, 3 + %81 = tail call i64 @llvm.cttz.i64(i64 %xor.i1624, i1 true), !range !16 + %shr.i.i1627 = lshr i64 %81, 3 br label %land.lhs.true406.i while.cond.i1628: ; preds = %if.then.i1621, %while.body.i1634 @@ -19352,8 +19236,8 @@ while.body.i1634: ; preds = %while.cond.i1628 br i1 %tobool12.not.i1638, label %while.cond.i1628, label %if.end16.i1639, !llvm.loop !17 if.end16.i1639: ; preds = %while.body.i1634 - %78 = tail call i64 @llvm.cttz.i64(i64 %xor11.i1637, i1 true), !range !16 - %shr.i35.i1640 = lshr i64 %78, 3 + %82 = tail call i64 @llvm.cttz.i64(i64 %xor11.i1637, i1 true), !range !16 + %shr.i35.i1640 = lshr i64 %82, 3 %add.ptr18.i1641 = getelementptr inbounds i8, ptr %pIn.addr.0.i1631, i64 %shr.i35.i1640 br label %ZSTD_count.exit1645 @@ -19398,9 +19282,9 @@ if.end47.i1593: ; preds = %if.then44.i1611, %l br i1 %cmp48.i1596, label %land.lhs.true50.i1603, label %ZSTD_count.exit1645 land.lhs.true50.i1603: ; preds = %if.end47.i1593 - %79 = load i8, ptr %pMatch.addr.3.i1594, align 1 - %80 = load i8, ptr %pIn.addr.3.i1595, align 1 - %cmp53.i1604 = icmp eq i8 %79, %80 + %83 = load i8, ptr %pMatch.addr.3.i1594, align 1 + %84 = load i8, ptr %pIn.addr.3.i1595, align 1 + %cmp53.i1604 = icmp eq i8 %83, %84 %spec.select.idx.i1605 = zext i1 %cmp53.i1604 to i64 %spec.select.i1606 = getelementptr inbounds i8, ptr %pIn.addr.3.i1595, i64 %spec.select.idx.i1605 br label %ZSTD_count.exit1645 @@ -19416,9 +19300,9 @@ ZSTD_count.exit1645: ; preds = %if.end47.i1593, %la land.lhs.true406.i: ; preds = %ZSTD_count.exit1645.thread, %ZSTD_count.exit1645 %add392.i1885.in = phi i64 [ %shr.i.i1627, %ZSTD_count.exit1645.thread ], [ %sub.ptr.sub.i1644, %ZSTD_count.exit1645 ] %add392.i1885 = add nuw i64 %add392.i1885.in, 4 - %81 = trunc i64 %mul345.i2013 to i32 - %82 = add nsw i32 %76, -30 - %conv403.i = add i32 %82, %81 + %85 = trunc i64 %mul345.i2013 to i32 + %86 = add nsw i32 %80, -30 + %conv403.i = add i32 %86, %85 %add392.i.tr = trunc i64 %add392.i1885 to i32 %conv395.i = shl i32 %add392.i.tr, 2 %cmp407.i = icmp sgt i32 %conv395.i, %conv403.i @@ -19432,155 +19316,162 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.4 = phi i64 [ 1, %if.then409.i ], [ %offBase.i.2, %land.lhs.true406.i ], [ %offBase.i.2, %ZSTD_count.exit1645 ], [ %offBase.i.2, %land.lhs.true372.i ], [ 0, %if.then364.i ] %matchLength.i.6 = phi i64 [ %add392.i1885, %if.then409.i ], [ %matchLength.i.4, %land.lhs.true406.i ], [ %matchLength.i.4, %ZSTD_count.exit1645 ], [ %matchLength.i.4, %land.lhs.true372.i ], [ %matchLength.i.4, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - %83 = load ptr, ptr %base4.i, align 8 - %84 = load i32, ptr %nextToUpdate.i.i1372, align 4 - %idx.ext.i.i1649 = zext i32 %84 to i64 - %add.ptr.i.i1650 = getelementptr inbounds i8, ptr %83, i64 %idx.ext.i.i1649 - %cmp.i.i1651 = icmp ugt ptr %add.ptr.i.i1650, %incdec.ptr367.i - switch i32 %spec.select1890, label %sw.epilog44.i [ + switch i32 %spec.select1890, label %default.unreachable [ i32 4, label %sw.bb7.i132 i32 5, label %sw.bb9.i i32 6, label %sw.bb11.i ] sw.bb7.i132: ; preds = %if.end473.i + %87 = load ptr, ptr %base4.i, align 8 + %88 = load i32, ptr %nextToUpdate.i.i1372, align 4 + %idx.ext.i.i1649 = zext i32 %88 to i64 + %add.ptr.i.i1650 = getelementptr inbounds i8, ptr %87, i64 %idx.ext.i.i1649 + %cmp.i.i1651 = icmp ugt ptr %add.ptr.i.i1650, %incdec.ptr367.i br i1 %cmp.i.i1651, label %if.end500.i, label %if.end.i.i1652 if.end.i.i1652: ; preds = %sw.bb7.i132 - %85 = load ptr, ptr %hashTable2.i.i1377, align 8 - %86 = load ptr, ptr %chainTable.i.i1378, align 8 - %87 = load i32, ptr %chainLog.i.i1379, align 4 - %sub.i.i1656 = add i32 %87, -1 + %89 = load ptr, ptr %hashTable2.i.i1377, align 8 + %90 = load ptr, ptr %chainTable.i.i1378, align 8 + %91 = load i32, ptr %chainLog.i.i1379, align 4 + %sub.i.i1656 = add i32 %91, -1 %notmask.i.i1657 = shl nsw i32 -1, %sub.i.i1656 %sub4.i.i1658 = xor i32 %notmask.i.i1657, -1 %sub.ptr.lhs.cast.i.i1659 = ptrtoint ptr %incdec.ptr367.i to i64 - %sub.ptr.rhs.cast.i.i1660 = ptrtoint ptr %83 to i64 + %sub.ptr.rhs.cast.i.i1660 = ptrtoint ptr %87 to i64 %sub.ptr.sub.i.i1661 = sub i64 %sub.ptr.lhs.cast.i.i1659, %sub.ptr.rhs.cast.i.i1660 %conv.i.i1662 = trunc i64 %sub.ptr.sub.i.i1661 to i32 - %cmp71.i.i1663 = icmp ult i32 %84, %conv.i.i1662 + %cmp71.i.i1663 = icmp ult i32 %88, %conv.i.i1662 br i1 %cmp71.i.i1663, label %for.body.lr.ph.i.i1667, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1667: ; preds = %if.end.i.i1652 - %88 = load i32, ptr %hashLog3.i.i1392, align 4 - %sub.i.i.i.i1669 = sub i32 32, %88 - %89 = and i64 %sub.ptr.sub.i.i1661, 4294967295 + %92 = load i32, ptr %hashLog3.i.i1392, align 4 + %sub.i.i.i.i1669 = sub i32 32, %92 + %93 = and i64 %sub.ptr.sub.i.i1661, 4294967295 br label %for.body.i.i1670 for.body.i.i1670: ; preds = %for.body.i.i1670, %for.body.lr.ph.i.i1667 %indvars.iv24.i.i1671 = phi i64 [ %indvars.iv.next25.i.i1683, %for.body.i.i1670 ], [ %idx.ext.i.i1649, %for.body.lr.ph.i.i1667 ] - %add.ptr.i9.i1672 = getelementptr inbounds i8, ptr %83, i64 %indvars.iv24.i.i1671 + %add.ptr.i9.i1672 = getelementptr inbounds i8, ptr %87, i64 %indvars.iv24.i.i1671 %add.ptr.val.i.i1673 = load i32, ptr %add.ptr.i9.i1672, align 1 %mul.i.i.i.i1674 = mul i32 %add.ptr.val.i.i1673, -1640531535 %shr.i.i.i.i1675 = lshr i32 %mul.i.i.i.i1674, %sub.i.i.i.i1669 %conv.i.i.i1676 = zext i32 %shr.i.i.i.i1675 to i64 - %arrayidx.i.i1677 = getelementptr inbounds i32, ptr %85, i64 %conv.i.i.i1676 - %90 = load i32, ptr %arrayidx.i.i1677, align 4 - %91 = trunc i64 %indvars.iv24.i.i1671 to i32 - %and.i.i1678 = and i32 %91, %sub4.i.i1658 + %arrayidx.i.i1677 = getelementptr inbounds i32, ptr %89, i64 %conv.i.i.i1676 + %94 = load i32, ptr %arrayidx.i.i1677, align 4 + %95 = trunc i64 %indvars.iv24.i.i1671 to i32 + %and.i.i1678 = and i32 %95, %sub4.i.i1658 %mul.i.i1679 = shl nuw i32 %and.i.i1678, 1 %idx.ext9.i.i1680 = zext i32 %mul.i.i1679 to i64 - %add.ptr10.i.i1681 = getelementptr inbounds i32, ptr %86, i64 %idx.ext9.i.i1680 + %add.ptr10.i.i1681 = getelementptr inbounds i32, ptr %90, i64 %idx.ext9.i.i1680 %add.ptr11.i.i1682 = getelementptr inbounds i32, ptr %add.ptr10.i.i1681, i64 1 - store i32 %91, ptr %arrayidx.i.i1677, align 4 - store i32 %90, ptr %add.ptr10.i.i1681, align 4 + store i32 %95, ptr %arrayidx.i.i1677, align 4 + store i32 %94, ptr %add.ptr10.i.i1681, align 4 store i32 1, ptr %add.ptr11.i.i1682, align 4 %indvars.iv.next25.i.i1683 = add nuw nsw i64 %indvars.iv24.i.i1671, 1 - %exitcond.not.i1684 = icmp eq i64 %indvars.iv.next25.i.i1683, %89 + %exitcond.not.i1684 = icmp eq i64 %indvars.iv.next25.i.i1683, %93 br i1 %exitcond.not.i1684, label %ZSTD_searchMax.exit, label %for.body.i.i1670, !llvm.loop !27 sw.bb9.i: ; preds = %if.end473.i - br i1 %cmp.i.i1651, label %if.end500.i, label %if.end.i.i1691 + %96 = load ptr, ptr %base4.i, align 8 + %97 = load i32, ptr %nextToUpdate.i.i1372, align 4 + %idx.ext.i.i1688 = zext i32 %97 to i64 + %add.ptr.i.i1689 = getelementptr inbounds i8, ptr %96, i64 %idx.ext.i.i1688 + %cmp.i.i1690 = icmp ugt ptr %add.ptr.i.i1689, %incdec.ptr367.i + br i1 %cmp.i.i1690, label %if.end500.i, label %if.end.i.i1691 if.end.i.i1691: ; preds = %sw.bb9.i - %92 = load ptr, ptr %hashTable2.i.i1377, align 8 - %93 = load ptr, ptr %chainTable.i.i1378, align 8 - %94 = load i32, ptr %chainLog.i.i1379, align 4 - %sub.i.i1695 = add i32 %94, -1 + %98 = load ptr, ptr %hashTable2.i.i1377, align 8 + %99 = load ptr, ptr %chainTable.i.i1378, align 8 + %100 = load i32, ptr %chainLog.i.i1379, align 4 + %sub.i.i1695 = add i32 %100, -1 %notmask.i.i1696 = shl nsw i32 -1, %sub.i.i1695 %sub4.i.i1697 = xor i32 %notmask.i.i1696, -1 %sub.ptr.lhs.cast.i.i1698 = ptrtoint ptr %incdec.ptr367.i to i64 - %sub.ptr.rhs.cast.i.i1699 = ptrtoint ptr %83 to i64 + %sub.ptr.rhs.cast.i.i1699 = ptrtoint ptr %96 to i64 %sub.ptr.sub.i.i1700 = sub i64 %sub.ptr.lhs.cast.i.i1698, %sub.ptr.rhs.cast.i.i1699 %conv.i.i1701 = trunc i64 %sub.ptr.sub.i.i1700 to i32 - %cmp71.i.i1702 = icmp ult i32 %84, %conv.i.i1701 + %cmp71.i.i1702 = icmp ult i32 %97, %conv.i.i1701 br i1 %cmp71.i.i1702, label %for.body.lr.ph.i.i1706, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1706: ; preds = %if.end.i.i1691 - %95 = load i32, ptr %hashLog3.i.i1392, align 4 - %sub.i.i29.i.i1708 = sub i32 64, %95 + %101 = load i32, ptr %hashLog3.i.i1392, align 4 + %sub.i.i29.i.i1708 = sub i32 64, %101 %sh_prom.i.i.i.i1709 = zext nneg i32 %sub.i.i29.i.i1708 to i64 - %96 = and i64 %sub.ptr.sub.i.i1700, 4294967295 + %102 = and i64 %sub.ptr.sub.i.i1700, 4294967295 br label %for.body.us4.i.i1710 for.body.us4.i.i1710: ; preds = %for.body.us4.i.i1710, %for.body.lr.ph.i.i1706 - %indvars.iv.i.i1711 = phi i64 [ %indvars.iv.next.i.i1722, %for.body.us4.i.i1710 ], [ %idx.ext.i.i1649, %for.body.lr.ph.i.i1706 ] - %add.ptr.us7.i.i1712 = getelementptr inbounds i8, ptr %83, i64 %indvars.iv.i.i1711 + %indvars.iv.i.i1711 = phi i64 [ %indvars.iv.next.i.i1722, %for.body.us4.i.i1710 ], [ %idx.ext.i.i1688, %for.body.lr.ph.i.i1706 ] + %add.ptr.us7.i.i1712 = getelementptr inbounds i8, ptr %96, i64 %indvars.iv.i.i1711 %add.ptr.val26.us.i.i1713 = load i64, ptr %add.ptr.us7.i.i1712, align 1 %mul.i.i28.us.i.i1714 = mul i64 %add.ptr.val26.us.i.i1713, -3523014627271114752 %shr.i.i30.us.i.i1715 = lshr i64 %mul.i.i28.us.i.i1714, %sh_prom.i.i.i.i1709 - %arrayidx.us10.i.i1716 = getelementptr inbounds i32, ptr %92, i64 %shr.i.i30.us.i.i1715 - %97 = load i32, ptr %arrayidx.us10.i.i1716, align 4 - %98 = trunc i64 %indvars.iv.i.i1711 to i32 - %and.us11.i.i1717 = and i32 %98, %sub4.i.i1697 + %arrayidx.us10.i.i1716 = getelementptr inbounds i32, ptr %98, i64 %shr.i.i30.us.i.i1715 + %103 = load i32, ptr %arrayidx.us10.i.i1716, align 4 + %104 = trunc i64 %indvars.iv.i.i1711 to i32 + %and.us11.i.i1717 = and i32 %104, %sub4.i.i1697 %mul.us12.i.i1718 = shl nuw i32 %and.us11.i.i1717, 1 %idx.ext9.us13.i.i1719 = zext i32 %mul.us12.i.i1718 to i64 - %add.ptr10.us14.i.i1720 = getelementptr inbounds i32, ptr %93, i64 %idx.ext9.us13.i.i1719 + %add.ptr10.us14.i.i1720 = getelementptr inbounds i32, ptr %99, i64 %idx.ext9.us13.i.i1719 %add.ptr11.us15.i.i1721 = getelementptr inbounds i32, ptr %add.ptr10.us14.i.i1720, i64 1 - store i32 %98, ptr %arrayidx.us10.i.i1716, align 4 - store i32 %97, ptr %add.ptr10.us14.i.i1720, align 4 + store i32 %104, ptr %arrayidx.us10.i.i1716, align 4 + store i32 %103, ptr %add.ptr10.us14.i.i1720, align 4 store i32 1, ptr %add.ptr11.us15.i.i1721, align 4 %indvars.iv.next.i.i1722 = add nuw nsw i64 %indvars.iv.i.i1711, 1 - %exitcond.not.i1723 = icmp eq i64 %indvars.iv.next.i.i1722, %96 + %exitcond.not.i1723 = icmp eq i64 %indvars.iv.next.i.i1722, %102 br i1 %exitcond.not.i1723, label %ZSTD_searchMax.exit, label %for.body.us4.i.i1710, !llvm.loop !27 sw.bb11.i: ; preds = %if.end473.i - br i1 %cmp.i.i1651, label %if.end500.i, label %if.end.i.i1730 + %105 = load ptr, ptr %base4.i, align 8 + %106 = load i32, ptr %nextToUpdate.i.i1372, align 4 + %idx.ext.i.i1727 = zext i32 %106 to i64 + %add.ptr.i.i1728 = getelementptr inbounds i8, ptr %105, i64 %idx.ext.i.i1727 + %cmp.i.i1729 = icmp ugt ptr %add.ptr.i.i1728, %incdec.ptr367.i + br i1 %cmp.i.i1729, label %if.end500.i, label %if.end.i.i1730 if.end.i.i1730: ; preds = %sw.bb11.i - %99 = load ptr, ptr %hashTable2.i.i1377, align 8 - %100 = load ptr, ptr %chainTable.i.i1378, align 8 - %101 = load i32, ptr %chainLog.i.i1379, align 4 - %sub.i.i1734 = add i32 %101, -1 + %107 = load ptr, ptr %hashTable2.i.i1377, align 8 + %108 = load ptr, ptr %chainTable.i.i1378, align 8 + %109 = load i32, ptr %chainLog.i.i1379, align 4 + %sub.i.i1734 = add i32 %109, -1 %notmask.i.i1735 = shl nsw i32 -1, %sub.i.i1734 %sub4.i.i1736 = xor i32 %notmask.i.i1735, -1 %sub.ptr.lhs.cast.i.i1737 = ptrtoint ptr %incdec.ptr367.i to i64 - %sub.ptr.rhs.cast.i.i1738 = ptrtoint ptr %83 to i64 + %sub.ptr.rhs.cast.i.i1738 = ptrtoint ptr %105 to i64 %sub.ptr.sub.i.i1739 = sub i64 %sub.ptr.lhs.cast.i.i1737, %sub.ptr.rhs.cast.i.i1738 %conv.i.i1740 = trunc i64 %sub.ptr.sub.i.i1739 to i32 - %cmp71.i.i1741 = icmp ult i32 %84, %conv.i.i1740 + %cmp71.i.i1741 = icmp ult i32 %106, %conv.i.i1740 br i1 %cmp71.i.i1741, label %for.body.lr.ph.i.i1745, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1745: ; preds = %if.end.i.i1730 - %102 = load i32, ptr %hashLog3.i.i1392, align 4 - %sub.i.i29.i.i1747 = sub i32 64, %102 + %110 = load i32, ptr %hashLog3.i.i1392, align 4 + %sub.i.i29.i.i1747 = sub i32 64, %110 %sh_prom.i.i.i.i1748 = zext nneg i32 %sub.i.i29.i.i1747 to i64 - %103 = and i64 %sub.ptr.sub.i.i1739, 4294967295 + %111 = and i64 %sub.ptr.sub.i.i1739, 4294967295 br label %for.body.us.i.i1749 for.body.us.i.i1749: ; preds = %for.body.us.i.i1749, %for.body.lr.ph.i.i1745 - %indvars.iv21.i.i1750 = phi i64 [ %indvars.iv.next22.i.i1761, %for.body.us.i.i1749 ], [ %idx.ext.i.i1649, %for.body.lr.ph.i.i1745 ] - %add.ptr.us.i.i1751 = getelementptr inbounds i8, ptr %83, i64 %indvars.iv21.i.i1750 + %indvars.iv21.i.i1750 = phi i64 [ %indvars.iv.next22.i.i1761, %for.body.us.i.i1749 ], [ %idx.ext.i.i1727, %for.body.lr.ph.i.i1745 ] + %add.ptr.us.i.i1751 = getelementptr inbounds i8, ptr %105, i64 %indvars.iv21.i.i1750 %add.ptr.val27.us.i.i1752 = load i64, ptr %add.ptr.us.i.i1751, align 1 %mul.i.i31.us.i.i1753 = mul i64 %add.ptr.val27.us.i.i1752, -3523014627193847808 %shr.i.i34.us.i.i1754 = lshr i64 %mul.i.i31.us.i.i1753, %sh_prom.i.i.i.i1748 - %arrayidx.us.i.i1755 = getelementptr inbounds i32, ptr %99, i64 %shr.i.i34.us.i.i1754 - %104 = load i32, ptr %arrayidx.us.i.i1755, align 4 - %105 = trunc i64 %indvars.iv21.i.i1750 to i32 - %and.us.i.i1756 = and i32 %105, %sub4.i.i1736 + %arrayidx.us.i.i1755 = getelementptr inbounds i32, ptr %107, i64 %shr.i.i34.us.i.i1754 + %112 = load i32, ptr %arrayidx.us.i.i1755, align 4 + %113 = trunc i64 %indvars.iv21.i.i1750 to i32 + %and.us.i.i1756 = and i32 %113, %sub4.i.i1736 %mul.us.i.i1757 = shl nuw i32 %and.us.i.i1756, 1 %idx.ext9.us.i.i1758 = zext i32 %mul.us.i.i1757 to i64 - %add.ptr10.us.i.i1759 = getelementptr inbounds i32, ptr %100, i64 %idx.ext9.us.i.i1758 + %add.ptr10.us.i.i1759 = getelementptr inbounds i32, ptr %108, i64 %idx.ext9.us.i.i1758 %add.ptr11.us.i.i1760 = getelementptr inbounds i32, ptr %add.ptr10.us.i.i1759, i64 1 - store i32 %105, ptr %arrayidx.us.i.i1755, align 4 - store i32 %104, ptr %add.ptr10.us.i.i1759, align 4 + store i32 %113, ptr %arrayidx.us.i.i1755, align 4 + store i32 %112, ptr %add.ptr10.us.i.i1759, align 4 store i32 1, ptr %add.ptr11.us.i.i1760, align 4 %indvars.iv.next22.i.i1761 = add nuw nsw i64 %indvars.iv21.i.i1750, 1 - %exitcond.not.i1762 = icmp eq i64 %indvars.iv.next22.i.i1761, %103 + %exitcond.not.i1762 = icmp eq i64 %indvars.iv.next22.i.i1761, %111 br i1 %exitcond.not.i1762, label %ZSTD_searchMax.exit, label %for.body.us.i.i1749, !llvm.loop !27 -sw.epilog44.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %for.body.us.i.i1749, %for.body.us4.i.i1710, %for.body.i.i1670, %if.end.i.i1730, %if.end.i.i1691, %if.end.i.i1652 %conv.i.i1740.sink = phi i32 [ %conv.i.i1662, %if.end.i.i1652 ], [ %conv.i.i1701, %if.end.i.i1691 ], [ %conv.i.i1740, %if.end.i.i1730 ], [ %conv.i.i1662, %for.body.i.i1670 ], [ %conv.i.i1701, %for.body.us4.i.i1710 ], [ %conv.i.i1740, %for.body.us.i.i1749 ] store i32 %conv.i.i1740.sink, ptr %nextToUpdate.i.i1372, align 4 @@ -19590,18 +19481,18 @@ ZSTD_searchMax.exit: ; preds = %for.body.us.i.i1749 land.lhs.true494.i: ; preds = %ZSTD_searchMax.exit %conv486.i = trunc i64 %offBase.i.4 to i32 - %106 = tail call i32 @llvm.ctlz.i32(i32 %conv486.i, i1 true), !range !25 - %107 = load i64, ptr %ofbCandidate474.i, align 8 - %conv479.i = trunc i64 %107 to i32 - %108 = tail call i32 @llvm.ctlz.i32(i32 %conv479.i, i1 true), !range !25 - %sub.i1764 = xor i32 %108, 31 + %114 = tail call i32 @llvm.ctlz.i32(i32 %conv486.i, i1 true), !range !25 + %115 = load i64, ptr %ofbCandidate474.i, align 8 + %conv479.i = trunc i64 %115 to i32 + %116 = tail call i32 @llvm.ctlz.i32(i32 %conv479.i, i1 true), !range !25 + %sub.i1764 = xor i32 %116, 31 %matchLength.i.6.tr = trunc i64 %matchLength.i.6 to i32 - %109 = shl i32 %matchLength.i.6.tr, 2 - %110 = add nsw i32 %106, -24 - %conv491.i = add i32 %110, %109 + %117 = shl i32 %matchLength.i.6.tr, 2 + %118 = add nsw i32 %114, -24 + %conv491.i = add i32 %118, %117 %retval.i120.0.tr = trunc i64 %call.i.i1743 to i32 - %111 = shl i32 %retval.i120.0.tr, 2 - %conv483.i = sub i32 %111, %sub.i1764 + %119 = shl i32 %retval.i120.0.tr, 2 + %conv483.i = sub i32 %119, %sub.i1764 %cmp495.i = icmp sgt i32 %conv483.i, %conv491.i br i1 %cmp495.i, label %while.cond227.i.backedge, label %if.end500.i @@ -19627,12 +19518,12 @@ while.cond507.i.preheader: ; preds = %if.end500.i land.rhs.i: ; preds = %while.cond507.i.preheader, %while.body526.i %matchLength.i.91945 = phi i64 [ %inc.i, %while.body526.i ], [ %matchLength.i.8, %while.cond507.i.preheader ] %start.i.71944 = phi ptr [ %arrayidx517.i, %while.body526.i ], [ %start.i.6, %while.cond507.i.preheader ] - %112 = getelementptr inbounds i8, ptr %start.i.71944, i64 %idx.neg511.i + %120 = getelementptr inbounds i8, ptr %start.i.71944, i64 %idx.neg511.i %arrayidx517.i = getelementptr inbounds i8, ptr %start.i.71944, i64 -1 - %113 = load i8, ptr %arrayidx517.i, align 1 - %arrayidx522.i = getelementptr inbounds i8, ptr %112, i64 -1 - %114 = load i8, ptr %arrayidx522.i, align 1 - %cmp524.i = icmp eq i8 %113, %114 + %121 = load i8, ptr %arrayidx517.i, align 1 + %arrayidx522.i = getelementptr inbounds i8, ptr %120, i64 -1 + %122 = load i8, ptr %arrayidx522.i, align 1 + %cmp524.i = icmp eq i8 %121, %122 br i1 %cmp524.i, label %while.body526.i, label %if.end576.i while.body526.i: ; preds = %land.rhs.i @@ -19646,12 +19537,12 @@ while.body526.i: ; preds = %land.rhs.i if.end576.i: ; preds = %land.rhs.i, %while.body526.i, %while.cond507.i.preheader %start.i.7.lcssa = phi ptr [ %start.i.6, %while.cond507.i.preheader ], [ %arrayidx517.i, %while.body526.i ], [ %start.i.71944, %land.rhs.i ] %matchLength.i.9.lcssa = phi i64 [ %matchLength.i.8, %while.cond507.i.preheader ], [ %inc.i, %while.body526.i ], [ %matchLength.i.91945, %land.rhs.i ] - %115 = trunc i64 %offBase.i.6 to i32 - %conv578.i = add i32 %115, -3 + %123 = trunc i64 %offBase.i.6 to i32 + %conv578.i = add i32 %123, -3 br label %_storeSequence.i _storeSequence.i: ; preds = %if.end500.i._storeSequence.i_crit_edge, %if.end576.i - %conv583.i.pre-phi = phi i32 [ %.pre2008, %if.end500.i._storeSequence.i_crit_edge ], [ %115, %if.end576.i ] + %conv583.i.pre-phi = phi i32 [ %.pre2008, %if.end500.i._storeSequence.i_crit_edge ], [ %123, %if.end576.i ] %start.i.11 = phi ptr [ %start.i.6, %if.end500.i._storeSequence.i_crit_edge ], [ %start.i.7.lcssa, %if.end576.i ] %matchLength.i.13 = phi i64 [ %matchLength.i.8, %if.end500.i._storeSequence.i_crit_edge ], [ %matchLength.i.9.lcssa, %if.end576.i ] %offset_2.i.3 = phi i32 [ %offset_2.i.2.ph1964, %if.end500.i._storeSequence.i_crit_edge ], [ %offset_1.i.1.ph1965, %if.end576.i ] @@ -19660,15 +19551,15 @@ _storeSequence.i: ; preds = %if.end500.i._storeS %sub.ptr.sub582.i = sub i64 %sub.ptr.lhs.cast580.i, %sub.ptr.rhs.cast216.i %add.ptr1.i608 = getelementptr inbounds i8, ptr %anchor.i.0.ph1966, i64 %sub.ptr.sub582.i %cmp.i609.not = icmp ugt ptr %add.ptr1.i608, %add.ptr.i607 - %116 = load ptr, ptr %lit.i647, align 8 + %124 = load ptr, ptr %lit.i647, align 8 br i1 %cmp.i609.not, label %if.else.i610, label %if.then.i646 if.then.i646: ; preds = %_storeSequence.i %anchor.i.0.val = load <2 x i64>, ptr %anchor.i.0.ph1966, align 1 - store <2 x i64> %anchor.i.0.val, ptr %116, align 1 + store <2 x i64> %anchor.i.0.val, ptr %124, align 1 %cmp2.i648 = icmp ugt i64 %sub.ptr.sub582.i, 16 - %117 = load ptr, ptr %lit.i647, align 8 - %add.ptr.i661 = getelementptr inbounds i8, ptr %117, i64 %sub.ptr.sub582.i + %125 = load ptr, ptr %lit.i647, align 8 + %add.ptr.i661 = getelementptr inbounds i8, ptr %125, i64 %sub.ptr.sub582.i br i1 %cmp2.i648, label %if.then3.i650, label %if.end8.i612.thread if.end8.i612.thread: ; preds = %if.then.i646 @@ -19678,14 +19569,14 @@ if.end8.i612.thread: ; preds = %if.then.i646 if.then3.i650: ; preds = %if.then.i646 %add.ptr6.i653 = getelementptr inbounds i8, ptr %anchor.i.0.ph1966, i64 16 - %add.ptr5.i652 = getelementptr inbounds i8, ptr %117, i64 16 + %add.ptr5.i652 = getelementptr inbounds i8, ptr %125, i64 16 %add.ptr6.i653.val = load <2 x i64>, ptr %add.ptr6.i653, align 1 store <2 x i64> %add.ptr6.i653.val, ptr %add.ptr5.i652, align 1 %cmp7.i664 = icmp slt i64 %sub.ptr.sub582.i, 33 br i1 %cmp7.i664, label %if.end8.i612, label %if.end.i665 if.end.i665: ; preds = %if.then3.i650 - %add.ptr9.i666 = getelementptr inbounds i8, ptr %117, i64 32 + %add.ptr9.i666 = getelementptr inbounds i8, ptr %125, i64 32 br label %do.body11.i do.body11.i: ; preds = %do.body11.i, %if.end.i665 @@ -19709,14 +19600,14 @@ if.else.i610: ; preds = %_storeSequence.i if.then.i1766: ; preds = %if.else.i610 %sub.ptr.sub.i1769 = sub i64 %sub.ptr.lhs.cast.i1767, %sub.ptr.rhs.cast216.i - %add.ptr.i.i1770 = getelementptr inbounds i8, ptr %116, i64 %sub.ptr.sub.i1769 + %add.ptr.i.i1770 = getelementptr inbounds i8, ptr %124, i64 %sub.ptr.sub.i1769 %ip.val.i = load <2 x i64>, ptr %anchor.i.0.ph1966, align 1 - store <2 x i64> %ip.val.i, ptr %116, align 1 + store <2 x i64> %ip.val.i, ptr %124, align 1 %cmp7.i.i = icmp slt i64 %sub.ptr.sub.i1769, 17 br i1 %cmp7.i.i, label %if.end.i, label %if.end.i.i1771 if.end.i.i1771: ; preds = %if.then.i1766 - %add.ptr9.i.i = getelementptr inbounds i8, ptr %116, i64 16 + %add.ptr9.i.i = getelementptr inbounds i8, ptr %124, i64 16 br label %do.body11.i.i do.body11.i.i: ; preds = %do.body11.i.i, %if.end.i.i1771 @@ -19734,30 +19625,30 @@ do.body11.i.i: ; preds = %do.body11.i.i, %if. br i1 %cmp23.i.i, label %do.body11.i.i, label %if.end.i, !llvm.loop !19 if.end.i: ; preds = %do.body11.i.i, %if.then.i1766, %if.else.i610 - %op.addr.0.i = phi ptr [ %add.ptr.i.i1770, %if.then.i1766 ], [ %116, %if.else.i610 ], [ %add.ptr.i.i1770, %do.body11.i.i ] + %op.addr.0.i = phi ptr [ %add.ptr.i.i1770, %if.then.i1766 ], [ %124, %if.else.i610 ], [ %add.ptr.i.i1770, %do.body11.i.i ] %ip.addr.0.i = phi ptr [ %add.ptr.i607, %if.then.i1766 ], [ %anchor.i.0.ph1966, %if.else.i610 ], [ %add.ptr.i607, %do.body11.i.i ] %cmp432.i = icmp ult ptr %ip.addr.0.i, %add.ptr1.i608 br i1 %cmp432.i, label %while.body.preheader.i, label %if.end8.i612 while.body.preheader.i: ; preds = %if.end.i %ip.addr.036.i = ptrtoint ptr %ip.addr.0.i to i64 - %118 = sub i64 %iend35.i, %ip.addr.036.i - %scevgep.i = getelementptr i8, ptr %ip.addr.0.i, i64 %118 + %126 = sub i64 %iend35.i, %ip.addr.036.i + %scevgep.i = getelementptr i8, ptr %ip.addr.0.i, i64 %126 br label %while.body.i1772 while.body.i1772: ; preds = %while.body.i1772, %while.body.preheader.i %ip.addr.134.i = phi ptr [ %incdec.ptr.i1773, %while.body.i1772 ], [ %ip.addr.0.i, %while.body.preheader.i ] %op.addr.133.i = phi ptr [ %incdec.ptr5.i, %while.body.i1772 ], [ %op.addr.0.i, %while.body.preheader.i ] %incdec.ptr.i1773 = getelementptr inbounds i8, ptr %ip.addr.134.i, i64 1 - %119 = load i8, ptr %ip.addr.134.i, align 1 + %127 = load i8, ptr %ip.addr.134.i, align 1 %incdec.ptr5.i = getelementptr inbounds i8, ptr %op.addr.133.i, i64 1 - store i8 %119, ptr %op.addr.133.i, align 1 + store i8 %127, ptr %op.addr.133.i, align 1 %exitcond.not.i1774 = icmp eq ptr %incdec.ptr.i1773, %scevgep.i br i1 %exitcond.not.i1774, label %if.end8.i612, label %while.body.i1772, !llvm.loop !20 if.end8.i612: ; preds = %do.body11.i, %while.body.i1772, %if.end.i, %if.then3.i650 - %120 = load ptr, ptr %lit.i647, align 8 - %add.ptr10.i614 = getelementptr inbounds i8, ptr %120, i64 %sub.ptr.sub582.i + %128 = load ptr, ptr %lit.i647, align 8 + %add.ptr10.i614 = getelementptr inbounds i8, ptr %128, i64 %sub.ptr.sub582.i store ptr %add.ptr10.i614, ptr %lit.i647, align 8 %cmp11.i615 = icmp ugt i64 %sub.ptr.sub582.i, 65535 %.pre2004 = load ptr, ptr %sequences.i639, align 8 @@ -19765,9 +19656,9 @@ if.end8.i612: ; preds = %do.body11.i, %while if.then12.i637: ; preds = %if.end8.i612 store i32 1, ptr %longLengthType.i638, align 8 - %121 = load ptr, ptr %seqStore, align 8 + %129 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast.i640 = ptrtoint ptr %.pre2004 to i64 - %sub.ptr.rhs.cast.i641 = ptrtoint ptr %121 to i64 + %sub.ptr.rhs.cast.i641 = ptrtoint ptr %129 to i64 %sub.ptr.sub.i642 = sub i64 %sub.ptr.lhs.cast.i640, %sub.ptr.rhs.cast.i641 %sub.ptr.div.i643 = lshr exact i64 %sub.ptr.sub.i642, 3 %conv.i644 = trunc i64 %sub.ptr.div.i643 to i32 @@ -19775,12 +19666,12 @@ if.then12.i637: ; preds = %if.end8.i612 br label %if.end13.i616 if.end13.i616: ; preds = %if.end8.i612.thread, %if.then12.i637, %if.end8.i612 - %122 = phi ptr [ %.pre, %if.end8.i612.thread ], [ %.pre2004, %if.then12.i637 ], [ %.pre2004, %if.end8.i612 ] + %130 = phi ptr [ %.pre, %if.end8.i612.thread ], [ %.pre2004, %if.then12.i637 ], [ %.pre2004, %if.end8.i612 ] %conv14.i617 = trunc i64 %sub.ptr.sub582.i to i16 - %litLength16.i619 = getelementptr inbounds %struct.seqDef_s, ptr %122, i64 0, i32 1 + %litLength16.i619 = getelementptr inbounds %struct.seqDef_s, ptr %130, i64 0, i32 1 store i16 %conv14.i617, ptr %litLength16.i619, align 4 - %123 = load ptr, ptr %sequences.i639, align 8 - store i32 %conv583.i.pre-phi, ptr %123, align 4 + %131 = load ptr, ptr %sequences.i639, align 8 + store i32 %conv583.i.pre-phi, ptr %131, align 4 %sub20.i621 = add i64 %matchLength.i.13, -3 %cmp21.i622 = icmp ugt i64 %sub20.i621, 65535 %.pre2005 = load ptr, ptr %sequences.i639, align 8 @@ -19788,9 +19679,9 @@ if.end13.i616: ; preds = %if.end8.i612.thread if.then23.i628: ; preds = %if.end13.i616 store i32 2, ptr %longLengthType.i638, align 8 - %124 = load ptr, ptr %seqStore, align 8 + %132 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast27.i631 = ptrtoint ptr %.pre2005 to i64 - %sub.ptr.rhs.cast28.i632 = ptrtoint ptr %124 to i64 + %sub.ptr.rhs.cast28.i632 = ptrtoint ptr %132 to i64 %sub.ptr.sub29.i633 = sub i64 %sub.ptr.lhs.cast27.i631, %sub.ptr.rhs.cast28.i632 %sub.ptr.div30.i634 = lshr exact i64 %sub.ptr.sub29.i633, 3 %conv31.i635 = trunc i64 %sub.ptr.div30.i634 to i32 @@ -19801,12 +19692,12 @@ ZSTD_storeSeq.exit655: ; preds = %if.then23.i628, %if %conv34.i623 = trunc i64 %sub20.i621 to i16 %mlBase37.i625 = getelementptr inbounds %struct.seqDef_s, ptr %.pre2005, i64 0, i32 2 store i16 %conv34.i623, ptr %mlBase37.i625, align 2 - %125 = load ptr, ptr %sequences.i639, align 8 - %incdec.ptr.i627 = getelementptr inbounds %struct.seqDef_s, ptr %125, i64 1 + %133 = load ptr, ptr %sequences.i639, align 8 + %incdec.ptr.i627 = getelementptr inbounds %struct.seqDef_s, ptr %133, i64 1 store ptr %incdec.ptr.i627, ptr %sequences.i639, align 8 %add.ptr584.i = getelementptr inbounds i8, ptr %start.i.11, i64 %matchLength.i.13 - %126 = load i32, ptr %lazySkipping.i, align 4 - %tobool586.i.not = icmp eq i32 %126, 0 + %134 = load i32, ptr %lazySkipping.i, align 4 + %tobool586.i.not = icmp eq i32 %134, 0 br i1 %tobool586.i.not, label %if.end646.i, label %if.end592.i if.end592.i: ; preds = %ZSTD_storeSeq.exit655 @@ -19845,8 +19736,8 @@ if.then.i1815: ; preds = %while.body666.i br i1 %tobool.not.i1819, label %while.cond.i1822, label %if.then2.i1820 if.then2.i1820: ; preds = %if.then.i1815 - %127 = tail call i64 @llvm.cttz.i64(i64 %xor.i1818, i1 true), !range !16 - %shr.i.i1821 = lshr i64 %127, 3 + %135 = tail call i64 @llvm.cttz.i64(i64 %xor.i1818, i1 true), !range !16 + %shr.i.i1821 = lshr i64 %135, 3 br label %ZSTD_count.exit1839 while.cond.i1822: ; preds = %if.then.i1815, %while.body.i1828 @@ -19865,8 +19756,8 @@ while.body.i1828: ; preds = %while.cond.i1822 br i1 %tobool12.not.i1832, label %while.cond.i1822, label %if.end16.i1833, !llvm.loop !17 if.end16.i1833: ; preds = %while.body.i1828 - %128 = tail call i64 @llvm.cttz.i64(i64 %xor11.i1831, i1 true), !range !16 - %shr.i35.i1834 = lshr i64 %128, 3 + %136 = tail call i64 @llvm.cttz.i64(i64 %xor11.i1831, i1 true), !range !16 + %shr.i35.i1834 = lshr i64 %136, 3 %add.ptr18.i1835 = getelementptr inbounds i8, ptr %pIn.addr.0.i1825, i64 %shr.i35.i1834 %sub.ptr.lhs.cast.i1836 = ptrtoint ptr %add.ptr18.i1835 to i64 %sub.ptr.rhs.cast.i1837 = ptrtoint ptr %add.ptr667.i to i64 @@ -19914,9 +19805,9 @@ if.end47.i1787: ; preds = %if.then44.i1805, %l br i1 %cmp48.i1790, label %land.lhs.true50.i1797, label %if.end56.i1791 land.lhs.true50.i1797: ; preds = %if.end47.i1787 - %129 = load i8, ptr %pMatch.addr.3.i1788, align 1 - %130 = load i8, ptr %pIn.addr.3.i1789, align 1 - %cmp53.i1798 = icmp eq i8 %129, %130 + %137 = load i8, ptr %pMatch.addr.3.i1788, align 1 + %138 = load i8, ptr %pIn.addr.3.i1789, align 1 + %cmp53.i1798 = icmp eq i8 %137, %138 %spec.select.idx.i1799 = zext i1 %cmp53.i1798 to i64 %spec.select.i1800 = getelementptr inbounds i8, ptr %pIn.addr.3.i1789, i64 %spec.select.idx.i1799 br label %if.end56.i1791 @@ -19935,17 +19826,17 @@ ZSTD_count.exit1839: ; preds = %if.then2.i1820, %if br i1 %cmp.i551.not, label %if.end13.i558, label %if.then.i588 if.then.i588: ; preds = %ZSTD_count.exit1839 - %131 = load ptr, ptr %lit.i647, align 8 + %139 = load ptr, ptr %lit.i647, align 8 %ip.i.4.val1341 = load <2 x i64>, ptr %ip.i.41956, align 1 - store <2 x i64> %ip.i.4.val1341, ptr %131, align 1 + store <2 x i64> %ip.i.4.val1341, ptr %139, align 1 br label %if.end13.i558 if.end13.i558: ; preds = %ZSTD_count.exit1839, %if.then.i588 - %132 = load ptr, ptr %sequences.i639, align 8 - %litLength16.i561 = getelementptr inbounds %struct.seqDef_s, ptr %132, i64 0, i32 1 + %140 = load ptr, ptr %sequences.i639, align 8 + %litLength16.i561 = getelementptr inbounds %struct.seqDef_s, ptr %140, i64 0, i32 1 store i16 0, ptr %litLength16.i561, align 4 - %133 = load ptr, ptr %sequences.i639, align 8 - store i32 1, ptr %133, align 4 + %141 = load ptr, ptr %sequences.i639, align 8 + store i32 1, ptr %141, align 4 %sub20.i563 = add i64 %retval.0.i1796, 1 %cmp21.i564 = icmp ugt i64 %sub20.i563, 65535 %.pre2006 = load ptr, ptr %sequences.i639, align 8 @@ -19953,9 +19844,9 @@ if.end13.i558: ; preds = %ZSTD_count.exit1839 if.then23.i570: ; preds = %if.end13.i558 store i32 2, ptr %longLengthType.i638, align 8 - %134 = load ptr, ptr %seqStore, align 8 + %142 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast27.i573 = ptrtoint ptr %.pre2006 to i64 - %sub.ptr.rhs.cast28.i574 = ptrtoint ptr %134 to i64 + %sub.ptr.rhs.cast28.i574 = ptrtoint ptr %142 to i64 %sub.ptr.sub29.i575 = sub i64 %sub.ptr.lhs.cast27.i573, %sub.ptr.rhs.cast28.i574 %sub.ptr.div30.i576 = lshr exact i64 %sub.ptr.sub29.i575, 3 %conv31.i577 = trunc i64 %sub.ptr.div30.i576 to i32 @@ -19966,8 +19857,8 @@ ZSTD_storeSeq.exit597: ; preds = %if.then23.i570, %if %conv34.i565 = trunc i64 %sub20.i563 to i16 %mlBase37.i567 = getelementptr inbounds %struct.seqDef_s, ptr %.pre2006, i64 0, i32 2 store i16 %conv34.i565, ptr %mlBase37.i567, align 2 - %135 = load ptr, ptr %sequences.i639, align 8 - %incdec.ptr.i569 = getelementptr inbounds %struct.seqDef_s, ptr %135, i64 1 + %143 = load ptr, ptr %sequences.i639, align 8 + %incdec.ptr.i569 = getelementptr inbounds %struct.seqDef_s, ptr %143, i64 1 store ptr %incdec.ptr.i569, ptr %sequences.i639, align 8 %add.ptr676.i = getelementptr inbounds i8, ptr %ip.i.41956, i64 %add673.i %cmp651.i = icmp ule ptr %add.ptr676.i, %add.ptr1.i @@ -20127,7 +20018,7 @@ if.end206.i: ; preds = %land.lhs.true154.i, %idx.ext.i.i = zext i32 %13 to i64 %add.ptr.i.i = getelementptr inbounds i8, ptr %12, i64 %idx.ext.i.i %cmp.i.i = icmp ugt ptr %add.ptr.i.i, %ip.i.01703 - switch i32 %spec.select1683, label %sw.epilog151.i419 [ + switch i32 %spec.select1683, label %if.end206.i.unreachabledefault [ i32 4, label %sw.bb112.i425 i32 5, label %sw.bb114.i423 i32 6, label %sw.bb116.i421 @@ -20265,7 +20156,10 @@ for.body.us.i.i: ; preds = %for.body.us.i.i, %f %exitcond.not.i1384 = icmp eq i64 %indvars.iv.next22.i.i, %32 br i1 %exitcond.not.i1384, label %ZSTD_searchMax.exit524.sink.split, label %for.body.us.i.i, !llvm.loop !27 -sw.epilog151.i419: ; preds = %if.end206.i +if.end206.i.unreachabledefault: ; preds = %if.end206.i + unreachable + +default.unreachable: ; preds = %if.end473.i, %if.end334.i unreachable ZSTD_searchMax.exit524.sink.split: ; preds = %for.body.us.i.i, %for.body.us4.i.i, %for.body.i.i, %if.end.i.i1365, %if.end.i.i1342, %if.end.i.i @@ -20355,18 +20249,18 @@ if.end334.i: ; preds = %while.body230.i, %l %offBase.i.3 = phi i64 [ 1, %if.then331.i ], [ %offBase.i.11711, %land.lhs.true328.i ], [ %offBase.i.11711, %if.then302.i ], [ %offBase.i.11711, %land.lhs.true297.i ], [ %offBase.i.11711, %while.body230.i ] %matchLength.i.5 = phi i64 [ %add314.i, %if.then331.i ], [ %matchLength.i.31712, %land.lhs.true328.i ], [ %matchLength.i.31712, %if.then302.i ], [ %matchLength.i.31712, %land.lhs.true297.i ], [ %matchLength.i.31712, %while.body230.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - %42 = load ptr, ptr %base4.i, align 8 - %43 = load i32, ptr %nextToUpdate.i.i1361, align 4 - %idx.ext.i.i1388 = zext i32 %43 to i64 - %add.ptr.i.i1389 = getelementptr inbounds i8, ptr %42, i64 %idx.ext.i.i1388 - %cmp.i.i1390 = icmp ugt ptr %add.ptr.i.i1389, %incdec.ptr.i - switch i32 %spec.select1683, label %sw.epilog151.i225 [ + switch i32 %spec.select1683, label %default.unreachable [ i32 4, label %sw.bb112.i231 i32 5, label %sw.bb114.i229 i32 6, label %sw.bb116.i227 ] sw.bb112.i231: ; preds = %if.end334.i + %42 = load ptr, ptr %base4.i, align 8 + %43 = load i32, ptr %nextToUpdate.i.i1361, align 4 + %idx.ext.i.i1388 = zext i32 %43 to i64 + %add.ptr.i.i1389 = getelementptr inbounds i8, ptr %42, i64 %idx.ext.i.i1388 + %cmp.i.i1390 = icmp ugt ptr %add.ptr.i.i1389, %incdec.ptr.i br i1 %cmp.i.i1390, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1391 if.end.i.i1391: ; preds = %sw.bb112.i231 @@ -20411,99 +20305,106 @@ for.body.i.i1409: ; preds = %for.body.i.i1409, % br i1 %exitcond.not.i1423, label %ZSTD_searchMax.exit330, label %for.body.i.i1409, !llvm.loop !27 sw.bb114.i229: ; preds = %if.end334.i - br i1 %cmp.i.i1390, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1430 + %51 = load ptr, ptr %base4.i, align 8 + %52 = load i32, ptr %nextToUpdate.i.i1361, align 4 + %idx.ext.i.i1427 = zext i32 %52 to i64 + %add.ptr.i.i1428 = getelementptr inbounds i8, ptr %51, i64 %idx.ext.i.i1427 + %cmp.i.i1429 = icmp ugt ptr %add.ptr.i.i1428, %incdec.ptr.i + br i1 %cmp.i.i1429, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1430 if.end.i.i1430: ; preds = %sw.bb114.i229 - %51 = load ptr, ptr %hashTable2.i.i1366, align 8 - %52 = load ptr, ptr %chainTable.i.i1367, align 8 - %53 = load i32, ptr %chainLog.i.i1368, align 4 - %sub.i.i1434 = add i32 %53, -1 + %53 = load ptr, ptr %hashTable2.i.i1366, align 8 + %54 = load ptr, ptr %chainTable.i.i1367, align 8 + %55 = load i32, ptr %chainLog.i.i1368, align 4 + %sub.i.i1434 = add i32 %55, -1 %notmask.i.i1435 = shl nsw i32 -1, %sub.i.i1434 %sub4.i.i1436 = xor i32 %notmask.i.i1435, -1 - %sub.ptr.rhs.cast.i.i1438 = ptrtoint ptr %42 to i64 + %sub.ptr.rhs.cast.i.i1438 = ptrtoint ptr %51 to i64 %sub.ptr.sub.i.i1439 = sub i64 %sub.ptr.lhs.cast276.i, %sub.ptr.rhs.cast.i.i1438 %conv.i.i1440 = trunc i64 %sub.ptr.sub.i.i1439 to i32 - %cmp71.i.i1441 = icmp ult i32 %43, %conv.i.i1440 + %cmp71.i.i1441 = icmp ult i32 %52, %conv.i.i1440 br i1 %cmp71.i.i1441, label %for.body.lr.ph.i.i1445, label %ZSTD_searchMax.exit330 for.body.lr.ph.i.i1445: ; preds = %if.end.i.i1430 - %54 = load i32, ptr %hashLog3.i.i1381, align 4 - %sub.i.i29.i.i1447 = sub i32 64, %54 + %56 = load i32, ptr %hashLog3.i.i1381, align 4 + %sub.i.i29.i.i1447 = sub i32 64, %56 %sh_prom.i.i.i.i1448 = zext nneg i32 %sub.i.i29.i.i1447 to i64 - %55 = and i64 %sub.ptr.sub.i.i1439, 4294967295 + %57 = and i64 %sub.ptr.sub.i.i1439, 4294967295 br label %for.body.us4.i.i1449 for.body.us4.i.i1449: ; preds = %for.body.us4.i.i1449, %for.body.lr.ph.i.i1445 - %indvars.iv.i.i1450 = phi i64 [ %indvars.iv.next.i.i1461, %for.body.us4.i.i1449 ], [ %idx.ext.i.i1388, %for.body.lr.ph.i.i1445 ] - %add.ptr.us7.i.i1451 = getelementptr inbounds i8, ptr %42, i64 %indvars.iv.i.i1450 + %indvars.iv.i.i1450 = phi i64 [ %indvars.iv.next.i.i1461, %for.body.us4.i.i1449 ], [ %idx.ext.i.i1427, %for.body.lr.ph.i.i1445 ] + %add.ptr.us7.i.i1451 = getelementptr inbounds i8, ptr %51, i64 %indvars.iv.i.i1450 %add.ptr.val26.us.i.i1452 = load i64, ptr %add.ptr.us7.i.i1451, align 1 %mul.i.i28.us.i.i1453 = mul i64 %add.ptr.val26.us.i.i1452, -3523014627271114752 %shr.i.i30.us.i.i1454 = lshr i64 %mul.i.i28.us.i.i1453, %sh_prom.i.i.i.i1448 - %arrayidx.us10.i.i1455 = getelementptr inbounds i32, ptr %51, i64 %shr.i.i30.us.i.i1454 - %56 = load i32, ptr %arrayidx.us10.i.i1455, align 4 - %57 = trunc i64 %indvars.iv.i.i1450 to i32 - %and.us11.i.i1456 = and i32 %57, %sub4.i.i1436 + %arrayidx.us10.i.i1455 = getelementptr inbounds i32, ptr %53, i64 %shr.i.i30.us.i.i1454 + %58 = load i32, ptr %arrayidx.us10.i.i1455, align 4 + %59 = trunc i64 %indvars.iv.i.i1450 to i32 + %and.us11.i.i1456 = and i32 %59, %sub4.i.i1436 %mul.us12.i.i1457 = shl nuw i32 %and.us11.i.i1456, 1 %idx.ext9.us13.i.i1458 = zext i32 %mul.us12.i.i1457 to i64 - %add.ptr10.us14.i.i1459 = getelementptr inbounds i32, ptr %52, i64 %idx.ext9.us13.i.i1458 + %add.ptr10.us14.i.i1459 = getelementptr inbounds i32, ptr %54, i64 %idx.ext9.us13.i.i1458 %add.ptr11.us15.i.i1460 = getelementptr inbounds i32, ptr %add.ptr10.us14.i.i1459, i64 1 - store i32 %57, ptr %arrayidx.us10.i.i1455, align 4 - store i32 %56, ptr %add.ptr10.us14.i.i1459, align 4 + store i32 %59, ptr %arrayidx.us10.i.i1455, align 4 + store i32 %58, ptr %add.ptr10.us14.i.i1459, align 4 store i32 1, ptr %add.ptr11.us15.i.i1460, align 4 %indvars.iv.next.i.i1461 = add nuw nsw i64 %indvars.iv.i.i1450, 1 - %exitcond.not.i1462 = icmp eq i64 %indvars.iv.next.i.i1461, %55 + %exitcond.not.i1462 = icmp eq i64 %indvars.iv.next.i.i1461, %57 br i1 %exitcond.not.i1462, label %ZSTD_searchMax.exit330, label %for.body.us4.i.i1449, !llvm.loop !27 sw.bb116.i227: ; preds = %if.end334.i - br i1 %cmp.i.i1390, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1469 + %60 = load ptr, ptr %base4.i, align 8 + %61 = load i32, ptr %nextToUpdate.i.i1361, align 4 + %idx.ext.i.i1466 = zext i32 %61 to i64 + %add.ptr.i.i1467 = getelementptr inbounds i8, ptr %60, i64 %idx.ext.i.i1466 + %cmp.i.i1468 = icmp ugt ptr %add.ptr.i.i1467, %incdec.ptr.i + br i1 %cmp.i.i1468, label %ZSTD_searchMax.exit330.thread, label %if.end.i.i1469 if.end.i.i1469: ; preds = %sw.bb116.i227 - %58 = load ptr, ptr %hashTable2.i.i1366, align 8 - %59 = load ptr, ptr %chainTable.i.i1367, align 8 - %60 = load i32, ptr %chainLog.i.i1368, align 4 - %sub.i.i1473 = add i32 %60, -1 + %62 = load ptr, ptr %hashTable2.i.i1366, align 8 + %63 = load ptr, ptr %chainTable.i.i1367, align 8 + %64 = load i32, ptr %chainLog.i.i1368, align 4 + %sub.i.i1473 = add i32 %64, -1 %notmask.i.i1474 = shl nsw i32 -1, %sub.i.i1473 %sub4.i.i1475 = xor i32 %notmask.i.i1474, -1 - %sub.ptr.rhs.cast.i.i1477 = ptrtoint ptr %42 to i64 + %sub.ptr.rhs.cast.i.i1477 = ptrtoint ptr %60 to i64 %sub.ptr.sub.i.i1478 = sub i64 %sub.ptr.lhs.cast276.i, %sub.ptr.rhs.cast.i.i1477 %conv.i.i1479 = trunc i64 %sub.ptr.sub.i.i1478 to i32 - %cmp71.i.i1480 = icmp ult i32 %43, %conv.i.i1479 + %cmp71.i.i1480 = icmp ult i32 %61, %conv.i.i1479 br i1 %cmp71.i.i1480, label %for.body.lr.ph.i.i1484, label %ZSTD_searchMax.exit330 for.body.lr.ph.i.i1484: ; preds = %if.end.i.i1469 - %61 = load i32, ptr %hashLog3.i.i1381, align 4 - %sub.i.i29.i.i1486 = sub i32 64, %61 + %65 = load i32, ptr %hashLog3.i.i1381, align 4 + %sub.i.i29.i.i1486 = sub i32 64, %65 %sh_prom.i.i.i.i1487 = zext nneg i32 %sub.i.i29.i.i1486 to i64 - %62 = and i64 %sub.ptr.sub.i.i1478, 4294967295 + %66 = and i64 %sub.ptr.sub.i.i1478, 4294967295 br label %for.body.us.i.i1488 for.body.us.i.i1488: ; preds = %for.body.us.i.i1488, %for.body.lr.ph.i.i1484 - %indvars.iv21.i.i1489 = phi i64 [ %indvars.iv.next22.i.i1500, %for.body.us.i.i1488 ], [ %idx.ext.i.i1388, %for.body.lr.ph.i.i1484 ] - %add.ptr.us.i.i1490 = getelementptr inbounds i8, ptr %42, i64 %indvars.iv21.i.i1489 + %indvars.iv21.i.i1489 = phi i64 [ %indvars.iv.next22.i.i1500, %for.body.us.i.i1488 ], [ %idx.ext.i.i1466, %for.body.lr.ph.i.i1484 ] + %add.ptr.us.i.i1490 = getelementptr inbounds i8, ptr %60, i64 %indvars.iv21.i.i1489 %add.ptr.val27.us.i.i1491 = load i64, ptr %add.ptr.us.i.i1490, align 1 %mul.i.i31.us.i.i1492 = mul i64 %add.ptr.val27.us.i.i1491, -3523014627193847808 %shr.i.i34.us.i.i1493 = lshr i64 %mul.i.i31.us.i.i1492, %sh_prom.i.i.i.i1487 - %arrayidx.us.i.i1494 = getelementptr inbounds i32, ptr %58, i64 %shr.i.i34.us.i.i1493 - %63 = load i32, ptr %arrayidx.us.i.i1494, align 4 - %64 = trunc i64 %indvars.iv21.i.i1489 to i32 - %and.us.i.i1495 = and i32 %64, %sub4.i.i1475 + %arrayidx.us.i.i1494 = getelementptr inbounds i32, ptr %62, i64 %shr.i.i34.us.i.i1493 + %67 = load i32, ptr %arrayidx.us.i.i1494, align 4 + %68 = trunc i64 %indvars.iv21.i.i1489 to i32 + %and.us.i.i1495 = and i32 %68, %sub4.i.i1475 %mul.us.i.i1496 = shl nuw i32 %and.us.i.i1495, 1 %idx.ext9.us.i.i1497 = zext i32 %mul.us.i.i1496 to i64 - %add.ptr10.us.i.i1498 = getelementptr inbounds i32, ptr %59, i64 %idx.ext9.us.i.i1497 + %add.ptr10.us.i.i1498 = getelementptr inbounds i32, ptr %63, i64 %idx.ext9.us.i.i1497 %add.ptr11.us.i.i1499 = getelementptr inbounds i32, ptr %add.ptr10.us.i.i1498, i64 1 - store i32 %64, ptr %arrayidx.us.i.i1494, align 4 - store i32 %63, ptr %add.ptr10.us.i.i1498, align 4 + store i32 %68, ptr %arrayidx.us.i.i1494, align 4 + store i32 %67, ptr %add.ptr10.us.i.i1498, align 4 store i32 1, ptr %add.ptr11.us.i.i1499, align 4 %indvars.iv.next22.i.i1500 = add nuw nsw i64 %indvars.iv21.i.i1489, 1 - %exitcond.not.i1501 = icmp eq i64 %indvars.iv.next22.i.i1500, %62 + %exitcond.not.i1501 = icmp eq i64 %indvars.iv.next22.i.i1500, %66 br i1 %exitcond.not.i1501, label %ZSTD_searchMax.exit330, label %for.body.us.i.i1488, !llvm.loop !27 -sw.epilog151.i225: ; preds = %if.end334.i - unreachable - ZSTD_searchMax.exit330.thread: ; preds = %sw.bb112.i231, %sw.bb114.i229, %sw.bb116.i227 %conv346.i1793 = trunc i64 %offBase.i.3 to i32 - %65 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i1793, i1 true), !range !25 + %69 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i1793, i1 true), !range !25 br label %land.lhs.true361.i ZSTD_searchMax.exit330: ; preds = %for.body.us.i.i1488, %for.body.us4.i.i1449, %for.body.i.i1409, %if.end.i.i1469, %if.end.i.i1430, %if.end.i.i1391 @@ -20511,34 +20412,34 @@ ZSTD_searchMax.exit330: ; preds = %for.body.us.i.i1488 store i32 %conv.i.i1479.sink, ptr %nextToUpdate.i.i1361, align 4 %call.i.i1482 = call fastcc i64 @ZSTD_DUBT_findBestMatch(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i, i32 noundef %spec.select1683, i32 noundef 2) %conv346.i = trunc i64 %offBase.i.3 to i32 - %66 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i, i1 true), !range !25 + %70 = tail call i32 @llvm.ctlz.i32(i32 %conv346.i, i1 true), !range !25 %cmp352.i = icmp ugt i64 %call.i.i1482, 3 br i1 %cmp352.i, label %land.lhs.true354.i, label %land.lhs.true361.i land.lhs.true354.i: ; preds = %ZSTD_searchMax.exit330 - %67 = load i64, ptr %ofbCandidate.i, align 8 - %conv339.i = trunc i64 %67 to i32 - %68 = tail call i32 @llvm.ctlz.i32(i32 %conv339.i, i1 true), !range !25 - %sub.i1503 = xor i32 %68, 31 + %71 = load i64, ptr %ofbCandidate.i, align 8 + %conv339.i = trunc i64 %71 to i32 + %72 = tail call i32 @llvm.ctlz.i32(i32 %conv339.i, i1 true), !range !25 + %sub.i1503 = xor i32 %72, 31 %matchLength.i.5.tr = trunc i64 %matchLength.i.5 to i32 - %69 = shl i32 %matchLength.i.5.tr, 2 - %70 = add nsw i32 %66, -27 - %conv351.i = add i32 %70, %69 + %73 = shl i32 %matchLength.i.5.tr, 2 + %74 = add nsw i32 %70, -27 + %conv351.i = add i32 %74, %73 %retval.i137.0.tr = trunc i64 %call.i.i1482 to i32 - %71 = shl i32 %retval.i137.0.tr, 2 - %conv343.i = sub i32 %71, %sub.i1503 + %75 = shl i32 %retval.i137.0.tr, 2 + %conv343.i = sub i32 %75, %sub.i1503 %cmp355.i = icmp sgt i32 %conv343.i, %conv351.i br i1 %cmp355.i, label %while.cond227.i.backedge, label %land.lhs.true361.i while.cond227.i.backedge: ; preds = %land.lhs.true354.i, %land.lhs.true494.i %start.i.1.be = phi ptr [ %incdec.ptr.i, %land.lhs.true354.i ], [ %incdec.ptr367.i, %land.lhs.true494.i ] - %offBase.i.1.be = phi i64 [ %67, %land.lhs.true354.i ], [ %100, %land.lhs.true494.i ] + %offBase.i.1.be = phi i64 [ %71, %land.lhs.true354.i ], [ %108, %land.lhs.true494.i ] %matchLength.i.3.be = phi i64 [ %call.i.i1482, %land.lhs.true354.i ], [ %call.i.i1602, %land.lhs.true494.i ] %cmp228.i = icmp ult ptr %start.i.1.be, %add.ptr1.i br i1 %cmp228.i, label %while.body230.i, label %if.end500.i, !llvm.loop !26 land.lhs.true361.i: ; preds = %ZSTD_searchMax.exit330.thread, %ZSTD_searchMax.exit330, %land.lhs.true354.i - %72 = phi i32 [ %65, %ZSTD_searchMax.exit330.thread ], [ %66, %ZSTD_searchMax.exit330 ], [ %66, %land.lhs.true354.i ] + %76 = phi i32 [ %69, %ZSTD_searchMax.exit330.thread ], [ %70, %ZSTD_searchMax.exit330 ], [ %70, %land.lhs.true354.i ] %cmp362.i = icmp ult ptr %incdec.ptr.i, %add.ptr1.i br i1 %cmp362.i, label %if.then364.i, label %if.end500.i @@ -20555,8 +20456,8 @@ if.then364.i: ; preds = %land.lhs.true361.i %idx.ext428.i = zext i32 %sub419.i to i64 %add.ptr429.i = getelementptr inbounds i8, ptr %0, i64 %idx.ext428.i %cond431.i = select i1 %cmp421.i, ptr %add.ptr426.i, ptr %add.ptr429.i - %73 = sub i32 %sub419.i, %1 - %cmp434.i = icmp ult i32 %73, -3 + %77 = sub i32 %sub419.i, %1 + %cmp434.i = icmp ult i32 %77, -3 br i1 %cmp434.i, label %land.lhs.true436.i, label %if.end473.i land.lhs.true436.i: ; preds = %if.then364.i @@ -20576,9 +20477,9 @@ if.then441.i: ; preds = %land.lhs.true436.i land.lhs.true467.i: ; preds = %if.then441.i %matchLength.i.5.tr1333 = trunc i64 %matchLength.i.5 to i32 - %74 = shl i32 %matchLength.i.5.tr1333, 2 - %75 = add nsw i32 %72, -30 - %conv464.i = add i32 %75, %74 + %78 = shl i32 %matchLength.i.5.tr1333, 2 + %79 = add nsw i32 %76, -30 + %conv464.i = add i32 %79, %78 %add453.i.tr = trunc i64 %add453.i to i32 %conv456.i = shl i32 %add453.i.tr, 2 %cmp468.i = icmp sgt i32 %conv456.i, %conv464.i @@ -20592,152 +20493,159 @@ if.end473.i: ; preds = %if.then364.i, %land %offBase.i.5 = phi i64 [ 1, %if.then470.i ], [ %offBase.i.3, %land.lhs.true467.i ], [ %offBase.i.3, %if.then441.i ], [ %offBase.i.3, %land.lhs.true436.i ], [ %offBase.i.3, %if.then364.i ] %matchLength.i.7 = phi i64 [ %add453.i, %if.then470.i ], [ %matchLength.i.5, %land.lhs.true467.i ], [ %matchLength.i.5, %if.then441.i ], [ %matchLength.i.5, %land.lhs.true436.i ], [ %matchLength.i.5, %if.then364.i ] store i64 999999999, ptr %ofbCandidate474.i, align 8 - %76 = load ptr, ptr %base4.i, align 8 - %77 = load i32, ptr %nextToUpdate.i.i1361, align 4 - %idx.ext.i.i1508 = zext i32 %77 to i64 - %add.ptr.i.i1509 = getelementptr inbounds i8, ptr %76, i64 %idx.ext.i.i1508 - %cmp.i.i1510 = icmp ugt ptr %add.ptr.i.i1509, %incdec.ptr367.i - switch i32 %spec.select1683, label %sw.epilog151.i [ + switch i32 %spec.select1683, label %default.unreachable [ i32 4, label %sw.bb112.i i32 5, label %sw.bb114.i i32 6, label %sw.bb116.i ] sw.bb112.i: ; preds = %if.end473.i + %80 = load ptr, ptr %base4.i, align 8 + %81 = load i32, ptr %nextToUpdate.i.i1361, align 4 + %idx.ext.i.i1508 = zext i32 %81 to i64 + %add.ptr.i.i1509 = getelementptr inbounds i8, ptr %80, i64 %idx.ext.i.i1508 + %cmp.i.i1510 = icmp ugt ptr %add.ptr.i.i1509, %incdec.ptr367.i br i1 %cmp.i.i1510, label %if.end500.i, label %if.end.i.i1511 if.end.i.i1511: ; preds = %sw.bb112.i - %78 = load ptr, ptr %hashTable2.i.i1366, align 8 - %79 = load ptr, ptr %chainTable.i.i1367, align 8 - %80 = load i32, ptr %chainLog.i.i1368, align 4 - %sub.i.i1515 = add i32 %80, -1 + %82 = load ptr, ptr %hashTable2.i.i1366, align 8 + %83 = load ptr, ptr %chainTable.i.i1367, align 8 + %84 = load i32, ptr %chainLog.i.i1368, align 4 + %sub.i.i1515 = add i32 %84, -1 %notmask.i.i1516 = shl nsw i32 -1, %sub.i.i1515 %sub4.i.i1517 = xor i32 %notmask.i.i1516, -1 - %sub.ptr.rhs.cast.i.i1519 = ptrtoint ptr %76 to i64 + %sub.ptr.rhs.cast.i.i1519 = ptrtoint ptr %80 to i64 %sub.ptr.sub.i.i1520 = sub i64 %sub.ptr.lhs.cast415.i, %sub.ptr.rhs.cast.i.i1519 %conv.i.i1521 = trunc i64 %sub.ptr.sub.i.i1520 to i32 - %cmp71.i.i1522 = icmp ult i32 %77, %conv.i.i1521 + %cmp71.i.i1522 = icmp ult i32 %81, %conv.i.i1521 br i1 %cmp71.i.i1522, label %for.body.lr.ph.i.i1526, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1526: ; preds = %if.end.i.i1511 - %81 = load i32, ptr %hashLog3.i.i1381, align 4 - %sub.i.i.i.i1528 = sub i32 32, %81 - %82 = and i64 %sub.ptr.sub.i.i1520, 4294967295 + %85 = load i32, ptr %hashLog3.i.i1381, align 4 + %sub.i.i.i.i1528 = sub i32 32, %85 + %86 = and i64 %sub.ptr.sub.i.i1520, 4294967295 br label %for.body.i.i1529 for.body.i.i1529: ; preds = %for.body.i.i1529, %for.body.lr.ph.i.i1526 %indvars.iv24.i.i1530 = phi i64 [ %indvars.iv.next25.i.i1542, %for.body.i.i1529 ], [ %idx.ext.i.i1508, %for.body.lr.ph.i.i1526 ] - %add.ptr.i9.i1531 = getelementptr inbounds i8, ptr %76, i64 %indvars.iv24.i.i1530 + %add.ptr.i9.i1531 = getelementptr inbounds i8, ptr %80, i64 %indvars.iv24.i.i1530 %add.ptr.val.i.i1532 = load i32, ptr %add.ptr.i9.i1531, align 1 %mul.i.i.i.i1533 = mul i32 %add.ptr.val.i.i1532, -1640531535 %shr.i.i.i.i1534 = lshr i32 %mul.i.i.i.i1533, %sub.i.i.i.i1528 %conv.i.i.i1535 = zext i32 %shr.i.i.i.i1534 to i64 - %arrayidx.i.i1536 = getelementptr inbounds i32, ptr %78, i64 %conv.i.i.i1535 - %83 = load i32, ptr %arrayidx.i.i1536, align 4 - %84 = trunc i64 %indvars.iv24.i.i1530 to i32 - %and.i.i1537 = and i32 %84, %sub4.i.i1517 + %arrayidx.i.i1536 = getelementptr inbounds i32, ptr %82, i64 %conv.i.i.i1535 + %87 = load i32, ptr %arrayidx.i.i1536, align 4 + %88 = trunc i64 %indvars.iv24.i.i1530 to i32 + %and.i.i1537 = and i32 %88, %sub4.i.i1517 %mul.i.i1538 = shl nuw i32 %and.i.i1537, 1 %idx.ext9.i.i1539 = zext i32 %mul.i.i1538 to i64 - %add.ptr10.i.i1540 = getelementptr inbounds i32, ptr %79, i64 %idx.ext9.i.i1539 + %add.ptr10.i.i1540 = getelementptr inbounds i32, ptr %83, i64 %idx.ext9.i.i1539 %add.ptr11.i.i1541 = getelementptr inbounds i32, ptr %add.ptr10.i.i1540, i64 1 - store i32 %84, ptr %arrayidx.i.i1536, align 4 - store i32 %83, ptr %add.ptr10.i.i1540, align 4 + store i32 %88, ptr %arrayidx.i.i1536, align 4 + store i32 %87, ptr %add.ptr10.i.i1540, align 4 store i32 1, ptr %add.ptr11.i.i1541, align 4 %indvars.iv.next25.i.i1542 = add nuw nsw i64 %indvars.iv24.i.i1530, 1 - %exitcond.not.i1543 = icmp eq i64 %indvars.iv.next25.i.i1542, %82 + %exitcond.not.i1543 = icmp eq i64 %indvars.iv.next25.i.i1542, %86 br i1 %exitcond.not.i1543, label %ZSTD_searchMax.exit, label %for.body.i.i1529, !llvm.loop !27 sw.bb114.i: ; preds = %if.end473.i - br i1 %cmp.i.i1510, label %if.end500.i, label %if.end.i.i1550 + %89 = load ptr, ptr %base4.i, align 8 + %90 = load i32, ptr %nextToUpdate.i.i1361, align 4 + %idx.ext.i.i1547 = zext i32 %90 to i64 + %add.ptr.i.i1548 = getelementptr inbounds i8, ptr %89, i64 %idx.ext.i.i1547 + %cmp.i.i1549 = icmp ugt ptr %add.ptr.i.i1548, %incdec.ptr367.i + br i1 %cmp.i.i1549, label %if.end500.i, label %if.end.i.i1550 if.end.i.i1550: ; preds = %sw.bb114.i - %85 = load ptr, ptr %hashTable2.i.i1366, align 8 - %86 = load ptr, ptr %chainTable.i.i1367, align 8 - %87 = load i32, ptr %chainLog.i.i1368, align 4 - %sub.i.i1554 = add i32 %87, -1 + %91 = load ptr, ptr %hashTable2.i.i1366, align 8 + %92 = load ptr, ptr %chainTable.i.i1367, align 8 + %93 = load i32, ptr %chainLog.i.i1368, align 4 + %sub.i.i1554 = add i32 %93, -1 %notmask.i.i1555 = shl nsw i32 -1, %sub.i.i1554 %sub4.i.i1556 = xor i32 %notmask.i.i1555, -1 - %sub.ptr.rhs.cast.i.i1558 = ptrtoint ptr %76 to i64 + %sub.ptr.rhs.cast.i.i1558 = ptrtoint ptr %89 to i64 %sub.ptr.sub.i.i1559 = sub i64 %sub.ptr.lhs.cast415.i, %sub.ptr.rhs.cast.i.i1558 %conv.i.i1560 = trunc i64 %sub.ptr.sub.i.i1559 to i32 - %cmp71.i.i1561 = icmp ult i32 %77, %conv.i.i1560 + %cmp71.i.i1561 = icmp ult i32 %90, %conv.i.i1560 br i1 %cmp71.i.i1561, label %for.body.lr.ph.i.i1565, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1565: ; preds = %if.end.i.i1550 - %88 = load i32, ptr %hashLog3.i.i1381, align 4 - %sub.i.i29.i.i1567 = sub i32 64, %88 + %94 = load i32, ptr %hashLog3.i.i1381, align 4 + %sub.i.i29.i.i1567 = sub i32 64, %94 %sh_prom.i.i.i.i1568 = zext nneg i32 %sub.i.i29.i.i1567 to i64 - %89 = and i64 %sub.ptr.sub.i.i1559, 4294967295 + %95 = and i64 %sub.ptr.sub.i.i1559, 4294967295 br label %for.body.us4.i.i1569 for.body.us4.i.i1569: ; preds = %for.body.us4.i.i1569, %for.body.lr.ph.i.i1565 - %indvars.iv.i.i1570 = phi i64 [ %indvars.iv.next.i.i1581, %for.body.us4.i.i1569 ], [ %idx.ext.i.i1508, %for.body.lr.ph.i.i1565 ] - %add.ptr.us7.i.i1571 = getelementptr inbounds i8, ptr %76, i64 %indvars.iv.i.i1570 + %indvars.iv.i.i1570 = phi i64 [ %indvars.iv.next.i.i1581, %for.body.us4.i.i1569 ], [ %idx.ext.i.i1547, %for.body.lr.ph.i.i1565 ] + %add.ptr.us7.i.i1571 = getelementptr inbounds i8, ptr %89, i64 %indvars.iv.i.i1570 %add.ptr.val26.us.i.i1572 = load i64, ptr %add.ptr.us7.i.i1571, align 1 %mul.i.i28.us.i.i1573 = mul i64 %add.ptr.val26.us.i.i1572, -3523014627271114752 %shr.i.i30.us.i.i1574 = lshr i64 %mul.i.i28.us.i.i1573, %sh_prom.i.i.i.i1568 - %arrayidx.us10.i.i1575 = getelementptr inbounds i32, ptr %85, i64 %shr.i.i30.us.i.i1574 - %90 = load i32, ptr %arrayidx.us10.i.i1575, align 4 - %91 = trunc i64 %indvars.iv.i.i1570 to i32 - %and.us11.i.i1576 = and i32 %91, %sub4.i.i1556 + %arrayidx.us10.i.i1575 = getelementptr inbounds i32, ptr %91, i64 %shr.i.i30.us.i.i1574 + %96 = load i32, ptr %arrayidx.us10.i.i1575, align 4 + %97 = trunc i64 %indvars.iv.i.i1570 to i32 + %and.us11.i.i1576 = and i32 %97, %sub4.i.i1556 %mul.us12.i.i1577 = shl nuw i32 %and.us11.i.i1576, 1 %idx.ext9.us13.i.i1578 = zext i32 %mul.us12.i.i1577 to i64 - %add.ptr10.us14.i.i1579 = getelementptr inbounds i32, ptr %86, i64 %idx.ext9.us13.i.i1578 + %add.ptr10.us14.i.i1579 = getelementptr inbounds i32, ptr %92, i64 %idx.ext9.us13.i.i1578 %add.ptr11.us15.i.i1580 = getelementptr inbounds i32, ptr %add.ptr10.us14.i.i1579, i64 1 - store i32 %91, ptr %arrayidx.us10.i.i1575, align 4 - store i32 %90, ptr %add.ptr10.us14.i.i1579, align 4 + store i32 %97, ptr %arrayidx.us10.i.i1575, align 4 + store i32 %96, ptr %add.ptr10.us14.i.i1579, align 4 store i32 1, ptr %add.ptr11.us15.i.i1580, align 4 %indvars.iv.next.i.i1581 = add nuw nsw i64 %indvars.iv.i.i1570, 1 - %exitcond.not.i1582 = icmp eq i64 %indvars.iv.next.i.i1581, %89 + %exitcond.not.i1582 = icmp eq i64 %indvars.iv.next.i.i1581, %95 br i1 %exitcond.not.i1582, label %ZSTD_searchMax.exit, label %for.body.us4.i.i1569, !llvm.loop !27 sw.bb116.i: ; preds = %if.end473.i - br i1 %cmp.i.i1510, label %if.end500.i, label %if.end.i.i1589 + %98 = load ptr, ptr %base4.i, align 8 + %99 = load i32, ptr %nextToUpdate.i.i1361, align 4 + %idx.ext.i.i1586 = zext i32 %99 to i64 + %add.ptr.i.i1587 = getelementptr inbounds i8, ptr %98, i64 %idx.ext.i.i1586 + %cmp.i.i1588 = icmp ugt ptr %add.ptr.i.i1587, %incdec.ptr367.i + br i1 %cmp.i.i1588, label %if.end500.i, label %if.end.i.i1589 if.end.i.i1589: ; preds = %sw.bb116.i - %92 = load ptr, ptr %hashTable2.i.i1366, align 8 - %93 = load ptr, ptr %chainTable.i.i1367, align 8 - %94 = load i32, ptr %chainLog.i.i1368, align 4 - %sub.i.i1593 = add i32 %94, -1 + %100 = load ptr, ptr %hashTable2.i.i1366, align 8 + %101 = load ptr, ptr %chainTable.i.i1367, align 8 + %102 = load i32, ptr %chainLog.i.i1368, align 4 + %sub.i.i1593 = add i32 %102, -1 %notmask.i.i1594 = shl nsw i32 -1, %sub.i.i1593 %sub4.i.i1595 = xor i32 %notmask.i.i1594, -1 - %sub.ptr.rhs.cast.i.i1597 = ptrtoint ptr %76 to i64 + %sub.ptr.rhs.cast.i.i1597 = ptrtoint ptr %98 to i64 %sub.ptr.sub.i.i1598 = sub i64 %sub.ptr.lhs.cast415.i, %sub.ptr.rhs.cast.i.i1597 %conv.i.i1599 = trunc i64 %sub.ptr.sub.i.i1598 to i32 - %cmp71.i.i1600 = icmp ult i32 %77, %conv.i.i1599 + %cmp71.i.i1600 = icmp ult i32 %99, %conv.i.i1599 br i1 %cmp71.i.i1600, label %for.body.lr.ph.i.i1604, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1604: ; preds = %if.end.i.i1589 - %95 = load i32, ptr %hashLog3.i.i1381, align 4 - %sub.i.i29.i.i1606 = sub i32 64, %95 + %103 = load i32, ptr %hashLog3.i.i1381, align 4 + %sub.i.i29.i.i1606 = sub i32 64, %103 %sh_prom.i.i.i.i1607 = zext nneg i32 %sub.i.i29.i.i1606 to i64 - %96 = and i64 %sub.ptr.sub.i.i1598, 4294967295 + %104 = and i64 %sub.ptr.sub.i.i1598, 4294967295 br label %for.body.us.i.i1608 for.body.us.i.i1608: ; preds = %for.body.us.i.i1608, %for.body.lr.ph.i.i1604 - %indvars.iv21.i.i1609 = phi i64 [ %indvars.iv.next22.i.i1620, %for.body.us.i.i1608 ], [ %idx.ext.i.i1508, %for.body.lr.ph.i.i1604 ] - %add.ptr.us.i.i1610 = getelementptr inbounds i8, ptr %76, i64 %indvars.iv21.i.i1609 + %indvars.iv21.i.i1609 = phi i64 [ %indvars.iv.next22.i.i1620, %for.body.us.i.i1608 ], [ %idx.ext.i.i1586, %for.body.lr.ph.i.i1604 ] + %add.ptr.us.i.i1610 = getelementptr inbounds i8, ptr %98, i64 %indvars.iv21.i.i1609 %add.ptr.val27.us.i.i1611 = load i64, ptr %add.ptr.us.i.i1610, align 1 %mul.i.i31.us.i.i1612 = mul i64 %add.ptr.val27.us.i.i1611, -3523014627193847808 %shr.i.i34.us.i.i1613 = lshr i64 %mul.i.i31.us.i.i1612, %sh_prom.i.i.i.i1607 - %arrayidx.us.i.i1614 = getelementptr inbounds i32, ptr %92, i64 %shr.i.i34.us.i.i1613 - %97 = load i32, ptr %arrayidx.us.i.i1614, align 4 - %98 = trunc i64 %indvars.iv21.i.i1609 to i32 - %and.us.i.i1615 = and i32 %98, %sub4.i.i1595 + %arrayidx.us.i.i1614 = getelementptr inbounds i32, ptr %100, i64 %shr.i.i34.us.i.i1613 + %105 = load i32, ptr %arrayidx.us.i.i1614, align 4 + %106 = trunc i64 %indvars.iv21.i.i1609 to i32 + %and.us.i.i1615 = and i32 %106, %sub4.i.i1595 %mul.us.i.i1616 = shl nuw i32 %and.us.i.i1615, 1 %idx.ext9.us.i.i1617 = zext i32 %mul.us.i.i1616 to i64 - %add.ptr10.us.i.i1618 = getelementptr inbounds i32, ptr %93, i64 %idx.ext9.us.i.i1617 + %add.ptr10.us.i.i1618 = getelementptr inbounds i32, ptr %101, i64 %idx.ext9.us.i.i1617 %add.ptr11.us.i.i1619 = getelementptr inbounds i32, ptr %add.ptr10.us.i.i1618, i64 1 - store i32 %98, ptr %arrayidx.us.i.i1614, align 4 - store i32 %97, ptr %add.ptr10.us.i.i1618, align 4 + store i32 %106, ptr %arrayidx.us.i.i1614, align 4 + store i32 %105, ptr %add.ptr10.us.i.i1618, align 4 store i32 1, ptr %add.ptr11.us.i.i1619, align 4 %indvars.iv.next22.i.i1620 = add nuw nsw i64 %indvars.iv21.i.i1609, 1 - %exitcond.not.i1621 = icmp eq i64 %indvars.iv.next22.i.i1620, %96 + %exitcond.not.i1621 = icmp eq i64 %indvars.iv.next22.i.i1620, %104 br i1 %exitcond.not.i1621, label %ZSTD_searchMax.exit, label %for.body.us.i.i1608, !llvm.loop !27 -sw.epilog151.i: ; preds = %if.end473.i - unreachable - ZSTD_searchMax.exit: ; preds = %for.body.us.i.i1608, %for.body.us4.i.i1569, %for.body.i.i1529, %if.end.i.i1589, %if.end.i.i1550, %if.end.i.i1511 %conv.i.i1599.sink = phi i32 [ %conv.i.i1521, %if.end.i.i1511 ], [ %conv.i.i1560, %if.end.i.i1550 ], [ %conv.i.i1599, %if.end.i.i1589 ], [ %conv.i.i1521, %for.body.i.i1529 ], [ %conv.i.i1560, %for.body.us4.i.i1569 ], [ %conv.i.i1599, %for.body.us.i.i1608 ] store i32 %conv.i.i1599.sink, ptr %nextToUpdate.i.i1361, align 4 @@ -20747,18 +20655,18 @@ ZSTD_searchMax.exit: ; preds = %for.body.us.i.i1608 land.lhs.true494.i: ; preds = %ZSTD_searchMax.exit %conv486.i = trunc i64 %offBase.i.5 to i32 - %99 = tail call i32 @llvm.ctlz.i32(i32 %conv486.i, i1 true), !range !25 - %100 = load i64, ptr %ofbCandidate474.i, align 8 - %conv479.i = trunc i64 %100 to i32 - %101 = tail call i32 @llvm.ctlz.i32(i32 %conv479.i, i1 true), !range !25 - %sub.i1623 = xor i32 %101, 31 + %107 = tail call i32 @llvm.ctlz.i32(i32 %conv486.i, i1 true), !range !25 + %108 = load i64, ptr %ofbCandidate474.i, align 8 + %conv479.i = trunc i64 %108 to i32 + %109 = tail call i32 @llvm.ctlz.i32(i32 %conv479.i, i1 true), !range !25 + %sub.i1623 = xor i32 %109, 31 %matchLength.i.7.tr = trunc i64 %matchLength.i.7 to i32 - %102 = shl i32 %matchLength.i.7.tr, 2 - %103 = add nsw i32 %99, -24 - %conv491.i = add i32 %103, %102 + %110 = shl i32 %matchLength.i.7.tr, 2 + %111 = add nsw i32 %107, -24 + %conv491.i = add i32 %111, %110 %retval.i120.0.tr = trunc i64 %call.i.i1602 to i32 - %104 = shl i32 %retval.i120.0.tr, 2 - %conv483.i = sub i32 %104, %sub.i1623 + %112 = shl i32 %retval.i120.0.tr, 2 + %conv483.i = sub i32 %112, %sub.i1623 %cmp495.i = icmp sgt i32 %conv483.i, %conv491.i br i1 %cmp495.i, label %while.cond227.i.backedge, label %if.end500.i @@ -20775,8 +20683,8 @@ if.end500.i._storeSequence.i_crit_edge: ; preds = %if.end500.i if.then531.i: ; preds = %if.end500.i %sub.ptr.lhs.cast532.i = ptrtoint ptr %start.i.6 to i64 - %105 = add i64 %offBase.i.6, %sub.ptr.rhs.cast130.i - %reass.sub1760 = sub i64 %sub.ptr.lhs.cast532.i, %105 + %113 = add i64 %offBase.i.6, %sub.ptr.rhs.cast130.i + %reass.sub1760 = sub i64 %sub.ptr.lhs.cast532.i, %113 %sub536.i = add i64 %reass.sub1760, -4294967293 %conv537.i = trunc i64 %sub536.i to i32 %cmp538.i = icmp ugt i32 %1, %conv537.i @@ -20794,10 +20702,10 @@ land.rhs563.i: ; preds = %if.then531.i, %whil %matchLength.i.111730 = phi i64 [ %inc574.i, %while.body571.i ], [ %matchLength.i.8, %if.then531.i ] %start.i.91729 = phi ptr [ %arrayidx564.i, %while.body571.i ], [ %start.i.6, %if.then531.i ] %arrayidx564.i = getelementptr inbounds i8, ptr %start.i.91729, i64 -1 - %106 = load i8, ptr %arrayidx564.i, align 1 + %114 = load i8, ptr %arrayidx564.i, align 1 %arrayidx566.i = getelementptr inbounds i8, ptr %match.i.01731, i64 -1 - %107 = load i8, ptr %arrayidx566.i, align 1 - %cmp568.i = icmp eq i8 %106, %107 + %115 = load i8, ptr %arrayidx566.i, align 1 + %cmp568.i = icmp eq i8 %114, %115 br i1 %cmp568.i, label %while.body571.i, label %if.end576.i while.body571.i: ; preds = %land.rhs563.i @@ -20810,12 +20718,12 @@ while.body571.i: ; preds = %land.rhs563.i if.end576.i: ; preds = %while.body571.i, %land.rhs563.i, %if.then531.i %start.i.9.lcssa = phi ptr [ %start.i.6, %if.then531.i ], [ %start.i.91729, %land.rhs563.i ], [ %arrayidx564.i, %while.body571.i ] %matchLength.i.11.lcssa = phi i64 [ %matchLength.i.8, %if.then531.i ], [ %matchLength.i.111730, %land.rhs563.i ], [ %inc574.i, %while.body571.i ] - %108 = trunc i64 %offBase.i.6 to i32 - %conv578.i = add i32 %108, -3 + %116 = trunc i64 %offBase.i.6 to i32 + %conv578.i = add i32 %116, -3 br label %_storeSequence.i _storeSequence.i: ; preds = %if.end500.i._storeSequence.i_crit_edge, %if.end576.i - %conv583.i.pre-phi = phi i32 [ %.pre1791, %if.end500.i._storeSequence.i_crit_edge ], [ %108, %if.end576.i ] + %conv583.i.pre-phi = phi i32 [ %.pre1791, %if.end500.i._storeSequence.i_crit_edge ], [ %116, %if.end576.i ] %start.i.11 = phi ptr [ %start.i.6, %if.end500.i._storeSequence.i_crit_edge ], [ %start.i.9.lcssa, %if.end576.i ] %matchLength.i.13 = phi i64 [ %matchLength.i.8, %if.end500.i._storeSequence.i_crit_edge ], [ %matchLength.i.11.lcssa, %if.end576.i ] %offset_2.i.3 = phi i32 [ %offset_2.i.2.ph1750, %if.end500.i._storeSequence.i_crit_edge ], [ %offset_1.i.1.ph1751, %if.end576.i ] @@ -20824,15 +20732,15 @@ _storeSequence.i: ; preds = %if.end500.i._storeS %sub.ptr.sub582.i = sub i64 %sub.ptr.lhs.cast580.i, %sub.ptr.rhs.cast216.i %add.ptr1.i608 = getelementptr inbounds i8, ptr %anchor.i.0.ph1752, i64 %sub.ptr.sub582.i %cmp.i609.not = icmp ugt ptr %add.ptr1.i608, %add.ptr.i607 - %109 = load ptr, ptr %lit.i647, align 8 + %117 = load ptr, ptr %lit.i647, align 8 br i1 %cmp.i609.not, label %if.else.i610, label %if.then.i646 if.then.i646: ; preds = %_storeSequence.i %anchor.i.0.val = load <2 x i64>, ptr %anchor.i.0.ph1752, align 1 - store <2 x i64> %anchor.i.0.val, ptr %109, align 1 + store <2 x i64> %anchor.i.0.val, ptr %117, align 1 %cmp2.i648 = icmp ugt i64 %sub.ptr.sub582.i, 16 - %110 = load ptr, ptr %lit.i647, align 8 - %add.ptr.i661 = getelementptr inbounds i8, ptr %110, i64 %sub.ptr.sub582.i + %118 = load ptr, ptr %lit.i647, align 8 + %add.ptr.i661 = getelementptr inbounds i8, ptr %118, i64 %sub.ptr.sub582.i br i1 %cmp2.i648, label %if.then3.i650, label %if.end8.i612.thread if.end8.i612.thread: ; preds = %if.then.i646 @@ -20842,14 +20750,14 @@ if.end8.i612.thread: ; preds = %if.then.i646 if.then3.i650: ; preds = %if.then.i646 %add.ptr6.i653 = getelementptr inbounds i8, ptr %anchor.i.0.ph1752, i64 16 - %add.ptr5.i652 = getelementptr inbounds i8, ptr %110, i64 16 + %add.ptr5.i652 = getelementptr inbounds i8, ptr %118, i64 16 %add.ptr6.i653.val = load <2 x i64>, ptr %add.ptr6.i653, align 1 store <2 x i64> %add.ptr6.i653.val, ptr %add.ptr5.i652, align 1 %cmp7.i664 = icmp slt i64 %sub.ptr.sub582.i, 33 br i1 %cmp7.i664, label %if.end8.i612, label %if.end.i665 if.end.i665: ; preds = %if.then3.i650 - %add.ptr9.i666 = getelementptr inbounds i8, ptr %110, i64 32 + %add.ptr9.i666 = getelementptr inbounds i8, ptr %118, i64 32 br label %do.body11.i do.body11.i: ; preds = %do.body11.i, %if.end.i665 @@ -20873,14 +20781,14 @@ if.else.i610: ; preds = %_storeSequence.i if.then.i: ; preds = %if.else.i610 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i1625, %sub.ptr.rhs.cast216.i - %add.ptr.i.i1627 = getelementptr inbounds i8, ptr %109, i64 %sub.ptr.sub.i + %add.ptr.i.i1627 = getelementptr inbounds i8, ptr %117, i64 %sub.ptr.sub.i %ip.val.i = load <2 x i64>, ptr %anchor.i.0.ph1752, align 1 - store <2 x i64> %ip.val.i, ptr %109, align 1 + store <2 x i64> %ip.val.i, ptr %117, align 1 %cmp7.i.i = icmp slt i64 %sub.ptr.sub.i, 17 br i1 %cmp7.i.i, label %if.end.i, label %if.end.i.i1628 if.end.i.i1628: ; preds = %if.then.i - %add.ptr9.i.i = getelementptr inbounds i8, ptr %109, i64 16 + %add.ptr9.i.i = getelementptr inbounds i8, ptr %117, i64 16 br label %do.body11.i.i do.body11.i.i: ; preds = %do.body11.i.i, %if.end.i.i1628 @@ -20898,30 +20806,30 @@ do.body11.i.i: ; preds = %do.body11.i.i, %if. br i1 %cmp23.i.i, label %do.body11.i.i, label %if.end.i, !llvm.loop !19 if.end.i: ; preds = %do.body11.i.i, %if.then.i, %if.else.i610 - %op.addr.0.i = phi ptr [ %add.ptr.i.i1627, %if.then.i ], [ %109, %if.else.i610 ], [ %add.ptr.i.i1627, %do.body11.i.i ] + %op.addr.0.i = phi ptr [ %add.ptr.i.i1627, %if.then.i ], [ %117, %if.else.i610 ], [ %add.ptr.i.i1627, %do.body11.i.i ] %ip.addr.0.i = phi ptr [ %add.ptr.i607, %if.then.i ], [ %anchor.i.0.ph1752, %if.else.i610 ], [ %add.ptr.i607, %do.body11.i.i ] %cmp432.i = icmp ult ptr %ip.addr.0.i, %add.ptr1.i608 br i1 %cmp432.i, label %while.body.preheader.i, label %if.end8.i612 while.body.preheader.i: ; preds = %if.end.i %ip.addr.036.i = ptrtoint ptr %ip.addr.0.i to i64 - %111 = sub i64 %iend35.i, %ip.addr.036.i - %scevgep.i = getelementptr i8, ptr %ip.addr.0.i, i64 %111 + %119 = sub i64 %iend35.i, %ip.addr.036.i + %scevgep.i = getelementptr i8, ptr %ip.addr.0.i, i64 %119 br label %while.body.i1629 while.body.i1629: ; preds = %while.body.i1629, %while.body.preheader.i %ip.addr.134.i = phi ptr [ %incdec.ptr.i1630, %while.body.i1629 ], [ %ip.addr.0.i, %while.body.preheader.i ] %op.addr.133.i = phi ptr [ %incdec.ptr5.i, %while.body.i1629 ], [ %op.addr.0.i, %while.body.preheader.i ] %incdec.ptr.i1630 = getelementptr inbounds i8, ptr %ip.addr.134.i, i64 1 - %112 = load i8, ptr %ip.addr.134.i, align 1 + %120 = load i8, ptr %ip.addr.134.i, align 1 %incdec.ptr5.i = getelementptr inbounds i8, ptr %op.addr.133.i, i64 1 - store i8 %112, ptr %op.addr.133.i, align 1 + store i8 %120, ptr %op.addr.133.i, align 1 %exitcond.not.i1631 = icmp eq ptr %incdec.ptr.i1630, %scevgep.i br i1 %exitcond.not.i1631, label %if.end8.i612, label %while.body.i1629, !llvm.loop !20 if.end8.i612: ; preds = %do.body11.i, %while.body.i1629, %if.end.i, %if.then3.i650 - %113 = load ptr, ptr %lit.i647, align 8 - %add.ptr10.i614 = getelementptr inbounds i8, ptr %113, i64 %sub.ptr.sub582.i + %121 = load ptr, ptr %lit.i647, align 8 + %add.ptr10.i614 = getelementptr inbounds i8, ptr %121, i64 %sub.ptr.sub582.i store ptr %add.ptr10.i614, ptr %lit.i647, align 8 %cmp11.i615 = icmp ugt i64 %sub.ptr.sub582.i, 65535 %.pre1787 = load ptr, ptr %sequences.i639, align 8 @@ -20929,9 +20837,9 @@ if.end8.i612: ; preds = %do.body11.i, %while if.then12.i637: ; preds = %if.end8.i612 store i32 1, ptr %longLengthType.i638, align 8 - %114 = load ptr, ptr %seqStore, align 8 + %122 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast.i640 = ptrtoint ptr %.pre1787 to i64 - %sub.ptr.rhs.cast.i641 = ptrtoint ptr %114 to i64 + %sub.ptr.rhs.cast.i641 = ptrtoint ptr %122 to i64 %sub.ptr.sub.i642 = sub i64 %sub.ptr.lhs.cast.i640, %sub.ptr.rhs.cast.i641 %sub.ptr.div.i643 = lshr exact i64 %sub.ptr.sub.i642, 3 %conv.i644 = trunc i64 %sub.ptr.div.i643 to i32 @@ -20939,12 +20847,12 @@ if.then12.i637: ; preds = %if.end8.i612 br label %if.end13.i616 if.end13.i616: ; preds = %if.end8.i612.thread, %if.then12.i637, %if.end8.i612 - %115 = phi ptr [ %.pre, %if.end8.i612.thread ], [ %.pre1787, %if.then12.i637 ], [ %.pre1787, %if.end8.i612 ] + %123 = phi ptr [ %.pre, %if.end8.i612.thread ], [ %.pre1787, %if.then12.i637 ], [ %.pre1787, %if.end8.i612 ] %conv14.i617 = trunc i64 %sub.ptr.sub582.i to i16 - %litLength16.i619 = getelementptr inbounds %struct.seqDef_s, ptr %115, i64 0, i32 1 + %litLength16.i619 = getelementptr inbounds %struct.seqDef_s, ptr %123, i64 0, i32 1 store i16 %conv14.i617, ptr %litLength16.i619, align 4 - %116 = load ptr, ptr %sequences.i639, align 8 - store i32 %conv583.i.pre-phi, ptr %116, align 4 + %124 = load ptr, ptr %sequences.i639, align 8 + store i32 %conv583.i.pre-phi, ptr %124, align 4 %sub20.i621 = add i64 %matchLength.i.13, -3 %cmp21.i622 = icmp ugt i64 %sub20.i621, 65535 %.pre1788 = load ptr, ptr %sequences.i639, align 8 @@ -20952,9 +20860,9 @@ if.end13.i616: ; preds = %if.end8.i612.thread if.then23.i628: ; preds = %if.end13.i616 store i32 2, ptr %longLengthType.i638, align 8 - %117 = load ptr, ptr %seqStore, align 8 + %125 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast27.i631 = ptrtoint ptr %.pre1788 to i64 - %sub.ptr.rhs.cast28.i632 = ptrtoint ptr %117 to i64 + %sub.ptr.rhs.cast28.i632 = ptrtoint ptr %125 to i64 %sub.ptr.sub29.i633 = sub i64 %sub.ptr.lhs.cast27.i631, %sub.ptr.rhs.cast28.i632 %sub.ptr.div30.i634 = lshr exact i64 %sub.ptr.sub29.i633, 3 %conv31.i635 = trunc i64 %sub.ptr.div30.i634 to i32 @@ -20965,12 +20873,12 @@ ZSTD_storeSeq.exit655: ; preds = %if.then23.i628, %if %conv34.i623 = trunc i64 %sub20.i621 to i16 %mlBase37.i625 = getelementptr inbounds %struct.seqDef_s, ptr %.pre1788, i64 0, i32 2 store i16 %conv34.i623, ptr %mlBase37.i625, align 2 - %118 = load ptr, ptr %sequences.i639, align 8 - %incdec.ptr.i627 = getelementptr inbounds %struct.seqDef_s, ptr %118, i64 1 + %126 = load ptr, ptr %sequences.i639, align 8 + %incdec.ptr.i627 = getelementptr inbounds %struct.seqDef_s, ptr %126, i64 1 store ptr %incdec.ptr.i627, ptr %sequences.i639, align 8 %add.ptr584.i = getelementptr inbounds i8, ptr %start.i.11, i64 %matchLength.i.13 - %119 = load i32, ptr %lazySkipping.i, align 4 - %tobool586.i.not = icmp eq i32 %119, 0 + %127 = load i32, ptr %lazySkipping.i, align 4 + %tobool586.i.not = icmp eq i32 %127, 0 br i1 %tobool586.i.not, label %if.end594.i, label %if.end592.i if.end592.i: ; preds = %ZSTD_storeSeq.exit655 @@ -20993,8 +20901,8 @@ while.body600.i: ; preds = %if.end594.i, %ZSTD_ %idx.ext614.i = zext i32 %sub606.i to i64 %cond620.i.v = select i1 %cmp608.i, ptr %invariant.gep, ptr %0 %cond620.i = getelementptr inbounds i8, ptr %cond620.i.v, i64 %idx.ext614.i - %120 = sub i32 %sub606.i, %1 - %cmp623.i = icmp ult i32 %120, -3 + %128 = sub i32 %sub606.i, %1 + %cmp623.i = icmp ult i32 %128, -3 br i1 %cmp623.i, label %land.lhs.true625.i, label %if.end678.i land.lhs.true625.i: ; preds = %while.body600.i @@ -21025,8 +20933,8 @@ if.then.i.i: ; preds = %if.then630.i br i1 %tobool.not.i.i, label %while.cond.i.i, label %if.then2.i.i if.then2.i.i: ; preds = %if.then.i.i - %121 = tail call i64 @llvm.cttz.i64(i64 %xor.i.i, i1 true), !range !16 - %shr.i.i.i = lshr i64 %121, 3 + %129 = tail call i64 @llvm.cttz.i64(i64 %xor.i.i, i1 true), !range !16 + %shr.i.i.i = lshr i64 %129, 3 br label %ZSTD_count.exit.i while.cond.i.i: ; preds = %if.then.i.i, %while.body.i.i @@ -21045,8 +20953,8 @@ while.body.i.i: ; preds = %while.cond.i.i br i1 %tobool12.not.i.i, label %while.cond.i.i, label %if.end16.i.i, !llvm.loop !17 if.end16.i.i: ; preds = %while.body.i.i - %122 = tail call i64 @llvm.cttz.i64(i64 %xor11.i.i, i1 true), !range !16 - %shr.i35.i.i = lshr i64 %122, 3 + %130 = tail call i64 @llvm.cttz.i64(i64 %xor11.i.i, i1 true), !range !16 + %shr.i35.i.i = lshr i64 %130, 3 %add.ptr18.i.i1640 = getelementptr inbounds i8, ptr %pIn.addr.0.i.i, i64 %shr.i35.i.i %sub.ptr.lhs.cast.i.i1641 = ptrtoint ptr %add.ptr18.i.i1640 to i64 %sub.ptr.rhs.cast.i.i1642 = ptrtoint ptr %add.ptr637.i to i64 @@ -21096,9 +21004,9 @@ if.end47.i.i: ; preds = %if.then44.i.i, %lan br i1 %cmp48.i.i, label %land.lhs.true50.i.i, label %if.end56.i.i land.lhs.true50.i.i: ; preds = %if.end47.i.i - %123 = load i8, ptr %pMatch.addr.3.i.i, align 1 - %124 = load i8, ptr %pIn.addr.3.i.i, align 1 - %cmp53.i.i = icmp eq i8 %123, %124 + %131 = load i8, ptr %pMatch.addr.3.i.i, align 1 + %132 = load i8, ptr %pIn.addr.3.i.i, align 1 + %cmp53.i.i = icmp eq i8 %131, %132 %spec.select.idx.i.i = zext i1 %cmp53.i.i to i64 %spec.select.i.i = getelementptr inbounds i8, ptr %pIn.addr.3.i.i, i64 %spec.select.idx.i.i br label %if.end56.i.i @@ -21129,8 +21037,8 @@ if.then.i54.i: ; preds = %do.end14.i br i1 %tobool.not.i58.i, label %while.cond.i61.i, label %if.then2.i59.i if.then2.i59.i: ; preds = %if.then.i54.i - %125 = tail call i64 @llvm.cttz.i64(i64 %xor.i57.i, i1 true), !range !16 - %shr.i.i60.i = lshr i64 %125, 3 + %133 = tail call i64 @llvm.cttz.i64(i64 %xor.i57.i, i1 true), !range !16 + %shr.i.i60.i = lshr i64 %133, 3 br label %ZSTD_count.exit78.i while.cond.i61.i: ; preds = %if.then.i54.i, %while.body.i67.i @@ -21149,8 +21057,8 @@ while.body.i67.i: ; preds = %while.cond.i61.i br i1 %tobool12.not.i71.i, label %while.cond.i61.i, label %if.end16.i72.i, !llvm.loop !17 if.end16.i72.i: ; preds = %while.body.i67.i - %126 = tail call i64 @llvm.cttz.i64(i64 %xor11.i70.i, i1 true), !range !16 - %shr.i35.i73.i = lshr i64 %126, 3 + %134 = tail call i64 @llvm.cttz.i64(i64 %xor11.i70.i, i1 true), !range !16 + %shr.i35.i73.i = lshr i64 %134, 3 %add.ptr18.i74.i = getelementptr inbounds i8, ptr %pIn.addr.0.i64.i, i64 %shr.i35.i73.i %sub.ptr.lhs.cast.i75.i = ptrtoint ptr %add.ptr18.i74.i to i64 %sub.ptr.rhs.cast.i76.i = ptrtoint ptr %add.ptr15.i to i64 @@ -21198,9 +21106,9 @@ if.end47.i26.i: ; preds = %if.then44.i44.i, %l br i1 %cmp48.i29.i, label %land.lhs.true50.i36.i, label %if.end56.i30.i land.lhs.true50.i36.i: ; preds = %if.end47.i26.i - %127 = load i8, ptr %pMatch.addr.3.i27.i, align 1 - %128 = load i8, ptr %pIn.addr.3.i28.i, align 1 - %cmp53.i37.i = icmp eq i8 %127, %128 + %135 = load i8, ptr %pMatch.addr.3.i27.i, align 1 + %136 = load i8, ptr %pIn.addr.3.i28.i, align 1 + %cmp53.i37.i = icmp eq i8 %135, %136 %spec.select.idx.i38.i = zext i1 %cmp53.i37.i to i64 %spec.select.i39.i = getelementptr inbounds i8, ptr %pIn.addr.3.i28.i, i64 %spec.select.idx.i38.i br label %if.end56.i30.i @@ -21224,17 +21132,17 @@ ZSTD_count_2segments.exit: ; preds = %ZSTD_count.exit.i, br i1 %cmp.i527.not, label %if.end13.i, label %if.then.i535 if.then.i535: ; preds = %ZSTD_count_2segments.exit - %129 = load ptr, ptr %lit.i647, align 8 + %137 = load ptr, ptr %lit.i647, align 8 %ip.i.2.val1336 = load <2 x i64>, ptr %ip.i.21739, align 1 - store <2 x i64> %ip.i.2.val1336, ptr %129, align 1 + store <2 x i64> %ip.i.2.val1336, ptr %137, align 1 br label %if.end13.i if.end13.i: ; preds = %ZSTD_count_2segments.exit, %if.then.i535 - %130 = load ptr, ptr %sequences.i639, align 8 - %litLength16.i = getelementptr inbounds %struct.seqDef_s, ptr %130, i64 0, i32 1 + %138 = load ptr, ptr %sequences.i639, align 8 + %litLength16.i = getelementptr inbounds %struct.seqDef_s, ptr %138, i64 0, i32 1 store i16 0, ptr %litLength16.i, align 4 - %131 = load ptr, ptr %sequences.i639, align 8 - store i32 1, ptr %131, align 4 + %139 = load ptr, ptr %sequences.i639, align 8 + store i32 1, ptr %139, align 4 %sub20.i = add i64 %retval.0.i, 1 %cmp21.i = icmp ugt i64 %sub20.i, 65535 %.pre1789 = load ptr, ptr %sequences.i639, align 8 @@ -21242,9 +21150,9 @@ if.end13.i: ; preds = %ZSTD_count_2segment if.then23.i: ; preds = %if.end13.i store i32 2, ptr %longLengthType.i638, align 8 - %132 = load ptr, ptr %seqStore, align 8 + %140 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast27.i = ptrtoint ptr %.pre1789 to i64 - %sub.ptr.rhs.cast28.i = ptrtoint ptr %132 to i64 + %sub.ptr.rhs.cast28.i = ptrtoint ptr %140 to i64 %sub.ptr.sub29.i = sub i64 %sub.ptr.lhs.cast27.i, %sub.ptr.rhs.cast28.i %sub.ptr.div30.i = lshr exact i64 %sub.ptr.sub29.i, 3 %conv31.i = trunc i64 %sub.ptr.div30.i to i32 @@ -21255,8 +21163,8 @@ ZSTD_storeSeq.exit: ; preds = %if.then23.i, %if.en %conv34.i = trunc i64 %sub20.i to i16 %mlBase37.i = getelementptr inbounds %struct.seqDef_s, ptr %.pre1789, i64 0, i32 2 store i16 %conv34.i, ptr %mlBase37.i, align 2 - %133 = load ptr, ptr %sequences.i639, align 8 - %incdec.ptr.i530 = getelementptr inbounds %struct.seqDef_s, ptr %133, i64 1 + %141 = load ptr, ptr %sequences.i639, align 8 + %incdec.ptr.i530 = getelementptr inbounds %struct.seqDef_s, ptr %141, i64 1 store ptr %incdec.ptr.i530, ptr %sequences.i639, align 8 %add.ptr643.i = getelementptr inbounds i8, ptr %ip.i.21739, i64 %add640.i %cmp598.i.not = icmp ugt ptr %add.ptr643.i, %add.ptr1.i @@ -21390,7 +21298,7 @@ if.then93.i: ; preds = %if.then87.i if.end110.i: ; preds = %if.then87.i, %while.body.i store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1250, label %sw.epilog97.i463 [ + switch i32 %spec.select1250, label %default.unreachable [ i32 4, label %sw.bb50.i477 i32 5, label %sw.bb52.i475 i32 6, label %sw.bb54.i473 @@ -21408,7 +21316,7 @@ sw.bb54.i473: ; preds = %if.end110.i %call55.i474 = call fastcc i64 @ZSTD_HcFindBestMatch_extDict_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01283, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %if.then114.i -sw.epilog97.i463: ; preds = %if.end110.i +default.unreachable: ; preds = %if.end110.i unreachable if.then114.i: ; preds = %sw.bb50.i477, %sw.bb52.i475, %sw.bb54.i473 @@ -22267,14 +22175,14 @@ if.then93.i: ; preds = %if.then87.i if.end110.i: ; preds = %if.then87.i, %while.body.i store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1288, label %sw.epilog97.i463 [ + switch i32 %spec.select1288, label %default.unreachable [ i32 4, label %sw.bb66.i454 i32 5, label %sw.bb76.i446 i32 6, label %sw.bb86.i438 ] sw.bb66.i454: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog73.i461 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb67.i459 i32 5, label %sw.bb69.i457 i32 6, label %sw.bb71.i455 @@ -22292,11 +22200,8 @@ sw.bb71.i455: ; preds = %sw.bb66.i454 %call72.i456 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_4_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01428, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %if.then114.i -sw.epilog73.i461: ; preds = %sw.bb66.i454 - unreachable - sw.bb76.i446: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog83.i453 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb77.i451 i32 5, label %sw.bb79.i449 i32 6, label %sw.bb81.i447 @@ -22314,11 +22219,8 @@ sw.bb81.i447: ; preds = %sw.bb76.i446 %call82.i448 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_5_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01428, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %if.then114.i -sw.epilog83.i453: ; preds = %sw.bb76.i446 - unreachable - sw.bb86.i438: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog93.i445 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb87.i443 i32 5, label %sw.bb89.i441 i32 6, label %sw.bb91.i439 @@ -22336,10 +22238,7 @@ sw.bb91.i439: ; preds = %sw.bb86.i438 %call92.i440 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_6_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01428, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %if.then114.i -sw.epilog93.i445: ; preds = %sw.bb86.i438 - unreachable - -sw.epilog97.i463: ; preds = %if.end110.i +default.unreachable: ; preds = %sw.bb86.i438, %sw.bb76.i446, %sw.bb66.i454, %if.end110.i unreachable if.then114.i: ; preds = %sw.bb67.i459, %sw.bb69.i457, %sw.bb71.i455, %sw.bb77.i451, %sw.bb79.i449, %sw.bb81.i447, %sw.bb87.i443, %sw.bb89.i441, %sw.bb91.i439 @@ -23080,7 +22979,7 @@ if.then93.i: ; preds = %if.then87.i if.end110.i: ; preds = %if.then93.i, %if.then87.i, %while.body.i %matchLength.i.0 = phi i64 [ %add104.i, %if.then93.i ], [ 0, %if.then87.i ], [ 0, %while.body.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1263, label %sw.epilog97.i463 [ + switch i32 %spec.select1263, label %if.end110.i.unreachabledefault [ i32 4, label %sw.bb50.i477 i32 5, label %sw.bb52.i475 i32 6, label %sw.bb54.i473 @@ -23098,7 +22997,10 @@ sw.bb54.i473: ; preds = %if.end110.i %call55.i474 = call fastcc i64 @ZSTD_HcFindBestMatch_extDict_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01284, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog97.i463: ; preds = %if.end110.i +if.end110.i.unreachabledefault: ; preds = %if.end110.i + unreachable + +default.unreachable: ; preds = %if.end193.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb54.i473, %sw.bb52.i475, %sw.bb50.i477 @@ -23196,7 +23098,7 @@ if.end193.i: ; preds = %if.then136.i, %if.t %offBase.i.2 = phi i64 [ 1, %if.then189.i ], [ %offBase.i.1, %land.lhs.true.i ], [ %offBase.i.1, %if.then165.i ], [ %offBase.i.1, %if.then160.i ], [ %offBase.i.1, %if.then136.i ], [ 0, %while.body134.i ] %matchLength.i.3 = phi i64 [ %add176.i, %if.then189.i ], [ %matchLength.i.2, %land.lhs.true.i ], [ %matchLength.i.2, %if.then165.i ], [ %matchLength.i.2, %if.then160.i ], [ %matchLength.i.2, %if.then136.i ], [ %matchLength.i.2, %while.body134.i ] store i64 999999999, ptr %ofbCandidate194.i, align 8 - switch i32 %spec.select1263, label %sw.epilog97.i270 [ + switch i32 %spec.select1263, label %default.unreachable [ i32 4, label %sw.bb50.i284 i32 5, label %sw.bb52.i282 i32 6, label %sw.bb54.i280 @@ -23214,9 +23116,6 @@ sw.bb54.i280: ; preds = %if.end193.i %call55.i281 = call fastcc i64 @ZSTD_HcFindBestMatch_extDict_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog97.i270: ; preds = %if.end193.i - unreachable - ZSTD_searchMax.exit331: ; preds = %sw.bb54.i280, %sw.bb52.i282, %sw.bb50.i284 %retval.i138.0 = phi i64 [ %call55.i281, %sw.bb54.i280 ], [ %call53.i283, %sw.bb52.i282 ], [ %call51.i285, %sw.bb50.i284 ] %cmp212.i = icmp ugt i64 %retval.i138.0, 3 @@ -24085,14 +23984,14 @@ if.then93.i: ; preds = %if.then87.i if.end110.i: ; preds = %if.then93.i, %if.then87.i, %while.body.i %matchLength.i.0 = phi i64 [ %add104.i, %if.then93.i ], [ 0, %if.then87.i ], [ 0, %while.body.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1301, label %sw.epilog97.i463 [ + switch i32 %spec.select1301, label %if.end110.i.unreachabledefault [ i32 4, label %sw.bb66.i454 i32 5, label %sw.bb76.i446 i32 6, label %sw.bb86.i438 ] sw.bb66.i454: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog73.i461 [ + switch i32 %cond59.i, label %sw.bb66.i454.unreachabledefault [ i32 4, label %sw.bb67.i459 i32 5, label %sw.bb69.i457 i32 6, label %sw.bb71.i455 @@ -24110,11 +24009,8 @@ sw.bb71.i455: ; preds = %sw.bb66.i454 %call72.i456 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_4_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01429, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog73.i461: ; preds = %sw.bb66.i454 - unreachable - sw.bb76.i446: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog83.i453 [ + switch i32 %cond59.i, label %sw.bb76.i446.unreachabledefault [ i32 4, label %sw.bb77.i451 i32 5, label %sw.bb79.i449 i32 6, label %sw.bb81.i447 @@ -24132,11 +24028,8 @@ sw.bb81.i447: ; preds = %sw.bb76.i446 %call82.i448 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_5_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01429, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog83.i453: ; preds = %sw.bb76.i446 - unreachable - sw.bb86.i438: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog93.i445 [ + switch i32 %cond59.i, label %sw.bb86.i438.unreachabledefault [ i32 4, label %sw.bb87.i443 i32 5, label %sw.bb89.i441 i32 6, label %sw.bb91.i439 @@ -24154,10 +24047,19 @@ sw.bb91.i439: ; preds = %sw.bb86.i438 %call92.i440 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_6_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01429, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog93.i445: ; preds = %sw.bb86.i438 +if.end110.i.unreachabledefault: ; preds = %if.end110.i + unreachable + +sw.bb66.i454.unreachabledefault: ; preds = %sw.bb66.i454 + unreachable + +sw.bb76.i446.unreachabledefault: ; preds = %sw.bb76.i446 unreachable -sw.epilog97.i463: ; preds = %if.end110.i +sw.bb86.i438.unreachabledefault: ; preds = %sw.bb86.i438 + unreachable + +default.unreachable: ; preds = %sw.bb86.i245, %sw.bb76.i253, %sw.bb66.i261, %if.end193.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb91.i439, %sw.bb89.i441, %sw.bb87.i443, %sw.bb81.i447, %sw.bb79.i449, %sw.bb77.i451, %sw.bb71.i455, %sw.bb69.i457, %sw.bb67.i459 @@ -24255,14 +24157,14 @@ if.end193.i: ; preds = %if.then136.i, %if.t %offBase.i.2 = phi i64 [ 1, %if.then189.i ], [ %offBase.i.1, %land.lhs.true.i ], [ %offBase.i.1, %if.then165.i ], [ %offBase.i.1, %if.then160.i ], [ %offBase.i.1, %if.then136.i ], [ 0, %while.body134.i ] %matchLength.i.3 = phi i64 [ %add176.i, %if.then189.i ], [ %matchLength.i.2, %land.lhs.true.i ], [ %matchLength.i.2, %if.then165.i ], [ %matchLength.i.2, %if.then160.i ], [ %matchLength.i.2, %if.then136.i ], [ %matchLength.i.2, %while.body134.i ] store i64 999999999, ptr %ofbCandidate194.i, align 8 - switch i32 %spec.select1301, label %sw.epilog97.i270 [ + switch i32 %spec.select1301, label %default.unreachable [ i32 4, label %sw.bb66.i261 i32 5, label %sw.bb76.i253 i32 6, label %sw.bb86.i245 ] sw.bb66.i261: ; preds = %if.end193.i - switch i32 %cond59.i, label %sw.epilog73.i268 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb67.i266 i32 5, label %sw.bb69.i264 i32 6, label %sw.bb71.i262 @@ -24280,11 +24182,8 @@ sw.bb71.i262: ; preds = %sw.bb66.i261 %call72.i263 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog73.i268: ; preds = %sw.bb66.i261 - unreachable - sw.bb76.i253: ; preds = %if.end193.i - switch i32 %cond59.i, label %sw.epilog83.i260 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb77.i258 i32 5, label %sw.bb79.i256 i32 6, label %sw.bb81.i254 @@ -24302,11 +24201,8 @@ sw.bb81.i254: ; preds = %sw.bb76.i253 %call82.i255 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog83.i260: ; preds = %sw.bb76.i253 - unreachable - sw.bb86.i245: ; preds = %if.end193.i - switch i32 %cond59.i, label %sw.epilog93.i252 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb87.i250 i32 5, label %sw.bb89.i248 i32 6, label %sw.bb91.i246 @@ -24324,12 +24220,6 @@ sw.bb91.i246: ; preds = %sw.bb86.i245 %call92.i247 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog93.i252: ; preds = %sw.bb86.i245 - unreachable - -sw.epilog97.i270: ; preds = %if.end193.i - unreachable - ZSTD_searchMax.exit331: ; preds = %sw.bb91.i246, %sw.bb89.i248, %sw.bb87.i250, %sw.bb81.i254, %sw.bb79.i256, %sw.bb77.i258, %sw.bb71.i262, %sw.bb69.i264, %sw.bb67.i266 %retval.i138.0 = phi i64 [ %call92.i247, %sw.bb91.i246 ], [ %call90.i249, %sw.bb89.i248 ], [ %call88.i251, %sw.bb87.i250 ], [ %call82.i255, %sw.bb81.i254 ], [ %call80.i257, %sw.bb79.i256 ], [ %call78.i259, %sw.bb77.i258 ], [ %call72.i263, %sw.bb71.i262 ], [ %call70.i265, %sw.bb69.i264 ], [ %call68.i267, %sw.bb67.i266 ] %cmp212.i = icmp ugt i64 %retval.i138.0, 3 @@ -25081,7 +24971,7 @@ if.then93.i: ; preds = %if.then87.i if.end110.i: ; preds = %if.then93.i, %if.then87.i, %while.body.i %matchLength.i.0 = phi i64 [ %add104.i, %if.then93.i ], [ 0, %if.then87.i ], [ 0, %while.body.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1275, label %sw.epilog97.i463 [ + switch i32 %spec.select1275, label %if.end110.i.unreachabledefault [ i32 4, label %sw.bb50.i477 i32 5, label %sw.bb52.i475 i32 6, label %sw.bb54.i473 @@ -25099,7 +24989,10 @@ sw.bb54.i473: ; preds = %if.end110.i %call55.i474 = call fastcc i64 @ZSTD_HcFindBestMatch_extDict_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01299, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog97.i463: ; preds = %if.end110.i +if.end110.i.unreachabledefault: ; preds = %if.end110.i + unreachable + +default.unreachable: ; preds = %if.end290.i, %if.end193.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb54.i473, %sw.bb52.i475, %sw.bb50.i477 @@ -25194,7 +25087,7 @@ if.end193.i: ; preds = %if.then136.i, %if.t %offBase.i.2 = phi i64 [ 1, %if.then189.i ], [ %offBase.i.11308, %land.lhs.true.i ], [ %offBase.i.11308, %if.then165.i ], [ %offBase.i.11308, %if.then160.i ], [ %offBase.i.11308, %if.then136.i ], [ 0, %while.body134.i ] %matchLength.i.3 = phi i64 [ %add176.i, %if.then189.i ], [ %matchLength.i.21309, %land.lhs.true.i ], [ %matchLength.i.21309, %if.then165.i ], [ %matchLength.i.21309, %if.then160.i ], [ %matchLength.i.21309, %if.then136.i ], [ %matchLength.i.21309, %while.body134.i ] store i64 999999999, ptr %ofbCandidate194.i, align 8 - switch i32 %spec.select1275, label %sw.epilog97.i270 [ + switch i32 %spec.select1275, label %default.unreachable [ i32 4, label %sw.bb50.i284 i32 5, label %sw.bb52.i282 i32 6, label %sw.bb54.i280 @@ -25212,9 +25105,6 @@ sw.bb54.i280: ; preds = %if.end193.i %call55.i281 = call fastcc i64 @ZSTD_HcFindBestMatch_extDict_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog97.i270: ; preds = %if.end193.i - unreachable - ZSTD_searchMax.exit331: ; preds = %sw.bb54.i280, %sw.bb52.i282, %sw.bb50.i284 %retval.i138.0 = phi i64 [ %call55.i281, %sw.bb54.i280 ], [ %call53.i283, %sw.bb52.i282 ], [ %call51.i285, %sw.bb50.i284 ] %mul205.i = shl i64 %matchLength.i.3, 2 @@ -25308,7 +25198,7 @@ if.end290.i: ; preds = %if.then228.i, %if.t %offBase.i.3 = phi i64 [ 1, %if.then286.i ], [ %offBase.i.2, %land.lhs.true283.i ], [ %offBase.i.2, %if.then257.i ], [ %offBase.i.2, %if.then252.i ], [ %offBase.i.2, %if.then228.i ], [ 0, %if.then224.i ] %matchLength.i.4 = phi i64 [ %add269.i, %if.then286.i ], [ %matchLength.i.3, %land.lhs.true283.i ], [ %matchLength.i.3, %if.then257.i ], [ %matchLength.i.3, %if.then252.i ], [ %matchLength.i.3, %if.then228.i ], [ %matchLength.i.3, %if.then224.i ] store i64 999999999, ptr %ofbCandidate291.i, align 8 - switch i32 %spec.select1275, label %sw.epilog97.i [ + switch i32 %spec.select1275, label %default.unreachable [ i32 4, label %sw.bb50.i i32 5, label %sw.bb52.i i32 6, label %sw.bb54.i @@ -25326,9 +25216,6 @@ sw.bb54.i: ; preds = %if.end290.i %call55.i = call fastcc i64 @ZSTD_HcFindBestMatch_extDict_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr225.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate291.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog97.i: ; preds = %if.end290.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb54.i, %sw.bb52.i, %sw.bb50.i %retval.i120.0 = phi i64 [ %call55.i, %sw.bb54.i ], [ %call53.i, %sw.bb52.i ], [ %call51.i, %sw.bb50.i ] %cmp309.i = icmp ugt i64 %retval.i120.0, 3 @@ -26198,14 +26085,14 @@ if.then93.i: ; preds = %if.then87.i if.end110.i: ; preds = %if.then93.i, %if.then87.i, %while.body.i %matchLength.i.0 = phi i64 [ %add104.i, %if.then93.i ], [ 0, %if.then87.i ], [ 0, %while.body.i ] store i64 999999999, ptr %ofbCandidate.i, align 8 - switch i32 %spec.select1313, label %sw.epilog97.i463 [ + switch i32 %spec.select1313, label %if.end110.i.unreachabledefault [ i32 4, label %sw.bb66.i454 i32 5, label %sw.bb76.i446 i32 6, label %sw.bb86.i438 ] sw.bb66.i454: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog73.i461 [ + switch i32 %cond59.i, label %sw.bb66.i454.unreachabledefault [ i32 4, label %sw.bb67.i459 i32 5, label %sw.bb69.i457 i32 6, label %sw.bb71.i455 @@ -26223,11 +26110,8 @@ sw.bb71.i455: ; preds = %sw.bb66.i454 %call72.i456 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_4_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01453, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog73.i461: ; preds = %sw.bb66.i454 - unreachable - sw.bb76.i446: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog83.i453 [ + switch i32 %cond59.i, label %sw.bb76.i446.unreachabledefault [ i32 4, label %sw.bb77.i451 i32 5, label %sw.bb79.i449 i32 6, label %sw.bb81.i447 @@ -26245,11 +26129,8 @@ sw.bb81.i447: ; preds = %sw.bb76.i446 %call82.i448 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_5_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01453, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog83.i453: ; preds = %sw.bb76.i446 - unreachable - sw.bb86.i438: ; preds = %if.end110.i - switch i32 %cond59.i, label %sw.epilog93.i445 [ + switch i32 %cond59.i, label %sw.bb86.i438.unreachabledefault [ i32 4, label %sw.bb87.i443 i32 5, label %sw.bb89.i441 i32 6, label %sw.bb91.i439 @@ -26267,10 +26148,19 @@ sw.bb91.i439: ; preds = %sw.bb86.i438 %call92.i440 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_6_6(ptr noundef nonnull %ms, ptr noundef %ip.i.01453, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate.i), !range !14 br label %ZSTD_searchMax.exit524 -sw.epilog93.i445: ; preds = %sw.bb86.i438 +if.end110.i.unreachabledefault: ; preds = %if.end110.i + unreachable + +sw.bb66.i454.unreachabledefault: ; preds = %sw.bb66.i454 + unreachable + +sw.bb76.i446.unreachabledefault: ; preds = %sw.bb76.i446 unreachable -sw.epilog97.i463: ; preds = %if.end110.i +sw.bb86.i438.unreachabledefault: ; preds = %sw.bb86.i438 + unreachable + +default.unreachable: ; preds = %sw.bb86.i, %sw.bb76.i, %sw.bb66.i, %if.end290.i, %sw.bb86.i245, %sw.bb76.i253, %sw.bb66.i261, %if.end193.i unreachable ZSTD_searchMax.exit524: ; preds = %sw.bb91.i439, %sw.bb89.i441, %sw.bb87.i443, %sw.bb81.i447, %sw.bb79.i449, %sw.bb77.i451, %sw.bb71.i455, %sw.bb69.i457, %sw.bb67.i459 @@ -26365,14 +26255,14 @@ if.end193.i: ; preds = %if.then136.i, %if.t %offBase.i.2 = phi i64 [ 1, %if.then189.i ], [ %offBase.i.11462, %land.lhs.true.i ], [ %offBase.i.11462, %if.then165.i ], [ %offBase.i.11462, %if.then160.i ], [ %offBase.i.11462, %if.then136.i ], [ 0, %while.body134.i ] %matchLength.i.3 = phi i64 [ %add176.i, %if.then189.i ], [ %matchLength.i.21463, %land.lhs.true.i ], [ %matchLength.i.21463, %if.then165.i ], [ %matchLength.i.21463, %if.then160.i ], [ %matchLength.i.21463, %if.then136.i ], [ %matchLength.i.21463, %while.body134.i ] store i64 999999999, ptr %ofbCandidate194.i, align 8 - switch i32 %spec.select1313, label %sw.epilog97.i270 [ + switch i32 %spec.select1313, label %default.unreachable [ i32 4, label %sw.bb66.i261 i32 5, label %sw.bb76.i253 i32 6, label %sw.bb86.i245 ] sw.bb66.i261: ; preds = %if.end193.i - switch i32 %cond59.i, label %sw.epilog73.i268 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb67.i266 i32 5, label %sw.bb69.i264 i32 6, label %sw.bb71.i262 @@ -26390,11 +26280,8 @@ sw.bb71.i262: ; preds = %sw.bb66.i261 %call72.i263 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog73.i268: ; preds = %sw.bb66.i261 - unreachable - sw.bb76.i253: ; preds = %if.end193.i - switch i32 %cond59.i, label %sw.epilog83.i260 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb77.i258 i32 5, label %sw.bb79.i256 i32 6, label %sw.bb81.i254 @@ -26412,11 +26299,8 @@ sw.bb81.i254: ; preds = %sw.bb76.i253 %call82.i255 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog83.i260: ; preds = %sw.bb76.i253 - unreachable - sw.bb86.i245: ; preds = %if.end193.i - switch i32 %cond59.i, label %sw.epilog93.i252 [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb87.i250 i32 5, label %sw.bb89.i248 i32 6, label %sw.bb91.i246 @@ -26434,12 +26318,6 @@ sw.bb91.i246: ; preds = %sw.bb86.i245 %call92.i247 = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i), !range !14 br label %ZSTD_searchMax.exit331 -sw.epilog93.i252: ; preds = %sw.bb86.i245 - unreachable - -sw.epilog97.i270: ; preds = %if.end193.i - unreachable - ZSTD_searchMax.exit331: ; preds = %sw.bb91.i246, %sw.bb89.i248, %sw.bb87.i250, %sw.bb81.i254, %sw.bb79.i256, %sw.bb77.i258, %sw.bb71.i262, %sw.bb69.i264, %sw.bb67.i266 %retval.i138.0 = phi i64 [ %call92.i247, %sw.bb91.i246 ], [ %call90.i249, %sw.bb89.i248 ], [ %call88.i251, %sw.bb87.i250 ], [ %call82.i255, %sw.bb81.i254 ], [ %call80.i257, %sw.bb79.i256 ], [ %call78.i259, %sw.bb77.i258 ], [ %call72.i263, %sw.bb71.i262 ], [ %call70.i265, %sw.bb69.i264 ], [ %call68.i267, %sw.bb67.i266 ] %mul205.i = shl i64 %matchLength.i.3, 2 @@ -26533,14 +26411,14 @@ if.end290.i: ; preds = %if.then228.i, %if.t %offBase.i.3 = phi i64 [ 1, %if.then286.i ], [ %offBase.i.2, %land.lhs.true283.i ], [ %offBase.i.2, %if.then257.i ], [ %offBase.i.2, %if.then252.i ], [ %offBase.i.2, %if.then228.i ], [ 0, %if.then224.i ] %matchLength.i.4 = phi i64 [ %add269.i, %if.then286.i ], [ %matchLength.i.3, %land.lhs.true283.i ], [ %matchLength.i.3, %if.then257.i ], [ %matchLength.i.3, %if.then252.i ], [ %matchLength.i.3, %if.then228.i ], [ %matchLength.i.3, %if.then224.i ] store i64 999999999, ptr %ofbCandidate291.i, align 8 - switch i32 %spec.select1313, label %sw.epilog97.i [ + switch i32 %spec.select1313, label %default.unreachable [ i32 4, label %sw.bb66.i i32 5, label %sw.bb76.i i32 6, label %sw.bb86.i ] sw.bb66.i: ; preds = %if.end290.i - switch i32 %cond59.i, label %sw.epilog73.i [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb67.i i32 5, label %sw.bb69.i i32 6, label %sw.bb71.i @@ -26558,11 +26436,8 @@ sw.bb71.i: ; preds = %sw.bb66.i %call72.i = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_4_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr225.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate291.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog73.i: ; preds = %sw.bb66.i - unreachable - sw.bb76.i: ; preds = %if.end290.i - switch i32 %cond59.i, label %sw.epilog83.i [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb77.i i32 5, label %sw.bb79.i i32 6, label %sw.bb81.i @@ -26580,11 +26455,8 @@ sw.bb81.i: ; preds = %sw.bb76.i %call82.i = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_5_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr225.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate291.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog83.i: ; preds = %sw.bb76.i - unreachable - sw.bb86.i: ; preds = %if.end290.i - switch i32 %cond59.i, label %sw.epilog93.i [ + switch i32 %cond59.i, label %default.unreachable [ i32 4, label %sw.bb87.i i32 5, label %sw.bb89.i i32 6, label %sw.bb91.i @@ -26602,12 +26474,6 @@ sw.bb91.i: ; preds = %sw.bb86.i %call92.i = call fastcc i64 @ZSTD_RowFindBestMatch_extDict_6_6(ptr noundef %ms, ptr noundef nonnull %incdec.ptr225.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate291.i), !range !14 br label %ZSTD_searchMax.exit -sw.epilog93.i: ; preds = %sw.bb86.i - unreachable - -sw.epilog97.i: ; preds = %if.end290.i - unreachable - ZSTD_searchMax.exit: ; preds = %sw.bb91.i, %sw.bb89.i, %sw.bb87.i, %sw.bb81.i, %sw.bb79.i, %sw.bb77.i, %sw.bb71.i, %sw.bb69.i, %sw.bb67.i %retval.i120.0 = phi i64 [ %call92.i, %sw.bb91.i ], [ %call90.i131, %sw.bb89.i ], [ %call88.i, %sw.bb87.i ], [ %call82.i, %sw.bb81.i ], [ %call80.i, %sw.bb79.i ], [ %call78.i, %sw.bb77.i ], [ %call72.i, %sw.bb71.i ], [ %call70.i, %sw.bb69.i ], [ %call68.i, %sw.bb67.i ] %cmp309.i = icmp ugt i64 %retval.i120.0, 3 @@ -27369,7 +27235,7 @@ if.end110.i: ; preds = %if.then93.i, %if.th %idx.ext.i.i = zext i32 %11 to i64 %add.ptr.i.i = getelementptr inbounds i8, ptr %10, i64 %idx.ext.i.i %cmp.i.i = icmp ugt ptr %add.ptr.i.i, %ip.i.01588 - switch i32 %spec.select1564, label %sw.epilog97.i463 [ + switch i32 %spec.select1564, label %if.end110.i.unreachabledefault [ i32 4, label %sw.bb58.i469 i32 5, label %sw.bb60.i467 i32 6, label %sw.bb62.i465 @@ -27507,7 +27373,10 @@ for.body.us.i.i: ; preds = %for.body.us.i.i, %f %exitcond.not.i1245 = icmp eq i64 %indvars.iv.next22.i.i, %30 br i1 %exitcond.not.i1245, label %ZSTD_searchMax.exit524.sink.split, label %for.body.us.i.i, !llvm.loop !27 -sw.epilog97.i463: ; preds = %if.end110.i +if.end110.i.unreachabledefault: ; preds = %if.end110.i + unreachable + +default.unreachable: ; preds = %if.end290.i, %if.end193.i unreachable ZSTD_searchMax.exit524.sink.split: ; preds = %for.body.us.i.i, %for.body.us4.i.i, %for.body.i.i, %if.end.i.i1226, %if.end.i.i1203, %if.end.i.i @@ -27608,18 +27477,18 @@ if.end193.i: ; preds = %if.then136.i, %if.t %offBase.i.2 = phi i64 [ 1, %if.then189.i ], [ %offBase.i.11597, %land.lhs.true.i ], [ %offBase.i.11597, %if.then165.i ], [ %offBase.i.11597, %if.then160.i ], [ %offBase.i.11597, %if.then136.i ], [ 0, %while.body134.i ] %matchLength.i.3 = phi i64 [ %add176.i, %if.then189.i ], [ %matchLength.i.21598, %land.lhs.true.i ], [ %matchLength.i.21598, %if.then165.i ], [ %matchLength.i.21598, %if.then160.i ], [ %matchLength.i.21598, %if.then136.i ], [ %matchLength.i.21598, %while.body134.i ] store i64 999999999, ptr %ofbCandidate194.i, align 8 - %40 = load ptr, ptr %base4.i, align 8 - %41 = load i32, ptr %nextToUpdate.i.i1222, align 4 - %idx.ext.i.i1255 = zext i32 %41 to i64 - %add.ptr.i.i1256 = getelementptr inbounds i8, ptr %40, i64 %idx.ext.i.i1255 - %cmp.i.i1257 = icmp ugt ptr %add.ptr.i.i1256, %incdec.ptr.i - switch i32 %spec.select1564, label %sw.epilog97.i270 [ + switch i32 %spec.select1564, label %default.unreachable [ i32 4, label %sw.bb58.i276 i32 5, label %sw.bb60.i274 i32 6, label %sw.bb62.i272 ] sw.bb58.i276: ; preds = %if.end193.i + %40 = load ptr, ptr %base4.i, align 8 + %41 = load i32, ptr %nextToUpdate.i.i1222, align 4 + %idx.ext.i.i1255 = zext i32 %41 to i64 + %add.ptr.i.i1256 = getelementptr inbounds i8, ptr %40, i64 %idx.ext.i.i1255 + %cmp.i.i1257 = icmp ugt ptr %add.ptr.i.i1256, %incdec.ptr.i br i1 %cmp.i.i1257, label %ZSTD_searchMax.exit331.thread, label %if.end.i.i1258 if.end.i.i1258: ; preds = %sw.bb58.i276 @@ -27665,102 +27534,109 @@ for.body.i.i1276: ; preds = %for.body.i.i1276, % br i1 %exitcond.not.i1290, label %ZSTD_searchMax.exit331, label %for.body.i.i1276, !llvm.loop !27 sw.bb60.i274: ; preds = %if.end193.i - br i1 %cmp.i.i1257, label %ZSTD_searchMax.exit331.thread, label %if.end.i.i1297 + %49 = load ptr, ptr %base4.i, align 8 + %50 = load i32, ptr %nextToUpdate.i.i1222, align 4 + %idx.ext.i.i1294 = zext i32 %50 to i64 + %add.ptr.i.i1295 = getelementptr inbounds i8, ptr %49, i64 %idx.ext.i.i1294 + %cmp.i.i1296 = icmp ugt ptr %add.ptr.i.i1295, %incdec.ptr.i + br i1 %cmp.i.i1296, label %ZSTD_searchMax.exit331.thread, label %if.end.i.i1297 if.end.i.i1297: ; preds = %sw.bb60.i274 - %49 = load ptr, ptr %hashTable2.i.i1227, align 8 - %50 = load ptr, ptr %chainTable.i.i1228, align 8 - %51 = load i32, ptr %chainLog.i.i1229, align 4 - %sub.i.i1301 = add i32 %51, -1 + %51 = load ptr, ptr %hashTable2.i.i1227, align 8 + %52 = load ptr, ptr %chainTable.i.i1228, align 8 + %53 = load i32, ptr %chainLog.i.i1229, align 4 + %sub.i.i1301 = add i32 %53, -1 %notmask.i.i1302 = shl nsw i32 -1, %sub.i.i1301 %sub4.i.i1303 = xor i32 %notmask.i.i1302, -1 %sub.ptr.lhs.cast.i.i1304 = ptrtoint ptr %incdec.ptr.i to i64 - %sub.ptr.rhs.cast.i.i1305 = ptrtoint ptr %40 to i64 + %sub.ptr.rhs.cast.i.i1305 = ptrtoint ptr %49 to i64 %sub.ptr.sub.i.i1306 = sub i64 %sub.ptr.lhs.cast.i.i1304, %sub.ptr.rhs.cast.i.i1305 %conv.i.i1307 = trunc i64 %sub.ptr.sub.i.i1306 to i32 - %cmp71.i.i1308 = icmp ult i32 %41, %conv.i.i1307 + %cmp71.i.i1308 = icmp ult i32 %50, %conv.i.i1307 br i1 %cmp71.i.i1308, label %for.body.lr.ph.i.i1312, label %ZSTD_searchMax.exit331 for.body.lr.ph.i.i1312: ; preds = %if.end.i.i1297 - %52 = load i32, ptr %hashLog3.i.i1242, align 4 - %sub.i.i29.i.i1314 = sub i32 64, %52 + %54 = load i32, ptr %hashLog3.i.i1242, align 4 + %sub.i.i29.i.i1314 = sub i32 64, %54 %sh_prom.i.i.i.i1315 = zext nneg i32 %sub.i.i29.i.i1314 to i64 - %53 = and i64 %sub.ptr.sub.i.i1306, 4294967295 + %55 = and i64 %sub.ptr.sub.i.i1306, 4294967295 br label %for.body.us4.i.i1316 for.body.us4.i.i1316: ; preds = %for.body.us4.i.i1316, %for.body.lr.ph.i.i1312 - %indvars.iv.i.i1317 = phi i64 [ %indvars.iv.next.i.i1328, %for.body.us4.i.i1316 ], [ %idx.ext.i.i1255, %for.body.lr.ph.i.i1312 ] - %add.ptr.us7.i.i1318 = getelementptr inbounds i8, ptr %40, i64 %indvars.iv.i.i1317 + %indvars.iv.i.i1317 = phi i64 [ %indvars.iv.next.i.i1328, %for.body.us4.i.i1316 ], [ %idx.ext.i.i1294, %for.body.lr.ph.i.i1312 ] + %add.ptr.us7.i.i1318 = getelementptr inbounds i8, ptr %49, i64 %indvars.iv.i.i1317 %add.ptr.val26.us.i.i1319 = load i64, ptr %add.ptr.us7.i.i1318, align 1 %mul.i.i28.us.i.i1320 = mul i64 %add.ptr.val26.us.i.i1319, -3523014627271114752 %shr.i.i30.us.i.i1321 = lshr i64 %mul.i.i28.us.i.i1320, %sh_prom.i.i.i.i1315 - %arrayidx.us10.i.i1322 = getelementptr inbounds i32, ptr %49, i64 %shr.i.i30.us.i.i1321 - %54 = load i32, ptr %arrayidx.us10.i.i1322, align 4 - %55 = trunc i64 %indvars.iv.i.i1317 to i32 - %and.us11.i.i1323 = and i32 %55, %sub4.i.i1303 + %arrayidx.us10.i.i1322 = getelementptr inbounds i32, ptr %51, i64 %shr.i.i30.us.i.i1321 + %56 = load i32, ptr %arrayidx.us10.i.i1322, align 4 + %57 = trunc i64 %indvars.iv.i.i1317 to i32 + %and.us11.i.i1323 = and i32 %57, %sub4.i.i1303 %mul.us12.i.i1324 = shl nuw i32 %and.us11.i.i1323, 1 %idx.ext9.us13.i.i1325 = zext i32 %mul.us12.i.i1324 to i64 - %add.ptr10.us14.i.i1326 = getelementptr inbounds i32, ptr %50, i64 %idx.ext9.us13.i.i1325 + %add.ptr10.us14.i.i1326 = getelementptr inbounds i32, ptr %52, i64 %idx.ext9.us13.i.i1325 %add.ptr11.us15.i.i1327 = getelementptr inbounds i32, ptr %add.ptr10.us14.i.i1326, i64 1 - store i32 %55, ptr %arrayidx.us10.i.i1322, align 4 - store i32 %54, ptr %add.ptr10.us14.i.i1326, align 4 + store i32 %57, ptr %arrayidx.us10.i.i1322, align 4 + store i32 %56, ptr %add.ptr10.us14.i.i1326, align 4 store i32 1, ptr %add.ptr11.us15.i.i1327, align 4 %indvars.iv.next.i.i1328 = add nuw nsw i64 %indvars.iv.i.i1317, 1 - %exitcond.not.i1329 = icmp eq i64 %indvars.iv.next.i.i1328, %53 + %exitcond.not.i1329 = icmp eq i64 %indvars.iv.next.i.i1328, %55 br i1 %exitcond.not.i1329, label %ZSTD_searchMax.exit331, label %for.body.us4.i.i1316, !llvm.loop !27 sw.bb62.i272: ; preds = %if.end193.i - br i1 %cmp.i.i1257, label %ZSTD_searchMax.exit331.thread, label %if.end.i.i1336 + %58 = load ptr, ptr %base4.i, align 8 + %59 = load i32, ptr %nextToUpdate.i.i1222, align 4 + %idx.ext.i.i1333 = zext i32 %59 to i64 + %add.ptr.i.i1334 = getelementptr inbounds i8, ptr %58, i64 %idx.ext.i.i1333 + %cmp.i.i1335 = icmp ugt ptr %add.ptr.i.i1334, %incdec.ptr.i + br i1 %cmp.i.i1335, label %ZSTD_searchMax.exit331.thread, label %if.end.i.i1336 if.end.i.i1336: ; preds = %sw.bb62.i272 - %56 = load ptr, ptr %hashTable2.i.i1227, align 8 - %57 = load ptr, ptr %chainTable.i.i1228, align 8 - %58 = load i32, ptr %chainLog.i.i1229, align 4 - %sub.i.i1340 = add i32 %58, -1 + %60 = load ptr, ptr %hashTable2.i.i1227, align 8 + %61 = load ptr, ptr %chainTable.i.i1228, align 8 + %62 = load i32, ptr %chainLog.i.i1229, align 4 + %sub.i.i1340 = add i32 %62, -1 %notmask.i.i1341 = shl nsw i32 -1, %sub.i.i1340 %sub4.i.i1342 = xor i32 %notmask.i.i1341, -1 %sub.ptr.lhs.cast.i.i1343 = ptrtoint ptr %incdec.ptr.i to i64 - %sub.ptr.rhs.cast.i.i1344 = ptrtoint ptr %40 to i64 + %sub.ptr.rhs.cast.i.i1344 = ptrtoint ptr %58 to i64 %sub.ptr.sub.i.i1345 = sub i64 %sub.ptr.lhs.cast.i.i1343, %sub.ptr.rhs.cast.i.i1344 %conv.i.i1346 = trunc i64 %sub.ptr.sub.i.i1345 to i32 - %cmp71.i.i1347 = icmp ult i32 %41, %conv.i.i1346 + %cmp71.i.i1347 = icmp ult i32 %59, %conv.i.i1346 br i1 %cmp71.i.i1347, label %for.body.lr.ph.i.i1351, label %ZSTD_searchMax.exit331 for.body.lr.ph.i.i1351: ; preds = %if.end.i.i1336 - %59 = load i32, ptr %hashLog3.i.i1242, align 4 - %sub.i.i29.i.i1353 = sub i32 64, %59 + %63 = load i32, ptr %hashLog3.i.i1242, align 4 + %sub.i.i29.i.i1353 = sub i32 64, %63 %sh_prom.i.i.i.i1354 = zext nneg i32 %sub.i.i29.i.i1353 to i64 - %60 = and i64 %sub.ptr.sub.i.i1345, 4294967295 + %64 = and i64 %sub.ptr.sub.i.i1345, 4294967295 br label %for.body.us.i.i1355 for.body.us.i.i1355: ; preds = %for.body.us.i.i1355, %for.body.lr.ph.i.i1351 - %indvars.iv21.i.i1356 = phi i64 [ %indvars.iv.next22.i.i1367, %for.body.us.i.i1355 ], [ %idx.ext.i.i1255, %for.body.lr.ph.i.i1351 ] - %add.ptr.us.i.i1357 = getelementptr inbounds i8, ptr %40, i64 %indvars.iv21.i.i1356 + %indvars.iv21.i.i1356 = phi i64 [ %indvars.iv.next22.i.i1367, %for.body.us.i.i1355 ], [ %idx.ext.i.i1333, %for.body.lr.ph.i.i1351 ] + %add.ptr.us.i.i1357 = getelementptr inbounds i8, ptr %58, i64 %indvars.iv21.i.i1356 %add.ptr.val27.us.i.i1358 = load i64, ptr %add.ptr.us.i.i1357, align 1 %mul.i.i31.us.i.i1359 = mul i64 %add.ptr.val27.us.i.i1358, -3523014627193847808 %shr.i.i34.us.i.i1360 = lshr i64 %mul.i.i31.us.i.i1359, %sh_prom.i.i.i.i1354 - %arrayidx.us.i.i1361 = getelementptr inbounds i32, ptr %56, i64 %shr.i.i34.us.i.i1360 - %61 = load i32, ptr %arrayidx.us.i.i1361, align 4 - %62 = trunc i64 %indvars.iv21.i.i1356 to i32 - %and.us.i.i1362 = and i32 %62, %sub4.i.i1342 + %arrayidx.us.i.i1361 = getelementptr inbounds i32, ptr %60, i64 %shr.i.i34.us.i.i1360 + %65 = load i32, ptr %arrayidx.us.i.i1361, align 4 + %66 = trunc i64 %indvars.iv21.i.i1356 to i32 + %and.us.i.i1362 = and i32 %66, %sub4.i.i1342 %mul.us.i.i1363 = shl nuw i32 %and.us.i.i1362, 1 %idx.ext9.us.i.i1364 = zext i32 %mul.us.i.i1363 to i64 - %add.ptr10.us.i.i1365 = getelementptr inbounds i32, ptr %57, i64 %idx.ext9.us.i.i1364 + %add.ptr10.us.i.i1365 = getelementptr inbounds i32, ptr %61, i64 %idx.ext9.us.i.i1364 %add.ptr11.us.i.i1366 = getelementptr inbounds i32, ptr %add.ptr10.us.i.i1365, i64 1 - store i32 %62, ptr %arrayidx.us.i.i1361, align 4 - store i32 %61, ptr %add.ptr10.us.i.i1365, align 4 + store i32 %66, ptr %arrayidx.us.i.i1361, align 4 + store i32 %65, ptr %add.ptr10.us.i.i1365, align 4 store i32 1, ptr %add.ptr11.us.i.i1366, align 4 %indvars.iv.next22.i.i1367 = add nuw nsw i64 %indvars.iv21.i.i1356, 1 - %exitcond.not.i1368 = icmp eq i64 %indvars.iv.next22.i.i1367, %60 + %exitcond.not.i1368 = icmp eq i64 %indvars.iv.next22.i.i1367, %64 br i1 %exitcond.not.i1368, label %ZSTD_searchMax.exit331, label %for.body.us.i.i1355, !llvm.loop !27 -sw.epilog97.i270: ; preds = %if.end193.i - unreachable - ZSTD_searchMax.exit331.thread: ; preds = %sw.bb58.i276, %sw.bb60.i274, %sw.bb62.i272 %mul205.i1679 = shl i64 %matchLength.i.3, 2 %conv206.i1680 = trunc i64 %offBase.i.2 to i32 - %63 = tail call i32 @llvm.ctlz.i32(i32 %conv206.i1680, i1 true), !range !25 + %67 = tail call i32 @llvm.ctlz.i32(i32 %conv206.i1680, i1 true), !range !25 br label %land.lhs.true221.i ZSTD_searchMax.exit331: ; preds = %for.body.us.i.i1355, %for.body.us4.i.i1316, %for.body.i.i1276, %if.end.i.i1336, %if.end.i.i1297, %if.end.i.i1258 @@ -27769,34 +27645,34 @@ ZSTD_searchMax.exit331: ; preds = %for.body.us.i.i1355 %call.i.i1349 = call fastcc i64 @ZSTD_DUBT_findBestMatch(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i, ptr noundef %add.ptr.i, ptr noundef nonnull %ofbCandidate194.i, i32 noundef %spec.select1564, i32 noundef 1) %mul205.i = shl i64 %matchLength.i.3, 2 %conv206.i = trunc i64 %offBase.i.2 to i32 - %64 = tail call i32 @llvm.ctlz.i32(i32 %conv206.i, i1 true), !range !25 + %68 = tail call i32 @llvm.ctlz.i32(i32 %conv206.i, i1 true), !range !25 %cmp212.i = icmp ugt i64 %call.i.i1349, 3 br i1 %cmp212.i, label %land.lhs.true214.i, label %land.lhs.true221.i land.lhs.true214.i: ; preds = %ZSTD_searchMax.exit331 - %65 = load i64, ptr %ofbCandidate194.i, align 8 - %conv199.i = trunc i64 %65 to i32 - %66 = tail call i32 @llvm.ctlz.i32(i32 %conv199.i, i1 true), !range !25 - %sub.i1370 = xor i32 %66, 31 - %67 = trunc i64 %mul205.i to i32 - %68 = add nsw i32 %64, -27 - %conv211.i = add i32 %68, %67 + %69 = load i64, ptr %ofbCandidate194.i, align 8 + %conv199.i = trunc i64 %69 to i32 + %70 = tail call i32 @llvm.ctlz.i32(i32 %conv199.i, i1 true), !range !25 + %sub.i1370 = xor i32 %70, 31 + %71 = trunc i64 %mul205.i to i32 + %72 = add nsw i32 %68, -27 + %conv211.i = add i32 %72, %71 %retval.i138.0.tr = trunc i64 %call.i.i1349 to i32 - %69 = shl i32 %retval.i138.0.tr, 2 - %conv203.i = sub i32 %69, %sub.i1370 + %73 = shl i32 %retval.i138.0.tr, 2 + %conv203.i = sub i32 %73, %sub.i1370 %cmp215.i = icmp sgt i32 %conv203.i, %conv211.i br i1 %cmp215.i, label %while.cond131.i.backedge, label %land.lhs.true221.i while.cond131.i.backedge: ; preds = %land.lhs.true214.i, %land.lhs.true311.i %curr.i.0.be = phi i32 [ %inc.i, %land.lhs.true214.i ], [ %inc226.i, %land.lhs.true311.i ] %start.i.1.be = phi ptr [ %incdec.ptr.i, %land.lhs.true214.i ], [ %incdec.ptr225.i, %land.lhs.true311.i ] - %offBase.i.1.be = phi i64 [ %65, %land.lhs.true214.i ], [ %98, %land.lhs.true311.i ] + %offBase.i.1.be = phi i64 [ %69, %land.lhs.true214.i ], [ %106, %land.lhs.true311.i ] %matchLength.i.2.be = phi i64 [ %call.i.i1349, %land.lhs.true214.i ], [ %call.i.i1475, %land.lhs.true311.i ] %cmp132.i = icmp ult ptr %start.i.1.be, %add.ptr1.i br i1 %cmp132.i, label %while.body134.i, label %if.end317.i, !llvm.loop !32 land.lhs.true221.i: ; preds = %ZSTD_searchMax.exit331.thread, %ZSTD_searchMax.exit331, %land.lhs.true214.i - %70 = phi i32 [ %63, %ZSTD_searchMax.exit331.thread ], [ %64, %ZSTD_searchMax.exit331 ], [ %64, %land.lhs.true214.i ] + %74 = phi i32 [ %67, %ZSTD_searchMax.exit331.thread ], [ %68, %ZSTD_searchMax.exit331 ], [ %68, %land.lhs.true214.i ] %mul205.i1682 = phi i64 [ %mul205.i1679, %ZSTD_searchMax.exit331.thread ], [ %mul205.i, %ZSTD_searchMax.exit331 ], [ %mul205.i, %land.lhs.true214.i ] %cmp222.i = icmp ult ptr %incdec.ptr.i, %add.ptr1.i br i1 %cmp222.i, label %if.then224.i, label %if.end317.i @@ -27814,8 +27690,8 @@ if.then228.i: ; preds = %if.then224.i %cmp.i1374 = icmp ugt i32 %sub.i1373, %shl.i %sub1.i1375 = sub i32 %inc226.i, %shl.i %cmp2.not.i1376 = icmp eq i32 %ms.val1194, 0 - %71 = select i1 %cmp2.not.i1376, i1 %cmp.i1374, i1 false - %cond6.i1377 = select i1 %71, i32 %sub1.i1375, i32 %ms.val1193 + %75 = select i1 %cmp2.not.i1376, i1 %cmp.i1374, i1 false + %cond6.i1377 = select i1 %75, i32 %sub1.i1375, i32 %ms.val1193 %sub232.i = sub i32 %inc226.i, %offset_1.i.0.ph1637 %cmp234.i = icmp ult i32 %sub232.i, %1 %cond239.i = select i1 %cmp234.i, ptr %2, ptr %0 @@ -27844,9 +27720,9 @@ if.then257.i: ; preds = %if.then252.i br i1 %cmp281.i, label %land.lhs.true283.i, label %if.end290.i land.lhs.true283.i: ; preds = %if.then257.i - %72 = trunc i64 %mul205.i1682 to i32 - %73 = add nsw i32 %70, -30 - %conv280.i = add i32 %73, %72 + %76 = trunc i64 %mul205.i1682 to i32 + %77 = add nsw i32 %74, -30 + %conv280.i = add i32 %77, %76 %add269.i.tr = trunc i64 %add269.i to i32 %conv272.i = shl i32 %add269.i.tr, 2 %cmp284.i = icmp sgt i32 %conv272.i, %conv280.i @@ -27860,155 +27736,162 @@ if.end290.i: ; preds = %if.then228.i, %if.t %offBase.i.3 = phi i64 [ 1, %if.then286.i ], [ %offBase.i.2, %land.lhs.true283.i ], [ %offBase.i.2, %if.then257.i ], [ %offBase.i.2, %if.then252.i ], [ %offBase.i.2, %if.then228.i ], [ 0, %if.then224.i ] %matchLength.i.4 = phi i64 [ %add269.i, %if.then286.i ], [ %matchLength.i.3, %land.lhs.true283.i ], [ %matchLength.i.3, %if.then257.i ], [ %matchLength.i.3, %if.then252.i ], [ %matchLength.i.3, %if.then228.i ], [ %matchLength.i.3, %if.then224.i ] store i64 999999999, ptr %ofbCandidate291.i, align 8 - %74 = load ptr, ptr %base4.i, align 8 - %75 = load i32, ptr %nextToUpdate.i.i1222, align 4 - %idx.ext.i.i1381 = zext i32 %75 to i64 - %add.ptr.i.i1382 = getelementptr inbounds i8, ptr %74, i64 %idx.ext.i.i1381 - %cmp.i.i1383 = icmp ugt ptr %add.ptr.i.i1382, %incdec.ptr225.i - switch i32 %spec.select1564, label %sw.epilog97.i [ + switch i32 %spec.select1564, label %default.unreachable [ i32 4, label %sw.bb58.i i32 5, label %sw.bb60.i i32 6, label %sw.bb62.i ] sw.bb58.i: ; preds = %if.end290.i + %78 = load ptr, ptr %base4.i, align 8 + %79 = load i32, ptr %nextToUpdate.i.i1222, align 4 + %idx.ext.i.i1381 = zext i32 %79 to i64 + %add.ptr.i.i1382 = getelementptr inbounds i8, ptr %78, i64 %idx.ext.i.i1381 + %cmp.i.i1383 = icmp ugt ptr %add.ptr.i.i1382, %incdec.ptr225.i br i1 %cmp.i.i1383, label %if.end317.i, label %if.end.i.i1384 if.end.i.i1384: ; preds = %sw.bb58.i - %76 = load ptr, ptr %hashTable2.i.i1227, align 8 - %77 = load ptr, ptr %chainTable.i.i1228, align 8 - %78 = load i32, ptr %chainLog.i.i1229, align 4 - %sub.i.i1388 = add i32 %78, -1 + %80 = load ptr, ptr %hashTable2.i.i1227, align 8 + %81 = load ptr, ptr %chainTable.i.i1228, align 8 + %82 = load i32, ptr %chainLog.i.i1229, align 4 + %sub.i.i1388 = add i32 %82, -1 %notmask.i.i1389 = shl nsw i32 -1, %sub.i.i1388 %sub4.i.i1390 = xor i32 %notmask.i.i1389, -1 %sub.ptr.lhs.cast.i.i1391 = ptrtoint ptr %incdec.ptr225.i to i64 - %sub.ptr.rhs.cast.i.i1392 = ptrtoint ptr %74 to i64 + %sub.ptr.rhs.cast.i.i1392 = ptrtoint ptr %78 to i64 %sub.ptr.sub.i.i1393 = sub i64 %sub.ptr.lhs.cast.i.i1391, %sub.ptr.rhs.cast.i.i1392 %conv.i.i1394 = trunc i64 %sub.ptr.sub.i.i1393 to i32 - %cmp71.i.i1395 = icmp ult i32 %75, %conv.i.i1394 + %cmp71.i.i1395 = icmp ult i32 %79, %conv.i.i1394 br i1 %cmp71.i.i1395, label %for.body.lr.ph.i.i1399, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1399: ; preds = %if.end.i.i1384 - %79 = load i32, ptr %hashLog3.i.i1242, align 4 - %sub.i.i.i.i1401 = sub i32 32, %79 - %80 = and i64 %sub.ptr.sub.i.i1393, 4294967295 + %83 = load i32, ptr %hashLog3.i.i1242, align 4 + %sub.i.i.i.i1401 = sub i32 32, %83 + %84 = and i64 %sub.ptr.sub.i.i1393, 4294967295 br label %for.body.i.i1402 for.body.i.i1402: ; preds = %for.body.i.i1402, %for.body.lr.ph.i.i1399 %indvars.iv24.i.i1403 = phi i64 [ %indvars.iv.next25.i.i1415, %for.body.i.i1402 ], [ %idx.ext.i.i1381, %for.body.lr.ph.i.i1399 ] - %add.ptr.i9.i1404 = getelementptr inbounds i8, ptr %74, i64 %indvars.iv24.i.i1403 + %add.ptr.i9.i1404 = getelementptr inbounds i8, ptr %78, i64 %indvars.iv24.i.i1403 %add.ptr.val.i.i1405 = load i32, ptr %add.ptr.i9.i1404, align 1 %mul.i.i.i.i1406 = mul i32 %add.ptr.val.i.i1405, -1640531535 %shr.i.i.i.i1407 = lshr i32 %mul.i.i.i.i1406, %sub.i.i.i.i1401 %conv.i.i.i1408 = zext i32 %shr.i.i.i.i1407 to i64 - %arrayidx.i.i1409 = getelementptr inbounds i32, ptr %76, i64 %conv.i.i.i1408 - %81 = load i32, ptr %arrayidx.i.i1409, align 4 - %82 = trunc i64 %indvars.iv24.i.i1403 to i32 - %and.i.i1410 = and i32 %82, %sub4.i.i1390 + %arrayidx.i.i1409 = getelementptr inbounds i32, ptr %80, i64 %conv.i.i.i1408 + %85 = load i32, ptr %arrayidx.i.i1409, align 4 + %86 = trunc i64 %indvars.iv24.i.i1403 to i32 + %and.i.i1410 = and i32 %86, %sub4.i.i1390 %mul.i.i1411 = shl nuw i32 %and.i.i1410, 1 %idx.ext9.i.i1412 = zext i32 %mul.i.i1411 to i64 - %add.ptr10.i.i1413 = getelementptr inbounds i32, ptr %77, i64 %idx.ext9.i.i1412 + %add.ptr10.i.i1413 = getelementptr inbounds i32, ptr %81, i64 %idx.ext9.i.i1412 %add.ptr11.i.i1414 = getelementptr inbounds i32, ptr %add.ptr10.i.i1413, i64 1 - store i32 %82, ptr %arrayidx.i.i1409, align 4 - store i32 %81, ptr %add.ptr10.i.i1413, align 4 + store i32 %86, ptr %arrayidx.i.i1409, align 4 + store i32 %85, ptr %add.ptr10.i.i1413, align 4 store i32 1, ptr %add.ptr11.i.i1414, align 4 %indvars.iv.next25.i.i1415 = add nuw nsw i64 %indvars.iv24.i.i1403, 1 - %exitcond.not.i1416 = icmp eq i64 %indvars.iv.next25.i.i1415, %80 + %exitcond.not.i1416 = icmp eq i64 %indvars.iv.next25.i.i1415, %84 br i1 %exitcond.not.i1416, label %ZSTD_searchMax.exit, label %for.body.i.i1402, !llvm.loop !27 sw.bb60.i: ; preds = %if.end290.i - br i1 %cmp.i.i1383, label %if.end317.i, label %if.end.i.i1423 + %87 = load ptr, ptr %base4.i, align 8 + %88 = load i32, ptr %nextToUpdate.i.i1222, align 4 + %idx.ext.i.i1420 = zext i32 %88 to i64 + %add.ptr.i.i1421 = getelementptr inbounds i8, ptr %87, i64 %idx.ext.i.i1420 + %cmp.i.i1422 = icmp ugt ptr %add.ptr.i.i1421, %incdec.ptr225.i + br i1 %cmp.i.i1422, label %if.end317.i, label %if.end.i.i1423 if.end.i.i1423: ; preds = %sw.bb60.i - %83 = load ptr, ptr %hashTable2.i.i1227, align 8 - %84 = load ptr, ptr %chainTable.i.i1228, align 8 - %85 = load i32, ptr %chainLog.i.i1229, align 4 - %sub.i.i1427 = add i32 %85, -1 + %89 = load ptr, ptr %hashTable2.i.i1227, align 8 + %90 = load ptr, ptr %chainTable.i.i1228, align 8 + %91 = load i32, ptr %chainLog.i.i1229, align 4 + %sub.i.i1427 = add i32 %91, -1 %notmask.i.i1428 = shl nsw i32 -1, %sub.i.i1427 %sub4.i.i1429 = xor i32 %notmask.i.i1428, -1 %sub.ptr.lhs.cast.i.i1430 = ptrtoint ptr %incdec.ptr225.i to i64 - %sub.ptr.rhs.cast.i.i1431 = ptrtoint ptr %74 to i64 + %sub.ptr.rhs.cast.i.i1431 = ptrtoint ptr %87 to i64 %sub.ptr.sub.i.i1432 = sub i64 %sub.ptr.lhs.cast.i.i1430, %sub.ptr.rhs.cast.i.i1431 %conv.i.i1433 = trunc i64 %sub.ptr.sub.i.i1432 to i32 - %cmp71.i.i1434 = icmp ult i32 %75, %conv.i.i1433 + %cmp71.i.i1434 = icmp ult i32 %88, %conv.i.i1433 br i1 %cmp71.i.i1434, label %for.body.lr.ph.i.i1438, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1438: ; preds = %if.end.i.i1423 - %86 = load i32, ptr %hashLog3.i.i1242, align 4 - %sub.i.i29.i.i1440 = sub i32 64, %86 + %92 = load i32, ptr %hashLog3.i.i1242, align 4 + %sub.i.i29.i.i1440 = sub i32 64, %92 %sh_prom.i.i.i.i1441 = zext nneg i32 %sub.i.i29.i.i1440 to i64 - %87 = and i64 %sub.ptr.sub.i.i1432, 4294967295 + %93 = and i64 %sub.ptr.sub.i.i1432, 4294967295 br label %for.body.us4.i.i1442 for.body.us4.i.i1442: ; preds = %for.body.us4.i.i1442, %for.body.lr.ph.i.i1438 - %indvars.iv.i.i1443 = phi i64 [ %indvars.iv.next.i.i1454, %for.body.us4.i.i1442 ], [ %idx.ext.i.i1381, %for.body.lr.ph.i.i1438 ] - %add.ptr.us7.i.i1444 = getelementptr inbounds i8, ptr %74, i64 %indvars.iv.i.i1443 + %indvars.iv.i.i1443 = phi i64 [ %indvars.iv.next.i.i1454, %for.body.us4.i.i1442 ], [ %idx.ext.i.i1420, %for.body.lr.ph.i.i1438 ] + %add.ptr.us7.i.i1444 = getelementptr inbounds i8, ptr %87, i64 %indvars.iv.i.i1443 %add.ptr.val26.us.i.i1445 = load i64, ptr %add.ptr.us7.i.i1444, align 1 %mul.i.i28.us.i.i1446 = mul i64 %add.ptr.val26.us.i.i1445, -3523014627271114752 %shr.i.i30.us.i.i1447 = lshr i64 %mul.i.i28.us.i.i1446, %sh_prom.i.i.i.i1441 - %arrayidx.us10.i.i1448 = getelementptr inbounds i32, ptr %83, i64 %shr.i.i30.us.i.i1447 - %88 = load i32, ptr %arrayidx.us10.i.i1448, align 4 - %89 = trunc i64 %indvars.iv.i.i1443 to i32 - %and.us11.i.i1449 = and i32 %89, %sub4.i.i1429 + %arrayidx.us10.i.i1448 = getelementptr inbounds i32, ptr %89, i64 %shr.i.i30.us.i.i1447 + %94 = load i32, ptr %arrayidx.us10.i.i1448, align 4 + %95 = trunc i64 %indvars.iv.i.i1443 to i32 + %and.us11.i.i1449 = and i32 %95, %sub4.i.i1429 %mul.us12.i.i1450 = shl nuw i32 %and.us11.i.i1449, 1 %idx.ext9.us13.i.i1451 = zext i32 %mul.us12.i.i1450 to i64 - %add.ptr10.us14.i.i1452 = getelementptr inbounds i32, ptr %84, i64 %idx.ext9.us13.i.i1451 + %add.ptr10.us14.i.i1452 = getelementptr inbounds i32, ptr %90, i64 %idx.ext9.us13.i.i1451 %add.ptr11.us15.i.i1453 = getelementptr inbounds i32, ptr %add.ptr10.us14.i.i1452, i64 1 - store i32 %89, ptr %arrayidx.us10.i.i1448, align 4 - store i32 %88, ptr %add.ptr10.us14.i.i1452, align 4 + store i32 %95, ptr %arrayidx.us10.i.i1448, align 4 + store i32 %94, ptr %add.ptr10.us14.i.i1452, align 4 store i32 1, ptr %add.ptr11.us15.i.i1453, align 4 %indvars.iv.next.i.i1454 = add nuw nsw i64 %indvars.iv.i.i1443, 1 - %exitcond.not.i1455 = icmp eq i64 %indvars.iv.next.i.i1454, %87 + %exitcond.not.i1455 = icmp eq i64 %indvars.iv.next.i.i1454, %93 br i1 %exitcond.not.i1455, label %ZSTD_searchMax.exit, label %for.body.us4.i.i1442, !llvm.loop !27 sw.bb62.i: ; preds = %if.end290.i - br i1 %cmp.i.i1383, label %if.end317.i, label %if.end.i.i1462 + %96 = load ptr, ptr %base4.i, align 8 + %97 = load i32, ptr %nextToUpdate.i.i1222, align 4 + %idx.ext.i.i1459 = zext i32 %97 to i64 + %add.ptr.i.i1460 = getelementptr inbounds i8, ptr %96, i64 %idx.ext.i.i1459 + %cmp.i.i1461 = icmp ugt ptr %add.ptr.i.i1460, %incdec.ptr225.i + br i1 %cmp.i.i1461, label %if.end317.i, label %if.end.i.i1462 if.end.i.i1462: ; preds = %sw.bb62.i - %90 = load ptr, ptr %hashTable2.i.i1227, align 8 - %91 = load ptr, ptr %chainTable.i.i1228, align 8 - %92 = load i32, ptr %chainLog.i.i1229, align 4 - %sub.i.i1466 = add i32 %92, -1 + %98 = load ptr, ptr %hashTable2.i.i1227, align 8 + %99 = load ptr, ptr %chainTable.i.i1228, align 8 + %100 = load i32, ptr %chainLog.i.i1229, align 4 + %sub.i.i1466 = add i32 %100, -1 %notmask.i.i1467 = shl nsw i32 -1, %sub.i.i1466 %sub4.i.i1468 = xor i32 %notmask.i.i1467, -1 %sub.ptr.lhs.cast.i.i1469 = ptrtoint ptr %incdec.ptr225.i to i64 - %sub.ptr.rhs.cast.i.i1470 = ptrtoint ptr %74 to i64 + %sub.ptr.rhs.cast.i.i1470 = ptrtoint ptr %96 to i64 %sub.ptr.sub.i.i1471 = sub i64 %sub.ptr.lhs.cast.i.i1469, %sub.ptr.rhs.cast.i.i1470 %conv.i.i1472 = trunc i64 %sub.ptr.sub.i.i1471 to i32 - %cmp71.i.i1473 = icmp ult i32 %75, %conv.i.i1472 + %cmp71.i.i1473 = icmp ult i32 %97, %conv.i.i1472 br i1 %cmp71.i.i1473, label %for.body.lr.ph.i.i1477, label %ZSTD_searchMax.exit for.body.lr.ph.i.i1477: ; preds = %if.end.i.i1462 - %93 = load i32, ptr %hashLog3.i.i1242, align 4 - %sub.i.i29.i.i1479 = sub i32 64, %93 + %101 = load i32, ptr %hashLog3.i.i1242, align 4 + %sub.i.i29.i.i1479 = sub i32 64, %101 %sh_prom.i.i.i.i1480 = zext nneg i32 %sub.i.i29.i.i1479 to i64 - %94 = and i64 %sub.ptr.sub.i.i1471, 4294967295 + %102 = and i64 %sub.ptr.sub.i.i1471, 4294967295 br label %for.body.us.i.i1481 for.body.us.i.i1481: ; preds = %for.body.us.i.i1481, %for.body.lr.ph.i.i1477 - %indvars.iv21.i.i1482 = phi i64 [ %indvars.iv.next22.i.i1493, %for.body.us.i.i1481 ], [ %idx.ext.i.i1381, %for.body.lr.ph.i.i1477 ] - %add.ptr.us.i.i1483 = getelementptr inbounds i8, ptr %74, i64 %indvars.iv21.i.i1482 + %indvars.iv21.i.i1482 = phi i64 [ %indvars.iv.next22.i.i1493, %for.body.us.i.i1481 ], [ %idx.ext.i.i1459, %for.body.lr.ph.i.i1477 ] + %add.ptr.us.i.i1483 = getelementptr inbounds i8, ptr %96, i64 %indvars.iv21.i.i1482 %add.ptr.val27.us.i.i1484 = load i64, ptr %add.ptr.us.i.i1483, align 1 %mul.i.i31.us.i.i1485 = mul i64 %add.ptr.val27.us.i.i1484, -3523014627193847808 %shr.i.i34.us.i.i1486 = lshr i64 %mul.i.i31.us.i.i1485, %sh_prom.i.i.i.i1480 - %arrayidx.us.i.i1487 = getelementptr inbounds i32, ptr %90, i64 %shr.i.i34.us.i.i1486 - %95 = load i32, ptr %arrayidx.us.i.i1487, align 4 - %96 = trunc i64 %indvars.iv21.i.i1482 to i32 - %and.us.i.i1488 = and i32 %96, %sub4.i.i1468 + %arrayidx.us.i.i1487 = getelementptr inbounds i32, ptr %98, i64 %shr.i.i34.us.i.i1486 + %103 = load i32, ptr %arrayidx.us.i.i1487, align 4 + %104 = trunc i64 %indvars.iv21.i.i1482 to i32 + %and.us.i.i1488 = and i32 %104, %sub4.i.i1468 %mul.us.i.i1489 = shl nuw i32 %and.us.i.i1488, 1 %idx.ext9.us.i.i1490 = zext i32 %mul.us.i.i1489 to i64 - %add.ptr10.us.i.i1491 = getelementptr inbounds i32, ptr %91, i64 %idx.ext9.us.i.i1490 + %add.ptr10.us.i.i1491 = getelementptr inbounds i32, ptr %99, i64 %idx.ext9.us.i.i1490 %add.ptr11.us.i.i1492 = getelementptr inbounds i32, ptr %add.ptr10.us.i.i1491, i64 1 - store i32 %96, ptr %arrayidx.us.i.i1487, align 4 - store i32 %95, ptr %add.ptr10.us.i.i1491, align 4 + store i32 %104, ptr %arrayidx.us.i.i1487, align 4 + store i32 %103, ptr %add.ptr10.us.i.i1491, align 4 store i32 1, ptr %add.ptr11.us.i.i1492, align 4 %indvars.iv.next22.i.i1493 = add nuw nsw i64 %indvars.iv21.i.i1482, 1 - %exitcond.not.i1494 = icmp eq i64 %indvars.iv.next22.i.i1493, %94 + %exitcond.not.i1494 = icmp eq i64 %indvars.iv.next22.i.i1493, %102 br i1 %exitcond.not.i1494, label %ZSTD_searchMax.exit, label %for.body.us.i.i1481, !llvm.loop !27 -sw.epilog97.i: ; preds = %if.end290.i - unreachable - ZSTD_searchMax.exit: ; preds = %for.body.us.i.i1481, %for.body.us4.i.i1442, %for.body.i.i1402, %if.end.i.i1462, %if.end.i.i1423, %if.end.i.i1384 %conv.i.i1472.sink = phi i32 [ %conv.i.i1394, %if.end.i.i1384 ], [ %conv.i.i1433, %if.end.i.i1423 ], [ %conv.i.i1472, %if.end.i.i1462 ], [ %conv.i.i1394, %for.body.i.i1402 ], [ %conv.i.i1433, %for.body.us4.i.i1442 ], [ %conv.i.i1472, %for.body.us.i.i1481 ] store i32 %conv.i.i1472.sink, ptr %nextToUpdate.i.i1222, align 4 @@ -28018,18 +27901,18 @@ ZSTD_searchMax.exit: ; preds = %for.body.us.i.i1481 land.lhs.true311.i: ; preds = %ZSTD_searchMax.exit %conv303.i = trunc i64 %offBase.i.3 to i32 - %97 = tail call i32 @llvm.ctlz.i32(i32 %conv303.i, i1 true), !range !25 - %98 = load i64, ptr %ofbCandidate291.i, align 8 - %conv296.i = trunc i64 %98 to i32 - %99 = tail call i32 @llvm.ctlz.i32(i32 %conv296.i, i1 true), !range !25 - %sub.i1496 = xor i32 %99, 31 + %105 = tail call i32 @llvm.ctlz.i32(i32 %conv303.i, i1 true), !range !25 + %106 = load i64, ptr %ofbCandidate291.i, align 8 + %conv296.i = trunc i64 %106 to i32 + %107 = tail call i32 @llvm.ctlz.i32(i32 %conv296.i, i1 true), !range !25 + %sub.i1496 = xor i32 %107, 31 %matchLength.i.4.tr = trunc i64 %matchLength.i.4 to i32 - %100 = shl i32 %matchLength.i.4.tr, 2 - %101 = add nsw i32 %97, -24 - %conv308.i = add i32 %101, %100 + %108 = shl i32 %matchLength.i.4.tr, 2 + %109 = add nsw i32 %105, -24 + %conv308.i = add i32 %109, %108 %retval.i120.0.tr = trunc i64 %call.i.i1475 to i32 - %102 = shl i32 %retval.i120.0.tr, 2 - %conv300.i = sub i32 %102, %sub.i1496 + %110 = shl i32 %retval.i120.0.tr, 2 + %conv300.i = sub i32 %110, %sub.i1496 %cmp312.i = icmp sgt i32 %conv300.i, %conv308.i br i1 %cmp312.i, label %while.cond131.i.backedge, label %if.end317.i @@ -28046,8 +27929,8 @@ if.end317.i._storeSequence.i_crit_edge: ; preds = %if.end317.i if.then320.i: ; preds = %if.end317.i %sub.ptr.lhs.cast321.i = ptrtoint ptr %start.i.4 to i64 - %103 = add i64 %offBase.i.4, %sub.ptr.rhs.cast.i - %reass.sub = sub i64 %sub.ptr.lhs.cast321.i, %103 + %111 = add i64 %offBase.i.4, %sub.ptr.rhs.cast.i + %reass.sub = sub i64 %sub.ptr.lhs.cast321.i, %111 %sub325.i = add i64 %reass.sub, 3 %conv326.i = trunc i64 %sub325.i to i32 %cmp327.i = icmp ugt i32 %1, %conv326.i @@ -28065,10 +27948,10 @@ land.rhs.i: ; preds = %if.then320.i, %whil %matchLength.i.61616 = phi i64 [ %inc358.i, %while.body355.i ], [ %matchLength.i.5, %if.then320.i ] %start.i.51615 = phi ptr [ %arrayidx349.i, %while.body355.i ], [ %start.i.4, %if.then320.i ] %arrayidx349.i = getelementptr inbounds i8, ptr %start.i.51615, i64 -1 - %104 = load i8, ptr %arrayidx349.i, align 1 + %112 = load i8, ptr %arrayidx349.i, align 1 %arrayidx351.i = getelementptr inbounds i8, ptr %match.i.01617, i64 -1 - %105 = load i8, ptr %arrayidx351.i, align 1 - %cmp353.i = icmp eq i8 %104, %105 + %113 = load i8, ptr %arrayidx351.i, align 1 + %cmp353.i = icmp eq i8 %112, %113 br i1 %cmp353.i, label %while.body355.i, label %while.end359.i while.body355.i: ; preds = %land.rhs.i @@ -28081,12 +27964,12 @@ while.body355.i: ; preds = %land.rhs.i while.end359.i: ; preds = %land.rhs.i, %while.body355.i, %if.then320.i %start.i.5.lcssa = phi ptr [ %start.i.4, %if.then320.i ], [ %arrayidx349.i, %while.body355.i ], [ %start.i.51615, %land.rhs.i ] %matchLength.i.6.lcssa = phi i64 [ %matchLength.i.5, %if.then320.i ], [ %inc358.i, %while.body355.i ], [ %matchLength.i.61616, %land.rhs.i ] - %106 = trunc i64 %offBase.i.4 to i32 - %conv361.i = add i32 %106, -3 + %114 = trunc i64 %offBase.i.4 to i32 + %conv361.i = add i32 %114, -3 br label %_storeSequence.i _storeSequence.i: ; preds = %if.end317.i._storeSequence.i_crit_edge, %while.end359.i - %conv366.i.pre-phi = phi i32 [ %.pre1677, %if.end317.i._storeSequence.i_crit_edge ], [ %106, %while.end359.i ] + %conv366.i.pre-phi = phi i32 [ %.pre1677, %if.end317.i._storeSequence.i_crit_edge ], [ %114, %while.end359.i ] %start.i.6 = phi ptr [ %start.i.4, %if.end317.i._storeSequence.i_crit_edge ], [ %start.i.5.lcssa, %while.end359.i ] %matchLength.i.7 = phi i64 [ %matchLength.i.5, %if.end317.i._storeSequence.i_crit_edge ], [ %matchLength.i.6.lcssa, %while.end359.i ] %offset_2.i.1 = phi i32 [ %offset_2.i.0.ph1636, %if.end317.i._storeSequence.i_crit_edge ], [ %offset_1.i.0.ph1637, %while.end359.i ] @@ -28095,15 +27978,15 @@ _storeSequence.i: ; preds = %if.end317.i._storeS %sub.ptr.sub365.i = sub i64 %sub.ptr.lhs.cast363.i, %sub.ptr.rhs.cast120.i %add.ptr1.i549 = getelementptr inbounds i8, ptr %anchor.i.0.ph1638, i64 %sub.ptr.sub365.i %cmp.i550.not = icmp ugt ptr %add.ptr1.i549, %add.ptr.i548 - %107 = load ptr, ptr %lit.i588, align 8 + %115 = load ptr, ptr %lit.i588, align 8 br i1 %cmp.i550.not, label %if.else.i551, label %if.then.i587 if.then.i587: ; preds = %_storeSequence.i %anchor.i.0.val = load <2 x i64>, ptr %anchor.i.0.ph1638, align 1 - store <2 x i64> %anchor.i.0.val, ptr %107, align 1 + store <2 x i64> %anchor.i.0.val, ptr %115, align 1 %cmp2.i589 = icmp ugt i64 %sub.ptr.sub365.i, 16 - %108 = load ptr, ptr %lit.i588, align 8 - %add.ptr.i602 = getelementptr inbounds i8, ptr %108, i64 %sub.ptr.sub365.i + %116 = load ptr, ptr %lit.i588, align 8 + %add.ptr.i602 = getelementptr inbounds i8, ptr %116, i64 %sub.ptr.sub365.i br i1 %cmp2.i589, label %if.then3.i591, label %if.end8.i553.thread if.end8.i553.thread: ; preds = %if.then.i587 @@ -28113,14 +27996,14 @@ if.end8.i553.thread: ; preds = %if.then.i587 if.then3.i591: ; preds = %if.then.i587 %add.ptr6.i594 = getelementptr inbounds i8, ptr %anchor.i.0.ph1638, i64 16 - %add.ptr5.i593 = getelementptr inbounds i8, ptr %108, i64 16 + %add.ptr5.i593 = getelementptr inbounds i8, ptr %116, i64 16 %add.ptr6.i594.val = load <2 x i64>, ptr %add.ptr6.i594, align 1 store <2 x i64> %add.ptr6.i594.val, ptr %add.ptr5.i593, align 1 %cmp7.i = icmp slt i64 %sub.ptr.sub365.i, 33 br i1 %cmp7.i, label %if.end8.i553, label %if.end.i605 if.end.i605: ; preds = %if.then3.i591 - %add.ptr9.i606 = getelementptr inbounds i8, ptr %108, i64 32 + %add.ptr9.i606 = getelementptr inbounds i8, ptr %116, i64 32 br label %do.body11.i do.body11.i: ; preds = %do.body11.i, %if.end.i605 @@ -28144,14 +28027,14 @@ if.else.i551: ; preds = %_storeSequence.i if.then.i: ; preds = %if.else.i551 %sub.ptr.sub.i1500 = sub i64 %sub.ptr.lhs.cast.i1498, %sub.ptr.rhs.cast120.i - %add.ptr.i.i1501 = getelementptr inbounds i8, ptr %107, i64 %sub.ptr.sub.i1500 + %add.ptr.i.i1501 = getelementptr inbounds i8, ptr %115, i64 %sub.ptr.sub.i1500 %ip.val.i = load <2 x i64>, ptr %anchor.i.0.ph1638, align 1 - store <2 x i64> %ip.val.i, ptr %107, align 1 + store <2 x i64> %ip.val.i, ptr %115, align 1 %cmp7.i.i = icmp slt i64 %sub.ptr.sub.i1500, 17 br i1 %cmp7.i.i, label %if.end.i, label %if.end.i.i1502 if.end.i.i1502: ; preds = %if.then.i - %add.ptr9.i.i = getelementptr inbounds i8, ptr %107, i64 16 + %add.ptr9.i.i = getelementptr inbounds i8, ptr %115, i64 16 br label %do.body11.i.i do.body11.i.i: ; preds = %do.body11.i.i, %if.end.i.i1502 @@ -28169,30 +28052,30 @@ do.body11.i.i: ; preds = %do.body11.i.i, %if. br i1 %cmp23.i.i, label %do.body11.i.i, label %if.end.i, !llvm.loop !19 if.end.i: ; preds = %do.body11.i.i, %if.then.i, %if.else.i551 - %op.addr.0.i = phi ptr [ %add.ptr.i.i1501, %if.then.i ], [ %107, %if.else.i551 ], [ %add.ptr.i.i1501, %do.body11.i.i ] + %op.addr.0.i = phi ptr [ %add.ptr.i.i1501, %if.then.i ], [ %115, %if.else.i551 ], [ %add.ptr.i.i1501, %do.body11.i.i ] %ip.addr.0.i = phi ptr [ %add.ptr.i548, %if.then.i ], [ %anchor.i.0.ph1638, %if.else.i551 ], [ %add.ptr.i548, %do.body11.i.i ] %cmp432.i = icmp ult ptr %ip.addr.0.i, %add.ptr1.i549 br i1 %cmp432.i, label %while.body.preheader.i, label %if.end8.i553 while.body.preheader.i: ; preds = %if.end.i %ip.addr.036.i = ptrtoint ptr %ip.addr.0.i to i64 - %109 = sub i64 %iend35.i, %ip.addr.036.i - %scevgep.i = getelementptr i8, ptr %ip.addr.0.i, i64 %109 + %117 = sub i64 %iend35.i, %ip.addr.036.i + %scevgep.i = getelementptr i8, ptr %ip.addr.0.i, i64 %117 br label %while.body.i1503 while.body.i1503: ; preds = %while.body.i1503, %while.body.preheader.i %ip.addr.134.i = phi ptr [ %incdec.ptr.i1504, %while.body.i1503 ], [ %ip.addr.0.i, %while.body.preheader.i ] %op.addr.133.i = phi ptr [ %incdec.ptr5.i, %while.body.i1503 ], [ %op.addr.0.i, %while.body.preheader.i ] %incdec.ptr.i1504 = getelementptr inbounds i8, ptr %ip.addr.134.i, i64 1 - %110 = load i8, ptr %ip.addr.134.i, align 1 + %118 = load i8, ptr %ip.addr.134.i, align 1 %incdec.ptr5.i = getelementptr inbounds i8, ptr %op.addr.133.i, i64 1 - store i8 %110, ptr %op.addr.133.i, align 1 + store i8 %118, ptr %op.addr.133.i, align 1 %exitcond.not.i1505 = icmp eq ptr %incdec.ptr.i1504, %scevgep.i br i1 %exitcond.not.i1505, label %if.end8.i553, label %while.body.i1503, !llvm.loop !20 if.end8.i553: ; preds = %do.body11.i, %while.body.i1503, %if.end.i, %if.then3.i591 - %111 = load ptr, ptr %lit.i588, align 8 - %add.ptr10.i555 = getelementptr inbounds i8, ptr %111, i64 %sub.ptr.sub365.i + %119 = load ptr, ptr %lit.i588, align 8 + %add.ptr10.i555 = getelementptr inbounds i8, ptr %119, i64 %sub.ptr.sub365.i store ptr %add.ptr10.i555, ptr %lit.i588, align 8 %cmp11.i556 = icmp ugt i64 %sub.ptr.sub365.i, 65535 %.pre1674 = load ptr, ptr %sequences.i580, align 8 @@ -28200,9 +28083,9 @@ if.end8.i553: ; preds = %do.body11.i, %while if.then12.i578: ; preds = %if.end8.i553 store i32 1, ptr %longLengthType.i579, align 8 - %112 = load ptr, ptr %seqStore, align 8 + %120 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast.i581 = ptrtoint ptr %.pre1674 to i64 - %sub.ptr.rhs.cast.i582 = ptrtoint ptr %112 to i64 + %sub.ptr.rhs.cast.i582 = ptrtoint ptr %120 to i64 %sub.ptr.sub.i583 = sub i64 %sub.ptr.lhs.cast.i581, %sub.ptr.rhs.cast.i582 %sub.ptr.div.i584 = lshr exact i64 %sub.ptr.sub.i583, 3 %conv.i585 = trunc i64 %sub.ptr.div.i584 to i32 @@ -28210,12 +28093,12 @@ if.then12.i578: ; preds = %if.end8.i553 br label %if.end13.i557 if.end13.i557: ; preds = %if.end8.i553.thread, %if.then12.i578, %if.end8.i553 - %113 = phi ptr [ %.pre, %if.end8.i553.thread ], [ %.pre1674, %if.then12.i578 ], [ %.pre1674, %if.end8.i553 ] + %121 = phi ptr [ %.pre, %if.end8.i553.thread ], [ %.pre1674, %if.then12.i578 ], [ %.pre1674, %if.end8.i553 ] %conv14.i558 = trunc i64 %sub.ptr.sub365.i to i16 - %litLength16.i560 = getelementptr inbounds %struct.seqDef_s, ptr %113, i64 0, i32 1 + %litLength16.i560 = getelementptr inbounds %struct.seqDef_s, ptr %121, i64 0, i32 1 store i16 %conv14.i558, ptr %litLength16.i560, align 4 - %114 = load ptr, ptr %sequences.i580, align 8 - store i32 %conv366.i.pre-phi, ptr %114, align 4 + %122 = load ptr, ptr %sequences.i580, align 8 + store i32 %conv366.i.pre-phi, ptr %122, align 4 %sub20.i562 = add i64 %matchLength.i.7, -3 %cmp21.i563 = icmp ugt i64 %sub20.i562, 65535 %.pre1675 = load ptr, ptr %sequences.i580, align 8 @@ -28223,9 +28106,9 @@ if.end13.i557: ; preds = %if.end8.i553.thread if.then23.i569: ; preds = %if.end13.i557 store i32 2, ptr %longLengthType.i579, align 8 - %115 = load ptr, ptr %seqStore, align 8 + %123 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast27.i572 = ptrtoint ptr %.pre1675 to i64 - %sub.ptr.rhs.cast28.i573 = ptrtoint ptr %115 to i64 + %sub.ptr.rhs.cast28.i573 = ptrtoint ptr %123 to i64 %sub.ptr.sub29.i574 = sub i64 %sub.ptr.lhs.cast27.i572, %sub.ptr.rhs.cast28.i573 %sub.ptr.div30.i575 = lshr exact i64 %sub.ptr.sub29.i574, 3 %conv31.i576 = trunc i64 %sub.ptr.div30.i575 to i32 @@ -28236,12 +28119,12 @@ ZSTD_storeSeq.exit596: ; preds = %if.then23.i569, %if %conv34.i564 = trunc i64 %sub20.i562 to i16 %mlBase37.i566 = getelementptr inbounds %struct.seqDef_s, ptr %.pre1675, i64 0, i32 2 store i16 %conv34.i564, ptr %mlBase37.i566, align 2 - %116 = load ptr, ptr %sequences.i580, align 8 - %incdec.ptr.i568 = getelementptr inbounds %struct.seqDef_s, ptr %116, i64 1 + %124 = load ptr, ptr %sequences.i580, align 8 + %incdec.ptr.i568 = getelementptr inbounds %struct.seqDef_s, ptr %124, i64 1 store ptr %incdec.ptr.i568, ptr %sequences.i580, align 8 %add.ptr367.i = getelementptr inbounds i8, ptr %start.i.6, i64 %matchLength.i.7 - %117 = load i32, ptr %lazySkipping.i, align 4 - %tobool369.i.not = icmp eq i32 %117, 0 + %125 = load i32, ptr %lazySkipping.i, align 4 + %tobool369.i.not = icmp eq i32 %125, 0 br i1 %tobool369.i.not, label %if.end377.i, label %if.end375.i if.end375.i: ; preds = %ZSTD_storeSeq.exit596 @@ -28265,8 +28148,8 @@ while.body381.i: ; preds = %if.end377.i, %ZSTD_ %cmp.i1508 = icmp ugt i32 %sub.i1507, %shl.i %sub1.i1509 = sub i32 %conv385.i, %shl.i %cmp2.not.i1510 = icmp eq i32 %ms.val1196, 0 - %118 = select i1 %cmp2.not.i1510, i1 %cmp.i1508, i1 false - %cond6.i1511 = select i1 %118, i32 %sub1.i1509, i32 %ms.val1195 + %126 = select i1 %cmp2.not.i1510, i1 %cmp.i1508, i1 false + %cond6.i1511 = select i1 %126, i32 %sub1.i1509, i32 %ms.val1195 %sub389.i = sub i32 %conv385.i, %offset_2.i.21623 %cmp391.i = icmp ult i32 %sub389.i, %1 %cond396.i = select i1 %cmp391.i, ptr %2, ptr %0 @@ -28307,8 +28190,8 @@ if.then.i.i: ; preds = %if.then414.i br i1 %tobool.not.i.i, label %while.cond.i.i, label %if.then2.i.i if.then2.i.i: ; preds = %if.then.i.i - %119 = tail call i64 @llvm.cttz.i64(i64 %xor.i.i, i1 true), !range !16 - %shr.i.i.i = lshr i64 %119, 3 + %127 = tail call i64 @llvm.cttz.i64(i64 %xor.i.i, i1 true), !range !16 + %shr.i.i.i = lshr i64 %127, 3 br label %ZSTD_count.exit.i while.cond.i.i: ; preds = %if.then.i.i, %while.body.i.i @@ -28327,8 +28210,8 @@ while.body.i.i: ; preds = %while.cond.i.i br i1 %tobool12.not.i.i, label %while.cond.i.i, label %if.end16.i.i, !llvm.loop !17 if.end16.i.i: ; preds = %while.body.i.i - %120 = tail call i64 @llvm.cttz.i64(i64 %xor11.i.i, i1 true), !range !16 - %shr.i35.i.i = lshr i64 %120, 3 + %128 = tail call i64 @llvm.cttz.i64(i64 %xor11.i.i, i1 true), !range !16 + %shr.i35.i.i = lshr i64 %128, 3 %add.ptr18.i.i1521 = getelementptr inbounds i8, ptr %pIn.addr.0.i.i, i64 %shr.i35.i.i %sub.ptr.lhs.cast.i.i1522 = ptrtoint ptr %add.ptr18.i.i1521 to i64 %sub.ptr.rhs.cast.i.i1523 = ptrtoint ptr %add.ptr422.i to i64 @@ -28378,9 +28261,9 @@ if.end47.i.i: ; preds = %if.then44.i.i, %lan br i1 %cmp48.i.i, label %land.lhs.true50.i.i, label %if.end56.i.i land.lhs.true50.i.i: ; preds = %if.end47.i.i - %121 = load i8, ptr %pMatch.addr.3.i.i, align 1 - %122 = load i8, ptr %pIn.addr.3.i.i, align 1 - %cmp53.i.i = icmp eq i8 %121, %122 + %129 = load i8, ptr %pMatch.addr.3.i.i, align 1 + %130 = load i8, ptr %pIn.addr.3.i.i, align 1 + %cmp53.i.i = icmp eq i8 %129, %130 %spec.select.idx.i.i = zext i1 %cmp53.i.i to i64 %spec.select.i.i = getelementptr inbounds i8, ptr %pIn.addr.3.i.i, i64 %spec.select.idx.i.i br label %if.end56.i.i @@ -28411,8 +28294,8 @@ if.then.i54.i: ; preds = %do.end14.i br i1 %tobool.not.i58.i, label %while.cond.i61.i, label %if.then2.i59.i if.then2.i59.i: ; preds = %if.then.i54.i - %123 = tail call i64 @llvm.cttz.i64(i64 %xor.i57.i, i1 true), !range !16 - %shr.i.i60.i = lshr i64 %123, 3 + %131 = tail call i64 @llvm.cttz.i64(i64 %xor.i57.i, i1 true), !range !16 + %shr.i.i60.i = lshr i64 %131, 3 br label %ZSTD_count.exit78.i while.cond.i61.i: ; preds = %if.then.i54.i, %while.body.i67.i @@ -28431,8 +28314,8 @@ while.body.i67.i: ; preds = %while.cond.i61.i br i1 %tobool12.not.i71.i, label %while.cond.i61.i, label %if.end16.i72.i, !llvm.loop !17 if.end16.i72.i: ; preds = %while.body.i67.i - %124 = tail call i64 @llvm.cttz.i64(i64 %xor11.i70.i, i1 true), !range !16 - %shr.i35.i73.i = lshr i64 %124, 3 + %132 = tail call i64 @llvm.cttz.i64(i64 %xor11.i70.i, i1 true), !range !16 + %shr.i35.i73.i = lshr i64 %132, 3 %add.ptr18.i74.i = getelementptr inbounds i8, ptr %pIn.addr.0.i64.i, i64 %shr.i35.i73.i %sub.ptr.lhs.cast.i75.i = ptrtoint ptr %add.ptr18.i74.i to i64 %sub.ptr.rhs.cast.i76.i = ptrtoint ptr %add.ptr15.i to i64 @@ -28480,9 +28363,9 @@ if.end47.i26.i: ; preds = %if.then44.i44.i, %l br i1 %cmp48.i29.i, label %land.lhs.true50.i36.i, label %if.end56.i30.i land.lhs.true50.i36.i: ; preds = %if.end47.i26.i - %125 = load i8, ptr %pMatch.addr.3.i27.i, align 1 - %126 = load i8, ptr %pIn.addr.3.i28.i, align 1 - %cmp53.i37.i = icmp eq i8 %125, %126 + %133 = load i8, ptr %pMatch.addr.3.i27.i, align 1 + %134 = load i8, ptr %pIn.addr.3.i28.i, align 1 + %cmp53.i37.i = icmp eq i8 %133, %134 %spec.select.idx.i38.i = zext i1 %cmp53.i37.i to i64 %spec.select.i39.i = getelementptr inbounds i8, ptr %pIn.addr.3.i28.i, i64 %spec.select.idx.i38.i br label %if.end56.i30.i @@ -28506,17 +28389,17 @@ ZSTD_count_2segments.exit: ; preds = %ZSTD_count.exit.i, br i1 %cmp.i527.not, label %if.end13.i, label %if.then.i535 if.then.i535: ; preds = %ZSTD_count_2segments.exit - %127 = load ptr, ptr %lit.i588, align 8 + %135 = load ptr, ptr %lit.i588, align 8 %ip.i.2.val1189 = load <2 x i64>, ptr %ip.i.21625, align 1 - store <2 x i64> %ip.i.2.val1189, ptr %127, align 1 + store <2 x i64> %ip.i.2.val1189, ptr %135, align 1 br label %if.end13.i if.end13.i: ; preds = %ZSTD_count_2segments.exit, %if.then.i535 - %128 = load ptr, ptr %sequences.i580, align 8 - %litLength16.i = getelementptr inbounds %struct.seqDef_s, ptr %128, i64 0, i32 1 + %136 = load ptr, ptr %sequences.i580, align 8 + %litLength16.i = getelementptr inbounds %struct.seqDef_s, ptr %136, i64 0, i32 1 store i16 0, ptr %litLength16.i, align 4 - %129 = load ptr, ptr %sequences.i580, align 8 - store i32 1, ptr %129, align 4 + %137 = load ptr, ptr %sequences.i580, align 8 + store i32 1, ptr %137, align 4 %sub20.i = add i64 %retval.0.i, 1 %cmp21.i = icmp ugt i64 %sub20.i, 65535 %.pre1676 = load ptr, ptr %sequences.i580, align 8 @@ -28524,9 +28407,9 @@ if.end13.i: ; preds = %ZSTD_count_2segment if.then23.i: ; preds = %if.end13.i store i32 2, ptr %longLengthType.i579, align 8 - %130 = load ptr, ptr %seqStore, align 8 + %138 = load ptr, ptr %seqStore, align 8 %sub.ptr.lhs.cast27.i = ptrtoint ptr %.pre1676 to i64 - %sub.ptr.rhs.cast28.i = ptrtoint ptr %130 to i64 + %sub.ptr.rhs.cast28.i = ptrtoint ptr %138 to i64 %sub.ptr.sub29.i = sub i64 %sub.ptr.lhs.cast27.i, %sub.ptr.rhs.cast28.i %sub.ptr.div30.i = lshr exact i64 %sub.ptr.sub29.i, 3 %conv31.i = trunc i64 %sub.ptr.div30.i to i32 @@ -28537,8 +28420,8 @@ ZSTD_storeSeq.exit: ; preds = %if.then23.i, %if.en %conv34.i = trunc i64 %sub20.i to i16 %mlBase37.i = getelementptr inbounds %struct.seqDef_s, ptr %.pre1676, i64 0, i32 2 store i16 %conv34.i, ptr %mlBase37.i, align 2 - %131 = load ptr, ptr %sequences.i580, align 8 - %incdec.ptr.i530 = getelementptr inbounds %struct.seqDef_s, ptr %131, i64 1 + %139 = load ptr, ptr %sequences.i580, align 8 + %incdec.ptr.i530 = getelementptr inbounds %struct.seqDef_s, ptr %139, i64 1 store ptr %incdec.ptr.i530, ptr %sequences.i580, align 8 %add.ptr428.i = getelementptr inbounds i8, ptr %ip.i.21625, i64 %add425.i %cmp379.i.not = icmp ugt ptr %add.ptr428.i, %add.ptr1.i diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index bba61ce1da6..eae96cde22d 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID="llvm/llvm-project/pull/76295" # Please rebase manually # git fetch origin